diff -Nru gcc-snapshot-20181214/debian/changelog gcc-snapshot-20190102/debian/changelog --- gcc-snapshot-20181214/debian/changelog 2019-01-02 09:51:29.000000000 +0000 +++ gcc-snapshot-20190102/debian/changelog 2019-01-02 09:51:41.000000000 +0000 @@ -1,14 +1,20 @@ -gcc-snapshot (1:20181214-0ubuntu1) disco; urgency=medium +gcc-snapshot (1:20190102-1ubuntu1) disco; urgency=medium - * Snapshot, taken from the trunk (20181214, r267118). + * Snapshot, taken from the trunk (20190102, r267505). - -- Matthias Klose Fri, 14 Dec 2018 06:18:46 +0100 + -- Matthias Klose Wed, 02 Jan 2019 10:32:58 +0100 -gcc-snapshot (1:20181210-0ubuntu1) disco; urgency=medium +gcc-snapshot (1:20190102-1) unstable; urgency=medium - * Snapshot, taken from the trunk (20181210, r266960). + * Snapshot, taken from the trunk (20190102, r267505). - -- Matthias Klose Mon, 10 Dec 2018 20:26:57 +0100 + -- Matthias Klose Wed, 02 Jan 2019 09:04:54 +0100 + +gcc-snapshot (1:20181217-1) unstable; urgency=medium + + * Snapshot, taken from the trunk (20181217, r267195). + + -- Matthias Klose Mon, 17 Dec 2018 04:26:32 +0100 gcc-snapshot (1:20181127-1) unstable; urgency=medium diff -Nru gcc-snapshot-20181214/debian/control gcc-snapshot-20190102/debian/control --- gcc-snapshot-20181214/debian/control 2019-01-02 09:51:29.000000000 +0000 +++ gcc-snapshot-20190102/debian/control 2019-01-02 09:51:41.000000000 +0000 @@ -20,7 +20,7 @@ libisl-dev, libmpc-dev (>= 1.0), libmpfr-dev (>= 3.0.0-9~), libgmp-dev (>= 2:5.0.1~), lib32z1-dev [amd64 kfreebsd-amd64], lib64z1-dev [i386], libx32z1-dev [amd64 kfreebsd-amd64 i386], dejagnu [!m68k !hurd-amd64 !hurd-i386 !hurd-alpha !kfreebsd-amd64 !kfreebsd-i386 !kfreebsd-alpha], coreutils (>= 2.26) | realpath (>= 1.9.12), chrpath, lsb-release, quilt, pkg-config, libgc-dev, - g++-9-alpha-linux-gnu [alpha] , gobjc-9-alpha-linux-gnu [alpha] , gfortran-9-alpha-linux-gnu [alpha] , gdc-9-alpha-linux-gnu [alpha] , gccgo-9-alpha-linux-gnu [alpha] , gnat-9-alpha-linux-gnu [alpha] , g++-9-x86-64-linux-gnu [amd64] , gobjc-9-x86-64-linux-gnu [amd64] , gfortran-9-x86-64-linux-gnu [amd64] , gdc-9-x86-64-linux-gnu [amd64] , gccgo-9-x86-64-linux-gnu [amd64] , gnat-9-x86-64-linux-gnu [amd64] , g++-9-arm-linux-gnueabi [armel] , gobjc-9-arm-linux-gnueabi [armel] , gfortran-9-arm-linux-gnueabi [armel] , gdc-9-arm-linux-gnueabi [armel] , gccgo-9-arm-linux-gnueabi [armel] , gnat-9-arm-linux-gnueabi [armel] , g++-9-arm-linux-gnueabihf [armhf] , gobjc-9-arm-linux-gnueabihf [armhf] , gfortran-9-arm-linux-gnueabihf [armhf] , gdc-9-arm-linux-gnueabihf [armhf] , gccgo-9-arm-linux-gnueabihf [armhf] , gnat-9-arm-linux-gnueabihf [armhf] , g++-9-aarch64-linux-gnu [arm64] , gobjc-9-aarch64-linux-gnu [arm64] , gfortran-9-aarch64-linux-gnu [arm64] , gdc-9-aarch64-linux-gnu [arm64] , gccgo-9-aarch64-linux-gnu [arm64] , gnat-9-aarch64-linux-gnu [arm64] , g++-9-i686-linux-gnu [i386] , gobjc-9-i686-linux-gnu [i386] , gfortran-9-i686-linux-gnu [i386] , gdc-9-i686-linux-gnu [i386] , gccgo-9-i686-linux-gnu [i386] , gnat-9-i686-linux-gnu [i386] , g++-9-mips-linux-gnu [mips] , gobjc-9-mips-linux-gnu [mips] , gfortran-9-mips-linux-gnu [mips] , gdc-9-mips-linux-gnu [mips] , gccgo-9-mips-linux-gnu [mips] , gnat-9-mips-linux-gnu [mips] , g++-9-mipsel-linux-gnu [mipsel] , gobjc-9-mipsel-linux-gnu [mipsel] , gfortran-9-mipsel-linux-gnu [mipsel] , gdc-9-mipsel-linux-gnu [mipsel] , gccgo-9-mipsel-linux-gnu [mipsel] , gnat-9-mipsel-linux-gnu [mipsel] , g++-9-mips64-linux-gnuabi64 [mips64] , gobjc-9-mips64-linux-gnuabi64 [mips64] , gfortran-9-mips64-linux-gnuabi64 [mips64] , gdc-9-mips64-linux-gnuabi64 [mips64] , gccgo-9-mips64-linux-gnuabi64 [mips64] , gnat-9-mips64-linux-gnuabi64 [mips64] , g++-9-mips64el-linux-gnuabi64 [mips64el] , gobjc-9-mips64el-linux-gnuabi64 [mips64el] , gfortran-9-mips64el-linux-gnuabi64 [mips64el] , gdc-9-mips64el-linux-gnuabi64 [mips64el] , gccgo-9-mips64el-linux-gnuabi64 [mips64el] , gnat-9-mips64el-linux-gnuabi64 [mips64el] , g++-9-mips64-linux-gnuabin32 [mipsn32] , gobjc-9-mips64-linux-gnuabin32 [mipsn32] , gfortran-9-mips64-linux-gnuabin32 [mipsn32] , gdc-9-mips64-linux-gnuabin32 [mipsn32] , gccgo-9-mips64-linux-gnuabin32 [mipsn32] , gnat-9-mips64-linux-gnuabin32 [mipsn32] , g++-9-powerpc-linux-gnu [powerpc] , gobjc-9-powerpc-linux-gnu [powerpc] , gfortran-9-powerpc-linux-gnu [powerpc] , gdc-9-powerpc-linux-gnu [powerpc] , gccgo-9-powerpc-linux-gnu [powerpc] , gnat-9-powerpc-linux-gnu [powerpc] , g++-9-powerpc-linux-gnuspe [powerpcspe] , gobjc-9-powerpc-linux-gnuspe [powerpcspe] , gfortran-9-powerpc-linux-gnuspe [powerpcspe] , gdc-9-powerpc-linux-gnuspe [powerpcspe] , gccgo-9-powerpc-linux-gnuspe [powerpcspe] , gnat-9-powerpc-linux-gnuspe [powerpcspe] , g++-9-powerpc64-linux-gnu [ppc64] , gobjc-9-powerpc64-linux-gnu [ppc64] , gfortran-9-powerpc64-linux-gnu [ppc64] , gdc-9-powerpc64-linux-gnu [ppc64] , gccgo-9-powerpc64-linux-gnu [ppc64] , gnat-9-powerpc64-linux-gnu [ppc64] , g++-9-powerpc64le-linux-gnu [ppc64el] , gobjc-9-powerpc64le-linux-gnu [ppc64el] , gfortran-9-powerpc64le-linux-gnu [ppc64el] , gdc-9-powerpc64le-linux-gnu [ppc64el] , gccgo-9-powerpc64le-linux-gnu [ppc64el] , gnat-9-powerpc64le-linux-gnu [ppc64el] , g++-9-m68k-linux-gnu [m68k] , gobjc-9-m68k-linux-gnu [m68k] , gfortran-9-m68k-linux-gnu [m68k] , gdc-9-m68k-linux-gnu [m68k] , g++-9-sh4-linux-gnu [sh4] , gobjc-9-sh4-linux-gnu [sh4] , gfortran-9-sh4-linux-gnu [sh4] , gnat-9-sh4-linux-gnu [sh4] , g++-9-sparc64-linux-gnu [sparc64] , gobjc-9-sparc64-linux-gnu [sparc64] , gfortran-9-sparc64-linux-gnu [sparc64] , gdc-9-sparc64-linux-gnu [sparc64] , gccgo-9-sparc64-linux-gnu [sparc64] , gnat-9-sparc64-linux-gnu [sparc64] , g++-9-s390x-linux-gnu [s390x] , gobjc-9-s390x-linux-gnu [s390x] , gfortran-9-s390x-linux-gnu [s390x] , gdc-9-s390x-linux-gnu [s390x] , gccgo-9-s390x-linux-gnu [s390x] , gnat-9-s390x-linux-gnu [s390x] , g++-9-x86-64-linux-gnux32 [x32] , gobjc-9-x86-64-linux-gnux32 [x32] , gfortran-9-x86-64-linux-gnux32 [x32] , gdc-9-x86-64-linux-gnux32 [x32] , gccgo-9-x86-64-linux-gnux32 [x32] , gnat-9-x86-64-linux-gnux32 [x32] , g++-9-mips64el-linux-gnuabin32 [mipsn32el] , gobjc-9-mips64el-linux-gnuabin32 [mipsn32el] , gfortran-9-mips64el-linux-gnuabin32 [mipsn32el] , gdc-9-mips64el-linux-gnuabin32 [mipsn32el] , gccgo-9-mips64el-linux-gnuabin32 [mipsn32el] , gnat-9-mips64el-linux-gnuabin32 [mipsn32el] , g++-9-mipsisa32r6-linux-gnu [mipsr6] , gobjc-9-mipsisa32r6-linux-gnu [mipsr6] , gfortran-9-mipsisa32r6-linux-gnu [mipsr6] , gdc-9-mipsisa32r6-linux-gnu [mipsr6] , gccgo-9-mipsisa32r6-linux-gnu [mipsr6] , gnat-9-mipsisa32r6-linux-gnu [mipsr6] , g++-9-mipsisa32r6el-linux-gnu [mipsr6el] , gobjc-9-mipsisa32r6el-linux-gnu [mipsr6el] , gfortran-9-mipsisa32r6el-linux-gnu [mipsr6el] , gdc-9-mipsisa32r6el-linux-gnu [mipsr6el] , gccgo-9-mipsisa32r6el-linux-gnu [mipsr6el] , gnat-9-mipsisa32r6el-linux-gnu [mipsr6el] , g++-9-mipsisa64r6-linux-gnuabi64 [mips64r6] , gobjc-9-mipsisa64r6-linux-gnuabi64 [mips64r6] , gfortran-9-mipsisa64r6-linux-gnuabi64 [mips64r6] , gdc-9-mipsisa64r6-linux-gnuabi64 [mips64r6] , gccgo-9-mipsisa64r6-linux-gnuabi64 [mips64r6] , gnat-9-mipsisa64r6-linux-gnuabi64 [mips64r6] , g++-9-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , gobjc-9-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , gfortran-9-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , gdc-9-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , gccgo-9-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , gnat-9-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , g++-9-mipsisa64r6-linux-gnuabin32 [mipsn32r6] , gobjc-9-mipsisa64r6-linux-gnuabin32 [mipsn32r6] , gfortran-9-mipsisa64r6-linux-gnuabin32 [mipsn32r6] , gdc-9-mipsisa64r6-linux-gnuabin32 [mipsn32r6] , gccgo-9-mipsisa64r6-linux-gnuabin32 [mipsn32r6] , gnat-9-mipsisa64r6-linux-gnuabin32 [mipsn32r6] , g++-9-mipsisa64r6el-linux-gnuabin32 [mipsn32r6el] , gobjc-9-mipsisa64r6el-linux-gnuabin32 [mipsn32r6el] , gfortran-9-mipsisa64r6el-linux-gnuabin32 [mipsn32r6el] , gdc-9-mipsisa64r6el-linux-gnuabin32 [mipsn32r6el] , gccgo-9-mipsisa64r6el-linux-gnuabin32 [mipsn32r6el] , gnat-9-mipsisa64r6el-linux-gnuabin32 [mipsn32r6el] , + g++-9-alpha-linux-gnu [alpha] , gobjc-9-alpha-linux-gnu [alpha] , gfortran-9-alpha-linux-gnu [alpha] , gdc-9-alpha-linux-gnu [alpha] , gccgo-9-alpha-linux-gnu [alpha] , gnat-9-alpha-linux-gnu [alpha] , g++-9-x86-64-linux-gnu [amd64] , gobjc-9-x86-64-linux-gnu [amd64] , gfortran-9-x86-64-linux-gnu [amd64] , gdc-9-x86-64-linux-gnu [amd64] , gccgo-9-x86-64-linux-gnu [amd64] , gnat-9-x86-64-linux-gnu [amd64] , g++-9-arm-linux-gnueabi [armel] , gobjc-9-arm-linux-gnueabi [armel] , gfortran-9-arm-linux-gnueabi [armel] , gdc-9-arm-linux-gnueabi [armel] , gccgo-9-arm-linux-gnueabi [armel] , gnat-9-arm-linux-gnueabi [armel] , g++-9-arm-linux-gnueabihf [armhf] , gobjc-9-arm-linux-gnueabihf [armhf] , gfortran-9-arm-linux-gnueabihf [armhf] , gdc-9-arm-linux-gnueabihf [armhf] , gccgo-9-arm-linux-gnueabihf [armhf] , gnat-9-arm-linux-gnueabihf [armhf] , g++-9-aarch64-linux-gnu [arm64] , gobjc-9-aarch64-linux-gnu [arm64] , gfortran-9-aarch64-linux-gnu [arm64] , gdc-9-aarch64-linux-gnu [arm64] , gccgo-9-aarch64-linux-gnu [arm64] , gnat-9-aarch64-linux-gnu [arm64] , g++-9-i686-linux-gnu [i386] , gobjc-9-i686-linux-gnu [i386] , gfortran-9-i686-linux-gnu [i386] , gdc-9-i686-linux-gnu [i386] , gccgo-9-i686-linux-gnu [i386] , gnat-9-i686-linux-gnu [i386] , g++-9-mips-linux-gnu [mips] , gobjc-9-mips-linux-gnu [mips] , gfortran-9-mips-linux-gnu [mips] , gdc-9-mips-linux-gnu [mips] , gccgo-9-mips-linux-gnu [mips] , gnat-9-mips-linux-gnu [mips] , g++-9-mipsel-linux-gnu [mipsel] , gobjc-9-mipsel-linux-gnu [mipsel] , gfortran-9-mipsel-linux-gnu [mipsel] , gdc-9-mipsel-linux-gnu [mipsel] , gccgo-9-mipsel-linux-gnu [mipsel] , gnat-9-mipsel-linux-gnu [mipsel] , g++-9-mips64-linux-gnuabi64 [mips64] , gobjc-9-mips64-linux-gnuabi64 [mips64] , gfortran-9-mips64-linux-gnuabi64 [mips64] , gdc-9-mips64-linux-gnuabi64 [mips64] , gccgo-9-mips64-linux-gnuabi64 [mips64] , gnat-9-mips64-linux-gnuabi64 [mips64] , g++-9-mips64el-linux-gnuabi64 [mips64el] , gobjc-9-mips64el-linux-gnuabi64 [mips64el] , gfortran-9-mips64el-linux-gnuabi64 [mips64el] , gdc-9-mips64el-linux-gnuabi64 [mips64el] , gccgo-9-mips64el-linux-gnuabi64 [mips64el] , gnat-9-mips64el-linux-gnuabi64 [mips64el] , g++-9-mips64-linux-gnuabin32 [mipsn32] , gobjc-9-mips64-linux-gnuabin32 [mipsn32] , gfortran-9-mips64-linux-gnuabin32 [mipsn32] , gdc-9-mips64-linux-gnuabin32 [mipsn32] , gccgo-9-mips64-linux-gnuabin32 [mipsn32] , gnat-9-mips64-linux-gnuabin32 [mipsn32] , g++-9-powerpc-linux-gnu [powerpc] , gobjc-9-powerpc-linux-gnu [powerpc] , gfortran-9-powerpc-linux-gnu [powerpc] , gdc-9-powerpc-linux-gnu [powerpc] , gccgo-9-powerpc-linux-gnu [powerpc] , gnat-9-powerpc-linux-gnu [powerpc] , g++-9-powerpc64-linux-gnu [ppc64] , gobjc-9-powerpc64-linux-gnu [ppc64] , gfortran-9-powerpc64-linux-gnu [ppc64] , gdc-9-powerpc64-linux-gnu [ppc64] , gccgo-9-powerpc64-linux-gnu [ppc64] , gnat-9-powerpc64-linux-gnu [ppc64] , g++-9-powerpc64le-linux-gnu [ppc64el] , gobjc-9-powerpc64le-linux-gnu [ppc64el] , gfortran-9-powerpc64le-linux-gnu [ppc64el] , gdc-9-powerpc64le-linux-gnu [ppc64el] , gccgo-9-powerpc64le-linux-gnu [ppc64el] , gnat-9-powerpc64le-linux-gnu [ppc64el] , g++-9-m68k-linux-gnu [m68k] , gobjc-9-m68k-linux-gnu [m68k] , gfortran-9-m68k-linux-gnu [m68k] , gdc-9-m68k-linux-gnu [m68k] , g++-9-sh4-linux-gnu [sh4] , gobjc-9-sh4-linux-gnu [sh4] , gfortran-9-sh4-linux-gnu [sh4] , gnat-9-sh4-linux-gnu [sh4] , g++-9-sparc64-linux-gnu [sparc64] , gobjc-9-sparc64-linux-gnu [sparc64] , gfortran-9-sparc64-linux-gnu [sparc64] , gdc-9-sparc64-linux-gnu [sparc64] , gccgo-9-sparc64-linux-gnu [sparc64] , gnat-9-sparc64-linux-gnu [sparc64] , g++-9-s390x-linux-gnu [s390x] , gobjc-9-s390x-linux-gnu [s390x] , gfortran-9-s390x-linux-gnu [s390x] , gdc-9-s390x-linux-gnu [s390x] , gccgo-9-s390x-linux-gnu [s390x] , gnat-9-s390x-linux-gnu [s390x] , g++-9-x86-64-linux-gnux32 [x32] , gobjc-9-x86-64-linux-gnux32 [x32] , gfortran-9-x86-64-linux-gnux32 [x32] , gdc-9-x86-64-linux-gnux32 [x32] , gccgo-9-x86-64-linux-gnux32 [x32] , gnat-9-x86-64-linux-gnux32 [x32] , g++-9-mips64el-linux-gnuabin32 [mipsn32el] , gobjc-9-mips64el-linux-gnuabin32 [mipsn32el] , gfortran-9-mips64el-linux-gnuabin32 [mipsn32el] , gdc-9-mips64el-linux-gnuabin32 [mipsn32el] , gccgo-9-mips64el-linux-gnuabin32 [mipsn32el] , gnat-9-mips64el-linux-gnuabin32 [mipsn32el] , g++-9-mipsisa32r6-linux-gnu [mipsr6] , gobjc-9-mipsisa32r6-linux-gnu [mipsr6] , gfortran-9-mipsisa32r6-linux-gnu [mipsr6] , gdc-9-mipsisa32r6-linux-gnu [mipsr6] , gccgo-9-mipsisa32r6-linux-gnu [mipsr6] , gnat-9-mipsisa32r6-linux-gnu [mipsr6] , g++-9-mipsisa32r6el-linux-gnu [mipsr6el] , gobjc-9-mipsisa32r6el-linux-gnu [mipsr6el] , gfortran-9-mipsisa32r6el-linux-gnu [mipsr6el] , gdc-9-mipsisa32r6el-linux-gnu [mipsr6el] , gccgo-9-mipsisa32r6el-linux-gnu [mipsr6el] , gnat-9-mipsisa32r6el-linux-gnu [mipsr6el] , g++-9-mipsisa64r6-linux-gnuabi64 [mips64r6] , gobjc-9-mipsisa64r6-linux-gnuabi64 [mips64r6] , gfortran-9-mipsisa64r6-linux-gnuabi64 [mips64r6] , gdc-9-mipsisa64r6-linux-gnuabi64 [mips64r6] , gccgo-9-mipsisa64r6-linux-gnuabi64 [mips64r6] , gnat-9-mipsisa64r6-linux-gnuabi64 [mips64r6] , g++-9-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , gobjc-9-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , gfortran-9-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , gdc-9-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , gccgo-9-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , gnat-9-mipsisa64r6el-linux-gnuabi64 [mips64r6el] , g++-9-mipsisa64r6-linux-gnuabin32 [mipsn32r6] , gobjc-9-mipsisa64r6-linux-gnuabin32 [mipsn32r6] , gfortran-9-mipsisa64r6-linux-gnuabin32 [mipsn32r6] , gdc-9-mipsisa64r6-linux-gnuabin32 [mipsn32r6] , gccgo-9-mipsisa64r6-linux-gnuabin32 [mipsn32r6] , gnat-9-mipsisa64r6-linux-gnuabin32 [mipsn32r6] , g++-9-mipsisa64r6el-linux-gnuabin32 [mipsn32r6el] , gobjc-9-mipsisa64r6el-linux-gnuabin32 [mipsn32r6el] , gfortran-9-mipsisa64r6el-linux-gnuabin32 [mipsn32r6el] , gdc-9-mipsisa64r6el-linux-gnuabin32 [mipsn32r6el] , gccgo-9-mipsisa64r6el-linux-gnuabin32 [mipsn32r6el] , gnat-9-mipsisa64r6el-linux-gnuabin32 [mipsn32r6el] , Build-Depends-Indep: doxygen (>= 1.7.2), graphviz (>= 2.2), ghostscript, texlive-latex-base, xsltproc, libxml2-utils, docbook-xsl-ns Homepage: http://gcc.gnu.org/ Vcs-Browser: https://salsa.debian.org/toolchain-team/gcc diff -Nru gcc-snapshot-20181214/debian/control.m4 gcc-snapshot-20190102/debian/control.m4 --- gcc-snapshot-20181214/debian/control.m4 2019-01-02 09:51:29.000000000 +0000 +++ gcc-snapshot-20190102/debian/control.m4 2019-01-02 09:51:41.000000000 +0000 @@ -5433,7 +5433,8 @@ Package: gcc`'PV-source Architecture: all Priority: PRI(optional) -Depends: make, autoconf2.64, quilt, patchutils, sharutils, gawk, ${misc:Depends} +Depends: make, autoconf2.64, quilt, patchutils, sharutils, gawk, lsb-release, + ${misc:Depends} Description: Source of the GNU Compiler Collection This package contains the sources and patches which are needed to build the GNU Compiler Collection (GCC). diff -Nru gcc-snapshot-20181214/debian/patches/ada-sjlj.diff gcc-snapshot-20190102/debian/patches/ada-sjlj.diff --- gcc-snapshot-20181214/debian/patches/ada-sjlj.diff 2019-01-02 09:51:29.000000000 +0000 +++ gcc-snapshot-20190102/debian/patches/ada-sjlj.diff 2019-01-02 09:51:41.000000000 +0000 @@ -387,7 +387,7 @@ dependencies = { module=all-gnattools; on=all-target-libgnatvsn; }; --- a/src/configure.ac +++ b/src/configure.ac -@@ -168,6 +168,7 @@ target_libraries="target-libgcc \ +@@ -167,6 +167,7 @@ target_libraries="target-libgcc \ target-libffi \ target-libobjc \ target-libada \ @@ -395,7 +395,7 @@ ${target_libiberty} \ target-libgnatvsn \ target-libgo \ -@@ -455,7 +456,7 @@ AC_ARG_ENABLE(libada, +@@ -454,7 +455,7 @@ AC_ARG_ENABLE(libada, ENABLE_LIBADA=$enableval, ENABLE_LIBADA=yes) if test "${ENABLE_LIBADA}" != "yes" ; then @@ -415,7 +415,7 @@ # Link flags used to build gnat tools. By default we prefer to statically # link with libgcc to avoid a dependency on shared libgcc (which is tricky -@@ -586,6 +586,26 @@ install-gnatlib: ../stamp-gnatlib-$(RTSD +@@ -561,6 +561,26 @@ install-gnatlib: ../stamp-gnatlib-$(RTSD cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.adb cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.ads @@ -442,16 +442,15 @@ ../stamp-gnatlib2-$(RTSDIR): $(RM) $(RTSDIR)/s-*.ali $(RM) $(RTSDIR)/s-*$(objext) -@@ -848,7 +868,7 @@ gnatlib-shared: - # commenting the pragma instead of deleting the line, as the latter might - # result in getting multiple blank lines, hence possible style check errors. +@@ -826,6 +846,7 @@ gnatlib-shared: gnatlib-sjlj: -- $(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="" \ -+ $(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="-gcc" RTSDIR="$(RTSDIR)" \ - THREAD_KIND="$(THREAD_KIND)" ../stamp-gnatlib1-$(RTSDIR) - sed \ - -e 's/Frontend_Exceptions.*/Frontend_Exceptions : constant Boolean := True;/' \ -@@ -857,6 +877,7 @@ gnatlib-sjlj: + $(MAKE) $(FLAGS_TO_PASS) \ + EH_MECHANISM="" \ ++ RTSDIR="$(RTSDIR)" \ + MULTISUBDIR="$(MULTISUBDIR)" \ + THREAD_KIND="$(THREAD_KIND)" \ + ../stamp-gnatlib1-$(RTSDIR) +@@ -835,6 +856,7 @@ gnatlib-sjlj: $(RTSDIR)/system.ads > $(RTSDIR)/s.ads $(MV) $(RTSDIR)/s.ads $(RTSDIR)/system.ads $(MAKE) $(FLAGS_TO_PASS) \ @@ -459,7 +458,7 @@ EH_MECHANISM="" \ GNATLIBFLAGS="$(GNATLIBFLAGS)" \ GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \ -@@ -908,6 +929,8 @@ b_gnatm.o : b_gnatm.adb +@@ -889,6 +911,8 @@ b_gnatm.o : b_gnatm.adb ADA_INCLUDE_DIR = $(libsubdir)/adainclude ADA_RTL_OBJ_DIR = $(libsubdir)/adalib @@ -470,9 +469,9 @@ --- a/src/gcc/ada/gcc-interface/config-lang.in +++ b/src/gcc/ada/gcc-interface/config-lang.in -@@ -34,8 +34,8 @@ gtfiles="\$(srcdir)/ada/gcc-interface/ad - - outputs="ada/gcc-interface/Makefile ada/Makefile" +@@ -43,8 +43,8 @@ if test "x$cross_compiling/$build/$host" + lang_requires="c c++" + fi -target_libs="target-libada target-libgnatvsn" -lang_dirs="libada gnattools" @@ -483,7 +482,7 @@ build_by_default=no --- a/src/gcc/ada/gcc-interface/Make-lang.in +++ b/src/gcc/ada/gcc-interface/Make-lang.in -@@ -846,6 +846,7 @@ ada.install-common: +@@ -837,6 +837,7 @@ ada.install-common: install-gnatlib: $(MAKE) -C ada $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) install-gnatlib$(LIBGNAT_TARGET) diff -Nru gcc-snapshot-20181214/debian/patches/ada-tools-move-ldflags.diff gcc-snapshot-20190102/debian/patches/ada-tools-move-ldflags.diff --- gcc-snapshot-20181214/debian/patches/ada-tools-move-ldflags.diff 2019-01-02 09:51:29.000000000 +0000 +++ gcc-snapshot-20190102/debian/patches/ada-tools-move-ldflags.diff 2019-01-02 09:51:41.000000000 +0000 @@ -29,12 +29,3 @@ # Build directory for the tools. Let's copy the target-dependent # sources using the same mechanism as for gnatlib. The other sources are -@@ -481,7 +481,7 @@ common-tools: ../stamp-tools - $(GNATMAKE) -c $(ADA_INCLUDES) vxaddr2line --GCC="$(CC) $(ALL_ADAFLAGS)" - $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) vxaddr2line - $(GNATLINK) -v vxaddr2line -o $@ \ -- --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" ../targext.o $(CLIB) -+ --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" ../targext.o $(CLIB) $(LDFLAGS) - - ../../vxlink$(exeext): ../stamp-tools - $(GNATMAKE) -c $(ADA_INCLUDES) vxlink-main --GCC="$(CC) $(ALL_ADAFLAGS)" diff -Nru gcc-snapshot-20181214/debian/patches/powerpcspe_nofprs.diff gcc-snapshot-20190102/debian/patches/powerpcspe_nofprs.diff --- gcc-snapshot-20181214/debian/patches/powerpcspe_nofprs.diff 2019-01-02 09:51:29.000000000 +0000 +++ gcc-snapshot-20190102/debian/patches/powerpcspe_nofprs.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,75 +0,0 @@ ---- a/src/libgcc/config/rs6000/crtsavfpr.S -+++ b/src/libgcc/config/rs6000/crtsavfpr.S -@@ -33,6 +33,7 @@ - - /* On PowerPC64 Linux, these functions are provided by the linker. */ - #ifndef __powerpc64__ -+#ifndef __NO_FPRS__ - - /* Routines for saving floating point registers, called by the compiler. */ - /* Called with r11 pointing to the stack header word of the caller of the */ -@@ -79,3 +80,4 @@ - CFI_ENDPROC - - #endif -+#endif ---- a/src/libgcc/config/rs6000/crtresfpr.S -+++ b/src/libgcc/config/rs6000/crtresfpr.S -@@ -33,6 +33,7 @@ - - /* On PowerPC64 Linux, these functions are provided by the linker. */ - #ifndef __powerpc64__ -+#ifndef __NO_FPRS__ - - /* Routines for restoring floating point registers, called by the compiler. */ - /* Called with r11 pointing to the stack header word of the caller of the */ -@@ -79,3 +80,4 @@ - CFI_ENDPROC - - #endif -+#endif ---- a/src/libgcc/config/rs6000/crtresxfpr.S -+++ b/src/libgcc/config/rs6000/crtresxfpr.S -@@ -33,6 +33,7 @@ - - /* On PowerPC64 Linux, these functions are provided by the linker. */ - #ifndef __powerpc64__ -+#ifndef __NO_FPRS__ - - /* Routines for restoring floating point registers, called by the compiler. */ - /* Called with r11 pointing to the stack header word of the caller of the */ -@@ -124,3 +125,4 @@ - CFI_ENDPROC - - #endif -+#endif ---- a/src/libgcc/config/rs6000/crtsavevr.S 2013-03-13 22:25:25.802681336 +0000 -+++ b/src/libgcc/config/rs6000/crtsavevr.S 2013-03-13 22:26:21.054695066 +0000 -@@ -24,6 +24,7 @@ - - /* On PowerPC64 Linux, these functions are provided by the linker. */ - #ifndef __powerpc64__ -+#ifndef __NO_FPRS__ - - #undef __ALTIVEC__ - #define __ALTIVEC__ 1 -@@ -85,3 +86,4 @@ - CFI_ENDPROC - - #endif -+#endif ---- a/src/libgcc/config/rs6000/crtrestvr.S 2013-03-13 22:25:28.394681980 +0000 -+++ b/src/libgcc/config/rs6000/crtrestvr.S 2013-03-13 22:26:21.058695067 +0000 -@@ -24,6 +24,7 @@ - - /* On PowerPC64 Linux, these functions are provided by the linker. */ - #ifndef __powerpc64__ -+#ifndef __NO_FPRS__ - - #undef __ALTIVEC__ - #define __ALTIVEC__ 1 -@@ -85,3 +86,4 @@ - CFI_ENDPROC - - #endif -+#endif diff -Nru gcc-snapshot-20181214/debian/patches/powerpcspe_remove_many.diff gcc-snapshot-20190102/debian/patches/powerpcspe_remove_many.diff --- gcc-snapshot-20181214/debian/patches/powerpcspe_remove_many.diff 2019-01-02 09:51:29.000000000 +0000 +++ gcc-snapshot-20190102/debian/patches/powerpcspe_remove_many.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -# DP: Subject: [PATCH] remove -many on __SPE__ target -# DP: this helps to to detect opcodes which are not part of the current -# DP: CPU because without -many gas won't touch them. This currently could -# DP: break the kernel build as the 603 on steroids cpus use performance -# DP: counter opcodes which are not available on the steroid less 603 core. - ---- a/src/gcc/config/powerpcspe/powerpcspe.h -+++ b/src/gcc/config/powerpcspe/powerpcspe.h -@@ -79,6 +79,12 @@ - - #define ASM_CPU_476_SPEC "-m476" - -+#ifndef __SPE__ -+#define ASM_CPU_SPU_MANY_NOT_SPE "-many" -+#else -+#define ASM_CPU_SPU_MANY_NOT_SPE -+#endif -+ - /* Common ASM definitions used by ASM_SPEC among the various targets for - handling -mcpu=xxx switches. There is a parallel list in driver-powerpcspe.c to - provide the default assembler options if the user uses -mcpu=native, so if -@@ -145,7 +151,8 @@ - %{maltivec: -maltivec} \ - %{mvsx: -mvsx %{!maltivec: -maltivec} %{!mcpu*: %(asm_cpu_power7)}} \ - %{mpower8-vector|mcrypto|mdirect-move|mhtm: %{!mcpu*: %(asm_cpu_power8)}} \ ---many" -+" \ -+ASM_CPU_SPU_MANY_NOT_SPE - - #define CPP_DEFAULT_SPEC "" - diff -Nru gcc-snapshot-20181214/debian/rules2 gcc-snapshot-20190102/debian/rules2 --- gcc-snapshot-20181214/debian/rules2 2019-01-02 09:51:29.000000000 +0000 +++ gcc-snapshot-20190102/debian/rules2 2019-01-02 09:51:41.000000000 +0000 @@ -433,11 +433,6 @@ endif endif -ifeq ($(findstring powerpcspe,$(DEB_TARGET_ARCH)),powerpcspe) - CONFARGS += --with-cpu=8548 --enable-e500_double - CONFARGS += --enable-obsolete -endif - ifneq (,$(findstring softfloat,$(DEB_TARGET_GNU_CPU))) CONFARGS += --with-float=soft endif @@ -546,7 +541,7 @@ endif ifeq ($(DEB_TARGET_ARCH_OS),linux) - ifneq (,$(findstring $(DEB_TARGET_ARCH), alpha powerpc powerpcspe ppc64 ppc64el s390 s390x sparc sparc64)) + ifneq (,$(findstring $(DEB_TARGET_ARCH), alpha powerpc ppc64 ppc64el s390 s390x sparc sparc64)) CONFARGS += --with-long-double-128 endif endif @@ -788,7 +783,7 @@ # no profiledbootstrap on the following architectures # - m68k: we're happy that it builds at all no_profiled_bs_archs := alpha arm hppa m68k mips mipsel mips64 mips64el \ - powerpcspe s390 sh4 sparc sparc64 + s390 sh4 sparc sparc64 ifeq (,$(filter $(DEB_TARGET_ARCH),$(no_profiled_bs_archs))) bootstrap_target = profiledbootstrap endif diff -Nru gcc-snapshot-20181214/debian/rules.conf gcc-snapshot-20190102/debian/rules.conf --- gcc-snapshot-20181214/debian/rules.conf 2019-01-02 09:51:29.000000000 +0000 +++ gcc-snapshot-20190102/debian/rules.conf 2019-01-02 09:51:41.000000000 +0000 @@ -437,7 +437,7 @@ ifneq ($(DEB_CROSS),yes) # all archs for which to create b-d's -any_archs = alpha amd64 armel armhf arm64 i386 mips mipsel mips64 mips64el mipsn32 powerpc powerpcspe ppc64 ppc64el m68k sh4 sparc64 s390x x32 +any_archs = alpha amd64 armel armhf arm64 i386 mips mipsel mips64 mips64el mipsn32 powerpc ppc64 ppc64el m68k sh4 sparc64 s390x x32 ifeq (yes,$(MIPS_R6_ENABLED)) any_archs += mipsn32el mipsr6 mipsr6el mips64r6 mips64r6el mipsn32r6 mipsn32r6el endif @@ -496,7 +496,7 @@ else ifneq (,$(filter $(distrelease), wheezy precise trusty wily xenial)) gnat_build_dep := gnat-5$(NT) [$(ada_no_archs)], g++-5$(NT) else ifneq (,$(filter $(distrelease), stretch yakkety zesty)) - gnat_build_dep := gnat-6$(NT) [$(ada_no_archs) !powerpcspe !x32], g++-7 [powerpcspe x32], gnat-7 [powerpcspe x32], g++-6$(NT) + gnat_build_dep := gnat-6$(NT) [$(ada_no_archs) !x32], g++-7 [x32], gnat-7 [x32], g++-6$(NT) #else ifneq (,$(filter $(distrelease), buster sid artful bionic)) # gnat_build_dep := gnat-7$(NT) [$(ada_no_archs)], g++-7$(NT) else diff -Nru gcc-snapshot-20181214/debian/rules.defs gcc-snapshot-20190102/debian/rules.defs --- gcc-snapshot-20181214/debian/rules.defs 2019-01-02 09:51:29.000000000 +0000 +++ gcc-snapshot-20190102/debian/rules.defs 2019-01-02 09:51:41.000000000 +0000 @@ -714,7 +714,7 @@ ada_no_cross := no ada_no_snap := no ifeq ($(single_package),yes) - ifneq (,$(filter $(DEB_TARGET_ARCH),alpha powerpcspe)) + ifneq (,$(filter $(DEB_TARGET_ARCH),alpha)) ada_no_snap := yes endif endif @@ -973,7 +973,7 @@ libphobos_no_cpus := alpha avr arm64 hppa ia64 m68k \ mips64 mipsn32 mipsn32el \ mipsr6 mipsr6el mips64r6 mips64r6el mipsn32r6 mipsn32r6el \ - powerpc powerpcspe ppc64 s390 s390x sh4 sparc sparc64 + powerpc ppc64 s390 s390x sh4 sparc sparc64 libphobos_no_systems := gnu kfreebsd-gnu ifneq (,$(filter $(DEB_TARGET_ARCH_CPU),$(libphobos_no_cpus))) with_libphobos := disabled for cpu $(DEB_TARGET_ARCH_CPU) @@ -1253,7 +1253,7 @@ # gold -------------------- # armel with binutils 2.20.51 only -gold_archs = amd64 armel armhf i386 powerpc powerpcspe ppc64 ppc64el s390x sparc sparc64 x32 hurd-i386 +gold_archs = amd64 armel armhf i386 powerpc ppc64 ppc64el s390x sparc sparc64 x32 hurd-i386 ifneq (,$(filter $(DEB_TARGET_ARCH),$(gold_archs))) with_gold := yes endif diff -Nru gcc-snapshot-20181214/debian/rules.parameters gcc-snapshot-20190102/debian/rules.parameters --- gcc-snapshot-20181214/debian/rules.parameters 2019-01-02 09:51:29.000000000 +0000 +++ gcc-snapshot-20190102/debian/rules.parameters 2019-01-02 09:51:41.000000000 +0000 @@ -2,14 +2,14 @@ GCC_VERSION := 9.0.0 NEXT_GCC_VERSION := 9.0.1 BASE_VERSION := 9 -SOURCE_VERSION := 1:20181214-0ubuntu1 -DEB_VERSION := 20181214-0ubuntu1 -DEB_EVERSION := 1:20181214-0ubuntu1 -DEB_GDC_VERSION := 20181214-0ubuntu1 +SOURCE_VERSION := 1:20190102-1ubuntu1 +DEB_VERSION := 20190102-1ubuntu1 +DEB_EVERSION := 1:20190102-1ubuntu1 +DEB_GDC_VERSION := 20190102-1ubuntu1 DEB_SOVERSION := 5 DEB_SOEVERSION := 1:5 DEB_LIBGCC_SOVERSION := -DEB_LIBGCC_VERSION := 1:20181214-0ubuntu1 +DEB_LIBGCC_VERSION := 1:20190102-1ubuntu1 DEB_STDCXX_SOVERSION := 5 DEB_GOMP_SOVERSION := 5 GCC_SONAME := 1 diff -Nru gcc-snapshot-20181214/debian/rules.patch gcc-snapshot-20190102/debian/rules.patch --- gcc-snapshot-20181214/debian/rules.patch 2019-01-02 09:51:29.000000000 +0000 +++ gcc-snapshot-20190102/debian/rules.patch 2019-01-02 09:51:41.000000000 +0000 @@ -71,7 +71,6 @@ gcc-force-cross-layout \ gcc-search-prefixed-as-ld \ kfreebsd-decimal-float \ - powerpcspe_remove_many \ # TODO: # pr81829 \ @@ -163,10 +162,6 @@ endif endif -ifeq ($(DEB_TARGET_ARCH),powerpcspe) - debian_patches += powerpcspe_nofprs -endif - # all patches below this line are applied for gcc-snapshot builds as well ifeq ($(single_package),yes) Binary files /tmp/tmpXuw_Wz/sMLJULWlyI/gcc-snapshot-20181214/gcc-20181214.tar.xz and /tmp/tmpXuw_Wz/9BGr6mQM9C/gcc-snapshot-20190102/gcc-20181214.tar.xz differ Binary files /tmp/tmpXuw_Wz/sMLJULWlyI/gcc-snapshot-20181214/gcc-20190102.tar.xz and /tmp/tmpXuw_Wz/9BGr6mQM9C/gcc-snapshot-20190102/gcc-20190102.tar.xz differ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/ChangeLog 2018-12-11 09:06:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/ChangeLog 2018-12-29 02:41:32.000000000 +0000 @@ -1,3 +1,11 @@ +2018-12-21 Thomas Preud'homme + + * MAINTAINERS (Write After Approval): Update my maintainer address. + +2018-12-21 Gergö Barany + + * MAINTAINERS (Write After Approval): Add myself. + 2018-12-10 Segher Boessenkool * contrib/config-list.mk: Remove powerpc-eabispe and powerpc-linux_spe. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/contrib/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/contrib/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/contrib/ChangeLog 2018-11-27 09:27:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/contrib/ChangeLog 2019-01-02 08:05:14.000000000 +0000 @@ -1,3 +1,7 @@ +2019-01-01 Jakub Jelinek + + * update-copyright.py: Add Gerard Jungman as external author. + 2018-11-26 Iain Buclaw * update-copyright.py (TestsuiteFilter): Skip .d tests. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/contrib/update-copyright.py gcc-snapshot-20190102/=unpacked-tar1=/contrib/update-copyright.py --- gcc-snapshot-20181214/=unpacked-tar1=/contrib/update-copyright.py 2018-11-27 09:27:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/contrib/update-copyright.py 2019-01-02 08:05:14.000000000 +0000 @@ -686,6 +686,7 @@ self.add_external_author ('Cavium Networks.') self.add_external_author ('Faraday Technology Corp.') self.add_external_author ('Florida State University') + self.add_external_author ('Gerard Jungman') self.add_external_author ('Greg Colvin and Beman Dawes.') self.add_external_author ('Hewlett-Packard Company') self.add_external_author ('Intel Corporation') diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ABOUT-GCC-NLS gcc-snapshot-20190102/=unpacked-tar1=/gcc/ABOUT-GCC-NLS --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ABOUT-GCC-NLS 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ABOUT-GCC-NLS 2019-01-02 08:05:15.000000000 +0000 @@ -49,7 +49,7 @@ rebuilt. -Copyright (C) 1998-2018 Free Software Foundation, Inc. +Copyright (C) 1998-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/acinclude.m4 gcc-snapshot-20190102/=unpacked-tar1=/gcc/acinclude.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/acinclude.m4 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/acinclude.m4 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -dnl Copyright (C) 2005-2018 Free Software Foundation, Inc. +dnl Copyright (C) 2005-2019 Free Software Foundation, Inc. dnl dnl This file is part of GCC. dnl diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ada/adaint.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ada/adaint.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ada/adaint.c 2018-10-15 11:36:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ada/adaint.c 2018-12-29 02:41:34.000000000 +0000 @@ -3239,9 +3239,13 @@ #endif #if defined (__APPLE__) -#include -#include -#include +# if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1060 +# include +# include +# include +# else +# include +# endif /* System-wide thread identifier. Note it could be truncated on 32 bit hosts. @@ -3249,6 +3253,7 @@ void * __gnat_lwp_self (void) { +#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1060 thread_identifier_info_data_t data; mach_msg_type_number_t count = THREAD_IDENTIFIER_INFO_COUNT; kern_return_t kret; @@ -3259,6 +3264,9 @@ return (void *)(uintptr_t)data.thread_id; else return 0; +#else + return (void *)pthread_mach_thread_np (pthread_self ()); +#endif } #endif diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ada/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/gcc/ada/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ada/ChangeLog 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ada/ChangeLog 2019-01-02 08:05:17.000000000 +0000 @@ -1,5697 +1,11 @@ -2018-12-11 Eric Botcazou - - PR ada/88429 - * gcc-interface/Makefile.in (./stamp-gnatlib1-$(RTSDIR)): Also pass - MULTISUBDIR to sub-make and add quotes around $(THREAD_KIND). - (gnatlib-shared-dual): Also pass PICFLAG_FOR_TARGET to sub-make. - (gnatlib-sjlj): Also pass MULTISUBDIR to sub-make, but do not pass - PICFLAG_FOR_TARGET. - (gnatlib-zcx): Likewise. - -2018-12-11 Piotr Trojanek - - * libgnat/a-calend.ads: Add "Global => null" contract to pure routines. - -2018-12-11 Hristian Kirtchev - - * freeze.adb (Check_Pragma_Thread_Local_Storage): Use the - violating set to diagnose detect an illegal initialization, - rather than the complement of the OK set. - (Freeze_Object_Declaration): Factorize code in - Has_Default_Initialization. - (Has_Default_Initialization, Has_Incompatible_Initialization): - New routines. - -2018-12-11 Dmitriy Anisimkov - - * libgnat/g-socket.ads (Family_Type): Add new enumerated value - Family_Unspec to be able to use it in Get_Address_Info parameter - and find IPv4 together with IPv6 addresses. - (Inet_Addr_Bytes_Length): Zero length for Family_Unspec. New - IPv6 predefined constant addresses. - (IPv4_To_IPv6_Prefix): IPv4 mapped to IPv6 address prefix. - (Is_IPv4_Address): Rename from Is_IP_Address and published. - (Is_IPv6_Address): New routine. - (Image of Inet_Addr_Type): Fix description about IPv6 address - text representation. - (Level_Type): New propocol level IP_Protocol_For_IPv6_Level. - (Add_Membership_V4): New socket option equal to Add_Membership. - (Drop_Membership_V4): New socket option equal to - Drop_Membership. - (Multicast_If_V4): New socket option equal to Multicast_If. - (Multicast_Loop_V4, Add_Membership_V6, Drop_Membership_V6, - Multicast_If_V6, Multicast_Loop_V6, Multicast_Hops, IPv6_Only): - New socket option for IPv6. - (Address_Info): New record to keep address info. - (Address_Info_Array): Array to keep address info records. - (Get_Address_Info): Routine to get address info records by host - and service names. - (Host_Service): Record to keep host and service names. - (Get_Name_Info): New routine to get host and service names by - address. - (Create_Socket): Add Level parameter, IP_Protocol_For_IP_Level - default. - (Name_Array, Inet_Addr_Array): Change array index to Positive. - * libgnat/g-socket.adb (IPV6_Mreq): New record definition for - IPv6. - (Hex_To_Char): Remove. - (Short_To_Network, Network_To_Short): Move to package - GNAT.Sockets.Thin_Common. - (Is_IP_Address): Remove. - (To_In_Addr, To_Inet_Addr): Move to package - GNAT.Sockets.Thin_Common. - (Get_Socket_Option): Get value of Multicast_Loop option as - integer boolean, process IPv6 options. Don't try to get - Add_Membership_V4, Add_Membership_V6, Drop_Membership_V4, and - Drop_Membership_V6 as not supported by the socket API. - (Set_Socket_Option): Set value of Multicast_Loop option as - integer boolean, process IPv6 options. - * gsocket.h - (IPV6_ADD_MEMBERSHIP): Define from IPV6_JOIN_GROUP if necessary - for VxWorks. - (IPV6_DROP_MEMBERSHIP): Define from IPV6_LEAVE_GROUP if - necessary for VxWorks - (HAVE_INET_NTOP): New definition. - (HAVE_INET_PTON): Includes VxWorks now. - * socket.c (__gnat_getaddrinfo, __gnat_getnameinfo, - __gnat_freeaddrinfo, __gnat_gai_strerror, __gnat_inet_ntop): New - routines. - * libgnat/g-sothco.ads, libgnat/g-sothco.adb - (socklen_t, In6_Addr, To_In6_Addr): New. - (To_In_Addr, To_Inet_Addr): Move from package body GNAT.Sockets. - (To_Inet_Addr): New overload with In6_Addr type parmeter. - (In_Addr_Access_Array): Remove. - (Sockaddr): Unchecked_Union instead of Sockaddr_In and old - defined generic Sockaddr. - (Set_Address): Use it to set family, port and address into - Sockaddr. - (Get_Address): New routine to get Socket_Addr_Type from - Sockaddr. - (Addrinfo): Structure to use with getaddrinfo. - (C_Getaddrinfo, C_Freeaddrinfo, C_Getnameinfo, C_GAI_Strerror, - Inet_Ntop): New routine import. - (Short_To_Network, Network_To_Short): Move from package body - GNAT.Sockets. - * libgnat/g-stsifd__sockets.adb: Use Sockaddr instead of - Sockaddr_In. - * s-oscons-tmplt.c (AF_UNSPEC, EAI_SYSTEM, SOCK_RAW, - IPPROTO_IPV6, IP_RECVERR, SIZEOF_socklen_t, IF_NAMESIZE): New - constants. - (AI_xxxx_OFFSET): Constants to consider platform differences in - field positions and sizes for addrinfo structure. - (AI_xxxxx): Flags for getaddrinfo. - (NI_xxxxx): Flags for getnameinfo. - (IPV6_xxxxx): Socket options for IPv6. - (Inet_Ntop_Linkname): New routine. - -2018-12-11 Yannick Moy - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Deactivate - expansion in ignored ghost subprogram body. - * sem_ch7.adb (Analyze_Package_Body_Helper): Deactivate - expansion in ignored ghost package body. - -2018-12-11 Ed Schonberg - - * exp_unst.adb (Register_Subprogram): A subprogram whose address - is taken (through attribute Address or Access) is reachable and - cannot be eliminated, even if there is no explicit call to it: - the address may be used in an indirect call or in some - address-related operation. - -2018-12-11 Ed Schonberg - - * sem_util.adb (Get_Actual_Subtype): Function can return type - mark. - (Get_Cursor_Type): Improve recovery and error message on a - misplaced First aspect for an iterable type. - -2018-12-11 Hristian Kirtchev - - * checks.adb: Add with and use clauses for Sem_Mech. - (Ensure_Valid): Update the "annoying special case" to include - entry and function calls. Use Get_Called_Entity to obtain the - entry or subprogram being invoked, rather than retrieving it - manually. Parameters passed by reference do not need a validity - check. - -2018-12-11 Yannick Moy - - * sem_prag.adb (Analyze_Global_Item): Refine error message. - -2018-12-11 Ed Schonberg - - * exp_ch7.adb (Check_Unnesting_In_Declarations): Extend - subprogram so that it is usable for visible and private - declarations of a package declaration, not just for declarations - in the pakage body. - * exp_ch13.adb (Expand_Freeze_Entity): Handle properly the - freezing of a finalizer routine generated for a controlled objet - declaration. Special processing already applies to finalizers - because they are usually displaced into another construct. - -2018-12-11 Arnaud Charlet - - * exp_unst.adb (Unnest_Subprogram): Ensure Current_Subprogram is - always initialized. - -2018-12-11 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity): Add - gnat_annotate_type local variable initialized to Empty. - : Set it to the Cloned_Subtype, if any. For - types, back-annotate alignment and size values earlier and only - if the DECL was created here; otherwise, if gnat_annotate_type - is present, take the values from it. - (gnat_to_gnu_field): Add gnat_clause local variable. If a - component clause is present, call validate_size only once on the - Esize of the component. Otherwise, in the packed case, do not - call validate_size again on the type of the component but - retrieve directly its RM size. - (components_to_record): Minor tweak. - (set_rm_size): Remove useless test. - * gcc-interface/trans.c (gnat_to_gnu): Do wrap the instance of a - boolean discriminant attached to a variant part. - -2018-12-11 Ed Schonberg - - * sem_aggr.adb (Array_Aggr_Subtype. Resolve_Aggr_Expr): Indicate - that aggregate subtype has a predicate if the component type has - a predicate; do not rely on exisatence of predicate function for - component, in case component is a type no yet frozen, for which - predicate function has not been created yet. - -2018-12-11 Eric Botcazou - - * exp_aggr.adb (Packed_Array_Aggregate_Handled): Bail out for - any non-scalar type as component type of the array. - -2018-12-11 Eric Botcazou - - * einfo.ads (Is_Bit_Packed_Array): Fix values of component size. - (Is_Packed): Likewise. - * gcc-interface/utils.c (convert): Do not extract the value of a - justified modular type if the destination type is a regular - array. - * gcc-interface/decl.c (gnat_to_gnu_component_type): Pass - TYPE_DECL to validate_size wherever the array has packed - components. - -2018-12-11 Bob Duff - - * gnat1drv.adb (gnat1drv): Pass the correct Object value when - calling Write_ALI in the case of -gnatQ. - * gnatbind.adb (Gnatbind): Avoid silent failure; give an error - message. - -2018-12-11 Ed Schonberg - - * exp_unst.adb (Needs_Fat_Pointer): A fat pointer is required if - the entity has a private type whose full view is an - unconstrained array type. - (Rewrite_One_Ref): If the reference is to a static constant, use - its value rather than create a reference through the activation - record. This is more efficient, and furthermore indispensable if - the context requires a static constant, such as in a branch of a - case statement. - -2018-12-11 Ed Schonberg - - * sem_ch3.adb (Analyze_Object_Declaration): Apply - Dynamic_Predicate check to an object of an array type - initialized with an aggregate. - -2018-12-11 Hristian Kirtchev - - * freeze.adb (Add_To_Result): Move the ignored Ghost-specific - handling of freeze nodes to... - (Freeze_Entity): ...here. This ensures that the freeze nodes of - constructs that have recursive freezing are preserved when the - context is ignored Ghost, and the top level construct being - frozen is non-Ghost. - -2018-12-11 Ed Schonberg - - * uintp.ads, uintp.adb (UI_From_Integral): New generic function, - to simplify construction of Universal_Integer representations - from any Integer type. If type is small enough the code is - equivalent to a call to UI_To_Int with appropriate conversions; - otherwise the routine uses the existing mechanism of building a - vector of suitable integer values and calling Vector_To_Uint. - The routine must not be applied to a biased type. - -2018-12-11 Ed Schonberg - - * sem_ch3.adb (Build_Itype_Reference): Handle properly an itype - reference created for a function that is a compilation unit, for - example if the function builds in place an object of a limited - type. - -2018-12-11 Dmitriy Anisimkov - - * libgnat/g-socket.ads, libgnat/g-socket.adb: Fix duration - computations to be compatible with the type for socket timeouts - on Windows. - -2018-12-11 Gary Dismukes - - * exp_util.ads: Use preferred U.S. spelling of "honored". - * sem_spark.adb: Remove extra whitespace. - -2018-12-11 Hristian Kirtchev - - * exp_util.adb (Insert_Action): Add new formal parameter - Spec_Expr_OK. - (Insert_Actions): Add new formal parameter Spec_Expr_OK. Update - all calls to Insert_Actions where relevant. Honour an insertion - from a spec expression context when requested by the caller. - * exp_util.ads (Insert_Action): Add new formal parameter - Spec_Expr_OK. - (Insert_Actions): Add new formal parameter Spec_Expr_OK. - * freeze.adb (Add_To_Result): Force the insertion of the freeze - node even when the context is a spec expression. - -2018-12-11 Jerome Lambourg - - * vxaddr2line.adb, vxlink-bind.adb, vxlink-bind.ads, - vxlink-link.adb, vxlink-link.ads, vxlink-main.adb, vxlink.adb, - vxlink.ads: Remove. - * gcc-interface/Make-lang.in, gcc-interface/Makefile.in: Remove - bits for vxaddr2line. - -2018-12-11 Hristian Kirtchev - - * exp_aggr.adb, exp_ch7.adb, gnat1drv.adb, sem_ch10.adb, - sem_ch13.adb, sem_ch6.adb, sem_ch7.adb, sem_util.adb: Minor - reformatting. - -2018-12-11 Eric Botcazou - - * fe.h (Is_Atomic_Object): Declare. - (Is_Volatile_Object): Likewise. - * gcc-interface/trans.c (atomic_or_volatile_copy_required_p): - New. - (Call_to_gnu): Generate a copy for an actual parameter passed by - reference if the conditions set forth by RM C.6(19) are met and - specificially deal with an atomic actual parameter. - -2018-12-11 Piotr Trojanek - - * sem_util.adb (Is_Subprogram_Stub_Without_Prior_Declaration): - Return False on stubs that complete a generic subprogram. - * sem_util.ads: Update corresponding comment. - -2018-12-11 Ed Schonberg - - * sem_ch4.adb (Analyze_Allocator): In GNATprove mode build a - subtype declaration if the allocator has a subtype indication - with a constraint. This allows additional proofs to be applied - to allocators that designate uninitialized constrained objects. - -2018-12-11 Yannick Moy - - * sem_util.adb (Has_Full_Default_Initialization): Consider - access types as having full default initialization. - -2018-12-11 Yannick Moy - - * gnat1drv.adb (Gnat1drv): Issue specific error message in - GNATprove mode when multiple file names on the command line. - * osint.adb, osint.ads (Dump_Command_Line_Source_File_Names): - New procedure to print file names on the command line. - -2018-12-11 Javier Miranda - - * exp_aggr.adb (Convert_To_Assignments): When gnerating C, do - not declare a temporary to initialize an aggregate assigned to - Out or In_Out parameters whose type has no discriminants. This - avoids stack overflow errors at runtime. - -2018-12-11 Ed Schonberg - - * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Extend - algorithm to cover subprograms generated in nested loops and in - exception handlers, in order to build an explicit elaboration - procedure in more complex cases. - -2018-12-11 Jerome Lambourg - - * Makefile.rtl, gcc-interface/Makefile.in: Remove crtbe bits for - VxWorks. - * libgnat/system-vxworks-arm-rtp-smp.ads, - libgnat/system-vxworks-arm-rtp.ads, - libgnat/system-vxworks-arm.ads, - libgnat/system-vxworks-e500-kernel.ads, - libgnat/system-vxworks-e500-rtp-smp.ads, - libgnat/system-vxworks-e500-rtp.ads, - libgnat/system-vxworks-ppc-kernel.ads, - libgnat/system-vxworks-ppc-rtp-smp.ads, - libgnat/system-vxworks-ppc-rtp.ads, - libgnat/system-vxworks-ppc.ads, - libgnat/system-vxworks-x86-kernel.ads, - libgnat/system-vxworks-x86-rtp-smp.ads, - libgnat/system-vxworks-x86-rtp.ads, - libgnat/system-vxworks7-aarch64-rtp-smp.ads, - libgnat/system-vxworks7-aarch64.ads, - libgnat/system-vxworks7-arm-rtp-smp.ads, - libgnat/system-vxworks7-e500-kernel.ads, - libgnat/system-vxworks7-e500-rtp-smp.ads, - libgnat/system-vxworks7-e500-rtp.ads, - libgnat/system-vxworks7-ppc-kernel.ads, - libgnat/system-vxworks7-ppc-rtp-smp.ads, - libgnat/system-vxworks7-ppc-rtp.ads, - libgnat/system-vxworks7-ppc64-kernel.ads, - libgnat/system-vxworks7-ppc64-rtp-smp.ads, - libgnat/system-vxworks7-x86-kernel.ads, - libgnat/system-vxworks7-x86-rtp-smp.ads, - libgnat/system-vxworks7-x86-rtp.ads, - libgnat/system-vxworks7-x86_64-kernel.ads, - libgnat/system-vxworks7-x86_64-rtp-smp.ads: Remove pragma - Linker_Options for --specs. - * vx_crtbegin.c, vx_crtbegin.inc, vx_crtbegin_array.c, - vx_crtbegin_attr.c, vx_crtend.c, vxworks-gnat-crtbe-link.spec: - Remove. - -2018-12-11 Ed Schonberg - - * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations, - Freeze_Entity_Checks): Process aspect Predicate in the same - fashion as aspect Dynamic_Predicate. - -2018-12-11 Eric Botcazou - - * gcc-interface/trans.c (elaborate_all_entities_for_package): - Skip aliasing subprograms. - -2018-12-11 Bob Duff - - * doc/gnat_ugn/gnat_utility_programs.rst: Update gnatmetric - documentation for the Libadalang-based version. - -2018-12-11 Javier Miranda - - * exp_aggr.adb (In_Object_Declaration): Removed. - (Is_CCG_Supported_Aggregate): New subprogram that replaces - In_Object_Declaration extending its functionality to indicate if - an aggregate is in a context supported by the CCG backend. - -2018-12-11 Bob Duff - - * doc/gnat_ugn/gnat_utility_programs.rst: Update gnatstub - documentation for the Libadalang-based version. - * gnat_ugn.texi: Regenerate. - -2018-12-11 Ed Schonberg - - * sem_ch13.adb (Push_Type, Pop_Type): New procedures, used for - analysis of aspect expressions for record types, whose - components (not only discriminants) may be referenced in aspect - expressions. - (Analyze_Aspect_Specifications, Analyze_Aspects_At_Freeze_Point, - Analyze_Aspect_At_End-Of_Declarations, - Resolve_Aspect_Expressions): Use the new subprograms. - (Check_Aspect_At_End_Of_Declarations): Improve error message. - (Build_Predicate_Functions): Do not build their bodies in a - generic unit. - (Is_Derived_Type_With_Constraint): New subprogram to uncover and - reject aspect specificationss on types that appear after the - type is frozen. - * sem_ch13.ads (Push_Scope_And_Install_Discriminants, - Uninstall_Discriminants_And_Pop_Scope): Remove. - * sem_ch6.adb, sem_ch6.ads (Fully_Conformant_Expressions): - Additional parameter to improve error message on illegal aspect - specifications whose resolution differ between aspect - specification and freeze point. - * freeze.adb: Remove references to - Install/Uninstall_Discriminants. - -2018-12-11 Pierre-Marie de Rodat - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst: - Document the -fgnat-encodings switch. - * gnat_ugn.texi: Regenerate. - -2018-12-11 Justin Squirek - - * sem_ch10.adb (Analyze_Subunit): Modify conditional to fully - remove parent contexts from library-level subprogram bodies in - addition to package bodies. - -2018-12-11 Hristian Kirtchev - - * exp_prag.adb (Expand_Pragma_Initial_Condition): Do not - generate an Initial_Condition procedure and a call to it when - the associated pragma is ignored. - * sem_ch10.adb (Analyze_Compilation_Unit): Minor cleanup. - -2018-12-11 Eric Botcazou - - * fe.h (Debug_Generated_Code): Declare. - * gcc-interface/gigi.h (enum inline_status_t): Rename - is_disabled to is_default, is_enabled to is_requested and add - is_prescribed. - * gcc-interface/decl.c (inline_status_for_subprog): New function. - (gnat_to_gnu_entity) : Use it to get the - inlining status of the subprogram. - * gcc-interface/trans.c (gigi): Adjust to above renaming. - (build_raise_check): Likewise. - (Compilation_Unit_to_gnu): Likewise. - (gnat_to_gnu): Likewise. - * gcc-interface/utils.c (create_subprog_decl): Likewise. Deal - with is_prescribed status by setting - DECL_DISREGARD_INLINE_LIMITS. Do not set the - DECL_NO_INLINE_WARNING_P flag if Debug_Generated_Code is true. - -2018-12-03 Gary Dismukes - - * sem_aux.adb (Object_Type_Has_Constrained_Partial_View): Return - True for an untagged discriminated formal derived type when - referenced within a generic body (augments existing test for - formal private types). - * sem_util.adb (Is_Dependent_Component_Of_Mutable_Type): If the - prefix of the name is a qualified expression, retrieve the - operand of that. Add a test of whether the (possible) - dereference prefix is a variable, and also test whether that - prefix might just be of an access type (occurs in some implicit - dereference cases) rather than being an explicit dereference. - Retrieve the Original_Node of the object name's main prefix and - handle the possibility of that being a qualified expression. - Remove special-case code for explicit dereferences that don't - come from source. Add test for the renaming not being within a - generic body for proper determination of whether a formal access - type is known to be constrained (it is within a generic spec, - but not in the body). Fix an existing incorrect test for - renaming of a discriminant-dependent component of a untagged - generic formal type being within a generic body, adding test of - taggedness and calling In_Generic_Body (now properly checks for - cases where the renaming is in a nongeneric body nested within a - generic). Return False in cases where the selector is not a - component (or discriminant), which can occur for - prefixed-notation calls. - -2018-12-03 Ed Schonberg - - * sem_res.adb (Apply_Check): For array types, apply a length - check rather than a qualification, to avoid spurious errors when - the value of a dependend expression has a matching length but - different bounds from those of the type of the contect. - -2018-12-03 Hristian Kirtchev - - * libgnat/a-calend.adb: Update the number of leap seconds. Add - the hard time values for year 2015 and 2016. - -2018-12-03 Gary Dismukes - - * exp_ch3.adb, libgnarl/s-taasde.adb, libgnarl/s-taenca.adb, - libgnarl/s-tarest.adb, libgnarl/s-tasini.adb, - libgnarl/s-taskin.ads, libgnarl/s-tasren.adb, - libgnarl/s-tassta.adb, libgnarl/s-tasuti.adb: Spelling fixes and - minor reformatting. - -2018-12-03 Eric Botcazou - - * exp_aggr.adb (Convert_To_Positional): Use - Static_Array_Aggregate to decide whether to set - Compile_Time_Known_Aggregate on an already flat aggregate. - (Expand_Array_Aggregate): Remove test on - Compile_Time_Known_Aggregate that turns out to be dead and - simplify. - (Is_Static_Component): New predicate extracted from... - (Static_Array_Aggregate): ...here. Test neither Is_Tagged_Type - nor Is_Controlled for the type, but test whether the component - type has discriminants. Use the Is_Static_Component predicate - consistently for the positional and named cases. - -2018-12-03 Eric Botcazou - - * freeze.adb (Freeze_Entity): Do not freeze the partial view of - a private subtype if its base type is also private with delayed - freeze before the full type declaration of the base type has - been seen. - * sem_ch7.adb (Preserve_Full_Attributes): Add assertion on - freeze node. - -2018-12-03 Eric Botcazou - - * exp_ch3.adb (Build_Record_Init_Proc): Inherit an - initialization procedure if it is present, even if it is null. - -2018-12-03 Patrick Bernardi - - * libgnarl/s-taskin.ads (ATC_Level_Base): Redefine to span from - -1 to Max_ATC_Nesting so that 0 represents no ATC nesting and -1 - represented a completed task. To increase readability, new - constants are introduced to represent key ATC nesting levels. - Consequently, Level_No_Pending_Abort replaces - ATC_Level_Infinity. ATC_Level related definitions now - documented. - (Ada_Task_Control_Block): The default initialization of - components ATC_Nesting_Level and Pending_ATC_Level now use new - ATC_Level_Base constants. Comments improved - * libgnarl/s-taskin.adb (Initialize): Improve the initialisation - of the first element of the Entry_Calls array to facilitate - better maintenance. - * libgnarl/s-taasde.ads: Update comment. - * libgnarl/s-taasde.adb, libgnarl/s-taenca.adb, - libgnarl/s-tasren.adb, libgnarl/s-tassta.adb, - libgnarl/s-tasuti.ads, libgnarl/s-tasuti.adb: Use new - ATC_Level_Base constants. - * libgnarl/s-tarest.adb (Create_Restricted_Task): Improve the - initialisation of the first element of the task's Entry_Calls - array to facilitate better maintenance. - * libgnarl/s-tasini.ads (Locked_Abort_To_Level): Update - signature to accept ATC_Level_Base. - * libgnarl/s-tasini.adb (Locked_Abort_To_Level): Update - signature to accept ATC_Level_Base. Use new ATC_Level_Base - constants and only modify the aborting task's Entry_Calls array - if any entry call is happening. - * libgnarl/s-tposen.adb (Protected_Single_Entry_Call): Reference - the first element of the task's Entry_Calls array via 'First - attribute to facilitate better maintenance. - -2018-12-03 Eric Botcazou - - * einfo.adb (Write_Entity_Info): Don't take Scope of Standard - package. - * sem_ch4.adb (Remove_Abstract_Operations): Add missing blank - lines to -gnatdv output. - * sem_type.adb (Write_Overloads): Take Entity of entity names - only. - -2018-12-03 Hristian Kirtchev - - * checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch3.adb, - exp_util.adb, exp_util.ads, repinfo.adb, sem_attr.adb, - sem_ch3.adb, sem_res.adb, sem_util.adb: Minor reformatting. - -2018-12-03 Ed Schonberg - - * sem_ch3.adb (Complete_Private_Subtype): Enhance comment. - -2018-12-03 Olivier Hainque - - * gcc-interface/lang.opt (fopenacc): New option for Ada. - * gcc-interface/misc.c (gnat_handle_option): Handle it. - * gcc-interface/trans.c (struct loop_info_d): Add OMP - attributes. - (Iterate_Acc_Clause_Arg, Acc_gnat_to_gnu): New functions, - helpers for OpenACC pragmas processing in Pragma_to_gnu. - (Acc_Var_to_gnu, Acc_Reduc_Var_to_gnu, Acc_Reduc_to_gnu): - Likewise. - (Acc_Size_Expr_to_gnu, Acc_Size_List_to_gnu): Likewise. - (Pragma_Acc_Data_to_gnu): Likewise. - (Pragma_to_gnu): Handle Pragma_Acc_Loop, Pragma_Acc_Data, - Pragma_Acc_Kernels and Pragma_Acc_Parallel. - (Acc_Loop_to_gnu, Regular_Loop_to_gnu): New functions. Helpers - for ... - (Loop_Statement_to_gnu): Rework to handle OpenACC loops. - -2018-12-03 Olivier Hainque - - * gcc-interface/targtyps.c (MALLOC_OBSERVABLE_ALIGNMENT): Set to - 2 * POINTER_SIZE. - -2018-12-03 Ed Schonberg - - * sem_res.adb (Set_Slice_Subtype): The index type of a slice is - constrained. - -2018-11-26 Matthias Klose - - PR ada/88191 - * libgnarl/s-linux__alpha.ads: Define SIGSYS. - -2018-11-19 Alexandre Oliva - - PR ada/81878 - * gcc-interface/config-lang.in (lang_requires): Set to "c c++" - when gnattools wants it. - -2018-11-19 Eric Botcazou - - * gcc-interface/cuintp.c (UI_From_gnu): Remove code for 32-bit hosts. - -2018-11-15 Eric Botcazou - - * gcc-interface/misc.c (gnat_init_gcc_eh): Do not override the switch - -fnon-call-exceptions passed on the command line in -gnatp mode. - -2018-11-14 Ed Schonberg - - * exp_util.ads, exp_util.adb: Change the profile of - Silly_Boolean_Array_Xor_Test, adding a formal that can be a copy - of the right opersnd. This prevents unnesting anomalies when - that operand contains uplevel references. - * exp_ch4.adb (Expand_Boolean_Operation): Use this new profile. - * exp_pakd.adb (Expand_Packed_Boolean_Operator): Ditto. - -2018-11-14 Patrick Bernardi - - * libgnarl/a-intnam__linux.ads: Add SIGSYS. - * libgnarl/s-linux__alpha.ads, libgnarl/s-linux__android.ads, - libgnarl/s-linux__hppa.ads, libgnarl/s-linux__mips.ads, - libgnarl/s-linux__riscv.ads, libgnarl/s-linux__sparc.ads, - libgnarl/s-linux__x32.ads: Rename SIGLTHRRES, SIGLTHRCAN and - SIGLTHRDBG to SIG32, SIG33 and SIG34 as their names are - implementation specific. - * libgnarl/s-osinte__linux.ads, libgnarl/s-linux.ads: Add - SIGSYS. Move SIG32, SIG33 and SIG34 from the unmasked list to - the reserved list. - -2018-11-14 Eric Botcazou - - * exp_aggr.adb (Is_Static_Element): New predicate extracted - from... - (Check_Static_Components): ...here. Call Is_Static_Element on - each element of the component association list, if any. - (Flatten): Duplicate the expression of an others choice only if - it is static or is an aggregate which can itself be flattened. - -2018-11-14 Olivier Hainque - - * sigtramp-vxworks-target.inc: Fix stack checking test errors in - ACATS, now that GCC can emit CFI rules referring to sp in - absence of a frame pointer. - -2018-11-14 Eric Botcazou - - * exp_aggr.adb (Check_Static_Components): Remove dead test. - (Flatten): Likewise. Move comment around. - -2018-11-14 Hristian Kirtchev - - * sem_ch6.adb (Analyze_Null_Procedure): Capture Ghost and - SPARK-related global state at the start of the routine. Set the - Ghost mode of the completed spec if any. Restore the saved - Ghost and SPARK-related global state on exit from the routine. - -2018-11-14 Eric Botcazou - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst - (-gnatR): Document new -gnatR4 level. - * gnat_ugn.texi: Regenerate. - * opt.ads (List_Representation_Info): Bump upper bound to 4. - * repinfo.adb: Add with clause for GNAT.HTable. - (Relevant_Entities_Size): New constant. - (Entity_Header_Num): New type. - (Entity_Hash): New function. - (Relevant_Entities): New set implemented with GNAT.HTable. - (List_Entities): Also list compiled-generated entities present - in the Relevant_Entities set. Consider that the Component_Type - of an array type is relevant. - (List_Rep_Info): Reset Relevant_Entities for each unit. - * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatR4. - * switch-m.adb (Normalize_Compiler_Switches): Likewise - * usage.adb (Usage): Likewise. - -2018-11-14 Javier Miranda - - * exp_disp.adb (Expand_Interface_Thunk): Extend handling of - renamings of the predefined equality primitive. - (Make_Secondary_DT): When calling Expand_Interface_Thunk() pass - it the primitive, instead of its Ultimate_Alias; required to - allow the called routine to identify renamings of the predefined - equality operation. - -2018-11-14 Hristian Kirtchev - - * freeze.adb (Check_Pragma_Thread_Local_Storage): New routine. A - variable with suppressed initialization has no initialization - for purposes of the pragma. - (Freeze_Object_Declaration): Remove variable - Has_Default_Initialization as it is no longer used. Use routine - Check_Pragma_Thread_Local_Storage to verify the semantics of - pragma Thread_Local_Storage. - -2018-11-14 Ed Schonberg - - * sem_res.adb (Resolve_If_Expression): Verify that the subtypes - of all dependent expressions obey the constraints of the - expected type for the if-expression. - (Analyze_Expression): Only add qualificiation to the dependent - expressions when the context type is constrained. Small - adjustment to previous patch. - -2018-11-14 Eric Botcazou - - * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Don't - register a compile-time warning or error for 'Alignment or 'Size - of an entity declared in a generic unit. - -2018-11-14 Justin Squirek - - * sem_ch8.adb (Use_One_Package): Add test for out-of-scope - homonyms. - -2018-11-14 Ed Schonberg - - * exp_ch3.adb: (Expand_N_Object_Declaration): If the expression - is a limited aggregate its resolution is delayed until the - object declaration is expanded. - * sem_ch3.adb: (Analyze_Object_Declaration): If the expression - is a limited aggregate and the declaration has a following - address clause indicate that resolution of the aggregate (which - must be built in place) must be delayed. - -2018-11-14 Bob Duff - - * sem_attr.adb (To_Address): Simplify setting of - Is_Static_Expression. Remove second (unconditional) call to - Set_Is_Static_Expression -- surely it's not static if the - operand is not. Initialize Static on declaration. Do not try - to fold 'To_Address, even though it's static. - * exp_attr.adb (To_Address): Preserve Is_Static_Expression. - * sinfo.ads, sem_eval.ads, sem_eval.adb (Is_Static_Expression, - Is_OK_Static_Expression, Raises_Constraint_Error): Simplify - documentation. There was too much repetition and redundancy. - -2018-11-14 Ed Schonberg - - * sem_ch3.adb (Analyze_Object_Declaration): Use the - Actual_Subtype to preserve information about a constant - initialized with a non-static entity that is known to be valid, - when the type of the entity has a narrower range than that of - the nominal subtype of the constant. - * checks.adb (Determine_Range): If the expression is a constant - entity that is known-valid and has a defined Actual_Subtype, use - it to determine the actual bounds of the value, to enable - additional optimizations. - -2018-11-14 Hristian Kirtchev - - * back_end.adb, checks.adb, exp_ch3.adb, exp_ch4.adb, - exp_ch7.adb, exp_disp.adb, exp_unst.adb, exp_util.adb, - freeze.adb, sem_ch13.adb, sem_ch6.adb, sem_ch7.adb, - sem_prag.adb, sem_spark.adb, sem_util.adb: Minor reformatting. - -2018-11-14 Hristian Kirtchev - - * exp_ch4.adb (Find_Aliased_Equality): New routine. - (Find_Equality): Reimplemented. - (Is_Equality): New routine. - -2018-11-14 Hristian Kirtchev - - * ghost.adb (Ghost_Entity): New routine. - (Mark_And_Set_Ghost_Assignment): Reimplemented. - * sem_ch5.adb (Analyze_Assignment): Assess whether the target of - the assignment is an ignored Ghost entity before analyzing the - left hand side. - * sem_ch8.adb (Find_Direct_Name): Update the subprogram - signature. Do not generate markers and references when they are - not desired. - (Nvis_Messages): Do not execute when errors are not desired. - (Undefined): Do not emit errors when they are not desired. - * sem_ch8.ads (Find_Direct_Name): Update the subprogram - signature and comment on usage. - * sem_util.adb (Ultimate_Prefix): New routine. - * sem_util.ads (Ultimate_Prefix): New routine. - -2018-11-14 Justin Squirek - - * sem_ch7.adb (Uninstall_Declarations): Add conditional to avoid - uninstalling potential visibility during freezing on enumeration - literals. - -2018-11-14 Jerome Lambourg - - * env.c: Do not include crt_externs.h on iOS, as it does not - exist there. This is also true for the iPhone Simulator SDK. - -2018-11-14 Ed Schonberg - - * exp_ch7.adb (Check_Unnesting_In_Declarations): New procedure - to transform blocks that appear in the declarative part of a - package body into subprograms if they contain generated - subprograms (such as finalization routines). Needed to generate - the proper upward references in unnesting mode. - -2018-11-14 Ed Schonberg - - * freeze.adb (Freeze_Fixed_Point_Type): If the given low bound - of the type is less than the nearest model number, do not expand - the range of the type to include the model number below the - bound. Similar adjustment if the upper bound is larger than the - nearest model number. - -2018-11-14 Hristian Kirtchev - - * checks.adb (Install_Primitive_Elaboration_Check): Do not - create the check when exceptions cannot be used. - * exp_ch6.adb (Expand_N_Extended_Return_Statement): Do not raise - Program_Errror when exceptions cannot be used. Analyze the - generated code with all checks suppressed. - * exp_ch7.adb (Build_Finalizer): Remove the declaration of - Exceptions_OK. - (Make_Deep_Array_Body): Remove the declaration of Exceptions_OK. - (Make_Deep_Record_Body): Remove the declaration of - Exceptions_OK. - (Process_Transients_In_Scope): Remove the declaration of - Exceptions_OK. - * exp_util.adb (Exceptions_In_Finalization_OK): Renamed to - Exceptions_OK. - * exp_util.ads (Exceptions_In_Finalization_OK): Renamed to - Exceptions_OK. - -2018-11-14 Hristian Kirtchev - - * exp_ch4.adb (Expand_N_Op_Eq): Remove duplicated code and use - routine Find_Equality instead. - (Find_Equality): New routine. - -2018-11-14 Piotr Trojanek - - * sem_util.adb (First_From_Global_List): Do not expect - N_Selected_Component in the Global contract; simplify assertion - with Nam_In. - -2018-11-14 Piotr Trojanek - - * sem_ch12.adb (Instantiate_Object): Set - Corresponding_Generic_Association on generic actuals with - default expression. - * sinfo.ads (Corresponding_Generic_Association): Update comment. - -2018-11-14 Hristian Kirtchev - - * exp_ch4.adb (Expand_Concatenate): Use the proper routine to - set the need for debug info. - * exp_dbug.adb (Build_Subprogram_Instance_Renamings): Use the - proper routine to set the need for debug info. - * exp_prag.adb (Expand_Pragma_Initial_Condition): Use the proper - routine to set the need for debug info. - * exp_util.adb (Build_DIC_Procedure_Declaration): Use the proper - routine to set the need for debug info. - (Build_Invariant_Procedure_Declaration): Use the proper routine - to set the need for debug info. - * ghost.adb (Record_Ignored_Ghost_Node): Add statements as a - whole class to the list of top level ignored Ghost nodes. - * sem_util.adb (Set_Debug_Info_Needed): Do not generate debug - info for an ignored Ghost entity. - -2018-11-14 Piotr Trojanek - - * bindgen.adb, exp_cg.adb, repinfo.adb, sprint.adb: Minor reuse - Cancel_Special_Output where possible. - -2018-11-14 Piotr Trojanek - - * exp_dbug.ads, sem_util.ads: Minor fixes in comments. - -2018-11-14 Arnaud Charlet - - * adabkend.adb (Scan_Back_End_Switches): Handle -gx switches - explicitly. - -2018-11-13 Eric Botcazou - - * gcc-interface/misc.c (gnat_init_gcc_eh): Set -fnon-call-exceptions - for the runtime on platforms where System.Machine_Overflow is true. - -2018-11-08 Eric Botcazou - - * fe.h (Suppress_Checks): Declare. - * gcc-interface/misc.c (gnat_init_gcc_eh): Set -fnon-call-exceptions - only if checks are not suppressed and -faggressive-loop-optimizations - only if they are. - * gcc-interface/trans.c (struct loop_info_d): Remove has_checks and - warned_aggressive_loop_optimizations fields. - (gigi): Do not clear warn_aggressive_loop_optimizations here. - (Raise_Error_to_gnu): Do not set has_checks. - (gnat_to_gnu) : Remove support for aggressive - loop optimizations. - -2018-11-08 Eric Botcazou - - * gcc-interface/decl.c (components_to_record): Remove obsolete kludge. - * gcc-interface/utils.c (make_packable_type): Set TYPE_PACKED on the - new type but do not take into account the setting on the old type for - the new fields. Rename a local variable. - (finish_record_type): Clear DECL_BIT_FIELD_TYPE on a variant part at - offset 0, if any. - (create_field_decl): Tweak comment. - -2018-10-22 Eric Botcazou - - * gcc-interface/utils.c (unchecked_convert): Use local variables for - the biased and reverse SSO attributes of both types. - Further extend the processing of integral types in the presence of - reverse SSO to all scalar types. - -2018-10-22 Eric Botcazou - - * gcc-interface/trans.c (Pragma_to_gnu) : Use - a simple memory constraint in all cases. - - * gcc-interface/lang-specs.h: Bump copyright year. - -2018-10-17 David Malcolm - - * gcc-interface/Make-lang.in (selftest-ada): New. - -2018-10-09 Eric Botcazou - - * exp_ch3.adb (Is_Null_Statement_List): New predicate. - (Build_Array_Init_Proc): Use it to find out whether the - initialization procedure Is_Null_Init_Proc; if so, set - Warnings_Off on the parameter. - (Build_Init_Procedure): Likewise. - (Init_Formals): Use an in/out first parameter only for - unconstrained arrays and for records either containing or built - for proteced types or task types; use an out parameter in all - the other cases. - * fe.h (Is_Init_Proc): Declare. - * gcc-interface/decl.c (type_requires_init_of_formal): Do not - return true for a discriminant in an unchecked union. - (gnat_to_gnu_param): Do not create a PARM_DECL for the Out - parameter of an initialization procedure. - -2018-10-09 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : If - this is not a definition, retrieve the expression in all cases - even if we are just annotating types. - * gcc-interface/trans.c (gnat_to_gnu): Also translate Size - attribute for constrained types in this mode. - -2018-10-09 Eric Botcazou - - * adaint.c (__gnat_get_executable_suffix_ptr): Add new line. - (__gnat_locate_exec): Check that HOST_EXECUTABLE_SUFFIX is not - empty before doing a string search for it. - * socket.c (ATTRIBUTE_UNUSED): Define. - (__gnat_disable_sigpipe): Add ATTRIBUTE_UNUSED on parameter. - * terminals.c (ATTRIBUTE_UNUSED): Move around. - (__gnat_setup_child_communication): Add ATTRIBUTE_UNUSED on - parameter. - (__gnat_send_header): Add ATTRIBUTE_UNUSED on parameters. - -2018-10-09 Yannick Moy - - * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Rewrite - pragmas as null statements in GNATprove mode. - -2018-10-09 Eric Botcazou - - * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize the temporary - made for an Out parameter if the formal type has discriminants. - -2018-10-09 Maroua Maalej - - * sem_spark.adb (Check_Declaration): fix bug related to non - access object permissions. - -2018-10-09 Doug Rupp - - * libgnat/a-ncelfu.ads: Fix name in header to match package. - -2018-10-09 Eric Botcazou - - * exp_disp.adb (Make_Disp_Asynchronous_Select_Spec): Set - Warnings_Off on the B out parameter. - -2018-10-09 Eric Botcazou - - * einfo.ads: Small comment fix. - -2018-10-09 Eric Botcazou - - * sem_ch7.adb (Has_Referencer): Add comment for the - N_Freeze_Entity case. Do not rely on - Has_Referencer_Of_Non_Subprograms to clear the Is_Public flag on - subprogram entities. - -2018-10-09 Ed Schonberg - - * exp_unst.adb (In_Synchronized_Call): Handle properly private - types whose full views are synchronized types, in order to - recognize generated subprograms whose bodies must be considered - reachable even if no direct calls to them are visible in the - source. - -2018-10-09 Ed Schonberg - - * exp_ch4.adb (Expand_Modular_Op): When expanding an operation - on nonbinary modular types, convert the opersnds to an integer - type that is large enough to hold the modulus of the type, which - may be larger than Integer'Last. - -2018-10-09 Ed Schonberg - - * exp_unst.adb (Unnest_Subprogram): When an uplevel reference - is to an unconstrained formal, the 'Access reference that is - created to initialize the corresponding component of the - activation record must be wrapped in an unchecked conversion to - the generated type of the component. Otherwise, spurious suvtype - conformance errors will be generated when the code is within an - instantiation and the type of the formal is a formal type of the - enclosing generic. Note that during unnesting there is no simple - way to determine that the code appears within an instance - because ther is no scope stack. - -2018-10-09 Eric Botcazou - - * gcc-interface/decl.c (type_requires_init_of_formal): New - predicate. - (gnat_to_gnu_param): Use it to determine whether a PARM_DECL - must be created for an Out parameter passed by copy. - -2018-10-09 Arnaud Charlet - - * libgnat/a-coboho.ads (Storage_Element): Fix a typo. - -2018-10-09 Claire Dross - - * libgnat/a-cfinve.ads: Remove default value for - Max_Size_In_Storage_Elements as it was not supported in SPARK. - -2018-10-09 Ed Schonberg - - * exp_ch6.adb (Add_Call_By_Copy_Node, - Add_Simple_Call_By_Copy_Node, Expand_Call_Helper): Reset - Is_True_Constant on entities used as Out or In_Out parameters in - calls. - -2018-10-09 Ed Schonberg - - * exp_unst.adb (Unnest_Subprogram): Do not load System to obtain - the Address entity unless an activation record is being built. - Removes useless with_clauses for System when nested subprograms - do not have uplevel references, and therefore do not need - activation records. - -2018-10-09 Ed Schonberg - - * sem_ch6.adb (Fully_Conformant_Expressions): Handle properly - the conformance check on an aspect expression that includes a - call to an instance of Unchecked_Conversion, or more generally a - call to an intrinsic operation. - -2018-10-09 Eric Botcazou - - * repinfo.adb: Remove with/use clause for Stand. - (List_Mechanisms): List the mechanism of functions only. - -2018-10-09 Bob Duff - - * doc/gnat_ugn/gnat_utility_programs.rst: Correct spelling of - --eol switch. Document the language-version switches. Update - description for --no-exception. - -2018-10-09 Vasiliy Fofanov - - * libgnat/s-os_lib.ads (Normalize_Pathname): Fix incorrect - comment. - -2018-10-09 Arnaud Charlet - - * vxlink.adb: Remove pragma Annotate, no longer needed. - -2018-10-09 Ed Schonberg - - * checks.adb (Apply_Type_Conversion_Checks): Use GNATprove_Mode - rather than SPARK_mode in order to preserve the Do_Range_Check - flag for verification purposes. - -2018-10-09 Ed Schonberg - - * exp_aggr.adb (Expand_Array_Aggregate): If it is not possible - to build in place an aggregate with component associations, set - the Warnings_Off flag on the generated temporary, to prevent - spurious warnings from the backend when compiling with the - -Wuninitialized gcc flag. - -2018-09-30 Alexandre Oliva - - * gcc-interface/lang-specs.h (default_compilers): When given - fcompare-debug-second, adjust auxbase like cc1, and pass - gnatd_A. - * gcc-interface/misc.c (flag_compare_debug): Remove variable. - (gnat_post_options): Do not set it. - * lib-writ.adb (flag_compare_debug): Remove import. - (Write_ALI): Do not test it. - -2018-09-28 Eric Botcazou - Pierre-Marie de Rodat - - * gcc-interface/decl.c (is_cplusplus_method): Do not require C++ - convention on Interfaces. - * gcc-interface/trans.c (Subprogram_Body_to_gnu): Try to create a - bona-fide thunk and hand it over to the middle-end. - (get_controlling_type): New function. - (use_alias_for_thunk_p): Likewise. - (thunk_labelno): New static variable. - (make_covariant_thunk): New function. - (maybe_make_gnu_thunk): Likewise. - * gcc-interface/utils.c (finish_subprog_decl): Set DECL_CONTEXT of the - result DECL here instead of... - (end_subprog_body): ...here. - -2018-09-27 Martin Sebor - - * gcc-interface/utils.c (make_packable_type): Introduce a temporary - to avoid -Wnonnull. - (unchecked_convert): Same. - -2018-09-26 Elisa Barboni - - * sem_prag.adb (Check_Refined_Global_Item): Improve error - message. - -2018-09-26 Thomas Quinot - - * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): For a - representation item that is an N_Aspect_Definition, retrieve the - entity it applies to using the Entity attribute. - -2018-09-26 Justin Squirek - - * sem_ch8.adb (Analyze_Subprogram_Renaming): Add extra condition - to check for unmarked subprogram references coming from - renamings. - -2018-09-26 Arnaud Charlet - - * back_end.adb (Scan_Compiler_Arguments): Store -G xxx switches. - -2018-09-26 Yannick Moy - - * errout.ads: Update comment for insertion character '?'. - * inline.adb: Use simple insertion character '?' for GNATprove - info messages. - * sem_res.adb (Resolve_Call): Issue an info message on inlining - in GNATprove mode. - -2018-09-26 Ed Schonberg - - * checks.adb (Apply_Type_Conversion_Checks): Do not generate a - range check on the expression of the conversion if it involves a - fixed-point type, as such conversions are handled specially - during expansion. - * exp_ch4.adb (Expand_N_Type_Conversion): In a conversion from - Fixed to Integer, use the base type of the expression to ensure - that the caller will generate the proper constraint check when - needed. - -2018-09-26 Maroua Maalej - - * sem_spark.adb (Check_Loop_Statement): Fix a bug related to - loop exit environment. - (Check_Statement): fixing a bug when comparing the source and - target in an assignment statement. - -2018-09-26 Hristian Kirtchev - - * sem_ch12.adb (Instantiate_Package_Body): Capture and restore - the full compilation context. - (Instantiate_Subprogram_Body): Capture and restore the full - compilation context. - -2018-09-26 Yannick Moy - - * debug.adb: Add use for -gnatd_f switch. - * inline.adb (Cannot_Inline): Only issue info message for - failure to inline in GNATprove mode when switch -gnatd_f is - used. - -2018-09-26 Javier Miranda - - * exp_disp.adb (Expand_Interface_Conversion): No displacement of - the pointer needed when the type of the operand is an interface - type that maches the target type and we are compiling under - configurable runtime. Adding also documentation explaining why - this cannot be done when compiling with the full runtime. - * exp_intr.adb: Update comment. - -2018-09-26 Hristian Kirtchev - - * sem_ch5.adb (Wrap_Loop_Statement): Annotate as No_Return. - -2018-09-26 Ed Schonberg - - * exp_util.adb (Make_Predicate_Call): Use OK_Convert_To when - applying a predicate check to prevent spurious errors when - private ancestors are involved. - -2018-09-26 Hristian Kirtchev - - * exp_ch4.adb (Expand_N_Allocator): Ensure that the use of the - secondary stack does not clash with restriction - No_Secondary_Stack. - * exp_ch6.adb (Expand_N_Extended_Return_Statement): Ensure that - the use of the secondary stack does not clash with restriction - No_Secondary_Stack. - * sem_ch5.adb (Analyze_Loop_Statement): Wrap the loop in a block - prior to analysis in order to either provide a local scope for - an iterator, or ensure that the secondary stack is properly - managed. - (Check_Call): Account for the case where the tree may be - unanalyzed or contain prior errors. - (Has_Call_Using_Secondary_Stack): Renamed to Has_Sec_Stack_Call. - Update all uses of the subprogram. - (Prepare_Loop_Statement): New routine. - -2018-09-26 Javier Miranda - - * sem_res.adb (Resolve_Actuals): If the formal is a class-wide - type conversion then do not skip resolving and expanding the - conversion; required to displace the pointer to the object and - reference the dispatch table associated with the target - interface type. - -2018-09-26 Hristian Kirtchev - - * libgnat/g-dynhta.adb (Prepend_Or_Replace): Update the number - of key-value pairs in the hash table only when adding a brand - new pair. - -2018-09-26 Sergey Rybin - - * doc/gnat_ugn/gnat_utility_programs.rst: Add note about - processing of aggregate projects in gnatmetric and gnatstub. - -2018-09-26 Hristian Kirtchev - - * contracts.adb, exp_unst.adb, exp_util.adb, gnat1drv.adb, - opt.ads, par-prag.adb, sem_ch3.adb, sem_ch5.adb, sem_prag.adb, - sinfo.ads, snames.ads-tmpl: Minor reformatting. - -2018-09-26 Hristian Kirtchev - - * gcc-interface/Make-lang.in: Add unit GNAT.Sets to the list of - front end sources. - * impunit.adb: Add unit GNAT.Sets to the list of predefined - units. - * Makefile.rtl: Add unit GNAT.Sets to the list of non-tasking - units. - * libgnat/g-sets.adb: New unit. - * libgnat/g-sets.ads: New unit. - * libgnat/g-dynhta.adb (Minimum_Size): Decrease to 8 in order to - allow for small sets. Update all occurrences of Table_Locked to - Iterated. - (Ensure_Unlocked): Query the number of iterators. - (Find_Node): Use the supplied equality. - (Is_Empty): New routine. - (Lock): Update the number of iterators. - (Prepend_Or_Replace): Use the supplied equality. - (Size): Update the return type. - (Unlock): Update the number of iterators. - * libgnat/g-dynhta.ads: Update all occurrences of Table_Locked - to Iterated. Rename formal subprogram Equivalent_Keys to "=". - (Bucket_Range_Type, Pair_Count_Type): Remove types. - (Not_Created, Table_Locked, Iterator_Exhausted): Remove - exceptions. - (Hash_Table): Update to store the number of iterators rather - than locks. - (Is_Empty): New routine. - (Size): Update the return type. - * libgnat/g-lists.adb: Update all occurrences of List_Locked to - Iterated. - (Ensure_Unlocked): Query the number of iterators. - (Length): Remove. - (Lock): Update the number of iterators. - (Size): New routine. - (Unlock): Update the number of iterators. - * libgnat/g-lists.ads: Update all occurrences of List_Locked to - Iterated. - (Element_Count_Type): Remove type. - (Not_Created, Table_Locked, Iterator_Exhausted): Remove - exceptions. - (Linked_List): Update type to store the number of iterators - rather than locks. - (Length): Remove. - (Size): New routine. - * libgnat/gnat.ads (Bucket_Range_Type): New type. - (Iterated, Iterator_Exhausted, and Not_Created): New exceptions. - -2018-09-26 Javier Miranda - - * checks.adb (Install_Null_Excluding_Check): Do not add - null-excluding checks when the tree may not be fully decorated. - This patch cascade errors. - -2018-09-26 Gary Dismukes - - * sem_ch3.adb (Analyze_Object_Declaration): Remove test for - Comes_From_Source, which prevented implicit conversions from - being applied to anonymous access-to-subprogram formals in - constant declartions that arise from instance associations for - generic formal objects. Add RM and AARM references to comment. - -2018-09-26 Olivier Hainque - - * opt.ads (OpenAcc_Enabled): New flag. False by default. True - when OpenACC pragmas are requested to be honored, when -fopenacc - is found on the command line. - * back_end.adb (Scan_Compiler_Arguments): Set OpenACC_Enabled if - -fopenacc is seen on the command line. - * sinfo.adb, sinfo.ads (Is_OpenAcc_Environment): New - flag/predicate on Loop statements which embed an Acc_Kernels, - Acc_Parallel or Acc_Data pragma. - (Is_OpenAcc_Loop): New flag/predicate on Loop statements which - embed an Acc_Loop pragma. - (Set_Is_OpenAcc_Environment, Set_Is_OpenAcc_Loop): Setters for - the new flags. - * par-prag.adb (Prag): Handle Acc_Data, Acc_Loop, Acc_Parallel - and Acc_Kernels pragmas. Nothing to do here, all handled by - sem_prag. - * sem_prag.adb (Acc_First, Acc_Next, - Validate_Acc_Condition_Clause, Validate_Acc_Data_Clause, - Validate_Acc_Int_Expr_Clause, Validate_Acc_Int_Expr_List_Clause, - Validate_Acc_Loop_Collapse, Validate_Acc_Loop_Gang, - Validate_Acc_Loop_Vector, Validate_Acc_Loop_Worker, - Validate_Acc_Name_Reduction, Validate_Acc_Size_Expressions): New - helper for Analyze_Pragma, to handle OpenACC pragmas. - (Analyze_Pragma): Handle Acc_Data, Acc_Loop, Acc_Parallel and - Acc_Kernels pragmas. - * sem_ch5.adb (Disable_Constant): Unset Is_True_Constant on - variable entity, action for ... - (Disable_Constants): Helper for Analyze_Loop_Statement, to ... - (Analyze_Loop_Statement): Disable True_Constant on variables - referenced within an OpenACC environment. - * snames.ads-tmpl: Declare Name_Ids for the OpenACC directives - and clauses we can handle. Remove an exraneous whitespace before - columns, preventing line length overflow in the generated spec - with Ids now reaching beyond 999. - * doc/gnat_rm/implementation_defined_pragmas.rst: Document - pragma Acc_Parallel, Acc_Loop, Acc_Kernels and Acc_Data. - * gnat_rm.texi: Regenerate. - -2018-09-26 Ed Schonberg - - * sem_ch3.adb (Is_Onown_Limited): A derived type whose parent P - is a derived limited record is not itself limited if P is a - derived limited interface. - -2018-09-26 Eric Botcazou - - * sem_ch7.adb (Has_Referencer): Remove Top_Level parameter and - add In_Nested_Instance and - Has_Outer_Referencer_Of_Non_Subprograms parameters. Rename - Has_Non_Subprograms_Referencer variable into - Has_Referencer_Of_Non_Subprograms and initialize it with the new - third parameter. Adjust recursive calls and to the renaming. - Replace test on Top_Level with test on In_Nested_Instance to - decide whether to clear the Is_Public flag on entities. - (Hide_Public_Entities): Adjust call to Has_Referencer. - -2018-09-26 Eric Botcazou - - * exp_disp.adb (Expand_Interface_Conversion): Use Present test. - (Expand_Interface_Thunk): Propagate debug info setting from - target. - * exp_util.ads (Find_Interface_Tag): Adjust comment. - * exp_util.adb (Find_Interface_Tag): Remove assertions of - success. - * sem_util.adb (Is_Variable_Size_Record): Only look at - components and robustify the implementation. - * fe.h (Find_Interface_Tag): Declare. - (Is_Variable_Size_Record): Likewise. - -2018-09-26 Thomas Quinot - - * exp_util.adb (Make_CW_Equivalent_Type): Propagate bit order - and scalar storage order from root type to classwide equivalent - type, to prevent rejection of the equivalent type by the - freezing circuitry. - -2018-09-26 Justin Squirek - - * sem_ch5.adb (Analyze_Iterator_Specification): Add conditional - to freeze called functions within iterator specifications during - full analysis. - (Preanalyze_Range): Minor typo fix. - -2018-09-26 Ed Schonberg - - * sem_ch6.adb (Analyze_Function_Return): If the return type has - a dynamic_predicate, apply a Predicate_Check to the expression, - given that it is implicitly converted to the return type. - Exclude case expressions from the check, because in this context - the expression is expanded into individual return statements. - -2018-09-26 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : In - -gnatct mode, process the discriminants only for a definition. - -2018-09-26 Eric Botcazou - - * repinfo.adb (List_Record_Layout): Be prepared for JSON output. - (List_Record_Info): Use the flat representation for record - subtypes in the JSON format. - -2018-09-26 Justin Squirek - - * lib-writ.adb, lib-writ.ads (Write_With_Lines): Add - documentation and an extra conditional check for RCI units so - that generated ali files will list the spec only instead of a - body when a body is not found. - -2018-09-26 Eric Botcazou - - * gcc-interface/gigi.h (error_gnat_node): Delete. - * gcc-interface/trans.c (error_gnat_node): Likewise. - (gigi): Replace it with Current_Error_Node. - (gnat_to_gnu): Likewise. - * gcc-interface/utils.c (rest_of_subprog_body_compilation): - Likewise. - * gcc-interface/misc.c (internal_error_function): Do not set it. - -2018-09-26 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Adjust - code retrieving the address when a clause has already been - processed. - * gcc-interface/trans.c (gnat_to_gnu) - : For an object with a Freeze - node, build a meaningful expression. - -2018-09-26 Arnaud Charlet - - * gnat1drv.adb (Adjust_Global_Switches): -gnatd_A sets - Opt.Disable_ALI_File. - * debug.adb: Update debug flags documentation. - -2018-09-26 Ed Schonberg - - * contracts.adb (Analyze_Entry_Or_Subprogram_Contract): The - analysis of preconditions specified by pragmas (rather than - aspects) is not delayed, and therefore expressions functions - that are completions do not need special handling during - expansion. - -2018-09-26 Ed Schonberg - - * exp_unst.adb: Fix handling of up level references for entries. - -2018-09-26 Ed Schonberg - - * contracts.adb (Expand_Subprogram_Contract, - Process_Preconditions_For): Apply Freeze_Expr_Types to the - expression for a precondition of an expression function that is - a completion, when the completion appears in the private part - and the declaration it completes is in the visible part of the - same package. - * freeze.adb (Freeze_Expr_Types): Do not establish the scope of - the operation if it is already installed, as will be the case - when called to analyze the contract oc the subprogram (which - happens when generating code inside the subprogram body). - -2018-09-26 Maroua Maalej - - * sem_spark.adb (Check_Param_In, Setup_Parameter_Or_Global): - Change the operation associated to assigning to an IN parameter. - In SPARK, IN access-to-variable is an observe operation for a - function, and borrow operation for a procedure. - -2018-09-26 Arnaud Charlet - - * vxlink.adb: Minor reformatting. - -2018-09-26 Gary Dismukes - - * exp_ch9.adb, layout.adb, sem_attr.adb, sem_res.adb: Fix - miscellaneous typos. - -2018-09-26 Jerome Lambourg - - * vxlink.adb: Kill a CodePeer warning. - -2018-09-24 Eric Botcazou - - PR ada/87396 - * fe.h (Get_Attribute_Definition_Clause): Use 'unsigned char' instead - of 'char' as the type of the second parameter. - -2018-09-13 Eric Botcazou - - * Makefile.rtl (arm% linux-gnueabi%): Always set EH_MECHANISM to -arm. - -2018-09-13 Eric Botcazou - - PR ada/81103 - * terminals.c: Do not include termio.h. - -2018-08-27 Martin Liska - - * gcc-interface/decl.c (update_profile): Use new function - fndecl_built_in_p and remove check for FUNCTION_DECL if - possible. - * gcc-interface/gigi.h (call_is_atomic_load): Likewise. - * gcc-interface/utils.c (gnat_pushdecl): Likewise. - -2018-08-23 Giuliano Belinassi - - * exp_unst.ads: Fix typo 'exapnded' to 'expanded'. - -2018-08-21 Hristian Kirtchev - - * checks.adb, contracts.adb, exp_aggr.adb, exp_attr.adb, - exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_unst.adb, - exp_util.adb, freeze.adb, gnatlink.adb, layout.adb, - lib-writ.adb, lib-xref-spark_specific.adb, sem_ch13.adb, - sem_ch3.adb, sem_ch6.adb, sem_res.adb, sem_util.adb, sinfo.ads, - sprint.adb: Minor reformatting. - -2018-08-21 Jerome Lambourg - - * vxlink-bind.adb, vxlink-bind.ads, vxlink-link.adb, - vxlink-link.ads, vxlink-main.adb, vxlink.adb, vxlink.ads: Add a - new tool vxlink to handle VxWorks constructors in DKMs. - * gcc-interface/Makefile.in: add rules to build vxlink - -2018-08-21 Ed Schonberg - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper, Mask_Type): - Refine the handling of freezing types for expression functions - that are not completions, when analyzing the generated body for - the function: the body is inserted at the end of the enclosing - declarative part, and its analysis may freeze types declared in - the same scope that have not been frozen yet. - -2018-08-21 Ed Schonberg - - * sem_ch6.adb: Remove Freeze_Expr_Types. - * freeze.ads, freeze.adb (Freeze_Expr_Types): Moved from - sem_ch6.adb, and extended to handle other expressions that may - contain unfrozen types that must be frozen in their proper - scopes. - * contracts.adb (Analyze_Entry_Or_Subprogram_Contract): If the - contract is for the generated body of an expression function - that is a completion, traverse the expressions for pre- and - postconditions to freeze all types before adding the contract - code within the subprogram body. - -2018-08-21 Hristian Kirtchev - - * sem_ch10.adb: Remove the with and use clause for unit Ghost. - (Analyze_With_Clause): Do not mark a with clause which mentions - an ignored Ghost code for elimination. - -2018-08-21 Javier Miranda - - * lib-writ.adb (Write_Unit_Information): Handle pragmas removed - by the expander. - -2018-08-21 Ed Schonberg - - * sem_ch6.adb (Check_Synchronized_Overriding): The conformance - between an overriding protected operation and the overridden - abstract progenitor operation requires subtype conformance; - requiring equality of return types in the case of a function is - too restrictive and leads to spurious errors when the return - type is a generic actual. - -2018-08-21 Ed Schonberg - - * exp_ch9.adb (Expand_N_Timed_Entry_Call, - Expand_Conditional_Entry_Call): Use Reset_Scopes_Of to set - properly the scope of all entities created in blocks generated - by the expansion of these constructs. - -2018-08-21 Ed Schonberg - - * sem_ch13.adb (Build_Predicate_Functioss): Apply - Reset_Quantified_Variables_Scope after predicate function has - been analyzed, so that the scope can be reset on the generated - loop statements that have replaced the quantified expressions. - -2018-08-21 Bob Duff - - * einfo.ads, einfo.adb (Private_View, Shadow_Entities): Remove - obsolete code. - -2018-08-21 Maroua Maalej - - * sem_spark.adb (Check_Call_Statement): Check global and formal - parameter permissions at call sites. - (Check_Callable_Body): Assume permissions on globals and - parameters depending on their modes then analyse the body - operations. - (Check_Declaration): Consider both deep (including elementary - access) object declarations and normal variables. First check - whether the deep object is of Ownership Aspec True or not, then, - depending on its initialization, assign the appropriate state. - Check related to non access type variables deal with - initialization value permissions. - (Check_Expression): Check nodes used in the expression being - analyzed. - (Check_Globals): Call by Check_Call_Statement to perform the - check on globals. - (Check_List): Call Check_Node on each element of the list. - (Check_Loop_Statement): Check the Iteration_Scheme and loop - statements. - (Check_Node): Main traversal procedure to check safe pointer usage. - (Check_Package_Body): Check subprogram's body. - (Check_Param_In): Take a formal and an actual parameter and - Check the permission of every in-mode parameter. - (Check_Param_Out): Take a formal and an actual parameter and - check the state of out-mode and in out-mode parameters. - (Check_Statement): Check statements other than procedure call. - (Get_Perm, Get_Perm_Or_Tree, Get_Perm_Tree): Find out the state - related to the given name. - (Is_Deep): Return True if an object is of access type or has - subfields of access type. - (Perm_Error, Perm_Error_Subprogram_End): Add an error message - whenever the found state on the given name is different from the - one expected (in the statement being analyzed). - (Process_Path): Given an operation and a current state, call - Perm_Error if there is any mismatch. - (Return_Declarations, Return_Globals, Return_The_Global): Check - the state of a given name at the end of the subprogram. These - procedures may change depending on how we shall finally deal - with globals and the rhs state in a move operation. - (Set_Perm_Extensions, Set_Perm_Prefixes_Borrow, - Set_Perm_Prefixes, Setup_Globals, Setup_Parameter_Or_Global, - Setup_Parameters): Set up the new states to the given node and - up and down the tree after an operation. - (Has_Ownership_Aspect_True): This function may disappear later - when the Ownership Aspect will be implemented in the FE. - -2018-08-21 Ed Schonberg - - * sem_res.adb (Resolve_Call): Resolve correctly a parameterless - call that returns an access type whose designated type is the - component type of an array, when the function has no defaulted - parameters. - -2018-08-21 Yannick Moy - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst: - Document entries of the target parametrization file. - * gnat_ugn.texi: Regenerate. - -2018-08-21 Ed Schonberg - - * sem_attr.adb: Set scope of elaboration flag for 'Access. - -2018-08-21 Ed Schonberg - - * sprint.adb: Add guard on printing aspects. - -2018-08-21 Javier Miranda - - * exp_cg.adb (Generate_CG_Output): Handle calls removed by the - expander. - -2018-08-21 Ed Schonberg - - * layout.adb: Do not set size of access subprogram if unnesting. - -2018-08-21 Ed Schonberg - - * freeze.adb: Remove warnings for access to subprograms when - unnesting is active. - -2018-08-21 Ed Schonberg - - * exp_aggr.adb (Expand_Array_Aggregate): If the component type - is limited, the array must be constructed in place, so set flag - In_Place_Assign_OK_For_Declaration accordingly. This prevents - improper copying of an array of tasks during initialization. - -2018-08-21 Eric Botcazou - - * gcc-interface/trans.c (Call_to_gnu): Always suppress an - unchecked conversion around the actual for an In parameter - passed by copy. - -2018-08-21 Eric Botcazou - - * exp_util.adb (Is_Possibly_Unaligned_Object): For the case of a - selected component inherited in a record extension and subject - to a representation clause, retrieve the position and size from - the original record component. - -2018-08-21 Ed Schonberg - - * sem_util.ads, sem_util.adb (New_External_Entity): Type of - Suffix_Index must be Int, not Nat, so that a negative value can - be used to generate a unique name for an external object, as - specified in Tbuild.New_External_Name. - (Scope_Within): Handle private type whose completion is a - synchronized type (For unnesting). - * itypes.ads, itypes.adb (Create_Itype): Ditto - * sem_ch3.adb (Constrain_Corresponding_Record): Generate a - unique name for the created subtype, because there may be - several discriminated tasks present in the same scope, and each - needs its distinct corresponding record subtype. - -2018-08-21 Yannick Moy - - * doc/gnat_ugn/gnat_and_program_execution.rst: Update - documentation of dimensionality analysis. - * gnat_ugn.texi: Regenerate. - * Makefile.rtl, impunit.adb: Consider the new units. - * libgnat/s-dfmkio.ads, libgnat/s-dfmopr.ads, - libgnat/s-diflmk.ads: New units based on Float. - * libgnat/s-dilomk.ads, libgnat/s-dlmkio.ads, - libgnat/s-dlmopr.ads: New units based on Long_Float. - * libgnat/s-dmotpr.ads: Rename to libgnat/s-dgmgop.ads and turn - into an instance of - System.Dim.Generic_Mks.Generic_Other_Prefixes. - * libgnat/s-dimmks.ads: Rename to libgnat/s-digemk.ads and turn - into an instance of System.Dim.Generic_Mks. - -2018-08-21 Hristian Kirtchev - - * impunit.adb: Add g-lists to the set of non-implementation - units. - * libgnat/g-lists.adb, libgnat/g-lists.ads: New unit. - * Makefile.rtl: Add g-lists to the set of non-tasking units. - * gcc-interface/Make-lang.in: Add g-lists to the set of files - used by gnat1. - -2018-08-21 Ed Schonberg - - * exp_ch9.adb (Reset_Scopes): Do not recurse into type - declarations when resetting the scope of entities declared the - procedures generated for entry bodies and accept alternatives. - Use the entity of the procedure declaration, not its body, as - the new scope. - -2018-08-21 Hristian Kirtchev - - * einfo.adb (Elaboration_Entity): Include entries and entry - families in the set of legal entities. - (Elaboration_Entity_Required): Include entries and entry - families in the set of legal entities. - (Set_Elaboration_Entity): Include entries and entry families in - the set of legal entities. - (Set_Elaboration_Entity_Required): Include entries and entry - families in the set of legal entities. - (Write_Field13_Name): Update the output of attribute - Elaboration_Entity. - * einfo.ads: Attributes Elaboration_Entity and - Elaboration_Entity_Required now apply to entries and entry - families. - -2018-08-21 Arnaud Charlet - - * set_targ.adb: Mark some CodePeer message as Intentional. - -2018-08-21 Ed Schonberg - - * sem_res.adb (Resolve_Call): Force the freezing of an - expression function that is called to provide a default value - for a defaulted discriminant in an object initialization. - -2018-08-21 Hristian Kirtchev - - * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads: New package - Dynamic_HTable. - -2018-08-21 Javier Miranda - - * checks.ads (Determine_Range): Adding documentation. - * checks.adb (Determine_Range): Don't deal with enumerated types - with non-standard representation. - (Convert_And_Check_Range): For conversion of enumeration types - with non standard representation to an integer type perform a - direct conversion to the target integer type. - -2018-08-21 Piotr Trojanek - - * lib-xref.ads, lib-xref-spark_specific.adb - (Enclosing_Subprogram_Or_Library_Package): Now roughtly works - for pragmas that come from aspect specifications. - -2018-08-21 Pierre-Marie de Rodat - - * sa_messages.ads, sa_messages.adb: New source files. - -2018-08-03 Pierre-Marie de Rodat - - Reverts - 2018-07-06 Jim Wilson - - * Make-generated.in (treeprs.ads): Use $(GNATMAKE) instead of gnatmake. - (einfo.h, sinfo.h, stamp-snames, stamp-nmake): Likewise. - * gcc-interface/Makefile.in (xoscons): Likewise. - -2018-07-31 Alexandre Oliva - Olivier Hainque - - * gcc-interface/trans.c: Include debug.h. - (file_map): New static variable. - (gigi): Set it. Create decl_to_instance_map when needed. - (Subprogram_Body_to_gnu): Pass gnu_subprog_decl to... - (Sloc_to_locus): ... this. Add decl parm, map it to instance. - * gcc-interface/gigi.h (Sloc_to_locus): Adjust declaration. - -2018-07-31 Arnaud Charlet - - * clean.adb, gnatchop.adb, gnatfind.adb, gnatls.adb, - gnatmake.ads, gnatxref.adb, make.adb, make.ads, make_util.ads, - sfn_scan.adb, vxaddr2line.adb, xeinfo.adb, xoscons.adb, - xr_tabls.adb, xref_lib.adb: Address CodePeer messages. - -2018-07-31 Arnaud Charlet - - * gnatlink.adb: Fix potential Constraint_Error if - Library_Version is too long. - -2018-07-31 Arnaud Charlet - - * sem_elab.adb: Remove duplicate condition detected by CodePeer. - -2018-07-31 Ed Schonberg - - * exp_unst.adb (Subp_Index): In the case of a protected - operation, the relevant entry is the generated - protected_subprogram_body into which the original body is - rewritten. Assorted cleanup and optimizations. - -2018-07-31 Ed Schonberg - - * exp_attr.adb (Expand_Attribute, case Fixed_Value): Set the - base type of the result to ensure that proper overflow and range - checks are generated. If the target is a fixed-point tyoe, - generate the required overflow and range checks explicitly, - rather than relying on Apply_Type_Conversion_Checks, which might - simply set the Do_Range_Check flag and rely on the backend to - add the check. - -2018-07-31 Hristian Kirtchev - - * sem_res.adb (Resolve_Call): Establish a transient scope to - manage the secondary stack when the designated type of an - access-to-subprogram requires it. - -2018-07-31 Ed Schonberg - - * exp_ch7.adb (Check_Unnesting_Elaboration_Code): To find local - subprograms in the elaboration code for a package body, recurse - through nested statement sequences because a compiler-generated - procedure may appear within a condition statement. - -2018-07-31 Ed Schonberg - - * exp_ch6.adb (Expand_Protected_Subprogram_Call): Handle - properly a protected call that includes a default parameter that - is a call to a protected function of the same type. - -2018-07-31 Justin Squirek - - * lib-writ.adb (Write_With_Lines): Modfiy the generation of - dependencies within ali files so that source unit bodies are - properly listed even if said bodies are missing. Perform legacy - behavior in GNATprove mode. - * lib-writ.ads: Modify documentation to reflect current behavior. - -2018-07-31 Eric Botcazou - - * libgnarl/s-osinte__solaris.ads (upad64_t): New private type. - (mutex_t): Use it for 'lock' and 'data' components. - (cond_t): Likewise for 'data' and use single 'flags' component. - -2018-07-31 Justin Squirek - - * exp_ch5.adb (Make_Field_Assign): Force temporarily generated - objects for assignment of overlaid user objects to be renamings - instead of constant declarations. - -2018-07-31 Hristian Kirtchev - - * exp_ch9.adb (Analyze_Pragmas): New routine. - (Build_Private_Protected_Declaration): Code clean up. Relocate - relevant aspects and pragmas from the stand-alone body to the - newly created spec. Explicitly analyze any pragmas that have - been either relocated or produced by the analysis of the - aspects. - (Move_Pragmas): New routine. - * sem_prag.adb (Find_Related_Declaration_Or_Body): Recognize the - case where a pragma applies to the internally created spec for a - stand-along subprogram body declared in a protected body. - -2018-07-31 Gary Dismukes - - * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace - calls to Current_Scope in three assertions with calls to - Current_Subprogram. - -2018-07-31 Ed Schonberg - - * sem_eval.adb (Check_Non_Static_Context): Do not warn on an - integer literal greater than the upper bound of - Universal_Integer'Last when expansion is disabled, to avoid a - spurious warning over ranges involving 64-bit modular types. - -2018-07-31 Arnaud Charlet - - * einfo.adb (Write_Entity_Flags): Also print - Is_Activation_Record flag. - -2018-07-31 Piotr Trojanek - - * exp_aggr.adb, exp_ch4.adb, exp_ch6.adb, lib-xref.adb, - repinfo.adb, sem_ch9.adb: Minor replace Ekind membership tests - with a wrapper routine. - -2018-07-31 Piotr Trojanek - - * ali.adb (Known_ALI_Lines): Remove 'F' as a prefix for lines - related to the FORMAL analysis done by GNATprove. - -2018-07-31 Javier Miranda - - * sem.ads (Inside_Preanalysis_Without_Freezing): New global - counter. - * sem.adb (Semantics): This subprogram has now the - responsibility of resetting the counter before analyzing a unit, - and restoring its previous value before returning. - * freeze.adb (Freeze_Entity): Do not freeze if we are - preanalyzing without freezing. - * sem_res.adb (Preanalyze_And_Resolve): Set & restore - In_Preanalysis_Without_Freezing. - -2018-07-31 Ed Schonberg - - * sem_ch4.adb (Traverse_Homonyms): Consider generic actuals that - may rename a matching class-wide operation only if the renaming - declaration for that actual is in an enclosing scope (i.e. - within the corrresponding instance). - -2018-07-31 Hristian Kirtchev - - * checks.adb, contracts.adb, exp_aggr.adb, exp_ch5.adb, - exp_disp.adb, make.adb, sem_ch4.adb, sem_eval.adb, sem_res.adb, - usage.adb: Minor reformatting. - -2018-07-31 Bob Duff - - * sem_res.adb (Resolve_Allocator): Do not complain about the - implicit allocator that occurs in the expansion of a return - statement for a build-in-place function. - -2018-07-20 Martin Sebor - - PR middle-end/82063 - * gcc-interface/misc.c (gnat_handle_option): Change function argument - to HOST_WIDE_INT. - -2018-07-17 Eric Botcazou - - * gcc-interface/decl.c (choices_to_gnu): Rename parameters. Deal with - an operand of Character type. Factor out range generation to the end. - Check that the bounds are literals and convert them to the type of the - operand before building the ranges. - * gcc-interface/utils.c (make_dummy_type): Minor tweak. - (make_packable_type): Propagate TYPE_DEBUG_TYPE. - (maybe_pad_type): Likewise. - -2018-07-17 Ed Schonberg - - * sem_ch4.adb (Try_Object_Operation): Handle properly a prefixed call - in an instance, when the generic parameters include an interface type - and a abstract operation of that type, and the actuals in the instance - include an interface type and a corresponding abstract operation of it, - with a different name than the corresponding generic subprogram - parameter. - -2018-07-17 Arnaud Charlet - - * sem_eval.adb (Rewrite_In_Raise_CE): Keep the original reason in more - cases. - -2018-07-17 Arnaud Charlet - - * checks.adb (Apply_Division_Check): Add provision for floating-point - checks. - -2018-07-17 Ed Schonberg - - * exp_aggr.adb (Component_OK_For_Backend): If an array component of the - enclosing record has a bound that is out of range (and that has been - rewritten as a raise statement) the aggregate is not OK for any back - end, and should be expanded into individual assignments. - -2018-07-17 Piotr Trojanek - - * atree.adb (Relocate_Node): Simplify with Is_Rewrite_Substitution. - -2018-07-17 Piotr Trojanek - - * sem_util.ads (Denotes_Same_Object): Likewise. - * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix RM rule references. - -2018-07-17 Eric Botcazou - - * exp_disp.adb (Make_Tags): When the type has user-defined primitives, - build the access type that is later used by Build_Get_Prim_Op_Address - as pointing to a subtype of Ada.Tags.Address_Array. - -2018-07-17 Patrick Bernardi - - * libgnat/s-memory__mingw.adb: Remove. - * Makefile.rtl: Remove s-memory.adb target pair from the Cygwin/Mingw32 - section. - -2018-07-17 Hristian Kirtchev - - * frontend.adb (Frontend): The removal of ignored Ghost code must be - the last semantic operation performed on the tree. - -2018-07-17 Hristian Kirtchev - - * frontend.adb (Frontend): Update the call to Register_Config_Switches. - * inline.ads: Add new component Config_Switches to record - Pending_Body_Info which captures the configuration state of the pending - body. Remove components Version, Version_Pragma, SPARK_Mode, and - SPARK_Mode_Pragma from record Pending_Body_Info because they are - already captured in component Config_Switches. - * opt.adb (Register_Opt_Config_Switches): Rename to - Register_Config_Switches. - (Restore_Opt_Config_Switches): Rename to Restore_Config_Switches. - (Save_Opt_Config_Switches): Rename to Save_Config_Switches. This - routine is now a function, and returns the saved configuration state as - an aggregate to avoid missing an attribute. - (Set_Opt_Config_Switches): Rename to Set_Config_Switches. - * opt.ads (Register_Opt_Config_Switches): Rename to - Register_Config_Switches. - (Restore_Opt_Config_Switches): Rename to Restore_Config_Switches. - (Save_Opt_Config_Switches): Rename to Save_Config_Switches. This - routine is now a function. - (Set_Opt_Config_Switches): Rename to Set_Config_Switches. - * par.adb (Par): Update the calls to configuration switch-related - subprograms. - * sem.adb (Semantics): Update the calls to configuration switch-related - subprograms. - * sem_ch10.adb (Analyze_Package_Body_Stub): Update the calls to - configuration switch-related subprograms. - (Analyze_Protected_Body_Stub): Update the calls to configuration - switch-related subprograms. - (Analyze_Subprogram_Body_Stub): Update calls to configuration - switch-related subprograms. - * sem_ch12.adb (Add_Pending_Instantiation): Update the capture of - pending instantiation attributes. - (Inline_Instance_Body): Update the capture of pending instantiation - attributes. It is no longer needed to explicitly manipulate the SPARK - mode. - (Instantiate_Package_Body): Update the restoration of the context - attributes. - (Instantiate_Subprogram_Body): Update the restoration of context - attributes. - (Load_Parent_Of_Generic): Update the capture of pending instantiation - attributes. - (Set_Instance_Env): Update the way relevant configuration attributes - are saved and restored. - -2018-07-17 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Deal with - more rvalues in the expression of a renaming. - -2018-07-17 Eric Botcazou - - * gcc-interface/ada-tree.h (TYPE_RETURN_BY_DIRECT_REF_P): Define for - METHOD_TYPE too. - (TYPE_RETURN_UNCONSTRAINED_P): Likewise. - (TYPE_CI_CO_LIST): Likewise. - * gcc-interface/gigi.h (is_cplusplus_method): Delete. - (fntype_same_flags_p): Adjust comment. - * gcc-interface/decl.c (Has_Thiscall_Convention): Delete. - (gnat_to_gnu_entity) : Do not set the "thiscall" - attribute directly. - (is_cplusplus_method): Make static and adjust head comment. - (gnat_to_gnu_param): Return a pointer for the "this" parameter of - C++ constructors. - (gnat_to_gnu_subprog_type): Turn imported C++ constructors into their - callable form. Generate a METHOD_TYPE node for imported C++ methods. - Set param_list at the very end of the processing. - (substitute_in_type) : New case. - * gcc-interface/misc.c (gnat_print_type) : Likewise. - (gnat_type_hash_eq): Accept METHOD_TYPE. - * gcc-interface/trans.c (Identifier_to_gnu): Deal with METHOD_TYPE. - (Attribute_to_gnu): Likewise. - (Call_to_gnu): Likewise. - (process_freeze_entity): Likewise. - * gcc-interface/utils.c (create_subprog_decl): Adjust head comment. - (fntype_same_flags_p): Likewise. - -2018-07-17 Piotr Trojanek - - * inline.adb (Expand_Inlined_Call): Remove extra parentheses. - -2018-07-17 Eric Botcazou - - * exp_disp.adb (Gen_Parameters_Profile): Make the _Init parameter an - In/Out parameter. - (Set_CPP_Constructors): Adjust comment accordingly. - -2018-07-17 Bob Duff - - * exp_disp.adb (Build_Class_Wide_Check): Return early if the - precondition is supposed to be ignored. - -2018-07-17 Ed Schonberg - - * sem_ch6.adb (Check_Untagged_Equality): Extend check to operations - declared in the same scope as the operand type, when that scope is a - procedure. - -2018-07-17 Ed Schonberg - - * exp_unst.adb (Unnest_Subprograms): Do nothing if the expander is not - active. Don't use Get_Actual_Subtype for record subtypes. Ignore - rewritten identifiers and uplevel references to bounds of types that - come from the original type reference. - -2018-07-17 Hristian Kirtchev - - * exp_ch13.adb, exp_ch7.adb, exp_unst.adb, freeze.adb, - libgnat/s-os_lib.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, - sem_eval.adb, sem_res.adb, sem_util.adb: Minor reformatting. - -2018-07-17 Javier Miranda - - * exp_ch13.adb (Expand_N_Freeze_Entity): Handle subtype declared for an - iterator. - * freeze.adb (Freeze_Expression): Handle freeze of an entity defined - outside of a subprogram body. This case was previously handled during - preanalysis; the frozen entities were remembered and left pending until - we continued freezeing entities outside of the subprogram. Now, when - climbing the parents chain to locate the correct placement for the - freezeing node, we check if the entity can be frozen and only when no - enclosing node is marked as Must_Not_Freeze the entity is frozen. - * sem_ch3.ads (Preanalyze_Default_Expression): Declaration moved to the - package body. - * sem_ch3.adb (Preanalyze_Default_Expression): Code adjusted to invoke - the new subprogram Preanalyze_With_Freezing_And_Resolve. - * sem_ch6.adb (Preanalyze_Formal_Expression): New subprogram. - (Analyze_Expression_Function, Process_Formals): Invoke - Preanalyze_Formal_Expression instead of Preanalyze_Spec_Expression - since the analysis of the formals may freeze entities. - (Analyze_Subprogram_Body_Helper): Skip building the body of the - class-wide clone for eliminated subprograms. - * sem_res.ads, sem_res.adb (Preanalyze_And_Resolve): New subprogram. - Its code is basically the previous version of this routine but extended - with an additional parameter which is used to specify if during - preanalysis we are allowed to freeze entities. If the new parameter is - True then the subtree root node is marked as Must_Not_Freeze and no - entities are frozen during preanalysis. - (Preanalyze_And_Resolve): Invokes the internal version of - Preanalyze_And_Resolve without entity freezing. - (Preanalyze_With_Freezing_And_Resolve): Invokes the internal version of - Prenalyze_And_Resolve with freezing enabled. - -2018-07-17 Piotr Trojanek - - * einfo.ads, libgnat/g-comlin.ads: Minor change "ie" to "i.e." in docs - and comments. - -2018-07-17 Justin Squirek - - * libgnat/s-os_lib.adb (Argument_String_To_List): Fix trimming of - whitespace. - -2018-07-17 Hristian Kirtchev - - * sem_prag.adb (Has_Visible_State): Do not consider constants as - visible state because it is not possible to determine whether a - constant depends on variable input. - (Propagate_Part_Of): Add comment clarifying the behavior with respect - to constant. - -2018-07-17 Yannick Moy - - * gnat1drv.adb (Gnat1drv): Do not issue warning about exception not - being propagated in GNATprove mode. - -2018-07-17 Dmitriy Anisimkov - - * libgnat/g-socket.adb, libgnat/g-socket.ads: Reorganize and make - public components of Inet_Addr_Type. Introduce public binary - operations. - -2018-07-17 Javier Miranda - - * exp_ch7.adb (Make_Transient_Block): When determining whether an - enclosing scope already handles the secondary stack, take into account - transient blocks nested in a block that do not manage the secondary - stack and are located within a loop. - -2018-07-17 Ed Schonberg - - * sem_util.adb (Enclosing_Subprogram): Protected entries and task - entries must be treated separately: task entries are within the - enclosing subprogram of the task type, while protected entries are - transformed into the corresponding Protected_Body_Subprogram, which is - the enclosing_subprogram of any subprogram declared within the entry - body. - -2018-07-17 Hristian Kirtchev - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add missing - sections on -gnatH and -gnatJ compiler switches. - * gnat_ugn.texi: Regenerate. - -2018-07-17 Hristian Kirtchev - - * alloc.ads: Update the allocation metrics of the ignored Ghost nodes - table. - * atree.adb: Add a soft link for a procedure which is invoked whenever - an ignored Ghost node or entity is created. - (Change_Node): Preserve relevant attributes which come from the Flags - table. - (Mark_New_Ghost_Node): Record a newly created ignored Ghost node or - entity. - (Rewrite): Preserve relevant attributes which come from the Flags - table. - (Set_Ignored_Ghost_Recording_Proc): New routine. - * atree.ads: Define an access-to-suprogram type for a soft link which - records a newly created ignored Ghost node or entity. - (Set_Ignored_Ghost_Recording_Proc): New routine. - * ghost.adb: Remove with and use clause for Lib. Remove table - Ignored_Ghost_Units. Add new table Ignored_Ghost_Nodes. - (Add_Ignored_Ghost_Unit): Removed. - (Initialize): Initialize the table which stores ignored Ghost nodes. - Set the soft link which allows Atree.Mark_New_Ghost_Node to record an - ignored Ghost node. - (Is_Ignored_Ghost_Unit): Use the ultimate original node when checking - an eliminated ignored Ghost unit. - (Lock): Release and lock the table which stores ignored Ghost nodes. - (Mark_And_Set_Ghost_Assignment): Record rather than propagate ignored - Ghost nodes. - (Mark_And_Set_Ghost_Procedure_Call): Record rather than propagate - ignored Ghost nodes. - (Mark_Ghost_Clause): Record rather than propagate ignored Ghost nodes. - (Mark_Ghost_Declaration_Or_Body): Record rather than propagate ignored - Ghost nodes. - (Mark_Ghost_Pragma): Record rather than propagate ignored Ghost nodes. - (Propagate_Ignored_Ghost_Code): Removed. - (Record_Ignored_Ghost_Node): New routine. - (Remove_Ignored_Ghost_Code): Reimplemented. - (Remove_Ignored_Ghost_Node): New routine. - (Ultimate_Original_Node): New routine. - * ghost.ads (Check_Ghost_Completion): Removed. - * sem_ch8.adb (Analyze_Use_Package): Remove obsolete code. Mark a use - package clause as ignored Ghost if applicable. - * sem_util.adb (Is_Body_Or_Package_Declaration): Reimplemented. - -2018-07-17 Javier Miranda - - * sem_ch5.adb (Has_Call_Using_Secondary_Stack): Moved to library level - to reuse it. - (Analyze_Loop_Statement): Wrap the loop in a block when the evaluation - of the loop iterator relies on the secondary stack. - -2018-07-17 Piotr Trojanek - - * sem_util.adb (Next_Actual): If the parent is a N_Null_Statement, - which happens for inlined calls, then fetch the next actual from the - original AST. - -2018-07-17 Ed Schonberg - - * einfo.ads: Update documentation for Scalar_Range. - -2018-07-17 Piotr Trojanek - - * lib-xref-spark_specific.adb (Create_Heap): Attach the HEAP entity to - the Standard package. - -2018-07-17 Piotr Trojanek - - * einfo.adb (Is_Wrapper_Package): Remove extra parentheses. - -2018-07-17 Ed Schonberg - - * sem_util.adb (Enclosing_Subprogram): Handle properly entries, and - synchronized types that are completions of limited types or private - extensions. - (Scope_Within): Handle properly accept statements in task bodies. - -2018-07-17 Hristian Kirtchev - - * sem_prag.adb (Has_Visible_State): Do not consider generic formals - because they are not part of the visible state space. Add constants to - the list of acceptable visible states. - (Propagate_Part_Of): Do not consider generic formals when propagating - the Part_Of indicator. - * sem_util.adb (Entity_Of): Do not follow renaming chains which go - through a generic formal because they are not visible for SPARK - purposes. - * sem_util.ads (Entity_Of): Update the comment on usage. - -2018-07-17 Ed Schonberg - - * sem_util.adb (Gather_Components): A discriminant of an ancestor may - have been constrained by a later ancestor, so when looking for the - value of that hidden discriminant we must examine the stored constraint - of other ancestors than the immediate parent type. - -2018-07-17 Hristian Kirtchev - - * exp_ch6.adb (Build_Heap_Or_Pool_Allocator): Ensure that scoping - constructs and entities within receive new entities when replicating a - tree. - (Expand_N_Extended_Return_Statement): Ensure that scoping constructs - and entities within receive new entities when replicating a tree. - * sem_util.adb (New_Copy_Tree): Add new formal Scopes_In_EWA_OK. - (Visit_Entity): Visit entities within scoping constructs inside - expression with actions nodes when requested by the caller. Add blocks, - labels, and procedures to the list of entities which need replication. - * sem_util.ads (New_Copy_Tree): Add new formal Scopes_In_EWA_OK. Update - the comment on usage. - -2018-07-17 Arnaud Charlet - - * doc/gnat_ugn/about_this_guide.rst, - doc/gnat_ugn/gnat_and_program_execution.rst: Remove references to gcov. - * gnat_ugn.texi: Regenerate. - -2018-07-16 Hristian Kirtchev - - * contracts.adb (Analyze_Contracts): Add specialized processing for - package instantiation contracts. - (Analyze_Package_Contract): Remove the verification of a missing - Part_Of indicator. - (Analyze_Package_Instantiation_Contract): New routine. - * contracts.ads (Analyze_Package_Contract): Update the comment on - usage. - * sem_prag.adb (Check_Missing_Part_Of): Ensure that the entity of the - instance is being examined when trying to determine whether a package - instantiation needs a Part_Of indicator. - -2018-07-16 Hristian Kirtchev - - * einfo.adb, exp_ch7.adb, exp_ch9.adb, exp_unst.adb, inline.adb, - sem.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_eval.adb, - sem_util.adb: Minor reformatting. - -2018-07-16 Arnaud Charlet - - * frontend.adb: Only unnest subprograms if no previous errors were - detected. - -2018-07-16 Ed Schonberg - - * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Handle loops that - contain blocks in the elaboration code for a package body. Create the - elaboration subprogram wrapper only if there is a subprogram - declaration in a block or loop. - -2018-07-16 Ed Schonberg - - * exp_ch4.adb (Expand_Set_Membership): Use New_Copy_Tree to perform a - deep copy of the left operand when building each conjuct of the - expanded membership operation, to avoid sharing nodes between them. - This sharing interferes with the unnesting machinery and is generally - undesirable. - -2018-07-16 Ed Schonberg - - * exp_unst.adb (Visit_Node): Handle 'Address references that are - calls. - -2018-07-16 Ed Schonberg - - * exp_unst.adb (Visit_Node): Handle the semantic of Storage_Pool field - in relevant nodes: Allocate, Free, and return statements. - -2018-07-16 Ed Schonberg - - * sem_ch12.adb (Analyze_Package_Instantiation): Handle properly an - instance that carries an aspect Default_Storage_Pool that overrides a - default storage pool that applies to the generic unit. The aspect in - the generic unit was removed before copying it in the instance, rather - than removing it from the copy of the aspects that are appended to the - aspects in the instance. - -2018-07-16 Ed Schonberg - - * einfo.adb (Set_Is_Uplevel_Referenced_Entity): Flag can appear on - loop parameters. - * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Handle subprogram - bodies. - * exp_ch9.adb (Reset_Scopes_To): Set the scopes of entities local to an - entry body to be the corresponding generated subprogram, for correct - analysis of uplevel references. - * exp_unst.adb (Visit_Node): Handle properly binary and unary operators - Ignore pragmas, fix component associations. - (Register_Subprograms): Subprograms in synchronized types must be - treated as reachable. - -2018-07-16 Hristian Kirtchev - - * sem_util.adb (Check_No_Hidden_State): Ignore internally-generated - states and variables. - -2018-07-16 Piotr Trojanek - - * sinfo.ads, sinfo.adb (Withed_Body): Remove. - (Set_Withed_Body): Remove. - -2018-07-16 Piotr Trojanek - - * sem.adb (Walk_Library_Items): Skip units with configuration pragmas - when printing debug info. - -2018-07-16 Piotr Trojanek - - * sem.adb (Walk_Library_Items): Reuse local constant. - (Is_Subunit_Of_Main): Turn condition to positive and flip the - IF-THEN-ELSE branches; avoid potentially ineffective assignment to the - Lib variable. - -2018-07-16 Piotr Trojanek - - * sem.adb (Walk_Library_Items): Deconstruct dead code. - -2018-07-16 Ed Schonberg - - * exp_ch4.adb (Expand_N_Op_Xor): Use common routine - Expand_Nonbinary_Modular_Op. Needed for unnesting. - -2018-07-16 Ed Schonberg - - * sem_ch3.adb (Inherit_Predicate_Flags): A non-discrete type may have a - static predicate (for example True) but has no - static_discrete_predicate. - -2018-07-16 Hristian Kirtchev - - * exp_attr.adb (Build_Record_VS_Func): Handle corner cases dealing with - class-wide types and record extensions. - -2018-07-16 Justin Squirek - - * sem_eval.adb (Eval_Integer_Literal): Add exception for avoiding - checks on expanded literals within if and case expressions. - -2018-07-16 Hristian Kirtchev - - * libgnat/s-wchwts.adb (Wide_String_To_String): Use the appropriate - longest sequence factor. Code clean up. - (Wide_Wide_String_To_String): Use the appropriate longest sequence - factor. Code clean up. - -2018-07-16 Javier Miranda - - * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Report an error - on Bit_Order when defined for a record extension. - -2018-07-16 Arnaud Charlet - - * libgnat/s-objrea.ads: Minor code clean up. - -2018-07-16 Piotr Trojanek - - * sem_ch3.adb (Process_Discriminants): Adjust reference to the SPARM RM - rule. - -2018-07-16 Arnaud Charlet - - * adaint.c (__gnat_set_file_time_name): Code clean up. - -2018-07-16 Javier Miranda - - * inline.adb (Build_Body_To_Inline): Minor code reorganization that - ensures that calls to function Has_Single_Return() pass a decorated - tree. - (Has_Single_Return.Check_Return): Peform checks on entities (instead on - relying on their characters). - -2018-07-16 Javier Miranda - - * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Code cleanup. Required - to avoid generating an ill-formed tree that confuses gnatprove causing - it to blowup. - -2018-07-16 Yannick Moy - - * inline.adb (Has_Single_Return): Rewrap comment. - -2018-07-16 Eric Botcazou - - * einfo.ads: Minor tweak in comment. - -2018-07-16 Javier Miranda - - * sem_ch4.adb (Analyze_Membership_Op): Code cleanup. - -2018-07-16 Javier Miranda - - * exp_attr.adb (Expand_N_Attribute_Reference ['Count]): Do not - transform 'Count into a function call if the current scope has been - eliminated. - -2018-07-16 Javier Miranda - - * sem_util.ads, sem_util.adb (Has_Prefix): Move this function to the - public part of this package. - -2018-07-16 Yannick Moy - - * sem_res.adb (Resolve_Call): Do not inline calls inside - compiler-generated functions translated as predicates in GNATprove. - -2018-07-16 Gary Dismukes - - * exp_ch4.adb (Expand_N_Allocator): Test for Storage_Pool being RTE in - addition to the existing test for no Storage_Pool as a condition - enabling generation of the call to Check_Standard_Allocator when the - restriction No_Standard_Allocators_After_Elaboration is active. - * libgnat/s-elaall.ads (Check_Standard_Allocator): Correct comment to - say that Storage_Error will be raised (rather than Program_Error). - * libgnat/s-elaall.adb (Check_Standard_Allocator): Raise Storage_Error - rather than Program_Error when Elaboration_In_Progress is False. - -2018-07-16 Gary Dismukes - - * sem_eval.adb: Fix spelling for compile-time-known. - -2018-07-16 Hristian Kirtchev - - * sem_eval.adb (Compile_Time_Known_Value): Add a guard which prevents - the compiler from entering infinite recursion when trying to determine - whether a deferred constant has a compile time known value, and the - initialization expression of the constant is a reference to the - constant itself. - -2018-07-16 Nicolas Roche - - * libgnat/a-strunb.adb, libgnat/a-strunb__shared.adb: Adjust growth - factor from 1/32 to 1/2 for Unbounded_String. - -2018-07-13 Eric Botcazou - - * gcc-interface/lang.opt (funsigned-char): New option. - * gcc-interface/misc.c (gnat_handle_option): Accept it. - * gcc-interface/utils.c (finish_character_type): Tweak comment. - -2018-07-07 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity): Add GNAT_DECL local - variable and use it throughout. - : If the nominal subtype of the object is unconstrained, - compute the Ada size separately and put in on the padding type if the - size is not fixed. - : Minor tweak. - * gcc-interface/misc.c (gnat_type_max_size): Rename max_size_unit - into max_size_unit throughout. - -2018-07-07 Eric Botcazou - - * gcc-interface/gigi.h (add_decl_expr): Adjust prototype. - * gcc-interface/decl.c (gnat_to_gnu_entity): Remove useless test. - * gcc-interface/trans.c (add_stmt_with_node): Remove exceptions. - (add_decl_expr): Change type of second parameter and rename it. - (renaming_from_instantiation_p): New function moved from... - (set_expr_location_from_node): Test for exceptions here and add one - for actual subtypes built for unconstrained composite actuals. - * gcc-interface/utils.c (renaming_from_instantiation_p): ...here. - -2018-07-07 Eric Botcazou - - * gcc-interface/trans.c (lvalue_required_p): Remove ALIASED parameter - and adjust recursive calls. - (Identifier_to_gnu): Adjust calls to lvalue_required_p. - (gnat_to_gnu): Likewise. - -2018-07-07 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_param): Minor tweak. - (gnat_to_gnu_subprog_type): New pure_flag local variable. Set it for - a pure Ada function with a by-ref In parameter. Propagate it onto the - function type by means of the TYPE_QUAL_RESTRICT flag. - * gcc-interface/utils.c (finish_subprog_decl): Set DECL_PURE_P if the - function type has the TYPE_QUAL_RESTRICT flag set. - -2018-07-06 Jim Wilson - - * Makefile.rtl: Add riscv*-linux* support. - * libgnarl/s-linux__riscv.ads: New. - * libgnat/system-linux-riscv.ads: New. - - * Make-generated.in (treeprs.ads): Use $(GNATMAKE) instead of gnatmake. - (einfo.h, sinfo.h, stamp-snames, stamp-nmake): Likewise. - * gcc-interface/Makefile.in (xoscons): Likewise. - -2018-07-06 Sebastian Huber - - * libgnat/system-rtems.ads (Frontend_Exceptions): Set to False. - (ZCX_By_Default): Set to True. - -2018-07-02 Martin Liska - - * gnatvsn.ads: Bump Library_Version to 9. - -2018-06-12 Eric Botcazou - - * gcc-interface/ada-tree.h (TYPE_RETURN_BY_DIRECT_REF_P): Change from - using TYPE_LANG_FLAG_4 to using TYPE_LANG_FLAG_0. - (TYPE_ALIGN_OK): Move around. - (TYPE_PADDING_FOR_COMPONENT): Remove superfluous parentheses. - * gcc-interface/decl.c (change_qualified_type): Move to... - (gnat_to_gnu_entity): Adjust comment. - * gcc-interface/gigi.h (change_qualified_type): ...here; make inline. - (ceil_pow2): Use ceil_log2. - * gcc-interface/utils.c (finish_subprog_decl): Add couple of comments - and do not set TREE_SIDE_EFFECTS. - (handle_noreturn_attribute): Use change_qualified_type. - -2018-06-12 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not get - the expression of a dispatch table that is not being defined. - : Remove obsolete kludge. - -2018-06-12 Eric Botcazou - - * gcc-interface/decl.c (warn_on_field_placement): Use specific wording - for discriminants. - (warn_on_list_placement): New static function. - (components_to_record): Use it to warn on multiple fields in list. - -2018-06-12 Eric Botcazou - - * gcc-interface/decl.c (variant_desc): Add AUX field. - (gnat_to_gnu_entity) : Do not call compute_record_mode - directly. - (reverse_sort_field_list): New static function. - (components_to_record): Place the variant part at the beginning of the - field list when there is an obvious order of increasing position. - (build_variant_list): Initialize it. - (create_variant_part_from): Do not call compute_record_mode directly. - (copy_and_substitute_in_layout): Likewise. Always sort the fields with - fixed position in order of increasing position, in the record and all - the variants, in any. Call reverse_sort_field_list. - * gcc-interface/utils.c (make_packable_type): Compute the sizes before - calling finish_record_type. Do not call compute_record_mode directly. - (finish_record_type): Overhaul final processing depending on REP_LEVEL - and call finish_bitfield_layout if it is equal to one or two. - -2018-06-11 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Reuse the - existing fields of a dummy fat pointer type, if any. Clear the - TYPE_DECL_SUPPRESS_DEBUG on the fat pointer type after completing it. - -2018-06-11 Hristian Kirtchev - - * contracts.adb (Process_Body_Postconditions): Expand only checked - postconditions. - (Process_Contract_Cases_For): Expand only checked contract cases. - (Process_Inherited_Preconditions): Ignored class-wide preconditions are - partially expanded because some of their semantic checks are tied to - the expansion. - (Process_Preconditions_For): Expand only checked preconditions. - (Process_Spec_Postconditions): Expand only checked preconditions. - Ignored class-wide preconditions are partially expanded because some of - their semantic checks are tied to the expansion. - * exp_prag.adb (Expand_N_Pragma): Suppress the expansion of ignored - assertion pragmas. - * exp_util.adb (Add_Inherited_Invariants): Code clean up. - * sem_util.adb (Propagate_Invariant_Attributes): Code clean up. - -2018-06-11 Hristian Kirtchev - - * exp_ch9.adb, exp_unst.adb, inline.adb, libgnat/a-ciorma.adb, - libgnat/a-ciormu.adb, libgnat/a-ciorse.adb, libgnat/a-coorma.adb, - libgnat/a-coormu.adb, libgnat/a-coorse.adb, sem_prag.adb: Minor - reformatting. - -2018-06-11 Gary Dismukes - - * exp_unst.ads, exp_unst.adb: Typo fixes and minor reformatting. - -2018-06-11 Hristian Kirtchev - - * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call): Do - not add any actuals when the size of the object is known, and the - caller will allocate it. - (Build_Heap_Allocator): Rename to Build_Heap_Or_Pool_Allocator to - better illustrate its functionality. Update the comment on the - generated code. Generate a branch for the heap and pool cases where - the object is not necessarity controlled. - (Expand_N_Extended_Return_Statement): Expand the extended return - statement into four branches depending the requested mode if the caller - will not allocate the object on its side. - (Make_Build_In_Place_Call_In_Allocator): Do not allocate a controlled - object on the caller side because this will violate the semantics of - finalizable types. Instead notify the function to allocate the object - on the heap or a user-defined storage pool. - (Needs_BIP_Alloc_Form): A build-in-place function needs to be notified - which of the four modes to employ when returning a limited controlled - result. - * exp_util.adb (Build_Allocate_Deallocate_Proc): Remove a redundant - guard which is already covered in Needs_Finalization. - -2018-06-11 Olivier Hainque - - * libgnat/s-excmac*.ads: Factorize Unwind_Action definitions ... - * libgnat/a-exexpr.adb: ... Here, then add comments describing the - major datastructures associated with the current exception raised. - (Setup_Current_Excep): Accept a "Phase" argument conveying the - unwinding phase during which this subprogram is called. For an Ada - exception, don't update the current exception buffer from the raised - exception object during SEARCH_PHASE, as this is redundant with the - call now issued just before propagation starts. - (Propagate_GCC_Exception): Move call to Setup_Current_Excep ahead of - the unwinding start, conveying Phase 0. - (Unhandled_Except_Handler): Pass UA_CLEANUP_PHASE as the Phase value on - the call to Setup_Current_Excep. - * raise-gcc.c (personality_body): Pass uw_phases as the Phase argument - on calls to Setup_Current_Excep. - -2018-06-11 Ed Schonberg - - * exp_unst.ads, exp_unst.adb (Needs_Fat_Pointer, - Build_Access_Type_Decl): New subprograms to handle uplevel references - to formals of an unconstrained array type. The activation record - component for these is an access type, and the reference is rewritten - as an explicit derefenrence of that component. - -2018-06-11 Bob Duff - - * libgnat/a-ciorma.adb, libgnat/a-ciormu.adb, libgnat/a-ciorse.adb, - libgnat/a-coorma.adb, libgnat/a-coormu.adb, libgnat/a-coorse.adb: - (Element): Add code to detect dangling cursors in some cases. - -2018-06-11 Yannick Moy - - * sem_ch6.adb (Build_Subprogram_Declaration): Mark parameters as coming - from source. - -2018-06-11 Ed Schonberg - - * sem_ch13.adb (Build_Predicate_Functions): For a derived type, ensure - that its parent is already frozen so that its predicate function, if - any, has already been constructed. - -2018-06-11 Yannick Moy - - * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): Adapt for - possible task unit as the enclosing context. - -2018-06-11 Eric Botcazou - - * gnat1drv.adb: Remove use clause for Repinfo. - (Gnat1drv): Beef up comment about the interplay between -gnatc and - back-end annotations. Use full qualified name for List_Rep_Info. - -2018-06-11 Hristian Kirtchev - - * libgnat/g-arrspl.ads: Add pragma Preelaborate. - -2018-06-11 Arnaud Charlet - - * exp_ch4.adb (Expand_Record_Equality): Remove extraneous "True and - then" and general logical "ada" in codepeer mode. - -2018-06-11 Javier Miranda - - * exp_ch9.adb (Expand_N_Protected_Body): Add missing handling of - N_Call_Marker nodes. - -2018-06-11 Arnaud Charlet - - * exp_ch3.adb, exp_unst.adb, inline.adb, sem_prag.adb: Minor - reformatting. - -2018-06-11 Yannick Moy - - * doc/gnat_rm/implementation_defined_pragmas.rst: Add Suppressible - argument to Assertion_Policy - * gnat_rm.texi: Regenerate. - -2018-06-11 Yannick Moy - - * gnat1drv.adb: Do not check representation information in CodePeer and - GNATprove modes, as these modes call a special backend instead of gigi, - so do not have the information. - -2018-06-11 Yannick Moy - - * inline.adb (Build_Body_To_Inline): Consider case of extended return - of unconstrained type as one case where inlining is not supported. - (Expand_Inlined_Call): Remove special case for body as extended return - of unconstrained type. - -2018-06-11 Yannick Moy - - * sem_prag.adb (Analyze_Part_Of): Only allow Part_Of on non-generic - unit. - (Check_Missing_Part_Of): Do not force Part_Of on generic unit. - -2018-06-11 Piotr Trojanek - - * sem_ch13.adb (Analyze_Aspect_Specifications): Don't split AND THEN - expressions in Pre/Post contracts while in GNATprove_Mode. - -2018-06-11 Piotr Trojanek - - * sem_util.adb (Is_Potentially_Unevaluated): Fix detection of contracts - with AND THEN expressions broken down into individual conjuncts. - -2018-06-11 Ed Schonberg - - * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Add guard. - -2018-06-11 Ed Schonberg - - * exp_unst.adb (Visit_Node): Skip generic associations. - -2018-06-11 Arnaud Charlet - - * libgnat/memtrack.adb (fwrite): Remove second definition. - -2018-06-11 Javier Miranda - - * sinfo.ads (Is_Dynamic_Coextension): Adding documentation. - (Is_Static_Coextension): Adding documentation. - * sinfo.adb (Is_Dynamic_Coextension): Extending the assertion. - (Is_Static_Coextension): Extending the assertion. - * sem_util.adb (Mark_Allocator): Clear Is_Static_Coextension when - setting flag Is_Dynamic_Coextension (and vice versa). - -2018-06-11 Ed Schonberg - - * exp_unst.adb (Search_Subprograms): Handle explicitly stubs at the top - level of a compilation unit, becuase they may contain nested - subprograms that need an activation record. - -2018-06-11 Arnaud Charlet - - * Makefile.rtl: Compile Ada files with $(ADAC) instead of $(CC). - -2018-06-11 Hristian Kirtchev - - * exp_ch11.adb, exp_unst.adb, inline.adb, sem_ch12.adb, sem_util.adb: - Minor reformatting. - * sinfo.ads: Fix a typo. - -2018-06-11 Ed Schonberg - - * inline.adb (Expand_Inlined_Call): If no optimization level is - specified, the expansion of a call to an Inline_Always function is - fully performed in the front-end even on a target that support back-end - inlining. - -2018-06-11 Arnaud Charlet - - * bindgen.adb (Gen_Adainit): Protect reference to System.Parameters - with Sec_Stack_Used. - -2018-06-11 Hristian Kirtchev - - * sem_ch8.adb (Find_Direct_Name): Mode the declaration of - Is_Assignment_LHS further in. Use predicate - Needs_Variable_Reference_Marker to determine whether to create a - variable marker. - (Find_Expanded_Name): Mode the declaration of Is_Assignment_LHS further - in. Use predicate Needs_Variable_Reference_Marker to determine whether - to create a variable marker. - * sem_elab.adb (Build_Variable_Reference_Marker): Remove the various - checks that determine whether the identifier or expanded name is a - suitable variable reference. The checks are now performed by - Needs_Variable_Reference_Marker. - * sem_res.adb (Resolve_Actuals): Use predicate - Needs_Variable_Reference_Marker to determine whether to create a - variable marker. - * sem_util.adb (Needs_Variable_Reference_Marker): New routine. - * sem_util.ads (Needs_Variable_Reference_Marker): New routine. - -2018-06-11 Valentine Reboul - - * doc/gnat_rm.rst, doc/gnat_ugn.rst: Rename "GPL Edition" into - "Community Edition". - -2018-06-11 Ed Schonberg - - * sem_ch12.adb (Install_Body): In order to determine the placement of - the freeze node for an instance of a generic nested within another - instance, take into account that the outer instance may be declared in - the visible part of a package and the inner intance may be in the - private part of the same package. - -2018-06-11 Eric Botcazou - - * errout.adb (Special_Msg_Delete): Remove handling of Atomic and VFA. - -2018-06-11 Nicolas Roche - - * libgnat/s-valuti.adb (Bad_Value): Ensure that we do not generate a - stack overflow while raising a constraint error. - -2018-06-11 Eric Botcazou - - * repinfo.ads (Rep_Value): Use a single line. - * repinfo.adb (Rep_Value): Likewise. - (List_Attr): Do not use string concatenation. - -2018-06-11 Ed Schonberg - - * exp_unst.adb (Visit_Node): Check reference to formal parameter of - current procedure, because the bounds of its type may be uplevel - references. - -2018-06-02 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : If this is - not a definition, retrieve the expression only if it's a compile-time - known value if we are just annotating types. - - * gcc-interface/utils.c (convert): Do not try to upcast properly for a - conversion between tagged types in type_annotate_only mode. - -2018-06-02 Eric Botcazou - - * gcc-interface/ada-tree.h (TYPE_PADDING_FOR_COMPONENT): New macro. - * gcc-interface/decl.c (gnat_to_gnu_component_type): Cache the padding - type built for an aliased component with variable size. - -2018-05-31 Pierre-Marie de Rodat - - * doc/gnat_ugn/project-manager-figure.png: Delete. - -2018-05-31 Pierre-Marie de Rodat - - * vxworks-arm-link.spec, vxworks-e500-link.spec, - vxworks-gnat-crtbe-link.spec, vxworks-smp-arm-link.spec, - vxworks-smp-e500-link.spec, vxworks-smp-ppc-link.spec, - vxworks-smp-x86-link.spec: New files. - -2018-05-31 Pierre-Marie de Rodat - - * gnatvsn.adb: Re-center the copyright header. - * indepsw-darwin.adb: Adjust the starting copyright year to 2011. - -2018-05-31 Fedor Rybin - - * doc/gnat_ugn/gnat_utility_programs.rst: Document Stubs_Subdir in - gnattest section on user guide. - -2018-05-31 Ed Schonberg - - * sem_res.adb (Resolve_String_Literal): If the type is a string type - whose component subtype has a static predicate, ensure that the - predicate is applied to each character by expanding the string into the - equivalent aggregate. This is also done if the component subtype is - constrained. - -2018-05-31 Eric Botcazou - - * gcc-interface/trans.c (Call_to_gnu): Remove obsolete code. - -2018-05-31 Piotr Trojanek - - * sem_ch6.adb (Check_Missing_Return): Handle procedures with no - explicit spec. - -2018-05-31 Eric Botcazou - - * gcc-interface/trans.c (Call_to_gnu): In the by-reference case, if - the type of the parameter is an unconstrained array type, convert - to the type of the actual before the type of the formal only if the - conversion was suppressed earlier. Use in_param and gnu_actual_type - local variables throughout, and uniform spelling for In Out or Out. - Also remove dead code in the component-by-reference case. - -2018-05-31 Frederic Konrad - - * tracebak.c (STOP_FRAME): Harden condition. - (is_return_from, EXTRA_STOP_CONDITION): New helpers for VxWorks in RTP - mode. - -2018-05-31 Ed Schonberg - - * checks.adb (Apply_Discriminant_Check): Do not apply discriminant - check to a call to a build-in-place function, given that the return - object is limited and cannot be copied. - -2018-05-31 Olivier Hainque - - * libgnat/s-atopri.ads: Update comment on __atomic_compare_exchange - builtins. - -2018-05-31 Eric Botcazou - - * gcc-interface/trans.c (Call_to_gnu): If this is a function call and - there is no target, also create a temporary for the return value for - an allocator if the type is an unconstrained record type with default - discriminant. - -2018-05-31 Hristian Kirtchev - - * exp_ch7.adb (Find_Transient_Context): An iteration scheme is a valid - boudary for a transient scope. - -2018-05-31 Valentine Reboul - - * gnatvsn.ads: Rename "GPL" version to "Community". - -2018-05-31 Ed Schonberg - - * einfo.ads: Improve documentation for the Is_Unsigned_Type entity - flag. - -2018-05-31 Piotr Trojanek - - * sem_prag.adb (Analyze_Pragma): Replace call to Unique_Defining_Entity - with a semantically equivalent call to Defining_Entity. - -2018-05-31 Piotr Trojanek - - * sem_prag.adb (Analyze_Pragma): Set Etype on the rewritten - Max_Queue_Length expression. - -2018-05-31 Sergey Rybin - - * doc/gnat_ugn/gnat_and_program_execution.rst: gnatelim does not need - that the main unit to be built before the call, now it computes the - closure of the main unit itself. - * gnat_ugn.texi: Regenerate. - -2018-05-31 Eric Botcazou - - * repinfo.adb (List_Structural_Record_Layout): Set First to false - after having listed the fields of the parent type, if any. - -2018-05-31 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not - deal with the ___XP suffix for packed array types here... - : ...or here when processing the implementation type - but when processing the original type instead. Do not reuse the DECL - of the implementation type for the original type. Tidy up. - -2018-05-31 Eric Botcazou - - * einfo.ads (Object_Size_Clause): Declare. - * einfo.adb (Object_Size_Clause): New function. - * gcc-interface/utils.c (maybe_pad_type): Test Has_Size_Clause before - retrieving Size_Clause and post the warning on the object size clause - if Has_Object_Size_Clause is true. - -2018-05-31 Javier Miranda - - * sem_util.ads, sem_util.adb (Find_Primitive_Eq): New subprogram. - * exp_ch4.adb (Expand_Composite_Equality): Use the new subprogram - Find_Primitive_Eq to search for the primitive of types whose underlying - type is a tagged type. - -2018-05-31 Yannick Moy - - * sem_prag.adb (Analyze_Pragma.Check_Loop_Pragma_Placement): Inverse - order of treatment between nodes recognized as loop pragmas (or - generated from one) and block statements. - -2018-05-31 Doug Rupp - - * libgnat/s-osprim__posix2008.adb (Clock): Implement using - clock_gettime. - -2018-05-31 Ed Schonberg - - * exp_unst.ads, exp_unst.adb (In_Synchronized_Unit): New predicate to - mark subprograms that cannot be eliminated because they must be treated - as reachable from outside the current unit. This includes entry bodies - and protected operations. - -2018-05-31 Ed Schonberg - - * exp_ch4.adb (Expand_Modular_Addition, Expand_Modular_Subtraction): - Convert all operands of the generated code to Standard.Unsigned, to - prevent spurious visibility errors. This is needed when the generated - expansion involves a modular index type of an array type, and the index - type is not immediately visible. - -2018-05-30 Piotr Trojanek - - * einfo.ads (Package_Instantiation): Update comment after a routine - that uses this field has been renamed. - -2018-05-30 Ed Schonberg - - * exp_ch11.adb (Replace_Raise_By_Goto): The transfomation is legal even - if the local raise statement includes a string expression. This - expression might be picked up by an outer handler or discarded, but - plays no role in this transformation. - -2018-05-30 Hristian Kirtchev - - * exp_aggr.adb, exp_unst.adb, freeze.adb, libgnat/a-direct.adb: Minor - reformatting. - -2018-05-30 Ed Schonberg - - * exp_unst.adb (Visit_Node): Handle the semantic Procedure_To_Call - field in relevant nodes: Allocate, Free, and return statements. - -2018-05-30 Ed Schonberg - - * exp_unst.adb (Visit_Node): Do not traverse a Component_Association - that has not been analyzed, as will be the case for a nested aggregate - that is expanded into individual assignments. - -2018-05-30 Justin Squirek - - * aspects.adb, aspects.ads: Register new aspect. - * par-prag.adb (Prag): Register new pragma. - * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing for new - aspect similar to Aspect_Max_Queue_Length. - * sem_prag.adb, sem_prag.ads (Analyze_Pragma): Register new pragma and - set it to use the same processing as Pragma_Max_Queue_Length. - * snames.ads-tmpl: Move definition of Name_Max_Entry_Queue_Depth so - that it can be processed as a pragma in addition to a restriction and - add an entry for the pragma itself. - -2018-05-30 Ed Schonberg - - * freeze.adb (Freeze_Object_Declaration): A pragma Thread_Local_Storage - is now legal on a variable of composite type initialized with an - aggregate that is fully static and requires no elaboration code. - * exp_aggr.adb (Convert_To_Positional): Recognize additional cases of - nested aggregates that are compile-time static, so they can be used to - initialize variables declared with Threqd_Local_Storage. - * doc/gnat_rm/implementation_defined_pragmas.rst: Add documentation on - Thread_Local_Storage. - * gnat_rm.texi: Regenerate. - -2018-05-30 Yannick Moy - - * sem_util.adb (Policy_In_Effect): Take into account CodePeer and - GNATprove modes. - -2018-05-30 Justin Squirek - - * libgnat/a-direct.adb, libgnat/a-direct.ads (Name_Case_Equivalence): - Add implementation. - (Start_Search): Modify to use Start_Search_Internal - (Start_Search_Internal): Add to break out an extra flag for searching - case insensative due to the potential for directories within the same - OS to allow different casing schemes. - * sysdep.c (__gnat_name_case_equivalence): Add as a default fallback - for when the more precise solution fails. - -2018-05-30 Hristian Kirtchev - - * checks.adb, exp_ch5.adb, exp_ch7.adb, exp_unst.adb, sem_eval.adb: - Minor reformatting. - -2018-05-30 Pascal Obry - - * libgnat/g-comlin.ads (Value_Callback, Define_Switch): New. - * libgnat/g-comlin.adb: Add corresponding implementation. - -2018-05-30 Gary Dismukes - - * sem_res.adb, sem_util.adb: Fix several typos. - -2018-05-30 Olivier Hainque - - * vx_crtbegin_attr.c (CTOR_ATTRIBUTE, DTOR_ATTRIBUTE): Empty. - (eh_registration_ctors, eh_registration_tors): New static variables, - forced in a .ctors/.dtors section, respectively, with priority. - -2018-05-30 Bob Duff - - * aspects.ads, contracts.adb, exp_util.adb, expander.adb, expander.ads, - freeze.adb, inline.adb, lib-xref.adb, sem.ads, sem_aggr.adb, - sem_attr.adb, sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_ch6.adb, - sem_ch8.adb, sem_dim.adb, sem_elab.adb, sem_res.adb, sem_res.ads, - sinfo.ads: Spell preanalysis, preanalyze correctly. - -2018-05-30 Bob Duff - - * libgnat/g-sestin.ads: Rework documentation comments. - -2018-05-30 Piotr Trojanek - - * errout.adb, exp_aggr.adb, exp_ch7.adb, exp_util.adb, lib.adb, - sem_ch13.adb, sem_ch4.adb, sem_res.adb, sem_util.adb - (Has_Original_Node): Refactor to use Is_Rewrite_Substitution. - -2018-05-30 Piotr Trojanek - - * sem_prag.adb (Analyze_Pragma): Remove conjuncts that are always true. - -2018-05-30 Hristian Kirtchev - - * sem_util.adb (Is_Atomic_Object): Cleaned up. Split the entity logic - in a separate routine. - (Is_Atomic_Object_Entity): New routine. - (Is_Atomic_Prefix): Cleaned up. - (Is_Synchronized_Object): Check that the object is atomic, or its type - is atomic. - (Object_Has_Atomic_Components): Removed. - * sem_util.ads (Is_Atomic_Object): Reword the comment on usage. - (Is_Atomic_Object_Entity): New routine. - -2018-05-30 Ed Schonberg - - * sem_ch3.adb (Access_Subprogram_Declaration): The flag - Needs_Activation_Record is only needed on a subprogram type, not on a - pointer to such. - * sem_res.adb (Resolve_Selected_Component): If the context type and the - component type are anonymous access to subprograms, use the component - type to obtain the proper value of Needs_Activation_Record flag for the - expression. - -2018-05-30 Eric Botcazou - - * gcc-interface/trans.c (gnat_to_gnu) : Add - comment about the memset case. - -2018-05-30 Bob Duff - - * exp_ch5.adb (Expand_Formal_Container_Element_Loop): Remove the code - to analyze the Elmt_Decl, because it gets analyzed in the wrong scope. - We need to analyze it as part of analyzing the block, so that if the - call to Element that initializes Elmt_Decl returns on the secondary - stack, the block will ss_mark/ss_release. This block is inside the - loop; we don't want to leak memory until the loop exits. The purpose - of analyzing Elmt_Decl first was to catch the error of modifying it, - which is illegal because it's a loop parameter. The above causes us to - miss that error. Therefore, we add a flag Is_Loop_Parameter, and set - it on the Element entity, so we end up with an E_Variable node with the - flag set. - * einfo.ads, einfo.adb (Is_Loop_Parameter): New flag. - * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Give the "assignment to loop - parameter not allowed" error if Is_Loop_Parameter. - * sem_util.adb (Is_Variable): Return False if Is_Loop_Parameter, to - trigger the call to Diagnose_Non_Variable_Lhs. - -2018-05-30 Arnaud Charlet - - * checks.adb (Apply_Scalar_Range_Check): - * sem_eval.adb (Check_Non_Static_Context, Out_Of_Range): Ignore out of - range values for System.Priority in CodePeer mode since the actual - target compiler may provide a wider range. - -2018-05-30 Ed Schonberg - - * exp_unst.adb: Search specification of main unit as well, for - unnesting. - -2018-05-30 Ed Schonberg - - * exp_ch7.adb (Check_Unnesting_Elaboration_Code): The statement part of - a package body that is a compilation unit may contain blocks that - declare local subprograms. In Subprogram_Unnesting Mode such - subprograms must be handled as nested inside the (implicit) elaboration - procedure that executes that statement part. To handle properly uplevel - references we construct that subprogram explicitly, to contain blocks - and inner subprograms, The statement part of the compilation unit - becomes a call to this subprogram. This is only done if blocks are - present in the statement list of the body. - -2018-05-30 Bob Duff - - * exp_ch7.adb: Minor comment fix. - -2018-05-30 Ed Schonberg - - * exp_unst.adb (Visit_Node): Handle properly subprogram instantiations - that have no corresponding body and appear as attributes of the - corresponding wrapper package declaration. - (Register_Subprogram): New subprogram, used for subprogram bodies and - for subprogram instantiations to enter callable entity into Subp table. - -2018-05-30 Hristian Kirtchev - - * libgnat/s-secsta.adb: Reimplement the secondary stack support. - * libgnat/s-secsta.ads: Update the documentation of all routines in the - public part of the package. Reimplement the private part of the - package to account for the new secondary stack structure. Add types - and subprograms for testing purposes. Add several documentation - sections. - -2018-05-30 Hristian Kirtchev - - * exp_aggr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb, exp_unst.adb, - exp_util.adb, exp_util.ads, libgnat/a-calcon.adb, libgnat/a-calcon.ads, - libgnat/s-os_lib.adb, repinfo.adb, sem_ch3.adb, sem_disp.adb, - sem_disp.ads, sem_util.adb: Minor reformatting. - -2018-05-30 Arnaud Charlet - - * gcc-interface/Makefile.in: Move special flags for Ada runtime files - from here... - * Makefile.rtl: ... to here. Update comments. Protect call to - "GCC_FOR_TARGET" in case target_os isn't defined. - -2018-05-30 Arnaud Charlet - - * gcc-interface/Makefile.in: Move target pair settings from here... - * Makefile.rtl: ... to here. - (setup-rts): New target. - -2018-05-29 Eric Botcazou - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Alphabetical - List of All Switches): Replace "modules" with "units". - (Subprogram Inlining Control): Likewise. - * gnat_ugn.texi: Regenerate. - * usage.adb (Usage): Fix description of -gnatn switch. - -2018-05-29 Arnaud Charlet - - * gcc-interface/Makefile.in: Fix typos. - -2018-05-29 Ed Schonberg - - * exp_ch7.adb (Build_Finalizer_Call): Attach to tree the reference to - the finalizer procedure in the At_End handler, for use in LLVM - generation. - -2018-05-29 Javier Miranda - - * exp_ch4.adb (Expand_N_Op_Eq, Expand_Composite_Equality): Use the new - subprogram Inherits_From_Tagged_Full_View to identify more reliably - untagged private types completed with a derivation of an untagged - private whose full view is a tagged type. - * sem_util.ads, sem_util.adb (Inherits_From_Tagged_Full_View): New - subprogram. - (Collect_Primitive_Operations): Handle untagged private types completed - with a derivation of an untagged private type whose full view is a - tagged type. In such case, collecting the list of primitives we may - find two equality primitives: one associated with the untagged private - and another associated with the ultimate tagged type (and we must - remove from the returned list this latter one). - -2018-05-29 Ed Schonberg - - * exp_unst.adb (Visit_Node): Handle statement sequences that include an - At_End handler. - -2018-05-29 Eric Botcazou - - * repinfo.adb (List_Entities): Also recurse into blocks without label. - -2018-05-29 Ed Schonberg - - * exp_ch6.adb (Expand_N_Subprogram_Body): Do not generate push/pop for - exceptions if subprogram unnesting is in effect, because these branch - nodes are relevant only in the presence of nested subprograms. - -2018-05-29 Ed Schonberg - - * libgnat/s-fatgen.adb (Succ, Pred): Raise Constraint_Error - unconditionally when applied to the largest positive (resp. largest - negative) value of a floating-point type. - -2018-05-29 Ed Schonberg - - * einfo.ads, einfo.adb: Clarify use of Activation_Record_Component: - discriminants and exceptions are never components of such. The flag - Needs_Activation_Record is set on subprogram types, not on access to - them. - -2018-05-29 Ed Schonberg - - * sem_ch3.adb: Set scope of component of subtype. - -2018-05-29 Ed Schonberg - - * exp_unst.adb (Visit_Node): Exclude selected components whose prefix - carry no type. Such selected components appear in unit names that are - child units, both in the specification and possibly in an end label for - the unit, and they do not contain any relevant uplevel references. - -2018-05-29 Arnaud Charlet - - * libgnat/a-calend.ads, libgnat/a-calend.adb (Epoch_Offset): Make it a - function. - -2018-05-29 Olivier Hainque - - * libgnat/system-vxworks7-ppc-rtp.ads: New file. - * libgnat/system-vxworks7-ppc-kernel.ads: New file. - * libgnat/system-vxworks7-e500-rtp.ads: New file. - * libgnat/system-vxworks7-e500-kernel.ads: New file. - * libgnat/system-vxworks7-x86-rtp.ads: New file. - * libgnat/system-vxworks-ppc64-kernel.ads: Rename as ... - * libgnat/system-vxworks7-ppc64-kernel.ads: and adjust name of - gnat-crtbe link spec to use the vx7 variant. - -2018-05-29 Olivier Hainque - - * vx_crtbegin.inc: Use a consistent naming convention for the - registration/deregistration functions across RTP or kernel. Remove the - ctor/dtor attribute setting based on RTP/kernel, expect the optional - attribute extension to be provided by includers instead. - * vx_crtbegin.c: Mere inclusion of vx_crtbegin.inc with empty attribute - extension for the registration/deregistration functions. - * vx_crtbegin_attr.c: New file. Include vx_crtbegin.inc with explicit - constructor/destructor attribute extensions. - * vx_crtbegin_array.c: New file. Include vx_crtbegin.inc with empty - attribute extensions and declare _ctors/_dtors arrays. - * vx_crtbegin_auto.c: Remove. - * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Use - vxworks7-gnat-crtbe-link.spec. - * libgnat/system-vxworks7-aarch64.ads: Likewise. - * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise. - * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise. - * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise. - * libgnat/system-vxworks7-x86-kernel.ads: Likewise. - * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise. - * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise. - * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise. - -2018-05-29 Piotr Trojanek - - * ali.adb: Minor reformatting. - -2018-05-29 Joel Brobecker - - * doc/gnat_ugn/platform_specific_information.rst: Update package - requirements for 32bit GNAT on x86_64-linux. - * gnat_ugn.texi: Regenerate. - -2018-05-29 Eric Botcazou - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Debugging - Control): Adjust description of -gnatRj. - * gnat_ugn.texi: Regenerate. - * opt.ads (List_Representation_Info_To_JSON): Likewise. - * repinfo.adb (List_Rep_Info): Do not automatically create a file - if List_Representation_Info_To_JSON is true. - * switch-c.adb (Scan_Front_End_Switches) : Remove incompatibility - check between -gnatRj and -gnatRs. - * usage.adb (Usage): Adjust description of -gnatRj. - -2018-05-29 Pascal Obry - - * libgnat/s-os_lib.adb (Normalize_Pathname): Fix handling of ".." in - the root directory. - -2018-05-29 Pascal Obry - - * libgnat/s-os_lib.adb: Minor reformatting. - -2018-05-29 Doug Rupp - - * libgnat/a-calend.adb (Epoch_Offset): Move from body to ... - * libgnat/a-calend.ads (Epoch_Offset): to private part of spec - * libgnat/a-calcon.ads (To_Unix_Nano_Time): New function spec. - * libgnat/a-calcon.adb (To_Unix_Nano_Time): New function body. - -2018-05-29 Eric Botcazou - - * repinfo.ads (JSON format): Document new pair for components. - * repinfo.adb (Derived_Discriminant): New function. - (List_Structural_Record_Layout): Add Outer_Ent parameter and pass it - in recursive calls. If the record type is the parent of an extension, - find and list the derived discriminant from the extension, if any. - (List_Component_Layout): List the Discriminant_Number in JSON mode. - (List_Record_Info): Adjust call to List_Structural_Record_Layout. - -2018-05-29 Eric Botcazou - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Alphabetical - List of All Switches): Document -gnatRj. - (Debugging Control): Likewise. - * gnat_ugn.texi: Regenerate. - * opt.ads (List_Representation_Info_To_JSON): New boolean variable. - * osint-c.adb (Create_Repinfo_File): Use the .json instead of .rep - extension if List_Representation_Info_To_JSON is true. - * repinfo.ads: Document the JSON output format. - * repinfo.adb (List_Location): New procedure. - (List_Array_Info): Add support for JSON output. - (List_Entities): Likewise. - (Unop): Likewise. - (Binop): Likewise. - (Print_Expr): Likewise. - (List_Linker_Section): Likewise. - (List_Mechanisms): Likewise. - (List_Name): Likewise. - (List_Object_Info): Likewise. - (List_Record_Info): Likewise. - (List_Component_Layout): Likewise. Add Indent parameter. - (List_Structural_Record_Layout): New procedure. - (List_Attr): Add support for JSON output. - (List_Type_Info): Likewise. - (Write_Unknown_Val): Likewise. - * switch-c.adb (Scan_Front_End_Switches) : Deal with 'j'. - * usage.adb (Usage): List -gnatRj. - -2018-05-29 Eric Botcazou - - * repinfo.adb (List_Component_Layout): New procedure extracted from... - (List_Record_Layout): ...here. Invoke it. - -2018-05-29 Eric Botcazou - - * repinfo.adb (Write_Unknown_Val): New procedure. - (List_GCC_Expression): Call it. - (List_Record_Layout): Likewise. - (Write_Val): Likewise. - -2018-05-29 Richard Kenner - - * exp_ch4.adb (Expand_N_Op_Abs): Clear Do_Overflow_Check when inserting - code to do check. - -2018-05-29 Arnaud Charlet - - * lib-writ.adb (Write_ALI): Do not use new function from s-casuti yet. - This breaks build of cross compilers with older versions of GNAT, so - better avoid it. - -2018-05-29 Doug Rupp - - * libgnarl/s-taprop.ads (Monotonic_Clock): Refine documentation to - reflect reality. - -2018-05-29 Richard Kenner - - * exp_ch4.adb (Expand_N_Op_Abs): Always do range check against 'First. - -2018-05-29 Eric Botcazou - - * repinfo.adb (List_Entities): Do not list the Linker_Section for - subprograms here... - (List_Mechanisms): ...but here instead. Use consistent name output - and formatting conventions. - -2018-05-29 Bob Duff - - * lib-writ.adb (Write_ALI): Cleanup: avoid use of global var; call new - To_Lower function. - * libgnat/s-casuti.ads, libgnat/s-casuti.adb (To_Upper, To_Lower, - To_Mixed): New functions. - * osint.adb: Cleanup: use Is_Directory_Separator, which correctly - allows both '\' and '/' on Windows. - -2018-05-28 Eric Botcazou - - * repinfo.ads: Minor fixes and tweaks in comments. - -2018-05-28 Eric Botcazou - - * repinfo.adb (List_GCC_Expression): Remove Valop and replace calls to - it with calls to Unop. - -2018-05-28 Eric Botcazou - - * repinfo.ads (TCode): Adjust range. - (Truth_Andif_Expr): Remove. - (Truth_Orif_Expr): Likewise. - (Truth_And_Expr .. Dynamic_Val): Adjust value. - * repinfo.adb (Print_Expr): Remove handling of Truth_{And,Or}if_Expr. - (Rep_Value): Likewise. - * repinfo.h (Truth_Andif_Expr): Remove. - (Truth_Orif_Expr): Likewise. - (Truth_And_Expr .. Dynamic_Val): Adjust value. - * gcc-interface/decl.c (annotate_value) : Fall - through to TRUTH_AND_EXPR case. - : Fall through to TRUTH_OR_EXPR case. - -2018-05-28 Ed Schonberg - - * exp_unst.adb (Visit_Node): For indexed components and attribute - references, examine index expressions or associated expressions as well - to record uplevel references. - (Vist_Node): For function and procedure calls, if a formal is an - unconstrained array and the actual is constrained, check whether bounds - of actual have uplevel references. - -2018-05-28 Ed Schonberg - - * einfo.ads, einfo.adb: Exceptions can be uplevel references, and thus - they can appear as components of activation records. - * exp_unst.adb (Visit_Node): A reference to an exception may be an - uplevel reference. - -2018-05-28 Eric Botcazou - - * exp_ch4.adb (Expand_Composite_Equality): Compute whether the size - depends on a discriminant manually instead of using the predicate - Size_Depends_On_Discriminant in the array type case. - -2018-05-28 Ed Schonberg - - * exp_unst.adb (Check_Static_Type): For a record subtype, check - discriminant constraints as well. - (Visit_Node): For a selected component, check type of prefix, as is - done for indexed components and slices. - -2018-05-28 Javier Miranda - - * exp_ch4.adb (Real_Range_Check): Add a temporary to store the integer - value when converting a float value to a fixed-point value. This is - required for CCG because it handles fixed-point types by means of - unsigned integer type variables. The range check is now performed using - the integer value stored in this temporary. - -2018-05-28 Yannick Moy - - * sem_util.adb (Is_OK_Volatile_Context): Add attributes First, Last and - Length as valid non-interfering contexts for SPARK. - -2018-05-28 Claire Dross - - * sem_disp.ads, sem_disp.adb (Inheritance_Utilities): Package for - generic inheritance utilities. - (Generic_Inherited_Subprograms): Generic version of - Inherited_Subprograms, generic in Find_Dispatching_Type function. - (Generic_Is_Overriding_Subprogram): Generic version of - Is_Overriding_Subprogram, generic in Find_Dispatching_Type function. - (Inherited_Subprograms): Instance of Generic_Inherited_Subprograms with - Sem_Disp.Find_Dispatching_Type. - (Is_Overriding_Subprogram): Instance of - Generic_Is_Overriding_Subprogram with Sem_Disp.Find_Dispatching_Type. - (Inheritance_Utilities_Inst): Instance of Inheritance_Utilities - with Sem_Disp.Find_Dispatching_Type. - -2018-05-28 Eric Botcazou - - * exp_ch4.adb (Expand_Composite_Equality): For a composite (or FP) - component type, do not expand array equality using the unconstrained - base type, except for the case where the bounds of the type depend on a - discriminant. - -2018-05-28 Ed Schonberg - - * einfo.ads, einfo.adb (Needs_Activation_Record): New flag on - access-to-subprogram types, to indicate that an indirect call through - such a type requires an activation record when compiling for LLVM. - * sem_ch3.adb (Access_Subprogram_Declaration): Set new flag as needed. - -2018-05-28 Ed Schonberg - - * exp_ch4.adb (Real_Range_Check): Specialize float-to-fixed conversions - when bounds of fixed type are static, to remove some spuerfluous - implicit conversions and provide an accurate result when converting - back and forth between the fixed point type and a floating point type. - -2018-05-28 Ed Schonberg - - * exp_unst.adb (Unnest_Subprogram): Prevent creation of empty - activation records. - -2018-05-28 Richard Kenner - - * exp_unst.adb (Check_Static_Type): Add argument to indicate node to be - replaced, if any; all callers changed. - (Note_Uplevel_Ref): Likewise. Also replace reference to deferred - constant with private view so we take the address of that entity. - (Note_Uplevel_Bound): Add argument to indicate node to be replaced, if - any; all callers changed. Handle N_Indexed_Component like - N_Attribute_Reference. Add N_Type_Conversion case. - (Visit_Node): Indexed references can be uplevel if the type isn't - static. - (Unnest_Subprograms): Don't rewrite if no reference given. If call has - been relocated, set first_named pointer in original node as well. - -2018-05-28 Ed Schonberg - - * exp_aggr.adb (Flatten): Copy tree of expression in a component - association with a range or a set of discrete choices, rather than - relocating the node. This avoids inconsistencies in the tree when - handling nested subprograms with uplevel references for LLVM. - -2018-05-28 Arnaud Charlet - - * exp_util.adb (Possible_Bit_Aligned_Component): Always return False in - codepeer mode. - -2018-05-28 Arnaud Charlet - - * exp_unst.adb: Fix typo. - -2018-05-28 Bob Duff - - * libgnat/a-convec.adb (Query_Element): Minor cleanup: remove an - unnecessary use of 'Unrestricted_Access. - -2018-05-28 Hristian Kirtchev - - * repinfo.adb (Expr_Value_S): New routine. - (List_Linker_Section): Properly extract the value of the section - argument. - -2018-05-28 Patrick Bernardi - - * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update the - description of the -D binder switch to reflect current usage. - * gnat_ugn.texi: Regenerate. - -2018-05-28 Gary Dismukes - - * exp_ch3.adb: Minor reformatting - -2018-05-28 Justin Squirek - - * exp_ch3.adb - (Build_Initialization_Call): Add logic to pass the appropriate actual to match - new formal. - (Init_Formals): Add new formal *_skip_null_excluding_check - * exp_util.adb, exp_util.ads - (Enclosing_Init_Proc): Added to fetch the enclosing Init_Proc from the current - scope. - (Inside_Init_Proc): Refactored to use Enclosing_Init_Proc - (Needs_Conditional_Null_Excluding_Check): Added to factorize the predicate - used to determine how to generate an Init_Proc for a given type. - (Needs_Constant_Address): Minor reformatting - * sem_res.adb - (Resolve_Null): Add logic to generate a conditional check in certain cases - -2018-05-28 Hristian Kirtchev - - * exp_aggr.adb, gnatlink.adb, sem_ch6.adb, sem_res.adb, sem_util.adb: - Minor reformatting. - -2018-05-28 Hristian Kirtchev - - * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Include - the declarations of single concurrent types because they fall in the - category of full type and object declarations. - -2018-05-28 Eric Botcazou - - * repinfo.adb (Compute_Max_Length): Skip _Parent component. - (List_Record_Layout): Likewise. - -2018-05-28 Ed Schonberg - - * sem_util.adb (Is_Function_Result): Add a warning if a postcondition - includes a call to function to which it applies. This may mean an - omission of an attribute reference 'Result, in particular if the - function is pqrameterless. - -2018-05-28 Justin Squirek - - * sem_ch8.adb (Find_Expanded_Name): Add extra guard to make sure the - misresolved package name is not a case of mistaken identity. - -2018-05-28 Yannick Moy - - * sem_res.adb (Resolve_Range): Re-resolve the low bound of a range in - GNATprove mode, as the order of resolution (low then high) means that - all the information is not available when resolving the low bound the - first time. - -2018-05-28 Eric Botcazou - - * repinfo.adb (List_Array_Info): Start with an explicit blank line and - end with the linker section, if any. - (List_Entities): Do not output the linker section for record types, - array types and variables. - (Print_Expr): Factor out common processing for unary operators and - special values. Adjust and reorder the various cases. - (List_Object_Info): End with the linker section, if any. - (List_Record_Info): Likewise. - (List_Type_Info): Do not start with a blank line. - -2018-05-25 Nicolas Roche - - * libgnat/s-valrea.adb (Scan_Real): Abort computation once it is sure - that the result will be either -infinite or +infinite. - -2018-05-25 Patrick Bernardi - - * libgnat/s-parame.ads, libgnat/s-parame__vxworks.ads, - libgnat/s-parame__ae653.ads, libgnat/s-parame__hpux.ads (Size_Type): - Expand range of type to match the address space of the target. - (Task_Storage_Size): Remove unused type. - -2018-05-25 Ed Schonberg - - * sem_res.adb (Set_Mixed_Mode_Operand): If the operand is an expression - of a fixed point type and the parent is a multiplying operation, - resolve the operand with its own type because the context will impose a - resulting type on the result of the multiplication by means of - approriate conversion. - -2018-05-25 Hristian Kirtchev - - * exp_ch3.adb (Default_Initialize_Object): Ensure that the analysis of - the in-place initialization aggregate created for pragmas - Initialize_Scalars or Normalize_Scalars is performed with checks - suppressed. - -2018-05-25 Arnaud Charlet - - * exp_aggr.adb (Convert_To_Positional): Bump default for - Max_Others_Replicate to 32. Update comments. - * osint.ads (Unknown_Attributes): No longer pretend this is a constant. - (No_File_Info_Cache): Initialize separately. - * osint.adb (No_File_Info_Cache): Update initializer. - -2018-05-25 Javier Miranda - - * sem_res.adb (Resolve_Membership_Op): Allow the use of the membership - test when the left operand is a class-wide interface and the right - operand is not a class-wide type. - * exp_ch4.adb (Tagged_Membership): Adding support for interface as the - left operand. - -2018-05-25 Ed Schonberg - - * exp_aggr.adb (Flatten): A quantified expression cannot be duplicated - in an others clause to prevent visibility issues with the generated - loop variable. - (Component_OK_For_Backend): Return false for a quantified expression. - (Check_Static_Component): Ditto. - -2018-05-25 Hristian Kirtchev - - * libgnat/s-secsta.adb (SS_Allocate): Reimplemented. - (SS_Allocate_Dynamic): New routine. The allocation logic is now split - into three distring cases rather than in one loop which attempts to - handle all three cases. This rewrite eliminates an issue where the last - frame of the stack cannot be freed, thus causing the memory range of a - new frame to approach the overflow point of the memory index type. - Since the overflow is logically treated as a - too-much-memory-on-the-stack scenario, it causes a bogus Storage_Error. - (SS_Allocate_Static): New routine. The routine factorizes the static - secondary stack-related code from the former SS_Allocate. - -2018-05-25 Sergey Rybin - - * doc/gnat_ugn/gnat_and_program_execution.rst: Add description of '-U' - option for gnatelim. - -2018-05-25 Ed Schonberg - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not create - Class_Wide_Clone_Body when analyzing a subprogram_body_stub: the clone - is created when the proper body of the stub is analyzed. - * sem_util.adb (ZBuild_Class_Wide_Clone_Body): If the subprogram body - is the proper body of a subunit, the cloned body must be inserted in - the declarative list that contains the stub. - -2018-05-25 Justin Squirek - - * exp_ch6.adb (Expand_Simple_Function_Return): Add guard in check to - generate code for 6.5(8-10) so that we don't get an assertion error - when dealing with an incomplete return type. - -2018-05-25 Arnaud Charlet - - * pprint.adb (Expression_Name): Strip too long expressions to avoid - carrying very large strings. - -2018-05-25 Patrick Bernardi - - * switch-b.adb (Scan_Binder_Switches): binder switch -Q accepts Natural - numbers. - -2018-05-25 Doug Rupp - - * tracebak.c (aarch64-linux): Implement. - -2018-05-25 Justin Squirek - - * sem_ch8.adb: Minor reformatting. - -2018-05-25 Piotr Trojanek - - * sem_util.adb (Iterate_Call_Parameters): Fix code convention and - assertions. - -2018-05-25 Hristian Kirtchev - - * einfo.adb, einfo.ads, exp_ch3.adb, exp_ch8.adb, exp_unst.adb, - pprint.adb, sem_ch12.adb, sem_ch3.adb, sem_prag.adb, sem_util.adb: - Minor reformatting. - -2018-05-25 Ed Schonberg - - * sem_ch12.adb (Instance_Exists): New function, subsidiary of - Validate_Derived_Type_Instance, to verify that all interfaces - implemented by the formal type are also implemented by the actual. The - verification is complicated when an interface of the formal is declared - in a generic unit and the actual is declared in an instance of it. - There is currently no mechanism to relate an interface declared within - a generic to the corresponding interface in an instance, so we must - traverse the list of interfaces of the actual, looking for a name - match, and verifying that that interface is declared in an instance. - -2018-05-25 Piotr Trojanek - - * sem_util.adb (Iterate_Call_Parameters): Rewrite with extra - assertions; replace function versions of Next_Formal/Next_Actual with - their procedural versions (which are more concise). - -2018-05-25 Doug Rupp - - * libgnarl/s-osinte__aix.ads, libgnarl/s-osinte__android.ads, - libgnarl/s-osinte__darwin.ads, libgnarl/s-osinte__freebsd.ads, - libgnarl/s-osinte__hpux.ads, libgnarl/s-osinte__kfreebsd-gnu.ads, - libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__lynxos178e.ads, - libgnarl/s-osinte__qnx.ads, libgnarl/s-osinte__rtems.ads - (Relative_Timed_Wait): Remove. - * libgnarl/s-tpopmo.adb (Timed_Sleep, Timed_Delay): Rewrite to allow - for incremental looping. Remove references to Rel_Time and - Relative_Timed_Wait. - * libgnat/s-osprim__posix.adb, libgnat/s-osprim__posix2008.adb - (Timed_Delay): Make separate. - * libgnat/s-optide.adb: New separate procedure. - * libgnat/s-osprim.ads (Max_System_Delay): New constant. - * libgnat/s-osprim__lynxos.ads (Max_Sensible_Delay): Set to 6 months. - (Max_System_Delay): New constant. - -2018-05-25 Ed Schonberg - - * sem_ch12.adb (Validate_Derived_Type_Instance): Verify that the actual - for a formal derived type implements all the interfaces declared for - the formal. - -2018-05-25 Yannick Moy - - * sem_prag.adb (Check_Applicable_Policy): Deal specially with CodePeer - and GNATprove modes when applicable policy is Ignore. - -2018-05-25 Eric Botcazou - - * freeze.adb (Freeze_Enumeration_Type): Do not give integer size to a - boolean type with convention C. - * libgnat/i-cexten.ads (bool): Change to boolean with convention C. - * gcc-interface/decl.c (gnat_to_gnu_entity): Add new local variable - FOREIGN and use it throughout the function. - : Set precision 1 on boolean types with foreign - convention. - : Likewise for subtypes. - : Force the size of a storage unit on empty classes. - * gcc-interface/utils.c (make_type_from_size) : Skip - boolean types with precision 1 if the size is the expected one. - -2018-05-25 Arnaud Charlet - - * pprint.adb (Expression_Name): Do not print non ASCII characters. - -2018-05-25 Bob Duff - - * libgnat/a-strunb__shared.ads, libgnat/a-stwiun__shared.ads, - libgnat/a-stzunb__shared.ads: (Initialize, Adjust): Add pragma Inline. - -2018-05-25 Bob Duff - - * sem_util.ads: Minor comment fix. - -2018-05-25 Ed Schonberg - - * exp_unst.adb (Visit_Node): Restrict check for uplevel references in - prefixes of array attributes, to prefixes that are entity names whose - type is constrained. - (Note_Uplevel_Bound): Verify that the bound is declared in an enclosing - subprogram, as itype created for loops in pre/postcondition may appear - in loops at the library level. - -2018-05-25 Ed Schonberg - - * sem_ch13.adb (Build_Predicate_Functions): The predicate function - declaration is inserted into the tree and analyzed at that point, so - should not be reinserted when the body is constructed. Inside a - generic, ensure that the body is not inserted twice in the tree. - -2018-05-25 Yannick Moy - - * sem_prag.adb (Check_Grouping): Modify test to ignore statements and - declarations not coming from source. - -2018-05-25 Fedor Rybin - - * doc/gnat_ugn/gnat_utility_programs.rst: Document new switch - --copy-environment for gnattest. - -2018-05-24 Piotr Trojanek - - * sem_elab.adb (Non_Private_View): Simplify by removing a local Result - variable. - * sem_prag.adb (Get_Base_Subprogram): Same as above. - -2018-05-24 Eric Botcazou - - * fe.h (Set_Normalized_First_Bit): Declare. - (Set_Normalized_Position): Likewise. - * repinfo.adb (List_Record_Layout): Do not use irregular output for a - variable position. Fix minor spacing issue. - * gcc-interface/decl.c (annotate_rep): If a field has a variable - offset, compute the normalized position and annotate it in addition to - the bit offset. - -2018-05-24 Eric Botcazou - - * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): - Constify and rename variables. Fix formatting. - (gnat_to_gnu) : Minor tweak. - : Likewise. - -2018-05-24 Javier Miranda - - * exp_ch8.adb (Build_Body_For_Renaming): Adding support to build the - body of a variant record equality renaming. - (Expand_N_Subprogram_Renaming_Declaration): Adapt the code to the new - implementation of Build_Body_For_Renaming. - * exp_ch3.ads (Build_Variant_Record_Equality): New library level - function that factorizes the functionality needed by - Build_Body_For_Renaming and Expand_Freeze_Record_Type to build the body - of a variant record equality subprogram. - * exp_ch3.adb (Build_Variant_Record_Equality): New subprogram. - (Build_Variant_Record_Equality): New local procedure of - Expand_Freeze_Record_Type containing all the code specific for freezing - the record type that cannot be place in the new library level function. - -2018-05-24 Ed Schonberg - - * einfo.ads, einfo.adb (Is_Activation_Record): New flag on - in_parameters, used when unesting subprograms for LLVM, to indicate - that a generated parameter carries the activation record from the - enclosing subprogram. - * exp_unst.adb (Check_Static_Type): Handle array attributes of types - whose bounds may contain up-level references that need to be added to - an activation recoord. - (Add_Extra_Formal): Set Is_Activation_Record on new formal. - -2018-05-24 Yannick Moy - - * pprint.adb (Expression_Image): Improve the printing of expressions, - by taking more cases into account, in particular qualified expressions - and aggregates. Also count more the number of parentheses to close - after the expression. - -2018-05-24 Javier Miranda - - * sem_ch3.adb (Is_Visible_Component): For untagged types add missing - check for renamed discriminants. - * sem_ch4.adb (Analyze_Overloaded_Selected_Component, - Analyze_Selected_Component, Check_Misspelled_Selector): For calls to - Is_Visible_Component pass the associated selector node to allow - checking renamed discriminants on untagged types. - -2018-05-24 Ed Schonberg - - * sem_ch8.adb (Analyze_Use_Type): Do not assign the Prev_Use_Clause - link to a use_type clause if this would cause an infinite loop in the - machinery that detects redundant use clauses. This may happen when the - redundant clauses appear in the context of a child unit and the context - of its parent. - -2018-05-24 Piotr Trojanek - - * sinfo.ads: Fix grammar in comment. - -2018-05-24 Justin Squirek - - * einfo.ads, einfo.adb (Append_Entity): Modified to use Link_Entities - and manage doubly-linked entity chain. - (Nested_Scenarios): Removed entity field used for optimization during - elaboration to make room for the new field Prev_Entity. - (Link_Entities): Added to replace redundant calls to Set_Next_Entity - and Set_Prev_Entity as well as centralize changes to the entity chain. - (Predicated_Parent): Modified to use Node38. - (Prev_Entity): Added to fetch new node field Prev_Entity in all entity - types. - (Remove_Entity): Moved from sem_util. - (Set_Nested_Scenarios): Deleted. - (Set_Predicated_Parent): Modified to use Node38. - (Set_Prev_Entity): Added to set Prev_Entity field. - (Set_Validated_Object): Modified to use Node38. - (Unlink_Next_Entity): Added to process Prev_Entity when an unlinking - action is required. - (Validated_Object): Modified to use Node38. - (Write_Field36_Name): Remove Nested_Scenarios, Validated_Object, and - predicated parent cases. - (Write_Field38_Name): Add predicated parent and Validated_Object cases. - * sem_ch3.adb (Process_Subtype): Add guard to protect against - inappropriate marking of Predicated_Parent to non-itype subtypes. - (Make_Class_Wide_Type): Preserve Prev_Entity field and set in new type. - (Copy_And_Swap): Add setting of Prev_Entity. - (Build_derived_Record_Type): Replace Set_Next_Entity w/ Link_Entities. - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Replace Set_Next_Entity - w/ Link_Entities. - (New_Overloaded_Entity): Remove block created to search for previous - entities in the entity chain with relevant calls to Prev_Entity as well - as replace duplicated code from Remove_Entity_And_Homonym with a call - to that subprogram. - * sem_ch7.adb (Exchange_Declarations): Replace Set_Next_Entity w/ - Link_Entities. - * sem_elab.adb (Find_And_Process_Nested_Scenarios): Remove global and - initial subprogram declarations related to Nested_Scenarios. - (Process_Nested_Scenarios): Deleted. - (Save_Scenario): Deleted. - (Traverse_Body): Remove optimization for Nested_Scenarios so as to free - node space in the entity tree. - * sem_util.adb, sem_util.ads (Remove_Entity): Moved to einfo. - (Remove_Entity_And_Homonym): Added to separate functionality of - Remove_Entity from the homonym chain directly. - * exp_attr.adb (Expand_N_Attribute_Reference): Replace Set_Next_Entity - w/ Link_Entities and Unlink_Next_Entity. - * exp_ch3.adb (Expand_N_Object_Declaration): Replace Set_Next_Entity w/ - Link_Entities. - * exp_ch6.adb (Replace_Renaming_Declaration_Id): Replace - Set_Next_Entity w/ Link_Entities. - * exp_disp.adb (Expand_Dispatching_Call): Replace Set_Next_Entity w/ - Link_Entities and Unlink_Next_Entity. - * exp_spark.adb (Expand_SPARK_N_Object_Renaming_Declaration): Replace - call to Remove_Entity with its new incarnation. - * exp_util.adb (New_Class_Wide_Subtype): Add setting of Prev_Entity. - * freeze.adb (Freeze_Record_Type): Replace Set_Next_Entity w/ - Link_Entities. - -2018-05-24 Hristian Kirtchev - - * sem_ch10.adb (Expand_Limited_With_Clause): Update the call to - Install_Limited_Withed_Unit. - (Expand_With_Clause): Update the call to Install_Withed_Unit. - (Implicit_With_On_Parent): Update the call to Install_Withed_Unit. - (Install_Context_Clauses): Update the call to Install_Withed_Unit. - (Install_Limited_Context_Clauses): Update the calls to - Install_Limited_Withed_Unit. - (Install_Limited_Withed_Unit): Renamed to better illustrate its - purpose. - (Install_Private_With_Clauses): Update the calls to Install_Withed_Unit - and Install_Limited_Withed_Unit. - (Install_With_Clause): Uninstall a limited with clause if a [private] - with clause is given for the same package. - (Install_Withed_Unit): Renamed to better illustrate its purpose. - (Remove_Limited_With_Unit): New routine. - -2018-05-24 Eric Botcazou - - * raise-gcc.c (__gnat_SEH_error_handler): Remove prototype. - (__gnat_personality_seh0): Adjust and beef up comments, and - fix formatting throughout. - (__gnat_adjust_context): Deal minimally with version 2. - * seh_init.c (__gnat_map_SEH): Fix formatting. - (_gnat_SEH_error_handler): Adjust comments. - (__gnat_install_SEH_handler): Fix formatting. - -2018-05-24 Hristian Kirtchev - - * exp_ch7.adb, sem_ch3.adb, sem_res.adb: Minor reformatting. - -2018-05-24 Ed Schonberg - - * exp_aggr.adb (Flatten): Add a warning on an others clause in an array - aggregate with static bounds when named associations cover all index - positions and the others clause is redundant. - -2018-05-24 Raphael Amiard - - * libgnat/a-cohama.ads: Add documentation. - -2018-05-24 Raphael Amiard - - * libgnat/a-convec.ads: Add documentation. - -2018-05-24 Justin Squirek - - * exp_ch3.adb (Expand_N_Object_Declaration): Ignore raising an error in - expansion for limited tagged types when the node to be expanded is a - raise expression due to it not representing a valid object. - * exp_ch5.adb (Expand_N_Assignment_Statement): Add exception to error - message regarding assignments to limited types to ignore genereated - code. - -2018-05-24 Hristian Kirtchev - - * exp_util.adb (New_Class_Wide_Subtype): Capture and restore relevant - Ghost-related attributes of the class-wide subtype because the copy - clobbers them. - -2018-05-24 Justin Squirek - - * sem_res.adb (Resolve_Entity_Name): Add guard to protect against - marking use clauses as effective when the reference appears within - generated code. - -2018-05-24 Cyrille Comar - - * doc/gnat_rm/the_gnat_library.rst: Fix typos. - * gnat_rm.texi: Regenerate. - -2018-05-24 Bob Duff - - * exp_ch7.adb (Expand_Cleanup_Actions): Create a mark unconditionally - for build-in-place functions with a caller-unknown-size result. - (Create_Finalizer): For build-in-place functions with a - caller-unknown-size result, check at run time whether we need to - release the secondary stack. - -2018-05-24 Hristian Kirtchev - - * sem_prag.adb (Analyze_Pragma): Use the full view of an internally - generated incomplete type. - -2018-05-24 Hristian Kirtchev - - * expander.adb (Expand): Update the save and restore of the Ghost - region. - * exp_ch3.adb (Freeze_Type): Likewise. - * exp_disp.adb (Make_DT): Likewise. - * exp_util.adb (Build_DIC_Procedure_Body): Likewise. - (Build_DIC_Procedure_Declaration): Likewise. - (Build_Invariant_Procedure_Body): Likewise. - (Build_Invariant_Procedure_Declaration): Likewise. - (Make_Predicate_Call): Likewise. - * freeze.adb (Add_To_Result): Insert the freeze action of a living - entity prior to the start of the enclosing ignored Ghost region. - (Freeze_Entity): Update the save and restore of the Ghost region. - * ghost.adb (Install_Ghost_Mode): Reimplemented. - (Install_Ghost_Region): New routine. - (Mark_And_Set_Ghost_Assignment): Install a region rather than a mode. - (Mark_And_Set_Ghost_Body): Likewise. - (Mark_And_Set_Ghost_Completion): Likewise. - (Mark_And_Set_Ghost_Declaration): Likewise. - (Mark_And_Set_Ghost_Instantiation): Likewise. - (Mark_And_Set_Ghost_Procedure_Call): Likewise. - (Name_To_Ghost_Mode): New routine. - (Restore_Ghost_Region): New routine. - * ghost.ads (Install_Ghost_Region): New routine. - (Restore_Ghost_Region): New routine. - * opt.ads: Add new global variable Ignored_Ghost_Region. - * rtsfind.adb (Load_RTU): Update the save and restore of the Ghost - region. Install a clean region. - * sem.adb (Analyze): Likewise. - (Do_Analyze): Likewise. - * sem_ch3.adb (Analyze_Object_Declaration): Likewise - (Derive_Progenitor_Subprograms): Use local variable Iface_Alias to - capture the ultimate alias of the current primitive. - (Process_Full_View): Update the save and restore of the Ghost region. - Do not inherit DIC and invariant procedures. - * sem_ch5.adb (Analyze_Assignment): Update the save and restore of the - Ghost region. - * sem_ch6.adb (Analyze_Procedure_Call): Likewise. - (Analyze_Subprogram_Body_Helper): Likewise. - * sem_ch7.adb (Analyze_Package_Body_Helper): Likewise. - * sem_ch12.adb (Analyze_Package_Instantiation): Likewise. - (Analyze_Subprogram_Instantiation): Likewise. - (Instantiate_Package_Body): Likewise. - (Instantiate_Subprogram_Body): Likewise. - * sem_ch13.adb (Build_Predicate_Functions): Likewise. - (Build_Predicate_Function_Declaration): Likewise. - * sem_disp.adb - (Add_Dispatching_Operation): Do not consider DIC and invariant - procedures. - (Check_Dispatching_Operation): Use Add_Dispatching_Operation to collect - a dispatching subprogram. - (Check_Operation_From_Private_View): Likewise. - (Override_Dispatching_Operation): Likewise. - * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Update the save - and restore of the Ghost region. - (Analyze_Initial_Condition_In_Decl_Part): Likewise. - (Analyze_Pragma): Update the save and restore of the Ghost region. - (Analyze_Pre_Post_Condition_In_Decl_Part): Likewise. - * sem_util.adb (Is_Suitable_Primitive): New routine. - * sem_util.ads (Is_Suitable_Primitive): New routine. - * sinfo.ads: Update the section of Ghost regions. - -2018-05-24 Piotr Trojanek - - * doc/gnat_rm/implementation_defined_pragmas.rst (Contract_Cases): - Change "condition" to "case guard" after renaming in the contract - grammar. - * gnat_rm.texi: Regenerate. - -2018-05-24 Hristian Kirtchev - - * exp_util.adb (Expand_Static_Predicates_In_Choices): Indicate that the - construct with discrete choices no longer contains a subtype with - predicates since the expansion already handled this case. - -2018-05-24 Hristian Kirtchev - - * freeze.adb (Wrap_Imported_Subprogram): Generate an unchecked - conversion to the return type to avoid a side effect where an imported - relocated function generates a new anonymous access type, whose - accessibility level does not agree with with that of the wrapper. - -2018-05-24 Javier Miranda - - * sem_util.adb (Abstract_Interface_List): Add missing support for - private types whose full view is a synchronized type. - * sem_ch3.adb (Build_Derived_Private_Type): Skip building the full - derivation of a private type parent type is a task type with - discriminants as gigi does not use such type directly. - -2018-05-24 Hristian Kirtchev - - * sem_elab.adb (Build_Variable_Reference_Marker): Do not create a - variable marker when the reference appears in the formal part of a - compilation unit instance because there is no place to insert it. - (In_Compilation_Instance_Formal_Part): New routine. - -2018-05-24 Piotr Trojanek - - * layout.ads, repinfo.ads: Fix references to renamed Backend_Layout - configuration parameter. - -2018-05-24 Doug Rupp - - * argv-lynxos178-raven-cert.c: New file. - * libgnat/system-lynxos178-x86.ads: New file. - -2018-05-23 Hristian Kirtchev - - * exp_disp.adb, freeze.adb, gnat1drv.adb, sem_ch5.adb, sem_spark.adb: - Minor reformattings. - -2018-05-23 Pascal Obry - - * adaint.c (win32_wait): Properly free the handle/pid lists when - WaitForMultipleObjects fails (return WAIT_FAILED). - -2018-05-23 Pascal Obry - - * adaint.c (win32_wait): Add missing parentheses. - -2018-05-23 Hristian Kirtchev - - * exp_ch3.adb (Check_Large_Modular_Array): Moved to Freeze. - (Expand_N_Object_Declaration): Do not check for a large modular array - here. - * freeze.adb (Check_Large_Modular_Array): Moved from Exp_Ch3. - (Freeze_Object_Declaration): Code cleanup. Check for a large modular - array. - * sem_ch3.adb: Minor reformatting. - -2018-05-23 Ed Schonberg - - * einfo.ads: New attribute on types: Predicated_Parent, to simplify the - retrieval of the applicable predicate function to an itype created for - a constrained array component. - * einfo.adb: Subprograms for Predicated_Parent. - (Predicate_Function): Use new attribute. - * exp_util.adb (Make_Predicate_Call): If the predicate function is not - available for a subtype, retrieve it from the base type, which may have - been frozen after the subtype declaration and not captured by the - subtype declaration. - * sem_aggr.adb (Resolve_Array_Aggregate): An Others association is - legal within a generated initiqlization procedure, as may happen with a - predicate check on a component, when the predicate function applies to - the base type of the component. - * sem_ch3.adb (Analyze_Subtype_Declaration): Clean up inheritance of - predicates for subtype declarations and for subtype indications in - other contexts. - (Process_Subtype): Likewise. Handle properly the case of a private type - with unknown discriminants whose full view is an unconstrained array. - Use Predicated_Parent to indicate source of predicate function on an - itype whose parent is itself an itype. - (Complete_Private_Subtype): If the private view has unknown - discriminants and the full view is an unconstrained array, set base - type of completion to the full view of parent. - (Inherit_Predicate_Flags): Prevent double assignment of predicate - function and flags. - (Build_Subtype): For a constrained array component, propagate predicate - information from original component type declaration. - -2018-05-23 Boris Yakobowski - - * libgnat/a-ngelfu.ads (Arctanh, Arccoth): Fix faulty preconditions. - -2018-05-23 Arnaud Charlet - - * checks.adb (Minimize_Eliminate_Overflows): Default initialize Lo and - Hi. - * sem_elab.adb: Make "out" parameters instead of "in out" when - relevant. - -2018-05-23 Bob Duff - - * gnatbind.adb (List_Applicable_Restrictions): Add - No_Implementation_Restrictions to the list of restrictions not to list. - Remove double negative "not No_Restriction_List". Comment the - commentary that is output, so it won't cause errors if used directly in - a gnat.adc. - -2018-05-23 Ed Schonberg - - * sem_prag.adb (Inherit_Class_Wide_Pre): Refine legality check on - class-wide precondition on a type extension when ancestor does not have - a class-wide precondition. Previously the compiler accepted such a - precondition when the ancestor had a class-wide postcondition. - -2018-05-23 Javier Miranda - - * sem_attr.adb (Valid_Scalars): Do not invoke Error_Attr_P to report - the warning on occurrences of this attribute whose evaluation is always - true (since that subprogram aborts processing the attribute). In - addition, replace the node by its boolean result 'True' (required - because the backend has no knowledge of this attribute). - -2018-05-23 Bob Duff - - * libgnat/a-convec.adb: (Insert, Insert_Space): Suppress warnings. The - code in question is not reachable in the case where Count_Type'Last is - out of range. - -2018-05-23 Yannick Moy - - * doc/gnat_rm/implementation_defined_pragmas.rst: Clarify meaning of - local pragma Warnings Off without On. - * gnat_rm.texi: Regenerate. - -2018-05-23 Olivier Hainque - - * libgnat/g-excact.ads (Is_Foreign_Exception): New predicate. - * libgnat/g-excact.adb: Implement. - -2018-05-23 Ed Schonberg - - * sem_ch5.adb (Analyze_Iterator_Specification): If a subtype indication - is present, verify its legality when the domain of iteration is a - GNAT-specific formal container, as is already done for arrays and - predefined containers. - -2018-05-23 Yannick Moy - - * sem_util.adb (Enclosing_Declaration): Fix the case of a named number - declaration, which was not taken into account. - -2018-05-23 Hristian Kirtchev - - * debug.adb: Switch -gnatd_s is now used to stop elaboration checks on - synchronized suspension. - * rtsfind.ads: Add entries for units Ada.Synchronous_Barriers and - Ada.Synchronous_Task_Control and routines Suspend_Until_True and - Wait_For_Release. - * sem_elab.adb: Document switch -gnatd_s. - (In_Task_Body): New routine. - (Is_Potential_Scenario): Code cleanup. Stop the traversal of a task - body when the current construct denotes a synchronous suspension call, - and restriction No_Entry_Calls_In_Elaboration_Code or switch -gnatd_s - is in effect. - (Is_Synchronous_Suspension_Call): New routine. - * switch-c.adb (Scan_Front_End_Switches): Switch -gnatJ now sets switch - -gnatd_s. - -2018-05-23 Javier Miranda - - * exp_disp.adb (Make_DT): Restrict the initialization of - External_Tag and Expanded_Name to an empty string to the case where - both pragmas apply (i.e. No_Tagged_Streams and Discard_Names), since - restricted runtimes are compiled with pragma Discard_Names. - * doc/gnat_rm/implementation_defined_pragmas.rst, - doc/gnat_rm/implementation_defined_characteristics.rst: Add - documentation. - * gnat_rm.texi: Regenerate. - -2018-05-23 Maroua Maalej - - * sem_spark.adb: Fix of some permission rules of pointers in SPARK. - -2018-05-23 Ed Schonberg - - * sem_ch5.adb (Preanalyze_Range): The pre-analysis of the domain of - iteration of an Ada2012 loop is performed to determine the type of the - domain, but full analysis is performed once the loop is rewritten as a - while-loop during expansion. The pre-analysis suppresses expansion; it - must also suppress the generation of freeze nodes, which may otherwise - appear in the wrong scope before rewritting. - -2018-05-23 Hristian Kirtchev - - * sem_elab.adb: Update the section on suppressing elaboration warnings. - -2018-05-23 Hristian Kirtchev - - * einfo.adb (Is_Elaboration_Checks_OK_Id): Use predicate - Is_Elaboration_Target. - (Is_Elaboration_Target): New routine. - (Is_Elaboration_Warnings_OK_Id): Use predicate Is_Elaboration_Target. - (Set_Is_Elaboration_Checks_OK_Id): Use predicate Is_Elaboration_Target. - (Set_Is_Elaboration_Warnings_OK_Id): Use predicate - Is_Elaboration_Target. - * einfo.ads: Add new synthesized attribute Is_Elaboration_Target along - with occurrences in nodes. - (Is_Elaboration_Target): New routine. - * sem_prag.adb (Analyze_Pragma): Suppress elaboration warnings when an - elaboration target is subject to pragma Warnings (Off, ...). - -2018-05-23 Eric Botcazou - - * repinfo.adb (List_Type_Info): Remove obsolete stuff. - -2018-05-23 Hristian Kirtchev - - * einfo.adb: Flag304 is now Is_Elaboration_Warnings_OK_Id. - (Is_Elaboration_Warnings_OK_Id): New routine. - (Set_Is_Elaboration_Warnings_OK_Id): New routine. - (Write_Entity_Flags): Output Flag304. - * einfo.ads: Add new attribute Is_Elaboration_Warnings_OK_Id along with - occurrences in entities. - (Is_Elaboration_Warnings_OK_Id): New routine along with pragma Inline. - (Set_Is_Elaboration_Warnings_OK_Id): New routine along with pragma - Inline. - * sem_attr.adb (Analyze_Access_Attribute): Capture the state of - elaboration warnings. - * sem_ch3.adb (Analyze_Object_Declaration): Capture the state of - elaboration warnings. - * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Capture the - state of elaboration warnings. - (Analyze_Subprogram_Body_Helper): Capture the state of elaboration - warnings. - (Analyze_Subprogram_Declaration): Capture the state of elaboration - warnings. - * sem_ch9.adb (Analyze_Entry_Declaration): Capture the state of - elaboration warnings. - (Analyze_Single_Task_Declaration): Capture the state of elaboration - warnings. - (Analyze_Task_Type_Declaration): Capture the state of elaboration - warnings. - * sem_ch12.adb (Analyze_Generic_Package_Declaration): Capture the state - of elaboration warnings. - (Analyze_Generic_Subprogram_Declaration): Capture the state of - elaboration warnings. - * sem_elab.adb: Add a section on suppressing elaboration warnings. - Type Processing_Attributes includes component Suppress_Warnings - intended to suppress any elaboration warnings along a path in the - graph. Update Initial_State to include a value for this component. - Types Target_Attributes and Task_Attriutes include component - Elab_Warnings_OK to indicate whether the target or task has elaboration - warnings enabled. component Elab_Warnings_OK. - (Build_Access_Marker): Propagate attribute - Is_Elaboration_Warnings_OK_Node from the attribute to the generated - call marker. - (Extract_Instantiation_Attributes): Set the value for Elab_Warnings_OK. - (Extract_Target_Attributes): Set the value for Elab_Warnings_OK. - (Extract_Task_Attributes): Set the value for Elab_Warnings_OK. - (Process_Conditional_ABE_Access): Suppress futher elaboration warnings - when already in this mode or when the attribute or target have warnings - suppressed. - (Process_Conditional_ABE_Activation_Impl): Do not emit any diagnostics - if warnings are suppressed. - (Process_Conditional_ABE_Call): Suppress further elaboration warnings - when already in this mode, or the target or call have warnings - suppressed. - (Process_Conditional_ABE_Call_Ada): Do not emit any diagnostics if - warnings are suppressed. - (Process_Conditional_ABE_Call_SPARK): Do not emit any diagnostics if - warnings are suppressed. - (Process_Conditional_ABE_Instantiation): Suppress further elaboration - warnings when already in this mode or when the instantiation has - warnings suppressed. - (Process_Conditional_ABE_Instantiation_Ada): Do not emit any - diagnostics if warnings are suppressed. - (Process_Conditional_ABE_Variable_Assignment_Ada): Use the more - specific Is_Elaboration_Warnings_OK_Id rather than Warnings_Off. - (Process_Conditional_ABE_Variable_Assignment_SPARK): Use the more - specific Is_Elaboration_Warnings_OK_Id rather than Warnings_Off. - (Process_Task_Object): Suppress further elaboration warnings when - already in this mode, or when the object, activation call, or task type - have warnings suppressed. Update the processing state to indicate that - the path goes through a task body. - * sinfo.adb (Is_Elaboration_Warnings_OK_Node): Accept attribute - references. - (Set_Is_Elaboration_Warnings_OK_Node): Accept attribute references. - * sinfo.ads: Attribute Is_Elaboration_Warnings_OK_Node now applies to - attribute references. - -2018-05-23 Piotr Trojanek - - * einfo.ads: Minor reformatting. - -2018-05-23 Ed Schonberg - - * sem_ch3.adb (Analyze_Object_Declaration): If expression is an - anonymous_access_to_ subprogram formal, apply a conversion to force an - accsssibility check that will fail statically, enforcing 3.10.2 (13). - -2018-05-23 Daniel Mercier - - * gnat1drv.adb: Turn off length expansion in CodePeer mode. - -2018-05-23 Bob Duff - - * freeze.adb: (Check_Address_Clause): Deal with build-in-place - aggregates in addition to build-in-place calls. - -2018-05-23 Bob Duff - - * einfo.ads: Minor reformatting. - * sem_ch3.adb: Likewise. - * sinfo.ads: Likewise. - -2018-05-23 Hristian Kirtchev - - * exp_ch3.adb (Default_Initialize_Object): Do not optimize scalar array - initialization when the component type has predicates. - * exp_ch4.adb (Expand_N_Allocator): Do not optimize scalar array - allocation when the component type has predicates. - -2018-05-23 Hristian Kirtchev - - * einfo.adb, exp_disp.adb, sem_ch3.adb, sem_ch6.adb, sem_prag.adb: - Minor reformatting. - -2018-05-22 Justin Squirek - - * sem_ch6.adb (Analyze_Expression_Function): Propagate flags from the - original function spec into the generated function spec due to - expansion of expression functions during analysis. - (Analyze_Subprogram_Body_Helper): Modify check on formal parameter - references from the body to the subprogram spec in the case of - expression functions because of inconsistances related to having a - generated body. - * libgnarl/s-osinte__android.ads: Flag parameters as unused. - * libgnarl/s-osinte__lynxos178e.ads: Likewise. - * libgnarl/s-osinte__qnx.adb: Likewise. - * libgnarl/s-osinte__qnx.ads: Likewise. - -2018-05-22 Doug Rupp - - * init.c (HAVE_ADJUST_CONTEXT_FOR_RAISE): Don't define on VxWorks7 for - AArch64. - -2018-05-22 Olivier Hainque - - * libgnat/a-except.adb (Exception_Propagation.Propagate_Exception): - Expect an Exception_Occurence object, not an Access. - (Complete_And_Propagate_Occurrence): Adjust accordingly. - (Raise_From_Signal_Handler): Likewise. - (Reraise_Occurrence_No_Defer): If we have a Machine_Occurrence - available in the provided occurrence object, just re-propagate the - latter as a bare "raise;" would do. - * libgnat/a-exexpr.adb (Propagate_Exception): Adjust to spec change. - * libgnat/a-exstat.adb (String_To_EO): Initialize X.Machine_Occurrence - to null, to mark that the occurrence we're crafting from the stream - contents is not being propagated (yet). - -2018-05-22 Hristian Kirtchev - - * exp_aggr.adb (Initialize_Ctrl_Record_Component): Insert the generated - code for a transient component in line with the rest of the - initialization code, rather than before the aggregate. This ensures - that the component has proper visibility of the discriminants. - -2018-05-22 Jerome Lambourg - - * adaint.c: Reorganize QNX-specific macros, use syspage to retreive the - number of CPUs. - -2018-05-22 Jerome Lambourg - - * sigtramp-qnx.c: Properly restore link register in signal trampoline. - -2018-05-22 Hristian Kirtchev - - * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Strip away any - conversions before extracting the value of the expression. - * exp_ch3.adb (Default_Initialize_Object): Optimize the default - initialization of an array of scalars. - (Get_Simple_Init_Val): Add processing for array types. Remove the - processing of strings because this case is already handled by the array - case. - (Needs_Simple_Initialization): Moved to Sem_Util. - (Simple_Init_Array_Type): New routine. - (Simple_Init_Initialize_Scalars_Type): Reimplemented to use the new - facilities from Sem_Util. - (Simple_Initialization_OK): New routine. - * exp_ch3.ads (Needs_Simple_Initialization): Moved to Sem_Util. - * exp_ch4.adb (Expand_N_Allocator): Optimize the default allocation of - an array of scalars. - * sem_prag.adb (Analyze_Float_Value): New routine. - (Analyze_Integer_Value): New routine. - (Analyze_Pragma): Reimplement the analysis of pragma Initialize_Scalars - to handled the extended form of the pragma. - (Analyze_Type_Value_Pair): New routine. - * sem_util.adb: Add invalid value-related data structures. - (Examine_Array_Bounds): New routine. - (Has_Static_Array_Bounds): Reimplemented. - (Has_Static_Non_Empty_Array_Bounds): New routine. - (Invalid_Scalar_Value): New routine. - (Needs_Simple_Initialization): Moved from Exp_Ch3. - (Set_Invalid_Scalar_Value): New routines. - * sem_util.ads (Has_Static_Non_Empty_Array_Bounds): New routine. - (Invalid_Scalar_Value): New routine. - (Needs_Simple_Initialization): Moved from Exp_Ch3. - (Set_Invalid_Scalar_Value): New routines. - * snames.ads-tmpl: Add names for the salar type families used by pragma - Initialize_Scalars. - -2018-05-22 Javier Miranda - - * exp_disp.adb (Make_DT): Initialize the External_Tag with an empty - string when pragma No_Tagged_Streams is applicable to the tagged type, - and initialize the Expanded_Name with an empty string when pragma - Discard_Names is applicable to the tagged type. - -2018-05-22 Ed Schonberg - - * sem_ch6.adb (Check_Conformance): Add RM reference for rule that a - formal subprogram is never subtype conformqnt, and thus cannot be the - prefix of 'Access. Reject as well the attribute when applied to a - renaming of a formal subprogram. - -2018-05-22 Hristian Kirtchev - - * exp_ch3.adb (Build_Array_Init_Proc): Update the call to - Needs_Simple_Initialization. - (Build_Init_Statements): Update the call to Get_Simple_Init_Val. - (Check_Subtype_Bounds): Renamed to Extract_Subtype_Bounds. Update the - profile and comment on usage. - (Default_Initialize_Object): Do not use New_Copy_Tree to set the proper - Sloc of a value obtained from aspect Default_Value because this could - potentially replicate large trees. The proper Sloc is now set in - Get_Simple_Init_Val. - (Get_Simple_Init_Val): Reorganized by breaking the various cases into - separate routines. Eliminate the use of global variables. - (Init_Component): Update the call to Get_Simple_Init_Val. - (Needs_Simple_Initialization): Update the parameter profile and all - uses of T. - (Simple_Init_Defaulted_Type): Copy the value of aspect Default_Value - and set the proper Sloc. - * exp_ch3.ads (Get_Simple_Init_Val): Update the parameter profile and - comment on usage. - (Needs_Simple_Initialization): Update the parameter profile. - -2018-05-22 Patrick Bernardi - - * sem_ch3.adb (Build_Discriminant_Constraints): Raise an error if the - user tries to use a subtype indication as a discriminant constraint. - -2018-05-22 Ed Schonberg - - * exp_ch4.ads, exp_ch4.adb, exp_util.adb, expander.adb: Remove mention - of N_Reduction_Expression and N_Reduction_Expression_Parameter. - * par-ch4.adb: Remove parsing routines for reduction expressions. - * sem.adb, sinfo.ads, sinfo.adb, sem_ch4.ads, sem_ch4.adb, sem_res.adb, - sem_spark.adb, sprint.adb: Remove analysis routines for reduction - expressions. - -2018-05-22 Arnaud Charlet - - * sem_ch8.adb (Check_Frozen_Renaming): Do not emit error in - Relaxed_RM_Semantics mode. - -2018-05-22 Arnaud Charlet - - * comperr.adb (Delete_SCIL_Files): Take into account - N_Generic_Package_Renaming_Declaration. - -2018-05-22 Ed Schonberg - - * sem_ch3.adb (Search_Derivation_Levels): Whenever a parent type is - private, use the full view if available, because it may include renamed - discriminants whose values are stored in the corresponding - Stored_Constraint. - -2018-05-22 Ed Schonberg - - * einfo.ads, einfo.adb: New attribute Hidden_In_Formal_Instance, - defined on packages that are actuals for formal packages, in order to - set/reset the visibility of the formals of a formal package with given - actuals, when there are subsequent uses of those formals in the - enclosing generic, as required by RN 12.7 (10). - * atree.ads, atree.adb: Add operations for Elist30. - * atree.h: Add Elist30. - * sem_ch12.adb (Analyze_Formal_Package_Instantiation): Collect formals - that are not defaulted and are thus not visible within the current - instance. - (Check_Formal_Packages): Reset visibility of formals of a formal - package that are not defaulted, on exit from current instance. - -2018-05-22 Hristian Kirtchev - - * sem_prag.adb (Analyze_Input_Output): Emit an error when a non-null, - non-'Result output appears in the output list of a function. - -2018-05-22 Hristian Kirtchev - - * exp_attr.adb (Build_Array_VS_Func): Reimplemented. - (Build_Record_VS_Func): Reimplemented. - (Expand_N_Attribute): Reimplement the handling of attribute - 'Valid_Scalars. - * sem_attr.adb (Analyze_Attribute): Reimplement the handling of - attribute 'Valid_Scalars. - * sem_util.adb (Scalar_Part_Present): Reimplemented. - (Validated_View): New routine. - * sem_util.ads (Scalar_Part_Present): Update the parameter profile and - comment on usage. - (Validated_View): New routine. - * doc/gnat_rm/implementation_defined_attributes.rst: Update the - documentation of attribute 'Valid_Scalars. - * gnat_rm.texi: Regenerate. - -2018-05-22 Bob Duff - - * binde.adb: (Choose): Ignore a pragma Elaborate_Body that appears in - the spec of a SAL_Interface package. - -2018-05-22 Ed Schonberg - - * freeze.adb (Freeze_Entity): When analyzing delayed aspects of an - entity E within a generic unit, indicate that there are no remaining - delayed aspects after invoking Analyze_Aspects_At_Freeze_Point. The - entity E is not frozen yet but the aspects should not be reanalyzed at - the freeze point, which may be outside of the generic and may not have - the proper visibility. - -2018-05-22 Bob Duff - - * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for - the new --split-line-before-record, --indent-named-statements and - --no-align-modes gnatpp switches. - -2018-05-22 Ed Schonberg - - * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Handle properly - a second argument that is a constant of a given string value. - -2018-05-22 Doug Rupp - - * sigtramp-vxworks-target.inc: Align stack to 128bits on AArch64. - -2018-05-22 Jerome Lambourg - - * sigtramp-qnx.c: Fix stack alignment issue in the signal trampoline. - -2018-05-22 Ed Schonberg - - * freeze.adb (Freeze_Fixed_Point_Type): If the first subtype has - delayed aspects, analyze them now, os that the representation of the - type (size, bounds) can be computed and validated. - -2018-05-22 Olivier Hainque - - * libgnat/s-dwalin.adb (Enable_Cache): Skip symbols outside of the - executable code section boundaries. - -2018-05-22 Javier Miranda - - * locales.c: New implementation for the Ada.Locales package. - * libgnat/a-locale.ads: Remove comment indicating that this is not - implemented. - * doc/gnat_rm/standard_library_routines.rst: Remove comment indicating - that this is not implemented. - * gnat_rm.texi: Regenerate. - -2018-05-22 Hristian Kirtchev - - * exp_ch5.adb, freeze.adb, pprint.adb, sem_ch4.adb, sem_res.adb: Minor - reformattings. - -2018-05-22 Justin Squirek - - * sem_ch12.adb (In_Same_Declarative_Part): Moved to sem_util. - (Freeze_Subprogram_Body, Install_Body): Modify calls to - In_Same_Declarative_Part. - * sem_prag.adb (Analyze_Pragma-Pragma_Pure_Function): Add check to - verify pragma declaration is within the same declarative list with - corresponding error message. - * sem_util.adb, sem_util.ads (In_Same_Declarative_Part): Moved from - sem_ch12.adb and generalized to be useful outside the scope of - freezing. - -2018-05-22 Hristian Kirtchev - - * sem_ch6.adb (Analyze_Subprogram_Declaration): Set the proper - categorization of the unit after processing the aspects in case one of - its aspects is converted into a categorization pragma. - -2018-05-21 Ed Schonberg - - * freeze.adb (Warn_Overlay): Do not emit a wawrning on an object - declaration with an explicit address clause and a type with default - initialization, if the declaration carries an aspect - Suppress_Initialization. - -2018-05-21 Daniel Mercier - - * pprint.adb: Use mixed case for attribute names. - -2018-05-21 Hristian Kirtchev - - * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Rename the call to - Analyze_Aspect_Specifications_On_Body_Or_Stub. - (Analyze_Subprogram_Body_Helper): Rename the calls to - Analyze_Aspect_Specifications_On_Body_Or_Stub. - * sem_ch9.adb (Analyze_Entry_Body): Rename the call to - Analyze_Aspect_Specifications_On_Body_Or_Stub. - * sem_ch10.adb: Add with and use clause for Sem_Ch13. - (Analyze_Package_Body_Stub): Add constant Id. Decorate the package stub - prior to analyzing its aspects. - (Analyze_Protected_Body_Stub): Add constant Id. Decorate the package - stub prior to analyzing its aspects. Save and restore the configuration - switches. - (Analyze_Task_Body_Stub): Add constant Id. Decorate the package stub - prior to analyzing its aspects. - * sem_ch13.adb (Analyze_Aspect_Specifications_On_Body_Or_Stub): Renamed - to Analyze_Aspects_On_Subprogram_Body_Or_Stub. - * sem_ch13.ads (Analyze_Aspect_Specifications_On_Body_Or_Stub): Renamed - to Analyze_Aspects_On_Subprogram_Body_Or_Stub. - * sem_prag.adb: Code reformatting. - (Analyze_Refined_Depends_Global_Post): Consider task body stubs. - -2018-05-21 Jerome Lambourg - - * gcc-interface/Makefile.in: Add g-soliop__qnx.ads to the runtime build - for QNX. - -2018-05-21 Hristian Kirtchev - - * exp_cg.adb: Remove with and use clause for Exp_Disp. - * exp_ch9.adb: Remove with and use clause for Exp_Disp. - * exp_disp.adb (Is_Predefined_Dispatching_Operation): Moved to Sem_Util. - (Is_Predefined_Interface_Primitive): Moved to Sem_Util. - (Is_Predefined_Internal_Operation): Moved to Sem_Util. - * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved to Sem_Util. - (Is_Predefined_Interface_Primitive): Moved to Sem_Util. - (Is_Predefined_Internal_Operation): Moved to Sem_Util. - * exp_dist.adb: Remove with and use clause for Exp_Disp. - * freeze.adb: Remove with and use clause for Exp_Disp. - * sem_cat.adb: Remove with and use clause for Exp_Disp. - * sem_ch6.adb: Remove with and use clause for Exp_Disp. - * sem_ch12.adb: Remove with and use clause for Exp_Disp. - * sem_elab.adb (Check_Overriding_Primitive): Do not process predefined - primitives. - * sem_util.adb: Remove with and use clause for Exp_Disp. - (Is_Predefined_Dispatching_Operation): Moved from Exp_Disp. - (Is_Predefined_Interface_Primitive): Moved from Exp_Disp. - (Is_Predefined_Internal_Operation): Moved from Exp_Disp. - * sem_util.ads (Is_Predefined_Dispatching_Operation): Moved from - Exp_Disp. - (Is_Predefined_Interface_Primitive): Moved from Exp_Disp. - (Is_Predefined_Internal_Operation): Moved from Exp_Disp. - -2018-05-21 Ed Schonberg - - * sem_res.adb (Valid_Conversion): Improve error message on an illegal - type conversion whose expression has a limited view of a type. - -2018-05-21 Ed Schonberg - - * exp_ch5.adb (Build_Formal_Container_Iteration): If source has - explicit name for iterator loop, preserve that name in expanded - construct, for possible use in exit statements. - -2018-05-21 Javier Miranda - - * sem_ch4.adb (Analyze_Membership_Op): Avoid compiler crash when the - spec of a unit has Ada 2012 membership tests with multiple choices and - the unit body is not compiled under Ada 2012 mode. - -2018-05-21 Doug Rupp - - * sigtramp-vxworks-target.inc: Set cfa_reg properly from sigcontext - pregs. - (CFI_COMMON_REGS): Restore LR jic probed from prologue. - (REGNO_PC_OFFSET): Change to correct value for Aarch64. - -2018-05-21 Jose Ruiz - - * doc/gnat_ugn/gnat_utility_programs.rst, exp_attr.adb, - libgnarl/s-tassta.adb: Minor typo fixes - -2018-05-21 Ed Schonberg - - * sem_ch4.adb (Analyze_One_Call): Recognize complex cases where an - indexed call originally in prefix forn is itself the prefix of a - further call. - -2018-05-21 Piotr Trojanek - - * sem_eval.adb (Is_Null_Range): Clarify access to the full view of a - type. - (Not_Null_Range): Same as above. - -2018-05-21 Hristian Kirtchev - - * exp_ch3.adb: Minor reformatting. - * exp_ch6.adb: Likewise. - * freeze.adb: Likewise. - * inline.adb: Likewise. - * sem_util.adb: Likewise. - -2018-05-21 Yannick Moy - - * inline.adb (Expand_Inlined_Call.Process_Formals): Use a type - conversion instead of an unchecked type conversion when inlining a - return statement, unless type qualification is required (for character - and string literal) or no check can result from the conversion (for - access types). - * opt.ads: Update comment. - -2018-05-21 Hristian Kirtchev - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Install the elaboration - model of the compilation unit spec, if any. - * sem_ch7.adb (Analyze_Package_Body_Helper): Install the elaboration - model of the compilation unit spec, if any. - * sem_ch10.adb (Analyze_Subunit): Install the elaboration model of the - parent compilation unit spec, if any. - * sem_elab.adb (Check_Elaboration_Scenarios): Restore the elaboration - model of the main unit. - (Is_Same_Unit): The routine now uses Unit_Entity. - (Is_Subunit): Removed. - (Normalize_Unit): Removed. - (Unit_Entity): New routine. - * sem_prag.adb (Analyze_Pragma): Reimplement the handling of pragma - Elaboration_Checks. The analysis now ensures that the pragma appears at - the configuration level, and on the initial declaration of a unit. - Other placements are either flagged as illegal, or ignored. - (Check_Duplicate_Elaboration_Checks_Pragma): New routine. - (Ignore_Elaboration_Checks_Pragma): New routine. - * sem_util.adb (Install_Elaboration_Model): New routine. - * sem_util.ads (Install_Elaboration_Model): New routine. - * doc/gnat_rm/implementation_defined_pragmas.rst: Update the - documentation of pragma Elaboration_Checks. - * gnat_rm.texi: Regenerate. - -2018-05-21 Olivier Hainque - - * libgnat/s-trasym__dwarf.adb (Executable_Name): Return argv[0] instead - of empty string when argv[0] couldn't be found on PATH. - (Enable_Cache): Raise Program_Error instead of attempting a null - pointer dereference when the Exec_Module initialization failed. - -2018-05-21 Piotr Trojanek - - * libgnarl/a-reatim.ads (Clock_Time): Remove External aspect. - * libgnarl/a-taside.ads (Tasking_State): Likewise. - * libgnat/a-calend.ads (Clock_Time): Likewise. - -2018-05-21 Yannick Moy - - * sem_ch6.adb (Analyze_Procedure_Call): Refine test to recognize prefix - call notation in inlined call in GNATprove mode. - -2018-05-21 Hristian Kirtchev - - * einfo.adb (Is_External_State): An abstract state is also external - when it is declared with option "synchronous". - * einfo.ads: Update the documentation of synthesized attribute - Is_External_State. - * sem_util.adb (Find_Simple_Properties): New routine. - (Is_Enabled_External_Property): New routine. - (State_Has_Enabled_Property): Reimplemented. The two flavors of option - External have precedence over option Synchronous when determining - whether a property is in effect. - -2018-05-21 Yannick Moy - - * sem_eval.adb (Static_Length): Take into account case of variable of - subtype string literal. - -2018-05-21 Olivier Hainque - - * libgnat/s-objrea.ads (Get_Memory_Bounds): Rename as Get_Xcode_Bounds. - (Object_Section): Rename Flag_Alloc component as Flag_Xcode. - * libgnat/s-objrea.adb (Get_Xcode_Bounds): Adjust to new subprogram and - component name. - (Get_Section, ELF case): Set Flag_Xcode from SHF_EXECINSTR. - * libgnat/s-dwalin.adb (Open): Adjust to the Get_Memory_Bounds name - change. - -2018-05-21 Olivier Hainque - - * libgnat/s-dwalin.ads (Dwarf_Context): Change type of Load_Address to - Address, and type of Low, High to Storage_Offset. - (Low): Rename as Low_Address and convey that the return value is a - runtime reference accounting for a load address. - * libgnat/s-dwalin.adb (Read_Aranges_Entry): Adjust to the - address/offset type changes. - (Aranges_Lookup): Likewise. - (Symbolic_Address): Likewise. - (Symbolic_Traceback): Likewise. - (Dump_Cache): Likewise. - (Is_Inside): Likewise. - (Open): Likewise. - (Set_Load_Address): Likewise. - (Low_Address): Likewise, and account for C.Load_Address. - * libgnat/s-trasym__dwarf.adb (Lt): Use Low_Address instead of Low. - (Multi_Module_Symbolic_Traceback): Compare address in traceback - with module Low_Address instead of Low. - -2018-05-21 Olivier Hainque - - * libgnat/s-dwalin.ads (Dwarf_Context): Rename Load_Slide as - Load_Address. - * libgnat/s-dwalin.adb (Is_Inside): Adjust accordingly. - (Set_Load_Address): Likewise. - (Symbolic_Traceback): Likewise. - -2018-05-21 Olivier Hainque - - * libgnat/s-trasym__dwarf.adb (Add_Module_To_Cache): Expect a - Load_Address argument and pass it down to Init_Module. - * libgnat/s-tsmona__linux.adb (Build_Cache_For_All_Modules): Pass - lm.l_addr as the Load_Address to Add_Module_To_Cache. - -2018-05-21 Piotr Trojanek - - * einfo.adb (Has_Discriminants): Stronger assertion. - (Set_Has_Discriminants): Stronger assertion. - * sem_ch13.adb (Push_Scope_And_Install_Discriminants): Adapt to respect - the stronger assertion on Has_Discriminant. - (Uninstall_Discriminants_And_Pop_Scope): Same as above. - * sem_util.adb (New_Copy_Tree): Same as above. - * sem_ch7.adb (Generate_Parent_References): Prevent calls to - Has_Discriminant on non-type entities that might happen when the - compiled code has errors. - * sem_ch3.adb (Derived_Type_Declaration): Only call - Set_Has_Discriminant on type entities. - -2018-05-21 Arnaud Charlet - - * exp_unst.adb (Unnest_Subprogram): Unnest all subprograms relevant for - code generation. - -2018-05-21 Piotr Trojanek - - * lib.ads: Fix typo in enumeration in comment. - -2018-05-21 Ed Schonberg - - * sem_attr.adb (Analyze_Attribute, case Scalar_Storage_Order): The - attribute reference is legal within a generic unit when the prefix is a - formal private type. - -2018-05-21 Hristian Kirtchev - - * exp_ch7.adb (Establish_Transient_Scope): Code cleanup. Do not - delegate the secondary stack management when there is no suitable - transient context, and the transient scope was intended to manage the - secondary stack because this causes premature reclamation. Change the - transient scope creation logic by special casing assignment statements - of controlled components for type initialization procedures. - (Find_Node_To_Be_Wrapped): Renamed to Find_Transient_Context. Update - the comment on usage. - (Find_Transient_Context): Change the initinte loop into a while loop. - Iterations schemes and iterator specifications are not valid transient - contexts because they rely on special processing. Assignment statements - are now treated as a normal transient context, special cases are - handled by the caller. Add special processing for pragma Check. - (Is_OK_Construct): Removed. Its functionality has been merged in - routine Find_Transient_Context. - * sem_ch5.adb (Check_Call): Reimplemented. Add code to properly - retrieve the subprogram being invoked. Use a more accurate predicate - (Requires_Transient_Scope) to determine that the function will emply - the secondary stack. - -2018-05-21 Piotr Trojanek - - * ada_get_targ.adb: Fix subprogram body headers. - * adabkend.adb: Likewise. - * checks.adb: Likewise. - * exp_ch3.adb: Likewise. - * exp_ch5.adb: Likewise. - * exp_ch9.adb: Likewise. - * exp_dist.adb: Likewise. - * exp_tss.adb: Likewise. - * inline.adb: Likewise. - * lib-writ.adb: Likewise. - * lib-xref-spark_specific.adb: Likewise. - * libgnarl/s-osinte__darwin.adb: Likewise. - * libgnarl/s-stusta.adb: Likewise. - * libgnarl/s-taprop__solaris.adb: Likewise. - * libgnarl/s-tposen.adb: Likewise. - * libgnarl/s-vxwext__kernel-smp.adb: Likewise. - * libgnarl/s-vxwext__kernel.adb: Likewise. - * libgnat/a-btgbso.adb: Likewise. - * libgnat/a-cfdlli.adb: Likewise. - * libgnat/a-cfhama.adb: Likewise. - * libgnat/a-cfinve.adb: Likewise. - * libgnat/a-cimutr.adb: Likewise. - * libgnat/a-coboho.adb: Likewise. - * libgnat/a-cofove.adb: Likewise. - * libgnat/a-cofuve.adb: Likewise. - * libgnat/a-comutr.adb: Likewise. - * libgnat/a-exexda.adb: Likewise. - * libgnat/a-tags.adb: Likewise. - * libgnat/a-tideau.adb: Likewise. - * libgnat/a-wtdeau.adb: Likewise. - * libgnat/a-ztdeau.adb: Likewise. - * libgnat/g-alleve.adb: Likewise. - * libgnat/s-excdeb.adb: Likewise. - * libgnat/s-parint.adb: Likewise. - * libgnat/s-shasto.adb: Likewise. - * libgnat/s-traceb__hpux.adb: Likewise. - * prepcomp.adb: Likewise. - * sem_ch4.adb: Likewise. - * sem_ch6.adb: Likewise. - * sem_dist.adb: Likewise. - * sem_prag.adb: Likewise. - * sem_util.adb: Likewise. - * sinfo.adb: Likewise. - * switch.adb: Likewise. - -2018-05-04 John Marino - - PR ada/85635 - * link.c (BSD platforms): Add missing backslash. - -2018-04-27 Eric Botcazou - - PR ada/85540 - * init.c (__gnat_handle_vms_condition): Add missing parentheses. - -2018-04-25 Eric Botcazou - - PR ada/85007 - * gnat_ugn.texi: Regenerate. - -2018-03-23 Eric Botcazou - - PR ada/85007 - * gnatlink.adb (Gnatlink): Remove handling of -b switch. - * doc/gnat_ugn/building_executable_programs_with_gnat.rst (gnatlink): - Remove documentation of -b switch. - -2018-03-23 Eric Botcazou - - PR ada/85036 - * gnatlink.adb (Process_Args): Drop existing link switches if multiple - switches are passed for --LINK. - -2018-03-12 Eric Botcazou - - PR ada/82813 - * gcc-interface/misc.c (gnat_post_options): Disable string overflow - warnings. - -2018-03-10 Eric Botcazou - - * gcc-interface/trans.c (node_has_volatile_full_access) : - Consider only entities for objects. - -2018-03-07 Sebastian Huber - - * gcc-interface/Makefile.in (OSCONS_CPP): Remove redundant - $(GNATLIBCFLAGS). - (OSCONS_EXTRACT): Add $(GNATLIBCFLAGS_FOR_C). - -2018-03-06 Eric Botcazou - - * gcc-interface/trans.c (convert_with_check): Fix typo in the condition - guarding the overflow check emitted for the upper bound of a floating- - point conversion. - -2018-03-06 Eric Botcazou - - * gcc-interface/utils.c (def_builtin_1): Bail out on error_mark_node. - -2018-02-28 Eric Botcazou - - * libgnat/i-cexten.ads (Float_128): New type. - -2018-02-02 Eric Botcazou - - * gcc-interface/decl.c (array_type_has_nonaliased_component): Return - false if the component type is a pointer. - -2018-01-11 Gary Dismukes - - * exp_ch3.adb (Default_Initialize_Object): Call New_Copy_Tree on the - result of Get_Simple_Init_Value and pass the source location of the - object declaration's object_definition. - -2018-01-11 Ed Schonberg - - * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Handle - properly object declarations with initializations that are - build-in-place function calls, when there is an address specification, - either as an aspect specification or an explicit attribute - specification clause, for the initialized object. - * freeze.adb (Check_Address_Clause): Do not remove side-effects from - initial expressions in the case of a build-in-place call. - -2018-01-11 Piotr Trojanek - - * sem_eval.adb (Is_Null_Range): Retrieve the full view when called on a - private (sub)type; refactor to avoid early return statement. - (Not_Null_Range): Same as above. - -2018-01-11 Hristian Kirtchev - - * freeze.adb (Freeze_Entity): Ensure that a Ghost type is not - concurrent, nor effectively volatile. - * ghost.adb (Check_Ghost_Type): New routine. - * ghost.ads (Check_Ghost_Type): New routine. - * sem_util.adb (Is_Declaration): Reimplemented. The routine can now - consider specific subsets of declarations. - (Is_Declaration_Other_Than_Renaming): Removed. Its functionality is - replicated by Is_Declaration. - * sem_util.ads (Is_Declaration): New parameter profile. Update the - comment on usage. - (Is_Declaration_Other_Than_Renaming): Removed. - -2018-01-11 Hristian Kirtchev - - * sem_ch5.adb (Analyze_Assignment): Assignments to variables that act - as Part_Of consituents of single protected types are illegal when they - take place inside a protected function. - (Diagnose_Non_Variable_Lhs): Use Within_Function to check for an - enclosing function. - (Is_Protected_Part_Of_Constituent): New routine. - (Within_Function): New routine. - -2018-01-11 Arnaud Charlet - - Bump copyright notices to 2018. - -2018-01-11 Hristian Kirtchev - - * binde.adb, par-ch6.adb, par-ch9.adb, sem_ch12.adb, sem_ch13.adb: - Minor reformatting. - -2018-01-11 Justin Squirek - - * par-ch6.adb (Scan_Body_Or_Expression_Function): Add additional check - to make sure a given expression function is properly parenthesized. - -2018-01-11 Hristian Kirtchev - - * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Check the - categorization of a subprogram body which does not complete a previous - declaration. - -2018-01-11 Hristian Kirtchev - - * sem_ch10.adb (Check_Private_Child_Unit): Ensure that the enclosing - scope of package Ada is Standard. - -2018-01-11 Ed Schonberg - - * sem_ch13.adb (Replace_Type_Ref): Handle properly reference to a - subcomponent of the current entity when building the body for a dynamic - predicate function for a record with composite subcomponents. - -2018-01-11 Hristian Kirtchev - - * exp_aggr.adb (Convert_Aggr_In_Object_Decl): Update the call to - Establish_Transient_Scope. - (Convert_To_Assignments): Update the call to Establish_Transient_Scope. - (Expand_Array_Aggregate): Update the call to Establish_Transient_Scope. - * exp_ch6.adb (Expand_Call_Helper): Update the call to - Establish_Transient_Scope. - (Make_Build_In_Place_Call_In_Object_Declaration): Update the call to - Establish_Transient_Scope. - * exp_ch7.adb (Establish_Transient_Scope): Restructured. Delegate the - management of the secondary stack to an enclosing scope if there is no - suitable construct to wrap, and the transient scope was intended to - manage the secondary stack. - (Find_Node_To_Be_Wrapped): Restructured. A case_statement_alternative - is a valid boundary for a transient expression which comes from the - statements of the alternative, otherwise alternatives cannot be - wrapped. Assignments of controlled objects which have controlled - actions suppressed now stop the traversal as there is no point in - looking for an enclosing construct. Add several N_xxx_Body choices to - the termination conditions for completeness. - * exp_ch7.ads (Establish_Transient_Scope): Update the parameter profile - and the associated comment on usage. - * exp_smem.adb (Add_Shared_Var_Lock_Procs): Update the call to - Establish_Transient_Scope. - (Add_Write_After): Update the call to Establish_Transient_Scope. - * sem_res.adb (Check_Initialization_Call): Removed. - (Resolve_Actuals): Account for additional cases where finalization - actions are required by utilizing predicate Needs_Finalization rather - than Is_Controlled. - (Resolve_Call): Type initialization procedures can now utilize - transient scopes to manage the secondary stack, thus preventing leaks - during initialization. Remove the previous kludgy algorithm which - attempts to manage the secondary stack at the object creation site. - -2018-01-11 Jerome Lambourg - - * libgnat/g-soliop__qnx.ads: New. - * adaint.c, adaint.h, cstreams.c, s-oscons-tmplt.c, sysdep.c: Update - for QNX. - -2018-01-11 Bob Duff - - * par-ch9.adb (P_Protected_Operation_Declaration_Opt): Give an error if - a null procedure occurs in a protected definition. - -2018-01-11 Bob Duff - - * binderr.ads, namet.ads: Minor reformatting. - -2018-01-11 Bob Duff - - * doc/gnat_ugn/gnat_utility_programs.rst: Improve documentation of - xml2gnat. - -2018-01-11 Bob Duff - - * binde.adb (Force_Elab_Order): Give an error if there are duplicate - unit names. - -2018-01-11 Ed Schonberg - - * sem_ch6.adb (Freeze_Expr_Types): If an access value is the - controlling argument of a dispatching call. freeze the corresponding - designated type. - -2018-01-11 Ben Brosgol - - * doc/Makefile: Add Sphinx option -W to treat warnings as errors. - -2018-01-11 Ben Brosgol - - * doc/gnat_rm/implementation_defined_aspects.rst: Minor type/wording - corrections. - * gnat_rm.texi: Regenerate. - -2018-01-11 Ed Schonberg - - * sem_ch12.adb (Check_Fixed_Point_Type): Do not apply check if the - formsl type corresponding to the actual fixed point type is private, - because in this case there can be no suspicious arithmetic operations - in the generic unless they reference a formal subprogram. Clarify - warning. - -2018-01-11 Javier Miranda - - * exp_util.adb (Remove_Side_Effects): No action done for functions - returning class-wide types since it requires generating code using - 'reference and the CCG target has no secondary stack. - * gnat1drv.adb: Disable building static dispatch tables when generating - C code. - -2018-01-11 Piotr Trojanek - - * libgnat/a-direio.ads, libgnat/a-sequio.ads, libgnat/a-ststio.ads, - libgnat/a-textio.ads, libgnat/a-witeio.ads, libgnat/a-ztexio.ads - (File_Type): Add Default_Initial_Condition aspect. - -2018-01-11 Pascal Obry - - * libgnat/s-os_lib.adb (Normalize_Pathname): New implementation. - -2018-01-11 Bob Duff - - * doc/gnat_ugn/gnat_utility_programs.rst: Rewrite gnatpp documentation - to match what the Libadalang-based version does. - * doc/gnat_ugn/about_this_guide.rst: Update reference. - -2018-01-11 Hristian Kirtchev - - * sem_res.adb (Uses_SS): A controlled type requires the secondary stack - if it contains at least one component declaration employing a function - call returning on the secondary stack. - -2018-01-11 Yannick Moy - - * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: - Update description of restriction SPARK_05 with SPARK 2014. - * gnat_rm.texi: Regenerate. - -2018-01-11 Vasiliy Fofanov - - * doc/gnat_ugn/gnat_utility_programs.rst: Fix layout. - -2018-01-11 Hristian Kirtchev - - * exp_aggr.adb, exp_ch9.adb, exp_util.adb, sem_aggr.adb, sem_ch3.adb, - sem_res.adb, sem_util.adb: Minor reformatting. - -2018-01-11 Ed Schonberg - - * sem_prag.adb (Analyze_Pragma, case Predicate): Indicate that the type - has a delayed aspect which must be processed at the point the type is - frozen. This mimics what is done when the predicate is provided by a - source aspect. - -2018-01-11 Doug Rupp - - * init.c (vxworks): Add macro checks for __aarch64__. - -2018-01-11 Hristian Kirtchev - - * exp_util.adb (Add_Failure_Expression): New routine. - (Make_Predicate_Check): Reimplement the handling of Predicate_Failure. - * sem_util.adb (Is_Current_Instance): Code cleanup. - -2018-01-11 Patrick Bernardi - - * libgnat/s-parame*.adb, libgnat/s-parame*.ads: Remove unneeded - Default_Sec_Stack_Size. - * libgnat/s-secsta.adb (SS_Allocate): Handle the fixed secondary stack - limit check so that the integer index does not overflow. Check the - dynamic stack allocation does not cause the secondary stack pointer to - overflow. - (SS_Info): Align colons. - (SS_Init): Cover the case when bootstraping with an old compiler that - does not set Default_SS_Size. - -2018-01-11 Ed Schonberg - - * sem_ch3.adb (Add_Internal_Interface_Entities): When checking the - legality of an inherited operation that may require overriding, ignore - primitive_wrappers that correspond to explicit operations that override - an interface primitive. - * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity): If the - operation to which the class-wide expression applies is a protected op. - with a primitive_wrapper, verify that the updated inherited expression - does not contain an internal call to a protected function. This - completes the implementation of AI12-0166. - -2018-01-11 Hristian Kirtchev - - * ali.adb: Document the remaining letters available for ALI lines. - (Scan_ALI): A with clause is internal when it is encoded on a 'Z' line. - * ali.ads: Update type With_Record. Field - Implicit_With_From_Instantiation is no longer in use. Add field - Implicit_With. - * csinfo.adb (CSinfo): Remove the setup for attribute - Implicit_With_From_Instantiation. - * lib-writ.adb (Collect_Withs): Correct the logic which marks a unit as - either implicitly or explicitly withed. - (Is_Implicit_With_Clause): New routine. - (Write_ALI): Rename array Implicit_With to Has_Implicit_With to avoid - confusion with the with clause attribute by the same name. - (Write_With_Lines): Update the emission of 'W', 'Y', and 'Z' headers. - * rtsfind.adb (Maybe_Add_With): Code cleanup. - * sem_ch8.adb (Present_System_Aux): Code cleanup. - * sem_ch10.adb (Expand_With_Clause): Mark the with clause as generated - for a parent unit. - (Implicit_With_On_Parent): Mark the with clause as generated for a - parent unit. - * sem_ch12.adb (Inherit_Context): With clauses inherited by an - instantiation are no longer marked as Implicit_With_From_Instantiation - because they are already marked as implicit. - * sem_elab.adb (Ensure_Prior_Elaboration_Static): Remove the kludge - which marks implicit with clauses as related to an instantiation. - * sinfo.adb (Implicit_With_From_Instantiation): Removed. - (Parent_With): New routine. - (Set_Implicit_With_From_Instantiation): Removed. - (Set_Parent_With): New routine. - * sinfo.ads: Update the documentation of attribute Implicit_With. - Remove attribute Implicit_With_From_Instantiation along with - occurrences in nodes. Add attribute Parent_With along with occurrences - in nodes. - (Implicit_With_From_Instantiation): Removed along with pragma Inline. - (Parent_With): New routine along with pragma Inline. - (Set_Implicit_With_From_Instantiation): Removed along with pragma Inline. - (Set_Parent_With): New routine along with pragma Inline. - -2018-01-11 Hristian Kirtchev - - * sem_util.adb (Find_Enclosing_Scope): Return the unique defining - entity when the enclosing construct is a body. - -2018-01-11 Patrick Bernardi - - * exp_ch9.adb (Expand_N_Task_Type_Declaration): Simplified - Secondary_Stack_Size handling as a pragma is now generated for the - corresponding aspect instead of an attribute. Pragma expression is - relocated instead of evaluated. Discriminant of the corresponding - record type is referenced rather than the type discriminant. - (Create_Secondary_Stack_For_Task, Make_Task_Create_Call): Update - Secondary_Stack_Size rep item checks to only look for the pragma rep. - * sem_ch13.adb (Analyze_One_Aspect): Transform - Aspect_Secondary_Stack_Size into a pragma instead of an attribute - because the attribute does not have visibility on a task type's - discriminants when the type's definition is expanded. - (Analyze_Attribute_Definition_Clause): Remove handling of - Attribute_Secondary_Stack_Size. - * snames.adb-tmpl, snames.ads-tmpl: Remove - Attribute_Secondary_Stack_Size, no longer used. - -2018-01-11 Justin Squirek - - * sem_ch8.adb: Minor comment fix. - -2018-01-11 Hristian Kirtchev - - * exp_ch4.adb (Process_Action): Do not abandon the inspection of an - individual action because the action may denote a complex expression, - such as a case statement, which in turn may contain additional - transient objects. - -2018-01-11 Ed Schonberg - - * sem_aggr.adb (Resolve_Iterated_Component_Association): Perform - analysis on a copy of the expression with a copy of the index variable, - because full expansion will rewrite construct into a loop with the - original loop variable. - * exp_aggr.adb (Gen_Assign): Defer analysis and resolution if the - expression is an iterated component association. Full analysis takes - place when construct is rewritten as a loop. - (In_Place_Assign_OK, Safe_Component): An iterated_component_association - is not safe for in-place assignment. - * sem_util.adb (Remove_Entity): Handle properly the case of an isolated - entity with no homonym and no other entity in the scope. - -2018-01-11 Justin Squirek - - * sem_prag.adb (Analyze_Pragma:Pragma_Loop_Variant): Modify error - message to be printed on the pragma argument identifier. - -2018-01-11 Hristian Kirtchev - - * exp_util.adb (Build_Invariant_Procedure_Declaration): Set the last - entity of the generated invariant procedure in order to construct a - proper entity chain. - -2018-01-11 Piotr Trojanek - - * sem_ch13.adb (Build_Predicate_Functions): Fix minor issues in - comment. - -2018-01-11 Arnaud Charlet - - * einfo.ads, einfo.adb (Activation_Record_Component, - Set_Activation_Record_Component, Set_Is_Uplevel_Referenced_Entity): - Allow E_Discriminant. - -2018-01-10 Eric Botcazou - - * gcc-interface/decl.c (gnat_to_gnu_component_type): Apply the check - for atomic access once the component size is taken into account and - also do it if the component type is Atomic or Volatile_Full_Access. - -2018-01-04 Eric Botcazou - - * gnatvsn.ads: Bump copyright year. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc-interface/misc.c (enumerate_modes): Treat GET_MODE_BITSIZE - as polynomial. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc-interface/misc.c (enumerate_modes): Treat GET_MODE_PRECISION - as polynomial. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc-interface/utils.c (gnat_types_compatible_p): Handle - polynomial TYPE_VECTOR_SUBPARTS. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc-interface/misc.c (enumerate_modes): Handle polynomial - GET_MODE_NUNITS. - -2018-01-03 Jakub Jelinek +2019-01-01 Jakub Jelinek Update copyright years. * gnat_ugn.texi: Bump @copying's copyright year. * gnat_rm.texi: Likewise. -Copyright (C) 2018 Free Software Foundation, Inc. +Copyright (C) 2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ada/ChangeLog-2018 gcc-snapshot-20190102/=unpacked-tar1=/gcc/ada/ChangeLog-2018 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ada/ChangeLog-2018 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ada/ChangeLog-2018 2019-01-02 08:05:17.000000000 +0000 @@ -0,0 +1,5715 @@ +2018-12-23 Iain Sandoe + + * adaint.c [__APPLE__] (__gnat_lwp_self): Ensure that the system + interface used is available on the target. + +2018-12-14 Eric Botcazou + + * gcc-interface/decl.c (rm_size): Take into account the padding in + the case of a record type containing a template. + * gcc-interface/trans.c (Attribute_to_gnu) : Likewise. + Do not subtract the padded size for Max_Size_In_Storage_Elements. + : Tweak comment. + +2018-12-14 Eric Botcazou + + * gcc-interface/decl.c (choices_to_gnu): Directly use a naked boolean + discriminant if the value is the boolean true. + +2018-12-11 Eric Botcazou + + PR ada/88429 + * gcc-interface/Makefile.in (./stamp-gnatlib1-$(RTSDIR)): Also pass + MULTISUBDIR to sub-make and add quotes around $(THREAD_KIND). + (gnatlib-shared-dual): Also pass PICFLAG_FOR_TARGET to sub-make. + (gnatlib-sjlj): Also pass MULTISUBDIR to sub-make, but do not pass + PICFLAG_FOR_TARGET. + (gnatlib-zcx): Likewise. + +2018-12-11 Piotr Trojanek + + * libgnat/a-calend.ads: Add "Global => null" contract to pure routines. + +2018-12-11 Hristian Kirtchev + + * freeze.adb (Check_Pragma_Thread_Local_Storage): Use the + violating set to diagnose detect an illegal initialization, + rather than the complement of the OK set. + (Freeze_Object_Declaration): Factorize code in + Has_Default_Initialization. + (Has_Default_Initialization, Has_Incompatible_Initialization): + New routines. + +2018-12-11 Dmitriy Anisimkov + + * libgnat/g-socket.ads (Family_Type): Add new enumerated value + Family_Unspec to be able to use it in Get_Address_Info parameter + and find IPv4 together with IPv6 addresses. + (Inet_Addr_Bytes_Length): Zero length for Family_Unspec. New + IPv6 predefined constant addresses. + (IPv4_To_IPv6_Prefix): IPv4 mapped to IPv6 address prefix. + (Is_IPv4_Address): Rename from Is_IP_Address and published. + (Is_IPv6_Address): New routine. + (Image of Inet_Addr_Type): Fix description about IPv6 address + text representation. + (Level_Type): New propocol level IP_Protocol_For_IPv6_Level. + (Add_Membership_V4): New socket option equal to Add_Membership. + (Drop_Membership_V4): New socket option equal to + Drop_Membership. + (Multicast_If_V4): New socket option equal to Multicast_If. + (Multicast_Loop_V4, Add_Membership_V6, Drop_Membership_V6, + Multicast_If_V6, Multicast_Loop_V6, Multicast_Hops, IPv6_Only): + New socket option for IPv6. + (Address_Info): New record to keep address info. + (Address_Info_Array): Array to keep address info records. + (Get_Address_Info): Routine to get address info records by host + and service names. + (Host_Service): Record to keep host and service names. + (Get_Name_Info): New routine to get host and service names by + address. + (Create_Socket): Add Level parameter, IP_Protocol_For_IP_Level + default. + (Name_Array, Inet_Addr_Array): Change array index to Positive. + * libgnat/g-socket.adb (IPV6_Mreq): New record definition for + IPv6. + (Hex_To_Char): Remove. + (Short_To_Network, Network_To_Short): Move to package + GNAT.Sockets.Thin_Common. + (Is_IP_Address): Remove. + (To_In_Addr, To_Inet_Addr): Move to package + GNAT.Sockets.Thin_Common. + (Get_Socket_Option): Get value of Multicast_Loop option as + integer boolean, process IPv6 options. Don't try to get + Add_Membership_V4, Add_Membership_V6, Drop_Membership_V4, and + Drop_Membership_V6 as not supported by the socket API. + (Set_Socket_Option): Set value of Multicast_Loop option as + integer boolean, process IPv6 options. + * gsocket.h + (IPV6_ADD_MEMBERSHIP): Define from IPV6_JOIN_GROUP if necessary + for VxWorks. + (IPV6_DROP_MEMBERSHIP): Define from IPV6_LEAVE_GROUP if + necessary for VxWorks + (HAVE_INET_NTOP): New definition. + (HAVE_INET_PTON): Includes VxWorks now. + * socket.c (__gnat_getaddrinfo, __gnat_getnameinfo, + __gnat_freeaddrinfo, __gnat_gai_strerror, __gnat_inet_ntop): New + routines. + * libgnat/g-sothco.ads, libgnat/g-sothco.adb + (socklen_t, In6_Addr, To_In6_Addr): New. + (To_In_Addr, To_Inet_Addr): Move from package body GNAT.Sockets. + (To_Inet_Addr): New overload with In6_Addr type parmeter. + (In_Addr_Access_Array): Remove. + (Sockaddr): Unchecked_Union instead of Sockaddr_In and old + defined generic Sockaddr. + (Set_Address): Use it to set family, port and address into + Sockaddr. + (Get_Address): New routine to get Socket_Addr_Type from + Sockaddr. + (Addrinfo): Structure to use with getaddrinfo. + (C_Getaddrinfo, C_Freeaddrinfo, C_Getnameinfo, C_GAI_Strerror, + Inet_Ntop): New routine import. + (Short_To_Network, Network_To_Short): Move from package body + GNAT.Sockets. + * libgnat/g-stsifd__sockets.adb: Use Sockaddr instead of + Sockaddr_In. + * s-oscons-tmplt.c (AF_UNSPEC, EAI_SYSTEM, SOCK_RAW, + IPPROTO_IPV6, IP_RECVERR, SIZEOF_socklen_t, IF_NAMESIZE): New + constants. + (AI_xxxx_OFFSET): Constants to consider platform differences in + field positions and sizes for addrinfo structure. + (AI_xxxxx): Flags for getaddrinfo. + (NI_xxxxx): Flags for getnameinfo. + (IPV6_xxxxx): Socket options for IPv6. + (Inet_Ntop_Linkname): New routine. + +2018-12-11 Yannick Moy + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Deactivate + expansion in ignored ghost subprogram body. + * sem_ch7.adb (Analyze_Package_Body_Helper): Deactivate + expansion in ignored ghost package body. + +2018-12-11 Ed Schonberg + + * exp_unst.adb (Register_Subprogram): A subprogram whose address + is taken (through attribute Address or Access) is reachable and + cannot be eliminated, even if there is no explicit call to it: + the address may be used in an indirect call or in some + address-related operation. + +2018-12-11 Ed Schonberg + + * sem_util.adb (Get_Actual_Subtype): Function can return type + mark. + (Get_Cursor_Type): Improve recovery and error message on a + misplaced First aspect for an iterable type. + +2018-12-11 Hristian Kirtchev + + * checks.adb: Add with and use clauses for Sem_Mech. + (Ensure_Valid): Update the "annoying special case" to include + entry and function calls. Use Get_Called_Entity to obtain the + entry or subprogram being invoked, rather than retrieving it + manually. Parameters passed by reference do not need a validity + check. + +2018-12-11 Yannick Moy + + * sem_prag.adb (Analyze_Global_Item): Refine error message. + +2018-12-11 Ed Schonberg + + * exp_ch7.adb (Check_Unnesting_In_Declarations): Extend + subprogram so that it is usable for visible and private + declarations of a package declaration, not just for declarations + in the pakage body. + * exp_ch13.adb (Expand_Freeze_Entity): Handle properly the + freezing of a finalizer routine generated for a controlled objet + declaration. Special processing already applies to finalizers + because they are usually displaced into another construct. + +2018-12-11 Arnaud Charlet + + * exp_unst.adb (Unnest_Subprogram): Ensure Current_Subprogram is + always initialized. + +2018-12-11 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Add + gnat_annotate_type local variable initialized to Empty. + : Set it to the Cloned_Subtype, if any. For + types, back-annotate alignment and size values earlier and only + if the DECL was created here; otherwise, if gnat_annotate_type + is present, take the values from it. + (gnat_to_gnu_field): Add gnat_clause local variable. If a + component clause is present, call validate_size only once on the + Esize of the component. Otherwise, in the packed case, do not + call validate_size again on the type of the component but + retrieve directly its RM size. + (components_to_record): Minor tweak. + (set_rm_size): Remove useless test. + * gcc-interface/trans.c (gnat_to_gnu): Do not wrap the instance of + a boolean discriminant attached to a variant part. + +2018-12-11 Ed Schonberg + + * sem_aggr.adb (Array_Aggr_Subtype. Resolve_Aggr_Expr): Indicate + that aggregate subtype has a predicate if the component type has + a predicate; do not rely on exisatence of predicate function for + component, in case component is a type no yet frozen, for which + predicate function has not been created yet. + +2018-12-11 Eric Botcazou + + * exp_aggr.adb (Packed_Array_Aggregate_Handled): Bail out for + any non-scalar type as component type of the array. + +2018-12-11 Eric Botcazou + + * einfo.ads (Is_Bit_Packed_Array): Fix values of component size. + (Is_Packed): Likewise. + * gcc-interface/utils.c (convert): Do not extract the value of a + justified modular type if the destination type is a regular + array. + * gcc-interface/decl.c (gnat_to_gnu_component_type): Pass + TYPE_DECL to validate_size wherever the array has packed + components. + +2018-12-11 Bob Duff + + * gnat1drv.adb (gnat1drv): Pass the correct Object value when + calling Write_ALI in the case of -gnatQ. + * gnatbind.adb (Gnatbind): Avoid silent failure; give an error + message. + +2018-12-11 Ed Schonberg + + * exp_unst.adb (Needs_Fat_Pointer): A fat pointer is required if + the entity has a private type whose full view is an + unconstrained array type. + (Rewrite_One_Ref): If the reference is to a static constant, use + its value rather than create a reference through the activation + record. This is more efficient, and furthermore indispensable if + the context requires a static constant, such as in a branch of a + case statement. + +2018-12-11 Ed Schonberg + + * sem_ch3.adb (Analyze_Object_Declaration): Apply + Dynamic_Predicate check to an object of an array type + initialized with an aggregate. + +2018-12-11 Hristian Kirtchev + + * freeze.adb (Add_To_Result): Move the ignored Ghost-specific + handling of freeze nodes to... + (Freeze_Entity): ...here. This ensures that the freeze nodes of + constructs that have recursive freezing are preserved when the + context is ignored Ghost, and the top level construct being + frozen is non-Ghost. + +2018-12-11 Ed Schonberg + + * uintp.ads, uintp.adb (UI_From_Integral): New generic function, + to simplify construction of Universal_Integer representations + from any Integer type. If type is small enough the code is + equivalent to a call to UI_To_Int with appropriate conversions; + otherwise the routine uses the existing mechanism of building a + vector of suitable integer values and calling Vector_To_Uint. + The routine must not be applied to a biased type. + +2018-12-11 Ed Schonberg + + * sem_ch3.adb (Build_Itype_Reference): Handle properly an itype + reference created for a function that is a compilation unit, for + example if the function builds in place an object of a limited + type. + +2018-12-11 Dmitriy Anisimkov + + * libgnat/g-socket.ads, libgnat/g-socket.adb: Fix duration + computations to be compatible with the type for socket timeouts + on Windows. + +2018-12-11 Gary Dismukes + + * exp_util.ads: Use preferred U.S. spelling of "honored". + * sem_spark.adb: Remove extra whitespace. + +2018-12-11 Hristian Kirtchev + + * exp_util.adb (Insert_Action): Add new formal parameter + Spec_Expr_OK. + (Insert_Actions): Add new formal parameter Spec_Expr_OK. Update + all calls to Insert_Actions where relevant. Honour an insertion + from a spec expression context when requested by the caller. + * exp_util.ads (Insert_Action): Add new formal parameter + Spec_Expr_OK. + (Insert_Actions): Add new formal parameter Spec_Expr_OK. + * freeze.adb (Add_To_Result): Force the insertion of the freeze + node even when the context is a spec expression. + +2018-12-11 Jerome Lambourg + + * vxaddr2line.adb, vxlink-bind.adb, vxlink-bind.ads, + vxlink-link.adb, vxlink-link.ads, vxlink-main.adb, vxlink.adb, + vxlink.ads: Remove. + * gcc-interface/Make-lang.in, gcc-interface/Makefile.in: Remove + bits for vxaddr2line. + +2018-12-11 Hristian Kirtchev + + * exp_aggr.adb, exp_ch7.adb, gnat1drv.adb, sem_ch10.adb, + sem_ch13.adb, sem_ch6.adb, sem_ch7.adb, sem_util.adb: Minor + reformatting. + +2018-12-11 Eric Botcazou + + * fe.h (Is_Atomic_Object): Declare. + (Is_Volatile_Object): Likewise. + * gcc-interface/trans.c (atomic_or_volatile_copy_required_p): New. + (Call_to_gnu): Generate a copy for an actual parameter passed by + reference if the conditions set forth by RM C.6(19) are met and + specificially deal with an atomic actual parameter. + +2018-12-11 Piotr Trojanek + + * sem_util.adb (Is_Subprogram_Stub_Without_Prior_Declaration): + Return False on stubs that complete a generic subprogram. + * sem_util.ads: Update corresponding comment. + +2018-12-11 Ed Schonberg + + * sem_ch4.adb (Analyze_Allocator): In GNATprove mode build a + subtype declaration if the allocator has a subtype indication + with a constraint. This allows additional proofs to be applied + to allocators that designate uninitialized constrained objects. + +2018-12-11 Yannick Moy + + * sem_util.adb (Has_Full_Default_Initialization): Consider + access types as having full default initialization. + +2018-12-11 Yannick Moy + + * gnat1drv.adb (Gnat1drv): Issue specific error message in + GNATprove mode when multiple file names on the command line. + * osint.adb, osint.ads (Dump_Command_Line_Source_File_Names): + New procedure to print file names on the command line. + +2018-12-11 Javier Miranda + + * exp_aggr.adb (Convert_To_Assignments): When gnerating C, do + not declare a temporary to initialize an aggregate assigned to + Out or In_Out parameters whose type has no discriminants. This + avoids stack overflow errors at runtime. + +2018-12-11 Ed Schonberg + + * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Extend + algorithm to cover subprograms generated in nested loops and in + exception handlers, in order to build an explicit elaboration + procedure in more complex cases. + +2018-12-11 Jerome Lambourg + + * Makefile.rtl, gcc-interface/Makefile.in: Remove crtbe bits for + VxWorks. + * libgnat/system-vxworks-arm-rtp-smp.ads, + libgnat/system-vxworks-arm-rtp.ads, + libgnat/system-vxworks-arm.ads, + libgnat/system-vxworks-e500-kernel.ads, + libgnat/system-vxworks-e500-rtp-smp.ads, + libgnat/system-vxworks-e500-rtp.ads, + libgnat/system-vxworks-ppc-kernel.ads, + libgnat/system-vxworks-ppc-rtp-smp.ads, + libgnat/system-vxworks-ppc-rtp.ads, + libgnat/system-vxworks-ppc.ads, + libgnat/system-vxworks-x86-kernel.ads, + libgnat/system-vxworks-x86-rtp-smp.ads, + libgnat/system-vxworks-x86-rtp.ads, + libgnat/system-vxworks7-aarch64-rtp-smp.ads, + libgnat/system-vxworks7-aarch64.ads, + libgnat/system-vxworks7-arm-rtp-smp.ads, + libgnat/system-vxworks7-e500-kernel.ads, + libgnat/system-vxworks7-e500-rtp-smp.ads, + libgnat/system-vxworks7-e500-rtp.ads, + libgnat/system-vxworks7-ppc-kernel.ads, + libgnat/system-vxworks7-ppc-rtp-smp.ads, + libgnat/system-vxworks7-ppc-rtp.ads, + libgnat/system-vxworks7-ppc64-kernel.ads, + libgnat/system-vxworks7-ppc64-rtp-smp.ads, + libgnat/system-vxworks7-x86-kernel.ads, + libgnat/system-vxworks7-x86-rtp-smp.ads, + libgnat/system-vxworks7-x86-rtp.ads, + libgnat/system-vxworks7-x86_64-kernel.ads, + libgnat/system-vxworks7-x86_64-rtp-smp.ads: Remove pragma + Linker_Options for --specs. + * vx_crtbegin.c, vx_crtbegin.inc, vx_crtbegin_array.c, + vx_crtbegin_attr.c, vx_crtend.c, vxworks-gnat-crtbe-link.spec: + Remove. + +2018-12-11 Ed Schonberg + + * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations, + Freeze_Entity_Checks): Process aspect Predicate in the same + fashion as aspect Dynamic_Predicate. + +2018-12-11 Eric Botcazou + + * gcc-interface/trans.c (elaborate_all_entities_for_package): + Skip aliasing subprograms. + +2018-12-11 Bob Duff + + * doc/gnat_ugn/gnat_utility_programs.rst: Update gnatmetric + documentation for the Libadalang-based version. + +2018-12-11 Javier Miranda + + * exp_aggr.adb (In_Object_Declaration): Removed. + (Is_CCG_Supported_Aggregate): New subprogram that replaces + In_Object_Declaration extending its functionality to indicate if + an aggregate is in a context supported by the CCG backend. + +2018-12-11 Bob Duff + + * doc/gnat_ugn/gnat_utility_programs.rst: Update gnatstub + documentation for the Libadalang-based version. + * gnat_ugn.texi: Regenerate. + +2018-12-11 Ed Schonberg + + * sem_ch13.adb (Push_Type, Pop_Type): New procedures, used for + analysis of aspect expressions for record types, whose + components (not only discriminants) may be referenced in aspect + expressions. + (Analyze_Aspect_Specifications, Analyze_Aspects_At_Freeze_Point, + Analyze_Aspect_At_End-Of_Declarations, + Resolve_Aspect_Expressions): Use the new subprograms. + (Check_Aspect_At_End_Of_Declarations): Improve error message. + (Build_Predicate_Functions): Do not build their bodies in a + generic unit. + (Is_Derived_Type_With_Constraint): New subprogram to uncover and + reject aspect specificationss on types that appear after the + type is frozen. + * sem_ch13.ads (Push_Scope_And_Install_Discriminants, + Uninstall_Discriminants_And_Pop_Scope): Remove. + * sem_ch6.adb, sem_ch6.ads (Fully_Conformant_Expressions): + Additional parameter to improve error message on illegal aspect + specifications whose resolution differ between aspect + specification and freeze point. + * freeze.adb: Remove references to + Install/Uninstall_Discriminants. + +2018-12-11 Pierre-Marie de Rodat + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: + Document the -fgnat-encodings switch. + * gnat_ugn.texi: Regenerate. + +2018-12-11 Justin Squirek + + * sem_ch10.adb (Analyze_Subunit): Modify conditional to fully + remove parent contexts from library-level subprogram bodies in + addition to package bodies. + +2018-12-11 Hristian Kirtchev + + * exp_prag.adb (Expand_Pragma_Initial_Condition): Do not + generate an Initial_Condition procedure and a call to it when + the associated pragma is ignored. + * sem_ch10.adb (Analyze_Compilation_Unit): Minor cleanup. + +2018-12-11 Eric Botcazou + + * fe.h (Debug_Generated_Code): Declare. + * gcc-interface/gigi.h (enum inline_status_t): Rename + is_disabled to is_default, is_enabled to is_requested and add + is_prescribed. + * gcc-interface/decl.c (inline_status_for_subprog): New function. + (gnat_to_gnu_entity) : Use it to get the + inlining status of the subprogram. + * gcc-interface/trans.c (gigi): Adjust to above renaming. + (build_raise_check): Likewise. + (Compilation_Unit_to_gnu): Likewise. + (gnat_to_gnu): Likewise. + * gcc-interface/utils.c (create_subprog_decl): Likewise. Deal + with is_prescribed status by setting + DECL_DISREGARD_INLINE_LIMITS. Do not set the + DECL_NO_INLINE_WARNING_P flag if Debug_Generated_Code is true. + +2018-12-03 Gary Dismukes + + * sem_aux.adb (Object_Type_Has_Constrained_Partial_View): Return + True for an untagged discriminated formal derived type when + referenced within a generic body (augments existing test for + formal private types). + * sem_util.adb (Is_Dependent_Component_Of_Mutable_Type): If the + prefix of the name is a qualified expression, retrieve the + operand of that. Add a test of whether the (possible) + dereference prefix is a variable, and also test whether that + prefix might just be of an access type (occurs in some implicit + dereference cases) rather than being an explicit dereference. + Retrieve the Original_Node of the object name's main prefix and + handle the possibility of that being a qualified expression. + Remove special-case code for explicit dereferences that don't + come from source. Add test for the renaming not being within a + generic body for proper determination of whether a formal access + type is known to be constrained (it is within a generic spec, + but not in the body). Fix an existing incorrect test for + renaming of a discriminant-dependent component of a untagged + generic formal type being within a generic body, adding test of + taggedness and calling In_Generic_Body (now properly checks for + cases where the renaming is in a nongeneric body nested within a + generic). Return False in cases where the selector is not a + component (or discriminant), which can occur for + prefixed-notation calls. + +2018-12-03 Ed Schonberg + + * sem_res.adb (Apply_Check): For array types, apply a length + check rather than a qualification, to avoid spurious errors when + the value of a dependend expression has a matching length but + different bounds from those of the type of the contect. + +2018-12-03 Hristian Kirtchev + + * libgnat/a-calend.adb: Update the number of leap seconds. Add + the hard time values for year 2015 and 2016. + +2018-12-03 Gary Dismukes + + * exp_ch3.adb, libgnarl/s-taasde.adb, libgnarl/s-taenca.adb, + libgnarl/s-tarest.adb, libgnarl/s-tasini.adb, + libgnarl/s-taskin.ads, libgnarl/s-tasren.adb, + libgnarl/s-tassta.adb, libgnarl/s-tasuti.adb: Spelling fixes and + minor reformatting. + +2018-12-03 Eric Botcazou + + * exp_aggr.adb (Convert_To_Positional): Use + Static_Array_Aggregate to decide whether to set + Compile_Time_Known_Aggregate on an already flat aggregate. + (Expand_Array_Aggregate): Remove test on + Compile_Time_Known_Aggregate that turns out to be dead and + simplify. + (Is_Static_Component): New predicate extracted from... + (Static_Array_Aggregate): ...here. Test neither Is_Tagged_Type + nor Is_Controlled for the type, but test whether the component + type has discriminants. Use the Is_Static_Component predicate + consistently for the positional and named cases. + +2018-12-03 Eric Botcazou + + * freeze.adb (Freeze_Entity): Do not freeze the partial view of + a private subtype if its base type is also private with delayed + freeze before the full type declaration of the base type has + been seen. + * sem_ch7.adb (Preserve_Full_Attributes): Add assertion on + freeze node. + +2018-12-03 Eric Botcazou + + * exp_ch3.adb (Build_Record_Init_Proc): Inherit an + initialization procedure if it is present, even if it is null. + +2018-12-03 Patrick Bernardi + + * libgnarl/s-taskin.ads (ATC_Level_Base): Redefine to span from + -1 to Max_ATC_Nesting so that 0 represents no ATC nesting and -1 + represented a completed task. To increase readability, new + constants are introduced to represent key ATC nesting levels. + Consequently, Level_No_Pending_Abort replaces + ATC_Level_Infinity. ATC_Level related definitions now + documented. + (Ada_Task_Control_Block): The default initialization of + components ATC_Nesting_Level and Pending_ATC_Level now use new + ATC_Level_Base constants. Comments improved + * libgnarl/s-taskin.adb (Initialize): Improve the initialisation + of the first element of the Entry_Calls array to facilitate + better maintenance. + * libgnarl/s-taasde.ads: Update comment. + * libgnarl/s-taasde.adb, libgnarl/s-taenca.adb, + libgnarl/s-tasren.adb, libgnarl/s-tassta.adb, + libgnarl/s-tasuti.ads, libgnarl/s-tasuti.adb: Use new + ATC_Level_Base constants. + * libgnarl/s-tarest.adb (Create_Restricted_Task): Improve the + initialisation of the first element of the task's Entry_Calls + array to facilitate better maintenance. + * libgnarl/s-tasini.ads (Locked_Abort_To_Level): Update + signature to accept ATC_Level_Base. + * libgnarl/s-tasini.adb (Locked_Abort_To_Level): Update + signature to accept ATC_Level_Base. Use new ATC_Level_Base + constants and only modify the aborting task's Entry_Calls array + if any entry call is happening. + * libgnarl/s-tposen.adb (Protected_Single_Entry_Call): Reference + the first element of the task's Entry_Calls array via 'First + attribute to facilitate better maintenance. + +2018-12-03 Eric Botcazou + + * einfo.adb (Write_Entity_Info): Don't take Scope of Standard + package. + * sem_ch4.adb (Remove_Abstract_Operations): Add missing blank + lines to -gnatdv output. + * sem_type.adb (Write_Overloads): Take Entity of entity names + only. + +2018-12-03 Hristian Kirtchev + + * checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch3.adb, + exp_util.adb, exp_util.ads, repinfo.adb, sem_attr.adb, + sem_ch3.adb, sem_res.adb, sem_util.adb: Minor reformatting. + +2018-12-03 Ed Schonberg + + * sem_ch3.adb (Complete_Private_Subtype): Enhance comment. + +2018-12-03 Olivier Hainque + + * gcc-interface/lang.opt (fopenacc): New option for Ada. + * gcc-interface/misc.c (gnat_handle_option): Handle it. + * gcc-interface/trans.c (struct loop_info_d): Add OMP + attributes. + (Iterate_Acc_Clause_Arg, Acc_gnat_to_gnu): New functions, + helpers for OpenACC pragmas processing in Pragma_to_gnu. + (Acc_Var_to_gnu, Acc_Reduc_Var_to_gnu, Acc_Reduc_to_gnu): + Likewise. + (Acc_Size_Expr_to_gnu, Acc_Size_List_to_gnu): Likewise. + (Pragma_Acc_Data_to_gnu): Likewise. + (Pragma_to_gnu): Handle Pragma_Acc_Loop, Pragma_Acc_Data, + Pragma_Acc_Kernels and Pragma_Acc_Parallel. + (Acc_Loop_to_gnu, Regular_Loop_to_gnu): New functions. Helpers + for ... + (Loop_Statement_to_gnu): Rework to handle OpenACC loops. + +2018-12-03 Olivier Hainque + + * gcc-interface/targtyps.c (MALLOC_OBSERVABLE_ALIGNMENT): Set to + 2 * POINTER_SIZE. + +2018-12-03 Ed Schonberg + + * sem_res.adb (Set_Slice_Subtype): The index type of a slice is + constrained. + +2018-11-26 Matthias Klose + + PR ada/88191 + * libgnarl/s-linux__alpha.ads: Define SIGSYS. + +2018-11-19 Alexandre Oliva + + PR ada/81878 + * gcc-interface/config-lang.in (lang_requires): Set to "c c++" + when gnattools wants it. + +2018-11-19 Eric Botcazou + + * gcc-interface/cuintp.c (UI_From_gnu): Remove code for 32-bit hosts. + +2018-11-15 Eric Botcazou + + * gcc-interface/misc.c (gnat_init_gcc_eh): Do not override the switch + -fnon-call-exceptions passed on the command line in -gnatp mode. + +2018-11-14 Ed Schonberg + + * exp_util.ads, exp_util.adb: Change the profile of + Silly_Boolean_Array_Xor_Test, adding a formal that can be a copy + of the right opersnd. This prevents unnesting anomalies when + that operand contains uplevel references. + * exp_ch4.adb (Expand_Boolean_Operation): Use this new profile. + * exp_pakd.adb (Expand_Packed_Boolean_Operator): Ditto. + +2018-11-14 Patrick Bernardi + + * libgnarl/a-intnam__linux.ads: Add SIGSYS. + * libgnarl/s-linux__alpha.ads, libgnarl/s-linux__android.ads, + libgnarl/s-linux__hppa.ads, libgnarl/s-linux__mips.ads, + libgnarl/s-linux__riscv.ads, libgnarl/s-linux__sparc.ads, + libgnarl/s-linux__x32.ads: Rename SIGLTHRRES, SIGLTHRCAN and + SIGLTHRDBG to SIG32, SIG33 and SIG34 as their names are + implementation specific. + * libgnarl/s-osinte__linux.ads, libgnarl/s-linux.ads: Add + SIGSYS. Move SIG32, SIG33 and SIG34 from the unmasked list to + the reserved list. + +2018-11-14 Eric Botcazou + + * exp_aggr.adb (Is_Static_Element): New predicate extracted + from... + (Check_Static_Components): ...here. Call Is_Static_Element on + each element of the component association list, if any. + (Flatten): Duplicate the expression of an others choice only if + it is static or is an aggregate which can itself be flattened. + +2018-11-14 Olivier Hainque + + * sigtramp-vxworks-target.inc: Fix stack checking test errors in + ACATS, now that GCC can emit CFI rules referring to sp in + absence of a frame pointer. + +2018-11-14 Eric Botcazou + + * exp_aggr.adb (Check_Static_Components): Remove dead test. + (Flatten): Likewise. Move comment around. + +2018-11-14 Hristian Kirtchev + + * sem_ch6.adb (Analyze_Null_Procedure): Capture Ghost and + SPARK-related global state at the start of the routine. Set the + Ghost mode of the completed spec if any. Restore the saved + Ghost and SPARK-related global state on exit from the routine. + +2018-11-14 Eric Botcazou + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst + (-gnatR): Document new -gnatR4 level. + * gnat_ugn.texi: Regenerate. + * opt.ads (List_Representation_Info): Bump upper bound to 4. + * repinfo.adb: Add with clause for GNAT.HTable. + (Relevant_Entities_Size): New constant. + (Entity_Header_Num): New type. + (Entity_Hash): New function. + (Relevant_Entities): New set implemented with GNAT.HTable. + (List_Entities): Also list compiled-generated entities present + in the Relevant_Entities set. Consider that the Component_Type + of an array type is relevant. + (List_Rep_Info): Reset Relevant_Entities for each unit. + * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatR4. + * switch-m.adb (Normalize_Compiler_Switches): Likewise + * usage.adb (Usage): Likewise. + +2018-11-14 Javier Miranda + + * exp_disp.adb (Expand_Interface_Thunk): Extend handling of + renamings of the predefined equality primitive. + (Make_Secondary_DT): When calling Expand_Interface_Thunk() pass + it the primitive, instead of its Ultimate_Alias; required to + allow the called routine to identify renamings of the predefined + equality operation. + +2018-11-14 Hristian Kirtchev + + * freeze.adb (Check_Pragma_Thread_Local_Storage): New routine. A + variable with suppressed initialization has no initialization + for purposes of the pragma. + (Freeze_Object_Declaration): Remove variable + Has_Default_Initialization as it is no longer used. Use routine + Check_Pragma_Thread_Local_Storage to verify the semantics of + pragma Thread_Local_Storage. + +2018-11-14 Ed Schonberg + + * sem_res.adb (Resolve_If_Expression): Verify that the subtypes + of all dependent expressions obey the constraints of the + expected type for the if-expression. + (Analyze_Expression): Only add qualificiation to the dependent + expressions when the context type is constrained. Small + adjustment to previous patch. + +2018-11-14 Eric Botcazou + + * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Don't + register a compile-time warning or error for 'Alignment or 'Size + of an entity declared in a generic unit. + +2018-11-14 Justin Squirek + + * sem_ch8.adb (Use_One_Package): Add test for out-of-scope + homonyms. + +2018-11-14 Ed Schonberg + + * exp_ch3.adb: (Expand_N_Object_Declaration): If the expression + is a limited aggregate its resolution is delayed until the + object declaration is expanded. + * sem_ch3.adb: (Analyze_Object_Declaration): If the expression + is a limited aggregate and the declaration has a following + address clause indicate that resolution of the aggregate (which + must be built in place) must be delayed. + +2018-11-14 Bob Duff + + * sem_attr.adb (To_Address): Simplify setting of + Is_Static_Expression. Remove second (unconditional) call to + Set_Is_Static_Expression -- surely it's not static if the + operand is not. Initialize Static on declaration. Do not try + to fold 'To_Address, even though it's static. + * exp_attr.adb (To_Address): Preserve Is_Static_Expression. + * sinfo.ads, sem_eval.ads, sem_eval.adb (Is_Static_Expression, + Is_OK_Static_Expression, Raises_Constraint_Error): Simplify + documentation. There was too much repetition and redundancy. + +2018-11-14 Ed Schonberg + + * sem_ch3.adb (Analyze_Object_Declaration): Use the + Actual_Subtype to preserve information about a constant + initialized with a non-static entity that is known to be valid, + when the type of the entity has a narrower range than that of + the nominal subtype of the constant. + * checks.adb (Determine_Range): If the expression is a constant + entity that is known-valid and has a defined Actual_Subtype, use + it to determine the actual bounds of the value, to enable + additional optimizations. + +2018-11-14 Hristian Kirtchev + + * back_end.adb, checks.adb, exp_ch3.adb, exp_ch4.adb, + exp_ch7.adb, exp_disp.adb, exp_unst.adb, exp_util.adb, + freeze.adb, sem_ch13.adb, sem_ch6.adb, sem_ch7.adb, + sem_prag.adb, sem_spark.adb, sem_util.adb: Minor reformatting. + +2018-11-14 Hristian Kirtchev + + * exp_ch4.adb (Find_Aliased_Equality): New routine. + (Find_Equality): Reimplemented. + (Is_Equality): New routine. + +2018-11-14 Hristian Kirtchev + + * ghost.adb (Ghost_Entity): New routine. + (Mark_And_Set_Ghost_Assignment): Reimplemented. + * sem_ch5.adb (Analyze_Assignment): Assess whether the target of + the assignment is an ignored Ghost entity before analyzing the + left hand side. + * sem_ch8.adb (Find_Direct_Name): Update the subprogram + signature. Do not generate markers and references when they are + not desired. + (Nvis_Messages): Do not execute when errors are not desired. + (Undefined): Do not emit errors when they are not desired. + * sem_ch8.ads (Find_Direct_Name): Update the subprogram + signature and comment on usage. + * sem_util.adb (Ultimate_Prefix): New routine. + * sem_util.ads (Ultimate_Prefix): New routine. + +2018-11-14 Justin Squirek + + * sem_ch7.adb (Uninstall_Declarations): Add conditional to avoid + uninstalling potential visibility during freezing on enumeration + literals. + +2018-11-14 Jerome Lambourg + + * env.c: Do not include crt_externs.h on iOS, as it does not + exist there. This is also true for the iPhone Simulator SDK. + +2018-11-14 Ed Schonberg + + * exp_ch7.adb (Check_Unnesting_In_Declarations): New procedure + to transform blocks that appear in the declarative part of a + package body into subprograms if they contain generated + subprograms (such as finalization routines). Needed to generate + the proper upward references in unnesting mode. + +2018-11-14 Ed Schonberg + + * freeze.adb (Freeze_Fixed_Point_Type): If the given low bound + of the type is less than the nearest model number, do not expand + the range of the type to include the model number below the + bound. Similar adjustment if the upper bound is larger than the + nearest model number. + +2018-11-14 Hristian Kirtchev + + * checks.adb (Install_Primitive_Elaboration_Check): Do not + create the check when exceptions cannot be used. + * exp_ch6.adb (Expand_N_Extended_Return_Statement): Do not raise + Program_Errror when exceptions cannot be used. Analyze the + generated code with all checks suppressed. + * exp_ch7.adb (Build_Finalizer): Remove the declaration of + Exceptions_OK. + (Make_Deep_Array_Body): Remove the declaration of Exceptions_OK. + (Make_Deep_Record_Body): Remove the declaration of + Exceptions_OK. + (Process_Transients_In_Scope): Remove the declaration of + Exceptions_OK. + * exp_util.adb (Exceptions_In_Finalization_OK): Renamed to + Exceptions_OK. + * exp_util.ads (Exceptions_In_Finalization_OK): Renamed to + Exceptions_OK. + +2018-11-14 Hristian Kirtchev + + * exp_ch4.adb (Expand_N_Op_Eq): Remove duplicated code and use + routine Find_Equality instead. + (Find_Equality): New routine. + +2018-11-14 Piotr Trojanek + + * sem_util.adb (First_From_Global_List): Do not expect + N_Selected_Component in the Global contract; simplify assertion + with Nam_In. + +2018-11-14 Piotr Trojanek + + * sem_ch12.adb (Instantiate_Object): Set + Corresponding_Generic_Association on generic actuals with + default expression. + * sinfo.ads (Corresponding_Generic_Association): Update comment. + +2018-11-14 Hristian Kirtchev + + * exp_ch4.adb (Expand_Concatenate): Use the proper routine to + set the need for debug info. + * exp_dbug.adb (Build_Subprogram_Instance_Renamings): Use the + proper routine to set the need for debug info. + * exp_prag.adb (Expand_Pragma_Initial_Condition): Use the proper + routine to set the need for debug info. + * exp_util.adb (Build_DIC_Procedure_Declaration): Use the proper + routine to set the need for debug info. + (Build_Invariant_Procedure_Declaration): Use the proper routine + to set the need for debug info. + * ghost.adb (Record_Ignored_Ghost_Node): Add statements as a + whole class to the list of top level ignored Ghost nodes. + * sem_util.adb (Set_Debug_Info_Needed): Do not generate debug + info for an ignored Ghost entity. + +2018-11-14 Piotr Trojanek + + * bindgen.adb, exp_cg.adb, repinfo.adb, sprint.adb: Minor reuse + Cancel_Special_Output where possible. + +2018-11-14 Piotr Trojanek + + * exp_dbug.ads, sem_util.ads: Minor fixes in comments. + +2018-11-14 Arnaud Charlet + + * adabkend.adb (Scan_Back_End_Switches): Handle -gx switches + explicitly. + +2018-11-13 Eric Botcazou + + * gcc-interface/misc.c (gnat_init_gcc_eh): Set -fnon-call-exceptions + for the runtime on platforms where System.Machine_Overflow is true. + +2018-11-08 Eric Botcazou + + * fe.h (Suppress_Checks): Declare. + * gcc-interface/misc.c (gnat_init_gcc_eh): Set -fnon-call-exceptions + only if checks are not suppressed and -faggressive-loop-optimizations + only if they are. + * gcc-interface/trans.c (struct loop_info_d): Remove has_checks and + warned_aggressive_loop_optimizations fields. + (gigi): Do not clear warn_aggressive_loop_optimizations here. + (Raise_Error_to_gnu): Do not set has_checks. + (gnat_to_gnu) : Remove support for aggressive + loop optimizations. + +2018-11-08 Eric Botcazou + + * gcc-interface/decl.c (components_to_record): Remove obsolete kludge. + * gcc-interface/utils.c (make_packable_type): Set TYPE_PACKED on the + new type but do not take into account the setting on the old type for + the new fields. Rename a local variable. + (finish_record_type): Clear DECL_BIT_FIELD_TYPE on a variant part at + offset 0, if any. + (create_field_decl): Tweak comment. + +2018-10-22 Eric Botcazou + + * gcc-interface/utils.c (unchecked_convert): Use local variables for + the biased and reverse SSO attributes of both types. + Further extend the processing of integral types in the presence of + reverse SSO to all scalar types. + +2018-10-22 Eric Botcazou + + * gcc-interface/trans.c (Pragma_to_gnu) : Use + a simple memory constraint in all cases. + + * gcc-interface/lang-specs.h: Bump copyright year. + +2018-10-17 David Malcolm + + * gcc-interface/Make-lang.in (selftest-ada): New. + +2018-10-09 Eric Botcazou + + * exp_ch3.adb (Is_Null_Statement_List): New predicate. + (Build_Array_Init_Proc): Use it to find out whether the + initialization procedure Is_Null_Init_Proc; if so, set + Warnings_Off on the parameter. + (Build_Init_Procedure): Likewise. + (Init_Formals): Use an in/out first parameter only for + unconstrained arrays and for records either containing or built + for proteced types or task types; use an out parameter in all + the other cases. + * fe.h (Is_Init_Proc): Declare. + * gcc-interface/decl.c (type_requires_init_of_formal): Do not + return true for a discriminant in an unchecked union. + (gnat_to_gnu_param): Do not create a PARM_DECL for the Out + parameter of an initialization procedure. + +2018-10-09 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : If + this is not a definition, retrieve the expression in all cases + even if we are just annotating types. + * gcc-interface/trans.c (gnat_to_gnu): Also translate Size + attribute for constrained types in this mode. + +2018-10-09 Eric Botcazou + + * adaint.c (__gnat_get_executable_suffix_ptr): Add new line. + (__gnat_locate_exec): Check that HOST_EXECUTABLE_SUFFIX is not + empty before doing a string search for it. + * socket.c (ATTRIBUTE_UNUSED): Define. + (__gnat_disable_sigpipe): Add ATTRIBUTE_UNUSED on parameter. + * terminals.c (ATTRIBUTE_UNUSED): Move around. + (__gnat_setup_child_communication): Add ATTRIBUTE_UNUSED on + parameter. + (__gnat_send_header): Add ATTRIBUTE_UNUSED on parameters. + +2018-10-09 Yannick Moy + + * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Rewrite + pragmas as null statements in GNATprove mode. + +2018-10-09 Eric Botcazou + + * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize the temporary + made for an Out parameter if the formal type has discriminants. + +2018-10-09 Maroua Maalej + + * sem_spark.adb (Check_Declaration): fix bug related to non + access object permissions. + +2018-10-09 Doug Rupp + + * libgnat/a-ncelfu.ads: Fix name in header to match package. + +2018-10-09 Eric Botcazou + + * exp_disp.adb (Make_Disp_Asynchronous_Select_Spec): Set + Warnings_Off on the B out parameter. + +2018-10-09 Eric Botcazou + + * einfo.ads: Small comment fix. + +2018-10-09 Eric Botcazou + + * sem_ch7.adb (Has_Referencer): Add comment for the + N_Freeze_Entity case. Do not rely on + Has_Referencer_Of_Non_Subprograms to clear the Is_Public flag on + subprogram entities. + +2018-10-09 Ed Schonberg + + * exp_unst.adb (In_Synchronized_Call): Handle properly private + types whose full views are synchronized types, in order to + recognize generated subprograms whose bodies must be considered + reachable even if no direct calls to them are visible in the + source. + +2018-10-09 Ed Schonberg + + * exp_ch4.adb (Expand_Modular_Op): When expanding an operation + on nonbinary modular types, convert the opersnds to an integer + type that is large enough to hold the modulus of the type, which + may be larger than Integer'Last. + +2018-10-09 Ed Schonberg + + * exp_unst.adb (Unnest_Subprogram): When an uplevel reference + is to an unconstrained formal, the 'Access reference that is + created to initialize the corresponding component of the + activation record must be wrapped in an unchecked conversion to + the generated type of the component. Otherwise, spurious suvtype + conformance errors will be generated when the code is within an + instantiation and the type of the formal is a formal type of the + enclosing generic. Note that during unnesting there is no simple + way to determine that the code appears within an instance + because ther is no scope stack. + +2018-10-09 Eric Botcazou + + * gcc-interface/decl.c (type_requires_init_of_formal): New + predicate. + (gnat_to_gnu_param): Use it to determine whether a PARM_DECL + must be created for an Out parameter passed by copy. + +2018-10-09 Arnaud Charlet + + * libgnat/a-coboho.ads (Storage_Element): Fix a typo. + +2018-10-09 Claire Dross + + * libgnat/a-cfinve.ads: Remove default value for + Max_Size_In_Storage_Elements as it was not supported in SPARK. + +2018-10-09 Ed Schonberg + + * exp_ch6.adb (Add_Call_By_Copy_Node, + Add_Simple_Call_By_Copy_Node, Expand_Call_Helper): Reset + Is_True_Constant on entities used as Out or In_Out parameters in + calls. + +2018-10-09 Ed Schonberg + + * exp_unst.adb (Unnest_Subprogram): Do not load System to obtain + the Address entity unless an activation record is being built. + Removes useless with_clauses for System when nested subprograms + do not have uplevel references, and therefore do not need + activation records. + +2018-10-09 Ed Schonberg + + * sem_ch6.adb (Fully_Conformant_Expressions): Handle properly + the conformance check on an aspect expression that includes a + call to an instance of Unchecked_Conversion, or more generally a + call to an intrinsic operation. + +2018-10-09 Eric Botcazou + + * repinfo.adb: Remove with/use clause for Stand. + (List_Mechanisms): List the mechanism of functions only. + +2018-10-09 Bob Duff + + * doc/gnat_ugn/gnat_utility_programs.rst: Correct spelling of + --eol switch. Document the language-version switches. Update + description for --no-exception. + +2018-10-09 Vasiliy Fofanov + + * libgnat/s-os_lib.ads (Normalize_Pathname): Fix incorrect + comment. + +2018-10-09 Arnaud Charlet + + * vxlink.adb: Remove pragma Annotate, no longer needed. + +2018-10-09 Ed Schonberg + + * checks.adb (Apply_Type_Conversion_Checks): Use GNATprove_Mode + rather than SPARK_mode in order to preserve the Do_Range_Check + flag for verification purposes. + +2018-10-09 Ed Schonberg + + * exp_aggr.adb (Expand_Array_Aggregate): If it is not possible + to build in place an aggregate with component associations, set + the Warnings_Off flag on the generated temporary, to prevent + spurious warnings from the backend when compiling with the + -Wuninitialized gcc flag. + +2018-09-30 Alexandre Oliva + + * gcc-interface/lang-specs.h (default_compilers): When given + fcompare-debug-second, adjust auxbase like cc1, and pass + gnatd_A. + * gcc-interface/misc.c (flag_compare_debug): Remove variable. + (gnat_post_options): Do not set it. + * lib-writ.adb (flag_compare_debug): Remove import. + (Write_ALI): Do not test it. + +2018-09-28 Eric Botcazou + Pierre-Marie de Rodat + + * gcc-interface/decl.c (is_cplusplus_method): Do not require C++ + convention on Interfaces. + * gcc-interface/trans.c (Subprogram_Body_to_gnu): Try to create a + bona-fide thunk and hand it over to the middle-end. + (get_controlling_type): New function. + (use_alias_for_thunk_p): Likewise. + (thunk_labelno): New static variable. + (make_covariant_thunk): New function. + (maybe_make_gnu_thunk): Likewise. + * gcc-interface/utils.c (finish_subprog_decl): Set DECL_CONTEXT of the + result DECL here instead of... + (end_subprog_body): ...here. + +2018-09-27 Martin Sebor + + * gcc-interface/utils.c (make_packable_type): Introduce a temporary + to avoid -Wnonnull. + (unchecked_convert): Same. + +2018-09-26 Elisa Barboni + + * sem_prag.adb (Check_Refined_Global_Item): Improve error + message. + +2018-09-26 Thomas Quinot + + * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): For a + representation item that is an N_Aspect_Definition, retrieve the + entity it applies to using the Entity attribute. + +2018-09-26 Justin Squirek + + * sem_ch8.adb (Analyze_Subprogram_Renaming): Add extra condition + to check for unmarked subprogram references coming from + renamings. + +2018-09-26 Arnaud Charlet + + * back_end.adb (Scan_Compiler_Arguments): Store -G xxx switches. + +2018-09-26 Yannick Moy + + * errout.ads: Update comment for insertion character '?'. + * inline.adb: Use simple insertion character '?' for GNATprove + info messages. + * sem_res.adb (Resolve_Call): Issue an info message on inlining + in GNATprove mode. + +2018-09-26 Ed Schonberg + + * checks.adb (Apply_Type_Conversion_Checks): Do not generate a + range check on the expression of the conversion if it involves a + fixed-point type, as such conversions are handled specially + during expansion. + * exp_ch4.adb (Expand_N_Type_Conversion): In a conversion from + Fixed to Integer, use the base type of the expression to ensure + that the caller will generate the proper constraint check when + needed. + +2018-09-26 Maroua Maalej + + * sem_spark.adb (Check_Loop_Statement): Fix a bug related to + loop exit environment. + (Check_Statement): fixing a bug when comparing the source and + target in an assignment statement. + +2018-09-26 Hristian Kirtchev + + * sem_ch12.adb (Instantiate_Package_Body): Capture and restore + the full compilation context. + (Instantiate_Subprogram_Body): Capture and restore the full + compilation context. + +2018-09-26 Yannick Moy + + * debug.adb: Add use for -gnatd_f switch. + * inline.adb (Cannot_Inline): Only issue info message for + failure to inline in GNATprove mode when switch -gnatd_f is + used. + +2018-09-26 Javier Miranda + + * exp_disp.adb (Expand_Interface_Conversion): No displacement of + the pointer needed when the type of the operand is an interface + type that maches the target type and we are compiling under + configurable runtime. Adding also documentation explaining why + this cannot be done when compiling with the full runtime. + * exp_intr.adb: Update comment. + +2018-09-26 Hristian Kirtchev + + * sem_ch5.adb (Wrap_Loop_Statement): Annotate as No_Return. + +2018-09-26 Ed Schonberg + + * exp_util.adb (Make_Predicate_Call): Use OK_Convert_To when + applying a predicate check to prevent spurious errors when + private ancestors are involved. + +2018-09-26 Hristian Kirtchev + + * exp_ch4.adb (Expand_N_Allocator): Ensure that the use of the + secondary stack does not clash with restriction + No_Secondary_Stack. + * exp_ch6.adb (Expand_N_Extended_Return_Statement): Ensure that + the use of the secondary stack does not clash with restriction + No_Secondary_Stack. + * sem_ch5.adb (Analyze_Loop_Statement): Wrap the loop in a block + prior to analysis in order to either provide a local scope for + an iterator, or ensure that the secondary stack is properly + managed. + (Check_Call): Account for the case where the tree may be + unanalyzed or contain prior errors. + (Has_Call_Using_Secondary_Stack): Renamed to Has_Sec_Stack_Call. + Update all uses of the subprogram. + (Prepare_Loop_Statement): New routine. + +2018-09-26 Javier Miranda + + * sem_res.adb (Resolve_Actuals): If the formal is a class-wide + type conversion then do not skip resolving and expanding the + conversion; required to displace the pointer to the object and + reference the dispatch table associated with the target + interface type. + +2018-09-26 Hristian Kirtchev + + * libgnat/g-dynhta.adb (Prepend_Or_Replace): Update the number + of key-value pairs in the hash table only when adding a brand + new pair. + +2018-09-26 Sergey Rybin + + * doc/gnat_ugn/gnat_utility_programs.rst: Add note about + processing of aggregate projects in gnatmetric and gnatstub. + +2018-09-26 Hristian Kirtchev + + * contracts.adb, exp_unst.adb, exp_util.adb, gnat1drv.adb, + opt.ads, par-prag.adb, sem_ch3.adb, sem_ch5.adb, sem_prag.adb, + sinfo.ads, snames.ads-tmpl: Minor reformatting. + +2018-09-26 Hristian Kirtchev + + * gcc-interface/Make-lang.in: Add unit GNAT.Sets to the list of + front end sources. + * impunit.adb: Add unit GNAT.Sets to the list of predefined + units. + * Makefile.rtl: Add unit GNAT.Sets to the list of non-tasking + units. + * libgnat/g-sets.adb: New unit. + * libgnat/g-sets.ads: New unit. + * libgnat/g-dynhta.adb (Minimum_Size): Decrease to 8 in order to + allow for small sets. Update all occurrences of Table_Locked to + Iterated. + (Ensure_Unlocked): Query the number of iterators. + (Find_Node): Use the supplied equality. + (Is_Empty): New routine. + (Lock): Update the number of iterators. + (Prepend_Or_Replace): Use the supplied equality. + (Size): Update the return type. + (Unlock): Update the number of iterators. + * libgnat/g-dynhta.ads: Update all occurrences of Table_Locked + to Iterated. Rename formal subprogram Equivalent_Keys to "=". + (Bucket_Range_Type, Pair_Count_Type): Remove types. + (Not_Created, Table_Locked, Iterator_Exhausted): Remove + exceptions. + (Hash_Table): Update to store the number of iterators rather + than locks. + (Is_Empty): New routine. + (Size): Update the return type. + * libgnat/g-lists.adb: Update all occurrences of List_Locked to + Iterated. + (Ensure_Unlocked): Query the number of iterators. + (Length): Remove. + (Lock): Update the number of iterators. + (Size): New routine. + (Unlock): Update the number of iterators. + * libgnat/g-lists.ads: Update all occurrences of List_Locked to + Iterated. + (Element_Count_Type): Remove type. + (Not_Created, Table_Locked, Iterator_Exhausted): Remove + exceptions. + (Linked_List): Update type to store the number of iterators + rather than locks. + (Length): Remove. + (Size): New routine. + * libgnat/gnat.ads (Bucket_Range_Type): New type. + (Iterated, Iterator_Exhausted, and Not_Created): New exceptions. + +2018-09-26 Javier Miranda + + * checks.adb (Install_Null_Excluding_Check): Do not add + null-excluding checks when the tree may not be fully decorated. + This patch cascade errors. + +2018-09-26 Gary Dismukes + + * sem_ch3.adb (Analyze_Object_Declaration): Remove test for + Comes_From_Source, which prevented implicit conversions from + being applied to anonymous access-to-subprogram formals in + constant declartions that arise from instance associations for + generic formal objects. Add RM and AARM references to comment. + +2018-09-26 Olivier Hainque + + * opt.ads (OpenAcc_Enabled): New flag. False by default. True + when OpenACC pragmas are requested to be honored, when -fopenacc + is found on the command line. + * back_end.adb (Scan_Compiler_Arguments): Set OpenACC_Enabled if + -fopenacc is seen on the command line. + * sinfo.adb, sinfo.ads (Is_OpenAcc_Environment): New + flag/predicate on Loop statements which embed an Acc_Kernels, + Acc_Parallel or Acc_Data pragma. + (Is_OpenAcc_Loop): New flag/predicate on Loop statements which + embed an Acc_Loop pragma. + (Set_Is_OpenAcc_Environment, Set_Is_OpenAcc_Loop): Setters for + the new flags. + * par-prag.adb (Prag): Handle Acc_Data, Acc_Loop, Acc_Parallel + and Acc_Kernels pragmas. Nothing to do here, all handled by + sem_prag. + * sem_prag.adb (Acc_First, Acc_Next, + Validate_Acc_Condition_Clause, Validate_Acc_Data_Clause, + Validate_Acc_Int_Expr_Clause, Validate_Acc_Int_Expr_List_Clause, + Validate_Acc_Loop_Collapse, Validate_Acc_Loop_Gang, + Validate_Acc_Loop_Vector, Validate_Acc_Loop_Worker, + Validate_Acc_Name_Reduction, Validate_Acc_Size_Expressions): New + helper for Analyze_Pragma, to handle OpenACC pragmas. + (Analyze_Pragma): Handle Acc_Data, Acc_Loop, Acc_Parallel and + Acc_Kernels pragmas. + * sem_ch5.adb (Disable_Constant): Unset Is_True_Constant on + variable entity, action for ... + (Disable_Constants): Helper for Analyze_Loop_Statement, to ... + (Analyze_Loop_Statement): Disable True_Constant on variables + referenced within an OpenACC environment. + * snames.ads-tmpl: Declare Name_Ids for the OpenACC directives + and clauses we can handle. Remove an exraneous whitespace before + columns, preventing line length overflow in the generated spec + with Ids now reaching beyond 999. + * doc/gnat_rm/implementation_defined_pragmas.rst: Document + pragma Acc_Parallel, Acc_Loop, Acc_Kernels and Acc_Data. + * gnat_rm.texi: Regenerate. + +2018-09-26 Ed Schonberg + + * sem_ch3.adb (Is_Onown_Limited): A derived type whose parent P + is a derived limited record is not itself limited if P is a + derived limited interface. + +2018-09-26 Eric Botcazou + + * sem_ch7.adb (Has_Referencer): Remove Top_Level parameter and + add In_Nested_Instance and + Has_Outer_Referencer_Of_Non_Subprograms parameters. Rename + Has_Non_Subprograms_Referencer variable into + Has_Referencer_Of_Non_Subprograms and initialize it with the new + third parameter. Adjust recursive calls and to the renaming. + Replace test on Top_Level with test on In_Nested_Instance to + decide whether to clear the Is_Public flag on entities. + (Hide_Public_Entities): Adjust call to Has_Referencer. + +2018-09-26 Eric Botcazou + + * exp_disp.adb (Expand_Interface_Conversion): Use Present test. + (Expand_Interface_Thunk): Propagate debug info setting from + target. + * exp_util.ads (Find_Interface_Tag): Adjust comment. + * exp_util.adb (Find_Interface_Tag): Remove assertions of + success. + * sem_util.adb (Is_Variable_Size_Record): Only look at + components and robustify the implementation. + * fe.h (Find_Interface_Tag): Declare. + (Is_Variable_Size_Record): Likewise. + +2018-09-26 Thomas Quinot + + * exp_util.adb (Make_CW_Equivalent_Type): Propagate bit order + and scalar storage order from root type to classwide equivalent + type, to prevent rejection of the equivalent type by the + freezing circuitry. + +2018-09-26 Justin Squirek + + * sem_ch5.adb (Analyze_Iterator_Specification): Add conditional + to freeze called functions within iterator specifications during + full analysis. + (Preanalyze_Range): Minor typo fix. + +2018-09-26 Ed Schonberg + + * sem_ch6.adb (Analyze_Function_Return): If the return type has + a dynamic_predicate, apply a Predicate_Check to the expression, + given that it is implicitly converted to the return type. + Exclude case expressions from the check, because in this context + the expression is expanded into individual return statements. + +2018-09-26 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : In + -gnatct mode, process the discriminants only for a definition. + +2018-09-26 Eric Botcazou + + * repinfo.adb (List_Record_Layout): Be prepared for JSON output. + (List_Record_Info): Use the flat representation for record + subtypes in the JSON format. + +2018-09-26 Justin Squirek + + * lib-writ.adb, lib-writ.ads (Write_With_Lines): Add + documentation and an extra conditional check for RCI units so + that generated ali files will list the spec only instead of a + body when a body is not found. + +2018-09-26 Eric Botcazou + + * gcc-interface/gigi.h (error_gnat_node): Delete. + * gcc-interface/trans.c (error_gnat_node): Likewise. + (gigi): Replace it with Current_Error_Node. + (gnat_to_gnu): Likewise. + * gcc-interface/utils.c (rest_of_subprog_body_compilation): + Likewise. + * gcc-interface/misc.c (internal_error_function): Do not set it. + +2018-09-26 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Adjust + code retrieving the address when a clause has already been + processed. + * gcc-interface/trans.c (gnat_to_gnu) + : For an object with a Freeze + node, build a meaningful expression. + +2018-09-26 Arnaud Charlet + + * gnat1drv.adb (Adjust_Global_Switches): -gnatd_A sets + Opt.Disable_ALI_File. + * debug.adb: Update debug flags documentation. + +2018-09-26 Ed Schonberg + + * contracts.adb (Analyze_Entry_Or_Subprogram_Contract): The + analysis of preconditions specified by pragmas (rather than + aspects) is not delayed, and therefore expressions functions + that are completions do not need special handling during + expansion. + +2018-09-26 Ed Schonberg + + * exp_unst.adb: Fix handling of up level references for entries. + +2018-09-26 Ed Schonberg + + * contracts.adb (Expand_Subprogram_Contract, + Process_Preconditions_For): Apply Freeze_Expr_Types to the + expression for a precondition of an expression function that is + a completion, when the completion appears in the private part + and the declaration it completes is in the visible part of the + same package. + * freeze.adb (Freeze_Expr_Types): Do not establish the scope of + the operation if it is already installed, as will be the case + when called to analyze the contract oc the subprogram (which + happens when generating code inside the subprogram body). + +2018-09-26 Maroua Maalej + + * sem_spark.adb (Check_Param_In, Setup_Parameter_Or_Global): + Change the operation associated to assigning to an IN parameter. + In SPARK, IN access-to-variable is an observe operation for a + function, and borrow operation for a procedure. + +2018-09-26 Arnaud Charlet + + * vxlink.adb: Minor reformatting. + +2018-09-26 Gary Dismukes + + * exp_ch9.adb, layout.adb, sem_attr.adb, sem_res.adb: Fix + miscellaneous typos. + +2018-09-26 Jerome Lambourg + + * vxlink.adb: Kill a CodePeer warning. + +2018-09-24 Eric Botcazou + + PR ada/87396 + * fe.h (Get_Attribute_Definition_Clause): Use 'unsigned char' instead + of 'char' as the type of the second parameter. + +2018-09-13 Eric Botcazou + + * Makefile.rtl (arm% linux-gnueabi%): Always set EH_MECHANISM to -arm. + +2018-09-13 Eric Botcazou + + PR ada/81103 + * terminals.c: Do not include termio.h. + +2018-08-27 Martin Liska + + * gcc-interface/decl.c (update_profile): Use new function + fndecl_built_in_p and remove check for FUNCTION_DECL if + possible. + * gcc-interface/gigi.h (call_is_atomic_load): Likewise. + * gcc-interface/utils.c (gnat_pushdecl): Likewise. + +2018-08-23 Giuliano Belinassi + + * exp_unst.ads: Fix typo 'exapnded' to 'expanded'. + +2018-08-21 Hristian Kirtchev + + * checks.adb, contracts.adb, exp_aggr.adb, exp_attr.adb, + exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_unst.adb, + exp_util.adb, freeze.adb, gnatlink.adb, layout.adb, + lib-writ.adb, lib-xref-spark_specific.adb, sem_ch13.adb, + sem_ch3.adb, sem_ch6.adb, sem_res.adb, sem_util.adb, sinfo.ads, + sprint.adb: Minor reformatting. + +2018-08-21 Jerome Lambourg + + * vxlink-bind.adb, vxlink-bind.ads, vxlink-link.adb, + vxlink-link.ads, vxlink-main.adb, vxlink.adb, vxlink.ads: Add a + new tool vxlink to handle VxWorks constructors in DKMs. + * gcc-interface/Makefile.in: add rules to build vxlink + +2018-08-21 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper, Mask_Type): + Refine the handling of freezing types for expression functions + that are not completions, when analyzing the generated body for + the function: the body is inserted at the end of the enclosing + declarative part, and its analysis may freeze types declared in + the same scope that have not been frozen yet. + +2018-08-21 Ed Schonberg + + * sem_ch6.adb: Remove Freeze_Expr_Types. + * freeze.ads, freeze.adb (Freeze_Expr_Types): Moved from + sem_ch6.adb, and extended to handle other expressions that may + contain unfrozen types that must be frozen in their proper + scopes. + * contracts.adb (Analyze_Entry_Or_Subprogram_Contract): If the + contract is for the generated body of an expression function + that is a completion, traverse the expressions for pre- and + postconditions to freeze all types before adding the contract + code within the subprogram body. + +2018-08-21 Hristian Kirtchev + + * sem_ch10.adb: Remove the with and use clause for unit Ghost. + (Analyze_With_Clause): Do not mark a with clause which mentions + an ignored Ghost code for elimination. + +2018-08-21 Javier Miranda + + * lib-writ.adb (Write_Unit_Information): Handle pragmas removed + by the expander. + +2018-08-21 Ed Schonberg + + * sem_ch6.adb (Check_Synchronized_Overriding): The conformance + between an overriding protected operation and the overridden + abstract progenitor operation requires subtype conformance; + requiring equality of return types in the case of a function is + too restrictive and leads to spurious errors when the return + type is a generic actual. + +2018-08-21 Ed Schonberg + + * exp_ch9.adb (Expand_N_Timed_Entry_Call, + Expand_Conditional_Entry_Call): Use Reset_Scopes_Of to set + properly the scope of all entities created in blocks generated + by the expansion of these constructs. + +2018-08-21 Ed Schonberg + + * sem_ch13.adb (Build_Predicate_Functioss): Apply + Reset_Quantified_Variables_Scope after predicate function has + been analyzed, so that the scope can be reset on the generated + loop statements that have replaced the quantified expressions. + +2018-08-21 Bob Duff + + * einfo.ads, einfo.adb (Private_View, Shadow_Entities): Remove + obsolete code. + +2018-08-21 Maroua Maalej + + * sem_spark.adb (Check_Call_Statement): Check global and formal + parameter permissions at call sites. + (Check_Callable_Body): Assume permissions on globals and + parameters depending on their modes then analyse the body + operations. + (Check_Declaration): Consider both deep (including elementary + access) object declarations and normal variables. First check + whether the deep object is of Ownership Aspec True or not, then, + depending on its initialization, assign the appropriate state. + Check related to non access type variables deal with + initialization value permissions. + (Check_Expression): Check nodes used in the expression being + analyzed. + (Check_Globals): Call by Check_Call_Statement to perform the + check on globals. + (Check_List): Call Check_Node on each element of the list. + (Check_Loop_Statement): Check the Iteration_Scheme and loop + statements. + (Check_Node): Main traversal procedure to check safe pointer usage. + (Check_Package_Body): Check subprogram's body. + (Check_Param_In): Take a formal and an actual parameter and + Check the permission of every in-mode parameter. + (Check_Param_Out): Take a formal and an actual parameter and + check the state of out-mode and in out-mode parameters. + (Check_Statement): Check statements other than procedure call. + (Get_Perm, Get_Perm_Or_Tree, Get_Perm_Tree): Find out the state + related to the given name. + (Is_Deep): Return True if an object is of access type or has + subfields of access type. + (Perm_Error, Perm_Error_Subprogram_End): Add an error message + whenever the found state on the given name is different from the + one expected (in the statement being analyzed). + (Process_Path): Given an operation and a current state, call + Perm_Error if there is any mismatch. + (Return_Declarations, Return_Globals, Return_The_Global): Check + the state of a given name at the end of the subprogram. These + procedures may change depending on how we shall finally deal + with globals and the rhs state in a move operation. + (Set_Perm_Extensions, Set_Perm_Prefixes_Borrow, + Set_Perm_Prefixes, Setup_Globals, Setup_Parameter_Or_Global, + Setup_Parameters): Set up the new states to the given node and + up and down the tree after an operation. + (Has_Ownership_Aspect_True): This function may disappear later + when the Ownership Aspect will be implemented in the FE. + +2018-08-21 Ed Schonberg + + * sem_res.adb (Resolve_Call): Resolve correctly a parameterless + call that returns an access type whose designated type is the + component type of an array, when the function has no defaulted + parameters. + +2018-08-21 Yannick Moy + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: + Document entries of the target parametrization file. + * gnat_ugn.texi: Regenerate. + +2018-08-21 Ed Schonberg + + * sem_attr.adb: Set scope of elaboration flag for 'Access. + +2018-08-21 Ed Schonberg + + * sprint.adb: Add guard on printing aspects. + +2018-08-21 Javier Miranda + + * exp_cg.adb (Generate_CG_Output): Handle calls removed by the + expander. + +2018-08-21 Ed Schonberg + + * layout.adb: Do not set size of access subprogram if unnesting. + +2018-08-21 Ed Schonberg + + * freeze.adb: Remove warnings for access to subprograms when + unnesting is active. + +2018-08-21 Ed Schonberg + + * exp_aggr.adb (Expand_Array_Aggregate): If the component type + is limited, the array must be constructed in place, so set flag + In_Place_Assign_OK_For_Declaration accordingly. This prevents + improper copying of an array of tasks during initialization. + +2018-08-21 Eric Botcazou + + * gcc-interface/trans.c (Call_to_gnu): Always suppress an + unchecked conversion around the actual for an In parameter + passed by copy. + +2018-08-21 Eric Botcazou + + * exp_util.adb (Is_Possibly_Unaligned_Object): For the case of a + selected component inherited in a record extension and subject + to a representation clause, retrieve the position and size from + the original record component. + +2018-08-21 Ed Schonberg + + * sem_util.ads, sem_util.adb (New_External_Entity): Type of + Suffix_Index must be Int, not Nat, so that a negative value can + be used to generate a unique name for an external object, as + specified in Tbuild.New_External_Name. + (Scope_Within): Handle private type whose completion is a + synchronized type (For unnesting). + * itypes.ads, itypes.adb (Create_Itype): Ditto + * sem_ch3.adb (Constrain_Corresponding_Record): Generate a + unique name for the created subtype, because there may be + several discriminated tasks present in the same scope, and each + needs its distinct corresponding record subtype. + +2018-08-21 Yannick Moy + + * doc/gnat_ugn/gnat_and_program_execution.rst: Update + documentation of dimensionality analysis. + * gnat_ugn.texi: Regenerate. + * Makefile.rtl, impunit.adb: Consider the new units. + * libgnat/s-dfmkio.ads, libgnat/s-dfmopr.ads, + libgnat/s-diflmk.ads: New units based on Float. + * libgnat/s-dilomk.ads, libgnat/s-dlmkio.ads, + libgnat/s-dlmopr.ads: New units based on Long_Float. + * libgnat/s-dmotpr.ads: Rename to libgnat/s-dgmgop.ads and turn + into an instance of + System.Dim.Generic_Mks.Generic_Other_Prefixes. + * libgnat/s-dimmks.ads: Rename to libgnat/s-digemk.ads and turn + into an instance of System.Dim.Generic_Mks. + +2018-08-21 Hristian Kirtchev + + * impunit.adb: Add g-lists to the set of non-implementation + units. + * libgnat/g-lists.adb, libgnat/g-lists.ads: New unit. + * Makefile.rtl: Add g-lists to the set of non-tasking units. + * gcc-interface/Make-lang.in: Add g-lists to the set of files + used by gnat1. + +2018-08-21 Ed Schonberg + + * exp_ch9.adb (Reset_Scopes): Do not recurse into type + declarations when resetting the scope of entities declared the + procedures generated for entry bodies and accept alternatives. + Use the entity of the procedure declaration, not its body, as + the new scope. + +2018-08-21 Hristian Kirtchev + + * einfo.adb (Elaboration_Entity): Include entries and entry + families in the set of legal entities. + (Elaboration_Entity_Required): Include entries and entry + families in the set of legal entities. + (Set_Elaboration_Entity): Include entries and entry families in + the set of legal entities. + (Set_Elaboration_Entity_Required): Include entries and entry + families in the set of legal entities. + (Write_Field13_Name): Update the output of attribute + Elaboration_Entity. + * einfo.ads: Attributes Elaboration_Entity and + Elaboration_Entity_Required now apply to entries and entry + families. + +2018-08-21 Arnaud Charlet + + * set_targ.adb: Mark some CodePeer message as Intentional. + +2018-08-21 Ed Schonberg + + * sem_res.adb (Resolve_Call): Force the freezing of an + expression function that is called to provide a default value + for a defaulted discriminant in an object initialization. + +2018-08-21 Hristian Kirtchev + + * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads: New package + Dynamic_HTable. + +2018-08-21 Javier Miranda + + * checks.ads (Determine_Range): Adding documentation. + * checks.adb (Determine_Range): Don't deal with enumerated types + with non-standard representation. + (Convert_And_Check_Range): For conversion of enumeration types + with non standard representation to an integer type perform a + direct conversion to the target integer type. + +2018-08-21 Piotr Trojanek + + * lib-xref.ads, lib-xref-spark_specific.adb + (Enclosing_Subprogram_Or_Library_Package): Now roughtly works + for pragmas that come from aspect specifications. + +2018-08-21 Pierre-Marie de Rodat + + * sa_messages.ads, sa_messages.adb: New source files. + +2018-08-03 Pierre-Marie de Rodat + + Reverts + 2018-07-06 Jim Wilson + + * Make-generated.in (treeprs.ads): Use $(GNATMAKE) instead of gnatmake. + (einfo.h, sinfo.h, stamp-snames, stamp-nmake): Likewise. + * gcc-interface/Makefile.in (xoscons): Likewise. + +2018-07-31 Alexandre Oliva + Olivier Hainque + + * gcc-interface/trans.c: Include debug.h. + (file_map): New static variable. + (gigi): Set it. Create decl_to_instance_map when needed. + (Subprogram_Body_to_gnu): Pass gnu_subprog_decl to... + (Sloc_to_locus): ... this. Add decl parm, map it to instance. + * gcc-interface/gigi.h (Sloc_to_locus): Adjust declaration. + +2018-07-31 Arnaud Charlet + + * clean.adb, gnatchop.adb, gnatfind.adb, gnatls.adb, + gnatmake.ads, gnatxref.adb, make.adb, make.ads, make_util.ads, + sfn_scan.adb, vxaddr2line.adb, xeinfo.adb, xoscons.adb, + xr_tabls.adb, xref_lib.adb: Address CodePeer messages. + +2018-07-31 Arnaud Charlet + + * gnatlink.adb: Fix potential Constraint_Error if + Library_Version is too long. + +2018-07-31 Arnaud Charlet + + * sem_elab.adb: Remove duplicate condition detected by CodePeer. + +2018-07-31 Ed Schonberg + + * exp_unst.adb (Subp_Index): In the case of a protected + operation, the relevant entry is the generated + protected_subprogram_body into which the original body is + rewritten. Assorted cleanup and optimizations. + +2018-07-31 Ed Schonberg + + * exp_attr.adb (Expand_Attribute, case Fixed_Value): Set the + base type of the result to ensure that proper overflow and range + checks are generated. If the target is a fixed-point tyoe, + generate the required overflow and range checks explicitly, + rather than relying on Apply_Type_Conversion_Checks, which might + simply set the Do_Range_Check flag and rely on the backend to + add the check. + +2018-07-31 Hristian Kirtchev + + * sem_res.adb (Resolve_Call): Establish a transient scope to + manage the secondary stack when the designated type of an + access-to-subprogram requires it. + +2018-07-31 Ed Schonberg + + * exp_ch7.adb (Check_Unnesting_Elaboration_Code): To find local + subprograms in the elaboration code for a package body, recurse + through nested statement sequences because a compiler-generated + procedure may appear within a condition statement. + +2018-07-31 Ed Schonberg + + * exp_ch6.adb (Expand_Protected_Subprogram_Call): Handle + properly a protected call that includes a default parameter that + is a call to a protected function of the same type. + +2018-07-31 Justin Squirek + + * lib-writ.adb (Write_With_Lines): Modfiy the generation of + dependencies within ali files so that source unit bodies are + properly listed even if said bodies are missing. Perform legacy + behavior in GNATprove mode. + * lib-writ.ads: Modify documentation to reflect current behavior. + +2018-07-31 Eric Botcazou + + * libgnarl/s-osinte__solaris.ads (upad64_t): New private type. + (mutex_t): Use it for 'lock' and 'data' components. + (cond_t): Likewise for 'data' and use single 'flags' component. + +2018-07-31 Justin Squirek + + * exp_ch5.adb (Make_Field_Assign): Force temporarily generated + objects for assignment of overlaid user objects to be renamings + instead of constant declarations. + +2018-07-31 Hristian Kirtchev + + * exp_ch9.adb (Analyze_Pragmas): New routine. + (Build_Private_Protected_Declaration): Code clean up. Relocate + relevant aspects and pragmas from the stand-alone body to the + newly created spec. Explicitly analyze any pragmas that have + been either relocated or produced by the analysis of the + aspects. + (Move_Pragmas): New routine. + * sem_prag.adb (Find_Related_Declaration_Or_Body): Recognize the + case where a pragma applies to the internally created spec for a + stand-along subprogram body declared in a protected body. + +2018-07-31 Gary Dismukes + + * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace + calls to Current_Scope in three assertions with calls to + Current_Subprogram. + +2018-07-31 Ed Schonberg + + * sem_eval.adb (Check_Non_Static_Context): Do not warn on an + integer literal greater than the upper bound of + Universal_Integer'Last when expansion is disabled, to avoid a + spurious warning over ranges involving 64-bit modular types. + +2018-07-31 Arnaud Charlet + + * einfo.adb (Write_Entity_Flags): Also print + Is_Activation_Record flag. + +2018-07-31 Piotr Trojanek + + * exp_aggr.adb, exp_ch4.adb, exp_ch6.adb, lib-xref.adb, + repinfo.adb, sem_ch9.adb: Minor replace Ekind membership tests + with a wrapper routine. + +2018-07-31 Piotr Trojanek + + * ali.adb (Known_ALI_Lines): Remove 'F' as a prefix for lines + related to the FORMAL analysis done by GNATprove. + +2018-07-31 Javier Miranda + + * sem.ads (Inside_Preanalysis_Without_Freezing): New global + counter. + * sem.adb (Semantics): This subprogram has now the + responsibility of resetting the counter before analyzing a unit, + and restoring its previous value before returning. + * freeze.adb (Freeze_Entity): Do not freeze if we are + preanalyzing without freezing. + * sem_res.adb (Preanalyze_And_Resolve): Set & restore + In_Preanalysis_Without_Freezing. + +2018-07-31 Ed Schonberg + + * sem_ch4.adb (Traverse_Homonyms): Consider generic actuals that + may rename a matching class-wide operation only if the renaming + declaration for that actual is in an enclosing scope (i.e. + within the corrresponding instance). + +2018-07-31 Hristian Kirtchev + + * checks.adb, contracts.adb, exp_aggr.adb, exp_ch5.adb, + exp_disp.adb, make.adb, sem_ch4.adb, sem_eval.adb, sem_res.adb, + usage.adb: Minor reformatting. + +2018-07-31 Bob Duff + + * sem_res.adb (Resolve_Allocator): Do not complain about the + implicit allocator that occurs in the expansion of a return + statement for a build-in-place function. + +2018-07-20 Martin Sebor + + PR middle-end/82063 + * gcc-interface/misc.c (gnat_handle_option): Change function argument + to HOST_WIDE_INT. + +2018-07-17 Eric Botcazou + + * gcc-interface/decl.c (choices_to_gnu): Rename parameters. Deal with + an operand of Character type. Factor out range generation to the end. + Check that the bounds are literals and convert them to the type of the + operand before building the ranges. + * gcc-interface/utils.c (make_dummy_type): Minor tweak. + (make_packable_type): Propagate TYPE_DEBUG_TYPE. + (maybe_pad_type): Likewise. + +2018-07-17 Ed Schonberg + + * sem_ch4.adb (Try_Object_Operation): Handle properly a prefixed call + in an instance, when the generic parameters include an interface type + and a abstract operation of that type, and the actuals in the instance + include an interface type and a corresponding abstract operation of it, + with a different name than the corresponding generic subprogram + parameter. + +2018-07-17 Arnaud Charlet + + * sem_eval.adb (Rewrite_In_Raise_CE): Keep the original reason in more + cases. + +2018-07-17 Arnaud Charlet + + * checks.adb (Apply_Division_Check): Add provision for floating-point + checks. + +2018-07-17 Ed Schonberg + + * exp_aggr.adb (Component_OK_For_Backend): If an array component of the + enclosing record has a bound that is out of range (and that has been + rewritten as a raise statement) the aggregate is not OK for any back + end, and should be expanded into individual assignments. + +2018-07-17 Piotr Trojanek + + * atree.adb (Relocate_Node): Simplify with Is_Rewrite_Substitution. + +2018-07-17 Piotr Trojanek + + * sem_util.ads (Denotes_Same_Object): Likewise. + * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix RM rule references. + +2018-07-17 Eric Botcazou + + * exp_disp.adb (Make_Tags): When the type has user-defined primitives, + build the access type that is later used by Build_Get_Prim_Op_Address + as pointing to a subtype of Ada.Tags.Address_Array. + +2018-07-17 Patrick Bernardi + + * libgnat/s-memory__mingw.adb: Remove. + * Makefile.rtl: Remove s-memory.adb target pair from the Cygwin/Mingw32 + section. + +2018-07-17 Hristian Kirtchev + + * frontend.adb (Frontend): The removal of ignored Ghost code must be + the last semantic operation performed on the tree. + +2018-07-17 Hristian Kirtchev + + * frontend.adb (Frontend): Update the call to Register_Config_Switches. + * inline.ads: Add new component Config_Switches to record + Pending_Body_Info which captures the configuration state of the pending + body. Remove components Version, Version_Pragma, SPARK_Mode, and + SPARK_Mode_Pragma from record Pending_Body_Info because they are + already captured in component Config_Switches. + * opt.adb (Register_Opt_Config_Switches): Rename to + Register_Config_Switches. + (Restore_Opt_Config_Switches): Rename to Restore_Config_Switches. + (Save_Opt_Config_Switches): Rename to Save_Config_Switches. This + routine is now a function, and returns the saved configuration state as + an aggregate to avoid missing an attribute. + (Set_Opt_Config_Switches): Rename to Set_Config_Switches. + * opt.ads (Register_Opt_Config_Switches): Rename to + Register_Config_Switches. + (Restore_Opt_Config_Switches): Rename to Restore_Config_Switches. + (Save_Opt_Config_Switches): Rename to Save_Config_Switches. This + routine is now a function. + (Set_Opt_Config_Switches): Rename to Set_Config_Switches. + * par.adb (Par): Update the calls to configuration switch-related + subprograms. + * sem.adb (Semantics): Update the calls to configuration switch-related + subprograms. + * sem_ch10.adb (Analyze_Package_Body_Stub): Update the calls to + configuration switch-related subprograms. + (Analyze_Protected_Body_Stub): Update the calls to configuration + switch-related subprograms. + (Analyze_Subprogram_Body_Stub): Update calls to configuration + switch-related subprograms. + * sem_ch12.adb (Add_Pending_Instantiation): Update the capture of + pending instantiation attributes. + (Inline_Instance_Body): Update the capture of pending instantiation + attributes. It is no longer needed to explicitly manipulate the SPARK + mode. + (Instantiate_Package_Body): Update the restoration of the context + attributes. + (Instantiate_Subprogram_Body): Update the restoration of context + attributes. + (Load_Parent_Of_Generic): Update the capture of pending instantiation + attributes. + (Set_Instance_Env): Update the way relevant configuration attributes + are saved and restored. + +2018-07-17 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Deal with + more rvalues in the expression of a renaming. + +2018-07-17 Eric Botcazou + + * gcc-interface/ada-tree.h (TYPE_RETURN_BY_DIRECT_REF_P): Define for + METHOD_TYPE too. + (TYPE_RETURN_UNCONSTRAINED_P): Likewise. + (TYPE_CI_CO_LIST): Likewise. + * gcc-interface/gigi.h (is_cplusplus_method): Delete. + (fntype_same_flags_p): Adjust comment. + * gcc-interface/decl.c (Has_Thiscall_Convention): Delete. + (gnat_to_gnu_entity) : Do not set the "thiscall" + attribute directly. + (is_cplusplus_method): Make static and adjust head comment. + (gnat_to_gnu_param): Return a pointer for the "this" parameter of + C++ constructors. + (gnat_to_gnu_subprog_type): Turn imported C++ constructors into their + callable form. Generate a METHOD_TYPE node for imported C++ methods. + Set param_list at the very end of the processing. + (substitute_in_type) : New case. + * gcc-interface/misc.c (gnat_print_type) : Likewise. + (gnat_type_hash_eq): Accept METHOD_TYPE. + * gcc-interface/trans.c (Identifier_to_gnu): Deal with METHOD_TYPE. + (Attribute_to_gnu): Likewise. + (Call_to_gnu): Likewise. + (process_freeze_entity): Likewise. + * gcc-interface/utils.c (create_subprog_decl): Adjust head comment. + (fntype_same_flags_p): Likewise. + +2018-07-17 Piotr Trojanek + + * inline.adb (Expand_Inlined_Call): Remove extra parentheses. + +2018-07-17 Eric Botcazou + + * exp_disp.adb (Gen_Parameters_Profile): Make the _Init parameter an + In/Out parameter. + (Set_CPP_Constructors): Adjust comment accordingly. + +2018-07-17 Bob Duff + + * exp_disp.adb (Build_Class_Wide_Check): Return early if the + precondition is supposed to be ignored. + +2018-07-17 Ed Schonberg + + * sem_ch6.adb (Check_Untagged_Equality): Extend check to operations + declared in the same scope as the operand type, when that scope is a + procedure. + +2018-07-17 Ed Schonberg + + * exp_unst.adb (Unnest_Subprograms): Do nothing if the expander is not + active. Don't use Get_Actual_Subtype for record subtypes. Ignore + rewritten identifiers and uplevel references to bounds of types that + come from the original type reference. + +2018-07-17 Hristian Kirtchev + + * exp_ch13.adb, exp_ch7.adb, exp_unst.adb, freeze.adb, + libgnat/s-os_lib.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, + sem_eval.adb, sem_res.adb, sem_util.adb: Minor reformatting. + +2018-07-17 Javier Miranda + + * exp_ch13.adb (Expand_N_Freeze_Entity): Handle subtype declared for an + iterator. + * freeze.adb (Freeze_Expression): Handle freeze of an entity defined + outside of a subprogram body. This case was previously handled during + preanalysis; the frozen entities were remembered and left pending until + we continued freezeing entities outside of the subprogram. Now, when + climbing the parents chain to locate the correct placement for the + freezeing node, we check if the entity can be frozen and only when no + enclosing node is marked as Must_Not_Freeze the entity is frozen. + * sem_ch3.ads (Preanalyze_Default_Expression): Declaration moved to the + package body. + * sem_ch3.adb (Preanalyze_Default_Expression): Code adjusted to invoke + the new subprogram Preanalyze_With_Freezing_And_Resolve. + * sem_ch6.adb (Preanalyze_Formal_Expression): New subprogram. + (Analyze_Expression_Function, Process_Formals): Invoke + Preanalyze_Formal_Expression instead of Preanalyze_Spec_Expression + since the analysis of the formals may freeze entities. + (Analyze_Subprogram_Body_Helper): Skip building the body of the + class-wide clone for eliminated subprograms. + * sem_res.ads, sem_res.adb (Preanalyze_And_Resolve): New subprogram. + Its code is basically the previous version of this routine but extended + with an additional parameter which is used to specify if during + preanalysis we are allowed to freeze entities. If the new parameter is + True then the subtree root node is marked as Must_Not_Freeze and no + entities are frozen during preanalysis. + (Preanalyze_And_Resolve): Invokes the internal version of + Preanalyze_And_Resolve without entity freezing. + (Preanalyze_With_Freezing_And_Resolve): Invokes the internal version of + Prenalyze_And_Resolve with freezing enabled. + +2018-07-17 Piotr Trojanek + + * einfo.ads, libgnat/g-comlin.ads: Minor change "ie" to "i.e." in docs + and comments. + +2018-07-17 Justin Squirek + + * libgnat/s-os_lib.adb (Argument_String_To_List): Fix trimming of + whitespace. + +2018-07-17 Hristian Kirtchev + + * sem_prag.adb (Has_Visible_State): Do not consider constants as + visible state because it is not possible to determine whether a + constant depends on variable input. + (Propagate_Part_Of): Add comment clarifying the behavior with respect + to constant. + +2018-07-17 Yannick Moy + + * gnat1drv.adb (Gnat1drv): Do not issue warning about exception not + being propagated in GNATprove mode. + +2018-07-17 Dmitriy Anisimkov + + * libgnat/g-socket.adb, libgnat/g-socket.ads: Reorganize and make + public components of Inet_Addr_Type. Introduce public binary + operations. + +2018-07-17 Javier Miranda + + * exp_ch7.adb (Make_Transient_Block): When determining whether an + enclosing scope already handles the secondary stack, take into account + transient blocks nested in a block that do not manage the secondary + stack and are located within a loop. + +2018-07-17 Ed Schonberg + + * sem_util.adb (Enclosing_Subprogram): Protected entries and task + entries must be treated separately: task entries are within the + enclosing subprogram of the task type, while protected entries are + transformed into the corresponding Protected_Body_Subprogram, which is + the enclosing_subprogram of any subprogram declared within the entry + body. + +2018-07-17 Hristian Kirtchev + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add missing + sections on -gnatH and -gnatJ compiler switches. + * gnat_ugn.texi: Regenerate. + +2018-07-17 Hristian Kirtchev + + * alloc.ads: Update the allocation metrics of the ignored Ghost nodes + table. + * atree.adb: Add a soft link for a procedure which is invoked whenever + an ignored Ghost node or entity is created. + (Change_Node): Preserve relevant attributes which come from the Flags + table. + (Mark_New_Ghost_Node): Record a newly created ignored Ghost node or + entity. + (Rewrite): Preserve relevant attributes which come from the Flags + table. + (Set_Ignored_Ghost_Recording_Proc): New routine. + * atree.ads: Define an access-to-suprogram type for a soft link which + records a newly created ignored Ghost node or entity. + (Set_Ignored_Ghost_Recording_Proc): New routine. + * ghost.adb: Remove with and use clause for Lib. Remove table + Ignored_Ghost_Units. Add new table Ignored_Ghost_Nodes. + (Add_Ignored_Ghost_Unit): Removed. + (Initialize): Initialize the table which stores ignored Ghost nodes. + Set the soft link which allows Atree.Mark_New_Ghost_Node to record an + ignored Ghost node. + (Is_Ignored_Ghost_Unit): Use the ultimate original node when checking + an eliminated ignored Ghost unit. + (Lock): Release and lock the table which stores ignored Ghost nodes. + (Mark_And_Set_Ghost_Assignment): Record rather than propagate ignored + Ghost nodes. + (Mark_And_Set_Ghost_Procedure_Call): Record rather than propagate + ignored Ghost nodes. + (Mark_Ghost_Clause): Record rather than propagate ignored Ghost nodes. + (Mark_Ghost_Declaration_Or_Body): Record rather than propagate ignored + Ghost nodes. + (Mark_Ghost_Pragma): Record rather than propagate ignored Ghost nodes. + (Propagate_Ignored_Ghost_Code): Removed. + (Record_Ignored_Ghost_Node): New routine. + (Remove_Ignored_Ghost_Code): Reimplemented. + (Remove_Ignored_Ghost_Node): New routine. + (Ultimate_Original_Node): New routine. + * ghost.ads (Check_Ghost_Completion): Removed. + * sem_ch8.adb (Analyze_Use_Package): Remove obsolete code. Mark a use + package clause as ignored Ghost if applicable. + * sem_util.adb (Is_Body_Or_Package_Declaration): Reimplemented. + +2018-07-17 Javier Miranda + + * sem_ch5.adb (Has_Call_Using_Secondary_Stack): Moved to library level + to reuse it. + (Analyze_Loop_Statement): Wrap the loop in a block when the evaluation + of the loop iterator relies on the secondary stack. + +2018-07-17 Piotr Trojanek + + * sem_util.adb (Next_Actual): If the parent is a N_Null_Statement, + which happens for inlined calls, then fetch the next actual from the + original AST. + +2018-07-17 Ed Schonberg + + * einfo.ads: Update documentation for Scalar_Range. + +2018-07-17 Piotr Trojanek + + * lib-xref-spark_specific.adb (Create_Heap): Attach the HEAP entity to + the Standard package. + +2018-07-17 Piotr Trojanek + + * einfo.adb (Is_Wrapper_Package): Remove extra parentheses. + +2018-07-17 Ed Schonberg + + * sem_util.adb (Enclosing_Subprogram): Handle properly entries, and + synchronized types that are completions of limited types or private + extensions. + (Scope_Within): Handle properly accept statements in task bodies. + +2018-07-17 Hristian Kirtchev + + * sem_prag.adb (Has_Visible_State): Do not consider generic formals + because they are not part of the visible state space. Add constants to + the list of acceptable visible states. + (Propagate_Part_Of): Do not consider generic formals when propagating + the Part_Of indicator. + * sem_util.adb (Entity_Of): Do not follow renaming chains which go + through a generic formal because they are not visible for SPARK + purposes. + * sem_util.ads (Entity_Of): Update the comment on usage. + +2018-07-17 Ed Schonberg + + * sem_util.adb (Gather_Components): A discriminant of an ancestor may + have been constrained by a later ancestor, so when looking for the + value of that hidden discriminant we must examine the stored constraint + of other ancestors than the immediate parent type. + +2018-07-17 Hristian Kirtchev + + * exp_ch6.adb (Build_Heap_Or_Pool_Allocator): Ensure that scoping + constructs and entities within receive new entities when replicating a + tree. + (Expand_N_Extended_Return_Statement): Ensure that scoping constructs + and entities within receive new entities when replicating a tree. + * sem_util.adb (New_Copy_Tree): Add new formal Scopes_In_EWA_OK. + (Visit_Entity): Visit entities within scoping constructs inside + expression with actions nodes when requested by the caller. Add blocks, + labels, and procedures to the list of entities which need replication. + * sem_util.ads (New_Copy_Tree): Add new formal Scopes_In_EWA_OK. Update + the comment on usage. + +2018-07-17 Arnaud Charlet + + * doc/gnat_ugn/about_this_guide.rst, + doc/gnat_ugn/gnat_and_program_execution.rst: Remove references to gcov. + * gnat_ugn.texi: Regenerate. + +2018-07-16 Hristian Kirtchev + + * contracts.adb (Analyze_Contracts): Add specialized processing for + package instantiation contracts. + (Analyze_Package_Contract): Remove the verification of a missing + Part_Of indicator. + (Analyze_Package_Instantiation_Contract): New routine. + * contracts.ads (Analyze_Package_Contract): Update the comment on + usage. + * sem_prag.adb (Check_Missing_Part_Of): Ensure that the entity of the + instance is being examined when trying to determine whether a package + instantiation needs a Part_Of indicator. + +2018-07-16 Hristian Kirtchev + + * einfo.adb, exp_ch7.adb, exp_ch9.adb, exp_unst.adb, inline.adb, + sem.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_eval.adb, + sem_util.adb: Minor reformatting. + +2018-07-16 Arnaud Charlet + + * frontend.adb: Only unnest subprograms if no previous errors were + detected. + +2018-07-16 Ed Schonberg + + * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Handle loops that + contain blocks in the elaboration code for a package body. Create the + elaboration subprogram wrapper only if there is a subprogram + declaration in a block or loop. + +2018-07-16 Ed Schonberg + + * exp_ch4.adb (Expand_Set_Membership): Use New_Copy_Tree to perform a + deep copy of the left operand when building each conjuct of the + expanded membership operation, to avoid sharing nodes between them. + This sharing interferes with the unnesting machinery and is generally + undesirable. + +2018-07-16 Ed Schonberg + + * exp_unst.adb (Visit_Node): Handle 'Address references that are + calls. + +2018-07-16 Ed Schonberg + + * exp_unst.adb (Visit_Node): Handle the semantic of Storage_Pool field + in relevant nodes: Allocate, Free, and return statements. + +2018-07-16 Ed Schonberg + + * sem_ch12.adb (Analyze_Package_Instantiation): Handle properly an + instance that carries an aspect Default_Storage_Pool that overrides a + default storage pool that applies to the generic unit. The aspect in + the generic unit was removed before copying it in the instance, rather + than removing it from the copy of the aspects that are appended to the + aspects in the instance. + +2018-07-16 Ed Schonberg + + * einfo.adb (Set_Is_Uplevel_Referenced_Entity): Flag can appear on + loop parameters. + * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Handle subprogram + bodies. + * exp_ch9.adb (Reset_Scopes_To): Set the scopes of entities local to an + entry body to be the corresponding generated subprogram, for correct + analysis of uplevel references. + * exp_unst.adb (Visit_Node): Handle properly binary and unary operators + Ignore pragmas, fix component associations. + (Register_Subprograms): Subprograms in synchronized types must be + treated as reachable. + +2018-07-16 Hristian Kirtchev + + * sem_util.adb (Check_No_Hidden_State): Ignore internally-generated + states and variables. + +2018-07-16 Piotr Trojanek + + * sinfo.ads, sinfo.adb (Withed_Body): Remove. + (Set_Withed_Body): Remove. + +2018-07-16 Piotr Trojanek + + * sem.adb (Walk_Library_Items): Skip units with configuration pragmas + when printing debug info. + +2018-07-16 Piotr Trojanek + + * sem.adb (Walk_Library_Items): Reuse local constant. + (Is_Subunit_Of_Main): Turn condition to positive and flip the + IF-THEN-ELSE branches; avoid potentially ineffective assignment to the + Lib variable. + +2018-07-16 Piotr Trojanek + + * sem.adb (Walk_Library_Items): Deconstruct dead code. + +2018-07-16 Ed Schonberg + + * exp_ch4.adb (Expand_N_Op_Xor): Use common routine + Expand_Nonbinary_Modular_Op. Needed for unnesting. + +2018-07-16 Ed Schonberg + + * sem_ch3.adb (Inherit_Predicate_Flags): A non-discrete type may have a + static predicate (for example True) but has no + static_discrete_predicate. + +2018-07-16 Hristian Kirtchev + + * exp_attr.adb (Build_Record_VS_Func): Handle corner cases dealing with + class-wide types and record extensions. + +2018-07-16 Justin Squirek + + * sem_eval.adb (Eval_Integer_Literal): Add exception for avoiding + checks on expanded literals within if and case expressions. + +2018-07-16 Hristian Kirtchev + + * libgnat/s-wchwts.adb (Wide_String_To_String): Use the appropriate + longest sequence factor. Code clean up. + (Wide_Wide_String_To_String): Use the appropriate longest sequence + factor. Code clean up. + +2018-07-16 Javier Miranda + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Report an error + on Bit_Order when defined for a record extension. + +2018-07-16 Arnaud Charlet + + * libgnat/s-objrea.ads: Minor code clean up. + +2018-07-16 Piotr Trojanek + + * sem_ch3.adb (Process_Discriminants): Adjust reference to the SPARM RM + rule. + +2018-07-16 Arnaud Charlet + + * adaint.c (__gnat_set_file_time_name): Code clean up. + +2018-07-16 Javier Miranda + + * inline.adb (Build_Body_To_Inline): Minor code reorganization that + ensures that calls to function Has_Single_Return() pass a decorated + tree. + (Has_Single_Return.Check_Return): Peform checks on entities (instead on + relying on their characters). + +2018-07-16 Javier Miranda + + * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Code cleanup. Required + to avoid generating an ill-formed tree that confuses gnatprove causing + it to blowup. + +2018-07-16 Yannick Moy + + * inline.adb (Has_Single_Return): Rewrap comment. + +2018-07-16 Eric Botcazou + + * einfo.ads: Minor tweak in comment. + +2018-07-16 Javier Miranda + + * sem_ch4.adb (Analyze_Membership_Op): Code cleanup. + +2018-07-16 Javier Miranda + + * exp_attr.adb (Expand_N_Attribute_Reference ['Count]): Do not + transform 'Count into a function call if the current scope has been + eliminated. + +2018-07-16 Javier Miranda + + * sem_util.ads, sem_util.adb (Has_Prefix): Move this function to the + public part of this package. + +2018-07-16 Yannick Moy + + * sem_res.adb (Resolve_Call): Do not inline calls inside + compiler-generated functions translated as predicates in GNATprove. + +2018-07-16 Gary Dismukes + + * exp_ch4.adb (Expand_N_Allocator): Test for Storage_Pool being RTE in + addition to the existing test for no Storage_Pool as a condition + enabling generation of the call to Check_Standard_Allocator when the + restriction No_Standard_Allocators_After_Elaboration is active. + * libgnat/s-elaall.ads (Check_Standard_Allocator): Correct comment to + say that Storage_Error will be raised (rather than Program_Error). + * libgnat/s-elaall.adb (Check_Standard_Allocator): Raise Storage_Error + rather than Program_Error when Elaboration_In_Progress is False. + +2018-07-16 Gary Dismukes + + * sem_eval.adb: Fix spelling for compile-time-known. + +2018-07-16 Hristian Kirtchev + + * sem_eval.adb (Compile_Time_Known_Value): Add a guard which prevents + the compiler from entering infinite recursion when trying to determine + whether a deferred constant has a compile time known value, and the + initialization expression of the constant is a reference to the + constant itself. + +2018-07-16 Nicolas Roche + + * libgnat/a-strunb.adb, libgnat/a-strunb__shared.adb: Adjust growth + factor from 1/32 to 1/2 for Unbounded_String. + +2018-07-13 Eric Botcazou + + * gcc-interface/lang.opt (funsigned-char): New option. + * gcc-interface/misc.c (gnat_handle_option): Accept it. + * gcc-interface/utils.c (finish_character_type): Tweak comment. + +2018-07-07 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Add GNAT_DECL local + variable and use it throughout. + : If the nominal subtype of the object is unconstrained, + compute the Ada size separately and put in on the padding type if the + size is not fixed. + : Minor tweak. + * gcc-interface/misc.c (gnat_type_max_size): Rename max_size_unit + into max_size_unit throughout. + +2018-07-07 Eric Botcazou + + * gcc-interface/gigi.h (add_decl_expr): Adjust prototype. + * gcc-interface/decl.c (gnat_to_gnu_entity): Remove useless test. + * gcc-interface/trans.c (add_stmt_with_node): Remove exceptions. + (add_decl_expr): Change type of second parameter and rename it. + (renaming_from_instantiation_p): New function moved from... + (set_expr_location_from_node): Test for exceptions here and add one + for actual subtypes built for unconstrained composite actuals. + * gcc-interface/utils.c (renaming_from_instantiation_p): ...here. + +2018-07-07 Eric Botcazou + + * gcc-interface/trans.c (lvalue_required_p): Remove ALIASED parameter + and adjust recursive calls. + (Identifier_to_gnu): Adjust calls to lvalue_required_p. + (gnat_to_gnu): Likewise. + +2018-07-07 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_param): Minor tweak. + (gnat_to_gnu_subprog_type): New pure_flag local variable. Set it for + a pure Ada function with a by-ref In parameter. Propagate it onto the + function type by means of the TYPE_QUAL_RESTRICT flag. + * gcc-interface/utils.c (finish_subprog_decl): Set DECL_PURE_P if the + function type has the TYPE_QUAL_RESTRICT flag set. + +2018-07-06 Jim Wilson + + * Makefile.rtl: Add riscv*-linux* support. + * libgnarl/s-linux__riscv.ads: New. + * libgnat/system-linux-riscv.ads: New. + + * Make-generated.in (treeprs.ads): Use $(GNATMAKE) instead of gnatmake. + (einfo.h, sinfo.h, stamp-snames, stamp-nmake): Likewise. + * gcc-interface/Makefile.in (xoscons): Likewise. + +2018-07-06 Sebastian Huber + + * libgnat/system-rtems.ads (Frontend_Exceptions): Set to False. + (ZCX_By_Default): Set to True. + +2018-07-02 Martin Liska + + * gnatvsn.ads: Bump Library_Version to 9. + +2018-06-12 Eric Botcazou + + * gcc-interface/ada-tree.h (TYPE_RETURN_BY_DIRECT_REF_P): Change from + using TYPE_LANG_FLAG_4 to using TYPE_LANG_FLAG_0. + (TYPE_ALIGN_OK): Move around. + (TYPE_PADDING_FOR_COMPONENT): Remove superfluous parentheses. + * gcc-interface/decl.c (change_qualified_type): Move to... + (gnat_to_gnu_entity): Adjust comment. + * gcc-interface/gigi.h (change_qualified_type): ...here; make inline. + (ceil_pow2): Use ceil_log2. + * gcc-interface/utils.c (finish_subprog_decl): Add couple of comments + and do not set TREE_SIDE_EFFECTS. + (handle_noreturn_attribute): Use change_qualified_type. + +2018-06-12 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not get + the expression of a dispatch table that is not being defined. + : Remove obsolete kludge. + +2018-06-12 Eric Botcazou + + * gcc-interface/decl.c (warn_on_field_placement): Use specific wording + for discriminants. + (warn_on_list_placement): New static function. + (components_to_record): Use it to warn on multiple fields in list. + +2018-06-12 Eric Botcazou + + * gcc-interface/decl.c (variant_desc): Add AUX field. + (gnat_to_gnu_entity) : Do not call compute_record_mode + directly. + (reverse_sort_field_list): New static function. + (components_to_record): Place the variant part at the beginning of the + field list when there is an obvious order of increasing position. + (build_variant_list): Initialize it. + (create_variant_part_from): Do not call compute_record_mode directly. + (copy_and_substitute_in_layout): Likewise. Always sort the fields with + fixed position in order of increasing position, in the record and all + the variants, in any. Call reverse_sort_field_list. + * gcc-interface/utils.c (make_packable_type): Compute the sizes before + calling finish_record_type. Do not call compute_record_mode directly. + (finish_record_type): Overhaul final processing depending on REP_LEVEL + and call finish_bitfield_layout if it is equal to one or two. + +2018-06-11 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Reuse the + existing fields of a dummy fat pointer type, if any. Clear the + TYPE_DECL_SUPPRESS_DEBUG on the fat pointer type after completing it. + +2018-06-11 Hristian Kirtchev + + * contracts.adb (Process_Body_Postconditions): Expand only checked + postconditions. + (Process_Contract_Cases_For): Expand only checked contract cases. + (Process_Inherited_Preconditions): Ignored class-wide preconditions are + partially expanded because some of their semantic checks are tied to + the expansion. + (Process_Preconditions_For): Expand only checked preconditions. + (Process_Spec_Postconditions): Expand only checked preconditions. + Ignored class-wide preconditions are partially expanded because some of + their semantic checks are tied to the expansion. + * exp_prag.adb (Expand_N_Pragma): Suppress the expansion of ignored + assertion pragmas. + * exp_util.adb (Add_Inherited_Invariants): Code clean up. + * sem_util.adb (Propagate_Invariant_Attributes): Code clean up. + +2018-06-11 Hristian Kirtchev + + * exp_ch9.adb, exp_unst.adb, inline.adb, libgnat/a-ciorma.adb, + libgnat/a-ciormu.adb, libgnat/a-ciorse.adb, libgnat/a-coorma.adb, + libgnat/a-coormu.adb, libgnat/a-coorse.adb, sem_prag.adb: Minor + reformatting. + +2018-06-11 Gary Dismukes + + * exp_unst.ads, exp_unst.adb: Typo fixes and minor reformatting. + +2018-06-11 Hristian Kirtchev + + * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call): Do + not add any actuals when the size of the object is known, and the + caller will allocate it. + (Build_Heap_Allocator): Rename to Build_Heap_Or_Pool_Allocator to + better illustrate its functionality. Update the comment on the + generated code. Generate a branch for the heap and pool cases where + the object is not necessarity controlled. + (Expand_N_Extended_Return_Statement): Expand the extended return + statement into four branches depending the requested mode if the caller + will not allocate the object on its side. + (Make_Build_In_Place_Call_In_Allocator): Do not allocate a controlled + object on the caller side because this will violate the semantics of + finalizable types. Instead notify the function to allocate the object + on the heap or a user-defined storage pool. + (Needs_BIP_Alloc_Form): A build-in-place function needs to be notified + which of the four modes to employ when returning a limited controlled + result. + * exp_util.adb (Build_Allocate_Deallocate_Proc): Remove a redundant + guard which is already covered in Needs_Finalization. + +2018-06-11 Olivier Hainque + + * libgnat/s-excmac*.ads: Factorize Unwind_Action definitions ... + * libgnat/a-exexpr.adb: ... Here, then add comments describing the + major datastructures associated with the current exception raised. + (Setup_Current_Excep): Accept a "Phase" argument conveying the + unwinding phase during which this subprogram is called. For an Ada + exception, don't update the current exception buffer from the raised + exception object during SEARCH_PHASE, as this is redundant with the + call now issued just before propagation starts. + (Propagate_GCC_Exception): Move call to Setup_Current_Excep ahead of + the unwinding start, conveying Phase 0. + (Unhandled_Except_Handler): Pass UA_CLEANUP_PHASE as the Phase value on + the call to Setup_Current_Excep. + * raise-gcc.c (personality_body): Pass uw_phases as the Phase argument + on calls to Setup_Current_Excep. + +2018-06-11 Ed Schonberg + + * exp_unst.ads, exp_unst.adb (Needs_Fat_Pointer, + Build_Access_Type_Decl): New subprograms to handle uplevel references + to formals of an unconstrained array type. The activation record + component for these is an access type, and the reference is rewritten + as an explicit derefenrence of that component. + +2018-06-11 Bob Duff + + * libgnat/a-ciorma.adb, libgnat/a-ciormu.adb, libgnat/a-ciorse.adb, + libgnat/a-coorma.adb, libgnat/a-coormu.adb, libgnat/a-coorse.adb: + (Element): Add code to detect dangling cursors in some cases. + +2018-06-11 Yannick Moy + + * sem_ch6.adb (Build_Subprogram_Declaration): Mark parameters as coming + from source. + +2018-06-11 Ed Schonberg + + * sem_ch13.adb (Build_Predicate_Functions): For a derived type, ensure + that its parent is already frozen so that its predicate function, if + any, has already been constructed. + +2018-06-11 Yannick Moy + + * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): Adapt for + possible task unit as the enclosing context. + +2018-06-11 Eric Botcazou + + * gnat1drv.adb: Remove use clause for Repinfo. + (Gnat1drv): Beef up comment about the interplay between -gnatc and + back-end annotations. Use full qualified name for List_Rep_Info. + +2018-06-11 Hristian Kirtchev + + * libgnat/g-arrspl.ads: Add pragma Preelaborate. + +2018-06-11 Arnaud Charlet + + * exp_ch4.adb (Expand_Record_Equality): Remove extraneous "True and + then" and general logical "ada" in codepeer mode. + +2018-06-11 Javier Miranda + + * exp_ch9.adb (Expand_N_Protected_Body): Add missing handling of + N_Call_Marker nodes. + +2018-06-11 Arnaud Charlet + + * exp_ch3.adb, exp_unst.adb, inline.adb, sem_prag.adb: Minor + reformatting. + +2018-06-11 Yannick Moy + + * doc/gnat_rm/implementation_defined_pragmas.rst: Add Suppressible + argument to Assertion_Policy + * gnat_rm.texi: Regenerate. + +2018-06-11 Yannick Moy + + * gnat1drv.adb: Do not check representation information in CodePeer and + GNATprove modes, as these modes call a special backend instead of gigi, + so do not have the information. + +2018-06-11 Yannick Moy + + * inline.adb (Build_Body_To_Inline): Consider case of extended return + of unconstrained type as one case where inlining is not supported. + (Expand_Inlined_Call): Remove special case for body as extended return + of unconstrained type. + +2018-06-11 Yannick Moy + + * sem_prag.adb (Analyze_Part_Of): Only allow Part_Of on non-generic + unit. + (Check_Missing_Part_Of): Do not force Part_Of on generic unit. + +2018-06-11 Piotr Trojanek + + * sem_ch13.adb (Analyze_Aspect_Specifications): Don't split AND THEN + expressions in Pre/Post contracts while in GNATprove_Mode. + +2018-06-11 Piotr Trojanek + + * sem_util.adb (Is_Potentially_Unevaluated): Fix detection of contracts + with AND THEN expressions broken down into individual conjuncts. + +2018-06-11 Ed Schonberg + + * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Add guard. + +2018-06-11 Ed Schonberg + + * exp_unst.adb (Visit_Node): Skip generic associations. + +2018-06-11 Arnaud Charlet + + * libgnat/memtrack.adb (fwrite): Remove second definition. + +2018-06-11 Javier Miranda + + * sinfo.ads (Is_Dynamic_Coextension): Adding documentation. + (Is_Static_Coextension): Adding documentation. + * sinfo.adb (Is_Dynamic_Coextension): Extending the assertion. + (Is_Static_Coextension): Extending the assertion. + * sem_util.adb (Mark_Allocator): Clear Is_Static_Coextension when + setting flag Is_Dynamic_Coextension (and vice versa). + +2018-06-11 Ed Schonberg + + * exp_unst.adb (Search_Subprograms): Handle explicitly stubs at the top + level of a compilation unit, becuase they may contain nested + subprograms that need an activation record. + +2018-06-11 Arnaud Charlet + + * Makefile.rtl: Compile Ada files with $(ADAC) instead of $(CC). + +2018-06-11 Hristian Kirtchev + + * exp_ch11.adb, exp_unst.adb, inline.adb, sem_ch12.adb, sem_util.adb: + Minor reformatting. + * sinfo.ads: Fix a typo. + +2018-06-11 Ed Schonberg + + * inline.adb (Expand_Inlined_Call): If no optimization level is + specified, the expansion of a call to an Inline_Always function is + fully performed in the front-end even on a target that support back-end + inlining. + +2018-06-11 Arnaud Charlet + + * bindgen.adb (Gen_Adainit): Protect reference to System.Parameters + with Sec_Stack_Used. + +2018-06-11 Hristian Kirtchev + + * sem_ch8.adb (Find_Direct_Name): Mode the declaration of + Is_Assignment_LHS further in. Use predicate + Needs_Variable_Reference_Marker to determine whether to create a + variable marker. + (Find_Expanded_Name): Mode the declaration of Is_Assignment_LHS further + in. Use predicate Needs_Variable_Reference_Marker to determine whether + to create a variable marker. + * sem_elab.adb (Build_Variable_Reference_Marker): Remove the various + checks that determine whether the identifier or expanded name is a + suitable variable reference. The checks are now performed by + Needs_Variable_Reference_Marker. + * sem_res.adb (Resolve_Actuals): Use predicate + Needs_Variable_Reference_Marker to determine whether to create a + variable marker. + * sem_util.adb (Needs_Variable_Reference_Marker): New routine. + * sem_util.ads (Needs_Variable_Reference_Marker): New routine. + +2018-06-11 Valentine Reboul + + * doc/gnat_rm.rst, doc/gnat_ugn.rst: Rename "GPL Edition" into + "Community Edition". + +2018-06-11 Ed Schonberg + + * sem_ch12.adb (Install_Body): In order to determine the placement of + the freeze node for an instance of a generic nested within another + instance, take into account that the outer instance may be declared in + the visible part of a package and the inner intance may be in the + private part of the same package. + +2018-06-11 Eric Botcazou + + * errout.adb (Special_Msg_Delete): Remove handling of Atomic and VFA. + +2018-06-11 Nicolas Roche + + * libgnat/s-valuti.adb (Bad_Value): Ensure that we do not generate a + stack overflow while raising a constraint error. + +2018-06-11 Eric Botcazou + + * repinfo.ads (Rep_Value): Use a single line. + * repinfo.adb (Rep_Value): Likewise. + (List_Attr): Do not use string concatenation. + +2018-06-11 Ed Schonberg + + * exp_unst.adb (Visit_Node): Check reference to formal parameter of + current procedure, because the bounds of its type may be uplevel + references. + +2018-06-02 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : If this is + not a definition, retrieve the expression only if it's a compile-time + known value if we are just annotating types. + + * gcc-interface/utils.c (convert): Do not try to upcast properly for a + conversion between tagged types in type_annotate_only mode. + +2018-06-02 Eric Botcazou + + * gcc-interface/ada-tree.h (TYPE_PADDING_FOR_COMPONENT): New macro. + * gcc-interface/decl.c (gnat_to_gnu_component_type): Cache the padding + type built for an aliased component with variable size. + +2018-05-31 Pierre-Marie de Rodat + + * doc/gnat_ugn/project-manager-figure.png: Delete. + +2018-05-31 Pierre-Marie de Rodat + + * vxworks-arm-link.spec, vxworks-e500-link.spec, + vxworks-gnat-crtbe-link.spec, vxworks-smp-arm-link.spec, + vxworks-smp-e500-link.spec, vxworks-smp-ppc-link.spec, + vxworks-smp-x86-link.spec: New files. + +2018-05-31 Pierre-Marie de Rodat + + * gnatvsn.adb: Re-center the copyright header. + * indepsw-darwin.adb: Adjust the starting copyright year to 2011. + +2018-05-31 Fedor Rybin + + * doc/gnat_ugn/gnat_utility_programs.rst: Document Stubs_Subdir in + gnattest section on user guide. + +2018-05-31 Ed Schonberg + + * sem_res.adb (Resolve_String_Literal): If the type is a string type + whose component subtype has a static predicate, ensure that the + predicate is applied to each character by expanding the string into the + equivalent aggregate. This is also done if the component subtype is + constrained. + +2018-05-31 Eric Botcazou + + * gcc-interface/trans.c (Call_to_gnu): Remove obsolete code. + +2018-05-31 Piotr Trojanek + + * sem_ch6.adb (Check_Missing_Return): Handle procedures with no + explicit spec. + +2018-05-31 Eric Botcazou + + * gcc-interface/trans.c (Call_to_gnu): In the by-reference case, if + the type of the parameter is an unconstrained array type, convert + to the type of the actual before the type of the formal only if the + conversion was suppressed earlier. Use in_param and gnu_actual_type + local variables throughout, and uniform spelling for In Out or Out. + Also remove dead code in the component-by-reference case. + +2018-05-31 Frederic Konrad + + * tracebak.c (STOP_FRAME): Harden condition. + (is_return_from, EXTRA_STOP_CONDITION): New helpers for VxWorks in RTP + mode. + +2018-05-31 Ed Schonberg + + * checks.adb (Apply_Discriminant_Check): Do not apply discriminant + check to a call to a build-in-place function, given that the return + object is limited and cannot be copied. + +2018-05-31 Olivier Hainque + + * libgnat/s-atopri.ads: Update comment on __atomic_compare_exchange + builtins. + +2018-05-31 Eric Botcazou + + * gcc-interface/trans.c (Call_to_gnu): If this is a function call and + there is no target, also create a temporary for the return value for + an allocator if the type is an unconstrained record type with default + discriminant. + +2018-05-31 Hristian Kirtchev + + * exp_ch7.adb (Find_Transient_Context): An iteration scheme is a valid + boudary for a transient scope. + +2018-05-31 Valentine Reboul + + * gnatvsn.ads: Rename "GPL" version to "Community". + +2018-05-31 Ed Schonberg + + * einfo.ads: Improve documentation for the Is_Unsigned_Type entity + flag. + +2018-05-31 Piotr Trojanek + + * sem_prag.adb (Analyze_Pragma): Replace call to Unique_Defining_Entity + with a semantically equivalent call to Defining_Entity. + +2018-05-31 Piotr Trojanek + + * sem_prag.adb (Analyze_Pragma): Set Etype on the rewritten + Max_Queue_Length expression. + +2018-05-31 Sergey Rybin + + * doc/gnat_ugn/gnat_and_program_execution.rst: gnatelim does not need + that the main unit to be built before the call, now it computes the + closure of the main unit itself. + * gnat_ugn.texi: Regenerate. + +2018-05-31 Eric Botcazou + + * repinfo.adb (List_Structural_Record_Layout): Set First to false + after having listed the fields of the parent type, if any. + +2018-05-31 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not + deal with the ___XP suffix for packed array types here... + : ...or here when processing the implementation type + but when processing the original type instead. Do not reuse the DECL + of the implementation type for the original type. Tidy up. + +2018-05-31 Eric Botcazou + + * einfo.ads (Object_Size_Clause): Declare. + * einfo.adb (Object_Size_Clause): New function. + * gcc-interface/utils.c (maybe_pad_type): Test Has_Size_Clause before + retrieving Size_Clause and post the warning on the object size clause + if Has_Object_Size_Clause is true. + +2018-05-31 Javier Miranda + + * sem_util.ads, sem_util.adb (Find_Primitive_Eq): New subprogram. + * exp_ch4.adb (Expand_Composite_Equality): Use the new subprogram + Find_Primitive_Eq to search for the primitive of types whose underlying + type is a tagged type. + +2018-05-31 Yannick Moy + + * sem_prag.adb (Analyze_Pragma.Check_Loop_Pragma_Placement): Inverse + order of treatment between nodes recognized as loop pragmas (or + generated from one) and block statements. + +2018-05-31 Doug Rupp + + * libgnat/s-osprim__posix2008.adb (Clock): Implement using + clock_gettime. + +2018-05-31 Ed Schonberg + + * exp_unst.ads, exp_unst.adb (In_Synchronized_Unit): New predicate to + mark subprograms that cannot be eliminated because they must be treated + as reachable from outside the current unit. This includes entry bodies + and protected operations. + +2018-05-31 Ed Schonberg + + * exp_ch4.adb (Expand_Modular_Addition, Expand_Modular_Subtraction): + Convert all operands of the generated code to Standard.Unsigned, to + prevent spurious visibility errors. This is needed when the generated + expansion involves a modular index type of an array type, and the index + type is not immediately visible. + +2018-05-30 Piotr Trojanek + + * einfo.ads (Package_Instantiation): Update comment after a routine + that uses this field has been renamed. + +2018-05-30 Ed Schonberg + + * exp_ch11.adb (Replace_Raise_By_Goto): The transfomation is legal even + if the local raise statement includes a string expression. This + expression might be picked up by an outer handler or discarded, but + plays no role in this transformation. + +2018-05-30 Hristian Kirtchev + + * exp_aggr.adb, exp_unst.adb, freeze.adb, libgnat/a-direct.adb: Minor + reformatting. + +2018-05-30 Ed Schonberg + + * exp_unst.adb (Visit_Node): Handle the semantic Procedure_To_Call + field in relevant nodes: Allocate, Free, and return statements. + +2018-05-30 Ed Schonberg + + * exp_unst.adb (Visit_Node): Do not traverse a Component_Association + that has not been analyzed, as will be the case for a nested aggregate + that is expanded into individual assignments. + +2018-05-30 Justin Squirek + + * aspects.adb, aspects.ads: Register new aspect. + * par-prag.adb (Prag): Register new pragma. + * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing for new + aspect similar to Aspect_Max_Queue_Length. + * sem_prag.adb, sem_prag.ads (Analyze_Pragma): Register new pragma and + set it to use the same processing as Pragma_Max_Queue_Length. + * snames.ads-tmpl: Move definition of Name_Max_Entry_Queue_Depth so + that it can be processed as a pragma in addition to a restriction and + add an entry for the pragma itself. + +2018-05-30 Ed Schonberg + + * freeze.adb (Freeze_Object_Declaration): A pragma Thread_Local_Storage + is now legal on a variable of composite type initialized with an + aggregate that is fully static and requires no elaboration code. + * exp_aggr.adb (Convert_To_Positional): Recognize additional cases of + nested aggregates that are compile-time static, so they can be used to + initialize variables declared with Threqd_Local_Storage. + * doc/gnat_rm/implementation_defined_pragmas.rst: Add documentation on + Thread_Local_Storage. + * gnat_rm.texi: Regenerate. + +2018-05-30 Yannick Moy + + * sem_util.adb (Policy_In_Effect): Take into account CodePeer and + GNATprove modes. + +2018-05-30 Justin Squirek + + * libgnat/a-direct.adb, libgnat/a-direct.ads (Name_Case_Equivalence): + Add implementation. + (Start_Search): Modify to use Start_Search_Internal + (Start_Search_Internal): Add to break out an extra flag for searching + case insensative due to the potential for directories within the same + OS to allow different casing schemes. + * sysdep.c (__gnat_name_case_equivalence): Add as a default fallback + for when the more precise solution fails. + +2018-05-30 Hristian Kirtchev + + * checks.adb, exp_ch5.adb, exp_ch7.adb, exp_unst.adb, sem_eval.adb: + Minor reformatting. + +2018-05-30 Pascal Obry + + * libgnat/g-comlin.ads (Value_Callback, Define_Switch): New. + * libgnat/g-comlin.adb: Add corresponding implementation. + +2018-05-30 Gary Dismukes + + * sem_res.adb, sem_util.adb: Fix several typos. + +2018-05-30 Olivier Hainque + + * vx_crtbegin_attr.c (CTOR_ATTRIBUTE, DTOR_ATTRIBUTE): Empty. + (eh_registration_ctors, eh_registration_tors): New static variables, + forced in a .ctors/.dtors section, respectively, with priority. + +2018-05-30 Bob Duff + + * aspects.ads, contracts.adb, exp_util.adb, expander.adb, expander.ads, + freeze.adb, inline.adb, lib-xref.adb, sem.ads, sem_aggr.adb, + sem_attr.adb, sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_ch6.adb, + sem_ch8.adb, sem_dim.adb, sem_elab.adb, sem_res.adb, sem_res.ads, + sinfo.ads: Spell preanalysis, preanalyze correctly. + +2018-05-30 Bob Duff + + * libgnat/g-sestin.ads: Rework documentation comments. + +2018-05-30 Piotr Trojanek + + * errout.adb, exp_aggr.adb, exp_ch7.adb, exp_util.adb, lib.adb, + sem_ch13.adb, sem_ch4.adb, sem_res.adb, sem_util.adb + (Has_Original_Node): Refactor to use Is_Rewrite_Substitution. + +2018-05-30 Piotr Trojanek + + * sem_prag.adb (Analyze_Pragma): Remove conjuncts that are always true. + +2018-05-30 Hristian Kirtchev + + * sem_util.adb (Is_Atomic_Object): Cleaned up. Split the entity logic + in a separate routine. + (Is_Atomic_Object_Entity): New routine. + (Is_Atomic_Prefix): Cleaned up. + (Is_Synchronized_Object): Check that the object is atomic, or its type + is atomic. + (Object_Has_Atomic_Components): Removed. + * sem_util.ads (Is_Atomic_Object): Reword the comment on usage. + (Is_Atomic_Object_Entity): New routine. + +2018-05-30 Ed Schonberg + + * sem_ch3.adb (Access_Subprogram_Declaration): The flag + Needs_Activation_Record is only needed on a subprogram type, not on a + pointer to such. + * sem_res.adb (Resolve_Selected_Component): If the context type and the + component type are anonymous access to subprograms, use the component + type to obtain the proper value of Needs_Activation_Record flag for the + expression. + +2018-05-30 Eric Botcazou + + * gcc-interface/trans.c (gnat_to_gnu) : Add + comment about the memset case. + +2018-05-30 Bob Duff + + * exp_ch5.adb (Expand_Formal_Container_Element_Loop): Remove the code + to analyze the Elmt_Decl, because it gets analyzed in the wrong scope. + We need to analyze it as part of analyzing the block, so that if the + call to Element that initializes Elmt_Decl returns on the secondary + stack, the block will ss_mark/ss_release. This block is inside the + loop; we don't want to leak memory until the loop exits. The purpose + of analyzing Elmt_Decl first was to catch the error of modifying it, + which is illegal because it's a loop parameter. The above causes us to + miss that error. Therefore, we add a flag Is_Loop_Parameter, and set + it on the Element entity, so we end up with an E_Variable node with the + flag set. + * einfo.ads, einfo.adb (Is_Loop_Parameter): New flag. + * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Give the "assignment to loop + parameter not allowed" error if Is_Loop_Parameter. + * sem_util.adb (Is_Variable): Return False if Is_Loop_Parameter, to + trigger the call to Diagnose_Non_Variable_Lhs. + +2018-05-30 Arnaud Charlet + + * checks.adb (Apply_Scalar_Range_Check): + * sem_eval.adb (Check_Non_Static_Context, Out_Of_Range): Ignore out of + range values for System.Priority in CodePeer mode since the actual + target compiler may provide a wider range. + +2018-05-30 Ed Schonberg + + * exp_unst.adb: Search specification of main unit as well, for + unnesting. + +2018-05-30 Ed Schonberg + + * exp_ch7.adb (Check_Unnesting_Elaboration_Code): The statement part of + a package body that is a compilation unit may contain blocks that + declare local subprograms. In Subprogram_Unnesting Mode such + subprograms must be handled as nested inside the (implicit) elaboration + procedure that executes that statement part. To handle properly uplevel + references we construct that subprogram explicitly, to contain blocks + and inner subprograms, The statement part of the compilation unit + becomes a call to this subprogram. This is only done if blocks are + present in the statement list of the body. + +2018-05-30 Bob Duff + + * exp_ch7.adb: Minor comment fix. + +2018-05-30 Ed Schonberg + + * exp_unst.adb (Visit_Node): Handle properly subprogram instantiations + that have no corresponding body and appear as attributes of the + corresponding wrapper package declaration. + (Register_Subprogram): New subprogram, used for subprogram bodies and + for subprogram instantiations to enter callable entity into Subp table. + +2018-05-30 Hristian Kirtchev + + * libgnat/s-secsta.adb: Reimplement the secondary stack support. + * libgnat/s-secsta.ads: Update the documentation of all routines in the + public part of the package. Reimplement the private part of the + package to account for the new secondary stack structure. Add types + and subprograms for testing purposes. Add several documentation + sections. + +2018-05-30 Hristian Kirtchev + + * exp_aggr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb, exp_unst.adb, + exp_util.adb, exp_util.ads, libgnat/a-calcon.adb, libgnat/a-calcon.ads, + libgnat/s-os_lib.adb, repinfo.adb, sem_ch3.adb, sem_disp.adb, + sem_disp.ads, sem_util.adb: Minor reformatting. + +2018-05-30 Arnaud Charlet + + * gcc-interface/Makefile.in: Move special flags for Ada runtime files + from here... + * Makefile.rtl: ... to here. Update comments. Protect call to + "GCC_FOR_TARGET" in case target_os isn't defined. + +2018-05-30 Arnaud Charlet + + * gcc-interface/Makefile.in: Move target pair settings from here... + * Makefile.rtl: ... to here. + (setup-rts): New target. + +2018-05-29 Eric Botcazou + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Alphabetical + List of All Switches): Replace "modules" with "units". + (Subprogram Inlining Control): Likewise. + * gnat_ugn.texi: Regenerate. + * usage.adb (Usage): Fix description of -gnatn switch. + +2018-05-29 Arnaud Charlet + + * gcc-interface/Makefile.in: Fix typos. + +2018-05-29 Ed Schonberg + + * exp_ch7.adb (Build_Finalizer_Call): Attach to tree the reference to + the finalizer procedure in the At_End handler, for use in LLVM + generation. + +2018-05-29 Javier Miranda + + * exp_ch4.adb (Expand_N_Op_Eq, Expand_Composite_Equality): Use the new + subprogram Inherits_From_Tagged_Full_View to identify more reliably + untagged private types completed with a derivation of an untagged + private whose full view is a tagged type. + * sem_util.ads, sem_util.adb (Inherits_From_Tagged_Full_View): New + subprogram. + (Collect_Primitive_Operations): Handle untagged private types completed + with a derivation of an untagged private type whose full view is a + tagged type. In such case, collecting the list of primitives we may + find two equality primitives: one associated with the untagged private + and another associated with the ultimate tagged type (and we must + remove from the returned list this latter one). + +2018-05-29 Ed Schonberg + + * exp_unst.adb (Visit_Node): Handle statement sequences that include an + At_End handler. + +2018-05-29 Eric Botcazou + + * repinfo.adb (List_Entities): Also recurse into blocks without label. + +2018-05-29 Ed Schonberg + + * exp_ch6.adb (Expand_N_Subprogram_Body): Do not generate push/pop for + exceptions if subprogram unnesting is in effect, because these branch + nodes are relevant only in the presence of nested subprograms. + +2018-05-29 Ed Schonberg + + * libgnat/s-fatgen.adb (Succ, Pred): Raise Constraint_Error + unconditionally when applied to the largest positive (resp. largest + negative) value of a floating-point type. + +2018-05-29 Ed Schonberg + + * einfo.ads, einfo.adb: Clarify use of Activation_Record_Component: + discriminants and exceptions are never components of such. The flag + Needs_Activation_Record is set on subprogram types, not on access to + them. + +2018-05-29 Ed Schonberg + + * sem_ch3.adb: Set scope of component of subtype. + +2018-05-29 Ed Schonberg + + * exp_unst.adb (Visit_Node): Exclude selected components whose prefix + carry no type. Such selected components appear in unit names that are + child units, both in the specification and possibly in an end label for + the unit, and they do not contain any relevant uplevel references. + +2018-05-29 Arnaud Charlet + + * libgnat/a-calend.ads, libgnat/a-calend.adb (Epoch_Offset): Make it a + function. + +2018-05-29 Olivier Hainque + + * libgnat/system-vxworks7-ppc-rtp.ads: New file. + * libgnat/system-vxworks7-ppc-kernel.ads: New file. + * libgnat/system-vxworks7-e500-rtp.ads: New file. + * libgnat/system-vxworks7-e500-kernel.ads: New file. + * libgnat/system-vxworks7-x86-rtp.ads: New file. + * libgnat/system-vxworks-ppc64-kernel.ads: Rename as ... + * libgnat/system-vxworks7-ppc64-kernel.ads: and adjust name of + gnat-crtbe link spec to use the vx7 variant. + +2018-05-29 Olivier Hainque + + * vx_crtbegin.inc: Use a consistent naming convention for the + registration/deregistration functions across RTP or kernel. Remove the + ctor/dtor attribute setting based on RTP/kernel, expect the optional + attribute extension to be provided by includers instead. + * vx_crtbegin.c: Mere inclusion of vx_crtbegin.inc with empty attribute + extension for the registration/deregistration functions. + * vx_crtbegin_attr.c: New file. Include vx_crtbegin.inc with explicit + constructor/destructor attribute extensions. + * vx_crtbegin_array.c: New file. Include vx_crtbegin.inc with empty + attribute extensions and declare _ctors/_dtors arrays. + * vx_crtbegin_auto.c: Remove. + * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Use + vxworks7-gnat-crtbe-link.spec. + * libgnat/system-vxworks7-aarch64.ads: Likewise. + * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise. + * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise. + * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise. + * libgnat/system-vxworks7-x86-kernel.ads: Likewise. + * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise. + * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise. + * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise. + +2018-05-29 Piotr Trojanek + + * ali.adb: Minor reformatting. + +2018-05-29 Joel Brobecker + + * doc/gnat_ugn/platform_specific_information.rst: Update package + requirements for 32bit GNAT on x86_64-linux. + * gnat_ugn.texi: Regenerate. + +2018-05-29 Eric Botcazou + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Debugging + Control): Adjust description of -gnatRj. + * gnat_ugn.texi: Regenerate. + * opt.ads (List_Representation_Info_To_JSON): Likewise. + * repinfo.adb (List_Rep_Info): Do not automatically create a file + if List_Representation_Info_To_JSON is true. + * switch-c.adb (Scan_Front_End_Switches) : Remove incompatibility + check between -gnatRj and -gnatRs. + * usage.adb (Usage): Adjust description of -gnatRj. + +2018-05-29 Pascal Obry + + * libgnat/s-os_lib.adb (Normalize_Pathname): Fix handling of ".." in + the root directory. + +2018-05-29 Pascal Obry + + * libgnat/s-os_lib.adb: Minor reformatting. + +2018-05-29 Doug Rupp + + * libgnat/a-calend.adb (Epoch_Offset): Move from body to ... + * libgnat/a-calend.ads (Epoch_Offset): to private part of spec + * libgnat/a-calcon.ads (To_Unix_Nano_Time): New function spec. + * libgnat/a-calcon.adb (To_Unix_Nano_Time): New function body. + +2018-05-29 Eric Botcazou + + * repinfo.ads (JSON format): Document new pair for components. + * repinfo.adb (Derived_Discriminant): New function. + (List_Structural_Record_Layout): Add Outer_Ent parameter and pass it + in recursive calls. If the record type is the parent of an extension, + find and list the derived discriminant from the extension, if any. + (List_Component_Layout): List the Discriminant_Number in JSON mode. + (List_Record_Info): Adjust call to List_Structural_Record_Layout. + +2018-05-29 Eric Botcazou + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Alphabetical + List of All Switches): Document -gnatRj. + (Debugging Control): Likewise. + * gnat_ugn.texi: Regenerate. + * opt.ads (List_Representation_Info_To_JSON): New boolean variable. + * osint-c.adb (Create_Repinfo_File): Use the .json instead of .rep + extension if List_Representation_Info_To_JSON is true. + * repinfo.ads: Document the JSON output format. + * repinfo.adb (List_Location): New procedure. + (List_Array_Info): Add support for JSON output. + (List_Entities): Likewise. + (Unop): Likewise. + (Binop): Likewise. + (Print_Expr): Likewise. + (List_Linker_Section): Likewise. + (List_Mechanisms): Likewise. + (List_Name): Likewise. + (List_Object_Info): Likewise. + (List_Record_Info): Likewise. + (List_Component_Layout): Likewise. Add Indent parameter. + (List_Structural_Record_Layout): New procedure. + (List_Attr): Add support for JSON output. + (List_Type_Info): Likewise. + (Write_Unknown_Val): Likewise. + * switch-c.adb (Scan_Front_End_Switches) : Deal with 'j'. + * usage.adb (Usage): List -gnatRj. + +2018-05-29 Eric Botcazou + + * repinfo.adb (List_Component_Layout): New procedure extracted from... + (List_Record_Layout): ...here. Invoke it. + +2018-05-29 Eric Botcazou + + * repinfo.adb (Write_Unknown_Val): New procedure. + (List_GCC_Expression): Call it. + (List_Record_Layout): Likewise. + (Write_Val): Likewise. + +2018-05-29 Richard Kenner + + * exp_ch4.adb (Expand_N_Op_Abs): Clear Do_Overflow_Check when inserting + code to do check. + +2018-05-29 Arnaud Charlet + + * lib-writ.adb (Write_ALI): Do not use new function from s-casuti yet. + This breaks build of cross compilers with older versions of GNAT, so + better avoid it. + +2018-05-29 Doug Rupp + + * libgnarl/s-taprop.ads (Monotonic_Clock): Refine documentation to + reflect reality. + +2018-05-29 Richard Kenner + + * exp_ch4.adb (Expand_N_Op_Abs): Always do range check against 'First. + +2018-05-29 Eric Botcazou + + * repinfo.adb (List_Entities): Do not list the Linker_Section for + subprograms here... + (List_Mechanisms): ...but here instead. Use consistent name output + and formatting conventions. + +2018-05-29 Bob Duff + + * lib-writ.adb (Write_ALI): Cleanup: avoid use of global var; call new + To_Lower function. + * libgnat/s-casuti.ads, libgnat/s-casuti.adb (To_Upper, To_Lower, + To_Mixed): New functions. + * osint.adb: Cleanup: use Is_Directory_Separator, which correctly + allows both '\' and '/' on Windows. + +2018-05-28 Eric Botcazou + + * repinfo.ads: Minor fixes and tweaks in comments. + +2018-05-28 Eric Botcazou + + * repinfo.adb (List_GCC_Expression): Remove Valop and replace calls to + it with calls to Unop. + +2018-05-28 Eric Botcazou + + * repinfo.ads (TCode): Adjust range. + (Truth_Andif_Expr): Remove. + (Truth_Orif_Expr): Likewise. + (Truth_And_Expr .. Dynamic_Val): Adjust value. + * repinfo.adb (Print_Expr): Remove handling of Truth_{And,Or}if_Expr. + (Rep_Value): Likewise. + * repinfo.h (Truth_Andif_Expr): Remove. + (Truth_Orif_Expr): Likewise. + (Truth_And_Expr .. Dynamic_Val): Adjust value. + * gcc-interface/decl.c (annotate_value) : Fall + through to TRUTH_AND_EXPR case. + : Fall through to TRUTH_OR_EXPR case. + +2018-05-28 Ed Schonberg + + * exp_unst.adb (Visit_Node): For indexed components and attribute + references, examine index expressions or associated expressions as well + to record uplevel references. + (Vist_Node): For function and procedure calls, if a formal is an + unconstrained array and the actual is constrained, check whether bounds + of actual have uplevel references. + +2018-05-28 Ed Schonberg + + * einfo.ads, einfo.adb: Exceptions can be uplevel references, and thus + they can appear as components of activation records. + * exp_unst.adb (Visit_Node): A reference to an exception may be an + uplevel reference. + +2018-05-28 Eric Botcazou + + * exp_ch4.adb (Expand_Composite_Equality): Compute whether the size + depends on a discriminant manually instead of using the predicate + Size_Depends_On_Discriminant in the array type case. + +2018-05-28 Ed Schonberg + + * exp_unst.adb (Check_Static_Type): For a record subtype, check + discriminant constraints as well. + (Visit_Node): For a selected component, check type of prefix, as is + done for indexed components and slices. + +2018-05-28 Javier Miranda + + * exp_ch4.adb (Real_Range_Check): Add a temporary to store the integer + value when converting a float value to a fixed-point value. This is + required for CCG because it handles fixed-point types by means of + unsigned integer type variables. The range check is now performed using + the integer value stored in this temporary. + +2018-05-28 Yannick Moy + + * sem_util.adb (Is_OK_Volatile_Context): Add attributes First, Last and + Length as valid non-interfering contexts for SPARK. + +2018-05-28 Claire Dross + + * sem_disp.ads, sem_disp.adb (Inheritance_Utilities): Package for + generic inheritance utilities. + (Generic_Inherited_Subprograms): Generic version of + Inherited_Subprograms, generic in Find_Dispatching_Type function. + (Generic_Is_Overriding_Subprogram): Generic version of + Is_Overriding_Subprogram, generic in Find_Dispatching_Type function. + (Inherited_Subprograms): Instance of Generic_Inherited_Subprograms with + Sem_Disp.Find_Dispatching_Type. + (Is_Overriding_Subprogram): Instance of + Generic_Is_Overriding_Subprogram with Sem_Disp.Find_Dispatching_Type. + (Inheritance_Utilities_Inst): Instance of Inheritance_Utilities + with Sem_Disp.Find_Dispatching_Type. + +2018-05-28 Eric Botcazou + + * exp_ch4.adb (Expand_Composite_Equality): For a composite (or FP) + component type, do not expand array equality using the unconstrained + base type, except for the case where the bounds of the type depend on a + discriminant. + +2018-05-28 Ed Schonberg + + * einfo.ads, einfo.adb (Needs_Activation_Record): New flag on + access-to-subprogram types, to indicate that an indirect call through + such a type requires an activation record when compiling for LLVM. + * sem_ch3.adb (Access_Subprogram_Declaration): Set new flag as needed. + +2018-05-28 Ed Schonberg + + * exp_ch4.adb (Real_Range_Check): Specialize float-to-fixed conversions + when bounds of fixed type are static, to remove some spuerfluous + implicit conversions and provide an accurate result when converting + back and forth between the fixed point type and a floating point type. + +2018-05-28 Ed Schonberg + + * exp_unst.adb (Unnest_Subprogram): Prevent creation of empty + activation records. + +2018-05-28 Richard Kenner + + * exp_unst.adb (Check_Static_Type): Add argument to indicate node to be + replaced, if any; all callers changed. + (Note_Uplevel_Ref): Likewise. Also replace reference to deferred + constant with private view so we take the address of that entity. + (Note_Uplevel_Bound): Add argument to indicate node to be replaced, if + any; all callers changed. Handle N_Indexed_Component like + N_Attribute_Reference. Add N_Type_Conversion case. + (Visit_Node): Indexed references can be uplevel if the type isn't + static. + (Unnest_Subprograms): Don't rewrite if no reference given. If call has + been relocated, set first_named pointer in original node as well. + +2018-05-28 Ed Schonberg + + * exp_aggr.adb (Flatten): Copy tree of expression in a component + association with a range or a set of discrete choices, rather than + relocating the node. This avoids inconsistencies in the tree when + handling nested subprograms with uplevel references for LLVM. + +2018-05-28 Arnaud Charlet + + * exp_util.adb (Possible_Bit_Aligned_Component): Always return False in + codepeer mode. + +2018-05-28 Arnaud Charlet + + * exp_unst.adb: Fix typo. + +2018-05-28 Bob Duff + + * libgnat/a-convec.adb (Query_Element): Minor cleanup: remove an + unnecessary use of 'Unrestricted_Access. + +2018-05-28 Hristian Kirtchev + + * repinfo.adb (Expr_Value_S): New routine. + (List_Linker_Section): Properly extract the value of the section + argument. + +2018-05-28 Patrick Bernardi + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update the + description of the -D binder switch to reflect current usage. + * gnat_ugn.texi: Regenerate. + +2018-05-28 Gary Dismukes + + * exp_ch3.adb: Minor reformatting + +2018-05-28 Justin Squirek + + * exp_ch3.adb + (Build_Initialization_Call): Add logic to pass the appropriate actual to match + new formal. + (Init_Formals): Add new formal *_skip_null_excluding_check + * exp_util.adb, exp_util.ads + (Enclosing_Init_Proc): Added to fetch the enclosing Init_Proc from the current + scope. + (Inside_Init_Proc): Refactored to use Enclosing_Init_Proc + (Needs_Conditional_Null_Excluding_Check): Added to factorize the predicate + used to determine how to generate an Init_Proc for a given type. + (Needs_Constant_Address): Minor reformatting + * sem_res.adb + (Resolve_Null): Add logic to generate a conditional check in certain cases + +2018-05-28 Hristian Kirtchev + + * exp_aggr.adb, gnatlink.adb, sem_ch6.adb, sem_res.adb, sem_util.adb: + Minor reformatting. + +2018-05-28 Hristian Kirtchev + + * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Include + the declarations of single concurrent types because they fall in the + category of full type and object declarations. + +2018-05-28 Eric Botcazou + + * repinfo.adb (Compute_Max_Length): Skip _Parent component. + (List_Record_Layout): Likewise. + +2018-05-28 Ed Schonberg + + * sem_util.adb (Is_Function_Result): Add a warning if a postcondition + includes a call to function to which it applies. This may mean an + omission of an attribute reference 'Result, in particular if the + function is pqrameterless. + +2018-05-28 Justin Squirek + + * sem_ch8.adb (Find_Expanded_Name): Add extra guard to make sure the + misresolved package name is not a case of mistaken identity. + +2018-05-28 Yannick Moy + + * sem_res.adb (Resolve_Range): Re-resolve the low bound of a range in + GNATprove mode, as the order of resolution (low then high) means that + all the information is not available when resolving the low bound the + first time. + +2018-05-28 Eric Botcazou + + * repinfo.adb (List_Array_Info): Start with an explicit blank line and + end with the linker section, if any. + (List_Entities): Do not output the linker section for record types, + array types and variables. + (Print_Expr): Factor out common processing for unary operators and + special values. Adjust and reorder the various cases. + (List_Object_Info): End with the linker section, if any. + (List_Record_Info): Likewise. + (List_Type_Info): Do not start with a blank line. + +2018-05-25 Nicolas Roche + + * libgnat/s-valrea.adb (Scan_Real): Abort computation once it is sure + that the result will be either -infinite or +infinite. + +2018-05-25 Patrick Bernardi + + * libgnat/s-parame.ads, libgnat/s-parame__vxworks.ads, + libgnat/s-parame__ae653.ads, libgnat/s-parame__hpux.ads (Size_Type): + Expand range of type to match the address space of the target. + (Task_Storage_Size): Remove unused type. + +2018-05-25 Ed Schonberg + + * sem_res.adb (Set_Mixed_Mode_Operand): If the operand is an expression + of a fixed point type and the parent is a multiplying operation, + resolve the operand with its own type because the context will impose a + resulting type on the result of the multiplication by means of + approriate conversion. + +2018-05-25 Hristian Kirtchev + + * exp_ch3.adb (Default_Initialize_Object): Ensure that the analysis of + the in-place initialization aggregate created for pragmas + Initialize_Scalars or Normalize_Scalars is performed with checks + suppressed. + +2018-05-25 Arnaud Charlet + + * exp_aggr.adb (Convert_To_Positional): Bump default for + Max_Others_Replicate to 32. Update comments. + * osint.ads (Unknown_Attributes): No longer pretend this is a constant. + (No_File_Info_Cache): Initialize separately. + * osint.adb (No_File_Info_Cache): Update initializer. + +2018-05-25 Javier Miranda + + * sem_res.adb (Resolve_Membership_Op): Allow the use of the membership + test when the left operand is a class-wide interface and the right + operand is not a class-wide type. + * exp_ch4.adb (Tagged_Membership): Adding support for interface as the + left operand. + +2018-05-25 Ed Schonberg + + * exp_aggr.adb (Flatten): A quantified expression cannot be duplicated + in an others clause to prevent visibility issues with the generated + loop variable. + (Component_OK_For_Backend): Return false for a quantified expression. + (Check_Static_Component): Ditto. + +2018-05-25 Hristian Kirtchev + + * libgnat/s-secsta.adb (SS_Allocate): Reimplemented. + (SS_Allocate_Dynamic): New routine. The allocation logic is now split + into three distring cases rather than in one loop which attempts to + handle all three cases. This rewrite eliminates an issue where the last + frame of the stack cannot be freed, thus causing the memory range of a + new frame to approach the overflow point of the memory index type. + Since the overflow is logically treated as a + too-much-memory-on-the-stack scenario, it causes a bogus Storage_Error. + (SS_Allocate_Static): New routine. The routine factorizes the static + secondary stack-related code from the former SS_Allocate. + +2018-05-25 Sergey Rybin + + * doc/gnat_ugn/gnat_and_program_execution.rst: Add description of '-U' + option for gnatelim. + +2018-05-25 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not create + Class_Wide_Clone_Body when analyzing a subprogram_body_stub: the clone + is created when the proper body of the stub is analyzed. + * sem_util.adb (ZBuild_Class_Wide_Clone_Body): If the subprogram body + is the proper body of a subunit, the cloned body must be inserted in + the declarative list that contains the stub. + +2018-05-25 Justin Squirek + + * exp_ch6.adb (Expand_Simple_Function_Return): Add guard in check to + generate code for 6.5(8-10) so that we don't get an assertion error + when dealing with an incomplete return type. + +2018-05-25 Arnaud Charlet + + * pprint.adb (Expression_Name): Strip too long expressions to avoid + carrying very large strings. + +2018-05-25 Patrick Bernardi + + * switch-b.adb (Scan_Binder_Switches): binder switch -Q accepts Natural + numbers. + +2018-05-25 Doug Rupp + + * tracebak.c (aarch64-linux): Implement. + +2018-05-25 Justin Squirek + + * sem_ch8.adb: Minor reformatting. + +2018-05-25 Piotr Trojanek + + * sem_util.adb (Iterate_Call_Parameters): Fix code convention and + assertions. + +2018-05-25 Hristian Kirtchev + + * einfo.adb, einfo.ads, exp_ch3.adb, exp_ch8.adb, exp_unst.adb, + pprint.adb, sem_ch12.adb, sem_ch3.adb, sem_prag.adb, sem_util.adb: + Minor reformatting. + +2018-05-25 Ed Schonberg + + * sem_ch12.adb (Instance_Exists): New function, subsidiary of + Validate_Derived_Type_Instance, to verify that all interfaces + implemented by the formal type are also implemented by the actual. The + verification is complicated when an interface of the formal is declared + in a generic unit and the actual is declared in an instance of it. + There is currently no mechanism to relate an interface declared within + a generic to the corresponding interface in an instance, so we must + traverse the list of interfaces of the actual, looking for a name + match, and verifying that that interface is declared in an instance. + +2018-05-25 Piotr Trojanek + + * sem_util.adb (Iterate_Call_Parameters): Rewrite with extra + assertions; replace function versions of Next_Formal/Next_Actual with + their procedural versions (which are more concise). + +2018-05-25 Doug Rupp + + * libgnarl/s-osinte__aix.ads, libgnarl/s-osinte__android.ads, + libgnarl/s-osinte__darwin.ads, libgnarl/s-osinte__freebsd.ads, + libgnarl/s-osinte__hpux.ads, libgnarl/s-osinte__kfreebsd-gnu.ads, + libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__lynxos178e.ads, + libgnarl/s-osinte__qnx.ads, libgnarl/s-osinte__rtems.ads + (Relative_Timed_Wait): Remove. + * libgnarl/s-tpopmo.adb (Timed_Sleep, Timed_Delay): Rewrite to allow + for incremental looping. Remove references to Rel_Time and + Relative_Timed_Wait. + * libgnat/s-osprim__posix.adb, libgnat/s-osprim__posix2008.adb + (Timed_Delay): Make separate. + * libgnat/s-optide.adb: New separate procedure. + * libgnat/s-osprim.ads (Max_System_Delay): New constant. + * libgnat/s-osprim__lynxos.ads (Max_Sensible_Delay): Set to 6 months. + (Max_System_Delay): New constant. + +2018-05-25 Ed Schonberg + + * sem_ch12.adb (Validate_Derived_Type_Instance): Verify that the actual + for a formal derived type implements all the interfaces declared for + the formal. + +2018-05-25 Yannick Moy + + * sem_prag.adb (Check_Applicable_Policy): Deal specially with CodePeer + and GNATprove modes when applicable policy is Ignore. + +2018-05-25 Eric Botcazou + + * freeze.adb (Freeze_Enumeration_Type): Do not give integer size to a + boolean type with convention C. + * libgnat/i-cexten.ads (bool): Change to boolean with convention C. + * gcc-interface/decl.c (gnat_to_gnu_entity): Add new local variable + FOREIGN and use it throughout the function. + : Set precision 1 on boolean types with foreign + convention. + : Likewise for subtypes. + : Force the size of a storage unit on empty classes. + * gcc-interface/utils.c (make_type_from_size) : Skip + boolean types with precision 1 if the size is the expected one. + +2018-05-25 Arnaud Charlet + + * pprint.adb (Expression_Name): Do not print non ASCII characters. + +2018-05-25 Bob Duff + + * libgnat/a-strunb__shared.ads, libgnat/a-stwiun__shared.ads, + libgnat/a-stzunb__shared.ads: (Initialize, Adjust): Add pragma Inline. + +2018-05-25 Bob Duff + + * sem_util.ads: Minor comment fix. + +2018-05-25 Ed Schonberg + + * exp_unst.adb (Visit_Node): Restrict check for uplevel references in + prefixes of array attributes, to prefixes that are entity names whose + type is constrained. + (Note_Uplevel_Bound): Verify that the bound is declared in an enclosing + subprogram, as itype created for loops in pre/postcondition may appear + in loops at the library level. + +2018-05-25 Ed Schonberg + + * sem_ch13.adb (Build_Predicate_Functions): The predicate function + declaration is inserted into the tree and analyzed at that point, so + should not be reinserted when the body is constructed. Inside a + generic, ensure that the body is not inserted twice in the tree. + +2018-05-25 Yannick Moy + + * sem_prag.adb (Check_Grouping): Modify test to ignore statements and + declarations not coming from source. + +2018-05-25 Fedor Rybin + + * doc/gnat_ugn/gnat_utility_programs.rst: Document new switch + --copy-environment for gnattest. + +2018-05-24 Piotr Trojanek + + * sem_elab.adb (Non_Private_View): Simplify by removing a local Result + variable. + * sem_prag.adb (Get_Base_Subprogram): Same as above. + +2018-05-24 Eric Botcazou + + * fe.h (Set_Normalized_First_Bit): Declare. + (Set_Normalized_Position): Likewise. + * repinfo.adb (List_Record_Layout): Do not use irregular output for a + variable position. Fix minor spacing issue. + * gcc-interface/decl.c (annotate_rep): If a field has a variable + offset, compute the normalized position and annotate it in addition to + the bit offset. + +2018-05-24 Eric Botcazou + + * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): + Constify and rename variables. Fix formatting. + (gnat_to_gnu) : Minor tweak. + : Likewise. + +2018-05-24 Javier Miranda + + * exp_ch8.adb (Build_Body_For_Renaming): Adding support to build the + body of a variant record equality renaming. + (Expand_N_Subprogram_Renaming_Declaration): Adapt the code to the new + implementation of Build_Body_For_Renaming. + * exp_ch3.ads (Build_Variant_Record_Equality): New library level + function that factorizes the functionality needed by + Build_Body_For_Renaming and Expand_Freeze_Record_Type to build the body + of a variant record equality subprogram. + * exp_ch3.adb (Build_Variant_Record_Equality): New subprogram. + (Build_Variant_Record_Equality): New local procedure of + Expand_Freeze_Record_Type containing all the code specific for freezing + the record type that cannot be place in the new library level function. + +2018-05-24 Ed Schonberg + + * einfo.ads, einfo.adb (Is_Activation_Record): New flag on + in_parameters, used when unesting subprograms for LLVM, to indicate + that a generated parameter carries the activation record from the + enclosing subprogram. + * exp_unst.adb (Check_Static_Type): Handle array attributes of types + whose bounds may contain up-level references that need to be added to + an activation recoord. + (Add_Extra_Formal): Set Is_Activation_Record on new formal. + +2018-05-24 Yannick Moy + + * pprint.adb (Expression_Image): Improve the printing of expressions, + by taking more cases into account, in particular qualified expressions + and aggregates. Also count more the number of parentheses to close + after the expression. + +2018-05-24 Javier Miranda + + * sem_ch3.adb (Is_Visible_Component): For untagged types add missing + check for renamed discriminants. + * sem_ch4.adb (Analyze_Overloaded_Selected_Component, + Analyze_Selected_Component, Check_Misspelled_Selector): For calls to + Is_Visible_Component pass the associated selector node to allow + checking renamed discriminants on untagged types. + +2018-05-24 Ed Schonberg + + * sem_ch8.adb (Analyze_Use_Type): Do not assign the Prev_Use_Clause + link to a use_type clause if this would cause an infinite loop in the + machinery that detects redundant use clauses. This may happen when the + redundant clauses appear in the context of a child unit and the context + of its parent. + +2018-05-24 Piotr Trojanek + + * sinfo.ads: Fix grammar in comment. + +2018-05-24 Justin Squirek + + * einfo.ads, einfo.adb (Append_Entity): Modified to use Link_Entities + and manage doubly-linked entity chain. + (Nested_Scenarios): Removed entity field used for optimization during + elaboration to make room for the new field Prev_Entity. + (Link_Entities): Added to replace redundant calls to Set_Next_Entity + and Set_Prev_Entity as well as centralize changes to the entity chain. + (Predicated_Parent): Modified to use Node38. + (Prev_Entity): Added to fetch new node field Prev_Entity in all entity + types. + (Remove_Entity): Moved from sem_util. + (Set_Nested_Scenarios): Deleted. + (Set_Predicated_Parent): Modified to use Node38. + (Set_Prev_Entity): Added to set Prev_Entity field. + (Set_Validated_Object): Modified to use Node38. + (Unlink_Next_Entity): Added to process Prev_Entity when an unlinking + action is required. + (Validated_Object): Modified to use Node38. + (Write_Field36_Name): Remove Nested_Scenarios, Validated_Object, and + predicated parent cases. + (Write_Field38_Name): Add predicated parent and Validated_Object cases. + * sem_ch3.adb (Process_Subtype): Add guard to protect against + inappropriate marking of Predicated_Parent to non-itype subtypes. + (Make_Class_Wide_Type): Preserve Prev_Entity field and set in new type. + (Copy_And_Swap): Add setting of Prev_Entity. + (Build_derived_Record_Type): Replace Set_Next_Entity w/ Link_Entities. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Replace Set_Next_Entity + w/ Link_Entities. + (New_Overloaded_Entity): Remove block created to search for previous + entities in the entity chain with relevant calls to Prev_Entity as well + as replace duplicated code from Remove_Entity_And_Homonym with a call + to that subprogram. + * sem_ch7.adb (Exchange_Declarations): Replace Set_Next_Entity w/ + Link_Entities. + * sem_elab.adb (Find_And_Process_Nested_Scenarios): Remove global and + initial subprogram declarations related to Nested_Scenarios. + (Process_Nested_Scenarios): Deleted. + (Save_Scenario): Deleted. + (Traverse_Body): Remove optimization for Nested_Scenarios so as to free + node space in the entity tree. + * sem_util.adb, sem_util.ads (Remove_Entity): Moved to einfo. + (Remove_Entity_And_Homonym): Added to separate functionality of + Remove_Entity from the homonym chain directly. + * exp_attr.adb (Expand_N_Attribute_Reference): Replace Set_Next_Entity + w/ Link_Entities and Unlink_Next_Entity. + * exp_ch3.adb (Expand_N_Object_Declaration): Replace Set_Next_Entity w/ + Link_Entities. + * exp_ch6.adb (Replace_Renaming_Declaration_Id): Replace + Set_Next_Entity w/ Link_Entities. + * exp_disp.adb (Expand_Dispatching_Call): Replace Set_Next_Entity w/ + Link_Entities and Unlink_Next_Entity. + * exp_spark.adb (Expand_SPARK_N_Object_Renaming_Declaration): Replace + call to Remove_Entity with its new incarnation. + * exp_util.adb (New_Class_Wide_Subtype): Add setting of Prev_Entity. + * freeze.adb (Freeze_Record_Type): Replace Set_Next_Entity w/ + Link_Entities. + +2018-05-24 Hristian Kirtchev + + * sem_ch10.adb (Expand_Limited_With_Clause): Update the call to + Install_Limited_Withed_Unit. + (Expand_With_Clause): Update the call to Install_Withed_Unit. + (Implicit_With_On_Parent): Update the call to Install_Withed_Unit. + (Install_Context_Clauses): Update the call to Install_Withed_Unit. + (Install_Limited_Context_Clauses): Update the calls to + Install_Limited_Withed_Unit. + (Install_Limited_Withed_Unit): Renamed to better illustrate its + purpose. + (Install_Private_With_Clauses): Update the calls to Install_Withed_Unit + and Install_Limited_Withed_Unit. + (Install_With_Clause): Uninstall a limited with clause if a [private] + with clause is given for the same package. + (Install_Withed_Unit): Renamed to better illustrate its purpose. + (Remove_Limited_With_Unit): New routine. + +2018-05-24 Eric Botcazou + + * raise-gcc.c (__gnat_SEH_error_handler): Remove prototype. + (__gnat_personality_seh0): Adjust and beef up comments, and + fix formatting throughout. + (__gnat_adjust_context): Deal minimally with version 2. + * seh_init.c (__gnat_map_SEH): Fix formatting. + (_gnat_SEH_error_handler): Adjust comments. + (__gnat_install_SEH_handler): Fix formatting. + +2018-05-24 Hristian Kirtchev + + * exp_ch7.adb, sem_ch3.adb, sem_res.adb: Minor reformatting. + +2018-05-24 Ed Schonberg + + * exp_aggr.adb (Flatten): Add a warning on an others clause in an array + aggregate with static bounds when named associations cover all index + positions and the others clause is redundant. + +2018-05-24 Raphael Amiard + + * libgnat/a-cohama.ads: Add documentation. + +2018-05-24 Raphael Amiard + + * libgnat/a-convec.ads: Add documentation. + +2018-05-24 Justin Squirek + + * exp_ch3.adb (Expand_N_Object_Declaration): Ignore raising an error in + expansion for limited tagged types when the node to be expanded is a + raise expression due to it not representing a valid object. + * exp_ch5.adb (Expand_N_Assignment_Statement): Add exception to error + message regarding assignments to limited types to ignore genereated + code. + +2018-05-24 Hristian Kirtchev + + * exp_util.adb (New_Class_Wide_Subtype): Capture and restore relevant + Ghost-related attributes of the class-wide subtype because the copy + clobbers them. + +2018-05-24 Justin Squirek + + * sem_res.adb (Resolve_Entity_Name): Add guard to protect against + marking use clauses as effective when the reference appears within + generated code. + +2018-05-24 Cyrille Comar + + * doc/gnat_rm/the_gnat_library.rst: Fix typos. + * gnat_rm.texi: Regenerate. + +2018-05-24 Bob Duff + + * exp_ch7.adb (Expand_Cleanup_Actions): Create a mark unconditionally + for build-in-place functions with a caller-unknown-size result. + (Create_Finalizer): For build-in-place functions with a + caller-unknown-size result, check at run time whether we need to + release the secondary stack. + +2018-05-24 Hristian Kirtchev + + * sem_prag.adb (Analyze_Pragma): Use the full view of an internally + generated incomplete type. + +2018-05-24 Hristian Kirtchev + + * expander.adb (Expand): Update the save and restore of the Ghost + region. + * exp_ch3.adb (Freeze_Type): Likewise. + * exp_disp.adb (Make_DT): Likewise. + * exp_util.adb (Build_DIC_Procedure_Body): Likewise. + (Build_DIC_Procedure_Declaration): Likewise. + (Build_Invariant_Procedure_Body): Likewise. + (Build_Invariant_Procedure_Declaration): Likewise. + (Make_Predicate_Call): Likewise. + * freeze.adb (Add_To_Result): Insert the freeze action of a living + entity prior to the start of the enclosing ignored Ghost region. + (Freeze_Entity): Update the save and restore of the Ghost region. + * ghost.adb (Install_Ghost_Mode): Reimplemented. + (Install_Ghost_Region): New routine. + (Mark_And_Set_Ghost_Assignment): Install a region rather than a mode. + (Mark_And_Set_Ghost_Body): Likewise. + (Mark_And_Set_Ghost_Completion): Likewise. + (Mark_And_Set_Ghost_Declaration): Likewise. + (Mark_And_Set_Ghost_Instantiation): Likewise. + (Mark_And_Set_Ghost_Procedure_Call): Likewise. + (Name_To_Ghost_Mode): New routine. + (Restore_Ghost_Region): New routine. + * ghost.ads (Install_Ghost_Region): New routine. + (Restore_Ghost_Region): New routine. + * opt.ads: Add new global variable Ignored_Ghost_Region. + * rtsfind.adb (Load_RTU): Update the save and restore of the Ghost + region. Install a clean region. + * sem.adb (Analyze): Likewise. + (Do_Analyze): Likewise. + * sem_ch3.adb (Analyze_Object_Declaration): Likewise + (Derive_Progenitor_Subprograms): Use local variable Iface_Alias to + capture the ultimate alias of the current primitive. + (Process_Full_View): Update the save and restore of the Ghost region. + Do not inherit DIC and invariant procedures. + * sem_ch5.adb (Analyze_Assignment): Update the save and restore of the + Ghost region. + * sem_ch6.adb (Analyze_Procedure_Call): Likewise. + (Analyze_Subprogram_Body_Helper): Likewise. + * sem_ch7.adb (Analyze_Package_Body_Helper): Likewise. + * sem_ch12.adb (Analyze_Package_Instantiation): Likewise. + (Analyze_Subprogram_Instantiation): Likewise. + (Instantiate_Package_Body): Likewise. + (Instantiate_Subprogram_Body): Likewise. + * sem_ch13.adb (Build_Predicate_Functions): Likewise. + (Build_Predicate_Function_Declaration): Likewise. + * sem_disp.adb + (Add_Dispatching_Operation): Do not consider DIC and invariant + procedures. + (Check_Dispatching_Operation): Use Add_Dispatching_Operation to collect + a dispatching subprogram. + (Check_Operation_From_Private_View): Likewise. + (Override_Dispatching_Operation): Likewise. + * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Update the save + and restore of the Ghost region. + (Analyze_Initial_Condition_In_Decl_Part): Likewise. + (Analyze_Pragma): Update the save and restore of the Ghost region. + (Analyze_Pre_Post_Condition_In_Decl_Part): Likewise. + * sem_util.adb (Is_Suitable_Primitive): New routine. + * sem_util.ads (Is_Suitable_Primitive): New routine. + * sinfo.ads: Update the section of Ghost regions. + +2018-05-24 Piotr Trojanek + + * doc/gnat_rm/implementation_defined_pragmas.rst (Contract_Cases): + Change "condition" to "case guard" after renaming in the contract + grammar. + * gnat_rm.texi: Regenerate. + +2018-05-24 Hristian Kirtchev + + * exp_util.adb (Expand_Static_Predicates_In_Choices): Indicate that the + construct with discrete choices no longer contains a subtype with + predicates since the expansion already handled this case. + +2018-05-24 Hristian Kirtchev + + * freeze.adb (Wrap_Imported_Subprogram): Generate an unchecked + conversion to the return type to avoid a side effect where an imported + relocated function generates a new anonymous access type, whose + accessibility level does not agree with with that of the wrapper. + +2018-05-24 Javier Miranda + + * sem_util.adb (Abstract_Interface_List): Add missing support for + private types whose full view is a synchronized type. + * sem_ch3.adb (Build_Derived_Private_Type): Skip building the full + derivation of a private type parent type is a task type with + discriminants as gigi does not use such type directly. + +2018-05-24 Hristian Kirtchev + + * sem_elab.adb (Build_Variable_Reference_Marker): Do not create a + variable marker when the reference appears in the formal part of a + compilation unit instance because there is no place to insert it. + (In_Compilation_Instance_Formal_Part): New routine. + +2018-05-24 Piotr Trojanek + + * layout.ads, repinfo.ads: Fix references to renamed Backend_Layout + configuration parameter. + +2018-05-24 Doug Rupp + + * argv-lynxos178-raven-cert.c: New file. + * libgnat/system-lynxos178-x86.ads: New file. + +2018-05-23 Hristian Kirtchev + + * exp_disp.adb, freeze.adb, gnat1drv.adb, sem_ch5.adb, sem_spark.adb: + Minor reformattings. + +2018-05-23 Pascal Obry + + * adaint.c (win32_wait): Properly free the handle/pid lists when + WaitForMultipleObjects fails (return WAIT_FAILED). + +2018-05-23 Pascal Obry + + * adaint.c (win32_wait): Add missing parentheses. + +2018-05-23 Hristian Kirtchev + + * exp_ch3.adb (Check_Large_Modular_Array): Moved to Freeze. + (Expand_N_Object_Declaration): Do not check for a large modular array + here. + * freeze.adb (Check_Large_Modular_Array): Moved from Exp_Ch3. + (Freeze_Object_Declaration): Code cleanup. Check for a large modular + array. + * sem_ch3.adb: Minor reformatting. + +2018-05-23 Ed Schonberg + + * einfo.ads: New attribute on types: Predicated_Parent, to simplify the + retrieval of the applicable predicate function to an itype created for + a constrained array component. + * einfo.adb: Subprograms for Predicated_Parent. + (Predicate_Function): Use new attribute. + * exp_util.adb (Make_Predicate_Call): If the predicate function is not + available for a subtype, retrieve it from the base type, which may have + been frozen after the subtype declaration and not captured by the + subtype declaration. + * sem_aggr.adb (Resolve_Array_Aggregate): An Others association is + legal within a generated initiqlization procedure, as may happen with a + predicate check on a component, when the predicate function applies to + the base type of the component. + * sem_ch3.adb (Analyze_Subtype_Declaration): Clean up inheritance of + predicates for subtype declarations and for subtype indications in + other contexts. + (Process_Subtype): Likewise. Handle properly the case of a private type + with unknown discriminants whose full view is an unconstrained array. + Use Predicated_Parent to indicate source of predicate function on an + itype whose parent is itself an itype. + (Complete_Private_Subtype): If the private view has unknown + discriminants and the full view is an unconstrained array, set base + type of completion to the full view of parent. + (Inherit_Predicate_Flags): Prevent double assignment of predicate + function and flags. + (Build_Subtype): For a constrained array component, propagate predicate + information from original component type declaration. + +2018-05-23 Boris Yakobowski + + * libgnat/a-ngelfu.ads (Arctanh, Arccoth): Fix faulty preconditions. + +2018-05-23 Arnaud Charlet + + * checks.adb (Minimize_Eliminate_Overflows): Default initialize Lo and + Hi. + * sem_elab.adb: Make "out" parameters instead of "in out" when + relevant. + +2018-05-23 Bob Duff + + * gnatbind.adb (List_Applicable_Restrictions): Add + No_Implementation_Restrictions to the list of restrictions not to list. + Remove double negative "not No_Restriction_List". Comment the + commentary that is output, so it won't cause errors if used directly in + a gnat.adc. + +2018-05-23 Ed Schonberg + + * sem_prag.adb (Inherit_Class_Wide_Pre): Refine legality check on + class-wide precondition on a type extension when ancestor does not have + a class-wide precondition. Previously the compiler accepted such a + precondition when the ancestor had a class-wide postcondition. + +2018-05-23 Javier Miranda + + * sem_attr.adb (Valid_Scalars): Do not invoke Error_Attr_P to report + the warning on occurrences of this attribute whose evaluation is always + true (since that subprogram aborts processing the attribute). In + addition, replace the node by its boolean result 'True' (required + because the backend has no knowledge of this attribute). + +2018-05-23 Bob Duff + + * libgnat/a-convec.adb: (Insert, Insert_Space): Suppress warnings. The + code in question is not reachable in the case where Count_Type'Last is + out of range. + +2018-05-23 Yannick Moy + + * doc/gnat_rm/implementation_defined_pragmas.rst: Clarify meaning of + local pragma Warnings Off without On. + * gnat_rm.texi: Regenerate. + +2018-05-23 Olivier Hainque + + * libgnat/g-excact.ads (Is_Foreign_Exception): New predicate. + * libgnat/g-excact.adb: Implement. + +2018-05-23 Ed Schonberg + + * sem_ch5.adb (Analyze_Iterator_Specification): If a subtype indication + is present, verify its legality when the domain of iteration is a + GNAT-specific formal container, as is already done for arrays and + predefined containers. + +2018-05-23 Yannick Moy + + * sem_util.adb (Enclosing_Declaration): Fix the case of a named number + declaration, which was not taken into account. + +2018-05-23 Hristian Kirtchev + + * debug.adb: Switch -gnatd_s is now used to stop elaboration checks on + synchronized suspension. + * rtsfind.ads: Add entries for units Ada.Synchronous_Barriers and + Ada.Synchronous_Task_Control and routines Suspend_Until_True and + Wait_For_Release. + * sem_elab.adb: Document switch -gnatd_s. + (In_Task_Body): New routine. + (Is_Potential_Scenario): Code cleanup. Stop the traversal of a task + body when the current construct denotes a synchronous suspension call, + and restriction No_Entry_Calls_In_Elaboration_Code or switch -gnatd_s + is in effect. + (Is_Synchronous_Suspension_Call): New routine. + * switch-c.adb (Scan_Front_End_Switches): Switch -gnatJ now sets switch + -gnatd_s. + +2018-05-23 Javier Miranda + + * exp_disp.adb (Make_DT): Restrict the initialization of + External_Tag and Expanded_Name to an empty string to the case where + both pragmas apply (i.e. No_Tagged_Streams and Discard_Names), since + restricted runtimes are compiled with pragma Discard_Names. + * doc/gnat_rm/implementation_defined_pragmas.rst, + doc/gnat_rm/implementation_defined_characteristics.rst: Add + documentation. + * gnat_rm.texi: Regenerate. + +2018-05-23 Maroua Maalej + + * sem_spark.adb: Fix of some permission rules of pointers in SPARK. + +2018-05-23 Ed Schonberg + + * sem_ch5.adb (Preanalyze_Range): The pre-analysis of the domain of + iteration of an Ada2012 loop is performed to determine the type of the + domain, but full analysis is performed once the loop is rewritten as a + while-loop during expansion. The pre-analysis suppresses expansion; it + must also suppress the generation of freeze nodes, which may otherwise + appear in the wrong scope before rewritting. + +2018-05-23 Hristian Kirtchev + + * sem_elab.adb: Update the section on suppressing elaboration warnings. + +2018-05-23 Hristian Kirtchev + + * einfo.adb (Is_Elaboration_Checks_OK_Id): Use predicate + Is_Elaboration_Target. + (Is_Elaboration_Target): New routine. + (Is_Elaboration_Warnings_OK_Id): Use predicate Is_Elaboration_Target. + (Set_Is_Elaboration_Checks_OK_Id): Use predicate Is_Elaboration_Target. + (Set_Is_Elaboration_Warnings_OK_Id): Use predicate + Is_Elaboration_Target. + * einfo.ads: Add new synthesized attribute Is_Elaboration_Target along + with occurrences in nodes. + (Is_Elaboration_Target): New routine. + * sem_prag.adb (Analyze_Pragma): Suppress elaboration warnings when an + elaboration target is subject to pragma Warnings (Off, ...). + +2018-05-23 Eric Botcazou + + * repinfo.adb (List_Type_Info): Remove obsolete stuff. + +2018-05-23 Hristian Kirtchev + + * einfo.adb: Flag304 is now Is_Elaboration_Warnings_OK_Id. + (Is_Elaboration_Warnings_OK_Id): New routine. + (Set_Is_Elaboration_Warnings_OK_Id): New routine. + (Write_Entity_Flags): Output Flag304. + * einfo.ads: Add new attribute Is_Elaboration_Warnings_OK_Id along with + occurrences in entities. + (Is_Elaboration_Warnings_OK_Id): New routine along with pragma Inline. + (Set_Is_Elaboration_Warnings_OK_Id): New routine along with pragma + Inline. + * sem_attr.adb (Analyze_Access_Attribute): Capture the state of + elaboration warnings. + * sem_ch3.adb (Analyze_Object_Declaration): Capture the state of + elaboration warnings. + * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Capture the + state of elaboration warnings. + (Analyze_Subprogram_Body_Helper): Capture the state of elaboration + warnings. + (Analyze_Subprogram_Declaration): Capture the state of elaboration + warnings. + * sem_ch9.adb (Analyze_Entry_Declaration): Capture the state of + elaboration warnings. + (Analyze_Single_Task_Declaration): Capture the state of elaboration + warnings. + (Analyze_Task_Type_Declaration): Capture the state of elaboration + warnings. + * sem_ch12.adb (Analyze_Generic_Package_Declaration): Capture the state + of elaboration warnings. + (Analyze_Generic_Subprogram_Declaration): Capture the state of + elaboration warnings. + * sem_elab.adb: Add a section on suppressing elaboration warnings. + Type Processing_Attributes includes component Suppress_Warnings + intended to suppress any elaboration warnings along a path in the + graph. Update Initial_State to include a value for this component. + Types Target_Attributes and Task_Attriutes include component + Elab_Warnings_OK to indicate whether the target or task has elaboration + warnings enabled. component Elab_Warnings_OK. + (Build_Access_Marker): Propagate attribute + Is_Elaboration_Warnings_OK_Node from the attribute to the generated + call marker. + (Extract_Instantiation_Attributes): Set the value for Elab_Warnings_OK. + (Extract_Target_Attributes): Set the value for Elab_Warnings_OK. + (Extract_Task_Attributes): Set the value for Elab_Warnings_OK. + (Process_Conditional_ABE_Access): Suppress futher elaboration warnings + when already in this mode or when the attribute or target have warnings + suppressed. + (Process_Conditional_ABE_Activation_Impl): Do not emit any diagnostics + if warnings are suppressed. + (Process_Conditional_ABE_Call): Suppress further elaboration warnings + when already in this mode, or the target or call have warnings + suppressed. + (Process_Conditional_ABE_Call_Ada): Do not emit any diagnostics if + warnings are suppressed. + (Process_Conditional_ABE_Call_SPARK): Do not emit any diagnostics if + warnings are suppressed. + (Process_Conditional_ABE_Instantiation): Suppress further elaboration + warnings when already in this mode or when the instantiation has + warnings suppressed. + (Process_Conditional_ABE_Instantiation_Ada): Do not emit any + diagnostics if warnings are suppressed. + (Process_Conditional_ABE_Variable_Assignment_Ada): Use the more + specific Is_Elaboration_Warnings_OK_Id rather than Warnings_Off. + (Process_Conditional_ABE_Variable_Assignment_SPARK): Use the more + specific Is_Elaboration_Warnings_OK_Id rather than Warnings_Off. + (Process_Task_Object): Suppress further elaboration warnings when + already in this mode, or when the object, activation call, or task type + have warnings suppressed. Update the processing state to indicate that + the path goes through a task body. + * sinfo.adb (Is_Elaboration_Warnings_OK_Node): Accept attribute + references. + (Set_Is_Elaboration_Warnings_OK_Node): Accept attribute references. + * sinfo.ads: Attribute Is_Elaboration_Warnings_OK_Node now applies to + attribute references. + +2018-05-23 Piotr Trojanek + + * einfo.ads: Minor reformatting. + +2018-05-23 Ed Schonberg + + * sem_ch3.adb (Analyze_Object_Declaration): If expression is an + anonymous_access_to_ subprogram formal, apply a conversion to force an + accsssibility check that will fail statically, enforcing 3.10.2 (13). + +2018-05-23 Daniel Mercier + + * gnat1drv.adb: Turn off length expansion in CodePeer mode. + +2018-05-23 Bob Duff + + * freeze.adb: (Check_Address_Clause): Deal with build-in-place + aggregates in addition to build-in-place calls. + +2018-05-23 Bob Duff + + * einfo.ads: Minor reformatting. + * sem_ch3.adb: Likewise. + * sinfo.ads: Likewise. + +2018-05-23 Hristian Kirtchev + + * exp_ch3.adb (Default_Initialize_Object): Do not optimize scalar array + initialization when the component type has predicates. + * exp_ch4.adb (Expand_N_Allocator): Do not optimize scalar array + allocation when the component type has predicates. + +2018-05-23 Hristian Kirtchev + + * einfo.adb, exp_disp.adb, sem_ch3.adb, sem_ch6.adb, sem_prag.adb: + Minor reformatting. + +2018-05-22 Justin Squirek + + * sem_ch6.adb (Analyze_Expression_Function): Propagate flags from the + original function spec into the generated function spec due to + expansion of expression functions during analysis. + (Analyze_Subprogram_Body_Helper): Modify check on formal parameter + references from the body to the subprogram spec in the case of + expression functions because of inconsistances related to having a + generated body. + * libgnarl/s-osinte__android.ads: Flag parameters as unused. + * libgnarl/s-osinte__lynxos178e.ads: Likewise. + * libgnarl/s-osinte__qnx.adb: Likewise. + * libgnarl/s-osinte__qnx.ads: Likewise. + +2018-05-22 Doug Rupp + + * init.c (HAVE_ADJUST_CONTEXT_FOR_RAISE): Don't define on VxWorks7 for + AArch64. + +2018-05-22 Olivier Hainque + + * libgnat/a-except.adb (Exception_Propagation.Propagate_Exception): + Expect an Exception_Occurence object, not an Access. + (Complete_And_Propagate_Occurrence): Adjust accordingly. + (Raise_From_Signal_Handler): Likewise. + (Reraise_Occurrence_No_Defer): If we have a Machine_Occurrence + available in the provided occurrence object, just re-propagate the + latter as a bare "raise;" would do. + * libgnat/a-exexpr.adb (Propagate_Exception): Adjust to spec change. + * libgnat/a-exstat.adb (String_To_EO): Initialize X.Machine_Occurrence + to null, to mark that the occurrence we're crafting from the stream + contents is not being propagated (yet). + +2018-05-22 Hristian Kirtchev + + * exp_aggr.adb (Initialize_Ctrl_Record_Component): Insert the generated + code for a transient component in line with the rest of the + initialization code, rather than before the aggregate. This ensures + that the component has proper visibility of the discriminants. + +2018-05-22 Jerome Lambourg + + * adaint.c: Reorganize QNX-specific macros, use syspage to retreive the + number of CPUs. + +2018-05-22 Jerome Lambourg + + * sigtramp-qnx.c: Properly restore link register in signal trampoline. + +2018-05-22 Hristian Kirtchev + + * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Strip away any + conversions before extracting the value of the expression. + * exp_ch3.adb (Default_Initialize_Object): Optimize the default + initialization of an array of scalars. + (Get_Simple_Init_Val): Add processing for array types. Remove the + processing of strings because this case is already handled by the array + case. + (Needs_Simple_Initialization): Moved to Sem_Util. + (Simple_Init_Array_Type): New routine. + (Simple_Init_Initialize_Scalars_Type): Reimplemented to use the new + facilities from Sem_Util. + (Simple_Initialization_OK): New routine. + * exp_ch3.ads (Needs_Simple_Initialization): Moved to Sem_Util. + * exp_ch4.adb (Expand_N_Allocator): Optimize the default allocation of + an array of scalars. + * sem_prag.adb (Analyze_Float_Value): New routine. + (Analyze_Integer_Value): New routine. + (Analyze_Pragma): Reimplement the analysis of pragma Initialize_Scalars + to handled the extended form of the pragma. + (Analyze_Type_Value_Pair): New routine. + * sem_util.adb: Add invalid value-related data structures. + (Examine_Array_Bounds): New routine. + (Has_Static_Array_Bounds): Reimplemented. + (Has_Static_Non_Empty_Array_Bounds): New routine. + (Invalid_Scalar_Value): New routine. + (Needs_Simple_Initialization): Moved from Exp_Ch3. + (Set_Invalid_Scalar_Value): New routines. + * sem_util.ads (Has_Static_Non_Empty_Array_Bounds): New routine. + (Invalid_Scalar_Value): New routine. + (Needs_Simple_Initialization): Moved from Exp_Ch3. + (Set_Invalid_Scalar_Value): New routines. + * snames.ads-tmpl: Add names for the salar type families used by pragma + Initialize_Scalars. + +2018-05-22 Javier Miranda + + * exp_disp.adb (Make_DT): Initialize the External_Tag with an empty + string when pragma No_Tagged_Streams is applicable to the tagged type, + and initialize the Expanded_Name with an empty string when pragma + Discard_Names is applicable to the tagged type. + +2018-05-22 Ed Schonberg + + * sem_ch6.adb (Check_Conformance): Add RM reference for rule that a + formal subprogram is never subtype conformqnt, and thus cannot be the + prefix of 'Access. Reject as well the attribute when applied to a + renaming of a formal subprogram. + +2018-05-22 Hristian Kirtchev + + * exp_ch3.adb (Build_Array_Init_Proc): Update the call to + Needs_Simple_Initialization. + (Build_Init_Statements): Update the call to Get_Simple_Init_Val. + (Check_Subtype_Bounds): Renamed to Extract_Subtype_Bounds. Update the + profile and comment on usage. + (Default_Initialize_Object): Do not use New_Copy_Tree to set the proper + Sloc of a value obtained from aspect Default_Value because this could + potentially replicate large trees. The proper Sloc is now set in + Get_Simple_Init_Val. + (Get_Simple_Init_Val): Reorganized by breaking the various cases into + separate routines. Eliminate the use of global variables. + (Init_Component): Update the call to Get_Simple_Init_Val. + (Needs_Simple_Initialization): Update the parameter profile and all + uses of T. + (Simple_Init_Defaulted_Type): Copy the value of aspect Default_Value + and set the proper Sloc. + * exp_ch3.ads (Get_Simple_Init_Val): Update the parameter profile and + comment on usage. + (Needs_Simple_Initialization): Update the parameter profile. + +2018-05-22 Patrick Bernardi + + * sem_ch3.adb (Build_Discriminant_Constraints): Raise an error if the + user tries to use a subtype indication as a discriminant constraint. + +2018-05-22 Ed Schonberg + + * exp_ch4.ads, exp_ch4.adb, exp_util.adb, expander.adb: Remove mention + of N_Reduction_Expression and N_Reduction_Expression_Parameter. + * par-ch4.adb: Remove parsing routines for reduction expressions. + * sem.adb, sinfo.ads, sinfo.adb, sem_ch4.ads, sem_ch4.adb, sem_res.adb, + sem_spark.adb, sprint.adb: Remove analysis routines for reduction + expressions. + +2018-05-22 Arnaud Charlet + + * sem_ch8.adb (Check_Frozen_Renaming): Do not emit error in + Relaxed_RM_Semantics mode. + +2018-05-22 Arnaud Charlet + + * comperr.adb (Delete_SCIL_Files): Take into account + N_Generic_Package_Renaming_Declaration. + +2018-05-22 Ed Schonberg + + * sem_ch3.adb (Search_Derivation_Levels): Whenever a parent type is + private, use the full view if available, because it may include renamed + discriminants whose values are stored in the corresponding + Stored_Constraint. + +2018-05-22 Ed Schonberg + + * einfo.ads, einfo.adb: New attribute Hidden_In_Formal_Instance, + defined on packages that are actuals for formal packages, in order to + set/reset the visibility of the formals of a formal package with given + actuals, when there are subsequent uses of those formals in the + enclosing generic, as required by RN 12.7 (10). + * atree.ads, atree.adb: Add operations for Elist30. + * atree.h: Add Elist30. + * sem_ch12.adb (Analyze_Formal_Package_Instantiation): Collect formals + that are not defaulted and are thus not visible within the current + instance. + (Check_Formal_Packages): Reset visibility of formals of a formal + package that are not defaulted, on exit from current instance. + +2018-05-22 Hristian Kirtchev + + * sem_prag.adb (Analyze_Input_Output): Emit an error when a non-null, + non-'Result output appears in the output list of a function. + +2018-05-22 Hristian Kirtchev + + * exp_attr.adb (Build_Array_VS_Func): Reimplemented. + (Build_Record_VS_Func): Reimplemented. + (Expand_N_Attribute): Reimplement the handling of attribute + 'Valid_Scalars. + * sem_attr.adb (Analyze_Attribute): Reimplement the handling of + attribute 'Valid_Scalars. + * sem_util.adb (Scalar_Part_Present): Reimplemented. + (Validated_View): New routine. + * sem_util.ads (Scalar_Part_Present): Update the parameter profile and + comment on usage. + (Validated_View): New routine. + * doc/gnat_rm/implementation_defined_attributes.rst: Update the + documentation of attribute 'Valid_Scalars. + * gnat_rm.texi: Regenerate. + +2018-05-22 Bob Duff + + * binde.adb: (Choose): Ignore a pragma Elaborate_Body that appears in + the spec of a SAL_Interface package. + +2018-05-22 Ed Schonberg + + * freeze.adb (Freeze_Entity): When analyzing delayed aspects of an + entity E within a generic unit, indicate that there are no remaining + delayed aspects after invoking Analyze_Aspects_At_Freeze_Point. The + entity E is not frozen yet but the aspects should not be reanalyzed at + the freeze point, which may be outside of the generic and may not have + the proper visibility. + +2018-05-22 Bob Duff + + * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for + the new --split-line-before-record, --indent-named-statements and + --no-align-modes gnatpp switches. + +2018-05-22 Ed Schonberg + + * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Handle properly + a second argument that is a constant of a given string value. + +2018-05-22 Doug Rupp + + * sigtramp-vxworks-target.inc: Align stack to 128bits on AArch64. + +2018-05-22 Jerome Lambourg + + * sigtramp-qnx.c: Fix stack alignment issue in the signal trampoline. + +2018-05-22 Ed Schonberg + + * freeze.adb (Freeze_Fixed_Point_Type): If the first subtype has + delayed aspects, analyze them now, os that the representation of the + type (size, bounds) can be computed and validated. + +2018-05-22 Olivier Hainque + + * libgnat/s-dwalin.adb (Enable_Cache): Skip symbols outside of the + executable code section boundaries. + +2018-05-22 Javier Miranda + + * locales.c: New implementation for the Ada.Locales package. + * libgnat/a-locale.ads: Remove comment indicating that this is not + implemented. + * doc/gnat_rm/standard_library_routines.rst: Remove comment indicating + that this is not implemented. + * gnat_rm.texi: Regenerate. + +2018-05-22 Hristian Kirtchev + + * exp_ch5.adb, freeze.adb, pprint.adb, sem_ch4.adb, sem_res.adb: Minor + reformattings. + +2018-05-22 Justin Squirek + + * sem_ch12.adb (In_Same_Declarative_Part): Moved to sem_util. + (Freeze_Subprogram_Body, Install_Body): Modify calls to + In_Same_Declarative_Part. + * sem_prag.adb (Analyze_Pragma-Pragma_Pure_Function): Add check to + verify pragma declaration is within the same declarative list with + corresponding error message. + * sem_util.adb, sem_util.ads (In_Same_Declarative_Part): Moved from + sem_ch12.adb and generalized to be useful outside the scope of + freezing. + +2018-05-22 Hristian Kirtchev + + * sem_ch6.adb (Analyze_Subprogram_Declaration): Set the proper + categorization of the unit after processing the aspects in case one of + its aspects is converted into a categorization pragma. + +2018-05-21 Ed Schonberg + + * freeze.adb (Warn_Overlay): Do not emit a wawrning on an object + declaration with an explicit address clause and a type with default + initialization, if the declaration carries an aspect + Suppress_Initialization. + +2018-05-21 Daniel Mercier + + * pprint.adb: Use mixed case for attribute names. + +2018-05-21 Hristian Kirtchev + + * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Rename the call to + Analyze_Aspect_Specifications_On_Body_Or_Stub. + (Analyze_Subprogram_Body_Helper): Rename the calls to + Analyze_Aspect_Specifications_On_Body_Or_Stub. + * sem_ch9.adb (Analyze_Entry_Body): Rename the call to + Analyze_Aspect_Specifications_On_Body_Or_Stub. + * sem_ch10.adb: Add with and use clause for Sem_Ch13. + (Analyze_Package_Body_Stub): Add constant Id. Decorate the package stub + prior to analyzing its aspects. + (Analyze_Protected_Body_Stub): Add constant Id. Decorate the package + stub prior to analyzing its aspects. Save and restore the configuration + switches. + (Analyze_Task_Body_Stub): Add constant Id. Decorate the package stub + prior to analyzing its aspects. + * sem_ch13.adb (Analyze_Aspect_Specifications_On_Body_Or_Stub): Renamed + to Analyze_Aspects_On_Subprogram_Body_Or_Stub. + * sem_ch13.ads (Analyze_Aspect_Specifications_On_Body_Or_Stub): Renamed + to Analyze_Aspects_On_Subprogram_Body_Or_Stub. + * sem_prag.adb: Code reformatting. + (Analyze_Refined_Depends_Global_Post): Consider task body stubs. + +2018-05-21 Jerome Lambourg + + * gcc-interface/Makefile.in: Add g-soliop__qnx.ads to the runtime build + for QNX. + +2018-05-21 Hristian Kirtchev + + * exp_cg.adb: Remove with and use clause for Exp_Disp. + * exp_ch9.adb: Remove with and use clause for Exp_Disp. + * exp_disp.adb (Is_Predefined_Dispatching_Operation): Moved to Sem_Util. + (Is_Predefined_Interface_Primitive): Moved to Sem_Util. + (Is_Predefined_Internal_Operation): Moved to Sem_Util. + * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved to Sem_Util. + (Is_Predefined_Interface_Primitive): Moved to Sem_Util. + (Is_Predefined_Internal_Operation): Moved to Sem_Util. + * exp_dist.adb: Remove with and use clause for Exp_Disp. + * freeze.adb: Remove with and use clause for Exp_Disp. + * sem_cat.adb: Remove with and use clause for Exp_Disp. + * sem_ch6.adb: Remove with and use clause for Exp_Disp. + * sem_ch12.adb: Remove with and use clause for Exp_Disp. + * sem_elab.adb (Check_Overriding_Primitive): Do not process predefined + primitives. + * sem_util.adb: Remove with and use clause for Exp_Disp. + (Is_Predefined_Dispatching_Operation): Moved from Exp_Disp. + (Is_Predefined_Interface_Primitive): Moved from Exp_Disp. + (Is_Predefined_Internal_Operation): Moved from Exp_Disp. + * sem_util.ads (Is_Predefined_Dispatching_Operation): Moved from + Exp_Disp. + (Is_Predefined_Interface_Primitive): Moved from Exp_Disp. + (Is_Predefined_Internal_Operation): Moved from Exp_Disp. + +2018-05-21 Ed Schonberg + + * sem_res.adb (Valid_Conversion): Improve error message on an illegal + type conversion whose expression has a limited view of a type. + +2018-05-21 Ed Schonberg + + * exp_ch5.adb (Build_Formal_Container_Iteration): If source has + explicit name for iterator loop, preserve that name in expanded + construct, for possible use in exit statements. + +2018-05-21 Javier Miranda + + * sem_ch4.adb (Analyze_Membership_Op): Avoid compiler crash when the + spec of a unit has Ada 2012 membership tests with multiple choices and + the unit body is not compiled under Ada 2012 mode. + +2018-05-21 Doug Rupp + + * sigtramp-vxworks-target.inc: Set cfa_reg properly from sigcontext + pregs. + (CFI_COMMON_REGS): Restore LR jic probed from prologue. + (REGNO_PC_OFFSET): Change to correct value for Aarch64. + +2018-05-21 Jose Ruiz + + * doc/gnat_ugn/gnat_utility_programs.rst, exp_attr.adb, + libgnarl/s-tassta.adb: Minor typo fixes + +2018-05-21 Ed Schonberg + + * sem_ch4.adb (Analyze_One_Call): Recognize complex cases where an + indexed call originally in prefix forn is itself the prefix of a + further call. + +2018-05-21 Piotr Trojanek + + * sem_eval.adb (Is_Null_Range): Clarify access to the full view of a + type. + (Not_Null_Range): Same as above. + +2018-05-21 Hristian Kirtchev + + * exp_ch3.adb: Minor reformatting. + * exp_ch6.adb: Likewise. + * freeze.adb: Likewise. + * inline.adb: Likewise. + * sem_util.adb: Likewise. + +2018-05-21 Yannick Moy + + * inline.adb (Expand_Inlined_Call.Process_Formals): Use a type + conversion instead of an unchecked type conversion when inlining a + return statement, unless type qualification is required (for character + and string literal) or no check can result from the conversion (for + access types). + * opt.ads: Update comment. + +2018-05-21 Hristian Kirtchev + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Install the elaboration + model of the compilation unit spec, if any. + * sem_ch7.adb (Analyze_Package_Body_Helper): Install the elaboration + model of the compilation unit spec, if any. + * sem_ch10.adb (Analyze_Subunit): Install the elaboration model of the + parent compilation unit spec, if any. + * sem_elab.adb (Check_Elaboration_Scenarios): Restore the elaboration + model of the main unit. + (Is_Same_Unit): The routine now uses Unit_Entity. + (Is_Subunit): Removed. + (Normalize_Unit): Removed. + (Unit_Entity): New routine. + * sem_prag.adb (Analyze_Pragma): Reimplement the handling of pragma + Elaboration_Checks. The analysis now ensures that the pragma appears at + the configuration level, and on the initial declaration of a unit. + Other placements are either flagged as illegal, or ignored. + (Check_Duplicate_Elaboration_Checks_Pragma): New routine. + (Ignore_Elaboration_Checks_Pragma): New routine. + * sem_util.adb (Install_Elaboration_Model): New routine. + * sem_util.ads (Install_Elaboration_Model): New routine. + * doc/gnat_rm/implementation_defined_pragmas.rst: Update the + documentation of pragma Elaboration_Checks. + * gnat_rm.texi: Regenerate. + +2018-05-21 Olivier Hainque + + * libgnat/s-trasym__dwarf.adb (Executable_Name): Return argv[0] instead + of empty string when argv[0] couldn't be found on PATH. + (Enable_Cache): Raise Program_Error instead of attempting a null + pointer dereference when the Exec_Module initialization failed. + +2018-05-21 Piotr Trojanek + + * libgnarl/a-reatim.ads (Clock_Time): Remove External aspect. + * libgnarl/a-taside.ads (Tasking_State): Likewise. + * libgnat/a-calend.ads (Clock_Time): Likewise. + +2018-05-21 Yannick Moy + + * sem_ch6.adb (Analyze_Procedure_Call): Refine test to recognize prefix + call notation in inlined call in GNATprove mode. + +2018-05-21 Hristian Kirtchev + + * einfo.adb (Is_External_State): An abstract state is also external + when it is declared with option "synchronous". + * einfo.ads: Update the documentation of synthesized attribute + Is_External_State. + * sem_util.adb (Find_Simple_Properties): New routine. + (Is_Enabled_External_Property): New routine. + (State_Has_Enabled_Property): Reimplemented. The two flavors of option + External have precedence over option Synchronous when determining + whether a property is in effect. + +2018-05-21 Yannick Moy + + * sem_eval.adb (Static_Length): Take into account case of variable of + subtype string literal. + +2018-05-21 Olivier Hainque + + * libgnat/s-objrea.ads (Get_Memory_Bounds): Rename as Get_Xcode_Bounds. + (Object_Section): Rename Flag_Alloc component as Flag_Xcode. + * libgnat/s-objrea.adb (Get_Xcode_Bounds): Adjust to new subprogram and + component name. + (Get_Section, ELF case): Set Flag_Xcode from SHF_EXECINSTR. + * libgnat/s-dwalin.adb (Open): Adjust to the Get_Memory_Bounds name + change. + +2018-05-21 Olivier Hainque + + * libgnat/s-dwalin.ads (Dwarf_Context): Change type of Load_Address to + Address, and type of Low, High to Storage_Offset. + (Low): Rename as Low_Address and convey that the return value is a + runtime reference accounting for a load address. + * libgnat/s-dwalin.adb (Read_Aranges_Entry): Adjust to the + address/offset type changes. + (Aranges_Lookup): Likewise. + (Symbolic_Address): Likewise. + (Symbolic_Traceback): Likewise. + (Dump_Cache): Likewise. + (Is_Inside): Likewise. + (Open): Likewise. + (Set_Load_Address): Likewise. + (Low_Address): Likewise, and account for C.Load_Address. + * libgnat/s-trasym__dwarf.adb (Lt): Use Low_Address instead of Low. + (Multi_Module_Symbolic_Traceback): Compare address in traceback + with module Low_Address instead of Low. + +2018-05-21 Olivier Hainque + + * libgnat/s-dwalin.ads (Dwarf_Context): Rename Load_Slide as + Load_Address. + * libgnat/s-dwalin.adb (Is_Inside): Adjust accordingly. + (Set_Load_Address): Likewise. + (Symbolic_Traceback): Likewise. + +2018-05-21 Olivier Hainque + + * libgnat/s-trasym__dwarf.adb (Add_Module_To_Cache): Expect a + Load_Address argument and pass it down to Init_Module. + * libgnat/s-tsmona__linux.adb (Build_Cache_For_All_Modules): Pass + lm.l_addr as the Load_Address to Add_Module_To_Cache. + +2018-05-21 Piotr Trojanek + + * einfo.adb (Has_Discriminants): Stronger assertion. + (Set_Has_Discriminants): Stronger assertion. + * sem_ch13.adb (Push_Scope_And_Install_Discriminants): Adapt to respect + the stronger assertion on Has_Discriminant. + (Uninstall_Discriminants_And_Pop_Scope): Same as above. + * sem_util.adb (New_Copy_Tree): Same as above. + * sem_ch7.adb (Generate_Parent_References): Prevent calls to + Has_Discriminant on non-type entities that might happen when the + compiled code has errors. + * sem_ch3.adb (Derived_Type_Declaration): Only call + Set_Has_Discriminant on type entities. + +2018-05-21 Arnaud Charlet + + * exp_unst.adb (Unnest_Subprogram): Unnest all subprograms relevant for + code generation. + +2018-05-21 Piotr Trojanek + + * lib.ads: Fix typo in enumeration in comment. + +2018-05-21 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case Scalar_Storage_Order): The + attribute reference is legal within a generic unit when the prefix is a + formal private type. + +2018-05-21 Hristian Kirtchev + + * exp_ch7.adb (Establish_Transient_Scope): Code cleanup. Do not + delegate the secondary stack management when there is no suitable + transient context, and the transient scope was intended to manage the + secondary stack because this causes premature reclamation. Change the + transient scope creation logic by special casing assignment statements + of controlled components for type initialization procedures. + (Find_Node_To_Be_Wrapped): Renamed to Find_Transient_Context. Update + the comment on usage. + (Find_Transient_Context): Change the initinte loop into a while loop. + Iterations schemes and iterator specifications are not valid transient + contexts because they rely on special processing. Assignment statements + are now treated as a normal transient context, special cases are + handled by the caller. Add special processing for pragma Check. + (Is_OK_Construct): Removed. Its functionality has been merged in + routine Find_Transient_Context. + * sem_ch5.adb (Check_Call): Reimplemented. Add code to properly + retrieve the subprogram being invoked. Use a more accurate predicate + (Requires_Transient_Scope) to determine that the function will emply + the secondary stack. + +2018-05-21 Piotr Trojanek + + * ada_get_targ.adb: Fix subprogram body headers. + * adabkend.adb: Likewise. + * checks.adb: Likewise. + * exp_ch3.adb: Likewise. + * exp_ch5.adb: Likewise. + * exp_ch9.adb: Likewise. + * exp_dist.adb: Likewise. + * exp_tss.adb: Likewise. + * inline.adb: Likewise. + * lib-writ.adb: Likewise. + * lib-xref-spark_specific.adb: Likewise. + * libgnarl/s-osinte__darwin.adb: Likewise. + * libgnarl/s-stusta.adb: Likewise. + * libgnarl/s-taprop__solaris.adb: Likewise. + * libgnarl/s-tposen.adb: Likewise. + * libgnarl/s-vxwext__kernel-smp.adb: Likewise. + * libgnarl/s-vxwext__kernel.adb: Likewise. + * libgnat/a-btgbso.adb: Likewise. + * libgnat/a-cfdlli.adb: Likewise. + * libgnat/a-cfhama.adb: Likewise. + * libgnat/a-cfinve.adb: Likewise. + * libgnat/a-cimutr.adb: Likewise. + * libgnat/a-coboho.adb: Likewise. + * libgnat/a-cofove.adb: Likewise. + * libgnat/a-cofuve.adb: Likewise. + * libgnat/a-comutr.adb: Likewise. + * libgnat/a-exexda.adb: Likewise. + * libgnat/a-tags.adb: Likewise. + * libgnat/a-tideau.adb: Likewise. + * libgnat/a-wtdeau.adb: Likewise. + * libgnat/a-ztdeau.adb: Likewise. + * libgnat/g-alleve.adb: Likewise. + * libgnat/s-excdeb.adb: Likewise. + * libgnat/s-parint.adb: Likewise. + * libgnat/s-shasto.adb: Likewise. + * libgnat/s-traceb__hpux.adb: Likewise. + * prepcomp.adb: Likewise. + * sem_ch4.adb: Likewise. + * sem_ch6.adb: Likewise. + * sem_dist.adb: Likewise. + * sem_prag.adb: Likewise. + * sem_util.adb: Likewise. + * sinfo.adb: Likewise. + * switch.adb: Likewise. + +2018-05-04 John Marino + + PR ada/85635 + * link.c (BSD platforms): Add missing backslash. + +2018-04-27 Eric Botcazou + + PR ada/85540 + * init.c (__gnat_handle_vms_condition): Add missing parentheses. + +2018-04-25 Eric Botcazou + + PR ada/85007 + * gnat_ugn.texi: Regenerate. + +2018-03-23 Eric Botcazou + + PR ada/85007 + * gnatlink.adb (Gnatlink): Remove handling of -b switch. + * doc/gnat_ugn/building_executable_programs_with_gnat.rst (gnatlink): + Remove documentation of -b switch. + +2018-03-23 Eric Botcazou + + PR ada/85036 + * gnatlink.adb (Process_Args): Drop existing link switches if multiple + switches are passed for --LINK. + +2018-03-12 Eric Botcazou + + PR ada/82813 + * gcc-interface/misc.c (gnat_post_options): Disable string overflow + warnings. + +2018-03-10 Eric Botcazou + + * gcc-interface/trans.c (node_has_volatile_full_access) : + Consider only entities for objects. + +2018-03-07 Sebastian Huber + + * gcc-interface/Makefile.in (OSCONS_CPP): Remove redundant + $(GNATLIBCFLAGS). + (OSCONS_EXTRACT): Add $(GNATLIBCFLAGS_FOR_C). + +2018-03-06 Eric Botcazou + + * gcc-interface/trans.c (convert_with_check): Fix typo in the condition + guarding the overflow check emitted for the upper bound of a floating- + point conversion. + +2018-03-06 Eric Botcazou + + * gcc-interface/utils.c (def_builtin_1): Bail out on error_mark_node. + +2018-02-28 Eric Botcazou + + * libgnat/i-cexten.ads (Float_128): New type. + +2018-02-02 Eric Botcazou + + * gcc-interface/decl.c (array_type_has_nonaliased_component): Return + false if the component type is a pointer. + +2018-01-11 Gary Dismukes + + * exp_ch3.adb (Default_Initialize_Object): Call New_Copy_Tree on the + result of Get_Simple_Init_Value and pass the source location of the + object declaration's object_definition. + +2018-01-11 Ed Schonberg + + * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Handle + properly object declarations with initializations that are + build-in-place function calls, when there is an address specification, + either as an aspect specification or an explicit attribute + specification clause, for the initialized object. + * freeze.adb (Check_Address_Clause): Do not remove side-effects from + initial expressions in the case of a build-in-place call. + +2018-01-11 Piotr Trojanek + + * sem_eval.adb (Is_Null_Range): Retrieve the full view when called on a + private (sub)type; refactor to avoid early return statement. + (Not_Null_Range): Same as above. + +2018-01-11 Hristian Kirtchev + + * freeze.adb (Freeze_Entity): Ensure that a Ghost type is not + concurrent, nor effectively volatile. + * ghost.adb (Check_Ghost_Type): New routine. + * ghost.ads (Check_Ghost_Type): New routine. + * sem_util.adb (Is_Declaration): Reimplemented. The routine can now + consider specific subsets of declarations. + (Is_Declaration_Other_Than_Renaming): Removed. Its functionality is + replicated by Is_Declaration. + * sem_util.ads (Is_Declaration): New parameter profile. Update the + comment on usage. + (Is_Declaration_Other_Than_Renaming): Removed. + +2018-01-11 Hristian Kirtchev + + * sem_ch5.adb (Analyze_Assignment): Assignments to variables that act + as Part_Of consituents of single protected types are illegal when they + take place inside a protected function. + (Diagnose_Non_Variable_Lhs): Use Within_Function to check for an + enclosing function. + (Is_Protected_Part_Of_Constituent): New routine. + (Within_Function): New routine. + +2018-01-11 Arnaud Charlet + + Bump copyright notices to 2018. + +2018-01-11 Hristian Kirtchev + + * binde.adb, par-ch6.adb, par-ch9.adb, sem_ch12.adb, sem_ch13.adb: + Minor reformatting. + +2018-01-11 Justin Squirek + + * par-ch6.adb (Scan_Body_Or_Expression_Function): Add additional check + to make sure a given expression function is properly parenthesized. + +2018-01-11 Hristian Kirtchev + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Check the + categorization of a subprogram body which does not complete a previous + declaration. + +2018-01-11 Hristian Kirtchev + + * sem_ch10.adb (Check_Private_Child_Unit): Ensure that the enclosing + scope of package Ada is Standard. + +2018-01-11 Ed Schonberg + + * sem_ch13.adb (Replace_Type_Ref): Handle properly reference to a + subcomponent of the current entity when building the body for a dynamic + predicate function for a record with composite subcomponents. + +2018-01-11 Hristian Kirtchev + + * exp_aggr.adb (Convert_Aggr_In_Object_Decl): Update the call to + Establish_Transient_Scope. + (Convert_To_Assignments): Update the call to Establish_Transient_Scope. + (Expand_Array_Aggregate): Update the call to Establish_Transient_Scope. + * exp_ch6.adb (Expand_Call_Helper): Update the call to + Establish_Transient_Scope. + (Make_Build_In_Place_Call_In_Object_Declaration): Update the call to + Establish_Transient_Scope. + * exp_ch7.adb (Establish_Transient_Scope): Restructured. Delegate the + management of the secondary stack to an enclosing scope if there is no + suitable construct to wrap, and the transient scope was intended to + manage the secondary stack. + (Find_Node_To_Be_Wrapped): Restructured. A case_statement_alternative + is a valid boundary for a transient expression which comes from the + statements of the alternative, otherwise alternatives cannot be + wrapped. Assignments of controlled objects which have controlled + actions suppressed now stop the traversal as there is no point in + looking for an enclosing construct. Add several N_xxx_Body choices to + the termination conditions for completeness. + * exp_ch7.ads (Establish_Transient_Scope): Update the parameter profile + and the associated comment on usage. + * exp_smem.adb (Add_Shared_Var_Lock_Procs): Update the call to + Establish_Transient_Scope. + (Add_Write_After): Update the call to Establish_Transient_Scope. + * sem_res.adb (Check_Initialization_Call): Removed. + (Resolve_Actuals): Account for additional cases where finalization + actions are required by utilizing predicate Needs_Finalization rather + than Is_Controlled. + (Resolve_Call): Type initialization procedures can now utilize + transient scopes to manage the secondary stack, thus preventing leaks + during initialization. Remove the previous kludgy algorithm which + attempts to manage the secondary stack at the object creation site. + +2018-01-11 Jerome Lambourg + + * libgnat/g-soliop__qnx.ads: New. + * adaint.c, adaint.h, cstreams.c, s-oscons-tmplt.c, sysdep.c: Update + for QNX. + +2018-01-11 Bob Duff + + * par-ch9.adb (P_Protected_Operation_Declaration_Opt): Give an error if + a null procedure occurs in a protected definition. + +2018-01-11 Bob Duff + + * binderr.ads, namet.ads: Minor reformatting. + +2018-01-11 Bob Duff + + * doc/gnat_ugn/gnat_utility_programs.rst: Improve documentation of + xml2gnat. + +2018-01-11 Bob Duff + + * binde.adb (Force_Elab_Order): Give an error if there are duplicate + unit names. + +2018-01-11 Ed Schonberg + + * sem_ch6.adb (Freeze_Expr_Types): If an access value is the + controlling argument of a dispatching call. freeze the corresponding + designated type. + +2018-01-11 Ben Brosgol + + * doc/Makefile: Add Sphinx option -W to treat warnings as errors. + +2018-01-11 Ben Brosgol + + * doc/gnat_rm/implementation_defined_aspects.rst: Minor type/wording + corrections. + * gnat_rm.texi: Regenerate. + +2018-01-11 Ed Schonberg + + * sem_ch12.adb (Check_Fixed_Point_Type): Do not apply check if the + formsl type corresponding to the actual fixed point type is private, + because in this case there can be no suspicious arithmetic operations + in the generic unless they reference a formal subprogram. Clarify + warning. + +2018-01-11 Javier Miranda + + * exp_util.adb (Remove_Side_Effects): No action done for functions + returning class-wide types since it requires generating code using + 'reference and the CCG target has no secondary stack. + * gnat1drv.adb: Disable building static dispatch tables when generating + C code. + +2018-01-11 Piotr Trojanek + + * libgnat/a-direio.ads, libgnat/a-sequio.ads, libgnat/a-ststio.ads, + libgnat/a-textio.ads, libgnat/a-witeio.ads, libgnat/a-ztexio.ads + (File_Type): Add Default_Initial_Condition aspect. + +2018-01-11 Pascal Obry + + * libgnat/s-os_lib.adb (Normalize_Pathname): New implementation. + +2018-01-11 Bob Duff + + * doc/gnat_ugn/gnat_utility_programs.rst: Rewrite gnatpp documentation + to match what the Libadalang-based version does. + * doc/gnat_ugn/about_this_guide.rst: Update reference. + +2018-01-11 Hristian Kirtchev + + * sem_res.adb (Uses_SS): A controlled type requires the secondary stack + if it contains at least one component declaration employing a function + call returning on the secondary stack. + +2018-01-11 Yannick Moy + + * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: + Update description of restriction SPARK_05 with SPARK 2014. + * gnat_rm.texi: Regenerate. + +2018-01-11 Vasiliy Fofanov + + * doc/gnat_ugn/gnat_utility_programs.rst: Fix layout. + +2018-01-11 Hristian Kirtchev + + * exp_aggr.adb, exp_ch9.adb, exp_util.adb, sem_aggr.adb, sem_ch3.adb, + sem_res.adb, sem_util.adb: Minor reformatting. + +2018-01-11 Ed Schonberg + + * sem_prag.adb (Analyze_Pragma, case Predicate): Indicate that the type + has a delayed aspect which must be processed at the point the type is + frozen. This mimics what is done when the predicate is provided by a + source aspect. + +2018-01-11 Doug Rupp + + * init.c (vxworks): Add macro checks for __aarch64__. + +2018-01-11 Hristian Kirtchev + + * exp_util.adb (Add_Failure_Expression): New routine. + (Make_Predicate_Check): Reimplement the handling of Predicate_Failure. + * sem_util.adb (Is_Current_Instance): Code cleanup. + +2018-01-11 Patrick Bernardi + + * libgnat/s-parame*.adb, libgnat/s-parame*.ads: Remove unneeded + Default_Sec_Stack_Size. + * libgnat/s-secsta.adb (SS_Allocate): Handle the fixed secondary stack + limit check so that the integer index does not overflow. Check the + dynamic stack allocation does not cause the secondary stack pointer to + overflow. + (SS_Info): Align colons. + (SS_Init): Cover the case when bootstraping with an old compiler that + does not set Default_SS_Size. + +2018-01-11 Ed Schonberg + + * sem_ch3.adb (Add_Internal_Interface_Entities): When checking the + legality of an inherited operation that may require overriding, ignore + primitive_wrappers that correspond to explicit operations that override + an interface primitive. + * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity): If the + operation to which the class-wide expression applies is a protected op. + with a primitive_wrapper, verify that the updated inherited expression + does not contain an internal call to a protected function. This + completes the implementation of AI12-0166. + +2018-01-11 Hristian Kirtchev + + * ali.adb: Document the remaining letters available for ALI lines. + (Scan_ALI): A with clause is internal when it is encoded on a 'Z' line. + * ali.ads: Update type With_Record. Field + Implicit_With_From_Instantiation is no longer in use. Add field + Implicit_With. + * csinfo.adb (CSinfo): Remove the setup for attribute + Implicit_With_From_Instantiation. + * lib-writ.adb (Collect_Withs): Correct the logic which marks a unit as + either implicitly or explicitly withed. + (Is_Implicit_With_Clause): New routine. + (Write_ALI): Rename array Implicit_With to Has_Implicit_With to avoid + confusion with the with clause attribute by the same name. + (Write_With_Lines): Update the emission of 'W', 'Y', and 'Z' headers. + * rtsfind.adb (Maybe_Add_With): Code cleanup. + * sem_ch8.adb (Present_System_Aux): Code cleanup. + * sem_ch10.adb (Expand_With_Clause): Mark the with clause as generated + for a parent unit. + (Implicit_With_On_Parent): Mark the with clause as generated for a + parent unit. + * sem_ch12.adb (Inherit_Context): With clauses inherited by an + instantiation are no longer marked as Implicit_With_From_Instantiation + because they are already marked as implicit. + * sem_elab.adb (Ensure_Prior_Elaboration_Static): Remove the kludge + which marks implicit with clauses as related to an instantiation. + * sinfo.adb (Implicit_With_From_Instantiation): Removed. + (Parent_With): New routine. + (Set_Implicit_With_From_Instantiation): Removed. + (Set_Parent_With): New routine. + * sinfo.ads: Update the documentation of attribute Implicit_With. + Remove attribute Implicit_With_From_Instantiation along with + occurrences in nodes. Add attribute Parent_With along with occurrences + in nodes. + (Implicit_With_From_Instantiation): Removed along with pragma Inline. + (Parent_With): New routine along with pragma Inline. + (Set_Implicit_With_From_Instantiation): Removed along with pragma Inline. + (Set_Parent_With): New routine along with pragma Inline. + +2018-01-11 Hristian Kirtchev + + * sem_util.adb (Find_Enclosing_Scope): Return the unique defining + entity when the enclosing construct is a body. + +2018-01-11 Patrick Bernardi + + * exp_ch9.adb (Expand_N_Task_Type_Declaration): Simplified + Secondary_Stack_Size handling as a pragma is now generated for the + corresponding aspect instead of an attribute. Pragma expression is + relocated instead of evaluated. Discriminant of the corresponding + record type is referenced rather than the type discriminant. + (Create_Secondary_Stack_For_Task, Make_Task_Create_Call): Update + Secondary_Stack_Size rep item checks to only look for the pragma rep. + * sem_ch13.adb (Analyze_One_Aspect): Transform + Aspect_Secondary_Stack_Size into a pragma instead of an attribute + because the attribute does not have visibility on a task type's + discriminants when the type's definition is expanded. + (Analyze_Attribute_Definition_Clause): Remove handling of + Attribute_Secondary_Stack_Size. + * snames.adb-tmpl, snames.ads-tmpl: Remove + Attribute_Secondary_Stack_Size, no longer used. + +2018-01-11 Justin Squirek + + * sem_ch8.adb: Minor comment fix. + +2018-01-11 Hristian Kirtchev + + * exp_ch4.adb (Process_Action): Do not abandon the inspection of an + individual action because the action may denote a complex expression, + such as a case statement, which in turn may contain additional + transient objects. + +2018-01-11 Ed Schonberg + + * sem_aggr.adb (Resolve_Iterated_Component_Association): Perform + analysis on a copy of the expression with a copy of the index variable, + because full expansion will rewrite construct into a loop with the + original loop variable. + * exp_aggr.adb (Gen_Assign): Defer analysis and resolution if the + expression is an iterated component association. Full analysis takes + place when construct is rewritten as a loop. + (In_Place_Assign_OK, Safe_Component): An iterated_component_association + is not safe for in-place assignment. + * sem_util.adb (Remove_Entity): Handle properly the case of an isolated + entity with no homonym and no other entity in the scope. + +2018-01-11 Justin Squirek + + * sem_prag.adb (Analyze_Pragma:Pragma_Loop_Variant): Modify error + message to be printed on the pragma argument identifier. + +2018-01-11 Hristian Kirtchev + + * exp_util.adb (Build_Invariant_Procedure_Declaration): Set the last + entity of the generated invariant procedure in order to construct a + proper entity chain. + +2018-01-11 Piotr Trojanek + + * sem_ch13.adb (Build_Predicate_Functions): Fix minor issues in + comment. + +2018-01-11 Arnaud Charlet + + * einfo.ads, einfo.adb (Activation_Record_Component, + Set_Activation_Record_Component, Set_Is_Uplevel_Referenced_Entity): + Allow E_Discriminant. + +2018-01-10 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_component_type): Apply the check + for atomic access once the component size is taken into account and + also do it if the component type is Atomic or Volatile_Full_Access. + +2018-01-04 Eric Botcazou + + * gnatvsn.ads: Bump copyright year. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc-interface/misc.c (enumerate_modes): Treat GET_MODE_BITSIZE + as polynomial. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc-interface/misc.c (enumerate_modes): Treat GET_MODE_PRECISION + as polynomial. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc-interface/utils.c (gnat_types_compatible_p): Handle + polynomial TYPE_VECTOR_SUBPARTS. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc-interface/misc.c (enumerate_modes): Handle polynomial + GET_MODE_NUNITS. + +2018-01-03 Jakub Jelinek + + Update copyright years. + + * gnat_ugn.texi: Bump @copying's copyright year. + * gnat_rm.texi: Likewise. + +Copyright (C) 2018 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ada/gcc-interface/decl.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ada/gcc-interface/decl.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ada/gcc-interface/decl.c 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ada/gcc-interface/decl.c 2018-12-16 02:31:32.000000000 +0000 @@ -6848,6 +6848,9 @@ build_binary_op (LE_EXPR, boolean_type_node, gnu_operand, gnu_high, true), true); + else if (gnu_low == boolean_true_node + && TREE_TYPE (gnu_operand) == boolean_type_node) + gnu_test = gnu_operand; else if (gnu_low) gnu_test = build_binary_op (EQ_EXPR, boolean_type_node, gnu_operand, gnu_low, @@ -10046,13 +10049,14 @@ if (INTEGRAL_TYPE_P (gnu_type) && TYPE_RM_SIZE (gnu_type)) return TYPE_RM_SIZE (gnu_type); - /* Return the RM size of the actual data plus the size of the template. */ + /* If the type contains a template, return the padded size of the template + plus the RM size of the actual data. */ if (TREE_CODE (gnu_type) == RECORD_TYPE && TYPE_CONTAINS_TEMPLATE_P (gnu_type)) return size_binop (PLUS_EXPR, - rm_size (TREE_TYPE (DECL_CHAIN (TYPE_FIELDS (gnu_type)))), - DECL_SIZE (TYPE_FIELDS (gnu_type))); + bit_position (DECL_CHAIN (TYPE_FIELDS (gnu_type))), + rm_size (TREE_TYPE (DECL_CHAIN (TYPE_FIELDS (gnu_type))))); /* For record or union types, we store the size explicitly. */ if (RECORD_OR_UNION_TYPE_P (gnu_type) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ada/gcc-interface/trans.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ada/gcc-interface/trans.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ada/gcc-interface/trans.c 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ada/gcc-interface/trans.c 2018-12-16 02:31:32.000000000 +0000 @@ -2308,10 +2308,8 @@ gnu_type = TREE_TYPE (gnu_prefix); /* Replace an unconstrained array type with the type of the underlying - array. We can't do this with a call to maybe_unconstrained_array - since we may have a TYPE_DECL. For 'Max_Size_In_Storage_Elements, - use the record type that will be used to allocate the object and its - template. */ + array, except for 'Max_Size_In_Storage_Elements because we need to + return the (maximum) size requested for an allocator. */ if (TREE_CODE (gnu_type) == UNCONSTRAINED_ARRAY_TYPE) { gnu_type = TYPE_OBJECT_RECORD_TYPE (gnu_type); @@ -2375,11 +2373,15 @@ gnu_result = substitute_placeholder_in_expr (gnu_result, gnu_expr); } - /* If the type contains a template, subtract its size. */ + /* If the type contains a template, subtract the padded size of the + template, except for 'Max_Size_In_Storage_Elements because we need + to return the (maximum) size requested for an allocator. */ if (TREE_CODE (gnu_type) == RECORD_TYPE - && TYPE_CONTAINS_TEMPLATE_P (gnu_type)) - gnu_result = size_binop (MINUS_EXPR, gnu_result, - DECL_SIZE (TYPE_FIELDS (gnu_type))); + && TYPE_CONTAINS_TEMPLATE_P (gnu_type) + && attribute != Attr_Max_Size_In_Storage_Elements) + gnu_result + = size_binop (MINUS_EXPR, gnu_result, + bit_position (DECL_CHAIN (TYPE_FIELDS (gnu_type)))); /* For 'Max_Size_In_Storage_Elements, adjust the unit. */ if (attribute == Attr_Max_Size_In_Storage_Elements) @@ -2856,8 +2858,7 @@ gnu_type = TREE_TYPE (gnu_prefix); gcc_assert (TREE_CODE (gnu_type) == UNCONSTRAINED_ARRAY_TYPE); - /* What we want is the offset of the ARRAY field in the record - that the thin pointer designates. */ + /* Return the padded size of the template in the object record type. */ gnu_type = TYPE_OBJECT_RECORD_TYPE (gnu_type); gnu_result = bit_position (DECL_CHAIN (TYPE_FIELDS (gnu_type))); gnu_result_type = get_unpadded_type (Etype (gnat_node)); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ada/gnat_rm.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/ada/gnat_rm.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ada/gnat_rm.texi 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ada/gnat_rm.texi 2019-01-02 08:05:17.000000000 +0000 @@ -25,7 +25,7 @@ AdaCore -Copyright @copyright{} 2008-2018, Free Software Foundation +Copyright @copyright{} 2008-2019, Free Software Foundation @end quotation @end copying diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ada/gnat_ugn.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/ada/gnat_ugn.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ada/gnat_ugn.texi 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ada/gnat_ugn.texi 2019-01-02 08:05:17.000000000 +0000 @@ -25,7 +25,7 @@ AdaCore -Copyright @copyright{} 2008-2018, Free Software Foundation +Copyright @copyright{} 2008-2019, Free Software Foundation @end quotation @end copying diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/addresses.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/addresses.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/addresses.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/addresses.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Inline functions to test validity of reg classes for addressing modes. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/alias.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/alias.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/alias.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/alias.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Alias analysis for GNU C - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by John Carr (jfc@mit.edu). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/alias.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/alias.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/alias.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/alias.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Exported functions from alias.c - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/align.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/align.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/align.h 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/align.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Alignment-related classes. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/alloc-pool.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/alloc-pool.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/alloc-pool.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/alloc-pool.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Functions to support a pool of allocatable objects. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Contributed by Daniel Berlin This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/alloc-pool.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/alloc-pool.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/alloc-pool.h 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/alloc-pool.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Functions to support a pool of allocatable objects - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Daniel Berlin This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/asan.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/asan.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/asan.c 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/asan.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* AddressSanitizer, a fast memory error detector. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Kostya Serebryany This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/asan.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/asan.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/asan.h 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/asan.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* AddressSanitizer, a fast memory error detector. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Kostya Serebryany This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/attribs.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/attribs.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/attribs.c 2018-11-09 20:18:11.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/attribs.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Functions dealing with attribute handling, used by most front ends. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/attribs.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/attribs.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/attribs.h 2018-11-09 20:18:11.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/attribs.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations and definitions dealing with attribute handling. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/auto-inc-dec.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/auto-inc-dec.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/auto-inc-dec.c 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/auto-inc-dec.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Discovery of auto-inc and auto-dec instructions. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Kenneth Zadeck This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/auto-profile.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/auto-profile.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/auto-profile.c 2018-12-10 19:27:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/auto-profile.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Read and annotate call graph profile from the auto profile data file. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Dehao Chen (dehao@google.com) This file is part of GCC. @@ -101,6 +101,23 @@ namespace autofdo { +/* Intermediate edge info used when propagating AutoFDO profile information. + We can't edge->count() directly since it's computed from edge's probability + while probability is yet not decided during propagation. */ +#define AFDO_EINFO(e) ((struct edge_info *) e->aux) +class edge_info +{ +public: + edge_info () : count_ (profile_count::zero ().afdo ()), annotated_ (false) {} + bool is_annotated () const { return annotated_; } + void set_annotated () { annotated_ = true; } + profile_count get_count () const { return count_; } + void set_count (profile_count count) { count_ = count; } +private: + profile_count count_; + bool annotated_; +}; + /* Represent a source location: (function_decl, lineno). */ typedef std::pair decl_lineno; @@ -970,17 +987,11 @@ if (map.size () == 0) return; gcall *stmt = dyn_cast (gs); - if ((!stmt) || gimple_call_fndecl (stmt) != NULL_TREE) + if (!stmt + || gimple_call_internal_p (stmt) + || gimple_call_fndecl (stmt) != NULL_TREE) return; - callee = gimple_call_fn (stmt); - - histogram_value hist = gimple_alloc_histogram_value ( - cfun, HIST_TYPE_INDIR_CALL, stmt, callee); - hist->n_counters = 3; - hist->hvalue.counters = XNEWVEC (gcov_type, hist->n_counters); - gimple_add_histogram_value (cfun, stmt, hist); - gcov_type total = 0; icall_target_map::const_iterator max_iter = map.end (); @@ -991,9 +1002,20 @@ if (max_iter == map.end () || max_iter->second < iter->second) max_iter = iter; } + struct cgraph_node *direct_call = cgraph_node::get_for_asmname ( + get_identifier (afdo_string_table->get_name (max_iter->first))); + if (direct_call == NULL || !direct_call->profile_id) + return; - hist->hvalue.counters[0] - = (unsigned long long)afdo_string_table->get_name (max_iter->first); + callee = gimple_call_fn (stmt); + + histogram_value hist = gimple_alloc_histogram_value ( + cfun, HIST_TYPE_INDIR_CALL, stmt, callee); + hist->n_counters = 3; + hist->hvalue.counters = XNEWVEC (gcov_type, hist->n_counters); + gimple_add_histogram_value (cfun, stmt, hist); + + hist->hvalue.counters[0] = direct_call->profile_id; hist->hvalue.counters[1] = max_iter->second; hist->hvalue.counters[2] = total; @@ -1002,8 +1024,6 @@ struct cgraph_edge *indirect_edge = cgraph_node::get (current_function_decl)->get_edge (stmt); - struct cgraph_node *direct_call = cgraph_node::get_for_asmname ( - get_identifier ((const char *) hist->hvalue.counters[0])); if (dump_file) { @@ -1067,18 +1087,6 @@ annotated->insert (bb); } -static bool -is_edge_annotated (const edge e, const edge_set &annotated) -{ - return annotated.find (e) != annotated.end (); -} - -static void -set_edge_annotated (edge e, edge_set *annotated) -{ - annotated->insert (e); -} - /* For a given BB, set its execution count. Attach value profile if a stmt is not in PROMOTED, because we only want to promote an indirect call once. Return TRUE if BB is annotated. */ @@ -1188,12 +1196,11 @@ edges' counts are known, then the basic block's unknown count can also be calculated. IS_SUCC is true if out edges of a basic blocks are examined. - Update ANNOTATED_BB and ANNOTATED_EDGE accordingly. + Update ANNOTATED_BB accordingly. Return TRUE if any basic block/edge count is changed. */ static bool -afdo_propagate_edge (bool is_succ, bb_set *annotated_bb, - edge_set *annotated_edge) +afdo_propagate_edge (bool is_succ, bb_set *annotated_bb) { basic_block bb; bool changed = false; @@ -1206,30 +1213,30 @@ profile_count total_known_count = profile_count::zero ().afdo (); FOR_EACH_EDGE (e, ei, is_succ ? bb->succs : bb->preds) - if (!is_edge_annotated (e, *annotated_edge)) - num_unknown_edge++, unknown_edge = e; - else - total_known_count += e->count (); + { + gcc_assert (AFDO_EINFO (e) != NULL); + if (! AFDO_EINFO (e)->is_annotated ()) + num_unknown_edge++, unknown_edge = e; + else + total_known_count += AFDO_EINFO (e)->get_count (); + } - if (num_unknown_edge == 0) + /* Be careful not to annotate block with no successor in special cases. */ + if (num_unknown_edge == 0 && total_known_count > bb->count) { - if (total_known_count > bb->count) - { - bb->count = total_known_count; - changed = true; - } - if (!is_bb_annotated (bb, *annotated_bb)) - { - set_bb_annotated (bb, annotated_bb); - changed = true; - } + bb->count = total_known_count; + if (!is_bb_annotated (bb, *annotated_bb)) + set_bb_annotated (bb, annotated_bb); + changed = true; } else if (num_unknown_edge == 1 && is_bb_annotated (bb, *annotated_bb)) { - unknown_edge->probability - = total_known_count.probability_in (bb->count); - set_edge_annotated (unknown_edge, annotated_edge); - changed = true; + if (bb->count > total_known_count) + AFDO_EINFO (unknown_edge)->set_count (bb->count - total_known_count); + else + AFDO_EINFO (unknown_edge)->set_count (profile_count::zero().afdo ()); + AFDO_EINFO (unknown_edge)->set_annotated (); + changed = true; } } return changed; @@ -1265,11 +1272,10 @@ goto BB3 In this case, we need to propagate through PHI to determine the edge - count of BB1->BB.t1, BB.t1->BB.t2. - Update ANNOTATED_EDGE accordingly. */ + count of BB1->BB.t1, BB.t1->BB.t2. */ static void -afdo_propagate_circuit (const bb_set &annotated_bb, edge_set *annotated_edge) +afdo_propagate_circuit (const bb_set &annotated_bb) { basic_block bb; FOR_ALL_BB_FN (bb, cfun) @@ -1308,7 +1314,7 @@ bool check_value_one = (((integer_onep (cmp_rhs)) ^ (gimple_cond_code (cmp_stmt) == EQ_EXPR)) ^ ((e->flags & EDGE_TRUE_VALUE) != 0)); - if (!is_edge_annotated (e, *annotated_edge)) + if (! AFDO_EINFO (e)->is_annotated ()) continue; for (i = 0; i < gimple_phi_num_args (phi_stmt); i++) { @@ -1322,18 +1328,18 @@ continue; total++; only_one = ep; - if (!e->probability.initialized_p () - && !is_edge_annotated (ep, *annotated_edge)) - { - ep->probability = profile_probability::never ().afdo (); - set_edge_annotated (ep, annotated_edge); - } - } - if (total == 1 && !is_edge_annotated (only_one, *annotated_edge)) - { - only_one->probability = e->probability; - set_edge_annotated (only_one, annotated_edge); - } + if (! (AFDO_EINFO (e)->get_count ()).nonzero_p () + && ! AFDO_EINFO (ep)->is_annotated ()) + { + AFDO_EINFO (ep)->set_count (profile_count::zero ().afdo ()); + AFDO_EINFO (ep)->set_annotated (); + } + } + if (total == 1 && ! AFDO_EINFO (only_one)->is_annotated ()) + { + AFDO_EINFO (only_one)->set_count (AFDO_EINFO (e)->get_count ()); + AFDO_EINFO (only_one)->set_annotated (); + } } } } @@ -1342,7 +1348,7 @@ graph. We do the propagation iteratively until stablize. */ static void -afdo_propagate (bb_set *annotated_bb, edge_set *annotated_edge) +afdo_propagate (bb_set *annotated_bb) { basic_block bb; bool changed = true; @@ -1359,11 +1365,11 @@ { changed = false; - if (afdo_propagate_edge (true, annotated_bb, annotated_edge)) + if (afdo_propagate_edge (true, annotated_bb)) changed = true; - if (afdo_propagate_edge (false, annotated_bb, annotated_edge)) + if (afdo_propagate_edge (false, annotated_bb)) changed = true; - afdo_propagate_circuit (*annotated_bb, annotated_edge); + afdo_propagate_circuit (*annotated_bb); } } @@ -1371,52 +1377,59 @@ probabilities. */ static void -afdo_calculate_branch_prob (bb_set *annotated_bb, edge_set *annotated_edge) +afdo_calculate_branch_prob (bb_set *annotated_bb) { + edge e; + edge_iterator ei; basic_block bb; - bool has_sample = false; - - FOR_EACH_BB_FN (bb, cfun) - { - if (bb->count > profile_count::zero ()) - { - has_sample = true; - break; - } - } - - if (!has_sample) - return; calculate_dominance_info (CDI_POST_DOMINATORS); calculate_dominance_info (CDI_DOMINATORS); loop_optimizer_init (0); + FOR_ALL_BB_FN (bb, cfun) + { + gcc_assert (bb->aux == NULL); + FOR_EACH_EDGE (e, ei, bb->succs) + { + gcc_assert (e->aux == NULL); + e->aux = new edge_info (); + } + } + afdo_find_equiv_class (annotated_bb); - afdo_propagate (annotated_bb, annotated_edge); + afdo_propagate (annotated_bb); FOR_EACH_BB_FN (bb, cfun) { - edge e; - edge_iterator ei; int num_unknown_succ = 0; profile_count total_count = profile_count::zero ().afdo (); FOR_EACH_EDGE (e, ei, bb->succs) { - if (!is_edge_annotated (e, *annotated_edge)) + gcc_assert (AFDO_EINFO (e) != NULL); + if (! AFDO_EINFO (e)->is_annotated ()) num_unknown_succ++; else - total_count += e->count (); + total_count += AFDO_EINFO (e)->get_count (); } if (num_unknown_succ == 0 && total_count > profile_count::zero ()) { - FOR_EACH_EDGE (e, ei, bb->succs) - e->probability = e->count ().probability_in (total_count); + FOR_EACH_EDGE (e, ei, bb->succs) + e->probability + = AFDO_EINFO (e)->get_count ().probability_in (total_count); } } FOR_ALL_BB_FN (bb, cfun) - bb->aux = NULL; + { + bb->aux = NULL; + FOR_EACH_EDGE (e, ei, bb->succs) + if (AFDO_EINFO (e) != NULL) + { + delete AFDO_EINFO (e); + e->aux = NULL; + } + } loop_optimizer_finalize (); free_dominance_info (CDI_DOMINATORS); @@ -1496,7 +1509,6 @@ { basic_block bb; bb_set annotated_bb; - edge_set annotated_edge; const function_instance *s = afdo_source_profile->get_function_instance_by_decl ( current_function_decl); @@ -1511,21 +1523,15 @@ profile_count max_count = ENTRY_BLOCK_PTR_FOR_FN (cfun)->count; FOR_EACH_BB_FN (bb, cfun) - { - edge e; - edge_iterator ei; - - /* As autoFDO uses sampling approach, we have to assume that all - counters are zero when not seen by autoFDO. */ - bb->count = profile_count::zero ().afdo (); - FOR_EACH_EDGE (e, ei, bb->succs) - e->probability = profile_probability::uninitialized (); - - if (afdo_set_bb_count (bb, promoted_stmts)) - set_bb_annotated (bb, &annotated_bb); - if (bb->count > max_count) - max_count = bb->count; - } + { + /* As autoFDO uses sampling approach, we have to assume that all + counters are zero when not seen by autoFDO. */ + bb->count = profile_count::zero ().afdo (); + if (afdo_set_bb_count (bb, promoted_stmts)) + set_bb_annotated (bb, &annotated_bb); + if (bb->count > max_count) + max_count = bb->count; + } if (ENTRY_BLOCK_PTR_FOR_FN (cfun)->count > ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb->count) { @@ -1546,10 +1552,11 @@ afdo_source_profile->mark_annotated (cfun->function_end_locus); if (max_count > profile_count::zero ()) { - afdo_calculate_branch_prob (&annotated_bb, &annotated_edge); - update_max_bb_count (); - profile_status_for_fn (cfun) = PROFILE_READ; + /* Calculate, propagate count and probability information on CFG. */ + afdo_calculate_branch_prob (&annotated_bb); } + update_max_bb_count (); + profile_status_for_fn (cfun) = PROFILE_READ; if (flag_value_profile_transformations) { gimple_value_profile_transformations (); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/auto-profile.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/auto-profile.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/auto-profile.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/auto-profile.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* auto-profile.h - Defines data exported from auto-profile.c - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Dehao Chen (dehao@google.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/backend.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/backend.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/backend.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/backend.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Common Backend requirements. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Andrew MacLeod This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/basic-block.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/basic-block.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/basic-block.h 2018-01-10 10:57:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/basic-block.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Define control flow data structures for the CFG. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/bb-reorder.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/bb-reorder.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/bb-reorder.c 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/bb-reorder.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Basic block reordering routines for the GNU compiler. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/bb-reorder.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/bb-reorder.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/bb-reorder.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/bb-reorder.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Basic block reordering routines for the GNU compiler. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/bitmap.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/bitmap.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/bitmap.c 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/bitmap.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Functions to support general ended bitmaps. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/bitmap.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/bitmap.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/bitmap.h 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/bitmap.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Functions to support general ended bitmaps. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brig-builtins.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brig-builtins.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brig-builtins.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brig-builtins.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-builtins.h -- brig builtin definitions - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brig-c.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brig-c.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brig-c.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brig-c.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-c.h -- Header file for brig input's gcc C interface. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-arg-block-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-arg-block-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-arg-block-handler.cc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-arg-block-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-arg-block-handler.cc -- brig arg block start/end directive handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-atomic-inst-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-atomic-inst-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-atomic-inst-handler.cc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-atomic-inst-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-atomic-inst-handler.cc -- brig atomic instruction handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-basic-inst-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-basic-inst-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-basic-inst-handler.cc 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-basic-inst-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-basic-inst-handler.cc -- brig basic instruction handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-branch-inst-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-branch-inst-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-branch-inst-handler.cc 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-branch-inst-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-branch-inst-handler.cc -- brig branch instruction handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-cmp-inst-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-cmp-inst-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-cmp-inst-handler.cc 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-cmp-inst-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-cmp-inst-handler.cc -- brig cmp instruction handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-code-entry-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-code-entry-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-code-entry-handler.cc 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-code-entry-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-code-entry-handler.cc -- a gccbrig base class - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-code-entry-handler.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-code-entry-handler.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-code-entry-handler.h 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-code-entry-handler.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-code-entry-handler.h -- a gccbrig base class - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-comment-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-comment-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-comment-handler.cc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-comment-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-comment-handler.cc -- brig comment directive handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-control-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-control-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-control-handler.cc 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-control-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-control-handler.cc -- brig control directive handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-copy-move-inst-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-copy-move-inst-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-copy-move-inst-handler.cc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-copy-move-inst-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-copy-move-inst-handler.cc -- brig copy/move instruction handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-cvt-inst-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-cvt-inst-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-cvt-inst-handler.cc 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-cvt-inst-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-cvt-inst-handler.cc -- brig cvt (convert) instruction handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-fbarrier-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-fbarrier-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-fbarrier-handler.cc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-fbarrier-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-fbarrier-handler.cc -- brig fbarrier directive handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-function.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-function.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-function.cc 2018-05-21 12:22:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-function.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-function.cc -- declaration of brig_function class. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-function.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-function.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-function.h 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-function.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-function.h -- declaration of brig_function class. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-function-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-function-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-function-handler.cc 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-function-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-code-entry-handler.cc -- brig function directive handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-inst-mod-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-inst-mod-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-inst-mod-handler.cc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-inst-mod-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-inst-mod-handler.cc -- brig rounding moded instruction handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-label-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-label-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-label-handler.cc 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-label-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-label-handler.cc -- brig label directive handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-lane-inst-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-lane-inst-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-lane-inst-handler.cc 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-lane-inst-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-lane-inst-handler.cc -- brig lane instruction handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-machine.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-machine.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-machine.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-machine.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-machine.c -- gccbrig machine queries - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-machine.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-machine.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-machine.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-machine.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-machine.h -- gccbrig machine queries - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-mem-inst-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-mem-inst-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-mem-inst-handler.cc 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-mem-inst-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-mem-inst-handler.cc -- brig memory inst handler - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-module-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-module-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-module-handler.cc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-module-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-module-handler.cc -- brig module directive handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-queue-inst-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-queue-inst-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-queue-inst-handler.cc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-queue-inst-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* brig-queue-inst-handler.cc -- brig user mode queue related instruction handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-seg-inst-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-seg-inst-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-seg-inst-handler.cc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-seg-inst-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-seg-inst-handler.cc -- brig segment related instruction handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-signal-inst-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-signal-inst-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-signal-inst-handler.cc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-signal-inst-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-signal-inst-handler.cc -- brig signal instruction handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-to-generic.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-to-generic.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-to-generic.cc 2018-06-08 18:00:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-to-generic.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig2tree.cc -- brig to gcc generic/gimple tree conversion - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-to-generic.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-to-generic.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-to-generic.h 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-to-generic.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-to-generic.h -- brig to gcc generic conversion - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-util.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-util.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-util.cc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-util.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-util.cc -- gccbrig utility functions - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-util.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-util.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-util.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-util.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-util.h -- gccbrig utility functions - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-variable-handler.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-variable-handler.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/brig-variable-handler.cc 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/brig-variable-handler.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-variable-handler.cc -- brig variable directive handling - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/phsa.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/phsa.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigfrontend/phsa.h 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigfrontend/phsa.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* phsa.h -- interfacing between the gcc BRIG FE and the phsa runtime - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brig-lang.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brig-lang.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brig-lang.c 2018-07-21 17:29:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brig-lang.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brig-lang.c -- brig (HSAIL) input gcc interface. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigspec.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigspec.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/brigspec.c 2018-07-09 11:23:03.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/brigspec.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* brigspec.c -- Specific flags and argument handling of the gcc BRIG front end. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/ChangeLog 2018-10-19 09:35:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/ChangeLog 2019-01-02 08:05:15.000000000 +0000 @@ -1,3 +1,7 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + 2018-10-17 David Malcolm * Make-lang.in (selftest-brig): New. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/config-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/config-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/config-lang.in 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/config-lang.in 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ # config-lang.in -- Top level configure fragment for gcc BRIG (HSAIL) frontend. -# Copyright (C) 2015-2018 Free Software Foundation, Inc. +# Copyright (C) 2015-2019 Free Software Foundation, Inc. # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/gccbrig.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/gccbrig.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/gccbrig.texi 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/gccbrig.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gccbrig.info @settitle The GNU BRIG (HSAIL) Compiler -@set copyrights-brig 2017-2018 +@set copyrights-brig 2017-2019 @c Merge the standard indexes into a single one. @syncodeindex fn cp diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/lang.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/lang.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/lang.opt 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/lang.opt 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ ; lang.opt -- Options for the gcc BRIG (HSAIL) front end. -; Copyright (C) 2015-2018 Free Software Foundation, Inc. +; Copyright (C) 2015-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/lang-specs.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/lang-specs.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/lang-specs.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/lang-specs.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* lang-specs.h -- gcc driver specs for BRIG (HSAIL) frontend. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/Make-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/Make-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig/Make-lang.in 2018-10-19 09:35:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig/Make-lang.in 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ # Make-lang.in -- Top level -*- makefile -*- fragment for gcc BRIG (HSAIL) # frontend. -# Copyright (C) 2015-2018 Free Software Foundation, Inc. +# Copyright (C) 2015-2019 Free Software Foundation, Inc. # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig-builtins.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig-builtins.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/brig-builtins.def 2018-05-05 11:58:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/brig-builtins.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* This file contains the definitions and documentation for the HSAIL builtins used in the GNU compiler. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/bt-load.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/bt-load.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/bt-load.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/bt-load.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Perform branch target register load optimizations. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/builtin-attrs.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/builtin-attrs.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/builtin-attrs.def 2018-08-02 03:04:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/builtin-attrs.def 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2018 Free Software Foundation, Inc. +/* Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Joseph Myers . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/builtins.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/builtins.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/builtins.c 2018-12-04 09:51:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/builtins.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Expand builtin functions. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -575,26 +575,25 @@ { /* C_STRLEN will return NULL and set DECL in the info structure if EXP references a unterminated array. */ - c_strlen_data data; - memset (&data, 0, sizeof (c_strlen_data)); - tree len = c_strlen (exp, 1, &data); - if (len == NULL_TREE && data.len && data.decl) + c_strlen_data lendata = { }; + tree len = c_strlen (exp, 1, &lendata); + if (len == NULL_TREE && lendata.minlen && lendata.decl) { if (size) { - len = data.len; - if (data.off) + len = lendata.minlen; + if (lendata.off) { - /* Constant offsets are already accounted for in data.len, but - not in a SSA_NAME + CST expression. */ - if (TREE_CODE (data.off) == INTEGER_CST) + /* Constant offsets are already accounted for in LENDATA.MINLEN, + but not in a SSA_NAME + CST expression. */ + if (TREE_CODE (lendata.off) == INTEGER_CST) *exact = true; - else if (TREE_CODE (data.off) == PLUS_EXPR - && TREE_CODE (TREE_OPERAND (data.off, 1)) == INTEGER_CST) + else if (TREE_CODE (lendata.off) == PLUS_EXPR + && TREE_CODE (TREE_OPERAND (lendata.off, 1)) == INTEGER_CST) { /* Subtract the offset from the size of the array. */ *exact = false; - tree temp = TREE_OPERAND (data.off, 1); + tree temp = TREE_OPERAND (lendata.off, 1); temp = fold_convert (ssizetype, temp); len = fold_build2 (MINUS_EXPR, ssizetype, len, temp); } @@ -606,7 +605,7 @@ *size = len; } - return data.decl; + return lendata.decl; } return NULL_TREE; @@ -647,8 +646,7 @@ /* If we were not passed a DATA pointer, then get one to a local structure. That avoids having to check DATA for NULL before each time we want to use it. */ - c_strlen_data local_strlen_data; - memset (&local_strlen_data, 0, sizeof (c_strlen_data)); + c_strlen_data local_strlen_data = { }; if (!data) data = &local_strlen_data; @@ -722,7 +720,7 @@ { data->decl = decl; data->off = byteoff; - data->len = ssize_int (len); + data->minlen = ssize_int (len); return NULL_TREE; } @@ -796,7 +794,7 @@ { data->decl = decl; data->off = byteoff; - data->len = ssize_int (len); + data->minlen = ssize_int (len); return NULL_TREE; } @@ -3085,9 +3083,8 @@ /* FIXME: Change c_strlen() to return sizetype instead of ssizetype so these conversions aren't necessary. */ - c_strlen_data data; - memset (&data, 0, sizeof (c_strlen_data)); - tree len = c_strlen (src, 0, &data, 1); + c_strlen_data lendata = { }; + tree len = c_strlen (src, 0, &lendata, 1); if (len) len = fold_convert_loc (loc, TREE_TYPE (bound), len); @@ -3109,12 +3106,12 @@ strnlen (&a[i], sizeof a) where the value of i is unknown. Unless i's value is zero, the call is unsafe because the bound is greater. */ - data.decl = unterminated_array (src, &len, &exact); - if (!data.decl) + lendata.decl = unterminated_array (src, &len, &exact); + if (!lendata.decl) return NULL_RTX; } - if (data.decl + if (lendata.decl && !TREE_NO_WARNING (exp) && ((tree_int_cst_lt (len, bound)) || !exact)) @@ -3130,7 +3127,7 @@ "of at most %E of unterminated array"), exp, func, bound, len)) { - inform (DECL_SOURCE_LOCATION (data.decl), + inform (DECL_SOURCE_LOCATION (lendata.decl), "referenced argument declared here"); TREE_NO_WARNING (exp) = true; return NULL_RTX; @@ -3163,12 +3160,12 @@ bool exact = true; if (!len || TREE_CODE (len) != INTEGER_CST) { - data.decl = unterminated_array (src, &len, &exact); - if (!data.decl) + lendata.decl = unterminated_array (src, &len, &exact); + if (!lendata.decl) return NULL_RTX; } - if (data.decl + if (lendata.decl && !TREE_NO_WARNING (exp) && (wi::ltu_p (wi::to_wide (len), min) || !exact)) @@ -3184,13 +3181,13 @@ "the size of at most %E of unterminated array"), exp, func, min.to_uhwi (), max.to_uhwi (), len)) { - inform (DECL_SOURCE_LOCATION (data.decl), + inform (DECL_SOURCE_LOCATION (lendata.decl), "referenced argument declared here"); TREE_NO_WARNING (exp) = true; } } - if (data.decl) + if (lendata.decl) return NULL_RTX; if (wi::gtu_p (min, wi::to_wide (len))) @@ -3344,7 +3341,10 @@ the upper bound given by MAXREAD add one to it for the terminating nul. Otherwise, set it to one for the same reason, or to MAXREAD as appropriate. */ - get_range_strlen (srcstr, range); + c_strlen_data lendata = { }; + get_range_strlen (srcstr, &lendata, /* eltsize = */ 1); + range[0] = lendata.minlen; + range[1] = lendata.maxbound; if (range[0] && (!maxread || TREE_CODE (maxread) == INTEGER_CST)) { if (maxread && tree_int_cst_le (maxread, range[0])) @@ -3942,7 +3942,8 @@ dest_mem = replace_equiv_address (dest_mem, target); } - create_output_operand (&ops[0], retmode ? target : NULL_RTX, Pmode); + create_output_operand (&ops[0], + retmode != RETURN_BEGIN ? target : NULL_RTX, Pmode); create_fixed_operand (&ops[1], dest_mem); create_fixed_operand (&ops[2], src_mem); if (!maybe_expand_insn (targetm.code_for_movstr, 3, ops)) @@ -4086,15 +4087,14 @@ compile-time, not an expression containing a string. This is because the latter will potentially produce pessimized code when used to produce the return value. */ - c_strlen_data data; - memset (&data, 0, sizeof (c_strlen_data)); + c_strlen_data lendata = { }; if (!c_getstr (src, NULL) - || !(len = c_strlen (src, 0, &data, 1))) + || !(len = c_strlen (src, 0, &lendata, 1))) return expand_movstr (dst, src, target, /*retmode=*/ RETURN_END_MINUS_ONE); - if (data.decl && !TREE_NO_WARNING (exp)) - warn_string_no_nul (EXPR_LOCATION (exp), "stpcpy", src, data.decl); + if (lendata.decl && !TREE_NO_WARNING (exp)) + warn_string_no_nul (EXPR_LOCATION (exp), "stpcpy", src, lendata.decl); lenp1 = size_binop_loc (loc, PLUS_EXPR, len, ssize_int (1)); ret = expand_builtin_mempcpy_args (dst, src, lenp1, @@ -4212,8 +4212,8 @@ /* Try to determine the range of lengths that the source expression refers to. */ - tree lenrange[2]; - get_range_strlen (src, lenrange); + c_strlen_data lendata = { }; + get_range_strlen (src, &lendata, /* eltsize = */ 1); /* Try to verify that the destination is big enough for the shortest string. */ @@ -4227,8 +4227,8 @@ } /* Add one for the terminating nul. */ - tree srclen = (lenrange[0] - ? fold_build2 (PLUS_EXPR, size_type_node, lenrange[0], + tree srclen = (lendata.minlen + ? fold_build2 (PLUS_EXPR, size_type_node, lendata.minlen, size_one_node) : NULL_TREE); @@ -4280,12 +4280,15 @@ tree slen = c_strlen (src, 1); /* Try to determine the range of lengths that the source expression - refers to. */ - tree lenrange[2]; - if (slen) - lenrange[0] = lenrange[1] = slen; - else - get_range_strlen (src, lenrange); + refers to. Since the lengths are only used for warning and not + for code generation disable strict mode below. */ + tree maxlen = slen; + if (!maxlen) + { + c_strlen_data lendata = { }; + get_range_strlen (src, &lendata, /* eltsize = */ 1); + maxlen = lendata.maxbound; + } /* Try to verify that the destination is big enough for the shortest string. First try to determine the size of the destination object @@ -4293,8 +4296,8 @@ tree destsize = compute_objsize (dest, warn_stringop_overflow - 1); /* Add one for the terminating nul. */ - tree srclen = (lenrange[0] - ? fold_build2 (PLUS_EXPR, size_type_node, lenrange[0], + tree srclen = (maxlen + ? fold_build2 (PLUS_EXPR, size_type_node, maxlen, size_one_node) : NULL_TREE); @@ -8571,23 +8574,22 @@ return NULL_TREE; else { - c_strlen_data data; - memset (&data, 0, sizeof (c_strlen_data)); - tree len = c_strlen (arg, 0, &data); + c_strlen_data lendata = { }; + tree len = c_strlen (arg, 0, &lendata); if (len) return fold_convert_loc (loc, type, len); - if (!data.decl) - c_strlen (arg, 1, &data); + if (!lendata.decl) + c_strlen (arg, 1, &lendata); - if (data.decl) + if (lendata.decl) { if (EXPR_HAS_LOCATION (arg)) loc = EXPR_LOCATION (arg); else if (loc == UNKNOWN_LOCATION) loc = input_location; - warn_string_no_nul (loc, "strlen", arg, data.decl); + warn_string_no_nul (loc, "strlen", arg, lendata.decl); } return NULL_TREE; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/builtins.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/builtins.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/builtins.def 2018-08-12 11:28:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/builtins.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* This file contains the definitions and documentation for the builtins used in the GNU compiler. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/builtins.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/builtins.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/builtins.h 2018-10-04 06:31:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/builtins.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Expand builtin functions. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -57,10 +57,48 @@ unsigned HOST_WIDE_INT *); extern unsigned int get_pointer_alignment (tree); extern unsigned string_length (const void*, unsigned, unsigned); + struct c_strlen_data { + /* [MINLEN, MAXBOUND, MAXLEN] is a range describing the length of + one or more strings of possibly unknown length. For a single + string of known length the range is a constant where + MINLEN == MAXBOUND == MAXLEN holds. + For other strings, MINLEN is the length of the shortest known + string. MAXBOUND is the length of a string that could be stored + in the largest array referenced by the expression. MAXLEN is + the length of the longest sequence of non-zero bytes + in an object referenced by the expression. For such strings, + MINLEN <= MAXBOUND <= MAXLEN holds. For example, given: + struct A { char a[7], b[]; }; + extern struct A *p; + n = strlen (p->a); + the computed range will be [0, 6, ALL_ONES]. + However, for a conditional expression involving a string + of known length and an array of unknown bound such as + n = strlen (i ? p->b : "123"); + the range will be [3, 3, ALL_ONES]. + MINLEN != 0 && MAXLEN == ALL_ONES indicates that MINLEN is + the length of the shortest known string and implies that + the shortest possible string referenced by the expression may + actually be the empty string. This distinction is useful for + diagnostics. get_range_strlen() return value distinguishes + between these two cases. + As the tighter (and more optimistic) bound, MAXBOUND is suitable + for diagnostics but not for optimization. + As the more conservative bound, MAXLEN is intended to be used + for optimization. */ + tree minlen; + tree maxlen; + tree maxbound; + /* When non-null, NONSTR refers to the declaration known to store + an unterminated constant character array, as in: + const char s[] = { 'a', 'b', 'c' }; + It is used to diagnose uses of such arrays in functions such as + strlen() that expect a nul-terminated string as an argument. */ tree decl; - tree len; + /* Non-constant offset from the beginning of a string not accounted + for in the length range. Used to improve diagnostics. */ tree off; }; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/builtin-types.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/builtin-types.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/builtin-types.def 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/builtin-types.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2018 Free Software Foundation, Inc. +/* Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-aux-info.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-aux-info.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-aux-info.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-aux-info.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ /* Generate information regarding function declarations and definitions based on information stored in GCC's tree structure. This code implements the -aux-info option. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. Contributed by Ron Guilmette (rfg@segfault.us.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-convert.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-convert.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-convert.c 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-convert.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Language-level data type conversion for GNU C. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-decl.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-decl.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-decl.c 2018-11-29 22:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-decl.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Process declarations and variables for C compiler. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-errors.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-errors.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-errors.c 2018-10-19 09:35:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-errors.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Various diagnostic subroutines for the GNU C language. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Gabriel Dos Reis This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-fold.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-fold.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-fold.c 2018-05-12 14:22:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-fold.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Support for fully folding sub-trees of an expression for C compiler. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/ChangeLog 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/ChangeLog 2019-01-02 08:05:15.000000000 +0000 @@ -1,3 +1,40 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + +2018-12-20 H.J. Lu + + PR c/51628 + * c-typeck.c (convert_for_assignment): Call + warn_for_address_or_pointer_of_packed_member. + +2018-12-19 Segher Boessenkool + + * c-parser.c (c_parser_asm_statement) : Give + a more specific error message (instead of just falling through). + +2018-12-19 Segher Boessenkool + + * c-parser.c (c_parser_asm_statement): Keep track of the location each + asm qualifier is first seen; use that to give nicer "duplicate asm + qualifier" messages. Delete 'quals" variable, instead pass the + "is_volatile_ flag to build_asm_stmt directly. + * c-tree.h (build_asm_stmt): Make the first arg bool instead of tree. + * c-typeck.c (build_asm_stmt): Ditto; adjust. + +2018-12-19 Segher Boessenkool + + * c-parser.c (c_parser_asm_statement): Rewrite the loop to work without + "done" boolean variable. + +2018-12-19 David Malcolm + + PR c++/87504 + * c-typeck.c (class maybe_range_label_for_tree_type_mismatch): + Move from here to gcc-rich-location.h and gcc-rich-location.c. + (build_binary_op): Use struct op_location_t and + class binary_op_rich_location. + 2018-12-11 Jakub Jelinek PR sanitizer/88426 @@ -5864,7 +5901,7 @@ * c-decl.c: Likewise. Include gt-c-c-decl.h, not gt-c-decl.h. * c-parser.c: Likewise. Include gt-c-c-parser.h, not gt-c-parser.h. -Copyright (C) 2012-2018 Free Software Foundation, Inc. +Copyright (C) 2012-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-lang.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-lang.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-lang.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-lang.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Language-specific hook definitions for C front end. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-lang.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-lang.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-lang.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-lang.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for C language specific types. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-objc-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-objc-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-objc-common.c 2018-09-18 08:44:16.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-objc-common.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Some code common to C and ObjC front ends. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-objc-common.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-objc-common.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-objc-common.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-objc-common.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Language hooks common to C and ObjC front ends. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Ziemowit Laski This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/config-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/config-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/config-lang.in 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/config-lang.in 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Top level configure fragment for GNU C - C language. -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2019 Free Software Foundation, Inc. #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-parser.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-parser.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-parser.c 2018-12-09 09:05:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-parser.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Parser for C and Objective-C. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Parser actions based on the old Bison parser; structure somewhat influenced by and fragments based on the C++ parser. @@ -6360,52 +6360,72 @@ static tree c_parser_asm_statement (c_parser *parser) { - tree quals, str, outputs, inputs, clobbers, labels, ret; - bool simple, is_volatile, is_inline, is_goto; + tree str, outputs, inputs, clobbers, labels, ret; + bool simple; location_t asm_loc = c_parser_peek_token (parser)->location; int section, nsections; gcc_assert (c_parser_next_token_is_keyword (parser, RID_ASM)); c_parser_consume_token (parser); - quals = NULL_TREE; - is_volatile = false; - is_inline = false; - is_goto = false; - for (bool done = false; !done; ) - switch (c_parser_peek_token (parser)->keyword) - { - case RID_VOLATILE: - if (!is_volatile) - { - is_volatile = true; - quals = c_parser_peek_token (parser)->value; - c_parser_consume_token (parser); - } - else - done = true; - break; - case RID_INLINE: - if (!is_inline) - { - is_inline = true; - c_parser_consume_token (parser); - } - else - done = true; - break; - case RID_GOTO: - if (!is_goto) - { - is_goto = true; - c_parser_consume_token (parser); - } - else - done = true; - break; - default: - done = true; - } + /* Handle the asm-qualifier-list. */ + location_t volatile_loc = UNKNOWN_LOCATION; + location_t inline_loc = UNKNOWN_LOCATION; + location_t goto_loc = UNKNOWN_LOCATION; + for (;;) + { + c_token *token = c_parser_peek_token (parser); + location_t loc = token->location; + switch (token->keyword) + { + case RID_VOLATILE: + if (volatile_loc) + { + error_at (loc, "duplicate asm qualifier %qE", token->value); + inform (volatile_loc, "first seen here"); + } + else + volatile_loc = loc; + c_parser_consume_token (parser); + continue; + + case RID_INLINE: + if (inline_loc) + { + error_at (loc, "duplicate asm qualifier %qE", token->value); + inform (inline_loc, "first seen here"); + } + else + inline_loc = loc; + c_parser_consume_token (parser); + continue; + + case RID_GOTO: + if (goto_loc) + { + error_at (loc, "duplicate asm qualifier %qE", token->value); + inform (goto_loc, "first seen here"); + } + else + goto_loc = loc; + c_parser_consume_token (parser); + continue; + + case RID_CONST: + case RID_RESTRICT: + error_at (loc, "%qE is not an asm qualifier", token->value); + c_parser_consume_token (parser); + continue; + + default: + break; + } + break; + } + + bool is_volatile = (volatile_loc != UNKNOWN_LOCATION); + bool is_inline = (inline_loc != UNKNOWN_LOCATION); + bool is_goto = (goto_loc != UNKNOWN_LOCATION); /* ??? Follow the C++ parser rather than using the lex_untranslated_string kludge. */ @@ -6481,9 +6501,9 @@ if (!c_parser_require (parser, CPP_SEMICOLON, "expected %<;%>")) c_parser_skip_to_end_of_block_or_statement (parser); - ret = build_asm_stmt (quals, build_asm_expr (asm_loc, str, outputs, inputs, - clobbers, labels, simple, - is_inline)); + ret = build_asm_stmt (is_volatile, + build_asm_expr (asm_loc, str, outputs, inputs, + clobbers, labels, simple, is_inline)); error: parser->lex_untranslated_string = false; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-parser.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-parser.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-parser.h 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-parser.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations for the parser for C and Objective-C. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Parser actions based on the old Bison parser; structure somewhat influenced by and fragments based on the C++ parser. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-tree.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-tree.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-tree.h 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-tree.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for C parsing and type checking. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -679,7 +679,7 @@ extern void c_finish_case (tree, tree); extern tree build_asm_expr (location_t, tree, tree, tree, tree, tree, bool, bool); -extern tree build_asm_stmt (tree, tree); +extern tree build_asm_stmt (bool, tree); extern int c_types_compatible_p (tree, tree); extern tree c_begin_compound_stmt (bool); extern tree c_end_compound_stmt (location_t, tree, bool); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-typeck.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-typeck.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/c-typeck.c 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/c-typeck.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Build expressions with type checking for C compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -6724,7 +6724,11 @@ } if (TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (rhstype)) - return rhs; + { + warn_for_address_or_pointer_of_packed_member (false, type, + orig_rhs); + return rhs; + } if (coder == VOID_TYPE) { @@ -7279,6 +7283,11 @@ } } + /* If RHS is't an address, check pointer or array of packed + struct or union. */ + warn_for_address_or_pointer_of_packed_member + (TREE_CODE (orig_rhs) != ADDR_EXPR, type, orig_rhs); + return convert (type, rhs); } else if (codel == POINTER_TYPE && coder == ARRAY_TYPE) @@ -10316,9 +10325,9 @@ (guaranteed to be 'volatile' or null) and ARGS (represented using an ASM_EXPR node). */ tree -build_asm_stmt (tree cv_qualifier, tree args) +build_asm_stmt (bool is_volatile, tree args) { - if (!ASM_VOLATILE_P (args) && cv_qualifier) + if (is_volatile) ASM_VOLATILE_P (args) = 1; return add_stmt (args); } @@ -11313,38 +11322,6 @@ return build3 (VEC_COND_EXPR, type, cmp, minus_one_vec, zero_vec); } -/* Subclass of range_label for labelling the type of EXPR when reporting - a type mismatch between EXPR and OTHER_EXPR. - Either or both of EXPR and OTHER_EXPR could be NULL. */ - -class maybe_range_label_for_tree_type_mismatch : public range_label -{ - public: - maybe_range_label_for_tree_type_mismatch (tree expr, tree other_expr) - : m_expr (expr), m_other_expr (other_expr) - { - } - - label_text get_text (unsigned range_idx) const FINAL OVERRIDE - { - if (m_expr == NULL_TREE - || !EXPR_P (m_expr)) - return label_text (NULL, false); - tree expr_type = TREE_TYPE (m_expr); - - tree other_type = NULL_TREE; - if (m_other_expr && EXPR_P (m_other_expr)) - other_type = TREE_TYPE (m_other_expr); - - range_label_for_type_mismatch inner (expr_type, other_type); - return inner.get_text (range_idx); - } - - private: - tree m_expr; - tree m_other_expr; -}; - /* Build a binary-operation expression without default conversions. CODE is the kind of expression to build. LOCATION is the operator's location. @@ -12475,12 +12452,9 @@ if (!result_type) { - gcc_rich_location richloc (location); - maybe_range_label_for_tree_type_mismatch - label_for_op0 (orig_op0, orig_op1), - label_for_op1 (orig_op1, orig_op0); - richloc.maybe_add_expr (orig_op0, &label_for_op0); - richloc.maybe_add_expr (orig_op1, &label_for_op1); + /* Favor showing any expression locations that are available. */ + op_location_t oploc (location, UNKNOWN_LOCATION); + binary_op_rich_location richloc (oploc, orig_op0, orig_op1, true); binary_op_error (&richloc, code, TREE_TYPE (op0), TREE_TYPE (op1)); return error_mark_node; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/gccspec.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/gccspec.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/gccspec.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/gccspec.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific flags and argument handling of the C front-end. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/gimple-parser.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/gimple-parser.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/gimple-parser.c 2018-12-04 09:51:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/gimple-parser.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Parser for GIMPLE. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/gimple-parser.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/gimple-parser.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/gimple-parser.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/gimple-parser.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations for the parser for GIMPLE. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/Make-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/Make-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c/Make-lang.in 2018-10-19 09:35:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c/Make-lang.in 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Top level -*- makefile -*- fragment for GNU C - C language. -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2019 Free Software Foundation, Inc. #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/caller-save.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/caller-save.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/caller-save.c 2018-01-17 05:41:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/caller-save.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Save and restore call-clobbered registers which are live across a call. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/calls.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/calls.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/calls.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/calls.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Convert function calls to rtl insns, for GNU C compiler. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -1342,9 +1342,10 @@ /* Diagnose a call EXP to function FN decorated with attribute alloc_size whose argument numbers given by IDX with values given by ARGS exceed the maximum object size or cause an unsigned oveflow (wrapping) when - multiplied. When ARGS[0] is null the function does nothing. ARGS[1] - may be null for functions like malloc, and non-null for those like - calloc that are decorated with a two-argument attribute alloc_size. */ + multiplied. FN is null when EXP is a call via a function pointer. + When ARGS[0] is null the function does nothing. ARGS[1] may be null + for functions like malloc, and non-null for those like calloc that + are decorated with a two-argument attribute alloc_size. */ void maybe_warn_alloc_args_overflow (tree fn, tree exp, tree args[2], int idx[2]) @@ -1357,6 +1358,8 @@ location_t loc = EXPR_LOCATION (exp); + tree fntype = fn ? TREE_TYPE (fn) : TREE_TYPE (TREE_TYPE (exp)); + built_in_function fncode = fn ? DECL_FUNCTION_CODE (fn) : BUILT_IN_NONE; bool warned = false; /* Validate each argument individually. */ @@ -1382,11 +1385,11 @@ friends. Also avoid issuing the warning for calls to function named "alloca". */ - if ((DECL_FUNCTION_CODE (fn) == BUILT_IN_ALLOCA + if ((fncode == BUILT_IN_ALLOCA && IDENTIFIER_LENGTH (DECL_NAME (fn)) != 6) - || (DECL_FUNCTION_CODE (fn) != BUILT_IN_ALLOCA + || (fncode != BUILT_IN_ALLOCA && !lookup_attribute ("returns_nonnull", - TYPE_ATTRIBUTES (TREE_TYPE (fn))))) + TYPE_ATTRIBUTES (fntype)))) warned = warning_at (loc, OPT_Walloc_zero, "%Kargument %i value is zero", exp, idx[i] + 1); @@ -1398,6 +1401,7 @@ size overflow. There's no good way to detect C++98 here so avoid diagnosing these calls for all C++ modes. */ if (i == 0 + && fn && !args[1] && lang_GNU_CXX () && DECL_IS_OPERATOR_NEW (fn) @@ -1481,7 +1485,7 @@ } } - if (warned) + if (warned && fn) { location_t fnloc = DECL_SOURCE_LOCATION (fn); @@ -1565,9 +1569,11 @@ /* The bound argument to a bounded string function like strncpy. */ tree bound = NULL_TREE; - /* The range of lengths of a string argument to one of the comparison - functions. If the length is less than the bound it is used instead. */ - tree lenrng[2] = { NULL_TREE, NULL_TREE }; + /* The longest known or possible string argument to one of the comparison + functions. If the length is less than the bound it is used instead. + Since the length is only used for warning and not for code generation + disable strict mode in the calls to get_range_strlen below. */ + tree maxlen = NULL_TREE; /* It's safe to call "bounded" string functions with a non-string argument since the functions provide an explicit bound for this @@ -1587,11 +1593,15 @@ and to adjust the range of the bound of the bounded ones. */ for (unsigned argno = 0; argno < MIN (nargs, 2) - && !(lenrng[1] && TREE_CODE (lenrng[1]) == INTEGER_CST); argno++) + && !(maxlen && TREE_CODE (maxlen) == INTEGER_CST); argno++) { tree arg = CALL_EXPR_ARG (exp, argno); if (!get_attr_nonstring_decl (arg)) - get_range_strlen (arg, lenrng); + { + c_strlen_data lendata = { }; + get_range_strlen (arg, &lendata, /* eltsize = */ 1); + maxlen = lendata.maxbound; + } } } /* Fall through. */ @@ -1612,8 +1622,11 @@ { tree arg = CALL_EXPR_ARG (exp, 0); if (!get_attr_nonstring_decl (arg)) - get_range_strlen (arg, lenrng); - + { + c_strlen_data lendata = { }; + get_range_strlen (arg, &lendata, /* eltsize = */ 1); + maxlen = lendata.maxbound; + } if (nargs > 1) bound = CALL_EXPR_ARG (exp, 1); break; @@ -1654,28 +1667,28 @@ } } - if (lenrng[1] && TREE_CODE (lenrng[1]) == INTEGER_CST) + if (maxlen && !integer_all_onesp (maxlen)) { /* Add one for the nul. */ - lenrng[1] = const_binop (PLUS_EXPR, TREE_TYPE (lenrng[1]), - lenrng[1], size_one_node); + maxlen = const_binop (PLUS_EXPR, TREE_TYPE (maxlen), maxlen, + size_one_node); if (!bndrng[0]) { /* Conservatively use the upper bound of the lengths for both the lower and the upper bound of the operation. */ - bndrng[0] = lenrng[1]; - bndrng[1] = lenrng[1]; + bndrng[0] = maxlen; + bndrng[1] = maxlen; bound = void_type_node; } else { /* Replace the bound on the operation with the upper bound of the length of the string if the latter is smaller. */ - if (tree_int_cst_lt (lenrng[1], bndrng[0])) - bndrng[0] = lenrng[1]; - else if (tree_int_cst_lt (lenrng[1], bndrng[1])) - bndrng[1] = lenrng[1]; + if (tree_int_cst_lt (maxlen, bndrng[0])) + bndrng[0] = maxlen; + else if (tree_int_cst_lt (maxlen, bndrng[1])) + bndrng[1] = maxlen; } } @@ -1933,14 +1946,13 @@ bitmap_obstack_release (NULL); - /* Extract attribute alloc_size and if set, store the indices of - the corresponding arguments in ALLOC_IDX, and then the actual - argument(s) at those indices in ALLOC_ARGS. */ + /* Extract attribute alloc_size from the type of the called expression + (which could be a function or a function pointer) and if set, store + the indices of the corresponding arguments in ALLOC_IDX, and then + the actual argument(s) at those indices in ALLOC_ARGS. */ int alloc_idx[2] = { -1, -1 }; - if (tree alloc_size - = (fndecl ? lookup_attribute ("alloc_size", - TYPE_ATTRIBUTES (TREE_TYPE (fndecl))) - : NULL_TREE)) + if (tree alloc_size = lookup_attribute ("alloc_size", + TYPE_ATTRIBUTES (fntype))) { tree args = TREE_VALUE (alloc_size); alloc_idx[0] = TREE_INT_CST_LOW (TREE_VALUE (args)) - 1; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/calls.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/calls.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/calls.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/calls.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations and data types for RTL call insn generation. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ccmp.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ccmp.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ccmp.c 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ccmp.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Conditional compare related functions - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ccmp.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ccmp.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ccmp.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ccmp.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Conditional comapre related functions. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-ada-spec.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-ada-spec.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-ada-spec.c 2018-11-27 12:29:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-ada-spec.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Print GENERIC declaration (functions, variables, types) trees coming from the C and C++ front-ends as well as macros in Ada syntax. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Adapted from tree-pretty-print.c by Arnaud Charlet This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-ada-spec.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-ada-spec.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-ada-spec.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-ada-spec.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Interface for -fdump-ada-spec capability. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-attribs.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-attribs.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-attribs.c 2018-11-29 22:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-attribs.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* C-family attributes handling. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-common.c 2018-11-29 22:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-common.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines shared by all languages that are variants of C. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -1250,6 +1250,8 @@ loc = expansion_point_location_if_in_system_header (loc); + expr = fold_for_warn (expr); + if (TREE_CODE (expr) == REAL_CST || TREE_CODE (expr) == INTEGER_CST) { /* If type is complex, we are interested in compatibility with @@ -1947,6 +1949,13 @@ writer = 0; goto restart; + case VIEW_CONVERT_EXPR: + if (location_wrapper_p (x)) + { + x = TREE_OPERAND (x, 0); + goto restart; + } + gcc_fallthrough (); default: /* For other expressions, simply recurse on their operands. Manual tail recursion for unary expressions. @@ -3241,6 +3250,7 @@ tree c_common_truthvalue_conversion (location_t location, tree expr) { + STRIP_ANY_LOCATION_WRAPPER (expr); switch (TREE_CODE (expr)) { case EQ_EXPR: case NE_EXPR: case UNEQ_EXPR: case LTGT_EXPR: @@ -3460,6 +3470,14 @@ } break; + case CONST_DECL: + { + tree folded_expr = fold_for_warn (expr); + if (folded_expr != expr) + return c_common_truthvalue_conversion (location, folded_expr); + } + break; + default: break; } @@ -6279,6 +6297,7 @@ return base; t = TREE_OPERAND (expr, 1); + STRIP_ANY_LOCATION_WRAPPER (t); /* Check if the offset goes beyond the upper bound of the array. */ if (TREE_CODE (t) == INTEGER_CST && tree_int_cst_sgn (t) >= 0) @@ -6357,6 +6376,8 @@ maxindex = size_zero_node; if (initial_value) { + STRIP_ANY_LOCATION_WRAPPER (initial_value); + if (TREE_CODE (initial_value) == STRING_CST) { int eltsize @@ -7906,6 +7927,7 @@ ret = !lvalue_p (*vecp); + index = fold_for_warn (index); if (TREE_CODE (index) == INTEGER_CST) if (!tree_fits_uhwi_p (index) || maybe_ge (tree_to_uhwi (index), TYPE_VECTOR_SUBPARTS (type))) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-common.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-common.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-common.def 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-common.def 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ /* This file contains the definitions and documentation for the additional tree codes used in the GNU C compiler (see tree.def for the standard codes). - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Written by Benjamin Chelf This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-common.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-common.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-common.h 2018-11-22 10:29:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-common.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for c-common.c. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -1268,7 +1268,8 @@ extern void overflow_warning (location_t, tree, tree = NULL_TREE); extern void warn_logical_operator (location_t, enum tree_code, tree, enum tree_code, tree, enum tree_code, tree); -extern void warn_tautological_cmp (location_t, enum tree_code, tree, tree); +extern void warn_tautological_cmp (const op_location_t &, enum tree_code, + tree, tree); extern void warn_logical_not_parentheses (location_t, enum tree_code, tree, tree); extern bool warn_if_unused_value (const_tree, location_t); @@ -1282,6 +1283,7 @@ bool); extern void warn_for_omitted_condop (location_t, tree); extern bool warn_for_restrict (unsigned, tree *, unsigned); +extern void warn_for_address_or_pointer_of_packed_member (bool, tree, tree); /* Places where an lvalue, or modifiable lvalue, may be required. Used to select diagnostic messages in lvalue_error and diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-cppbuiltin.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-cppbuiltin.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-cppbuiltin.c 2018-11-13 05:13:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-cppbuiltin.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Define builtin-in macros for the C family front ends. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-dump.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-dump.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-dump.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-dump.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Tree-dumping functionality for C-family languages. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Written by Mark Mitchell This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-format.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-format.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-format.c 2018-11-20 10:31:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-format.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Check calls to formatted I/O functions (-Wformat). - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-format.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-format.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-format.h 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-format.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Check calls to formatted I/O functions (-Wformat). - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-gimplify.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-gimplify.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-gimplify.c 2018-03-18 03:39:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-gimplify.c 2019-01-02 08:05:15.000000000 +0000 @@ -2,7 +2,7 @@ by the C-based front ends. The structure of gimplified, or language-independent, trees is dictated by the grammar described in this file. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Lowering of expressions contributed by Sebastian Pop Re-written to support lowering of whole function trees, documentation and miscellaneous cleanups by Diego Novillo diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/ChangeLog 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/ChangeLog 2019-01-02 08:05:15.000000000 +0000 @@ -1,3 +1,64 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + +2018-12-20 H.J. Lu + + PR c/51628 + * c-common.h (warn_for_address_or_pointer_of_packed_member): New. + * c-warn.c (check_alignment_of_packed_member): New function. + (check_address_of_packed_member): Likewise. + (check_and_warn_address_of_packed_member): Likewise. + (warn_for_address_or_pointer_of_packed_member): Likewise. + * c.opt: Add -Wno-address-of-packed-member. + +2018-12-20 David Malcolm + + PR c++/87504 + * c-warn.c (get_outermost_macro_expansion): New function. + (spelled_the_same_p): Use it to unwind the macro expansions, and + compare the outermost macro in each nested expansion, rather than + the innermost. + +2018-12-19 David Malcolm + + PR c++/87504 + * c-common.h (warn_tautological_cmp): Convert 1st param from + location_t to const op_location_t &. + * c-warn.c (find_array_ref_with_const_idx_r): Call fold_for_warn + when testing for INTEGER_CST. + (warn_tautological_bitwise_comparison): Convert 1st param from + location_t to const op_location_t &; use it to build a + binary_op_rich_location, and use this. + (spelled_the_same_p): New function. + (warn_tautological_cmp): Convert 1st param from location_t to + const op_location_t &. Warn for macro expansions if + spelled_the_same_p. Use binary_op_rich_location. + +2018-12-19 David Malcolm + + PR c++/43064 + PR c++/43486 + * c-common.c (unsafe_conversion_p): Fold any location wrapper. + (verify_tree): Handle location wrappers. + (c_common_truthvalue_conversion): Strip any location wrapper. + Handle CONST_DECL. + (fold_offsetof): Strip any location wrapper. + (complete_array_type): Likewise for initial_value. + (convert_vector_to_array_for_subscript): Call fold_for_warn on the + index before checking for INTEGER_CST. + * c-pretty-print.c (c_pretty_printer::primary_expression): Don't + print parentheses around location wrappers. + * c-warn.c (warn_logical_operator): Call fold_for_warn on op_right + before checking for INTEGER_CST. + (warn_tautological_bitwise_comparison): Call + tree_strip_any_location_wrapper on lhs, rhs, and bitop's operand + before checking for INTEGER_CST. + (readonly_error): Strip any location wrapper. + (warn_array_subscript_with_type_char): Strip location wrappers + before checking for INTEGER_CST. Use the location of the index if + available. + 2018-12-06 Jason Merrill PR c++/88136 - -Wdeprecated-copy false positives @@ -9678,7 +9739,7 @@ * c-common.c: Include gt-c-family-c-common.h. * c-pragma.c: Include gt-c-family-c-pragma.h. -Copyright (C) 2010-2018 Free Software Foundation, Inc. +Copyright (C) 2010-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-indentation.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-indentation.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-indentation.c 2018-08-22 07:30:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-indentation.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of -Wmisleading-indentation - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-indentation.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-indentation.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-indentation.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-indentation.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for c-indentation.c. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-lex.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-lex.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-lex.c 2018-11-20 10:31:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-lex.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Mainly the interface between cpplib and the C front ends. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-objc.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-objc.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-objc.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-objc.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of Objective-C front-end entry points used for C and C++. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-omp.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-omp.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-omp.c 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-omp.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ /* This file contains routines to construct OpenACC and OpenMP constructs, called from parsing in the C and C++ front ends. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson , Diego Novillo . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c.opt 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c.opt 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ ; Options for the C, ObjC, C++ and ObjC++ front ends. -; Copyright (C) 2003-2018 Free Software Foundation, Inc. +; Copyright (C) 2003-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; @@ -625,6 +625,10 @@ C ObjC Var(warn_incompatible_pointer_types) Init(1) Warning Warn when there is a conversion between pointers that have incompatible types. +Waddress-of-packed-member +C ObjC C++ ObjC++ Var(warn_address_of_packed_member) Init(1) Warning +Warn when the address of packed member of struct or union is taken. + Winit-self C ObjC C++ ObjC++ Var(warn_init_self) Warning LangEnabledBy(C++ ObjC++,Wall) Warn about variables which are initialized to themselves. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-opts.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-opts.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-opts.c 2018-11-20 10:31:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-opts.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* C/ObjC/C++ command line option handling. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Neil Booth. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-pch.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-pch.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-pch.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-pch.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Precompiled header implementation for the C languages. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-ppoutput.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-ppoutput.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-ppoutput.c 2018-11-14 18:47:07.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-ppoutput.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Preprocess only, using cpplib. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. Written by Per Bothner, 1994-95. This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/cppspec.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/cppspec.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/cppspec.c 2018-07-09 11:23:03.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/cppspec.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific flags and argument handling of the C preprocessor. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-pragma.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-pragma.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-pragma.c 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-pragma.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Handle #pragma, system V.4 style. Supports #pragma weak and #pragma pack. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-pragma.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-pragma.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-pragma.h 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-pragma.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Pragma related interfaces. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-pretty-print.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-pretty-print.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-pretty-print.c 2018-10-15 11:36:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-pretty-print.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines common to both C and C++ pretty-printers. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Gabriel Dos Reis This file is part of GCC. @@ -1260,9 +1260,14 @@ default: /* FIXME: Make sure we won't get into an infinite loop. */ - pp_c_left_paren (this); - expression (e); - pp_c_right_paren (this); + if (location_wrapper_p (e)) + expression (e); + else + { + pp_c_left_paren (this); + expression (e); + pp_c_right_paren (this); + } break; } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-pretty-print.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-pretty-print.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-pretty-print.h 2018-10-15 11:36:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-pretty-print.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Various declarations for the C and C++ pretty-printers. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Gabriel Dos Reis This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-semantics.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-semantics.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-semantics.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-semantics.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* This file contains subroutine used by the C front-end to construct GENERIC. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Written by Benjamin Chelf (chelf@codesourcery.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-spellcheck.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-spellcheck.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-spellcheck.cc 2018-08-20 09:40:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-spellcheck.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Find near-matches for macros. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-spellcheck.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-spellcheck.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-spellcheck.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-spellcheck.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Find near-matches for macros. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-target.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-target.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-target.def 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-target.def 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Target hook definitions for C-family front ends. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-target-def.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-target-def.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-target-def.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-target-def.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Default initializers for C-family target hooks. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-target.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-target.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-target.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-target.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Data structure definitions for target-specific C-family behavior. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-ubsan.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-ubsan.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-ubsan.c 2018-11-28 13:52:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-ubsan.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* UndefinedBehaviorSanitizer, undefined behavior detector. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Marek Polacek This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-ubsan.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-ubsan.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-ubsan.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-ubsan.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* UndefinedBehaviorSanitizer, undefined behavior detector. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Marek Polacek This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-warn.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-warn.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/c-warn.c 2018-11-29 22:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/c-warn.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Diagnostic routines shared by all languages that are variants of C. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -208,19 +208,22 @@ if (!truth_value_p (code_left) && INTEGRAL_TYPE_P (TREE_TYPE (op_left)) && !CONSTANT_CLASS_P (op_left) - && !TREE_NO_WARNING (op_left) - && TREE_CODE (op_right) == INTEGER_CST - && !integer_zerop (op_right) - && !integer_onep (op_right)) - { - if (or_op) - warning_at (location, OPT_Wlogical_op, "logical %" - " applied to non-boolean constant"); - else - warning_at (location, OPT_Wlogical_op, "logical %" - " applied to non-boolean constant"); - TREE_NO_WARNING (op_left) = true; - return; + && !TREE_NO_WARNING (op_left)) + { + tree folded_op_right = fold_for_warn (op_right); + if (TREE_CODE (folded_op_right) == INTEGER_CST + && !integer_zerop (folded_op_right) + && !integer_onep (folded_op_right)) + { + if (or_op) + warning_at (location, OPT_Wlogical_op, "logical %" + " applied to non-boolean constant"); + else + warning_at (location, OPT_Wlogical_op, "logical %" + " applied to non-boolean constant"); + TREE_NO_WARNING (op_left) = true; + return; + } } /* We do not warn for constants because they are typical of macro @@ -319,7 +322,8 @@ if ((TREE_CODE (expr) == ARRAY_REF || TREE_CODE (expr) == ARRAY_RANGE_REF) - && TREE_CODE (TREE_OPERAND (expr, 1)) == INTEGER_CST) + && (TREE_CODE (fold_for_warn (TREE_OPERAND (expr, 1))) + == INTEGER_CST)) return integer_type_node; return NULL_TREE; @@ -331,7 +335,7 @@ of this comparison. */ static void -warn_tautological_bitwise_comparison (location_t loc, tree_code code, +warn_tautological_bitwise_comparison (const op_location_t &loc, tree_code code, tree lhs, tree rhs) { if (code != EQ_EXPR && code != NE_EXPR) @@ -340,24 +344,30 @@ /* Extract the operands from e.g. (x & 8) == 4. */ tree bitop; tree cst; + tree stripped_lhs = tree_strip_any_location_wrapper (lhs); + tree stripped_rhs = tree_strip_any_location_wrapper (rhs); if ((TREE_CODE (lhs) == BIT_AND_EXPR || TREE_CODE (lhs) == BIT_IOR_EXPR) - && TREE_CODE (rhs) == INTEGER_CST) - bitop = lhs, cst = rhs; + && TREE_CODE (stripped_rhs) == INTEGER_CST) + bitop = lhs, cst = stripped_rhs; else if ((TREE_CODE (rhs) == BIT_AND_EXPR || TREE_CODE (rhs) == BIT_IOR_EXPR) - && TREE_CODE (lhs) == INTEGER_CST) - bitop = rhs, cst = lhs; + && TREE_CODE (stripped_lhs) == INTEGER_CST) + bitop = rhs, cst = stripped_lhs; else return; tree bitopcst; - if (TREE_CODE (TREE_OPERAND (bitop, 0)) == INTEGER_CST) - bitopcst = TREE_OPERAND (bitop, 0); - else if (TREE_CODE (TREE_OPERAND (bitop, 1)) == INTEGER_CST) - bitopcst = TREE_OPERAND (bitop, 1); - else - return; + tree bitop_op0 = fold_for_warn (TREE_OPERAND (bitop, 0)); + if (TREE_CODE (bitop_op0) == INTEGER_CST) + bitopcst = bitop_op0; + else { + tree bitop_op1 = fold_for_warn (TREE_OPERAND (bitop, 1)); + if (TREE_CODE (bitop_op1) == INTEGER_CST) + bitopcst = bitop_op1; + else + return; + } /* Note that the two operands are from before the usual integer conversions, so their types might not be the same. @@ -380,29 +390,80 @@ if (res == cstw) return; + binary_op_rich_location richloc (loc, lhs, rhs, false); if (code == EQ_EXPR) - warning_at (loc, OPT_Wtautological_compare, + warning_at (&richloc, OPT_Wtautological_compare, "bitwise comparison always evaluates to false"); else - warning_at (loc, OPT_Wtautological_compare, + warning_at (&richloc, OPT_Wtautological_compare, "bitwise comparison always evaluates to true"); } +/* Given LOC from a macro expansion, return the map for the outermost + macro in the nest of expansions. */ + +static const line_map_macro * +get_outermost_macro_expansion (location_t loc) +{ + gcc_assert (from_macro_expansion_at (loc)); + + const line_map *map = linemap_lookup (line_table, loc); + const line_map_macro *macro_map; + do + { + macro_map = linemap_check_macro (map); + loc = linemap_unwind_toward_expansion (line_table, loc, &map); + } while (linemap_macro_expansion_map_p (map)); + + return macro_map; +} + +/* Given LOC_A and LOC_B from macro expansions, return true if + they are "spelled the same" i.e. if they are both directly from + expansion of the same non-function-like macro. */ + +static bool +spelled_the_same_p (location_t loc_a, location_t loc_b) +{ + gcc_assert (from_macro_expansion_at (loc_a)); + gcc_assert (from_macro_expansion_at (loc_b)); + + const line_map_macro *map_a = get_outermost_macro_expansion (loc_a); + const line_map_macro *map_b = get_outermost_macro_expansion (loc_b); + + if (map_a->macro == map_b->macro) + if (!cpp_fun_like_macro_p (map_a->macro)) + return true; + + return false; +} + /* Warn if a self-comparison always evaluates to true or false. LOC is the location of the comparison with code CODE, LHS and RHS are operands of the comparison. */ void -warn_tautological_cmp (location_t loc, enum tree_code code, tree lhs, tree rhs) +warn_tautological_cmp (const op_location_t &loc, enum tree_code code, + tree lhs, tree rhs) { if (TREE_CODE_CLASS (code) != tcc_comparison) return; /* Don't warn for various macro expansions. */ - if (from_macro_expansion_at (loc) - || from_macro_expansion_at (EXPR_LOCATION (lhs)) - || from_macro_expansion_at (EXPR_LOCATION (rhs))) + if (from_macro_expansion_at (loc)) return; + bool lhs_in_macro = from_macro_expansion_at (EXPR_LOCATION (lhs)); + bool rhs_in_macro = from_macro_expansion_at (EXPR_LOCATION (rhs)); + if (lhs_in_macro || rhs_in_macro) + { + /* Don't warn if exactly one is from a macro. */ + if (!(lhs_in_macro && rhs_in_macro)) + return; + + /* If both are in a macro, only warn if they're spelled the same. */ + if (!spelled_the_same_p (EXPR_LOCATION (lhs), EXPR_LOCATION (rhs))) + return; + } warn_tautological_bitwise_comparison (loc, code, lhs, rhs); @@ -437,11 +498,12 @@ const bool always_true = (code == EQ_EXPR || code == LE_EXPR || code == GE_EXPR || code == UNLE_EXPR || code == UNGE_EXPR || code == UNEQ_EXPR); + binary_op_rich_location richloc (loc, lhs, rhs, false); if (always_true) - warning_at (loc, OPT_Wtautological_compare, + warning_at (&richloc, OPT_Wtautological_compare, "self-comparison always evaluates to true"); else - warning_at (loc, OPT_Wtautological_compare, + warning_at (&richloc, OPT_Wtautological_compare, "self-comparison always evaluates to false"); } } @@ -1529,6 +1591,7 @@ { gcc_assert (use == lv_assign || use == lv_increment || use == lv_decrement || use == lv_asm); + STRIP_ANY_LOCATION_WRAPPER (arg); /* Using this macro rather than (for example) arrays of messages ensures that all the format strings are checked at compile time. */ @@ -1669,15 +1732,22 @@ warn for unsigned char since that type is safe. Don't warn for signed char because anyone who uses that must have done so deliberately. Furthermore, we reduce the false positive load by - warning only for non-constant value of type char. */ + warning only for non-constant value of type char. + LOC is the location of the subscripting expression. */ void warn_array_subscript_with_type_char (location_t loc, tree index) { - if (TYPE_MAIN_VARIANT (TREE_TYPE (index)) == char_type_node - && TREE_CODE (index) != INTEGER_CST) - warning_at (loc, OPT_Wchar_subscripts, - "array subscript has type %"); + if (TYPE_MAIN_VARIANT (TREE_TYPE (index)) == char_type_node) + { + /* If INDEX has a location, use it; otherwise use LOC (the location + of the subscripting expression as a whole). */ + loc = EXPR_LOC_OR_LOC (index, loc); + STRIP_ANY_LOCATION_WRAPPER (index); + if (TREE_CODE (index) != INTEGER_CST) + warning_at (loc, OPT_Wchar_subscripts, + "array subscript has type %"); + } } /* Implement -Wparentheses for the unexpected C precedence rules, to @@ -2616,3 +2686,167 @@ inform (guard_loc, "some parts of macro expansion are not guarded by " "this %qs clause", guard_tinfo_to_string (keyword)); } + +/* Return struct or union type if the alignment of data memeber, FIELD, + is less than the alignment of TYPE. Otherwise, return NULL_TREE. */ + +static tree +check_alignment_of_packed_member (tree type, tree field) +{ + /* Check alignment of the data member. */ + if (TREE_CODE (field) == FIELD_DECL + && (DECL_PACKED (field) + || TYPE_PACKED (TREE_TYPE (field)))) + { + /* Check the expected alignment against the field alignment. */ + unsigned int type_align = TYPE_ALIGN (type); + tree context = DECL_CONTEXT (field); + unsigned int record_align = TYPE_ALIGN (context); + if ((record_align % type_align) != 0) + return context; + tree field_off = byte_position (field); + if (!multiple_of_p (TREE_TYPE (field_off), field_off, + size_int (type_align / BITS_PER_UNIT))) + return context; + } + + return NULL_TREE; +} + +/* Return struct or union type if the right hand value, RHS, takes the + unaligned address of packed member of struct or union when assigning + to TYPE. Otherwise, return NULL_TREE. */ + +static tree +check_address_of_packed_member (tree type, tree rhs) +{ + if (INDIRECT_REF_P (rhs)) + rhs = TREE_OPERAND (rhs, 0); + + if (TREE_CODE (rhs) == ADDR_EXPR) + rhs = TREE_OPERAND (rhs, 0); + + tree context = NULL_TREE; + + /* Check alignment of the object. */ + while (handled_component_p (rhs)) + { + if (TREE_CODE (rhs) == COMPONENT_REF) + { + tree field = TREE_OPERAND (rhs, 1); + context = check_alignment_of_packed_member (type, field); + if (context) + break; + } + rhs = TREE_OPERAND (rhs, 0); + } + + return context; +} + +/* Check and warn if the right hand value, RHS, takes the unaligned + address of packed member of struct or union when assigning to TYPE. */ + +static void +check_and_warn_address_of_packed_member (tree type, tree rhs) +{ + if (TREE_CODE (rhs) != COND_EXPR) + { + while (TREE_CODE (rhs) == COMPOUND_EXPR) + rhs = TREE_OPERAND (rhs, 1); + + tree context = check_address_of_packed_member (type, rhs); + if (context) + { + location_t loc = EXPR_LOC_OR_LOC (rhs, input_location); + warning_at (loc, OPT_Waddress_of_packed_member, + "taking address of packed member of %qT may result " + "in an unaligned pointer value", + context); + } + return; + } + + /* Check the THEN path. */ + check_and_warn_address_of_packed_member (type, TREE_OPERAND (rhs, 1)); + + /* Check the ELSE path. */ + check_and_warn_address_of_packed_member (type, TREE_OPERAND (rhs, 2)); +} + +/* Warn if the right hand value, RHS: + 1. For CONVERT_P == true, is a pointer value which isn't aligned to a + pointer type TYPE. + 2. For CONVERT_P == false, is an address which takes the unaligned + address of packed member of struct or union when assigning to TYPE. +*/ + +void +warn_for_address_or_pointer_of_packed_member (bool convert_p, tree type, + tree rhs) +{ + if (!warn_address_of_packed_member) + return; + + /* Don't warn if we don't assign RHS to a pointer. */ + if (!POINTER_TYPE_P (type)) + return; + + while (TREE_CODE (rhs) == COMPOUND_EXPR) + rhs = TREE_OPERAND (rhs, 1); + + if (convert_p) + { + bool rhspointer_p; + tree rhstype; + + /* Check the original type of RHS. */ + switch (TREE_CODE (rhs)) + { + case PARM_DECL: + case VAR_DECL: + rhstype = TREE_TYPE (rhs); + rhspointer_p = POINTER_TYPE_P (rhstype); + break; + case NOP_EXPR: + rhs = TREE_OPERAND (rhs, 0); + if (TREE_CODE (rhs) == ADDR_EXPR) + rhs = TREE_OPERAND (rhs, 0); + rhstype = TREE_TYPE (rhs); + rhspointer_p = TREE_CODE (rhstype) == ARRAY_TYPE; + break; + default: + return; + } + + if (rhspointer_p && TYPE_PACKED (TREE_TYPE (rhstype))) + { + unsigned int type_align = TYPE_ALIGN_UNIT (TREE_TYPE (type)); + unsigned int rhs_align = TYPE_ALIGN_UNIT (TREE_TYPE (rhstype)); + if ((rhs_align % type_align) != 0) + { + location_t location = EXPR_LOC_OR_LOC (rhs, input_location); + warning_at (location, OPT_Waddress_of_packed_member, + "converting a packed %qT pointer (alignment %d) " + "to %qT (alignment %d) may may result in an " + "unaligned pointer value", + rhstype, rhs_align, type, type_align); + tree decl = TYPE_STUB_DECL (TREE_TYPE (rhstype)); + inform (DECL_SOURCE_LOCATION (decl), "defined here"); + decl = TYPE_STUB_DECL (TREE_TYPE (type)); + if (decl) + inform (DECL_SOURCE_LOCATION (decl), "defined here"); + } + } + } + else + { + /* Get the type of the pointer pointing to. */ + type = TREE_TYPE (type); + + if (TREE_CODE (rhs) == NOP_EXPR) + rhs = TREE_OPERAND (rhs, 0); + + check_and_warn_address_of_packed_member (type, rhs); + } +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/known-headers.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/known-headers.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/known-headers.cc 2018-09-08 14:39:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/known-headers.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Support for suggestions about missing #include directives. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/known-headers.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/known-headers.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/known-headers.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/known-headers.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Support for suggestions about missing #include directives. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/name-hint.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/name-hint.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/name-hint.h 2018-10-30 08:45:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/name-hint.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Support for offering suggestions for handling unrecognized names. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/stub-objc.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/stub-objc.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/c-family/stub-objc.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/c-family/stub-objc.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ /* Stub functions for Objective-C and Objective-C++ routines that are called from within the C and C++ front-ends, respectively. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfganal.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfganal.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfganal.c 2018-09-08 14:39:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfganal.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Control flow graph analysis code for GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfganal.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfganal.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfganal.h 2018-09-08 14:39:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfganal.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Control flow graph analysis header file. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgbuild.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgbuild.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgbuild.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgbuild.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Control flow graph building code for GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgbuild.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgbuild.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgbuild.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgbuild.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Control flow graph building header file. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfg.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfg.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfg.c 2018-09-08 14:39:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfg.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Control flow graph manipulation code for GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgcleanup.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgcleanup.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgcleanup.c 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgcleanup.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Control flow optimization code for GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgcleanup.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgcleanup.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgcleanup.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgcleanup.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Control flow optimization header file. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgexpand.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgexpand.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgexpand.c 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgexpand.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* A pass for lowering trees to RTL. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgexpand.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgexpand.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgexpand.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgexpand.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for lowering trees to RTL. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfg-flags.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfg-flags.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfg-flags.def 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfg-flags.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Flags on basic blocks and edges. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfg.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfg.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfg.h 2018-09-08 14:39:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfg.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Control flow graph manipulation code header file. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfghooks.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfghooks.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfghooks.c 2018-11-14 18:47:07.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfghooks.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Hooks for cfg representation specific functions. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Sebastian Pop This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfghooks.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfghooks.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfghooks.h 2018-11-14 18:47:08.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfghooks.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Hooks for cfg representation specific functions. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Sebastian Pop This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgloopanal.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgloopanal.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgloopanal.c 2018-04-13 21:46:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgloopanal.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Natural loop analysis code for GNU compiler. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgloop.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgloop.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgloop.c 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgloop.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Natural loop discovery code for GNU compiler. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgloop.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgloop.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgloop.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgloop.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Natural loop functions - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgloopmanip.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgloopmanip.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgloopmanip.c 2018-04-13 21:46:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgloopmanip.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Loop manipulation code for GNU compiler. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgloopmanip.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgloopmanip.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgloopmanip.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgloopmanip.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Loop manipulation header. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgrtl.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgrtl.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgrtl.c 2018-11-20 10:31:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgrtl.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Control flow graph manipulation code for GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgrtl.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgrtl.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cfgrtl.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cfgrtl.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Define control flow data structures for the CFG. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cgraphbuild.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cgraphbuild.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cgraphbuild.c 2018-06-08 18:00:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cgraphbuild.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Callgraph construction. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cgraph.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cgraph.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cgraph.c 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cgraph.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Callgraph handling code. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. @@ -3766,6 +3766,41 @@ : caller->count); } + +/* During LTO stream in this can be used to check whether call can possibly + be internal to the current translation unit. */ + +bool +cgraph_edge::possibly_call_in_translation_unit_p (void) +{ + gcc_checking_assert (in_lto_p && caller->prevailing_p ()); + + /* While incremental linking we may end up getting function body later. */ + if (flag_incremental_link == INCREMENTAL_LINK_LTO) + return true; + + /* We may be smarter here and avoid stremaing in indirect calls we can't + track, but that would require arranging stremaing the indirect call + summary first. */ + if (!callee) + return true; + + /* If calle is local to the original translation unit, it will be defined. */ + if (!TREE_PUBLIC (callee->decl) && !DECL_EXTERNAL (callee->decl)) + return true; + + /* Otherwise we need to lookup prevailing symbol (symbol table is not merged, + yet) and see if it is a definition. In fact we may also resolve aliases, + but that is probably not too important. */ + symtab_node *node = callee; + for (int n = 10; node->previous_sharing_asm_name && n ; n--) + node = node->previous_sharing_asm_name; + if (node->previous_sharing_asm_name) + node = symtab_node::get_for_asmname (DECL_ASSEMBLER_NAME (callee->decl)); + gcc_assert (TREE_PUBLIC (node->decl)); + return node->get_availability () >= AVAIL_AVAILABLE; +} + /* A stashed copy of "symtab" for use by selftest::symbol_table_test. This needs to be a global so that it can be a GC root, and thus prevent the stashed copy from being garbage-collected if the GC runs diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cgraphclones.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cgraphclones.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cgraphclones.c 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cgraphclones.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Callgraph clones - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cgraph.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cgraph.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cgraph.h 2018-12-04 09:51:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cgraph.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Callgraph handling code. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. @@ -308,6 +308,10 @@ /* Return availability of NODE when referenced from REF. */ enum availability get_availability (symtab_node *ref = NULL); + /* During LTO stream-in this predicate can be used to check whether node + in question prevails in the linking to save some memory usage. */ + bool prevailing_p (void); + /* Return true if NODE binds to current definition in final executable when referenced from REF. If REF is NULL return conservative value for any reference. */ @@ -1730,6 +1734,10 @@ after passes that don't update the cgraph. */ static void rebuild_references (void); + /* During LTO stream in this can be used to check whether call can possibly + be internal to the current translation unit. */ + bool possibly_call_in_translation_unit_p (void); + /* Expected number of executions: calculated in profile.c. */ profile_count count; cgraph_node *caller; @@ -3357,6 +3365,15 @@ return ggc_strdup (transient_str); } +/* During LTO stream-in this predicate can be used to check whether node + in question prevails in the linking to save some memory usage. */ +inline bool +symtab_node::prevailing_p (void) +{ + return definition && ((!TREE_PUBLIC (decl) && !DECL_EXTERNAL (decl)) + || previous_sharing_asm_name == NULL); +} + extern GTY(()) symbol_table *saved_symtab; #if CHECKING_P diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cgraphunit.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cgraphunit.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cgraphunit.c 2018-11-09 20:18:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cgraphunit.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Driver of optimization process - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. @@ -95,7 +95,7 @@ both reduce linking times and linktime memory usage by not having to represent whole program in memory. - d) LTO sreaming. When doing LTO, everything important gets + d) LTO streaming. When doing LTO, everything important gets streamed into the object file. Compile time and or linktime analysis stage (WPA): diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/gcc/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ChangeLog 2018-12-14 05:16:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ChangeLog 2019-01-02 08:05:16.000000000 +0000 @@ -1,34178 +1,54 @@ -2018-12-13 Michael Ploujnikov +2019-01-01 Martin Sebor + Jeff Law - * ipa-cp.c (print_all_lattices): Skip cp clones. + * gimple-fold.c (get_range_strlen_tree): Record if the computed + length is optimistic. If it is, then arrange to compute the + conservative length as well. + + * gimple-fold.h (get_range_strlen): Update prototype. + * builtins.c (check_access): Update call to get_range_strlen to use + c_strlen_data pointer. Change various variable accesses to instead + pull data from the c_strlen_data structure. + (check_strncat_sizes, expand_builtin_strncat): Likewise. + * calls.c (maybe_warn_nonstring_arg): Likewise. + * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset + minimum length if maximum lengh is unknown. + * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code + that used c_strlen, it's no longer needed. Restructure slightly. + (format_string): Set unlikely range appropriately. + * gimple-fold.c (get_range_strlen): Update comments. Fix minor + formatting issues. + (get_range_strlen): Accept c_strlen_data pointer for external + call sites as well. Pass through to call to internal get_range_strlen. + Adjust minlen, maxlen and maxbound as needed. + (get_maxval_strlen): Update comments. + (gimple_fold_builtin_strlen): Update call to get_range_strlen + to use c_strlen_data pointer. Change variable accesses to instead + use c_strlen_data data members. + + * gimple-fold.c (get_range_strlen): Update prototype. + (get_range_strlen_tree): Update prototype. Drop minlen/maxlen + local variables. Use pdata to return information to caller. + Update calls to get_range_strlen. Update pdata->maxbound. + (get_range_strlen -- static version): Similarly. + (get_range_strlen -- extern version): Update for internal + get_range_strlen API change. Convert to external data format. + (get_maxval_strlen): Similarly. + +2019-01-01 Jan Hubicka + + * coverage.c (get_coverage_counts): Use current_function_decl. + * profile.c (read_thunk_profile): New function. + (branch_prob): Add THUNK parameter. + * tree-profile.c (tree_profiling): Handle thunks. + * value-prof.c (init_node_map): Handle thunks. + * value-prof.h (branch_prob): Upate prototype. + (read_thunk_profile): Declare. - * ipa-cp.c: Fix various comment typos. - -2018-12-13 Jakub Jelinek - - PR tree-optimization/88444 - * tree-inline.c (fold_marked_statements): Iterate up to - last_basic_block_for_fn rather than n_basic_blocks_for_fn. - - PR rtl-optimization/88470 - * cfgcleanup.c (outgoing_edges_match): If the function is - shrink-wrapped and bb1 ends with a JUMP_INSN with a single fake - edge to EXIT, return false. - -2018-12-13 Martin Sebor - - * doc/extend.texi: Consistently use @code for const and volatile - qualifiers, the true and false constants, and asm statements. - -2018-12-13 Vladimir Makarov - - PR rtl-optimization/88414 - * lra-int.h (lra_asm_error_p): New. - * lra-assigns.c (lra_assign): Check lra_asm_error_p for checking - call crossed pseudo assignment correctness. - (lra_split_hard_reg_for): Set up lra_asm_error_p. - * lra-constraints.c (curr_insn_transform): Ditto. - * lra.c (lra_asm_error_p): New. - (lra): Reset lra_asm_error_p. - -2018-12-13 Jakub Jelinek - - PR rtl-optimization/88416 - * valtrack.c (cleanup_auto_inc_dec): Handle pre/post-inc/dec/modify - even if !AUTO_INC_DEC. - -2018-12-13 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_function_arg): Ensure type is - non-NULL. - (rs6000_arg_partial_bytes): Same. - -2018-12-13 Jason Merrill - - * gdbinit.in (pp): New macro. - (pbb): Remove. - -2018-12-13 Jakub Jelinek - - PR tree-optimization/88464 - * tree-vect-stmts.c (vect_build_gather_load_calls): Handle INTEGER_TYPE - masktype if mask is non-NULL. - (vectorizable_load): Don't reject masked gather loads if masktype - in the decl is INTEGER_TYPE. - -2018-12-13 Andreas Krebbel - - * config/s390/s390-builtins.def (s390_vec_double_s64): Map to - s390_vec_double_s64 instead of s390_vcdgb. - (s390_vec_double_u64): Map to s390_vec_double_u64 instead of - s390_vcdlgb. - -2018-12-13 Andreas Krebbel - - * config/s390/vx-builtins.md ("vec_ctd_s64", "vec_ctd_u64") - ("vec_ctsl", "vec_ctul"): Replace 0 with VEC_NOINEXACT. - ("vec_double_s64", "vec_double_u64"): Replace 4 with VEC_INEXACT. - -2018-12-13 Kyrylo Tkachov - - * doc/invoke.texi (-msve-vector-bits): Clarify -msve-vector-bits=128 - behavior. - -2018-12-13 Wei Xiao - - * common/config/i386/i386-common.c (processor_names): Add cascadelake. - (processor_alias_table): Add cascadelake. - * config.gcc: Add -march=cascadelake. - * config/i386/i386-c.c (ix86_target_macros_internal): Handle - cascadelake. - * config/i386/i386.c (Add m_CASCADELAKE): New. - (processor_cost_table): Add cascadelake. - (get_builtin_code_for_version): Handle cascadelake. - * config/i386/i386.h (TARGET_CASCADELAKE, PROCESSOR_CASCADELAKE): New. - (PTA_CASCADELAKE): Ditto. - * doc/invoke.texi: Add -march=cascadelake. - -2018-12-13 Jakub Jelinek - - PR target/88465 - * config/i386/i386.md (*movdi_internal, *movsi_internal, - *movhi_internal, *movqi_internal): Add alternative(s) to load - 0 or -1 into k registers using kxor or kxnoq instructions. - - PR target/88461 - * config/i386/sse.md (VI1248_AVX512VLBW, AVX512ZEXTMASK): New - mode iterators. - (_testm3, - _testnm3): Merge patterns - with VI12_AVX512VL and VI48_AVX512VL iterators into ones with - VI1248_AVX512VLBW iterator. - (*_testm3_zext, - *_testm3_zext_mask, - *_testnm3_zext, - *_testnm3_zext_mask): New - define_insns. - - PR target/88461 - * config/i386/i386.md (*zero_extendsidi2, zero_extenddi2, - *zero_extendsi2, *zero_extendqihi2): Add =*k, *km alternatives. - -2018-12-12 Tom de Vries - Jakub Jelinek - - * omp-builtins.def (BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_START, - BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_START, - BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_START, - BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_START, - BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME, - BUILT_IN_GOMP_PARALLEL_LOOP_MAYBE_NONMONOTONIC_RUNTIME): Fix up - function types - remove one argument. - -2018-12-12 Martin Sebor - - * doc/extend.texi (attribute copy): Fix typos. - -2018-12-12 Martin Sebor - - * doc/extend.texi (Function Attributes): Clarify C++ aspects. - (Variable Attributes): Same. - (Type Attributes): Same. - -2018-12-12 Olivier Hainque - - * config/aarch64/aarch64.c (aarch64_override_options): Once arch, - cpu and tune were validated, insert SUBTARGET_OVERRIDE_OPTIONS if - defined. - -2018-12-12 Olivier Hainque - - * config/aarch64/aarch64.c (PROBE_STACK_FIRST_REG) : Redefine as - R9_REGNUM instead of 9. - (PROBE_STACK_SECOND_REG): Redefine as R10_REGNUM instead of 10. - -2018-12-12 Eric Botcazou - - PR target/86806 - * config/sparc/sparc.md (unspecv): Add UNSPECV_SPECULATION_BARRIER. - (speculation_barrier): New instruction for V9. - -2018-12-12 Segher Boessenkool - Iain Sandoe - - PR target/88343 - * config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg - unless it has been used. - (first_reg_to_save): Remove dead code. - -2018-12-12 Iain Sandoe - - * config/rs6000/rs6000-protos.h (rs6000_call_darwin): New. - (rs6000_sibcall_darwin): New. (macho_call_template): Remove. - * config/rs6000/rs6000.c (get_prev_label): Forward declaration. - (rs6000_call_template_1): Handle Darwin. - (macho_call_template): Remove. - (rs6000_call_sysv): Remove handling for Darwin. - (rs6000_call_darwin_1, rs6000_call_darwin): New - (rs6000_sibcall_darwin): New. - * config/rs6000/rs6000.md (define_expand “call”): Handle Darwin - with its own expander. (define_expand “call_value”): Likewise. - (define_expand “sibcall”): Likewise. - (define_expand “sibcall_value”): Likewise. - (call_nonlocal_sysv): Remove Darwin special-casing. - (call_value_nonlocal_sysv): Likewise. - -2018-12-12 Iain Sandoe - - * config/rs6000/darwin.md (call_indirect_nonlocal_darwin64): Remove. - (call_nonlocal_darwin64): Remove. - (call_value_indirect_nonlocal_darwin64): Remove. - (call_value_nonlocal_darwin64): Remove. - * config/rs6000/rs6000.c (rs6000_call_template_1): Handle Darwin with - the same asm output as AIX/ELFv2. (rs6000_call_sysv): Preserve the - CALL_LONG flag when needed for Darwin. - * config/rs6000/rs6000.md (define expand “call”): Expand Darwin as - per sysv. - (define_expand “call_value”): Likewise. - (define_expand “sibcall”): Likewise. - (define_expand “sibcall_value”): Likewise. - (call_indirect_nonlocal_sysv): Mark the clobber mode P. - (call_nonlocal_sysv): Likewise. - (call_nonlocal_sysv_secure): Likewise. - (call_value_indirect_nonlocal_sysv): Likewise. - (call_value_nonlocal_sysv): Likewise. - (call_value_nonlocal_sysv_secure): Likewise. - (call_local64): Mark the clobber DI. - (call_value_local64): Likewise. - -2018-12-11 Jakub Jelinek - - PR tree-optimization/88444 - * tree-vrp.c (register_edge_assert_for_2): Only register assertions - for conversions if rhs1 is a SSA_NAME. - -2018-12-11 Dimitar Dimitrov - - * cfgexpand.c (asm_clobber_reg_is_valid): Also produce - error when stack pointer is clobbered. - (expand_asm_stmt): Refactor clobber check in separate function. - -2018-12-11 Eric Botcazou - - * config/rs6000/vxworks.h (RS6000_STARTING_FRAME_OFFSET): Define, - accounting for STACK_BOUNDARY 128. - (STACK_DYNAMIC_OFFSET): Likewise. - -2018-12-11 Jakub Jelinek - - PR target/88425 - * config/i386/i386.md (*x86_movcc_0_m1_neg_leu): - New define_insn_and_split. - -2018-12-11 Richard Biener - - PR middle-end/88448 - PR middle-end/88415 - * gimple.c (gimple_assign_set_rhs_with_ops): Revert previous - change. - * tree-complex.c (update_complex_assignment): Properly transfer - or clean EH info around gimple_assign_set_rhs_with_ops. - -2018-12-11 Richard Earnshaw - - PR target/87369 - * config/aarch64/iterators.md (sizem1): Add sizes for SFmode and DFmode. - (Vbtype): Add SFmode mapping. - * config/aarch64/aarch64.md (copysigndf3, copysignsf3): Delete. - (copysign3): New expand pattern. - (copysign3_insn): New insn pattern. - -2018-12-11 Richard Biener - - * ccmp.c (ccmp_candidate_p): Use GIMPLE API properly. - -2018-12-11 Jakub Jelinek - - PR lto/86004 - * doc/sourcebuild.texi (lto_incremental): Document new effective - target. - -2018-12-11 Segher Boessenkool - - PR target/88145 - * config/rs6000/rs6000.c (rs6000_expand_zeroop_builtin): Use - rs6000_isa_flags instead of rs6000_isa_flags_explicit to decide - whether soft float is enabled. - (rs6000_expand_mtfsb_builtin): Ditto. - (rs6000_expand_set_fpscr_rn_builtin): Ditto. - (rs6000_expand_set_fpscr_drn_builtin): Ditto. - -2018-12-10 Jeff Law - - PR tree-optimization/80520 - * gimple-ssa-split-paths.c (is_feasible_trace): Recognize half - diamonds that are likely if convertable. - -2018-12-10 Martin Sebor - - PR tree-optimization/86196 - * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use - base size only of arrays. - -2018-12-10 Segher Boessenkool - - * config.gcc (Obsolete configurations): Delete powerpc*-*-*spe*. - (Unsupported targets): Add powerpc*-*-*spe*. - (powerpc*-*-*spe*): Delete. - (powerpc-*-eabispe*): Delete. - (powerpc-*-rtems*spe*): Delete. - (powerpc*-*-linux*spe*): Delete. - (powerpc*-*-linux*): Do not handle the linux*spe* targets. - (powerpc-wrs-vxworks*spe): Delete. - (with_cpu setting code): Delete powerpc*-*-*spe* handling. - * config.host (target powerpc*-*-*spe*): Delete. - * doc/invoke.texi (PowerPC SPE Options): Delete. - (PowerPC SPE Options): Delete. - * config/powerpcspe: Delete. - -2018-12-10 Uros Bizjak - - PR target/88418 - * config/i386/i386.c (ix86_expand_sse_cmp): For vector modes, - check operand 1 with vector_operand predicate. - (ix86_expand_sse_movcc): For vector modes, check op_true with - vector_operand, not nonimmediate_operand. - -2018-12-10 Richard Biener - - * tree-affine.c (tree_to_aff_combination): Remove unreachable - MEM_REF case. - (aff_combination_expand): Cache on SSA names, not possibly - on conversion trees. Avoid expanding cases we do not handle. - -2018-12-10 Richard Biener - - PR tree-optimization/88427 - * vr-values.c (vr_values::extract_range_from_phi_node): - Handle symbolic ranges conservatively when trying to drop - to Inf +- 1. - -2018-12-10 Martin Jambor - - PR ipa/88214 - * ipa-prop.c (determine_locally_known_aggregate_parts): Make sure - we check pointers against pointers. - -2018-12-10 Richard Biener - - PR middle-end/88415 - * gimple.c (gimple_assign_set_rhs_with_ops): Transfer EH - info to a newly allocated stmt. - -2018-12-10 Jerome Lambourg - - * config/vxworksae.h (TARGET_VXWORKS_HAVE_CTORS_DTORS): Define. - -2018-12-10 Fredrik Nyström - - PR bootstrap/65725 - * config/sol2.h: Only use libgcc-unwind.map if - ENABLE_SHARED_LIBGCC. - -2018-12-10 Bin Cheng - - * auto-profile.c (afdo_calculate_branch_prob): Convert profile_count - to afdo precision quality. - (afdo_callsite_hot_enough_for_early_inline): Likewise. - (afdo_annotate_cfg): Set profile_count for exit basic block. - -2018-12-10 Bin Cheng - - * auto-profile.c (string_table::get_index_by_decl) - (function_instance::get_function_instance_by_decl): Avoid infinite - recursion by using DECL_FROM_INLINE. - -2018-12-09 John David Anglin - - * config.gcc (hppa*-*-linux*): Add pa/t-pa to tmake_file. Define - d_target_objs. - * config/pa/pa-protos.h (pa_d_target_versions): New prototype. - * config/pa/pa.h (TARGET_D_CPU_VERSIONS): Define. - * config/pa/pa-d.c: New file. - * config/pa/t-pa: New file. - -2018-12-08 Bin Cheng - - * ipa-cp.c (update_profiling_info): Call adjust_for_ipa_scaling for - zero profile count. - -2018-12-08 Jakub Jelinek - - PR fortran/88304 - * tree-nested.c (convert_local_reference_stmt): Handle clobbers where - lhs is not a decl normally, don't call use_pointer_in_frame on that - lhs. - -2018-12-08 Eric Botcazou - - PR rtl-optimization/88390 - * dwarf2cfi.c (struct dw_cfi_row): Add window_save field. - (cfi_row_equal_p): Compare it. - (dwarf2out_frame_debug_cfa_window_save): Add FAKE parameter. - If FAKE is false, set window_save of the current row. - (dwarf2out_frame_debug) : Call above - function with FAKE parameter set to true. - : Likewise but with FAKE parameter set to false. - (change_cfi_row): Emit a DW_CFA_GNU_window_save if necessary. - -2018-12-07 Peter Bergner - - PR target/87496 - * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow - -mabi=ieeelongdouble and -mabi=ibmlongdouble without -mlong-double-128. - Do not error for -mabi=ibmlongdouble and no ISA 2.06 support. - * doc/invoke.texi: Document -mabi=ibmlongdouble and -mabi=ieeelongdouble - require -mlong-double-128. - -2018-12-07 Kyrylo Tkachov - - * config/aarch64/aarch64.c (aarch64_tuning_override_functions): Add - sve_width entry. - (aarch64_parse_sve_width_string): Define. - -2018-12-07 Jeff Law - - PR middle-end/87813 - * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Add - m_update_global_ranges member. Add corresponding argument to ctor. - * gimple-ssa-evrp-analyze.c - (evrp_range_analyzer::evrp_range_analyzer): Add new argument and - initialize m_update_global_ranges. - (evrp_range_analyzer::set_ssa_range_info): Assert that we are - updating global ranges. - (evrp_range_analyzer::record_ranges_from_incoming_edge): Only - update global ranges if explicitly requested. - (evrp_range_analyzer::record_ranges_from_phis): Similarly. - (evrp_range_analyzer::record_ranges_from_stmt): Similarly. - * gimple-ssa-evrp.c (evrp_dom_walker): Pass new argument to - evrp_range_analyzer ctor. - * gimple-ssa-sprintf.c (sprintf_dom_walker): Similarly. - * tree-ssa-dom.c (dom_opt_dom_walker): Similarly. - -2018-12-07 Kyrylo Tkachov - - * config/aarch64/aarch64-opts.h (aarch64_sve_vector_bits_enum): - Add SVE_NOT_IMPLEMENTED value. - * config/aarch64/aarch64-protos.h (struct tune_params): Add sve_width - field. - * config/aarch64/aarch64.c (generic_tunings,cortexa35_tunings, - cortexa53_tunings, cortexa57_tunings, cortexa72_tunings, - cortexa73_tunings, exynosm1_tunings, thunderx_tunings, - thunderx_tunings, tsv110_tunings, xgene1_tunings, qdf24xx_tunings, - saphira_tunings, thunderx2t99_tunings, emag_tunings): - Specify sve_width. - (aarch64_estimated_poly_value): Define. - (TARGET_ESTIMATED_POLY_VALUE): Define. - -2018-12-07 Paul A. Clarke - - PR target/88408 - * config/rs6000/mmintrin.h (_mm_packs_pu16): Correctly use "__vector". - -2018-12-07 Vladimir Makarov - - PR rtl-optimization/88349 - * ira-costs.c (record_operand_costs): Check bigger reg class on - NO_REGS. - -2018-12-07 Richard Sandiford - - * config/aarch64/aarch64-sve.md (*mul3, *v3): - Split the patterns after reload if we don't need the predicate - operand. - (*post_ra_mul3, *post_ra_v3): New patterns. - -2018-12-07 Richard Sandiford - - * config/aarch64/iterators.md (SVE_UNPRED_FP_BINARY): New code - iterator. - (sve_fp_op): Handle minus and mult. - * config/aarch64/aarch64-sve.md (*add3, *sub3) - (*mul3): Split the patterns after reload if we don't - need the predicate operand. - (*post_ra_3): New pattern. - -2018-12-07 Bin Cheng - - * profile-count.h (profile_count::oeprator>=): Fix typo by inverting - return condition when *this is precise zero. - -2018-12-07 Jakub Jelinek - - PR target/85593 - * final.c (rest_of_handle_final): Don't call collect_fn_hard_reg_usage - for functions with naked attribute. - - PR c/88367 - * tree-vrp.c (extract_range_from_binary_expr): For POINTER_PLUS_EXPR - with -fno-delete-null-pointer-checks, set_nonnull only if the pointer - is non-NULL and offset is known to have most significant bit clear. - * vr-values.c (vr_values::vrp_stmt_computes_nonzero): For ADDR_EXPR - of MEM_EXPR, return true if the MEM_EXPR has non-zero offset with - most significant bit clear. If offset does have most significant bit - set and -fno-delete-null-pointer-checks, don't return true even if - the base pointer is non-NULL. - -2018-12-06 Alexandre Oliva - - * cselib.c (cselib_record_sets): Skip strict low part sets - with NULL src_elt. - -2018-12-06 Paul A. Clarke - - PR target/88316 - * config/rs6000/smmintrin.h: New file. - * config.gcc: Add smmintrin.h to extra_headers for powerpc*-*-*. - -2018-12-06 Paul A. Clarke - - PR target/88316 - * config/rs6000/mmintrin.h (_mm_unpackhi_pi8): Fix for big-endian. - (_mm_unpacklo_pi8): Likewise. - (_mm_mulhi_pi16): Likewise. - (_mm_packs_pi16): Fix for big-endian. Use preferred API. - (_mm_packs_pi32): Likewise. - (_mm_packs_pu16): Likewise. - * config/rs6000/xmmintrin.h (_mm_cvtss_si32): Fix for big-endian. - (_mm_cvtss_si64): Likewise. - (_mm_cvtpi32x2_ps): Likewise. - (_mm_shuffle_ps): Likewise. - (_mm_movemask_pi8): Likewise. - (_mm_mulhi_pu16): Likewise. - (_mm_sad_pu8): Likewise. - (_mm_sad_pu8): Likewise. - (_mm_cvtpu16_ps): Fix for big-endian. Use preferred API. - (_mm_cvtpu8_ps): Likewise. - (_mm_movemask_ps): Better #else case for big-endian (no functional - change). - (_mm_shuffle_pi16): Likewise. - * config/rs6000/emmintrin.h (_mm_movemask_pd): Fix for big-endian. - Better #else case for big-endian (no functional change). - (_mm_movemask_epi8): Likewise. - (_mm_shufflehi_epi16): Likewise. - (_mm_shufflelo_epi16): Likewise. - (_mm_shuffle_epi32): Likewise. - (_mm_mul_epu32): Fix for big-endian. - (_mm_bsrli_si128): Likewise. - (_mm_cvtps_pd): Better #else case for big endian. - (_mm_mulhi_epi16): Likewise. - (_mm_mul_epu32): Likewise. - (_mm_slli_si128): Likewise. - (_mm_sll_epi16): Likewise. - (_mm_sll_epi32): Likewise. - (_mm_sra_epi16): Likewise. - (_mm_sra_epi32): Likewise. - (_mm_srl_epi16): Likewise. - (_mm_srl_epi32): Likewise. - (_mm_mulhi_epu16): Likewise. - (_mm_sad_epu8): Likewise. - * config/rs6000/pmmintrin.h (_mm_hadd_ps): Fix for big-endian. - (_mm_sub_ps): Likewise. - * config/rs6000/mmintrin.h (_mm_cmpeq_pi8): Fix for 32-bit mode. - * gcc/config/rs6000/tmmintrin.h (_mm_alignr_epi8): Use ENDIAN - macros consistently (no functional changes). - (_mm_alignr_pi8): Likewise. - -2018-12-06 Iain Sandoe - - PR c++/87380 - * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC) Remove, use the - default. - * config/rs6000/darwin7.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New. - -2018-12-06 Vladimir Makarov - - PR target/88282 - * ira.c (ira_init_register_move_cost): Use info from - hard_regno_mode_ok instead of contains_reg_of_mode. - * ira-costs.c (contains_reg_of_mode): Don't use cost from bigger - hard register class for some fixed hard registers. - -2018-12-06 Segher Boessenkool - - * doc/extend.texi (Using Assembly Language with C): Document asm inline. - (Size of an asm): Fix typo. Document asm inline. - * gimple-pretty-print.c (dump_gimple_asm): Handle asm inline. - * gimple.h (enum gf_mask): Add GF_ASM_INLINE. - (gimple_asm_set_volatile): Fix typo. - (gimple_asm_inline_p): New. - (gimple_asm_set_inline): New. - * gimplify.c (gimplify_asm_expr): Propagate the asm inline flag from - tree to gimple. - * ipa-icf-gimple.c (func_checker::compare_gimple_asm): Compare the - gimple_asm_inline_p flag, too. - * tree-core.h (tree_base): Document that protected_flag is ASM_INLINE_P - in an ASM_EXPR. - * tree-inline.c (estimate_num_insns): If gimple_asm_inline_p return - a minimum size for an asm. - * tree.h (ASM_INLINE_P): New. - -2018-12-06 Segher Boessenkool - - PR inline-asm/55681 - * doc/extend.texi (Basic Asm): Update grammar. - (Extended Asm): Update grammar. - -2018-12-06 Iain Sandoe - - PR target/78444 - * config/i386/darwin.h (STACK_BOUNDARY): Remove macro. - * config/i386/i386.c (ix86_compute_frame_layout): Ensure at least 128b - stack alignment in non-leaf functions. - -2018-12-06 Jakub Jelinek - - PR target/87598 - * config/aarch64/aarch64.c (aarch64_print_address_internal): Don't - call output_operand_lossage on VOIDmode CONST_INTs. After - output_operand_lossage do return false. - -2018-12-06 Richard Biener - - * df-problems.c (df_rd_local_compute): Use bitmap_release. - (df_live_free): Likewise. - (df_md_local_compute): Likewise. - (df_md_free): Release df_md_scratch bitmap. - * loop-invariant.c (calculate_loop_reg_pressure): Use - bitmap_release. - * sched-deps.c (true_dependency_cache, output_dependency_cache, - anti_dependency_cache, control_dependency_cache, - spec_dependency_cache): Use bitmap instead of bitmap_head *. - * sched-ebb.c (schedule_ebbs_init): Initialize non-GTY - dont_calc_deps as bitmap allocated from obstack not GC. - (schedule_ebbs_finish): Use bitmap_release. - * sched-rgn.c (schedule_insns): Initialize non-GTY - not_in_df as bitmap allocated from obstack not GC. - Use bitmap_release. - * sel-sched.c (_forced_ebb_heads): Remove premature optimization. - (sel_region_init): Allocate forced_ebb_heads. - (sel_region_finish): Free forced_ebb_heads. - -2018-12-06 Richard Biener - - * bitmap.c (bitmap_head::crashme): Define. - * bitmap.h (bitmap_head): Add constexpr default constructor - poisoning the obstack member. - (bitmap_head::crashme): Declare. - (bitmap_release): New function clearing a bitmap and poisoning - the obstack member. - * gengtype.c (main): Make it recognize CONSTEXPR. - * lra-constraints.c (lra_inheritance): Use bitmap_release - instead of bitmap_clear. - * ira.c (ira): Work around class-memaccess warning. - * regrename.c (create_new_chain): Likewise. - -2018-12-06 Jakub Jelinek - - PR tree-optimization/85726 - * generic-match-head.c (optimize_successive_divisions_p): New function. - * gimple-match-head.c (optimize_successive_divisions_p): Likewise. - * match.pd: Don't combine successive divisions if they aren't exact - and optimize_successive_divisions_p is false. - - PR fortran/88304 - * tree-nested.c (convert_nonlocal_reference_stmt): Remove clobbers - for non-local automatic decls. - -2018-12-05 David Edelsohn - - * config/rs6000/aix72.h (ASM_DEFAULT_SPEC): Match Power7 processor - default. - -2018-12-05 Uros Bizjak - - * dwarf2out.c (field_byte_offset): Remove - #ifdef PCC_BITFIELD_TYPE_MATTERS check. - -2018-12-05 Richard Biener - Martin Sebor - - PR c/87028 - * calls.c (get_attr_nonstring_decl): Avoid setting *REF to - SSA_NAME_VAR. - * gcc/gimple-low.c (lower_stmt): Fold builtin calls here. - * gimplify (maybe_fold_stmt): Avoid folding builtin calls. - -2018-12-05 Iain Sandoe - - * configure.ac (gcc_cv_otool): Set. - * configure: Regenerate. - -2018-12-05 Uros Bizjak - - * config/i386/cygming.h (PCC_BITFIELD_TYPE_MATTERS): Remove. - (GROUP_BITFIELDS_BY_ALIGN): Ditto. - -2018-12-05 Richard Sandiford - - PR tree-optimization/88064 - * tree-vect-patterns.c (vect_convert_input): Convert the result of - an existing cast if it has the right width but the wrong sign. - Do not test the signedness of the required result when - considering whether to split an existing cast; instead split to - a type with the same signedness as the source of the cast, then - convert it to the opposite signedness where necessary. - (vect_recog_over_widening_pattern): Handle sign changes between - the final PLUS_EXPR and the RSHIFT_EXPR. - (vect_recog_average_pattern): Use an unsigned operation when - truncating an addition, subtraction or multiplication. Cast the - result back to the "real" signedness before promoting. - -2018-12-05 Richard Biener - - PR tree-optimization/86637 - * tree-vectorizer.c (pass_slp_vectorize::execute): Reset - vect_location at the end. - -2018-12-05 Jakub Jelinek - - PR tree-optimization/87360 - * gimple-loop-jam.c (tree_loop_unroll_and_jam): On failure to analyze - data dependencies, don't return false, just continue. Formatting - fixes. - (merge_loop_tree, bb_prevents_fusion_p, unroll_jam_possible_p, - fuse_loops): Formatting fixes. - - PR sanitizer/88333 - * cfgexpand.c (expand_stack_vars): If asan_vec is empty, start with - aligning frame offset to ASAN_RED_ZONE_SIZE bytes. - -2018-12-05 Xianmiao Qu - - * config.gcc (csky-*-linux-gnu*): Force .init_array support. - -2018-12-05 Segher Boessenkool - - * config/rs6000/rs6000.c (rs6000_function_arg): Only do the special - aggregate handling on actual AIX, not on somewhat similar systems. - (rs6000_arg_partial_bytes): Ditto. - -2018-12-04 Vladimir Makarov - - PR rtl-optimization/88317 - * lra-constraints.c (split_reg): Don't set up check_only_regs if - we are outside the inheritance pass. - -2018-12-04 Jan Hubicka - - * ipa-prop.c (jump_function_useful_p): New. - (ipa_read_node_info): Do not allocated useless jump functions. - -2018-12-04 David Malcolm - - PR c/82967 - * spellcheck.c (selftest::test_suggestions): Add another assertion. - -2018-12-04 Martin Sebor - - * doc/extend.texi (__builtin_has_attribute): Fix typo. - -2018-12-04 Jakub Jelinek - - PR target/88188 - * config/rs6000/rs6000.c (ccr_bit): Return -1 instead of assertion - failures. - (print_operand): Use REG_P instead of GET_CODE == REG. - : Also check CR_REGNO_P (REGNO (x)). - : Likewise. Remove GET_MODE check. - * config/rs6000/rs6000.md (scc patterns): Assert ccr_bit didn't - return -1. - -2018-12-04 Martin Sebor - - * doc/extend.texi (attribute aligned): Expand. - -2018-12-04 David Edelsohn - - PR target/61976 - * config/rs6000/rs6000.c (rs6000_function_arg): Don't pass aggregates - in FPRs on AIX. - (rs6000_arg_partial_bytes): Same. - -2018-12-04 Vladimir Makarov - - PR target/88282 - * ira-costs.c (exec): Try bigger class to use smaller register - move cost. - -2018-12-04 Michael Ploujnikov - - PR ipa/88297 - * ipa-cp.c (create_specialized_node): Track clone counters by - node assembler names. - (ipcp_driver): Change type of clone_num_suffixes key to const char*. - -2018-12-04 Richard Biener - - * tree-vect-loop.c (vect_transform_loop): Fix epilogue iterations - for epilogue vectorization. - -2018-12-04 Richard Biener - - PR tree-optimization/88301 - * tree-vrp.c (register_edge_assert_for_2): Fix sign-conversion - issues in last commit. - -2018-12-04 Richard Biener - - PR tree-optimization/88315 - * tree-vect-loop.c (get_initial_defs_for_reduction): Simplify - and fix initialization vector for SAD and DOT_PROD SLP reductions. - -2018-12-03 Sandra Loosemore - - PR c/59039 - * doc/extend.texi (Nonlocal gotos): New section. - -2018-12-03 Uros Bizjak - - * config/i386/sse.md (vec_concatv2df): Change (v,xm,C) - alternative to (v,vm,c). - -2018-12-03 Segher Boessenkool - - * gcc/config.gcc (Unsupported targets): Add powerpc*-*-linux*paired*. - (powerpc*-*-linux*): Don't handle it here. - -2018-12-03 Jeff Law - - * config/h8300/h8300.md (qi3_1): Add gcc_unreachable to keep - warnings quiet. - - * config/h8300/h8300.md (low byte masking peepholes): Only accept - nonimmediate_operand for the to-be-masked operand. - -2018-12-03 Richard Biener - - * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only - allow expected function-pointer cast re-instantiation. - -2018-12-03 Ilya Leoshkevich - - * common/config/s390/s390-common.c (s390_option_init_struct): - Use section anchors by default. - * config/s390/s390.c (s390_check_symref_alignment): Handle - anchors. - (TARGET_MAX_ANCHOR_OFFSET): Use short displacement. - * output.h (assemble_align): Pass `align' as unsigned int, so - that the value 0x80000000, which corresponds to `aligned(1 << - 28)', would pass the `align > BITS_PER_UNIT' check. - * varasm.c (assemble_align): Likewise. - -2018-12-03 Julian Brown - - * tree-pretty-print.c (dump_omp_clause): Make default case - gcc_unreachable. - -2018-12-03 Richard Biener - - PR tree-optimization/88301 - * tree-vrp.c (register_edge_assert_for_2): Handle conversions - that do not change the value by registering the same assert - for the operand. - -2018-12-03 Richard Biener - - * tree-vect-loop.c (vect_transform_loop): Properly compute - upper bound for the epilogue when doing epilogue vectorization. - -2018-12-03 Ilya Leoshkevich - - PR target/80080 - * cfgcleanup.c (class pass_postreload_jump): New pass. - (pass_postreload_jump::execute): Likewise. - (make_pass_postreload_jump): Likewise. - * passes.def: Add pass_postreload_jump before - pass_postreload_cse. - * tree-pass.h (make_pass_postreload_jump): New pass. - -2018-12-02 Uros Bizjak - - * config/i386/i386.c (inline_memory_move_cost): Correctly - compute number of TFmode GPR moves. - -2018-12-02 Jakub Jelinek - - PR target/88278 - * config/i386/sse.md (*vec_concatv4sf_0, *vec_concatv4si_0): New insns. - -2018-12-02 Jeff Law - - * config/h8300/h8300.md (call, call_value): Drop mode from - operand containing number of bytes pushed. - (call_insn, call_value_insn): Use mode iterator for number - of bytes pushed operand. Make pattern name vary appropriately. - -2018-12-02 Jan Hubicka - - * bb-reorer.c (find_rarely_executed_basic_blocks_and_crossin_edges): - trust precise profiles. - -2018-12-02 Jakub Jelinek - - * tree-nested.c (convert_nonlocal_omp_clauses, - convert_local_omp_clauses): Handle OMP_CLAUSE_IN_REDUCTION, - OMP_CLAUSE_TASK_REDUCTION and OMP_CLAUSE__SIMT_ clauses. - (convert_nonlocal_reference_stmt, convert_local_reference_stmt): - Convert clauses for GIMPLE_OMP_TASKGROUP. - - * omp-low.c (check_omp_nesting_restrictions): Allow cancel or - cancellation point with taskgroup clause inside of taskloop. Consider - a taskloop construct without nogroup clause as implicit taskgroup for - diagnostics if cancel/cancellation point with taskgroup clause is - closely nested inside of taskgroup region. - - PR sanitizer/88291 - * asan.c (asan_clear_shadow): Move assert that len is multiple of 4 - to the start of the function. - (asan_emit_stack_protection): When emitting clearing sequence for - epilogue, align offset down to ASAN_RED_ZONE_SIZE granularity, - add last_size_aligned which is last_size padded to multiples of - ASAN_RED_ZONE_SIZE and emit asan_clear_shadow always on 4 byte - boundaries. - -2018-12-01 Jakub Jelinek - - PR sanitizer/88289 - * asan.c (asan_redzone_buffer::flush_redzone_payload): Fix up - an off-by-one for BYTES_BIG_ENDIAN. - - PR target/54589 - * combine.c (find_split_point): For invalid memory address - nonobj + obj + const, if reg + obj + const is valid addressing - mode, split at nonobj. Use if rather than else if for the - fallback. Comment fixes. - -2018-11-30 Indu Bhagat - - * coverage.c (get_coverage_counts): Use from_function_decl for precise - function location. - * profile-count.c (profile_count::dump): Add handling for precise - profile quality. - * profile.c (compute_branch_probabilities): Rely on exec_counts instead - of profile_info to set profile_status of function. - (branch_prob): Do not set profile_status of function based on - profile_info. Done above based on exec_counts. - -2018-11-30 Jakub Jelinek - - PR tree-optimization/88274 - * tree-ssa-reassoc.c (optimize_range_tests_xor, - optimize_range_tests_diff): If type has smaller precision than - corresponding mode or if it has non-standard min/max, compute - everything in a standard type for the precision. - - PR testsuite/85368 - * params.def (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT): New param. - * tree-ssa-ifcombine.c (ifcombine_ifandif): If - --param logical-op-non-short-circuit is present, override - LOGICAL_OP_NON_SHORT_CIRCUIT value from the param. - * fold-const.c (fold_range_test, fold_truth_andor): Likewise. - -2018-11-30 Jeff Law - - * optabs.c (expand_binop): Use "machine_mode" rather than - "enum machine mode" in most recent change. - -2018-11-30 Wilco Dijkstra - - PR middle-end/64242 - * builtins.c (expand_builtin_longjmp): Use a temporary when restoring - the frame pointer. - (expand_builtin_nonlocal_goto): Likewise. - -2018-11-30 David Malcolm - - * diagnostic-core.h (emit_diagnostic): New decl. - * diagnostic.c (emit_diagnostic): New overload, taking a - rich_location *. - -2018-11-30 David Malcolm - - * pretty-print.c (class selftest::test_pretty_printer): New - subclass of pretty_printer. - (selftest::test_prefixes_and_wrapping): New test. - (selftest::pretty_print_c_tests): Call it. - -2018-11-30 Michael Ploujnikov - - Minimize clone counter memory usage in create_virtual_clone. - * cgraph.h (clone_function_name): Add a variant that takes a - tree decl. - * cgraph.h (cgraph_node::create_virtual_clone): Add a new - argument: num_suffix. - * cgraphclones.c (cgraph_node::create_virtual_clone): Pass - num_suffix to clone_function_name. - (clone_function_name): Add a variant that takes a tree decl. - * ipa-cp.c (create_specialized_node): Keep track of clone - counters in clone_num_suffixes hash map. - (ipcp_driver): Free the counter hash map. - * ipa-hsa.c (process_hsa_functions): Creates at most one hsa - clone per function. - -2018-11-30 Michael Ploujnikov - Make function assembly more independent. - - This is achieved by having clone_function_name assign unique clone - numbers for each function independently. - - * cgraphclones.c: Replaced clone_fn_id_num with clone_fn_ids; - hash map. - (clone_function_name_numbered): Use clone_fn_ids. - -2018-11-30 Vladimir Makarov - - PR rtl-optimization/88179 - * lra-constraints.c (address_eliminator::address_eliminator): - Don't eleminate regs in illegitimate address. - -2018-11-30 David Malcolm - - PR preprocessor/88257 - * input.c (get_substring_ranges_for_loc): Fix indentation. - Bulletproof against getting a different files back from - linemap_resolve_location and expand_location_to_spelling_point. - -2018-11-30 Alexander Monakov - - PR gcov-profile/88279 - * tree-profile.c (init_ic_make_global_vars): Call - decl_default_tls_model for variable and not it's type. - -2018-11-30 Sam Tebbs - - * config/arm/arm.h (TARGET_DOTPROD): Add TARGET_VFP5 constraint. - -2018-11-30 Martin Liska - - PR sanitizer/81715 - * asan.c (asan_shadow_cst): Remove, partially transform - into flush_redzone_payload. - (RZ_BUFFER_SIZE): New. - (struct asan_redzone_buffer): New. - (asan_redzone_buffer::emit_redzone_byte): Likewise. - (asan_redzone_buffer::flush_redzone_payload): Likewise. - (asan_redzone_buffer::flush_if_full): Likewise. - (asan_emit_stack_protection): Use asan_redzone_buffer class - that is responsible for proper aligned stores and flushing - of shadow memory payload. - * asan.h (ASAN_MIN_RED_ZONE_SIZE): New. - (asan_var_and_redzone_size): Likewise. - * cfgexpand.c (expand_stack_vars): Use smaller alignment - (ASAN_MIN_RED_ZONE_SIZE) in order to make shadow memory - for automatic variables more compact. - -2018-11-30 Alan Modra - - * config/rs6000/predicates.md (easy_fp_constant): Avoid long - dependent insn sequences. - * config/rs6000/rs6000.c (num_insns_constant): Support long - double constants. - * config/rs6000/rs6000.md (mov_softfloat ): Adjust - length attribute. - -2018-11-30 Alan Modra - - * config/rs6000/rs6000.c (num_insns_constant_gpr): Renamed from - num_insns_constant_wide. Make static. Revise comment. - (num_insns_constant_multi): New function. - (num_insns_constant): Formatting. Correct CONST_WIDE_INT - calculation. Simplify and extract code common to both - CONST_INT and CONST_DOUBLE. Add gcc_unreachable for unhandled - const_double modes. - * config/rs6000/rs6000-protos.h (num_insns_const_wide): Delete. - -2018-11-30 Richard Biener - - PR tree-optimization/88274 - * tree-vrp.c (ranges_from_anti_range): Fix handling of - TYPE_MIN/MAX_VALUE. - -2018-11-29 Andi Kleen - - * config/i386/i386.c (current_fentry_section): Add. - (x86_function_profiler): Handle fentry section. - (ix86_attribute_table): Add fentry section. - * config/i386/i386.opt: Add -mfentry-section. - * doc/extend.texi: Document fentry_section attribute. - * doc/invoke.texi: Document -mfentry-section. - -2018-11-29 Andi Kleen - - * config/i386/i386.c (x86_print_call_or_nop): Handle nop name. - (current_fentry_name): Add. - (x86_function_profiler): Handle fentry_name attribute. - (ix86_handle_fentry_name): Add. - (ix86_attribute_table): Add fentry_name. - * config/i386/i386.opt: Add -mfentry-name - * doc/extend.texi: Document fentry_name. - * doc/invoke.texi: Document minstrument-return. - -2018-11-29 Andi Kleen - - * config/i386/i386-opts.h (enum instrument_return): Add. - * config/i386/i386.c (output_return_instrumentation): Add. - (ix86_output_function_return): Call output_return_instrumentation. - (ix86_output_call_insn): Call output_return_instrumentation. - * config/i386/i386.opt: Add -minstrument-return=. - * doc/invoke.texi (-minstrument-return): Document. - -2018-11-29 Eric Botcazou - - PR target/87807 - * config/sparc/sparc-modes.def: Minor tweak. - * config/sparc/sparc.c: Minor reordering. - (sparc_pass_by_reference): Move around. - (traverse_record_type): Change offset from HOST_WIDE_INT to int. - (classify_registers): Likewise for bitpos. - (function_arg_slotno): Remove dead test and tweak comments. - : Remove useless assertion and test whether the - parameter is named in order to pass it in FP registers. Return - the regno for floating-point vector types. - (compute_int_layout): Change bitpos from HOST_WIDE_INT to int. - (compute_fp_layout): Likewise. - (count_registers): Likewise. - (assign_int_registers): Likewise. - (assign_fp_registers): Likewise. - (assign_registers): Likewise. - (function_arg_record_value): Change size from HOST_WIDE_INT to int - and use CEIL_NWORDS to compute the number of registers. - (function_arg_union_value): Minor tweaks. - (function_arg_vector_value): Add slotno and named parameters, use - CEIL_NWORDS to compute the number of registers. - (sparc_function_arg_1): Rework handling of vector types. Change - size from HOST_WIDE_INT to int. - (sparc_arg_partial_bytes): Rework handling of 32-bit ABI and deal - with vector types for the 64-bt ABI. - (sparc_function_arg_advance): Likewise. - (sparc_return_in_memory): Add reference to -fpcc-struct-return. - (sparc_struct_value_rtx): Return NULL_RTX instead of 0. - (sparc_function_value_1): Rework handling of vector types. Change - size from HOST_WIDE_INT to int. - -2018-11-29 Jakub Jelinek - - PR target/88152 - * config/i386/sse.md (*_movmsk_lt, - *_movmsk_zext_lt, - *_movmsk_shift, - *_movmsk_zext_shift, - *_pmovmskb_lt, *_pmovmskb_zext_lt): New - define_insn_and_split patterns. - - PR target/54700 - * config/i386/sse.md - (*_blendv_lt, - *_blendv_ltint, - *_pblendvb_lt): Change define_insn into - define_insn_and_split. - -2018-11-29 Peter Bergner - - PR target/87496 - * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow - -mabi=ieeelongdouble without both -mpopcntd and -mvsx. - -2018-11-29 Uros Bizjak - - * config/i386/i386.c (inline_memory_move_cost): - Check "in" for 2 in MMX_CLASS_P case. - * config/i386/mmx.md (*mov_internal): Correct - TARGET_INTER_UNIT_MOVES_FROM_VEC and TARGET_INTER_UNIT_MOVES_TO_VEC - alternatives in preferred_for_speed attribute calculation. - -2018-11-29 Martin Sebor - - PR c/88172 - PR testsuite/88208 - * doc/extend.texi (attribute constructor): Clarify. - -2018-11-29 Martin Liska - - PR middle-end/88246 - * builtins.c (expand_movstr): Fix thinko introduced - when switching to the new enum. - -2018-11-29 qing zhao - - * cif-code.def (EXTERN_LIVE_ONLY_STATIC): New CIF code. - * common.opt: Add -flive-patching flag. - * doc/invoke.texi: Document -flive-patching. - * flag-types.h (enum live_patching_level): New enum. - * ipa-inline.c (can_inline_edge_p): Disable external functions from - inlining when flag_live_patching is LIVE_PATCHING_INLINE_ONLY_STATIC. - * opts.c (control_options_for_live_patching): New function. - (finish_options): Make flag_live_patching incompatible with flag_lto. - Control IPA optimizations based on different levels of - flag_live_patching. - -2018-11-29 Giuliano Belinassi - - * match.pd (sinh (atanh (x))): New simplification rules. - (cosh (atanh (x))): Likewise. - -2018-11-29 Jakub Jelinek - - PR target/54700 - * config/i386/sse.md (ssebytemode): Add V16SI, V8SI and V4SI entries. - (ssefltmodesuffix, ssefltvecmode): New define_mode_attrs. - (*_blendv_lt, - *_blendv_ltint, - *_pblendvb_lt): New define_insns. - - PR target/88152 - * tree.h (build_uniform_cst, uniform_integer_cst_p): Declare. - * tree.c (build_uniform_cst, uniform_integer_cst_p): New functions. - * match.pd (define_predicates): Add uniform_integer_cst_p. - (cmp @0 INTEGER_CST@1, cmp (convert?@2 @0) INTEGER_CST@1): Adjust - so that it works also for vector comparisons with uniform constants - with INTEGER_CST element. - - PR target/88234 - * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): For - vec_add and vec_sub builtins, perform PLUS_EXPR or MINUS_EXPR - in unsigned_type_for instead of vector integral type where overflow - doesn't wrap. - -2018-11-29 Michael Ploujnikov - - There can be at most one .resolver clone per function - * config/rs6000/rs6000.c (make_resolver_func): Generate - resolver symbol with clone_function_name instead of - clone_function_name_numbered. - -2018-11-29 Richard Biener - - PR tree-optimization/88243 - * tree-vect-patterns.c (vect_mark_pattern_stmts): Set the def - type of all pattern-sequence stmts to vect_internal_def. - -2018-11-29 Andre Vieira - - PR target/88224 - * config/arm/arm-cpus.in (armv7-r): Add FP16conv configurations. - (cortex-r7, cortex-r8): Update default and add new configuration. - * doc/invoke.texi (armv7-r): Add two new vfp options. - (nofp.dp): Add cortex-r7 and cortex-r8 to the list of targets that - support this option. - -2018-11-29 Alan Modra - - * config/rs6000/rs6000.c (rs6000_emit_move): Disable long - double split for targets other than Darwin. - -2018-11-29 Alan Modra - - * config/rs6000/rs6000.md (movdi_internal64): Correct lengths. - -2018-11-29 Alan Modra - - * config/rs6000/predicates.md (easy_fp_constant): Remove code - dealing with integers in const_double. Assert on unexpected - modes. Delete superfluous ABI_V4 test. - * config/rs6000/rs6000.c (rs6000_emit_move): Comment fixes. - Don't call easy_fp_constant for Pmode. - (rs6000_hash_constant): Remove code dealing with integers in - const_double. - (rs6000_legitimate_constant_p): Likewise. - (output_toc): Formatting, use CONST_DOUBLE_P. - -2018-11-29 Alan Modra - - * config/rs6000/constraints.md (G, H): Comment on purpose of - constraint. Correct mode comments and "G" mode test. - * config/rs6000/rs6000.md (movdi_internal32): Remove "GH" from - alternative handling "F". Add length attr. Formatting. - (mov_softfloat ): Delete "GH" from - alternative, and move "F" to separate alternative. Correct - insn lengths. - -2018-11-29 Alan Modra - - * config/rs6000/predicates.md (easy_vector_constant): Don't call - easy_fp_constant. - -2018-11-29 Alan Modra - - * config.in (HAVE_AS_PLTSEQ): Add. - * config/rs6000/predicates.md (indirect_call_operand): New. - * config/rs6000/rs6000-protos.h (rs6000_pltseq_template), - (rs6000_sibcall_sysv): Declare. - * config/rs6000/rs6000.c (init_cumulative_args): Set cookie - CALL_LONG for -fno-plt. - (print_operand ): Handle UNSPEC_PLTSEQ. - (rs6000_indirect_call_template_1): Emit .reloc directives for - UNSPEC_PLTSEQ calls. - (rs6000_pltseq_template): New function. - (rs6000_longcall_ref): Add arg parameter. Use PLT16 insns if - relocs supported by assembler. Move SYMBOL_REF test to callers. - (rs6000_call_aix): Adjust rs6000_longcall_ref call. Package - insns in UNSPEC_PLTSEQ, preserving original func_desc. - (rs6000_call_sysv): Likewise. - (rs6000_sibcall_sysv): New function. - * config/rs6000/rs6000.h (HAVE_AS_PLTSEQ): Provide default. - * config/rs6000/rs6000.md (UNSPEC_PLTSEQ, UNSPEC_PLT16_HA, - UNSPEC_PLT16_LO): New. - (pltseq_tocsave, pltseq_plt16_ha, pltseq_plt16_lo, pltseq_mtctr): New. - (call_indirect_nonlocal_sysv): Don't differentiate zero from non-zero - cookie in constraints. Test explicitly for flags in length attr. - Handle unspec operand 1. - (call_value_indirect_nonlocal_sysv): Likewise. - (call_indirect_aix, call_value_indirect_aix): Handle unspec operand 1. - (call_indirect_elfv2, call_value_indirect_elfv2): Likewise. - (sibcall, sibcall_value): Use rs6000_sibcall_sysv. - (sibcall_indirect_nonlocal_sysv): New pattern. - (sibcall_value_indirect_nonlocal_sysv): Likewise. - (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Remove indirect - call alternatives. - * configure.ac: Check for gas plt sequence marker support. - * configure: Regenerate. - -2018-11-29 Alan Modra - - * config/rs6000/predicates.md (unspec_tls): New. - * config/rs6000/rs6000-protos.h (rs6000_call_template), - (rs6000_sibcall_template): Update prototype. - (rs6000_longcall_ref): Delete. - (rs6000_call_sysv): Declare. - * config/rs6000/rs6000.c (edit_tls_call_insn): New function. - (global_tlsarg): New variable. - (rs6000_legitimize_tls_address): Rewrite __tls_get_addr call - handling. - (print_operand): Extract UNSPEC_TLSGD address operand. - (rs6000_call_template, rs6000_sibcall_template): Remove arg - parameter, extract from second call operand instead. - (rs6000_longcall_ref): Make static, localize vars. - (rs6000_call_aix): Rename parameter to reflect new usage. Take - tlsarg from global_tlsarg. Don't create unused rtl or nop insns. - (rs6000_sibcall_aix): Rename parameter to reflect new usage. Take - tlsarg from global_tlsarg. - (rs6000_call_sysv): New function. - * config/rs6000/rs6000.md: Adjust rs6000_call_template and - rs6000_sibcall_template throughout. - (tls_gd_aix, tls_gd_sysv, tls_gd_call_aix, tls_gd_call_sysv): Delete. - (tls_ld_aix, tls_ld_sysv, tls_ld_call_aix, tls_ld_call_sysv): Delete. - (tls_gdld_nomark): New insn. - (tls_gd): Swap operand order. Simplify mode selection. - (tls_gd_high, tls_gd_low): Swap operand order. - (tls_ld): Remove const_int 0 vector element from UNSPEC_TLSLD. - Simplify mode selection. - (tls_ld_high, tls_ld_low): Similarly adjust UNSPEC_TLSLD. - (call, call_value): Don't assert for second call operand. - Use rs6000_call_sysv. - -2018-11-29 Alan Modra - - * config/rs6000/darwin.md (call_indirect_nonlocal_darwin64), - (call_nonlocal_darwin64, call_value_indirect_nonlocal_darwin64), - (call_value_nonlocal_darwin64): Remove constraints from second call - arg, the rounded_stack_size_rtx arg. - * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv, tls_gd_call_aix), - (tls_gd_call_sysv, tls_ld_aix, tls_ld_sysv, tls_ld_call_aix), - (tls_ld_call_sysv, call_local32, call_local64, call_value_local32), - (call_value_local64, call_indirect_nonlocal_sysv), - (call_nonlocal_sysv, call_nonlocal_sysv_secure), - (call_value_indirect_nonlocal_sysv, call_value_nonlocal_sysv), - (call_value_nonlocal_sysv_secure, call_local_aix), - (call_value_local_aix, call_nonlocal_aix, call_value_nonlocal_aix), - (call_indirect_aix, call_value_indirect_aix, call_indirect_elfv2), - (call_value_indirect_elfv2, sibcall_local32, sibcall_local64), - (sibcall_value_local32, sibcall_value_local64, sibcall_aix), - (sibcall_value_aix): Likewise. - -2018-11-29 Alan Modra - - * config/rs6000/rs6000.md (TLSmode): Delete mode iterator. Replace - with P throughout except for call mems which should use SI. - (tls_abi_suffix, tls_sysv_suffix, tls_insn_suffix): Delete mode - attributes. Replace with bits, mode and ptrload respectively. - -2018-11-29 Alan Modra - - * config/rs6000/rs6000-protos.h (rs6000_indirect_call_template), - (rs6000_indirect_sibcall_template): Declare. - * config/rs6000/rs6000.c (rs6000_indirect_call_template_1), - (rs6000_indirect_call_template, rs6000_indirect_sibcall_template): - New functions. - * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv), - (call_value_indirect_nonlocal_sysv, sibcall_nonlocal_sysv), - (call_indirect_aix, call_value_indirect_aix): Use - rs6000_indirect_call_template and rs6000_indirect_sibcall_template. - call_indirect_elfv2, call_value_indirect_elfv2): Likewise, and - handle both speculation and non-speculation cases. - (call_indirect_aix_nospec, call_value_indirect_aix_nospec): Delete. - (call_indirect_elfv2_nospec, call_value_indirect_elfv2_nospec): Delete. - -2018-11-29 Alan Modra - - * config/rs6000/rs6000-protos.h (rs6000_call_template): Declare. - (rs6000_sibcall_template): Declare. - (macho_call_template): Rename from output_call. - * config/rs6000/rs6000.c (rs6000_call_template_1): New function. - (rs6000_call_template, rs6000_sibcall_template): Likewise. - (macho_call_template): Rename from output_call. - * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv), - (tls_gd_call_aix, tls_gd_call_sysv, tls_ld_aix, tls_ld_sysv), - (tls_ld_call_aix, tls_ld_call_sysv, call_nonlocal_sysv), - (call_nonlocal_sysv_secure, call_value_nonlocal_sysv), - (call_value_nonlocal_sysv_secure, call_nonlocal_aix), - (call_value_nonlocal_aix): Use rs6000_call_template and update - occurrences of output_call to macho_call_template. - (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv, sibcall_aix), - (sibcall_value_aix): Use rs6000_sibcall_template. - -2018-11-28 Aaron Sawdey - - * config/rs6000/rs6000-string.c (expand_block_clear): Change how - we determine if unaligned vsx is ok. - -2018-11-28 Jan Hubicka - - * predict.c (determine_unlikely_bbs): Forward declare; also determine - edges that are always known to be taken because it is only likely - edge out of given BB. - (tree_estimate_probability): Call before profile guessing to get bit - of extra precision. - -2018-11-28 Jan Hubicka - - * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Handle - profile_probability::always better. - -2018-11-28 Jan Hubicka - - * profile-count.h (profile_count::split): Give better result when - splitting profile_probability::always. - -2018-11-28 Vladimir Makarov - - PR target/88207 - * ira-costs.c (scan_one_insn): Process subregs when updating costs - for pseudos and allocnos from insn. - -2018-11-28 David Edelsohn - - * config/rs6000/aix72.h: Update to match aix71.h changes. - -2018-11-28 Jeff Law - - * config/h8300/constraints.md: Add "C" constraint for call insns. - * config/h8300/h8300.md (call, call_value): Turn into a define_expand - and define_insn pair. Move invalid call targets into a register in - the expander and fix constraints in the matching pattern. - * config/h8300/predicates.md (call_expander_operand): Renamed from - call_insn_operand. Reject things we shouldn't be trying to handle. - (call_insn_operand): New predicate for use by the call/call_value - insns. - (small_call_insn_operand): Update appropriately. - -2018-11-28 Sam Tebbs - - * config/aarch64/aarch64.c (aarch64_process_target_attr): Replace - calls to strtok with strtok_r. - -2018-11-28 Richard Biener - - PR tree-optimization/88223 - * tree-ssa-sccvn.c (vn_reference_lookup_3): When skipping - over a stored-same value may-alias store make sure to consider - partial overlaps which are valid when TBAA reasonings do not - apply and byte-granular overlaps are possible at all. - -2018-11-28 Richard Biener - - PR tree-optimization/88217 - * vr-values.c (vr_values::extract_range_from_phi_node): Make - sure to handle results > +INF and < -INF correctly when - trying to drop down to +INF - 1 or -INF + 1. - -2018-11-28 Alan Modra - - * xcoffout.c (do_block): Signed/unsigned warning fix. - -2018-11-28 Richard Biener - - PR tree-optimization/79351 - * tree-ssa-sccvn.c (vn_reference_lookup_3): For assignments from - empty CONSTRUCTORs ensure the store is at a constant position. - -2018-11-28 Richard Biener - - PR tree-optimization/88229 - * tree-ssa.c (non_rewritable_mem_ref_base): Check DECL_SIZE_UNIT - is an INTEGER_CST before accessing it so. - -2018-11-28 Sam Tebbs - - * doc/invoke.texi (-mtune=): Remove obsolete CPU names. - -2018-11-28 Jakub Jelinek - - PR target/88189 - * config/i386/i386.c (ix86_expand_sse_movcc): Handle DFmode and - SFmode using sse4_1_blendvs[sd] with TARGET_SSE4_1. Formatting fixes. - * config/i386/sse.md (sse4_1_blendv): New pattern. - -2018-11-27 Martin Liska - - * gcov.c (generate_results): Append current_working_directory - only when exists. - -2018-11-27 Mike Gulick - - PR preprocessor/83173 - * input.c (dump_location_info): Dump reason and included_from - fields from line_map_ordinary struct. Fix indentation when - location > 5 digits. - * diagnostic-show-locus.c (num_digits, num_digits): Move to - diagnostic.c to allow it to be utilized by input.c. - * diagnostic.c (num_digits, selftest::test_num_digits): Moved - here. - (selftest::diagnostic_c_tests): Run selftest::test_num_digits. - * diagnostic.h (num_digits): Add extern definition. - -2018-11-27 Fredrik Noring - - * config/mips/mips.c (mips_reorg_process_insns) - (mips_option_override): Handle `-mfix-r5900'. - * config/mips/mips.h (ASM_SPEC): Add `mfix-r5900' and - `mno-fix-r5900'. - * config/mips/mips.opt (mfix-r5900): New option. - * doc/invoke.texi: Document the `r5900' processor name, and - `-mfix-r5900' and `-mno-fix-r5900' options. - -2018-11-27 Jakub Jelinek - - PR target/88188 - * config/rs6000/rs6000.c (print_operand) : Use - output_operand_lossage instead of gcc_assert. - : Likewise. - : Likewise. - : Use output_operand_lossage instead of gcc_unreachable. - -2018-11-27 Jeff Law - - * config/riscv/riscv (riscv_block_mvoe_straight): Use RETURN_BEGIN - in call to move_by_pieces. - - * config/sh/sh-mem.c (expand_block_move): Use RETURN_BEGIN in call - to move_by_pieces. - - * config/lm32/lm32.c (lm32_block_move_inline): Use RETURN_BEGIN in - call to move_by_pieces. - - * config/mips/mips.c (mips_block_move_straight): Use RETURN_BEGIN - in call to move_by_pieces. - - * config/microblaze/microblaze.c (microblaze_block_move_straight): Use - RETURN_BEGIN in call to move_by_pieces. - (microblaze_expand_block_move): Likewise. - -2018-11-27 Tamar Christina - - * doc/md.texi (xorsign): Document it. - -2018-11-27 Martin Liska - - * config/gnu-user.h (TARGET_F951_OPTIONS): New. - * gcc.c (find_fortran_preinclude_file): New function - to handle Fortran pre-include. - -2018-11-27 Martin Liska - - * asan.c (asan_emit_stack_protection): Use new enum values - instead of int constants. - * builtins.c (expand_builtin_memory_copy_args): Replace int - type with memop_ret enum type. - (expand_builtin_mempcpy_args): Likewise. - (expand_builtin_memcpy): Use new enum values - instead of int constants. Likewise. - (expand_builtin_mempcpy): Likewise. - (expand_movstr): Likewise. - (expand_builtin_strcpy_args): Likewise. - (expand_builtin_stpcpy_1): Likewise. - (expand_builtin_strncpy): Likewise. - (expand_builtin_memset_args): Likewise. - * expr.c (move_by_pieces_d::finish_endp): Rename to ... - (move_by_pieces_d::finish_retmode): ... this. - (move_by_pieces): Change last argument type to memop_ret. - (store_by_pieces): Use new enum values - instead of int constants. - (emit_block_move_hints): Likewise. - (emit_push_insn): Likewise. - (store_expr): Likewise. - * expr.h (store_by_pieces): Change int to newly added enum - type. - * rtl.h (enum memop_ret): Define. - (move_by_pieces): Use the enum type. - -2018-11-27 Alan Modra - - * config/rs6000/aix71.h (ASM_SPEC): Don't select default -maix64 - cpu here. - (ASM_CPU_SPEC): Do so here. Rewrite using if .. else if .. specs - form. Error on missing -mcpu case. - * config/rs6000/driver-rs6000.c (asm_names <_AIX>): Update NULL case. - (asm_names ): Add missing cpus. Update NULL case. Apply - PR63177 fix for -mcpu=power8 and -mcpu=powerpc64le. - * config/rs6000/rs6000.h (ASM_CPU_SPEC): Rewrite using if .. - else if .. specs form. Error on missing -mcpu case. Don't output - duplicate -maltivec. Apply PR63177 fix for -mcpu=powerpc64le. - -2018-11-26 David Malcolm - - * dump-context.h (dump_context::dump_loc): Convert 1st param from - dump_flags_t to const dump_metadata_t &. Convert 2nd param from - const dump_location_t & to const dump_user_location_t &. - (dump_context::dump_loc_immediate): Convert 2nd param from - const dump_location_t & to const dump_user_location_t &. - (dump_context::dump_gimple_stmt): Convert 1st param from - dump_flags_t to const dump_metadata_t &. - (dump_context::void dump_gimple_stmt_loc): Likewise; convert - 2nd param from const dump_location_t & to - const dump_user_location_t &. - (dump_context::dump_gimple_expr): Convert 1st param from - dump_flags_t to const dump_metadata_t &. - (dump_context::dump_gimple_expr_loc): Likewise; convert - 2nd param from const dump_location_t & to - const dump_user_location_t &. - (dump_context::dump_generic_expr): Convert 1st param from - dump_flags_t to const dump_metadata_t &. - (dump_context::dump_generic_expr_loc): Likewise; convert - 2nd param from const dump_location_t & to - const dump_user_location_t &. - (dump_context::dump_printf_va): Convert 1st param from - dump_flags_t to const dump_metadata_t &. - (dump_context::dump_printf_loc_va): Likewise; convert - 2nd param from const dump_location_t & to - const dump_user_location_t &. - (dump_context::dump_dec): Convert 1st param from - dump_flags_t to const dump_metadata_t &. - (dump_context::dump_symtab_node): Likewise. - (dump_context::begin_scope): Split out 2nd param into - user and impl locations. - (dump_context::ensure_pending_optinfo): Add metadata param. - (dump_context::begin_next_optinfo): Replace dump_location_t param - with metadata and user location. - * dumpfile.c (dump_context::dump_loc): Convert 1st param from - dump_flags_t to const dump_metadata_t &. Convert 2nd param from - const dump_location_t & to const dump_user_location_t &. - (dump_context::dump_loc_immediate): Convert 2nd param from - const dump_location_t & to const dump_user_location_t &. - (dump_context::dump_gimple_stmt): Convert 1st param from - dump_flags_t to const dump_metadata_t &. - (dump_context::void dump_gimple_stmt_loc): Likewise; convert - 2nd param from const dump_location_t & to - const dump_user_location_t &. - (dump_context::dump_gimple_expr): Convert 1st param from - dump_flags_t to const dump_metadata_t &. - (dump_context::dump_gimple_expr_loc): Likewise; convert - 2nd param from const dump_location_t & to - const dump_user_location_t &. - (dump_context::dump_generic_expr): Convert 1st param from - dump_flags_t to const dump_metadata_t &. - (dump_context::dump_generic_expr_loc): Likewise; convert - 2nd param from const dump_location_t & to - const dump_user_location_t &. - (dump_context::dump_printf_va): Convert 1st param from - dump_flags_t to const dump_metadata_t &. - (dump_context::dump_printf_loc_va): Likewise; convert - 2nd param from const dump_location_t & to - const dump_user_location_t &. - (dump_context::dump_dec): Convert 1st param from - dump_flags_t to const dump_metadata_t &. - (dump_context::dump_symtab_node): Likewise. - (dump_context::begin_scope): Split out 2nd param into - user and impl locations. - (dump_context::ensure_pending_optinfo): Add metadata param. - (dump_context::begin_next_optinfo): Replace dump_location_t param - with metadata and user location. - (dump_gimple_stmt): Convert 1st param from dump_flags_t to - const dump_metadata_t &. - (dump_gimple_stmt_loc): Likewise; convert 2nd param from - const dump_location_t & to const dump_user_location_t &. - (dump_gimple_expr): Convert 1st param from dump_flags_t to - const dump_metadata_t &. - (dump_gimple_expr_loc): Likewise; convert 2nd param from - const dump_location_t & to const dump_user_location_t &. - (dump_generic_expr): Convert 1st param from dump_flags_t to - const dump_metadata_t &. - (dump_generic_expr_loc): Likewise; convert 2nd param from - const dump_location_t & to const dump_user_location_t &. - (dump_printf): Convert 1st param from dump_flags_t to - const dump_metadata_t &. - (dump_printf_loc): Likewise; convert 2nd param from - const dump_location_t & to const dump_user_location_t &. - (dump_dec): Convert 1st param from dump_flags_t to - const dump_metadata_t &. - (dump_symtab_node): Likewise. - (dump_begin_scope): Split out 2nd param into user and impl - locations. - (selftest::assert_impl_location_eq): New function. - (ASSERT_IMPL_LOCATION_EQ): New macro. - (selftest::test_impl_location): Update to use - ASSERT_IMPL_LOCATION_EQ. - (selftest::test_capture_of_dump_calls): Convert "loc" to - dump_user_location_t. Add ASSERT_IMPL_LOCATION_EQ throughout, - verifying line numbers of dump emissions. - * dumpfile.h (class dump_metadata_t): New class. - (dump_printf): Convert 1st param from dump_flags_t to - const dump_metadata_t &. - (dump_printf_loc): Likewise; convert 2nd param from - const dump_location_t & to const dump_user_location_t &. - (dump_generic_expr_loc): Likewise. - (dump_generic_expr): Convert 1st param from dump_flags_t to - const dump_metadata_t &. - (dump_gimple_stmt_loc): Likewise; convert 2nd param from - const dump_location_t & to const dump_user_location_t &. - (dump_gimple_stmt): Convert 1st param from dump_flags_t to - const dump_metadata_t &. - (dump_gimple_expr_loc): Likewise; convert 2nd param from - const dump_location_t & to const dump_user_location_t &. - (dump_gimple_expr): Convert 1st param from dump_flags_t to - const dump_metadata_t &. - (dump_symtab_node): Likewise. - (dump_dec): Likewise. - (dump_begin_scope): Split out 2nd param into user and impl - locations. - (auto_dump_scope::auto_dump_scope): Split "loc" param into a user - location and impl_location, and capture the impl_location. - (AUTO_DUMP_SCOPE): Rename param from LOC to USER_LOC. - * loop-unroll.c (report_unroll): Update for changes to - dump_printf_loc and dump_printf. - * opt-problem.cc (opt_problem::opt_problem): Update for change to - dump_loc. - * optinfo-emit-json.cc - (selftest::test_building_json_from_dump_calls): Convert "loc" from - dump_location_t to dump_user_location_t. - * optinfo.cc (optinfo::emit_for_opt_problem): Update for change in - dump_loc_immediate. - * profile.c (compute_branch_probabilities): Update for change to - dump_printf_loc. - * selftest.h (ASSERT_STR_CONTAINS_AT): New macro. - * tree-vect-slp.c (vect_print_slp_tree): Update for change to - dump_printf_loc. - -2018-11-27 Jozef Lawrynowicz - - * doc/sourcebuild.texi: Document check_effective_target_int_eq_float - and check_effective_target_ptr_eq_long. - -2018-11-27 Alan Modra - - * config.gcc (powerpc*-*-freebsd*, powerpc-*-netbsd*), - (powerpc-*-eabisimaltivec*, powerpc-*-eabisim*, powerpc-*-elf*), - (powerpc-*-eabialtivec*, powerpc-*-eabi*, powerpc-*-rtems*), - (powerpc-wrs-vxworks*, powerpc-*-lynxos*, powerpcle-*-elf*), - (powerpcle-*-eabisim*, powerpcle-*-eabi*): Add gnu-user.h to tm_file. - * config/rs6000/freebsd.h (CPLUSPLUS_CPP_SPEC), - (LINK_GCC_C_SEQUENCE_SPEC): Undef. - (ASM_APP_ON, ASM_APP_OFF): Don't define. - * config/rs6000/freebsd64.h (ASM_APP_ON, ASM_APP_OFF): Don't define. - * config/rs6000/lynx.h (ASM_APP_ON, ASM_APP_OFF): Don't define. - * config/rs6000/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - * config/rs6000/netbsd.h (CPLUSPLUS_CPP_SPEC), - (LINK_GCC_C_SEQUENCE_SPEC): Undef. - * config/rs6000/rtems.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - * config/rs6000/sysv4.h (GNU_USER_TARGET_CRTI): Redefine. - (GNU_USER_TARGET_CRTN): Redefine. - (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC. - (LIB_LINUX_SPEC): Use GNU_USER_TARGET_LIB_SPEC. - (CRTOFFLOADBEGIN, CRTOFFLOADEND): Don't define. - (STARTFILE_LINUX_SPEC): Define as GNU_USER_TARGET_STARTFILE_SPEC. - (ENDFILE_LINUX_SPEC): Define as GNU_USER_TARGET_ENDFILE_SPEC. - (UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER): Don't define. - (LINK_EH_SPEC): Don't define. - -2018-11-26 Martin Sebor - - PR 87756 - * expr.c (string_constant): Handle top-level decls of all character - types and subobjects of narrow character type. - -2018-11-27 Alan Modra - - * config.gcc (powerpc*-*-linux*): Add linux.h to tm_file. - * config/rs6000/linux.h (TARGET_OS_CPP_BUILTINS): Use - GNU_USER_TARGET_OS_CPP_BUILTINS. - (RS6000_ABI_NAME): Define. - * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Use - GNU_USER_TARGET_OS_CPP_BUILTINS. - (MUSL_DYNAMIC_LINKER32): Undef before defining. - (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64): Don't define. - (CHOOSE_DYNAMIC_LINKER): Don't define. - (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Don't define. - * config/rs6000/sysv4.h (MUSL_DYNAMIC_LINKER): Undef before defining. - (CHOOSE_DYNAMIC_LINKER, GNU_USER_DYNAMIC_LINKER): Only define when - not already defined. - (CPP_OS_LINUX_SPEC): Remove defines and asserts handled by - TARGET_OS_CPP_BUILTINS. - -2018-11-26 Jozef Lawrynowicz - - * doc/sourcebuild.texi: Document check_effective_target_newlib_nano_io. - -2018-11-26 Jakub Jelinek - - PR target/88195 - * config/i386/i386.c (def_builtin2): If tcode == VOID_FTYPE_UINT64 - and !TARGET_64BIT, return NULL_TREE. - - PR c++/86900 - * dwarf2out.c (secname_for_decl): For functions with - DECL_SECTION_NAME if in_cold_section_p, try to return - current_function_section's name if it is a named section. - -2018-11-26 Maya Rashish - - PR target/58397 - * config.host (*-*-netbsd*): Use x-netbsd and host-netbsd.o. - * config/x-netbsd: New file. - * config/host-netbsd: New file. - -2018-11-26 Jozef Lawrynowicz - - * doc/sourcebuild.texi: Document check_effective_target_size20plus. - Clarify documentation for check_effective_target_size32plus. - -2018-11-26 Aaron Sawdey - - * config/rs6000/rs6000-string.c (expand_cmp_vec_sequence): Rename - and modify expand_strncmp_vec_sequence. - (emit_final_compare_vec): Rename and modify emit_final_str_compare_vec. - (generate_6432_conversion): New function. - (expand_block_compare): Add support for vsx. - (expand_block_compare_gpr): New function. - * config/rs6000/rs6000.opt (rs6000_block_compare_inline_limit): Increase - default limit to 63 because of more compact vsx code. - -2018-11-26 Uros Bizjak - - PR target/88178 - * config/i386/i386.c (dbx_register_map): Use IGNORED_DWARF_REGNUM - for registers for which no debug information can be generated. - Use INVALID_REGNUM for non-existent registers. - (dbx64_register_map): Ditto. - (svr4_dbx_register_map): Ditto. - -2018-11-26 Sandra Loosemore - - PR c/57182 - * doc/invoke.texi (Optimize Options): Document that - -freorder-functions also uses "hot" and "cold" attributes. - -2018-11-26 Kyrylo Tkachov - - * config/aarch64/aarch64.c (aarch64_mangle_type): Fix typo in comment. - -2018-11-26 Kyrylo Tkachov - - * config/arm/types.md (mul64): Rename to... - (widen_mul64): ... This. - * config/arm/arm-generic.md: Rename mul64 to widen_mul64. - * config/arm/cortex-a15.md: Likewise. - * config/arm/cortex-a5.md: Likewise. - * config/arm/cortex-a53.md: Likewise. - * config/arm/cortex-a57.md: Likewise. - * config/arm/cortex-a7.md: Likewise. - * config/arm/cortex-m4.md: Likewise. - * config/arm/exynos-m1.md: Likewise. - * config/arm/marvell-pj4.md: Likewise. - * config/arm/xgene1.md: Likewise. - -2018-11-26 Richard Biener - - PR tree-optimization/88182 - * tree-vect-loop.c (vectorizable_reduction): Pick up single - correct reduc_def_info. - * tree-vect-slp.c (vect_analyze_slp_instance): Set - STMT_VINFO_REDUC_DEF of the first stmt. - -2018-11-26 Andreas Krebbel - - * doc/invoke.texi: Document z14/arch12 -march option. - -2018-11-25 Sandra Loosemore - - PR c/57166 - * doc/invoke.texi (Option Summary): Add -Wmissing-noreturn. - (Warning Options): Likewise. - -2018-11-25 Sandra Loosemore - - PR web/79738 - * doc/extend.texi (Common Function Attributes): Clarify that - functions with "const" attribute can read const global variables. - -2018-11-26 Alan Modra - - * config/rs6000/rs6000.h (OBJECT_PEF, TARGET_MACOS): Delete. - -2018-11-25 Sandra Loosemore - - PR other/54265 - * doc/extend.texi (Common Variable Attributes): Use preferred - placement of type attributes in examples, plus whitespace fixes. - (Type Attributes): Clarify why placement of attributes - immediately after struct/union/enum keyword is preferred. - (Common Type Attributes): Use preferred placement of type - attributes in examples, plus more whitespace fixes. - -2018-11-25 Paul Koning - - * config/pdp11/pdp11.h (TARGET_HAS_NO_HW_DIVIDE): Define. - -2018-11-25 Rainer Orth - - * doc/sourcebuild.texi (Effective-Target Keywords, Environment - attributes): Document d_runtime. - -2018-11-25 Vladimir Makarov - - PR bootstrap/88157 - * ira-costs.c (record_operand_costs): Initiate register move cost - for mode. - -2018-11-23 Jeff Law - - PR rtl-optimization/87468 - * tree-ssa-threadupdate.c (create_block_for_threading): Clear - EDGE_IGNORE on all outgoing edges of the duplicate block. - -2018-11-23 Vladimir Makarov - - PR bootstrap/88157 - * ira-costs.c (record_operand_costs): Use bigger hard reg class if - its mode does not fit to the original class. - -2018-11-23 Martin Sebor - - PR tree-optimization/87756 - * expr.c (string_constant): Synthesize a string literal from - the address of a constant character. - * tree.c (build_string_literal): Add an argument. - * tree.h (build_string_literal): Same. - -2018-11-23 Christoph Muellner - - * config/aarch64/aarch64-cores.def: Define emag. - * config/aarch64/aarch64-tune.md: Regenerated with emag. - * config/aarch64/aarch64.c (emag_tunings): New struct. - * doc/invoke.texi: Document mtune value. - -2018-11-23 Christoph Muellner - Philipp Tomsich - - * config/aarch64/aarch64.c (xgene1_tunings): Optimize Xgene1 tunings - for GCC 9. - * config/aarch64/aarch64.c (xgene1_tunings): Add Xgene1 specific - prefetch tunings. - * config/aarch64/aarch64.c (xgene1_addrcost_table): Correct the post-modify - costs. - * config/arm/aarch-cost-tables.h (xgene1_extra_costs): Update the cost table - for XGene1. - -2018-11-23 Richard Biener - - PR tree-optimization/88149 - * tree-vect-slp.c (vect_slp_analyze_node_operations): Detect - the case where there are two different def types for the - same operand at different operand position in the same stmt. - -2018-23-11 Mihail Ionescu - - * config/arm/arm.c (arm_expand_compare_and_swap): Simplify and call - gen_atomic_compare_swap_1. - (arm_evpc_neon_vuzp): Likewise gen_neon_vuzp_internal. - (arm_evpc_neon_vtrn): Likewise gen_neon_vtrn_internal. - (arm_evpc_neon_vext): Likewise gen_neon_vext_internal. - (arm_evpc_neon_vzip): Likewise gen_neon_vzip_internal. - (arm_evpc_neon_vrev): Replace the function pointer and simplify the mode - checks. - * config/arm/arm.md (neon_vext), - (neon_vrev64, neon_vrev32), - (neon_vrev16, neon_vtrn_internal), - (neon_vzip_internal, neon_vuzp_internal): Add an '@'character - before the pattern name. - * config/arm/sync.md: - (atomic_compare_and_swap_1), - (atomic_compare_and_swap_1): Likewise. - -2018-11-23 Jakub Jelinek - - PR tree-optimization/86614 - * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Return early - if TREE_NO_WARNING is set on ref.ref. - -2018-11-22 Sandra Loosemore - Alan Coopersmith - - PR c/53608 - * doc/extend.texi (Designated Inits): Clarify handling of multiple - initializers for unions. - -2018-11-22 Jan Hubicka - - PR lto/88142 - * ipa-devirt.c (type_variants_equivalent_p): Drop warn and warned - parameters; do not warn here. - (odr_subtypes_equivalent_p): Likewise. - (warn_odr): Fix typo. - (warn_types_mismatch): Do not output confused warnings on integer types. - (odr_types_equivalent_p): Update. - -2018-11-22 Jakub Jelinek - - * config/i386/i386.c (ix86_option_override_internal, - ix86_can_inline_p, classify_argument, construct_container, - ix86_expand_prologue, ix86_expand_split_stack_prologue, - ix86_expand_carry_flag_compare, expand_set_or_movmem_via_loop, - expand_setmem_epilogue_via_loop, promote_duplicated_reg, - ix86_expand_set_or_movmem, ix86_init_builtins_va_builtins_abi): - Formatting fixes. - - * config/i386/i386.c (ix86_option_override_internal): For - stack_protector_guard related options, use opts_set->x_ instead - of global_options_set. and prefix options with opts->x_ . Move - defaults for offset and reg into else block. - -2018-11-22 Uros Bizjak - - * config/i386/i386.c (ix86_check_avx_upper_register): - Return true for all SSE registers with mode bitsize > 128. - -2018-11-22 Vladimir Makarov - - PR rtl-optimization/87718 - * ira-costs.c: Remove trailing white-spaces. - (record_operand_costs): Add a special treatment for moves - involving a hard register. - -2018-11-22 Uros Bizjak - - * config/i386/i386.c (ix86_avx_emit_vzeroupper): Remove. - (ix86_emit_mode_set) : Emit vzeroupper here. - -2018-11-22 Martin Liska - - * common/config/i386/i386-common.c (processor_names): Add - static assert and add missing "znver2". - (ix86_get_valid_option_values): Add checking assert for null - values and add "native" value if feasible. - * config/i386/i386.h: Do not declare size of processor_names. - * common/config/i386/i386-common.c: - * config/i386/i386.c: Add static assert for size - of processor_cost_table. - -2018-11-22 Thomas Preud'homme - - * target-insns.def (stack_protect_combined_set): Define new standard - pattern name. - (stack_protect_combined_test): Likewise. - * cfgexpand.c (stack_protect_prologue): Try new - stack_protect_combined_set pattern first. - * function.c (stack_protect_epilogue): Try new - stack_protect_combined_test pattern first. - * config/arm/arm.c (require_pic_register): Add pic_reg and compute_now - parameters to control which register to use as PIC register and force - reloading PIC register respectively. Insert in the stream of insns if - possible. - (legitimize_pic_address): Expose above new parameters in prototype and - adapt recursive calls accordingly. Use pic_reg if non null instead of - cached one. - (arm_load_pic_register): Add pic_reg parameter and use it if non null. - (arm_legitimize_address): Adapt to new legitimize_pic_address - prototype. - (thumb_legitimize_address): Likewise. - (arm_emit_call_insn): Adapt to require_pic_register prototype change. - (arm_expand_prologue): Adapt to arm_load_pic_register prototype change. - (thumb1_expand_prologue): Likewise. - * config/arm/arm-protos.h (legitimize_pic_address): Adapt to prototype - change. - (arm_load_pic_register): Likewise. - * config/arm/predicated.md (guard_addr_operand): New predicate. - (guard_operand): New predicate. - * config/arm/arm.md (movsi expander): Adapt to legitimize_pic_address - prototype change. - (builtin_setjmp_receiver expander): Adapt to thumb1_expand_prologue - prototype change. - (stack_protect_combined_set): New expander.. - (stack_protect_combined_set_insn): New insn_and_split pattern. - (stack_protect_set_insn): New insn pattern. - (stack_protect_combined_test): New expander. - (stack_protect_combined_test_insn): New insn_and_split pattern. - (arm_stack_protect_test_insn): New insn pattern. - * config/arm/thumb1.md (thumb1_stack_protect_test_insn): New insn pattern. - * config/arm/unspecs.md (UNSPEC_SP_SET): New unspec. - (UNSPEC_SP_TEST): Likewise. - * doc/md.texi (stack_protect_combined_set): Document new standard - pattern name. - (stack_protect_set): Clarify that the operand for guard's address is - legal. - (stack_protect_combined_test): Document new standard pattern name. - (stack_protect_test): Clarify that the operand for guard's address is - legal. - -2018-11-22 Richard Biener - - PR tree-optimization/88148 - * tree-ssa-loop-niter.c (simplify_replace_tree): Get optional - valueization callback parameter and handle it. - * tree-ssa-loop-niter.h (simplify_replace_tree): Export. - * tree-ssa-sccvn.c (process_bb): Eliminate in loop niter trees. - -2018-11-22 Richard Biener - - PR lto/87229 - PR lto/88112 - * lto-streamer-out.c (lto_is_streamable): Allow CALL_EXPRs - which can appear in size expressions. - * tree-streamer-in.c (unpack_ts_base_value_fields): Stream - CALL_EXPR_BY_DESCRIPTOR. - (streamer_read_tree_bitfields): Stream CALL_EXPR_IFN. - * tree-streamer-out.c (pack_ts_base_value_fields): Stream - CALL_EXPR_BY_DESCRIPTOR. - (streamer_write_tree_bitfields): Stream CALL_EXPR_IFN. - - Revert - PR lto/87229 - * tree.c (free_lang_data_in_one_sizepos): Free non-gimple-val - sizepos values. - -2018-11-22 Richard Biener - - PR tree-optimization/88069 - * tree-ssa-sccvn.c (visit_phi): Tweak previous fix to not - apply to default defs. - -2018-11-22 Jakub Jelinek - - PR target/85644 - PR target/86832 - * config/i386/i386.c (ix86_option_override_internal): Default - ix86_stack_protector_guard to SSP_TLS only if TARGET_THREAD_SSP_OFFSET - is defined. - * config/i386/i386.md (stack_protect_set, stack_protect_set_, - stack_protect_test, stack_protect_test_): Use empty condition - instead of TARGET_SSP_TLS_GUARD. - -2018-11-22 Martin Liska - - PR sanitizer/88017 - * config/i386/i386.c (ix86_option_override_internal): Error - about usage -mabi=ms and -fsanitize=thread. - -2018-11-21 Uros Bizjak - - Revert the revert: - 2013-10-26 Vladimir Makarov - - Revert: - 2013-10-25 Vladimir Makarov - - * lra-spills.c (lra_final_code_change): Remove useless move insns. - -2018-11-21 Uros Bizjak - - PR middle-end/88129 - * function.c (expand_function_end): Do not emit extra blockage insn. - -2018-11-21 Lokesh Janghel - - PR target/85667 - * config/i386/i386.c (function_value_ms_64): Return AX_REG instead - of FIRST_SSE_REG for 4 or 8 byte modes. - -2018-11-21 Jan Hubicka - - PR lto/87957 - * tree.c (fld_decl_context): Break out from ... - (free_lang_data_in_decl): ... here; free TREE_PUBLIC, TREE_PRIVATE - DECL_ARTIFICIAL of TYPE_DECL; do not free TREE_TYPE of TYPE_DECL. - (fld_incomplete_type_of): Build copy of TYP_DECL. - * ipa-devirt.c (free_enum_values): Rename to ... - (free_odr_warning_data): ... this one; free also duplicated TYPE_DECLs - and TREE_TYPEs of TYPE_DECLs. - (get_odr_type): Initialize odr_vtable_hash if needed. - -2018-11-21 Alexandre Oliva - - * final.c (compute_discriminator): Declare. Renamed from... - (maybe_set_discriminator): ... this. Set and return a local. - (override_discriminator): New. - (final_scan_insn_1): Set it. - (notice_source_line): Adjust. Always set discriminator. - -2018-11-21 Jakub Jelinek - - PR target/87839 - * config/aarch64/atomics.md (@aarch64_compare_and_swap): Use - rIJ constraint for aarch64_plus_operand rather than rn. - -2018-11-21 Renlin Li - - PR middle-end/84877 - * explow.h (get_dynamic_stack_size): Declare it as external. - * explow.c (record_new_stack_level): Remove function static attribute. - * function.c (assign_stack_local_1): Dynamically align the stack slot - addr for parameter copy on the stack. - -2018-11-21 Richard Biener - - PR bootstrap/88133 - * bitmap.c (bitmap_last_set_bit): Refactor to avoid warning. - * Makefile.in (bitmap.o-warn): Remove again. - -2018-11-20 Jeff Law - - PR tree-optimization/88069 - * tree-ssa-dom.c (record_equivalences_from_phis): Propagate away - degenerate virtual PHIs. - -2018-11-21 H.J. Lu - - PR target/87317 - * config/i386/sse.md (sse4_1_v8qiv8hi2): Replace - nonimmediate_operand with register_operand. - (avx2_v8qiv8si2): Likewise. - (sse4_1_v4qiv4si2): Likewise. - (sse4_1_v4hiv4si2): Likewise. - (sse4_1_v2qiv2di2): Likewise. - (avx512f_v8qiv8di2): Likewise. - (avx2_v4qiv4di2): Likewise. - (avx2_v4hiv4di2): Likewise. - (sse4_1_v2hiv2di2): Likewise. - (sse4_1_v2siv2di2): Likewise. - (*sse4_1_v8qiv8hi2_1): New pattern. - (*sse4_1_v8qiv8hi2_2): Likewise. - (*avx2_v8qiv8si2_1): Likewise. - (*avx2_v8qiv8si2_2): Likewise. - (*sse4_1_v4qiv4si2_1): Likewise. - (*sse4_1_v4qiv4si2_2): Likewise. - (*sse4_1_v4hiv4si2_1): Likewise. - (*sse4_1_v4hiv4si2_2): Likewise. - (*avx512f_v8qiv8di2_1): Likewise. - (*avx512f_v8qiv8di2_2): Likewise. - (*avx2_v4qiv4di2_1): Likewise. - (*avx2_v4qiv4di2_2): Likewise. - (*avx2_v4hiv4di2_1): Likewise. - (*avx2_v4hiv4di2_2): Likewise. - (*sse4_1_v2hiv2di2_1): Likewise. - (*sse4_1_v2hiv2di2_2): Likewise. - (*sse4_1_v2siv2di2_1): Likewise. - (*sse4_1_v2siv2di2_2): Likewise. - -2018-11-21 H.J. Lu - - * read-rtl.c (apply_subst_iterator): Handle define_split and - define_insn_and_split. - -2018-11-21 Jakub Jelinek - - PR rtl-optimization/87817 - * config/i386/i386.md (bmi2_bzhi_3, *bmi2_bzhi_3, - *bmi2_bzhi_3_1, *bmi2_bzhi_3_1_ccz): Use IF_THEN_ELSE - in the pattern to avoid triggering UB when operands[2] is zero. - (tbm_bextri_): New expander. Renamed the old define_insn to ... - (*tbm_bextri_): ... this. - -2018-11-21 Tom de Vries - - PR driver/79855 - * params.def (HOT_BB_COUNT_FRACTION): Terminate help message with - period. - -2018-11-21 Andreas Krebbel - - * configure.ac: Add check for Binutils to determine whether vector - load/store alignments hints are being supported. - * config.in: Regenerate. - * configure: Regenerate. - * config/s390/s390.c (print_operand): Support new output - modifier A. - * config/s390/s390.md ("movti"): Append alignment hint output - using the new output modifier 'A'. - * config/s390/vector.md ("mov", "*vec_tf_to_v1tf") - ("*vec_ti_to_v1ti"): Likewise. - -2018-11-20 Martin Sebor - - * doc/extend.texi (Other Builtins): Add __builtin_has_attribute. - -2018-11-20 Jan Hubicka - - PR lto/84044 - * ipa-devirt.c (odr_types_equivalent_p): Use operand_equal_p to - compare ENUM values. - -2018-11-20 Jakub Jelinek - - PR tree-optimization/87895 - * omp-simd-clone.c (ipa_simd_modify_function_body): When removing - or replacing GIMPLE_RETURN, set EDGE_FALLTHRU on the edge to EXIT. - (simd_clone_adjust): Don't set EDGE_FALLTHRU here. In a loop that - redirects edges to EXIT to edges to incr_bb, iterate while EXIT - has any preds and always use EDGE_PRED (, 0). - -2018-11-20 Uros Bizjak - - PR target/88070 - * mode-switching.c (create_pre_exit): After reload, always split the - fallthrough edge to the exit block. - -2018-11-20 Jan Hubicka - - * ipa-devirt.c (add_type_duplicate): Do not ICE on incomplete enums. - * tree.c (build_array_type_1): Forward declare. - (fld_type_variant_equal_p): Add INNER_TYPE parameter. - (fld_type_variant): Likewise. - (fld_simplified_types): New hash. - (fld_process_array_type): New function. - (fld_incomplete_type_of): Handle array and enumeration types. - (fld_simplified_type): Handle simplification of arrays. - (free_lang_data): Allocate and free simplified types hash. - -2018-11-20 Jan Hubicka - - PR lto/87957 - * ipa-devirt.c (odr_subtypes_equivalent_p): Report ODR violation - when sybtype already violates ODR. - (get_odr_type): Do not ICE when insert is false and type duplicate - is not registered yet. - (register_odr_type): Be sure to register subtypes first. - -2018-11-20 Andreas Krebbel - - * config/s390/s390.md ("clztidi2"): Swap the RTX's written to the - DImode parts of the target operand. - -2018-11-20 Nathan Sidwell - - PR 87926 - * Makefile.in (bitmap.o-warn): Use -Wno-error=array-bounds. - -2018-11-20 Jan Hubicka - - PR lto/87997 - * tree.c (free_lang_data_in_cgraph): Add argument fld; break out - type checking to... - (free_lang_data) ... here; update call of free_lang_data_in_cgraph. - -2018-11-20 Jan Hubicka - - PR ipa/87706 - * ipa-fnsummary.c (pass_ipa_fnsummary): Do not remove functions - * ipa.c (possible_inline_candidate_p): Break out from .. - (process_references): ... here ; drop before_inlining_p; - cleanup handling of alises. - (walk_polymorphic_call_targets): Likewise. - (symbol_table::remove_unreachable_nodes): Likewise. - * passes.c (pass_data_ipa_remove_symbols): New structure. - (pass_ipa_remove_symbols): New pass. - (make_pass_ipa_remove_symbols): New function. - * tree-pass.h (make_pass_ipa_remove_symbols): Declare. - * passes.def (pass_ipa_remove_symbols): Schedule after early passes. - -2018-11-20 Richard Biener - - * tree-vect-stmts.c (vectorizable_condition): Do not get - at else_clause vect def for EXTRACT_LAST_REDUCTION. Remove - pointless vect_is_simple_use calls. - -2018-11-20 Richard Biener - - PR tree-optimization/88074 - * tree-ssa-dom.c (pass_dominator::execute): Do not walk - backedges. - -2018-11-20 Richard Biener - - PR tree-optimization/88069 - * tree-ssa-sccvn.c (visit_phi): Do not value-number to unvisited - virtual PHI arguments. - -2018-11-20 Ilya Leoshkevich - - PR target/88083 - * config/s390/s390.md: Skip LT(G) peephole when literal pool is - involved. - * rtl.h (contains_constant_pool_address_p): New function. - * rtlanal.c (contains_constant_pool_address_p): Likewise. - -2018-11-20 Richard Biener - - PR middle-end/83215 - * alias.c (component_uses_parent_alias_set_from): Remove - alias-set zero and TYPE_TYPELESS_STORAGE case both already - handled in other ways. - -2018-11-20 Richard Biener - - PR tree-optimization/88087 - * tree-ssa-pre.c (create_expression_by_pieces): Re-materialize - call fntype. - * tree-ssa-sccvn.c (copy_reference_ops_from_call): Remember - call fntype. - -2018-11-20 Richard Biener - - PR middle-end/88089 - * tree-data-ref.c (lambda_matrix_right_hermite): Use abs_hwi. - -2018-11-19 Jan Hubicka - - PR lto/87957 - * ipa-devirt.c (free_enum_values): Do not ICE on ODR vilations. - -2018-11-19 Sandra Loosemore - - PR driver/50250 - * doc/invoke.texi (Link Options): Mention shared libraries - in documentation for the -l option. Simplify discussion and - point to the system linker documentation for details. - -2018-11-19 Peter Bergner - - PR rtl-optimization/88033 - * ira-lives.c (non_conflicting_reg_copy_p): Skip copies from a register - to itself. Use HARD_REGISTER_NUM_P. - -2018-11-19 Kyrylo Tkachov - - * tree-vect-loop.c (vect_transform_loop): Disable further unrolling - of the loop if vf is non-constant. - -2018-11-19 David Malcolm - - PR tree-optimization/87025 - * dumpfile.c (dump_context::begin_scope): Call end_any_optinfo - immediately after creating the scope optinfo. - (selftest::test_pr87025): New function. - (selftest::dumpfile_c_tests): Call it. - * optinfo-emit-json.cc (optrecord_json_writer::pop_scope): Assert - that we're not popping the top-level records array. - * optinfo.cc (optinfo::handle_dump_file_kind): Assert that we're - not changing the kind of a "scope" optinfo. - -2018-11-19 David Malcolm - - PR tree-optimization/87025 - * dump-context.h: Include "optinfo.h". - (class optrecord_json_writer): New forward decl. - (dump_context::forcibly_enable_optinfo_p): Delete. - (dump_context::optinfo_enabled_p): New member function. - (dump_context::optimization_records_enabled_p): New member - function. - (dump_context::set_json_writer): New member function. - (dump_context::emit_optinfo): New member function. - (dump_context::m_forcibly_enable_optinfo): Delete. - (dump_context::m_json_writer): New member data. - * dumpfile.c (dump_context::set_json_writer): New member function. - (dump_context::finish_any_json_writer): New member function. - (dump_context::end_scope): Replace call to - optimization_records_maybe_pop_dump_scope with call to - m_json_writer->pop_scope. - (dump_context::optinfo_enabled_p): New member function. - (dump_context::end_any_optinfo): Replace call to optinfo::emit with call - to dump_context::emit_optinfo. - (dump_context::emit_optinfo): New member function. - (temp_dump_context::temp_dump_context): Replace - m_forcibly_enable_optinfo with call to set_json_writer. - (temp_dump_context::~temp_dump_context): Clean up any json writer. - * optinfo-emit-json.cc (class optrecord_json_writer): Move to - optinfo-emit-json.h - (the_json_writer): Delete. - (optimization_records_start): Delete. - (optimization_records_finish): Delete. - (optimization_records_enabled_p): Delete, in favor of - dump_context::optimization_records_enabled_p. - (optimization_records_maybe_record_optinfo): Delete. - (optimization_records_maybe_pop_dump_scope): Delete. - * optinfo-emit-json.h: Include "json.h". Delete forward - decl of opt_pass. - (optimization_records_start): Delete. - (optimization_records_finish): Delete. - (optimization_records_enabled_p): Delete. - (optimization_records_maybe_record_optinfo): Delete. - (optimization_records_maybe_pop_dump_scope): Delete. - (class optrecord_json_writer): Move here from - optinfo-emit-json.cc. - * optinfo.cc (optinfo::emit_for_opt_problem): Replace call - to optinfo::emit with call to dump_context::emit_optinfo. - (optinfo::emit): Delete, in favor of dump_context::emit_optinfo. - (optinfo_enabled_p): Delete, in favor of - dump_context::optinfo_enabled_p. - (optinfo_wants_inlining_info_p): Update for conversion o - optimization_records_enabled_p to a member function of - dump_context. - * optinfo.h (optinfo_enabled_p): Delete, in favor of - dump_context::optinfo_enabled_p. - (optinfo::emit): Delete, in favor of dump_context::emit_optinfo. - * toplev.c: Include "dump-context.h". - (compile_file): Replace call to optimization_records_finish with - dump_context::finish_any_json_writer. - (do_compile): Replace call to optimization_records_start with - conditionally creating a optrecord_json_writer for the - dump_context. - -2018-11-19 Jakub Jelinek - - PR tree-optimization/88071 - * tree-vect-loop.c (vectorize_fold_left_reduction): Pass true instead - of false as last argument to gsi_remove. - * tree-vect-stmts.c (vect_finish_replace_stmt): Pass true instead of - false as last argument to gsi_replace. - - PR debug/87039 - * omp-expand.c: Don't include debug.h. - (adjust_context_and_scope): Add REGION argument. Find DECL_CONTEXT - from innermost outer parallel, task, teams or target that has a - child_fn set, or, if there is no such outer region, use - current_function_decl. Do the DECL_CONTEXT adjustment regardless of - whether a suitable BLOCK is found or not. - (expand_parallel_call, expand_teams_call): Don't call - adjust_context_and_scope here. - (grid_expand_target_grid_body): Revert 2017-01-25 changes. - (expand_omp_taskreg, expand_omp_target): Likewise. Call - adjust_context_and_scope. - * dwarf2out.c (dwarf2out_early_global_decl): For - decl_function_context recurse instead of calling dwarf2out_decl. - -2018-11-20 Eric Botcazou - - PR rtl-optimization/85925 - * rtl.h (word_register_operation_p): New predicate. - * combine.c (record_dead_and_set_regs_1): Only apply specific handling - for WORD_REGISTER_OPERATIONS targets to word_register_operation_p RTX. - * rtlanal.c (nonzero_bits1): Likewise. Adjust couple of comments. - (num_sign_bit_copies1): Likewise. - -2018-11-19 Richard Biener - - PR lto/87229 - * tree.c (free_lang_data_in_one_sizepos): Free non-gimple-val - sizepos values. - -2018-11-19 Eric Botcazou - - * compare-elim.c (struct comparison): Add not_in_a field. - (is_not): New static function. - (strip_not): Likewise. - (conforming_compare): Handle a NOT in the first operand. - (can_eliminate_compare): Likewise. - (find_comparison_dom_walker::before_dom_children): Likewise. - (try_eliminate_compare): Likewise. - * config/visium/visium.md (negsi2_insn_set_carry): Turn into... - (neg2_insn_set_carry): ...this and add missing NEG operation. - -2018-11-19 Jonathan Wakely - - * doc/extend.texi (Common Type Attributes): Fix typos. - -2018-11-19 Martin Liska - - PR gcov-profile/88045 - * coverage.c (coverage_begin_function): Add assert. - -2018-11-18 Sandra Loosemore - - PR other/40498 - * doc/extend.texi (Common Function Attributes): Document that - no_instrument_function applies to -p and -pg, too. - * doc/invoke.texi (Instrumentation Options): Add cross-references - to docs for -p, -pg, and -finstrument-functions. - -2018-11-18 Alan Modra - - * config/gnu-user.h (GNU_USER_TARGET_CRTI): Define. - (GNU_USER_TARGET_STARTFILE_SPEC): Use it here. - (GNU_USER_TARGET_CRTN): Define. - (GNU_USER_TARGET_ENDFILE_SPEC): Use it here. - (GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC): Define. - -2018-11-18 Alan Modra - - * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Delete - !HAVE_LD_PIE variant. - (GNU_USER_TARGET_ENDFILE_SPEC): Likewise. - -2018-11-17 Nick Clifton - Sandra Loosemore - - PR driver/31357 - * doc/invoke.texi (Overall Options): Document that --help and - --help= options cannot be combined. - -2018-11-17 Jim Wilson - - * config/riscv/riscv.c (epilogue_cfa_sp_offset): New. - (riscv_restore_reg): If restoring HARD_FRAME_POINTER_REGNUM, and - epilogue_cfa_sp_offset set, then add REG_CFA_DEF_CFA regnote. - (riscv_expand_epilogue): Initialize epilogue_cfa_sp_offset. Set it - to step2 if frame_pointer_needed and step1 is 0. - -2018-11-17 Sandra Loosemore - - PR c++/4225 - * doc/cpp.texi (System Headers): Add note about implicit - extern "C" block on targets that define SYSTEM_IMPLICIT_EXTERN_C. - -2018-11-17 Sandra Loosemore - - PR c++/4025 - * doc/invoke.texi (C++ Dialect Options): Clarify usage of - -fno-implicit-templates. - -2018-11-17 Jakub Jelinek - - PR tree-optimization/87546 - * tree-vect-patterns.c (vect_look_through_possible_promotion): Add - min_precision variable, initially set it to orig_precision, only does - something if op_type's precision is <= min_precision and update - min_precision whenever calling set_op. - -2018-11-16 Jan Hubicka - - PR ipa/87957 - * ipa-devirt.c (warn_odr): Look for main variant to get TYPE_DECL. - -2018-11-16 Sandra Loosemore - - * doc/invoke.texi (Option Summary): Fix whitespace and line - breaks in @gccoptlist environments. - (Warning Options): Likewise. - (Optimize Options): Likewise. - (PowerPC SPE Options): Likewise. - (RS/6000 and PowerPC Options): Likewise. - -2018-11-16 Jeff Law - - * config/mn10300/mn10300.md (adddi3_degenerate): Remove bogus - gcc_assert. - -2018-11-16 Sandra Loosemore - - PR middle-end/23197 - * doc/invoke.texi (Optimize Options): Update options enabled by - fprofile-generate, -fprofile-use, and -fauto-profile. - -2018-11-16 Jozef Lawrynowicz - - PR target/87927 - * target-def.h: Initialize TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP. - Add them to the TARGET_ASM_{,UN}ALIGNED_INT_OP structs. - * target.def: Enumerate TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP in - the byte_op hook. - * target.h: Add psi, pdi, pti to struct asm_int_op definition. - * targhooks.c (default_print_patchable_function_entry): Assert - asm_int_op does not return a NULL string. - * varasm.c (integer_asm_op): Return the op for a partial int type - when the requested size does not correspond to an integer type. - * config/msp430/msp430.c: Initialize TARGET_ASM_{,UN}ALIGNED_PSI_OP. - * doc/tm.texi: Regenerate. - -2018-11-12 Jason Merrill - - * gimplify.c (gimplify_case_label_expr): Handle hot/cold attributes. - -2018-11-16 Michael Meissner - - * config/rs6000/constraints.md (wF constraint): Remove power9 - fusion documentation. Just document wF's use for power8 fusion. - * config/rs6000/predicates.md (p9_fusion_reg_operand): Delete. - (fusion_gpr_addis): Delete power9 fusion support. Change power8 - fusion support to require the upper 12 bits to be all 0's or all - 1's. - (fusion_gpr_mem_load): Add comment. - (fusion_addis_mem_combo_load): Remove power9 fusion support. - (fusion_addis_mem_combo_store): Delete. - (fusion_offsettable_mem_operand): Delete. - * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Do not set - power8 fusion here. - (ISA_3_0_MASKS_SERVER): Delete power9 fusion. - (POWERPC_MASKS): Delete power9 fusion. - * config/rs6000/rs6000-protos.h (emit_fusion_load_store): Delete. - (fusion_p9_p): Delete. - (expand_fusion_p9_load): Delete. - (expand_fusion_p9_store): Delete. - (emit_fusion_p9_load): Delete. - (emit_fusion_p9_store): Delete. - * config/rs6000/rs6000.c (rs6000_debug_reg_global): Delete power9 - fusion support. - (rs6000_option_override_internal): Set power8 fusion based on - whether we are tuning for power8. Delete power9 fusion support. - (rs6000_opt_masks): Delete -mpower9-fusion switch. - (emit_fusion_load): Rename emit_fusion_load_store to - emit_fusion_load, and drop fusion store support. Update callers. - (emit_fusion_load_store): Likewise. - (emit_fusion_gpr_load): Likewise. - (fusion_p9_p): Delete. - (expand_fusion_p9_load): Delete. - (expand_fusion_p9_store): Delete. - (emit_fusion_p9_load): Delete. - (emit_fusion_p9_store): Delete. - * config/rs6000/rs6000.md (UNSPEC_FUSION_P9): Delete. - (GPR_FUSION): Delete. - (FPR_FUSION): Delete. - (power9 fusion peephole2s): Delete. - (fusion_gpr___load): Delete. - (fusion_gpr___store): Delete. - (fusion_vsx___load): Delete. - (fusion_vsx___store): Delete. - (fusion_p9__constant): Delete. - * config/rs6000/rs6000.opt (-mpower9-fusion): Delete undocumented - power9 fusion switch. - * doc/md.texi (PowerPC constraints): Update wF constraint - documentation for power8 fusion only. - -2018-11-16 Jakub Jelinek - - PR rtl-optimization/87475 - * cfgrtl.c (patch_jump_insn): Allow redirection failure for - CROSSING_JUMP_P insns. - (cfg_layout_redirect_edge_and_branch): Don't ICE if ret is NULL. - -2018-11-16 Uros Bizjak - - PR target/88051 - * config/i386/i386.md (floatunsdidf2): Allow only 64bit AVX512F targets. - * config/i386/sse.md (UNSPEC_MOVDI_TO_SSE): New UNSPEC. - (movdi_to_sse): Rewrite using UNSPEC_MOVDI_TO_SSE unspec. - -2018-11-16 Jakub Jelinek - - PR middle-end/88032 - * optabs.c (expand_binop): For op0_mode use GET_MODE (op0), unless it - is VOIDmode, in which case use int_mode. Similarly for op1_mode. - -2018-11-16 Eric Botcazou - - * tree-switch-conversion.h (switch_decision_tree::emit_case_nodes): Add - location_t parameter. - (switch_decision_tree::emit_cmp_and_jump_insns): Likewise. - (switch_decision_tree::do_jump_if_equal): Likewise. - * tree-switch-conversion.c (switch_decision_tree::emit): Pass location - of switch statement to emit_case_nodes. - (switch_decision_tree::emit_cmp_and_jump_insns): Add LOC parameter and - set it on the newly built GIMPLE comparison statement. - (switch_decision_tree::do_jump_if_equal): Likewise. - (switch_decision_tree::emit_case_nodes): Add LOC parameter and pass it - in calls to do_jump_if_equal as well as recursive calls. - -2018-11-16 Andi Kleen - - * config/i386/i386.md: Allow memory operands to ptwrite. - -2018-11-16 Michael Matz - - * system.h (PRsa): New macro. - (SIZE_AMOUNT): Cast number to uint64_t. - * alloc-pool.h (pool_usage::dump): Don't use %zu but PRsa. - (pool_usage::dump_footer): Likewise and also use PRIu64. - * bitmap.h (bitmap_usage::dump): Likewise. - * ggc-common.c (ggc_usage::dump): Likewise. - * ggc-page.c (ggc_print_statistics): Likewise. - * input.c (dump_line_table_statistics): Likewise. - * mem-stats.h (mem_usage::dump): Likewise. - (mem_usage::dump_footer): Likewise. - * rtl.c (dump_rtx_statistics): Likewise. - * tree-cfg.c (dump_cfg_stats): Likewise. - * tree-dfa.c (dump_dfa_stats): Likewise. - * tree-phinodes.c (phinodes_print_statistics): Likewise. - * tree-ssanames (ssanames_print_statistics): Likewise. - * vec.c (vec_usage::dump): Likewise. - (vec_usage::dump_footer): Likewise. - -2018-11-16 Richard Biener - - PR tree-optimization/88011 - * tree-vrp.c (extract_range_from_binary_expr): Fix error in - replacing set_value_range_to_undefined and - set_value_range_to_varying with method calls. - -2018-11-16 Ilya Leoshkevich - - * config/s390/s390.md - (*rsbg__srl_bitmask): Do not delegate arithmetic to - assembler. - (*rsbg__sll): Likewise. - (*rsbg__srl): Likewise. - (*rsbg_sidi_srl): New pattern. - -2018-11-16 Jerome Lambourg - - * config/vxworks.h (TARGET_VXWORKS_HAVE_CTORS_DTORS): New macro. - Default to TARGET_VXWORKS_RTP. - (SUPPORTS_INIT_PRIORITY): Use TARGET_VXWORKS_HAVE_CTORS_DTORS instead - of TARGET_VXWORKS_RTP. - * config/vxworks.c: Use TARGET_VXWORKS_HAVE_CTORS_DTORS instead - of TARGET_VXWORKS_RTP to set targetm.have_ctors_dtors. - -2018-11-15 Sandra Loosemore - - PR c++/25759 - * doc/extend.texi (Common Type Attributes): Make it explicit - that attribute "packed" can apply to C++ classes. - -2018-11-15 Martin Sebor - - PR c++/87541 - PR c++/87542 - * tree.c (type_argument_type): New function. - * tree.h (type_argument_type): Declare it. - * gcc/doc/extend.texi (alloc_align): Update and clarify. - (alloc_size, nonnull, sentinel): Same. - -2018-11-15 Andrew Stubbs - Kwok Cheung Yeung - - * tree-vect-stmts.c (vectorizable_store): Don't ICE when - int_mode_for_size fails. - (vectorizable_load): Likewise. - -2018-11-15 David Malcolm - - * doc/ux.texi (Group logically-related diagnostics): Move - discussion of auto_diagnostic_group into this new subsection. - Give an example of where this grouping is used. - -2018-11-15 David Malcolm - - PR other/19165 - * Makefile.in (OBJS): Move json.o to... - (OBJS-libcommon): ...here and add diagnostic-format-json.o. - * common.opt (fdiagnostics-format=): New option. - (diagnostics_output_format): New enum. - * diagnostic-format-json.cc: New file. - * diagnostic.c (default_diagnostic_final_cb): New function, taken - from start of diagnostic_finish. - (diagnostic_initialize): Initialize final_cb to - default_diagnostic_final_cb. - (diagnostic_finish): Move "being treated as errors" messages to - default_diagnostic_final_cb. Call any final_cb. - (default_diagnostic_finalizer): Add diagnostic_t param. - (diagnostic_report_diagnostic): Pass "orig_diag_kind" to - diagnostic_finalizer callback. - * diagnostic.h (enum diagnostics_output_format): New enum. - (diagnostic_finalizer_fn): Reimplement, adding diagnostic_t param. - (struct diagnostic_context): Add "final_cb". - (default_diagnostic_finalizer): Add diagnostic_t param. - (diagnostic_output_format_init): New decl. - * doc/invoke.texi (-fdiagnostics-format): New option. - * dwarf2out.c (gen_producer_string): Ignore - OPT_fdiagnostics_format_. - * gcc.c (driver_handle_option): Handle OPT_fdiagnostics_format_. - * lto-wrapper.c (append_diag_options): Ignore it. - * opts.c (common_handle_option): Handle it. - -2018-11-15 David Malcolm - - PR tree-optimization/88015 - * graphite-isl-ast-to-gimple.c - (translate_isl_ast_to_gimple::scop_to_isl_ast): Add missing check - for dump_enabled_p. - * graphite-sese-to-poly.c (build_poly_scop): Likewise. - -2018-11-15 Richard Biener - - PR middle-end/88029 - * gimple.c (gimple_call_flags): Union flags from decl, type - and call fntype. - * trans-mem.c (is_tm_pure_call): Simplify. - -2018-11-15 Richard Biener - - PR tree-optimization/88031 - * tree-vect-loop.c (vectorizable_reduction): Move check - for multiple types earlier so we get the expected dump. - Simplify calls to vectorizable_condition. - * tree-vect-stmts.h (vectorizable_condition): Update prototype. - * tree-vect-stmts.c (vectorizable_condition): Instead of - reduc_def and reduc_index take just a flag. Simplify - code-generation now that we can rely on the defs being set up. - (vectorizable_comparison): Remove unused argument. - -2018-11-15 Richard Biener - - PR tree-optimization/88030 - * tree-complex.c (need_eh_cleanup): New global. - (update_complex_assignment): Mark blocks that need EH update. - (expand_complex_comparison): Likewise. - (tree_lower_complex): Allocate and deallocate need_eh_cleanup, - perform EH cleanup and schedule CFG cleanup if that did anything. - -2018-11-15 Jakub Jelinek - - PR rtl-optimization/88018 - * cfgrtl.c (fixup_abnormal_edges): Guard moving insns to fallthru edge - on the presence of fallthru edge, rather than if it is a USE or not. - -2018-11-15 Richard Biener - - PR middle-end/87917 - * tree-data-ref.c (analyze_miv_subscript): Guard calls to - analyze_subscript_affine_affine properly. - -2018-11-15 Xianmiao Qu - - * config/csky/csky-linux-elf.h (LINUX_DYNAMIC_LINKER): Remove. - (GLIBC_DYNAMIC_LINKER): Define. - (LINUX_TARGET_LINK_SPEC): Update the dynamic linker's name. - -2018-11-15 Bin Cheng - - PR tree-optimization/84648 - * tree-ssa-loop-niter.c (adjust_cond_for_loop_until_wrap): New. - (number_of_iterations_cond): Adjust exit cond for loop-until-wrap case - by calling adjust_cond_for_loop_until_wrap. - -2018-11-15 Sandra Loosemore - - PR other/56334 - * doc/extend.texi (Common Function Attributes): Clarify linker - restrictions on "aligned" attribute. - (Common Variable Attributes): Likewise. Mention that linker - restrictions don't apply to stack-allocated variables. - -2018-11-15 Joern Rennecke - - * gensupport.c (add_predicate_code): Properly handle ZERO_EXTRACT - as an lvalue. - -2018-11-14 Sandra Loosemore - - PR lto/55102 - PR lto/56700 - * doc/invoke.texi (Optimize Options): Remove bad example about - interaction between -flto and -O. Replace it with a note that - you need to compile with -O and not just link. Copy-edit -flto - discussion to reduce verbiage and improve flow. - -2018-11-14 Sandra Loosemore - - PR middle-end/59658 - * doc/invoke.texi (Optimize Options): Clarify that -O0 and -Og - also suppress many optimizations. Alphabetize option lists for - -O1, -O2, and -Os. Add list of options disabled with -Og, and - correct documentation for those options to say that. - * opts.c (default_options_table): Sort table by level and option - name, to make it easier to correlate to the manual. - -2018-11-14 Uros Bizjak - - * config/i386/i386.c (ix86_print_operand_address_as): Simplify - printing of the names of segment registers. - -2018-11-14 Nathan Sidwell - - PR debug/88006 - PR debug/87462 - * dwarf2out.c (dwarf2out_finish): Apply resolve_addr to comdat - type list. - -2018-11-14 David Malcolm - - * Makefile.in (CFLAGS-optinfo-emit-json.o): Add $(ZLIBINC). - -2018-11-14 Jakub Jelinek - - P1236R1 - Signed integers are two's complement - * doc/invoke.texi (Wshift-overflow): Adjust documentation for c++2a. - - PR bootstrap/86739 - * hash-map.h (hash_map::iterator::reference_pair): New class. - (hash_map::iterator::operator*): Return it rather than std::pair. - -2018-11-14 Jeff Law - - * optabs.c (expand_binop): Pass INT_MODE to operand_subword_force - iff the operand is a constant. - -2018-11-14 Aldy Hernandez - - * gimple-ssa-evrp-analyze.c - (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename - ignore_equivs_equal_p to equal_p. - * ipa-cp.c (meet_with_1): Use equal_p instead of - ignore_equivs_equal_p. - * ipa-prop.c (ipa_vr_ggc_hash_traits::equal): Same. - * tree-vrp.c (value_range::ignore_equivs_equal_p): Remove. - (value_range::operator==): Remove. - (value_range::operator!=): Remove. - (vrp_prop::visit_stmt): Use equal_p. - * tree-vrp.h (value_range): Remove operator==, operator!=, - ignore_equivs_equal_p. - * vr-values.c (update_value_range): Use equal_p. - -2018-11-14 Michael Matz - - PR middle-end/86575 - * gimplify.c (collect_fallthrough_labels): Add new argument, - return location via that, don't modify statements. - (warn_implicit_fallthrough_r): Adjust call, don't use - statement location directly. - -2018-11-14 Richard Biener - - PR middle-end/87985 - * tree-data-ref.c (split_constant_offset): Add wrapper - allocating a cache hash-map. - (split_constant_offset_1): Cache results of expanding - expressions from SSA def stmts. - -2018-11-14 Richard Biener - - PR middle-end/88021 - * tree-data-ref.c (lambda_matrix_row_add): Change const1 argument - to lambda_int. - (lambda_vector_mult_const): Likewise. - (lambda_matrix_right_hermite): Use lambda_int temporaries. - -2018-11-14 Wilco Dijkstra - Jackson Woodruff - - PR 71026/tree-optimization - * match.pd: Simplify floating point comparisons. - -2018-11-14 Jakub Jelinek - - PR rtl-optimization/87817 - * config/i386/i386.c (ix86_fold_builtin): For _bzhi_u{32,64} if - last argument has low 8 bits clear, fold to 0. - -2018-11-14 Iain Sandoe - - * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Cast - MAX_OFILE_ALIGNMENT as needed. - -2018-11-14 Richard Biener - - PR tree-optimization/88019 - * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Rewrite - COND_EXPR arguments to non-trapping overflow. - -2018-11-14 Claudiu Zissulescu - - * config/arc/arc.h (reg_class): Reorder registers classes, remove - unused register classes. - (REG_CLASS_NAMES): Likewise. - (REG_CLASS_CONTENTS): Likewise. - (FIXED_REGISTERS): Make lp_count fixed. - (BASE_REG_CLASS): Remove ACC16_BASE_REGS reference. - (PROGRAM_COUNTER_REGNO): Remove. - * config/arc/arc.c (arc_conditional_register_usage): Remove unused - register classes, use constants for register numbers, remove - reg_class_contents references. - (arc_process_double_reg_moves): Add asserts. - (arc_secondary_reload): Remove LPCOUNT_REG reference, use - lra_in_progress predicate. - (arc_init_reg_tables): Remove unused register classes. - (arc_register_move_cost): Likewise. - (arc_preferred_reload_class): Likewise. - (hwloop_optimize): Update rtx patterns involving lp_count register. - (arc_return_address_register): Rename ILINK1, INLINK2 regnums macros. - * config/arc/constraints.md ("c"): Choose between GENERAL_REGS and - CHEAP_CORE_REGS. Former one will be used for LRA. - ("Rac"): Choose between GENERAL_REGS and ALL_CORE_REGS. Former - one will be used for LRA. - ("w"): Choose between GENERAL_REGS and WRITABLE_CORE_REGS. Former - one will be used for LRA. - ("W"): Choose between GENERAL_REGS and MPY_WRITABLE_CORE_REGS. - Former one will be used for LRA. - ("f"): Delete constraint. - ("k"): Likewise. - ("e"): Likewise. - ("l"): Change it from register constraint to constraint. - * config/arc/arc.md (movqi_insn): Remove unsed lp_count constraints. - (movhi_insn): Likewise. - (movsi_insn): Update pattern. - (arc_lp): Likewise. - (dbnz): Likewise. - (stack_tie): Remove 'b' constraint letter. - (R4_REG): Define. - (R9_REG, R15_REG, R16_REG, R25_REG): Likewise. - (R32_REG, R40_REG, R41_REG, R42_REG, R43_REG, R44_REG): Likewise. - (R57_REG, R59_REG, PCL_REG): Likewise. - (ILINK1_REGNUM): Renamed to ILINK1_REG. - (ILINK2_REGNUM): Renamed to ILINK2_REG. - (Rgp): Remove. - (SP_REGS): Likewise. - (Rcw): Remove unused reg classes. - * config/arc/predicates.md (dest_reg_operand): Just default on - register_operand predicate. - (mpy_dest_reg_operand): Likewise. - (move_dest_operand): Use macros instead of constants. - * config/arc/arc.opt (mlra): Switch to lra as default. - -2018-11-14 Richard Biener - - PR tree-optimization/87974 - * tree-vect-loop.c (vectorizable_reduction): When computing - the vectorized reduction PHI vector type ignore constant - and external defs. - -2018-11-14 Jakub Jelinek - - PR tree-optimization/87977 - * tree-ssa-math-opts.c (optimize_recip_sqrt): Don't reuse division - stmt, build a new one and replace the old one with it. Formatting fix. - Call release_ssa_name (x) if !has_other_use and !delete_div. - (pass_cse_reciprocals::execute): Before calling optimize_recip_sqrt - verify lhs of stmt is still def. - -2018-11-13 Peter Bergner - - PR rtl-optimization/87507 - * lower-subreg.c (operand_for_swap_move_operator): New function. - (simple_move): Strip simple operators. - (find_pseudo_copy): Likewise. - (resolve_operand_for_swap_move_operator): New function. - (resolve_simple_move): Strip simple operators and swap operands. - -2018-11-13 Jakub Jelinek - - PR tree-optimization/87898 - * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Formatting fix. - (ipa_simd_modify_function_body): Remove debug stmts where the first - argument was changed into a non-decl. - -2018-11-13 Peter Bergner - - PR rtl-optimization/87899 - * lra-lives.c (start_living): Update white space in comment. - (enum point_type): New. - (sparseset_contains_pseudos_p): New function. - (update_pseudo_point): Likewise. - (make_hard_regno_live): Use HARD_REGISTER_NUM_P macro. - (make_hard_regno_dead): Likewise. Remove ignore_reg_for_conflicts - handling. Move early exit after adding conflicts. - (mark_pseudo_live): Use HARD_REGISTER_NUM_P macro. Add early exit - if regno is already live. Remove all handling of program points. - (mark_pseudo_dead): Use HARD_REGISTER_NUM_P macro. Add early exit - after adding conflicts. Remove all handling of program points and - ignore_reg_for_conflicts. - (mark_regno_live): Use HARD_REGISTER_NUM_P macro. Remove return value - and do not guard call to mark_pseudo_live. - (mark_regno_dead): Use HARD_REGISTER_NUM_P macro. Remove return value - and do not guard call to mark_pseudo_dead. - (check_pseudos_live_through_calls): Use HARD_REGISTER_NUM_P macro. - (process_bb_lives): Use HARD_REGISTER_NUM_P and HARD_REGISTER_P macros. - Use new function update_pseudo_point. Handle register copies by - removing the source register from the live set. Handle INOUT operands. - Update to the next program point using the unused_set, dead_set and - start_dying sets. - (lra_create_live_ranges_1): Use HARD_REGISTER_NUM_P macro. - -2018-11-13 David Malcolm - - * builtins.c: Replace "source_location" with "location_t". - * diagnostic-show-locus.c: Likewise. - * diagnostic.c: Likewise. - * dumpfile.c: Likewise. - * gcc-rich-location.h: Likewise. - * genmatch.c: Likewise. - * gimple.h: Likewise. - * gimplify.c: Likewise. - * input.c: Likewise. - * input.h: Likewise. Eliminate the typedef. - * omp-expand.c: Likewise. - * selftest.h: Likewise. - * substring-locations.h (get_source_location_for_substring): - Rename to... - (get_location_within_string): ...this. - * tree-cfg.c: Replace "source_location" with "location_t". - * tree-cfgcleanup.c: Likewise. - * tree-diagnostic.c: Likewise. - * tree-into-ssa.c: Likewise. - * tree-outof-ssa.c: Likewise. - * tree-parloops.c: Likewise. - * tree-phinodes.c: Likewise. - * tree-phinodes.h: Likewise. - * tree-ssa-loop-ivopts.c: Likewise. - * tree-ssa-loop-manip.c: Likewise. - * tree-ssa-phiopt.c: Likewise. - * tree-ssa-phiprop.c: Likewise. - * tree-ssa-threadupdate.c: Likewise. - * tree-ssa.c: Likewise. - * tree-ssa.h: Likewise. - * tree-vect-loop-manip.c: Likewise. - -2018-11-13 Michael Ploujnikov - - * doc/extend.texi: Fix typo in the weakref description. - -2018-11-13 Richard Biener - - PR tree-optimization/86991 - * tree-vect-loop.c (vect_is_slp_reduction): Delay reduction - group building until we have successfully detected the SLP - reduction. - (vect_is_simple_reduction): Remove fixup code here. - -2018-11-13 David Malcolm - - * dumpfile.c (VERIFY_DUMP_ENABLED_P): New macro. - (dump_gimple_stmt): Use it. - (dump_gimple_stmt_loc): Likewise. - (dump_gimple_expr): Likewise. - (dump_gimple_expr_loc): Likewise. - (dump_generic_expr): Likewise. - (dump_generic_expr_loc): Likewise. - (dump_printf): Likewise. - (dump_printf_loc): Likewise. - (dump_dec): Likewise. - (dump_dec): Likewise. - (dump_hex): Likewise. - (dump_symtab_node): Likewise. - * gimple-loop-interchange.cc (tree_loop_interchange::interchange): - Guard dump call with dump_enabled_p. - * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): Likewise. - * graphite-optimize-isl.c (optimize_isl): Likewise. - * graphite.c (graphite_transform_loops): Likewise. - * tree-loop-distribution.c (pass_loop_distribution::execute): Likewise. - * tree-parloops.c (parallelize_loops): Likewise. - * tree-ssa-loop-niter.c (number_of_iterations_exit): Likewise. - * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise. - (vect_prune_runtime_alias_test_list): Likewise. - * tree-vect-loop.c (vect_update_vf_for_slp): Likewise. - (vect_estimate_min_profitable_iters): Likewise. - * tree-vect-slp.c (vect_record_max_nunits): Likewise. - (vect_build_slp_tree_2): Likewise. - (vect_supported_load_permutation_p): Likewise. - (vect_slp_analyze_operations): Likewise. - (vect_slp_analyze_bb_1): Likewise. - (vect_slp_bb): Likewise. - * tree-vect-stmts.c (vect_analyze_stmt): Likewise. - * tree-vectorizer.c (try_vectorize_loop_1): Likewise. - (pass_slp_vectorize::execute): Likewise. - (increase_alignment): Likewise. - -2018-11-13 David Malcolm - - PR ipa/87955 - * ipa-inline.c (report_inline_failed_reason): Guard calls to - cl_target_option_print_diff and cl_optimization_print_diff with - if (dump_file). - -2018-11-13 David Malcolm - - * doc/invoke.texi (-fsave-optimization-record): Note that the - output is compressed. - * optinfo-emit-json.cc: Include . - (optrecord_json_writer::write): Compress the output. - -2018-11-13 Aldy Hernandez - - * tree-vrp.c (value_range_base::dump): Dump type. - Do not use INF nomenclature for 1-bit types. - (dump_value_range): Group all variants to common dumping code. - (debug): New overloaded functions for value_ranges. - (value_range_base::dump): Remove no argument version. - (value_range::dump): Same. - -2018-11-13 Richard Biener - - PR tree-optimization/87931 - * tree-vect-loop.c (vect_is_simple_reduction): Restrict - nested cycles we support to latch computations vectorizable_reduction - handles. - -2018-11-13 Martin Liska - - PR tree-optimization/87885 - * cfghooks.c (account_profile_record): Rename - to ... - (profile_record_check_consistency): ... this. - Calculate missing num_mismatched_freq_in. - (profile_record_account_profile): New function - that calculates time and size of a function. - * cfghooks.h (struct profile_record): Remove - all tuples. - (struct cfg_hooks): Remove after_pass flag. - (account_profile_record): Rename to ... - (profile_record_check_consistency): ... this. - (profile_record_account_profile): New. - * cfgrtl.c (rtl_account_profile_record): Remove - after_pass flag. - * passes.c (check_profile_consistency): Do only - checking. - (account_profile): Calculate size and time of - function only. - (pass_manager::dump_profile_report): Reformat - output. - (execute_one_ipa_transform_pass): Call - consistency check before clean upand call account_profile - after a clean up is done. - (execute_one_pass): Call check_profile_consistency and - account_profile instead of using after_pass flag.. - * tree-cfg.c (gimple_account_profile_record): Likewise. - -2018-11-13 Martin Liska - - PR sanitizer/87930 - * config/i386/i386.c (ix86_option_override_internal): Error - about usage -mabi=ms and -fsanitize={,kernel-}address. - -2018-11-13 Andre Vieira - - * config/aarch64/aarch64.c - (aarch64_vectorize_preferred_vector_alignment): Change return type to - poly_uint64. - (aarch64_simd_vector_alignment_reachable): Adapt to preferred vector - alignment being a poly int. - * doc/tm.texi (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): Change - return type to poly_uint64. - * target.def (default_preferred_vector_alignment): Likewise. - * targhooks.c (default_preferred_vector_alignment): Likewise. - * targhooks.h (default_preferred_vector_alignment): Likewise. - * tree-vect-data-refs.c (vect_calculate_target_alignment): Likewise. - (vect_compute_data_ref_alignment): Adapt to vector alignment being a - poly int. - (vect_update_misalignment_for_peel): Likewise. - (vect_enhance_data_refs_alignment): Likewise. - (vect_find_same_alignment_drs): Likewise. - (vect_duplicate_ssa_name_ptr_info): Likewise. - (vect_setup_realignment): Likewise. - (vect_can_force_dr_alignment_p): Change alignment parameter type to - poly_uint64. - * tree-vect-loop-manip.c (get_misalign_in_elems): Learn to construct a - mask with a compile time variable vector alignment. - (vect_gen_prolog_loop_niters): Adapt to vector alignment being a poly - int. - (vect_do_peeling): Exit early if vector alignment is not constant. - * tree-vect-stmts.c (ensure_base_align): Adapt to vector alignment being - a poly int. - (vectorizable_store): Likewise. - (vectorizable_load): Likweise. - * tree-vectorizer.h (struct dr_vec_info): Make target_alignment field a - poly_uint64. - (vect_known_alignment_in_bytes): Adapt to vector alignment being a - poly int. - (vect_can_force_dr_alignment_p): Change alignment parameter type to - poly_uint64. - -2018-11-13 Richard Biener - - PR tree-optimization/87962 - * tree-vect-loop.c (vect_is_simple_reduction): More reliably - detect outer reduction for disqualifying in-loop uses. - -2018-11-13 Richard Biener - - PR tree-optimization/87967 - * tree-vect-loop.c (vect_transform_loop): Also copy PHIs - for constants for the scalar loop. - -2018-11-13 Alan Modra - - * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Exclude - integer constants when -mcmodel=medium. - -2018-11-13 Claudiu Zissulescu - - * config/arc/arc.h (FUNCTION_PROFILER): Redefine to empty. - * config/arc/elf.h (PROFILE_HOOK): Define. - * config/arc/linux.h (PROFILE_HOOK): Likewise. - -2018-11-13 Claudiu Zissulescu - - * config/arc/arc.c (hwloop_optimize): Bailout when detecting a - jump table data in the text section. - -2018-11-13 Claudiu Zissulescu - - * config/arc/arc.c (arc_eh_return_address_location): Repurpose it - to fit the eh_return pattern. - * config/arc/arc.md (eh_return): Define. - (VUNSPEC_ARC_EH_RETURN): Likewise. - * config/arc/arc-protos.h (arc_eh_return_address_location): Match - new implementation. - * config/arc/arc.h (EH_RETURN_HANDLER_RTX): Remove it. - - -2018-11-13 Claudiu Zissulescu - - * common/config/arc/arc-common.c (arc_option_optimization_table): - Millicode optimization is default on for size optimizations. - * config/arc/arc-protos.h (arc_check_multi): New function. - * config/arc/arc.c (RTX_OK_FOR_OFFSET_P): Rearange. - (ENTER_LEAVE_START_REG): Define. - (ENTER_LEAVE_END_REG): Likewise. - (arc_override_options): Disable millicode when long calls option - is on. - (arc_frame_info): Change it from int to bool. - (arc_compute_frame_size): Clean up. - (arc_save_restore): Remove. - (frame_save_reg): New function. - (frame_restore_reg): Likewise. - (arc_enter_leave_p): Likewise. - (arc_save_callee_saves): Likewise. - (arc_restore_callee_saves): Likewise. - (arc_save_callee_enter): Likewise. - (arc_restore_callee_leave): Likewise. - (arc_save_callee_milli): Likewise. - (arc_restore_callee_milli): Likewise. - (arc_expand_prologue): Reimplement to emit enter/leave - instructions. - (arc_expand_epilogue): Likewise. - (arc_check_multi): New function. - * config/arc/arc.md (push_multi_fp): New pattern. - (push_multi_fp_blink): Likewise. - (pop_multi_fp): Likewise. - (pop_multi_fp_blink): Likewise. - (pop_multi_fp_ret): Likewise. - (pop_multi_fp_blink_ret): Likewise. - * config/arc/arc.opt (mmillicode): Update option. - (mcode-density-frame): New option. - * config/arc/predicates.md (push_multi_operand): New predicate. - (pop_multi_operand): Likewise. - * doc/invoke.texi (ARC): Update ARC options information. - - -2018-11-13 Claudiu Zissulescu - - * config/arc/arc-protos.h (gen_operands_ldd_std): Add. - * config/arc/arc.c (operands_ok_ldd_std): New function. - (mem_ok_for_ldd_std): Likewise. - (gen_operands_ldd_std): Likewise. - * config/arc/arc.md: Add peephole2 rules for std/ldd. - -2018-11-13 Eric Botcazou - - * toplev.c (output_stack_usage): Turn test on flag_stack_usage into - test on stack_usage_file. - (lang_dependent_init): Do not open the .su file if generating LTO. - -2018-11-13 Jakub Jelinek - - PR rtl-optimization/87918 - * simplify-rtx.c (simplify_merge_mask): For COMPARISON_P, use - simplify_gen_relational rather than simplify_gen_binary. - -2018-11-13 Richard Biener - - * tree-ssanames.h (set_range_info): Use value_range_base. - (get_range_info): Likewise. - * tree-ssanames.c (set_range_info): Likewise. - (get_range_info): Likewise. - * tree-vrp.c (value_range_base::union_helper): Split - out common parts of value_range[_base]::union_. - (value_range_base::union_): Update. - (value_range::union_): Likewise. - (determine_value_range_1): Use value_range_base. - (determine_value_range): Likewise. - * tree-vrp.h (value_range_base::union_helper): Move ... - (value_range::union_helper): ... from here. - -2018-11-13 Alan Modra - - * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Negate - offset for PRE_DEC. - (rs6000_secondary_reload_gpr): Don't call find_replacement. - -2018-11-13 Sandra Loosemore - - PR middle-end/59634 - * doc/invoke.texi (Optimize Options): Clarify that the - l1-cache-line-size, l1-cache-size, and l2-cache-size parameters - apply to data cache size. - -2018-11-13 Alan Modra - - * config/rs6000/predicates.md (logical_const_operand), - (logical_operand): Correct comment. - * config/rs6000/rs6000.c (rs6000_emit_prologue): Comment fix. - -2018-11-13 Alan Modra - - * config/rs6000/rs6000.md (addsi3_high): Prefix with '*'. - -2018-11-13 Alan Modra - - * gcc/doc/md.texi (Machine Constraints): Correct rs6000 h constraint - description. - * config/rs6000/rs6000.md (movsi_internal1): Delete MT%0 case - covered by alternative. - (movcc_internal1): Ignore h for register preference. - (mov_hardfloat64): Likewise. - (mov_softfloat): Ignore c, l, h for register preference. - -2018-11-12 Sandra Loosemore - - PR preprocessor/47823 - * doc/cpp.texi (Alternatives to Wrapper #ifndef): Move #pragma once - documentation to... - (Pragmas): ...here. - * doc/extend.texi (Pragmas): Note additional pragmas documented - in the CPP manual. - -2018-11-13 Kugan Vivekanandarajah - - PR middle-end/86677 - PR middle-end/87528 - * tree-scalar-evolution.c (expression_expensive_p): Make - BUILTIN POPCOUNT as expensive when backend does not define it. - -2018-11-12 Fredrik Noring - - * config.gcc: Update with-llsc defaults for MIPS r5900. - -2018-11-12 Martin Liska - - PR gcov-profile/87442 - * common.opt: Add -fprofile-filter-files and -fprofile-exclude-files - options. - * doc/invoke.texi: Document them. - * tree-profile.c (parse_profile_filter): New. - (parse_profile_file_filtering): Likewise. - (release_profile_file_filtering): Likewise. - (include_source_file_for_profile): Likewise. - (tree_profiling): Filter source files based on the - newly added options. - -2018-11-12 Martin Liska - - PR target/87903 - * doc/extend.texi: Add missing values for __builtin_cpu_is and - __builtin_cpu_supports for x86 target. - -2018-11-12 Sandra Loosemore - - PR middle-end/21110 - * doc/rtl.texi (Constants): Clarify that mode of "high" doesn't - have to be Pmode. - (Arithmetic): Likewise for "lo_sum". - -2018-11-12 Renlin Li - - PR target/87815 - * dse.c (get_stored_val): Add check for compile-time constantness - of gap. - -2018-11-12 Sudakshina Das - - * config/arm/arm-cpus.in (armv8_5, sb, predres): New features. - (ARMv8_5a): New fgroup. - (armv8.5-a): New arch. - (armv8-a, armv8.1-a, armv8.2-a, armv8.3-a, armv8.4-a): New options - sb and predres. - * config/arm/arm-tables.opt: Regenerate. - * config/arm/t-aprofile: Add matching rules for -march=armv8.5-a - * config/arm/t-arm-elf (all_v8_archs): Add armv8.5-a. - * config/arm/t-multilib (v8_5_a_simd_variants): New variable. - Add matching rules for -march=armv8.5-a and extensions. - * doc/invoke.texi (ARM options): Document -march=armv8.5-a. - Add sb and predres to all armv8-a except armv8.5-a. - -2018-11-12 Richard Biener - - * tree-vrp.h (value_range[_base]::set): Make public. Provide - overload for single value. - (value_range[_base]::set_nonnull): New. - (value_range[_base]::set_null): Likewise. - (value_range): Document bitmap copying behavior, mark - copy constructor and assignment operator deleted. - (value_range::move): New. - (value_range::set_and_canonicalize): Default bitmap to zero. - (set_value_range_to_nonnull): Remove. - (set_value_range_to_null): Likewise. - (set_value_range): Likewise. - (set_value_range_to_value): Likewise. - (extract_range_from_unary_expr): Work on value_range_base. - (extract_range_from_binary_expr_1): Likewise. Rename to... - (extract_range_from_binary_expr): ... this. - * tree-vrp.c (value_range::update): Clear equiv bitmap - if required. - (value_range::move): New, move equiv bitmap. - (value_range_base::set_undefined): Avoid assignment. - (value_range::set_undefined): Likewise. - (value_range_base::set_varying): Likewise. - (value_range::set_varying): Likewise. - (set_value_range): Remove. - (value_range_base::set): New overload for value. - (value_range::set): Likewise. - (set_value_range_to_nonnull): Remove. - (value_range_base::set_nonnull): New. - (value_range::set_nonnull): Likewise. - (set_value_range_to_null): Remove. - (value_range_base::set_null): New. - (value_range::set_null): Likewise. - (range_is_null): Work on value_range_base. - (range_is_nonnull): Likewise. - (ranges_from_anti_range): Likewise. - (extract_range_into_wide_ints): Likewise. - (extract_range_from_multiplicative_op): Likewise. - (extract_range_from_binary_expr): Likewise. Update for API changes. - (extract_range_from_unary_expr): Likewise. Remove OBJ_TYPE_REF - handling. - (value_range::intersect_helper): Avoid copy and assignment. - (value_range::union_helper): Likewise. - (determine_value_range_1): Adjust. - * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range): - Avoid assignment by using move. - (evrp_range_analyzer::record_ranges_from_stmt): Avoid assignment. - * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): - Likewise. - * tree-ssanames.c (get_range_info): Likewise. - * vr-values.h (vr_values::get_vr_for_comparison): Adjust API. - * vr-values.c (vr_values::get_value_range): Adjust. - (vr_values::update_value_range): Likewise. - (symbolic_range_based_on_p): Work on value_range_base. - (vr_values::extract_range_from_binary_expr): Use value_range_base. - (vr_values::extract_range_from_unary_expr): Likewise. - (vr_values::extract_range_from_cond_expr): Avoid assignment. - (vr_values::extract_range_from_comparison): Adjust. - (vr_values::check_for_binary_op_overflow): Use value_range_base. - (vr_values::extract_range_basic): Adjust. - (vr_values::adjust_range_with_scev): Likewise. - (vr_values::vrp_visit_assignment_or_call): Likewise. - (vr_values::get_vr_for_comparison): Change API to avoid - assignment and copy construction. - (vr_values::compare_name_with_value): Adjust accordingly. - (vr_values::compare_names): Likewise. - (vr_values::extract_range_from_phi_node): Avoid assignment and - bogus in-place modify of equiv bitmap. - (vr_values::simplify_bit_ops_using_ranges): Use value_range_base. - * ipa-prop.c (ipa_compute_jump_functions_for_edge): Adjust - for extract_range_from_unary_expr API change. - * ipa-cp.c (ipa_vr_operation_and_type_effects): Likewise. - -2018-11-12 Eric Botcazou - - * config/mcore/mcore.h (WORD_REGISTER_OPERATIONS): Remove duplicate. - -2018-11-12 Richard Biener - - * tree-vrp.h (value_range_base::symbolic_p, - value_range_base::constant_p, value_range_base::zero_p, - value_range_base::singleton_p): Move from value_range. - (value_range::dump): Add. - * gimple-ssa-evrp-analyze.c - (evrp_range_analyzer::record_ranges_from_phis): Use set_varying. - * ipa-cp.c (ipcp_vr_lattice::print): Use dump_value_range. - * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): - Use set_varying. - * tree-vrp.c (value_range::symbolic_p): Move to value_range_base. - (value_range::constant_p): Likewise. - (value_range::singleton_p): Likewise. - (value_range_base::dump): Add. - (set_value_range_to_undefined): Remove. - (set_value_range_to_varying): Likewise. - (range_int_cst_p): Take value_range_base argument. - (range_int_cst_singleton_p): Likewise. - (value_range_constant_singleton): Likewise. - (vrp_set_zero_nonzero_bits): Likewise. - (extract_range_from_multiplicative_op): Use set_varying. - (extract_range_from_binary_expr_1): Likewise. Use set_undefined. - (extract_range_from_unary_expr): Likewise. - (dump_value_range_base): Change to overload of dump_value_range. - (vrp_prop::vrp_initialize): Use set_varying and set_undefined. - (vrp_prop::visit_stmt): Likewise. - (value_range::intersect_helper): Likewise. - (value_range::union_helper): Likewise. - (determine_value_range_1): Likewise. - -2018-11-12 Richard Biener - - * tree-vrp.c (set_value_range_to_nonnull): Clear equiv. - (set_value_range_to_null): Likewise. - * vr-values.c (vr_values::extract_range_from_comparison): - Clear equiv for constant singleton ranges. - -2018-11-12 Wei Xiao - - * config/i386/sse.md: Combine VFIXUPIMM* patterns - (_fixupimm_maskz): Update. - (_fixupimm): Update. - (_fixupimm_mask): Remove. - (avx512f_sfixupimm_maskz): Update. - (avx512f_sfixupimm): Update. - (avx512f_sfixupimm_mask): Remove. - -2018-11-11 Sandra Loosemore - - PR c/69502 - * doc/extend.texi (Common Type Attributes): For the align type - attribute, copy language about decreasing alignment from the - corresponding variable attribute. - -2018-11-11 Xianmiao Qu - - * config/csky/csky.md (*fpuv2_nmulsf3_1, *fpuv2_nmuldf3_1): Handle - -frounding-math. - -2018-11-11 Sandra Loosemore - - PR c++/43105 - * doc/invoke.texi (C++ Dialect Options): Add warning about mixing - -frtti and -fno-rtti code. - -2018-11-11 Sandra Loosemore - - PR c/26366 - * doc/extend.texi (Other Builtins): Document probability associated - with __builtin_expect. - -2018-11-11 Uros Bizjak - - PR target/87928 - * config/i386/i386.h (STACK_BOUNDARY): Use TARGET_64BIT_MS_ABI - instead of (TARGET_64BIT && ix86_abi == MS_ABI). - * config/i386/darwin.h (STACK_BOUNDARY): Ditto. - * config/i386/cygming.h (STACK_BOUNDARY): Remove. - -2018-11-11 Xianmiao Qu - - * config/csky/csky-linux-elf.h (CC1_SPEC): Support -profile. - -2018-11-11 Xianmiao Qu - - * config/csky/csky.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. - -2018-11-11 Richard Biener - - * tree-vrp.h (class value_range_base): New base class for - value_range containing all but the m_equiv member. - (dump_value_range_base): Add. - (range_includes_zero_p): Work on value_range_base. - * tree-vrp.c (value_range_base::set): Split out base handling - from... - (value_range::set): this. - (value_range::set_equiv): New. - (value_range_base::value_range_base): New constructors. - (value_range_base::check): Split out base handling from... - (value_range::check): this. - (value_range::equal_p): Refactor in terms of - ignore_equivs_equal_p which is now member of the base. - (value_range_base::set_undefined): New. - (value_range_base::set_varying): Likewise. - (value_range_base::dump):Split out base handling from... - (value_range::dump): this. - (value_range_base::set_and_canonicalize): Split out base handling - from... - (value_range::set_and_canonicalize): this. - (value_range_base::union_): New. - * ipa-prop.h (struct ipa_jump_func): Use value_range_base * - for m_vr. - * ipa-cp.c (class ipcp_vr_lattice): Use value_range_base - instead of value_range everywhere. - (ipcp_vr_lattice::print): Use dump_value_range_base. - (ipcp_vr_lattice::meet_with): Adjust. - (ipcp_vr_lattice::meet_with_1): Likewise. - (ipa_vr_operation_and_type_effects): Likewise. - (propagate_vr_across_jump_function): Likewise. - * ipa-prop.c (struct ipa_vr_ggc_hash_traits): Likewise. - (ipa_get_value_range): Likewise. - (ipa_set_jfunc_vr): Likewise. - (ipa_compute_jump_functions_for_edge): Likewise. - -2018-11-10 Sandra Loosemore - - PR middle-end/65703 - * doc/invoke.texi (Optimize Options): Add @opindex entries - for the positive forms of -fno-xxx and -mno-xxx options - that were lacking them. - -2018-11-10 Segher Boessenkool - - * combine.c (make_more_copies): Only make an intermediate copy if the - dest of a move is a pseudo. - -2018-11-09 Maya Rashish - - PR target/87221 - * config/netbsd-elf.h (NETBSD_STARTFILE_SPEC): Use crtbeginS.o for PIE. - (NETBSD_ENDFILE_SPEC): Use crtendS.o for PIE. - -2018-11-09 Sandra Loosemore - - PR driver/41179 - PR middle-end/65703 - * doc/invoke.texi (Optimize Options): Clarify default behavior - for -fno-toplevel-reorder, -fno-defer-pop, and -fno-branch-count-reg. - -2018-11-09 Bernd Edlinger - - PR tree-optimization/87940 - * expr.c (string_constant): Don't strip NOPS in subexpressions. - Fold PLUS_EXPR correctly. - -2018-11-09 Ilya Leoshkevich - - PR target/87762 - * config/s390/s390.c (s390_safe_relative_long_p): New function. - (annotate_constant_pool_refs): Skip insns which support - relative addressing. - (annotate_constant_pool_refs_1): New helper function. - (find_constant_pool_ref): Skip insns which support relative - addression. - (find_constant_pool_ref_1): New helper function. - (replace_constant_pool_ref): Skip insns which support - relative addressing. - (replace_constant_pool_ref_1): New helper function. - (s390_mainpool_start): Adapt to the new signature. - (s390_mainpool_finish): Likewise. - (s390_chunkify_start): Likewise. - (s390_chunkify_finish): Likewise. - (pass_s390_early_mach::execute): Likewise. - (s390_prologue_plus_offset): Likewise. - (s390_emit_prologue): Likewise. - (s390_emit_epilogue): Likewise. - -2018-11-09 Jakub Jelinek - - * gimplify.c (gimplify_scan_omp_clauses): Call sorry_at for valid - but unsupported lastprivate with conditional modifier. - -2018-11-09 Jeff Law - - * config/mips/mips.c (mips_loongson_ext2_prefetch_cookie): Handle - unused argument better. Add gcc_unreachable to silence warning. - -2018-11-09 Martin Sebor - - PR middle-end/81824 - * attribs.c (has_attribute): New helper function. - (decls_mismatched_attributes, maybe_diag_alias_attributes): Same. - * attribs.h (decls_mismatched_attributes): Declare. - * cgraphunit.c (handle_alias_pairs): Call maybe_diag_alias_attributes. - (maybe_diag_incompatible_alias): Use OPT_Wattribute_alias_. - * common.opt (-Wattribute-alias): Take an argument. - (-Wno-attribute-alias): New option. - * doc/extend.texi (Common Function Attributes): Document copy. - (Common Variable Attributes): Same. - * doc/invoke.texi (-Wmissing-attributes): Document enhancement. - (-Wattribute-alias): Document new option argument. - -2018-11-09 Richard Earnshaw - - * config/arm/parsecpu.awk (/alias/): Tighten invisible alias - matching criteria. Remove unused array initializer. - -2018-11-09 Bill Schmidt - Jinsong Ji - - * config/rs6000/xmmintrin.h (_mm_cvtss_si32): Fix incorrect - constraints by introducing a new temporary. - (_mm_cvtss_si64): Likewise. - -2018-11-09 Martin Liska - - * common.opt: Add -fipa-stack-alignment flag. - * doc/invoke.texi: Document it. - * final.c (rest_of_clean_state): Guard stack - shrinking with flag. - -2018-11-09 Martin Liska - - * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Rename - to ... - (ipa_discover_variable_flags): ... this. - * common.opt: Come up with new flag -fipa-reference-addressable. - * doc/invoke.texi: Document it. - * ipa-reference.c (propagate): Call the renamed fn. - * ipa-visibility.c (whole_program_function_and_variable_visibility): - Likewise. - * ipa.c (ipa_discover_readonly_nonaddressable_vars): Renamed to - ... - (ipa_discover_variable_flags): ... this. Discover - non-addressable variables only with the newly added flag. - * opts.c: Enable the newly added flag with -O1 and higher - optimization level. - -2018-11-09 David Malcolm - - * json.cc (selftest::test_writing_literals): Fix comment. - -2018-11-09 Martin Liska - - * config/aarch64/aarch64.c (aarch64_parse_arch): Do not copy - string to a stack buffer. - (aarch64_parse_cpu): Likewise. - (aarch64_parse_tune): Likewise. - -2018-11-09 Richard Biener - - PR tree-optimization/87953 - * tree-vect-loop.c (vectorizable_reduction): For analysis - always pass ops[0] to vectorizable_condition. - -2018-11-09 Stafford Horne - Richard Henderson - Joel Sherrill - - * common/config/or1k/or1k-common.c: New file. - * config/or1k/*: New. - * config.gcc (or1k*-*-*): New. - * configure.ac (or1k*-*-*): New test for openrisc tls. - * configure: Regenerated. - * doc/install.texi: Document OpenRISC triplets. - * doc/invoke.texi: Document OpenRISC arguments. - * doc/md.texi: Document OpenRISC. - -2018-11-09 Richard Earnshaw - - * config/arm/arm-cpus.in (arm7tdmi): Add an alias for arm7tdmi-s. - (arm7tdmi-s): Delete CPU. - (arm710t): Add aliases for arm720t and arm740t. - (arm720t, arm740t): Delete CPUs. - (arm920t): Add aliases for arm920, arm922t and arm940t. - (arm920, arm922t, arm940t): Delete CPUs. - (arm10tdmi): Add alias for arm1020t. - (arm1020t): Delete CPU. - (arm9e): Add aliases for arm946e-s, arm966e-s and arm968e-s. - (arm946e-s, arm966e-s, arm968e-s): Delete CPUs. - (arm10e): Add aliases for arm1020e and arm1022e. - (arm1020e, arm1022e): Delete CPU. - * config/arm/arm.md (generic_sched): Remove entries that are now - handled by aliases. - (generic_vfp): Likewise. - * config/arm/arm1020e.md: Simplify tuning selection based on alias - changes. - * config/arm/arm-tune.md: Regenerated. - * config/arm/arm-tables.opt: Regenerated. - -2018-11-09 Richard Biener - - PR tree-optimization/87621 - * tree-vect-loop.c (vectorizable_reduction): Handle reduction - op with only phi inputs. - * tree-ssa-loop-ch.c: Include tree-ssa-sccvn.h. - (ch_base::copy_headers): Run CSE on copied loop headers. - (pass_ch_vect::process_loop_p): Simplify. - -2018-11-09 Alexandre Oliva - - * config/i386/mingw32.h (LINK_SPEC_LARGE_ADDR_AWARE): Adjust - for non-w64 x86_64 biarch. - -2018-11-09 Alexandre Oliva - - PR rtl-optimization/86438 - * compare-elim.c (try_eliminate_compare): Use SET_SRC instead - of in_b for the compare if in_b is SET_DEST. - - PR target/87793 - * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Reject - non-toplevel UNSPEC. - -2018-11-08 Aldy Hernandez - - * tree-vrp.c (value_range::check): Do not access internals - directly. - (value_range::singleton_p): Same. - (value_range::type): Same. - (vrp_finalize): Use value_range API. - -2018-11-08 Aldy Hernandez - - * tree-vrp.c (may_contain_p): Do not access m_min/m_max directly. - -2018-11-08 Aldy Hernandez - - * vr-values.c (vr_values::get_value_range): Use value_range API - instead of piecing together ranges. - (vr_values::update_value_range): Same. - -2018-11-08 Aldy Hernandez - - * gimple-fold.c (size_must_be_zero_p): Use value_range API instead - of performing ad-hoc calculations. - * tree-ssanames.c (set_range_info): New overloaded function - accepting value_range &. - (get_range_info): Same. - * tree-ssanames.h (set_range_info_raw): Remove. - (set_range_info): New prototype. - (get_range_info): Same. - * tree-vrp.h (value_range::null_p): Rename to zero_p. - * tree-vrp.c (value_range::null_p): Same. - -2018-11-09 Jan Hubicka - - * tree.c (fld_type_variant_equal_p): Test user align flag. - (flt_type_variant): Copy user align flag. - (fld_incomplete_type_of): Clear it. - -2018-11-09 Prathamesh Kulkarni - - * config/arm/neon.md (div3): New pattern. - -2018-11-08 Andi Kleen - - * common/config/i386/i386-common.c (OPTION_MASK_ISA_PTWRITE_SET): New. - (OPTION_MASK_ISA_PTWRITE_UNSET): New. - (ix86_handle_option): Handle OPT_mptwrite. - * config/i386/cpuid.h (bit_PTWRITE): Add. - * config/i386/driver-i386.c (host_detect_local_cpu): Detect ptwrite. - * config/i386/i386-builtin.def (BDESC): Add ptwrite32/64. - * config/i386/i386-c.c (ix86_target_macros_internal): Define __PTWRITE__. - * config/i386/i386.c (ix86_target_string): Handle ptwrite. - (ix86_option_override_internal): Handle PTA_PTWRITE. - (ix86_valid_target_attribute_inner_p): Define ptwrite. - (def_builtin2): Force UINT64 to be 64bit only. - * config/i386/i386.h (TARGET_PTWRITE): Add. - (TARGET_PTWRITE_P): Add. - (PTA_PTWRITE): Add. - * config/i386/i386.md: Define ptwrite. - * config/i386/i386.opt: Add -mptwrite. - * config/i386/immintrin.h (_ptwrite64): Add. - (_ptwrite32): Add - * doc/extend.texi: Document __builtin_ia32_ptwrite*. - * doc/invoke.texi: Document -mptwrite. - -2018-11-08 Peter Bergner - - PR rtl-optimization/87600 - * cfgexpand.c (expand_asm_stmt): Catch illegal asm constraint usage. - * lra-constraints.c (process_alt_operands): Skip illegal hard - register usage. Prefer reloading non hard register operands. - -2018-11-08 Sandra Loosemore - - PR other/36572 - * doc/invoke.texi (Optimize Options): Clarify default behavior - for -fno-sched-interblock and -fno-sched-spec. - -2018-11-08 Roman Geissler - - * collect2.c (linker_select): Add USE_LLD_LD. - (ld_suffixes): Add ld.lld. - (main): Handle -fuse-ld=lld. - * common.opt (-fuse-ld=lld): New option. - * doc/invoke.texi (-fuse-ld=lld): Document. - * opts.c (common_handle_option): Handle OPT_fuse_ld_lld. - -2018-11-08 Paul Koning - - * config/pdp11/constraints.md: Add "Z" series constraints for use - with pre-dec and post-inc addressing. - * config/pdp11/pdp11-protos.m (expand_block_move): Delete. - (pdp11_expand_operands): Add int argument (word count). - (pdp11_sp_frame_offset): Delete. - (pdp11_cmp_length): New function. - (pushpop_regeq): New function. - * config/pdp11/pdp11.c (TARGET_STACK_PROTECT_RUNTIME_ENABLED_P): - Add hook. - (pdp11_expand_prologue, pdp11_expand_epilogue): Rewrite for new - frame layout. - (pdp11_initial_elimination_offset): Ditto. - (pdp11_expand_operands): Add word count argument. Bugfixes. - (output_move_multiple): Change how pointer adjustment is done. - (pdp11_gen_int_label): Correct format. - (output_ascii): Ditto. - (pdp11_asm_output_var): Add code for DEC assembler case. - (pdp11_asm_print_operand): Bugfix for CONST_DOUBLE holding integer - value. - (legitimate_const_double_p): Ditto. - (pdp11_register_move_cost): Adjust for new register classes. - (pdp11_regno_reg_class): Ditto. - (expand_block_move): Delete. - (pushpop_regeq): New function. - (pdp11_legitimate_address_p): Bugfix in check for constant - offset. - (pdp11_sp_frame_offset): Delete. - (pdp11_reg_save_size): New helper function for new frame layout. - (output_addr_const_pdp11): Remove CONST_DOUBLE case. - (pdp11_expand_shift): Bugfix in check for constant shift count. - (pdp11_shift_length): Ditto. - (pdp11_assemble_shift): Copy input to pdp11_expand_operands. - (pdp11_cmp_length): New function. - * config/pdp11/pdp11.h (TARGET_CPU_CPP_BUILTINS): Add macros for - some compile options. - (FIXED_REGISTERS): Remove HARD_FRAME_POINTER_REGNUM. - (CALL_USED_REGISTERS): Ditto. - (ELIMINABLE_REGS): Ditto. - (REGISTER_NAMES): Ditto. - (reg_class): Add classes NOTR0_REG through NOTSP_REG for use by Z - constraints. - (REG_CLASS_NAMES): Ditto. - (REG_CLASS_CONTENTS): Ditto. Also remove - HARD_FRAME_POINTER_REGNUM. - (CPU_REG_CLASS): New macro. - (CLASS_MAX_NREGS): Adjust for new register classes. - (FUNCTION_PROFILER): Make no-op. - (may_call_alloca): Remove unused declaration. - (ASM_OUTPUT_ALIGN): Add workaround for PR87795. - (ASM_OUTPUT_SKIP): Fix format. - * config/pdp11/pdp11.md (unspecv): Add UNSPECV_MOVMEM. - (HARD_FRAME_POINTER_REGNUM): Remove. - (return): Delete. - (*rts): Rename. Remove epilogue related checks. - (cmpsi, cmpdi): New insn. - (cbranch4): Change to apply to SI and DI modes as well. - (mov): Change constraints to enforce that push/pop - destination cannot use the same register as source. - (*mov): Ditto. - (movmemhi, movmemhi1, movmemhi_nocc): Change to expand block move - at assembly output rather than as RTL expander. - (zero_extendqihi2): Bugfix in check for same registers. - (adddi3_nocc): Bugfix in check for constant operand. - (addsi3_nocc): Ditto. - (subdi3_nocc): Ditto. - (subsi3_nocc): Ditto. - (negdi2_nocc): Copy input to pdp11_expand_operands. - (negsi2_nocc): Ditto. - (bswap2_nocc): Ditto. - * config/pdp11/pdp11.opt (mlra): Fix documentation. - * config/pdp11/t-pdp11: Use -Os. - -2018-11-08 Richard Earnshaw - - * config/arm/parsecpu.awk (/alias/): New parsing rule. - (/begin cpu/): Check that the cpu name hasn't been previously defined. - (gen_comm_data): Print out CPU alias tables. - (check_cpu): Match aliases when checking the CPU name. - * config/arm/arm-protos.h (cpu_alias): New structure. - (cpu_option): Add entry for aliases. - * config/arm/arm-cpus.in (strongarm): Add aliases for strongarm110 - strongarm1100 and strongarm1110. - (strongarm110, strongarm1100, strongarm1110): Delete CPU entries. - (config/arm/arm-generic.md): Remove redundant references to - strongarm110, strongarm1100 and strongarm1110. - * common/config/arm/arm-common.c (arm_print_hint_for_cpu_option): - Scan aliases for additional hints. - (arm_parse_cpu_option_name): Also match a cpu name against the list - of aliases. - * config/arm/arm-tables.opt: Regenerated. - * config/arm/arm-tune.md: Regenerated. - -2018-11-08 Jakub Jelinek - - * builtin-types.def (BT_FN_VOID_BOOL, BT_FN_VOID_SIZE_SIZE_PTR, - BT_FN_UINT_UINT_PTR_PTR, BT_FN_UINT_OMPFN_PTR_UINT_UINT, - BT_FN_BOOL_UINT_LONGPTR_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, - BT_FN_BOOL_UINT_ULLPTR_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR, - BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, - BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR): New. - * gengtype.c (open_base_files): Add omp-general.h. - * gimple.c (gimple_build_omp_critical): - (gimple_build_omp_taskgroup): Add CLAUSES argument. Call - gimple_omp_taskgroup_set_clauses. - (gimple_build_omp_atomic_load): Add mo argument, call - gimple_omp_atomic_set_memory_order. - (gimple_build_omp_atomic_store): Likewise. - (gimple_copy): Adjust handling of GIMPLE_OMP_TASKGROUP. - * gimple.def (GIMPLE_OMP_TASKGROUP): Use GSS_OMP_SINGLE_LAYOUT - instead of GSS_OMP. - (GIMPLE_OMP_TEAMS): Use GSS_OMP_PARALLEL_LAYOUT instead - of GSS_OMP_SINGLE_LAYOUT, adjust comments. - * gimple.h (enum gf_mask): Add GF_OMP_TEAMS_HOST, GF_OMP_TASK_TASKWAIT - and GF_OMP_ATOMIC_MEMORY_ORDER. Remove GF_OMP_ATOMIC_SEQ_CST, use - different value for GF_OMP_ATOMIC_NEED_VALUE. - (struct gimple_statement_omp_taskreg): Add GIMPLE_OMP_TEAMS to - comments. - (struct gimple_statement_omp_single_layout): And remove here. - (struct gomp_teams): Inherit from gimple_statement_omp_taskreg rather - than gimple_statement_omp_single_layout. - (is_a_helper ::test): Allow - GIMPLE_OMP_TEAMS. - (is_a_helper ::test): Likewise. - (gimple_omp_subcode): Formatting fix. - (gimple_omp_teams_child_fn, gimple_omp_teams_child_fn_ptr, - gimple_omp_teams_set_child_fn, gimple_omp_teams_data_arg, - gimple_omp_teams_data_arg_ptr, gimple_omp_teams_set_data_arg, - gimple_omp_teams_host, gimple_omp_teams_set_host, - gimple_omp_task_taskwait_p, gimple_omp_task_set_taskwait_p, - gimple_omp_taskgroup_clauses, gimple_omp_taskgroup_clauses_ptr, - gimple_omp_taskgroup_set_clauses): New inline functions. - (gimple_build_omp_atomic_load): Add enum omp_memory_order argument. - (gimple_build_omp_atomic_store): Likewise. - (gimple_omp_atomic_seq_cst_p): Remove. - (gimple_omp_atomic_memory_order): New function. - (gimple_omp_atomic_set_seq_cst): Remove. - (gimple_omp_atomic_set_memory_order): New function. - (gimple_build_omp_taskgroup): Add clauses argument. - * gimple-pretty-print.c (dump_gimple_omp_taskgroup): New function. - (dump_gimple_omp_task): Print taskwait with depend clauses. - (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Use - dump_omp_atomic_memory_order. - (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP. - * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALLOC_ONLY, - GOVD_MAP_FROM_ONLY and GOVD_NONTEMPORAL. - (enum omp_region_type): Reserve bits 1 and 2 for auxiliary flags, - renumber values of most of ORT_* enumerators, add ORT_HOST_TEAMS, - ORT_COMBINED_HOST_TEAMS, ORT_TASKGROUP, ORT_TASKLOOP and - ORT_UNTIED_TASKLOOP enumerators. - (enum gimplify_defaultmap_kind): New. - (struct gimplify_omp_ctx): Remove target_map_scalars_firstprivate and - target_map_pointers_as_0len_arrays members, add defaultmap. - (new_omp_context): Initialize defaultmap member. - (gimple_add_tmp_var): Handle ORT_TASKGROUP like ORT_WORKSHARE. - (maybe_fold_stmt): Don't fold even in host teams regions. - (omp_firstprivatize_variable): Handle ORT_TASKGROUP like - ORT_WORKSHARE. Test ctx->defaultmap[GDMK_SCALAR] instead of - ctx->omp_firstprivatize_variable. - (omp_add_variable): Don't add private/firstprivate for VLAs in - ORT_TASKGROUP. - (omp_default_clause): Print "taskloop" rather than "task" if - ORT_*TASKLOOP. - (omp_notice_variable): Handle ORT_TASKGROUP like ORT_WORKSHARE. - Handle new defaultmap clause kinds. - (omp_is_private): Handle ORT_TASKGROUP like ORT_WORKSHARE. Allow simd - iterator to be lastprivate or private. Fix up diagnostics if linear - is used on collapse>1 simd iterator. - (omp_check_private): Handle ORT_TASKGROUP like ORT_WORKSHARE. - (gimplify_omp_depend): New function. - (gimplify_scan_omp_clauses): Add shared clause on parallel for - combined parallel master taskloop{, simd} if taskloop has - firstprivate, lastprivate or reduction clause. Handle - OMP_CLAUSE_REDUCTION_TASK diagnostics. Adjust tests for - ORT_COMBINED_TEAMS. Gimplify depend clauses with iterators. Handle - cancel and simd OMP_CLAUSE_IF_MODIFIERs. Handle - OMP_CLAUSE_NONTEMPORAL. Handle new defaultmap clause kinds. Handle - OMP_CLAUSE_{TASK,IN}_REDUCTION. Diagnose invalid conditional - lastprivate. - (gimplify_adjust_omp_clauses_1): Ignore GOVD_NONTEMPORAL. Handle - GOVD_MAP_ALLOC_ONLY and GOVD_MAP_FROM_ONLY. - (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_NONTEMPORAL. Handle - OMP_CLAUSE_{TASK,IN}_REDUCTION. - (gimplify_omp_task): Handle taskwait with depend clauses. - (gimplify_omp_for): Add shared clause on parallel for combined - parallel master taskloop{, simd} if taskloop has firstprivate, - lastprivate or reduction clause. Use ORT_TASKLOOP or - ORT_UNTIED_TASKLOOP instead of ORT_TASK or ORT_UNTIED_TASK. Adjust - tests for ORT_COMBINED_TEAMS. Handle C++ range for loops with - NULL TREE_PURPOSE in OMP_FOR_ORIG_DECLS. Firstprivatize - __for_end and __for_range temporaries on OMP_PARALLEL for - distribute parallel for{, simd}. Move OMP_CLAUSE_REDUCTION - and OMP_CLAUSE_IN_REDUCTION from taskloop to the task construct - sandwiched in between two taskloops. - (computable_teams_clause): Test ctx->defaultmap[GDMK_SCALAR] - instead of ctx->omp_firstprivatize_variable. - (gimplify_omp_workshare): Set ort to ORT_HOST_TEAMS or - ORT_COMBINED_HOST_TEAMS if not inside of target construct. If - host teams, use gimplify_and_return_first etc. for body like - for target or target data constructs, and at the end call - gimple_omp_teams_set_host on the GIMPLE_OMP_TEAMS object. - (gimplify_omp_atomic): Use OMP_ATOMIC_MEMORY_ORDER instead - of OMP_ATOMIC_SEQ_CST, pass it as new argument to - gimple_build_omp_atomic_load and gimple_build_omp_atomic_store, remove - gimple_omp_atomic_set_seq_cst calls. - (gimplify_expr) : Move handling into a separate - case, handle taskgroup clauses. - * lto-streamer-out.c (hash_tree): Handle - OMP_CLAUSE_{TASK,IN}_REDUCTION. - * Makefile.in (GTFILES): Add omp-general.h. - * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND, - BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_START, - BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_START, - BUILT_IN_GOMP_LOOP_START, BUILT_IN_GOMP_LOOP_ORDERED_START, - BUILT_IN_GOMP_LOOP_DOACROSS_START, - BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_NEXT, - BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_NEXT, - BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_START, - BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_START, - BUILT_IN_GOMP_LOOP_ULL_START, BUILT_IN_GOMP_LOOP_ULL_ORDERED_START, - BUILT_IN_GOMP_LOOP_ULL_DOACROSS_START, - BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_NEXT, - BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_NEXT, - BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME, - BUILT_IN_GOMP_PARALLEL_LOOP_MAYBE_NONMONOTONIC_RUNTIME, - BUILT_IN_GOMP_PARALLEL_REDUCTIONS, BUILT_IN_GOMP_SECTIONS2_START, - BUILT_IN_GOMP_TEAMS_REG, BUILT_IN_GOMP_TASKGROUP_REDUCTION_REGISTER, - BUILT_IN_GOMP_TASKGROUP_REDUCTION_UNREGISTER, - BUILT_IN_GOMP_TASK_REDUCTION_REMAP, - BUILT_IN_GOMP_WORKSHARE_TASK_REDUCTION_UNREGISTER): New builtins. - * omp-expand.c (workshare_safe_to_combine_p): Return false for - non-worksharing loops. - (omp_adjust_chunk_size): Don't adjust anything if chunk_size is zero. - (determine_parallel_type): Don't combine parallel with worksharing - which has _reductemp_ clause. - (expand_parallel_call): Emit the GOMP_*nonmonotonic_runtime* or - GOMP_*maybe_nonmonotonic_runtime* builtins instead of GOMP_*runtime* - if there is nonmonotonic modifier or if there is no modifier and no - ordered clause. For dynamic and guided schedule without monotonic - and nonmonotonic modifier, default to nonmonotonic. - (expand_omp_for): Likewise. Adjust expand_omp_for_generic caller, use - GOMP_loop{,_ull}{,_ordered,_doacross}_start builtins if there are - task reductions. - (expand_task_call): Add GOMP_TASK_FLAG_REDUCTION flag to flags if - there are any reduction clauses. - (expand_taskwait_call): New function. - (expand_teams_call): New function. - (expand_omp_taskreg): Allow GIMPLE_OMP_TEAMS and call - expand_teams_call for it. Formatting fix. Handle taskwait with - depend clauses. - (expand_omp_for_generic): Add SCHED_ARG argument. Handle expansion - of worksharing loops with task reductions. - (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle - expansion of worksharing loops with task reductions. - (expand_omp_sections): Handle expansion of sections with task - reductions. - (expand_omp_synch): For host teams call expand_omp_taskreg. - (omp_memory_order_to_memmodel): New function. - (expand_omp_atomic_load, expand_omp_atomic_store, - expand_omp_atomic_fetch_op): Use it and gimple_omp_atomic_memory_order - instead of gimple_omp_atomic_seq_cst_p. - (build_omp_regions_1, omp_make_gimple_edges): Treat taskwait with - depend clauses as a standalone directive. - * omp-general.c (enum omp_requires): New variable. - (omp_extract_for_data): Initialize have_reductemp member. Allow - NE_EXPR even in OpenMP loops, transform them into LT_EXPR or - GT_EXPR loops depending on incr sign. Formatting fixes. - * omp-general.h (struct omp_for_data): Add have_reductemp member. - (enum omp_requires): New enum. - (omp_requires_mask): Declare. - * omp-grid.c (grid_eliminate_combined_simd_part): Formatting fix. - Fix comment typos. - * omp-low.c (struct omp_context): Add task_reductions and - task_reduction_map fields. - (is_host_teams_ctx): New function. - (is_taskreg_ctx): Return true also if is_host_teams_ctx. - (use_pointer_for_field): Use is_global_var instead of - TREE_STATIC || DECL_EXTERNAL, and apply only if not privatized - in outer contexts. - (build_outer_var_ref): Ignore taskgroup outer contexts. - (delete_omp_context): Release task_reductions and task_reduction_map. - (scan_sharing_clauses): Don't add any fields for reduction clause on - taskloop. Handle OMP_CLAUSE__REDUCTEMP_. Handle - OMP_CLAUSE_{IN,TASK}_REDUCTION and OMP_CLAUSE_REDUCTION with task - modifier. Don't ignore shared clauses in is_host_teams_ctx contexts. - Handle OMP_CLAUSE_NONTEMPORAL. - (add_taskreg_looptemp_clauses): Add OMP_CLAUSE__REDUCTEMP_ clause if - needed. - (scan_omp_parallel): Add _reductemp_ clause if there are any reduction - clauses with task modifier. - (scan_omp_task): Handle taskwait with depend clauses. - (finish_taskreg_scan): Move field corresponding to _reductemp_ clause - first. Move also OMP_CLAUSE__REDUCTEMP_ clause in front if present. - Handle GIMPLE_OMP_TEAMS like GIMPLE_OMP_PARALLEL. - (scan_omp_for): Fix comment formatting. - (scan_omp_teams): Handle host teams constructs. - (check_omp_nesting_restrictions): Allow teams with no outer - OpenMP context. Adjust diagnostics for teams strictly nested into - some explicit OpenMP construct other than target. Allow OpenMP atomics - inside of simd regions. - (scan_omp_1_stmt): Call scan_sharing_clauses for taskgroups. - (scan_omp_1_stmt) : Temporarily bump - taskreg_nesting_level while scanning host teams construct. - (task_reduction_read): New function. - (lower_rec_input_clauses): Handle OMP_CLAUSE_REDUCTION on taskloop - construct. Handle OMP_CLAUSE_IN_REDUCTION and OMP_CLAUSE__REDUCTEMP_ - clauses. Handle OMP_CLAUSE_REDUCTION with task modifier. Remove - second argument create_tmp_var if it is NULL. Don't ignore shared - clauses in is_host_teams_ctx contexts. Handle - OMP_CLAUSE_FIRSTPRIVATE_NO_REFERENCE on OMP_CLAUSE_FIRSTPRIVATE - clauses. - (lower_reduction_clauses): Ignore reduction clauses with task - modifier. Remove second argument create_tmp_var if it is NULL. - Initialize OMP_ATOMIC_MEMORY_ORDER to relaxed. - (lower_send_clauses): Ignore reduction clauses with task modifier. - Handle OMP_CLAUSE__REDUCTEMP_. Don't send anything for - OMP_CLAUSE_REDUCTION on taskloop. Handle OMP_CLAUSE_IN_REDUCTION. - (maybe_add_implicit_barrier_cancel): Add OMP_RETURN argument, don't - rely that it is the last stmt in body so far. Ignore outer taskgroup - contexts. - (omp_task_reductions_find_first, omp_task_reduction_iterate, - lower_omp_task_reductions): New functions. - (lower_omp_sections): Handle reduction clauses with taskgroup - modifiers. Adjust maybe_add_implicit_barrier_cancel caller. - (lower_omp_single): Adjust maybe_add_implicit_barrier_cancel caller. - (lower_omp_for): Likewise. Handle reduction clauses with taskgroup - modifiers. - (lower_omp_taskgroup): Handle taskgroup reductions. - (create_task_copyfn): Copy over OMP_CLAUSE__REDUCTEMP_ pointer. - Handle OMP_CLAUSE_IN_REDUCTION and OMP_CLAUSE_REDUCTION clauses. - (lower_depend_clauses): If there are any - OMP_CLAUSE_DEPEND_DEPOBJ or OMP_CLAUSE_DEPEND_MUTEXINOUTSET - depend clauses, use a new array format. If OMP_CLAUSE_DEPEND_LAST is - seen, assume lowering is done already and return early. Set kind - on artificial depend clause to OMP_CLAUSE_DEPEND_LAST. - (lower_omp_taskreg): Handle reduction clauses with task modifier on - parallel construct. Handle reduction clause on taskloop construct. - Handle taskwait with depend clauses. - (lower_omp_1): Use lower_omp_taskreg instead of lower_omp_teams - for host teams constructs. - * tree.c (omp_clause_num_ops): Add in_reduction, task_reduction, - nontemporal and _reductemp_ clause entries. - (omp_clause_code_name): Likewise. - (walk_tree_1): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION, - OMP_CLAUSE_NONTEMPORAL and OMP_CLAUSE__REDUCTEMP_. - * tree-core.h (enum omp_clause_code): Add - OMP_CLAUSE_{{IN,TASK}_REDUCTION,NONTEMPORAL,_REDUCTEMP_}. - (enum omp_clause_defaultmap_kind, enum omp_memory_order): New. - (struct tree_base): Add omp_atomic_memory_order field into union. - Remove OMP_ATOMIC_SEQ_CST comment. - (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_MUTEXINOUTSET - and OMP_CLAUSE_DEPEND_DEPOBJ. - (struct tree_omp_clause): Add subcode.defaultmap_kind. - * tree.def (OMP_TASKGROUP): Add another operand, move next to other - OpenMP constructs with body and clauses operands. - * tree.h (OMP_BODY): Use OMP_MASTER instead of OMP_TASKGROUP. - (OMP_CLAUSES): Use OMP_TASKGROUP instead of OMP_SINGLE. - (OMP_TASKGROUP_CLAUSES): Define. - (OMP_CLAUSE_DECL): Use OMP_CLAUSE__REDUCTEMP_ instead of - OMP_CLAUSE__LOOPTEMP_. - (OMP_ATOMIC_SEQ_CST): Remove. - (OMP_ATOMIC_MEMORY_ORDER, OMP_CLAUSE_FIRSTPRIVATE_NO_REFERENCE, - OMP_CLAUSE_LASTPRIVATE_CONDITIONAL): Define. - (OMP_CLAUSE_REDUCTION_CODE, OMP_CLAUSE_REDUCTION_INIT, - OMP_CLAUSE_REDUCTION_MERGE, OMP_CLAUSE_REDUCTION_PLACEHOLDER, - OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER, - OMP_CLAUSE_REDUCTION_OMP_ORIG_REF): Handle - OMP_CLAUSE_{,IN_,TASK_}REDUCTION. - (OMP_CLAUSE_REDUCTION_TASK, OMP_CLAUSE_REDUCTION_INSCAN, - OMP_CLAUSE_DEFAULTMAP_KIND, OMP_CLAUSE_DEFAULTMAP_CATEGORY, - OMP_CLAUSE_DEFAULTMAP_BEHAVIOR, OMP_CLAUSE_DEFAULTMAP_SET_KIND): - Define. - * tree-inline.c (remap_gimple_stmt): Remap taskgroup clauses. - * tree-nested.c (convert_nonlocal_omp_clauses): Handle - OMP_CLAUSE__REDUCTEMP_, OMP_CLAUSE_NONTEMPORAL. - (convert_local_omp_clauses): Likewise. Remove useless test. - * tree-parloops.c (create_call_for_reduction_1): Pass - OMP_MEMORY_ORDER_RELAXED as new argument to - dump_gimple_omp_atomic_load and dump_gimple_omp_atomic_store. - * tree-pretty-print.c (dump_omp_iterators): New function. - (dump_omp_clause): Handle OMP_CLAUSE__REDUCTEMP_, - OMP_CLAUSE_NONTEMPORAL, OMP_CLAUSE_{TASK,IN}_REDUCTION. Print - reduction modifiers. Handle OMP_CLAUSE_DEPEND_DEPOBJ and - OMP_CLAUSE_DEPEND_MUTEXINOUTSET. Print iterators in depend clauses. - Print __internal__ for OMP_CLAUSE_DEPEND_LAST. Handle cancel and - simd OMP_CLAUSE_IF_MODIFIERs. Handle new kinds of - OMP_CLAUSE_DEFAULTMAP. Print conditional: for - OMP_CLAUSE_LASTPRIVATE_CONDITIONAL. - (dump_omp_atomic_memory_order): New function. - (dump_generic_node): Use it. Print taskgroup clauses. Print - taskwait with depend clauses. - * tree-pretty-print.h (dump_omp_atomic_memory_order): Declare. - * tree-streamer-in.c (unpack_ts_omp_clause_value_fields): - Handle OMP_CLAUSE_{TASK,IN}_REDUCTION. - * tree-streamer-out.c (pack_ts_omp_clause_value_fields, - write_ts_omp_clause_tree_pointers): Likewise. - -2018-11-08 David Malcolm - - PR ipa/86395 - * doc/invoke.texi (-fdump-ipa-): Document the "-optimized", - "-missed", "-note", and "-all" sub-options. - * ipa-inline.c (caller_growth_limits): Port from fprintf to dump - API. - (can_early_inline_edge_p): Likewise. - (want_early_inline_function_p): Likewise. - (want_inline_self_recursive_call_p): Likewise. - (recursive_inlining): Likewise. - (inline_small_functions): Likewise. - (flatten_function): Likewise. - (ipa_inline): Likewise. - (inline_always_inline_functions): Likewise. - (early_inline_small_functions): Likewise. - (early_inliner): Likewise. - * tree-inline.c (expand_call_inline): Likewise. - -2018-11-08 David Malcolm - - * pretty-print.c (pp_format): Handle %f. - (selftest::test_pp_format): Add test of %f. - * pretty-print.h (pp_double): New macro. - -2018-11-08 David Malcolm - - * dump-context.h (ASSERT_IS_CGRAPH_NODE): New macro. - * dumpfile.c (make_item_for_dump_cgraph_node): Move to before... - (dump_pretty_printer::decode_format): Implement "%C" for - cgraph_node *. - (selftest::test_capture_of_dump_calls): Rename "where" to - "stmt_loc". Convert test_decl to a function decl and set its - location. Add a symbol_table_test RAII instance and a - cgraph_node, using it to test "%C" and dump_symtab_node. - -2018-11-08 Eric Botcazou - - PR middle-end/87916 - * cgraphclones.c (duplicate_thunk_for_node): Also set DECL_IGNORED_P. - -2018-11-08 David Malcolm - - * cgraph.c: Include "selftest.h". - (saved_symtab): New variable. - (selftest::symbol_table_test::symbol_table_test): New ctor. - (selftest::symbol_table_test::~symbol_table_test): New dtor. - (selftest::test_symbol_table_test): New test. - (selftest::cgraph_c_tests): New. - * cgraph.h (saved_symtab): New decl. - (selftest::symbol_table_test): New class. - * selftest-run-tests.c (selftest::run_tests): Call - selftest::cgraph_c_tests. - * selftest.h (selftest::cgraph_c_tests): New decl. - -2018-11-08 Richard Biener - - * tree-data-ref.h (lambda_int): New typedef. - (lambda_vector_gcd): Adjust. - (lambda_vector_new): Likewise. - (lambda_matrix_new): Likewise. - * tree-data-ref.c (print_lambda_vector): Adjust. - -2018-11-08 Richard Biener - - PR tree-optimization/87929 - * tree-complex.c (expand_complex_comparison): Clean EH. - -2018-11-08 Martin Liska - - * doc/extend.texi: Reword. - * predict.c (expr_expected_value_1): Likewise. - -2018-11-08 Richard Biener - - PR tree-optimization/87913 - * tree-ssa-phiopt.c (minmax_replacement): Turn EQ/NE compares - of extreme values to ordered comparisons. - -2018-11-07 Sandra Loosemore - - PR middle-end/42726 - * doc/invoke.texi (Code Gen Options): Clarify -fno-common behavior. - -2018-11-07 Sandra Loosemore - - * doc/invoke.texi: Remove leading dash from @opindex entries - throughout the file. - -2018-11-07 Sandra Loosemore - - PR driver/80828 - * doc/invoke.texi (Option Summary): Add -e and --entry. - (Link Options): Likewise. - -2018-11-07 Nathan Sidwell - - PR 87926 - * Makefile.in (bitmap.o-warn): Add -Wno-error to unbreak - --disable-checking bootstrap. - -2018-11-07 Hafiz Abid Qadeer - - * configure: Regenerated. - -2018-11-07 Jozef Lawrynowicz - - PR c/87691 - * stor-layout.c (compute_record_mode): Set TYPE_MODE of UNION_TYPE - to the mode of the widest field iff the widest field has mode class - MODE_INT, or MODE_PARTIAL_INT and the union would be passed by - reference. - -2018-11-07 Nikolai Merinov - - * common.opt: Add -Wattribute-warning. - * doc/invoke.texi: Add documentation for -Wno-attribute-warning. - * expr.c (expand_expr_real_1): Add new attribute to warning_at - call to allow user configure behavior of "warning" attribute. - -2018-11-07 Segher Boessenkool - - * target.def: Put @: after every vs., e.g., and i.e. where it is - followed by whitespace. - * doc/extend.texi: Ditto. - * doc/fragments.texi: Ditto. - * doc/gimple.texi: Ditto. - * doc/implement-c.texi: Ditto. - * doc/install.texi: Ditto. - * doc/invoke.texi: Ditto. - * doc/md.texi: Ditto. - * doc/plugins.texi: Ditto. - * doc/rtl.texi: Ditto. - * doc/sourcebuild.texi: Ditto. - * doc/tm.texi.in: Ditto. - * doc/ux.texi: Ditto. - * doc/tm.texi: Regenerate. - -2018-11-07 Kyrylo Tkachov - - * config/arm/arm-cpus.in (ares): New entry. - * config/arm/arm-tables.opt: Regenerate. - * config/arm/arm-tune.md: Likewise. - * doc/invoke.texi (ARM Options): Document ares. - -2018-11-07 Kyrylo Tkachov - - * config/aarch64/aarch64-cores.def (ares): Define. - * config/aarch64/aarch64-tune.md: Regenerate. - * doc/invoke.texi (AArch64 Options): Document ares value for mtune. - -2018-11-07 Jan Hubicka - - * tree.c (fld_incomplete_type_of): Clear TREE_ADDRESSABLE. - (free_lang_data_in_decl): Set TREE_ADDRESSABLE for public vars and - functions; clear TYPE_DECL_SUPPRESS_DEBUG and DECL_MODE for - TYPE_DECL. - -2018-11-07 Richard Biener - - PR tree-optimization/87914 - * tree-vect-loop.c (vect_is_simple_reduction): Improve detection - of nested cycles. - (vectorizable_reduction): Handle shifts and rotates by dispatching - to vectorizable_shift. - * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Handle - in-loop uses of vect_nested_cycle defs. Merge cycle and internal - def cases. - (vectorizable_shift): Export and handle being called as - vect_nested_cycle. - (vect_analyze_stmt): Call vectorizable_shift after - vectorizable_reduction. - * tree-vectorizer.h (vectorizable_shift): Declare. - -2018-11-07 Jan Hubicka - - * ipa-devirt.c (odr_types_equivalent_p): Expect constants - than const decls in TREE_VALUE of enum. - (dump_type_inheritance_graph): Improve duplicate dumping. - (free_enum_values): New. - (build_type_inheritance_graph): Use it. - * tree.c (free_lang_data_in_type): Free TYPE_VALUES of enums - which are not main variants or not ODR types. - (verify_type_variant): Expect variants to have no TYPE_VALUES. - -2018-11-07 Richard Biener - - * ipa-inline.c (want_inline_small_function_p): Compute - big_speedup_p lazily and last. - -2018-11-07 Jan Hubicka - - * tree.c (fld_type_variant_equal_p): Skip TYPE_ALIGN check when - building incomplete variant of complete type. - (fld_type_variant): Do not copy TYPE_ALIGN when building incomplete - variant of complete type. - -2018-11-07 Chenghua Xu - - * config/mips/mips.c: Fix typo in documentation of - mips_loongson_ext2_prefetch_cookie. - (mips_option_override): fix brain twister logical. - * config/mips/mips.h: Fix typo in documentation of - ISA_HAS_CTZ_CTO and define pattern. - * config/mips/mips.md (prefetch): Hoist EXT2 above - the 2EF/EXT block. - (prefetch_indexed): Hoist EXT2 above the EXT block. - -2018-11-07 Jan Hubicka - - * tree.c (free_lang_data_in_type): Add fld parameter; simplify - return and parameter types of function and method types. - (free_lang_data_in_cgraph): Update. - -2018-11-07 Martin Liska - - PR rtl-optimization/87868 - * postreload-gcse.c (eliminate_partially_redundant_load): Set - threshold to max_count if we would overflow. - * profile-count.h: Make max_count a public constant. - -2018-11-07 Martin Liska - - * mem-stats.h: Fix GNU coding style. - -2018-11-07 Chenghua Xu - - * config/mips/gs264e.md: New. - * config/mips/mips-cpus.def: Define gs264e. - * config/mips/mips-tables.opt: Regenerate. - * config/mips/mips.c (mips_rtx_cost_data): Add DEFAULT_COSTS for - gs264e. - (mips_issue_rate): Add support for gs264e. - (mips_multipass_dfa_lookahead): Likewise. - * config/mips/mips.h: Define TARGET_GS264E and TUNE_GS264E. - (MIPS_ISA_LEVEL_SPEC): Infer mips64r2 from gs264e. - (MIPS_ASE_MSA_SPEC): New. - (BASE_DRIVER_SELF_SPECS): march=gs264e implies -mmsa. - (ISA_HAS_FUSED_MADD4): Enable for TARGET_GS264E. - (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_GS264E. - * config/mips/mips.md: Include gs264e.md. - (processor): Add gs264e. - * config/mips/mips.opt (MSA): Use Mask instead of Var. - * doc/invoke.texi: Add gs264e to supported architectures. - -2018-11-07 Chenghua Xu - - * config/mips/gs464e.md: New. - * config/mips/mips-cpus.def: Define gs464e. - * config/mips/mips-tables.opt: Regenerate. - * config/mips/mips.c (mips_rtx_cost_data): Add DEFAULT_COSTS for - gs464e. - (mips_issue_rate): Add support for gs464e. - (mips_multipass_dfa_lookahead): Likewise. - (mips_option_override): Enable MMI, EXT and EXT2 for gs464e. - * config/mips/mips.h: Define TARGET_GS464E and TUNE_GS464E. - (MIPS_ISA_LEVEL_SPEC): Infer mips64r2 from gs464e. - (ISA_HAS_FUSED_MADD4): Enable for TARGET_GS464E. - (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_GS464E. - * config/mips/mips.md: Include gs464e.md. - (processor): Add gs464e. - * doc/invoke.texi: Add gs464e to supported architectures. - -2018-11-07 Chenghua Xu - - * config/mips/loongson3a.md: Rename to ... - * config/mips/gs464.md: ... here. - * config/mips/mips-cpus.def: Define gs464; Add loongson3a - as an alias of gs464 processor. - * config/mips/mips-tables.opt: Regenerate. - * config/mips/mips.c (mips_issue_rate): Use PROCESSOR_GS464 - instead of PROCESSOR_LOONGSON_3A. - (mips_multipass_dfa_lookahead): Use TUNE_GS464 instead of - TUNE_LOONGSON_3A. - (mips_option_override): Enable MMI and EXT for gs464. - * config/mips/mips.h: Rename TARGET_LOONGSON_3A to TARGET_GS464; - Rename TUNE_LOONGSON_3A to TUNE_GS464. - (MIPS_ISA_LEVEL_SPEC): Infer mips64r2 from gs464. - (ISA_HAS_ODD_SPREG, ISA_AVOID_DIV_HILO, ISA_HAS_FUSED_MADD4, - ISA_HAS_UNFUSED_MADD4): Use TARGET_GS464 instead of - TARGET_LOONGSON_3A. - * config/mips/mips.md: Include gs464.md instead of loongson3a.md. - (processor): Add gs464; - * doc/invoke.texi: Add gs464 to supported architectures. - -2018-11-07 Chenghua Xu - - * config/mips/mips-protos.h - (mips_loongson_ext2_prefetch_cookie): New prototype. - * config/mips/mips.c (mips_loongson_ext2_prefetch_cookie): New. - (mips_option_override): Enable TARGET_LOONGSON_EXT when - TARGET_LOONGSON_EXT2 is true. - * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define - __mips_loongson_ext2, __mips_loongson_ext_rev=2. - (ISA_HAS_CTZ_CTO): New, true if TARGET_LOONGSON_EXT2. - (ISA_HAS_PREFETCH): Include TARGET_LOONGSON_EXT and - TARGET_LOONGSON_EXT2. - (ASM_SPEC): Add mloongson-ext2 and mno-loongson-ext2. - (define_insn "ctz2"): New insn pattern. - (define_insn "prefetch"): Include TARGET_LOONGSON_EXT2. - (define_insn "prefetch_indexed_"): Include - TARGET_LOONGSON_EXT and TARGET_LOONGSON_EXT2. - * config/mips/mips.opt (-mloongson-ext2): Add option. - * gcc/doc/invoke.texi (-mloongson-ext2): Document. - -2018-11-07 Chenghua Xu - - * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add - __mips_loongson_ext. - (MIPS_ASE_LOONGSON_EXT_SPEC): New. - (BASE_DRIVER_SELF_SPECS): march=loongson3a implies - -mloongson-ext. - (ASM_SPEC): Add mloongson-ext and mno-loongson-ext. - * config/mips/mips.md (mul3, mul3_mul3_nohilo, - div3, mod3, prefetch): Use TARGET_LOONGSON_EXT - instead of TARGET_LOONGSON_3A. - * config/mips/mips.opt (-mloongson-ext): Add option. - * gcc/doc/invoke.texi (-mloongson-ext): Document. - -2018-11-07 Chenghua Xu - - * config.gcc (extra_headers): Add loongson-mmiintrin.h. - * config/mips/loongson.md: Move to ... - * config/mips/loongson-mmi.md: here; Adjustment. - * config/mips/loongson.h: Move to ... - State as deprecated. Include loongson-mmiintrin.h for back - compatibility and warning. - * config/mips/loongson-mmiintrin.h: ... here. - * config/mips/mips.c (mips_hard_regno_mode_ok_uncached, - mips_vector_mode_supported_p, AVAIL_NON_MIPS16): Use - TARGET_LOONGSON_MMI instead of TARGET_LOONGSON_VECTORS. - (mips_option_override): Make sure MMI use hard float; - (mips_shift_truncation_mask, mips_expand_vpc_loongson_even_odd, - mips_expand_vpc_loongson_pshufh, mips_expand_vpc_loongson_bcast, - mips_expand_vector_init): Use TARGET_LOONGSON_MMI instead of - TARGET_LOONGSON_VECTORS. - * gcc/config/mips/mips.h (TARGET_LOONGSON_VECTORS): Delete. - (TARGET_CPU_CPP_BUILTINS): Add __mips_loongson_mmi. - (MIPS_ASE_DSP_SPEC, MIPS_ASE_LOONGSON_MMI_SPEC): New. - (BASE_DRIVER_SELF_SPECS): march=loongson2e/2f/3a implies - -mloongson-mmi. - (SHIFT_COUNT_TRUNCATED): Use TARGET_LOONGSON_MMI instead of - TARGET_LOONGSON_VECTORS. - * gcc/config/mips/mips.md (MOVE64, MOVE128): Use - TARGET_LOONGSON_MMI instead of TARGET_LOONGSON_VECTORS. - (Loongson MMI patterns): Include loongson-mmi.md instead of - loongson.md. - * gcc/config/mips/mips.opt (-mloongson-mmi): New option. - * gcc/doc/invoke.texi (-mloongson-mmi): Document. - -2018-11-07 Richard Biener - - PR lto/87906 - * tree-streamer-in.c (lto_input_ts_block_tree_pointers): Fixup - BLOCK_ABSTRACT_ORIGIN to be the ultimate origin. - -2018-11-07 Alexandre Oliva - - PR rtl-optimization/87874 - * lra.c (lra_substitute_pseudo): Do not create a subreg for - const wide ints. - -2018-11-06 Aaron Sawdey - - * config/rs6000/rs6000.md (bswap2): Force address into register - if not in indexed or indirect form. - (bswap2_load): Change predicate to indexed_or_indirect_operand. - (bswap2_store): Ditto. - -2018-11-06 Richard Earnshaw - - * config/aarch64/aarch64.md (speculation_tracker): Set the mode for - the UNSPEC. - -2018-11-06 Richard Biener - - PR tree-optimization/86850 - * vec.h (vec::splice): Check src.length () - instead of src.m_vec. - -2018-11-06 Jan Hubicka - - * tree.c (fld_simplified_type_name): Break out form ... - (free_lang_data_in_type): ... here. - (fld_type_variant_equal_p): Use it. - -2018-11-06 Rainer Orth - - * config/default-d.c: Include memmodel.h. - - * config/sol2-d.c: New file. - * config/t-sol2 (sol2-d.o): New rule. - * config.gcc <*-*-solaris2*>: Set d_target_objs, - target_has_targetdm. - -2018-11-06 Jan Hubicka - - * tree.c (fld_type_variant): Also copy alignment; be sure that - new variant is equal. - -2018-11-06 Ilya Leoshkevich - - PR target/87762 - * config/s390/s390.md: Add relative_long attribute. - -2018-11-06 Jan Hubicka - - * ipa-pure-const.c (check_decl): Do not test TYPE_NEEDS_CONSTRUCTING. - * lto-streamer-out.c (hash_tree): Do not hash TYPE_NEEDS_CONSTRUCTING. - * tree-streamer-in.c (unpack_ts_type_common_value_fields): Do not - stream TYPE_NEEDS_CONSTRUCTING. - * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise. - * tree.c (free_lang_data_in_type): Clear TYPE_NEEDS_CONSTRUCTING. - -2018-11-06 Richard Biener - - * tree-vect-slp.c (vect_slp_bb): Move opening of vect_slp_analyze_bb - dump-scope ... - (vect_slp_analyze_bb_1): ... here to avoid hiding optimized locations. - -2018-11-06 Jozef Lawrynowicz - - * gcc/config/msp430/msp430.h (REG_CLASS_CONTENTS): Add R0 to - REG_CLASS_CONTENTS[GEN_REGS]. - (REGNO_REG_CLASS): Return NO_REGS for R2 and R3. - -2018-11-06 Jan Hubicka - - * tree.c (fld_simplified_type_of): Clear TYPELESS_STORAGE flag. - -2018-11-06 Rainer Orth - - PR sanitizer/80953 - * config/sol2.h (ASAN_CC1_SPEC): Define. - (LD_WHOLE_ARCHIVE_OPTION): Define. - (LD_NO_WHOLE_ARCHIVE_OPTION): Define. - (ASAN_REJECT_SPEC): Provide default. - (LIBASAN_EARLY_SPEC): Define. - (LIBTSAN_EARLY_SPEC): Define. - (LIBLSAN_EARLY_SPEC): Define. - * config/i386/sol2.h (CC1_SPEC): Redefine. - (ASAN_REJECT_SPEC): Define. - - * config/sparc/sparc.c (sparc_asan_shadow_offset): Declare. - (TARGET_ASAN_SHADOW_OFFSET): Define. - (sparc_asan_shadow_offset): New function. - * config/sparc/sol2.h (CC1_SPEC): Append ASAN_CC1_SPEC. - (ASAN_REJECT_SPEC): Define. - -2018-11-06 Jan Hubicka - - * tree.c (fld_type_variant): Copy canonical type. - (fld_incomplete_type_of): Check that canonical types looks sane; - copy canonical type. - (verify_type): Accept when incomplete type has complete canonical type. - -2018-11-06 Jan Hubicka - - * tree.c (free_lang_data): Reset overwite_assembler_name, - print_xnode, print_decl, print_type and print_identifier of - langhooks. - -2018-11-06 Richard Biener - - PR tree-optimization/87889 - * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges): - Do nothing if old and new arg are the same - -2018-11-06 Andreas Krebbel - - PR target/87723 - * config/s390/s390.md ("*rsbg_di_rotl"): Remove mode - attributes for operands 3 and 4. - -2018-11-06 Richard Biener - - PR middle-end/18041 - * simplify-rtx.c (simplify_binary_operation_1): Add pattern - matching bitfield insertion. - -2018-11-06 Alexandre Oliva - - * auto-inc-dec.c: Include valtrack.h. Improve comments. - (reg_next_debug_use): New. - (attempt_change): Propagate adjusted expression into affected - debug insns. - (merge_in_block): Track uses in debug insns. - (pass_inc_dec::execute): Allocate and release - reg_next_debug_use. - -2018-11-06 Wei Xiao - - * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics. - (_mm512_fixupimm_round_pd): Update parameters and builtin. - (_mm512_maskz_fixupimm_round_pd): Ditto. - (_mm512_fixupimm_round_ps): Ditto. - (_mm512_maskz_fixupimm_round_ps): Ditto. - (_mm_fixupimm_round_sd): Ditto. - (_mm_maskz_fixupimm_round_sd): Ditto. - (_mm_fixupimm_round_ss): Ditto. - (_mm_maskz_fixupimm_round_ss): Ditto. - (_mm512_fixupimm_pd): Ditto. - (_mm512_maskz_fixupimm_pd): Ditto. - (_mm512_fixupimm_ps): Ditto. - (_mm512_maskz_fixupimm_ps): Ditto. - (_mm_fixupimm_sd): Ditto. - (_mm_maskz_fixupimm_sd): Ditto. - (_mm_fixupimm_ss): Ditto. - (_mm_maskz_fixupimm_ss): Ditto. - (_mm512_mask_fixupimm_round_pd): Update builtin. - (_mm512_mask_fixupimm_round_ps): Ditto. - (_mm_mask_fixupimm_round_sd): Ditto. - (_mm_mask_fixupimm_round_ss): Ditto. - (_mm512_mask_fixupimm_pd): Ditto. - (_mm512_mask_fixupimm_ps): Ditto. - (_mm_mask_fixupimm_sd): Ditto. - (_mm_mask_fixupimm_ss): Ditto. - * config/i386/avx512vlintrin.h: - (_mm256_fixupimm_pd): Update parameters and builtin. - (_mm256_maskz_fixupimm_pd): Ditto. - (_mm256_fixupimm_ps): Ditto. - (_mm256_maskz_fixupimm_ps): Ditto. - (_mm_fixupimm_pd): Ditto. - (_mm_maskz_fixupimm_pd): Ditto. - (_mm_fixupimm_ps): Ditto. - (_mm_maskz_fixupimm_ps): Ditto. - (_mm256_mask_fixupimm_pd): Update builtin. - (_mm256_mask_fixupimm_ps): Ditto. - (_mm_mask_fixupimm_pd): Ditto. - (_mm_mask_fixupimm_ps): Ditto. - * config/i386/i386-builtin-types.def: Add new types and remove useless ones. - * config/i386/i386-builtin.def: Update builtin definitions. - * config/i386/i386.c: Handle new builtin types and remove useless ones. - * config/i386/sse.md: Update VFIXUPIMM* patterns. - (_fixupimm_maskz): Update. - (_fixupimm): Update. - (_fixupimm_mask): Update. - (avx512f_sfixupimm_maskz): Update. - (avx512f_sfixupimm): Update. - (avx512f_sfixupimm_mask): Update. - * config/i386/subst.md: - (round_saeonly_sd_mask_operand4): Add new subst_attr. - (round_saeonly_sd_mask_op4): Ditto. - (round_saeonly_expand_operand5): Ditto. - (round_saeonly_expand): Update. - -2018-11-05 Max Filippov - - * config/xtensa/uclinux.h (XTENSA_ALWAYS_PIC): Change to 0. - -2018-11-05 Segher Boessenkool - - PR rtl-optimization/87871 - * combine.c (make_more_copies): Skip if dest is frame_pointer_rtx. - -2018-11-05 Paul Koning - - * doc/sourcebuild.texi (target attributes): Document new "inf" - effective target keyword. - -2018-11-05 Robin Dapp - - * config/s390/s390.c (s390_register_move_cost): Increase costs for - moves involving the CC reg. - -2018-11-05 Richard Biener - - PR tree-optimization/87873 - * tree-ssa-loop-manip.h (split_loop_exit_edge): Add copy_constants_p - argument. - * tree-ssa-loop-manip.c (split_loop_exit_edge): Likewise. - * tree-vect-loop.c (vect_transform_loop): When splitting the - loop exit also create forwarder PHIs for constants. - * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges): - Handle constant to_arg, add extra checking we match up the correct - PHIs. - -2018-11-05 Robin Dapp - - * config/s390/s390.md: QImode and HImode for load on condition. - -2018-11-05 Robin Dapp - - * config/s390/predicates.md: Fix typo. - * config/s390/s390.md: Allow immediates for load on condition. - -2018-11-05 Martin Liska - - * alloc-pool.h (struct pool_usage): Use SIZE_AMOUNT. - * bitmap.h (struct bitmap_usage): Likewise. - * ggc-common.c (SCALE): Remove. - (LABEL): Likewise. - (struct ggc_usage): Use SIZE_AMOUNT. And update - compare method. - * ggc-page.c (SCALE): Remove. - (STAT_LABEL): Remove. - (ggc_print_statistics): Use SIZE_AMOUNT. - * gimple.h (SCALE): Remove. - (LABEL): Likewise. - * input.c (ONE_K): Remove. - (ONE_M): Likewise. - (SCALE): Likewise. - (STAT_LABEL): Likewise. - (FORMAT_AMOUNT): Likewise. - (dump_line_table_statistics): Use SIZE_AMOUNT. - * mem-stats.h (struct mem_usage): Likewise. - * rtl.c (dump_rtx_statistics): Likewise. - (rtx_alloc_counts): Change type to size_t. - (rtx_alloc_sizes): Likewise. - (rtx_count_cmp): New. - (dump_rtx_statistics): Sort first based on counts. - * tree.c (tree_nodes_cmp): New. - (tree_codes_cmp): New. - (dump_tree_statistics): Sort first based on counts. - * system.h (ONE_K): New. - (ONE_M): Likewise. - (SIZE_SCALE): Likewise. - (SIZE_LABEL): Likewise. - (SIZE_AMOUNT): Likewise. - * tree-cfg.c (dump_cfg_stats): Use SIZE_AMOUNT. - * tree-dfa.c (dump_dfa_stats): Likewise. - * tree-phinodes.c (phinodes_print_statistics): Likewise. - * tree-ssanames.c (ssanames_print_statistics): Likewise. - * tree.c (dump_tree_statistics): Likewise. - * vec.c (struct vec_usage): Likewise. - * trans-mem.c (tm_mangle): Enlarge buffer in order to not - trigger a -Werror=format-overflow with - --enable-gather-detailed-stats. - -2018-11-05 Martin Liska - - * mem-stats.h (mem_alloc_description::release_instance_overhead): - Return T *. - * vec.c (struct vec_usage): Register m_element_size. - (vec_prefix::register_overhead): New arguments: elements and - element_size. - (vec_prefix::release_overhead): Subtract elements. - * vec.h (struct vec_prefix): Change signature. - (va_heap::reserve): Pass proper arguments. - (va_heap::release): Likewise. - -2018-11-05 Martin Liska - - * mem-stats.h (mem_alloc_description::get_list): Fix GNU coding - style. - * vec.c: Likewise. - -2018-11-05 Richard Biener - - * tree-scalar-evolution.h (final_value_replacement_loop): Update - prototype. - * tree-scalar-evolution.c (final_value_replacement_loop): Return - whether anything was done. - (scev_const_prop): Remove constant propagation part, fold - remains into ... - * tree-ssa-loop.c (pass_scev_cprop::execute): ... here. - (pass_data_scev_cprop): TODO_cleanup_cfg is now done - conditionally. - -2018-11-05 Jakub Jelinek - - PR tree-optimization/87859 - * gimple-ssa-store-merging.c (struct merged_store_group): Add - only_constants and first_nonmergeable_order members. - (merged_store_group::merged_store_group): Initialize them. - (merged_store_group::do_merge): Clear only_constants member if - adding something other than INTEGER_CST store. - (imm_store_chain_info::coalesce_immediate_stores): Don't merge - stores with order >= first_nonmergeable_order. Use - merged_store->only_constants instead of always recomputing it. - Set merged_store->first_nonmergeable_order if we've skipped any - stores. Attempt to merge overlapping INTEGER_CST stores that - we would otherwise skip. - - PR sanitizer/87837 - * match.pd (X + Y < X): Don't optimize if TYPE_OVERFLOW_SANITIZED. - -2018-11-05 Xuepeng Guo - - PR target/87853 - * config/i386/emmintrin.h (__v16qs): New to cope with option - -funsigned-char. - (_mm_cmpeq_epi8): Replace __v16qi with __v16qs. - (_mm_cmplt_epi8): Likewise. - (_mm_cmpgt_epi8): Likewise. - -2018-11-05 Richard Biener - - PR rtl-optimization/87852 - * fwprop.c (use_killed_between): Only consider single-defs of the - use whose definition statement dominates the use. - -2018-11-05 Martin Liska - - PR web/87829 - * doc/invoke.texi: Remove options that are - not disabled with -Os. - -2018-11-05 Martin Liska - - PR c/87811 - * doc/extend.texi: Update constrain about the last argument - of __builtin_expect_with_probability. - -2018-11-05 Martin Liska - - PR c/87811 - * predict.c (expr_expected_value_1): Verify - that last argument is a real constants and emit - error. - -2018-11-05 Martin Liska - - PR gcov-profile/77698 - * ipa-profile.c (ipa_profile): Adjust hotness threshold - only in LTO mode. - -2018-11-04 Bernd Edlinger - - PR tree-optimization/86572 - * builtins.c (c_strlen): Handle negative offsets in a safe way. - -2018-11-04 Bernd Edlinger - - PR tree-optimization/87672 - * gimple-fold.c (gimple_fold_builtin_stxcpy_chk): Gimplify. - * tree-ssa-strlen.c (handle_builtin_strcat): Adjust object size. - -2018-11-04 Uros Bizjak - - PR middle-end/58372 - * cfgexpand.c (pass_expand::execute): Move the call to - finish_eh_generation in front of the call to expand_stack_alignment. - -2018-11-04 Venkataramanan Kumar - - * common/config/i386/i386-common.c (processor_alias_table): Add - znver2 entry. - * config.gcc (i[34567]86-*-linux* | ...): Add znver2. - (case ${target}): Add znver2. - * config/i386/driver-i386.c: (host_detect_local_cpu): Let - -march=native recognize znver2 processors. - * config/i386/i386-c.c (ix86_target_macros_internal): Add znver2. - * config/i386/i386.c (m_znver2): New definition. - (m_ZNVER): New definition. - (m_AMD_MULTIPLE): Includes m_znver2. - (processor_cost_table): Add znver2 entry. - (processor_target_table): Add znver2 entry. - (get_builtin_code_for_version): Set priority for - PROCESSOR_ZNVER2. - (processor_model): Add M_AMDFAM17H_ZNVER2. - (arch_names_table): Ditto. - (ix86_reassociation_width): Include znver2. - * config/i386/i386.h (TARGET_znver2): New definition. - (struct ix86_size_cost): Add TARGET_ZNVER2. - (enum processor_type): Add PROCESSOR_ZNVER2. - * config/i386/i386.md (define_attr "cpu"): Add znver2. - * config/i386/x86-tune-costs.h: (processor_costs) Add znver2 costs. - * config/i386/x86-tune-sched.c: (ix86_issue_rate): Add znver2. - (ix86_adjust_cost): Add znver2. - * config/i386/x86-tune.def: Replace m_ZNVER1 by m_ZNVER. - * gcc/doc/extend.texi: Add details about znver2. - * gcc/doc/invoke.texi: Add details about znver2. - -2018-11-03 Sandra Loosemore - - PR target/87079 - - * config/nios2/nios2.c (nios2_rtx_costs): Recognize sidi3 - pattern. - -2018-11-02 Aaron Sawdey - - * config/rs6000/rs6000-string.c (expand_strncmp_gpr_sequence): Pay - attention to TARGET_AVOID_XFORM and BYTES_BIG_ENDIAN. - -2018-11-02 Richard Earnshaw - - * config/aarch64/aarch64.c ((aarch64_override_options): Disable - shrink-wrapping when -mtrack-speculation. - -2018-11-02 Richard Biener - - * tree-ssa-coalesce.c (struct coalesce_list): Add obstack member. - (pop_cost_one_pair): Do not free pair. - (pop_best_coalesce): Likewise. - (create_coalesce_list): Initialize obstack. - (delete_coalesce_list): Free obstack. - (find_coalesce_pair): Obstack-allocate coalesce pairs. - (add_cost_one_coalesce): Likewise. - (struct live_track): Remove bitmap pointer indirections. - (new_live_track): Adjust. - (delete_live_track): Likewise. - (live_track_remove_partition): Likewise. - (live_track_add_partition): Likewise. - (live_track_live_p): Likewise. - (live_track_process_def): Likewise. - (live_track_clear_base_vars): Likewise. - -2018-11-02 Rainer Orth - - * configure.ac (gcc_cv_as_sparc_register_op): Remove. - * configure: Regenerate. - * config.in: Regenerate. - * config/sparc/sparc.c (sparc_output_scratch_registers): Remove - HAVE_AS_REGISTER_PSEUDO_OP guard. - * config/sparc/sparc.h (ASM_ARCH64_SPEC): Remove - !HAVE_AS_REGISTER_PSEUDO_OP support. - (ASM_DECLARE_REGISTER_GLOBAL): Remove HAVE_AS_REGISTER_PSEUDO_OP - guard. - -2018-11-02 Richard Biener - - * dwarf2out.c (build_abbrev_table): Guard lookup_external_ref call - with is_type_die. - -2018-11-02 Richard Biener - - PR tree-optimization/87776 - * tree-ssa-sccvn.c (do_rpo_vn): Do not mark backedges - executable when iterating but running into rpo-vn-max-loop-depth - and not eliding the iteration. - -2018-11-30 Jan Hubicka - - * tree.c (free_lang_data_in_decl): Free TREE_TYPE and alignment of - TYPE_DECL. - -2018-11-01 Aaron Sawdey - - * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert): Remove - prototype. - * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem): - Combine with rs6000_address_for_fpconvert. - (rs6000_address_for_fpconvert): Combine with - rs6000_force_indexed_or_indirect_mem. - (rs6000_expand_vector_init): Change function call from - rs6000_address_for_fpconvert to rs6000_force_indexed_or_indirect_mem. - * config/rs6000/rs6000.md (floatsi2_lfiwax): Change call from - rs6000_address_for_fpconvert to rs6000_force_indexed_or_indirect_mem. - (floatsi2_lfiwax_mem): Ditto. - (floatunssi2_lfiwzx): Ditto. - (floatunssi2_lfiwzx_mem): Ditto. - (float2): Ditto. - (floatuns2): Ditto. - (fix_truncsi2_stfiwx): Ditto. - (fixuns_truncsi2_stfiwx): Ditto. - (float_si2_hw): Ditto. - (floatuns_si2_hw): Ditto. - * config/rs6000/vsx.md (*vsx_extract_si): Ditto. - (vsx_splat_): Ditto. - -2018-11-01 Joseph Myers - - * configure.ac (gcc_cv_as_ia64_ltoffx_ldxmov_relocs): Add newline - at end of assembler input text. - * configure: Regenerate. - -2018-11-01 Jakub Jelinek - - PR tree-optimization/87826 - * gimple-ssa-store-merging.c (do_shift_rotate): Punt if count is - negative or larger or equal to type's precision. - -2018-10-31 Alexandre Oliva - - * opts.c (default_options_table): Do not enable - OPT_fdelayed_branch at -Og. - * doc/invoke.texi (-fdelayed-branch): Document it. - -2018-10-31 Richard Henderson - - * optabs-libfuncs.c (build_libfunc_function_visibility): - New, split out from... - (build_libfunc_function): ... here. - (init_one_libfunc_visibility): New, split out from ... - (init_one_libfunc): ... here. - - * config/aarch64/atomics.md (aarch64_atomic__lse): - scratch register need not be early-clobber. Document the reason - why we cannot use ST. - -2018-10-31 Joseph Myers - - PR bootstrap/82856 - * configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE. Use single - line for second argument of AC_DEFINE_UNQUOTED. - * doc/install.texi (Tools/packages necessary for modifying GCC): - Update to autoconf 2.69 and automake 1.15.1. - * aclocal.m4, config.in, configure: Regenerate. - -2018-10-31 Pat Haugen - - * tree-ssa-loop-ivcanon.c (try_peel_loop): Fix typo and remove dead - initialization. - -2018-10-31 Martin Liska - - PR driver/83193 - * common/config/aarch64/aarch64-common.c (aarch64_parse_extension): - Add new argument invalid_extension. - (aarch64_get_all_extension_candidates): New function. - (aarch64_rewrite_selected_cpu): Add NULL to function call. - * config/aarch64/aarch64-protos.h (aarch64_parse_extension): Add - new argument. - (aarch64_get_all_extension_candidates): New function. - * config/aarch64/aarch64.c (aarch64_parse_arch): Add new - argument invalid_extension. - (aarch64_parse_cpu): Likewise. - (aarch64_print_hint_for_extensions): New function. - (aarch64_validate_mcpu): Provide hint about invalid extension. - (aarch64_validate_march): Likewise. - (aarch64_handle_attr_arch): Pass new argument. - (aarch64_handle_attr_cpu): Provide hint about invalid extension. - (aarch64_handle_attr_isa_flags): Likewise. - -2018-10-31 Richard Biener - - PR middle-end/70359 - PR middle-end/86270 - * tree-outof-ssa.c (insert_backedge_copies): Restrict - copy generation to useful cases. Place the copy before - the definition of the backedge value when possible. - -2018-10-31 Claudiu Zissulescu - - * config/arc/arc-arch.h (ARC_TUNE_ARC7XX): New tune value. - * config/arc/arc.c (arc_active_insn): New function. - (check_store_cacheline_hazard): Likewise. - (workaround_arc_anomaly): Use check_store_cacheline_hazard. - (arc_override_options): Disable delay slot scheduler for older - A7. - (arc_store_addr_hazard_p): New implementation, old one renamed to - ... - (arc_store_addr_hazard_internal_p): Renamed. - (arc_reorg): Don't combine into brcc instructions which are part - of hardware hazard solution. - * config/arc/arc.md (attr tune): Consider new arc7xx tune value. - (tune_arc700): Likewise. - * config/arc/arc.opt (arc7xx): New tune value. - * config/arc/arc700.md: Improve A7 scheduler. - -2018-10-31 Claudiu Zissulescu - - * config/arc/arc.c (arc_override_options): Remove - TARGET_COMPACT_CASESI. - * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Update. - (CASE_VECTOR_MODE): Likewise. - (CASE_VECTOR_PC_RELATIVE): Likewise. - (CASE_VECTOR_SHORTEN_MODE): Likewise. - (CASE_VECTOR_SHORTEN_MODE1): Delete. - (ADDR_VEC_ALIGN): Update. - (ASM_OUTPUT_CASE_LABEL): Undefine. - (ASM_OUTPUT_BEFORE_CASE_LABEL): Undefine. - (TARGET_BI_BIH): Define. - (DEFAULT_BRANCH_INDEX): Likewise. - * config/arc/arc.md (casesi): Rework to accept BI/BIH - instructions, remove compact_casesi use case. - (casesi_compact_jump): Remove. - (casesi_dispatch): New pattern. - * config/arc/arc.opt: Add mbranch-index option. Deprecate - compact_casesi option. - * doc/invoke.texi: Document mbranch-index option. - -2018-10-31 Claudiu Zissulescu - - * config/arc/arc.c (arc_get_tp): Remove function. - (arc_emit_call_tls_get_addr): Likewise. - (arc_call_tls_get_addr): New function. - (arc_legitimize_tls_address): Make use of arc_call_tls_get_addr. - * config/arc/arc.md (tls_load_tp_soft): Remove. - (tls_gd_get_addr): Likewise. - -2018-10-31 Claudiu Zissulescu - - * config/arc/arc.md (mulsi3): Remove call to mulsi_600_lib. - (mulsi3_600_lib): Remove pattern. - (umulsi3_highpart_600_lib_le): Likewise. - (umulsi3_highpart): Remove call to umulsi3_highpart_600_lib_le. - (umulsidi3): Remove call to umulsidi3_600_lib. - (umulsidi3_600_lib): Remove pattern. - (peephole2): Remove peephole using the above deprecated patterns. - -2018-10-31 Thomas Preud'homme - - PR target/87374 - * config/arm/arm.c (arm_option_check_internal): Disable the combined - use of -mslow-flash-data and -mword-relocations. - (arm_option_override): Enable -mword-relocations if -fpic or -fPIC. - * config/arm/arm.md (SYMBOL_REF MOVT splitter): Stop checking for - flag_pic. - * doc/invoke.texi (-mword-relocations): Mention conflict with - -mslow-flash-data. - (-mslow-flash-data): Reciprocally. - -2018-10-31 Richard Henderson - - * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Force - 16-byte modes held in GP registers to use an even regno. - - * config/aarch64/aarch64.c (aarch64_emit_bic): Remove. - (aarch64_atomic_ldop_supported_p): Remove. - (aarch64_gen_atomic_ldop): Remove. - * config/aarch64/atomic.md (atomic_): - Fully expand LSE operations here. - (atomic_fetch_): Likewise. - (atomic__fetch): Likewise. - (aarch64_atomic__lse): Drop atomic_op iterator - and use ATOMIC_LDOP instead; use register_operand for the input; - drop the split and emit insns directly. - (aarch64_atomic_fetch__lse): Likewise. - (aarch64_atomic__fetch_lse): Remove. - (@aarch64_atomic_load): Remove. - - * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): Remove. - (aarch64_gen_atomic_ldop): Don't call it. - * config/aarch64/atomics.md (atomic_exchange): - Use aarch64_reg_or_zero. - (aarch64_atomic_exchange): Likewise. - (aarch64_atomic_exchange_lse): Remove split; remove & from - operand 0; use aarch64_reg_or_zero for input; merge ... - (@aarch64_atomic_swp): ... this and remove. - - * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): New. - (aarch64_split_compare_and_swap): Use it. - (aarch64_expand_compare_and_swap): Likewise. Remove convert_modes; - test oldval against the proper predicate. - * config/aarch64/atomics.md (@atomic_compare_and_swap): - Use nonmemory_operand for expected. - (cas_short_expected_pred): New. - (@aarch64_compare_and_swap): Use it; use "rn" not "rI" to match. - (@aarch64_compare_and_swap): Use "rn" not "rI" for expected. - * config/aarch64/predicates.md (aarch64_plushi_immediate): New. - (aarch64_plushi_operand): New. - - * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): - Force oldval into the rval register for TARGET_LSE; emit the compare - during initial expansion so that it may be deleted if unused. - (aarch64_gen_atomic_cas): Remove. - * config/aarch64/atomics.md (@aarch64_compare_and_swap_lse): - Change =&r to +r for operand 0; use match_dup for operand 2; - remove is_weak and mod_f operands as unused. Drop the split - and merge with... - (@aarch64_atomic_cas): ... this pattern's output; remove. - (@aarch64_compare_and_swap_lse): Similarly. - (@aarch64_atomic_cas): Similarly. - -2018-10-31 Richard Biener - - * tree-eh.c (replace_trapping_overflow): Simplify ABS_EXPR case - using ABSU_EXPR. - -2018-10-31 Sameera Deshpande - - * config/aarch64/aarch64-cores.def (saphira): Use saphira pipeline. - * config/aarch64/aarch64.md: Include saphira.md - * config/aarch64/saphira.md: New file for pipeline description. - -2018-10-30 Martin Sebor - - PR middle-end/87041 - * gimple-ssa-sprintf.c (format_directive): Use %G to include - inlining context. - (sprintf_dom_walker::compute_format_length): - Avoid setting POSUNDER4K here. - (get_destination_size): Handle null argument values. - (get_user_idx_format): New function. - (sprintf_dom_walker::handle_gimple_call): Handle all printf-like - functions, including user-defined with attribute format printf. - Use %G to include inlining context. - Set POSUNDER4K here. - -2018-10-30 Jan Hubicka - - * params.def (lto-partitions): Bump from 32 to 128. - -2018-10-30 Jan Hubicka - - * tree.c - (free_lang_data_d, add_tree_to_fld_list, fld_worklist_push): Move - head in file. - (free_lang_data_in_type): Forward declare. - (fld_type_variant_equal_p): New function. - (fld_type_variant): New function - (fld_incomplete_types): New hash. - (fld_incomplete_type_of): New function - (fld_simplfied-type): New function. - (free_lang_data_in_decl): Add fld parameter; simplify type of FIELD_DECL - (free_lang_data): Allocate and free fld_incomplete_type; update call - of free_lang_data_in_decl. - -2018-10-30 Eric Botcazou - - * gcov.c (output_lines): Remove duplicate line. - -2018-10-30 Aaron Sawdey - - * config/rs6000/rs6000.md (bswapdi2): Force address into register - if not in indexed or indirect form. - (bswapdi2_load): Change predicate to indexed_or_indirect_operand. - (bswapdi2_store): Ditto. - * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem): New - helper function. - * config/rs6000/rs6000-protos.h (rs6000_force_indexed_or_indirect_mem): - Prototype for helper function. - -2018-10-30 Martin Sebor - - * doc/extend.texi (optimize): Clarify/expand attribute documentation. - (target, pragma GCC optimize, pragma GCC target): Ditto. - -2018-10-30 Jonathan Wakely - - * doc/extend.texi: Fix prototype and description of - __builtin_expect_with_probability. - -2018-10-30 Michael Ploujnikov - - * cgraph.h (clone_function_name_1): Replaced by new - clone_function_name_numbered that takes name as string; for - privatize_symbol_name_1 use only. - (clone_function_name): Renamed to - clone_function_name_numbered to be explicit about numbering. - (clone_function_name): New two-argument function that does - not number its output. - (clone_function_name): New three-argument function that - takes a number to append to its output. - * cgraphclones.c (duplicate_thunk_for_node): - (clone_function_name_1): Renamed. - (clone_function_name_numbered): Two new functions. - (clone_function_name): Improved documentation. - (cgraph_node::create_virtual_clone): Use clone_function_name_numbered. - * config/rs6000/rs6000.c (make_resolver_func): Ditto. - * final.c (final_scan_insn_1): Use the new clone_function_name - without numbering. - * multiple_target.c (create_dispatcher_calls): Ditto. - (create_target_clone): Ditto. - * omp-expand.c (grid_expand_target_grid_body): Ditto. - * omp-low.c (create_omp_child_function_name): Ditto. - * omp-simd-clone.c (simd_clone_create): Ditto. - * symtab.c (simd_symtab_node::noninterposable_alias): Use the - new clone_function_name without numbering. - -2018-10-30 Richard Earnshaw - - * alloc-pool.h (base_pool_allocator ::initialize): - Assert that the allocation size is not zero. - -2018-10-30 Richard Biener - - PR tree-optimization/87800 - * tree-vect-slp.c (vect_build_slp_tree_2): Reject any - non-induction or reduction PHIs. - -2018-10-30 Sameera Deshpande - - * doc/extend.texi: Fix typo in documentation - of __builtin_expect_with_probability. - -2018-10-29 David Malcolm - - PR c++/87721 - * input.c (get_substring_ranges_for_loc): Detect if - linemap_resolve_location gives us a NULL map, and reject - this case. - -2018-10-29 Iain Buclaw - - * config.gcc (xstormy16-*-elf): Set tm_d_file. - -2018-10-29 David Malcolm - Martin Sebor - Manuel Lopez-Ibanez - - * doc/ux.texi (Quoting): New subsection, adapted from material at - https://gcc.gnu.org/wiki/DiagnosticsGuidelines written by - MartinSebor and ManuelLopezIbanez. - (Fix-it hints): Note that fix-it hints shouldn't be marked for - translation. - -2018-10-29 Kugan Vivekanandarajah - - PR middle-end/87469 - * tree-ssa-loop-niter.c (number_of_iterations_popcount): Fix niter - max value. - -2018-10-29 Paul A. Clarke - - * gcc.target/powerpc/ssse3-check.h: Remove inaccurate comment. - -2018-10-29 Paul Koning - - * doc/rtl.texi (CONST_WIDE_INT_ELT): Give correct macro name. - -2018-10-29 Paul A. Clarke - - * gcc/config/rs6000/mmintrin.h (_mm_packs_pi16, _mm_packs_pi32, - _mm_packs_pu16, _mm_unpackhi_pi8, _mm_unpacklo_pi8, _mm_add_pi8, - _mm_add_pi16, _mm_add_pi32, _mm_sub_pi8, _mm_sub_pi16, _mm_sub_pi32, - _mm_cmpgt_pi8, _mm_cmpeq_pi16, _mm_cmpgt_pi16, _mm_cmpeq_pi32, - _mm_cmpgt_pi32, _mm_adds_pi8, _mm_adds_pi16, _mm_adds_pu8, - _mm_adds_pu16, _mm_subs_pi8, _mm_subs_pi16, _mm_subs_pu8, - _mm_subs_pu16, _mm_madd_pi16, _mm_mulhi_pi16, _mm_mullo_pi16, - _mm_sll_pi16, _mm_sra_pi16, _mm_srl_pi16, _mm_set1_pi16, _mm_set1_pi8): - Change 'vector' to '__vector'. - * gcc/config/rs6000/xmmintrin.h (_mm_cvtps_pi32, _mm_cvttps_pi32, - _mm_cvtps_pi16, _mm_cvtps_pi8, _mm_max_pi16, _mm_max_pu8, _mm_min_pi16, - _mm_min_pu8, _mm_mulhi_pu16, _mm_shuffle_pi16, _mm_avg_pu8, - _mm_avg_pu16): Likewise. And, whitespace corrections. - -2018-10-29 Richard Biener - - PR tree-optimization/87785 - * tree-vect-slp.c (vect_gather_slp_loads): Only gather - internal defs. - -2018-10-29 Olivier Hainque - - * VXWORKS_NET_LIBS_RTP: New macro, network part of VXWORKS_LIBS_RTP. - -2018-10-29 Olivier Hainque - - * config/vxworks.h (VXWORKS_PERSONALITY): New VxWorks - ports configuration macro, defaults to "gnu". - (VXWORKS_OS_CPP_BUILTINS): Use it. Feed TOOL and - TOOL_FAMILY instead of _VX_TOOL/_VXTOOL_FAMILY. - -2018-10-29 Olivier Hainque - - * config/vxworks.h (CLEAR_INSN_CACHE): #undef before #define. - -2018-10-29 Richard Biener - - PR tree-optimization/87790 - * tree-vect-slp.c (vect_mark_slp_stmts): Simplify. - (vect_make_slp_decision): Adjust. - (vect_slp_analyze_bb_1): Likewise. - (vect_detect_hybrid_slp_stmts): Properly union SLP type over - edges. - -2018-10-29 Richard Biener - - PR tree-optimization/87785 - * tree-vect-slp.c (vect_build_slp_tree_2): Remove loads argument - and processing. - (vect_build_slp_tree): Likewise. - (vect_gather_slp_loads): New function. - (vect_analyze_slp_instance): Gather loads separately from the - SLP tree build. - -2018-10-29 Martin Liska - - * Makefile.in: Make dependency to json.o. - * doc/gcov.texi: Document new JSON format, remove - old intermediate format documentation. - * gcov.c (struct function_info): Come up with m_name and - m_demangled_name. - (function_info::function_info): Initialize it. - (function_info::~function_info): Release it. - (main): Rename flag_intermediate_format to flag_json_format. - (print_usage): Describe --json-format. - (process_args): Set flag_json_format. - (output_intermediate_line): Remove. - (output_intermediate_json_line): Likewise. - (get_gcov_intermediate_filename): Return new extension - ".gcov.json.gz". - (output_intermediate_file): Implement JSON emission. - (output_json_intermediate_file): Implement JSON emission. - (generate_results): Use ::get_name for function name. - Handle JSON output file. - (read_graph_file): Use ::get_name instead of cplus_demangle. - (read_count_file): Likewise. - (solve_flow_graph): Likewise. - (add_line_counts): Likewise. - (accumulate_line_counts): Use new flag_json_format. - (output_function_details): Use ::get_name instead of cplus_demangle. - (output_lines): Likewise. - * json.cc (test_writing_literals): Add new tests. - * json.h (class literal): Add new boolean constructor. - -2018-10-29 Segher Boessenkool - - PR rtl-optimization/87701 - PR rtl-optimization/87780 - * combine.c (make_more_copies): Rewrite. - -2018-10-28 Kugan Vivekanandarajah - - * doc/generic.texi (ABSU_EXPR): Document. - * match.pd (absu(x)*absu(x) -> x*x): Handle. - (absu(absu(X)) -> absu(X)): Likewise. - (absu(-X) -> absu(X)): Likewise. - (absu(X) where X is nonnegative -> X): Likewise. - -2018-10-28 Iain Buclaw - - * Makefile.in (tm_d_file_list, tm_d_include_list): New variables. - (TM_D_H, D_TARGET_DEF, D_TARGET_H, D_TARGET_OBJS): New variables. - (tm_d.h, cs-tm_d.h, default-d.o): New rules. - (d/d-target-hooks-def.h, s-d-target-hooks-def-h): New rules. - (s-tm-texi): Also check timestamp on d-target.def. - (generated_files): Add TM_D_H and d-target-hooks-def.h. - (build/genhooks.o): Also depend on D_TARGET_DEF. - * config.gcc (tm_d_file, d_target_objs, target_has_targetdm): New - variables. - * config/aarch64/aarch64-d.c: New file. - * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_D_CRITSEC_SIZE): - Define. - * config/aarch64/aarch64-protos.h (aarch64_d_target_versions): New - prototype. - * config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Define. - * config/aarch64/t-aarch64 (aarch64-d.o): New rule. - * config/arm/arm-d.c: New file. - * config/arm/arm-protos.h (arm_d_target_versions): New prototype. - * config/arm/arm.h (TARGET_D_CPU_VERSIONS): Define. - * config/arm/linux-eabi.h (EXTRA_TARGET_D_OS_VERSIONS): Define. - * config/arm/t-arm (arm-d.o): New rule. - * config/default-d.c: New file. - * config/glibc-d.c: New file. - * config/gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. - * config/i386/i386-d.c: New file. - * config/i386/i386-protos.h (ix86_d_target_versions): New prototype. - * config/i386/i386.h (TARGET_D_CPU_VERSIONS): Define. - * config/i386/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Define. - (GNU_USER_TARGET_D_CRITSEC_SIZE): Define. - * config/i386/t-i386 (i386-d.o): New rule. - * config/kfreebsd-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. - * config/kopensolaris-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. - * config/linux-android.h (ANDROID_TARGET_D_OS_VERSIONS): Define. - * config/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. - * config/mips/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Define. - * config/mips/mips-d.c: New file. - * config/mips/mips-protos.h (mips_d_target_versions): New prototype. - * config/mips/mips.h (TARGET_D_CPU_VERSIONS): Define. - * config/mips/t-mips (mips-d.o): New rule. - * config/powerpcspe/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. - * config/powerpcspe/linux64.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. - * config/powerpcspe/powerpcspe-d.c: New file. - * config/powerpcspe/powerpcspe-protos.h (rs6000_d_target_versions): - New prototype. - * config/powerpcspe/powerpcspe.c (rs6000_output_function_epilogue): - Support GNU D by using 0 as the language type. - * config/powerpcspe/powerpcspe.h (TARGET_D_CPU_VERSIONS): Define. - * config/powerpcspe/t-powerpcspe (powerpcspe-d.o): New rule. - * config/riscv/riscv-d.c: New file. - * config/riscv/riscv-protos.h (riscv_d_target_versions): New - prototype. - * config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Define. - * config/riscv/t-riscv (riscv-d.o): New rule. - * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. - * config/rs6000/linux64.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. - * config/rs6000/rs6000-d.c: New file. - * config/rs6000/rs6000-protos.h (rs6000_d_target_versions): New - prototype. - * config/rs6000/rs6000.c (rs6000_output_function_epilogue): - Support GNU D by using 0 as the language type. - * config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS): Define. - * config/rs6000/t-rs6000 (rs6000-d.o): New rule. - * config/s390/s390-d.c: New file. - * config/s390/s390-protos.h (s390_d_target_versions): New prototype. - * config/s390/s390.h (TARGET_D_CPU_VERSIONS): Define. - * config/s390/t-s390 (s390-d.o): New rule. - * config/sparc/sparc-d.c: New file. - * config/sparc/sparc-protos.h (sparc_d_target_versions): New - prototype. - * config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Define. - * config/sparc/t-sparc (sparc-d.o): New rule. - * config/t-glibc (glibc-d.o): New rule. - * configure: Regenerated. - * configure.ac (tm_d_file): New variable. - (tm_d_file_list, tm_d_include_list, d_target_objs): Add substitutes. - * doc/contrib.texi (Contributors): Add self for the D frontend. - * doc/frontends.texi (G++ and GCC): Mention D as a supported language. - * doc/install.texi (Configuration): Mention libphobos as an option for - --enable-shared. Mention d as an option for --enable-languages. - (Testing): Mention check-d as a target. - * doc/invoke.texi (Overall Options): Mention .d, .dd, and .di as file - name suffixes. Mention d as a -x option. - * doc/sourcebuild.texi (Top Level): Mention libphobos. - * doc/standards.texi (Standards): Add section on D language. - * doc/tm.texi: Regenerated. - * doc/tm.texi.in: Add @node for D language and ABI, and @hook for - TARGET_CPU_VERSIONS, TARGET_D_OS_VERSIONS, and TARGET_D_CRITSEC_SIZE. - * dwarf2out.c (is_dlang): New function. - (gen_compile_unit_die): Use DW_LANG_D for D. - (declare_in_namespace): Return module die for D, instead of adding - extra declarations into the namespace. - (gen_namespace_die): Generate DW_TAG_module for D. - (gen_decl_die): Handle CONST_DECLSs for D. - (dwarf2out_decl): Likewise. - (prune_unused_types_walk_local_classes): Handle DW_tag_interface_type. - (prune_unused_types_walk): Handle DW_tag_interface_type same as other - kinds of aggregates. - * gcc.c (default_compilers): Add entries for .d, .dd and .di. - * genhooks.c: Include d/d-target.def. - -2018-10-28 Iain Sandoe - - PR target/85669 - * config/rs6000/darwin.h (STACK_BOUNDARY): New. - (RS6000_STARTING_FRAME_OFFSET): Adjust to preserve 16byte alignment. - (STACK_DYNAMIC_OFFSET): Likewise. - -2018-10-27 Sandra Loosemore - - PR target/80024 - * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Fix - error message. - -2018-10-26 Tulio Magno Quites Machado Filho - - * doc/extend.texi (PowerPC builtins): Fix __builtin_unpack_ibm128 - return type and other typos. - -2018-10-26 Aaron Sawdey - - * config/rs6000/rs6000-string.c (expand_strncmp_gpr_sequence): Change to - a shorter sequence with fewer branches. - (emit_final_str_compare_gpr): Ditto. - -2018-10-26 Paul A. Clarke - - * config/rs6000/tmmintrin.h: New file. - * config.gcc (powerpc*-*-*): Add tmmintrin.h to extra_headers. - -2018-10-26 Paul A. Clarke - - * config/rs6000/mmintrin.h: Enable 32bit compilation. - * config/rs6000/xmmintrin.h: Likewise. - -2018-10-26 Paul A. Clarke - - * config/rs6000/xmmintrin.h (_mm_extract_pi16): Fix for big-endian. - -2018-10-26 Richard Biener - - * tree-vect-slp.c (vect_mark_slp_stmts): Add visited hash_set - and wrapper. - (vect_mark_slp_stmts_relevant): Likewise. - (vect_detect_hybrid_slp_stmts): Likewise. - (vect_bb_slp_scalar_cost): Likewise. - (vect_remove_slp_scalar_calls): Likewise. - -2018-10-26 Jan Hubicka - - * ipa-devirt.c (odr_subtypes_equivalent_p): Fix recursion. - (warn_types_mismatch): Fix walk of DECL_NAME. - (odr_types_equivalent_p): Fix overactive assert. - -2018-10-26 Richard Biener - - PR tree-optimization/87105 - * tree-vectorizer.h (_slp_tree::refcnt): New member. - * tree-vect-slp.c (vect_free_slp_tree): Decrement and honor - refcnt. - (vect_create_new_slp_node): Initialize refcnt to one. - (bst_traits): Move. - (scalar_stmts_set_t, bst_fail): Remove. - (vect_build_slp_tree_2): Add bst_map argument and adjust calls. - (vect_build_slp_tree): Add bst_map argument and lookup - already created SLP nodes. - (vect_print_slp_tree): Handle a SLP graph, print SLP node - addresses. - (vect_slp_rearrange_stmts): Handle a SLP graph. - (vect_analyze_slp_instance): Adjust and free SLP nodes from - the CSE map. Fix indenting. - (vect_schedule_slp_instance): Add short-cut. - -2018-10-26 Martin Liska - - PR testsuite/86158 - * ipa-prop.c (struct ipa_vr_ggc_hash_traits): Hash with - addr_expr and not with pointers. - -2018-10-26 Jan Hubicka - - * tree.c (free_lang_data_in_type): Only check main variants. - * ipa-devirt.c (warn_odr): Make static. - (types_same_for_odr): Drop strict variant. - (types_odr_comparable): Likewise. - (odr_or_derived_type_p): Look for main variants. - (odr_name_hasher::equal): Cleanup comment. - (odr_subtypes_equivalent): Add warn and warned arguments; check main - variants. - (type_variants_equivalent_p): break out from ... - (odr_types_equivalent): ... here; go for main variants where needed. - (warn_odr): ... here; turn static. - (warn_types_mismatch): Compare mangled names of main variants. - * ipa-utils.h (types_odr_comparable): Drop strict parameter. - (type_with_linkage_p): Sanity check that we look at main variant. - * lto.c (lto_read_decls): Only consider main variant to be ODR type. - * tree.h (types_same_for_odr): Drop strict argument. - -2018-10-26 Richard Biener - - PR tree-optimization/87746 - * tree-vect-data-refs.c (vect_update_misalignment_for_peel): - Simplify and fix WRT strided store groups with size not - equal to step in element count. - (vect_analyze_group_access_1): Dump the whole group. - -2018-10-25 Carl Love - - * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_VSCEDPGT, - P9V_BUILTIN_VEC_VSCEDPLT, P9V_BUILTIN_VEC_VSCEDPEQ, - P9V_BUILTIN_VEC_VSCEDPUO): Rename base overloaded name. Add quad - precicion entry for each overloaded builtin. - * config/rs6000/rs6000-builtin.def (VSCEDPGT, VSCEDPLT, VSCEDPEQ, - VSCEDPUO): Rename overloaded name. - (VSCEDPGT, VSCEQPGT, VSCEDPLT, VSCEQPLT, VSCEDPEQ, VSCEQPEQ, - VSCEDPUO, VSCEQPUO): Add defitions for overloaded builtins. - * config/rs6000/vsx.md (xscmpexpqp__): Add - define_expand for xscmpexqp instruction. - (*xscmpexpqp): Add define_insn for the xscmpexqp instruction. - -2018-10-25 Bill Schmidt - Jinsong Ji - - * config/rs6000/emmintrin.h (_mm_slli_epi16): Replace deprecated - function with vec_sl. - (_mm_slli_epi32): Likewise. - (_mm_slli_epi64): Likewise. - (_mm_srai_epi16): Replace deprecated function with vec_sra. - (_mm_srai_epi32): Likewise. - (_mm_srli_epi16): Replace deprecated function with vec_sr. - (_mm_srli_epi32): Likewise. - (_mm_srli_epi64): Likewise. - (_mm_sll_epi16): Replace deprecated function with vec_sl. - (_mm_sll_epi32): Likewise. - (_mm_sll_epi64): Likewise. - (_mm_sra_epi16): Replace deprecated function with vec_sra. - (_mm_sra_epi32): Likewise. - (_mm_srl_epi16): Replace deprecated function with vec_sr. - (_mm_srl_epi32): Likewise. - (_mm_srl_epi64): Likewise. - -2018-10-25 Bill Schmidt - Jinsong Ji - - * gcc/config/rs6000/emmintrin.h (_mm_sll_epi16): Replace - comparison operators with vec_cmp* for compatibility due to - unfortunate history; clean up formatting and use types more - appropriately. - (_mm_sll_epi32): Likewise. - (_mm_sll_epi64): Likewise. - (_mm_srl_epi16): Likewise. - (_mm_srl_epi32): Likewise. - (_mm_srl_epi64): Likewise. - -2018-10-25 Bill Schmidt - Jinsong Ji - - * config/rs6000/emmintrin.h (_mm_sll_epi64): Remove wrong cast. - * config/rs6000/xmmintrin.h (_mm_min_ps): Change m's type to - __vector __bool int. Use vec_cmpgt in preference to deprecated - function vec_vcmpgtfp. - (_mm_max_ps): Likewise. - -2018-10-25 Jeff Law - - * config/rl78/rl78.c (insn_ok_now): Always re-recognize the insn - if returning false. - -2018-10-25 Martin Sebor - - * doc/extend.texi (aligned): Expand attribute description. - (Alignment): Rename section. Discuss function arguments. - -2018-10-25 Jan Hubicka - - * ipa-devirt.c (main_odr_variant): Remove. - (hash_odr_name, types_same_for_odr, types_odr_comparable, - odr_name_hasher::equal, odr_subtypes_equivalent_p): - Drop use of main_odr_variant. - (add_type_duplicate): Silence confused warnings on integer types. - (get_odr_type): Always look for main variant. - (register_odr_type): Simplify. - -2018-10-25 Richard Biener - - * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): - Initialize ng to silence error with release checking bootstrap. - -2018-10-25 Richard Biener - - * tree-if-conv.c: Include tree-ssa-sccvn.h. - (tree_if_conversion): Run CSE on the if-converted loop body. - -2018-10-25 Ilya Leoshkevich - - * config/s390/constraints.md (ZL): New constraint. - * config/s390/s390.c (legitimate_pic_operand_p): Accept LARL - operands. - * config/s390/s390.md (movdi_larl): Remove. - (movdi_64): Add the LARL alternative. - -2018-10-25 Ilya Leoshkevich - - PR bootstrap/87747 - * rtl.c (RTX_CODE_HWINT_P_1): New helper macro. - (RTX_CODE_HWINT_P): New macro. - (rtx_code_size): Use RTX_CODE_HWINT_P (). - -2018-10-25 Jan Hubicka - - * ipa-devirt.c (odr_types_equivalent_p): Do not ICE if one of types - is anonymous. - -2018-10-25 Richard Biener - - PR tree-optimization/87665 - PR tree-optimization/87745 - * tree-vectorizer.h (get_earlier_stmt): Remove. - (get_later_stmt): Pick up UID from the original non-pattern stmt. - -2018-10-25 Sam Tebbs - - * options.texi (Deprecated): Move list to Var section. - -2018-10-24 Bill Schmidt - Jinsong Ji - - * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Change deprecated - __vector long to __vector long long. - (_mm_cvtpd_ps): Likewise. - (_mm_cvttpd_epi32): Likewise. - (_mm_cvtpi32_pd): Likewise. - (_mm_unpackhi_epi64): Likewise. - (_mm_unpacklo_epi64): Likewise. - -2018-10-24 Segher Boessenkool - - PR rtl-optimization/87720 - * combine.c (make_more_copies): Skip if the dest is pc_rtx. - -2018-10-24 Alexandre Oliva - - * gimple-ssa-isolate-paths.c - (find_implicit_erroneous_behavior): Do not change code if the - pass is running for warnings only. - (find_explicit_erroneous_behavior): Likewise. - -2018-10-24 Michael Meissner - - * config/rs6000/rs6000.c (TARGET_MANGLE_DECL_ASSEMBLER_NAME): - Define as rs6000_mangle_decl_assembler_name. - (rs6000_mangle_decl_assembler_name): If the user switched from IBM - long double to IEEE long double, switch the names of the long - double built-in functions to be f128 instead of l. - -2018-10-24 Martin Sebor - - * doc/extend.texi (nonnull): List no-argument form. Reference - -fno-delete-null-pointer-checks and -fisolate-erroneous-paths-attribute. - -2018-10-24 Richard Biener - - * tree-ssa-sccvn.c (do_rpo_vn): Free rpo_state. - -2018-10-24 Martin Liska - - PR tree-optimization/84436 - * tree-switch-conversion.c (switch_conversion::contains_same_values_p): - Remove. - (switch_conversion::contains_linear_function_p): New. - (switch_conversion::build_one_array): Support linear - transformation on input. - * tree-switch-conversion.h (struct switch_conversion): Add - contains_linear_function_p declaration. - -2018-10-24 Richard Biener - - * varasm.c (const_hash_1): Return hash of ADDR_EXPR - if its argument is CONSTANT_CLASS_P. - -2018-10-11 Jan Hubicka - - * ipa-utils.h (type_with_linkage_p): No longer check for TYPE_STUB_DECL; - it is wrong for forward declarations. - -2018-10-24 Ilya Leoshkevich - - * config/s390/s390.c (s390_check_qrst_address): Add the missing - SYMBOL_REF_P () check. - -2018-10-24 Richard Biener - - PR tree-optimization/87105 - * tree-vect-data-refs.c (vect_analyze_group_access_1): Adjust - dump classification. - (vect_analyze_data_ref_accesses): Handle duplicate loads and - stores by splitting the affected group after the fact. - * tree-vect-slp.c (vect_build_slp_tree_2): Dump when we - fail the SLP build because of size constraints. - -2018-10-24 Rainer Orth - - * configure.ac (gcc_cv_ld_aligned_shf_merge): New test. - * configure: Regenerate. - * config.in: Regenerate. - * varasm.c (mergeable_string_section): Use readonly_data_section - if linker doesn't support SHF_MERGE with alignment > 8. - (mergeable_constant_section): Likewise. - -2018-10-24 Richard Biener - - PR tree-optimization/84013 - * tree-ssa-structalias.c (struct msdi_data): New struct for - marshalling data to walk_stmt_load_store_ops. - (maybe_set_dependence_info): Refactor as callback for - walk_stmt_load_store_ops. - (compute_dependence_clique): Set restrict info on all stmt kinds. - -2018-10-24 Martin Liska - - * cgraph.c (cgraph_node::dump): - Remove reduntant dumps and make tp_first_run dump more compact. - -2018-10-24 Richard Biener - - PR tree-optimization/87665 - * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Adjust - to reflect reality. - -2018-10-12 Jeff Law - - * config/h8300/h8300.c (h8300_expand_prologue): Fix stm generation - for H8/S. - -2018-10-23 Richard Biener - - * tree-vrp.c (add_assert_info): Guard dump_printf with - dump_enabled_p. - * gimple-ssa-evrp-analyze.c - (evrp_range_analyzer::record_ranges_from_incoming_edge): - Use value_range::ignore_equivs_equal_p. - -2018-10-23 Richard Biener - - PR tree-optimization/87105 - PR tree-optimization/87608 - * passes.def (pass_all_early_optimizations): Add early phi-opt - after dce. - * tree-ssa-phiopt.c (value_replacement): Ignore NOPs and predicts in - addition to debug stmts. - (tree_ssa_phiopt_worker): Add early_p argument, do only min/max - and abs replacement early. - * tree-cfg.c (gimple_empty_block_p): Likewise. - -2018-10-23 Richard Earnshaw - - PR target/86383 - * config.gcc (arm*-*-netbsdelf*): Default to StrongARM if no CPU - specified to configure. - (arm*-*-*): Use ARM7TDMI as the target CPU if no default provided. - -2018-10-23 Richard Biener - - PR tree-optimization/87700 - * tree-ssa-copy.c (set_copy_of_val): Fix change detection logic. - -2018-10-23 Jakub Jelinek - - PR target/87674 - * config/i386/avx512vlintrin.h (_mm_mask_mullo_epi32): Change type of - second argument from __mmask16 to __mmask8. - * config/i386/avx512vlbwintrin.h (_mm_mask_packus_epi32, - _mm_mask_packs_epi32): Likewise. - * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i64scatter_ps): - Likewise. - (_mm512_mask_prefetch_i64scatter_pd): Likewise. Formatting fix. - -2018-10-23 Richard Biener - - * tree-vect-stmts.c (vect_analyze_stmt): Fix typo in comment. - -2018-10-23 Richard Biener - - PR tree-optimization/86144 - * tree-vect-stmts.c (vect_analyze_stmt): Prefer -mveclibabi - over simd attribute. - -2018-10-23 Richard Biener - - PR tree-optimization/87693 - * tree-ssa-threadedge.c (thread_around_empty_blocks): Handle - the case we do not find the taken edge. - -2018-10-22 Bill Schmidt - Jinsong Ji - - * config/rs6000/emmintrin.h (_MM_SHUFFLE2): Comment cleanup. - (_mm_store_pd): Use unaligned vector type for pointer cast. - (_mm_maskmoveu_si128): Likewise. - * config/rs6000/xmmintrin.h (__m128_u): New typedef. - (_mm_store_ps): Use unaligned vector type for pointer cast. - -2018-10-22 Paul Koning - - * symtab.c (symtab_node::increase_alignment): Correct max - alignment check. - -2018-10-22 Yury Gribov - - PR tree-optimization/87633 - * match.pd: Do not generate unordered integer comparisons. - -2018-10-22 Segher Boessenkool - - PR rtl-optimization/87600 - * combine.c: Add include of expr.h. - (cant_combine_insn_p): Do not combine moves from any hard non-fixed - register to a pseudo. - (make_more_copies): New function, add a copy to a new pseudo after - the moves from hard registers into pseudos. - (rest_of_handle_combine): Declare rebuild_jump_labels_after_combine - later. Call make_more_copies. - -2018-10-22 Andrew Stubbs - - * lra-constraints.c (process_alt_operands): New local array, - matching_early_clobber. Check matching_early_clobber before - decrementing reject, and set matching_early_clobber after. - -2018-10-22 Segher Boessenkool - - PR target/87598 - * config/rs6000/rs6000.c (print_operand_address): For unexpected RTL - call output_addr_const and hope for the best. - -2018-10-22 Richard Biener - - * gimple-ssa-evrp-analyze.c - (evrp_range_analyzer::record_ranges_from_incoming_edge): Be - smarter about what ranges to use. - * tree-vrp.c (add_assert_info): Dump here. - (register_edge_assert_for_2): Instead of here at multiple but - not all places. - - * gcc.dg/tree-ssa/evrp12.c: New testcase. - * gcc.dg/predict-6.c: Adjust. - * gcc.dg/tree-ssa/vrp33.c: Disable EVRP. - * gcc.dg/tree-ssa/vrp02.c: Likewise. - * gcc.dg/tree-ssa/cunroll-9.c: Likewise. - -2018-10-22 Steven Bosscher - Richard Biener - - * bitmap.h: Update data structure documentation, including a - description of bitmap views as either linked-lists or splay trees. - (struct bitmap_element_def): Update comments for splay tree bitmaps. - (struct bitmap_head_def): Likewise. - (bitmap_list_view, bitmap_tree_view): New prototypes. - (bitmap_initialize_stat): Initialize a bitmap_head's indx and - tree_form fields. - (bmp_iter_set_init): Assert the iterated bitmaps are in list form. - (bmp_iter_and_init, bmp_iter_and_compl_init): Likewise. - * bitmap.c (bitmap_elem_to_freelist): Unregister overhead of a - released bitmap element here. - (bitmap_element_free): Remove. - (bitmap_elt_clear_from): Work on splay tree bitmaps. - (bitmap_list_link_element): Renamed from bitmap_element_link. Move - this function similar ones such that linked-list bitmap implementation - functions are grouped. - (bitmap_list_unlink_element): Renamed from bitmap_element_unlink, - and moved for grouping. - (bitmap_list_insert_element_after): Renamed from - bitmap_elt_insert_after, and moved for grouping. - (bitmap_list_find_element): New function spliced from bitmap_find_bit. - (bitmap_tree_link_left, bitmap_tree_link_right, - bitmap_tree_rotate_left, bitmap_tree_rotate_right, bitmap_tree_splay, - bitmap_tree_link_element, bitmap_tree_unlink_element, - bitmap_tree_find_element): New functions for splay-tree bitmap - implementation. - (bitmap_element_link, bitmap_element_unlink, bitmap_elt_insert_after): - Renamed and moved, see above entries. - (bitmap_tree_listify_from): New function to convert part of a splay - tree bitmap to a linked-list bitmap. - (bitmap_list_view): Convert a splay tree bitmap to linked-list form. - (bitmap_tree_view): Convert a linked-list bitmap to splay tree form. - (bitmap_find_bit): Remove. - (bitmap_clear, bitmap_clear_bit, bitmap_set_bit, - bitmap_single_bit_set_p, bitmap_first_set_bit, bitmap_last_set_bit): - Handle splay tree bitmaps. - (bitmap_copy, bitmap_count_bits, bitmap_and, bitmap_and_into, - bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into, - bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior, bitmap_ior_into, - bitmap_xor, bitmap_xor_into, bitmap_equal_p, bitmap_intersect_p, - bitmap_intersect_compl_p, bitmap_ior_and_compl, - bitmap_ior_and_compl_into, bitmap_set_range, bitmap_clear_range, - bitmap_hash): Reject trying to act on splay tree bitmaps. Make - corresponding changes to use linked-list specific bitmap_element - manipulation functions as applicable for efficiency. - (bitmap_tree_to_vec): New function. - (debug_bitmap_elt_file): New function split out from ... - (debug_bitmap_file): ... here. Handle splay tree bitmaps. - (bitmap_print): Likewise. - - PR tree-optimization/63155 - * tree-ssa-propagate.c (ssa_prop_init): Use tree-view for the - SSA edge worklists. - * tree-ssa-coalesce.c (coalesce_ssa_name): Populate used_in_copies - in tree-view. - -2018-10-22 Martin Liska - - PR tree-optimization/87686 - Revert - 2018-08-29 Martin Liska - - * tree-switch-conversion.c (switch_conversion::expand): - Strenghten assumption about gswitch statements. - -2018-10-22 Martin Liska - - * ipa-icf.c (sem_item::compare_attributes): Remove. - (sem_item::compare_referenced_symbol_properties): Use - attribute_list_equal instead. - (sem_function::equals_wpa): Likewise. - * ipa-icf.h: Remove compare_attributes. - -2018-10-22 Richard Biener - - PR middle-end/87682 - * mem-stats.h (mem_usage::operator==): Fix pasto. - -2018-10-22 Richard Biener - - PR tree-optimization/87640 - * tree-vrp.c (set_value_range_with_overflow): Decompose - incomplete result. - (extract_range_from_binary_expr_1): Adjust. - -2018-10-22 Martin Jambor - - * tree-eh.h (stmt_could_throw_p): Add function parameter. - (stmt_can_throw_external): Likewise. - (stmt_can_throw_internal): Likewise. - * tree-eh.c (lower_eh_constructs_2): Pass cfun to stmt_could_throw_p. - (lower_eh_constructs_2): Likewise. - (stmt_could_throw_p): Add fun parameter, use it instead of cfun. - (stmt_can_throw_external): Likewise. - (stmt_can_throw_internal): Likewise. - (maybe_clean_eh_stmt_fn): Pass cfun to stmt_could_throw_p. - (maybe_clean_or_replace_eh_stmt): Pass cfun to stmt_could_throw_p. - (maybe_duplicate_eh_stmt_fn): Pass new_fun to stmt_could_throw_p. - (maybe_duplicate_eh_stmt): Pass cfun to stmt_could_throw_p. - (pass_lower_eh_dispatch::execute): Pass cfun to - stmt_can_throw_external. - (cleanup_empty_eh): Likewise. - (verify_eh_edges): Pass cfun to stmt_could_throw_p. - * cgraph.c (cgraph_edge::set_call_stmt): Pass a function to - stmt_can_throw_external instead of pushing it to cfun. - (symbol_table::create_edge): Likewise. - * gimple-fold.c (fold_builtin_atomic_compare_exchange): Pass cfun to - stmt_can_throw_internal. - * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Pass cfun - to stmt_could_throw_p. - * gimple-ssa-store-merging.c (handled_load): Pass cfun to - stmt_can_throw_internal. - (pass_store_merging::execute): Likewise. - * gimple-ssa-strength-reduction.c - (find_candidates_dom_walker::before_dom_children): Pass cfun to - stmt_could_throw_p. - * gimplify-me.c (gimple_regimplify_operands): Pass cfun to - stmt_can_throw_internal. - * ipa-pure-const.c (check_call): Pass cfun to stmt_could_throw_p and - to stmt_can_throw_external. - (check_stmt): Pass cfun to stmt_could_throw_p. - (check_stmt): Pass cfun to stmt_can_throw_external. - (pass_nothrow::execute): Likewise. - * trans-mem.c (expand_call_tm): Pass cfun to stmt_can_throw_internal. - * tree-cfg.c (is_ctrl_altering_stmt): Pass cfun to - stmt_can_throw_internal. - (verify_gimple_in_cfg): Pass cfun to stmt_could_throw_p. - (stmt_can_terminate_bb_p): Pass cfun to stmt_can_throw_external. - (gimple_purge_dead_eh_edges): Pass cfun to stmt_can_throw_internal. - * tree-complex.c (expand_complex_libcall): Pass cfun to - stmt_could_throw_p and to stmt_can_throw_internal. - (expand_complex_multiplication): Pass cfun to stmt_can_throw_internal. - * tree-inline.c (copy_edges_for_bb): Likewise. - (maybe_move_debug_stmts_to_successors): Likewise. - * tree-outof-ssa.c (ssa_is_replaceable_p): Pass cfun to - stmt_could_throw_p. - * tree-parloops.c (oacc_entry_exit_ok_1): Likewise. - * tree-sra.c (scan_function): Pass cfun to stmt_can_throw_external. - * tree-ssa-alias.c (stmt_kills_ref_p): Pass cfun to - stmt_can_throw_internal. - * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise. - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Pass cfun to - stmt_could_throw_p. - (mark_aliased_reaching_defs_necessary_1): Pass cfun to - stmt_can_throw_internal. - * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise. - * tree-ssa-loop-im.c (movement_possibility): Pass cfun to - stmt_could_throw_p. - * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Likewise. - (add_autoinc_candidates): Pass cfun to stmt_can_throw_internal. - * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. - (convert_mult_to_fma_1): Likewise. - (convert_to_divmod): Likewise. - * tree-ssa-phiprop.c (propagate_with_phi): Likewise. - * tree-ssa-pre.c (compute_avail): Pass cfun to stmt_could_throw_p. - * tree-ssa-propagate.c - (substitute_and_fold_dom_walker::before_dom_children): Likewise. - * tree-ssa-reassoc.c (suitable_cond_bb): Likewise. - (maybe_optimize_range_tests): Likewise. - (linearize_expr_tree): Likewise. - (reassociate_bb): Likewise. - * tree-ssa-sccvn.c (copy_reference_ops_from_call): Likewise. - * tree-ssa-scopedtables.c (hashable_expr_equal_p): Likewise. - * tree-ssa-strlen.c (adjust_last_stmt): Likewise. - (handle_char_store): Likewise. - * tree-vect-data-refs.c (vect_find_stmt_data_reference): Pass cfun to - stmt_can_throw_internal. - * tree-vect-patterns.c (check_bool_pattern): Pass cfun to - stmt_could_throw_p. - * tree-vect-stmts.c (vect_finish_stmt_generation_1): Likewise. - (vectorizable_call): Pass cfun to stmt_can_throw_internal. - (vectorizable_simd_clone_call): Likewise. - * value-prof.c (gimple_ic): Pass cfun to stmt_could_throw_p. - (gimple_stringop_fixed_value): Likewise. - -2018-10-22 Ilya Leoshkevich - - * config/s390/s390.c (s390_loadrelative_operand_p): Accept - literal pool references. - (s390_check_qrst_address): Adapt to the new behavior of - s390_loadrelative_operand_p (). - -2018-10-22 H.J. Lu - - PR target/72782 - * config/i386/sse.md (*andnot3_bcst): New. - -2018-10-22 H.J. Lu - - PR target/72782 - * config/i386/sse.md (*3_bcst): New. - -2018-10-22 H.J. Lu - - PR target/72782 - * config/i386/sse.md (avx512bcst): Updated for V4SI, V2DI, V8SI, - V4DI, V16SI and V8DI. - (*sub3_bcst): New. - (*add3_bcst): Likewise. - -2018-10-21 Bill Schmidt - Jinsong Ji - - * config/rs6000/emmintrin.h (_mm_movemask_pd): Replace __vector - __m64 with __vector unsigned long long for compatibility. - (_mm_movemask_epi8): Likewise. - * config/rs6000/xmmintrin.h (_mm_cvtps_pi32): Likewise. - (_mm_cvttps_pi32): Likewise. - (_mm_cvtpi32_ps): Likewise. - (_mm_cvtps_pi16): Likewise. - (_mm_loadh_pi): Likewise. - (_mm_storeh_pi): Likewise. - (_mm_movehl_ps): Likewise. - (_mm_movelh_ps): Likewise. - (_mm_loadl_pi): Likewise. - (_mm_storel_pi): Likewise. - (_mm_movemask_ps): Likewise. - (_mm_shuffle_pi16): Likewise. - -2018-10-21 H.J. Lu - - PR target/72782 - * config/i386/avx512fintrin.h (_mm512_fnmsub_round_pd): Use - __builtin_ia32_vfnmsubpd512_mask. - (_mm512_mask_fnmsub_round_pd): Likewise. - (_mm512_fnmsub_pd): Likewise. - (_mm512_mask_fnmsub_pd): Likewise. - (_mm512_maskz_fnmsub_round_pd): Use - __builtin_ia32_vfnmsubpd512_maskz. - (_mm512_maskz_fnmsub_pd): Likewise. - (_mm512_fnmsub_round_ps): Use __builtin_ia32_vfnmsubps512_mask. - (_mm512_mask_fnmsub_round_ps): Likewise. - (_mm512_fnmsub_ps): Likewise. - (_mm512_mask_fnmsub_ps): Likewise. - (_mm512_maskz_fnmsub_round_ps): Use - __builtin_ia32_vfnmsubps512_maskz. - (_mm512_maskz_fnmsub_ps): Likewise. - * config/i386/avx512vlintrin.h (_mm256_mask_fnmsub_pd): Use - __builtin_ia32_vfnmsubpd256_mask. - (_mm256_maskz_fnmsub_pd): Use __builtin_ia32_vfnmsubpd256_maskz. - (_mm_mask_fnmsub_pd): Use __builtin_ia32_vfmaddpd128_mask - (_mm_maskz_fnmsub_pd): Use __builtin_ia32_vfnmsubpd128_maskz. - (_mm256_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_mask. - (_mm256_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_mask. - (_mm256_maskz_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_maskz. - (_mm_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps128_mask. - (_mm_maskz_fnmsub_ps): Use __builtin_ia32_vfnmsubps128_maskz. - * config/i386/fmaintrin.h (_mm_fnmsub_pd): Use - __builtin_ia32_vfnmsubpd. - (_mm256_fnmsub_pd): Use __builtin_ia32_vfnmsubpd256. - (_mm_fnmsub_ps): Use __builtin_ia32_vfnmsubps. - (_mm256_fnmsub_ps): Use __builtin_ia32_vfnmsubps256. - (_mm_fnmsub_sd): Use __builtin_ia32_vfnmsubsd3. - (_mm_fnmsub_ss): Use __builtin_ia32_vfnmsubss3. - * config/i386/i386-builtin.def: Add - __builtin_ia32_vfnmsubpd256_mask, - __builtin_ia32_vfnmsubpd256_maskz, - __builtin_ia32_vfnmsubpd128_mask, - __builtin_ia32_vfnmsubpd128_maskz, - __builtin_ia32_vfnmsubps256_mask, - __builtin_ia32_vfnmsubps256_maskz, - __builtin_ia32_vfnmsubps128_mask, - __builtin_ia32_vfnmsubps128_maskz, - __builtin_ia32_vfnmsubpd512_mask, - __builtin_ia32_vfnmsubpd512_maskz, - __builtin_ia32_vfnmsubps512_mask, - __builtin_ia32_vfnmsubps512_maskz, __builtin_ia32_vfnmsubss3, - __builtin_ia32_vfnmsubsd3, __builtin_ia32_vfnmsubps, - __builtin_ia32_vfnmsubpd, __builtin_ia32_vfnmsubps256 and. - __builtin_ia32_vfnmsubpd256. - * config/i386/sse.md (fma4i_fnmsub_): New. - (_fnmsub__maskz): Likewise. - (*fma_fnmsub__bcst_1): - Likewise. - (*fma_fnmsub__bcst_2): - Likewise. - (*fma_fnmsub__bcst_3): - Likewise. - (fmai_vmfnmsub_): Likewise. - -2018-10-21 H.J. Lu - - PR target/72782 - * config/i386/avx512fintrin.h (_mm512_fnmadd_round_pd): Use - __builtin_ia32_vfnmaddpd512_mask. - (_mm512_mask_fnmadd_round_pd): Likewise. - (_mm512_fnmadd_pd): Likewise. - (_mm512_mask_fnmadd_pd): Likewise. - (_mm512_maskz_fnmadd_round_pd): Use - __builtin_ia32_vfnmaddpd512_maskz. - (_mm512_maskz_fnmadd_pd): Likewise. - (_mm512_fnmadd_round_ps): Use __builtin_ia32_vfnmaddps512_mask. - (_mm512_mask_fnmadd_round_ps): Likewise. - (_mm512_fnmadd_ps): Likewise. - (_mm512_mask_fnmadd_ps): Likewise. - (_mm512_maskz_fnmadd_round_ps): Use - __builtin_ia32_vfnmaddps512_maskz. - (_mm512_maskz_fnmadd_ps): Likewise. - * config/i386/avx512vlintrin.h (_mm256_mask_fnmadd_pd): Use - __builtin_ia32_vfnmaddpd256_mask. - (_mm256_maskz_fnmadd_pd): Use __builtin_ia32_vfnmaddpd256_maskz. - (_mm_mask_fnmadd_pd): Use __builtin_ia32_vfmaddpd128_mask - (_mm_maskz_fnmadd_pd): Use __builtin_ia32_vfnmaddpd128_maskz. - (_mm256_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_mask. - (_mm256_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_mask. - (_mm256_maskz_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_maskz. - (_mm_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps128_mask. - (_mm_maskz_fnmadd_ps): Use __builtin_ia32_vfnmaddps128_maskz. - * config/i386/fmaintrin.h (_mm_fnmadd_pd): Use - __builtin_ia32_vfnmaddpd. - (_mm256_fnmadd_pd): Use __builtin_ia32_vfnmaddpd256. - (_mm_fnmadd_ps): Use __builtin_ia32_vfnmaddps. - (_mm256_fnmadd_ps): Use __builtin_ia32_vfnmaddps256. - (_mm_fnmadd_sd): Use __builtin_ia32_vfnmaddsd3. - (_mm_fnmadd_ss): Use __builtin_ia32_vfnmaddss3. - * config/i386/i386-builtin.def: Add - __builtin_ia32_vfnmaddpd256_mask, - __builtin_ia32_vfnmaddpd256_maskz, - __builtin_ia32_vfnmaddpd128_mask, - __builtin_ia32_vfnmaddpd128_maskz, - __builtin_ia32_vfnmaddps256_mask, - __builtin_ia32_vfnmaddps256_maskz, - __builtin_ia32_vfnmaddps128_mask, - __builtin_ia32_vfnmaddps128_maskz, - __builtin_ia32_vfnmaddpd512_mask, - __builtin_ia32_vfnmaddpd512_maskz, - __builtin_ia32_vfnmaddps512_mask, - __builtin_ia32_vfnmaddps512_maskz, __builtin_ia32_vfnmaddss3, - __builtin_ia32_vfnmaddsd3, __builtin_ia32_vfnmaddps, - __builtin_ia32_vfnmaddpd, __builtin_ia32_vfnmaddps256 and. - __builtin_ia32_vfnmaddpd256. - * config/i386/sse.md (fma4i_fnmadd_): New. - (_fnmadd__maskz): Likewise. - (*fma_fnmadd__bcst_1): - Likewise. - (*fma_fnmadd__bcst_2): - Likewise. - (*fma_fnmadd__bcst_3): - Likewise. - (fmai_vmfnmadd_): Likewise. - -2018-10-21 H.J. Lu - - PR target/72782 - * config/i386/avx512fintrin.h (_mm512_fmsub_round_pd): Use - __builtin_ia32_vfmsubpd512_mask. - (_mm512_mask_fmsub_round_pd): Likewise. - (_mm512_fmsub_pd): Likewise. - (_mm512_mask_fmsub_pd): Likewise. - (_mm512_maskz_fmsub_round_pd): Use - __builtin_ia32_vfmsubpd512_maskz. - (_mm512_maskz_fmsub_pd): Likewise. - (_mm512_fmsub_round_ps): Use __builtin_ia32_vfmsubps512_mask. - (_mm512_mask_fmsub_round_ps): Likewise. - (_mm512_fmsub_ps): Likewise. - (_mm512_mask_fmsub_ps): Likewise. - (_mm512_maskz_fmsub_round_ps): Use - __builtin_ia32_vfmsubps512_maskz. - (_mm512_maskz_fmsub_ps): Likewise. - * config/i386/avx512vlintrin.h (_mm256_mask_fmsub_pd): Use - __builtin_ia32_vfmsubpd256_mask. - (_mm256_maskz_fmsub_pd): Use __builtin_ia32_vfmsubpd256_maskz. - (_mm_mask_fmsub_pd): Use __builtin_ia32_vfmaddpd128_mask - (_mm_maskz_fmsub_pd): Use __builtin_ia32_vfmsubpd128_maskz. - (_mm256_mask_fmsub_ps): Use __builtin_ia32_vfmsubps256_mask. - (_mm256_mask_fmsub_ps): Use __builtin_ia32_vfmsubps256_mask. - (_mm256_maskz_fmsub_ps): Use __builtin_ia32_vfmsubps256_maskz. - (_mm_mask_fmsub_ps): Use __builtin_ia32_vfmsubps128_mask. - (_mm_maskz_fmsub_ps): Use __builtin_ia32_vfmsubps128_maskz. - * config/i386/fmaintrin.h (_mm_fmsub_pd): Use - __builtin_ia32_vfmsubpd. - (_mm256_fmsub_pd): Use __builtin_ia32_vfmsubpd256. - (_mm_fmsub_ps): Use __builtin_ia32_vfmsubps. - (_mm256_fmsub_ps): Use __builtin_ia32_vfmsubps256. - (_mm_fmsub_sd): Use __builtin_ia32_vfmsubsd3. - (_mm_fmsub_ss): Use __builtin_ia32_vfmsubss3. - * config/i386/i386-builtin.def: Add - __builtin_ia32_vfmsubpd256_mask, - __builtin_ia32_vfmsubpd256_maskz, - __builtin_ia32_vfmsubpd128_mask, - __builtin_ia32_vfmsubpd128_maskz, - __builtin_ia32_vfmsubps256_mask, - __builtin_ia32_vfmsubps256_maskz, - __builtin_ia32_vfmsubps128_mask, - __builtin_ia32_vfmsubps128_maskz, - __builtin_ia32_vfmsubpd512_mask, - __builtin_ia32_vfmsubpd512_maskz, - __builtin_ia32_vfmsubps512_mask, - __builtin_ia32_vfmsubps512_maskz, __builtin_ia32_vfmsubss3, - __builtin_ia32_vfmsubsd3, __builtin_ia32_vfmsubps, - __builtin_ia32_vfmsubpd, __builtin_ia32_vfmsubps256 and. - __builtin_ia32_vfmsubpd256. - * config/i386/sse.md (fma4i_fmsub_): New. - (_fmsub__maskz): Likewise. - (*fma_fmsub__bcst_1): - Likewise. - (*fma_fmsub__bcst_2): - Likewise. - (*fma_fmsub__bcst_3): - Likewise. - (fmai_vmfmsub_): Likewise. - -2018-10-21 H.J. Lu - - * config/i386/sse.md (*3_bcst_1): - Remove plus. Renamed to ... - (*sub3_bcst): This. - (*add3_bcst_2): Renamede to ... - (*add3_bcst): This. - -2018-10-21 H.J. Lu - - PR target/72782 - * config/i386/sse.md (*mul3_bcst): New. - -2018-10-21 H.J. Lu - - PR target/87662 - * i386/avx512vlintrin.h (_mm256_or_epi32): New. - (_mm_or_epi32): Likewise. - (_mm256_xor_epi32): Likewise. - (_mm_xor_epi32): Likewise. - (_mm256_or_epi64): Likewise. - (_mm_or_epi64): Likewise. - (_mm256_xor_epi64): Likewise. - (_mm_xor_epi64): Likewise. - -2018-10-20 H.J. Lu - - PR target/72782 - * config/i386/sse.md (*_div3_bcst): New. - -2018-10-20 Jakub Jelinek - - PR middle-end/87647 - * varasm.c (decode_addr_const): Handle COMPOUND_LITERAL_EXPR. - -2018-10-20 Andreas Schwab - - * doc/ux.texi: Move @section directly after @node. - -2018-10-19 Jakub Jelinek - - PR middle-end/85488 - PR middle-end/87649 - * omp-low.c (check_omp_nesting_restrictions): Diagnose ordered without - depend closely nested inside of loop with ordered clause with - a parameter. - -2018-10-19 David Malcolm - - * Makefile.in (TEXI_GCCINT_FILES): Add ux.texi. - * doc/gccint.texi: Include ux.texi and use it in top-level menu. - * doc/ux.texi: New file. - -2018-10-19 Segher Boessenkool - - * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Move 68 (that is, CR0) to - be the first CR field allocated. - -2018-10-19 Richard Biener - - PR target/87657 - * config/i386/i386.c (ix86_builtin_vectorization_cost): Use - TYPE_VECTOR_SUBPARTS and avoid relying on vector mode. - -2018-10-19 H.J. Lu - - PR target/72782 - * config/i386/sse.md - (*3_bcst_1): New. - (*add3_bcst_2): Likewise. - -2018-10-19 H.J. Lu - - * config/i386/sse.md - (*fma_fmadd__bcst_1): - Replace nonimmediate_operand with register_operand. - (*fma_fmadd__bcst_2): - Likewise. - (*fma_fmadd__bcst_3): - Likewise. - -2018-10-19 Ilya Leoshkevich - - PR rtl-optimization/87596 - * lra-constraints.c (spill_hard_reg_in_range): Use INSN_P () + - lra_get_insn_recog_data () instead of lra_insn_recog_data[] - for instructions in FROM..TO range. - -2018-10-19 Eric Botcazou - - * cfgexpand.c (expand_one_var): Use specific wording in error message - for non-local frame variables. - * stor-layout.c (layout_decl): Do not issue a warning for them. - -2018-10-19 Robin Dapp - - * haifa-sched.c (priority): Add force_recompute parameter. - (apply_replacement): Call priority () with force_recompute = true. - (restore_pattern): Likewise. - -2018-10-18 H.J. Lu - - * simplify-rtx.c (simplify_subreg): Limit mask of vec_merge to - HOST_BITS_PER_WIDE_INT. - (test_vector_ops_duplicate): Likewise. - -2018-10-18 H.J. Lu - - PR target/72782 - * config/i386/sse.md (VF_AVX512): New. - (avx512bcst): Likewise. - (*fma_fmadd__bcst_1): - Likewise. - (*fma_fmadd__bcst_2): - Likewise. - (*fma_fmadd__bcst_3): - Likewise. - -2018-10-18 Jonathan Wakely - - * doc/invoke.texi (-dumpversion): Improve grammar. - (-dumpfullversion): Make more consistent with -dumpversion. - -2018-10-18 Uros Bizjak - - * config/i386/i386.c (ix86_emit_fp_unordered_jump): - Set JUMP_LABEL to the jump insn. - (ix86_emit_i387_log1p): Use ix86_expand_branch to expand branch. - Predict emitted jump and add label to jump insn. - -2018-10-18 David Malcolm - - PR tree-optimization/87562 - * input.c (get_substring_ranges_for_loc): Use - LRK_SPELLING_LOCATION rather than LRK_MACRO_EXPANSION_POINT when - getting the linemap for the endpoint. Verify that it's either - in the same linemap as the start point's spelling location, or - at least in the same file. - -2018-10-18 Richard Biener - - * config/i386/i386.c (ix86_builtin_vectorization_cost): Do not - feed width-specific load/store costs through ix86_vec_cost. - * config/i386/x86-tune-costs.h (athlon_cost): Adjust. - (k8_cost): Likewise. - (bdver_cost): Likewise. - (znver1_cost): Likewise. - (btver1_cost): Likewise. - (btver2_cost): Likewise. - -2018-10-18 H.J. Lu - - * simplify-rtx.c (simplify_subreg): Call simplify_gen_subreg - to simplify subreg of vec_merge. - -2018-10-18 Richard Biener - - * config/i386/i386.c: Fix costing of vector FMA. - -2018-10-18 Richard Biener - - * config/i386/i386.c (ix86_vec_cost): Remove !parallel path - and argument. - (ix86_builtin_vectorization_cost): For vec_construct properly - cost insertion into SSE regs. - (...): Adjust calls to ix86_vec_cost. - -2018-10-18 Richard Biener - - PR middle-end/87087 - Revert - 2018-02-07 Richard Biener - - PR tree-optimization/84204 - * tree-chrec.c (chrec_fold_plus_1): Remove size limiting in - this place. - -2018-10-18 H.J. Lu - - PR target/87537 - * simplify-rtx.c (simplify_subreg): Simplify subreg of vec_merge - of vec_duplicate. - (test_vector_ops_duplicate): Add test for a scalar subreg of a - VEC_MERGE of a VEC_DUPLICATE. - -2018-10-17 Joseph Myers - - * doc/cpp.texi (__STDC_VERSION__): Document C2X handling. - * doc/invoke.texi (-std=c2x, -std=gnu2x): Document new options. - * doc/standards.texi (C Language): Document C2X. - * dwarf2out.c (highest_c_language), config/rl78/rl78.c - (rl78_option_override): Handle "GNU C2X" language name. - -2018-10-17 Joseph Myers - - * doc/invoke.texi (-std=c17), doc/standards.texi (C Language): - Document C17 as published in 2018. - -2018-10-17 Eric Botcazou - - PR middle-end/87623 - * fold-const.c (fold_truth_andor_1): If the right side is not constant, - bail out if both sides do not have the same storage order. - -2018-10-17 Aldy Hernandez - - * bitmap.c (bitmap_head::dump): New. - * bitmap.h (bitmap_head): Add dump(). - * gimple-ssa-evrp-analyze.c - (evrp_range_analyzer::try_find_new_range): Adjust for value_range API. - (evrp_range_analyzer::set_ssa_range_info): Same. - (evrp_range_analyzer::record_ranges_from_phis): Same. - (evrp_range_analyzer::record_ranges_from_stmt): Same. - * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Same. - * gimple-ssa-sprintf.c (get_int_range): Same. - (format_integer): Same. - (sprintf_dom_walker::handle_gimple_call): Same. - * ipa-cp.c (ipcp_vr_lattice::meet_with_1): Same. - (ipcp_vr_lattice::top_p): Same. - (ipcp_vr_lattice::bottom_p): Same. - (ipcp_vr_lattice::set_to_bottom): Same. - (ipa_vr_operation_and_type_effects): Same. - (propagate_vr_across_jump_function): Same. - (ipcp_store_vr_results): Same. - * ipa-prop.c (struct ipa_vr_ggc_hash_traits): Same. - (ipa_print_node_jump_functions_for_edge): Same. - (ipa_get_value_range): Same. - (ipa_compute_jump_functions_for_edge): Same. - (ipa_write_jump_function): Same. - * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Same. - * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): - Same. - * vr-values.c (set_value_range_to_nonnegative): Same. - (set_value_range_to_truthvalue): Same. - (vr_values::get_value_range): Same. - (vr_values::set_defs_to_varying): Same. - (vr_values::update_value_range): Same. - (symbolic_range_based_on_p): Same. - (vr_values::op_with_boolean_value_range_p): Same. - (vr_values::extract_range_for_var_from_comparison_expr): Same. - (vr_values::extract_range_from_ssa_name): Same. - (vr_values::extract_range_from_binary_expr): Same. - (vr_values::extract_range_from_unary_expr): Same. - (vr_values::extract_range_from_cond_expr): Same. - (vr_values::extract_range_from_comparison): Same. - (vr_values::check_for_binary_op_overflow): Same. - (vr_values::extract_range_basic): Same. - (vr_values::extract_range_from_assignment): Same. - (compare_ranges): Same. - (compare_range_with_value): Same. - (vr_values::adjust_range_with_scev): Same. - (vrp_valueize): Same. - (vrp_valueize_1): Same. - (vr_values::get_vr_for_comparison): Same. - (vr_values::compare_name_with_value): Same. - (vr_values::compare_names): Same. - (vr_values::vrp_evaluate_conditional): Same. - (find_case_label_ranges): Same. - (vr_values::vrp_visit_switch_stmt): Same. - (vr_values::extract_range_from_phi_node): Same. - (vr_values::simplify_div_or_mod_using_ranges): Same. - (vr_values::simplify_bit_ops_using_ranges): Same. - (test_for_singularity): Same. - (range_fits_type_p): Same. - (vr_values::simplify_cond_using_ranges_1): Same. - (vr_values::simplify_switch_using_ranges): Same. - (vr_values::simplify_float_conversion_using_ranges): Same. - (vr_values::two_valued_val_range_p): Same. - (vr_values::add_equivalence): Move to value_range::equiv_add. - * vr-values.h (vr_values::add_equivalence): Remove. - (VR_INITIALIZER): Remove. - * tree-vrp.c (value_range::set): New. - (value_range::equiv_add): New. - (value_range::value_range): New. - (value_range::deep_copy): New. - (value_range::check): New. - (value_range::equal_p): New. - (value_range::ignore_equivs_equal_p): New. - (value_range::operator==): New. - (value_range::operator!=): New. - (value_range::symbolic_p): New. - (value_range::numeric_p): New. - (value_range::set_undefined): New. - (value_range::set_varying): New. - (value_range::may_contain_p): New. - (value_range::equiv_clear): New. - (value_range::singleton_p): New. - (value_range::intersect): New. - (value_range::dump): New. - (value_range::set_and_canonicalize): New. - (set_value_range): Adjust for value_range API. - (set_value_range_to_undefined): Same. - (set_value_range_to_varying): Same. - (set_and_canonicalize_value_range): Same. - (set_value_range_to_nonnull): Same. - (set_value_range_to_null): Same. - (range_is_null): Same. - (range_is_nonnull): Same. - (range_int_cst_p): Same. - (range_int_cst_singleton_p): Same. - (symbolic_range_p): Same. - (range_includes_zero_p): Same. - (value_range_constant_singleton): Same. - (vrp_set_zero_nonzero_bits): Same. - (ranges_from_anti_range): Same. - (extract_range_into_wide_ints): Same. - (extract_range_from_multiplicative_op): Same. - (set_value_range_with_overflow): Same. - (extract_range_from_binary_expr_1): Same. - (extract_range_from_unary_expr): Same. - (dump_value_range): Same. - (debug_value_range): Same. - (vrp_prop::check_array_ref): Same. - (vrp_prop::check_mem_ref): Same. - (vrp_prop::vrp_initialize): Same. - (vrp_prop::visit_stmt): Same. - (intersect_ranges): Same. - (vrp_prop::visit_phi): Same. - (vrp_prop::vrp_finalize): Same. - (determine_value_range_1): Same. - (determine_value_range): Same. - (vrp_intersect_ranges_1): Rename to... - (vrp_intersect_1): this. - (vrp_intersect_ranges): Rename to... - (value_range::intersect_helper): ...this. - (vrp_meet_1): Rename to... - (value_range::union_helper): ...this. - (vrp_meet): Rename to... - (value_range::union_): ...this. - (copy_value_range): Remove. - * tree-vrp.h (struct value_range): Rewrite into a proper class. - (value_range::vrtype): New. - (value_range::type): New. - (value_range::equiv): New. - (value_range::min): New. - (value_range::max): New. - (value_range::varying_p): New. - (value_range::undefined_p): New. - (value_range::null_p): New. - (value_range::equiv_add): New. - (copy_value_range): Remove. - -2018-10-17 David Malcolm - - * Makefile.in (SELFTEST_TARGETS): New. - (selftest) Change from s-selftest-c to $(SELFTEST_TARGETS). - (C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb) - (selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move to - c/Make-lang.in. - (CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++) - (selftest-c++-gdb, selftest-c++-valgrind): Move to - cp/Make-lang.in. - * configure: Regenerate. - * configure.ac (selftest_languages): New. - -2018-10-17 Aldy Hernandez - - * tree-vrp.c (extract_range_from_multiplicative_op): Remove - overflow wraps argument. - (extract_range_from_binary_expr_1): Do not pass overflow wraps to - wide_int_range_multiplicative_op. - * wide-int-range.cc (wide_int_range_mult_wrapping): Remove - overflow wraps argument. - (wide_int_range_multiplicative_op): Same. - (wide_int_range_lshift): Same. - (wide_int_range_div): Same. - * wide-int-range.h (wide_int_range_multiplicative_op): Same. - (wide_int_range_lshift): Same. - (wide_int_range_div): Same. - -2018-10-17 Aldy Hernandez - - * wide-int-range.h (wide_int_range_shift_undefined_p): Adjust to - use sign as argument. - * tree-vrp.c (extract_range_from_binary_expr_1): Pass sign to - wide_int_range_shift_undefined_p. - -2018-10-16 Kyrylo Tkachov - - * config/aarch64/aarch64.md (despeculate_copy): - Rename to... - (@despeculate_copy): ... This. - * config/aarch64/aarch64.c (aarch64_speculation_safe_value): Remove - switch statement. - -2018-10-16 Rainer Orth - - * config.gcc: Obsolete *-*-solaris2.10*. - * doc/install.texi (Specific, *-*-solaris2*): Document it. - -2018-10-12 Jeff Law - - * config/ft32/ft32.md (ft32_general_movsrc_operand): Disable - reg + sym +- const_int addressing modes. - -2018-10-15 David Malcolm - - * common.opt (fdiagnostics-minimum-margin-width=): New option. - * diagnostic-show-locus.c (layout::layout): Apply the minimum - margin width. - (layout::start_annotation_line): Only print up to 3 of the - margin character, to avoid touching the left-hand side. - (selftest::test_diagnostic_show_locus_fixit_lines): Update for - minimum margin width, as set by test_diagnostic_context's ctor. - (selftest::test_fixit_insert_containing_newline): Likewise. - (selftest::test_fixit_insert_containing_newline_2): Likewise. - (selftest::test_line_numbers_multiline_range): Clear - dc.min_margin_width. - * diagnostic.c (diagnostic_initialize): Initialize - min_margin_width. - * diagnostic.h (struct diagnostic_context): Add field - "min_margin_width". - * doc/invoke.texi: Add -fdiagnostics-minimum-margin-width=. - * opts.c (common_handle_option): Handle - OPT_fdiagnostics_minimum_margin_width_. - * selftest-diagnostic.c - (selftest::test_diagnostic_context::test_diagnostic_context): - Initialize min_margin_width to 6. - * toplev.c (general_init): Initialize global_dc->min_margin_width. - -2018-10-15 David Malcolm - - * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby): - Fix usage of "error_at_rich_loc" in the comment. - -2018-10-15 Renlin Li - - PR target/87563 - * tree-vectorizer.c (try_vectorize_loop_1): Don't use - if-conversioned loop when it contains ifn with types not - supported by backend. - * internal-fn.c (expand_direct_optab_fn): Add an assert. - (direct_internal_fn_supported_p): New helper function. - * internal-fn.h (direct_internal_fn_supported_p): Declare. - -2018-10-15 Jakub Jelinek - - PR target/87572 - * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET): - Remove OPTION_MASK_ISA_AVX5124FMAPS_UNSET and - OPTION_MASK_ISA_AVX5124VNNIW_UNSET. - -2018-10-15 Bin Cheng - - PR tree-optimization/87022 - * tree-loop-distribution.c (pg_add_dependence_edges): Check all - bits in dist vector rather than the first one. - -2018-10-15 Richard Biener - - PR middle-end/87610 - * tree-ssa-structalias.c (struct vls_data): Add escaped_p member. - (visit_loadstore): When a used restrict tag escaped verify that - the points-to solution of "other" pointers do not include - escaped. - (compute_dependence_clique): If a used restrict tag escaped - communicated that down to visit_loadstore. - -2018-10-15 Andreas Krebbel - - * config/s390/s390.c (s390_expand_vec_init): Force vector element - into reg if it isn't a general operand. - -2018-10-14 H.J. Lu - - PR target/87599 - * config/i386/sse.md (*vec_dupv2di): Add register source to - movddup. - -2018-10-14 H.J. Lu - - PR target/87572 - * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET): - Add OPTION_MASK_ISA_AVX512IFMA_UNSET, - OPTION_MASK_ISA_AVX5124FMAPS_UNSET and - OPTION_MASK_ISA_AVX5124VNNIW_UNSET. - -2018-10-13 Eric Botcazou - - * dwarf2cfi.c (struct dw_trace_info): Add args_size_defined_for_eh. - (notice_args_size): Set it in the current trace if no insn that can - throw internally has been seen yet. - (connect_traces): When connecting args_size between traces, allow the - incoming values not to match if there is an insn setting it before the - first insn that can throw internally; in that case, force the creation - of a CFI note on this latter insn. - -2018-10-13 Jonathan Wakely - - * opt-problem.h (opt_wrapper): Use template-argument-list when naming - the base class, because using the injected-class-name was not clearly - specified until DR 176. - -2018-10-12 Paul Koning - - * config/pdp11/pdp11.md (doloop_end): New expander. - (doloop_end_insn): renamed from "doloop_end". - (addqi3): New pattern. - (subqi3): New pattern. - * config/pdp11/predicates.md (incdec_operand): New predicate. - -2018-10-12 Yury Gribov - - PR middle-end/81376 - * real.c (format_helper::can_represent_integral_type_p): New function - * real.h (format_helper::can_represent_integral_type_p): Ditto. - * match.pd: New pattern. - -2018-10-12 Alexandre Oliva - - * configure.ac: Introduce --enable-large-address-aware - to define MINGW_DEFAULT_LARGE_ADDR_AWARE. - * doc/install.texi: Document it. - * configure, config.in: Rebuilt. - * config/i386/mingw32.h (LINK_SPEC_LARGE_ADDR_AWARE): Define, - based on MINGW_DEFAULT_LARGE_ADDR_AWARE. - (LINK_SPEC): Insert it. - * config/i386/mingw-w64.h: Likewise. - - * cygming.h (HAVE_GAS_ALIGNED_COMM): Fallback-define. - -2018-10-12 Peter Bergner - - PR rtl-optimization/87600 - * ira-lives (non_conflicting_reg_copy_p): Disable for non LRA targets. - -2018-10-12 Paul Koning - - * doc/md.texi (doloop_end): Document that the pattern code may - need to check operand mode. - -2018-10-12 Wilco Dijkstra - - * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Add alternatives - to zero-extend between int and floating-point registers. - (load_pair_zero_extendsidi2_aarch64): Add alternative for zero-extended - ldp into floating-point registers. Add type and arch attributes. - (zero_extend2_aarch64): Add arch attribute. - Use f_loads for type attribute. - -2018-10-11 Martin Sebor - - * doc/extend.texi (attribute packed): Correct typos. - -2018-10-11 Martin Sebor - - * doc/extend.texi (attribute flatten): Mention interaction with - noinline. - -2018-10-11 Jan Hubicka - - PR target/87156 - * cgraphclones.c (cgraph_node::create_version_clone_with_body): - Set new_decl virtual flag to zero. - -2018-10-11 Martin Sebor - - PR middle-end/87593 - * doc/extend.texi (attribute format_arg): Discuss using multiple - attributes on a single function. - -2018-10-11 Giuliano Belinassi - - PR tree-optimization/86829 - * match.pd (sin (atan (x))): New simplification rules. - (cos (atan (x))): Likewise. - * real.c (build_sinatan_real): New function. - * real.h (build_sinatan_real): Prototype. - -2018-10-11 Will Schmidt - - * config/rs6000/rs6000.c (map_to_integral_tree_type): New helper - function. - (fold_mergeeo_helper): New helper function. - (rs6000_gimple_fold_builtin): Add hooks for vec_mergee and vec_mergeo - intrinsics. Correct some whitespace indentation issues. - -2018-10-11 Wilco Dijkstra - - PR target/87511 - * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p): - Use HOST_WIDE_INT_1U for shift. - -2018-10-11 Doug Rupp - Olivier Hainque - - * config/rs6000/vxworks.h (VXWORKS_RELAX_LINK_SPEC): New macro. - Pass --relax to the linker for RTPs. - (LINK_SPEC): Append VXWORKS_RELAX_LINK_SPEC. - -2018-10-11 Andrew Stubbs - Jan Hubicka - Martin Jambor - - * print-rtl.c (print_rtx_operand_codes_E_and_V): Print how many times - the same elements are repeated rather than printing all of them. - * read-rtl.c (rtx_reader::read_rtx_operand): Recognize and expand - "repeated" elements. - * read-rtl-function.c (test_loading_repeat): New function. - (read_rtl_function_c_tests): Call test_loading_repeat. - * rtl-tests.c (test_dumping_repeat): New function. - (rtl_tests_c_tests): Call test_dumping_repeat. - -2018-10-11 Richard Biener - - * config/i386/x86-tune-costs.h (bdver?_memcpy, bdver?_memset, - bdver?_cost): Unify to ... - (bdver_memcpy, bdver_memset, bdver_cost): ... this. - * config/i386/i386.c (processor_cost_table): Adjust. - -2018-10-10 Eric Botcazou - - PR middle-end/87574 - * cgraphunit.c (cgraph_node::expand_thunk): Force DECL_IGNORED_P on - the thunk when expanding to GIMPLE. - -2018-10-10 Bernd Edlinger - - PR bootstrap/87551 - * varasm.c (mergeable_string_section): Don't try to move zero-length - strings to the merge section. - -2018-10-10 Uros Bizjak - - PR target/87573 - * config/i386/mmx.md (const_vector 0 -> mem splitter): New splitter. - -2018-10-10 Jakub Jelinek - - PR target/87550 - * config/i386/i386-builtin.def (IX86_BUILTIN_RDPMC): Move from args set - to special_args set. - -2018-10-10 Richard Biener - - * config/i386/sse.md (reduc_plus_scal_v8df, reduc_plus_scal_v4df, - reduc_plus_scal_v2df, reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, - reduc_plus_scal_v4sf): Merge into pattern reducing to half width - and recursing and pattern terminating the recursion on SSE - vector width using ix86_expand_reduc. - (reduc_sminmax_scal_): Split into part reducing to half - width and recursing and SSE2 vector variant doing the final - reduction with ix86_expand_reduc. - (reduc_uminmax_scal_): Likewise for the AVX512 variants - with terminating the recursion at AVX level, splitting that - to SSE there. - -2018-10-09 David Malcolm - - * genmatch.c (error_cb): Rename to... - (diagnostic_cb): ...this, converting int params to enums. - (fatal_at): Update for renaming. - (warning_at): Likewise. - (main): Likewise. - * input.c (selftest::ebcdic_execution_charset::apply): - Update for renaming of... - (selftest::ebcdic_execution_charset::on_error): ...this, renaming - to... - (selftest::ebcdic_execution_charset::on_diagnostic): ...this, - converting level and reason to enums. - (class selftest::lexer_error_sink): Rename to... - (class selftest::lexer_test_options): ...this, renaming field - "m_errors" to "m_diagnostics". - (selftest::lexer_test_options::apply): Update for renaming of... - (selftest::lexer_test_options::on_error): ...this, renaming to... - (selftest::lexer_test_options::on_diagnostic): ...this - converting level and reason to enums. - (selftest::test_lexer_string_locations_raw_string_unterminated): - Update for renamings. - * opth-gen.awk (struct cpp_reason_option_codes_t): Use enum for - "reason". - -2018-10-09 Paul A. Clarke - - * config.gcc (powerpc*-*-*): Add pmmintrin.h to extra_headers. - * config/rs6000/pmmintrin.h: New file. - -2018-10-09 Eric Botcazou - - PR tree-optimization/86659 - * gimple-match.h (gimple_match_op constructors): Initialize reverse. - -2018-10-09 Richard Biener - - PR tree-optimization/63155 - * tree-ssa-structalias.c: Include tree-ssa.h. - (get_constraint_for_ssa_var): For undefs return nothing_id. - (find_func_aliases): Cleanup PHI handling. - -2018-10-09 Richard Biener - - * tree-vectorizer.c (dump_stmt_cost): Fix cut&paste missing - replacements. - -2018-10-09 Martin Liska - - * asan.c (asan_emit_stack_protection): If a stack variable - is located in a same file as current function, then emit - line info into variable definition string. - -2018-10-08 Eric Botcazou - - * print-rtl.c (rtx_writer::print_rtx_operand_code_i): Print column - information. - -2018-10-08 Eric Botcazou - - * cgraphunit.c (cgraph_node::expand_thunk): Do not force DECL_IGNORED_P - on the thunk. - -2018-10-08 Eric Botcazou - - PR tree-optimization/86659 - * gimple-match.h (struct gimple_match_op): Add reverse field. - (gimple_match_op::set_op): New overloaded method. - * gimple-match-head.c (maybe_build_generic_op) : Set - the REF_REVERSE_STORAGE_ORDER flag on the value. - (gimple_simplify) : For BIT_FIELD_REF, propagate the - REF_REVERSE_STORAGE_ORDER flag and avoid simplifying if it is set. - -2018-10-08 Richard Sandiford - - PR middle-end/63155 - * gimple-ssa-backprop.c (backprop::intersect_uses): Use - FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT. - -2018-10-08 H.J. Lu - - PR target/87517 - * config/i386/avx512fintrin.h (_mm512_mask_fmaddsub_round_pd): - Defined with __builtin_ia32_vfmaddsubpd512_mask. - -2018-10-08 Richard Biener - - * config/i386/x86-tune-costs.h (znver1_cost): Make AVX256 vector loads - cost the same as AVX128 ones. - -2018-10-08 Paul Koning - - * config/pdp11/pdp11-protos.h (output_block_move): Remove. - (expand_block_move): New function. - * config/pdp11/pdp11.c (output_block_move): Remove. - (expand_block_move): New function. - * config/pdp11/pdp11.h (MOVE_RATIO): New definition. - * config/pdp11/pdp11.md (movmemhi): Use expand_block_move. - (*movmemhi1): Remove. - -2018-10-08 Robin Dapp - - * config/s390/2827.md: Increase latencies for some FP instructions. - -2018-10-08 Richard Biener - - * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): - Open a dump scope. - * tree-vectorizer.c (dump_stmt_cost): Add cost param and dump it. - * tree-vectorizer.h (dump_stmt_cost): Adjust. - (add_stmt_cost): Dump return value of the hook. - -2018-10-08 Richard Biener - - PR tree-optimization/63155 - * tree-ssa-propagate.c (add_ssa_edge): Do cheap check first. - (ssa_propagation_engine::ssa_propagate): Remove redundant - bitmap bit clearing. - -2018-10-05 Peter Bergner - - PR rtl-optimization/86939 - PR rtl-optimization/87479 - * ira.h (non_conflicting_reg_copy_p): New prototype. - * ira-lives.c (ignore_reg_for_conflicts): New static variable. - (make_hard_regno_dead): Don't add conflicts for register - ignore_reg_for_conflicts. - (make_object_dead): Likewise. - (non_conflicting_reg_copy_p): New function. - (process_bb_node_lives): Set ignore_reg_for_conflicts for copies. - Remove special conflict handling of REAL_PIC_OFFSET_TABLE_REGNUM. - * lra-lives.c (ignore_reg_for_conflicts): New static variable. - (make_hard_regno_dead): Don't add conflicts for register - ignore_reg_for_conflicts. Remove special conflict handling of - REAL_PIC_OFFSET_TABLE_REGNUM. Remove now unused argument - check_pic_pseudo_p and update callers. - (mark_pseudo_dead): Don't add conflicts for register - ignore_reg_for_conflicts. - (process_bb_lives): Set ignore_reg_for_conflicts for copies. - -2018-10-05 Andrew Waterman - Jim Wilson - - * config/riscv/riscv.md (f_quiet4): - Add define_expand. Add ! HONOR_SNANS check to current pattern. Add - new pattern using HONOR_SNANS that emits one extra instruction. - -2018-10-05 Segher Boessenkool - - * config/rs6000/rs6000.md (unnamed mfcr scc_comparison_operator - patterns): Merge SI and DI patterns to a GPR pattern. - (unnamed define_insn and define_split for record form of that): Merge - to a single define_insn_and_split pattern. - -2018-10-05 David Malcolm - - PR c++/56856 - * input.c (expand_location_to_spelling_point): Add param "aspect" - and use rather than hardcoding LOCATION_ASPECT_CARET. - (get_substring_ranges_for_loc): Handle the case of a single token - within a macro expansion. - * input.h (expand_location_to_spelling_point): Add "aspect" param, - defaulting to LOCATION_ASPECT_CARET. - -2018-10-05 Paul Koning - - * config/pdp11/pdp11.c (TARGET_CXX_GUARD_TYPE): Define. - (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define. - (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define. - (pdp11_guard_type): New function. - -2018-10-05 Paul Koning - - * config/pdp11/pdp11.h (FLOAT_TYPE_SIZE): Always 32. - * config/pdp11/pdp11.opt (mfloat32): Remove. - (mfloat64): Remove. - * doc/invoke.texi (pdp11 -mfloat32): Remove: - (pdp11 -mfloat64): Remove. - -2018-10-05 Uros Bizjak - - * config/i386/i386.md (*cmpxf_cc_i387): Remove pattern. - (*cmp_cc_i387): Ditto. - (*cmpu_cc_i387): Ditto. - (*cmp__cc_i387): Ditto. - * config/i386/i386.c (ix86_expand_fp_compare): Remove - "scratch" argument. - : Do not generate pattern with HImode clobber. - Emit x86_sahf_1 pattern. - (ix86_expand_compare): Update call to ix86_expand_fp_compare. - (ix86_expand_carry_flag_compare): Ditto. - -2018-10-05 Uros Bizjak - - * config/i386/i386.md (*cmpxf_i387): Change operand 2 predicate - to reg_or_0_operand. Add "C" constraint. - (*cmpxf_cc_i387): Ditto. - (*cmp_i387): Change operand 2 predicate - to nonimm_or_0_operand. Add "C" constraint. - (*cmp_cc_i387): Ditto. - (*cmp_0_i387): Remove insn pattern. - (*cmp_0_cc_i387): Ditto. - -2018-10-05 Uros Bizjak - - * config/i386/constraints.md ("C"): Do not depend on TARGET_SSE. - * config/i386/predicates.md (nonimm_or_0_operand): Rename - from vector_move_operand. Update all uses. - -2018-10-05 Martin Sebor - - PR tree-optimization/87490 - * builtins.c (expand_builtin_strnlen): Handle a null data.decl - consistently. - -2018-10-05 Richard Biener - - PR tree-optimization/63155 - * tree-ssa-ccp.c (ccp_propagate::visit_phi): Avoid excess - vertical space in dumpfiles. - * tree-ssa-propagate.h - (ssa_propagation_engine::process_ssa_edge_worklist): Remove. - * tree-ssa-propagate.c (cfg_blocks_back): New global. - (ssa_edge_worklist_back): Likewise. - (curr_order): Likewise. - (cfg_blocks_get): Remove abstraction. - (cfg_blocks_add): Likewise. - (cfg_blocks_empty_p): Likewise. - (add_ssa_edge): Add to current or next worklist based on - RPO index. - (add_control_edge): Likewise. - (ssa_propagation_engine::process_ssa_edge_worklist): Fold - into ... - (ssa_propagation_engine::ssa_propagate): ... here. Unify - iteration from CFG and SSA edge worklist so we process - everything in RPO order, prioritizing forward progress - over iteration. - (ssa_prop_init): Allocate new worklists, do not dump - immediate uses. - (ssa_prop_fini): Free new worklists. - -2018-10-05 Richard Biener - - * tree-core.h (tree_block::abstract_flag): Remove. - (tree_block::block_num): Make full 32bits. - * tree.def (BLOCK): Remove docs about BLOCK_ABSTRACT. - * tree.h (BLOCK_ABSTRACT): Remove. - * dwarf2out.c (gen_lexical_block_die): Remove dead code - resulting from BLOCK_ABSTRACT being always false. - (gen_inlined_subroutine_die): Likewise. - (gen_block_die): Likewise. - * tree.c (block_ultimate_origin): Likewise. - * tree-pretty-print.c (dump_block_node): Remove code dealing - with BLOCK_ABSTRACT. - * tree-ssa-live.c (dump_scope_block): Likewise. - * tree-streamer-in.c (unpack_ts_block_value_fields): Likewise. - * tree-streamer-out.c (pack_ts_block_value_fields): Likewise. - -2018-10-05 Richard Biener - - * config/i386/i386.c (ix86_add_stmt_cost): When scalar cost - is asked for initialize mode to the component mode of the - vector type. - -2018-10-05 H.J. Lu - - PR target/87522 - * config/i386/gnu-user.h (ASM_SPEC): Don't pass -msse2avx to - assembler for -mavx. - * config/i386/gnu-user64.h (ASM_SPEC): Likewise. - -2018-10-05 Segher Boessenkool - - PR target/87509 - * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_SET_FPSCR_DRN): Use - RS6000_BTM_DFP. - * config/rs6000/rs6000.md (rs6000_set_fpscr_rn): Require the operand - to be DImode. When using mffscrn, force the operand to a register. - -2018-10-04 Uros Bizjak - - * config/i386/i386.md (*fop__2_i387): Macroize insn - from *fop__2_i387 and *fop_xf_2_i387 using - X87MODEF mode iterator. - (*fop__3_i387): Macroize insn from - *fop__3_i387 and *fop_xf_3_i387 using - X87MODEF mode iterator. - -2018-10-04 Vinay Kumar - - * doc/invoke.texi (-Wno-prio-ctor-dtor): Document new warning - -Wno-prio-ctor-dtor. - -2018-10-04 David Malcolm - - * Makefile.in (OBJS): Add opt-problem.o. - * dump-context.h: Include "selftest.h. - (selftest::temp_dump_context): New forward decl. - (class dump_context): Make friend of class - selftest::temp_dump_context. - (dump_context::dump_loc_immediate): New decl. - (class dump_pretty_printer): Move here from dumpfile.c. - (class temp_dump_context): Move to namespace selftest. - (temp_dump_context::temp_dump_context): Add param - "forcibly_enable_dumping". - (selftest::verify_dumped_text): - (ASSERT_DUMPED_TEXT_EQ): Move here from dumpfile.c. - (selftest::verify_item): - (ASSERT_IS_TEXT): Move here from dumpfile.c. - (ASSERT_IS_TREE): Likewise. - (ASSERT_IS_GIMPLE): Likewise. - * dumpfile.c (dump_context::dump_loc): Move immediate dumping - to... - (dump_context::dump_loc_immediate): ...this new function. - (class dump_pretty_printer): Move to dump-context.h. - (dump_switch_p_1): Don't enable MSG_PRIORITY_REEMITTED. - (opt_info_switch_p_1): Enable MSG_PRIORITY_REEMITTED. - (temp_dump_context::temp_dump_context): Move to "selftest" - namespace. Add param "forcibly_enable_dumping", and use it to - conditionalize the use of m_pp; - (selftest::verify_dumped_text): Make non-static. - (ASSERT_DUMPED_TEXT_EQ): Move to dump-context.h. - (selftest::verify_item): Make non-static. - (ASSERT_IS_TEXT): Move to dump-context.h. - (ASSERT_IS_TREE): Likewise. - (ASSERT_IS_GIMPLE): Likewise. - (selftest::test_capture_of_dump_calls): Pass "true" for new - param of temp_dump_context. - * dumpfile.h (enum dump_flag): Add MSG_PRIORITY_REEMITTED, adding - it to MSG_ALL_PRIORITIES. Update values of TDF_COMPARE_DEBUG and - TDF_COMPARE_DEBUG. - * opt-problem.cc: New file. - * opt-problem.h: New file. - * optinfo-emit-json.cc - (selftest::test_building_json_from_dump_calls): Pass "true" for - new param of temp_dump_context. - * optinfo.cc (optinfo_kind_to_dump_flag): New function. - (optinfo::emit_for_opt_problem): New function. - (optinfo::emit): Clarity which emit_item is used. - * optinfo.h (optinfo::get_dump_location): New accessor. - (optinfo::emit_for_opt_problem): New decl. - (optinfo::emit): Make const. - * selftest-run-tests.c (selftest::run_tests): Call - selftest::opt_problem_cc_tests. - * selftest.h (selftest::opt_problem_cc_tests): New decl. - * tree-data-ref.c (dr_analyze_innermost): Convert return type from - bool to opt_result, converting fprintf messages to - opt_result::failure_at calls. Add "stmt" param for use by the - failure_at calls. - (create_data_ref): Pass "stmt" to the dr_analyze_innermost call. - (runtime_alias_check_p): Convert return type from bool to - opt_result, converting dump_printf calls to - opt_result::failure_at, using the statement DDR_A for their - location. - (find_data_references_in_stmt): Convert return type from bool to - opt_result, converting "return false" to opt_result::failure_at - with a new message. - * tree-data-ref.h: Include "opt-problem.h". - (dr_analyze_innermost): Convert return type from bool to opt_result, - and add a const gimple * param. - (find_data_references_in_stmt): Convert return type from bool to - opt_result. - (runtime_alias_check_p): Likewise. - * tree-predcom.c (find_looparound_phi): Pass "init_stmt" to - dr_analyze_innermost. - * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): - Convert return type from bool to opt_result, adding a message for - the PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS zero case. - (vect_analyze_data_ref_dependence): Convert return type from bool - to opt_result. Change sense of return type from "false" - effectively meaning "no problems" to "false" meaning a problem, - so that "return false" becomes "return opt_result::success". - Convert "return true" calls to opt_result::failure_at, using - the location of statement A rather than vect_location. - (vect_analyze_data_ref_dependences): Convert return type from bool - to opt_result. - (verify_data_ref_alignment): Likewise, converting dump_printf_loc - calls to opt_result::failure_at, using the stmt location rather - than vect_location. - (vect_verify_datarefs_alignment): Convert return type from bool - to opt_result. - (vect_enhance_data_refs_alignment): Likewise. Split local "stat" - into multiple more-tightly-scoped copies. - (vect_analyze_data_refs_alignment): Convert return type from bool - to opt_result. - (vect_analyze_data_ref_accesses): Likewise, converting a - "return false" to a "return opt_result::failure_at", adding a - new message. - (vect_prune_runtime_alias_test_list): Convert return type from - bool to opt_result, converting dump_printf_loc to - opt_result::failure_at. Add a %G to show the pertinent statement, - and use the stmt's location rather than vect_location. - (vect_find_stmt_data_reference): Convert return type from - bool to opt_result, converting dump_printf_loc to - opt_result::failure_at, using stmt's location. - (vect_analyze_data_refs): Convert return type from bool to - opt_result. Convert "return false" to "return - opt_result::failure_at", adding messages as needed. - * tree-vect-loop.c (vect_determine_vf_for_stmt_1): Convert return - type from bool to opt_result. - (vect_determine_vf_for_stmt): Likewise. - (vect_determine_vectorization_factor): Likewise, converting - dump_printf_loc to opt_result::failure_at, using location of phi - rather than vect_location. - (vect_analyze_loop_form_1): Convert return type from bool to - opt_result, converting dump_printf_loc calls, retaining the use of - vect_location. - (vect_analyze_loop_form): Convert return type from loop_vec_info - to opt_loop_vec_info. - (vect_analyze_loop_operations): Convert return type from bool to - opt_result, converting dump_printf_loc calls, using the location - of phi/stmt rather than vect_location where available. Convert - various "return false" to "return opt_result::failure_at" with - "unsupported phi" messages. - (vect_get_datarefs_in_loop): Convert return type from bool to - opt_result. Add a message for the - PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS failure. - (vect_analyze_loop_2): Convert return type from bool to - opt_result. Ensure "ok" is set to a opt_result::failure_at before - each "goto again;", adding new messages where needed. - Add "unsupported grouped {store|load}" messages. - (vect_analyze_loop): Convert return type from loop_vec_info to - opt_loop_vec_info. - * tree-vect-slp.c (vect_analyze_slp): Convert return type from - bool to opt_result. - * tree-vect-stmts.c (process_use): Likewise, converting - dump_printf_loc call and using stmt location, rather than - vect_location. - (vect_mark_stmts_to_be_vectorized): Likeise. - (vect_analyze_stmt): Likewise, adding a %G. - (vect_get_vector_types_for_stmt): Convert return type from bool to - opt_result, converting dump_printf_loc calls and using stmt - location, rather than vect_location. - (vect_get_mask_type_for_stmt): Convert return type from tree to - opt_tree, converting dump_printf_loc calls and using stmt location. - * tree-vectorizer.c: Include "opt-problem.h. - (try_vectorize_loop_1): Flag "Analyzing loop at" dump message as - MSG_PRIORITY_INTERNALS. Convert local "loop_vinfo" from - loop_vec_info to opt_loop_vec_info. If if fails, and dumping is - enabled, use it to report at the top level "couldn't vectorize - loop" followed by the problem. - * tree-vectorizer.h (opt_loop_vec_info): New typedef. - (vect_mark_stmts_to_be_vectorized): Convert return type from bool - to opt_result. - (vect_analyze_stmt): Likewise. - (vect_get_vector_types_for_stmt): Likewise. - (tree vect_get_mask_type_for_stmt): Likewise. - (vect_analyze_data_ref_dependences): Likewise. - (vect_enhance_data_refs_alignment): Likewise. - (vect_analyze_data_refs_alignment): Likewise. - (vect_verify_datarefs_alignment): Likewise. - (vect_analyze_data_ref_accesses): Likewise. - (vect_prune_runtime_alias_test_list): Likewise. - (vect_find_stmt_data_reference): Likewise. - (vect_analyze_data_refs): Likewise. - (vect_analyze_loop): Convert return type from loop_vec_info to - opt_loop_vec_info. - (vect_analyze_loop_form): Likewise. - (vect_analyze_slp): Convert return type from bool to opt_result. - -2018-10-04 David Malcolm - - * doc/invoke.texi (-fopt-info): Document new "internals" - sub-option. - * dump-context.h (dump_context::apply_dump_filter_p): New decl. - * dumpfile.c (dump_options): Update for renaming of MSG_ALL to - MSG_ALL_KINDS. - (optinfo_verbosity_options): Add "internals". - (kind_as_string): Update for renaming of MSG_ALL to MSG_ALL_KINDS. - (dump_context::apply_dump_filter_p): New member function. - (dump_context::dump_loc): Use apply_dump_filter_p rather than - explicitly masking the dump_kind. - (dump_context::begin_scope): Increment the scope depth first. Use - apply_dump_filter_p rather than explicitly masking the dump_kind. - (dump_context::emit_item): Use apply_dump_filter_p rather than - explicitly masking the dump_kind. - (dump_dec): Likewise. - (dump_hex): Likewise. - (dump_switch_p_1): Default to MSG_ALL_PRIORITIES. - (opt_info_switch_p_1): Default to MSG_PRIORITY_USER_FACING. - (opt_info_switch_p): Update handling of default - MSG_OPTIMIZED_LOCATIONS to cope with default of - MSG_PRIORITY_USER_FACING. - (dump_basic_block): Use apply_dump_filter_p rather than explicitly - masking the dump_kind. - (selftest::test_capture_of_dump_calls): Update test_dump_context - instances to use MSG_ALL_KINDS | MSG_PRIORITY_USER_FACING rather - than MSG_ALL. Generalize scope test to be run at all four - combinations of with/without MSG_PRIORITY_USER_FACING and - MSG_PRIORITY_INTERNALS, adding examples of explicit priority - for each of the two values. - * dumpfile.h (enum dump_flag): Add comment about the MSG_* flags. - Rename MSG_ALL to MSG_ALL_KINDS. Add MSG_PRIORITY_USER_FACING, - MSG_PRIORITY_INTERNALS, and MSG_ALL_PRIORITIES, updating the - values for TDF_COMPARE_DEBUG and TDF_ALL_VALUES. - (AUTO_DUMP_SCOPE): Add a note to the comment about the interaction - with MSG_PRIORITY_*. - * tree-vect-loop-manip.c (vect_loop_versioning): Mark versioning - dump messages as MSG_PRIORITY_USER_FACING. - * tree-vectorizer.h (DUMP_VECT_SCOPE): Add a note to the comment - about the interaction with MSG_PRIORITY_*. - -2018-10-04 Bernd Edlinger - - * varasm.c (output_constant): Add new parameter merge_strings. - Make strings properly zero terminated in merge string sections. - (mergeable_string_section): Don't fail if the last char is non-zero. - (assemble_variable_contents): Handle merge string sections. - (assemble_variable): Likewise. - (assemble_constant_contents): Likewise. - (output_constant_def_contents): Likewise. - (output_constructor_array_range, - output_constructor_regular_field): Adjust call to output_constant. - (output_object_block): Adjust call to assemble_constant_contents - and assemble_variable_contents. - -2018-10-04 Martin Liska - - PR c/87483 - * cgraphunit.c (process_function_and_variable_attributes): - Warn about a function with alias attribute and a body. - -2018-10-04 Martin Liska - - PR ipa/82625 - * multiple_target.c (redirect_to_specific_clone): New function. - (ipa_target_clone): Use it. - * tree-inline.c: Fix comment. - -2018-10-04 David Malcolm - - * dumpfile.c (gcc::dump_manager::dump_manager): Initialize new - fields. - (gcc::dump_manager::~dump_manager): Free m_optinfo_filename. - (gcc::dump_manager::register_pass): New member function, adapted - from loop body in gcc::pass_manager::register_pass, adding a - call to update_dfi_for_opt_info. - (gcc::dump_manager::opt_info_enable_passes): Store the - -fopt-info options into the new fields. Move the loop - bodies into... - (gcc::dump_manager::update_dfi_for_opt_info): ...this new member - function. - * dumpfile.h (struct opt_pass): New forward decl. - (gcc::dump_manager::register_pass): New decl. - (gcc::dump_manager::update_dfi_for_opt_info): New decl. - (class gcc::dump_manager): Add fields "m_optgroup_flags", - "m_optinfo_flags", and "m_optinfo_filename". - * passes.c (gcc::pass_manager::register_pass): Move all of the - dump-handling code to gcc::dump_manager::register_pass. - -2018-10-04 Peter Bergner - - PR rtl-optimization/87466 - * target.def (setjmp_preserves_nonvolatile_regs_p): New target hook. - * doc/tm.texi.in (TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P): New hook. - * doc/tm.texi: Regenerate. - * ira-lives.c (process_bb_node_lives): Use the new target hook. - * lra-lives.c (process_bb_lives): Likewise. - * config/rs6000/rs6000.c (TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P): - Define. - -2018-10-04 Tamar Christina - - * params.c (add_params): Fix initialization. - -2018-10-04 Martin Liska - - PR gcov-profile/84107 - * tree-profile.c (init_ic_make_global_vars): - Remove ic_void_ptr_var and ic_gcov_type_ptr_var. - Come up with new ic_tuple* variables. Emit - __gcov_indirect_call{,_topn} variables. - (gimple_gen_ic_profiler): Access the variable - and emit gimple. - (gimple_gen_ic_func_profiler): Access - __gcov_indirect_call.callee field. - (gimple_init_gcov_profiler): Use ptr_type_node. - * value-prof.c (gimple_ic): Use ptr_type_node. - -2018-10-04 Prathamesh Kulkarni - - PR tree-optimization/85787 - * ipa-pure-const.c (malloc_candidate_p_1): Move most of - malloc_candidate_p into this function and add support for - detecting multiple phis. - (DUMP_AND_RETURN): Move from malloc_candidate_p into top-level macro. - -2018-10-04 Martin Liska - - PR ipa/87491 - * ipa-inline.c (inline_to_all_callers_1): - Call ultimate_alias_target for node being inlined. - -2018-10-03 Jeff Law - - * gimple-ssa-sprintf.c (format_string): Do not hardcode size of - target's wchar_t. - * tree.c (get_typenode_from_name): Moved from fortran/trans-types.c. - * tree.h (get_typenode_from_name): Prototype. - -2018-10-03 Uros Bizjak - - * config/i386/i386.md (*cmp__i387): - Change operand 2 predicate to nonimmediate_operand. - (*cmp__cc_i387): Ditto. - -2018-10-03 Martin Sebor - Jeff Law - - * gimple-ssa-sprintf.c (struct fmtresult): Add new member and - initialize it. - (get_string_length): Detect unterminated arrays. - (format_string): Same. - (format_directive): Warn about unterminated arrays. - (handle_gimple_call): Mark statements with no_warning as needed. - -2018-10-03 Jim Wilson - - * config/riscv/riscv-c.c (riscv_cpu_cpp_builtins): For ABI_ILP32E, - also define __riscv_abi_rve. Delete trailing white space. - -2018-10-03 Paul Koning - - Enable LRA register allocator for PDP11. - * config/pdp11/constraints.md (Q): Use define_memory_constraint. - (R): Likewise. - (D): Likewise. - * config/pdp11/pdp11.c (pdp11_lra_p): New function. - * config/pdp11/pdp11.opt (-mlra): New option. - * doc/invoke.texi (PDP-11 Options): Document -mlra. - -2018-10-03 Uros Bizjak - - * config/i386/i386.md (*extendsfdf2): Remove. - (*extendxf2): Ditto. - -2018-10-03 Aldy Hernandez - - PR tree-optimization/87415 - * tree-vrp.c (set_value_range_with_overflow): Special case one bit - precision fields. - -2018-10-02 Jeff Law - - * gimple-fold.c (get_range_strlen): Only set *nonstr when - an unterminated string is discovered. Bubble up range - even for unterminated strings. - (gimple_fold_builtin_strlen): Do not fold if get_range_strlen - indicates the string was not terminated via NONSTR. - -2018-10-03 Aldy Hernandez - - * tree-vrp.c (extract_range_from_unary_expr): Special case all - pointer conversions. - Do not do anything special for anti-ranges. - -2018-10-03 Jérôme Lambourg - - * config/arm/vxworks.h (ARM_TARGET2_DWARF_FORMAT): Adjust to - DW_EH_PE_pcrel | DW_EH_PE_indirect for RTPs. - -2018-10-03 Martin Liska - - PR gcov-profile/86109 - * coverage.c (coverage_begin_function): Do not - mark lambdas as artificial. - * tree-core.h (struct GTY): Remove tm_clone_flag - and introduce new lambda_function. - * tree.h (DECL_LAMBDA_FUNCTION): New macro. - -2018-10-02 Aaron Sawdey - - PR target/87474 - * config/rs6000/rs6000-string.c (expand_strn_compare): Check that both - P8_VECTOR and VSX are enabled. - -2018-10-02 Andreas Krebbel - - * config/s390/driver-native.c (s390_host_detect_local_cpu): Add - 0x3907 as CPU model number. - -2018-10-02 Andreas Krebbel - - * common/config/s390/s390-common.c: Rename PF_ARCH12 to PF_Z14. - * config/s390/s390.h (enum processor_flags): Rename PF_ARCH12 to - PF_Z14. Rename TARGET_CPU_ARCH12 to TARGET_CPU_Z14, - TARGET_CPU_ARCH12_P to TARGET_CPU_Z14_P, TARGET_ARCH12 to - TARGET_Z14, and TARGET_ARCH12_P to TARGET_Z14_P. - * config/s390/s390.md: Likewise. Rename also the cpu attribute - value from arch12 to z14. - -2018-10-02 Uros Bizjak - - * config/i386/i386.md (fxam2_i387_with_temp): Remove. - (isinfxf2): Ditto. - (isinf2): Ditto. - -2018-10-02 Uros Bizjak - - * config/i386/i386.c (ix86_emit_i387_round): Extend op1 to XFmode - before emitting fxam. Perform calculations in XFmode. - -2018-10-02 Marc Glisse - - * match.pd (((X /[ex] A) +- B) * A): New transformation. - -2018-10-02 Marc Glisse - - PR middle-end/87319 - * fold-const.c (fold_plusminus_mult_expr): Handle complex and vectors. - * tree.c (signed_or_unsigned_type_for): Handle complex. - -2018-10-02 Jeff Law - - * gimple-fold.c (get_range_strlen): Remove dead code. - -2018-10-02 Martin Sebor - Jeff Law - - * builtins.c (unterminated_array): Add new arguments. - If argument is not terminated, bubble up size and exact - state to callers. - (expand_builtin_strnlen): Detect, avoid expanding - and diagnose unterminated arrays. - (c_strlen): Fill in offset of start of unterminated strings. - * builtins.h (unterminated_array): Update prototype. - -2018-10-02 Richard Biener - - * config/i386/sse.md (reduc_plus_scal_v4df): Avoid the use - of haddv4df, first reduce to SSE width and exploit the fact - that we only need element zero with the reduction result. - (reduc_plus_scal_v2df): Likewise. - -2018-10-02 Eric Botcazou - - * dojump.h (do_jump): Delete. - (do_jump_1): Likewise. - (split_comparison): Move around. - * dojump.c (do_jump): Make static. - (do_jump_1): Likewise. - (jumpifnot): Move around. - (jumpifnot_1): Likewise. - (jumpif): Likewise. - (jumpif_1): Likewise. - * expr.c (expand_expr_real_1): Call jumpif[not] instead of do_jump. - -2018-10-02 Eric Botcazou - - * reorg.c (make_return_insns): Use emit_copy_of_insn_after for the - insns in the delay slot and add_insn_after for the jump insn. - -2018-10-02 Richard Biener - - * tree-inline.c (expand_call_inline): Use the location of - the callee declaration for the inline-entry marker. - * final.c (notice_source_line): Remove special-casing of - NOTE_INSN_INLINE_ENTRY. - -2018-10-01 Carl Love - - PR 69431 - * config/rs6000/rs6000-builtin.def (__builtin_mffsl): New. - (__builtin_mtfsb0): New. - (__builtin_mtfsb1): New. - ( __builtin_set_fpscr_rn): New. - (__builtin_set_fpscr_drn): New. - * config/rs6000/rs6000.c (rs6000_expand_mtfsb_builtin): Add. - (rs6000_expand_set_fpscr_rn_builtin): Add. - (rs6000_expand_set_fpscr_drn_builtin): Add. - (rs6000_expand_builtin): Add case statement entries for - RS6000_BUILTIN_MTFSB0, RS6000_BUILTIN_MTFSB1, - RS6000_BUILTIN_SET_FPSCR_RN, RS6000_BUILTIN_SET_FPSCR_DRN, - RS6000_BUILTIN_MFFSL. - (rs6000_init_builtins): Add ftype initialization and def_builtin - calls for __builtin_mffsl, __builtin_mtfsb0, __builtin_mtfsb1, - __builtin_set_fpscr_rn, __builtin_set_fpscr_drn. - * config/rs6000.md (rs6000_mtfsb0, rs6000_mtfsb1, rs6000_mffscrn, - rs6000_mffscdrn): Add define_insn. - (rs6000_set_fpscr_rn, rs6000_set_fpscr_drn): Add define_expand. - * doc/extend.texi: Add documentation for the builtins. - -2018-10-01 Richard Biener - - PR tree-optimization/87465 - * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix typo - causing branch miscounts. - -2018-10-01 Tamar Christina - - * common/config/aarch64/aarch64-common.c (TARGET_OPTION_DEFAULT_PARAM, - aarch64_option_default_param): New. - (params.h): Include. - (TARGET_OPTION_VALIDATE_PARAM, aarch64_option_validate_param): New. - * config/aarch64/aarch64.c (aarch64_override_options_internal): Simplify - stack-clash protection validation code. - -2018-10-01 Tamar Christina - - * params.c (validate_param): New. - (add_params): Use it. - (set_param_value): Refactor param validation into validate_param. - (diagnostic.h): Include. - * diagnostic.h (diagnostic_ready_p): New. - -2018-10-01 Tamar Christina - - * params.c (set_param_value): - Add index of parameter being validated. - * common/common-target.def (option_validate_param): New. - * common/common-targhooks.h (default_option_validate_param): New. - * common/common-targhooks.c (default_option_validate_param): New. - * doc/tm.texi.in (TARGET_OPTION_VALIDATE_PARAM): New. - * doc/tm.texi: Regenerate. - -2018-10-01 Tamar Christina - - PR target/86486 - * config/aarch64/aarch64.c (aarch64_override_options_internal): - Add validation for stack-clash parameters and set defaults. - -2018-10-01 Tamar Christina - - PR target/86486 - * configure.ac: Add stack-clash-protection-guard-size. - * doc/install.texi: Document it. - * config.in (DEFAULT_STK_CLASH_GUARD_SIZE): New. - * params.def: Update comment for guard-size. - (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE, - PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Update description. - * configure: Regenerate. - -2018-10-01 Tamar Christina - - PR target/86486 - * config/aarch64/aarch64.h (STACK_CLASH_MIN_BYTES_OUTGOING_ARGS, - STACK_DYNAMIC_OFFSET): New. - * config/aarch64/aarch64.c (aarch64_layout_frame): - Update outgoing args size. - (aarch64_stack_clash_protection_alloca_probe_range, - TARGET_STACK_CLASH_PROTECTION_ALLOCA_PROBE_RANGE): New. - -2018-10-01 Tamar Christina - - PR target/86486 - * explow.c (anti_adjust_stack_and_probe_stack_clash): Support custom - probe ranges. - * target.def (stack_clash_protection_alloca_probe_range): New. - (stack_clash_protection_final_dynamic_probe): Remove. - * targhooks.h (default_stack_clash_protection_alloca_probe_range) New. - (default_stack_clash_protection_final_dynamic_probe): Remove. - * targhooks.c: Likewise. - * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_ALLOCA_PROBE_RANGE): New. - (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE): Remove. - * doc/tm.texi: Regenerate. - -2018-10-01 Tamar Christina - - PR target/86486 - * config/aarch64/aarch64-protos.h (aarch64_output_probe_sve_stack_clash): New. - * config/aarch64/aarch64.c (aarch64_output_probe_sve_stack_clash, - aarch64_clamp_to_uimm12_shift): New. - (aarch64_allocate_and_probe_stack_space): Add SVE specific section. - * config/aarch64/aarch64.md (probe_sve_stack_clash): New. - -2018-10-01 Tamar Christina - - PR target/86486 - * config/aarch64/aarch64.c (aarch64_layout_frame): Add assert. - -2018-10-01 Jeff Law - Richard Sandiford - Tamar Christina - - PR target/86486 - * config/aarch64/aarch64.md - (probe_stack_range): Add k (SP) constraint. - * config/aarch64/aarch64.h (STACK_CLASH_CALLER_GUARD, - STACK_CLASH_MAX_UNROLL_PAGES): New. - * config/aarch64/aarch64.c (aarch64_output_probe_stack_range): Emit - stack probes for stack clash. - (aarch64_allocate_and_probe_stack_space): New. - (aarch64_expand_prologue): Use it. - (aarch64_expand_epilogue): Likewise and update IP regs re-use criteria. - (aarch64_sub_sp): Add emit_move_imm optional param. - -2018-10-01 MCC CS - - PR tree-optimization/87261 - * match.pd: Remove trailing whitespace. - Add (x & y) | ~(x | y) -> ~(x ^ y), - (~x | y) ^ (x ^ y) -> x | ~y and (x ^ y) | ~(x | y) -> ~(x & y) - -2018-10-01 Claudiu Zissulescu - - * config/arc/arc.md (*add_n): Clean up pattern, update instruction - constraints. - (ashlsi3_insn): Update instruction constraints. - (ashrsi3_insn): Likewise. - (rotrsi3): Likewise. - (add_shift): Likewise. - * config/arc/constraints.md (Csz): New 32 bit constraint. It - avoids placing in the limm field small constants which, otherwise, - could end into a small instruction. - -2018-10-01 Claudiu Zissulescu - - * config/arc/arc.md (maddsidi4_split): Don't use dmac if the - destination register is not odd-even. - (umaddsidi4_split): Likewise. - -2018-10-01 Richard Biener - - * tree-inline.c (expand_call_inline): Store origin of fn - in BLOCK_ABSTRACT_ORIGIN for the inline BLOCK. - * tree.c (block_ultimate_origin): Simplify and do some - checking. - -2018-09-30 Uros Bizjak - - * config/i386/mmx.md (EMMS): New int iterator. - (emms): New int attribute. - (mmx_): Macroize insn from *mmx_emms and *mmx_femms using - EMMS int iterator. Explicitly declare clobbers. - (mmx_emms): Remove expander. - (mmx_femms): Ditto. - * config/i386/predicates.md (emms_operation): Remove predicate. - (vzeroall_pattern): New predicate. - (vzeroupper_pattern): Rename from vzeroupper_operation. - * config/i386/i386.c (ix86_avx_u128_mode_after): Use - vzeroupper_pattern and vzeroall_pattern predicates. - -2018-09-30 Peter Bergner - - PR rtl-optimization/86939 - * ira-lives.c (make_hard_regno_born): Rename from this... - (make_hard_regno_live): ... to this. Remove update to conflict - information. Update function comment. - (make_hard_regno_dead): Add conflict information update. Update - function comment. - (make_object_born): Rename from this... - (make_object_live): ... to this. Remove update to conflict information. - Update function comment. - (make_object_dead): Add conflict information update. Update function - comment. - (mark_pseudo_regno_live): Call make_object_live. - (mark_pseudo_regno_subword_live): Likewise. - (mark_hard_reg_dead): Update function comment. - (mark_hard_reg_live): Call make_hard_regno_live. - (process_bb_node_lives): Likewise. - * lra-lives.c (make_hard_regno_born): Rename from this... - (make_hard_regno_live): ... to this. Remove update to conflict - information. Remove now uneeded check_pic_pseudo_p argument. - Update function comment. - (make_hard_regno_dead): Add check_pic_pseudo_p argument and add update - to conflict information. Update function comment. - (mark_pseudo_live): Remove update to conflict information. Update - function comment. - (mark_pseudo_dead): Add conflict information update. - (mark_regno_live): Call make_hard_regno_live. - (mark_regno_dead): Call make_hard_regno_dead with new arguement. - (process_bb_lives): Call make_hard_regno_live and make_hard_regno_dead. - -2018-09-29 H.J. Lu - - PR target/87370 - * config/i386/i386.c (construct_container): Use TImode for - BLKmode values in 2 integer registers. - -2018-09-29 Jeff Law - - * builtins.c (unterminated_array): Pass in c_strlen_data * to - c_strlen rather than just a tree *. - (c_strlen): Change NONSTR argument to a c_strlen_data pointer. - Update recursive calls appropriately. If caller did not provide a - suitable data pointer, create a local one. When a non-terminated - string is discovered, bubble up information about the string via the - c_strlen_data object. - * builtins.h (c_strlen): Update prototype. - (c_strlen_data): New structure. - * gimple-fold.c (get_range_strlen): Update calls to c_strlen. - For a type 2 call, if c_strlen indicates a non-terminated string - use the length of the non-terminated string. - (gimple_fold_builtin_stpcpy): Update calls to c_strlen. - -2018-09-29 Jakub Jelinek - - PR target/87467 - * config/i386/avx512fintrin.h (_mm512_abs_pd, _mm512_mask_abs_pd): Use - __m512d type for __A argument rather than __m512. - -2018-09-28 John David Anglin - - * match.pd (simple_comparison): Don't optimize if either operand is - a function pointer when target needs function pointer canonicalization. - -2018-09-28 Segher Boessenkool - - * config/rs6000/driver-rs6000.c (asm_names): Adjust the entries for - power5 .. power9 to remove indirection. - * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC, ASM_CPU_POWER6_SPEC, - ASM_CPU_POWER7_SPEC, ASM_CPU_POWER8_SPEC, ASM_CPU_POWER9_SPEC, - ASM_CPU_476_SPEC): Delete. - (ASM_CPU_SPEC): Adjust. - (EXTRA_SPECS): Delete asm_cpu_power5, asm_cpu_power6, asm_cpu_power7, - asm_cpu_power8, asm_cpu_power9, asm_cpu_476. - -2018-09-28 Segher Boessenkool - - * config.in: Delete HAVE_AS_DCI. - * config/powerpcspe/powerpcspe.h: Treat HAVE_AS_DCI as always true. - * config/rs6000/rs6000.h: Ditto. - * configure.ac: Delete HAVE_AS_DCI. - * configure: Regenerate. - -2018-09-28 Segher Boessenkool - - * config.in (HAVE_AS_LWSYNC): Delete. - * config/powerpcspe/powerpcspe.h (TARGET_LWSYNC_INSTRUCTION): Delete. - * config/powerpcspe/sync.md (*lwsync): Always generate lwsync, never - do it as a .long . - * config/rs6000/rs6000.h (TARGET_LWSYNC_INSTRUCTION): Delete. - * config/rs6000/sync.md (*lwsync): Always generate lwsync, never do it - as a .long . - * configure.ac: Delete HAVE_AS_LWSYNC. - * configure: Regenerate. - -2018-09-28 Eric Botcazou - Pierre-Marie de Rodat - - * calls.c (expand_call): Try to do a tail call for thunks at -O0 too. - * cgraph.h (struct cgraph_thunk_info): Add indirect_offset. - (cgraph_node::create_thunk): Add indirect_offset parameter. - (thunk_adjust): Likewise. - * cgraph.c (cgraph_node::create_thunk): Add indirect_offset parameter - and initialize the corresponding field with it. - (cgraph_node::dump): Dump indirect_offset field. - * cgraphclones.c (duplicate_thunk_for_node): Deal with indirect_offset. - * cgraphunit.c (cgraph_node::analyze): Be prepared for external thunks. - (thunk_adjust): Add indirect_offset parameter and deal with it. - (cgraph_node::expand_thunk): Deal with the indirect_offset field and - pass it to thunk_adjust. Do not call the target hook if it's non-zero - or if the thunk is external or local. Fix formatting. Do not chain - the RESULT_DECL to BLOCK_VARS. Pass the static chain to the target, - if any, in the GIMPLE representation. - * ipa-icf.c (sem_function::equals_wpa): Deal with indirect_offset. - * lto-cgraph.c (lto_output_node): Write indirect_offset field. - (input_node): Read indirect_offset field. - * tree-inline.c (expand_call_inline): Pass indirect_offset field in the - call to thunk_adjust. - * tree-nested.c (struct nesting_info): Add thunk_p field. - (create_nesting_tree): Set it. - (convert_all_function_calls): Copy static chain from targets to thunks. - (finalize_nesting_tree_1): Return early for thunks. - (unnest_nesting_tree_1): Do not finalize thunks. - (gimplify_all_functions): Do not gimplify thunks. - -2018-09-28 David Malcolm - - * opt-suggestions.c (option_proposer::build_option_suggestions): - Release "option_values". - -2018-09-28 David Malcolm - - * coverage.c (get_coverage_counts): Convert problem-reporting dump - messages from MSG_OPTIMIZED_LOCATIONS to MSG_MISSED_OPTIMIZATION. - * dumpfile.c (kind_as_string): New function. - (dump_loc): Rather than a hardcoded prefix of "note: ", use - kind_as_string to vary the prefix based on dump_kind. - (selftest::test_capture_of_dump_calls): Update for above. - -2018-09-28 Uros Bizjak - - * config/i386/i386.h (SSE_REGNO): Fix check for FIRST_REX_SSE_REG. - (GET_SSE_REGNO): Rename from SSE_REGNO. Update all uses for rename. - -2018-09-28 Uros Bizjak - - * config/i386/i386.h (CC_REGNO): Remove FPSR_REG. - * config/i386/i386.c (ix86_fixed_condition_code_regs): Use - INVALID_REGNUM instead of FPSR_REG. - (ix86_md_asm_adjust): Do not clobber FPSR_REG. - * config/i386/i386.md: Update comment of FP compares. - (fldenv): Do not clobber FPSR_REG. - -2018-09-28 Richard Biener - - * tree.h (BLOCK_ORIGIN): New. - * omp-expand.c (grid_expand_target_grid_body): Assign - BLOCK_ORIGIN to BLOCK_ABSTRACT_ORIGIN. - * tree-inline.c (remap_block): Likewise. - * auto-profile.c (get_function_decl_from_block): Simplify - by eliding the BLOCK_ABSTRACT_ORIGIN chasing. - * langhooks.c (lhd_print_error_function): Likewise. - * optinfo-emit-json.cc (optrecord_json_writer::inlining_chain_to): - Likewise. - * tree-ssa-live.c (remove_unused_scope_block_p): Likewise. - * tree.c (block_nonartificial_location): Likewise. - (block_ultimate_origin): Likewise. - * tree-pretty-print.c (percent_K_format): Likewise. Remove - no longer needed LTO case. - -2018-09-28 Andrew Stubbs - Jan Hubicka - Martin Jambor - - * simplify-rtx.c (simplify_merge_mask): New function. - (simplify_ternary_operation): Use it, also see if VEC_MERGEs with the - same masks are used in op1 or op2. - (test_vec_merge): New function. - (test_vector_ops): Call test_vec_merge. - -2018-09-28 Eric Botcazou - - * config/sparc/sparc-protos.h (sparc_branch_cost): Declare. - * config/sparc/sparc.h (BRANCH_COST): Call sparc_branch_cost. - * config/sparc/sparc.c (struct processor_costs): Add branch_cost field. - (cypress_costs): Set it. - (supersparc_costs): Likewise. - (hypersparc_costs): Likewise. - (leon_cost): Likewise. - (leon3_costs): Likewise. - (sparclet_costs): Likewise. - (ultrasparc_costs): Likewise. - (ultrasparc_costs): Likewise. - (niagara_costs): Likewise. - (niagara2_costs): Likewise. - (niagara3_costs): Likewise. - (niagara4_costs): Likewise. - (niagara7_costs): Likewise. - (m8_costs): Likewise. - (TARGET_CAN_FOLLOW_JUMP): Define. - (pass_work_around_errata::gate): Minor tweak. - (sparc_option_override): Remove MASK_FSMULD mask for V7 processors. - Do not set both MASK_VIS4 and MASK_VIS4B for M8 processor. - Automaitcally clear MASK_FSMULD mask for V7 processors. - (sparc_can_follow_jump): New static function. - (output_ubranch): Deal with CROSSING_JUMP_P. - (sparc_use_sched_lookahead): Rewrite using switch statement. - (sparc_issue_rate): Reorder. - (sparc_branch_cost): New function. - -2018-09-27 Martin Sebor - - * tree.h (tree_to_shwi): Add attribute nonnull and pure. - (tree_to_poly_int64, tree_to_uhwi, tree_to_poly_uint64): Same. - (int_fits_type_p): Same. - -2018-09-27 Uros Bizjak - - * config/i386/i386.md (FPCR_REG): Remove. - (UNSPEC_FLDCW): Remove. - (x86_fnstcw_1): Use (const_int 0) instead of FPCR_REG. - (x86_fldcw_1): Remove insn pattern. - (fnstenv): Do not clobber FPCR_REG. - (fldenv): Ditto. - * config/i386/i386.h (FIXED_REGISTERS) Remove fpsr register. - (CALL_USED_REGISTERS): Ditto. - (REG_ALLOC_ORDER): Ditto. - (REG_CLASS_CONTENTS): Ditto. - (HI_REGISTER_NAMES): Ditto. - (ADDITIONAL_REGISTER_NAMES): Use defines instead - of numerical constants. - * config/i386/i386.c (regclass_map): Remove fpsr register. - (dbx_register_map): Ditto. - (dbx64_register_map): Ditto. - (svr4_dbx_register_map): Ditto. - (print_reg): Do not handle FPCR_REG. - -2018-09-27 Segher Boessenkool - - PR target/87149 - * config.in (HAVE_AS_CMPB, HAVE_AS_DFP, HAVE_AS_FPRND, HAVE_AS_MFPGPR, - HAVE_AS_POPCNTB, HAVE_AS_POPCNTD, HAVE_AS_POWER8, HAVE_AS_POWER9): - Delete, always treat as true. - * config/powerpcspe/powerpcspe.c (rs6000_option_override_internal): - Ditto. Simplify remaining code. - * config/powerpcspe/powerpcspe.h: Ditto. - * config/rs6000/rs6000.c (rs6000_option_override_internal): Ditto. - Simplify remaining code. - (rs6000_expand_builtin): Ditto. - * config/rs6000/rs6000.h: Ditto. - * configure.ac: Ditto. - * configure: Regenerate. - -2018-09-27 Martin Liska - - * coverage.c (get_coverage_counts): Revert the formatting - of missing profile opt info. - -2018-09-27 Richard Biener - - PR debug/37801 - PR debug/87440 - * dwarf2out.c (set_block_origin_self): Do not mark outermost - block as we do not output that. - (gen_inlined_subroutine_die): Elide the originally outermost - block, matching what we do for concrete instances. - (decls_for_scope): Add parameter specifying whether to recurse - to subblocks. - -2018-09-27 Andrew Stubbs - Tom de Vries - - PR 82089 - - * expmed.c (emit_cstore): Fix handling of result_mode == BImode and - STORE_FLAG_VALUE == 1. - -2018-09-27 Andreas Krebbel - - * config/s390/s390.md (PPA_TX_ABORT, PPA_OOO_BARRIER): New - constant definitions. - ("tx_assist"): Replace magic number with PPA_TX_ABORT. - ("*ppa"): Enable pattern also for -march=zEC12 -mno-htm. - ("speculation_barrier"): New expander definition. - -2018-09-26 Indu Bhagat - - PR gcov-profile/86957 - * common.opt: New warning option -Wmissing-profile. - * coverage.c (get_coverage_counts): Add warning for missing .gcda file. - * doc/invoke.texi: Document -Wmissing-profile. - -2018-09-26 Jim Wilson - - * config/riscv/riscv.md (subsi3_extended2): Add J constraint. - (negdi2, negsi2, negsi2_extended, negsi2_extended2): New. - -2018-09-26 Martin Sebor - - * tree.c (zerop): Change return type to bool. - (integer_zerop, integer_onep, integer_each_onep): Same. - (integer_all_onesp, integer_minus_onep, integer_pow2p): Same. - (integer_nonzerop, integer_truep, tree_ctz, real_zerop): Same. - (real_onep, real_minus_onep, chain_index): Same. - (print_type_hash_statistics, type_list_equal): Same. - * tree.h (zerop): Same. - (zerop, integer_zerop, integer_onep, integer_each_onep): Same. - (integer_all_onesp, integer_minus_onep, integer_pow2p): Same. - (integer_nonzerop, integer_truep, tree_ctz, real_zerop): Same. - (real_onep, real_minus_onep, chain_index): Same. - (print_type_hash_statistics, type_list_equal): Same. - -2018-09-26 Jim Wilson - - * config/riscv/riscv.h (FUNCTION_ARG_REGNO_P): Fix comment. - -2018-09-26 Jakub Jelinek - - PR target/87414 - * config/i386/i386.c: Include debug.h and dwarf2out.h. - (output_indirect_thunk): Emit DW_CFA_def_cfa_offset after the - call. - -2018-09-25 Andrew Stubbs - - * builtins.c (get_builtin_sync_mem): Force address mode conversion. - -2018-09-26 Uros Bizjak - - * config/i386/i386.h (enum reg_class): Remove FP_TOP_SSE_REGS - and FP_SECOND_SSE_REGS. - (REG_CLASS_NAMES): Ditto. - (REG_CLASS_CONTENTS): Ditto. - * config/i386/i386.c (ix86_preferred_reload_class) Do not handle - FP_TOP_SSE_REGS and FP_SECOND_SSE_REGS classes. - (ix86_preferred_output_reload_class): Ditto. - * config/i386/i386.md (fix_trunc_i387_fisttp): Change "=&1f" - clobber constraint to "=&f". - (fix_truncdi_i387): Ditto. - (lrintxfdi2): Ditto. - (fistdi2_): Ditto. - (fpremxf4_i387): Change "=u" constraint to "=f". - (fprem1xf4_i387): Ditto. - (sincosxf3): Ditto. - (fptanxf4_i387): Ditto. - (fxtractxf3_i387): Ditto. - (fscalexf4_i387): Ditto. - (atan2xf3): Change "u" constraint to "f". - (fyl2xxf3_i387): Ditto. - (fyl2xp1xf3_i387): Ditto. - -2018-09-26 Uros Bizjak - - PR target/87439 - * config/i386/i386.h (NUM_MODES_FOR_MODE_SWITCHING): Update - for removed I387_MASK_PM entity. - - -2018-09-26 Jeff Law - Revert - 2018-09-26 Alexey Neyman - - * graphite.h: Include and ; these - headers are no longer pulled in by . - -2018-09-26 Richard Biener - - PR debug/87443 - * dwarf2out.c (gen_lexical_block_die): Do not equate inline - or concrete instance DIE to the tree. Create abstract origin - attributes also for concrete instances. - -2018-09-26 Alexey Neyman - - * graphite.h: Include and ; these - headers are no longer pulled in by . - -2018-09-26 Matthew Malcomson - - * config/arm/arm.c (arm_split_compare_and_swap, arm_split_atomic_op): - Use new helper functions. - * config/arm/sync.md (atomic_load, atomic_store): - Use new helper functions. - * config/arm/aarch-common-protos.h (aarch_mm_needs_acquire, - aarch_mm_needs_release): New declarations. - * config/arm/aarch-common.c (aarch_mm_needs_acquire, - aarch_mm_needs_release): New. - -2018-09-26 Eric Botcazou - - * config/arm/arm.c (arm_reorg): Skip Thumb reorg pass for thunks. - (arm32_output_mi_thunk): Deal with long calls. - -2018-09-26 Richard Biener - - PR debug/87428 - PR debug/87362 - * tree-inline.c (expand_call_inline): When the location - of the call is UNKNOWN_LOCATION use DECL_SOURCE_LOCATION - or BUILTINS_LOCATION for the BLOCK_SOURCE_LOCATION of - the inserted BLOCK to make inlined_function_outer_scope_p - recognize it. - * dwarf2out.c (add_call_src_coords_attributes): Do not add - coords for reserved locations. - -2018-09-25 Segher Boessenkool - - * config/rs6000/rs6000.md (*movcc_internal1): Use set_attr_alternative. - (*call_indirect_nonlocal_sysv): Ditto. - (*call_value_indirect_nonlocal_sysv): Ditto. - (*sibcall_nonlocal_sysv): Ditto. - (*sibcall_value_nonlocal_sysv): Ditto. - (_): Ditto. - (tf_): Ditto. - -2018-09-25 Segher Boessenkool - - * config/rs6000/altivec.md (*altivec_mov): Write the output - control string as a list of templates instead of as C code. - (*altivec_movti): Ditto. - * config/rs6000/darwin.md (movdf_low_di): Ditto. - -2018-09-25 Jim Wilson - - * config/riscv/riscv.c (riscv_split_symbol): Mark auipc label as weak - when target symbol is weak. - -2018-09-25 Bernd Edlinger - - PR c/87387 - * builtins.c (unterminated_array): Simplify. - * expr.c (string_constant): Handle SSA_NAME. Add more exceptions - where pointer arithmetic is safe. - -2018-09-25 Segher Boessenkool - - PR target/86987 - * config/rs6000/altivec.md (altivec_vspltb): Use - const_0_to_15_operand instead of u5bit_cint_operand. - (*altivec_vspltb_internal): Ditto. - (altivec_vspltb_direct): Ditto. - (altivec_vsplth): Use const_0_to_7_operand instead of - u5bit_cint_operand. - (*altivec_vsplth_internal): Ditto. - (altivec_vsplth_direct): Ditto. - (altivec_vspltw): Use const_0_to_3_operand instead of - u5bit_cint_operand. - (*altivec_vspltw_internal): Ditto. - (altivec_vspltw_direct): Ditto. - (altivec_vspltsf): Ditto. - (*altivec_vspltsf_internal): Ditto. - * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Handle the - various splats with the proper size immediate. Reorder the various - cases by ascending size of immediate, and put all such together. - -2018-09-25 Richard Biener - - PR debug/83941 - * dwarf2out.c (add_AT_external_die_ref): Remove now redundant - GC-ification. - (maybe_create_die_with_external_ref): Do not create - DW_TAG_imported_unit here. - (add_abstract_origin_attribute): Handle external BLOCK refs. - (dwarf2out_abstract_function): Simplify LTO case. - (dwarf2out_early_finish): Create DW_TAG_imported_unit explicitely - rather than using maybe_create_die_with_external_ref. - -2018-09-25 Uros Bizjak - - PR target/71278 - * config/i386/i386.md (frndintxf2_mask_pm): Remove. - (frndintxf2_mask_pm_i387): Ditto. - (nearbyintxf2): Rewrite expander pattern to match rintxf2. - Enable for !flag_trapping_math. - (nearbyint2): Enable x87 modes for !flag_trapping_math. - Enable SSE modes for TARGET_SSE4_1 and expand them with round insn. - Change operand 1 predicate to nonimmediate_operand. - (attr "i387_cw"): Remove mask_pm. - * config/i386/i386.h (enum ix86_stack_slot): Remove SLOT_CW_MASK_PM. - (enum ix86_entity): Remove I387_MASK_PM. - * config/i386/i386.c (ix86_i387_mode_needed): Do not - handle I387_MASK_PM. - (ix86_mode_needed): Ditto. - (ix86_mode_after): Ditto. - (ix86_mode_entry): Ditto. - (ix86_mode_exit): Ditto. - (emit_i387_cw_initialization): Do not handle I387_CW_MASK_PM. - -2018-09-25 Jakub Jelinek - - * vr-values.c (vr_values::vr_values): Initialize to_remove_edges and - to_update_switch_stmts to vNULL instead of calling create on them - immediately. - -2018-09-25 Richard Biener - - PR tree-optimization/87402 - * tree-ssa-sccvn.c (SSA_VISITED): Remove unused function. - (visit_phi): Re-instantiate handling of supposed to be VARYING - but non-VARYING backedge value. - -2018-09-25 Richard Biener - - PR debug/83941 - * dwarf2out.c (struct sym_off_pair): New. - (external_die_map): New global. - (lookup_decl_die): When in LTO create DIEs lazily from the - external_die_map. - (lookup_block_die): New function, create DIEs lazily in LTO. - (equate_block_to_die): New function. - (dwarf2out_die_ref_for_decl): During WPA get the association - from the external DIE map. - (dwarf2out_register_external_die): Record mapping into the - external DIE map. - (maybe_create_die_with_external_ref): New function split out from - DIE generation part of old dwarf2out_register_external_die. - (add_abstract_origin_attribute): Do not return the DIE. When - in LTO reference externals directly. - (dwarf2out_abstract_function): When in LTO ignore calls for - decls with external DIEs (already present abstract instances). - (gen_call_site_die): Adjust. - (add_high_low_attributes): Likewise. - (gen_lexical_block_die): Likewise. - (gen_inlined_subroutine_die): Likewie. - (gen_block_die): Likewise. - (dwarf2out_inline_entry): Likewise. - (dwarf2out_early_finish): In LTRANS phase create DW_TAG_imported_unit - DIEs. - -2018-09-25 Martin Liska - - * ipa-fnsummary.c (estimate_node_size_and_time): Scale by two - integers and not by a float value. - -2018-09-25 Martin Liska - - PR fortran/87394 - * dbgcnt.c (dbg_cnt_process_single_pair): Return false - instead of NULL. - * dumpfile.c (dump_enable_all): Remove extra parenthesis. - * gcov-tool.c: Declare the function with ATTRIBUTE_NORETURN. - * godump.c (go_format_type): Remove extra parenthesis. - -2018-09-25 Martin Liska - - * alias.c (set_dest_equal_p): Remove unused function. - * config/i386/i386.c (def_builtin_pure2): Likewise. - * diagnostic-show-locus.c (class layout): Remove - unused field. - (layout::layout): Likewise here. - * dump-context.h (class temp_dump_context): Likewise. - * dwarf2out.c (add_AT_fde_ref): Remove unused function. - (add_AT_loclistsptr): Likewise. - (add_AT_offset): Likewise. - (get_AT_hi_pc): Likewise. - (is_comdat_die): Likewise. - (type_is_enum): Likewise. - (ceiling): Likewise. - (add_AT_vms_delta): Likewise. - (is_class_die): Likewise. - * edit-context.c (class line_event): Remove unused field. - * graphite-sese-to-poly.c (tree_int_to_gmp): Remove - unused function. - * ipa-cp.c (ipa_get_vr_lat): Likewise. - * lra-constraints.c (ok_for_index_p_nonstrict): Likewise. - (ok_for_base_p_nonstrict): Likewise. - * tree-chrec.c (is_not_constant_evolution): Likewise. - (chrec_fold_poly_cst): Likewise. - * tree-if-conv.c (has_pred_critical_p): Likewise. - * tree-ssa-coalesce.c (print_exprs): Likewise. - * tree-ssa-pre.c (bitmap_set_contains_expr): Likewise. - * tree-ssa-uninit.c (is_and_or_or_p): Likewise. - * tree-vrp.c (value_ranges_intersect_p): Likewise. - (value_range_nonnegative_p): Likewise. - -2018-09-25 Martin Liska - - * config/powerpcspe/powerpcspe.c (rs6000_output_function_epilogue): - Do not handle "GNU Pascal". - * config/rs6000/rs6000.c (rs6000_output_function_epilogue): - Likewise. - * config/sparc/sparc.c (sparc_pass_by_reference): Remove Pascal - from documentation. Likewise. - * dbxout.c (dbxout_range_type): Likewise. - * doc/cpp.texi: Likewise. - * doc/extend.texi: Likewise. - * doc/frontends.texi: Likewise. - * doc/invoke.texi: Remove Pascal entry. - * tree.def (CLEANUP_POINT_EXPR): Likewise. - * doc/rtl.texi (MODE_FUNCTION): Remove not used entry. - -2018-09-25 Martin Liska - - PR middle-end/86078 - * doc/invoke.texi: Document all parameters and remove default - of the parameters. - -2018-09-25 Ilya Leoshkevich - - PR bootstrap/87417 - * rtl.c (rtx_code_size): Take into account that EQ_ATTR_ALT - contains HOST_WIDE_INTs when computing its size. - -2018-09-24 Jim Wilson - - PR target/87391 - * config/riscv/riscv.h (STACK_BOUNDARY): Test riscv_abi == ABI_ILP32E - not TARGET_RVE. - (ABI_STACK_BOUNDARY, MAX_ARGS_IN_REGISTERS): Likewise. - -2018-09-24 Andrew Pinski - - * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Don't - access prev before checking it for NULLness in the - AARCH64_FUSE_CMP_BRANCH case. - -2018-09-24 H.J. Lu - - PR target/82699 - * config/i386/i386.c (rest_of_insert_endbranch): Set - endbr_queued_at_entrance to true and don't insert ENDBR if - x86_function_profiler will be called. - (x86_function_profiler): Insert ENDBR if endbr_queued_at_entrance - is true. - * config/i386/i386.h (machine_function): Add - endbr_queued_at_entrance. - -2018-09-24 Ilya Leoshkevich - - * genattrtab.c (mk_attr_alt): Use alternative_mask. - (attr_rtx_1): Adjust caching to match the new EQ_ATTR_ALT field - types. - (check_attr_test): Use alternative_mask. - (get_attr_value): Likewise. - (compute_alternative_mask): Use alternative_mask and XWINT. - (make_alternative_compare): Use alternative_mask. - (attr_alt_subset_p): Use XWINT. - (attr_alt_subset_of_compl_p): Likewise. - (attr_alt_intersection): Use alternative_mask and XWINT. - (attr_alt_union): Likewise. - (attr_alt_complement): Use HOST_WIDE_INT and XWINT. - (mk_attr_alt): Use alternative_mask and HOST_WIDE_INT. - (simplify_test_exp): Use alternative_mask and XWINT. - (write_test_expr): Use alternative_mask and XWINT, adjust bit - number calculation to support 64 bits. Generate code that - checks 64-bit masks. - (main): Use alternative_mask. - * rtl.def (EQ_ATTR_ALT): Change field types from ii to ww. - -2018-09-24 Ilya Leoshkevich - - PR target/80080 - * config/s390/s390.c (s390_emit_epilogue): Do not use PARALLEL - RETURN+USE when returning via %r14. - -2018-09-24 Martin Liska - - * gcov.c (output_lines): Print colorization legend - for both flag_use_colors and flag_use_hotness_colors. - Reword the help. - -2018-09-24 Martin Liska - - * coverage.c (get_coverage_counts): Use warning_at - with current_function_decl location. Use %qD in warning - message. - -2018-09-24 Martin Liska - - * memory-block.h (memory_block_pool::release): Annotate with - valgrind that the memory is not accessible. - -2018-09-24 Martin Liska - - PR sanitizer/85774 - * asan.c: Make asan_handled_variables extern. - * asan.h: Likewise. - * cfgexpand.c (expand_stack_vars): Make sure - a representative is unpoison if another - variable in the partition is handled by - use-after-scope sanitization. - -2018-09-24 Richard Biener - - PR tree-optimization/63155 - * tree-ssa-propagate.c (add_ssa_edge): Avoid adding PHIs to - the worklist when the edge of the respective argument isn't - executable. - -2018-09-23 Uros Bizjak - - * config/i386/i386.h (enum reg_class): Rename MASK_REGS to - ALL_MASK_REGS and MASK_EVEX_REGS to MASK_REGS. - (MASK_CLASS_P): Update for rename. - (MAYBE_MASK_CLASS_P): Ditto. - (REG_CLASS_NAMES): Update. - (REG_CLASS_CONTENT): Update. - * config/i386/i386.c (regclass_map): Update for MASK_REG - and ALL_MASK_REGS rename. - * config/i386/constraints.md (Yk): Update for rename. - (k): Ditto. - -2018-09-23 Uros Bizjak - - * config/i386/i386.h (enum reg_class): Remove - EVEX_SSE_REGS and MOD4_SSE_REGS. - (REG_CLASS_NAMES): Update. - (REG_CLASS_CONTENT): Update. - * config/i386/i386.c (regclass_map): Declare AVX-512 SSE - registers as ALL_SSE_REGS. - (ix86_additional_allocno_class_p): Remove. - (TARGET_ADDITIONAL_ALLOCNO_CLASS_P): Remove. - (ix86_register_priority): Lower priority of EVEX SSE registers. - Use IN_RANGE macro where appropriate. - (ix86_hard_regno_mode_ok): Merge AVX-5124FMAPS and - AVX-5124VNNIW checks. - (ix86_modes_tieable_p): Tie 512-bit SSE modes. - * config/i386/sse.md (avx5124fmaddps_4fmaddps) - (avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddps_maskz) - (avx5124fmaddps_4fmaddss, avx5124fmaddps_4fmaddss_mask) - (avx5124fmaddps_4fmaddss_maskz, avx5124fmaddps_4fnmaddps) - (avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddps_maskz) - (avx5124fmaddps_4fnmaddss, avx5124fmaddps_4fnmaddss_mask) - (avx5124fmaddps_4fnmaddss_maskz, avx5124vnniw_vp4dpwssd) - (avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssd_maskz) - (avx5124vnniw_vp4dpwssds, avx5124vnniw_vp4dpwssds_mask) - (avx5124vnniw_vp4dpwssds_maskz): Use "v" instead of "Yh" constraint. - * config/i386/constraints.md (Yh): Remove. - -2018-09-23 Uros Bizjak - - * config/i386/i386.c (regclass_map): Declare integer REX registers - as GENERAL_REGS. - -2018-09-23 Gerald Pfeifer - - * doc/service.texi (Service): Switch the fsf.org link to https. - -2018-09-22 Chung-Ju Wu - - PR target/86798 - * config/nds32/nds32.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): - Define to speculation_safe_value_not_needed. - -2018-09-21 Florian Weimer - - PR middle-end/81035 - * doc/extend.texi (Common Function Attributes): Mention that - noreturn suppresses tail call optimization. - -2018-09-21 Jeff Law - - * gimple-ssa-evrp.c (evrp_dom_walker::cleanup): Call - vr_values::cleanup_edges_and_switches. - * tree-vrp.c (to_remove_edges, to_update_switch_stmts): Moved into - vr_values class. - (identify_jump_threads): Remove EDGE_IGNORE handling. - (execute_vrp): Move handling of to_remove_edges and - to_update_switch_stmts into vr_values class member functions. - * tree-vrp.h (switch_update, to_remove_edges): Remove declarations. - (to_update_switch_stmts): Likewise. - * vr-values.c: Include cfghooks.h. - (vr_values::vr_values): Initialize to_remove_edges and - to_update_switch_stmts. - (vr_values::~vr_values): Verify to_remove_edges and - to_update_switch_stmts are empty. - (vr_values::simplify_switch_using_ranges): Set EDGE_IGNORE as needed. - (vr_values::cleanup_edges_and_switches): New member function. - * vr-values.h (vr_values): Add cleanup_edges_and_switches member - function. Add new data members. - -2018-09-21 David Malcolm - - PR tree-optimization/87309 - * dumpfile.c (dump_context::begin_scope): Filter the dump_loc - calls with pflags and alt_flags. - (selftest::test_capture_of_dump_calls): Add test of interaction of - MSG_OPTIMIZED_LOCATIONS with AUTO_DUMP_SCOPE. - -2018-09-21 Olivier Hainque - - * config.gcc: Factorize and comment inclusion of vxworks-dummy.h. - -2018-09-21 Olivier Hainque - - * config/vxworks.h (CLEAR_INSN_CACHE): #define to 1. - -2018-09-21 Olivier Hainque - - * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Remove -lc_internal. - Merge block comment with the one ahead of VXWORKS_LIBS_RTP. Then: - (VXWORKS_LIBS_RTP): Minor reordering. - -2018-09-21 Olivier Hainque - - * config/vxworks.h (STARTFILE_PREFIX_SPEC): Define. - (VXWORKS_LIBS_DIR_RTP): Remove definition and use. - -2018-09-21 Olivier Hainque - - * config/vxworks.h (SIZE_TYPE): Account for TARGET_VXWORKS64. - (PTRDIFF_TYPE): Likewise. - -2018-09-21 Olivier Hainque - - * config.gcc: Enforce def of TARGET_VXWORKS64 to 1 from - triplet, similar to support for VxWorks7. - * config/vxworks-dummy.h: Provide a default definition - of TARGET_VXWORKS64 to 0. - -2018-09-21 Olivier Hainque - - * config/vxworks.h (TARGET_VXWORKS7): Move default definition ... - * config/vxworks-dummy.h: here. - -2018-09-21 Olivier Hainque - - * config.gcc: Prepend vxworks-dummy.h to tm_file for powerpc* - -2018-09-21 Shaokun Zhang - Bo Zhou - - * config/aarch64/aarch64-cores.def (tsv110): New CPU. - * config/aarch64/aarch64-tune.md: Regenerated. - * doc/invoke.texi (AArch64 Options/-mtune): Add "tsv110". - * config/aarch64/aarch64.c (tsv110_tunings): New tuning table. - * config/aarch64/aarch64-cost-tables.h: Add "tsv110" extra costs. - -2018-09-21 Andrew Stubbs - Julian Brown - - * builtins.c (get_builtin_sync_mem): Handle address spaces. - -2018-09-21 Eric Botcazou - - * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Return false - if the call takes a static chain. - -2018-09-21 Martin Liska - - * auto-profile.c (autofdo_source_profile::read): Do not - set sum_all. - (read_profile): Do not add working sets. - (read_autofdo_file): Remove sum_all. - (afdo_callsite_hot_enough_for_early_inline): Remove const - qualifier. - * coverage.c (struct counts_entry): Remove gcov_summary. - (read_counts_file): Read new GCOV_TAG_OBJECT_SUMMARY, - do not support GCOV_TAG_PROGRAM_SUMMARY. - (get_coverage_counts): Remove summary and expected - arguments. - * coverage.h (get_coverage_counts): Likewise. - * doc/gcov-dump.texi: Remove -w option. - * gcov-dump.c (dump_working_sets): Remove. - (main): Do not support '-w' option. - (print_usage): Likewise. - (tag_summary): Likewise. - * gcov-io.c (gcov_write_summary): Do not dump - histogram. - (gcov_read_summary): Likewise. - (gcov_histo_index): Remove. - (gcov_histogram_merge): Likewise. - (compute_working_sets): Likewise. - * gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Mark - it not obsolete. - (GCOV_TAG_PROGRAM_SUMMARY): Mark it obsolete. - (GCOV_TAG_SUMMARY_LENGTH): Adjust. - (GCOV_HISTOGRAM_SIZE): Remove. - (GCOV_HISTOGRAM_BITVECTOR_SIZE): Likewise. - (struct gcov_summary): Simplify rapidly just - to runs and sum_max fields. - (gcov_histo_index): Remove. - (NUM_GCOV_WORKING_SETS): Likewise. - (compute_working_sets): Likewise. - * gcov-tool.c (print_overlap_usage_message): Remove - trailing empty line. - * gcov.c (read_count_file): Read GCOV_TAG_OBJECT_SUMMARY. - (output_lines): Remove program related line. - * ipa-profile.c (ipa_profile): Do not consider GCOV histogram. - * lto-cgraph.c (output_profile_summary): Do not stream GCOV - histogram. - (input_profile_summary): Do not read it. - (merge_profile_summaries): And do not merge it. - (input_symtab): Do not call removed function. - * modulo-sched.c (sms_schedule): Do not print sum_max. - * params.def (HOT_BB_COUNT_FRACTION): Reincarnate param that was - removed when histogram method was invented. - (HOT_BB_COUNT_WS_PERMILLE): Mention that it's used only in LTO - mode. - * postreload-gcse.c (eliminate_partially_redundant_load): Fix - GCOV coding style. - * predict.c (get_hot_bb_threshold): Use HOT_BB_COUNT_FRACTION - and dump selected value. - * profile.c (add_working_set): Remove. - (get_working_sets): Likewise. - (find_working_set): Likewise. - (get_exec_counts): Do not work with working sets. - (read_profile_edge_counts): Do not inform as sum_max is removed. - (compute_branch_probabilities): Likewise. - (compute_value_histograms): Remove argument for call of - get_coverage_counts. - * profile.h: Do not make gcov_summary const. - -2018-09-21 Monk Chiang - - * config.gcc (nds32*-*-*): Set TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0. - -2018-09-21 Eric Botcazou - - PR tree-optimization/86990 - * gimple-ssa-store-merging.c (imm_store_chain_info:coalesce_immediate): - Check that the entire merged store group is made of constants only for - overlapping stores. - -2018-09-20 Allan Sandfeld Jensen - - * gcc.c (LINK_COMMAND_SPEC): Handle -r like -nostdlib. - (VTABLE_VERIFICATION_SPEC): Likewise. - (SANITIZER_EARLY_SPEC): Likewise. - (SANITIZER_SPEC): Likewise. - * config/darwin.h (LINK_COMMAND_SPEC): Likewise. - * doc/invoke.texi (Link Options): Document -r. - -2018-09-20 Richard Biener - - PR middle-end/87054 - * gimplify.c (gimplify_expr): Retain alignment of - addressable lvalue in dereference. - -2018-09-20 Alexandre Oliva - - PR bootstrap/87013 - * configure.ac: Check for .loc is_stmt support. - * configure, config.in: Rebuilt. - * dwarf2out.c (dwarf2out_source_line): Skip is_stmt - if not supported. - -2018-09-20 Segher Boessenkool - - * config/rs6000/rs6000.opt (misel=no, misel=yes): Delete. - * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -misel=yes and - -misel=no. - -2018-09-20 Segher Boessenkool - - * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete - VECTOR_OTHER. - * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete - case VECTOR_OTHER. - -2018-09-20 Marek Polacek - - * doc/invoke.texi: Add -Wno-init-list-lifetime to C++ Language Options. - -2018-09-20 Richard Sandiford - - PR tree-optimization/87288 - * tree-vect-loop.c (vect_analyze_loop_2): Take PEELING_FOR_GAPS - into account when determining PEELING_FOR_NITERS. - -2018-09-20 Richard Sandiford - - PR tree-optimization/86877 - * tree-vect-loop.c (vect_analyze_loop_2): Call - vect_verify_datarefs_alignment. - -2018-09-19 Marek Polacek - - * doc/invoke.texi: Document -Wclass-conversion. - -2018-09-19 John David Anglin - - * config/pa/pa.c (pa_adjust_priority): Delete. - (TARGET_SCHED_ADJUST_PRIORITY): Delete define. - - * config/pa/pa.md (atomic_storeqi): Restore deleted expander. - (atomic_storehi): Likewise. - (atomic_storesi): Likewise. - (atomic_loaddi): Restore compare and swap exchange loop code. - -2018-09-19 Segher Boessenkool - - PR rtl-optimization/86902 - * combine.c (try_combine): When changing the CC mode used, don't change - an unrelated mode in other_insn to that new CC mode. - -2018-09-19 David Malcolm - - * tree-data-ref.c (runtime_alias_check_p): Use formatted printing - with %T in place of calls to dump_generic_expr. - (prune_runtime_alias_test_list): Likewise. - (create_runtime_alias_checks): Likewise. - * tree-vect-data-refs.c (vect_check_nonzero_value): Likewise. - (vect_analyze_data_ref_dependence): Likewise. - (vect_slp_analyze_data_ref_dependence): Likewise. - (vect_record_base_alignment): Likewise. Use %G in place of call - to dump_gimple_stmt. - (vect_compute_data_ref_alignment): Likewise. - (verify_data_ref_alignment): Likewise. - (vect_find_same_alignment_drs): Likewise. - (vect_analyze_group_access_1): Likewise. - (vect_analyze_data_ref_accesses): Likewise. - (dependence_distance_ge_vf): Likewise. - (dump_lower_bound): Likewise. - (vect_prune_runtime_alias_test_list): Likewise. - (vect_find_stmt_data_reference): Likewise. - (vect_analyze_data_refs): Likewise. - (vect_create_addr_base_for_vector_ref): Likewise. - (vect_create_data_ref_ptr): Likewise. - * tree-vect-loop-manip.c (vect_set_loop_condition): Likewise. - (vect_can_advance_ivs_p): Likewise. - (vect_update_ivs_after_vectorizer): Likewise. - (vect_gen_prolog_loop_niters): Likewise. - (vect_prepare_for_masked_peels): Likewise. - * tree-vect-loop.c (vect_determine_vf_for_stmt): Likewise. - (vect_determine_vectorization_factor): Likewise. - (vect_is_simple_iv_evolution): Likewise. - (vect_analyze_scalar_cycles_1): Likewise. - (vect_analyze_loop_operations): Likewise. - (report_vect_op): Likewise. - (vect_is_slp_reduction): Likewise. - (check_reduction_path): Likewise. - (vect_is_simple_reduction): Likewise. - (vect_create_epilog_for_reduction): Likewise. - (vect_finalize_reduction:): Likewise. - (vectorizable_induction): Likewise. - (vect_transform_loop_stmt): Likewise. - (vect_transform_loop): Likewise. - (optimize_mask_stores): Likewise. - * tree-vect-patterns.c (vect_pattern_detected): Likewise. - (vect_split_statement): Likewise. - (vect_recog_over_widening_pattern): Likewise. - (vect_recog_average_pattern): Likewise. - (vect_determine_min_output_precision_1): Likewise. - (vect_determine_precisions_from_range): Likewise. - (vect_determine_precisions_from_users): Likewise. - (vect_mark_pattern_stmts): Likewise. - (vect_pattern_recog_1): Likewise. - * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise. - (vect_record_max_nunits): Likewise. - (vect_build_slp_tree_1): Likewise. - (vect_build_slp_tree_2): Likewise. - (vect_print_slp_tree): Likewise. - (vect_analyze_slp_instance): Likewise. - (vect_detect_hybrid_slp_stmts): Likewise. - (vect_detect_hybrid_slp_1): Likewise. - (vect_slp_analyze_operations): Likewise. - (vect_slp_analyze_bb_1): Likewise. - (vect_transform_slp_perm_load): Likewise. - (vect_schedule_slp_instance): Likewise. - * tree-vect-stmts.c (vect_mark_relevant): Likewise. - (vect_mark_stmts_to_be_vectorized): Likewise. - (vect_init_vector_1): Likewise. - (vect_get_vec_def_for_operand): Likewise. - (vect_finish_stmt_generation_1): Likewise. - (vect_check_load_store_mask): Likewise. - (vectorizable_call): Likewise. - (vectorizable_conversion): Likewise. - (vectorizable_operation): Likewise. - (vectorizable_load): Likewise. - (vect_analyze_stmt): Likewise. - (vect_is_simple_use): Likewise. - (vect_get_vector_types_for_stmt): Likewise. - (vect_get_mask_type_for_stmt): Likewise. - * tree-vectorizer.c (increase_alignment): Likewise. - -2018-09-19 Andrew Stubbs - - * doc/rtl.texi: Adjust vec_select description. - * simplify-rtx.c (simplify_binary_operation_1): Allow VEC_SELECT to use - non-constant selectors. - -2018-09-19 Matthew Malcomson - - * config/aarch64/aarch64-protos.h - (aarch64_offset_9bit_signed_unscaled_p): New declaration. - * config/aarch64/aarch64.md (arches): New "rcpc8_4" attribute value. - (arch_enabled): Add check for "rcpc8_4" attribute value of "arch". - * config/aarch64/aarch64.h (AARCH64_FL_RCPC8_4): New bitfield. - (AARCH64_FL_FOR_ARCH8_4): Include AARCH64_FL_RCPC8_4. - (AARCH64_FL_PROFILE): Move index so flags are ordered. - (AARCH64_ISA_RCPC8_4): New flag. - * config/aarch64/aarch64.c (offset_9bit_signed_unscaled_p): Renamed - to aarch64_offset_9bit_signed_unscaled_p. - * config/aarch64/atomics.md (atomic_store): Allow offset - and use stlur. - * config/aarch64/constraints.md (Ust): New constraint. - * config/aarch64/predicates.md. - (aarch64_9bit_offset_memory_operand): New predicate. - (aarch64_rcpc_memory_operand): New predicate. - -2018-09-19 Eric Botcazou - - PR rtl-optimization/87361 - * rtlanal.c (nonzero_bits1): Revert accidental change. - -2018-09-19 Richard Biener - - PR tree-optimization/87349 - PR tree-optimization/87342 - * tree-ssa-sccvn.c (do_rpo_vn): Iterate max_rpo computation. - -2018-09-18 Marek Polacek - - P1064R0 - Allowing Virtual Function Calls in Constant Expressions - * gimple-fold.c (gimple_get_virt_method_for_vtable): Adjust assert. - -2018-09-18 Segher Boessenkool - - * config/rs6000/rs6000.md: Remove old "Cygnus sibcall" comment. - -2018-09-18 Segher Boessenkool - - PR rtl-optimization/86882 - * rtlanal.c (reg_overlap_mentioned_p): Handle CLOBBER. - -2018-09-18 Uros Bizjak - - * config/i386/i386.md (*extendxf2): Macroize insn from - *extendsfxf2 and *extenddfxf2 using MODEF mode iterator. - -2018-09-18 Jonathan Wakely - - PR other/87353 - * doc/invoke.texi (Link Options): Fix formatting and grammar. - -2018-09-18 Richard Biener - - PR middle-end/63155 - * tree-ssa-coalesce.c (tree_int_map_hasher): Remove. - (compute_samebase_partition_bases): Likewise. - (coalesce_ssa_name): Always use compute_optimized_partition_bases. - (gimple_can_coalesce_p): Simplify. - -2018-09-18 Hans-Peter Nilsson - - Handle a library implementation of ffs calling __builtin_ffs. - * config/mmix/mmix.c (TARGET_INIT_LIBFUNCS): Override with... - (mmix_init_libfuncs): New function: make __builtin_ffs expand - to __ffsdi2. - -2018-09-17 David Malcolm - - * diagnostic-show-locus.c (class layout_range): Add field - "m_original_idx". - (layout_range::layout_range): Add "original_idx" param and use it - to initialize new field. - (make_range): Use 0 for original_idx. - (layout::layout): Pass in index to calls to - maybe_add_location_range. - (layout::maybe_add_location_range): Add param "original_idx" and - pass it on to layout_range. - (layout::print_any_labels): Pass on range->m_original_idx to - get_text call. - (gcc_rich_location::add_location_if_nearby): Use 0 for - original_idx. - * gcc-rich-location.h (text_range_label::get_text): Update for new - param. - (range_label_for_type_mismatch::get_text): Likewise. - -2018-09-17 Uros Bizjak - - * config/i386/i386.c (ix86_emit_i387_log1p): Emit fldln2 earlier. - -2018-09-17 David Malcolm - - * gimple-ssa-sprintf.c (fmtwarn): Update for introduction of - format_string_diagnostic_t. - (fmtwarn_n): Likewise. - * substring-locations.c - (format_string_diagnostic_t::format_string_diagnostic_t) New ctor. - (format_warning_n_va): Convert to... - (format_string_diagnostic_t::emit_warning_n_va): ...this. - (format_warning_va): Convert to... - (format_string_diagnostic_t::emit_warning_va): ...this. - (format_warning_at_substring): Convert to... - (format_string_diagnostic_t::emit_warning): ...this. - (format_warning_at_substring_n): Convert to... - (format_string_diagnostic_t::emit_warning_n): ...this. - * substring-locations.h (class format_string_diagnostic_t): New - class. - (format_warning_va): Convert to - format_string_diagnostic_t::emit_warning_va. - (format_warning_n_va): Convert to - format_string_diagnostic_t::emit_warning_n_va. - (format_warning_at_substring): Convert to - format_string_diagnostic_t::emit_warning. - (format_warning_at_substring_n): Convert to - format_string_diagnostic_t::emit_warning_n. - -2018-09-17 Cesar Philippidis - Bernd Schmidt - - * config/nvptx/nvptx.md (atomic_fetch_): Enable with - SImode args. - -2018-09-17 Uros Bizjak - - * config/i386/i386.md (truncxf2_i387_noop_unspec): Change - operand 0 predicate to nonimmediate operand. - (rint2_frndint): Remove insn pattern. - (rint2): Change operand 1 predicate to general_operand. - Extend operand 1 to XFmode and generate rintxf2 insn. - (frndintxf2_): Rename from frndint2_. - Do not use X87MODEF mode macro. - (frndintxf2__i387): Rename from - frndint2__i387. Do not use X87MODEF mode macro. - (2): For non-SSE modes, extend operand 1 - to XFmode and generate significandxf3 insn. - -2018-09-17 Richard Biener - - PR tree-optimization/87328 - * tree-ssa-sccvn.c (process_bb): Remove assertion about not - visiting unexecutable backedges when not iterating. - (do_rpo_vn): Mark all edges not executable even when not - iterating. - -2018-09-17 Martin Jambor - - PR c/63886 - * doc/invoke.texi (Warning Options): Likewise. - -2018-09-17 Richard Biener - - PR tree-optimization/87301 - * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_cleanup): Properly - clean EH info from leftover copy assignments. - -2018-09-17 Martin Liska - - PR gcov-profile/85871 - * gcov.c (output_intermediate_file): Fix out of bounds - access. - -2018-09-17 Vineet Gupta - - * config/arc/arc.c: Object attributes for core4 not reflected - correctly. - * config/arc/arc.h: Don't restrict DBNZ to core3 (core4 includes - core3). - -2018-09-17 Alexey Brodkin - - * config/arc/linux.h (LINK_EH_SPEC): Add missing space. - -2018-09-17 Martin Liska - - * doc/gcov.texi: Document new option --use-hotness-colors. - * gcov.c (struct source_info): Declare new field. - (source_info::source_info): Set default for maximum_count. - (print_usage): Add new -q option. - (process_args): Process it. - (accumulate_line_info): Save src->maximum_count. - (output_line_beginning): Make color line number if - flag_use_hotness_colors is set. - (output_line_details): Pass default argument value. - (output_lines): Pass src->maximum_count. - -2018-09-17 Martin Liska - - * common/config/i386/i386-common.c (ix86_get_valid_option_values): - Use processor_names table. - * config/i386/i386.c (ix86_default_align): Use - processor_cost_table for alignment values. - (ix86_option_override_internal): Use processor_names. - (ix86_function_specific_print): Likewise. - * config/i386/i386.h (struct processor_costs): - Add alignment values. - (struct ptt): Remove and replace with const char *. - * config/i386/x86-tune-costs.h (struct processor_costs): - Declare default alignments for all costs. - -2018-09-17 Aldy Hernandez - - * tree-vrp.c (extract_range_from_unary_expr): Do not special case - symbolics or VR_VARYING ranges for ABS_EXPR. - * wide-int-range.cc (wide_int_range_abs): Return positive numbers - when range will wrap. - -2018-09-15 Eric Botcazou - - PR middle-end/86864 - * cfgexpand.c (expand_gimple_basic_block): Be prepared for a BARRIER - before and after a JUMP_TABLE_DATA. - -2018-09-14 John David Anglin - - PR middle-end/87188 - * dojump.c (do_compare_and_jump): Canonicalize function pointers - when one operand is a function pointer. Use POINTER_TYPE_P and - FUNC_OR_METHOD_TYPE_P. - * expr.c (do_store_flag): Use POINTER_TYPE_P and FUNC_OR_METHOD_TYPE_P. - * fold-const.c (build_range_check): Likewise. - * match.pd (simple_comparison): Likewise. - -2018-09-14 David Malcolm - - PR c/82967 - * spellcheck.c (get_edit_distance_cutoff): New function. - (selftest::test_edit_distance_unit_test_oneway): Rename to... - (selftest::test_get_edit_distance_one_way): ...this. - (selftest::test_get_edit_distance_unit): Rename to... - (selftest::test_get_edit_distance_both_ways): ...this. - (selftest::test_edit_distances): Move tests to this new function, - and test some more pairs of strings. Update for above renaming. - (selftest::get_old_cutoff): New function. - (selftest::test_get_edit_distance_cutoff): New function. - (selftest::assert_suggested_for): New function. - (ASSERT_SUGGESTED_FOR): New macro. - (selftest::assert_not_suggested_for): New function. - (ASSERT_NOT_SUGGESTED_FOR): New macro. - (selftest::test_suggestions): New function. - (selftest::spellcheck_c_tests): Move test_get_edit_distance_unit - tests to selftest::test_edit_distances and call it. Add calls to - selftest::test_get_edit_distance_cutoff and - selftest::test_suggestions. - * spellcheck.h (get_edit_distance_cutoff): New function declaration. - (best_match::consider): Replace hard-coded cutoff calculation with - a call to... - (best_match::get_cutoff): New declaration. - (best_match::get_best_meaningful_candidate): Likewise. - -2018-09-14 Bernd Edlinger - - * builtins.c (fold_builtin_strlen): Remove TODO comment. - -2018-09-14 Bernd Edlinger - - revert: - 2018-07-30 Bernd Edlinger - - * tree-ssa-forwprop.c (simplify_builtin_call): Don't create a not NUL - terminated string literal. - -2018-09-14 Martin Sebor - - * builtins.c (unterminated_array): Handle ARRAY_REF. - (expand_builtin_stpcpy_1): Detect unterminated char arrays. - * builtins.h (unterminated_array): Declare extern. - * gimple-fold.c (gimple_fold_builtin_stpcpy): Detect unterminated - arrays. - (gimple_fold_builtin_sprintf): Propagate NO_WARNING to transformed - calls. - -2018-09-14 Martin Sebor - Jeff Law - - * builtins.c (unterminated_array): New. - (expand_builtin_strcpy): Adjust. - (expand_builtin_strcpy_args): Detect unterminated arrays. - * gimple-fold.c (get_maxval_strlen): Add argument. Detect - unterminated arrays. - * gimple-fold.h (get_maxval_strlen): Add argument. - (gimple_fold_builtin_strcpy): Detec unterminated arrays. - - * gimple-fold.c (get_range_strlen): Add argument. - (get_maxval_strlen): Adjust. - * gimple-fold.h (get_range_strlen): Add argument. - -2018-09-14 Wei Xiao - - * config/i386/movdirintrin.h: Fix copyright year. - -2018-09-14 Uros Bizjak - - * reg-stack.c: Include regs.h. - (replace_reg): Assert that mode is MODE_FLOAT or MODE_COMPLEX_FLOAT. - (emit_pop_insn): Default pop insn mode to the reg_raw_mode of - FIRST_STACK_REG, not DFmode. - (emit_swap_insn): Default swap insn mode to the reg_raw_mode of - FIRST_STACK_REG, not XFmode. Explicitly construct swap RTX. - (change stack): Default register mode to the reg_raw_mode of - FIRST_STACK_REG, not DFmode. - * config/i386/i386.md (*swap): Remove insn pattern. - (*swapxf): Rename from swapxf. - -2018-09-14 Carl Love - - * config/rs6000/emmintrin.h: Add _MM_SHUFFLE2. - * config/rs6000/xmmintrin.h: Add _MM_SHUFFLE. - -2018-09-14 Segher Boessenkool - - PR target/87224 - * config/rs6000/rs6000.md (*mov_hardfloat64): Add Z to the Y - alternatives. - -2018-09-14 Sam Tebbs - - PR target/85628 - * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Define. - -2018-09-14 Jason Merrill - - Fix --enable-gather-detailed-mem-stats. - * hash-table.c (hash_table_usage): Change from variable to function. - * hash-table.h: Adjust. - * Makefile.in: Add missing dependencies on hash-table.h. - -2018-09-14 Kyrylo Tkachov - - PR tree-optimization/87259 - PR lto/87283 - (pass_cse_reciprocals::execute): Run optimize_recip_sqrt after - execute_cse_reciprocals_1 has tried transforming. - -2018-09-14 Aldy Hernandez - - * tree-vrp.c (extract_range_from_binary_expr_1): Normalize - VR_VARYING for PLUS/MINUS_EXPR. - -2018-09-14 Ilya Leoshkevich - - * config/s390/s390-passes.def (INSERT_PASS_BEFORE): Improve - formatting. - -2018-09-14 Richard Biener - - PR middle-end/63155 - * tree-ssa-coalesce.c (ssa_conflicts_merge): Remove conflict - bits for the merged partition. - -2018-09-13 Martin Sebor - Bernd Edlinger - - * builtins.h (c_srlen): Add argument. - * builtins.c (warn_string_no_nul): New function. - (c_strlen): Add argument and use it. Update recursive calls. - Pass DECL argument to string_constant to get info on non - terminated strings. Update *NONSTR as needed. - (fold_builtin_strlen): Add argument to calls to c_strlen. - Warn for unterminated arrays. - (warn_string_no_null): Add prototype. - * expr.c (string_constant): Update arguments. Update recursive - calls appropriately. Detect missing NUL terminator and outermost - declaration its missing in. - Improve checks for arrays with nonzero lower bound or elements - that are not a single byte. Simplify offset computation. - Simplify checks for non-NUL terminated strings. - * gimple-fold.c (get_range_strlen): Add argument to c_strlen call. - * gimple-ssa-sprintf.c (get_string_length): Remove unnecessary code. - -2018-09-13 Bernd Edlinger - - * builtins.c (c_strlen): Handle not zero terminated STRING_CSTs - correctly. - * fold-const.c (c_getstr): Fix function comment. Remove unused third - argument. Fix range checks. - * fold-const.h (c_getstr): Adjust protoype. - * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid folding when - string is constant but contains no NUL byte. - - * expr.c (string_constant): Adjust function comment. - Remove bogus check for zero termination. - - * fold-const.c (c_getstr): Clamp STRING_LENGTH to STRING_SIZE. - - * varasm.c (compare_constant): Compare type size of STRING_CSTs. - (get_constant_size): Don't make STRING_CSTs larger than they are. - (check_string_literal): New check function for STRING_CSTs. - (output_constant): Use it. - -2018-09-13 Eric Botcazou - - PR target/86812 - * config/visium/visium.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define. - -2018-09-13 Richard Biener - - PR tree-optimization/87263 - * tree-ssa-sccvn.c (visit_phi): Revert some earlier changes. - (struct unwind_state): Add max_rpo field. - (do_rpo_vn): Allow up-to-date loop state to be used when not iterating. - Compute max_rpo, the max RPO number a block can be backwards reached - from. Re-write non-iterating mode to a RPO ordered worklist approach, - separating it from the iterating mode. - -2018-09-13 Vlad Lazar - - * haifa-sched.c (rank_for_schedule): Schedule by INSN_COST. - (rfs_decision): New scheduling decision. - -2018-09-13 Richard Biener - - PR bootstrap/87134 - * tree-ssa-sccvn.c (vn_nary_op_insert_into): Fix assert. - (vn_nary_op_insert_pieces_predicated): Do not write useless - valid_dominated_by_p entry outside of the allocated storage. - -2018-09-13 Omar Sandoval - Tom de Vries - - PR debug/86985 - * dwarf2out.c (is_c): New function. - (add_subscript_info): Add DW_AT_count of 0 for C zero-length arrays. - -2018-09-13 Sam Tebbs - - PR target/85628 - * config/aarch64/aarch64.md (*aarch64_bfxil): - Define. - * config/aarch64/constraints.md (Ulc): Define. - * config/aarch64/aarch64-protos.h (aarch64_high_bits_all_ones_p): - Define. - * config/aarch64/aarch64.c (aarch64_high_bits_all_ones_p): - New function. - -2018-09-13 Vlad Lazar - - * config/aarch64/aarch64.h (TARGET_COMPUTE_FRAME_LAYOUT): Define. - * config/aarch64/aarch64.c (aarch64_expand_prologue): Remove - aarch64_layout_frame call. - (aarch64_expand_epilogue): Likewise. - (aarch64_initial_elimination_offset): Likewise. - (aarch64_get_separate_components): Likewise. - (aarch64_use_return_insn_p): Likewise. - (aarch64_layout_frame): Remove unneeded check. - -2018-09-13 Jakub Jelinek - - * configure.ac: Only append - " : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS" to - gcc_config_arguments if it was never reconfigured or last reconfigure - was with different arguments. - * configure: Regenerated. - -2018-09-13 Jakub Jelinek - Kyrylo Tkachov - - PR middle-end/87290 - * expr.c (maybe_optimize_pow2p_mod_cmp): New function. - (maybe_optimize_mod_cmp): Use it if integer_pow2p treeop1. - -2018-09-13 Jakub Jelinek - - PR tree-optimization/87287 - * fold-const.c (fold_binary_loc) : Move signed modulo - X % C == 0 to X % (unsigned) C == 0 optimization to ... - * match.pd (X % C == 0): ... here. New optimization. - -2018-09-12 Jakub Jelinek - - PR middle-end/82853 - * expr.h (maybe_optimize_mod_cmp): Declare. - * expr.c (mod_inv): New function. - (maybe_optimize_mod_cmp): New function. - (do_store_flag): Use it. - * cfgexpand.c (expand_gimple_cond): Likewise. - -2018-09-09 Cesar Philippidis - Julian Brown - - PR middle-end/86336 - * gimplify.c (gimplify_scan_omp_clauses): Set - target_firstprivatize_array_bases in OpenACC parallel and kernels - region contexts. Remove GOMP_MAP_FIRSTPRIVATE_REFERENCE clauses from - OpenACC data regions. - -2018-09-12 Uros Bizjak - - * config/i386/i386.md (sqrt_extendxf3_i387): Remove. - (sqrt2): Extend operand 1 to XFmode and generate sqrtxf3 insn. - -2018-09-12 Richard Biener - - PR tree-optimization/87280 - * tree-ssa-sccvn.c (process_bb): Handle the case of executable - edge but unreachable target. - (do_rpo_vn): For conservatively handling a PHI only mark - the backedge executable but not the block reachable. - -2018-09-12 Richard Biener - - PR tree-optimization/87266 - * tree-ssa-sccvn.c (do_rpo_vn): Always iterate to not yet - visited blocks. - -2018-09-12 Andreas Krebbel - - * config/s390/s390.md (PFPO_RND_MODE_DFP, PFPO_RND_MODE_BFP): New - constants. - ("trunc2") - ("trunc2") - ("extend2") - ("extend2"): Set proper rounding mode - according to the target operand type. - -2018-09-12 Jakub Jelinek - Andreas Krebbel - - PR tree-optimization/86844 - * gimple-ssa-store-merging.c - (imm_store_chain_info::coalesce_immediate): For overlapping stores, if - there are any overlapping stores in between them, make sure they are - also coalesced or we give up completely. - -2018-09-12 Jakub Jelinek - - PR middle-end/87248 - * fold-const.c (fold_ternary_loc) : Verify also that - BIT_AND_EXPR's second operand is a power of two. Formatting fix. - -2018-09-12 Tom de Vries - - * common.opt (gdescribe-dies): Add option. - * dwarf2out.c (add_name_and_src_coords_attributes): Add description - attribute for artifical and nameless decls. - (dwarf2out_register_external_die): Add description attribute to - external reference die. - (add_desc_attribute): New functions. - (gen_subprogram_die): Add description attribute to - DW_TAG_call_site_parameter. - * tree-pretty-print.c (print_generic_expr_to_str): New function. - * tree-pretty-print.h (print_generic_expr_to_str): Declare. - * doc/invoke.texi (@item Debugging Options): Add -gdescribe-dies and - -gno-describe-dies. - (@item -gdescribe-dies): Add. - -2018-09-12 Aldy Hernandez - - * tree-vrp.c (vrp_shift_undefined_p): Remove. - (extract_range_from_binary_expr_1: Call - wide_int_range_shift_undefined_p instead of vrp_shift_undefined_p. - * wide-int-range.h (wide_int_range_shift_undefined_p): Do not - depend on sign. - -2018-09-12 Aldy Hernandez - - * gimple-ssa-warn-alloca.c - (alloca_type_and_limit::alloca_type_and_limit): Initialize limit - field for ALLOCA_BOUND_*_LARGE. - -2018-09-11 Nathan Sidwell - - * gcc.c (load_specs, execute, run_attempt): Use %qs not '%s'. - -2018-09-11 Uros Bizjak - - * reg-stack.c (subst_asm_stack_regs): Call replace_reg also - for clobbers. Remove obsolete comment. - -2018-09-11 Uros Bizjak - - * config/i386/i386.md (define_attr "type"): Remove mpxmov, mpxmk, - mpxchk, mpxld and mpxst types. - (define_attr length_immediate): Remove all processing of mpx types. - (define_attr prefix_0f): Ditto. - (define_attr memory): Ditto. - -2018-09-11 Uros Bizjak - - * config/i386/i386.md (fyl2x_extendxf3_i387): Remove. - (log2): Change operand 1 predicate to general_operand. - Extend operand 1 to XFmode and generate logxf3 insn. - (log102): Change operand 1 predicate to general_operand. - Extend operand 1 to XFmode and generate log10xf3 insn. - (log22): Change operand 1 predicate to general_operand. - Extend operand 1 to XFmode and generate log2xf3 insn. - (fyl2xp1_extendxf3_i387): Remove. - (log1p2): Change operand 1 predicate to general_operand. - Extend operand 1 to XFmode and generate log1pxf3 insn. - (fxtract_extendxf3_i387): Remove. - (logb2): Change operand 1 predicate to general_operand. - Extend operand 1 to XFmode and generate logbxf3 insn. - (ilogb2): Change operand 1 predicate to general_operand. - Extend operand 1 to XFmode and generate fxtractxf3_i387 insn. - (significand2): Change operand 1 predicate to general_operand. - Extend operand 1 to XFmode and generate significandxf3 insn. - -2018-09-11 Nathan Sidwell - - * gcc.c (perror_with_name, pfatal_with_name): Delete. - (load_specs): Use fatal_error. - (DELETE_IF_ORDINARY, process_command): Use error. - (execute, run_attempt): Use fatal_error. - -2018-09-11 Andrew Stubbs - - * diagnostic-core.h (sorry_at): New prototype. - * diagnostic.c (sorry_at): New function. - -2018-09-11 Aldy Hernandez - - * tree-vrp.c (extract_range_from_binary_expr_1): Treat all divisions - by zero as VR_UNDEFINED. - -2018-09-10 Uros Bizjak - - * config/i386/i386.md (xf2): Rename from *xf2_i387. - (*_extendxf2_i387): Remove insn pattern. - (mode2): New expander. - (sincos_extendxf3_i387): Remove insn pattern. - (sincos -> sin, cos splitters): Remove splitter patterns. - (sincos3): Change operand 2 predicate to general_operand. - Extend operand 2 to XFmode and generate sincosxf3 insn. - (fptanxf4_i387): Change mode of operands 0 and 3 to SFmode. - Change operand 3 predicate to const1_operand. - (fptan_extendxf4_i387): Remove insn pattern. - (tanxf2): Update operands in the call to fptanxf4_i387. - (tan2): Change operand 1 predicate to general_operand. - Extend operand 1 to XFmode and generate tanxf3 insn. - (atan2xf3): Rename from *fpatanxf3_i387. - (fpatan_extendxf3_i387): Remove insn pattern. - (atan2xf3): Remove expander. - (atan22): Change operand 1 predicate to general_operand. - Extend operand 1 to XFmode and generate atanxf3 insn. - -2018-09-10 Uros Bizjak - - * config/i386/i386.md (x87/SSE constant load splitter): Use - memory_operand instead of nonimmediate_operand for input operand - predicate. - -2018-09-09 Uros Bizjak - - * config/i386/i386.md (float partial SSE register stall splitter): Move - splitter near its instruction pattern. - (float_extend partial SSE register stall splitter): Ditto. - (float_truncate partial SSE register stall splitter): Ditto. - -2018-09-09 Hans-Peter Nilsson - - PR target/86794 - * config/mmix/mmix.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine - to speculation_safe_value_not_needed. - - PR target/85666 - * config/mmix/mmix.c (mmix_assemble_integer): Handle byte-size - non-CONST_INT rtx:es using assemble_integer_with_op ".byte". - (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS): Don't call - leaf_function_p, instead use has_hard_reg_initial_val. - -2018-09-09 Nathan Sidwell - - * gcc.h (pfatal_with_name): Don't declare here. - * gcc.c (pfatal_with_name): Make static. - -2018-09-09 Xianmiao Qu - - * config/csky/csky.md (*cskyv2_adddi3, *cskyv2_subdi3): Add - earlyclobber. - -2018-09-08 John David Anglin - - PR rtl-optimization/85458 - * sel-sched.c (sel_target_adjust_priority): Allow backend adjust - priority hook to reduce the priority of EXPR. - -2018-09-07 Uros Bizjak - - * config/i386/i386.md (float2) Enable - DImode for x87 on 32bit targets. Conditionally disable x87 modes - with X87_ENABLE_FLOAT. Remove preparation code. - (*float2): Rename from - *float2_mixed. Handle x87, SSE and mixed - math using "enabled" attribute. - (*floatdi2_i387): Rename from - *float2_i387. Handle only DImode and - enable for 32bit targets only. - (floatdi2_i387_with_xmm pre-reload splitter): New - splitter. - (floatdi2_i387_with_xmm): Use register_operand - as operand 1 predicate. Rewrite as define_insn_and_split. - (floatdi2_i387_with_xmm memory input splitter): Remove. - -2018-09-06 Uros Bizjak - - * reg-stack.c (get_true_reg) : Reorder - to fallthru to FLOAT case. - -2018-09-06 Will Schmidt - - PR target/86731 - * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Update logic - around folding of vec_sl to handle out of range shift values. - -2018-09-06 Uros Bizjak - - * config/i386/i386.md (fix_trunc_fisttp_i387_1): Remove. - Update callers to gen_fix_trunc_i387_fisttp - (fix_trunc_i387_fisttp): Change operand 0 predicate to - nonimmediate_operand. - (fix_trunc_i387_fisttp_with_temp): Remove insn pattern - and corresponding splitters. - (*fix_trunc_i387_1): Always expand with fix_trunc_i387. - (fix_truncdi_i387): Change operand 0 predicate to nonimmediate_operand. - (fix_truncdi_i387_with_temp): Remove insn pattern - and corresponding splitters. - (fix_trunc_i387): Change operand 0 predicate to - nonimmediate_operand. - (fix_trunc_i387_with_temp): Remove insn pattern - and corresponding splitters. - (*fistdi2_1): Remove. - (fistdi2): Ditto. - (fistdi2_with_temp): Remove insn pattern and corresponding splitters. - (lrintxfdi2): Remove expander. Reimplement as define_insn. - (*fist2_1): Remove. - (fist2): Ditto. - (fist2_with_temp): Remove insn pattern and corresponding - splitters. - (lrintxf2): Remove expander. Reimplement as define_insn. - (*fist2__1): Always expand with fist2_. - (fistdi2_): Change operand 0 predicate to - nonimmediate_operand. - (fistdi2__with_temp): Remove insn pattern - and corresponding splitters. - (fist2_): Change operand 0 predicate to - nonimmediate_operand. - (fist2__with_temp): Remove insn pattern - and corresponding splitters. - - (*fixuns_truncsi2_avx512f_zext): Depend on TARGET_SSE_MATH. - -2018-09-06 Bernd Edlinger - - * varasm.c (output_constructor_regular_field): Check TYPE_SIZE_UNIT of - the init value. - -2018-09-06 Will Schmidt - - * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for - early gimple folding of vec_splat(). - * tree-vect-generic.c: Remove static from tree_vec_extract() definition. - * gimple-fold.h: Add an extern define for tree_vec_extract(). - -2018-09-06 Will Schmidt - - * config/rs6000/rs6000.c (fold_mergehl_helper): Add types_compatible_p - wrappers around TREE_TYPE comparisons. - -2018-09-06 Ilya Leoshkevich - - PR target/80080 - * config/s390/predicates.md: Add nonsym_memory_operand. - * config/s390/s390.c (s390_legitimize_cs_operand): If operand - contains a SYMBOL_REF, load it into an intermediate pseudo. - (s390_emit_compare_and_swap): Legitimize operand. - * config/s390/s390.md: Use the new nonsym_memory_operand - with UNSPECV_CAS patterns. - -2018-09-06 Ilya Leoshkevich - - PR target/80080 - * config/s390/s390-passes.def: New file. - * config/s390/s390-protos.h (class rtl_opt_pass): Add forward - declaration. - (make_pass_s390_early_mach): Add declaration. - * config/s390/s390.c (make_pass_s390_early_mach): - (s390_option_override): Remove dynamic registration. - * config/s390/t-s390: Add s390-passes.def. - -2018-09-06 Ilya Leoshkevich - - * config/s390/s390.c (s390_decompose_constant_pool_ref): - Remove UNSPEC_LTREL_BASE check. - (annotate_constant_pool_refs): Likewise. - (find_constant_pool_ref): Likewise. - (find_ltrel_base): Removed. - (replace_ltrel_base): Removed. - (s390_mainpool_finish): Remove replace_ltrel_base call. - (s390_chunkify_start): Remove pending LTREL_BASE logic. - (s390_chunkify_finish): Remove replace_ltrel_base call. - * config/s390/s390.md: Remove UNSPEC_LTREL_BASE. - -2018-09-06 Hans-Peter Nilsson - - PR target/86779 - * config/cris/cris.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine - to speculation_safe_value_not_needed. - -2018-09-05 Cesar Philippidis - Bernd Schmidt - - * config/nvptx/nvptx-opts.h: New file. - * config/nvptx/nvptx.c (nvptx_file_start): Print the correct .target. - * config/nvptx/nvptx.h: Include "nvptx-opts.h". - (ASM_SPEC): Define. - (TARGET_SM35): New macro. - * config/nvptx/nvptx.md (atomic_fetch_): Enable with the - correct predicate. - * config/nvptx/nvptx.opt (ptx_isa, sm_30, sm_35): New enum and its - values. - (misa=): New option. - * doc/invoke.texi (Nvidia PTX Options): Document -misa. - -2018-09-05 Uros Bizjak - - * config/i386/i386.md (truncdfsf2): Remove expander. - (truncdfsf2_with_temp): Ditto. - (truncxf2): Ditto. - (*truncdfsf_fast_mixed): Remove insn pattern. - (*truncdfsf_fast_i387): Ditto. - (*truncdfsf_mixed): Ditto. - (*truncdfsf_i387): Ditto. - (*truncdfsf2_i387_1): Ditto. - (*truncxfsf2_mixed): Ditto. - (*truncxfdf2_mixed): Ditto. - (*truncxf2_i387_noop): Ditto. Update callers - to call gen_truncxf2 instead. - (*truncxf2_i387): Remove. - (reg->reg splitters): Remove splitter pattern. - (reg->mem splitters): Ditto. - - (truncdfsf2): New insn pattern. - (truncxf2): Ditto. - -2018-09-05 Kyrylo Tkachov - - * tree-ssa-math-opts.c (is_mult_by): New function. - (is_square_of): Use the above. - (optimize_recip_sqrt): New function. - (pass_cse_reciprocals::execute): Use the above. - -2018-09-05 Richard Biener - - PR bootstrap/87134 - * tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Make sure - to zero-init the emplaced vec. - -2018-09-05 Martin Liska - - PR tree-optimization/87205 - * tree-switch-conversion.c (pass_lower_switch::execute): - Group cases for switch statements. - -2018-09-05 Richard Biener - - PR tree-optimization/87217 - * tree-ssa-sccvn.c (vuse_valueize): New. - (vn_reference_lookup_pieces): Use it. - (vn_reference_lookup): Likewise. - -2018-09-05 Nathan Sidwell - - PR c++/87137 - * stor-layout.c (place_field): Scan forwards to check last - bitfield when ms_bitfield_placement is in effect. - -2018-09-05 Richard Biener - - PR bootstrap/87225 - * tree-vect-stmts.c (vectorizable_simd_clone_call): Fix bogus - return. - -2018-09-05 Siddhesh Poyarekar - Kugan Vivekanandarajah - - * config/aarch64/falkor-tag-collision-avoidance.c: New file. - * config.gcc (extra_objs): Build it. - * config/aarch64/t-aarch64 (falkor-tag-collision-avoidance.o): - Likewise. - * config/aarch64/aarch64-passes.def - (pass_tag_collision_avoidance): New pass. - * config/aarch64/aarch64.c (qdf24xx_tunings): Add - AARCH64_EXTRA_TUNE_RENAME_LOAD_REGS to tuning_flags. - (aarch64_classify_address): Remove static qualifier. - (aarch64_address_info, aarch64_address_type): Move to... - * config/aarch64/aarch64-protos.h: ... here. - (make_pass_tag_collision_avoidance): New function. - * config/aarch64/aarch64-tuning-flags.def (rename_load_regs): - New tuning flag. - -2018-09-05 Martin Liska - - * doc/gcov.texi: Update documentation of humar - readable mode. - * gcov.c (format_count): Print one decimal place, it provides - more fine number of situations like '1G' vs. '1.4G'. - -2018-09-05 Martin Liska - - PR target/87164 - * config/rs6000/rs6000.opt: Mark the option as Deprecated. - * optc-gen.awk: Allow 'Var' for Deprecated options in order - to generate a MASK value. - -2018-09-04 H.J. Lu - - PR debug/86593 - * dwarf2out.c (based_loc_descr): Allow hard frame pointer even - if frame pointer isn't used. - (compute_frame_pointer_to_fb_displacement): Likewise. - -2018-09-04 Jakub Jelinek - - PR target/87198 - * common/config/i386/i386-common.c (OPTION_MASK_ISA_XSAVEOPT_SET, - OPTION_MASK_ISA_XSAVES_SET, OPTION_MASK_ISA_XSAVEC_SET): Use - OPTION_MASK_ISA_XSAVE_SET instead of OPTION_MASK_ISA_XSAVE. - (OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_XSAVES_UNSET - and OPTION_MASK_ISA_XSAVEC_UNSET. - -2018-09-04 Max Filippov - - * config/xtensa/xtensa.c (xtensa_expand_atomic): Reorder AND and - XOR operations in NAND case. - -2018-09-04 Aldy Hernandez - - * wide-int-range.cc (wide_int_range_convert): New. - * wide-int-range.h (wide_int_range_convert): New. - * tree-vrp.c (extract_range_from_unary_expr): Abstract wide int - code into wide_int_range_convert. - (extract_range_into_wide_ints): Do not munge anti range constants - into the entire domain. Just return the range back. - -2018-09-04 Martin Liska - - * genmatch.c (output_line_directive): Add new argument - fnargs. - (dt_simplify::gen_1): Encapsulate dump within __builtin_expect. - -2018-09-04 Jonathan Wakely - - * doc/invoke.texi (Option Summary): Add whitespace. - - * doc/invoke.texi (Option Summary): Add -Waligned-new. - -2018-09-04 Richard Biener - - PR tree-optimization/87211 - * tree-ssa-sccvn.c (visit_phi): When value-numbering to a - backedge value we're supposed to treat as VARYING also number - the PHI to VARYING in case it got a different value-number already. - -2018-09-04 Aldy Hernandez - - * tree-vrp.c (vrp_can_optimize_bit_op): Remove. - (extract_range_from_binary_expr_1): Do not call - vrp_can_optimize_bit_op. - * wide-int-range.cc (wide_int_range_can_optimize_bit_op): Make - static. - (wide_int_range_get_mask_and_bounds): New. - (wide_int_range_optimize_bit_op): New. - (wide_int_range_bit_ior): Call wide_int_range_optimize_bit_op. - (wide_int_range_bit_and): Same. - * wide-int-range.h (wide_int_range_can_optimize_bit_op): Remove. - (wide_int_range_optimize_bit_op): New. - (wide_int_range_get_mask_and_bounds): New. - -2018-09-04 Richard Biener - - PR tree-optimization/87176 - * tree-ssa-sccvn.c (visit_phi): Remove redundant allsame - variable. When value-numbering a virtual PHI node make sure - to not value-number to the backedge value. - -2018-09-04 Jonathan Wakely - - * doc/extend.texi (Long Long, Hex Floats): Document support for - long long and hex floats in more recent versions of ISO C++. - -2018-09-03 Richard Biener - - PR tree-optimization/87177 - * tree-ssa-sccvn.c (vuse_ssa_val): Revert previous change, keep - cleanup. - -2018-09-03 Alexander Monakov - - * bb-reorder.c (edge_order): Convert to C-qsort-style - tri-state comparator. - (reorder_basic_blocks_simple): Change std::stable_sort to - gcc_stablesort. - -2018-09-03 Alexander Monakov - - * tree-loop-distribution.c (offset_cmp): Convert to C-qsort-style - tri-state comparator. - (fuse_memset_builtins): Change std::stable_sort to gcc_stablesort. - -2018-09-03 Alexander Monakov - - * sort.cc (struct sort_ctx): New field 'nlim'. Use it... - (mergesort): ... here as maximum count for using netsort. - (gcc_qsort): Set nlim to 3 if stable sort is requested. - (gcc_stablesort): New. - * system.h (gcc_stablesort): Declare. - -2018-09-03 Alexander Monakov - - * sort.cc (gcc_qsort) [CHECKING_P]: Call qsort_chk. - * system.h (qsort): Always redirect to gcc_qsort. Update comment. - * vec.c (qsort_chk): Do not call gcc_qsort. Update comment. - -2018-09-03 Segher Boessenkool - - * config/rs6000/rs6000.md (*mov_hardfloat32): Remove %U from the - lxsdx and stxsdx alternatives. - (*mov_hardfloat64): Ditto. - * config/rs6000/vsx.md (*vsx_extract__store): Ditto. - -2018-09-03 Richard Biener - - PR tree-optimization/87200 - * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize a - simplify result. - -2018-09-03 Martin Liska - - PR tree-optimization/87201 - * tree-switch-conversion.c (switch_decision_tree::balance_case_nodes): - Fix parenthesis in an expression. - -2018-09-03 Richard Biener - - PR tree-optimization/87197 - * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Mark the new def - visited. CSE the VN_INFO hashtable lookup. - - PR tree-optimization/87169 - * tree-ssa-sccvn.c (do_rpo_vn): When marking loops for not - iterating make sure there's no extra backedges from irreducible - regions feeding the header. Mark the destination block - executable. - -2018-09-03 Martin Liska - - PR driver/83193 - * common/common-target.def: Add TARGET_GET_VALID_OPTION_VALUES. - * common/common-targhooks.c (default_get_valid_option_values): - New function. - * common/common-targhooks.h (default_get_valid_option_values): - Likewise. - * common/config/i386/i386-common.c: Move processor_target_table - from i386.c. - (ix86_get_valid_option_values): New function. - (TARGET_GET_VALID_OPTION_VALUES): New macro. - * config/i386/i386.c (struct ptt): Move to i386-common.c. - (PTA_*): Move all defined masks into i386-common.c. - (ix86_function_specific_restore): Use new processor_cost_table. - * config/i386/i386.h (struct ptt): Moved from i386.c. - (struct pta): Likewise. - * doc/tm.texi: Document new TARGET_GET_VALID_OPTION_VALUES. - * doc/tm.texi.in: Likewise. - * opt-suggestions.c (option_proposer::suggest_option): - Pass prefix to build_option_suggestions. - (option_proposer::get_completions): Likewise. - (option_proposer::build_option_suggestions): Use the new target - hook. - * opts.c (struct option_help_tuple): New struct. - (print_filtered_help): Use the new target hook. - -2018-09-03 Martin Liska - - PR middle-end/59521 - * predict.c (set_even_probabilities): Add likely_edges - argument and handle cases where we have precisely one - likely edge. - (combine_predictions_for_bb): Catch also likely_edges. - (tree_predict_by_opcode): Handle gswitch statements. - * tree-cfg.h (find_case_label_for_value): New declaration. - (find_taken_edge_switch_expr): Likewise. - * tree-switch-conversion.c (switch_decision_tree::balance_case_nodes): - Find pivot in decision tree based on probabily, not by number of - nodes. - -2018-09-02 Gerald Pfeifer - - * doc/standards.texi (Standards): Update Objective-C reference. - -2018-09-01 Gerald Pfeifer - - * doc/install.texi (Prerequisites): Update link for MPC. - -2018-09-01 Michael Matz - - PR tree-optimization/87074 - * gimple-loop-jam.c (unroll_jam_possible_p): Check loop exit - PHIs for outer-loop uses. - -2018-09-01 Gerald Pfeifer - - * doc/generic.texi (OpenMP): Adjust link to openmp.org. - * doc/invoke.texi (C Dialect Options): Ditto. - -2018-09-01 Gerald Pfeifer - - * doc/install.texi (Prerequisites): Adjust link mpfr.org. - -2018-08-31 Richard Biener - - PR tree-optimization/87168 - * tree-ssa-sccvn.c (SSA_VAL): Add visited output parameter. - (rpo_elim::eliminate_avail): When OP was not visited it must - be available. - -2018-08-31 David Malcolm - - * tree-vrp.c (copy_value_range): Convert param "from" from - "value_range *" to "const value_range *". - (range_is_null): Likewise for param "vr". - (range_int_cst_p): Likewise. - (range_int_cst_singleton_p): Likewise. - (symbolic_range_p): Likewise. - (value_ranges_intersect_p): Likewise for both params. - (value_range_nonnegative_p): Likewise for param "vr". - (value_range_constant_singleton): Likewise. - (vrp_set_zero_nonzero_bits): Likewise for param "ar". - (extract_range_into_wide_ints): Likewise for param "vr". - (extract_range_from_multiplicative_op): Likewise for params "vr0" - and "vr1". - (vrp_can_optimize_bit_op): Likewise. - (extract_range_from_binary_expr_1): Likewise for params "vr0_" and - "vr1_". - (extract_range_from_unary_expr): Likewise. - (debug_value_range): Likewise for param "vr". - (value_range::dump): Add "const" qualifier. - (vrp_prop::check_array_ref): Convert local "vr" from - "value_range *" to "const value_range *". - (vrp_prop::check_mem_ref): Likewise. - (vrp_prop::visit_stmt): Likewise for local "old_vr". - (vrp_intersect_ranges_1): Likewise for param "vr_1". - (vrp_intersect_ranges): Likewise. - (simplify_stmt_for_jump_threading): Likewise for local "vr". - (vrp_prop::vrp_finalize): Likewise. - * tree-vrp.h (value_range::dump): Add "const" qualifier. - (vrp_intersect_ranges): Add "const" qualifier to params as above. - (extract_range_from_unary_expr): Likewise. - (value_range_constant_singleton): Likewise. - (symbolic_range_p): Likewise. - (copy_value_range): Likewise. - (extract_range_from_binary_expr_1): Likewise. - (range_int_cst_p): Likewise. - (vrp_set_zero_nonzero_bits): Likewise. - (range_int_cst_singleton_p): Likewise. - -2018-08-31 Vlad Lazar - - * config/aarch64/arm_neon.h (vabsd_s64): New. - (vnegd_s64): Likewise. - -2018-08-31 Martin Jambor - - * ipa-cp.c (estimate_local_effects): Replace wrong MAX with MIN. - -2018-08-31 Martin Liska - - * ipa-icf.c (sem_item::add_type): Use - sem_item::m_type_hash_cache. - * ipa-icf.h: Move the cache from sem_item_optimizer - to sem_item. - -2018-08-31 Nathan Sidwell - - * doc/extend.texi (Backwards Compatibility): Remove implicit - extern C leeway of () being (...). - -2018-08-31 Kyrylo Tkachov - - * ipa-inline.c (can_inline_edge_by_limits_p): Fix typos in comment. - -2018-08-31 Segher Boessenkool - - PR target/86684 - PR target/87149 - * config/rs6000/rs6000.md (lrounddi2): Gate on TARGET_FPRND. - -2018-08-31 Jakub Jelinek - - PR middle-end/87138 - * expmed.c (expand_mult_const): Use immed_wide_int_const instead of - gen_int_mode. Formatting fixes. - -2018-08-30 Sandra Loosemore - - * target.def (custom_function_descriptors): Improve documentation. - * doc/tm.texi.in (Trampolines): Expand discussion of function - descriptors and move TARGET_CUSTOM_FUNCTION_DESCRIPTORS to the - beginning of the section. - * doc/tm.texi: Regenerated. - -2018-08-30 Jose E. Marchesi - - * cfg.h (class auto_edge_flag): Spell out the template-id of the - base class in the initializer list. This is a workaround for - building with older GCC. - (class auto_bb_flag): Likewise. - -2018-08-30 Aaron Sawdey - - * config/rs6000/altivec.md (altivec_eq): Remove star. - (altivec_vcmpequ_p): Remove star. - * config/rs6000/rs6000-string.c (do_load_for_compare): Support - vector load modes. - (expand_strncmp_vec_sequence): New function. - (emit_final_str_compare_vec): New function. - (expand_strn_compare): Add support for vector strncmp. - * config/rs6000/rs6000.opt (-mstring-compare-inline-limit): Change - length specification to bytes. - * config/rs6000/vsx.md (vsx_ld_elemrev_v16qi_internal): Remove star. - (vcmpnezb_p): New pattern. - * doc/invoke.texi (RS/6000 and PowerPC Options): Update documentation - for option -mstring-compare-inline-limit. - -2018-08-30 Thiago Macieira - - * config/i386/i386.c (PTA_WESTMERE): Remove PTA_AES. - (PTA_SKYLAKE): Add PTA_AES. - (PTA_GOLDMONT): Likewise. - -2018-08-29 Jan Hubicka - - PR lto/86517 - * lto-opts.c (lto_write_options): Always stream PIC/PIE mode. - * lto-wrapper.c (merge_and_complain): Fix merging of PIC/PIE. - -2018-08-29 Jan Hubicka - - * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not follow - TYPE_STUB_DECL. - (hash_tree): Do not visit TYPE_STUB_DECL. - * tree-streamer-out.c (write_ts_type_common_tree_pointers): Do not - stream TYPE_STUB_DECL. - * tree-streamer-in.c (lto_input_ts_type_common_tree_pointers): Likewise. - * ipa-utils.h (type_with_linkage_p): Do not rely on TYPE_STUB_DECL - after free_lang_data. - (type_in_anonymous_namespace_p): Likewise. - -2018-08-29 Jan Hubicka - - * sreal.h (SREAL_PART_BITS): Change to 31; remove seemingly unnecessary - comment that it has to be even number. - (class sreal): Change m_sig type to int32_t. - * sreal.c (sreal::dump, sreal::to_int, opreator+, operator-): Use - int64_t for temporary calculations. - (sreal_verify_basics): Drop one bit from minimum and maximum. - -2018-08-30 Richard Biener - - PR tree-optimization/87147 - * tree-ssa-sccvn.c (SSA_VISITED): New function. - (visit_phi): When the degenerate result is from the backedge and - we didn't visit its definition yet drop to VARYING. - (do_rpo_vn): Properly mark blocks with incoming backedges as executable. - -2018-08-29 Jan Hubicka - - * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not walk - DECL_VINDEX. - (hash_tree): Likewise. - -2018-08-29 Jan Hubicka - - * tree.c (find_decls_types_r): Walk also TYPE_NEXT_PTR_TO - and TYPE_NEXT_REF_TO. - -2018-08-29 Jan Hubicka - - * sreal.h (SREAL_PART_BITS): Change to 31; remove seemingly unnecessary - comment that it has to be even number. - (class sreal): Change m_sig type to int32_t. - * sreal.c (sreal::dump, sreal::to_int, opreator+, operator-): Use - int64_t for temporary calculations. - (sreal_verify_basics): Drop one bit from minimum and maximum. - -2018-08-30 Tamar Christina - - * config/aarch64/aarch64.c (aarch64_expand_movmem): Set TImode max. - -2018-08-30 Vlad Lazar - - PR middle-end/86995 - * expmed.c (canonicalize_comparison): Use wi::sub instead of wi::add - if to_add is negative. - -2018-08-29 Bernd Edlinger - - PR middle-end/87053 - * builtins.c (c_strlen): Improve range checks. - -2018-08-29 Martin Sebor - Jeff Law - - PR tree-optimization/86714 - PR tree-optimization/86711 - * builtins.c (c_strlen): Add arguments to call to string_constant. - * expr.c (string_constant): Add argument. Detect missing nul - terminator and outermost declaration it's missing in. - * expr.h (string_constant): Add argument. - * fold-const.c (read_from_constant_string): Add arguments to call to - string_constant. - (c_getstr): Likewise. - * tree-ssa-forwprop.c (simplify_builtin_call): Likewise. - to string_constant. - * tree-ssa-strlen.c (get_stridx): Likewise. - -2018-08-29 Jan Hubicka - - * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): - Do not stream DECL_VINDEX. - * tree-streamer-out.c (write_ts_function_decl_tree_pointers): Likewise. - * tree.c (free_lang_data_in_decl): Clear DECL_VINDEX. - (decl_function_context): Use DECL_VIRTUAL_P rather than DECL_VINDEX. - -2018-08-29 Richard Biener - - * tree-ssa-sccvn.c (vuse_ssa_val): Return NULL for unvisited - virtual operands that are not default defs to honor region - boundaries. - (rpo_vn_valueize): Remove ineffective code here. - -2018-08-29 Richard Biener - - PR tree-optimization/87132 - * tree-ssa-alias.c (get_continuation_for_phi): Do not translate - when skipping defs reachable over backedges. - -2018-08-29 Richard Biener - - * tree-core.h: Document use of deprecated_flag in SSA_NAME. - * tree.h (SSA_NAME_POINTS_TO_READONLY_MEMORY): Define. - * tree-into-ssa.c (pass_build_ssa::execute): Initialize - function parameters SSA_NAME_POINTS_TO_READONLY_MEMORY from fnspec. - * tree-ssa-sccvn.c (const_parms, init_const_parms): Remove. - (vn_reference_lookup_3): Remove use of const_parms. - (free_rpo_vn): Do not free const_parms. - (do_rpo_vn): Do not call init_const_parms. - * tree-ssa-alias.c (refs_may_alias_p_1): Honor - SSA_NAME_POINTS_TO_READONLY_MEMORY. - (call_may_clobber_ref_p_1): Likewise. - -2018-08-29 Alexander Monakov - - PR other/86726 - * invoke.texi (Optimization Options): List -ftree-scev-cprop. - (-O): Ditto. - (-ftree-scev-cprop): Document. - -2018-08-29 Jan Hubicka - - * sreal.h (normalize, normalize_up, normalize_down): Add new_sig/new_exp - parameters. - (sreal constructor): Update. - * sreal.c (sreal:operator+, sreal:operator-, sreal:operator*, - sreal:operator/): Update. - -2018-08-29 Martin Liska - - * tree-switch-conversion.c (switch_conversion::expand): - Strenghten assumption about gswitch statements. - -2018-08-29 Richard Biener - - PR tree-optimization/87117 - * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only - re-value-number released SSA VDEFs. - -2018-08-29 Richard Biener - - PR tree-optimization/87126 - * tree-ssa-sccvn.c (vn_reference_insert): Remove assert. - -2018-08-28 Jim Wilson - - * config/riscv/pic.md: Rewrite. - * config/riscv/riscv.c (riscv_address_insns): Return cost of 3 for - invalid address. - * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Delete. - (SOFTF, default_load, softload, softstore): New. - -2018-08-28 Jeff Law - - * fold-const.c (fold_binary_loc): Remove recently added assert. - -2018-08-28 Joern Rennecke - - * genpreds.c (write_predicate_subfunction): Also add ATTRIBUTE_UNUSED - to OP parmeter of generated function. - -2018-08-28 MCC CS - - PR tree-optimization/87009 - * match.pd: Add boolean optimizations. - -2018-08-28 Martin Sebor - - PR middle-end/86631 - * calls.c (alloc_max_size): Treat HOST_WIDE_INT special. - * gimple-ssa-warn-alloca.c (adjusted_warn_limit): New function. - (pass_walloca::gate): Use it. - (alloca_call_type): Same. - (pass_walloca::execute): Same. - * stor-layout.c (layout_decl): Treat HOST_WIDE_INT special. - -2018-08-28 David Malcolm - - * dumpfile.h (ATTRIBUTE_GCC_DUMP_PRINTF): Change version check on - GCC_VERSION for usage of "__gcc_dump_printf__" format from - >= 3005 to >= 9000. - -2018-08-28 Richard Biener - - PR tree-optimization/87124 - * tree-ssa-sccvn.c (vn_lookup_simplify_result): Guard against - constants before looking up avail. - -2018-08-28 Jakub Jelinek - - PR middle-end/87099 - * calls.c (maybe_warn_nonstring_arg): Punt early if - warn_stringop_overflow is zero. Don't call get_range_strlen - on 3rd argument, keep iterating until lenrng[1] is INTEGER_CST. - Swap comparison operands to have constants on rhs. Only use - lenrng[1] if non-NULL and INTEGER_CST. Don't uselessly - increment lenrng[0]. - -2018-08-28 Richard Sandiford - - * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Fix unguarded - use of tree_to_shwi. Remove duplicated test for the size being - a whole number of bytes. - -2018-08-28 Richard Biener - - PR tree-optimization/87117 - * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_cleanup): - Handle removed stmt without LHS (GIMPLE_NOP). - -2018-08-28 Richard Biener - - PR tree-optimization/87117 - * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Exclude - void which is is_gimple_reg_type by checking for COMPLETE_TYPE_P. - -2018-08-28 Richard Biener - - PR tree-optimization/87117 - * tree-ssa-pre.c (compute_avail): Do not make expressions - with predicated values available. - (get_expr_value_id): Assert we do not run into predicated value - expressions. - -2018-08-28 Richard Biener - - PR tree-optimization/87117 - * tree-ssa-operands.c (add_stmt_operand): STRING_CST may - get virtual operands. - (get_expr_operands): Handle STRING_CST like other decls. - -2018-08-28 Martin Liska - - * tree.h: Update documentation of fndecl_built_in_p - functions. - - -2018-08-27 Jeff Law - PR tree-optimization/87110 - * tree-ssa-dse.c (compute_trims): Handle non-constant - TYPE_SIZE_UNIT. - -2018-08-27 Martin Sebor - - PR tree-optimization/86914 - * tree-ssa-strlen.c (maybe_set_strlen_range): Avoid MEM_REF. - -2018-08-27 Martin Sebor - - PR tree-optimization/87112 - * builtins.c (expand_builtin_strnlen): Convert c_strlen result to - the type of the bound argument. - -2018-08-27 Jeff Law - - * tree-ssa-dse.c (compute_trims): Handle case where the reference's - type does not have a TYPE_SIZE_UNIT. - -2018-08-27 Steve Ellcey - - * config/aarch64/aarch64-speculation.cc: Replace include of cfg.h - with include of backend.h. - -2018-08-27 Richard Biener - - PR tree-optimization/86927 - * tree-vect-loop.c (vect_create_epilog_for_reduction): Properly - use const cond reduction code. - -2018-08-27 Alexander Monakov - - PR tree-optimization/85758 - * match.pd ((X & Y) ^ Y): Add :s qualifier to inner expression. - -2018-08-27 David Malcolm - - PR c++/87091 - * diagnostic-show-locus.c (class layout_range): Update for - conversion of show_caret_p to a tri-state. - (layout_range::layout_range): Likewise. - (make_range): Likewise. - (layout::maybe_add_location_range): Likewise. - (layout::should_print_annotation_line_p): Don't show annotation - lines for ranges that are SHOW_LINES_WITHOUT_RANGE. - (layout::get_state_at_point): Update for conversion of - show_caret_p to a tri-state. Bail out early for - SHOW_LINES_WITHOUT_RANGE, so that such ranges don't affect - underlining or source colorization. - (gcc_rich_location::add_location_if_nearby): Update for conversion - of show_caret_p to a tri-state. - (selftest::test_one_liner_multiple_carets_and_ranges): Likewise. - (selftest::test_one_liner_fixit_replace_equal_secondary_range): - Likewise. - (selftest::test_one_liner_labels): Likewise. - * gcc-rich-location.c (gcc_rich_location::add_expr): Update for - conversion of show_caret_p to a tri-state. - * pretty-print.c (text_info::set_location): Likewise. - * pretty-print.h (text_info::set_location): Likewise. - * substring-locations.c (format_warning_n_va): Likewise. - * tree-diagnostic.c (default_tree_printer): Likewise. - * tree-pretty-print.c (newline_and_indent): Likewise. - -2018-08-27 David Malcolm - - PR c++/87091 - * diagnostic-show-locus.c (get_line_span_for_fixit_hint): Show the - line above for line-insertion fix-it hints. - (selftest::test_fixit_insert_containing_newline): Update the - expected results, and add a test with line-numbering enabled. - -2018-08-27 Martin Liska - - PR sanitizer/86962 - * sanopt.c (sanitize_rewrite_addressable_params): Ignore - params with DECL_HAS_VALUE_EXPR_P. - -2018-08-27 Martin Liska - - * config/i386/i386.c (ix86_expand_set_or_movmem): Dump - selected expansion strategy. - -2018-08-27 Martin Liska - - * builtins.h (is_builtin_fn): Remove and fndecl_built_in_p. - * builtins.c (is_builtin_fn): Likewise. - * attribs.c (diag_attr_exclusions): Use new function - fndecl_built_in_p and remove check for FUNCTION_DECL if - possible. - (builtin_mathfn_code): Likewise. - (fold_builtin_expect): Likewise. - (fold_call_expr): Likewise. - (fold_builtin_call_array): Likewise. - (fold_call_stmt): Likewise. - (set_builtin_user_assembler_name): Likewise. - (is_simple_builtin): Likewise. - * calls.c (gimple_alloca_call_p): Likewise. - (maybe_warn_nonstring_arg): Likewise. - * cfgexpand.c (expand_call_stmt): Likewise. - * cgraph.c (cgraph_update_edges_for_call_stmt_node): Likewise. - (cgraph_edge::verify_corresponds_to_fndecl): Likewise. - (cgraph_node::verify_node): Likewise. - * cgraphclones.c (build_function_decl_skip_args): Likewise. - (cgraph_node::create_clone): Likewise. - * config/arm/arm.c (arm_insert_attributes): Likewise. - * config/i386/i386.c (ix86_gimple_fold_builtin): Likewise. - * dse.c (scan_insn): Likewise. - * expr.c (expand_expr_real_1): Likewise. - * fold-const.c (operand_equal_p): Likewise. - (fold_binary_loc): Likewise. - * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise. - * gimple-low.c (lower_stmt): Likewise. - * gimple-pretty-print.c (dump_gimple_call): Likewise. - * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): - Likewise. - * gimple.c (gimple_build_call_from_tree): Likewise. - (gimple_call_builtin_p): Likewise. - (gimple_call_combined_fn): Likewise. - * gimplify.c (gimplify_call_expr): Likewise. - (gimple_boolify): Likewise. - (gimplify_modify_expr): Likewise. - (gimplify_addr_expr): Likewise. - * hsa-gen.c (gen_hsa_insns_for_call): Likewise. - * ipa-cp.c (determine_versionability): Likewise. - * ipa-fnsummary.c (compute_fn_summary): Likewise. - * ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise. - * ipa-split.c (visit_bb): Likewise. - (split_function): Likewise. - * ipa-visibility.c (cgraph_externally_visible_p): Likewise. - * lto-cgraph.c (input_node): Likewise. - * lto-streamer-out.c (write_symbol): Likewise. - * omp-low.c (setjmp_or_longjmp_p): Likewise. - (lower_omp_1): Likewise. - * predict.c (strip_predict_hints): Likewise. - * print-tree.c (print_node): Likewise. - * symtab.c (symtab_node::output_to_lto_symbol_table_p): Likewise. - * trans-mem.c (is_tm_irrevocable): Likewise. - (is_tm_load): Likewise. - (is_tm_simple_load): Likewise. - (is_tm_store): Likewise. - (is_tm_simple_store): Likewise. - (is_tm_abort): Likewise. - (tm_region_init_1): Likewise. - * tree-call-cdce.c (gen_shrink_wrap_conditions): Likewise. - * tree-cfg.c (verify_gimple_call): Likewise. - (move_stmt_r): Likewise. - (stmt_can_terminate_bb_p): Likewise. - * tree-eh.c (lower_eh_constructs_2): Likewise. - * tree-if-conv.c (if_convertible_stmt_p): Likewise. - * tree-inline.c (remap_gimple_stmt): Likewise. - (copy_bb): Likewise. - (estimate_num_insns): Likewise. - (fold_marked_statements): Likewise. - * tree-sra.c (scan_function): Likewise. - * tree-ssa-ccp.c (surely_varying_stmt_p): Likewise. - (optimize_stack_restore): Likewise. - (pass_fold_builtins::execute): Likewise. - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. - (mark_all_reaching_defs_necessary_1): Likewise. - * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Likewise. - * tree-ssa-forwprop.c (simplify_builtin_call): Likewise. - (pass_forwprop::execute): Likewise. - * tree-ssa-loop-im.c (stmt_cost): Likewise. - * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. - * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Likewise. - * tree-ssa-strlen.c (get_string_length): Likewise. - * tree-ssa-structalias.c (handle_lhs_call): Likewise. - (find_func_aliases_for_call): Likewise. - * tree-ssa-ter.c (find_replaceable_in_bb): Likewise. - * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Likewise. - * tree-tailcall.c (find_tail_calls): Likewise. - * tree.c (need_assembler_name_p): Likewise. - (free_lang_data_in_decl): Likewise. - (get_call_combined_fn): Likewise. - * ubsan.c (is_ubsan_builtin_p): Likewise. - * varasm.c (incorporeal_function_p): Likewise. - * tree.h (DECL_BUILT_IN): Remove and replace with - fndecl_built_in_p. - (DECL_BUILT_IN_P): Transfort to fndecl_built_in_p. - (fndecl_built_in_p): New. - -2018-08-27 Martin Liska - - PR tree-optimization/86847 - * tree-switch-conversion.c (switch_decision_tree::dump_case_nodes): - Dump also subtree probability. - (switch_decision_tree::do_jump_if_equal): New function. - (switch_decision_tree::emit_case_nodes): Handle special - situations in balanced tree that can be emitted much simpler. - Fix calculation of probabilities that happen in tree expansion. - * tree-switch-conversion.h (struct cluster): Add - is_single_value_p. - (struct simple_cluster): Likewise. - (struct case_tree_node): Add new function has_child. - (do_jump_if_equal): New. - -2018-08-27 Martin Liska - - * tree-switch-conversion.c (bit_test_cluster::find_bit_tests): - Add new argument to bit_test_cluster constructor. - (bit_test_cluster::emit): Set bits really number of values - handlel by a test. - (bit_test_cluster::hoist_edge_and_branch_if_true): Add - probability argument. - * tree-switch-conversion.h (struct bit_test_cluster): - Add m_handles_entire_switch. - -2018-08-27 Martin Liska - - PR tree-optimization/86702 - * tree-switch-conversion.c (jump_table_cluster::emit): - Make probabilities even for values in jump table - according to number of cases handled. - (switch_decision_tree::compute_cases_per_edge): Pass - argument to reset_out_edges_aux function. - (switch_decision_tree::analyze_switch_statement): Likewise. - * tree-switch-conversion.h (switch_decision_tree::reset_out_edges_aux): - Make it static. - -2018-08-27 Martin Liska - - * cfgexpand.c (expand_asm_stmt): Use label_to_block and pass - cfun argument explicitly. - * gimple-pretty-print.c (dump_gimple_switch): Likewise. - * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Use new - function gimple_switch_default_bb. - (convert_switch_statements): - (expand_builtins): - * ipa-fnsummary.c (set_switch_stmt_execution_predicate): - * stmt.c (label_to_block_fn): Use label_to_block and pass - cfun argument explicitly and use gimple_switch_label_bb. - (expand_case): Likewise. - * tree-cfg.c (lower_phi_internal_fn): Use label_to_block and pass - cfun argument explicitly. Likewise. - (make_edges_bb): Likewise. - (make_cond_expr_edges): Likewise. - (get_cases_for_edge): Likewise. - (make_gimple_switch_edges): Likewise. - (label_to_block_fn): Likewise. - (label_to_block): Likewise. - (make_goto_expr_edges): Likewise. - (make_gimple_asm_edges): Likewise. - (main_block_label): Likewise. - (group_case_labels_stmt): Likewise. - (find_taken_edge_computed_goto): Likewise. - (find_taken_edge_switch_expr): Likewise. - (gimple_verify_flow_info): Likewise. - (gimple_redirect_edge_and_branch): Likewise. - (gimple_switch_label_bb): New function. - (gimple_switch_default_bb): Likewise. - (gimple_switch_edge): Likewise. - (gimple_switch_default_edge): Likewise. - * tree-cfg.h (label_to_block_fn): Remove and replace ... - (label_to_block): ... with this. - (gimple_switch_label_bb): New. - (gimple_switch_default_bb): Likewise. - (gimple_switch_edge): Likewise. - (gimple_switch_default_edge): Likewise. - * tree-cfgcleanup.c (convert_single_case_switch): Use - new gimple functions and pass new argument to label_to_block. - (cleanup_control_flow_bb): - * tree-eh.c (make_eh_dispatch_edges): Use label_to_block and pass - cfun argument explicitly. - (make_eh_edges): Likewise. - (redirect_eh_dispatch_edge): Likewise. - (lower_resx): Likewise. - (lower_eh_dispatch): Likewise. - (maybe_remove_unreachable_handlers): Likewise. - (unsplit_eh): Likewise. - (cleanup_empty_eh): Likewise. - (verify_eh_edges): Likewise. - (verify_eh_dispatch_edge): Likewise. - * tree-ssa-dom.c (record_edge_info): Likewise. - * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): Likewise. - * tree-ssa-threadedge.c (thread_around_empty_blocks): Likewise. - (thread_through_normal_block): Likewise. - * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise. - * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): - * tree-switch-conversion.c (switch_conversion::collect): Use new - gimple functions. - (switch_conversion::check_final_bb): Likewise. - (switch_conversion::gather_default_values): Pass new argument - to label_to_block. - (switch_conversion::build_constructors): Likewise. - (switch_decision_tree::compute_cases_per_edge): Use new - gimple_switch_edge function. - (switch_decision_tree::analyze_switch_statement): Pass new argument - to label_to_block. - (switch_decision_tree::try_switch_expansion): Use - gimple_switch_default_edge. - * tree-vrp.c (find_switch_asserts): Pass new argument - to label_to_block. - * vr-values.c (vr_values::vrp_visit_switch_stmt): Likewise. - (vr_values::simplify_switch_using_ranges): Likewise. - -2018-08-27 Richard Biener - - * cfganal.h (rev_post_order_and_mark_dfs_back_seme): Declare. - * cfganal.c (rev_post_order_and_mark_dfs_back_seme): New function. - - * tree-ssa-sccvn.h (struct vn_pval): New structure. - (struct vn_nary_op_s): Add unwind_to member. Add - predicated_values flag and put result into a union together - with a linked list of vn_pval. - (struct vn_ssa_aux): Add name member to make maintaining - a map of SSA name to vn_ssa_aux possible. Remove no longer - needed info, dfsnum, low, visited, on_sccstack, use_processed - and range_info_anti_range_p members. - (run_scc_vn, vn_eliminate, free_scc_vn, vn_valueize): Remove. - (do_rpo_vn, run_rpo_vn, eliminate_with_rpo_vn, free_rpo_vn): - New functions. - (vn_valueize): New global. - (vn_context_bb): Likewise. - (VN_INFO_RANGE_INFO, VN_INFO_ANTI_RANGE_P, VN_INFO_RANGE_TYPE, - VN_INFO_PTR_INFO): Remove. - * tree-ssa-sccvn.c: ... (rewrite) - (pass_fre::execute): For -O2+ initialize loops and run - RPO VN in optimistic mode (iterating). For -O1 and -Og - run RPO VN in non-optimistic mode. - * params.def (PARAM_SCCVN_MAX_SCC_SIZE): Remove. - (PARAM_RPO_VN_MAX_LOOP_DEPTH): Add. - * doc/invoke.texi (sccvn-max-scc-size): Remove. - (rpo-vn-max-loop-depth): Document. - * tree-ssa-alias.c (walk_non_aliased_vuses): Stop walking - when valuezing the VUSE signals we walked out of the region. - * tree-ssa-pre.c (phi_translate_1): Ignore predicated values. - (phi_translate): Set VN context block to use for availability - lookup. - (compute_avail): Likewise. - (pre_valueize): New function. - (pass_pre::execute): Adjust to the RPO VN API. - - * tree-ssa-loop-ivcanon.c: Include tree-ssa-sccvn.h. - (propagate_constants_for_unrolling): Remove. - (tree_unroll_loops_completely): Perform value-numbering - on the unrolled bodies loop parent. - -2018-08-27 Richard Biener - - * tree-ssa-pre.c (compute_antic): Re-use inverted postorder - for partial antic compute. - -2018-08-27 Jakub Jelinek - - PR rtl-optimization/87065 - * combine.c (simplify_if_then_else): Formatting fix. - (if_then_else_cond): Guard MULT optimization with SCALAR_INT_MODE_P - check. - (known_cond): Don't return const_true_rtx for vector modes. Use - CONST0_RTX instead of const0_rtx. Formatting fixes. - -2018-08-27 Martin Liska - - PR gcov-profile/87069 - * gcov.c (process_file): Record files already processed - and warn about a file being processed multiple times. - -2018-08-27 Martin Liska - - PR driver/83193 - * config/aarch64/aarch64.c (aarch64_override_options_internal): - Set default values for x_aarch64_*_string strings. - * config/aarch64/aarch64.opt: Remove --{march,mcpu,mtune}== - prefix. For -mabi do not print '=ABI' in help and use - format for -msve-vector-bits and -moverride - options. - -2018-08-26 Jeff Law - - * config/mips/frame-header-opt.c: Include "backend.h" rather than - "cfg.h" - -2018-08-26 Marek Polacek - - PR c++/87029, Implement -Wredundant-move. - * doc/invoke.texi: Document -Wredundant-move. - -2018-08-25 Martin Sebor - - PR tree-optimization/87059 - * builtins.c (expand_builtin_strncmp): Convert MIN_EXPR operand - to the same type as the other. - * fold-const.c (fold_binary_loc): Assert expectation. - -2018-08-25 Iain Sandoe - - * config/darwin.c (machopic_legitimize_pic_address): Clean up - extraneous parentheses, dead code section and formatting. - -2018-08-24 David Malcolm - - PR c++/87091 - * diagnostic-show-locus.c (layout::layout): Ensure the margin is - wide enough for jumps in the line-numbering to be visible. - (layout::print_gap_in_line_numbering): New member function. - (layout::calculate_line_spans): When using line numbering, merge - line spans that are only 1 line apart. - (diagnostic_show_locus): When printing line numbers, show gaps in - line numbering directly, rather than printing headers. - (selftest::test_diagnostic_show_locus_fixit_lines): Add test of - line-numbering with multiple line spans. - (selftest::test_fixit_insert_containing_newline_2): Add test of - line-numbering, in which the spans are close enough to be merged. - -2018-08-24 Aldy Hernandez - - * gimple-ssa-evrp-analyze.c (set_ssa_range_info): Pass value_range - to range_includes_zero_p. Do not special case VR_ANTI_RANGE. - * tree-vrp.c (range_is_nonnull): Remove. - (range_includes_zero_p): Accept value_range instead of min/max. - (extract_range_from_binary_expr_1): Do not early bail on - POINTER_PLUS_EXPR. - Use range_includes_zero_p instead of range_is_nonnull. - (extract_range_from_unary_expr): Use range_includes_zero_p instead - of range_is_nonnull. - (vrp_meet_1): Pass value_range to range_includes_zero_p. Do not - special case VR_ANTI_RANGE. - (vrp_finalize): Same. - * tree-vrp.h (range_includes_zero_p): Pass value_range as argument - instead of min/max. - (range_is_nonnull): Remove. - * vr-values.c (vrp_stmt_computes_nonzero): Use - range_includes_zero_p instead of range_is_nonnull. - (extract_range_basic): Pass value_range to range_includes_zero_p - instead of range_is_nonnull. - -2018-08-24 Uros Bizjak - - * emit-rtl.c (init_emit_once): Do not emit MODE_POINTER_BOUNDS RTXes. - * emit-rtl.h (rtl_data): Remove return_bnd. - * explow.c (trunc_int_for_mode): Do not handle POINTER_BOUNDS_MODE_P. - * function.c (diddle_return_value): Do not handle crtl->return_bnd. - * genmodes.c (complete_mode): Do not handle MODE_POINTER_BOUNDS. - (POINTER_BOUNDS_MODE): Remove definition. - (make_pointer_bounds_mode): Remove. - (get_mode_class): Do not handle MODE_POINTER_BOUNDS. - * machmode.h (POINTER_BOUNDS_MODE_P): Remove definition. - (scalare_mode::includes_p): Do not handle MODE_POINTER_BOUNDS. - * mode-classes.def: Do not define MODE_POINTER_BOUNDS. - * stor-layout.c (int_mode_for_mode): Do not handle MODE_POINTER_BOUNDS. - * tree-core.h (enum tree_index): Remove TI_POINTER_BOUNDS_TYPE. - * varasm.c (output_constant_pool_2): Do not handle MODE_POINTER_BOUNDS. - - * config/i386/i386-modes.def (BND32, BND64): Remove. - * config/i386/i386.c (dbx_register_map): Remove bound registers. - (dbx64_register_map): Ditto. - (svr4_dbx_register_map): Ditto. - (indirect_thunk_bnd_needed): Remove. - (indirect_thunks_bnd_used): Ditto. - (indirect_return_bnd_needed): Ditto. - (indirect_return_via_cx_bnd): Ditto. - (enum indirect_thunk_prefix): Remove indirect_thunk_prefix_bnd. - (indirect_thunk_name): Remove handling of indirect_thunk_prefix_bnd. - (output_indirect_thunk): Ditto. Remove need_prefix argument. - (output_indirect_thunk_function): Remove handling of - indirect_return_bnd_needed, indirect_return_via_cx_bnd, - indirect_thunk_bnd_needed and indirect_thunks_bnd_used variables. - (ix86_save_reg): Remove handling of crtl->return_bnd. - (ix86_legitimate_constant_p): Remove handling of POINTER_BOUNDS_MODE_P. - (ix86_print_operand_address_as): Remove handling of UNSPEC_BNDMK_ADDR - and UNSPEC_BNDLX_ADDR. - (ix86_output_indirect_branch_via_reg): Remove handling of - indirect_thunk_prefix_bnd. - (ix86_output_indirect_branch_via_push): Ditto. - (ix86_output_function_return): Ditto. - (ix86_output_indirect_function_return): Ditto. - (avoid_func_arg_motion): Do not handle UNSPEC_BNDSTX. - * config/i386/i386.h (FIXED_REGISTERS): Remove bound registers. - (CALL_USED_REGISTERS): Ditto. - (REG_ALLOC_ORDER): Update for removal of bound registers. - (HI_REGISTER_NAMES): Ditto. - * config/i386/i386.md (UNSPEC_BNDMK, UNSPEC_BNDMK_ADDR, UNSPEC_BNDSTX) - (UNSPEC_BNDLDX, UNSPEC_BNDLDX_ADDR, UNSPEC_BNDCL, UNSPEC_BNDCU) - (UNSPEC_BNDCN, UNSPEC_MPX_FENCE): Remove. - (BND0_REG, BND1_REG, BND2_REG, BND3_REG): Remove - (FIRST_PSEUDO_REG): Update. - (BND): Remove mode iterator. - * config/i386/predicates.md (bnd_mem_operator): Remove. - -2018-08-24 Richard Sandiford - - * tree-vect-stmts.c (vectorizable_bswap): Handle variable-length - vectors. - -2018-08-24 Richard Sandiford - - * tree-vect-slp.c (vect_transform_slp_perm_load): Separate out - the case in which the permute needs only a single element and - repeats for every vector of the result. Extend that case to - handle variable-length vectors. - * tree-vect-stmts.c (vectorizable_load): Update accordingly. - -2018-08-24 H.J. Lu - - PR debug/79342 - * dwarf2out.c (save_macinfo_strings): Call set_indirect_string - on DW_MACINFO_start_file for -gsplit-dwarf -g3. - -2018-08-24 Richard Biener - - * cfg.h (struct control_flow_graph): Add edge_flags_allocated and - bb_flags_allocated members. - (auto_flag): New RAII class for allocating flags. - (auto_edge_flag): New RAII class for allocating edge flags. - (auto_bb_flag): New RAII class for allocating bb flags. - * cfgloop.c (verify_loop_structure): Allocate temporary edge - flag dynamically. - * cfganal.c (dfs_enumerate_from): Remove use of visited sbitmap - in favor of temporarily allocated BB flag. - * hsa-brig.c: Re-order includes. - * hsa-dump.c: Likewise. - * hsa-regalloc.c: Likewise. - * print-rtl.c: Likewise. - * profile-count.c: Likewise. - -2018-08-24 Segher Boessenkool - - PR target/86989 - * config/rs6000/rs6000.c (toc_relative_expr_p): Check that the base is - the TOC register. - -2018-08-24 Aldy Hernandez - - PR 87073/bootstrap - * wide-int-range.cc (wide_int_range_div): Do not ignore result - from wide_int_range_multiplicative_op. - -2018-08-23 Prathamesh Kulkarni - - * tree-vect-data-refs.c (vect_grouped_store_supported): Fix typo - "permutaion". - -2018-08-23 Giuliano Belinassi - - * genmatch.c (parser::parse_operation): Fix typo 'exapnded' - to 'expanded'. - -2018-08-23 Alexander Monakov - - * tree-scalar-evolution.c (final_value_replacement_loop): Dump - full GENERIC expression used for replacement. - -2018-08-23 Aldy Hernandez - - * tree-vrp.c (abs_extent_range): Remove. - (extract_range_into_wide_ints): Pass wide ints by reference. - (extract_range_from_binary_expr_1): Rewrite the *DIV_EXPR code. - Pass wide ints by reference in all calls to - extract_range_into_wide_ints. - * wide-int-range.cc (wide_int_range_div): New. - * wide-int-range.h (wide_int_range_div): New. - (wide_int_range_includes_zero_p): New. - (wide_int_range_zero_p): New. - -2018-08-23 Matthew Malcomson - - * config/aarch64/aarch64.md (arches): New enum. - (arch): New enum attr. - (arch_enabled): New attr. - (enabled): Now uses arch_enabled only. - (simd, sve, fp16): Removed attribute. - (fp): Attr now defined in terms of 'arch'. - (*mov_aarch64, *movsi_aarch64, *movdi_aarch64, *movti_aarch64, - *movhf_aarch64, 2, - 3, - 3): Merge 'fp' and 'simd' - attributes into 'arch'. - (*movsf_aarch64, *movdf_aarch64, *movtf_aarch64, *add3_aarch64, - subdi3, neg2, 3, one_cmpl2, - *_one_cmpl3, *xor_one_cmpl3, - *aarch64_ashl_sisd_or_int_3, *aarch64_lshr_sisd_or_int_3, - *aarch64_ashr_sisd_or_int_3, *aarch64_sisd_ushl): Convert use of - 'simd' attribute into 'arch'. - (load_pair_sw_, load_pair_dw_, - store_pair_sw_, store_pair_dw_): - Convert use of 'fp' attribute to 'arch'. - * config/aarch64/aarch64-simd.md (move_lo_quad_internal_, - move_lo_quad_internal_): (different modes) Merge 'fp' and 'simd' - into 'arch'. - (move_lo_quad_internal_be_, move_lo_quad_internal_be_): - (different modes) Merge 'fp' and 'simd' into 'arch'. - (*aarch64_combinez, *aarch64_combinez_be): Merge 'fp' and - 'simd' into 'arch'. - -2018-08-23 Segher Boessenkool - - PR rtl-optimization/87026 - * expmed.c (canonicalize_comparison): If we can no longer create - pseudoregisters, don't. - -2018-08-23 Richard Earnshaw - - PR target/86951 - * config/arm/arm-protos.h (arm_emit_speculation_barrier): New - prototype. - * config/arm/arm.c (speculation_barrier_libfunc): New static - variable. - (arm_init_libfuncs): Initialize it. - (arm_emit_speculation_barrier): New function. - * config/arm/arm.md (speculation_barrier): Call - arm_emit_speculation_barrier for architectures that do not have - DSB or ISB. - (speculation_barrier_insn): Only match on Armv7 or later. - -2018-08-23 Richard Biener - - PR middle-end/87024 - * tree-inline.c (copy_bb): Drop unused __builtin_va_arg_pack_len - calls. - -2018-08-23 Richard Sandiford - - * config/aarch64/aarch64.c (aarch64_evpc_sve_tbl): Fix handling - of single-vector TBLs. - (aarch64_vectorize_vec_perm_const): Set one_vector_p when only - one input is given. - -2018-08-23 Richard Sandiford - - PR target/85910 - * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Fix - aarch64_evpc_tbl guard. - -2018-08-22 Bernd Edlinger - - * tree-ssa-dse.c (compute_trims): Avoid folding away undefined - behaviour. - -2018-08-22 Martin Sebor - - PR middle-end/87052 - * tree-pretty-print.c (pretty_print_string): Add argument. - (dump_generic_node): Call to pretty_print_string with string size. - -2018-08-22 Segher Boessenkool - - PR rtl-optimization/86771 - * combine.c (try_combine): Do not allow splitting a resulting PARALLEL - of two SETs into those two SETs, one to be placed at i2, if that SETs - destination is modified between i2 and i3. - -2018-08-22 Richard Sandiford - - PR tree-optimization/86725 - * tree-vect-loop.c (vect_inner_phi_in_double_reduction_p): New - function. - (vect_analyze_scalar_cycles_1): Check it. - -2018-08-22 Richard Sandiford - - PR tree-optimization/86725 - * tree-vect-loop.c (vect_is_simple_reduction): When treating - an outer loop phi as a double reduction, make sure that the - single user of the phi result is an inner loop phi. - -2018-08-22 Richard Sandiford - - * tree-vect-data-refs.c (vect_analyze_group_access_1): Convert - grouped stores with gaps to a strided group. - -2018-08-22 Richard Sandiford - - * tree-vect-stmts.c (get_group_load_store_type) - (get_load_store_type): Only test STMT_VINFO_STRIDED_P for the - first statement in a group. - -2018-08-22 Iain Sandoe - - * config/darwin.h (LINK_COMMAND_SPEC_A): Sync LTO options with - the sequence used in gcc/gcc.c. - -2018-08-22 Iain Sandoe - - PR other/704 - * gcc-ar.c (main): Don’t try to invoke the plug-in if we’re not - building it. - -2018-08-22 Iain Sandoe - - * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Adjust to use the - Darwin10-specific unwinder-shim. - * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Remove. - * config/rs6000/darwin.h (DARWIN_CRT1_SPEC, DARWIN_DYLIB1_SPEC): - New to cater for Darwin10 Rosetta. - -2018-08-22 Iain Sandoe - - * config/i386/i386.c (ix86_output_addr_diff_elt): Move the MACH-O - specific test before the one for HAVE_AS_GOTOFF_IN_DATA. - -2018-08-22 Iain Sandoe - - PR bootstrap/81033 - PR target/81733 - PR target/52795 - * gcc/dwarf2out.c (FUNC_SECOND_SECT_LABEL): New. - (dwarf2out_switch_text_section): Generate a local label for the - second function sub-section and apply it as the second FDE start - label. - * gcc/final.c (final_scan_insn_1): Emit second FDE label after the - second sub-section start. - -2018-08-22 Richard Biener - - PR tree-optimization/86988 - * tree-vrp.c (vrp_prop::check_mem_ref): Bail out on VLAs. - -2018-08-22 Richard Biener - - PR tree-optimization/86945 - * tree-cfg.c (generate_range_test): Use unsigned arithmetic. - -2018-08-22 Alexandre Oliva - - * config/rs6000/rs6000.c (SMALL_DATA_RELOC, SMALL_DATA_REG): Add - a comment about how uses of r2 for .sdata2 come about. - -2018-08-22 Alexandre Oliva - - * tree-ssa-reassoc.c (is_reassociable_op): Fix cut&pasto. - -2018-08-21 Marek Polacek - - PR c++/86981, Implement -Wpessimizing-move. - * doc/invoke.texi: Document -Wpessimizing-move. - -2018-08-21 Jan Hubicka - - * tree.c (find_decls_types_r): Do not check for redundant typedefs. - * tree.h (is_redundant_typedef): Remove. - * dwarf2out.c (is_redundant_typedef): Turn into static function. - -2018-08-21 Jan Hubicka - - * tree.c (free_lang_data_in_decl): Remove types from DECL_CONTEXT - when possible. - -2018-08-21 Tamar Christina - - * expmed.c (extract_low_bits): Reject invalid subregs early. - -2018-08-21 Bernd Edlinger - - PR middle-end/86121 - * tree-ssa-strlen.c (adjust_last_stmt): Avoid folding away undefined - behaviour. - -2018-08-21 Rasmus Villemoes - - * config/vxworks.h: Guard vxworks_asm_out_constructor and - vxworks_asm_out_destructor by !HAVE_INITFINI_ARRAY_SUPPORT - * config/vxworks.c: Likewise. - -2018-08-21 Rasmus Villemoes - - * config/vxworks.c: Set targetm.have_ctors_dtors - if HAVE_INITFINI_ARRAY_SUPPORT. - * config/vxworks.h: Set SUPPORTS_INIT_PRIORITY - if HAVE_INITFINI_ARRAY_SUPPORT. - -2018-08-21 Rasmus Villemoes - - * config/vxworks.h: Add $(WIND_BASE)/target/h/wrn/coreip to - default search path for VxWorks < 7. - -2018-08-21 Bernd Edlinger - - * gimple-ssa-sprintf.c (decl_constant_value): Remove. - (get_format_string): Refer to c_getstr. - -2018-08-21 Tom de Vries - - * cgraph.h (debuginfo_early_init, debuginfo_init, debuginfo_fini) - (debuginfo_start, debuginfo_stop, debuginfo_early_start) - (debuginfo_early_stop): Declare. - * cgraphunit.c (debuginfo_early_init, debuginfo_init, debuginfo_fini) - (debuginfo_start, debuginfo_stop, debuginfo_early_start) - (debuginfo_early_stop): New function. - (symbol_table::finalize_compilation_unit): Call debuginfo_early_start - and debuginfo_early_stop. - * dwarf2out.c (dwarf2out_finish, dwarf2out_early_finish): Dump dwarf. - * toplev.c (compile_file): Call debuginfo_start and debuginfo_stop. - (general_init): Call debuginfo_early_init. - (finalize): Call debuginfo_fini. - (do_compile): Call debuginfo_init. - * doc/invoke.texi (@gccoptlist): Add -fdump-debug and - -fdump-early-debug. - (@item -fdump-debug, @item -fdump-earlydebug): Add. - -2018-08-21 Tom de Vries - - * dwarf2out.c (print_dw_val, print_loc_descr, print_die): Handle - flag_dump_noaddr and flag_dump_unnumbered. - -2018-08-21 Aldy Hernandez - - * wide-int-range.cc (wide_int_range_abs): New. - (wide_int_range_order_set): Rename from wide_int_range_min_max. - * wide-int-range.h (wide_int_range_abs): New. - (wide_int_range_min_max): New. - * tree-vrp.c (extract_range_from_unary_expr): Rewrite ABS_EXPR - case to call wide_int_range_abs. - Rewrite MIN/MAX_EXPR to call wide_int_range_min_max. - (extract_range_from_abs_expr): Delete. - -2018-08-20 Michael Meissner - - PR target/87033 - * config/rs6000/rs6000.md (extendsi2): Change constraints - from 'Y' to 'YZ' to enable the LWAX instruction to be generated - for indexed loads. - -2018-08-20 Nathan Sidwell - Jeff Law - - * config/s390/s390-c (s390_macro_to_expand): Use cpp_macro_p. - * config/spu/spu-c.c (spu_macro_to_expand): Likewise. - -2018-08-20 David Malcolm - - PR other/84889 - * attribs.c (diag_attr_exclusions): Add auto_diagnostic_group instance. - (decl_attributes): Likewise. - * calls.c (maybe_warn_nonstring_arg): Add auto_diagnostic_group - instance. - * cgraphunit.c (maybe_diag_incompatible_alias): Likewise. - * diagnostic-core.h (class auto_diagnostic_group): New class. - * diagnostic.c (diagnostic_initialize): Initialize the new fields. - (diagnostic_report_diagnostic): Handle the first diagnostics within - a group. - (emit_diagnostic): Add auto_diagnostic_group instance. - (inform): Likewise. - (inform_n): Likewise. - (warning): Likewise. - (warning_at): Likewise. - (warning_n): Likewise. - (pedwarn): Likewise. - (permerror): Likewise. - (error): Likewise. - (error_n): Likewise. - (error_at): Likewise. - (sorry): Likewise. - (fatal_error): Likewise. - (internal_error): Likewise. - (internal_error_no_backtrace): Likewise. - (auto_diagnostic_group::auto_diagnostic_group): New ctor. - (auto_diagnostic_group::~auto_diagnostic_group): New dtor. - * diagnostic.h (struct diagnostic_context): Add fields - "diagnostic_group_nesting_depth", - "diagnostic_group_emission_count", "begin_group_cb", - "end_group_cb". - * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): - Add auto_diagnostic_group instance(s). - (find_explicit_erroneous_behavior): Likewise. - * gimple-ssa-warn-alloca.c (pass_walloca::execute): Likewise. - * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Likewise. - * gimplify.c (warn_implicit_fallthrough_r): Likewise. - (gimplify_va_arg_expr): Likewise. - * hsa-gen.c (HSA_SORRY_ATV): Likewise. - (HSA_SORRY_AT): Likewise. - * ipa-devirt.c (compare_virtual_tables): Likewise. - (warn_odr): Likewise. - * multiple_target.c (expand_target_clones): Likewise. - * opts-common.c (cmdline_handle_error): Likewise. - * reginfo.c (globalize_reg): Likewise. - * substring-locations.c (format_warning_n_va): Likewise. - * tree-inline.c (expand_call_inline): Likewise. - * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Likewise. - * tree-ssa-loop-niter.c - (do_warn_aggressive_loop_optimizations): Likewise. - * tree-ssa-uninit.c (warn_uninit): Likewise. - * tree.c (warn_deprecated_use): Likewise. - -2018-08-20 H.J. Lu - - PR target/87014 - * config/i386/i386.md (eh_return): Always update EH return - address in word_mode. - -2018-08-20 Chung-Lin Tang - - * targhooks.c (std_gimplify_va_arg_expr): Properly handle case of when - TARGET_SPLIT_COMPLEX_ARG is defined. - -2018-08-20 Bernd Edlinger - - * expr.c (store_field): Change gcc_assert to gcc_checking_assert. - -2018-08-20 Bernd Edlinger - - PR target/86984 - * expr.c (expand_assignment): Assert that bitpos is positive. - (store_field): Likewise - (expand_expr_real_1): Make sure that bitpos is positive. - * config/alpha/alpha.h (CONSTANT_ADDRESS_P): Avoid signed - integer overflow. - -2018-08-20 Nathan Sidwell - - * Makefile.in (CPP_ID_DATA_H): Delete. - (CPP_INTERNAL_H): Don't add it. - (GTFILES): Replace CPP_ID_DATA_H with CPPLIB_H. - * gengtype.c (open_base_files): Replace cpp-id-data.h with cpplib.h - -2018-08-20 Richard Biener - - PR tree-optimization/78655 - * tree-vrp.c (extract_range_from_binary_expr_1): Make - pointer + offset nonnull if either operand is nonnull work. - -2018-08-20 Tom de Vries - - * dwarf2out.c (add_scalar_info): Don't add reference to existing die - unless the referenced die describes the added property using - DW_AT_location or DW_AT_const_value. Fall back to exprloc case. - Otherwise, add a DW_AT_location to the referenced die. - -2018-08-19 Uros Bizjak - - PR target/86994 - * config/i386/i386.c (ix86_rtx_costs) [case SET]: Check source for - register_operand when calling ix86_set_reg_reg_cost. - [case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF]: - Set *total to 0 for operands that satisfy x86_64_immediate_operand - predicate and to 1 otherwise. - -2018-08-18 Iain Sandoe - - * config/darwin.c (darwin_override_options): If -gsplit-dwarf is set, - emit a diagnostic that it is not supported and reset the option. - * config/darwin.h (DRIVER_SELF_SPECS): Note that gsplit-dwarf is not - supported and consume the option. (ASM_FINAL_SPEC): New. - -2018-08-17 Segher Boessenkool - - * doc/md.texi (Patterns): Use @ref instead of @xref in the middle of - a sentence. - -2018-08-17 Sandra Loosemore - - C-SKY port: Documentation - - * doc/extend.texi (C-SKY Function Attributes): New section. - * doc/invoke.texi (Option Summary): Add C-SKY options. - (C-SKY Options): New section. - * doc/md.texi (Machine Constraints): Document C-SKY constraints. - -2018-08-17 Jojo - Huibin Wang - Sandra Loosemore - Chung-Lin Tang - - C-SKY port: Backend implementation - - * config/csky/*: New. - * common/config/csky/*: New. - -2018-08-17 Jojo - Huibin Wang - Sandra Loosemore - Chung-Lin Tang - Andrew Jenner - - C-SKY port: Configury - - * config.gcc (csky-*-*): New. - * configure.ac: Add csky to targets for dwarf2 debug_line support. - * configure: Regenerated. - -2018-08-17 David Malcolm - - * dump-context.h: Include "dumpfile.h". - (dump_context::dump_printf_va): Convert final param from va_list - to va_list *. Convert from ATTRIBUTE_PRINTF to - ATTRIBUTE_GCC_DUMP_PRINTF. - (dump_context::dump_printf_loc_va): Likewise. - * dumpfile.c: Include "stringpool.h". - (make_item_for_dump_printf_va): Delete. - (make_item_for_dump_printf): Delete. - (class dump_pretty_printer): New class. - (dump_pretty_printer::dump_pretty_printer): New ctor. - (dump_pretty_printer::emit_items): New member function. - (dump_pretty_printer::emit_any_pending_textual_chunks): New member - function. - (dump_pretty_printer::emit_item): New member function. - (dump_pretty_printer::stash_item): New member function. - (dump_pretty_printer::format_decoder_cb): New member function. - (dump_pretty_printer::decode_format): New member function. - (dump_context::dump_printf_va): Reimplement in terms of - dump_pretty_printer. - (dump_context::dump_printf_loc_va): Convert final param from va_list - to va_list *. - (dump_context::begin_scope): Reimplement call to - make_item_for_dump_printf. - (dump_printf): Update for change to dump_printf_va. - (dump_printf_loc): Likewise. - (selftest::test_capture_of_dump_calls): Convert "stmt" from - greturn * to gimple *. Add a test_decl. Add tests of dump_printf - with %T, %E, and %G. - * dumpfile.h (ATTRIBUTE_GCC_DUMP_PRINTF): New macro. - (dump_printf): Replace ATTRIBUTE_PRINTF_2 with - ATTRIBUTE_GCC_DUMP_PRINTF (2, 3). - (dump_printf_loc): Replace ATTRIBUTE_PRINTF_3 with - ATTRIBUTE_GCC_DUMP_PRINTF (3, 0). - * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Convert - use of HOST_WIDE_INT_PRINT_DEC on unsigned HOST_WIDE_INT "count" - within a dump_printf_loc call to "%wu". - (vector_alignment_reachable_p): Merge two dump_printf[_loc] calls, - converting a use of HOST_WIDE_INT_PRINT_DEC to "%wd". Add a - missing space after "=". - * tree-vect-loop.c (vect_analyze_loop_2) Within a dump_printf - call, convert use of HOST_WIDE_INT_PRINT_DEC to "%wd". - * tree-vect-slp.c (vect_slp_bb): Within a dump_printf_loc call, - convert use of HOST_WIDE_INT_PRINT_UNSIGNED to "%wu". - * tree-vectorizer.c (try_vectorize_loop_1): Likewise. Remove - duplicate "vectorized" from message. - -2018-08-17 Szabolcs Nagy - - * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Clear - polyNxK_t element's TYPE_STRING_FLAG. - -2018-08-17 Segher Boessenkool - - * config/rs6000/rs6000.md (*cbranch, *creturn): Name these patterns - (they were unnamed before). Fix comments. - -2018-08-17 Nathan Sidwell - - * cppbuiltin.c: Include "cpplib.h", not "cpp-id-data.h". - -2018-08-17 Richard Biener - - PR tree-optimization/86841 - * wide-int-range.cc (wide_int_range_lshift): Use to_uhwi. - -2018-08-17 Martin Liska - - * common.opt: Remove Warn, Init and Report for options with - Ignore/Deprecated flag. Warning is done automatically for - Deprecated flags. - * config/i386/i386.opt: Likewise. - * config/ia64/ia64.opt: Likewise. - * config/rs6000/rs6000.opt: Likewise. - * cppbuiltin.c (define_builtin_macros_for_compilation_flags): - Remove usage of flag_check_pointer_bounds. - * lto-wrapper.c (merge_and_complain): Do not handle - OPT_fcheck_pointer_bounds. - (append_compiler_options): Likewise. - * opt-functions.awk: Do not handle Deprecated. - * optc-gen.awk: Check that Var, Report and Init are not - used for an option with Ignore/Deprecated flag. - * opts-common.c (decode_cmdline_option): Do not report - CL_ERR_DEPRECATED. - (read_cmdline_option): Report warning for OPT_SPECIAL_deprecated - options. - * opts.h (struct cl_option): Remove cl_deprecated flag. - (CL_ERR_DEPRECATED): Remove error enum value. - -2018-08-17 Richard Biener - - PR middle-end/86505 - * tree-inline.c (copy_bb): When inlining __builtin_va_arg_pack_len () - across a va-arg-pack using call adjust its return value accordingly. - -2018-08-16 Martin Sebor - - PR tree-optimization/86853 - * gimple-ssa-sprintf.c (struct format_result): Rename member. - (struct fmtresult): Add member and initialize it in ctors. - (format_character): Handle %C. Extend range to NUL. Set MAYFAIL. - (format_string): Handle %S the same as %ls. Set MAYFAIL. - (format_directive): Set POSUNDER4K when MAYFAIL is set. - (parse_directive): Handle %C same as %c. - (sprintf_dom_walker::compute_format_length): Adjust. - (is_call_safe): Adjust. - -2018-08-16 Bernd Edlinger - - * builtins.c (c_strlen): Add new parameter eltsize. Use it - for determining how to count the elements. - * builtins.h (c_strlen): Adjust prototype. - * expr.c (string_constant): Add new parameter mem_size. - Set *mem_size appropriately. - * expr.h (string_constant): Adjust protoype. - * gimple-fold.c (get_range_strlen): Add new parameter eltsize. - * gimple-fold.h (get_range_strlen): Adjust prototype. - * gimple-ssa-sprintf.c (get_string_length): Add new parameter eltsize. - (format_string): Call get_string_length with eltsize. - -2018-08-16 David Malcolm - - * diagnostic.c (default_diagnostic_start_span_fn): Call pp_string - to emit the span, rather than setting it as the prefix. - -2018-08-16 David Malcolm - - * diagnostic-show-locus.c (layout::start_annotation_line): Add - "margin_char" parameter, defaulting to space. Use it in place - of pp_space for the initial part of the margin. - (layout::print_leading_fixits): Use '+' when filling the margin - of line-insertion fix-it hints. - -2018-08-16 Segher Boessenkool - - * config/rs6000/rs6000.md (two unnamed define_insn and define_split): - Delete. - -2018-08-16 Segher Boessenkool - - * config/rs6000/altivec.md: Don't set length attribute to the default - value. - * config/rs6000/darwin.md: Ditto. - * config/rs6000/dfp.md: Ditto. - * config/rs6000/htm.md: Ditto. - * config/rs6000/rs6000.md: Ditto. - * config/rs6000/sync.md: Ditto. - * config/rs6000/vsx.md: Ditto. - -2018-08-16 Segher Boessenkool - - * config/rs6000/altivec.md: Don't set length attribute to the default - value, for branch instructions. - * config/rs6000/darwin.md: Ditto. - * config/rs6000/rs6000.md: Ditto. - -2018-08-16 Segher Boessenkool - - * config/rs6000/rs6000.md (length): Always define as const_int 4. - (unnamed conditional branch define_insn): Set length to 4 or 8 - depending on offset. - (_): Similar, for alternative 0. - (tf_): Ditto. - -2018-08-16 Tamar Christina - - * expr.c (copy_blkmode_to_reg): Perform larger copies when safe. - -2018-08-16 Matthew Malcomson - - * doc/rtl.texi: Replace old RTX class names with new names. - - -2018-08-16 Vlad Lazar - - * expmed.h (canonicalize_comparison): New declaration. - * expmed.c (canonicalize_comparison, equivalent_cmp_code): New function. - * expmed.c (emit_store_flag_1): Add call to canonicalize_comparison. - * optabs.c (prepare_cmp_insn): Likewise. - * rtl.h (unsigned_condition_p): New function which checks if a - comparison operator is unsigned. - -2018-08-16 Nathan Sidwell - - * config/rs6000/rs6000-c.c (rs6000_macro_to_expend): Use cpp_macro_p. - * config/powerpcspc/powerpcspe-c.c (rs6000_macro_to_expend): Likewise. - -2018-08-16 Tamar Christina - - PR target/84711 - * config/arm/arm.c (arm_can_change_mode_class): Disallow subreg. - * config/arm/neon.md (movv4hf, movv8hf): Refactored to.. - (mov): ..this and enable unconditionally. - -2018-08-16 Tamar Christina - - * config/arm/neon.md (*neon_mov): Remove reg-to-reg alternative. - -2018-08-16 Sam Tebbs - - * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt) - (mlow-precision-sqrt, mlow-precision-div, mverbose-cost-dump): Replace - "Common" with "Target". - -2018-08-15 Uros Bizjak - - * config/i386/i386.opt (mmitigate-rop): Mark as deprecated. - * doc/invoke.texi (mmitigate-rop): Remove. - * config/i386/i386.c: Do not include "regrename.h". - (ix86_rop_should_change_byte_p, reg_encoded_number) - (ix86_get_modrm_for_rop, set_rop_modrm_reg_bits, ix86_mitigate_rop): - Remove. - (ix86_reorg): Remove call to ix86_mitigate_rop. - * config/i386/i386.md (attr "modrm_class"): Remove. - (cmp_ccno_1, mov_xor, movstrict_xor) - (x86_movcc_0_m1. x86_movcc_0_m1_se) - (x86_movcc_0_m1_neg): Remove modrm_class attribute override. - -2018-08-15 Will Schmidt - - * config/rs6000/rs600.c (rs6000_gimple_fold_builtin): Add entries to - allow folding of mergeh() and mergel() for the float and double types. - (fold_mergehl_helper): Rework to handle building a permute tree - for float vectors. - -2018-08-15 Uros Bizjak - - * config/i386/i386.c (expand_vec_perm_movs): Enable V4SFmode - for TARGET_SSE. - -2018-08-15 David Malcolm - - * common.opt (fdiagnostics-show-labels): New option. - * diagnostic-show-locus.c (class layout_range): Add field - "m_label". - (class layout): Add field "m_show_labels_p". - (layout_range::layout_range): Add param "label" and use it to - initialize m_label. - (make_range): Pass in NULL for new "label" param of layout_range's - ctor. - (layout::layout): Initialize m_show_labels_p. - (layout::maybe_add_location_range): Pass in loc_range->m_label - when constructing layout_range instances. - (struct line_label): New struct. - (layout::print_any_labels): New member function. - (layout::print_line): Call it if label-printing is enabled. - (selftest::test_one_liner_labels): New test. - (selftest::test_diagnostic_show_locus_one_liner): Call it. - * diagnostic.c (diagnostic_initialize): Initialize - context->show_labels_p. - * diagnostic.h (struct diagnostic_context): Add field - "show_labels_p". - * doc/invoke.texi (Diagnostic Message Formatting Options): Add - -fno-diagnostics-show-labels. - * dwarf2out.c (gen_producer_string): Add - OPT_fdiagnostics_show_labels to the ignored options. - * gcc-rich-location.c (gcc_rich_location::add_expr): Add "label" - param. - (gcc_rich_location::maybe_add_expr): Likewise. - * gcc-rich-location.h (gcc_rich_location::gcc_rich_location): Add - label" param, defaulting to NULL. - (gcc_rich_location::add_expr): Add "label" param. - (gcc_rich_location::maybe_add_expr): Likewise. - (class text_range_label): New class. - (class range_label_for_type_mismatch): New class. - * gimple-ssa-sprintf.c (fmtwarn): Pass NULL for new label params - of format_warning_va. - (fmtwarn_n): Likewise for new params of format_warning_n_va. - * lto-wrapper.c (merge_and_complain): Add - OPT_fdiagnostics_show_labels to the "pick one setting" options. - (append_compiler_options): Likewise to the dropped options. - (append_diag_options): Likewise to the passed-on options. - * opts.c (common_handle_option): Handle the new option. - * selftest-diagnostic.c - (test_diagnostic_context::test_diagnostic_context): Enable - show_labels_p. - * substring-locations.c: Include "gcc-rich-location.h". - (format_warning_n_va): Add "fmt_label" and "param_label" params - and use them as appropriate. - (format_warning_va): Add "fmt_label" and "param_label" params, - passing them on to format_warning_n_va. - (format_warning_at_substring): Likewise. - (format_warning_at_substring_n): Likewise. - * substring-locations.h (format_warning_va): Add "fmt_label" and - "param_label" params. - (format_warning_n_va): Likewise. - (format_warning_at_substring): Likewise. - (format_warning_at_substring_n): Likewise. - * toplev.c (general_init): Initialize global_dc->show_labels_p. - -2018-08-15 Qing Zhao - - PR testsuite/86519 - * builtins.c (expand_builtin_memcmp): Do not expand the call - when overflow is detected. - -2018-08-15 Martin Sebor - - PR tree-optimization/71625 - * config/aarch64/aarch64-builtins.c - (aarch64_init_simd_builtin_types): Clear Poly8_t's TYPE_STRING_FLAG. - -2018-08-15 Ilya Leoshkevich - - * config/s390/s390.c (s390_reorg): Remove loop. - -2018-08-15 Iain Sandoe - - * config/darwin.c - (darwin_function_switched_text_sections): Delete. - * gcc/config/darwin.h - (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): Likewise. - -2018-08-15 Iain Sandoe - - PR target/81685 - * config/darwin.h: (DEBUG_STR_OFFSETS_SECTION, DEBUG_LOCLISTS_SECTION, - DEBUG_RNGLISTS_SECTION) new macros. (DEBUG_PUBNAMES_SECTION, - DEBUG_PUBTYPES_SECTION) update to include GNU variant. - -2018-08-15 Martin Liska - - PR tree-optimization/86925 - * predict.c (expr_expected_value_1): When taking - later predictor, assign also probability. - Use fold_build2_initializer_loc in order to fold - the expression in -frounding-math. - -2018-08-14 Allan Sandfeld Jensen - - * config/i386/i386.c (expand_vec_perm_movs): New method matching movs - patterns. - (expand_vec_perm_1): Try the new method. - -2018-08-14 Ilya Leoshkevich - - PR target/86547 - * lra-lives.c (remove_some_program_points_and_update_live_ranges): - Check whether lra_live_max_point is 0 before dividing. - -2018-08-14 Martin Sebor - - PR tree-optimization/86650 - * tree-vrp.c (vrp_prop::check_array_ref): Print an inform message. - (vrp_prop::check_mem_ref): Same. - -2018-08-13 Liu Hao - - * pretty-print.c (eat_esc_sequence): Swap the foreground and - background colors if the COMMON_LVB_REVERSE_VIDEO flag is set, - and clear it thereafter, as it only works for DBCS. - -2018-08-13 Liu Hao - - * pretty-print.c (mingw_ansi_fputs): Do not call _close() on the - handle returned by _get_osf_handle(). - -2018-08-13 Will Schmidt - - * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support - for folding vec_perm. - -2018-08-13 Will Schmidt - - * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): - Add support for gimple-folding of vec_pack() and vec_unpack() - intrinsics. - -2018-08-13 Will Schmidt - - * config/rs6000/rs6000.c (rs6000_builtin_valid_without_lhs): Add - vec_xst variants to the list. - (rs6000_gimple_fold_builtin): Add support for folding unaligned - vector loads and stores. - -2018-08-13 David Edelsohn - - * config.gcc (rs6000-ibm-aix4.x): Delete. - (rs6000-ibm-aix5.1): Delete. - (rs6000-ibm-aix5.2): Delete. - (rs6000-ibm-aix5.3): Delete. - * config/rs6000/aix43.h: Delete. - * config/rs6000/aix51.h: Delete. - * config/rs6000/aix52.h: Delete. - * config/rs6000/t-aix43: Delete. - -2018-08-13 Ilya Leoshkevich - - * config/s390/s390.c (s390_decompose_constant_pool_ref): - New function. - (s390_decompose_address): Factor out constant pool ref - decomposition. - -2018-08-12 Chung-Ju Wu - - * config/nds32/nds32-predicates.c - (nds32_can_use_bclr_p): Change return type as bool. - (nds32_can_use_bset_p): Ditto. - (nds32_can_use_btgl_p): Ditto. - (nds32_can_use_bitci_p): Ditto. - * config/nds32/nds32-protos.h - (nds32_can_use_bclr_p): Change declaration. - (nds32_can_use_bset_p): Ditto. - (nds32_can_use_btgl_p): Ditto. - (nds32_can_use_bitci_p): Ditto. - -2018-08-12 Chung-Ju Wu - - * config/nds32/nds32.c (nds32_expand_prologue, nds32_expand_epilogue): - Support -msched-prolog-epilog option. - * config/nds32/nds32.opt (msched-prolog-epilog): New option. - -2018-08-12 Chung-Ju Wu - - * common/config/nds32/nds32-common.c - (nds32_option_optimization_table): Enalbe -malways-align. - -2018-08-12 Chung-Ju Wu - - * config.gcc (nds32*): Add nds32_isr.h and nds32_init.inc in - extra_headers. - * common/config/nds32/nds32-common.c (nds32_handle_option): Handle - OPT_misr_secure_ case. - * config/nds32/nds32-isr.c: Implementation of backward compatibility. - * config/nds32/nds32-protos.h (nds32_isr_function_critical_p): New. - * config/nds32/nds32.c (nds32_attribute_table): Add critical and - secure attribute. - * config/nds32/nds32.h (nds32_isr_nested_type): Add NDS32_CRITICAL. - (nds32_isr_info): New field security_level. - (TARGET_ISR_VECTOR_SIZE_4_BYTE): New macro. - * config/nds32/nds32.md (return_internal): Consider critical attribute. - * config/nds32/nds32.opt (misr-secure): New option. - * config/nds32/nds32_init.inc: New file. - * config/nds32/nds32_isr.h: New file. - -2018-08-11 John David Anglin - - * config/pa/pa.md (UNSPEC_MEMORY_BARRIER): New unspec enum. - Update comment for atomic instructions. - (atomic_storeqi, atomic_storehi, atomic_storesi, atomic_storesf, - atomic_loaddf, atomic_loaddf_1, atomic_storedf, atomic_storedf_1): - Remove. - (atomic_loaddi): Revise fence expansion to only emit fence prior to - load for __ATOMIC_SEQ_CST model. - (atomic_loaddi_1): Remove float register target. - (atomic_storedi): Handle CONST_INT values. - (atomic_storedi_1): Remove float register source. Add special case - for zero value. - (memory_barrier): New expander and insn. - -2018-08-11 Jakub Jelinek - - PR tree-optimization/86835 - * tree-ssa-math-opts.c (insert_reciprocals): Even when inserting - new_stmt after def_gsi, make sure to insert new_square_stmt after - that stmt, not 2 stmts before it. - -2018-08-10 Alexander Monakov - - PR target/82418 - * config/i386/i386.md (mul3_highpart): Use DWIH mode iterator - instead of SWI48. - -2018-08-10 Martin Liska - - PR target/83610 - * builtin-types.def (BT_FN_LONG_LONG_LONG_DOUBLE): Add new - function type. - * builtins.c (expand_builtin_expect_with_probability): - New function. - (expand_builtin_expect_with_probability): New function. - (build_builtin_expect_predicate): Add new argumnet probability - for BUILT_IN_EXPECT_WITH_PROBABILITY. - (fold_builtin_expect): - (fold_builtin_2): - (fold_builtin_3): - * builtins.def (BUILT_IN_EXPECT_WITH_PROBABILITY): - * builtins.h (fold_builtin_expect): Set new argument. - * doc/extend.texi: Document __builtin_expect_with_probability. - * doc/invoke.texi: Likewise. - * gimple-fold.c (gimple_fold_call): Pass new argument. - * ipa-fnsummary.c (find_foldable_builtin_expect): Handle - also BUILT_IN_EXPECT_WITH_PROBABILITY. - * predict.c (get_predictor_value): New function. - (expr_expected_value): Add new argument probability. Assume - that predictor and probability are always non-null. - (expr_expected_value_1): Likewise. For __builtin_expect and - __builtin_expect_with_probability set probability. Handle - combination in binary expressions. - (tree_predict_by_opcode): Simplify code by simply calling - get_predictor_value. - (pass_strip_predict_hints::execute): Add handling of - BUILT_IN_EXPECT_WITH_PROBABILITY. - * predict.def (PRED_BUILTIN_EXPECT_WITH_PROBABILITY): Add - new predictor. - * tree.h (DECL_BUILT_IN_P): New function. - -2018-08-10 Martin Liska - - PR tree-optimization/85799 - * passes.def: Add argument for pass_strip_predict_hints. - * predict.c (class pass_strip_predict_hints): Add new argument - early_p. - (strip_predictor_early): New function. - (pass_strip_predict_hints::execute): Call the function to - strip predictors. - (strip_predict_hints): New function. - * predict.def: Fix comment. - -2018-08-10 Thomas Preud'homme - - * Makefile.in: Clarify which tm.texi to copy over to assert the - right to grant a GFDL license for all. - -2018-08-09 Jeff Law - - * config/m68k/m68k.c (m68k_adjust_decorated_operand): Remove - unused variable. - -2018-08-09 Andreas Schwab - - * config/m68k/m68k-protos.h (m68k_final_prescan_insn): Remove - prototype. - -2018-08-09 Richard Sandiford - - * tree-vect-loop.c (vectorizable_reduction): Allow inner-loop - reductions for variable-length vectors. - -2018-08-09 David Malcolm - - PR other/84889 - * common.opt (fdiagnostics-show-line-numbers): New option. - * diagnostic-show-locus.c (class layout): Add fields - "m_show_line_numbers_p" and "m_linenum_width"; - (num_digits): New function. - (test_num_digits): New function. - (layout::layout): Initialize new fields. Update m_x_offset - logic to handle any left margin. - (layout::print_source_line): Print line number when requested. - (layout::start_annotation_line): New member function. - (layout::print_annotation_line): Call it. - (layout::print_leading_fixits): Likewise. - (layout::print_trailing_fixits): Likewise. Update calls to - move_to_column for new parameter. - (layout::get_x_bound_for_row): Add "add_left_margin" param and use - it to potentially call start_annotation_line. - (layout::show_ruler): Call start_annotation_line. - (selftest::test_line_numbers_multiline_range): New selftest. - (selftest::diagnostic_show_locus_c_tests): Call test_num_digits - and selftest::test_line_numbers_multiline_range. - * diagnostic.c (diagnostic_initialize): Initialize - show_line_numbers_p. - * diagnostic.h (struct diagnostic_context): Add field - "show_line_numbers_p". - * doc/invoke.texi (Diagnostic Message Formatting Options): Add - -fno-diagnostics-show-line-numbers. - * dwarf2out.c (gen_producer_string): Add - OPT_fdiagnostics_show_line_numbers to the ignored options. - * lto-wrapper.c (merge_and_complain): Likewise to the "pick - one setting" options. - (append_compiler_options): Likewise to the dropped options. - (append_diag_options): Likewise to the passed-on options. - * opts.c (common_handle_option): Handle the new option. - * toplev.c (general_init): Set up global_dc->show_line_numbers_p. - -2018-08-09 Kelvin Nilsen - - * doc/extend.texi (PowerPC AltiVec Built-in Functions Available on - ISA 2.07): Correct spelling of bcdsub to be __builtin_bcdsub. Add - third argument of type "const signed char" to descriptions of - __builtin_bcdadd, __builtin_bcdadd_lt, __builtin_bcdadd_eq, - __builtin_bcdadd_gt, __builtin_bcdadd_ov, __builtin_bcdsub, - __builtin_bcdsub_lt, __builtin_bcdsub_eq, __builtin_bcdsub_gt, - __builtin_bcdsub_ov functions. - -2018-08-09 Richard Sandiford - - PR tree-optimization/86858 - * tree-vect-loop.c (vect_is_simple_reduction): Restore - flow_bb_inside_loop_p calls. - -2018-08-09 Richard Sandiford - - PR tree-optimization/86871 - * tree-vect-stmts.c (vect_transform_stmt): Use gimple_get_lhs - instead of gimple_assign_lhs. - -2018-08-09 Richard Earnshaw - - PR target/86887 - * config/aarch64/aarch64.md (add3_carryinC_zero): Add missing - register constraint to operand 0. - (add3_carryinC): Likewise. - (add3_carryinV_zero, add3_carryinV): Likewise. - -2018-08-09 Martin Liska - - PR c/86895 - * common.opt: Remove extra line. - -2018-08-09 Martin Liska - - * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Remove double dots - at the end of a line, make first letter capital and end up - a sentence with a dot. - (PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): Likewise. - (PARAM_LOOP_BLOCK_TILE_SIZE): Likewise. - (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Likewise. - (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): Likewise. - (PARAM_MAX_ISL_OPERATIONS): Likewise. - (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): Likewise. - (PARAM_PROFILE_FUNC_INTERNAL_ID): Likewise. - (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise. - (PARAM_SLP_MAX_INSNS_IN_BB): Likewise. - (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise. - (PARAM_IPA_CP_RECURSION_PENALTY): Likewise. - (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise. - (PARAM_IPA_CP_LOOP_HINT_BONUS): Likewise. - (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Likewise. - (PARAM_TREE_REASSOC_WIDTH): Likewise. - (PARAM_HSA_GEN_DEBUG_STORES): Likewise. - (PARAM_MAX_SPECULATIVE_DEVIRT_MAYDEFS): Likewise. - (PARAM_MAX_VRP_SWITCH_ASSERTIONS): Likewise. - -2018-08-09 Andreas Krebbel - - PR target/84332 - * config/s390/s390.c (s390_option_override_internal): Reduce the - stack-clash-protection-probe-interval param if it would be too big - for z900. - -2018-08-08 Andreas Schwab - - PR target/46179 - * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Don't define. - * config/m68k/m68k.c (handle_move_double): Don't call - m68k_final_prescan_insn. - (m68k_adjust_decorated_operand): Renamed from - m68k_final_prescan_insn, remove first and third operand and - simplify. - (print_operand): Call it. - (print_operand_address): Call it. - -2018-08-08 Nathan Sidwell - - * diagnostic.c (diagnostic_report_current_module): Use - linemap_included_from & linemap_included_from_linemap. - -2018-08-08 Hongbo Zhang - - * config/aarch64/aarch64-cores.def: Add phecda core. - * config/aarch64/aarch64-tune.md: Regenerate. - * doc/invoke.texi: Add phecda core. - -2018-08-08 Andreas Krebbel - - PR target/85295 - * config/s390/constraints.md ("NxHD0", "NxSD0"): New constraint - definitions. - * config/s390/s390.md ("movti"): Add more alternatives for - constant to GPR copies. - -2018-08-08 Andreas Krebbel - - * config/s390/s390.c: Fix whitespace damage throughout the file. - * config/s390/s390.h: Likewise. - * config/s390/tpf.h: Likewise. - -2018-08-08 Ilya Leoshkevich - - * config/s390/s390.c (s390_loadrelative_operand_p): - Remove TARGET_CPU_ZARCH usages. - (s390_rtx_costs): Likewise. - (s390_legitimate_constant_p): Likewise. - (s390_cannot_force_const_mem): Likewise. - (legitimate_reload_constant_p): Likewise. - (s390_preferred_reload_class): Likewise. - (legitimize_pic_address): Likewise. - (legitimize_tls_address): Likewise. - (s390_split_branches): Removed. - (s390_add_execute): Removed. - (s390_dump_pool): Remove TARGET_CPU_ZARCH usages. - (s390_mainpool_start): Likewise. - (s390_mainpool_finish): Likewise. - (s390_mainpool_cancel): Removed. - (s390_chunkify_start): Remove TARGET_CPU_ZARCH usages. - (s390_chunkify_cancel): Likewise. - (s390_return_addr_rtx): Likewise. - (s390_register_info): Remove split_branches_pending_p uages. - (s390_optimize_register_info): Likewise. - (s390_init_frame_layout): Remove TARGET_CPU_ZARCH and - split_branches_pending_p usages. - (s390_can_eliminate): Remove TARGET_CPU_ZARCH usages. - (s390_load_got): Likewise. - (s390_expand_split_stack_prologue): Likewise. - (output_asm_nops): Likewise. - (s390_function_profiler): Likewise. - (s390_emit_call): Likewise. - (s390_conditional_register_usage): Likewise. - (s390_optimize_prologue): Likewise. - (s390_reorg): Remove TARGET_CPU_ZARCH and - split_branches_pending_p usages. - (s390_option_override_internal): Remove TARGET_CPU_ZARCH - usages. - (s390_output_indirect_thunk_function): Likewise. - * config/s390/s390.h (TARGET_CPU_ZARCH): Removed. - (TARGET_CPU_ZARCH_P): Removed. - (struct machine_function): Remove split_branches_pending_p. - * config/s390/s390.md: Remove TARGET_CPU_ZARCH usages. - -2018-08-08 Ilya Leoshkevich - - * common/config/s390/s390-common.c (processor_flags_table): - Remove flags. - * config.gcc: Remove with_arch/with_tune support. - * config/s390/2064.md: Remove cpu attribute comparisons. - * config/s390/driver-native.c (s390_host_detect_local_cpu): - Remove MTN. - * config/s390/linux.h (ASM_SPEC): - Remove -march support. - * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): - Use a table to get an arch level. - * config/s390/s390-opts.h (enum processor_type): - Remove enum values. - * config/s390/s390.c - (processor_table): Remove entries, add arch_level values. - (s390_issue_rate): Remove cases. - (s390_option_override): Adjust - s390_option_override_internal() call. - (s390_option_override_internal): Remove deprecation warning. - (s390_valid_target_attribute_tree): Adjust - s390_option_override_internal() call. - * config/s390/s390.h (struct s390_processor): - Share with s390-c.c, add arch_level field. - * config/s390/s390.md: - Remove occurrences in cpu attribute. - * config/s390/s390.opt: Remove -march/-mtune support. - * config/s390/tpf.h (ASM_SPEC): Remove -march support. - * doc/invoke.texi: Remove deprecation warning. - -2018-08-08 Luis Machado - - * config/aarch64/aarch64.c (qdf24xx_vector_cost): New static - global. - (qdf24xx_tunings): Set vector cost structure to - qdf24xx_vector_cost. - - * config/aarch64/aarch64.c (qdf24xx_addrcost_table) - : Set to 3. - -2018-08-07 Richard Sandiford - - PR target/86838 - * config/aarch64/iterators.md (FRECP, frecp_suffix): Delete. - * config/aarch64/aarch64-simd.md - (aarch64_frecp): Fold FRECPE into... - (@aarch64_frecpe): ...here and the move FRECPX to... - (aarch64_frecpx): ...this new pattern. - * config/aarch64/aarch64-simd-builtins.def: Remove comment - about aarch64_frecp. - -2018-08-07 Martin Liska - - PR middle-end/83023 - * predict.c (expr_expected_value_1): Handle DECL_IS_MALLOC, - BUILT_IN_REALLOC and DECL_IS_OPERATOR_NEW. - * predict.def (PRED_MALLOC_NONNULL): New predictor. - * doc/extend.texi: Document that malloc attribute adds - hit to compiler. - -2018-08-06 John David Anglin - - PR target/86785 - * config/pa/pa.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): - Define to speculation_safe_value_not_needed. - -2018-08-06 Jeff Law - - * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Pass down - the vr_values instance to cprop_into_stmt. - (cprop_into_stmt): Pass vr_values instance down to cprop_operand. - (cprop_operand): Also query EVRP to determine if OP is a constant. - -2018-08-06 Nathan Sidwell - - * diagnostic.c (diagnostic_report_current_module): Reroll - included-at loop. Translate text. - -2018-08-06 David Malcolm - - * function-tests.c (selftest::test_expansion_to_rtl): Call - free_after_compilation. - -2018-08-06 Alan Hayward - - * config/aarch64/aarch64.md: Add clobber highs to tls_desc. - -2018-08-06 Andreas Krebbel - - * config/s390/s390.c (s390_loop_unroll_adjust): Prevent small - loops with memory block operations from getting unrolled. - -2018-08-06 Ulrich Weigand - - PR target/86807 - * config/spu/spu.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): - Define to speculation_safe_value_not_needed. - -2018-08-06 Jeff Law - - * reload1.c (forget_old_reloads_1): Adjust CLOBBER_HIGH - assert. - -2018-08-06 Jozef Lawrynowicz - - PR target/86662 - * gcc/tree.c (build_common_tree_nodes): Initialize integer_types array - with all enabled __intN types. - - * gcc/testsuite/gcc.target/msp430/pr86662.c: New test. - -2018-08-06 Alan Hayward - - * alias.c (record_set): Check for clobber high. - * cfgexpand.c (expand_gimple_stmt): Likewise. - * combine-stack-adj.c (single_set_for_csa): Likewise. - * combine.c (find_single_use_1): Likewise. - (set_nonzero_bits_and_sign_copies): Likewise. - (get_combine_src_dest): Likewise. - (is_parallel_of_n_reg_sets): Likewise. - (try_combine): Likewise. - (record_dead_and_set_regs_1): Likewise. - (reg_dead_at_p_1): Likewise. - (reg_dead_at_p): Likewise. - * dce.c (deletable_insn_p): Likewise. - (mark_nonreg_stores_1): Likewise. - (mark_nonreg_stores_2): Likewise. - * df-scan.c (df_find_hard_reg_defs): Likewise. - (df_uses_record): Likewise. - (df_get_call_refs): Likewise. - * dwarf2out.c (mem_loc_descriptor): Likewise. - * haifa-sched.c (haifa_classify_rtx): Likewise. - * ira-build.c (create_insn_allocnos): Likewise. - * ira-costs.c (scan_one_insn): Likewise. - * ira.c (equiv_init_movable_p): Likewise. - (rtx_moveable_p): Likewise. - (interesting_dest_for_shprep): Likewise. - * jump.c (mark_jump_label_1): Likewise. - * postreload-gcse.c (record_opr_changes): Likewise. - * postreload.c (reload_cse_simplify): Likewise. - (struct reg_use): Add source expr. - (reload_combine): Check for clobber high. - (reload_combine_note_use): Likewise. - (reload_cse_move2add): Likewise. - (move2add_note_store): Likewise. - * print-rtl.c (print_pattern): Likewise. - * recog.c (decode_asm_operands): Likewise. - (store_data_bypass_p): Likewise. - (if_test_bypass_p): Likewise. - * regcprop.c (kill_clobbered_value): Likewise. - (kill_set_value): Likewise. - * reginfo.c (reg_scan_mark_refs): Likewise. - * reload1.c (maybe_fix_stack_asms): Likewise. - (eliminate_regs_1): Likewise. - (elimination_effects): Likewise. - (mark_not_eliminable): Likewise. - (scan_paradoxical_subregs): Likewise. - (forget_old_reloads_1): Likewise. - * reorg.c (find_end_label): Likewise. - (try_merge_delay_insns): Likewise. - (redundant_insn): Likewise. - (own_thread_p): Likewise. - (fill_simple_delay_slots): Likewise. - (fill_slots_from_thread): Likewise. - (dbr_schedule): Likewise. - * resource.c (update_live_status): Likewise. - (mark_referenced_resources): Likewise. - (mark_set_resources): Likewise. - * rtl.c (copy_rtx): Likewise. - * rtlanal.c (reg_referenced_p): Likewise. - (single_set_2): Likewise. - (noop_move_p): Likewise. - (note_stores): Likewise. - * sched-deps.c (sched_analyze_reg): Likewise. - (sched_analyze_insn): Likewise. - -2018-08-06 Alan Hayward - - * cse.c (invalidate_reg): New function extracted from... - (invalidate): ...here. - (canonicalize_insn): Check for clobber high. - (invalidate_from_clobbers): invalidate clobber highs. - (invalidate_from_sets_and_clobbers): Likewise. - (count_reg_usage): Check for clobber high. - (insn_live_p): Likewise. - * cselib.c (cselib_expand_value_rtx_1):Likewise. - (cselib_invalidate_regno): Check for clobber in setter. - (cselib_invalidate_rtx): Pass through setter. - (cselib_invalidate_rtx_note_stores): - (cselib_process_insn): Check for clobber high. - * cselib.h (cselib_invalidate_rtx): Add operand. - -2018-08-06 Alan Hayward - - * lra-eliminations.c (lra_eliminate_regs_1): Check for clobber high. - (mark_not_eliminable): Likewise. - * lra-int.h (struct lra_insn_reg): Add clobber high marker. - * lra-lives.c (process_bb_lives): Check for clobber high. - * lra.c (new_insn_reg): Remember clobber highs. - (collect_non_operand_hard_regs): Check for clobber high. - (lra_set_insn_recog_data): Likewise. - (add_regs_to_insn_regno_info): Likewise. - (lra_update_insn_regno_info): Likewise. - -2018-08-06 Alan Hayward - - * rtl.h (reg_is_clobbered_by_clobber_high): Add declarations. - * rtlanal.c (reg_is_clobbered_by_clobber_high): Add function. - -2018-08-06 Alan Hayward - - * emit-rtl.c (verify_rtx_sharing): Check for CLOBBER_HIGH. - (copy_insn_1): Likewise. - (gen_hard_reg_clobber_high): New gen function. - * genconfig.c (walk_insn_part): Check for CLOBBER_HIGH. - * genemit.c (gen_exp): Likewise. - (gen_emit_seq): Pass through info. - (gen_insn): Check for CLOBBER_HIGH. - (gen_expand): Pass through info. - (gen_split): Likewise. - (output_add_clobbers): Likewise. - * genrecog.c (validate_pattern): Check for CLOBBER_HIGH. - (remove_clobbers): Likewise. - * rtl.h (gen_hard_reg_clobber_high): New declaration. - -2018-08-06 Alan Hayward - - * doc/rtl.texi (clobber_high): Add. - (parallel): Add in clobber high - * rtl.c (rtl_check_failed_code3): Add function. - * rtl.def (CLOBBER_HIGH): Add expression. - * rtl.h (RTL_CHECKC3): Add macro. - (rtl_check_failed_code3): Add declaration. - (XC3EXP): Add macro. - -2018-08-05 H.J. Lu - - PR target/86386 - * config/i386/i386.c (ix86_finalize_stack_frame_flags): Set - cfun->machine->max_used_stack_alignment if needed. - -2018-08-04 Martin Sebor - - PR tree-optimization/86571 - * gimple-ssa-sprintf.c (format_floating): Extend upper bound of - NaN output to 4. - -2018-08-03 Sandra Loosemore - - PR target/86799 - * config/nios2/nios2.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): - Define. - -2018-08-03 Jeff Law - - PR target/86795 - * config/mn10300/mn10300.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): - Define to speculation_safe_value_not_needed. - -2018-08-03 David Malcolm - - * doc/gcov.texi (-x): Remove duplicate "to". - * doc/invoke.texi (-Wnoexcept-type): Remove duplicate "calls". - (-Wif-not-aligned): Remove duplicate "is". - (-flto): Remove duplicate "the". - (MicroBlaze Options): In examples of "-mcpu=cpu-type", remove - duplicate "v5.00.b". - (MSP430 Options): Remove duplicate "and" from the description - of "-mgprel-sec=regexp". - (x86 Options): Remove duplicate copies of "vmldLog102" and - vmlsLog104 from description of "-mveclibabi=type". - -2018-08-03 Richard Sandiford - - * internal-fn.h (first_commutative_argument): Declare. - * internal-fn.c (first_commutative_argument): New function. - * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove extra - restrictions for pattern statements. Use first_commutative_argument - to look for commutative operands in calls to internal functions. - -2018-08-03 Aldy Hernandez - - * Makefile.in (wide-int-range.o): New. - * tree-vrp.c: Move all the wide_int_* functions to... - * wide-int-range.cc: ...here. - * tree-vrp.h: Move all the wide_int_* prototypes to... - * wide-int-range.h: ...here. - -2018-08-03 Tom de Vries - - * common/config/nvptx/nvptx-common.c (nvptx_except_unwind_info): Return - UI_NONE. - * config/nvptx/nvptx.c (TARGET_ASM_BYTE_OP): Remove define. - * except.c (output_function_exception_table): Do early exit if - targetm_common.except_unwind_info (&global_options) == UI_NONE. - -2018-08-03 Martin Liska - - * predict.c (dump_prediction): Change to 2 digits - in fraction part. - -2018-08-03 Siddhesh Poyarekar - - * config/aarch64/falkor.md (falkor_am_1_vxvy_vxvy): Move - neon_dup_q to... - (falkor_am_1_gtov_gtov): ... a new insn reservation. - -2018-07-19 Ilya Leoshkevich - - * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Replace > with >=. - * df-problems.c (df_remove_dead_eq_notes): Replace > with >=. - * dwarf2out.c (mem_loc_descriptor): Replace > with >=. - * lra-constraints.c (spill_hard_reg_in_range): Replace <= with <. - * lra-remat.c (call_used_input_regno_present_p): Replace <= with <. - -2018-08-02 David Malcolm - - * diagnostic-show-locus.c (diagnostic_show_locus): Use - pp_take_prefix when saving the existing prefix. - * diagnostic.c (diagnostic_append_note): Likewise. - * langhooks.c (lhd_print_error_function): Likewise. - * pretty-print.c (pp_set_prefix): Drop the "const" from "prefix" - param's type. Free the existing prefix. - (pp_take_prefix): New function. - (pretty_printer::pretty_printer): Drop the prefix parameter. - Rename the length parameter to match the comment. - (pretty_printer::~pretty_printer): Free the prefix. - * pretty-print.h (pretty_printer::pretty_printer): Drop the prefix - parameter. - (struct pretty_printer): Drop the "const" from "prefix" field's - type and clarify memory management. - (pp_set_prefix): Drop the "const" from the 2nd param. - (pp_take_prefix): New decl. - -2018-08-02 Aaron Sawdey - - * config/rs6000/rs6000-string.c (select_block_compare_mode): Move test - for word_mode_ok here instead of passing as argument. - (expand_block_compare): Change select_block_compare_mode() call. - (expand_strncmp_gpr_sequence): New function. - (expand_strn_compare): Make use of expand_strncmp_gpr_sequence. - -2018-08-02 Jeff Law - - PR target/86790 - * config/m68k/m68k.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): - Define to speculation_safe_value_not_needed. - - PR target/86784 - * config/h8300/h8300.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): - Define to speculation_safe_value_not_needed. - -2018-08-02 Tom de Vries - - PR target/86660 - * common/config/nvptx/nvptx-common.c (nvptx_except_unwind_info): New - function. Return UI_TARGET unconditionally. - (TARGET_EXCEPT_UNWIND_INFO): Redefine to nvptx_except_unwind_info. - * config/nvptx/nvptx.c (TARGET_ASM_BYTE_OP): Emit commented out '.byte'. - -2018-08-02 Richard Sandiford - - * genemit.c (print_overload_test): Fix typo. - -2018-08-02 Richard Biener - - PR tree-optimization/86816 - * tree-ssa-tail-merge.c (tail_merge_valueize): New function - which checks for value availability before querying it. - (gvn_uses_equal): Use it. - (same_succ_hash): Likewise. - (gimple_equal_p): Likewise. - -2018-08-02 Nick Clifton - - PR target/86813 - * config/stormy16/stormy16.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): - Define to speculation_safe_value_not_needed. - - PR target/86810 - * config/v850/v850.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): - Define to speculation_safe_value_not_needed. - - PR target/86810 - * config/v850/v850.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): - Define to speculation_safe_value_not_needed. - - PR target/86803 - * config/rx/rx.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): - Define to speculation_safe_value_not_needed. - - PR target/86797 - * config/msp430/msp430.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): - Define to speculation_safe_value_not_needed. - - PR target/86791 - * config/mcore/mcore.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): - Define to speculation_safe_value_not_needed. - - PR target/86789 - * config/m32r/m32r.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): - Define to speculation_safe_value_not_needed. - - PR target/86787 - * config/iq2000/iq2000.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): - Define to speculation_safe_value_not_needed. - - PR target/86782 - * config/frv/frv.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define to - speculation_safe_value_not_needed. - - PR target/86781 - * config/fr30/fr30.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define - to speculation_safe_value_not_needed. - -2018-08-02 Richard Sandiford - - * doc/md.texi: Expand the documentation of instruction names - to mention port-local uses. Document '@' in pattern names. - * read-md.h (overloaded_instance, overloaded_name): New structs. - (mapping): Declare. - (md_reader::handle_overloaded_name): New member function. - (md_reader::get_overloads): Likewise. - (md_reader::m_first_overload): New member variable. - (md_reader::m_next_overload_ptr): Likewise. - (md_reader::m_overloads_htab): Likewise. - * read-md.c (md_reader::md_reader): Initialize m_first_overload, - m_next_overload_ptr and m_overloads_htab. - * read-rtl.c (iterator_group): Add "type" and "get_c_token" fields. - (get_mode_token, get_code_token, get_int_token): New functions. - (map_attr_string): Add an optional argument that passes back - the associated iterator. - (overloaded_name_hash, overloaded_name_eq_p, named_rtx_p): - (md_reader::handle_overloaded_name, add_overload_instance): New - functions. - (apply_iterators): Handle '@' names. Report an error if '@' - is used without iterators. - (initialize_iterators): Initialize the new iterator_group fields. - * genopinit.c (handle_overloaded_code_for) - (handle_overloaded_gen): New functions. - (main): Use them to print declarations of maybe_code_for_* and - maybe_gen_* functions, and inline definitions of code_for_* and gen_*. - * genemit.c (print_overload_arguments, print_overload_test) - (handle_overloaded_code_for, handle_overloaded_gen): New functions. - (main): Use it to print definitions of maybe_code_for_* and - maybe_gen_* functions. - * config/aarch64/aarch64.c (aarch64_split_128bit_move): Use - gen_aarch64_mov{low,high}_di and gen_aarch64_movdi_{low,high} - instead of explicit mode checks. - (aarch64_split_simd_combine): Likewise gen_aarch64_simd_combine. - (aarch64_split_simd_move): Likewise gen_aarch64_split_simd_mov. - (aarch64_emit_load_exclusive): Likewise gen_aarch64_load_exclusive. - (aarch64_emit_store_exclusive): Likewise gen_aarch64_store_exclusive. - (aarch64_expand_compare_and_swap): Likewise - gen_aarch64_compare_and_swap and gen_aarch64_compare_and_swap_lse - (aarch64_gen_atomic_cas): Likewise gen_aarch64_atomic_cas. - (aarch64_emit_atomic_swap): Likewise gen_aarch64_atomic_swp. - (aarch64_constant_pool_reload_icode): Delete. - (aarch64_secondary_reload): Use code_for_aarch64_reload_movcp - instead of aarch64_constant_pool_reload_icode. Use - code_for_aarch64_reload_mov instead of explicit mode checks. - (rsqrte_type, get_rsqrte_type, rsqrts_type, get_rsqrts_type): Delete. - (aarch64_emit_approx_sqrt): Use gen_aarch64_rsqrte instead of - get_rsqrte_type and gen_aarch64_rsqrts instead of gen_rqrts_type. - (recpe_type, get_recpe_type, recps_type, get_recps_type): Delete. - (aarch64_emit_approx_div): Use gen_aarch64_frecpe instead of - get_recpe_type and gen_aarch64_frecps instead of get_recps_type. - (aarch64_atomic_load_op_code): Delete. - (aarch64_emit_atomic_load_op): Likewise. - (aarch64_gen_atomic_ldop): Use UNSPECV_ATOMIC_* instead of - aarch64_atomic_load_op_code. Use gen_aarch64_atomic_load - instead of aarch64_emit_atomic_load_op. - * config/aarch64/aarch64.md (aarch64_reload_movcp) - (aarch64_reload_movcp, aarch64_reload_mov) - (aarch64_movdi_low, aarch64_movdi_high) - (aarch64_movhigh_di, aarch64_movlow_di): Add a '@' - character before the pattern name. - * config/aarch64/aarch64-simd.md (aarch64_split_simd_mov) - (aarch64_rsqrte, aarch64_rsqrts) - (aarch64_simd_combine, aarch64_frecpe) - (aarch64_frecps): Likewise. - * config/aarch64/atomics.md (atomic_compare_and_swap) - (aarch64_compare_and_swap, aarch64_compare_and_swap_lse) - (aarch64_load_exclusive, aarch64_store_exclusive) - (aarch64_atomic_swp, aarch64_atomic_cas) - (aarch64_atomic_load): Likewise. - -2018-08-02 Richard Sandiford - - * config/aarch64/aarch64.c (aarch64_float_const_representable_p): - Allow HFmode constants if TARGET_FP_F16INST. - -2018-08-02 Jackson Woodruff - - PR target/86014 - * config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp): - No longer check last store for clobber of address register. - -2018-08-02 Martin Liska - - PR gcov-profile/86817 - * gcov.c (process_all_functions): New function. - (main): Call it. - (process_file): Move functions processing to - process_all_functions. - -2018-08-02 David Malcolm - - * dumpfile.c (dump_user_location_t::dump_user_location_t): Add - "const" to the "gimple *" and "rtx_insn *" parameters. - * dumpfile.h (dump_user_location_t::dump_user_location_t): - Likewise. - (dump_location_t::dump_location_t): Likewise. - -2018-08-01 Martin Sebor - - PR tree-optimization/86650 - * gimple-pretty-print.c (percent_G_format): Accept a "gimple *" - rather than a "gcall *". Directly pass the data of interest - to percent_K_format, rather than building a temporary CALL_EXPR - to hold it. - * gimple-fold.c (gimple_fold_builtin_strncpy): Adjust. - (gimple_fold_builtin_strncat): Adjust. - * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Replace - gcall* argument with gimple*. - * gimple-ssa-warn-restrict.c (check_call): Same. - (wrestrict_dom_walker::before_dom_children): Same. - (builtin_access::builtin_access): Same. - (check_bounds_or_overlap): Same - (maybe_diag_overlap): Same. - (maybe_diag_offset_bounds): Same. - * tree-diagnostic.c (default_tree_printer): Move usage of - EXPR_LOCATION (t) and TREE_BLOCK (t) from within percent_K_format - to this callsite. - * tree-pretty-print.c (percent_K_format): Add argument. - * tree-pretty-print.h: Add argument. - * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust. - * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Adjust. - (maybe_diag_stxncpy_trunc): Same. - (handle_builtin_stxncpy): Same. - (handle_builtin_strcat): Same. - -2018-08-01 Richard Sandiford - - * match.pd: Optimise pointer range checks. - -2018-08-01 Richard Sandiford - - PR tree-optimization/86758 - * tree-vect-stmts.c (vectorizable_simd_clone_call): Don't try - to remove pattern statements. - -2018-08-01 Richard Sandiford - - * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Use the - result of dfs_enumerate_from when constructing stmt_vec_infos, - instead of additionally calling get_loop_body. - -2018-08-01 Richard Sandiford - - * tree-vectorizer.h (vect_create_data_ref_ptr): Remove inv_p - parameter. - * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise. - When creating an iv, assert that the step is not known to be zero. - (vect_setup_realignment): Update call accordingly. - * tree-vect-stmts.c (vectorizable_store): Likewise. - (vectorizable_load): Likewise. Handle VMAT_INVARIANT separately. - -2018-08-01 Richard Sandiford - - * tree-vectorizer.h (vect_stmt_to_vectorize): New function. - * tree-vect-loop.c (vect_update_vf_for_slp): Use it. - (vectorizable_reduction): Likewise. - * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. - (vect_detect_hybrid_slp_stmts): Likewise. - * tree-vect-stmts.c (vect_is_simple_use): Likewise. - -2018-08-01 Aldy Hernandez - - * tree-vrp (zero_nonzero_bits_from_bounds): Rename to... - (wide_int_set_zero_nonzero_bits): ...this. - (zero_nonzero_bits_from_vr): Rename to... - (vrp_set_zero_nonzero_bits): ...this. - (extract_range_from_multiplicative_op_1): Abstract wide int - code... - (wide_int_range_multiplicative_op): ...here. - (extract_range_from_binary_expr_1): Extract wide int binary - operations into their own functions. - (wide_int_range_lshift): New. - (wide_int_range_can_optimize_bit_op): New. - (wide_int_range_shift_undefined_p): New. - (wide_int_range_bit_xor): New. - (wide_int_range_bit_ior): New. - (wide_int_range_bit_and): New. - (wide_int_range_trunc_mod): New. - (extract_range_into_wide_ints): New. - (vrp_shift_undefined_p): New. - (extract_range_from_multiplicative_op): New. - (vrp_can_optimize_bit_op): New. - * tree-vrp.h (value_range::dump): New. - (wide_int_range_multiplicative_op): New. - (wide_int_range_lshift):New. - (wide_int_range_shift_undefined_p): New. - (wide_int_range_bit_xor): New. - (wide_int_range_bit_ior): New. - (wide_int_range_bit_and): New. - (wide_int_range_trunc_mod): New. - (zero_nonzero_bits_from_bounds): Rename to... - (wide_int_set_zero_nonzero_bits): ...this. - (zero_nonzero_bits_from_vr): Rename to... - (vrp_set_zero_nonzero_bits): ...this. - (range_easy_mask_min_max): Rename to... - (wide_int_range_can_optimize_bit_op): this. - * vr-values.c (simplify_bit_ops_using_ranges): Rename - zero_nonzero_bits_from_vr into vrp_set_zero_nonzero_bits. - -2018-08-01 Richard Sandiford - - * tree-vectorizer.h (vect_orig_stmt): New function. - * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Use it. - * tree-vect-loop.c (vect_model_reduction_cost): Likewise. - (vect_create_epilog_for_reduction): Likewise. - (vectorizable_live_operation): Likewise. - * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Likewise. - (vect_detect_hybrid_slp_stmts, vect_schedule_slp): Likewise. - * tree-vect-stmts.c (vectorizable_call): Likewise. - (vectorizable_simd_clone_call, vect_remove_stores): Likewise. - -2018-08-01 Richard Sandiford - - * tree-vectorizer.h (vect_transform_stmt): Remove grouped_store - argument. - * tree-vect-stmts.c (vect_transform_stmt): Likewise. - * tree-vect-loop.c (vect_transform_loop_stmt): Update call accordingly. - (vect_transform_loop): Likewise. - * tree-vect-slp.c (vect_schedule_slp_instance): Likewise. - -2018-08-01 Richard Sandiford - - * tree-vectorizer.h (vect_schedule_slp): Return void. - * tree-vect-slp.c (vect_schedule_slp_instance): Likewise. - (vect_schedule_slp): Likewise. - -2018-08-01 Richard Sandiford - - * tree-vect-loop.c (vect_transform_loop_stmt): Remove slp_scheduled - argument. - (vect_transform_loop): Update calls accordingly. Schedule SLP - instances before the main loop, if any exist. - -2018-08-01 Richard Sandiford - - PR tree-optimization/86749 - * tree-vect-patterns.c (vect_determine_min_output_precision_1): - If the lhs is used in a COND_EXPR, check that it is being used - as the "then" or "else" value. - -2018-08-01 Tom de Vries - - PR target/86800 - * config/nvptx/nvptx.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define to - speculation_safe_value_not_needed. - -2018-08-01 Richard Biener - - * tree-ssa-sccvn.c (visit_phi): Compare invariant addresses - as base and offset. - -2018-08-01 Martin Liska - - * value-prof.c (gimple_divmod_fixed_value_transform): Unify - format how successful transformation is dumped. - (gimple_mod_pow2_value_transform): Likewise. - (gimple_mod_subtract_transform): Likewise. - (gimple_stringops_transform): Likewise. - -2018-08-01 Martin Liska - - PR value-prof/35543 - * value-prof.c (interesting_stringop_to_profile_p): - Simplify the code and add BUILT_IN_MEMMOVE. - (gimple_stringops_transform): Likewise. - -2018-08-01 Sam Tebbs - - * config/aarch64/aarch64-simd.md - (*aarch64_get_lane_zero_extendsi): Rename to... - (*aarch64_get_lane_zero_extend): ... This and - use GPI iterator instead of SI mode. - -2018-08-01 Richard Earnshaw - - * config/rs6000/rs6000.md (speculation_barrier): Renamed from - rs6000_speculation_barrier. - * config/rs6000/rs6000.c (rs6000_expand_builtin): Adjust for - new barrier pattern name. - -2018-08-01 Richard Earnshaw - - * config/i386/i386.md (unspecv): Add UNSPECV_SPECULATION_BARRIER. - (speculation_barrier): New insn. - -2018-08-01 Richard Biener - - PR bootstrap/86724 - * graphite.h: Include isl/id.h and isl/space.h to allow build - with ISL 0.20. - -2018-08-01 Jan Willem Jagersma - - PR target/86651 - * dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO - mode for COFF targets. - * defaults.h (TARGET_COFF): Define. - * config/i386/djgpp.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END, - TARGET_COFF): Define. - (i386_djgpp_asm_lto_start, i386_djgpp_asm_lto_end): Declare. - * config/i386/djgpp.c (saved_debug_info_level): New static variable. - (i386_djgpp_asm_lto_start, i386_djgpp_asm_lto_end): New functions. - -2018-07-31 Alexandre Oliva - - * gimple-streamer-in.c (input_bb): Restore BB discriminator. - * gimple-streamer-out.c (output_bb): Save it. - * lto-streamer-in.c (input_struct_function_base): Restore - instance discriminator if available. Create map on demand. - * lto-streamer-out.c (output_struct_function_base): Save it if - available. - * final.c (decl_to_instance_map): Document LTO strategy. - -2018-07-31 Alexandre Oliva - Olivier Hainque - - * debug.h (decl_to_instance_map_t): New type. - (decl_to_instance_map): Declare. - (maybe_create_decl_to_instance_map): New inline function. - * final.c (bb_discriminator, last_bb_discriminator): New statics, - to track basic block discriminators. - (final_start_function_1): Initialize them. - (final_scan_insn_1): On NOTE_INSN_BASIC_BLOCK, track - bb_discriminator. - (decl_to_instance_map): New variable. - (map_decl_to_instance, maybe_set_discriminator): New functions. - (notice_source_line): Set discriminator. - -2018-07-31 Ian Lance Taylor - - * targhooks.c (default_have_speculation_safe_value): Add - ATTRIBUTE_UNUSED. - -2018-07-31 David Malcolm - - * dump-context.h: Include "pretty-print.h". - (dump_context::refresh_dumps_are_enabled): New decl. - (dump_context::emit_item): New decl. - (class dump_context): Add fields "m_test_pp" and - "m_test_pp_flags". - (temp_dump_context::temp_dump_context): Add param "test_pp_flags". - (temp_dump_context::get_dumped_text): New decl. - (class temp_dump_context): Add field "m_pp". - * dumpfile.c (refresh_dumps_are_enabled): Convert to... - (dump_context::refresh_dumps_are_enabled): ...and add a test for - m_test_pp. - (set_dump_file): Update for above change. - (set_alt_dump_file): Likewise. - (dump_loc): New overload, taking a pretty_printer *. - (dump_context::dump_loc): Call end_any_optinfo. Dump the location - to any test pretty-printer. - (make_item_for_dump_gimple_stmt): New function, adapted from - optinfo::add_gimple_stmt. - (dump_context::dump_gimple_stmt): Call it, and use the result, - eliminating the direct usage of dump_file and alt_dump_file in - favor of indirectly using them via emit_item. - (make_item_for_dump_gimple_expr): New function, adapted from - optinfo::add_gimple_expr. - (dump_context::dump_gimple_expr): Call it, and use the result, - eliminating the direct usage of dump_file and alt_dump_file in - favor of indirectly using them via emit_item. - (make_item_for_dump_generic_expr): New function, adapted from - optinfo::add_tree. - (dump_context::dump_generic_expr): Call it, and use the result, - eliminating the direct usage of dump_file and alt_dump_file in - favor of indirectly using them via emit_item. - (make_item_for_dump_printf_va): New function, adapted from - optinfo::add_printf_va. - (make_item_for_dump_printf): New function. - (dump_context::dump_printf_va): Call make_item_for_dump_printf_va, - and use the result, eliminating the direct usage of dump_file and - alt_dump_file in favor of indirectly using them via emit_item. - (make_item_for_dump_dec): New function. - (dump_context::dump_dec): Call it, and use the result, - eliminating the direct usage of dump_file and alt_dump_file in - favor of indirectly using them via emit_item. - (make_item_for_dump_symtab_node): New function, adapted from - optinfo::add_symtab_node. - (dump_context::dump_symtab_node): Call it, and use the result, - eliminating the direct usage of dump_file and alt_dump_file in - favor of indirectly using them via emit_item. - (dump_context::begin_scope): Reimplement, avoiding direct usage - of dump_file and alt_dump_file in favor of indirectly using them - via emit_item. - (dump_context::emit_item): New member function. - (temp_dump_context::temp_dump_context): Add param "test_pp_flags". - Set up test pretty-printer on the underlying context. Call - refresh_dumps_are_enabled. - (temp_dump_context::~temp_dump_context): Call - refresh_dumps_are_enabled. - (temp_dump_context::get_dumped_text): New member function. - (selftest::verify_dumped_text): New function. - (ASSERT_DUMPED_TEXT_EQ): New macro. - (selftest::test_capture_of_dump_calls): Run all tests twice, with - and then without optinfo enabled. Add uses of - ASSERT_DUMPED_TEXT_EQ to all tests. Add test of nested scopes. - * dumpfile.h: Update comment for the dump_* API. - * optinfo-emit-json.cc - (selftest::test_building_json_from_dump_calls): Update for new - param for temp_dump_context ctor. - * optinfo.cc (optinfo_item::optinfo_item): Remove "owned" param - and "m_owned" field. - (optinfo_item::~optinfo_item): Likewise. - (optinfo::add_item): New member function. - (optinfo::emit): Update comment. - (optinfo::add_string): Delete. - (optinfo::add_printf): Delete. - (optinfo::add_printf_va): Delete. - (optinfo::add_gimple_stmt): Delete. - (optinfo::add_gimple_expr): Delete. - (optinfo::add_tree): Delete. - (optinfo::add_symtab_node): Delete. - (optinfo::add_dec): Delete. - * optinfo.h (class dump_context): New forward decl. - (optinfo::add_item): New decl. - (optinfo::add_string): Delete. - (optinfo::add_printf): Delete. - (optinfo::add_printf_va): Delete. - (optinfo::add_gimple_stmt): Delete. - (optinfo::add_gimple_expr): Delete. - (optinfo::add_tree): Delete. - (optinfo::add_symtab_node): Delete. - (optinfo::add_dec): Delete. - (optinfo::add_poly_int): Delete. - (optinfo_item::optinfo_item): Remove "owned" param. - (class optinfo_item): Remove field "m_owned". - -2018-07-31 Jozef Lawrynowicz - - PR middle-end/86705 - * gcc/cfgexpand.c (set_parm_rtl): Use the alignment of Pmode when - MAX_SUPPORTED_STACK_ALIGNMENT would otherwise be exceeded by the - requested variable alignment. - (expand_one_ssa_partition): Likewise. - (expand_one_var): Likewise. - -2018-07-31 Richard Earnshaw - - * config/pdp11/pdp11.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine - to speculation_safe_value_not_needed. - -2018-07-31 Richard Earnshaw - - * targhooks.h (speculation_safe_value_not_needed): New prototype. - * targhooks.c (speculation_safe_value_not_needed): New function. - * target.def (have_speculation_safe_value): Update documentation. - * doc/tm.texi: Regenerated. - -2018-07-31 Richard Earnshaw - - * config/aarch64/iterators.md (ALLI_TI): New iterator. - * config/aarch64/aarch64.md (despeculate_copy): New - expand. - (despeculate_copy_insn): New insn. - (despeculate_copyti_insn): New insn. - (despeculate_simple): New insn - (despeculate_simpleti): New insn. - * config/aarch64/aarch64.c (aarch64_speculation_safe_value): New - function. - (TARGET_SPECULATION_SAFE_VALUE): Redefine to - aarch64_speculation_safe_value. - (aarch64_print_operand): Handle const0_rtx in modifier 'H'. - -2018-07-31 Richard Earnshaw - - * config/aarch64/aarch64-speculation.cc: New file. - * config/aarch64/aarch64-passes.def (pass_track_speculation): Add - before pass_reorder_blocks. - * config/aarch64/aarch64-protos.h (make_pass_track_speculation): Add - prototype. - * config/aarch64/aarch64.c (aarch64_conditional_register_usage): Fix - X14 and X15 when tracking speculation. - * config/aarch64/aarch64.md (register name constants): Add - SPECULATION_TRACKER_REGNUM and SPECULATION_SCRATCH_REGNUM. - (unspec): Add UNSPEC_SPECULATION_TRACKER. - (speculation_barrier): New insn attribute. - (cmp): Allow SP in comparisons. - (speculation_tracker): New insn. - (speculation_barrier): Add speculation_barrier attribute. - * config/aarch64/t-aarch64: Add make rule for aarch64-speculation.o. - * config.gcc (aarch64*-*-*): Add aarch64-speculation.o to extra_objs. - * doc/invoke.texi (AArch64 Options): Document -mtrack-speculation. - -2018-07-31 Richard Earnshaw - - * config/aarch64/aarch64.md (cb1): Disable when - aarch64_track_speculation is true. - (tb1): Likewise. - * config/aarch64/aarch64.c (aarch64_split_compare_regs): Do not - generate CB[N]Z when tracking speculation. - (aarch64_split_compare_and_swap): Likewise. - (aarch64_split_atomic_op): Likewise. - -2018-07-31 Richard Earnshaw - - * config/aarch64/aarch64.opt (mtrack-speculation): New target option. - -2018-07-31 Richard Earnshaw - - * config/aarch64.md (unspecv): Add UNSPECV_SPECULAION_BARRIER. - (speculation_barrier): New insn. - -2018-07-31 Richard Earnshaw - - * config/arm/unspecs.md (unspecv): Add VUNSPEC_SPECULATION_BARRIER. - * config/arm/arm.md (speculation_barrier): New expand. - (speculation_barrier_insn): New pattern. - -2018-07-31 Richard Earnshaw - - * builtin-types.def (BT_FN_PTR_PTR_VAR): New function type. - (BT_FN_I1_I1_VAR, BT_FN_I2_I2_VAR, BT_FN_I4_I4_VAR): Likewise. - (BT_FN_I8_I8_VAR, BT_FN_I16_I16_VAR): Likewise. - * builtin-attrs.def (ATTR_NOVOPS_NOTHROW_LEAF_LIST): New attribute - list. - * builtins.def (BUILT_IN_SPECULATION_SAFE_VALUE_N): New builtin. - (BUILT_IN_SPECULATION_SAFE_VALUE_PTR): New internal builtin. - (BUILT_IN_SPECULATION_SAFE_VALUE_1): Likewise. - (BUILT_IN_SPECULATION_SAFE_VALUE_2): Likewise. - (BUILT_IN_SPECULATION_SAFE_VALUE_4): Likewise. - (BUILT_IN_SPECULATION_SAFE_VALUE_8): Likewise. - (BUILT_IN_SPECULATION_SAFE_VALUE_16): Likewise. - * builtins.c (expand_speculation_safe_value): New function. - (expand_builtin): Call it. - * doc/cpp.texi: Document predefine __HAVE_SPECULATION_SAFE_VALUE. - * doc/extend.texi: Document __builtin_speculation_safe_value. - * doc/md.texi: Document "speculation_barrier" pattern. - * doc/tm.texi.in: Pull in TARGET_SPECULATION_SAFE_VALUE and - TARGET_HAVE_SPECULATION_SAFE_VALUE. - * doc/tm.texi: Regenerated. - * target.def (have_speculation_safe_value, speculation_safe_value): New - hooks. - * targhooks.c (default_have_speculation_safe_value): New function. - (default_speculation_safe_value): New function. - * targhooks.h (default_have_speculation_safe_value): Add prototype. - (default_speculation_safe_value): Add prototype. - -2018-07-31 David Malcolm - - * dump-context.h (dump_context::dump_loc): New decl. - * dumpfile.c (dump_context::dump_loc): New member function. - (dump_context::dump_gimple_stmt_loc): Reimplement using dump_loc - and dump_gimple_stmt. - (dump_context::dump_gimple_expr_loc): Likewise, using - dump_gimple_expr. - (dump_context::dump_generic_expr_loc): Likewise, using - dump_generic_expr. - (dump_context::dump_printf_loc_va): Likewise, using - dump_printf_va. - (dump_context::begin_scope): Explicitly using the global function - "dump_loc", rather than the member function. - -2018-07-31 Martin Sebor - - PR tree-optimization/86741 - * tree-vrp.c (vrp_prop::check_mem_ref): Avoid incomplete types. - -2018-07-31 Andreas Krebbel - - * config/s390/s390.c (s390_expand_setmem): Make the unrolling to - depend on whether prefetch instructions will be emitted or not. - Use TARGET_SETMEM_PFD for checking whether prefetch instructions - will be emitted or not. - * config/s390/s390.h (TARGET_SETMEM_PREFETCH_DISTANCE) - (TARGET_SETMEM_PFD): New macros. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (stmt_vec_info): Turn back into a typedef. - (NULL_STMT_VEC_INFO): Delete. - (stmt_vec_info::operator*): Likewise. - (stmt_vec_info::operator gimple *): Likewise. - * tree-vect-loop.c (vectorizable_reduction): Use NULL instead - of NULL_STMT_VEC_INFO. - * tree-vect-patterns.c (vect_init_pattern_stmt): Likewise. - (vect_reassociating_reduction_p): Likewise. - * tree-vect-stmts.c (vect_build_gather_load_calls): Likewise. - (vectorizable_store): Likewise. - * tree-vectorizer.c (vec_info::set_vinfo_for_stmt): Likewise. - (vec_info::free_stmt_vec_infos): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (vect_stmt_in_region_p): Delete. - * tree-vectorizer.c (vect_stmt_in_region_p): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (vec_info::new_vinfo_for_stmt) - (vec_info::set_vinfo_for_stmt, vec_info::free_stmt_vec_infos) - (vec_info::free_stmt_vec_info): New private member functions. - (set_stmt_vec_info_vec, free_stmt_vec_infos, vinfo_for_stmt) - (set_vinfo_for_stmt, new_stmt_vec_info, free_stmt_vec_info): Delete. - * tree-parloops.c (gather_scalar_reductions): Remove calls to - set_stmt_vec_info_vec and free_stmt_vec_infos. - * tree-vect-loop.c (_loop_vec_info): Remove call to - set_stmt_vec_info_vec. - * tree-vect-stmts.c (new_stmt_vec_info, set_stmt_vec_info_vec) - (free_stmt_vec_infos, free_stmt_vec_info): Delete in favor of... - * tree-vectorizer.c (vec_info::new_stmt_vec_info) - (vec_info::set_vinfo_for_stmt, vec_info::free_stmt_vec_infos) - (vec_info::free_stmt_vec_info): ...these new functions. Remove - assignments in {vec_info::,}new_stmt_vec_info that are redundant - with the clearing in the xcalloc. - (stmt_vec_info_vec): Delete. - (vec_info::vec_info): Don't call set_stmt_vec_info_vec. - (vectorize_loops): Likewise. - (vec_info::~vec_info): Remove argument from call to - free_stmt_vec_infos. - (vec_info::add_stmt): Remove vinfo argument from call to - new_stmt_vec_info. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (free_stmt_vec_info): Take a stmt_vec_info - rather than a gimple stmt. - * tree-vect-stmts.c (free_stmt_vec_info): Likewise. Don't free - information for pattern statements when passed the original - statement; instead wait to be passed the pattern statement itself. - Don't call set_vinfo_for_stmt here. - (free_stmt_vec_infos): Update call to free_stmt_vec_info. - * tree-vect-loop.c (_loop_vec_info::~loop_vec_info): Don't free - stmt_vec_infos here. - * tree-vect-slp.c (_bb_vec_info::~bb_vec_info): Likewise. - * tree-vectorizer.c (vec_info::remove_stmt): Nullify the statement's - stmt_vec_infos entry. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (vec_info::replace_stmt): Declare. - * tree-vectorizer.c (vec_info::replace_stmt): New function. - * tree-vect-slp.c (vect_remove_slp_scalar_calls): Use it. - * tree-vect-stmts.c (vectorizable_call): Likewise. - (vectorizable_simd_clone_call): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (vec_info::remove_stmt): Declare. - * tree-vectorizer.c (vec_info::remove_stmt): New function. - * tree-vect-loop-manip.c (vect_set_loop_condition): Use it. - * tree-vect-loop.c (vect_transform_loop): Likewise. - * tree-vect-slp.c (vect_schedule_slp): Likewise. - * tree-vect-stmts.c (vect_remove_stores): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (vec_info::lookup_dr): New member function. - (vect_dr_stmt): Delete. - * tree-vectorizer.c (vec_info::lookup_dr): New function. - * tree-vect-loop-manip.c (vect_update_inits_of_drs): Use it instead - of DR_VECT_AUX. - * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr) - (vect_analyze_data_ref_dependence, vect_record_base_alignments) - (vect_verify_datarefs_alignment, vect_peeling_supportable) - (vect_analyze_data_ref_accesses, vect_prune_runtime_alias_test_list) - (vect_analyze_data_refs): Likewise. - (vect_slp_analyze_data_ref_dependence): Likewise. Take a vec_info - argument. - (vect_find_same_alignment_drs): Likewise. - (vect_slp_analyze_node_dependences): Update calls accordingly. - (vect_analyze_data_refs_alignment): Likewise. Use vec_info::lookup_dr - instead of DR_VECT_AUX. - (vect_get_peeling_costs_all_drs): Take a loop_vec_info instead - of a vector data references. Use vec_info::lookup_dr instead of - DR_VECT_AUX. - (vect_peeling_hash_get_lowest_cost): Update calls accordingly. - (vect_enhance_data_refs_alignment): Likewise. Use vec_info::lookup_dr - instead of DR_VECT_AUX. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (_loop_vec_info::unaligned_dr): Change to - dr_vec_info. - * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Update - accordingly. - * tree-vect-loop.c (vect_analyze_loop_2): Likewise. - * tree-vect-loop-manip.c (get_misalign_in_elems): Likewise. - (vect_gen_prolog_loop_niters): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (set_dr_misalignment, dr_misalignment) - (DR_TARGET_ALIGNMENT, aligned_access_p, known_alignment_for_access_p) - (vect_known_alignment_in_bytes, vect_dr_behavior) - (vect_get_scalar_dr_size): Take references as dr_vec_infos - instead of data_references. Update calls to other routines for - which the same change has been made. - * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Take - dr_vec_infos instead of stmt_vec_infos. - (vect_analyze_data_ref_dependence): Update call accordingly. - (vect_slp_analyze_data_ref_dependence) - (vect_record_base_alignments): Use DR_VECT_AUX. - (vect_calculate_target_alignment, vect_compute_data_ref_alignment) - (vect_update_misalignment_for_peel, verify_data_ref_alignment) - (vector_alignment_reachable_p, vect_get_data_access_cost) - (vect_peeling_supportable, vect_analyze_group_access_1) - (vect_analyze_group_access, vect_analyze_data_ref_access) - (vect_vfa_segment_size, vect_vfa_access_size, vect_vfa_align) - (vect_compile_time_alias, vect_small_gap_p) - (vectorizable_with_step_bound_p, vect_duplicate_ssa_name_ptr_info): - (vect_supportable_dr_alignment): Take references as dr_vec_infos - instead of data_references. Update calls to other routines for - which the same change has been made. - (vect_verify_datarefs_alignment, vect_get_peeling_costs_all_drs) - (vect_find_same_alignment_drs, vect_analyze_data_refs_alignment) - (vect_slp_analyze_and_verify_node_alignment) - (vect_analyze_data_ref_accesses, vect_prune_runtime_alias_test_list) - (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr) - (vect_setup_realignment): Use dr_vec_infos. Update calls after - above changes. - (_vect_peel_info::dr): Replace with... - (_vect_peel_info::dr_info): ...this new field. - (vect_peeling_hash_get_most_frequent) - (vect_peeling_hash_choose_best_peeling): Update accordingly. - (vect_peeling_hash_get_lowest_cost): - (vect_enhance_data_refs_alignment): Likewise. Update calls to other - routines for which the same change has been made. - (vect_peeling_hash_insert): Likewise. Take a dr_vec_info instead of a - data_reference. - * tree-vect-loop-manip.c (get_misalign_in_elems) - (vect_gen_prolog_loop_niters): Use dr_vec_infos. Update calls after - above changes. - * tree-vect-loop.c (vect_analyze_loop_2): Likewise. - * tree-vect-stmts.c (vect_get_store_cost, vect_get_load_cost) - (vect_truncate_gather_scatter_offset, compare_step_with_zero) - (get_group_load_store_type, get_negative_load_store_type) - (vect_get_data_ptr_increment, vectorizable_store) - (vectorizable_load): Likewise. - (ensure_base_align): Take a dr_vec_info instead of a data_reference. - Update calls to other routines for which the same change has been made. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (vec_info::move_dr): New member function. - (dataref_aux): Rename to... - (dr_vec_info): ...this and add "dr" and "stmt" fields. - (_stmt_vec_info::dr_aux): Update accordingly. - (_stmt_vec_info::data_ref_info): Delete. - (STMT_VINFO_GROUPED_ACCESS, DR_GROUP_FIRST_ELEMENT) - (DR_GROUP_NEXT_ELEMENT, DR_GROUP_SIZE, DR_GROUP_STORE_COUNT) - (DR_GROUP_GAP, DR_GROUP_SAME_DR_STMT, REDUC_GROUP_FIRST_ELEMENT): - (REDUC_GROUP_NEXT_ELEMENT, REDUC_GROUP_SIZE): Use dr_aux.dr instead - of data_ref. - (STMT_VINFO_DATA_REF): Likewise. Turn into an lvalue. - (STMT_VINFO_DR_INFO): New macro. - (DR_VECT_AUX): Use STMT_VINFO_DR_INKFO and vect_dr_stmt. - (set_dr_misalignment): Update after rename of dataref_aux. - (vect_dr_stmt): Move earlier in file. Return dr_aux.stmt. - * tree-vect-stmts.c (new_stmt_vec_info): Remove redundant - initialization of STMT_VINFO_DATA_REF. - * tree-vectorizer.c (vec_info::move_dr): New function. - * tree-vect-patterns.c (vect_recog_bool_pattern) - (vect_recog_mask_conversion_pattern) - (vect_recog_gather_scatter_pattern): Use it. - * tree-vect-data-refs.c (vect_analyze_data_refs): Initialize - the "dr" and "stmt" fields of dr_vec_info instead of - STMT_VINFO_DATA_REF. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (_stmt_vec_info::pattern_stmt_p): New field. - (is_pattern_stmt_p): Use it. - * tree-vect-patterns.c (vect_init_pattern_stmt): Set pattern_stmt_p - on pattern statements. - -2018-07-31 Richard Sandiford - - * tree-vect-patterns.c (vect_mark_pattern_stmts): Take the - original stmt as a stmt_vec_info rather than a gimple stmt. - (vect_pattern_recog_1): Take the statement directly as a - stmt_vec_info, rather than via a gimple_stmt_iterator. - Update call to vect_mark_pattern_stmts. - (vect_pattern_recog): Update calls accordingly. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (vect_get_vec_defs_for_stmt_copy) - (vect_get_vec_def_for_stmt_copy): Take a vec_info rather than - a vect_def_type for the first argument. - * tree-vect-stmts.c (vect_get_vec_defs_for_stmt_copy): Likewise. - (vect_get_vec_def_for_stmt_copy): Likewise. Return the original - operand if it isn't defined by a vectorized statement. - (vect_build_gather_load_calls): Remove the mask_dt argument and - update calls to vect_get_vec_def_for_stmt_copy. - (vectorizable_bswap): Likewise the dt argument. - (vectorizable_call): Update calls to vectorizable_bswap and - vect_get_vec_def_for_stmt_copy. - (vectorizable_simd_clone_call, vectorizable_assignment) - (vectorizable_shift, vectorizable_operation, vectorizable_condition) - (vectorizable_comparison): Update calls to - vect_get_vec_def_for_stmt_copy. - (vectorizable_store): Likewise. Remove now-unnecessary calls to - vect_is_simple_use. - (vect_get_loop_based_defs): Remove dt argument and update call - to vect_get_vec_def_for_stmt_copy. - (vectorizable_conversion): Update calls to vect_get_loop_based_defs - and vect_get_vec_def_for_stmt_copy. - (vectorizable_load): Update calls to vect_build_gather_load_calls - and vect_get_vec_def_for_stmt_copy. - * tree-vect-loop.c (vect_create_epilog_for_reduction) - (vectorizable_reduction, vectorizable_live_operation): Update calls - to vect_get_vec_def_for_stmt_copy. - -2018-07-31 Richard Sandiford - - * tree-vect-data-refs.c (vect_record_base_alignment): Replace vec_info - and gimple stmt arguments with a stmt_vec_info. - (vect_record_base_alignments): Update calls accordingly. - * tree-vect-slp.c (vect_record_max_nunits): Replace vec_info - and gimple stmt arguments with a stmt_vec_info. - (vect_build_slp_tree_1): Remove vinfo argument and update call - to vect_record_max_nunits. - (vect_build_slp_tree_2): Update calls to vect_build_slp_tree_1 - and vect_record_max_nunits. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (nested_in_vect_loop_p): Move further down - file and take a stmt_vec_info instead of a gimple stmt. - (supportable_widening_operation, vect_finish_replace_stmt) - (vect_finish_stmt_generation, vect_get_store_rhs) - (vect_get_vec_def_for_operand_1, vect_get_vec_def_for_operand) - (vect_get_vec_defs, vect_init_vector, vect_transform_stmt) - (vect_remove_stores, vect_analyze_stmt, vectorizable_condition) - (vect_get_smallest_scalar_type, vect_check_gather_scatter) - (vect_create_data_ref_ptr, bump_vector_ptr) - (vect_permute_store_chain, vect_setup_realignment) - (vect_transform_grouped_load, vect_record_grouped_load_vectors) - (vect_create_addr_base_for_vector_ref, vectorizable_live_operation) - (vectorizable_reduction, vectorizable_induction) - (get_initial_def_for_reduction, is_simple_and_all_uses_invariant) - (vect_get_place_in_interleaving_chain): Take stmt_vec_infos rather - than gimple stmts as arguments. - * tree-vect-data-refs.c (vect_get_smallest_scalar_type) - (vect_preserves_scalar_order_p, vect_slp_analyze_node_dependences) - (can_group_stmts_p, vect_check_gather_scatter) - (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr) - (bump_vector_ptr, vect_permute_store_chain, vect_setup_realignment) - (vect_permute_load_chain, vect_shift_permute_load_chain) - (vect_transform_grouped_load) - (vect_record_grouped_load_vectors): Likewise. - * tree-vect-loop.c (vect_fixup_reduc_chain) - (get_initial_def_for_reduction, vect_create_epilog_for_reduction) - (vectorize_fold_left_reduction, is_nonwrapping_integer_induction) - (vectorizable_reduction, vectorizable_induction) - (vectorizable_live_operation, vect_loop_kill_debug_uses): Likewise. - * tree-vect-patterns.c (type_conversion_p, adjust_bool_stmts) - (vect_get_load_store_mask): Likewise. - * tree-vect-slp.c (vect_get_place_in_interleaving_chain) - (vect_analyze_slp_instance, vect_mask_constant_operand_p): Likewise. - * tree-vect-stmts.c (vect_mark_relevant) - (is_simple_and_all_uses_invariant) - (exist_non_indexing_operands_for_use_p, process_use) - (vect_init_vector_1, vect_init_vector, vect_get_vec_def_for_operand_1) - (vect_get_vec_def_for_operand, vect_get_vec_defs) - (vect_finish_stmt_generation_1, vect_finish_replace_stmt) - (vect_finish_stmt_generation, vect_truncate_gather_scatter_offset) - (compare_step_with_zero, vect_get_store_rhs, get_group_load_store_type) - (get_negative_load_store_type, get_load_store_type) - (vect_check_load_store_mask, vect_check_store_rhs) - (vect_build_gather_load_calls, vect_get_strided_load_store_ops) - (vectorizable_bswap, vectorizable_call, vectorizable_simd_clone_call) - (vect_create_vectorized_demotion_stmts, vectorizable_conversion) - (vectorizable_assignment, vectorizable_shift, vectorizable_operation) - (get_group_alias_ptr_type, vectorizable_store, hoist_defs_of_uses) - (vectorizable_load, vectorizable_condition, vectorizable_comparison) - (vect_analyze_stmt, vect_transform_stmt, vect_remove_stores) - (supportable_widening_operation): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vect-data-refs.c (vect_describe_gather_scatter_call): Take - a stmt_vec_info instead of a gcall. - (vect_check_gather_scatter): Update call accordingly. - * tree-vect-loop-manip.c (iv_phi_p): Take a stmt_vec_info instead - of a gphi. - (vect_can_advance_ivs_p, vect_update_ivs_after_vectorizer) - (slpeel_update_phi_nodes_for_loops):): Update calls accordingly. - * tree-vect-loop.c (vect_transform_loop_stmt): Take a stmt_vec_info - instead of a gimple stmt. - (vect_transform_loop): Update calls accordingly. - * tree-vect-slp.c (vect_split_slp_store_group): Take and return - stmt_vec_infos instead of gimple stmts. - (vect_analyze_slp_instance): Update use accordingly. - * tree-vect-stmts.c (read_vector_array, write_vector_array) - (vect_clobber_variable, vect_stmt_relevant_p, permute_vec_elements) - (vect_use_strided_gather_scatters_p, vect_build_all_ones_mask) - (vect_build_zero_merge_argument, vect_get_gather_scatter_ops) - (vect_gen_widened_results_half, vect_get_loop_based_defs) - (vect_create_vectorized_promotion_stmts, can_vectorize_live_stmts): - Take a stmt_vec_info instead of a gimple stmt and pass stmt_vec_infos - down to subroutines. - -2018-07-31 Richard Sandiford - - * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Change the type - of the worklist from a vector of gimple stmts to a vector of - stmt_vec_infos. - * tree-vect-stmts.c (vect_mark_relevant, process_use) - (vect_mark_stmts_to_be_vectorized): Likewise - -2018-07-31 Richard Sandiford - - * tree-vect-loop.c (vect_analyze_loop_operations): Look up the - statement before passing it to vect_analyze_stmt. - (vect_create_epilog_for_reduction): Use a stmt_vec_info to walk - the chain of phi vector definitions. Track the exit phi via its - stmt_vec_info. - (vectorizable_reduction): Set cond_stmt_vinfo directly from the - STMT_VINFO_REDUC_DEF. - * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Use - stmt_vec_infos to handle the statement chains. - (vect_get_slp_defs): Record the first statement in the node - using a stmt_vec_info. - * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Look up - statements here and pass their stmt_vec_info down to subroutines. - (vect_init_vector_1): Hoist call to vinfo_for_stmt and pass it - down to vect_finish_stmt_generation. - (vect_init_vector, vect_get_vec_defs, vect_finish_replace_stmt) - (vect_finish_stmt_generation): Call vinfo_for_stmt and pass - stmt_vec_infos to subroutines. - (vect_remove_stores): Use stmt_vec_infos to handle the statement - chains. - -2018-07-31 Richard Sandiford - - * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): - (vect_check_gather_scatter, vect_create_data_ref_ptr, bump_vector_ptr) - (vect_permute_store_chain, vect_setup_realignment) - (vect_permute_load_chain, vect_shift_permute_load_chain) - (vect_transform_grouped_load): Use stmt_vec_info rather than gimple - stmts internally, and when passing values to other vectorizer routines. - * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Likewise. - * tree-vect-loop.c (vect_analyze_scalar_cycles_1) - (vect_analyze_loop_operations, get_initial_def_for_reduction) - (vect_create_epilog_for_reduction, vectorize_fold_left_reduction) - (vectorizable_reduction, vectorizable_induction) - (vectorizable_live_operation, vect_transform_loop_stmt) - (vect_transform_loop): Likewise. - * tree-vect-patterns.c (vect_reassociating_reduction_p) - (vect_recog_widen_op_pattern, vect_recog_mixed_size_cond_pattern) - (vect_recog_bool_pattern, vect_recog_gather_scatter_pattern): Likewise. - * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. - (vect_slp_analyze_node_operations_1): Likewise. - * tree-vect-stmts.c (vect_mark_relevant, process_use) - (exist_non_indexing_operands_for_use_p, vect_init_vector_1) - (vect_mark_stmts_to_be_vectorized, vect_get_vec_def_for_operand) - (vect_finish_stmt_generation_1, get_group_load_store_type) - (get_load_store_type, vect_build_gather_load_calls) - (vectorizable_bswap, vectorizable_call, vectorizable_simd_clone_call) - (vect_create_vectorized_demotion_stmts, vectorizable_conversion) - (vectorizable_assignment, vectorizable_shift, vectorizable_operation) - (vectorizable_store, vectorizable_load, vectorizable_condition) - (vectorizable_comparison, vect_analyze_stmt, vect_transform_stmt) - (supportable_widening_operation): Likewise. - (vect_get_vector_types_for_stmt): Likewise. - * tree-vectorizer.h (vect_dr_behavior): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vect-data-refs.c (vect_analyze_data_ref_dependence) - (vect_slp_analyze_node_dependences, vect_analyze_data_ref_accesses) - (vect_permute_store_chain, vect_permute_load_chain) - (vect_shift_permute_load_chain, vect_transform_grouped_load): Avoid - repeated stmt_vec_info lookups. - * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Likewise. - (vect_update_ivs_after_vectorizer): Likewise. - * tree-vect-loop.c (vect_is_simple_reduction): Likewise. - (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise. - * tree-vect-patterns.c (adjust_bool_stmts): Likewise. - * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. - (vect_bb_slp_scalar_cost): Likewise. - * tree-vect-stmts.c (get_group_alias_ptr_type): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vect-data-refs.c (vect_check_gather_scatter): Pass the - gcall rather than the generic gimple stmt to gimple_call_internal_fn. - (vect_get_smallest_scalar_type, can_group_stmts_p): Use dyn_cast - to get gassigns and gcalls, rather than operating on generc gimple - stmts. - * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p) - (vect_mark_stmts_to_be_vectorized, vectorizable_store) - (vectorizable_load, vect_analyze_stmt): Likewise. - * tree-vect-loop.c (vectorizable_reduction): Likewise gphi. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (get_earlier_stmt, get_later_stmt): Take and - return stmt_vec_infos rather than gimple stmts. Do not accept - null arguments. - (vect_find_last_scalar_stmt_in_slp): Return a stmt_vec_info instead - of a gimple stmt. - * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Likewise. - Update use of get_later_stmt. - (vect_get_constant_vectors): Update call accordingly. - (vect_schedule_slp_instance): Likewise - * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Likewise. - (vect_slp_analyze_instance_dependence): Likewise. - (vect_preserves_scalar_order_p): Update use of get_earlier_stmt. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (stmt_info_for_cost::stmt): Replace with... - (stmt_info_for_cost::stmt_info): ...this new field. - (add_stmt_costs): Update accordingly. - * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost) - (vect_get_known_peeling_cost): Likewise. - (vect_estimate_min_profitable_iters): Likewise. - * tree-vect-stmts.c (record_stmt_cost): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (_loop_vec_info::may_misalign_stmts): Change - from an auto_vec to an auto_vec. - * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Update - accordingly. - * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (_stmt_vec_info::same_dr_stmt): Change from - a gimple stmt to a stmt_vec_info. - * tree-vect-stmts.c (vectorizable_load): Update accordingly. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (vec_info::grouped_stores): Change from - an auto_vec to an auto_vec. - (_loop_vec_info::reduction_chains): Likewise. - * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Update - accordingly. - * tree-vect-slp.c (vect_analyze_slp): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (_stmt_vec_info::first_element): Change from - a gimple stmt to a stmt_vec_info. - (_stmt_vec_info::next_element): Likewise. - * tree-vect-data-refs.c (vect_update_misalignment_for_peel) - (vect_slp_analyze_and_verify_node_alignment) - (vect_analyze_group_access_1, vect_analyze_group_access) - (vect_small_gap_p, vect_prune_runtime_alias_test_list) - (vect_create_data_ref_ptr, vect_record_grouped_load_vectors) - (vect_supportable_dr_alignment): Update accordingly. - * tree-vect-loop.c (vect_fixup_reduc_chain): Likewise. - (vect_fixup_scalar_cycles_with_patterns, vect_is_slp_reduction) - (vect_is_simple_reduction, vectorizable_reduction): Likewise. - * tree-vect-patterns.c (vect_reassociating_reduction_p): Likewise. - * tree-vect-slp.c (vect_build_slp_tree_1) - (vect_attempt_slp_rearrange_stmts, vect_supported_load_permutation_p) - (vect_split_slp_store_group, vect_analyze_slp_instance) - (vect_analyze_slp, vect_transform_slp_perm_load): Likewise. - * tree-vect-stmts.c (vect_model_store_cost, vect_model_load_cost) - (get_group_load_store_type, get_load_store_type) - (get_group_alias_ptr_type, vectorizable_store, vectorizable_load) - (vect_transform_stmt, vect_remove_stores): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (vect_dr_stmt): Return a stmt_vec_info rather - than a gimple stmt. - * tree-vect-data-refs.c (vect_analyze_data_ref_dependence) - (vect_slp_analyze_data_ref_dependence, vect_record_base_alignments) - (vect_calculate_target_alignmentm, vect_compute_data_ref_alignment) - (vect_update_misalignment_for_peel, vect_verify_datarefs_alignment) - (vector_alignment_reachable_p, vect_get_data_access_cost) - (vect_get_peeling_costs_all_drs, vect_peeling_hash_get_lowest_cost) - (vect_peeling_supportable, vect_enhance_data_refs_alignment) - (vect_find_same_alignment_drs, vect_analyze_data_refs_alignment) - (vect_analyze_group_access_1, vect_analyze_group_access) - (vect_analyze_data_ref_access, vect_analyze_data_ref_accesses) - (vect_vfa_access_size, vect_small_gap_p, vect_analyze_data_refs) - (vect_supportable_dr_alignment): Remove vinfo_for_stmt from the - result of vect_dr_stmt and use the stmt_vec_info instead of - the associated gimple stmt. - * tree-vect-loop-manip.c (get_misalign_in_elems): Likewise. - (vect_gen_prolog_loop_niters): Likewise. - * tree-vect-loop.c (vect_analyze_loop_2): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (_slp_tree::stmts): Change from a vec - to a vec. - * tree-vect-slp.c (vect_free_slp_tree): Update accordingly. - (vect_create_new_slp_node): Take a vec instead of a - vec. - (_slp_oprnd_info::def_stmts): Change from a vec - to a vec. - (bst_traits::value_type, bst_traits::value_type): Likewise. - (bst_traits::hash): Update accordingly. - (vect_get_and_check_slp_defs): Change the stmts parameter from - a vec to a vec. - (vect_two_operations_perm_ok_p, vect_build_slp_tree_1): Likewise. - (vect_build_slp_tree): Likewise. - (vect_build_slp_tree_2): Likewise. Update uses of - SLP_TREE_SCALAR_STMTS. - (vect_print_slp_tree): Update uses of SLP_TREE_SCALAR_STMTS. - (vect_mark_slp_stmts, vect_mark_slp_stmts_relevant) - (vect_slp_rearrange_stmts, vect_attempt_slp_rearrange_stmts) - (vect_supported_load_permutation_p, vect_find_last_scalar_stmt_in_slp) - (vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations_1) - (vect_slp_analyze_node_operations, vect_slp_analyze_operations) - (vect_bb_slp_scalar_cost, vect_slp_analyze_bb_1) - (vect_get_constant_vectors, vect_get_slp_defs) - (vect_transform_slp_perm_load, vect_schedule_slp_instance) - (vect_remove_slp_scalar_calls, vect_schedule_slp): Likewise. - (vect_analyze_slp_instance): Build up a vec of stmt_vec_infos - instead of gimple stmts. - * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Change - the stores parameter for a vec to a vec. - (vect_slp_analyze_instance_dependence): Update uses of - SLP_TREE_SCALAR_STMTS. - (vect_slp_analyze_and_verify_node_alignment): Likewise. - (vect_slp_analyze_and_verify_instance_alignment): Likewise. - * tree-vect-loop.c (neutral_op_for_slp_reduction): Likewise. - (get_initial_defs_for_reduction): Likewise. - (vect_create_epilog_for_reduction): Likewise. - (vectorize_fold_left_reduction): Likewise. - * tree-vect-stmts.c (vect_prologue_cost_for_slp_op): Likewise. - (vect_model_simple_cost, vectorizable_shift, vectorizable_load) - (can_vectorize_live_stmts): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (_loop_vec_info::reductions): Change from an - auto_vec to an auto_vec. - (vect_force_simple_reduction): Take and return stmt_vec_infos rather - than gimple stmts. - * tree-parloops.c (valid_reduction_p): Take a stmt_vec_info instead - of a gimple stmt. - (gather_scalar_reductions): Update after above interface changes. - * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise. - (vect_is_simple_reduction): Take and return stmt_vec_infos rather - than gimple stmts. - (vect_force_simple_reduction): Likewise. - * tree-vect-patterns.c (vect_pattern_recog_1): Update use of - LOOP_VINFO_REDUCTIONS. - * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (_stmt_vec_info::reduc_def): Change from - a gimple stmt to a stmt_vec_info. - * tree-vect-loop.c (vect_active_double_reduction_p) - (vect_force_simple_reduction, vectorizable_reduction): Update - accordingly. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (_slp_tree::vec_stmts): Change from a - vec to a vec. - * tree-vect-loop.c (vect_create_epilog_for_reduction): Change - the reduction_phis argument from a vec to a - vec. - (vectorizable_reduction): Likewise the phis local variable that - is passed to vect_create_epilog_for_reduction. Update for new type - of SLP_TREE_VEC_STMTS. - (vectorizable_induction): Update for new type of SLP_TREE_VEC_STMTS. - (vectorizable_live_operation): Likewise. - * tree-vect-slp.c (vect_get_slp_vect_defs): Likewise. - (vect_transform_slp_perm_load, vect_schedule_slp_instance): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (_stmt_vec_info::vectorized_stmt): Change from - a gimple stmt to a stmt_vec_info. - (vectorizable_condition, vectorizable_live_operation) - (vectorizable_reduction, vectorizable_induction): Pass back the - vectorized statement as a stmt_vec_info. - * tree-vect-data-refs.c (vect_record_grouped_load_vectors): Update - use of STMT_VINFO_VEC_STMT. - * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise, - accumulating the inner phis that feed the STMT_VINFO_VEC_STMT - as stmt_vec_infos rather than gimple stmts. - (vectorize_fold_left_reduction): Change vec_stmt from a gimple stmt - to a stmt_vec_info. - (vectorizable_live_operation): Likewise. - (vectorizable_reduction, vectorizable_induction): Likewise, - updating use of STMT_VINFO_VEC_STMT. - * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Update use - of STMT_VINFO_VEC_STMT. - (vect_build_gather_load_calls, vectorizable_bswap, vectorizable_call) - (vectorizable_simd_clone_call, vectorizable_conversion) - (vectorizable_assignment, vectorizable_shift, vectorizable_operation) - (vectorizable_store, vectorizable_load, vectorizable_condition) - (vectorizable_comparison, can_vectorize_live_stmts): Change vec_stmt - from a gimple stmt to a stmt_vec_info. - (vect_transform_stmt): Update use of STMT_VINFO_VEC_STMT. Pass a - pointer to a stmt_vec_info to the vectorizable_* routines. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (_stmt_vec_info::related_stmt): Change from - a gimple stmt to a stmt_vec_info. - (is_pattern_stmt_p): Update accordingly. - * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Likewise. - (vect_record_grouped_load_vectors): Likewise. - * tree-vect-loop.c (vect_determine_vf_for_stmt): Likewise. - (vect_fixup_reduc_chain, vect_update_vf_for_slp): Likewise. - (vect_model_reduction_cost): Likewise. - (vect_create_epilog_for_reduction): Likewise. - (vectorizable_reduction, vectorizable_induction): Likewise. - * tree-vect-patterns.c (vect_init_pattern_stmt): Likewise. - Return the stmt_vec_info for the pattern statement. - (vect_set_pattern_stmt): Update use of STMT_VINFO_RELATED_STMT. - (vect_split_statement, vect_mark_pattern_stmts): Likewise. - * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise. - (vect_detect_hybrid_slp, vect_get_slp_defs): Likewise. - * tree-vect-stmts.c (vect_mark_relevant): Likewise. - (vect_get_vec_def_for_operand_1, vectorizable_call): Likewise. - (vectorizable_simd_clone_call, vect_analyze_stmt, new_stmt_vec_info) - (free_stmt_vec_info, vect_is_simple_use): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (vect_finish_replace_stmt): Return a stmt_vec_info - (vect_finish_stmt_generation): Likewise. - * tree-vect-stmts.c (vect_finish_stmt_generation_1): Likewise. - (vect_finish_replace_stmt, vect_finish_stmt_generation): Likewise. - (vect_build_gather_load_calls): Use the return value of the above - functions instead of a separate call to vinfo_for_stmt. Use narrow - scopes for the input gimple stmt and wider scopes for the associated - stmt_vec_info. Use vec_info::lookup_def when setting these - stmt_vec_infos from an SSA_NAME definition. - (vectorizable_bswap, vectorizable_call, vectorizable_simd_clone_call) - (vect_create_vectorized_demotion_stmts, vectorizable_conversion) - (vectorizable_assignment, vectorizable_shift, vectorizable_operation) - (vectorizable_store, vectorizable_load, vectorizable_condition) - (vectorizable_comparison): Likewise. - * tree-vect-loop.c (vectorize_fold_left_reduction): Likewise. - (vectorizable_reduction): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (vect_is_simple_use): Add an optional - stmt_vec_info * parameter before the optional gimple **. - * tree-vect-stmts.c (vect_is_simple_use): Likewise. - (process_use, vect_get_vec_def_for_operand_1): Update callers. - (vect_get_vec_def_for_operand, vectorizable_shift): Likewise. - * tree-vect-loop.c (vectorizable_reduction): Likewise. - (vectorizable_live_operation): Likewise. - * tree-vect-patterns.c (type_conversion_p): Likewise. - (vect_look_through_possible_promotion): Likewise. - (vect_recog_rotate_pattern): Likewise. - * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (stmt_vec_info): Temporarily change from - a typedef to a wrapper class. - (NULL_STMT_VEC_INFO): New macro. - (vec_info::stmt_infos): Change to vec. - (stmt_vec_info::operator*): New function. - (stmt_vec_info::operator gimple *): Likewise. - (set_vinfo_for_stmt): Use NULL_STMT_VEC_INFO. - (add_stmt_costs): Likewise. - * tree-vect-loop-manip.c (iv_phi_p): Likewise. - * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost) - (vect_get_known_peeling_cost): Likewise. - (vect_estimate_min_profitable_iters): Likewise. - * tree-vect-patterns.c (vect_init_pattern_stmt): Likewise. - * tree-vect-slp.c (vect_remove_slp_scalar_calls): Likewise. - * tree-vect-stmts.c (vect_build_gather_load_calls): Likewise. - (vectorizable_store, free_stmt_vec_infos): Likewise. - (new_stmt_vec_info): Change return type of xcalloc to - _stmt_vec_info *. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (vec_info::lookup_single_use): Declare. - * tree-vectorizer.c (vec_info::lookup_single_use): New function. - * tree-vect-loop.c (vectorizable_reduction): Use it instead of - a single_imm_use-based sequence. - * tree-vect-stmts.c (supportable_widening_operation): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (vec_info::lookup_def): Declare. - * tree-vectorizer.c (vec_info::lookup_def): New function. - * tree-vect-patterns.c (vect_get_internal_def): Use it. - (vect_widened_op_tree): Likewise. - * tree-vect-stmts.c (vect_is_simple_use): Likewise. - * tree-vect-loop.c (vect_analyze_loop_operations): Likewise. - (vectorizable_reduction): Likewise. - (vect_valid_reduction_input_p): Take a stmt_vec_info instead - of a gimple *. - (vect_is_slp_reduction): Update calls accordingly. Use - vec_info::lookup_def. - (vect_is_simple_reduction): Likewise - * tree-vect-slp.c (vect_detect_hybrid_slp_1): Use vec_info::lookup_def. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (vec_info::lookup_stmt): Declare. - * tree-vectorizer.c (vec_info::lookup_stmt): New function. - * tree-vect-loop.c (vect_determine_vf_for_stmt): Use it instead - of vinfo_for_stmt. - (vect_determine_vectorization_factor, vect_analyze_scalar_cycles_1) - (vect_compute_single_scalar_iteration_cost, vect_analyze_loop_form) - (vect_update_vf_for_slp, vect_analyze_loop_operations) - (vect_is_slp_reduction, vectorizable_induction) - (vect_transform_loop_stmt, vect_transform_loop): Likewise. - * tree-vect-patterns.c (vect_init_pattern_stmt): - (vect_determine_min_output_precision_1, vect_determine_precisions) - (vect_pattern_recog): Likewise. - * tree-vect-stmts.c (vect_analyze_stmt, vect_transform_stmt): Likewise. - * config/powerpcspe/powerpcspe.c (rs6000_density_test): Likewise. - * config/rs6000/rs6000.c (rs6000_density_test): Likewise. - * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise. - (vect_detect_hybrid_slp_1, vect_detect_hybrid_slp_2) - (vect_detect_hybrid_slp): Likewise. Change the walk_stmt_info - info field from a loop to a loop_vec_info. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (stmt_vec_info): Move typedef earlier in file. - (vec_info::add_stmt): Declare. - * tree-vectorizer.c (vec_info::add_stmt): New function. - * tree-vect-data-refs.c (vect_create_data_ref_ptr): Use it. - * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise. - (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise. - (vectorizable_induction): Likewise. - * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise. - * tree-vect-stmts.c (vect_finish_stmt_generation_1): Likewise. - (vectorizable_simd_clone_call, vectorizable_store): Likewise. - (vectorizable_load): Likewise. - * tree-vect-patterns.c (vect_init_pattern_stmt): Likewise. - (vect_recog_bool_pattern, vect_recog_mask_conversion_pattern) - (vect_recog_gather_scatter_pattern): Likewise. - (append_pattern_def_seq): Likewise. Remove a check that is - performed by add_stmt itself. - -2018-07-31 Richard Sandiford - - * tree-vect-loop.c (vectorizable_reduction): Fix an instance in - which make_ssa_name was called with new_stmt before new_stmt - had been created. - -2018-07-31 Richard Sandiford - - * tree-vect-loop.c (vect_valid_reduction_input_p): New function, - split out from... - (vect_is_slp_reduction): ...here... - (vect_is_simple_reduction): ...and here. Remove repetition of tests - that are already known to be false. - -2018-07-31 Richard Sandiford - - * tree-vectorizer.h (vect_free_slp_instance): Add a final_p parameter. - * tree-vect-slp.c (vect_free_slp_tree): Likewise. Don't update - STMT_VINFO_NUM_SLP_USES when it's true. - (vect_free_slp_instance): Add a final_p parameter and pass it to - vect_free_slp_tree. - (vect_build_slp_tree_2): Update call to vect_free_slp_instance. - (vect_analyze_slp_instance): Likewise. - (vect_slp_analyze_operations): Likewise. - (vect_slp_analyze_bb_1): Likewise. - * tree-vectorizer.c (vec_info): Likewise. - * tree-vect-loop.c (vect_transform_loop): Likewise. - -2018-07-31 Richard Sandiford - - * tree-vect-loop.c (vectorizable_reduction): Assert that the - function is not called for second and subsequent members of - a reduction group. - -2018-07-31 Richard Sandiford - - * tree-vect-loop.c (get_initial_def_for_reduction): Move special - cases for nested loops from here to ... - (vect_create_epilog_for_reduction): ...here. Only call - vect_is_simple_use for inner-loop reductions. - -2018-07-31 Martin Liska - - PR gcov-profile/85338 - PR gcov-profile/85350 - PR gcov-profile/85372 - * profile.c (struct location_triplet): New. - (struct location_triplet_hash): Likewise. - (output_location): Do not output a BB that - is already recorded for a line. - (branch_prob): Use streamed_locations. - -2018-07-31 Martin Liska - - PR gcov-profile/85370 - * coverage.c (coverage_begin_function): Do not mark target - clones as artificial functions. - -2018-07-31 Martin Liska - - PR gcov-profile/83813 - PR gcov-profile/84758 - PR gcov-profile/85217 - PR gcov-profile/85332 - * profile.c (branch_prob): Do not record GOTO expressions - for GIMPLE statements which locations are already streamed. - -2018-07-31 Olivier Hainque - - * gcc.c (handle_spec_function): Accept a soft_matched_part - argument, as do_spec_1. Pass it down to ... - (eval_spec_function): Accept a soft_matched_part argument, - and pass it down to ... - (do_spec_2): Accept a soft_matched_part argument, and pass - it down to do_spec_1. - (do_spec_1): Pass soft_matched_part to handle_spec_function. - (handle_braces): Update call to handle_spec_function. - (driver::set_up_specs): Update calls to do_spec_2. - (compare_debug_dump_opt_spec_function): Likewise. - (compare_debug_self_opt_spec_function): Likewise. - -2018-07-31 Olivier Hainque - - * common.opt (nolibc): New option. - * doc/invoke.texi (Link Options): Document it. - * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): Honor nolibc. - * config/alpha/linux.h: Likewise. - * config/arc/elf.h: Likewise. - * config/arm/uclinux-elf.h: Likewise. - * config/arm/unknown-elf.h: Likewise. - * config/avr/avrlibc.h: Likewise. - * config/bfin/bfin.h: Likewise. - * config/bfin/linux.h: Likewise. - * config/bfin/uclinux.h: Likewise. - * config/darwin.h: Likewise. - * config/darwin10.h: Likewise. - * config/darwin12.h: Likewise. - * config/gnu-user.h: Likewise. - * config/lm32/uclinux-elf.h: Likewise. - * config/pa/pa-hpux11.h: Likewise. - * config/pa/pa64-hpux.h: Likewise. - * config/sparc/sparc.h: Likewise. - -2018-07-31 Olivier Hainque - - * gcc.c (getenv_spec_function): Prepend '/' to value for allowed - undefined variables. - -2018-07-30 Segher Boessenkool - - PR target/86640 - * config/arm/arm.c (arm_block_set_aligned_vect): Use gen_int_mode - instead of GEN_INT. - -2018-07-30 Bernd Edlinger - - * tree-ssa-forwprop.c (simplify_builtin_call): Don't create a not NUL - terminated string literal. - -2018-07-30 Segher Boessenkool - - PR rtl-optimization/85160 - * combine.c (is_just_move): New function. - (try_combine): Allow combining two instructions into two if neither of - the original instructions was a move. - -2018-07-30 Alexander Monakov - - PR target/86673 - * doc/extend.texi (Global Register Variables): Discourage use of type - qualifiers. - (Local Register Variables): Likewise. - -2018-07-30 Richard Sandiford - - PR tree-optimization/86506 - * hwint.h (ceil_log2): Resync with hwint.c implementation. - -2018-07-30 Ilya Leoshkevich - - PR target/86547 - * lra-constraints.c (spill_hard_reg_in_range): When selecting the - hard_regno, make sure no insn between `from` and `to` clobbers it. - -2018-07-30 Cesar Philippidis - Tom de Vries - - * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): Rename to ... - (PTX_DEFAULT_RUNTIME_DIM): ... this. - (nvptx_goacc_validate_dims): Set default worker and gang dims to - PTX_DEFAULT_RUNTIME_DIM. - (nvptx_dim_limit): Ignore GOMP_DIM_WORKER. - -2018-07-29 John David Anglin - - * config/pa/pa.c (pa_output_addr_vec): Align address table. - * config/pa/pa.h (JUMP_TABLES_IN_TEXT_SECTION): Revise comment. - * config/pa/pa32-linux.h (JUMP_TABLES_IN_TEXT_SECTION): Define. - -2018-07-27 Michael Meissner - - * config/rs6000/constraints.md (wG constraint): Delete, no longer - used. - * config/rs6000/predicates.md (p9_fusion_reg_operand): Rename - predicate to reflect toc fusion has been deleted. - (toc_fusion_mem_raw): Delete, no longer used. - (toc_fusion_mem_wrapped): Likewise. - * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete toc - fusion mask bit. - * config/rs6000/rs6000-protos.h (fusion_wrap_memory_address): - Delete, no longer used. - * config/rs6000/rs6000.c (struct rs6000_reg_addr): Delete fields - meant to be used for toc fusion. - (rs6000_debug_print_mode): Delete toc fusion debugging. - (rs6000_debug_reg_global): Likewise. - (rs6000_init_hard_regno_mode_ok): Delete setting up fields for toc - fusion and secondary reload support that were never used. - (rs6000_option_override_internal): Delete TOC fusion, that was only - partially defined, and it did not work unless you also used the - -mcmodel= switch. - (rs6000_legitimate_address_p): Delete TOC fusion support. - (rs6000_opt_masks): Likewise. - (fusion_wrap_memory_address): Delete function, no longer used. - (fusion_split_address); Delete TOC fusion support. - * config/rs6000/rs6000.h (TARGET_TOC_FUSION_INT): Delete, no - longer used with toc fusion being deleted. - (TARGET_TOC_FUSION_FP): Likewise. - * config/rs6000/rs6000.md (UNSPEC_FUSION_ADDIS): Delete TOC fusion - UNSPEC. - (toc fusion spliter): Delete TOC fusion support. - (toc_fusionload_): Likewise. - (toc_fusionload_di): Likewise. - (fusion_gpr_load_): Delete generator function, this insn no - longer needs to be named. Rename predicate to delete TOC fusion. - (fusion_gpr___load): Likewise. - (fusion_gpr___store): Likewise. - (fusion_vsx___load): Likewise. - (fusion_vsx___store): Likewise. - (p9 fusion peephole2s): Rename predicate to delete TOC fusion. - -2018-07-27 Kelvin Nilsen - - * doc/extend.texi (Basic PowerPC Built-in Functions Available on - ISA 2.05): Replace __uint128_t with __uint128 and __int128_t with - __int128 in built-in function prototypes. - (PowerPC AltiVec Built-in Functions on ISA 2.07): Likewise. - (PowerPC AltiVec Built-in Functions on ISA 3.0): Likewise. - -2018-07-27 Martin Sebor - - PR tree-optimization/86696 - * tree-ssa-strlen.c (get_min_string_length): Handle all integer - types, including enums. - (handle_char_store): Be prepared for the above function to fail. - -2018-07-26 Qing Zhao - - * builtins.c (inline_expand_builtin_string_cmp): Disable inlining - when optimization level is lower than 2 or optimize for size. - -2018-07-26 Martin Sebor - - PR tree-optimization/86043 - PR tree-optimization/86042 - * tree-ssa-strlen.c (handle_builtin_memcpy): Handle strict overlaps. - (get_string_cst_length): Rename... - (get_min_string_length): ...to this. Add argument. - (handle_char_store): Extend to handle multi-character stores by - MEM_REF. - * tree.c (initializer_zerop): Use new argument. Handle MEM_REF. - * tree.h (initializer_zerop): Add argument. - -2018-07-26 Jakub Jelinek - - PR middle-end/86660 - * omp-low.c (scan_sharing_clauses): Don't ignore map clauses for - declare target to variables if they have always,{to,from,tofrom} map - kinds. - -2018-07-26 Martin Liska - - PR lto/86548 - * lto-wrapper.c: Add linker_output as prefix - for ltrans_output_file. - -2018-07-26 Segher Boessenkool - - PR rtl-optimization/85805 - * combine.c (reg_nonzero_bits_for_combine): Only use the last set - value for hard registers if that was written in the same mode. - -2018-07-26 Martin Liska - - PR gcov-profile/86536 - * gcov.c (format_gcov): Use printf format %.*f directly - and do not handle special values. - -2018-07-25 Claudiu Zissulescu - - * common/config/arc/arc-common.c (arc_option_optimization_table): - Update default optimizations for size. - -2018-07-25 Claudiu Zissulescu - - * config/arc/arc.md (movsf_insn): Add short instruction selection. - * config/arc/constraints.md (CfZ): New constraint. - * config/arc/fpu.md (addssf3_fpu): Use CfZ constraint. - (subsf3_fpu): Likewise. - (cmpsf_fpu): Likewise. - (cmpsf_fpu_uneq): Likewise. - -2018-07-25 Claudiu Zissulescu - - * config/arc/arc.c (compact_memory_operand_p): Check for uncached - accesses as well. - (arc_is_uncached_mem_p): uncached applies to both the variable and - the pointer. - -2018-07-25 Claudiu Zissulescu - - * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add additional - register names. - -2018-07-25 David Malcolm - - * optinfo-emit-json.cc (class optrecord_json_writer): Convert - field "m_scopes" from vec to auto_vec. - -2018-07-25 Martin Liska - - * config/powerpcspe/powerpcspe-protos.h (rs6000_loop_align): Fix - return type. - -2018-07-25 Richard Biener - - PR debug/86654 - * dwarf2out.c (dwarf2out_decl): Do not handle nested functions - special wrt context_die late. - (gen_subprogram_die): Re-use DIEs in local scope. - -2018-07-25 Richard Sandiford - - PR tree-optimization/86644 - * hwint.c (ceil_log2): Fix comment. Return 0 for 0. - -2018-07-25 Martin Liska - - PR middle-end/86645 - * dumpfile.c: And excluded values with TDF_ALL_VALUES. - * dumpfile.h (enum dump_flag): Defince TDF_ALL_VALUES. - -2018-07-25 Martin Liska - - PR sanitizer/79635 - * params.def: Explain ASan abbreviation and provide - a documentation link. - -2018-07-24 Martin Sebor - - PR tree-optimization/86622 - PR tree-optimization/86532 - * builtins.h (string_length): Declare. - * builtins.c (c_strlen): Correct handling of non-constant offsets. - (check_access): Be prepared for non-constant length ranges. - (string_length): Make extern. - * expr.c (string_constant): Only handle the minor non-constant - array index. Use string_constant to compute the length of - a generic string constant. - -2018-07-24 Richard Sandiford - - PR tree-optimization/86618 - * tree-vect-stmts.c (vectorizable_call): Don't take the address - of LOOP_VINFO_MASKS (loop_vinfo) when loop_vinfo is null. - -2018-07-24 David Malcolm - - PR tree-optimization/86636 - * json.cc (json::object::set): Fix comment. Add assertions. - (json::array::append): Move here from json.h. Add comment and an - assertion. - (json::string::string): Likewise. - * json.h (json::array::append): Move to json.cc. - (json::string::string): Likewise. - * optinfo-emit-json.cc - (optrecord_json_writer::impl_location_to_json): Assert that we - aren't attempting to write out UNKNOWN_LOCATION, or an ad-hoc - wrapper around it. Expand the location once, rather than three - times. - (optrecord_json_writer::inlining_chain_to_json): Fix the check for - UNKNOWN_LOCATION, to use LOCATION_LOCUS to look through ad-hoc - wrappers. - (optrecord_json_writer::optinfo_to_json): Likewise, in four - places. Fix some overlong lines. - -2018-07-24 Matthew Malcomson - - * config/aarch64/aarch64-simd.md - (aarch64_w): Split into... - (aarch64_subw): ... This... - (aarch64_addw): ... And this. - (aarch64_w_internal): Split into... - (aarch64_subw_internal): ... This... - (aarch64_addw_internal): ... And this. - (aarch64_w2_internal): Split into... - (aarch64_subw2_internal): ... This... - (aarch64_addw2_internal): ... And this. - -2018-07-24 Jakub Jelinek - - PR middle-end/86627 - * expmed.c (expand_divmod): Punt if d == HOST_WIDE_INT_MIN - and size > HOST_BITS_PER_WIDE_INT. For size > HOST_BITS_PER_WIDE_INT - and abs_d == d, do the power of two handling if profitable. - -2018-07-24 Richard Biener - - * match.pd: Add BIT_FIELD_REF canonicalizations. - -2018-07-23 Bernd Edlinger - - PR c/86617 - * genmatch.c (dt_operand::gen_match_op): Avoid folding volatile values. - -2018-07-23 Bernd Edlinger - - * gimple-fold.c (gimple_fold_builtin_printf): Don't create a not NUL - terminated STRING_CST object. - -2018-07-23 Bernd Edlinger - - hsa-dump.c (dump_hsa_symbol): Avoid out of scope access to buf. - -2018-07-23 Segher Boessenkool - - * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Adjust. - * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Delete. - * config/rs6000/rs6000.c (rs6000_expand_vector_init): Always force - the elements into a register. - (rs6000_split_v4si_init_di_reg): Delete. - (rs6000_split_v4si_init): Delete. - * config/rs6000/vsx.md (unspec): Delete UNSPEC_VSX_VEC_INIT. - (vsx_init_v4si): Rewrite as a define_expand. - -2018-07-23 Segher Boessenkool - - * config/rs6000/rs6000.md (splitters for rldimi and rlwimi with the - zero_extend argument from memory): New. - -2018-07-22 Martin Sebor - - PR bootstrap/86621 - * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Avoid - diagnosing calls with unknown arguments unless -Walloca-larger-than - is restricted to less than PTRDIFF_MAX bytes. - -2018-07-22 Gerald Pfeifer - - * doc/gcov.texi (Invoking Gcov): Editorial changes. - -2018-07-20 David Malcolm - - * pretty-print.c (text_info::set_location): Remove redundant - "line_table" parameter from call to rich_location::set_range. - -2018-07-20 Martin Sebor - - PR middle-end/82063 - * builtins.c (expand_builtin_alloca): Adjust. - * calls.c (alloc_max_size): Simplify. - * cgraphunit.c (cgraph_node::expand): Adjust. - * common.opt (larger_than_size, warn_frame_larger_than): Remove - variables. - (frame_larger_than_size): Same. - (-Wframe-larger-than, -Wlarger-than, -Wstack-usage): Change options - to take a HOST_WIDE_INT argument and accept a byte-size suffix. - Initialize. - * doc/invoke.texi (GCC Command Options): Document option arguments. - Explain byte-size arguments and suffixes. - (-Wvla-larger-than, -Wno-alloc-size-larger-than): Update. - (-Wno-alloca-larger-than, -Wno-vla-larger-than): Same. - (-Wframe-larger-than, -Wlarger-than, -Wstack-usage): Same. - * doc/options.texi (UInteger): Expand. - (Host_Wide_Int, ByteSize): Document new properties. - * final.c (final_start_function_1): Include sizes in an error message. - * function.c (frame_offset_overflow): Same. - * gimple-ssa-warn-alloca.c (pass_walloca::gate): Adjust. - (alloca_call_type_by_arg): Change function argument to HOST_WIDE_INT. - Diagnose unbounded alloca calls only for limits of less than - PTRDIFF_MAX. - (alloca_call_type): Adjust. Diagnose possibly out-of-bounds alloca - calls and VLA size only for limits of less than PTRDIFF_MAX. Same - for alloca(0). - (pass_walloca::execute): Adjust. Diagnose alloca calls in loops - only for limits of less than PTRDIFF_MAX. - * langhooks-def.h (lhd_handle_option): Change function argument - to HOST_WIDE_INT. - * langhooks.c (lhd_handle_option): Same. - * langhooks.h (handle_option): Same. - * opt-functions.awk (switch_bit_fields): Handle Host_Wide_Int and - ByteSize flags. - (var_type, var_type_struct): Same. - (var_set): Handle ByteSize flag. - * optc-gen.awk: Add comments to output to ease debugging. Make - use of HOST_WIDE_INT where appropriate. - * opts-gen-save.awk: Use %lx to format unsigned long. - * opth-gen.awk: Change function argument to HOST_WIDE_INT. - * opts-common.c (integral_argument): Return HOST_WIDE_INT and add - arguments. Parse bytes-size suffixes. - (enum_arg_to_value): Change function argument to HOST_WIDE_INT. - (enum_value_to_arg): Same. - (decode_cmdline_option): Handle cl_host_wide_int. Adjust. - (handle_option): Adjust. - (generate_option): Change function argument to HOST_WIDE_INT. - (cmdline_handle_error): Adjust. - (read_cmdline_option): Change function argument to HOST_WIDE_INT. - (set_option): Change function argument to HOST_WIDE_INT. - (option_enabled): Handle cl_host_wide_int. - (get_option_state): Handle CLVC_SIZE. - (control_warning_option): Same. - * opts.c (common_handle_option): Change function argument to - HOST_WIDE_INT. Remove handling of OPT_Walloca_larger_than_ and - OPT_Wvla_larger_than_. - * opts.h (enum cl_var_type): Add an enumerator. - * stor-layout.c (layout_decl): Print a more meaningful warning. - * toplev.c (output_stack_usage): Adjust. - -2018-07-20 Qing Zhao - - * builtins.c (expand_builtin_memcmp): Delete the last parameter for - call to inline_expand_builtin_string_cmp. - (expand_builtin_strcmp): Likewise. - (expand_builtin_strncmp): Likewise. - (inline_string_cmp): Delete the last parameter, change char_type_node - to unsigned_char_type_node for strcmp/strncmp, add conversions to the - two operands. - (inline_expand_builtin_string_cmp): Delete the last parameter, give up - the inlining expansion on target where the type of the call has same or - narrower precision than unsigned char. - -2018-07-20 David Malcolm - - * Makefile.in (OBJS): Add json.o and optinfo-emit-json.o. - (CFLAGS-optinfo-emit-json.o): Define TARGET_NAME. - * common.opt (fsave-optimization-record): New option. - * coretypes.h (struct kv_pair): Move here from dumpfile.c. - * doc/invoke.texi (-fsave-optimization-record): New option. - * dumpfile.c: Include "optinfo-emit-json.h". - (struct kv_pair): Move to coretypes.h. - (optgroup_options): Make non-static. - (dump_context::end_scope): Call - optimization_records_maybe_pop_dump_scope. - * dumpfile.h (optgroup_options): New decl. - * json.cc: New file. - * json.h: New file. - * optinfo-emit-json.cc: New file. - * optinfo-emit-json.h: New file. - * optinfo.cc: Include "optinfo-emit-json.h". - (optinfo::emit): Call optimization_records_maybe_record_optinfo. - (optinfo_enabled_p): Check optimization_records_enabled_p. - (optinfo_wants_inlining_info_p): Likewise. - * optinfo.h: Update comment. - * profile-count.c (profile_quality_as_string): New function. - * profile-count.h (profile_quality_as_string): New decl. - (profile_count::quality): New accessor. - * selftest-run-tests.c (selftest::run_tests): Call json_cc_tests - and optinfo_emit_json_cc_tests. - * selftest.h (selftest::json_cc_tests): New decl. - (selftest::optinfo_emit_json_cc_tests): New decl. - * toplev.c: Include "optinfo-emit-json.h". - (compile_file): Call optimization_records_finish. - (do_compile): Call optimization_records_start. - * tree-ssa-live.c: Include optinfo.h. - (remove_unused_scope_block_p): Retain inlining information if - optinfo_wants_inlining_info_p returns true. - -2018-07-20 Richard Biener - - PR debug/86585 - * dwarf2out.c (dwarf2out_die_ref_for_decl): Test in_lto_p - to cover -flto-partition=none. - -2018-07-20 Martin Liska - - * tree.h (DECL_LOCATION_RANGE): Remove unused macro. - (get_decl_source_range): Remove unused function. - -2018-07-20 Richard Biener - - * tree-ssa-sccvn.h (struct vn_nary_op_s): Add next member. - (struct vn_phi_s): Likewise. - (struct vn_reference_s): Likewise. - * tree-ssa-sccvn.c (vn_nary_op_hasher::equal): Add shortcut - for searching the slot of an entry known to be in the hash itself. - (vn_phi_hasher::equal): Likewise. - (vn_reference_hasher::equal): Likewise. - (last_inserted_ref, last_inserted_phi, last_inserted_nary): New - globals. - (optimistic_info, current_info): Remove, keeping only valid_info. - (vn_reference_lookup_1): Remove fallback lookup. - (vn_reference_lookup_2): Likewise. - (vn_nary_op_lookup_1): Likewise. - (vn_phi_lookup): Likewise. - (vn_nary_build_or_lookup_1): Make sure to not chain the built - hash element. - (vn_reference_insert): Adjust, chain the inserted hash element - at last_inserted_ref. - (vn_reference_insert_pieces): Likewise. - (visit_reference_op_call): Likewise. - (vn_nary_op_insert_into): Chain the inserted hash element at - last_inserted_nary. - (vn_nary_op_insert_pieces): Adjust. - (vn_nary_op_insert): Likewise. - (vn_nary_op_insert_stmt): Likewise. - (vn_phi_insert): Adjust, chain the inserted hash element at - last_inserted_phi. - (process_scc): Remove clearing and copying the optimistic - table. Instead remove elements inserted during an optimistic - iteration from the single table we maintain. - (init_scc_vn): Adjust. - (free_scc_vn): Likewise. - (sccvn_dom_walker::record_cond): Likewise. - (sccvn_dom_walker::after_dom_children): Likewise. - -2018-07-19 Martin Sebor - - PR tree-optimization/84047 - PR tree-optimization/83776 - * tree-vrp.c (vrp_prop::check_mem_ref): New function. - (check_array_bounds): Call it. - -2018-07-19 Martin Sebor - - * align.h (align_flags): Use member initialization. - -2018-07-19 David Malcolm - - * Makefile.in (OBJS): Add optinfo.o. - * coretypes.h (class symtab_node): New forward decl. - (struct cgraph_node): New forward decl. - (class varpool_node): New forward decl. - * dump-context.h: New file. - * dumpfile.c: Include "optinfo.h", "dump-context.h", "cgraph.h", - "tree-pass.h". - (refresh_dumps_are_enabled): Use optinfo_enabled_p. - (set_dump_file): Call dumpfile_ensure_any_optinfo_are_flushed. - (set_alt_dump_file): Likewise. - (dump_context::~dump_context): New dtor. - (dump_gimple_stmt): Move implementation to... - (dump_context::dump_gimple_stmt): ...this new member function. - Add the stmt to any pending optinfo, creating one if need be. - (dump_gimple_stmt_loc): Move implementation to... - (dump_context::dump_gimple_stmt_loc): ...this new member function. - Start a new optinfo and add the stmt to it. - (dump_gimple_expr): Move implementation to... - (dump_context::dump_gimple_expr): ...this new member function. - Add the stmt to any pending optinfo, creating one if need be. - (dump_gimple_expr_loc): Move implementation to... - (dump_context::dump_gimple_expr_loc): ...this new member function. - Start a new optinfo and add the stmt to it. - (dump_generic_expr): Move implementation to... - (dump_context::dump_generic_expr): ...this new member function. - Add the tree to any pending optinfo, creating one if need be. - (dump_generic_expr_loc): Move implementation to... - (dump_context::dump_generic_expr_loc): ...this new member - function. Add the tree to any pending optinfo, creating one if - need be. - (dump_printf): Move implementation to... - (dump_context::dump_printf_va): ...this new member function. Add - the text to any pending optinfo, creating one if need be. - (dump_printf_loc): Move implementation to... - (dump_context::dump_printf_loc_va): ...this new member function. - Start a new optinfo and add the stmt to it. - (dump_dec): Move implementation to... - (dump_context::dump_dec): ...this new member function. Add the - value to any pending optinfo, creating one if need be. - (dump_context::dump_symtab_node): New member function. - (dump_context::get_scope_depth): New member function. - (dump_context::begin_scope): New member function. - (dump_context::end_scope): New member function. - (dump_context::ensure_pending_optinfo): New member function. - (dump_context::begin_next_optinfo): New member function. - (dump_context::end_any_optinfo): New member function. - (dump_context::s_current): New global. - (dump_context::s_default): New global. - (dump_scope_depth): Delete global. - (dumpfile_ensure_any_optinfo_are_flushed): New function. - (dump_symtab_node): New function. - (get_dump_scope_depth): Reimplement in terms of dump_context. - (dump_begin_scope): Likewise. - (dump_end_scope): Likewise. - (selftest::temp_dump_context::temp_dump_context): New ctor. - (selftest::temp_dump_context::~temp_dump_context): New dtor. - (selftest::verify_item): New function. - (ASSERT_IS_TEXT): New macro. - (ASSERT_IS_TREE): New macro. - (ASSERT_IS_GIMPLE): New macro. - (selftest::test_capture_of_dump_calls): New test. - (selftest::dumpfile_c_tests): Call it. - * dumpfile.h (dump_printf, dump_printf_loc, dump_basic_block) - (dump_generic_expr_loc, dump_generic_expr, dump_gimple_stmt_loc) - (dump_gimple_stmt, dump_dec): Gather these related decls and add a - descriptive comment. - (dump_function, print_combine_total_stats, enable_rtl_dump_file) - (dump_node, dump_bb): Move these unrelated decls. - (class dump_manager): Add leading comment. - * optinfo.cc: New file. - * optinfo.h: New file. - -2018-07-19 Michael Collison - Richard Henderson - - * config/aarch64/aarch64.md (subv4, usubv4): New patterns. - (subti): Handle op1 zero. - (subvti4, usub4ti4): New. - (*sub3_compare1_imm): New. - (sub3_carryinCV): New. - (*sub3_carryinCV_z1_z2, *sub3_carryinCV_z1): New. - (*sub3_carryinCV_z2, *sub3_carryinCV): New. - -2018-07-19 Michael Collison - Richard Henderson - - * config/aarch64/aarch64.md: (addv4, uaddv4): New. - (addti3): Create simpler code if low part is already known to be 0. - (addvti4, uaddvti4): New. - (*add3_compareC_cconly_imm): New. - (*add3_compareC_cconly): New. - (*add3_compareC_imm): New. - (*add3_compareC): Rename from add3_compare1; do not - handle constants within this pattern.. - (*add3_compareV_cconly_imm): New. - (*add3_compareV_cconly): New. - (*add3_compareV_imm): New. - (add3_compareV): New. - (add3_carryinC, add3_carryinV): New. - (*add3_carryinC_zero, *add3_carryinV_zero): New. - (*add3_carryinC, *add3_carryinV): New. - ((*add3_compareC_cconly_imm): Replace 'ne' operator - with 'comparison' operator. - (*add3_compareV_cconly_imm): Ditto. - (*add3_compareV_cconly): Ditto. - (*add3_compareV_imm): Ditto. - (add3_compareV): Ditto. - (add3_carryinC): Ditto. - (*add3_carryinC_zero): Ditto. - (*add3_carryinC): Ditto. - (add3_carryinV): Ditto. - (*add3_carryinV_zero): Ditto. - (*add3_carryinV): Ditto. - -2018-07-19 Michael Collison - Richard Henderson - - * config/aarch64/aarch64-modes.def (CC_V): New. - * config/aarch64/aarch64-protos.h - (aarch64_addti_scratch_regs): Declare - (aarch64_subvti_scratch_regs): Declare. - (aarch64_expand_subvti): Declare. - (aarch64_gen_unlikely_cbranch): Declare - * config/aarch64/aarch64.c (aarch64_select_cc_mode): Test - for signed overflow using CC_Vmode. - (aarch64_get_condition_code_1): Handle CC_Vmode. - (aarch64_gen_unlikely_cbranch): New function. - (aarch64_addti_scratch_regs): New function. - (aarch64_subvti_scratch_regs): New function. - (aarch64_expand_subvti): New function. - -2018-07-19 Andre Vieira - - * config/aarch64/aarch64-option-extensions.def: New entry for profile - extension. - * config/aarch64/aarch64.h (AARCH64_FL_PROFILE): New. - * doc/invoke.texi (aarch64-feature-modifiers): New entry for profile - extension. - -2018-07-19 Andre Vieira - - PR target/83009 - * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make - address check not strict. - -2018-07-19 Andre Vieira - - * config/aarch64/aarch64-simd.md (aarch64_simd_mov): Replace - Umq with Umn. - (store_pair_lanes): Likewise. - * config/aarch64/aarch64-protos.h (aarch64_addr_query_type): Add new - enum value 'ADDR_QUERY_LDP_STP_N'. - * config/aarch64/aarch64.c (aarch64_addr_query_type): Likewise. - (aarch64_print_address_internal): Add declaration. - (aarch64_print_ldpstp_address): Remove. - (aarch64_classify_address): Adapt mode for 'ADDR_QUERY_LDP_STP_N'. - (aarch64_print_operand): Change printing of 'y'. - * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Use - new enum value 'ADDR_QUERY_LDP_STP_N', don't hardcode mode and use - 'true' rather than '1'. - * config/aarch64/constraints.md (Uml): Likewise. - (Uml): Rename to Umn. - (Umq): Remove. - -2018-07-19 Richard Biener - - * tree-ssa-sccvn.h (struct vn_phi_s): Make phiargs member - a trailing array. - * tree-ssa-sccvn.c: Remove alloc-pool.h use. - (vn_phi_hasher): Derive from nofree_ptr_hash and remove remove method. - (vn_reference_hasher): Likewise. - (struct vn_tables_s): Remove obstack and alloc-pool members. - (vn_tables_obstack, vn_tables_insert_obstack): New global obstacks. - (vn_nary_build_or_lookup_1): Manually build in vn_tables_insert_obstack. - (vn_reference_insert): Allocate from obstack instead of from alloc-pool. - (vn_reference_insert_pieces): Likewise. - (alloc_vn_nary_op_noinit): Adjust. - (vn_nary_op_insert_stmt): Allocate phiargs in-place. - (vn_phi_eq): Adjust. - (shared_lookup_phiargs): Remove. - (vn_phi_lookup): Allocate temporary vn_phi_s on the stack. - (vn_phi_insert): Allocate from obstack instead of from alloc-pool. - (visit_reference_op_call): Likewise. - (copy_nary, copy_phi, copy_reference): Remove. - (process_scc): Rewind the obstack when iterating. Do not - copy the elements to valid_info but just move them from one - hashtable to the other. - (allocate_vn_table): Adjust. - (free_vn_table): Likewise. - (init_scc_vn): Likewise. - (free_scc_vn): Likewise. - -2018-07-19 H.J. Lu - - PR target/86560 - * config/i386/i386.c (rest_of_insert_endbranch): Lookup - indirect_return as function type attribute. - (ix86_attribute_table): Change indirect_return to function - type attribute. - * doc/extend.texi: Update indirect_return attribute. - -2018-07-19 Aldy Hernandez - - * wide-int.h (widest2_int): New. - * gimple-fold.c (arith_overflowed_p): Use it. - * tree.h (widest2_int_cst): New. - * tree-vrp.c (wide_int_binop_overflow): Rename from - vrp_int_const_binop. - Rewrite to work on trees. - (extract_range_from_multiplicative_op_1): Abstract code to... - (wide_int_range_min_max): ...here. - (wide_int_range_cross_product): ...and here. - (extract_range_from_binary_expr_1): Abstract overflow code to... - (wide_int_range_mult_wrapping): ...here. - * tree-vrp.h (wide_int_range_cross_product): New. - (wide_int_range_mult_wrapping): New. - -2018-07-19 Andrew Senkevich - Julia Koval - - * config/i386/x86-tune-costs.h (skylake_memcpy, - skylake_memset): Replace rep_prefix with unrolling for size 512. - -2018-07-18 Kugan Vivekanandarajah - - PR middle-end/86544 - * tree-ssa-phiopt.c (cond_removal_in_popcount_pattern): Handle - comparision with EQ_EXPR in last stmt. - -2018-07-18 Kelvin Nilsen - - * doc/extend.texi (PowerPC AltiVec Built-in Functions): Rename - this subsection to "PowerPC AltiVec/VSX Built-in Functions". - (PowerPC AltiVec/VSX Built-in Functions): New name for subsection - previously known as "PowerPC AltiVec Built-in Functions". Move - some material to new subsubsections "PowerPC AltiVec Built-in - Functions on ISA 2.06" and "PowerPC AltiVec Built-in Functions on - ISA 2.07". - (PowerPC Altivec Built-in Functions on ISA 2.05): New subsubsection. - (PowerPC Altivec Built-in Functions on ISA 2.06): Likewise. - (PowerPC Altivec Built-in Functions on ISA 2.07): Likewise. - (PowerPC Altivec Built-in Functions on ISA 3.0): Likewise. - -2018-07-18 Richard Biener - - PR tree-optimization/86557 - * tree-vect-patterns.c (vect_recog_divmod_pattern): Also handle - EXACT_DIV_EXPR. - -2018-07-18 Ilya Leoshkevich - - * config/s390/s390.c (s390_function_profiler): Generate CFI. - -2018-07-17 Jeff Law - - * config/arm/arm.c (get_label_padding): Update for recent - changes to label_to_alignment. - - PR tree-optimization/86010 - * tree-ssa-dse.c (compute_trims): Fix typo/thinko. - - * config/mips/mips.c (vr4130_align_insns): Update for recent - changes to label_to_alignment. - - * config/frv/frv.c (frv_label_align): Update for recent changes - to label_to_alignment. - - * config/nios2/nios2.c (nios2_label_align): Update for recent - changes which dropped ALIGN_LABELS_LOG. - -2018-07-17 Andreas Schwab - - * config/m68k/m68k.md (umulsi3_highpart+1, const_umulsi3_highpart) - (smulsi3_highpart+1, const_smulsi3_highpart): Add CC_STATUS_INIT. - -2018-07-17 Claudiu Zissulescu - - * config/arc/arc.c (arc_label_align): Use align_labels instead of - deprecated align_labels_log. - -2018-07-17 Richard Biener - - PR lto/86456 - * dwarf2out.c (init_sections_and_labels): Always generate - a debug_line_str_section for early LTO debug. - (dwarf2out_finish): Reset debug_line_str_hash output early. - Bump counter for extra dwarf5 .debug_loc labels to not conflict - with fat LTO part. - (dwarf2out_early_finish): Output debug_line_str. - -2018-07-17 Robin Dapp - - * config/s390/s390.c (preferred_la_operand_p): Do not use LA with - index register on z196 or later. - -2018-07-17 Robin Dapp - - * config/s390/s390.c (s390_default_align): Set default function - alignment to 16. - (s390_override_options_after_change): Call s390_default align. - (s390_option_override_internal): Call s390_default_align. - (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define. - -2018-07-17 Jakub Jelinek - - PR middle-end/86542 - * omp-low.c (create_task_copyfn): Copy over also fields corresponding - to _looptemp_ clauses, other than the first two. - -2018-07-17 Martin Liska - - * opts.c: Do not enable OPT_falign_* for -Os. - -2018-07-17 Martin Liska - - * align.h (MAX_CODE_ALIGN): New. - (MAX_CODE_ALIGN_VALUE): New. - * common/config/i386/i386-common.c (ix86_handle_option): - (MAX_CODE_ALIGN): Moved to align.h. - * final.c (MAX_CODE_ALIGN): Likewise. - * opts.c (parse_and_check_align_values): - (MAX_CODE_ALIGN): Likewise. - (MAX_CODE_ALIGN_VALUE): Likewise. - -2018-07-17 Martin Liska - - * config/i386/att.h (ASM_OUTPUT_ALIGN): Fix spacing - in order to fulfil coding style. - * config/i386/cygming.h (ASM_OUTPUT_ALIGN): Likewise. - * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. - * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. - * config/iq2000/iq2000.h (ASM_OUTPUT_ALIGN): Likewise. - * config/pa/pa.h (ASM_OUTPUT_ALIGN): Likewise. - * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): Likewise. - * config/sparc/sparc.h (ASM_OUTPUT_ALIGN): Likewise. - * config/visium/visium.h (ASM_OUTPUT_ALIGN): Likewise. - (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. - -2018-07-17 Martin Liska - - * align.h: New file. - * config/alpha/alpha.c (alpha_align_insns_1): Use align_functions - directly. - * config/i386/i386.c (ix86_avoid_jump_mispredicts): Use new return type - align_flags of label_to_alignment. - * config/m32r/m32r.h (LOOP_ALIGN): Wrap returned values into - align_flags class. - * config/m68k/m68k.c: Do not use removed align_labels_value and - align_loops_value. - * config/nds32/nds32.h (JUMP_ALIGN): Wrap result into align_flags class. - (LOOP_ALIGN): Likewise. - (LABEL_ALIGN): Likewise. - * config/powerpcspe/powerpcspe.c (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): - Remove not used macro. - (rs6000_loop_align): Change return type to align_flags. - (rs6000_loop_align_max_skip): Remove. - * config/rs6000/rs6000-protos.h (rs6000_loop_align): - Change return type to align_flags. - * config/rs6000/rs6000.c (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): - Remove not used macro. - (rs6000_loop_align): Change return type to align_flags. - (rs6000_loop_align_max_skip): Remove. - * config/rx/rx.h (JUMP_ALIGN): Wrap integer values - * config/rx/rx-protos.h (rx_align_for_label): Make it - static function. - * config/rx/rx.c (rx_align_for_label): Change return type - to align_flags. - (rx_max_skip_for_label): Remove TARGET_ASM_*_ALIGN_MAX_SKIP - macro definitions. - into align_flags class. - (LABEL_ALIGN): Likewise. - (LOOP_ALIGN): Likewise. - * config/s390/s390.c (s390_label_align): Use align_flags - class member. - (s390_asm_output_function_label): Likewise. - * config/sh/sh.c (sh_override_options_after_change): - Use align_flags class directly without macros. - (find_barrier): Likewise. - (barrier_align): Likewise. - (sh_loop_align): Likewise. - * config/spu/spu.c (spu_option_override): - Use align_flags_tuple::get_value instead of removed macros. - (spu_sched_init): Likewise. - * config/spu/spu.h (GTY): Likewise. - * config/visium/visium.c (visium_option_override): - Set "8" as default secondary alignment. - * config/visium/visium.h (SUBALIGN_LOG): Define to 3 - in order to guarantee secondary alignment of 8. - * coretypes.h: Include align.h header file. - * doc/tm.texi: Remove TARGET_ASM_JUMP_ALIGN_MAX_SKIP, - TARGET_ASM_LOOP_ALIGN_MAX_SKIP, TARGET_ASM_LABEL_ALIGN_MAX_SKIP - and TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP macros. - * doc/tm.texi.in: Likewise. - * final.c (struct label_alignment): Remove not used structure. - (LABEL_ALIGN): Change type to align_flags. - (LOOP_ALIGN): Likewise. - (JUMP_ALIGN): Likewise. - (default_loop_align_max_skip): Remove. - (default_label_align_max_skip): Likewise. - (default_jump_align_max_skip): Likewise. - (default_label_align_after_barrier_max_skip): - (LABEL_TO_ALIGNMENT): Change to access label_align vector. - (LABEL_TO_MAX_SKIP): Remove. - (label_to_alignment): Return align_flags type instead of integer. - (label_to_max_skip): Remove. - (align_fuzz): Use align_flags type. - (compute_alignments): Use align_flags type and use align_flags::max - to combine multiple alignments. - (grow_label_align): Grow vec instead of C array. - (update_alignments): Assign just LABEL_TO_ALIGNMENT. - (shorten_branches): Use align_flags type and use align_flags::max - to combine multiple alignments. - (final_scan_insn_1): Remove usage of secondary alignment that comes - from label alignment, but instead use proper secondary alignment - which is computed in grow_label_align. - * flags.h (struct align_flags_tuple): Move to align.h. - (struct align_flags): Likewise. - (state_align_loops): Rename to align_loops. - (state_align_jumps): Rename to align_jumps. - (state_align_labels): Rename to align_labels. - (state_align_functions): Rename to align_functions. - (align_loops_log): Remove. - (align_jumps_log): Remove. - (align_labels_log): Remove. - (align_functions_log): Remove. - (align_loops_max_skip): Remove. - (align_jumps_max_skip): Remove. - (align_labels_max_skip): Remove. - (align_functions_max_skip): Remove. - (align_loops_value): Remove. - (align_jumps_value): Remove. - (align_labels_value): Remove. - (align_functions_value): Remove. - * output.h (label_to_alignment): Change return type to align_flags. - (label_to_max_skip): Remove. - * target.def: Remove loop_align_max_skip, label_align_max_skip, - jump_align_max_skip macros. - * targhooks.h (default_loop_align_max_skip): Remove. - (default_label_align_max_skip): Likewise. - (default_jump_align_max_skip): Likewise. - (default_label_align_after_barrier_max_skip): Remove. - * toplev.c (read_log_maxskip): Use ::normalize function. - (parse_N_M): Remove not used argument and also call ::normalize. - (parse_alignment_opts): Do not pass unused arguments. - * varasm.c (assemble_start_function): Use directly align_functions - instead of removed macros. - * system.h: Do not poison removed macros. - -2018-07-17 Jakub Jelinek - - PR middle-end/86539 - * gimplify.c (gimplify_omp_for): Ensure taskloop firstprivatized init - and cond temporaries don't have reference type if iterator has - pointer type. For init use &for_pre_body instead of pre_p if - for_pre_body is non-empty. - -2018-07-16 Segher Boessenkool - - * config/rs6000/rs6000.md (truncsf2): Expand truncates of - double-double modes to SFmode directly directly. - (truncsf2_fprs): Delete. - -2018-07-16 Segher Boessenkool - - * config/rs6000/rs6000.c (init_float128_ibm): Use the correct names - for conversions between IFmode and the decimal floating point modes. - (init_float128_ieee): Use the correct names for conversions between - KFmode and the decimal floating point modes. - -2018-07-16 Segher Boessenkool - - * config/rs6000/rs6000.c (init_float128_ibm): Use more correct names - for the conversions between TDmode and IFmode. - (init_float128_ieee): Use more correct names for the conversions - between TDmode and KFmode. - -2018-07-16 Jakub Jelinek - - PR tree-optimization/86526 - * builtins.c (expand_builtin_memcmp): Formatting fixes. - (inline_expand_builtin_string_cmp): Likewise. - (inline_string_cmp): Likewise. Use c_readstr instead of - builtin_memcpy_read_str. Add unit_mode temporary. - -2018-07-16 Bernd Edlinger - - PR middle-end/86528 - * builtins.c (check_access): Bail out if range[0] is no INTEGER_CST. - * expr.c (string_constant): Fix the element size of ARRAY_TYPE. - -2018-07-16 Kelvin Nilsen - - * doc/extend.texi (PowerPC AltiVec Built-in Functions): - Alphabetize prototypes of built-in functions, separating out - built-in functions that are listed in this section but should be - described elsewhere. - -2018-07-16 Uros Bizjak - - PR target/86511 - * expmed.c (emit_store_flag): Do not emit setcc followed by a - conditional move when trapping comparison was split to a - non-trapping one (and vice versa). - -2018-07-16 Ilya Leoshkevich - - * config/s390/s390.c (s390_function_profiler): Generate nops - instead of profiler call sequences. - * config/s390/s390.opt: Add the new option. - -2018-07-16 Ilya Leoshkevich - - * config/s390/s390.c (s390_function_profiler): Generate - __mcount_loc section. - * config/s390/s390.opt: Add the new option. - -2018-07-16 Ilya Leoshkevich - - * common.opt: Add the new warning. - * config/s390/s390.c (s390_function_profiler): Emit "brasl - %r0,__fentry__" when -mfentry is specified. - (s390_option_override_internal): Disallow -mfentry for 31-bit - CPUs. - * config/s390/s390.opt: Add the new option. - -2018-07-16 Richard Biener - - PR lto/86523 - * dwarf2out.c (dwarf2out_register_external_die): Assign DIE parents - for function-local FUNCTION_DECL and RESULT_DECL immediately. - -2018-07-16 Martin Liska - - PR ipa/86529 - * ipa-pure-const.c (malloc_candidate_p): Revert ::get - to ::get_create. - -2017-07-16 Claudiu Zissulescu - - * config/arc/arcHS.md: Update ARCHS scheduling rules. - -2017-07-16 Claudiu Zissulescu - - * config/arc/arc-arch.h (arc_tune_attr): Add new tune parameters - for ARCHS4x. - * config/arc/arc-cpus.def (hs4x): New cpu. - (hs4xd): Likewise. - * config/arc/arc-tables.opt: Regenerate. - * config/arc/arc.c (arc_sched_issue_rate): New function. - (TARGET_SCHED_ISSUE_RATE): Define. - (TARGET_SCHED_EXPOSED_PIPELINE): Likewise. - * config/arc/arc.md (attr type): Add fpu_fuse, fpu_sdiv, fpu_ddiv, - fpu_cvt. - (attr tune): Add ARCHS4x tune values. - (attr tune_dspmpy): Define. - (*tst): Correct instruction type. - * config/arc/arcHS.md: Don't use this automaton for ARCHS4x cpus. - * config/arc/arcHS4x.md: New file. - * config/arc/fpu.md: Update instruction type attributes. - * config/arc/t-multilib: Regenerate. - -2018-07-16 Tom de Vries - - PR debug/86455 - * var-tracking.c (vt_initialize): Fix pre_dec handling. - -2018-07-16 Ramana Radhakrishnan - - * config/aarch64/atomics.md (aarch64_store_execlusive): Add - early clobber. - -2018-07-16 Eric Botcazou - - PR tree-optimization/86514 - * tree-ssa-reassoc.c (init_range_entry) : Return for a - conversion to a boolean type from a type with greater precision. - -2018-07-16 Tom de Vries - - * var-tracking.c (vt_initialize): Print adjusted insn slim if - dump_flags request TDF_SLIM. - -2018-07-16 Aldy Hernandez - - * fold-const.c (int_const_binop_1): Abstract... - (wide_int_binop): ...wide int code here. - (poly_int_binop): ...poly int code here. - Abstract the rest of int_const_binop_1 into int_const_binop. - * fold-const.h (wide_int_binop): New. - * tree-vrp.c (vrp_int_const_binop): Call wide_int_binop. - Remove useless PLUS/MINUS_EXPR case. - (zero_nonzero_bits_from_vr): Move wide int code... - (zero_nonzero_bits_from_bounds): ...here. - (extract_range_from_binary_expr_1): Move mask optimization code... - (range_easy_mask_min_max): ...here. - * tree-vrp.h (zero_nonzero_bits_from_bounds): New. - (range_easy_mask_min_max): New. - -2018-07-15 Jeff Law - - PR target/85993 - * config/sh/sh.c (output_mi_thunk): Remove dead conditional - block. - -2018-07-14 Jim Wilson - - * config/riscv/linux.h (TARGET_ASM_FILE_END): New. - -2018-07-14 Paul Koning - - * config/pdp11/pdp11.c (pdp11_rtx_costs): Bugfixes. - -2018-07-13 Jan Hubicka - - * lto-streamer-out.c (copy_function_or_variable): Dump info about - copying section. - -2018-07-13 Bill Schmidt - Steve Munroe - - * config/rs6000/emmintrin.h (_mm_and_si128): New function. - (_mm_andnot_si128): Likewise. - (_mm_or_si128): Likewise. - (_mm_xor_si128): Likewise. - -2018-07-13 Qing Zhao - - PR middle-end/78809 - * builtins.c (expand_builtin_memcmp): Inline the calls first - when result_eq is false. - (expand_builtin_strcmp): Inline the calls first. - (expand_builtin_strncmp): Likewise. - (inline_string_cmp): New routine. Expand a string compare - call by using a sequence of char comparison. - (inline_expand_builtin_string_cmp): New routine. Inline expansion - a call to str(n)cmp/memcmp. - * doc/invoke.texi (--param builtin-string-cmp-inline-length): - New option. - * params.def (BUILTIN_STRING_CMP_INLINE_LENGTH): New. - -2018-07-13 Richard Earnshaw - - * config/arm/driver-arm.c: Include arm-native.h. - (host_detect_local_cpu): Use auto-generated data tables. - (vendors, arm_cpu_table): Delete. Move part information to ... - * config/arm/arm-cpus.in: ... here. - * config/arm/parsecpu.awk (gen_native): New function. - (vendor, part): New CPU fields. - (END): Add support for building the native CPU detection tables. - * config/arm/t-arm (arm-native.h): Add build rule. - (driver-arm.o): Add dependency on arm-native.h. - -2018-07-13 Richard Biener - - PR middle-end/85974 - * match.pd (addr1 - addr2): Allow either of the operand to - have a conversion. - -2018-07-13 Tom de Vries - - * tree-inline.c (remap_ssa_name): Save and reuse debug exprs generated - in remap_ssa_name. - -2018-07-13 Jackson Woodruff - - * config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp): Use - arrays instead of numbered variables. - -2018-07-13 Eric Botcazou - - * config/sparc/sparc-protos.h (sparc_compute_frame_size): Delete. - * config/sparc/sparc.c (sparc_compute_frame_size): Make static. - -2018-07-13 Richard Biener - - PR debug/86452 - * dwarf2out.c (gen_type_die_with_usage): Use scope_die_for - instead of get_context_die. - -2018-07-13 Kugan Vivekanandarajah - Richard Biener - - PR middle-end/86489 - * tree-ssa-loop-niter.c (number_of_iterations_popcount): Check - that the loop latch destination where phi is defined. - -2018-07-12 Kito Cheng - - * config/riscv/riscv.c (enum riscv_privilege_levels): Add UNKNOWN_MODE. - (riscv_expand_epilogue): Add assertion to check interrupt mode. - (riscv_set_current_function): Extract getting interrupt type to new - function. - (riscv_get_interrupt_type): New function. - (riscv_merge_decl_attributes): New function, checking interrupt type is - same. - (TARGET_MERGE_DECL_ATTRIBUTES): Define. - -2018-07-12 Paul Koning - - * config/pdp11/pdp11.c (pdp11_output_def): Fix typo in .set - directive. - -2018-07-12 Paul Koning - - * doc/rtl.texi (REG_NONNEG): Remove decrement and branch until - zero reference, add doloop_end instead. - * doc/md.texi (decrement_and_branch_until_zero): Remove. - (Looping patterns): Remove decrement_and_branch_until_zero. Add - detail for doloop_end. - -2018-07-12 Martin Sebor - - PR c/86453 - * attribs.c (decl_attributes): Reject conflicting attributes before - calling attribute handlers. - -2018-07-12 Jan Hubicka - - * dumpfile.c (gcc::dump_manager::get_dump_file_name): Add PART - parameter. - (gcc::dump_manager::get_dump_file_name): likewise. - (dump_begin): Likewise. - * dumpfile.h (dump_begin): Update prototype. - (gcc::dump_manager::get_dump_file_name, - gcc::dump_manager::get_dump_file_name): Update prototype. - -2018-07-12 Richard Sandiford - - * internal-fn.h (vectorizable_internal_fn_p): New function. - * tree-vect-slp.c (compatible_calls_p): Likewise. - (vect_build_slp_tree_1): Remove nops argument. Handle calls - to internal functions. - (vect_build_slp_tree_2): Update call to vect_build_slp_tree_1. - -2018-07-12 Richard Sandiford - - * fold-const.h (inverse_conditions_p): Declare. - * fold-const.c (inverse_conditions_p): New function. - * match.pd: Use inverse_conditions_p. Add folds of view_converts - that test the inverse condition of a conditional internal function. - * internal-fn.h (vectorized_internal_fn_supported_p): Declare. - * internal-fn.c (internal_fn_mask_index): Handle conditional - internal functions. - (vectorized_internal_fn_supported_p): New function. - * tree-if-conv.c: Include internal-fn.h and fold-const.h. - (any_pred_load_store): Replace with... - (need_to_predicate): ...this new variable. - (redundant_ssa_names): New variable. - (ifcvt_can_use_mask_load_store): Move initial checks to... - (ifcvt_can_predicate): ...this new function. Handle tree codes - for which a conditional internal function exists. - (if_convertible_gimple_assign_stmt_p): Use ifcvt_can_predicate - instead of ifcvt_can_use_mask_load_store. Update after variable - name change. - (predicate_load_or_store): New function, split out from - predicate_mem_writes. - (check_redundant_cond_expr): New function. - (value_available_p): Likewise. - (predicate_rhs_code): Likewise. - (predicate_mem_writes): Rename to... - (predicate_statements): ...this. Use predicate_load_or_store - and predicate_rhs_code. - (combine_blocks, tree_if_conversion): Update after above name changes. - (ifcvt_local_dce): Handle redundant_ssa_names. - * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Handle - general conditional functions. - * tree-vect-stmts.c (vectorizable_call): Likewise. - -2018-07-12 Richard Sandiford - Alan Hayward - David Sherwood - - * internal-fn.h (can_interpret_as_conditional_op_p): Declare. - * internal-fn.c (can_interpret_as_conditional_op_p): New function. - * tree-ssa-math-opts.c (convert_mult_to_fma_1): Handle conditional - plus and minus and convert them into IFN_COND_FMA-based sequences. - (convert_mult_to_fma): Handle conditional plus and minus. - -2018-07-12 Richard Sandiford - - * doc/md.texi (cond_fma, cond_fms, cond_fnma, cond_fnms): Document. - * optabs.def (cond_fma_optab, cond_fms_optab, cond_fnma_optab) - (cond_fnms_optab): New optabs. - * internal-fn.def (COND_FMA, COND_FMS, COND_FNMA, COND_FNMS): New - internal functions. - (FMA): Use DEF_INTERNAL_FLT_FN rather than DEF_INTERNAL_FLT_FLOATN_FN. - * internal-fn.h (get_conditional_internal_fn): Declare. - (get_unconditional_internal_fn): Likewise. - * internal-fn.c (cond_ternary_direct): New macro. - (expand_cond_ternary_optab_fn): Likewise. - (direct_cond_ternary_optab_supported_p): Likewise. - (FOR_EACH_COND_FN_PAIR): Likewise. - (get_conditional_internal_fn): New function. - (get_unconditional_internal_fn): Likewise. - * gimple-match.h (gimple_match_op::MAX_NUM_OPS): Bump to 5. - (gimple_match_op::gimple_match_op): Add a new overload for 5 - operands. - (gimple_match_op::set_op): Likewise. - (gimple_resimplify5): Declare. - * genmatch.c (decision_tree::gen): Generate simplifications for - 5 operands. - * gimple-match-head.c (gimple_simplify): Define an overload for - 5 operands. Handle calls with 5 arguments in the top-level overload. - (convert_conditional_op): Handle conversions from unconditional - internal functions to conditional ones. - (gimple_resimplify5): New function. - (build_call_internal): Pass a fifth operand. - (maybe_push_res_to_seq): Likewise. - (try_conditional_simplification): Try converting conditional - internal functions to unconditional internal functions. - Handle 3-operand unconditional forms. - * match.pd (UNCOND_TERNARY, COND_TERNARY): Operator lists. - Define ternary equivalents of the current rules for binary conditional - internal functions. - * config/aarch64/aarch64.c (aarch64_preferred_else_value): Handle - ternary operations. - * config/aarch64/iterators.md (UNSPEC_COND_FMLA, UNSPEC_COND_FMLS) - (UNSPEC_COND_FNMLA, UNSPEC_COND_FNMLS): New unspecs. - (optab): Handle them. - (SVE_COND_FP_TERNARY): New int iterator. - (sve_fmla_op, sve_fmad_op): New int attributes. - * config/aarch64/aarch64-sve.md (cond_) - (*cond__2, *cond__any): New SVE_COND_FP_TERNARY patterns. - -2018-07-12 Richard Sandiford - - * target.def (preferred_else_value): New target hook. - * doc/tm.texi.in (TARGET_PREFERRED_ELSE_VALUE): New hook. - * doc/tm.texi: Regenerate. - * targhooks.h (default_preferred_else_value): Declare. - * targhooks.c (default_preferred_else_value): New function. - * internal-fn.h (conditional_internal_fn_code): Declare. - * internal-fn.c (FOR_EACH_CODE_MAPPING): New macro. - (get_conditional_internal_fn): Use it. - (conditional_internal_fn_code): New function. - * gimple-match.h (gimple_match_cond): New struct. - (gimple_match_op): Add a cond member function. - (gimple_match_op::gimple_match_op): Update all forms to take a - gimple_match_cond. - * genmatch.c (expr::gen_transform): Use the same condition as res_op - for the suboperation, but don't specify a particular else_value. - * tree-ssa-sccvn.c (vn_nary_simplify, vn_reference_lookup_3) - (visit_nary_op, visit_reference_op_load): Pass - gimple_match_cond::UNCOND to the gimple_match_op constructor. - * gimple-match-head.c: Include tree-eh.h - (convert_conditional_op): New function. - (maybe_resimplify_conditional_op): Likewise. - (gimple_resimplify1): Call maybe_resimplify_conditional_op. - (gimple_resimplify2): Likewise. - (gimple_resimplify3): Likewise. - (gimple_resimplify4): Likewise. - (maybe_push_res_to_seq): Return null for conditional operations. - (try_conditional_simplification): New function. - (gimple_simplify): Call it. Pass conditions to the gimple_match_op - constructor. - * match.pd: Fold VEC_COND_EXPRs of an IFN_COND_* call to a new - IFN_COND_* call. - * config/aarch64/aarch64.c (aarch64_preferred_else_value): New - function. - (TARGET_PREFERRED_ELSE_VALUE): Redefine. - -2018-07-12 Jan Hubicka - - * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream - DECL_FCONTEXT - (hash_tree): Do not hash DECL_FCONTEXT - * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers): - Do not stream DECL_FCONTEXT. - * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise. - * tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT. - -2018-07-12 Richard Biener - - PR debug/86462 - * dwarf2out.c (gen_block_die): Only output blocks when they have - at least one !DECL_IGNORED_P variable. - -2018-07-12 Richard Biener - - PR target/84829 - * config/gnu-user.h (GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC): - Remove -mieee-fp handling. - -2018-07-12 Richard Biener - - * tree-ssa-sccvn.c (vn_lookup_simplify_result): Remove bogus - left-over from last patch. - -2018-07-12 Jakub Jelinek - - PR tree-optimization/86492 - * gimple-ssa-store-merging.c - (imm_store_chain_info::coalesce_immediate_stores): Call - check_no_overlap even for the merge_overlapping case. Formatting fix. - -2018-07-12 Richard Biener - - PR middle-end/86479 - * fold-const.c (fold_binary_op_with_conditional_arg): Do not - move possibly trapping operations into the conditional. - -2018-07-12 Richard Biener - - * tree-ssa-sccvn.c (mprts_hook_cnt): Remove. - (vn_lookup_simplify_result): Remove recursion limit applied - here. - (vn_nary_build_or_lookup_1): Adjust. - (try_to_simplify): Likewise. - * gimple-match-head.c (gimple_resimplify1): Instead apply one - here. - (gimple_resimplify2): Likewise. - (gimple_resimplify3): Likewise. - (gimple_resimplify4): Likewise. - -2018-07-11 Jakub Jelinek - - * config/i386/avx512bitalgintrin.h (_mm512_mask_bitshuffle_epi64_mask): - Use __mmask64 type instead of __mmask8 for __M argument. - * config/i386/avx512fintrin.h (_mm512_mask_xor_epi64, - _mm512_maskz_xor_epi64): Use __mmask8 type instead of __mmask16 for - __U argument. - (_mm512_mask_cmpneq_epi64_mask): Use __mmask8 type instead of - __mmask16 for __M argument. - (_mm512_maskz_insertf32x4, _mm512_maskz_inserti32x4, - _mm512_mask_insertf32x4, _mm512_mask_inserti32x4): Cast last argument - to __mmask16 instead of __mmask8. - * config/i386/avx512vlintrin.h (_mm_mask_add_ps, _mm_maskz_add_ps, - _mm256_mask_add_ps, _mm256_maskz_add_ps, _mm_mask_sub_ps, - _mm_maskz_sub_ps, _mm256_mask_sub_ps, _mm256_maskz_sub_ps, - _mm256_maskz_cvtepi32_ps, _mm_maskz_cvtepi32_ps): Use __mmask8 type - instead of __mmask16 for __U argument. - * config/i386/avx512vlbwintrin.h (_mm_mask_cmp_epi8_mask): Use - __mmask16 instead of __mmask8 for __U argument. - (_mm256_mask_cmp_epi8_mask): Use __mmask32 instead of __mmask16 for - __U argument. - (_mm256_cmp_epi8_mask): Use __mmask32 return type instead of - __mmask16. - (_mm_mask_cmp_epu8_mask): Use __mmask16 instead of __mmask8 for __U - argument. - (_mm256_mask_cmp_epu8_mask): Use __mmask32 instead of __mmask16 for - __U argument. - (_mm256_cmp_epu8_mask): Use __mmask32 return type instead of - __mmask16. - (_mm_mask_cmp_epi16_mask): Cast last argument to __mmask8 instead - of __mmask16. - (_mm256_mask_cvtepi8_epi16): Use __mmask16 instead of __mmask32 for - __U argument. - (_mm_mask_cvtepi8_epi16): Use __mmask8 instead of __mmask32 for - __U argument. - (_mm256_mask_cvtepu8_epi16): Use __mmask16 instead of __mmask32 for - __U argument. - (_mm_mask_cvtepu8_epi16): Use __mmask8 instead of __mmask32 for - __U argument. - (_mm256_mask_cmpneq_epu8_mask, _mm256_mask_cmplt_epu8_mask, - _mm256_mask_cmpge_epu8_mask, _mm256_mask_cmple_epu8_mask): Change - return type as well as __M argument type and all casts from __mmask8 - to __mmask32. - (_mm256_mask_cmpneq_epu16_mask, _mm256_mask_cmplt_epu16_mask, - _mm256_mask_cmpge_epu16_mask, _mm256_mask_cmple_epu16_mask): Change - return type as well as __M argument type and all casts from __mmask8 - to __mmask16. - (_mm256_mask_cmpneq_epi8_mask, _mm256_mask_cmplt_epi8_mask, - _mm256_mask_cmpge_epi8_mask, _mm256_mask_cmple_epi8_mask): Change - return type as well as __M argument type and all casts from __mmask8 - to __mmask32. - (_mm256_mask_cmpneq_epi16_mask, _mm256_mask_cmplt_epi16_mask, - _mm256_mask_cmpge_epi16_mask, _mm256_mask_cmple_epi16_mask): Change - return type as well as __M argument type and all casts from __mmask8 - to __mmask16. - * config/i386/avx512vbmi2vlintrin.h (_mm_mask_shrdi_epi32, - _mm_mask_shldi_epi32): Cast last argument to __mmask8 instead of - __mmask16. - -2018-07-11 Grazvydas Ignotas - - * config/i386/avx512bwintrin.h: (_mm512_mask_cmp_epi8_mask, - _mm512_mask_cmp_epu8_mask): Use __mmask64 type instead of __mmask32 - for __U argument. - -2018-07-11 Paul Koning - - * doc/md.texi (define_subst): Document how multiple occurrences of - the same argument in the replacement pattern are handled. - -2018-07-11 Paul Koning - - * doc/extend.texi (Common Variable Attributes): Move "mode" into - alphabetical order. - (Common Type Attributes): Add "mode" attribute. - -2018-07-11 Jan Hubicka - - * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not - stream DECL_ORIGINAL_TYPE. - (DFS::DFS_write_tree_body): Drop hack handling local external decls. - (hash_tree): Do not walk DECL_ORIGINAL_TYPE. - * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers): - Do not walk original type. - * tree-streamer-out.c (streamer_write_chain): Drop hack handling - external decls. - (write_ts_decl_non_common_tree_pointers): Do not stream - DECL_ORIGINAL_TYPE - * tree.c (free_lang_data_in_decl): Clear DECL_ORIGINAL_TYPE. - (find_decls_types_r): Do not walk DEC_ORIGINAL_TYPE. - -2018-07-11 Aldy Hernandez - - * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not jump - thread twice from the same starting edge. - -2018-07-11 Aldy Hernandez - - * vr-values.c (gimple_stmt_nonzero_p): Abstract common code to... - * gimple.c (gimple_call_nonnull_result_p): ...here... - (gimple_call_nonnull_arg): ...and here. - * gimple.h (gimple_call_nonnull_result_p): New. - (gimple_call_nonnull_arg): New. - -2018-07-11 Richard Earnshaw - - * config/arm/arm-cpus.in: Move information from fpu field of each - cpu definition to the isa field. - * config/arm/parsecpu.awk (fpu): Delete match rule. - (gen_comm_data): Don't add bits from the CPU's FPU entry. - -2018-07-11 Richard Biener - - PR debug/86457 - * dwarf2out.c (init_sections_and_labels): Use - output_asm_line_debug_info consistently. - (dwarf2out_early_finish): Likewise. - (dwarf2out_finish): Remove DW_AT_stmt_list from early generated - type units. - -2018-07-11 Richard Biener - - * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): - Rework father_bb setting in a way to avoid propagating constants - multiple times on a loop body. - -2018-07-10 Mark Wielaard - - PR debug/86459 - * dwarf2out.c (output_macinfo_op): Fix dwarf_FORM typo in gcc_assert. - -2018-07-10 Richard Biener - - * hash-map.h (hash_map::iterator::operator*): Return - references to key and value. - -2018-07-10 Jakub Jelinek - - PR c++/86443 - * gimplify.c (find_combined_omp_for): Add DATA argument, in addition - to finding the inner OMP_FOR/OMP_SIMD stmt find non-trivial wrappers, - BLOCKs with BLOCK_VARs, OMP_PARALLEL in between, OMP_FOR in between. - (gimplify_omp_for): For composite loops, move outer - OMP_{DISTRIBUTE,TASKLOOP,FOR,PARALLEL} right around innermost - OMP_FOR/OMP_SIMD if there are any non-trivial wrappers. For class - iterators add any needed clauses. Allow OMP_FOR_ORIG_DECLS to contain - TREE_LIST for both the original class iterator and the "last" helper - var. Gimplify OMP_FOR_PRE_BODY before the outermost composite - loop, remember has_decl_expr from outer composite loops for the - innermost OMP_SIMD in TREE_PRIVATE bit on OMP_FOR_INIT. - -2018-07-09 Martin Sebor - - PR middle-end/77357 - PR middle-end/86428 - * builtins.c (c_strlen): Avoid out-of-bounds warnings when - accessing implicitly initialized array elements. - * expr.c (string_constant): Handle string initializers of - character arrays within aggregates. - * gimple-fold.c (fold_array_ctor_reference): Add argument. - Store element offset. As a special case, handle zero size. - (fold_nonarray_ctor_reference): Same. - (fold_ctor_reference): Add argument. Store subobject offset. - * gimple-fold.h (fold_ctor_reference): Add argument. - -2018-07-09 Paul Koning - - * config/pdp11/pdp11.c (pdp11_addr_cost): New function. - (pdp11_insn_cost): New function. - (pdp11_md_asm_adjust): New function. - (TARGET_INVALID_WITHIN_DOLOOP): Define. - (pdp11_rtx_costs): Update to match machine better. - (output_addr_const_pdp11): Correct format mismatch warnings. - * config/pdp11/pdp11.h (SLOW_BYTE_ACCESS): Correct definition. - * config/pdp11/pdp11.md: General change to add base_cost and/or - length attributes for use by new pdp11_insn_cost function. - (MIN_BRANCH): Correct definition. - (MIN_SOB): Ditto. - (doloop_end): Use standard pattern name for looping pattern. - (doloop_end_nocc): New. - (movsf): Add another constraint alternative. - (zero_extendqihi2): Add constraint alternatives for not in place - extend. - (zero_extendhisi2): Remove. - (shift patterns): Add CC handling variants. - (bswaphi2): New. - (bswapsi2): New. - (rothi3): New. - (define_peephole2): New peephole to recognize mov that sets CC for - subsequent test. - -2018-07-09 Rainer Orth - - * config/sparc/sparc.c (sparc_fold_builtin) : Adapt for signature change of wi::neg, - wi::add. - -2018-07-09 Jakub Jelinek - - PR c/86420 - * real.c (real_nextafter): Return true if result is denormal. - -2018-07-09 Martin Liska - - * common.opt: Add back wrongly removed attribute. - -2018-07-09 Richard Biener - - PR debug/86413 - * dwarf2out.c (gen_block_die): For an early generated DIE - always output high/low PC attributes. - -2018-07-09 Tom de Vries - - * cfgexpand.c (expand_debug_source_expr): Handle VAR_DECL. - * tree-inline.c (remap_ssa_name): Handle default def ssa_name mapping - onto VAR_DECL with abstract origin. - -2018-07-07 Jim Wilson - - * config/riscv/riscv.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): New. - -2018-07-07 Tom de Vries - - * tree-dfa.c (dump_enumerated_decls): Handle cfun->cfg == NULL. - -2018-07-07 Aldy Hernandez - - * tree-vrp.c (vrp_int_const_binop): Change overflow type to - overflow_type. - (combine_bound): Use wide-int overflow calculation instead of - rolling our own. - * calls.c (maybe_warn_alloc_args_overflow): Change overflow type to - overflow_type. - * fold-const.c (int_const_binop_2): Same. - (extract_muldiv_1): Same. - (fold_div_compare): Same. - (fold_abs_const): Same. - * match.pd: Same. - * poly-int.h (add): Same. - (sub): Same. - (neg): Same. - (mul): Same. - * predict.c (predict_iv_comparison): Same. - * profile-count.c (slow_safe_scale_64bit): Same. - * simplify-rtx.c (simplify_const_binary_operation): Same. - * tree-chrec.c (tree_fold_binomial): Same. - * tree-data-ref.c (split_constant_offset_1): Same. - * tree-if-conv.c (idx_within_array_bound): Same. - * tree-scalar-evolution.c (iv_can_overflow_p): Same. - * tree-ssa-phiopt.c (minmax_replacement): Same. - * tree-vect-loop.c (is_nonwrapping_integer_induction): Same. - * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): Same. - * vr-values.c (vr_values::adjust_range_with_scev): Same. - * wide-int.cc (wi::add_large): Same. - (wi::mul_internal): Same. - (wi::sub_large): Same. - (wi::divmod_internal): Same. - * wide-int.h: Change overflow type to overflow_type for neg, add, - mul, smul, umul, div_trunc, div_floor, div_ceil, div_round, - mod_trunc, mod_ceil, mod_round, add_large, sub_large, - mul_internal, divmod_internal. - (overflow_type): New enum. - (accumulate_overflow): New. - -2018-07-06 Kugan Vivekanandarajah - - * tree-ssa-phiopt.c (cond_removal_in_popcount_pattern): New. - (tree_ssa_phiopt_worker): Call cond_removal_in_popcount_pattern. - -2018-07-06 Kugan Vivekanandarajah - - * tree-ssa-loop-niter.c (number_of_iterations_popcount): If popcount - argument is checked for zero before entering loop, avoid checking again. - -2018-07-06 Kugan Vivekanandarajah - - * gimplify.h (generic_expr_could_trap_p): Set as global function. - * gimplify.h (generic_expr_could_trap_p): Likwise. - * tree-scalar-evolution.c (expression_expensive_p): Handle COND_EXPR. - -2018-07-06 Jakub Jelinek - - PR tree-optimization/86401 - * fold-const.c (fold_binary_loc) : Move the - ((A & N) + B) & M -> (A + B) & M etc. optimization into ... - (fold_bit_and_mask): ... here. New helper function for match.pd. - * fold-const.h (fold_bit_and_mask): Declare. - * match.pd (((A & N) + B) & M -> (A + B) & M): New optimization. - -2018-07-06 Peter Bergner - - PR target/86324 - * target.def (translate_mode_attribute): New hook. - * targhooks.h (default_translate_mode_attribute): Declare. - * targhooks.c (default_translate_mode_attribute): New function. - * doc/tm.texi.in (TARGET_TRANSLATE_MODE_ATTRIBUTE): New hook. - * doc/tm.texi: Regenerate. - * config/rs6000/rs6000.c (TARGET_TRANSLATE_MODE_ATTRIBUTE): Define. - (rs6000_translate_mode_attribute): New function. - -2018-07-06 Paul Koning - - * doc/md.texi (define_split): Document DONE and FAIL. - (define_peephole2): Ditto. - -2018-07-05 Jeff Law - - PR tree-optimization/86010 - * tree-ssa-dse.c (compute_trims): More aggressively trim at - both the head and tail of mem* and str* calls. - -2018-07-05 Jim Wilson - - * config.gcc (riscv*-*-*): When setting xlen, handle riscv-*. - -2018-07-05 Indu Bhagat - - * config/aarch64/aarch64-simd.md: correct flags text for - MIN_EXPR replacement. - -2018-07-05 James Clarke - - * configure: Regenerated. - -2018-07-05 Carl Love - - * config/rs6000/rs6000-c.c: Map ALTIVEC_BUILTIN_VEC_UNPACKH for - float argument to VSX_BUILTIN_DOUBLEH_V4SF. - Map ALTIVEC_BUILTIN_VEC_UNPACKL for float argument to - VSX_BUILTIN_DOUBLEL_V4SF. - -2018-07-05 Martin Sebor - - PR c++/86400 - * tree-ssa-strlen.c (maybe_set_strlen_range): Use type size rather - than its domain to compute its the upper bound of a char array. - -2018-07-05 Nathan Sidwell - - Replace NO_IMPLICIT_EXTERN_C with SYSTEM_IMPLICIT_EXTERN_C. - * doc/cpp.texi: Update comment. - * doc/tm.texi: Rebuilt. - * doc/tm.texi.in (NO_IMPLICIT_EXTERN_C): Replace with ... - (SYSTEM_IMPLICIT_EXTERN_C): ... this, opposite sense. - * doc/extend.texi (Backwards Compatibility): Clarify it is system - headers affected by extern "C". - * system.h: Poison NO_IMPLICIT_EXTERN_C. - * config/alpha/alpha.h, config/arm/uclinux-elf.h, - config/bfin/elf.h, config/cris/cris.h, config/darwin.h, - config/dragonfly.h, config/freebsd.h, config/gnu-user.h, - config/i386/cygming.h, config/i386/djgpp.h, config/i386/nto.h, - config/ia64/hpux.h, config/lm32/lm32.h, config/lm32/uclinux-elf.h, - config/lynx.h, config/mips/elf.h, config/mmix/mmix.h, - config/netbsd.h, config/pa/pa-hpux.h, config/powerpcspe/sysv4.h, - config/riscv/elf.h, config/rs6000/sysv4.h, config/rtems.h, - config/s390/tpf.h, config/sh/newlib.h, config/sol2.h, - config/sparc/openbsd64.h, config/sparc/sp-elf.h, - config/sparc/sp64-elf.h, config/spu/spu.h, - config/stormy16/stormy16.h, config/v850/v850.h, - config/visium/visium.h, config/vx-common.h, config/xtensa/elf.h: Don't - define NO_IMPLICIT_EXTERN_C. - * config/rs6000/aix.h: Set SYSTEM_IMPLICIT_EXTERN_C. - -2018-07-05 Tamar Christina - - PR target/84711 - * config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE - instead of GET_MODE_SIZE when comparing Units. - -2018-07-05 Tamar Christina - - PR target/84711 - * rtlanal.c (set_noop_p): Constrain on mode change, - include hard-reg-set.h - -2018-07-05 Tamar Christina - - * config/aarch64/aarch64.c (aarch64_expand_movmem): Fix mode size. - -2018-07-05 Jakub Jelinek - - Revert - 2018-07-04 Maxim Ostapenko - - PR sanitizer/84250 - * config/gnu-user.h (LIBASAN_EARLY_SPEC): Pass -lstdc++ for static - libasan. - * gcc.c: Do not pass LIBUBSAN_SPEC if ASan is enabled with UBSan. - -2018-07-04 Maxim Ostapenko - - PR sanitizer/84250 - * config/gnu-user.h (LIBASAN_EARLY_SPEC): Pass -lstdc++ for static - libasan. - * gcc.c: Do not pass LIBUBSAN_SPEC if ASan is enabled with UBSan. - -2018-07-04 Eric Botcazou - - PR middle-end/86380 - * expmed.c (choose_multiplier): Fix incorrect comparison with mask. - -2018-07-04 Aldy Hernandez - - * tree-vrp.c (extract_range_from_binary_expr_1): Initialize - neg_*_op* variables. - -2018-07-04 Martin Liska - - * tree-switch-conversion.c: Define - max_ratio_for_speed and max_ratio_for_size constants. - -2018-07-04 Denys Vlasenko - Martin Liska - - PR middle-end/66240 - PR target/45996 - PR c/84100 - * common.opt: Rename align options with 'str_' prefix. - * common/config/i386/i386-common.c (set_malign_value): New - function. - (ix86_handle_option): Use it to set -falign-* options/ - * config/aarch64/aarch64-protos.h (struct tune_params): Change - type from int to string. - * config/aarch64/aarch64.c: Update default values from int - to string. - * config/alpha/alpha.c (alpha_override_options_after_change): - Likewise. - * config/arm/arm.c (arm_override_options_after_change_1): Likewise. - * config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print - max skip conditionally. - * config/i386/freebsd.h (SUBALIGN_LOG): New. - (ASM_OUTPUT_MAX_SKIP_ALIGN): Print - max skip conditionally. - * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print - max skip conditionally. - * config/i386/gnu-user.h (SUBALIGN_LOG): New. - (ASM_OUTPUT_MAX_SKIP_ALIGN): Print - max skip conditionally. - * config/i386/i386.c (struct ptt): Change type from int to - string. - (ix86_default_align): Set default values. - * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Print - max skip conditionally. - * config/i386/iamcu.h (SUBALIGN_LOG): New. - (ASM_OUTPUT_MAX_SKIP_ALIGN): - * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): - * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print - max skip conditionally. - * config/i386/openbsdelf.h (SUBALIGN_LOG): New. - (ASM_OUTPUT_MAX_SKIP_ALIGN) Print max skip conditionally.: - * config/i386/x86-64.h (SUBALIGN_LOG): New. - (ASM_OUTPUT_MAX_SKIP_ALIGN): Print - max skip conditionally. - (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. - * config/ia64/ia64.c (ia64_option_override): Set default values - for alignment options. - * config/m68k/m68k.c: Handle new str_align_* options. - * config/mips/mips.c (mips_set_compression_mode): Change - type of constants. - (mips_option_override): Set default values for options. - * config/powerpcspe/powerpcspe.c (rs6000_option_override_internal): - Likewise. - * config/rs6000/rs6000.c (rs6000_option_override_internal): - Likewise. - * config/rx/rx.c (rx_option_override): Likewise. - * config/rx/rx.h (JUMP_ALIGN): Use align_jumps_log. - (LABEL_ALIGN): Use align_labels_log. - (LOOP_ALIGN): Use align_loops_align. - * config/s390/s390.c (s390_asm_output_function_label): Use new - macros. - * config/sh/sh.c (sh_override_options_after_change): - Change type of constants. - * config/spu/spu.c (spu_sched_init): Likewise. - * config/sparc/sparc.c (sparc_option_override): Set default - values for options. - * config/visium/visium.c (visium_option_override): Likewise. - * config/visium/visium.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Do not - emit p2align format with last argument if it's not needed. - * doc/invoke.texi: Document extended format of -falign-*. - * final.c: Use align_labels alignment. - * flags.h (struct target_flag_state): Change type to use - align_flags. - (struct align_flags_tuple): New. - (struct align_flags): Likewise. - (align_loops_log): Redefine macro to use new types. - (align_loops_max_skip): Redefine macro to use new types. - (align_jumps_log): Redefine macro to use new types. - (align_jumps_max_skip): Redefine macro to use new types. - (align_labels_log): Redefine macro to use new types. - (align_labels_max_skip): Redefine macro to use new types. - (align_functions_log): Redefine macro to use new types. - (align_loops): Redefine macro to use new types. - (align_jumps): Redefine macro to use new types. - (align_labels): Redefine macro to use new types. - (align_functions): Redefine macro to use new types. - (align_functions_max_skip): Redefine macro to use new types. - (align_loops_value): New macro. - (align_jumps_value): New macro. - (align_labels_value): New macro. - (align_functions_value): New macro. - * function.c (invoke_set_current_function_hook): Propagate - alignment values from flags to global variables default in - topleev.h. - * ipa-icf.c (sem_function::equals_wpa): Use - cl_optimization_option_eq instead of memcmp. - * lto-streamer.h (cl_optimization_stream_out): Support streaming - of string types. - (cl_optimization_stream_in): Likewise. - * optc-save-gen.awk: Support strings in cl_optimization. - * opth-gen.awk: Likewise. - * opts.c (finish_options): Remove error checking of invalid - value ranges. - (MAX_CODE_ALIGN): Remove. - (MAX_CODE_ALIGN_VALUE): Likewise. - (parse_and_check_align_values): New function. - (check_alignment_argument): Likewise. - (common_handle_option): Use check_alignment_argument. - * opts.h (parse_and_check_align_values): Declare. - * toplev.c (init_alignments): Remove. - (read_log_maxskip): New. - (parse_N_M): Likewise. - (parse_alignment_opts): Likewise. - (backend_init_target): Remove usage of init_alignments. - * toplev.h (parse_alignment_opts): Declare. - * tree-streamer-in.c (streamer_read_tree_bitfields): Add new - argument. - * tree-streamer-out.c (streamer_write_tree_bitfields): Likewise. - * tree.c (cl_option_hasher::equal): New. - * varasm.c: Use new global macros. - -2018-07-04 Denys Vlasenko - - * config/i386/dragonfly.h: (ASM_OUTPUT_MAX_SKIP_ALIGN): - Use a simpler align directive also if MAXSKIP = ALIGN-1. - * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. - * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. - * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. - * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. - * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove "If N - is large, do at least 8 byte alignment" code. Add SUBALIGN_LOG - define. Use a simpler align directive also if MAXSKIP = ALIGN-1. - * config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. - * config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. - * config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. - * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. - -2018-07-04 Martin Liska - Jonathan Wakely - - * coverage.c: Use correct type. - * doc/invoke.texi: Language correction. - -2018-07-03 H.J. Lu - - PR target/85620 - * config/i386/i386.c (rest_of_insert_endbranch): Also generate - ENDBRANCH for non-tail call which may return via indirect branch. - * doc/extend.texi: Document indirect_return attribute. - -2018-07-03 Martin Sebor - - PR tree-optimization/86274 - * gimple-ssa-sprintf.c (fmtresult::type_max_digits): Verify - precondition. - (format_floating): Correct handling of infinities and NaNs. - -2018-07-03 Martin Sebor - - * print-tree.c (print_real_cst): New function. - (print_node_brief): Call it. - (print_node): Ditto. - -2018-07-03 Jeff Law - - * config/h8300/h8300.md (logical3_sn, logical3): Merge - into a single pattern. - - * config/h8300/h8300.md (ors code_iterator): New. - (bsetqi_msx, bnotqi_msx patterns and splitters): Consolidate into - a single pattern and single splitter. - (bsethi_msx, bnothi_msx patterns): Consolidate into a single pattern. - (iorqi3_1, xorqi3_1): Likewise. - (iorqi3, xorqi3 expanders): Similarly. - - * config/h8300/h8300.md (movmd_internal_normal): Consolidated with - (movmd_internal) into a single pattern using the P mode iterator. - (movmd splitters): Similarly. - (stpcpy_internal_normal, stpcpy_internal): Similarly for thes patterns. - (movsd splitters): Similarly. - - * config/h8300/h8300.c (h8300_insn_length_from_table): Consolidate - ADDB, ADDW and ADDL into a single ADD attribute which selects the - right table based on the size of the operand. - * config/h8300/h8300.md (length_table): Corresponding changes. All - references to "addb", "addw" and "addl" changed to "add". - (btst patterns): Merge two variants into a single pattern. - (tstqi, tsthi): Likewise. - (addhi3_incdec, addsi3_incdec): Likewise. - (subhi3_h8300hs, subsi3_h8300hs): Likewise. - (mulhi3, mulsi3): Likewise. - (udivhi3, udivsi3): Likewise. - (divhi3, divsi3): Likewise. - (andorqi3, andorhi3, andorsi3): Likewise. - -2018-07-03 Uros Bizjak - - PR target/85694 - * config/i386/sse.md (uavg3_ceil): New expander. - (_uavg3): Simplify expander. - -2018-07-03 Richard Sandiford - - PR tree-optimization/85694 - * config/aarch64/iterators.md (HADD, RHADD): New int iterators. - (u): Handle UNSPEC_SHADD, UNSPEC_UHADD, UNSPEC_SRHADD and - UNSPEC_URHADD. - * config/aarch64/aarch64-simd.md (avg3_floor) - (avg3_ceil): New patterns. - -2018-07-03 David Malcolm - - * gcc.dg/vect/slp-perm-1.c: Remove "note: " prefix from - scan-tree-dump directive. - * gcc.dg/vect/slp-perm-2.c: Likewise. - * gcc.dg/vect/slp-perm-3.c: Likewise. - * gcc.dg/vect/slp-perm-5.c: Likewise. - * gcc.dg/vect/slp-perm-6.c: Likewise. - * gcc.dg/vect/slp-perm-7.c: Likewise. - * gcc.dg/vect/slp-perm-8.c: Likewise. - -2018-07-03 Marek Polacek - - PR middle-end/86202 - * gimple-fold.c (size_must_be_zero_p): Check the type of the size. - -2018-07-03 Richard Biener - - PR ipa/86389 - * tree-ssa-structalias.c (find_func_clobbers): Properly - handle indirect calls. - -2018-07-03 Jeff Law - - * config/h8300/h8300.md (HSI, QHSI, QHSIF): New mode iterators. - (shifts): New code iterator. - (movqi, movhi, movsi, movsf expanders): Consolidate into a single - expander. Fix HImode handling on H8/SX. - (addqi3, addhi3, addsi3 expanders): Consolidate into a single expander. - (subqi3, subhi3, subsi3 expanders): Likewise. - (andqi3, andhi3, andsi3 expanders): Likewise. - (iorqi3, iorhi3, iorsi3 expanders): Likewise. - (xorqi3, xorhi3, xorsi3 expanders): Likewise. - (negqi2, neghi2, negsi2, negsf2 expanders): Likewise. - (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise. - (zero_extendqihi2, zero_extendqisi2): Likewise. - (extendqihi2, extendqisi2): Likewise. - (rotlqi3, rotlhi3, rotlsi3): Likewise. - (neghi2_h8300, negsi2_h8300): Likewise for these patterns. - (rotlqi3_1, rotlhi3_1): Likewise. - (logicalhi3_sn, logicalsi3_sn): Likewise. - (logicalhi3, logicalsi3): Likewise. - -2018-07-03 Richard Sandiford - - * tree-vect-patterns.c (vect_recog_rotate_pattern) - (vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern) - (vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast) - (adjust_bool_pattern, vect_recog_bool_pattern): Pass the vector - type to append_pattern_def_seq instead of creating a stmt_vec_info - directly. - (build_mask_conversion): Likewise. Remove vinfo argument. - (vect_add_conversion_to_patterm): Likewise, renaming to... - (vect_add_conversion_to_pattern): ...this. - (vect_recog_mask_conversion_pattern): Update call to - build_mask_conversion. Pass the vector type to - append_pattern_def_seq here too. - (vect_recog_gather_scatter_pattern): Update call to - vect_add_conversion_to_pattern. - -2018-07-03 Richard Sandiford - - * tree-vect-patterns.c (new_pattern_def_seq): Delete. - (vect_recog_dot_prod_pattern, vect_recog_sad_pattern) - (vect_recog_widen_op_pattern, vect_recog_over_widening_pattern) - (vect_recog_rotate_pattern, vect_synth_mult_by_constant): Don't set - STMT_VINFO_PATTERN_DEF_SEQ to null here. - (vect_recog_pow_pattern, vect_recog_vector_vector_shift_pattern) - (vect_recog_mixed_size_cond_pattern, vect_recog_bool_pattern): Use - append_pattern_def_seq instead of new_pattern_def_seq. - (vect_recog_divmod_pattern): Do both of the above. - (vect_pattern_recog_1): Assert that STMT_VINO_PATTERN_DEF_SEQ - is null. - -2018-07-03 Richard Sandiford - - * tree-vect-patterns.c (vect_recog_dot_prod_pattern): - (vect_recog_sad_pattern, vect_recog_widen_op_pattern) - (vect_recog_widen_mult_pattern, vect_recog_pow_pattern): - (vect_recog_widen_sum_pattern, vect_recog_over_widening_pattern) - (vect_recog_average_pattern, vect_recog_cast_forwprop_pattern) - (vect_recog_widen_shift_pattern, vect_recog_rotate_pattern) - (vect_recog_vector_vector_shift_pattern, vect_synth_mult_by_constant) - (vect_recog_mult_pattern, vect_recog_divmod_pattern) - (vect_recog_mixed_size_cond_pattern, vect_recog_bool_pattern) - (vect_recog_mask_conversion_pattern): Replace vec - parameter with a single stmt_vec_info. - (vect_recog_func_ptr): Likewise. - (vect_recog_gather_scatter_pattern): Likewise, folding in... - (vect_try_gather_scatter_pattern): ...this. - (vect_pattern_recog_1): Remove stmts_to_replace and just pass - the stmt_vec_info of the statement to be matched. Don't clear - STMT_VINFO_RELATED_STMT. - (vect_pattern_recog): Update call accordingly. - -2018-07-03 Richard Sandiford - - PR tree-optimization/85694 - * doc/md.texi (avgM3_floor, uavgM3_floor, avgM3_ceil) - (uavgM3_ceil): Document new optabs. - * doc/sourcebuild.texi (vect_avg_qi): Document new target selector. - * internal-fn.def (IFN_AVG_FLOOR, IFN_AVG_CEIL): New internal - functions. - * optabs.def (savg_floor_optab, uavg_floor_optab, savg_ceil_optab) - (savg_ceil_optab): New optabs. - * tree-vect-patterns.c (vect_recog_average_pattern): New function. - (vect_vect_recog_func_ptrs): Add it. - * tree-vect-stmts.c (vectorizable_call): Get the type of the zero - constant directly from the associated lhs. - -2018-07-03 Richard Sandiford - - * tree-vect-patterns.c (vect_split_statement): New function. - (vect_convert_input): Use it to try to split an existing cast. - -2018-07-03 Richard Sandiford - - * poly-int.h (print_hex): New function. - * dumpfile.h (dump_dec, dump_hex): Declare. - * dumpfile.c (dump_dec, dump_hex): New poly_wide_int functions. - * tree-vectorizer.h (_stmt_vec_info): Add min_output_precision, - min_input_precision, operation_precision and operation_sign. - * tree-vect-patterns.c (vect_get_range_info): New function. - (vect_same_loop_or_bb_p, vect_single_imm_use) - (vect_operation_fits_smaller_type): Delete. - (vect_look_through_possible_promotion): Add an optional - single_use_p parameter. - (vect_recog_over_widening_pattern): Rewrite to use new - stmt_vec_info infomration. Handle one operation at a time. - (vect_recog_cast_forwprop_pattern, vect_narrowable_type_p) - (vect_truncatable_operation_p, vect_set_operation_type) - (vect_set_min_input_precision): New functions. - (vect_determine_min_output_precision_1): Likewise. - (vect_determine_min_output_precision): Likewise. - (vect_determine_precisions_from_range): Likewise. - (vect_determine_precisions_from_users): Likewise. - (vect_determine_stmt_precisions, vect_determine_precisions): Likewise. - (vect_vect_recog_func_ptrs): Put over_widening first. - Add cast_forwprop. - (vect_pattern_recog): Call vect_determine_precisions. - -2018-07-03 Richard Sandiford - - * tree-vect-patterns.c (vect_mark_pattern_stmts): Remove pattern - statements that have been replaced by further pattern statements. - (vect_pattern_recog_1): Clear STMT_VINFO_PATTERN_DEF_SEQ on failure. - -2018-07-03 Richard Biener - - * tree-vect-stmts.c (vect_is_simple_use): Consolidate dumping, - always set *dt. Dump vectype in vectype overload. - * dumpfile.h (dump_gimple_expr): New function. - (dump_gimple_expr_loc): Likewise. - * dumpfile.c (dump_gimple_expr): New function. - (dump_gimple_expr_loc): Likewise. - -2018-07-02 Jeff Law - - * config/h8300/h8300.md (movqi_h8300, movqi_h8300hs): Consolidate - the H8/300, H8/300H and H8/S variants into a single pattern. - (movhi_h8300, movqi_h8300hs): Similarly. - (pushqi_h8300hs, pushhi_h8300hs): Consolidate into a single pattern. - (QHI mode iterator): New. - - * config/h8300/h8300.md: Remove trailing whitespace. - -2018-07-02 Jim Wilson - - * config/riscv/riscv.c (riscv_expand_epilogue): Use emit_jump_insn - instead of emit_insn for interrupt returns. - * config/riscv/riscv.md (riscv_met): Add (return) to rtl. - (riscv_sret, riscv_uret): Likewise. - -2018-07-02 David Malcolm - - * pretty-print.c (selftest::test_pp_format): Move save and restore - of quotes to class auto_fix_quotes, and add an instance. - * selftest.c: Include "intl.h". - (selftest::auto_fix_quotes::auto_fix_quotes): New ctor. - (selftest::auto_fix_quotes::~auto_fix_quotes): New dtor. - * selftest.h (selftest::auto_fix_quotes): New class. - -2018-07-02 Richard Henderson - - * config/aarch64/aarch64-protos.h, config/aarch64/aarch64.c - (aarch64_sve_prepare_conditional_op): Remove. - * config/aarch64/aarch64-sve.md (cond_): - Allow aarch64_simd_reg_or_zero as select operand; remove - the aarch64_sve_prepare_conditional_op call. - (cond_): Likewise. - (cond_): Likewise. - (*cond__z): New pattern. - (*cond__z): New pattern. - (*cond__z): New pattern. - (*cond__any): New pattern. - (*cond__any): New pattern. - (*cond__any): New pattern - and a splitters to match all of the *_any patterns. - * config/aarch64/predicates.md (aarch64_sve_any_binary_operator): New. - - * config/aarch64/iterators.md (SVE_INT_BINARY_REV): Remove. - (SVE_COND_FP_BINARY_REV): Remove. - (sve_int_op_rev, sve_fp_op_rev): New. - * config/aarch64/aarch64-sve.md (*cond__0): New. - (*cond__0): New. - (*cond__0): New. - (*cond__2): Rename, add movprfx alternative. - (*cond__2): Similarly. - (*cond__2): Similarly. - (*cond__3): Similarly; use sve_int_op_rev. - (*cond__3): Similarly. - (*cond__3): Similarly; use sve_fp_op_rev. - - * config/aarch64/aarch64-sve.md (cond_): - Remove match_dup 1 from the inner unspec. - (*cond_): Likewise. - - * config/aarch64/aarch64.md (movprfx): New attr. - (length): Default movprfx to 8. - * config/aarch64/aarch64-sve.md (*mul3): Add movprfx alt. - (*madd, *msubmul3_highpart): Likewise. - (*3): Likewise. - (*v3): Likewise. - (*3): Likewise. - (*3): Likewise. - (*fma4, *fnma4): Likewise. - (*fms4, *fnms4): Likewise. - (*div4): Likewise. - -2018-07-02 Richard Sandiford - - * tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix typo - in dump string. - -2018-07-02 Richard Biener - - PR tree-optimization/86363 - * tree-ssa-sccvn.c (vn_reference_lookup_3): Check the - memset argument refers to a non-variable address. - -2018-07-02 Aldy Hernandez - - * tree-vrp.c (extract_range_from_binary_expr_1): Abstract a lot of the - {PLUS,MINUS}_EXPR code to... - (adjust_symbolic_bound): ...here, - (combine_bound): ...here, - (set_value_range_with_overflow): ...and here. - -2018-07-02 Aldy Hernandez - - * tree-vrp.c (extract_range_from_unary_expr): Abstract ABS_EXPR - code... - (extract_range_from_abs_expr): ...here. - -2018-07-02 Eric Botcazou - - * config/i386/i386.c (ix86_finalize_stack_frame_flags): Do not overrule - -fno-omit-frame-pointer when not optimizing. - -2018-07-02 Martin Liska - - PR ipa/86279 - * ipa-pure-const.c (malloc_candidate_p): Revert usage of ::get. - (propagate_nothrow): Likewise. - -2018-07-02 Martin Liska - - PR ipa/86323 - * ipa-inline.c (early_inliner): Revert wrongly added ::get call. - -2018-07-02 David Malcolm - - * dumpfile.c (dump_generic_expr_loc): Undo removal of this - function in r262149, changing "loc" param from source_location to - const dump_location_t &. - * dumpfile.h (dump_generic_expr_loc): Undo removal of this - declaration, as above. - -2018-07-01 Paul Koning - - * common/config/pdp11/pdp11-common.c (pdp11_handle_option): Handle - -munit-asm, -mgnu-asm, -mdec-asm. - * config/pdp11/pdp11-protos.h (pdp11_gen_int_label): New. - (pdp11_output_labelref): New. - (pdp11_output_def): New. - (pdp11_output_addr_vec_elt): New. - * config/pdp11/pdp11.c: Use tab between opcode and operands. Use - %# and %@ format codes. - (pdp11_option_override): New. - (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Define. - (pdp11_output_ident): New. - (pdp11_asm_named_section): New. - (pdp11_asm_init_sections): New. - (pdp11_file_start): New. - (pdp11_file_end): New. - (output_ascii): Use .ascii/.asciz for -mdec-asm. - (pdp11_asm_print_operand): Update %# and %$ for -mdec-asm. Add - %o, like %c but octal. - (pdp11_option_override): New. - * config/pdp11/pdp11.h (TEXT_SECTION_ASM_OP): Update for - -mdec-asm. - (DATA_SECTION_ASM_OP): Ditto. - (READONLY_DATA_SECTION_ASM_OP): New. - (IS_ASM_LOGICAL_LINE_SEPARATOR): New. - (ASM_GENERATE_INTERNAL_LABEL): Use new function. - (ASM_OUTPUT_LABELREF): Ditto. - (ASM_OUTPUT_DEF): Ditto. - (ASM_OUTPUT_EXTERNAL): New. - (ASM_OUTPUT_SOURCE_FILENAME): New. - (ASM_OUTPUT_ADDR_VEC_ELT): Use new function. - (ASM_OUTPUT_SKIP): Update for -mdec-asm. - * config/pdp11/pdp11.md: Use tab between opcode and operands. Use - %# and %@ format codes. - * config/pdp11/pdp11.opt (mgnu-asm): New. - (mdec-asm): Conflicts with -mgnu-asm and -munix-asm. - (munix-asm): Conflicts with -mdec-asm and -mgnu-asm. - * doc/invoke.txt (PDP-11 Options): Add -mgnu-asm. - -2018-07-01 Aldy Hernandez - - * tree-ssa-threadupdate.c (mark_threaded_blocks): Avoid - dereferencing path[] beyond its length. - (debug_path): New. - (debug_all_paths): New. - (rewire_first_differing_edge): New. - (adjust_paths_after_duplication): New. - (duplicate_thread_path): Call adjust_paths_after_duplication. - Add new argument. - (thread_through_all_blocks): Add new argument to - duplicate_thread_path. - -2018-06-30 Jim Wilson - - * config/riscv/predicates.md (p2m1_shift_operand): New. - (high_mask_shift_operand): New. - * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): New combiner - pattern using p2m1_shift_operand. - (lshsi3_zero_extend_3+2): New combiner pattern using - high_mask_shift_operand. - -2018-06-30 Richard Sandiford - - * tree-vect-patterns.c (vect_get_external_def_edge): New function, - split out from... - (vect_recog_rotate_pattern): ...here. - (vect_convert_input): Try to insert casts of invariants in the - preheader. - * tree-vect-loop-manip.c (vect_loop_versioning): Don't require the - preheader to be empty. - -2018-06-30 Richard Sandiford - - * tree-vect-patterns.c (append_pattern_def_seq): Take an optional - vector type. If given, install it in the new statement's - STMT_VINFO_VECTYPE. - (vect_element_precision): New function. - (vect_unpromoted_value): New struct. - (vect_unpromoted_value::vect_unpromoted_value): New function. - (vect_unpromoted_value::set_op): Likewise. - (vect_look_through_possible_promotion): Likewise. - (vect_joust_widened_integer, vect_joust_widened_type): Likewise. - (vect_widened_op_tree, vect_convert_input): Likewise. - (vect_convert_inputs, vect_convert_output): Likewise. - (vect_recog_dot_prod_pattern): Use vect_look_through_possible_promotion - to handle the optional cast of the multiplication result and - vect_widened_op_tree to detect the widened multiplication itself. - Do not require the input and output of promotion casts to have - the same sign, but base the signedness of the operation on the - input rather than the result. If the pattern includes two - promotions, check that those promotions have the same sign. - Do not restrict the MULT_EXPR handling to a double-width result; - handle quadruple-width results and wider. Use vect_convert_inputs - to convert the inputs to the common type. - (vect_recog_sad_pattern): Use vect_look_through_possible_promotion - to handle the optional cast of the ABS result. Also allow a sign - change or a sign extension between the ABS and MINUS. - Use vect_widened_op_tree to detect the widened subtraction and use - vect_convert_inputs to convert the inputs to the common type. - (vect_handle_widen_op_by_const): Delete. - (vect_recog_widen_op_pattern): New function. - (vect_recog_widen_mult_pattern): Use it. - (vect_recog_widen_shift_pattern): Likewise. - (vect_recog_widen_sum_pattern): Use - vect_look_through_possible_promotion to handle the promoted - PLUS_EXPR operand. - -2018-06-30 Richard Sandiford - - * gimple-iterator.c (gsi_for_stmt): Add a new overload that takes - the containing gimple_seq *. - * gimple-iterator.h (gsi_for_stmt): Declare it. - * tree-vect-patterns.c (vect_recog_dot_prod_pattern) - (vect_recog_sad_pattern, vect_recog_widen_sum_pattern) - (vect_recog_widen_shift_pattern, vect_recog_rotate_pattern) - (vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern) - (vect_recog_mask_conversion_pattern): Remove STMT_VINFO_IN_PATTERN_P - checks. - (vect_init_pattern_stmt, vect_set_pattern_stmt): New functions, - split out from... - (vect_mark_pattern_stmts): ...here. Handle cases in which the - statement being replaced is part of an existing pattern - definition sequence, inserting the new pattern statements before - the original one. - (vect_pattern_recog_1): Don't return a bool. If the statement - is already part of a pattern, instead apply pattern matching - to the pattern definition statements. Don't clear the - STMT_VINFO_RELATED_STMT if is_pattern_stmt_p. - (vect_pattern_recog): Don't break after the first match; - continue processing the pattern definition statements instead. - Don't bail out for STMT_VINFO_IN_PATTERN_P here. - -2018-06-30 Richard Sandiford - - * tree-vect-patterns.c (vect_reassociating_reduction_p): New function. - (vect_recog_dot_prod_pattern, vect_recog_sad_pattern) - (vect_recog_widen_sum_pattern): Use it. - -2018-06-30 Richard Sandiford - - * tree-vect-loop.c (vectorizable_reduction): Assert that the - phi is not a pattern statement and has not been replaced by - a pattern statement. - * tree-vect-patterns.c (type_conversion_p): Don't check - STMT_VINFO_IN_PATTERN_P. - (vect_recog_vector_vector_shift_pattern): Likewise. - (vect_recog_dot_prod_pattern): Expect vect_is_simple_use to return - the pattern statement rather than the original statement; check - directly for a WIDEN_MULT_EXPR here. - * tree-vect-slp.c (vect_get_and_check_slp_defs): Expect - vect_is_simple_use to return the pattern statement rather - than the original statement; use is_pattern_stmt_p to check - for such a pattern statement. - * tree-vect-stmts.c (process_use): Expect vect_is_simple_use - to return the pattern statement rather than the original statement; - don't do the same transformation here. - (vect_is_simple_use): If the defining statement has been replaced - by a pattern statement, return the pattern statement instead. - Remove the corresponding (local) transformation from the vectype - overload. - -2018-06-30 Richard Sandiford - - * tree-vectorizer.h (vect_is_simple_use): Move the gimple ** to the - end and default to null. - * tree-vect-loop.c (vect_create_epilog_for_reduction) - (vectorizable_reduction): Update calls accordingly, dropping the - gimple ** argument if the passed-back statement isn't needed. - * tree-vect-patterns.c (vect_get_internal_def, type_conversion_p) - (vect_recog_rotate_pattern): Likewise. - (vect_recog_mask_conversion_pattern): Likewise. - * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise. - (vect_mask_constant_operand_p): Likewise. - * tree-vect-stmts.c (is_simple_and_all_uses_invariant, process_use): - (vect_model_simple_cost, vect_get_vec_def_for_operand): Likewise. - (get_group_load_store_type, get_load_store_type): Likewise. - (vect_check_load_store_mask, vect_check_store_rhs): Likewise. - (vectorizable_call, vectorizable_simd_clone_call): Likewise. - (vectorizable_conversion, vectorizable_assignment): Likewise. - (vectorizable_shift, vectorizable_operation): Likewise. - (vectorizable_store, vect_is_simple_cond): Likewise. - (vectorizable_condition, vectorizable_comparison): Likewise. - (get_same_sized_vectype, vect_get_mask_type_for_stmt): Likewise. - (vect_is_simple_use): Rename the def_stmt argument to def_stmt_out - and move it to the end. Cope with null def_stmt_outs. - -2018-06-30 Bernd Edlinger - - * Makefile.in (FLAGS_TO_PASS): Add RANLIB_FOR_TARGET. - -2018-06-29 Jeff Law - - * config/v850/v850.c (v850_legitimate_address_p): Handle large - displacements for TARGET_V850E2V3 and newer. - (TARGET_LRA_P): Remove. Defaults to LRA now. - * config/v850/v850.md (sign23byte_load): Remove. - (unsign23byte_load, sign23hword_load, unsign23hword_load): Likewise. - (23word_load, 23byte_store, 23hword_store, 23word_store): Likewise. - -2018-06-29 Martin Liska - - PR lto/85759 - * coverage.c (coverage_init): Mangle full path name. - * doc/invoke.texi: Document the change. - * gcov-io.c (mangle_path): New. - * gcov-io.h (mangle_path): Likewise. - * gcov.c (mangle_name): Use mangle_path for path mangling. - -2018-06-29 Kyrylo Tkachov - - * config/arm/arm.c (output_move_double): Don't allow STRD instructions - if starting source register is not even. - -2018-06-29 Martin Liska - - PR tree-optimization/86263 - * tree-switch-conversion.c (switch_decision_tree::try_switch_expansion): - Make edge redirection. - -2018-06-29 David Malcolm - - * dumpfile.c (dump_loc): Add indentation based on scope depth. - (dump_scope_depth): New variable. - (get_dump_scope_depth): New function. - (dump_begin_scope): New function. - (dump_end_scope): New function. - * dumpfile.h (get_dump_scope_depth): New declaration. - (dump_begin_scope): New declaration. - (dump_end_scope): New declaration. - (class auto_dump_scope): New class. - (AUTO_DUMP_SCOPE): New macro. - * tree-vectorizer.h (DUMP_VECT_SCOPE): Reimplement in terms of - AUTO_DUMP_SCOPE. - -2018-06-29 Richard Biener - - * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Assert - compute_all_dependences succeeds. - * tree-vect-loop.c (vect_get_datarefs_in_loop): Fail early if we - exceed --param loop-max-datarefs-for-datadeps. - -2018-06-29 Jakub Jelinek - - * config/rs6000/t-rs6000: Append rs6000-modes.h to TM_H. - -2018-06-28 Uros Bizjak - - PR target/86348 - * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): Use - alternative 0 in preferred_for_speed attribute. - -2018-06-28 Paul Koning - - * config/pdp11/pdp11-protos.h (pdp11_shift_length): New function. - * config/pdp11/pdp11.c (pdp11_shift_length): New function. - * config/pdp11/pdp11.h (ADJUST_INSN_LENGTH): Remove. - * config/pdp11/pdp11.md: Correct "length" attribute calculation - for shift insn patterns. - -2018-06-28 David Malcolm - - * cgraph.c (cgraph_node::get_body): Replace assignments to - "dump_file" with calls to set_dump_file. - * dumpfile.c (alt_dump_file): Make static, and group with... - (alt_flags): ...this definition. - (dumps_are_enabled): New variable. - (refresh_dumps_are_enabled): New function. - (set_dump_file): New function. - (set_alt_dump_file): New function. - (gcc::dump_manager::dump_start): Replace assignments to - "dump_file" and "alt_dump_file" with calls to set_dump_file and - set_alt_dump_file. - (gcc::dump_manager::dump_finish): Likewise. - * dumpfile.h (alt_dump_file): Delete decl. - (dumps_are_enabled): New variable decl. - (set_dump_file): New function decl. - (dump_enabled_p): Rewrite in terms of new "dumps_are_enabled" - global. - * tree-nested.c (lower_nested_functions): Replace assignments to - "dump_file" with calls to set_dump_file. - -2018-06-28 Eric Botcazou - - * tree-cfg.c (verify_gimple_in_cfg): Call verify_location on the - goto_locus of each outgoing edge of each basic block. - -2018-06-28 Richard Biener - - * dwarf2out.c (decl_scope_table): Remove. - (push_decl_scope): Likewise. - (pop_decl_scope): Likewise. - (gen_type_die_for_member): Do not call push/pop_decl_scope. - (gen_struct_or_union_type_die): Likewise. - (gen_tagged_type_die): Likewise. - (dwarf2out_init): Do not initialize decl_scope_table. - (dwarf2out_c_finalize): Do not free it. - -2018-06-28 Richard Biener - - * dwarf2out.c (gen_subprogram_die): Use is_unit_die when - deciding whether to not re-use a DIE. - -2018-06-28 Richard Biener - - * dwarf2out.c (gen_subprogram_die): Always re-use DIEs with an - DW_AT_abstract_origin attribute. - -2018-06-28 Martin Liska - - * tree-switch-conversion.c (jump_table_cluster::can_be_handled): - Use newly introduced constants. - * tree-switch-conversion.h (struct jump_table_cluster): - Define max_ratio_for_size and max_ratio_for_speed. - -2018-06-28 Martin Liska - - * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): - Add new checking assert to catch invalid state. - (jump_table_cluster::can_be_handled): Handle single case - clusters. - (jump_table_cluster::is_beneficial): Bail out for such case. - (bit_test_cluster::find_bit_tests): - Add new checking assert to catch invalid state. - (bit_test_cluster::can_be_handled): Handle single case - clusters. - (bit_test_cluster::is_beneficial): Bail out for such case. - (switch_decision_tree::analyze_switch_statement): - Fix comment. - -2018-06-28 Martin Liska - - * common.opt: Introduce -completion option. - * gcc.c (driver_handle_option): Handle it. - (driver::main): Print completions if completion - is set. - * opt-suggestions.c (option_proposer::get_completions): - New function. - (option_proposer::suggest_completion): Likewise. - (option_proposer::find_param_completions): Likewise. - (verify_autocompletions): Likewise. - (test_completion_valid_options): Likewise. - (test_completion_valid_params): Likewise. - (in_completion_p): Likewise. - (empty_completion_p): Likewise. - (test_completion_partial_match): Likewise. - (test_completion_garbage): Likewise. - (opt_proposer_c_tests): Likewise. - * opt-suggestions.h: Declare new functions. - * opts.c (common_handle_option): Handle OPT__completion_. - * selftest-run-tests.c (selftest::run_tests): Add - opt_proposer_c_tests. - * selftest.c (assert_str_startswith): New. - * selftest.h (assert_str_startswith): Likewise. - (opt_proposer_c_tests): New. - (ASSERT_STR_STARTSWITH): Likewise. - -2018-06-28 Martin Liska - - * Makefile.in: Add opt-suggestions.o. - * gcc-main.c: Include opt-suggestions.h. - * gcc.c (driver::driver): Likewise. - (driver::~driver): Remove m_option_suggestions. - (driver::build_option_suggestions): Moved to option_proposer. - (driver::suggest_option): Likewise. - (driver::handle_unrecognized_options): Use option_proposer. - * gcc.h (class driver): Add new memver m_option_proposer. - * opt-suggestions.c: New file. - * opt-suggestions.h: New file. - -2018-06-28 Martin Liska - - * vec.h (class auto_string_vec): New (moved from auto_argvec). - (auto_string_vec::~auto_string_vec): Likewise. - -2018-06-28 Eric Botcazou - - * tree-inline.h (struct copy_body_data): Move remapping_type_depth and - prevent_decl_creation_for_types fields up and add reset_location field. - * tree-inline.c (remap_gimple_stmt): Force input_location on the new - statement if id->reset_location is true. - (copy_edges_for_bb): Do not set goto_locus on the new edges if - id->reset_location is true. - (copy_phis_for_bb): Force input_location on the arguments if - id->reset_location is true. - (expand_call_inline): Set id->reset_location if DECL_IGNORED_P - is set on the function to be inlined. - -2018-06-27 Stephan Bergmann - - * doc/invoke.texi (Debugging Options): Add -gsplit-dwarf. - -2018-06-27 Dimitar Dimitrov - - * lra-eliminations.c (update_reg_eliminate): Mark all spanning hard - registers for Pmode. - * lra-lives.c (check_pseudos_live_through_calls): Mark all spanning - hard registers for the clobbered pseudo. - -2018-06-27 Paul Koning - - * common/config/pdp11/pdp11-common.c (pdp11_handle_option): Handle - mutually exclusive options. - * config/pdp11/constraints.md (h): New constraint. - (O): Update definition to match shift code generation. - (D): New constraint. - * config/pdp11/pdp11-modes.def (CCNZ): Define mode. - (CCFP): Remove. - * config/pdp11/pdp11-protos.h (int_no_side_effect_operand): New - function. - (output_jump): Change arguments. - (pdp11_fixed_cc_regs): New function. - (pdp11_cc_mode): Ditto. - (pdp11_expand_shift): Ditto. - (pdp11_assemble_shift): Ditto. - (pdp11_small_shift): Ditto. - (pdp11_branch_cost): Remove. - * config/pdp11/pdp11.c (pdp11_assemble_integer): Remove comments - from output. - (pdp11_register_move_cost): Update for CC registers. - (pdp11_rtx_costs): Add case for LSHIFTRT. - (pdp11_output_jump): Add CCNZ mode conditional branches. - (notice_update_cc_on_set): Remove. - (pdp11_cc_mode): New function. - (simple_memory_operand): Correct pre/post decrement case. - (no_side_effect_operand): New function. - (pdp11_regno_reg_class): Add CC_REGS class. - (pdp11_fixed_cc_regs): New function. - (pdp11_small_shift): New function. - (pdp11_expand_shift): New function to expand shift insns. - (pdp11_assemble_shift): New function to output shifts. - (pdp11_branch_cost): Remove. - (pdp11_modes_tieable_p): Make QI/HI modes tieable. - * config/pdp11/pdp11.h (SIZE_TYPE): Ensure 16-bit type. - (WCHAR_TYPE): Ditto. - (PTRDIFF_TYPE): Ditto. - (ADJUST_INSN_LENGTH): New macro. - (FIXED_REGISTERS): Add CC registers. - (CALL_USED_REGISTERS): Ditto. - (reg_class): Ditto. - (REG_CLASS_NAMES): Ditto. - (REG_CLASS_CONTENTS): Ditto. - (SELECT_CC_MODE): Use new function. - (TARGET_FLAGS_REGNUM): New macro. - (TARGET_FIXED_CONDITION_CODE_REGS): Ditto. - (cc0_reg_rtx): Remove. - (CC_STATUS_MDEP): Remove. - (CC_STATUS_MDEFP_INIT): Remove. - (CC_IN_FPU): Remove. - (NOTICE_UPDATE_CC): Remove. - (REGISTER_NAMES): Add CC registers. - (BRANCH_COST): Change to constant 1. - * config/pdp11/pdp11.md: Rewrite for CCmode condition code - handling. - * config/pdp11/pdp11.opt (mbcopy): Remove. - (mbcopy-builtin): Remove. - (mbranch-cheap): Remove. - (mbranch-expensive): Remove. - * config/pdp11/predicates.md (expand_shift_operand): Update to - match shift code generation. - (ccnz_operator): New predicate. - * doc/invoke.texi (PDP-11 Options): Remove deleted options - -mbcopy, -mbcopy-builtin, -mbranch-cheap, -mbranch-expensive. - Remove non-existent option -mabshi, -mno-abshi. Document mutually - exclusive options. - * doc/md.texi (PDP-11): Document new D and h constraints. Update - description of O constraint. - -2018-06-27 Jeff Law - Austin Law - - * config/v850/v850.md (addsi3_set_flags): New pattern. - (subsi3_set_flags, negsi2_set_flags, andsi3_set_flags): Likewise. - (iorsi3_set_flags, xorsi3_set_flags, one_cmplsi2_set_flags): Likewise. - (zero_extendhisi2_v850_set_flags): Likewise. - (zero_extendqisi2_v850_set_flags): Likewise. - (ashlsi3_set_flags, ashlsi3_v850e2_set_flags): Likewise. - (lshrsi3_set_flags, lshrsi3_v850e2_set_flags): Likewise. - (ashrsi3_set_flags, ashrsi3_v850e2_set_flags): Likewise. - - * config/v850/v850-protos.h (notice_update_cc): Remove. - * config/v850/v850.c (v850_compare_op0, v850_compare_op1): Remove. - (v850_print_operand): Handle 'D' and "d". - (v850_select_cc_mode): Remove ATTRIBUTE_UNUSED for last argument. - Add handling of arithmetic/logical operations compared against zero. - (v850_gen_float_compare): Remove ATTRIBUTE_UNUSED for last argument. - Do not look at v850_compare_op, instead get mode from last argument. - (v850_gen_compare): Remove - (increment_stack): Use addsi3_clobber_flags to avoid splitting failure - after reload for prologue insns. - (expand_prologue): Account for CLOBBER of CC_REGNUM in various - patterns. - (construct_save_jarl): Likewise. - (TARGET_FLAGS_REGNUM): Define. - * config/v850/v850.h (v850_compare_op0, v850_compare_op1): Remove. - (NOTICE_UPDATE_CC): Remove. - * config/v850/v850.md (v850_tst1): Use (reg:CCZ CC_REGNUM) rather - than cc0. Conditionalize on reload_completed. - (cmpsi_insn, setfcc_insn): Likewise. - (tst1 splitter): Turn into define_and_split which sets the flags - after reload. - (cstoresi4, cbranchsf4, cbranchdf4, cbranchsi4_insn): Likewise. - (cbranchsi4, branch_normal, branch_invert): Do not expose cc0 here. - (cstoresf4, cstoredf4): Clobber the flags. - (cmpsi, cmpsf, cmpdf): Remove expanders. - (setf_insn): Remove pattern. - (addsi3): Turn into define_and_split which clobbers the flags after - reload and a suitable pattern (addsi3_clobber_flags) for use after - reload. - (subsi3, negsi2, andsi3, iorsi3, xorsi3, one_cmplsi2) Likewise. - (ashlsi3, ashlsi3_v850e2, lshrsi3, lsh4si3_v850e2): Likewise. - (ashrsi3, ashrsi3_v850e2): Likewise. - (bins): Clobber the flags. - (movsicc_normal_cc, movsicc_normal, movsicc_tst1): Likewise. - (movsicc_tst1_revesed, sasf, swap and rotate patterns): Likewise. - (fix_loop_counter, call_internal_short, call_internal_long): Likewise. - (call_value_internal_short, call_value_internal_long): Likewise. - (callt_save_interrupt, callt_return_interrupt): Likewise. - (save_interrupt, return_interrupt): Likewise. - (callt_save_all_interrupt, save_all_interrupt): Likewise. - (_save_all_interrupt, callt_restore_all_interrupt): Likewise. - (restore_all_interrupt, _restore_all_interrupt): Likewise. - (All FP comparisons): Only allow after reload has completed. - (trfsr): Likewise. - (divh, divhu): Tweak output template. - (branch_z_normal, branch_z_invert): Remove - (branch_nz_normal, branch_nz_invert): Likewise. - (extendhisi_insn, extendqisi_insn): Do not clobber flags. - - * config/v850/v850-modes.def (CCZ, CCNZ): Add new modes. - * config/v850/v850.c (notice_update_cc): Remove. - * config/v850/v850.h (CC_OVERFLOW_UNUSABLE): Remove - (CC_NO_CARRY): Likewise. - (NOTICE_UPDATE_CC): Define to nothing. - * config/v850/v850.md: Remove block comment on cc0 handling - Remove "cc" attribute from all patterns. Remove cc_status handling - from all patterns. Minor formatting fixes. - -2018-06-27 Kyrylo Tkachov - - * config/aarch64/aarch64-cores.def (cortex-a76): New entry. - (cortex-a76.cortex-a55): Likewise. - * config/aarch64/aarch64-tune.md: Regenerate. - * doc/invoke.texi (AArch64 Options): Document cortex-a76 and - cortex-a76.cortex-a55. - -2018-06-27 Jeff Law - - * config/v850/t-v850 (MULTILIB_OPTIONS): Remove 8byte-align. - (MULTILIB_DIRNAMES): Similarly. - -2018-06-27 Eric Botcazou - - * gimple.h (gimple_return_retbnd): Delete. - (gimple_return_set_retbnd): Likewise. - * cgraphunit.c (cgraph_node::expand_thunk): Remove call to - gimple_return_set_retbnd. - * gimple-pretty-print.c (dump_gimple_return): Remove call to - gimple_return_retbnd and adjust. - * tree-inline.h (struct copy_body_data): Remove retbnd field. - * tree-inline.c (remap_gimple_stmt): Remove handling of retbnd. - Explicitly return NULL in a couple more cases. Move assertion - on debug statements and remove unreachable code. - (reset_debug_binding): Do not test id->retbnd. - (expand_call_inline): Do not set it. - -2018-06-27 Rasmus Villemoes - - * configure.ac: Add --disable-gcov option. - * configure: Regenerate. - * Makefile.in: Honour @enable_gcov@. - * doc/install.texi: Document --disable-gcov. - -2018-06-27 Kyrylo Tkachov - - * config/arm/arm-cpus.in (cortex-a76): New entry. - (cortex-a76.cortex-a55): Likewise. - * config/arm/arm-tables.opt: Regenerate. - * config/arm/arm-tune.md: Likewise. - * config/arm/driver-arm.c (arm_cpu_table): Add Cortex-A76 entry. - * doc/invoke.texi (ARM Options): Document cortex-a76 and - cortex-a76.cortex-a55. - -2018-06-27 Tamar Christina - - PR target/85769 - * config/aarch64/aarch64.md (*movhf_aarch64): Add dup v0.4h pattern. - -2018-06-27 Siddhesh Poyarekar - - * config/aarch64/aarch64.h (CALL_USE_REGISTERS): Fix obsolete - comment. - (EPILOGUE_USES): Likewise. - -2018-06-26 Eric Botcazou - - * tree-inline.c (remap_location): New function extracted from... - (copy_edges_for_bb): Add ID parameter. Remap goto_locus. - (copy_phis_for_bb): ...here. Call remap_location. - (copy_cfg_body): Adjust call to copy_edges_for_bb. - -2018-06-26 Aaron Sawdey - - * config/rs6000/rs6000-string.c (expand_block_clear): Don't use - unaligned vsx for 16B memset. - -2018-06-26 Segher Boessenkool - - PR target/86285 - * config/rs6000/rs6000.c (rs6000_init_builtins): Do not set - ieee128_float_type_node to long_double_type_node unless - TARGET_LONG_DOUBLE_128 is set. - -2018-06-26 David Malcolm - - * cfgloop.c (get_loop_location): Convert return type from - location_t to dump_user_location_t, replacing INSN_LOCATION lookups - by implicit construction from rtx_insn *, and using - dump_user_location_t::from_function_decl for the fallback case. - * cfgloop.h (get_loop_location): Convert return type from - location_t to dump_user_location_t. - * cgraphunit.c (walk_polymorphic_call_targets): Update call to - dump_printf_loc to pass in a dump_location_t rather than a - location_t, via the gimple stmt. - * coverage.c (get_coverage_counts): Update calls to - dump_printf_loc to pass in dump_location_t rather than a - location_t. - * doc/optinfo.texi (Dump types): Convert example of - dump_printf_loc from taking "locus" to taking "insn". Update - description of the "_loc" calls to cover dump_location_t. - * dumpfile.c: Include "backend.h", "gimple.h", "rtl.h", and - "selftest.h". - (dump_user_location_t::dump_user_location_t): New constructors, - from gimple *stmt and rtx_insn *. - (dump_user_location_t::from_function_decl): New function. - (dump_loc): Make static. - (dump_gimple_stmt_loc): Convert param "loc" from location_t to - const dump_location_t &. - (dump_generic_expr_loc): Delete. - (dump_printf_loc): Convert param "loc" from location_t to - const dump_location_t &. - (selftest::test_impl_location): New function. - (selftest::dumpfile_c_tests): New function. - * dumpfile.h: Include "profile-count.h". - (class dump_user_location_t): New class. - (struct dump_impl_location_t): New struct. - (class dump_location_t): New class. - (dump_printf_loc): Convert 2nd param from source_location to - const dump_location_t &. - (dump_generic_expr_loc): Delete. - (dump_gimple_stmt_loc): Convert 2nd param from source_location to - const dump_location_t &. - * gimple-fold.c (fold_gimple_assign): Update call to - dump_printf_loc to pass in a dump_location_t rather than a - location_t, via the gimple stmt. - (gimple_fold_call): Likewise. - * gimple-loop-interchange.cc - (loop_cand::analyze_iloop_reduction_var): Update for change to - check_reduction_path. - (tree_loop_interchange::interchange): Update for change to - find_loop_location. - * graphite-isl-ast-to-gimple.c (scop_to_isl_ast): Update for - change in return-type of find_loop_location. - (graphite_regenerate_ast_isl): Likewise. - * graphite-optimize-isl.c (optimize_isl): Likewise. - * graphite.c (graphite_transform_loops): Likewise. - * ipa-devirt.c (ipa_devirt): Update call to dump_printf_loc to - pass in a dump_location_t rather than a location_t, via the - gimple stmt. - * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. - * ipa.c (walk_polymorphic_call_targets): Likewise. - * loop-unroll.c (report_unroll): Convert "locus" param from - location_t to dump_location_t. - (decide_unrolling): Update for change to get_loop_location's - return type. - * omp-grid.c (struct grid_prop): Convert field "target_loc" from - location_t to dump_user_location_t. - (grid_find_single_omp_among_assignments_1): Updates calls to - dump_printf_loc to pass in a dump_location_t rather than a - location_t, via the gimple stmt. - (grid_parallel_clauses_gridifiable): Convert "tloc" from - location_t to dump_location_t. Updates calls to dump_printf_loc - to pass in a dump_location_t rather than a location_t, via the - gimple stmt. - (grid_inner_loop_gridifiable_p): Likewise. - (grid_dist_follows_simple_pattern): Likewise. - (grid_gfor_follows_tiling_pattern): Likewise. - (grid_target_follows_gridifiable_pattern): Likewise. - (grid_attempt_target_gridification): Convert initialization - of local "grid" from memset to zero-initialization; FIXME: does - this require C++11? Update call to dump_printf_loc to pass in a - optinfo_location rather than a location_t, via the gimple stmt. - * profile.c (read_profile_edge_counts): Updates call to - dump_printf_loc to pass in a dump_location_t rather than a - location_t - (compute_branch_probabilities): Likewise. - * selftest-run-tests.c (selftest::run_tests): Call - dumpfile_c_tests. - * selftest.h (dumpfile_c_tests): New decl. - * tree-loop-distribution.c (pass_loop_distribution::execute): - Update for change in return type of find_loop_location. - * tree-parloops.c (parallelize_loops): Likewise. - * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Convert - "locus" from location_t to dump_user_location_t. - (canonicalize_loop_induction_variables): Likewise. - * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_loop): Update - for change in return type of find_loop_location. - * tree-ssa-loop-niter.c (number_of_iterations_exit): Update call - to dump_printf_loc to pass in a dump_location_t rather than a - location_t, via the stmt. - * tree-ssa-sccvn.c (eliminate_dom_walker::before_dom_children): - Likewise. - * tree-vect-loop-manip.c (find_loop_location): Convert return - type from source_location to dump_user_location_t. - (vect_do_peeling): Update for above change. - (vect_loop_versioning): Update for change in type of - vect_location. - * tree-vect-loop.c (check_reduction_path): Convert "loc" param - from location_t to dump_user_location_t. - (vect_estimate_min_profitable_iters): Update for change in type - of vect_location. - * tree-vect-slp.c (vect_print_slp_tree): Convert param "loc" from - location_t to dump_location_t. - (vect_slp_bb): Update for change in type of vect_location. - * tree-vectorizer.c (vect_location): Convert from source_location - to dump_user_location_t. - (try_vectorize_loop_1): Update for change in vect_location's type. - (vectorize_loops): Likewise. - (increase_alignment): Likewise. - * tree-vectorizer.h (vect_location): Convert from source_location - to dump_user_location_t. - (find_loop_location): Convert return type from source_location to - dump_user_location_t. - (check_reduction_path): Convert 1st param from location_t to - dump_user_location_t. - * value-prof.c (check_counter): Update call to dump_printf_loc to - pass in a dump_user_location_t rather than a location_t; update - call to error_at for change in type of "locus". - (check_ic_target): Update call to dump_printf_loc to - pass in a dump_user_location_t rather than a location_t, via the - call_stmt. - -2018-06-26 Robin Dapp - - * config/s390/s390.h (enum processor_flags): Do not use - default tune parameter when -march was specified. - -2018-06-26 Jakub Jelinek - - PR target/86314 - * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2s): - Check reg_overlap_mentioned_p in addition to reg_set_p with the same - operands. - -2018-06-26 Richard Biener - - PR tree-optimization/86287 - PR bootstrap/86316 - * tree-vect-loop.c (vect_transform_loop_stmt): Fix read-after-free. - (vect_analyze_loop): Initialize n_stmts. - -2018-06-26 Richard Biener - - PR middle-end/86271 - * fold-const.c (fold_convertible_p): Pointer extension - isn't valid. - -2018-06-26 Alexandre Oliva - - PR debug/86064 - * dwarf2out.c (loc_list_has_views): Adjust comments. - (dw_loc_list): Split single cross-partition range with - nonzero locview. - -2018-06-25 Jeff Law - - * common/config/v850/v850-common.c (TARGET_DEFAULT_TARGET_FLAGS): Turn - on -mbig-switch by default. - - * config/v850/predicates.md (const_float_1_operand): Fix match_code - test. - (const_float_0_operand): Remove unused predicate. - * config/v850/v850.md (define_constants): Remove UNSPEC_LOOP. - (define_c_enum unspec): Add LOOP, RCP and RSQRT constants. - (recipsf2): New expander. Original pattern now called - (recipsf2_insn). - (recipdf2, recipdf2_insn): Similarly. - (rsqrtsf2, rsqrtsf2_insn): Similarly - (rsqrtdf2, rsqrtdf2_insn): Similarly - -2018-06-26 Gerald Pfeifer - - * ginclude/stddef.h: Remove an obsolete comment on FreeBSD 5. - Simplify logic for FreeBSD (twice). - -2018-06-25 Martin Sebor - - PR tree-optimization/86204 - * tree-ssa-strlen.c (handle_builtin_strlen): Avoid storing - a strnlen result if it's less than the length of the string. - -2018-06-25 Martin Sebor - - PR tree-optimization/85700 - * gimple-fold.c (gimple_fold_builtin_strncat): Adjust comment. - * tree-ssa-strlen.c (is_strlen_related_p): Handle integer subtraction. - (maybe_diag_stxncpy_trunc): Distinguish strncat from strncpy. - -2018-06-25 Martin Sebor - - * doc/extend.texi (Zero-length arrays): Update and clarify. - -2018-06-25 Michael Meissner - - * config.gcc (powerpc64le*): Revert January 16th, 2018 patch that - added IEEE/IBM long double multilib support on PowerPC little - endian Linux systems. - * config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Likewise. - (MULTILIB_DEFAULTS): Likewise. - * config/rs6000/rs6000.c (rs6000_option_override_internal): - Likewise. - * config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Likewise. - * config/rs6000/t-ldouble-linux64le-ibm: Delete, no longer used. - * config/rs6000/t-ldouble-linux64le-ieee: Delete, no longer used. - -2018-06-25 Alexander Monakov - - PR middle-end/86311 - * sort.cc (REORDER_23): Avoid memcpy with same destination and source. - (REORDER_45): Likewise. - -2018-06-25 Jeff Law - - * config/v850/v850.md (divmodhi4): Make sure to sign extend the - dividend to 32 bits. Adjust length. - (udivmodhi4): Cleanup output template. Fix length. - -2018-06-25 Carl Love - - * config/rs6000/vsx.md: Change word selector to prefered location. - -2018-06-25 Richard Biener - - PR tree-optimization/86304 - * tree-vectorizer.c (vectorize_loops): Walk over new possibly - epilogue-if-converted loops as well. - -2018-06-25 Jan Hubicka - - * lto-section-out.c (lto_begin_section): Do not print section - name for noaddr and unnumbered dumps. - -2018-06-25 Richard Biener - - * tree-vectorizer.h (struct vec_info_shared): New structure - with parts split out from struct vec_info and loop_nest from - struct _loop_vec_info. - (struct vec_info): Adjust accordingly. - (struct _loop_vec_info): Likewise. - (LOOP_VINFO_LOOP_NEST): Adjust. - (LOOP_VINFO_DATAREFS): Likewise. - (LOOP_VINFO_DDRS): Likewise. - (struct _bb_vec_info): Likewise. - (BB_VINFO_DATAREFS): Likewise. - (BB_VINFO_DDRS): Likewise. - (struct _stmt_vec_info): Add dr_aux member. - (DR_VECT_AUX): Adjust to refer to member of DR_STMTs vinfo. - (DR_MISALIGNMENT_UNINITIALIZED): New. - (set_dr_misalignment): Adjust. - (dr_misalignment): Assert misalign isn't DR_MISALIGNMENT_UNINITIALIZED. - (vect_analyze_loop): Adjust prototype. - (vect_analyze_loop_form): Likewise. - * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): - Compute dependences lazily. - (vect_record_base_alignments): Use shared datarefs/ddrs. - (vect_verify_datarefs_alignment): Likewise. - (vect_analyze_data_refs_alignment): Likewise. - (vect_analyze_data_ref_accesses): Likewise. - (vect_analyze_data_refs): Likewise. - * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Add - constructor parameter for shared part. - (vect_analyze_loop_form): Pass in shared part and adjust. - (vect_analyze_loop_2): Pass in storage for the number of - stmts. Move loop nest finding to the caller. Compute - datarefs lazily. - (vect_analyze_loop): Pass in shared part. - (vect_transform_loop): Verify shared datarefs are unchanged. - * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Add - constructor parameter for shared part. - (vect_slp_analyze_bb_1): Pass in shared part and adjust. - (vect_slp_bb): Verify shared datarefs are unchanged before - transform. - * tree-vect-stmts.c (ensure_base_align): Adjust for DR_AUX - change. - (new_stmt_vec_info): Initialize DR_AUX misalignment to - DR_MISALIGNMENT_UNINITIALIZED. - * tree-vectorizer.c (vec_info::vec_info): Add constructor - parameter for shared part. - (vec_info::~vec_info): Adjust. - (vec_info_shared::vec_info_shared): New. - (vec_info_shared::~vec_info_shared): Likewise. - (vec_info_shared::save_datarefs): Likewise. - (vec_info_shared::check_datarefs): Likewise. - (try_vectorize_loop_1): Construct shared part live for analyses - of a single loop for multiple vector sizes. - * tree-parloops.c (gather_scalar_reductions): Adjust. - -2018-06-25 Richard Biener - - * tree-vect-data-refs.c (vect_find_stmt_data_reference): Modify - DR for SIMD lane accesses here and mark DR with (void *)-1 aux. - (vect_analyze_data_refs): Remove similar code from here and - simplify accordingly. - -2018-06-25 Richard Biener - - * tree-vect-data-refs.c (vect_check_gather_scatter): Fail - for reverse storage order accesses rather than asserting - they cannot happen here. - -2018-06-25 Tom de Vries - - PR debug/86257 - * config/i386/i386.md (define_insn "*tls_global_dynamic_64_"): - Use data16 instead of .byte for insn prefix. - -2018-06-25 Andreas Krebbel - - PR C++/86082 - * parser.c (make_char_string_pack): Pass this literal chars - through cpp_interpret_string. - (cp_parser_userdef_numeric_literal): Check the result of - make_char_string_pack. - -2018-06-24 Maya Rashish - - * ginclude/stddef.h: Simplify conditions around avoiding - re-definition of __size_t. - -2018-06-22 Jan Hubicka - - * lto-streamer-out.c (tree_is_indexable): Make LABEL_DECL nonindexable - unless it is forced or nonlocal; assert that we stream no IMPORTED_DECL. - -2018-06-22 Maya Rashish - - * doc/invoke.texi (mno-fancy-math-387): Update for changes - made to OpenBSD and NetBSD through the years. - -2018-06-22 Kelvin Nilsen - - * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change - behavior of vec_pack (vector double, vector double) to match - behavior of vec_float2 (vector double, vector double). - -2018-06-22 Olivier Hainque - - * gimplify.c (gimplify_function_tree): Prevent creation - of a trampoline for the address of the current function - passed to entry/exit instrumentation hooks. - -2018-06-22 Aaron Sawdey - - PR target/86222 - * config/rs6000/rs6000-string.c (expand_strn_compare): Handle -m32 - correctly. - -2018-06-22 Martin Liska - - PR tree-optimization/86263 - * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): - Bail out if is_enabled is false. - * tree-switch-conversion.h (jump_table_cluster::is_enabled): - New declaration. - (jump_table_cluster::is_enabled): New function. - -2018-06-22 Jan Hubicka - - * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream - BINFO_BASE_ACCESSES and BINFO_VPTR_FIELD. - * tree-streamer-in.c (streamer_read_tree_bitfields): Likewise. - (lto_input_ts_binfo_tree_pointers): Likewise. - * tree-streamer-out.c (streamer_write_tree_bitfields, - write_ts_binfo_tree_pointers): Likewise. - * tree.c (free_lang_data_in_binfo): Clear BINFO_VPTR_FIELD. - -2018-06-22 Jan Hubicka - - * tree.c (free_lang_data_in_type): Free all TYPE_VFIELDs. - -2018-06-22 Martin Liska - - * symbol-summary.h (get): Make it pure and inline move - functionality from ::get function. - (get): Remove and inline into ::get and ::get_create. - (get_create): Move code from ::get function. - -2018-06-22 Rainer Orth - - PR target/85994 - * config/i386/sol2.h (CPP_SPEC): Don't pass -P for - -x assembler-with-cpp. - -2018-06-22 Rainer Orth - - * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define - _FILE_OFFSET_BITS=64 for C++. - -2018-06-21 Michael Meissner - - * config/rs6000/rs6000.md (extendtfif2): Add missing 128-bit - conversion insn that shows up when pr85657-3.c is compiled using - IEEE 128-bit long double. - (neg2_internal): Use the correct mode to check whether the - mode is IBM extended. - * config/rs6000/rs6000.c (init_float128_ieee): Prevent complex - multiply and divide external functions from being created more - than once. - -2018-06-21 Eric Botcazou - - * cfgrtl.c (fixup_reorder_chain): Do not emit NOPs in DECL_IGNORED_P - functions. - (rtl_merge_blocks): Likewise. Do not emit a NOP if the location of - the edge can be forwarded. - (cfg_layout_merge_blocks): Likewise. - -2018-06-21 Eric Botcazou - - * except.c (finish_eh_generation): Commit edge insertions only after - the EH edges have been redirected from post-landing to landing pads. - -2018-06-21 Eric Botcazou - - * tree-nested.c (get_frame_type): Use create_tmp_var_raw instead of - create_tmp_var_for to create the FRAME decl. - (finalize_nesting_tree_1): Do not unchain the FRAME decl. - -2018-06-21 Eric Botcazou - - * tree-inline.c (copy_edges_for_bb): Minor tweak. - (maybe_move_debug_stmts_to_successors): Also reset the locus of the - debug statement when resetting its value. - (expand_call_inline): Copy the locus of the call onto the assignment - of the return value, if any. Use local variable in more cases. - -2018-06-21 Martin Liska - - * ipa-pure-const.c (propagate_nothrow): Use - funct_state_summaries->get. - (dump_malloc_lattice): Likewise. - (propagate_malloc): Likewise. - -2018-06-21 Richard Biener - - * lto-streamer-out.c (DFS::DFS_write_tree_body): Update outdated - comment. Follow BLOCK_ABSTRACT_ORIGIN unconditionally. - * tree-streamer-in.c (lto_input_ts_block_tree_pointers): Update - comment. - * tree-streamer-out.c (write_ts_block_tree_pointers): Stream - BLOCK_ABSTRACT_ORIGIN unconditionally. - -2018-06-21 David Malcolm - - * ipa-cp.c (ipcp_driver): Set edge_clone_summaries to NULL after - deleting it. - * ipa-reference.c (ipa_reference_c_finalize): Delete - ipa_ref_opt_sum_summaries and set it to NULL. - -2018-06-21 Tom de Vries - - PR tree-optimization/85859 - * tree-ssa-tail-merge.c (stmt_local_def): Copy gimple_is_call - test with comment from bb_no_side_effects_p. - -2018-06-21 Richard Biener - - PR tree-optimization/86232 - * tree-ssa-loop-niter.c (number_of_iterations_popcount): Adjust - max for constant niter. - -2018-06-21 Andre Vieira - - * config/aarch64/aarch64-simd.md - (*aarch64_crypto_aesv16qi_xor_combine): New. - -2018-06-21 Andre Vieira - - * config/aarch64/aarch64-simd.md (aarch64_crypto_aesv16qi): - Make opernads of the unspec commutative. - -2018-06-21 Richard Biener - - * tree-data-ref.c (dr_step_indicator): Handle NULL DR_STEP. - * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr): - Avoid calling vect_mark_for_runtime_alias_test with gathers or scatters. - (vect_analyze_data_ref_dependence): Re-order checks to deal with - NULL DR_STEP. - (vect_record_base_alignments): Do not record base alignment - for gathers or scatters. - (vect_compute_data_ref_alignment): Drop return value that is always - true. Bail out early for gathers or scatters. - (vect_enhance_data_refs_alignment): Bail out early for gathers - or scatters. - (vect_find_same_alignment_drs): Likewise. - (vect_analyze_data_refs_alignment): Remove dead code. - (vect_slp_analyze_and_verify_node_alignment): Likewise. - (vect_analyze_data_refs): For possible gathers or scatters do - not create an alternate DR, just check their possible validity - and mark them. Adjust DECL_NONALIASED handling to not rely - on DR_BASE_ADDRESS. - * tree-vect-loop-manip.c (vect_update_inits_of_drs): Do not - update inits of gathers or scatters. - * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): - Also copy gather/scatter flag to pattern vinfo. - -2018-06-20 Kelvin Nilsen - - * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change - behavior of vec_packsu (vector unsigned long long, vector unsigned - long long) to match behavior of vec_packs with same signature. - -2018-06-20 Chung-Lin Tang - Thomas Schwinge - Cesar Philippidis - - * gimplify.c (gimplify_scan_omp_clauses): Add support for - OMP_CLAUSE_{IF_PRESENT,FINALIZE}. - (gimplify_adjust_omp_clauses): Likewise. - (gimplify_oacc_declare_1): Add support for GOMP_MAP_RELEASE, remove - support for GOMP_MAP_FORCE_{ALLOC,TO,FROM,TOFROM}. - (gimplify_omp_target_update): Update handling of acc update and - enter/exit data. - * omp-low.c (install_var_field): Remove unused parameter - base_pointers_restrict. - (scan_sharing_clauses): Remove base_pointers_restrict parameter. - Update call to install_var_field. Handle OMP_CLAUSE_{IF_PRESENT, - FINALIZE} - (omp_target_base_pointers_restrict_p): Delete. - (scan_omp_target): Update call to scan_sharing_clauses. - * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_{IF_PRESENT, - FINALIZE}. - * tree-nested.c (convert_nonlocal_omp_clauses): Handle - OMP_CLAUSE_{IF_PRESENT,FINALIZE}. - (convert_local_omp_clauses): Likewise. - * tree-pretty-print.c (dump_omp_clause): Likewise. - * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_{IF_PRESENT, - FINALIZE}. - (omp_clause_code_name): Likewise. - -2018-06-20 Jakub Jelinek - - PR debug/86194 - * var-tracking.c (use_narrower_mode_test): Check if shift amount can - be narrowed. - - PR tree-optimization/86231 - * tree-vrp.c (union_ranges): For ( [ ) ] or ( )[ ] range and - anti-range don't overwrite *vr0min before using it to compute *vr0max. - -2018-06-20 Tom de Vries - - PR tree-optimization/86097 - * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Also convert *nit to - iv type if signedness of iv type is not the same as that of *nit. - -2018-06-20 Jakub Jelinek - - * cfgrtl.c (rtl_verify_edges): Formatting fix. If bb->preds has any - EDGE_EH edges, verify they are all EDGE_EH. - -2018-06-20 Maya Rashish - - * ginclude/stddef.h: Limit #include to NetBSD. - -2018-06-20 Kyrylo Tkachov - - * config/aarch64/aarch64-tuning-flags.def (no_ldp_stp_qregs): New. - * config/aarch64/aarch64.c (xgene1_tunings): Add - AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS to tune_flags. - (aarch64_mode_valid_for_sched_fusion_p): - Allow 16-byte modes. - (aarch64_classify_address): Allow 16-byte modes for load_store_pair_p. - * config/aarch64/aarch64-ldpstp.md: Add peepholes for LDP STP of - 128-bit modes. - * config/aarch64/aarch64-simd.md (load_pair): - New pattern. - (vec_store_pair): Likewise. - * config/aarch64/iterators.md (VQ2): New mode iterator. - -2018-06-20 Martin Liska - - * tree-switch-conversion.c (jump_table_cluster::can_be_handled): - Change default ratio from 10 to 8. - -2018-06-20 Martin Liska - - * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): - New. - (bit_test_cluster::find_bit_tests): Likewise. - (switch_decision_tree::analyze_switch_statement): Find clusters. - * tree-switch-conversion.h (struct jump_table_cluster): Document - hierarchy. - -2018-06-20 Martin Liska - - * tree-switch-conversion.c (switch_conversion::collect): - Record m_uniq property. - (switch_conversion::expand): Bail out for special conditions. - (group_cluster::~group_cluster): New. - (group_cluster::group_cluster): Likewise. - (group_cluster::dump): Likewise. - (jump_table_cluster::emit): New. - (switch_decision_tree::fix_phi_operands_for_edges): New. - (struct case_node): Remove struct. - (jump_table_cluster::can_be_handled): New. - (case_values_threshold): Moved to header. - (reset_out_edges_aux): Likewise. - (jump_table_cluster::is_beneficial): New. - (bit_test_cluster::can_be_handled): Likewise. - (add_case_node): Remove. - (bit_test_cluster::is_beneficial): New. - (case_bit_test::cmp): New. - (bit_test_cluster::emit): New. - (expand_switch_as_decision_tree_p): Remove. - (bit_test_cluster::hoist_edge_and_branch_if_true): New. - (fix_phi_operands_for_edge): Likewise. - (switch_decision_tree::analyze_switch_statement): New. - (compute_cases_per_edge): Move ... - (switch_decision_tree::compute_cases_per_edge): ... here. - (try_switch_expansion): Likewise. - (switch_decision_tree::try_switch_expansion): Likewise. - (record_phi_operand_mapping): Likewise. - (switch_decision_tree::record_phi_operand_mapping): Likewise. - (emit_case_decision_tree): Likewise. - (switch_decision_tree::emit): Likewise. - (balance_case_nodes): Likewise. - (switch_decision_tree::balance_case_nodes): Likewise. - (dump_case_nodes): Likewise. - (switch_decision_tree::dump_case_nodes): Likewise. - (emit_jump): Likewise. - (switch_decision_tree::emit_jump): Likewise. - (emit_cmp_and_jump_insns): Likewise. - (switch_decision_tree::emit_cmp_and_jump_insns): Likewise. - (emit_case_nodes): Likewise. - (switch_decision_tree::emit_case_nodes): Likewise. - (conditional_probability): Remove. - * tree-switch-conversion.h (enum cluster_type): New. - (PRINT_CASE): New. - (struct cluster): Likewise. - (cluster::cluster): Likewise. - (struct simple_cluster): Likewise. - (simple_cluster::simple_cluster): Likewise. - (struct group_cluster): Likewise. - (struct jump_table_cluster): Likewise. - (struct bit_test_cluster): Likewise. - (struct min_cluster_item): Likewise. - (struct case_tree_node): Likewise. - (case_tree_node::case_tree_node): Likewise. - (jump_table_cluster::case_values_threshold): Likewise. - (struct case_bit_test): Likewise. - (struct switch_decision_tree): Likewise. - (struct switch_conversion): Likewise. - (switch_decision_tree::reset_out_edges_aux): Likewise. - -2018-06-20 Martin Liska - - * tree-switch-conversion.c (MAX_CASE_BIT_TESTS): Remove. - (hoist_edge_and_branch_if_true): Likewise. - (expand_switch_using_bit_tests_p): Likewise. - (struct case_bit_test): Likewise. - (case_bit_test_cmp): Likewise. - (emit_case_bit_tests): Likewise. - (switch_conversion::switch_conversion): New class. - (struct switch_conv_info): Remove old struct. - (collect_switch_conv_info): More to ... - (switch_conversion::collect): ... this. - (check_range): Likewise. - (switch_conversion::check_range): Likewise. - (check_all_empty_except_final): Likewise. - (switch_conversion::check_all_empty_except_final): Likewise. - (check_final_bb): Likewise. - (switch_conversion::check_final_bb): Likewise. - (create_temp_arrays): Likewise. - (switch_conversion::create_temp_arrays): Likewise. - (free_temp_arrays): Likewise. - (gather_default_values): Likewise. - (switch_conversion::gather_default_values): Likewise. - (build_constructors): Likewise. - (switch_conversion::build_constructors): Likewise. - (constructor_contains_same_values_p): Likewise. - (switch_conversion::contains_same_values_p): Likewise. - (array_value_type): Likewise. - (switch_conversion::array_value_type): Likewise. - (build_one_array): Likewise. - (switch_conversion::build_one_array): Likewise. - (build_arrays): Likewise. - (switch_conversion::build_arrays): Likewise. - (gen_def_assigns): Likewise. - (switch_conversion::gen_def_assigns): Likewise. - (prune_bbs): Likewise. - (switch_conversion::prune_bbs): Likewise. - (fix_phi_nodes): Likewise. - (switch_conversion::fix_phi_nodes): Likewise. - (gen_inbound_check): Likewise. - (switch_conversion::gen_inbound_check): Likewise. - (process_switch): Use the newly created class. - (switch_conversion::expand): New. - (switch_conversion::~switch_conversion): New. - * tree-switch-conversion.h: New file. - -2018-06-20 Richard Sandiford - - * tree-vectorizer.h (NUM_PATTERNS, vect_recog_func_ptr): Move to - tree-vect-patterns.c. - * tree-vect-patterns.c (vect_supportable_direct_optab_p): New function. - (vect_recog_dot_prod_pattern): Use it. Remove the type_in argument. - (vect_recog_sad_pattern): Likewise. - (vect_recog_widen_sum_pattern): Likewise. - (vect_recog_pow_pattern): Likewise. Check for a null vectype. - (vect_recog_widen_shift_pattern): Remove the type_in argument. - (vect_recog_rotate_pattern): Likewise. - (vect_recog_mult_pattern): Likewise. - (vect_recog_vector_vector_shift_pattern): Likewise. - (vect_recog_divmod_pattern): Likewise. - (vect_recog_mixed_size_cond_pattern): Likewise. - (vect_recog_bool_pattern): Likewise. - (vect_recog_mask_conversion_pattern): Likewise. - (vect_try_gather_scatter_pattern): Likewise. - (vect_recog_widen_mult_pattern): Likewise. Check for a null vectype. - (vect_recog_over_widening_pattern): Likewise. - (vect_recog_gather_scatter_pattern): Likewise. - (vect_recog_func_ptr): Move from tree-vectorizer.h - (vect_vect_recog_func_ptrs): Move further down the file. - (vect_recog_func): Likewise. Remove the third argument. - (NUM_PATTERNS): Define based on vect_vect_recog_func_ptrs. - (vect_pattern_recog_1): Expect the pattern function to do any - necessary target tests. Also expect it to provide a vector type. - Remove the type_in handling. - -2018-06-20 Richard Sandiford - - * tree-vect-patterns.c (vect_pattern_detected): New function. - (vect_recog_dot_prod_patternm, vect_recog_sad_pattern) - (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern) - (vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern - (vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern) - (vect_recog_mult_pattern, vect_recog_divmod_pattern) - (vect_recog_mixed_size_cond_pattern, vect_recog_bool_pattern) - (vect_recog_mask_conversion_pattern) - (vect_try_gather_scatter_pattern): Likewise. - -2018-06-20 Richard Sandiford - - * tree-vect-patterns.c (vect_get_internal_def): New function. - (vect_recog_dot_prod_pattern, vect_recog_sad_pattern) - (vect_recog_vector_vector_shift_pattern, check_bool_pattern) - (search_type_for_mask_1): Use it. - -2018-06-20 Richard Sandiford - - * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Remove - redundant WIDEN_SUM_EXPR handling. - (vect_recog_sad_pattern): Likewise. - -2018-06-20 Richard Sandiford - - * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Remove - redundant check that the types of a PLUS_EXPR or MULT_EXPR agree. - (vect_recog_sad_pattern): Likewise PLUS_EXPR, ABS_EXPR and MINUS_EXPR. - (vect_recog_widen_mult_pattern): Likewise MULT_EXPR. - (vect_recog_widen_sum_pattern): Likewise PLUS_EXPR. - -2018-06-20 Richard Sandiford - - * tree-vect-stmts.c (vectorizable_call): Make sure that we - use the stmt_vec_info of the original bb statement for the - new zero assignment, even if the call is part of a pattern. - -2018-06-20 Richard Sandiford - - * tree-vectorizer.h (_stmt_vec_info): Note above pattern_def_seq - that the sequence is attached to the original statement rather - than the pattern statement. - * tree-vect-loop.c (vect_determine_vf_for_stmt): Take the - PATTERN_DEF_SEQ from the original statement rather than - the main pattern statement. - * tree-vect-stmts.c (free_stmt_vec_info): Likewise. - * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise. - (vect_mark_pattern_stmts): Don't copy the PATTERN_DEF_SEQ. - -2018-06-20 Richard Sandiford - - * tree-vect-stmts.c (vect_analyze_stmt): Move the handling of pattern - definition statements before the early exit for statements that aren't - live or relevant. - * tree-vect-loop.c (vect_transform_loop_stmt): New function, - split out from... - (vect_transform_loop): ...here. Process pattern definition - statements without first checking whether the main pattern - statement is live or relevant. - -2018-06-19 Eric Botcazou - - * tree-cfgcleanup.c (tree_forwarder_block_p): Do not return false at - -O0 if the locus represent UNKNOWN_LOCATION but have different values. - -2018-06-19 Aaron Sawdey - - * config/rs6000/rs6000-string.c (select_block_compare_mode): Check - TARGET_EFFICIENT_OVERLAPPING_UNALIGNED here instead of in caller. - (do_and3, do_and3_mask, do_compb3, do_rotl3): New functions. - (expand_block_compare): Change select_block_compare_mode call. - (expand_strncmp_align_check): Use new functions, fix comment. - (emit_final_str_compare_gpr): New function. - (expand_strn_compare): Refactor and clean up code. - * config/rs6000/vsx.md (vsx_mov_64bit): Remove *. - -2018-06-19 Tony Reix - Damien Bergamini - David Edelsohn - - * collect2.c (static_obj): New variable. - (static_libs): New variable. - (is_in_list): Uncomment declaration. - (main): Track AIX libraries linked statically. - (is_in_list): Uncomment definition. - (scan_prog_file): Don't add AIX shared libraries initializer - to constructor list if linking statically. - -2018-06-19 Max Filippov - - * config/xtensa/xtensa.md (UNSPEC_FRAME_BLOCKAGE): New unspec - constant. - (allocate_stack, frame_blockage, *frame_blockage): New patterns. - -2018-06-19 Jan Hubicka - - * tree.c (find_decls_types_r): Remove all non-VAR_DECLs from - blocks. - -2018-06-19 Martin Liska - - * config/i386/i386.c (ix86_can_inline_p): Do not use - ipa_fn_summaries::get_create. - * ipa-cp.c (ipcp_cloning_candidate_p): Replace get_create with - get. - (devirtualization_time_bonus): Likewise. - (ipcp_propagate_stage): Likewise. - * ipa-fnsummary.c (redirect_to_unreachable): Likewise. - (edge_set_predicate): Likewise. - (evaluate_conditions_for_known_args): Likewise. - (evaluate_properties_for_edge): Likewise. - (ipa_call_summary::reset): Tranform to ... - (ipa_call_summary::~ipa_call_summary): ... this. - (ipa_fn_summary::reset): Transform to ... - (ipa_fn_summary::~ipa_fn_summary): ... this. - (ipa_fn_summary_t::remove): Rename to ... - (ipa_fn_summary_t::remove_callees): ... this. - (ipa_fn_summary_t::duplicate): Use placement new - instead of memory copy. - (ipa_call_summary_t::duplicate): Likewise. - (ipa_call_summary_t::remove): Remove. - (dump_ipa_call_summary): Change get_create to get. - (ipa_dump_fn_summary): Dump only when summary exists. - (analyze_function_body): Use symbol_summary::get instead - of get_create. - (compute_fn_summary): Likewise. - (estimate_edge_devirt_benefit): Likewise. - (estimate_edge_size_and_time): Likewise. - (inline_update_callee_summaries): Likewise. - (remap_edge_change_prob): Likewise. - (remap_edge_summaries): Likewise. - (ipa_merge_fn_summary_after_inlining): Likewise. - (write_ipa_call_summary): Likewise. - (ipa_fn_summary_write): Likewise. - (ipa_free_fn_summary): Likewise. - * ipa-fnsummary.h (struct GTY): Add new ctor and copy ctor. - (struct ipa_call_summary): Likewise. - * ipa-icf.c (sem_function::merge): Use symbol_summary::get instead - of get_create. - * ipa-inline-analysis.c (do_estimate_edge_time): Likewise. - (estimate_size_after_inlining): Likewise. - (estimate_growth): Likewise. - (growth_likely_positive): Likewise. - * ipa-inline-transform.c (clone_inlined_nodes): Likewise. - (inline_call): Likewise. - * ipa-inline.c (caller_growth_limits): Likewise. - (can_inline_edge_p): Likewise. - (can_inline_edge_by_limits_p): Likewise. - (compute_uninlined_call_time): Likewise. - (compute_inlined_call_time): Likewise. - (want_inline_small_function_p): Likewise. - (edge_badness): Likewise. - (update_caller_keys): Likewise. - (update_callee_keys): Likewise. - (inline_small_functions): Likewise. - (inline_to_all_callers_1): Likewise. - (dump_overall_stats): Likewise. - (early_inline_small_functions): Likewise. - (early_inliner): Likewise. - * ipa-profile.c (ipa_propagate_frequency_1): Likewise. - * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. - * ipa-pure-const.c (malloc_candidate_p): Likewise. - * ipa-split.c (execute_split_functions): Likewise. - * symbol-summary.h: Likewise. - * tree-sra.c (ipa_sra_preliminary_function_checks): Likewise. - -2018-06-19 Richard Biener - - * tree-vectorizer.c (try_vectorize_loop_1): Split out of ... - (vectorize_loops): ... here. Fix dbgcnt handling. - (try_vectorize_loop): Wrap try_vectorize_loop_1. - -2018-06-19 Segher Boessenkool - - PR target/86197 - * config/rs6000/rs6000.md (rs6000_discover_homogeneous_aggregate): An - ieee128 argument takes up only one (vector) register, not two (floating - point) registers. - -2018-06-19 Eric Botcazou - - * gimplify.c (gimplify_init_constructor): Really never clear for an - incomplete constructor if CONSTRUCTOR_NO_CLEARING is set. - -2018-06-19 Richard Biener - - PR tree-optimization/86179 - * tree-vect-patterns.c (vect_pattern_recog_1): Clean up - after failed recognition. - -2018-06-18 Martin Sebor - - PR middle-end/85602 - * calls.c (maybe_warn_nonstring_arg): Handle strncat. - * tree-ssa-strlen.c (is_strlen_related_p): Make extern. - Handle integer subtraction. - (maybe_diag_stxncpy_trunc): Handle nonstring source arguments. - * tree-ssa-strlen.h (is_strlen_related_p): Declare. - -2018-06-18 David Malcolm - - * config/frv/frv-protos.h (frv_ifcvt_modify_insn): Strengthen 3rd - param from rtx to rtx_insn *. - * config/frv/frv.c (frv_ifcvt_add_insn): Likewise for "insn" - param. - (frv_ifcvt_modify_insn): Likwise. - (frv_ifcvt_modify_final): Likwise for local "existing_insn", - adding an as_a cast. Likewise for local "insn". - * config/mips/mips.c (r10k_insert_cache_barriers): Add an - as_a cast to local "unprotected_region" once - it's been established that it's not NULL or pc_rtx. - * config/nds32/nds32-relax-opt.c (nds32_group_insns): Strengthen - param "sethi" from rtx to rtx_insn *. - (nds32_group_float_insns): Likewise for param "insn". - * config/vax/vax-protos.h (vax_output_int_add): Likewise for 1st - param. - (vax_output_int_subtract): Likewise. - * config/vax/vax.c (vax_output_int_add): Likewise for param - "insn". - (vax_output_int_subtract): Likewise. - * emit-rtl.c (set_insn_deleted): Likewise, removing cast. - (emit_pattern_after): Likewise for param "after". - (emit_insn_after): Likewise. - (emit_jump_insn_after): Likewise. - (emit_call_insn_after): Likewise. - (emit_debug_insn_after): Likewise. - (emit_pattern_before): Likewise for param "before". - (emit_insn_before): Likewise. - (emit_jump_insn_before): Likewise. - * final.c (get_insn_template): Likewise for param "insn", removing - a cast. - * output.h (get_insn_template): Likewise for 2nd param. - * rtl.h (emit_insn_before): Likewise. - (emit_jump_insn_before): Likewise. - (emit_debug_insn_before_noloc): Likewise. - (emit_insn_after): Likewise. - (emit_jump_insn_after): Likewise. - (emit_call_insn_after): Likewise. - (emit_debug_insn_after): Likewise. - (set_insn_deleted): Likewise for param. - -2018-06-18 Michael Meissner - - PR target/85358 - * config/rs6000/rs6000-modes.def (toplevel): Rework the 128-bit - floating point modes, so that IFmode is numerically greater than - TFmode, which is greater than KFmode using FRACTIONAL_FLOAT_MODE - to declare the ordering. This prevents IFmode from being - converted to TFmode when long double is IEEE 128-bit on an ISA 3.0 - machine. Include rs6000-modes.h to share the fractional values - between genmodes* and the rest of the compiler. - (IFmode): Likewise. - (KFmode): Likewise. - (TFmode): Likewise. - * config/rs6000/rs6000-modes.h: New file. - * config/rs6000/rs6000.c (rs6000_debug_reg_global): Change the - meaning of rs6000_long_double_size so that 126..128 selects an - appropriate 128-bit floating point type. - (rs6000_option_override_internal): Likewise. - * config/rs6000/rs6000.h (toplevel): Include rs6000-modes.h. - (TARGET_LONG_DOUBLE_128): Change the meaning of - rs6000_long_double_size so that 126..128 selects an appropriate - 128-bit floating point type. - (LONG_DOUBLE_TYPE_SIZE): Update comment. - * config/rs6000/rs6000.md (trunciftf2): Correct the modes of the - source and destination to match the standard usage. - (truncifkf2): Likewise. - (copysign3, IEEE iterator): Rework copysign of float128 on - ISA 2.07 to use an explicit clobber, instead of passing in a - temporary. - (copysign3_soft): Likewise. - -2018-06-18 David Malcolm - - * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): - Replace dump_printf_loc call with DUMP_VECT_SCOPE. - (vect_slp_analyze_instance_dependence): Likewise. - (vect_enhance_data_refs_alignment): Likewise. - (vect_analyze_data_refs_alignment): Likewise. - (vect_slp_analyze_and_verify_instance_alignment - (vect_analyze_data_ref_accesses): Likewise. - (vect_prune_runtime_alias_test_list): Likewise. - (vect_analyze_data_refs): Likewise. - * tree-vect-loop-manip.c (vect_update_inits_of_drs): Likewise. - * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. - (vect_analyze_scalar_cycles_1): Likewise. - (vect_get_loop_niters): Likewise. - (vect_analyze_loop_form_1): Likewise. - (vect_update_vf_for_slp): Likewise. - (vect_analyze_loop_operations): Likewise. - (vect_analyze_loop): Likewise. - (vectorizable_induction): Likewise. - (vect_transform_loop): Likewise. - * tree-vect-patterns.c (vect_pattern_recog): Likewise. - * tree-vect-slp.c (vect_analyze_slp): Likewise. - (vect_make_slp_decision): Likewise. - (vect_detect_hybrid_slp): Likewise. - (vect_slp_analyze_operations): Likewise. - (vect_slp_bb): Likewise. - * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise. - (vectorizable_bswap): Likewise. - (vectorizable_call): Likewise. - (vectorizable_simd_clone_call): Likewise. - (vectorizable_conversion): Likewise. - (vectorizable_assignment): Likewise. - (vectorizable_shift): Likewise. - (vectorizable_operation): Likewise. - * tree-vectorizer.h (DUMP_VECT_SCOPE): New macro. - -2018-06-18 Martin Sebor - - PR tree-optimization/81384 - * builtin-types.def (BT_FN_SIZE_CONST_STRING_SIZE): New. - * builtins.c (expand_builtin_strnlen): New function. - (expand_builtin): Call it. - (fold_builtin_n): Avoid setting TREE_NO_WARNING. - * builtins.def (BUILT_IN_STRNLEN): New. - * calls.c (maybe_warn_nonstring_arg): Handle BUILT_IN_STRNLEN. - Warn for bounds in excess of maximum object size. - * tree-ssa-strlen.c (maybe_set_strlen_range): Return tree representing - single-value ranges. Handle strnlen. - (handle_builtin_strlen): Handle strnlen. - (strlen_check_and_optimize_stmt): Same. - * doc/extend.texi (Other Builtins): Document strnlen. - -2018-06-18 Maya Rashish - - * config/alpha/openbsd.h (TARGET_DEFAULT): Define. - (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Likewise. - (INTMAX_TYPE, UINTMAX_TYPE, WINT_TYPE): Likewise. - - * config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Move from - here to ... - * config/alpha/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Here. - -2018-06-18 Prathamesh Kulkarni - - * tree.c (escaped_string::escape): Replace cast to char * by - const_cast (unescaped). - -2018-06-18 Nick Clifton - - PR 84195 - * tree.c (escaped_string): New class. Converts an unescaped - string into its escaped equivalent. - (warn_deprecated_use): Use the new class to convert the - deprecation message, if present. - (test_escaped_strings): New self test. - (test_c_tests): Add test_escaped_strings. - * doc/extend.texi (deprecated): Add a note that the - deprecation message is affected by the -fmessage-length - option, and that control characters will be escaped. - (#pragma GCC error): Document this pragma. - (#pragma GCC warning): Likewise. - * doc/invoke.texi (-fmessage-length): Document this option's - effect on the #warning and #error preprocessor directives and - the deprecated attribute. - -2018-06-18 Eric Botcazou - - * tree.c (decl_value_expr_lookup): Revert latest change. - (decl_value_expr_insert): Likewise. - -2018-06-17 Eric Botcazou - - * gimplify.c (nonlocal_vlas): Delete. - (nonlocal_vla_vars): Likewise. - (gimplify_var_or_parm_decl): Do not add debug VAR_DECLs for non-local - referenced VLAs. - (gimplify_body): Do not create and destroy nonlocal_vlas. - * tree-nested.c: Include diagnostic.h. - (use_pointer_in_frame): Tweak. - (lookup_field_for_decl): Add assertion and declare the transformation. - (convert_nonlocal_reference_op) : Rework and issue an - internal error when the reference is in a wrong context. Do not - create a debug decl by default. - (note_nonlocal_block_vlas): Delete. - (convert_nonlocal_reference_stmt) : Do not call it. - (convert_local_reference_op) : Skip the frame decl. Do not - create a debug decl by default. - (convert_gimple_call) : Issue an internal error when the - call is in a wrong context. - (fixup_vla_decls): New function. - (finalize_nesting_tree_1): Adjust comment. Call fixup_vla_decls if no - debug variables were created. - * tree.c (decl_value_expr_lookup): Add checking assertion. - (decl_value_expr_insert): Likewise. - -2018-06-16 Kugan Vivekanandarajah - - PR middle-end/82479 - * ipa-fnsummary.c (will_be_nonconstant_expr_predicate): Handle CALL_EXPR. - * tree-scalar-evolution.c (interpret_expr): Likewise. - (expression_expensive_p): Likewise. - * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Likewise. - * tree-ssa-loop-niter.c (number_of_iterations_popcount): New. - (number_of_iterations_exit_assumptions): Use number_of_iterations_popcount. - (ssa_defined_by_minus_one_stmt_p): New. - -2018-06-16 Kugan Vivekanandarajah - - PR middle-end/64946 - * cfgexpand.c (expand_debug_expr): Hande ABSU_EXPR. - * config/i386/i386.c (ix86_add_stmt_cost): Likewise. - * dojump.c (do_jump): Likewise. - * expr.c (expand_expr_real_2): Check operand type's sign. - * fold-const.c (const_unop): Handle ABSU_EXPR. - (fold_abs_const): Likewise. - * gimple-pretty-print.c (dump_unary_rhs): Likewise. - * gimple-ssa-backprop.c (backprop::process_assign_use): Likesie. - (strip_sign_op_1): Likesise. - * match.pd: Add new pattern to generate ABSU_EXPR. - * optabs-tree.c (optab_for_tree_code): Handle ABSU_EXPR. - * tree-cfg.c (verify_gimple_assign_unary): Likewise. - * tree-eh.c (operation_could_trap_helper_p): Likewise. - * tree-inline.c (estimate_operator_cost): Likewise. - * tree-pretty-print.c (dump_generic_node): Likewise. - * tree-vect-patterns.c (vect_recog_sad_pattern): Likewise. - * tree.def (ABSU_EXPR): New. - -2018-06-16 Jakub Jelinek - - PR middle-end/86095 - * common.opt (Wunsafe-loop-optimizations): Add Ignore, remove Var, - documented as preserved for backward compatibility only. - * doc/invoke.texi: Remove -Wunsafe-loop-optimizations documentation. - - PR rtl-optimization/86108 - * bb-reorder.c (create_forwarder_block): Renamed to ... - (create_eh_forwarder_block): ... this. Split OLD_BB after labels and - jump from new landing pad to the second part. - (sjlj_fix_up_crossing_landing_pad, dw2_fix_up_crossing_landing_pad): - Adjust callers. - -2018-06-15 Jakub Jelinek - - PR middle-end/85878 - * expr.c (expand_assignment): Remove now redundant COMPLEX_MODE_P - check from first store_expr, use to_mode instead of GET_MODE (to_rtx). - Only call store_expr for halves if the mode is the same. - - PR middle-end/86123 - * match.pd ((X / Y) == 0 -> X < Y): Don't transform complex divisions. - Fix up comment formatting. - -2018-06-15 Bernd Edlinger - - * typed-splay-tree.h (typed_splay_tree::remove): New function. - (typed_splay_tree::closure, - typed_splay_tree::inner_foreach_fn, typed_splay_tree::m_inner): Deleted. - (typed_splay_tree::typed_splay_tree, - typed_splay_tree::operator =): Declared private. - (typed_splay_tree::splay_tree_key, typed_splay_tree::splay_tree_value, - typed_splay_tree::splay_tree_node_s, typed_splay_tree::KDEL, - typed_splay_tree::VDEL, typed_splay_tree::splay_tree_delete_helper, - typed_splay_tree::rotate_left, typed_splay_tree::rotate_right, - typed_splay_tree::splay_tree_splay, - typed_splay_tree::splay_tree_foreach_helper, - typed_splay_tree::splay_tree_insert, - typed_splay_tree::splay_tree_remove, - typed_splay_tree::splay_tree_lookup, - typed_splay_tree::splay_tree_predecessor, - typed_splay_tree::splay_tree_successor, - typed_splay_tree::splay_tree_min, - typed_splay_tree::splay_tree_max): Took over from splay-tree.c/.h. - (typed_splay_tree::root, typed_splay_tree::comp, - typed_splay_tree::delete_key, - typed_splay_tree::delete_value): New data members. - * typed-splay-tree.c (selftest::test_str_to_int): Add a test for - typed_splay_tree::remove. - -2018-06-15 Matthew Fortune - - * config/mips/mips.h (ASM_SPEC): Pass through -mcrc, -mno-crc, - -mginv and -mno-ginv to the assembler. - * config/mips/mips.opt (-mcrc): New option. - (-mginv): Likewise. - * doc/invoke.text (-mcrc): Document. - (-mginv): Likewise. - -2018-06-15 Nick Clifton - - PR 84195 - * tree.c (escaped_string): New class. Converts an unescaped - string into its escaped equivalent. - (warn_deprecated_use): Use the new class to convert the - deprecation message, if present. - (test_escaped_strings): New self test. - (test_c_tests): Add test_escaped_strings. - * doc/extend.texi (deprecated): Add a note that the - deprecation message is affected by the -fmessage-length - option, and that control characters will be escaped. - (#pragma GCC error): Document this pragma. - (#pragma GCC warning): Likewise. - * doc/invoke.texi (-fmessage-length): Document this option's - effect on the #warning and #error preprocessor directives and - the deprecated attribute. - -2018-06-15 Richard Biener - - * tree-vect-slp.c (vect_slp_bb): Dump MSG_OPTIMIZED_LOCATIONS - here, also noting vector size used. - * tree-vectorizer.c (vectorize_loops): Adjust. Note vector - size used in MSG_OPTIMIZED_LOCATIONS dump. - (pass_slp_vectorize::execute): Adjust. - -2018-06-15 Claudiu Zissulescu - - PR target/85968 - * config/arc/arc.c (arc_return_address_register): Fix - if-condition. - -2018-06-15 Richard Biener - - PR middle-end/86159 - * tree-cfg.c (gimplify_build3): Do not strip sign conversions, - leave useless conversion stripping to force_gimple_operand_gsi. - (gimplify_build2): Likewise. - (gimplify_build1): Likewise. - -2018-06-15 Richard Biener - - PR middle-end/86076 - * tree-cfg.c (move_stmt_op): unshare invariant addresses - before adjusting their block. - -2018-06-15 Sebastian Huber - - * config.gcc (riscv*-*-elf* | riscv*-*-rtems*): Use custom - multilibs for *-*-rtems*. - * config/riscv/t-rtems: New file. - -2018-06-14 Jakub Jelinek - - PR middle-end/86122 - * match.pd ((A +- CST1) +- CST2): Punt if last resort - unsigned_type_for returns NULL. - - PR target/85945 - * lower-subreg.c (find_decomposable_subregs): Don't decompose float - subregs of multi-word pseudos unless the float mode has word size. - -2018-06-14 Richard Biener - - PR middle-end/86139 - * tree-vect-generic.c (build_word_mode_vector_type): Remove - duplicate and harmful type_hash_canon. - * tree.c (type_hash_canon): Assert we didn't find ourselves. - -2018-06-14 Richard Biener - - PR ipa/86124 - * tree-ssa-struct-alias.c (create_variable_info_for): Handle - NULL cgraph_node. - -2018-06-14 Sebastian Huber - - * config/rtems.h (STDINT_LONG32): Define. - -2018-06-13 Matthew Fortune - Prachi Godbole - - * config/mips/mips-cpus.def: Define P6600. - * config/mips/mips-tables.opt: Regenerate. - * config/mips/mips.c (mips_ucbranch_type): New enum. - (mips_rtx_cost_data): Add support for P6600. - (mips_issue_rate): Likewise. - (mips_multipass_dfa_lookahead): Likewise. - (mips_avoid_hazard): Likewise. - (mips_reorg_process_insns): Likewise. - (mips_classify_branch_p6600): New function. - * config/mips/mips.h (TUNE_P6600): New define. - (MIPS_ISA_LEVEL_SPEC): Infer mips64r6 from p6600. - (ENABLE_LD_ST_PAIRS): Enable load/store bonding for p6600. - * config/mips/mips.md: Include p6600.md. - (processor): Add p6600. - * config/mips/p6600.md: New file. - * doc/invoke.texi: Add p6600 to supported architectures. - -2018-06-13 Martin Sebor - - PR tree-optimization/86114 - * gimple-fold.c (gimple_fold_builtin_strlen): Only handle LHS - of integer types. - * tree-ssa-strlen.c (maybe_set_strlen_range): Same. - -2018-06-13 Richard Biener - - * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): - Properly set vector type of the intermediate stmt. - * tree-vect-stmts.c (vectorizable_operation): The destination - var always has vectype_out type. - -2018-06-13 Jeff Law - - * config/rl78/rl78.c (move_elim_pass): Use TDF_NONE rather than - integer 0 for argument to print_rtl_with_bb. - (rl78_reorg): Likewise. - -2018-06-13 David Malcolm - - * config/arc/arc.c (hwloop_optimize): Strengthen local "end_label" - from rtx to rtx_insn *. - * config/bfin/bfin.c (hwloop_optimize): Likewise for local - "label". - (add_sched_insns_for_speculation): Likewise for local "target", - converting usage of JUMP_LABEL to JUMP_LABEL_AS_INSN. - * config/c6x/c6x.c (reorg_split_calls): Strengthen param "call_labels" - from rtx_insn ** to rtx_code_label **. - (reorg_emit_nops): Likewise. - (c6x_reorg): Likewise for local "call_labels". - * config/sh/sh-protos.h (get_dest_uid): Strengthen 1st param from - rtx to rtx_insn *. - * config/sh/sh.c (dump_table): Strengthen local "lab" from rtx to - rtx_code_label *, adding safe_as_a casts to - the loops over LABEL_REFS. - (fixup_addr_diff_vecs): Add as_a to usage of - braf_label. - (barrier_align): Convert usage of JUMP_LABEL to JUMP_LABEL_AS_INSN. - (get_dest_uid): Strengthen param "label" from rtx to rtx_insn *. - (split_branches): Strengthen local "olabel" from rtx to - rtx_insn *, adding a safe_as_a cast. - * emit-rtl.c (next_real_insn): Strengthen param from "rtx" - to "rtx_insn *". - (add_insn_after): Likewise for first two params. - (add_insn_before): Likewise. - (remove_insn): Likewise for param. - (emit_pattern_before_noloc): Likewise for second and third params. - (emit_jump_insn_before_noloc): Convert NULL_RTX to NULL. - (emit_call_insn_before_noloc): Likewise. - (emit_debug_insn_before_noloc): Strengthen "before" param from "rtx" - to "rtx_insn *". - (emit_barrier_before): Likewise. - (emit_label_before): Strengthen "label" param from "rtx" to - "rtx_code_label *". Strengthen "before" param from "rtx" to - "rtx_insn *". - (emit_insn_after_1): Strengthen "after" param from "rtx" to - "rtx_insn *". - (emit_pattern_after_noloc): Likewise. - (emit_insn_after_noloc): Likewise. - (emit_jump_insn_after_noloc): Likewise. - (emit_call_insn_after_noloc): Likewise. - (emit_debug_insn_after_noloc): Likewise. - (emit_barrier_after): Likewise. - (emit_label_after): Likewise for both params. - (emit_pattern_after_setloc): Likewise for "after" param. Convert - "loc" param from "int" to "location_t". - (emit_insn_after_setloc): Likewise. - (emit_jump_insn_after_setloc): Likewise. - (emit_call_insn_after_setloc): Likewise. - (emit_debug_insn_after_setloc): Likewise. - (emit_pattern_before_setloc): Likewise for "before" param. Convert - "loc" param from "int" to "location_t". - (emit_pattern_before): Convert NULL_RTX to NULL. - (emit_insn_before_setloc): Convert "loc" param from "int" to - "location_t". - (emit_jump_insn_before_setloc): Likewise. - (emit_call_insn_before_setloc): Likewise. - (emit_debug_insn_before_setloc): Strengthen "before" param from rtx to - rtx_insn *. Convert "loc" param from "int" to "location_t". - * rtl.h (emit_insn_before_setloc, emit_jump_insn_before_setloc, - emit_call_insn_before_setloc, emit_debug_insn_before_setloc): - Convert 3rd param from "int" to "location_t". - (emit_barrier_before, emit_barrier_after, next_real_insn): - Strengthen param from rtx to rtx_insn *. - (emit_label_before): Strengthen 1st param from "rtx" to - "rtx_code_label *". Strengthen 2nd param from "rtx" to - "rtx_insn *". - (emit_insn_after_noloc, emit_jump_insn_after_noloc, - emit_call_insn_after_noloc, emit_debug_insn_after_noloc): - Strengthen 2nd param from "rtx" to "rtx_insn *". - (emit_insn_after_setloc, emit_jump_insn_after_setloc) - emit_call_insn_after_setloc, emit_debug_insn_after_setloc): - Likewise. Convert 3rd param from "int" to "location_t". - (emit_label_after): Strengthen 1st param from "rtx" to - "rtx_code_label *". - (next_real_insn, remove_insn): Strengthen param from "rtx" to - "rtx_insn *". - (add_insn_before, add_insn_after): Strengthen 1st and 2nd params - from "rtx" to "rtx_insn *". - -2018-06-13 Jan Hubicka - - * cgraph.c (cgraph_node::get_untransformed_body): Dump function - bodies streamed in with -Q. - * dumpfile.c (dump_files): Add lto-stream-out dump file. - * dumpfile.h (tree_dump_index): Add lto_stream_out. - * gimple-streamer-out.c: Include gimple-pretty-print.h - (output_bb): Dump stmts streamed. - * lto-section-out.c: Include print-tree.h - (lto_begin_section): Dump sections created. - (lto_output_decl_index): Dump decl encoded. - * lto-streamer-out.c: Include print-tree.h - (create_output_block): Dump output block created. - (DFS::DFS_write_tree_body): Dump DFS SCCs streamed. - (output_function): Dump function output. - (output_constructor): Dump constructor streamed. - (write_global_stream): Output indexes encoded. - (produce_asm_for_decls): Dump streams encoded. - * lto-streamer.c (streamer_dump_file): New global var. - * lto-streamer.h (streamer_dump_file): Declare. - * passes.c (ipa_write_summaries): Initialize streamer dump. - * varpool.c (varpool_node::get_constructor): Dump constructors streamed - in. - -2018-06-13 Eric Botcazou - - PR target/86048 - * config/i386/winnt.c (i386_pe_seh_cold_init): Do not emit negative - offsets for register save directives. Emit a second batch of save - directives, if need be, when the function accesses prior frames. - -2018-06-12 Claudiu Zissulescu - - * config/arc/fpu.md (fmasf4): Force operand to register. - (fnmasf4): Likewise. - -2018-06-12 Claudiu Zissulescu - - * config/arc/arc-protos.h (arc_pad_return): Remove. - * config/arc/arc.c (machine_function): Remove force_short_suffix - and size_reason. - (arc_print_operand): Adjust printing of '&'. - (arc_verify_short): Remove conditional printing of short suffix. - (arc_final_prescan_insn): Remove reference to size_reason. - (pad_return): New function. - (arc_reorg): Call pad_return. - (arc_pad_return): Remove. - (arc_init_machine_status): Remove reference to force_short_suffix. - * config/arc/arc.md (vunspec): Add VUNSPEC_ARC_BLOCKAGE. - (attr length): When attribute iscompact is true force to 2 - regardless; in the case of maybe check if we want to force the - instruction to have 4 bytes length. - (nopv): Change it to generate 4 byte long nop as well. - (blockage): New pattern. - (simple_return): Remove call to arc_pad_return. - (p_return_i): Likewise. - -2018-06-12 Claudiu Zissulescu - - * config/arc/elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - -2018-06-12 Claudiu Zissulescu - - * config/arc/builtins.def (SYNC): SYNC instruction is valid on all - ARC cores. - -2018-06-12 Claudiu Zissulescu - - * config/arc/arc.c (atomic_exchangesi): EX instruction is default - for ARC700 and ARCv2. - -2018-06-13 Chenghua Xu - - PR target/86076 - * config/mips/loongson.md (vec_setv4hi): Gen_lowpart for - operands[2] instead of operands[1]. - - -2018-06-12 Richard Sandiford - - * lra-constraints.c (simplify_operand_subreg): In the paradoxical - case, check whether the outer register overlaps an unallocatable - register, not just whether it fits the required class. - -2018-06-12 Richard Sandiford - - * poly-int.h (can_div_trunc_p): Add new overload in which all values - are poly_ints. - * alias.c (get_addr): Extend CONST_INT handling to poly_int_rtx_p. - (memrefs_conflict_p): Likewise. - (init_alias_analysis): Likewise. - * cfgexpand.c (expand_debug_expr): Likewise. - * combine.c (combine_simplify_rtx, force_int_to_mode): Likewise. - * cse.c (fold_rtx): Likewise. - * explow.c (adjust_stack, anti_adjust_stack): Likewise. - * expr.c (emit_block_move_hints): Likewise. - (clear_storage_hints, push_block, emit_push_insn): Likewise. - (store_expr_with_bounds, reduce_to_bit_field_precision): Likewise. - (emit_group_load_1): Use rtx_to_poly_int64 for group offsets. - (emit_group_store): Likewise. - (find_args_size_adjust): Use strip_offset. Use rtx_to_poly_int64 - to read the PRE/POST_MODIFY increment. - * calls.c (store_one_arg): Use strip_offset. - * rtlanal.c (rtx_addr_can_trap_p_1): Extend CONST_INT handling to - poly_int_rtx_p. - (set_noop_p): Use rtx_to_poly_int64 for the elements selected - by a VEC_SELECT. - * simplify-rtx.c (avoid_constant_pool_reference): Use strip_offset. - (simplify_binary_operation_1): Extend CONST_INT handling to - poly_int_rtx_p. - * var-tracking.c (compute_cfa_pointer): Take a poly_int64 rather - than a HOST_WIDE_INT. - (hard_frame_pointer_adjustment): Change from HOST_WIDE_INT to - poly_int64. - (adjust_mems, add_stores): Update accodingly. - (vt_canonicalize_addr): Track polynomial offsets. - (emit_note_insn_var_location): Likewise. - (vt_add_function_parameter): Likewise. - (vt_initialize): Likewise. - -2018-06-12 Jeff Law - - * config.gcc (alpha*-*-freebsd*): Remove. - * config/alpha/freebsd.h: Remove. - -2018-06-12 David Malcolm - - PR other/69968 - * spellcheck-tree.c (levenshtein_distance): Rename to... - (get_edit_distance): ...this, and update for underlying renaming. - * spellcheck-tree.h (levenshtein_distance): Rename to... - (get_edit_distance): ...this. - * spellcheck.c (levenshtein_distance): Rename to... - (get_edit_distance): ...this. Convert from Levenshtein distance - to Damerau-Levenshtein distance by supporting transpositions of - adjacent characters. Rename "v1" to "v_next" and "v0" to - "v_one_ago". - (selftest::levenshtein_distance_unit_test_oneway): Rename to... - (selftest::test_edit_distance_unit_test_oneway): ...this, and - update for underlying renaming. - (selftest::levenshtein_distance_unit_test): Rename to... - (selftest::test_get_edit_distance_unit): ...this, and update for - underlying renaming. - (selftest::test_find_closest_string): Add example from PR 69968 - where transposition helps - (selftest::test_metric_conditions): Update for renaming. - (selftest::test_metric_conditions): Likewise. - (selftest::spellcheck_c_tests): Likewise. - * spellcheck.h (levenshtein_distance): Rename both overloads to... - (get_edit_distance): ...this. - (best_match::consider): Update for renaming. - -2018-06-12 Martin Sebor - - PR tree-optimization/85259 - * builtins.c (compute_objsize): Handle constant offsets. - * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Return - true iff a warning has been issued. - * gimple.h (gimple_nonartificial_location): New function. - * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Call - gimple_nonartificial_location and handle -Wno-system-headers. - (handle_builtin_stxncpy): Same. - -2018-06-12 Martin Sebor - - PR c/85931 - * fold-const.c (operand_equal_p): Handle SAVE_EXPR. - -2018-06-12 Will Schmidt - - * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add - BUILTIN_VEC_XST entries for pointer to double and long long. - -2018-06-12 H.J. Lu - - PR target/85990 - * config/i386/gnu-user.h (TARGET_THREAD_SPLIT_STACK_OFFSET): - Update comments. - * config/i386/gnu-user64.h (TARGET_THREAD_SPLIT_STACK_OFFSET): - Likewise. - -2018-06-12 Martin Liska - - * doc/options.texi: Document IntegerRange. - -2018-06-12 Martin Liska - - * config/i386/i386.opt: Make MPX-related options as Deprecated. - * opt-functions.awk: Handle Deprecated flag. - * opts-common.c (decode_cmdline_option): Handle cl_deprecated - and report error. - (read_cmdline_option): Report warning for a deprecated option. - * opts.h (struct cl_option): Add new field cl_deprecated. - (CL_ERR_DEPRECATED): New. - -2018-06-12 Martin Liska - - * doc/options.texi: Document Deprecated option flag. - -2018-06-12 Claudiu Zissulescu - - * config/arc/arc-arch.h (arc_extras): New enum. - (arc_cpu_t):Add field extra. - (arc_cpu_types): Consider the extras. - * config/arc/arc-cpus.def: Add extras info. - * config/arc/arc-opts.h (processor_type): Consider extra field. - * config/arc/arc.c (arc_override_options): Handle extra field. - -2018-06-12 Claudiu Zissulescu - - * config/arc/arc-arch.h: Update ARC_OPTX macro. - * config/arc/arc-options.def (ARC_OPTX): Introduce a new doc - field. - * config/arc/arc.c (arc_init): Update pic warning. - (irq_range): Update irq range parsing warnings. - (arc_override_options): Update various warning messages. - (arc_handle_aux_attribute): Likewise. - -2018-06-12 Robert Suchanek - - * config/mips/i6400.md (i6400_fpu_fadd): Remove frint. - -2018-06-12 Jozef Lawrynowicz - - * doc/sourcebuild.texi: Document usage of line number 0 in verify - compiler messages directives. - -2018-06-12 Matthew Fortune - - * config/mips/mips-cpus.def: New MIPS_CPU for i6500. - * config/mips/mips-tables.opt: Regenerate. - * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Mark i6500 as - mips64r6. - * doc/invoke.texi: Document -march=i6500. - -2018-06-12 Prachi Godbole - - * config/mips/i6400.md (i6400_gpmuldiv): Remove cpu_unit. - (i6400_gpmul): Add cpu_unit. - (i6400_gpdiv): Likewise. - (i6400_msa_add_d): Update reservations. - (i6400_msa_int_add) Likewise. - (i6400_msa_short_logic3) Likewise. - (i6400_msa_short_logic2) Likewise. - (i6400_msa_short_logic) Likewise. - (i6400_msa_move) Likewise. - (i6400_msa_cmp) Likewise. - (i6400_msa_short_float2) Likewise. - (i6400_msa_div_d) Likewise. - (i6400_msa_long_logic1) Likewise. - (i6400_msa_long_logic2) Likewise. - (i6400_msa_mult) Likewise. - (i6400_msa_long_float2) Likewise. - (i6400_msa_long_float4) Likewise. - (i6400_msa_long_float5) Likewise. - (i6400_msa_long_float8) Likewise. - (i6400_fpu_fadd): Include frint type. - (i6400_fpu_store): New define_insn_reservation. - (i6400_fpu_load): Likewise. - (i6400_fpu_move): Likewise. - (i6400_fpu_fcmp): Likewise. - (i6400_fpu_fmadd): Likewise. - (i6400_int_mult): Include imul3nc type and update reservation. - (i6400_int_div): Include idiv3 type and update reservation. - (i6400_int_load): Update to check type not move_type. - (i6400_int_store): Likewise. - (i6400_int_prefetch): Set zero latency. - -2018-06-12 Eric Botcazou - - * gcc.c: Document new %@{...} sequence. - (LINK_COMMAND_SPEC): Use it for the -L switches. - (cpp_unique_options): Use it for the -I switches. - (at_file_argbuf): New global variable. - (in_at_file): Likewise. - (alloc_args): Create at_file_argbuf. - (clear_args): Truncate at_file_argbuf. - (store_arg): If in_at_file, push the argument onto at_file_argbuf. - (open_at_file): New function. - (close_at_file): Likewise. - (create_at_file): Delete. - (do_spec_1) <'i'>: Use open_at_file/close_at_file. - <'o'>: Likewise. - <'@'>: New case. - (validate_switches_from_spec): Deal with %@{...} sequence. - (validate_switches): Likewise. - (driver::finalize): Call clear_args. - -2018-06-11 Rasmus Villemoes - - * config/vx-common.h (USE_TM_CLONE_REGISTRY): #define to 0. - -2018-06-11 Martin Sebor - - * doc/invoke.texi (-Wall): List -Wc++17-compat. - (Wno-class-memaccess): Add @opindex. - (Wno-templates, Wno-multiple-inheritance): Same. - (Wno-virtual-inheritance, Wno-namespaces): Same. - (Wno-pedantic, Wno-chkp, Wcoverage-mismatch): Same. - (Wno-format-overflow, Wno-format-truncation): Same. - (Wno-unused-local-typedefs, Walloc-size-larger-than): Same. - (Wno-alloc-size-larger-than, Wframe-larger-than): Same - (Wno-stack-usage, Wno-c++-compat, Wno-c++11-compat): Same. - (Wno-c++14-compat, Wno-c++17-compat, Wno-openmp-simd): Same. - (Wno-unsuffixed-float-constants, Wno-addr-space-convert): Same. - (Wno-misspelled-isr): Same. - -2018-06-11 Martin Sebor - - * PR tree-optimization/86083 - * tree-ssa-strlen.c (handle_char_store): Use tree_expr_nonzero_p. - -2018-06-11 Zhouyi Zhou - - * tree-eh.c (lower_eh_constructs_2): Add a comma to comment. - -2018-06-11 Segher Boessenkool - - PR target/85755 - * config/rs6000/rs6000.md (*movdi_internal32): Put constraint modifiers - on the correct operand. - (*movdi_internal64): Ditto. - -2018-06-11 Martin Liska - - PR tree-optimization/86089 - * tree-ssa-strlen.c (get_string_length): Move back removed hunk. - -2018-06-11 Julia Koval - - * config/i386/vaesintrin.h (_mm_aesdec_epi128, _mm_aesdeclast_epi128) - _mm_aesenc_epi128, _mm_aesenclast_epi128: Remove. - * config/i386/vpclmulqdqintrin.h (_mm_clmulepi64_epi128): Remove. - -2018-06-11 Olivier Hainque - - * dwarf2out.c (gen_compile_unit_die): Fallout to DW_LANG_Ada83 - for Ada with strict dwarf2. - -2018-06-08 Peter Bergner - - PR target/85755 - * config/rs6000/rs6000.c (mem_operand_gpr): Enable PRE_INC and PRE_DEC - addresses. - -2018-06-08 Jan Hubicka - - * dumpfile.c (FIRST_ME_AUTO_NUMBERED_DUMP): Bump to 4. - -2018-06-08 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_passes_ieee128): Protect with #if - TARGET_ELF. - -2018-06-08 Martin Liska - - * tree-cfg.h (debug_function): Fix argument type to match - implementation. - -2018-06-08 Martin Liska - - * config/powerpcspe/powerpcspe.c (rs6000_xcoff_visibility): - Remove usage of MPX-related (and removed) fields. - * config/rs6000/rs6000.c (rs6000_xcoff_visibility): Likewise. - -2018-06-08 David Malcolm - - * cfg.c (debug): Use TDF_NONE rather than 0. - * cfghooks.c (debug): Likewise. - * dumpfile.c (DUMP_FILE_INFO): Likewise; also for OPTGROUP. - (struct dump_option_value_info): Convert to... - (struct kv_pair): ...this template type. - (dump_options): Convert to kv_pair; use TDF_NONE - rather than 0. - (optinfo_verbosity_options): Likewise. - (optgroup_options): Convert to kv_pair; use - OPTGROUP_NONE. - (gcc::dump_manager::dump_register): Use optgroup_flags_t rather - than int for "optgroup_flags" param. - (dump_generic_expr_loc): Use dump_flags_t rather than int for - "dump_kind" param. - (dump_dec): Likewise. - (dump_finish): Use TDF_NONE rather than 0. - (gcc::dump_manager::opt_info_enable_passes): Use optgroup_flags_t - rather than int for "optgroup_flags" param. Use TDF_NONE rather - than 0. Update for change to option_ptr. - (opt_info_switch_p_1): Convert "optgroup_flags" param from int * - to optgroup_flags_t *. Use TDF_NONE and OPTGROUP_NONE rather than - 0. Update for changes to optinfo_verbosity_options and - optgroup_options. - (opt_info_switch_p): Convert optgroup_flags from int to - optgroup_flags_t. - (dump_basic_block): Use dump_flags_t rather than int - for "dump_kind" param. - * dumpfile.h (TDF_ADDRESS, TDF_SLIM, TDF_RAW, TDF_DETAILS, - TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO, TDF_UID) - TDF_STMTADDR, TDF_GRAPH, TDF_MEMSYMS, TDF_RHS_ONLY, TDF_ASMNAME, - TDF_EH, TDF_NOUID, TDF_ALIAS, TDF_ENUMERATE_LOCALS, TDF_CSELIB, - TDF_SCEV, TDF_GIMPLE, TDF_FOLDING, MSG_OPTIMIZED_LOCATIONS, - MSG_MISSED_OPTIMIZATION, MSG_NOTE, MSG_ALL, TDF_COMPARE_DEBUG, - TDF_NONE): Convert from macros to... - (enum dump_flag): ...this new enum. - (dump_flags_t): Update to use enum. - (operator|, operator&, operator~, operator|=, operator&=): - Implement for dump_flags_t. - (OPTGROUP_NONE, OPTGROUP_IPA, OPTGROUP_LOOP, OPTGROUP_INLINE, - OPTGROUP_OMP, OPTGROUP_VEC, OPTGROUP_OTHER, OPTGROUP_ALL): - Convert from macros to... - (enum optgroup_flag): ...this new enum. - (optgroup_flags_t): New typedef. - (operator|, operator|=): Implement for optgroup_flags_t. - (struct dump_file_info): Convert field "alt_flags" to - dump_flags_t. Convert field "optgroup_flags" to - optgroup_flags_t. - (dump_basic_block): Use dump_flags_t rather than int for param. - (dump_generic_expr_loc): Likewise. - (dump_dec): Likewise. - (dump_register): Convert param "optgroup_flags" to - optgroup_flags_t. - (opt_info_enable_passes): Likewise. - * early-remat.c (early_remat::dump_edge_list): Use TDF_NONE rather - than 0. - * gimple-pretty-print.c (debug): Likewise. - * gimple-ssa-store-merging.c (bswap_replace): Likewise. - (merged_store_group::apply_stores): Likewise. - * gimple-ssa-strength-reduction.c (insert_initializers): Likewise. - * gimple.c (verify_gimple_pp): Likewise. - * graphite-poly.c (print_pbb_body): Likewise. - * passes.c (pass_manager::register_one_dump_file): Convert - local "optgroup_flags" to optgroup_flags_t. - * print-tree.c (print_node): Use TDF_NONE rather than 0. - (debug): Likewise. - (debug_body): Likewise. - * tree-pass.h (struct pass_data): Convert field "optgroup_flags" - to optgroup_flags_t. - * tree-pretty-print.c (print_struct_decl): Use TDF_NONE rather - than 0. - * tree-ssa-math-opts.c (convert_mult_to_fma_1): Likewise. - (convert_mult_to_fma): Likewise. - * tree-ssa-reassoc.c (undistribute_ops_list): Likewise. - * tree-ssa-sccvn.c (vn_eliminate): Likewise. - * tree-vect-data-refs.c (dump_lower_bound): Convert param - "dump_kind" to dump_flags_t. - -2018-06-08 Segher Boessenkool - - * config/rs6000/rs6000.c (min, max): Delete. - -2018-06-08 Segher Boessenkool - - * doc/invoke.texi (RS/6000 and PowerPC Options): Delete mention of - -mabi=spe and -mabi=no-spe. - -2018-06-08 Martin Liska - - * ipa-pure-const.c (propagate_pure_const): Use ::get at places - where we expect an existing summary. - -2018-06-08 Martin Liska - - * ipa-inline-analysis.c (simple_edge_hints): Use ::get method. - * ipa-inline.h (estimate_edge_growth): Likewise. - -2018-06-08 Martin Liska - - * cgraph.c (function_version_hasher::hash): Use - cgraph_node::get_uid (). - (function_version_hasher::equal): - * cgraph.h (cgraph_node::get_uid): New method. - * ipa-inline.c (update_caller_keys): Use - cgraph_node::get_uid (). - (update_callee_keys): Likewise. - * ipa-utils.c (searchc): Likewise. - (ipa_reduced_postorder): Likewise. - * lto-cgraph.c (input_node): Likewise. - * passes.c (is_pass_explicitly_enabled_or_disabled): Likewise. - * symbol-summary.h (symtab_insertion): Likewise. - (symtab_removal): Likewise. - (symtab_duplication): Likewise. - * tree-pretty-print.c (dump_function_header): Likewise. - * tree-sra.c (convert_callers_for_node): Likewise. - -2018-06-08 Martin Liska - - * cgraph.c (symbol_table::create_edge): Always assign a new - unique number. - (symbol_table::free_edge): Do not recycle numbers. - * cgraph.h (cgraph_edge::get): New method. - * symbol-summary.h (symtab_removal): Use it. - (symtab_duplication): Likewise. - (call_summary::hashable_uid): Remove. - -2018-06-08 Martin Liska - - * ipa-inline-analysis.c (inline_edge_removal_hook): Remove. - (initialize_growth_caches): Remove. - (free_growth_caches): Likewise. - (do_estimate_edge_time): Use edge_growth_cache. - (do_estimate_edge_size): Likewise. - (do_estimate_edge_hints): Likewise. - * ipa-inline.c (reset_edge_caches): Likewise. - (recursive_inlining): Likewise. - (inline_small_functions): Likewise. - * ipa-inline.h (initialize_growth_caches): Remove. - (estimate_edge_size): Likewise. - (estimate_edge_time): Likewise. - (estimate_edge_hints): Likewise. - (reset_edge_growth_cache): Likewise. - * symbol-summary.h (call_summary::remove): New method. - -2018-06-08 Martin Liska - - * ipa-cp.c (class edge_clone_summary): New summary. - (grow_edge_clone_vectors): Remove. - (ipcp_edge_duplication_hook): Remove. - (class edge_clone_summary_t): New call_summary class. - (ipcp_edge_removal_hook): Remove. - (edge_clone_summary_t::duplicate): New function. - (get_next_cgraph_edge_clone): Use edge_clone_summaries. - (create_specialized_node): Likewise. - (ipcp_driver): Initialize edge_clone_summaries and do not - register hooks. - -2018-06-08 Martin Liska - - * symbol-summary.h (get): New function. - (call_summary::m_initialize_when_cloning): New class member. - -2018-06-08 Martin Liska - - * cgraph.c (cgraph_node::remove): Do not recycle uid. - * cgraph.h (symbol_table::release_symbol): Do not pass uid. - (symbol_table::allocate_cgraph_symbol): Do not set uid. - * passes.c (uid_hash_t): Record removed_nodes by their uids. - (remove_cgraph_node_from_order): Use the removed_nodes set. - (do_per_function_toporder): Likwise. - * symbol-summary.h (symtab_insertion): Use cgraph_node::uid - instead of summary_uid. - (symtab_removal): Likewise. - (symtab_duplication): Likewise. - -2018-06-08 Martin Liska - - * ipa-cp.c (ipcp_store_bits_results): Use - ipcp_transformation_sum. - (ipcp_store_vr_results): Likewise. - * ipa-prop.c (ipcp_grow_transformations_if_necessary): Renamed - to ... - (ipcp_transformation_initialize): ... this. - (ipa_set_node_agg_value_chain): - (ipa_node_params_t::duplicate): Use ipcp_transformation_sum. - (write_ipcp_transformation_info): Likewise. - (read_ipcp_transformation_info): Likewise. - (ipcp_update_bits): Likewise. - (ipcp_update_vr): Likewise. - (ipcp_transform_function): Likewise. - * ipa-prop.h: Rename ipcp_transformation_summary to - ipcp_transformation. - (class ipcp_transformation_t): New function summary. - (ipcp_get_transformation_summary): Use ipcp_transformation_sum. - (ipa_get_agg_replacements_for_node): Likewise. - -2018-06-08 Martin Liska - - * ipa-pure-const.c (struct funct_state_d): Do it class instead - of struct. - (class funct_state_summary_t): New function_summary class. - (has_function_state): Remove. - (get_function_state): Likewise. - (set_function_state): Likewise. - (add_new_function): Likewise. - (funct_state_summary_t::insert): New function. - (duplicate_node_data): Remove. - (remove_node_data): Remove. - (funct_state_summary_t::duplicate): New function. - (register_hooks): Create new funct_state_summaries. - (pure_const_generate_summary): Use it. - (pure_const_write_summary): Likewise. - (pure_const_read_summary): Likewise. - (propagate_pure_const): Likewise. - (propagate_nothrow): Likewise. - (dump_malloc_lattice): Likewise. - (propagate_malloc): Likewise. - (execute): Do not register hooks, just remove summary - instead. - (pass_ipa_pure_const::pass_ipa_pure_const): Simplify - constructor. - -2018-06-08 Martin Liska - - * ipa-reference.c (remove_node_data): Remove. - (duplicate_node_data): Likewise. - (class ipa_ref_var_info_summary_t): New class. - (class ipa_ref_opt_summary_t): Likewise. - (get_reference_vars_info): Use ipa_ref_var_info_summaries. - (get_reference_optimization_summary): Use - ipa_ref_opt_sum_summaries. - (set_reference_vars_info): Remove. - (set_reference_optimization_summary): Likewise. - (ipa_init): Create summaries. - (init_function_info): Use function summary. - (ipa_ref_opt_summary_t::duplicate): New function. - (ipa_ref_opt_summary_t::remove): New function. - (get_read_write_all_from_node): Fix GNU coding style. - (propagate): Use function summary. - (write_node_summary_p): Fix GNU coding style. - (stream_out_bitmap): Likewise. - (ipa_reference_read_optimization_summary): Use function summary. - (ipa_reference_c_finalize): Do not release hooks. - -2018-06-08 Martin Liska - - * ipa-fnsummary.c (dump_ipa_call_summary): Use ::get method. - (analyze_function_body): Extract multiple calls of get_create. - * ipa-inline-analysis.c (simple_edge_hints): Likewise. - * ipa-inline.c (recursive_inlining): Use ::get method. - * ipa-inline.h (estimate_edge_growth): Likewise. - -2018-06-08 Martin Liska - - * hsa-common.h (enum hsa_function_kind): Rename HSA_NONE to - HSA_INVALID. - (hsa_function_summary::hsa_function_summary): Use the new enum - value. - (hsa_gpu_implementation_p): Use hsa_summaries::get. - * hsa-gen.c (hsa_get_host_function): Likewise. - (get_brig_function_name): Likewise. - * ipa-hsa.c (process_hsa_functions): Likewise. - (ipa_hsa_write_summary): Likewise. - * symbol-summary.h (symtab_duplication): Use ::get function/ - (get): New function. - -2018-06-08 Martin Liska - - * config/i386/i386.c (ix86_can_inline_p): Use get_create instead - of get. - * hsa-common.c (hsa_summary_t::link_functions): Likewise. - (hsa_register_kernel): Likewise. - * hsa-common.h (hsa_gpu_implementation_p): Likewise. - * hsa-gen.c (hsa_get_host_function): Likewise. - (get_brig_function_name): Likewise. - (generate_hsa): Likewise. - (pass_gen_hsail::execute): Likewise. - * ipa-cp.c (ipcp_cloning_candidate_p): Likewise. - (devirtualization_time_bonus): Likewise. - (ipcp_propagate_stage): Likewise. - * ipa-fnsummary.c (redirect_to_unreachable): Likewise. - (edge_set_predicate): Likewise. - (evaluate_conditions_for_known_args): Likewise. - (evaluate_properties_for_edge): Likewise. - (ipa_fn_summary::reset): Likewise. - (ipa_fn_summary_t::duplicate): Likewise. - (dump_ipa_call_summary): Likewise. - (ipa_dump_fn_summary): Likewise. - (analyze_function_body): Likewise. - (compute_fn_summary): Likewise. - (estimate_edge_devirt_benefit): Likewise. - (estimate_edge_size_and_time): Likewise. - (estimate_calls_size_and_time): Likewise. - (estimate_node_size_and_time): Likewise. - (inline_update_callee_summaries): Likewise. - (remap_edge_change_prob): Likewise. - (remap_edge_summaries): Likewise. - (ipa_merge_fn_summary_after_inlining): Likewise. - (ipa_update_overall_fn_summary): Likewise. - (read_ipa_call_summary): Likewise. - (inline_read_section): Likewise. - (write_ipa_call_summary): Likewise. - (ipa_fn_summary_write): Likewise. - (ipa_free_fn_summary): Likewise. - * ipa-hsa.c (process_hsa_functions): Likewise. - (ipa_hsa_write_summary): Likewise. - (ipa_hsa_read_section): Likewise. - * ipa-icf.c (sem_function::merge): Likewise. - * ipa-inline-analysis.c (simple_edge_hints): Likewise. - (do_estimate_edge_time): Likewise. - (estimate_size_after_inlining): Likewise. - (estimate_growth): Likewise. - (growth_likely_positive): Likewise. - * ipa-inline-transform.c (clone_inlined_nodes): Likewise. - (inline_call): Likewise. - * ipa-inline.c (caller_growth_limits): Likewise. - (can_inline_edge_p): Likewise. - (can_inline_edge_by_limits_p): Likewise. - (compute_uninlined_call_time): Likewise. - (compute_inlined_call_time): Likewise. - (want_inline_small_function_p): Likewise. - (edge_badness): Likewise. - (update_caller_keys): Likewise. - (update_callee_keys): Likewise. - (recursive_inlining): Likewise. - (inline_small_functions): Likewise. - (inline_to_all_callers_1): Likewise. - (dump_overall_stats): Likewise. - (early_inline_small_functions): Likewise. - (early_inliner): Likewise. - * ipa-inline.h (estimate_edge_growth): Likewise. - * ipa-profile.c (ipa_propagate_frequency_1): Likewise. - * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. - * ipa-prop.h (IPA_NODE_REF): Likewise. - (IPA_EDGE_REF): Likewise. - * ipa-pure-const.c (malloc_candidate_p): Likewise. - (propagate_malloc): Likewise. - * ipa-split.c (execute_split_functions): Likewise. - * symbol-summary.h: Rename get to get_create. - (get): Likewise. - (get_create): Likewise. - * tree-sra.c (ipa_sra_preliminary_function_checks): Likewise. - -2018-06-08 Martin Liska - - * symbol-summary.h (release): Move definition out of class - declaration. - (symtab_removal): Likewise. - (symtab_duplication): Likewise. - -2018-06-08 Martin Liska - - * symbol-summary.h (function_summary): Move constructor - implementation out of class declaration. - (release): Likewise. - (symtab_insertion): Likewise. - (symtab_removal): Likewise. - (symtab_duplication): Likewise. - (get): Likewise. - -2018-06-08 Martin Liska - - * Makefile.in: Remove support for MPX (macros, related functions, - fields in cgraph_node, ...). - * builtin-types.def (BT_BND): Likewise. - (BT_FN_BND_CONST_PTR): Likewise. - (BT_FN_CONST_PTR_BND): Likewise. - (BT_FN_VOID_PTR_BND): Likewise. - (BT_FN_BND_CONST_PTR_SIZE): Likewise. - (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): Likewise. - * builtins.c (expand_builtin_memcpy_with_bounds): Likewise. - (expand_builtin_mempcpy_with_bounds): Likewise. - (expand_builtin_memset_with_bounds): Likewise. - (expand_builtin_memset_args): Likewise. - (std_expand_builtin_va_start): Likewise. - (expand_builtin): Likewise. - (expand_builtin_with_bounds): Likewise. - * builtins.def (DEF_BUILTIN_CHKP): Likewise. - (DEF_LIB_BUILTIN_CHKP): Likewise. - (DEF_EXT_LIB_BUILTIN_CHKP): Likewise. - (DEF_CHKP_BUILTIN): Likewise. - (BUILT_IN_MEMCPY): Likewise. - (BUILT_IN_MEMMOVE): Likewise. - (BUILT_IN_MEMPCPY): Likewise. - (BUILT_IN_MEMSET): Likewise. - (BUILT_IN_STPCPY): Likewise. - (BUILT_IN_STRCAT): Likewise. - (BUILT_IN_STRCHR): Likewise. - (BUILT_IN_STRCPY): Likewise. - (BUILT_IN_STRLEN): Likewise. - (BUILT_IN_MEMCPY_CHK): Likewise. - (BUILT_IN_MEMMOVE_CHK): Likewise. - (BUILT_IN_MEMPCPY_CHK): Likewise. - (BUILT_IN_MEMSET_CHK): Likewise. - (BUILT_IN_STPCPY_CHK): Likewise. - (BUILT_IN_STRCAT_CHK): Likewise. - (BUILT_IN_STRCPY_CHK): Likewise. - * calls.c (store_bounds): Likewise. - (emit_call_1): Likewise. - (special_function_p): Likewise. - (maybe_warn_nonstring_arg): Likewise. - (initialize_argument_information): Likewise. - (finalize_must_preallocate): Likewise. - (compute_argument_addresses): Likewise. - (expand_call): Likewise. - * cfgexpand.c (expand_call_stmt): Likewise. - (expand_return): Likewise. - (expand_gimple_stmt_1): Likewise. - (pass_expand::execute): Likewise. - * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise. - (cgraph_node::remove): Likewise. - (cgraph_node::dump): Likewise. - (cgraph_node::verify_node): Likewise. - * cgraph.h (chkp_function_instrumented_p): Likewise. - (symtab_node::get_alias_target): Likewise. - (cgraph_node::can_remove_if_no_direct_calls_and_refs_p): Likewise. - (cgraph_local_p): Likewise. - * cgraphbuild.c (cgraph_edge::rebuild_edges): Likewise. - (cgraph_edge::rebuild_references): Likewise. - * cgraphunit.c (varpool_node::finalize_decl): Likewise. - (walk_polymorphic_call_targets): Likewise. - (cgraph_node::expand_thunk): Likewise. - (symbol_table::output_weakrefs): Likewise. - * common/config/i386/i386-common.c (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Likewise. - (ix86_handle_option): Likewise. - * config/i386/constraints.md: Likewise. - * config/i386/i386-builtin-types.def (BND): Likewise. - (VOID): Likewise. - (PVOID): Likewise. - (ULONG): Likewise. - * config/i386/i386-builtin.def (BDESC_END): Likewise. - (BDESC_FIRST): Likewise. - (BDESC): Likewise. - * config/i386/i386-c.c (ix86_target_macros_internal): Likewise. - * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): Likewise. - * config/i386/i386.c (enum reg_class): Likewise. - (ix86_target_string): Likewise. - (ix86_option_override_internal): Likewise. - (ix86_conditional_register_usage): Likewise. - (ix86_valid_target_attribute_inner_p): Likewise. - (ix86_set_indirect_branch_type): Likewise. - (ix86_set_current_function): Likewise. - (ix86_function_arg_regno_p): Likewise. - (init_cumulative_args): Likewise. - (ix86_function_arg_advance): Likewise. - (ix86_function_arg): Likewise. - (ix86_pass_by_reference): Likewise. - (ix86_function_value_regno_p): Likewise. - (ix86_function_value_1): Likewise. - (ix86_function_value_bounds): Likewise. - (ix86_return_in_memory): Likewise. - (ix86_setup_incoming_vararg_bounds): Likewise. - (ix86_va_start): Likewise. - (indirect_thunk_need_prefix): Likewise. - (print_reg): Likewise. - (ix86_print_operand): Likewise. - (ix86_expand_call): Likewise. - (ix86_output_function_return): Likewise. - (reg_encoded_number): Likewise. - (BDESC_VERIFYS): Likewise. - (ix86_init_mpx_builtins): Likewise. - (ix86_init_builtins): Likewise. - (ix86_emit_cmove): Likewise. - (ix86_emit_move_max): Likewise. - (ix86_expand_builtin): Likewise. - (ix86_builtin_mpx_function): Likewise. - (ix86_get_arg_address_for_bt): Likewise. - (ix86_load_bounds): Likewise. - (ix86_store_bounds): Likewise. - (ix86_load_returned_bounds): Likewise. - (ix86_store_returned_bounds): Likewise. - (ix86_class_likely_spilled_p): Likewise. - (ix86_hard_regno_mode_ok): Likewise. - (x86_order_regs_for_local_alloc): Likewise. - (ix86_mitigate_rop): Likewise. - (ix86_bnd_prefixed_insn_p): Likewise. - (ix86_mpx_bound_mode): Likewise. - (ix86_make_bounds_constant): Likewise. - (ix86_initialize_bounds): Likewise. - (TARGET_LOAD_BOUNDS_FOR_ARG): Likewise. - (TARGET_STORE_BOUNDS_FOR_ARG): Likewise. - (TARGET_LOAD_RETURNED_BOUNDS): Likewise. - (TARGET_STORE_RETURNED_BOUNDS): Likewise. - (TARGET_CHKP_BOUND_MODE): Likewise. - (TARGET_BUILTIN_CHKP_FUNCTION): Likewise. - (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): Likewise. - (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): Likewise. - (TARGET_CHKP_INITIALIZE_BOUNDS): Likewise. - * config/i386/i386.h (TARGET_MPX): Likewise. - (TARGET_MPX_P): Likewise. - (VALID_BND_REG_MODE): Likewise. - (FIRST_BND_REG): Likewise. - (LAST_BND_REG): Likewise. - (enum reg_class): Likewise. - (BND_REG_P): Likewise. - (BND_REGNO_P): Likewise. - (BNDmode): Likewise. - (ADJUST_INSN_LENGTH): Likewise. - * config/i386/i386.md: Likewise. - * config/i386/i386.opt: Likewise. - * config/i386/linux-common.h (LIBMPX_LIBS): Likewise. - (defined): Likewise. - (LINK_MPX): Likewise. - (MPX_SPEC): Likewise. - (LIBMPX_SPEC): Likewise. - (LIBMPXWRAPPERS_SPEC): Likewise. - (CHKP_SPEC): Likewise. - * config/i386/predicates.md: Likewise. - * dbxout.c (dbxout_type): Likewise. - * doc/extend.texi: Likewise. - * doc/invoke.texi: Likewise. - * doc/md.texi: Likewise. - * doc/tm.texi: Likewise. - * doc/tm.texi.in: Likewise. - * dwarf2out.c (is_base_type): Likewise. - (gen_formal_types_die): Likewise. - (gen_subprogram_die): Likewise. - (gen_type_die_with_usage): Likewise. - (gen_decl_die): Likewise. - (dwarf2out_late_global_decl): Likewise. - * expr.c (expand_assignment): Likewise. - (emit_storent_insn): Likewise. - (store_expr_with_bounds): Likewise. - (store_expr): Likewise. - (expand_expr_real_1): Likewise. - * expr.h (store_expr_with_bounds): Likewise. - * function.c (use_register_for_decl): Likewise. - (struct bounds_parm_data): Likewise. - (assign_parms_augmented_arg_list): Likewise. - (assign_parm_find_entry_rtl): Likewise. - (assign_parm_is_stack_parm): Likewise. - (assign_parm_load_bounds): Likewise. - (assign_bounds): Likewise. - (assign_parms): Likewise. - (expand_function_start): Likewise. - * gcc.c (CHKP_SPEC): Likewise. - * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise. - * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Likewise. - (wrestrict_dom_walker::check_call): Likewise. - * gimple.c (gimple_build_call_from_tree): Likewise. - * gimple.h (enum gf_mask): Likewise. - (gimple_call_with_bounds_p): Likewise. - (gimple_call_set_with_bounds): Likewise. - * gimplify.c (gimplify_init_constructor): Likewise. - * ipa-cp.c (initialize_node_lattices): Likewise. - (propagate_constants_across_call): Likewise. - (find_more_scalar_values_for_callers_subset): Likewise. - * ipa-hsa.c (process_hsa_functions): Likewise. - * ipa-icf-gimple.c (func_checker::compare_gimple_call): Likewise. - * ipa-icf.c (sem_function::merge): Likewise. - * ipa-inline.c (early_inliner): Likewise. - * ipa-pure-const.c (warn_function_noreturn): Likewise. - (warn_function_cold): Likewise. - (propagate_pure_const): Likewise. - * ipa-ref.h (enum GTY): Likewise. - * ipa-split.c (find_retbnd): Likewise. - (consider_split): Likewise. - (split_function): Likewise. - * ipa-visibility.c (cgraph_externally_visible_p): Likewise. - * ipa.c (walk_polymorphic_call_targets): Likewise. - (symbol_table::remove_unreachable_nodes): Likewise. - (process_references): Likewise. - (cgraph_build_static_cdtor_1): Likewise. - * lto-cgraph.c (lto_output_node): Likewise. - (output_refs): Likewise. - (compute_ltrans_boundary): Likewise. - (input_overwrite_node): Likewise. - (input_node): Likewise. - (input_cgraph_1): Likewise. - * params.def (PARAM_CHKP_MAX_CTOR_SIZE): Likewise. - * passes.c (pass_manager::execute_early_local_passes): Likewise. - (class pass_chkp_instrumentation_passes): Likewise. - (make_pass_chkp_instrumentation_passes): Likewise. - * passes.def: Likewise. - * rtl.h (struct GTY): Likewise. - (CALL_EXPR_WITH_BOUNDS_P): Likewise. - * stor-layout.c (layout_type): Likewise. - * symtab.c: Likewise. - * target.def: Likewise. - * targhooks.c (default_chkp_bound_type): Likewise. - (default_chkp_bound_mode): Likewise. - (default_builtin_chkp_function): Likewise. - (default_chkp_function_value_bounds): Likewise. - (default_chkp_make_bounds_constant): Likewise. - (default_chkp_initialize_bounds): Likewise. - * targhooks.h (default_chkp_bound_type): Likewise. - (default_chkp_bound_mode): Likewise. - (default_builtin_chkp_function): Likewise. - (default_chkp_function_value_bounds): Likewise. - (default_chkp_make_bounds_constant): Likewise. - (default_chkp_initialize_bounds): Likewise. - * toplev.c (compile_file): Likewise. - (process_options): Likewise. - * tree-core.h (DEF_BUILTIN): Likewise. - (DEF_BUILTIN_CHKP): Likewise. - * tree-inline.c (declare_return_variable): Likewise. - (remap_gimple_stmt): Likewise. - (copy_bb): Likewise. - (initialize_inlined_parameters): Likewise. - (expand_call_inline): Likewise. - * tree-pass.h (make_pass_ipa_chkp_versioning): Likewise. - (make_pass_ipa_chkp_early_produce_thunks): Likewise. - (make_pass_ipa_chkp_produce_thunks): Likewise. - (make_pass_chkp): Likewise. - (make_pass_chkp_opt): Likewise. - (make_pass_chkp_instrumentation_passes): Likewise. - * tree-pretty-print.c (dump_generic_node): Likewise. - * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Likewise. - * tree-ssa-dce.c (propagate_necessity): Likewise. - (eliminate_unnecessary_stmts): Likewise. - * tree-ssa-pre.c (create_expression_by_pieces): Likewise. - * tree-ssa-sccvn.c (copy_reference_ops_from_call): Likewise. - * tree-ssa-sccvn.h: Likewise. - * tree-ssa-strlen.c (get_string_length): Likewise. - (valid_builtin_call): Likewise. - (adjust_last_stmt): Likewise. - (handle_builtin_strchr): Likewise. - (handle_builtin_strcpy): Likewise. - (handle_builtin_stxncpy): Likewise. - (handle_builtin_memcpy): Likewise. - (handle_builtin_strcat): Likewise. - (strlen_check_and_optimize_stmt): Likewise. - * tree-stdarg.c (expand_ifn_va_arg_1): Likewise. - * tree-streamer-in.c: Likewise. - * tree-streamer.c (record_common_node): Likewise. - * tree.c (tree_code_size): Likewise. - (wide_int_to_tree_1): Likewise. - (type_contains_placeholder_1): Likewise. - (build_common_tree_nodes): Likewise. - * tree.def (POINTER_BOUNDS_TYPE): Likewise. - * tree.h (POINTER_BOUNDS_TYPE_P): Likewise. - (POINTER_BOUNDS_P): Likewise. - (BOUNDED_TYPE_P): Likewise. - (BOUNDED_P): Likewise. - (CALL_WITH_BOUNDS_P): Likewise. - (pointer_bounds_type_node): Likewise. - * value-prof.c (gimple_ic): Likewise. - * var-tracking.c (vt_add_function_parameters): Likewise. - * varasm.c (make_decl_rtl): Likewise. - (assemble_start_function): Likewise. - (output_constant): Likewise. - (maybe_assemble_visibility): Likewise. - * varpool.c (ctor_for_folding): Likewise. - * chkp-builtins.def: Remove. - * ipa-chkp.c: Remove. - * ipa-chkp.h: Remove. - * rtl-chkp.c: Remove. - * rtl-chkp.h: Remove. - * tree-chkp-opt.c: Remove. - * tree-chkp.c: Remove. - * tree-chkp.h: Remove. - -2018-06-07 Carl Love - - * config/rs6000/vsx.md (vextract_fp_from_shorth, - vextract_fp_from_shortl): Add BE support. - -2018-06-07 Paul Koning - - * compare-elim.c (try_merge_compare): Don't merge compare if - address contains a side effect. - (try_eliminate_compare): Likewise. - -2018-06-07 Olga Makhotina - - * config.gcc: Support "tremont". - * config/i386/driver-i386.c (host_detect_local_cpu): Detect "tremont". - * config/i386/i386-c.c (ix86_target_macros_internal): Handle - PROCESSOR_TREMONT. - * config/i386/i386.c (m_TREMONT): Define. - (processor_target_table): Add "tremont". - (PTA_TREMONT): Define. - (ix86_lea_outperforms): Add TARGET_TREMONT. - (get_builtin_code_for_version): Handle PROCESSOR_TREMONT. - (fold_builtin_cpu): Add M_INTEL_TREMONT, replace M_INTEL_GOLDMONT - and M_INTEL_GOLDMONT_PLUS. - (fold_builtin_cpu): Add "tremont". - (ix86_add_stmt_cost): Add TARGET_TREMONT. - (ix86_option_override_internal): Add "tremont". - * config/i386/i386.h (processor_costs): Define TARGET_TREMONT. - (processor_type): Add PROCESSOR_TREMONT. - * config/i386/x86-tune.def: Add m_TREMONT. - * doc/invoke.texi: Add tremont as x86 -march=/-mtune= CPU type. - -2018-06-07 Jozef Lawrynowicz - - * config/msp430/msp430.c (msp430_mcu_name): Set the "i" in the - symbol defined for msp430i* devices to be lower case. - -2018-06-07 Richard Biener - - * graphite-sese-to-poly.c (extract_affine): Avoid unneded - wrapping. Properly wrap the result of a BIT_NOT_EXPR. - Properly wrap signed arithmetic if overflow wraps. - -2018-06-07 Jakub Jelinek - - PR tree-optimization/69615 - * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If rhs2 is lhs - of a cast from a same precision integral SSA_NAME in a bb dominated - by first_bb, retry with rhs2 set to the rhs1 of the cast. Don't emit - cast to utype if rhs2 has already a compatible type. - -2018-06-07 Richard Biener - - PR tree-optimization/85935 - * graphite-scop-detection.c (find_params_in_bb): Analyze - condition operands with respect to the correct loop. Assert - the analysis doesn't fail. - -2018-06-04 Carl Love - - * config/rs6000/vsx.md (first_match_index_): Calculate index - using natural element order. Use gen_lshrsi3 instead of gen_ashrsi3 - as it is slightly cheaper. - (first_match_or_eos_index_): - Calculate index using natural element order. - (first_match_index_): - Calculate index using natural element order. - (first_match_or_eos_index_): - Calculate index using natural order. - (define_insn vclzlsbb): Change to define_insn vclzlsbb_. - for BE and LE modes. - * config/rs6000/rs6000-c.c: Rename P9V_BUILTIN_VCLZLSBB, - P9V_BUILTIN_VCLZLSBB_V16QI. - * config/rs6000/rs6000-builtin.def: Make VCLZLSBB mode - specific. - -2018-06-06 Kelvin Nilsen - - * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust - indentation and line wrap for many prototypes. Add missing - @smallexample directives around block of prototypes for vec_xl and - vec_xst. - -2018-06-05 Michael Meissner - - * config/rs6000/rs6000.c (rs6000_passes_ieee128): New boolean to - track if we pass or return IEEE 128-bit floating point. - (ieee128_mangling_gcc_8_1): New boolean to say whether to generate - C++ mangling that is compatible with GCC 8.1. - (TARGET_ASM_GLOBALIZE_DECL_NAME): Override target hook. - (init_cumulative_args): Note if we pass or return IEEE 128-bit - floating point types. - (rs6000_function_arg_advance_1): Likewise. - (rs6000_mangle_type): Optionally generate mangled names that match - what GCC 8.1 generated for IEEE 128-bit floating point types. - (rs6000_globalize_decl_name): If we have an external function that - passes or returns IEEE 128-bit types, generate a weak reference - from the mangled name used in GCC 8.1 to the current mangled - name. - (rs6000_init_builtins): Make __ibm128 use the long double type if - long double is IBM extended double. Make __float128 use the long - double type if long double is IEEE 128-bit. - - PR target/85657 - * config/rs6000/rs6000-builtin.def (BU_IBM128_2): New helper - macro for __ibm128 built-in functions. - (PACK_IF): Add __ibm128 pack/unpack functions. - (UNPACK_IF): Likewise. - * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Do not - enable long double built-in functions if long double is IEEE - 128-bit floating point. - (rs6000_invalid_builtin): Update long double built-in function - error message. - (rs6000_expand_builtin): For PACK_IF and UNPACK_IF built-in - functions, adjust the built-in function to use the long double - built-in function if __ibm128 and long double are the same type. - * doc/extend.texi (PowerPC builtins): Update documention for - __builtin_{,un}pack_longdouble. Add documentation for - __builtin_{,un}pack_ibm128. - -2018-06-06 Jim Wilson - - * config/riscv/riscv.c (enum riscv_privilege_levels): New. - (struct machine_function): New field interrupt_mode. - (riscv_handle_type_attribute): New function. Add forward declaration. - (riscv_attribute_table) : Use riscv_handle_type_attribute. - (riscv_expand_epilogue): Check interrupt_mode field. - (riscv_set_current_function): Check interrupt attribute args and - set interrupt_mode field. - * config/riscv/riscv.md (UNSPECV_SRET, UNSPECV_URET): New. - (riscv_sret, riscv_uret): New. - * doc/extend.texi (RISC-V Function Attributes) : Document - new arguments to interrupt attribute. - -2018-06-06 Peter Bergner - - PR target/63177 - * /config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mpower9. - Don't handle -mcpu=power8 if -mpower9-vector is also used. - -2018-06-06 Kelvin Nilsen - - * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_LD, - VSX_BUILTIN_VEC_ST): Add comment to explain non-traditional uses. - * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove - several redundant entries. - -2018-06-06 David Malcolm - - * config/i386/i386-protos.h (ix86_expand_call): Strengthen return - type from "rtx" to "rtx_insn *". - * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise - for local "call_insn", removing cast. - (ix86_expand_call): Likewise, introducing a "call_insn" local. - -2018-06-06 Eric Botcazou - - PR tree-optimization/86066 - * gimple-ssa-store-merging.c (process_store): Do not bypass BIT_NOT_EXPR - for BIT_INSERT_EXPR stores. - -2018-06-06 Richard Biener - - PR tree-optimization/86062 - * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle arbitrary - component refs ontop - of to be offsetted base. - -2018-06-06 Jozef Lawrynowicz - - * config/msp430/msp430.c (msp430_attr): Allow interrupt handlers - to be static and remove check on interrupt attribute name. - -2018-06-05 Kelvin Nilsen - - * doc/extend.texi (PowerPC AltiVec Built-in Functions): Remove - volatile qualifier from vec_lvsl and vec_lvsr argument prototypes. - -2018-06-05 Steve Ellcey - - PR target/79924 - * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): Remove - second argument. - * config/aarch64/aarch64-protos..c (aarch64_err_no_fpadvsimd): - Remove second argument, change how error is called. - (aarch64_layout_arg): Remove second argument from - aarch64_err_no_fpadvsimd call. - (aarch64_init_cumulative_args): Ditto. - (aarch64_gimplify_va_arg_expr): Ditto. - * config/aarch64/aarch64.md (mov): Ditto. - -2018-06-05 Uros Bizjak - - * config/i386/i386.md (simple_return_indirect_internal): New expander. - (*simple_return_indirect_internal): Rename from - simple_return_indirect_internal. Use W mode iterator. - (rstorssp): New expander. - (*rstorssp): Rename from rstorssp. Use P mode iterator. - (clrssbsy): New expander. - (*clrssbsy): Rename from clrssbsy. Use P mode iterator. - -2018-06-05 Andre Vieira - - * config/arm/arm_cmse.h (cmse_nsfptr_create): Change typeof to - __typeof__. - (cmse_check_pointed_object): Likewise. - -2018-06-05 Martin Liska - - PR gcov-profile/47618 - * doc/invoke.texi: Document how -fprofile-dir format - is extended. - -2018-06-05 Richard Biener - - * tree-cfgcleanup.c (cleanup_control_flow_pre): For edge - removal pretend DOM info isn't available so we do not update - it and only remove edges, not dominated blocks. Actually free - DOM info in case we removed something. Remove unreachable blocks. - (mfb_keep_latches): Work with either DOM info or marked backedges. - (cleanup_tree_cfg_noloop): Do not remove unreachable blocks - first. Mark backedges if DOM info isn't available. - (Re-)compute DOM info after cleanup_control_flow_pre. - -2018-06-05 Richard Biener - - * tree-cfg.c (struct locus_discrim_map): Store line, not location. - (locus_discrim_hasher::hash): Adjust. - (locus_discrim_hasher::equal): Likewise. - (next_discriminator_for_locus): Work on line directly. - (same_line_p): Pass in expanded locus1 as well. - (assign_discriminators): Avoid redundant location expansions. - -2018-06-05 Richard Biener - - PR tree-optimization/86046 - * tree-ssa.c (maybe_optimize_var): Clear DECL_GIMPLE_REG_P - if required after clearing TREE_ADDRESSABLE. - -2018-06-05 Richard Biener - - PR tree-optimization/86047 - * tree-ssa-loop.c (for_each_index): Glob handling of all - decls and constants and really handle all of them. - -2018-06-05 Kyrylo Tkachov - - PR target/81497 - * config/arm/arm-builtins.c (arm_type_qualifiers): Add - qualifier_void_pointer and qualifier_const_void_pointer. - (arm_ldc_qualifiers, arm_stc_qualifiers): Use the above. - (arm_init_builtins): Handle the above. - * config/arm/arm_acle.h (__arm_cdp, __arm_ldc, __arm_ldcl, __arm_stc, - __arm_stcl, __arm_mcr, __arm_cdp2, __arm_ldc2, __arm_ldcl2, __arm_stc2, - __arm_stcl2,__arm_mcr2, __arm_mcrr, __arm_mcrr2): Remove return for - void intrinsics. - -2018-06-05 Martin Liska - - * auto-profile.c (read_autofdo_file): Do not use - gcov_ctr_summary struct. - (afdo_callsite_hot_enough_for_early_inline): Likewise. - * coverage.c (struct counts_entry): Likewise. - (read_counts_file): Read just single summary entry. - (get_coverage_counts): Use gcov_summary struct. - * coverage.h (get_coverage_counts): Likewise. - * gcov-dump.c (dump_working_sets): Likewise. - (tag_summary): Dump just single summary. - * gcov-io.c (gcov_write_summary): Write just histogram - summary. - (gcov_read_summary): Read just single summary. - (compute_working_sets): Use gcov_summary struct. - * gcov-io.h (GCOV_TAG_SUMMARY_LENGTH): Remove usage - of GCOV_COUNTERS_SUMMABLE. - (GCOV_COUNTERS_SUMMABLE): Remove. - (GCOV_FIRST_VALUE_COUNTER): Replace with - GCOV_COUNTER_V_INTERVAL. - (struct gcov_ctr_summary): Remove. - (struct gcov_summary): Directly use fields of former - gcov_ctr_summary. - (compute_working_sets): Use gcov_summary struct. - * gcov.c (read_count_file): Do not use ctrs fields. - * lto-cgraph.c (merge_profile_summaries): Use gcov_summary - struct. - * lto-streamer.h (struct GTY): Make profile_info gcov_summary - struct. - * profile.c: Likewise. - * profile.h: Likewise. - -2018-06-05 Martin Liska - - PR gcov-profile/84846 - * gcov.c (output_lines): Print working directory only - in intermediate format. - -2018-06-05 Andreas Krebbel - - * config/s390/s390-builtin-types.def: Add void function type. - * config/s390/s390-builtins.def: Use the function type for the - tbeginc builtin. - -2018-06-04 Jim Wilson - - * config/riscv/riscv-protos.h (riscv_expand_epilogue): Change bool arg - to int. - * config/riscv/riscv.c (riscv_for_each_saved_reg): New args epilogue - and maybe_eh_return. Change regno to unsigned int. Use new args to - handle EH_RETURN_DATA_REGNO registers properly. - (riscv_expand_prologue): Pass new args to riscv_for_each_saved_reg. - (riscv_expand_epilogue): Update comment. Change argument name and - type. Update code to use new name and type. Pass new args to - riscv_for_each_saved_reg. Only use EH_RETURN_STACKADJ_RTX when - EXCEPTION_RETURN. - * config/riscv/riscv.md (NORMAL_RETURN): New. - (SIBCALL_RETURN, EXCEPTION_RETURN): New. - (epilogue, sibcall_epilogue): Update riscv_expand_epilogue arg. - (eh_return): Call gen_eh_return_internal and emit barrier. - (eh_return_internal): Call riscv_expand_epilogue. - -2018-06-04 Eric Botcazou - - * gimple-ssa-store-merging.c (struct merged_store_group): Move up - bit_insertion field and declare can_be_merged_into method. - (merged_store_group::can_be_merged_into): New method. - (imm_store_chain_info::coalesce_immediate): Call it to decide whether - consecutive non-overlapping stores can be merged. Turn MEM_REF stores - into BIT_INSERT_EXPR stores if the group contains a non-MEM_REF store. - -2018-06-04 Richard Biener - - PR tree-optimization/85955 - * builtins.c (fold_builtin_sincos): Convert pointers to - destination to appropriate type before dereferencing. - -2018-06-04 Segher Boessenkool - - * config/rs6000/rs6000.md (abs2 for FLOAT128): Handle IFmode. - -2018-06-04 Richard Sandiford - - * expr.c (expand_expr_real_1): Force the operand into memory if - its TYPE_MODE is BLKmode and if there is no integer mode for - the number of bits being extracted. - -2018-06-04 Jakub Jelinek - - PR target/85832 - PR target/86036 - * config/i386/sse.md (_eq3_1): - Use vptestnm rather than vptestm in (=Yc,v,C) variant. - -2018-06-04 Richard Biener - - * tree-cfgcleanup.c (cleanup_tree_cfg_1): Fold into... - (cleanup_tree_cfg_noloop): ... single caller. Do - start_recording_case_labels later. - -2018-06-04 Sebastian Peryt - - * config/i386/cldemoteintrin.h: Change define from _X86INTRIN_H_INCLUDED - to _IMMINTRIN_H_INCLUDED. - * config/i386/pconfigintrin.h: Ditto. - * config/i386/waitpkgintrin.h: Ditto. - * config/i386/immintrin.h: Add includes for sgxintrin.h, - pconfigintrin.h, waitpkgintrin.h and cldemoteintrin.h. - * config/i386/x86intrin.h: Remove includes for mintrin.h, xmmintrin.h, - emmintrin.h, pmmintrin.h, tmmintrin.h, smmintrin.h, wmmintrin.h, - bmiintrin.h, bmi2intrin.h, lzcntintrin.h, sgxintrin.h, pconfigintrin.h, - waitpkgintrin.h and cldemoteintrin.h. - -2018-06-04 Richard Biener - - PR tree-optimization/86038 - * tracer.c (find_best_successor): Check probability for - being initialized, bail out if not. - -2018-06-04 Richard Earnshaw - - PR target/86003 - * config/arm/arm-cpus.in (ALL_QUIRKS): Add xscale feature to the list - of bits to ignore when comparing architectures. - -2018-06-04 Jakub Jelinek - - PR tree-optimization/69615 - * fold-const.c (merge_ranges): If range1 is - [x, x] and x is the - maximum or minimum of the type, try to merge it also as if - range1 is + [-, x - 1] or + [x + 1, -]. - - PR c++/86025 - * tree.c (inchash::add_expr): Handle IDENTIFIER_NODE. - -2018-06-03 Eric Botcazou - - PR tree-optimization/86034 - * gimple-ssa-store-merging.c (output_merged_store): Convert the RHS to - the unsigned bitfield type in a bit insertion sequence if it does not - have a larger precision than the bitfield size. - (process_store): Also bypass widening conversions for BIT_INSERT_EXPR. - -2018-06-03 Kito Cheng - - * config/nds32/nds32-peephole2.md: Add new patterns for code size. - -2018-06-03 Chung-Ju Wu - - * config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3J. - * config/nds32/nds32.c (nds32_option_override): Consider ARCH_V3J. - * config/nds32/nds32.h (TARGET_ISA_V3): Add ARCH_V3J checking. - * config/nds32/nds32.opt (march): Add enum value Value(ARCH_V3J). - -2018-06-03 Chung-Ju Wu - - * common/config/nds32/nds32-common.c (nds32_option_optimization_table): - Disable -fdelete-null-pointer-checks for ELF toolchain. - -2018-06-02 Chung-Ju Wu - Kito Cheng - - * config.gcc (nds32*): Use nds32-linux.opt and nds32-elf.opt. - (nds32le-*-*, nds32be-*-*): Integrate checking process. - (nds32*-*-*): Add glibc and uclibc conditions. - * common/config/nds32/nds32-common.c (nds32_except_unwind_info): New. - (TARGET_EXCEPT_UNWIND_INFO): Define. - * config/nds32/elf.h: New file. - * config/nds32/linux.h: New file. - * config/nds32/nds32-elf.opt: New file. - * config/nds32/nds32-linux.opt: New file. - * config/nds32/nds32-fp-as-gp.c - (pass_nds32_fp_as_gp::gate): Consider TARGET_LINUX_ABI. - * config/nds32/nds32.c (nds32_conditional_register_usage): Consider - TARGET_LINUX_ABI. - (nds32_asm_file_end): Ditto. - (nds32_print_operand): Ditto. - (nds32_insert_attributes): Ditto. - (nds32_init_libfuncs): New function. - (TARGET_HAVE_TLS): Define. - (TARGET_INIT_LIBFUNCS): Define. - * config/nds32/nds32.h (TARGET_DEFAULT_RELAX): Apply different relax - spec content. - (TARGET_ELF): Apply different mcmodel setting. - (LINK_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): The content has - been migrated into elf.h and linux.h files. - * config/nds32/nds32.md (add_pc): Consider TARGET_LINUX_ABI. - * config/nds32/nds32.opt (mvh): Consider TARGET_LINUX_ABI. - (mcmodel): The content has been migrated into nds32-elf.opt and - nds32-linux.opt files. - * config/nds32/t-elf: New file. - * config/nds32/t-linux: New file. - -2018-06-02 Chung-Ju Wu - Shiva Chen - - * config/nds32/constants.md (unspec_volatile_element): Add - UNSPEC_VOLATILE_OMIT_FP_BEGIN and UNSPEC_VOLATILE_OMIT_FP_END. - * config/nds32/nds32-fp-as-gp.c: New implementation of fp_as_gp - optimization. - * config/nds32/nds32-protos.h (nds32_naked_function_p): Declare. - (make_pass_nds32_fp_as_gp): Declare. - * config/nds32/nds32.c (nds32_register_passes): Add fp_as_gp as one - optmization pass. - (nds32_asm_function_end_prologue): Remove unused asm output. - (nds32_asm_function_begin_epilogue): Remove unused asm output. - (nds32_asm_file_start): Output necessary fp_as_gp information. - (nds32_option_override): Adjust register usage. - (nds32_expand_prologue): Consider fp_as_gp situation. - (nds32_expand_prologue_v3push): Consider fp_as_gp situation. - * config/nds32/nds32.md (prologue): Check fp_as_gp_p and naked_p. - (epilogue): Ditto. - (return): Ditto. - (simple_return): Ditto. - (omit_fp_begin): Output special directive for fp_as_gp. - (omit_fp_end): Output special directive for fp_as_gp. - * config/nds32/nds32.opt (mfp-as-gp, mno-fp-as-gp, mforce-fp-as-gp, - mforbid-fp-as-gp): New options. - -2018-06-01 Mark Wielaard - - * dwarf2out.c (dwarf2out_finish): Remove generation of - DW_AT_loclists_base. - -2018-06-01 Eric Botcazou - - * gimple-ssa-store-merging.c: Include gimple-fold.h. - (struct store_immediate_info): Document BIT_INSERT_EXPR stores. - (struct merged_store_group): Add bit_insertion field. - (dump_char_array): Use standard hexadecimal format. - (merged_store_group::merged_store_group): Set bit_insertion to false. - (merged_store_group::apply_stores): Use optimal buffer size. Deal - with BIT_INSERT_EXPR stores. Move up code updating the mask and - also print the mask in the dump file. - (pass_store_merging::gate): Minor tweak. - (imm_store_chain_info::coalesce_immediate): Fix wrong association - of stores with groups in dump. Allow coalescing of BIT_INSERT_EXPR - stores with INTEGER_CST stores. - (count_multiple_uses) : New case. - (imm_store_chain_info::output_merged_store): Add try_bitpos variable - and use it throughout. Generate bit insertion sequences if need be. - (pass_store_merging::process_store): Remove redundant condition. - Record stores from a SSA name to a bit-field with BIT_INSERT_EXPR. - -2018-06-01 Segher Boessenkool - - * config/rs6000/rs6000.c (rs6000_mangle_type): Change the mangling of - the 128-bit floating point types. Fix function comment. - -2018-06-01 Kyrylo Tkachov - - * config/aarch64/aarch64-simd.md - (aarch64_simd_vec_unpack_lo_): Use UXTL and SXTL assembler - mnemonics. - (aarch64_simd_vec_unpack_hi_): Use UXTL2 and SXTL2 assembler - mnemonics. - -2018-06-01 Richard Sandiford - - PR tree-optimization/85989 - * gimple-ssa-backprop.c (backprop::m_visited_phis): New member - variable. - (backprop::intersect_uses): Check it when deciding whether this - is a backedge reference. - (backprop::process_block): Add each phi to m_visited_phis - after visiting it, then clear it at the end. - -2018-06-01 Richard Biener - - * tree-vectorizer.h (vect_dr_stmt): New function. - (vect_get_load_cost): Adjust. - (vect_get_store_cost): Likewise. - * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): - Use vect_dr_stmt instead of DR_SMTT. - (vect_record_base_alignments): Likewise. - (vect_calculate_target_alignment): Likewise. - (vect_compute_data_ref_alignment): Likewise and make static. - (vect_update_misalignment_for_peel): Likewise. - (vect_verify_datarefs_alignment): Likewise. - (vector_alignment_reachable_p): Likewise. - (vect_get_data_access_cost): Likewise. Pass down - vinfo to vect_get_load_cost/vect_get_store_cost instead of DR. - (vect_get_peeling_costs_all_drs): Likewise. - (vect_peeling_hash_get_lowest_cost): Likewise. - (vect_enhance_data_refs_alignment): Likewise. - (vect_find_same_alignment_drs): Likewise. - (vect_analyze_data_refs_alignment): Likewise. - (vect_analyze_group_access_1): Likewise. - (vect_analyze_group_access): Likewise. - (vect_analyze_data_ref_access): Likewise. - (vect_analyze_data_ref_accesses): Likewise. - (vect_vfa_segment_size): Likewise. - (vect_small_gap_p): Likewise. - (vectorizable_with_step_bound_p): Likewise. - (vect_prune_runtime_alias_test_list): Likewise. - (vect_analyze_data_refs): Likewise. - (vect_supportable_dr_alignment): Likewise. - * tree-vect-loop-manip.c (get_misalign_in_elems): Likewise. - (vect_gen_prolog_loop_niters): Likewise. - * tree-vect-loop.c (vect_analyze_loop_2): Likewise. - * tree-vect-patterns.c (vect_recog_bool_pattern): Do not - modify DR_STMT. - (vect_recog_mask_conversion_pattern): Likewise. - (vect_try_gather_scatter_pattern): Likewise. - * tree-vect-stmts.c (vect_model_store_cost): Pass stmt_info - to vect_get_store_cost. - (vect_get_store_cost): Get stmt_info instead of DR. - (vect_model_load_cost): Pass stmt_info to vect_get_load_cost. - (vect_get_load_cost): Get stmt_info instead of DR. - -2018-06-01 Richard Biener - - PR middle-end/86017 - * gimple-fold.c (var_decl_component_p): Also allow offsetted - vars wrapped in MEM_REFs. - -2018-06-01 Richard Sandiford - - * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class): - Fix subreg tests so that we only return a choice between - GENERAL_REGS and FP_REGS if the original classes included both. - -2018-06-01 Richard Biener - - PR ipa/85960 - * tree-ssa-structalias.c (get_function_part_constraint): - Handle NULL fi->decl. - (find_func_aliases_for_call): Properly handle indirect - fi from direct call. - (find_func_clobbers): Likewise. - (ipa_pta_execute): Likewise. - (create_variable_info_for): For functions that are ifunc_resolver - resolve to a varinfo that contains the result of the resolver call. - (associate_varinfo_to_alias): Do not treat ifunc resolvers as - aliases. - -2018-05-31 Michael Collison - - * config/aarch64/aarch64.md: - (*fix_to_zero_extenddfdi2): New pattern. - * gcc.target/aarch64/fix_extend1.c: New testcase. - -2018-05-31 Qing Zhao - - PR middle-end/78809 - PR middle-end/83026 - * builtins.c (expand_builtin): Add the handling of BUILT_IN_STRCMP_EQ - and BUILT_IN_STRNCMP_EQ. - * builtins.def: Add new builtins BUILT_IN_STRCMP_EQ and - BUILT_IN_STRNCMP_EQ. - * gimple-fold.c (gimple_fold_builtin_string_compare): Add the - handling of BUILTIN_IN_STRCMP_EQ and BUILT_IN_STRNCMP_EQ. - (gimple_fold_builtin): Likewise. - * tree-ssa-strlen.c (compute_string_length): New function. - (determine_min_obsize): New function. - (handle_builtin_string_cmp): New function to handle calls to - string compare functions. - (strlen_optimize_stmt): Add handling to builtin string compare - calls. - * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): - Add the handling of BUILT_IN_STRCMP_EQ and BUILT_IN_STRNCMP_EQ. - * tree.c (build_common_builtin_nodes): Add new defines of - BUILT_IN_STRNCMP_EQ and BUILT_IN_STRCMP_EQ. - -2018-05-31 Jakub Jelinek - - PR target/85984 - * bb-reorder.c (pass_partition_blocks::gate): Return false for - functions with naked attribute. - -2018-05-31 Uros Bizjak - - * config/i386/sse.md (avx_vec_concat): - Substitute concat_tg_mode mode attribute with xtg_mode. - (avx512dq_broadcast_1): Ditto. - (concat_tg_mode): Remove mode attribute. - -2018-05-31 Martin Sebor - - PR c/82063 - * calls.c (alloc_max_size): Correct a logic error/typo. - Treat excessive arguments as infinite. Warn for invalid arguments. - * doc/invoke.texi (-Walloc-size-larger-than): Update. - -2018-05-31 H.J. Lu - - PR target/85829 - * config/i386/x86-tune.def: Re-enable partial_reg_dependency - and movx for Haswell. - -2018-05-31 Chung-Lin Tang - Cesar Philippidis - - PR middle-end/85879 - * gimplify.c (gimplify_adjust_omp_clauses): Add 'remove = true' - when emitting error on private/firstprivate reductions. - * omp-low.c (lower_omp_target): Avoid reference-type processing - on pointers for firstprivate clause. - -2018-05-31 Sameera Deshpande - - * config/aarch64/aarch64-simd-builtins.def (ld1x3): New. - (st1x2): Likewise. - (st1x3): Likewise. - * config/aarch64/aarch64-simd.md - (aarch64_ld1x3): New pattern. - (aarch64_ld1_x3_): Likewise - (aarch64_st1x2): Likewise - (aarch64_st1_x2_): Likewise - (aarch64_st1x3): Likewise - (aarch64_st1_x3_): Likewise - * config/aarch64/arm_neon.h (vld1_u8_x3): New function. - (vld1_s8_x3): Likewise. - (vld1_u16_x3): Likewise. - (vld1_s16_x3): Likewise. - (vld1_u32_x3): Likewise. - (vld1_s32_x3): Likewise. - (vld1_u64_x3): Likewise. - (vld1_s64_x3): Likewise. - (vld1_f16_x3): Likewise. - (vld1_f32_x3): Likewise. - (vld1_f64_x3): Likewise. - (vld1_p8_x3): Likewise. - (vld1_p16_x3): Likewise. - (vld1_p64_x3): Likewise. - (vld1q_u8_x3): Likewise. - (vld1q_s8_x3): Likewise. - (vld1q_u16_x3): Likewise. - (vld1q_s16_x3): Likewise. - (vld1q_u32_x3): Likewise. - (vld1q_s32_x3): Likewise. - (vld1q_u64_x3): Likewise. - (vld1q_s64_x3): Likewise. - (vld1q_f16_x3): Likewise. - (vld1q_f32_x3): Likewise. - (vld1q_f64_x3): Likewise. - (vld1q_p8_x3): Likewise. - (vld1q_p16_x3): Likewise. - (vld1q_p64_x3): Likewise. - (vst1_s64_x2): Likewise. - (vst1_u64_x2): Likewise. - (vst1_f64_x2): Likewise. - (vst1_s8_x2): Likewise. - (vst1_p8_x2): Likewise. - (vst1_s16_x2): Likewise. - (vst1_p16_x2): Likewise. - (vst1_s32_x2): Likewise. - (vst1_u8_x2): Likewise. - (vst1_u16_x2): Likewise. - (vst1_u32_x2): Likewise. - (vst1_f16_x2): Likewise. - (vst1_f32_x2): Likewise. - (vst1_p64_x2): Likewise. - (vst1q_s8_x2): Likewise. - (vst1q_p8_x2): Likewise. - (vst1q_s16_x2): Likewise. - (vst1q_p16_x2): Likewise. - (vst1q_s32_x2): Likewise. - (vst1q_s64_x2): Likewise. - (vst1q_u8_x2): Likewise. - (vst1q_u16_x2): Likewise. - (vst1q_u32_x2): Likewise. - (vst1q_u64_x2): Likewise. - (vst1q_f16_x2): Likewise. - (vst1q_f32_x2): Likewise. - (vst1q_f64_x2): Likewise. - (vst1q_p64_x2): Likewise. - (vst1_s64_x3): Likewise. - (vst1_u64_x3): Likewise. - (vst1_f64_x3): Likewise. - (vst1_s8_x3): Likewise. - (vst1_p8_x3): Likewise. - (vst1_s16_x3): Likewise. - (vst1_p16_x3): Likewise. - (vst1_s32_x3): Likewise. - (vst1_u8_x3): Likewise. - (vst1_u16_x3): Likewise. - (vst1_u32_x3): Likewise. - (vst1_f16_x3): Likewise. - (vst1_f32_x3): Likewise. - (vst1_p64_x3): Likewise. - (vst1q_s8_x3): Likewise. - (vst1q_p8_x3): Likewise. - (vst1q_s16_x3): Likewise. - (vst1q_p16_x3): Likewise. - (vst1q_s32_x3): Likewise. - (vst1q_s64_x3): Likewise. - (vst1q_u8_x3): Likewise. - (vst1q_u16_x3): Likewise. - (vst1q_u32_x3): Likewise. - (vst1q_u64_x3): Likewise. - (vst1q_f16_x3): Likewise. - (vst1q_f32_x3): Likewise. - (vst1q_f64_x3): Likewise. - (vst1q_p64_x3): Likewise. - -2018-05-30 Jozef Lawrynowicz - - * config/msp430/msp430.c (msp430_output_labelref): Prepend - user_label_prefix to name. - - * tree-core.h: Update comment about the format of NAME string - passed to handler in attribute_spec. - - * config/msp430/msp430.md: Remove erroneous subreg expression from - zero_extendqisi2 insn pattern. Remove msp430x ISA restriction on - zero_extend{q,h}isi2. - -2018-05-30 Borislav Petkov - - * doc/extend.texi: Document some architecture specific - constraints and sort entries. - -2018-05-30 Martin Sebor - - PR middle-end/85369 - * builtins.c (expand_builtin_stpcpy_1): New function. - (expand_builtin_stpcpy): Call it, and call maybe_warn_nonstring_arg - only if the former succeeds. - -2018-05-31 Sameera Deshpande - - * config/aarch64/aarch64-cores.def (saphira) : Add support for ARMv8.4 - in saphira. - -2018-05-30 Jan Hubicka - - * doc/invoke.texi (-flinker-output): Document - -2018-05-30 Jan Hubicka - - * passes.c (ipa_write_summaries): Only modify statements if body - is in memory. - * cgraphunit.c (ipa_passes): Also produce intermeidate code when - incrementally linking. - (ipa_passes): Likewise. - * lto-cgraph.c (lto_output_node): When incrementally linking do not - pass down resolution info. - * common.opt (flag_incremental_link): Update info. - * gcc.c (plugin specs): Turn flinker-output=* to - -plugin-opt=-linker-output-known - * toplev.c (compile_file): Also cut compilation when doing incremental - link. - * flag-types. (enum lto_partition_model): Add - LTO_LINKER_OUTPUT_NOLTOREL. - (invoke.texi): Add -flinker-output docs. - * ipa.c (symbol_table::remove_unreachable_nodes): Handle LTO incremental - link same way as WPA; do not stream in dead initializers. - - * dwarf2out.c (dwarf2out_die_ref_for_decl, - darf2out_register_external_decl): Support incremental link. - -2018-05-30 Jan Hubicka - - * lto-opts.c (lto_write_options): Skip OPT_dumpdir, OPT_fresolution_. - -2018-05-30 Jan Hubicka - - * lto-wrapper.c (debug_objcopy): Add rename parameter; pass - it down to simple_object_copy_lto_debug_sections. - (run_gcc): Determine incremental LTO link time and configure - lto1 into non-wpa mode, disable renaming of debug sections. - -2018-05-30 Kelvin Nilsen - - * doc/extend.texi (PowerPC AltiVec Built-in Functions): Remove - descriptions of various incorrectly documented functions. - -2018-05-30 Andre Vieira - - Revert: - * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make - address check not strict. - -2018-05-30 Richard Biener - - PR tree-optimization/85964 - * tracer.c (better_p): Drop initialized count check, we only - call the function with initialized counts now. - (find_best_successor): Do find a best edge if one - has uninitialized count. - (find_best_predecessor): Likewise. Do BB frequency check only - if count is initialized. - -2017-05-30 Jackson Woodruff - - * config/aarch64/aarch64.c (aarch64_host_wide_int_compare): New. - (aarch64_ldrstr_offset_compare): New. - (aarch64_operands_adjust_ok_for_ldpstp): Update to consider all - load/store orderings. - (aarch64_gen_adjusted_ldpstp): Likewise. - -2018-05-30 Wilco Dijkstra - - * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class): - Check for subset of GENERAL_REGS and FP_REGS. - * config/aarch64/aarch64-simd.md (aarch64_get_lane): Increase cost of - r=w alternative. - -2018-05-30 Richard Sandiford - - * alias.c (adjust_offset_for_component_ref): Use poly_int_tree_p - and wi::to_poly_offset. Add the current offset and then check - whether the sum fits, rather than using an unchecked addition of - a checked term. Check for a shwi rather than a uhwi. - * expr.c (get_bit_range): Use tree_to_poly_uint64. - (store_constructor): Use poly_int_tree_p. - (expand_expr_real_1): Likewise. - * function.c (assign_temp): Likewise. - * fold-const.c (const_binop): Use poly_int_tree_p and - wi::to_poly_offset. - (fold_indirect_ref_1): Likewise. Use multiple_p to attempt an exact - division. - * ipa-icf-gimple.c (func_checker::compare_operand): Use - to_poly_offset for MEM offsets. - * ipa-icf.c (sem_variable::equals): Likewise. - * stor-layout.c (compute_record_mode): Use poly_int_tree_p. - * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use - wi::to_poly_offset for BIT_FIELD_REF offsets. - (vn_reference_maybe_forwprop_address): Use poly_int_tree_p and - wi::to_poly_offset. - * var-tracking.c (emit_note_insn_var_location): Use - tree_to_poly_uint64. - -2018-05-29 Jim Wilson - - * config/riscv/riscv.c (riscv_interrupt_type): Fix comment typo. - -2018-05-29 Uros Bizjak - - PR target/85950 - * config/i386/i386.md (l2): - Enable for TARGET_SSE4_1 and generate rounds{s,d} and cvtts{s,d}2si{,q} - sequence. - (sse4_1_round2): Use nonimmediate_operand - for operand 1 predicate. - -2018-05-29 Martin Sebor - Richard Biener - - PR testsuite/85888 - * calls.c (get_size_range): Call determine_value_range instead - of get_value_range.. - * tree-vrp.h (determine_value_range): Declared new function. - * tree-vrp.c (determine_value_range_1, determine_value_range): New. - -2018-05-29 Richard Biener - - * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Make - sure to use non-pattern stmts for get_earlier_stmt arguments. - * tree-vectorizer.h (get_earlier_stmt): Assert we do not get - called on pattern stmts. - (get_later_stmt): Likewise. - -2018-05-29 Martin Liska - - PR gcov-profile/85759 - * doc/gcov.texi: Document GCOV_ERROR_FILE and GCOV_EXIT_AT_ERROR - env variables. - -2018-05-29 Jakub Jelinek - - * tree-cfg.c (verify_gimple_assign_unary): Add checking for - VEC_UNPACK_*_EXPR. - (verify_gimple_assign_binary): Check TYPE_VECTOR_SUBPARTS for - VEC_PACK_*_EXPR. - - PR target/85918 - * tree.def (VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR, - VEC_PACK_FLOAT_EXPR): New tree codes. - * tree-pretty-print.c (op_code_prio): Handle - VEC_UNPACK_FIX_TRUNC_HI_EXPR and VEC_UNPACK_FIX_TRUNC_LO_EXPR. - (dump_generic_node): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR, - VEC_UNPACK_FIX_TRUNC_LO_EXPR and VEC_PACK_FLOAT_EXPR. - * tree-inline.c (estimate_operator_cost): Likewise. - * gimple-pretty-print.c (dump_binary_rhs): Handle VEC_PACK_FLOAT_EXPR. - * fold-const.c (const_binop): Likewise. - (const_unop): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR and - VEC_UNPACK_FIX_TRUNC_LO_EXPR. - * tree-cfg.c (verify_gimple_assign_unary): Likewise. - (verify_gimple_assign_binary): Handle VEC_PACK_FLOAT_EXPR. - * cfgexpand.c (expand_debug_expr): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR, - VEC_UNPACK_FIX_TRUNC_LO_EXPR and VEC_PACK_FLOAT_EXPR. - * expr.c (expand_expr_real_2): Likewise. - * optabs.def (vec_packs_float_optab, vec_packu_float_optab, - vec_unpack_sfix_trunc_hi_optab, vec_unpack_sfix_trunc_lo_optab, - vec_unpack_ufix_trunc_hi_optab, vec_unpack_ufix_trunc_lo_optab): New - optabs. - * optabs.c (expand_widen_pattern_expr): For - VEC_UNPACK_FIX_TRUNC_HI_EXPR and VEC_UNPACK_FIX_TRUNC_LO_EXPR use - sign from result type rather than operand's type. - (expand_binop_directly): For vec_packu_float_optab and - vec_packs_float_optab allow result type to be different from operand's - type. - * optabs-tree.c (optab_for_tree_code): Handle - VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR and - VEC_PACK_FLOAT_EXPR. Formatting fixes. - * tree-vect-generic.c (expand_vector_operations_1): Handle - VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR and - VEC_PACK_FLOAT_EXPR. - * tree-vect-stmts.c (supportable_widening_operation): Handle - FIX_TRUNC_EXPR. - (supportable_narrowing_operation): Handle FLOAT_EXPR. - * config/i386/i386.md (fixprefix, floatprefix): New code attributes. - * config/i386/sse.md (*floatv2div2sf2): Rename to ... - (floatv2div2sf2): ... this. Formatting fix. - (vpckfloat_concat_mode, vpckfloat_temp_mode, vpckfloat_op_mode): New - mode attributes. - (vec_pack_float_): New expander. - (vunpckfixt_mode, vunpckfixt_model, vunpckfixt_extract_mode): New mode - attributes. - (vec_unpack_fix_trunc_lo_, - vec_unpack_fix_trunc_hi_): New expanders. - * doc/md.texi (vec_packs_float_@var{m}, vec_packu_float_@var{m}, - vec_unpack_sfix_trunc_hi_@var{m}, vec_unpack_sfix_trunc_lo_@var{m}, - vec_unpack_ufix_trunc_hi_@var{m}, vec_unpack_ufix_trunc_lo_@var{m}): - Document. - * doc/generic.texi (VEC_UNPACK_FLOAT_HI_EXPR, - VEC_UNPACK_FLOAT_LO_EXPR): Fix pasto in description. - (VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR, - VEC_PACK_FLOAT_EXPR): Document. - -2018-05-29 Richard Biener - - * tree-vectorizer.h (struct vec_info): Add stmt_vec_infos - member. - (stmt_vec_info_vec): Make pointer. - (init_stmt_vec_info_vec): Remove. - (free_stmt_vec_info_vec): Likewise. - (set_stmt_vec_info_vec): New function. - (free_stmt_vec_infos): Likewise. - (vinfo_for_stmt): Adjust for stmt_vec_info_vec indirection. - (set_vinfo_for_stmt): Likewise. - (get_earlier_stmt): Likewise. - (get_later_stmt): Likewise. - * tree-vectorizer.c (stmt_vec_info_vec): Make pointer. - (vec_info::vec_info): Allocate stmt_vec_infos and set the global. - (vec_info::~vec_info): Free stmt_vec_infos. - (vectorize_loops): Set the global stmt_vec_info_vec to NULL. - Remove old init_stmt_vec_info_vec/free_stmt_vec_info_vec calls. - (pass_slp_vectorize::execute): Likewise. - * tree-vect-stmts.c (init_stmt_vec_info_vec): Remove. - (free_stmt_vec_info_vec): Likewise. - (set_stmt_vec_info_vec): New function. - (free_stmt_vec_infos): Likewise. - * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Set - the global stmt_vec_info_vec. - * tree-parloops.c (gather_scalar_reductions): Use - set_stmt_vec_info_vec/free_stmt_vec_infos and maintain a local - vector. - -2018-05-29 Richard Biener - - * dominance.c (iterate_fix_dominators): Push/pop TV_DOMINANCE. - -2018-05-29 Martin Liska - David Malcolm - - * vec.c (test_reverse): New. - (vec_c_tests): Add new test. - * vec.h (vl_ptr>::reverse): New function. - -2018-05-29 Gerald Pfeifer - - * config.gcc: Identify FreeBSD 3.x and 4.x as unsupported. - - * config/freebsd-spec.h (FBSD_LIB_SPEC): Only consider FreeBSD 5 - and later. - -2018-05-28 Bernd Edlinger - - * tree-dump.c (dump_node): Use splay_tree_delete_pointers. - -2018-05-28 Richard Biener - - PR tree-optimization/85933 - * tree-vect-data-refs.c (vect_record_base_alignments): Only - look at stmts marked as vectorizable. - -2018-05-28 Richard Biener - - PR tree-optimization/85934 - * tree-vect-generic.c (expand_vector_operations_1): Hoist - vector boolean check before scalar optimization. - -2018-05-28 Jakub Jelinek - - * doc/invoke.texi (ARM Options): Use @item instead of @itemx - for armv5te. - -2018-05-28 Mark Wielaard - - * dwarf2asm.c (dw2_asm_output_delta_uleb128): Add brackets around lab2 - if it is an expression containing a minus sign. - -2018-05-27 John David Anglin - - * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 0. - -2018-05-27 Paul Koning - - * config/pdp11/pdp11.md (truncsihi2): Remove. - -2018-05-27 Monk Chiang - Chung-Ju Wu - - * config/nds32/nds32-intrinsic.md (unaligned_storedi): Modify patterns - implementation. - (unaligned_store_dw): Ditto. - * config/nds32/nds32-memory-manipulation.c - (nds32_expand_movmemsi_loop_known_size): Refactoring implementation. - (nds32_gen_dup_4_byte_to_word_value): Rename to ... - (nds32_gen_dup_4_byte_to_word_value_aux): ... this. - (emit_setmem_word_loop): Rename to ... - (emit_setmem_doubleword_loop): ... this. - (nds32_gen_dup_4_byte_to_word_value): New function. - (nds32_gen_dup_8_byte_to_double_word_value): New function. - (nds32_expand_setmem_loop): Refine implementation. - (nds32_expand_setmem_loop_v3m): Ditto. - * config/nds32/nds32-multiple.md (unaligned_store_update_base_dw): New - pattern. - -2018-05-27 Chung-Ju Wu - - * config/nds32/nds32.md (bswapsi2, bswaphi2): New patterns. - -2018-05-27 Chung-Ju Wu - - * config/nds32/nds32.c (nds32_attribute_table): Add "no_prologue". - (nds32_init_machine_status): Initialize machine->attr_naked_p and - machine->attr_no_prologue_p. - (nds32_compute_stack_frame): Check "naked" and "no_prologue" attributes. - (nds32_naked_function_p): Handle "naked" and "no_prologue" attributes. - (nds32_expand_epilogue): Consider attr_naked_p. - (nds32_expand_epilogue_v3pop): Likewise. - (nds32_can_use_return_insn): Likewise. - * config/nds32/nds32.h (machine_function): Add attr_naked_p and - attr_no_prologue_p fields. - * config/nds32/nds32.opt (mret-in-naked-func): New option. - -2018-05-27 Jakub Jelinek - - PR target/85918 - * config/i386/i386.md (fixunssuffix, floatunssuffix): New code - attributes. - * config/i386/sse.md - (float2): - Rename to ... - (float2): - ... this. - (float2): - Rename to ... - (float2): - ... this. - (*floatv2div2sf2): Rename to ... - (*floatv2div2sf2): ... this. - (floatv2div2sf2_mask): Rename to ... - (floatv2div2sf2_mask): ... this. - (*floatv2div2sf2_mask_1): Rename to ... - (*floatv2div2sf2_mask_1): ... this. - (fix_truncv8dfv8si2): Rename - to ... - (fix_truncv8dfv8si2): - ... this. - (fix_trunc2): - Rename to ... - (fix_trunc2): - ... this. - (fix_trunc2): - Rename to ... - (fix_trunc2): - ... this. - (fix_truncv2sfv2di2): Rename to ... - (fix_truncv2sfv2di2): ... this. - (vec_pack_ufix_trunc_): Use gen_fixuns_truncv8dfv8si2 instead of - gen_ufix_truncv8dfv8si2. - * config/i386/i386-builtin.def (__builtin_ia32_cvttpd2uqq256_mask, - __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvttps2uqq256_mask, - __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvtuqq2ps256_mask, - __builtin_ia32_cvtuqq2ps128_mask, __builtin_ia32_cvtuqq2pd256_mask, - __builtin_ia32_cvtuqq2pd128_mask, __builtin_ia32_cvttpd2udq512_mask, - __builtin_ia32_cvtuqq2ps512_mask, __builtin_ia32_cvtuqq2pd512_mask, - __builtin_ia32_cvttps2uqq512_mask, __builtin_ia32_cvttpd2uqq512_mask): - Use fixuns instead ufix or floatuns instead ufloat in CODE_FOR_ names. - -2018-05-24 H.J. Lu - - PR target/85900 - PR target/85345 - * varasm.c (assemble_alias): Lookup ifunc attribute on error. - -2018-05-25 Jim Wilson - - * config/riscv/riscv-protos.h (riscv_epilogue_uses): New. - * config/riscv/riscv.c (struct machine_function): Add - interrupt_handler_p and attribute_checked_p fields. - (riscv_attribute_table): Add interrupt. - (riscv_interrupt_type_p): New. - (riscv_save_reg_p): Save extra regs for interrupt handler. - (riscv_use_save_libcall): Return false for interrupt handler. - (riscv_first_stack_step): Add forward declaration. - (riscv_compute_frame_info): New local interrupt_save_t1. Set it - for interrupt handler with large frame. Use it for saved reg list. - (riscv_expand_prologue): Move flag_stack_usage_info support to - eliminate duplication. - (riscv_expand_epilogue): Generate mret for interrupt handler. - (riscv_epilogue_uses): New. - (riscv_can_use_return_insn): Return false for interrupt handler. - (riscv_function_ok_for_sibcall): Likewise. - (riscv_set_current_function): Add interrupt handler support. - * config/riscv/riscv.h (EPILOGUE_USES): Call riscv_epilogue_uses. - * config/riscv/riscv.md (UNSPECV_MRET): New. - (GP_REGNUM): New. - (riscv_frflags, riscv_fsflags): Use tab after opcode. - (riscv_mret): New. - * doc/extend.texi (RISC-V Function Attributes) : New. - -2018-05-25 Bill Schmidt - - PR tree-optimization/85712 - * gimple-ssa-strength-reduction.c (replace_one_candidate): Skip if - this candidate has already been replaced in-situ by a copy. - -2018-05-25 Jason Merrill - - PR c++/80485 - inline function non-zero address. - * symtab.c (nonzero_address): Check DECL_COMDAT. - -2018-05-25 Uros Bizjak - - PR target/83628 - * config/alpha/alpha.md (ashlsi3): New insn pattern. - (*ashlsi_se): Rename from *ashldi_se. Define as sign - extension of SImode operation. Use const123_operand predicate. - (*saddsi_1): Remove. - (*saddl_se_1): Ditto. - (*ssubsi_1): Ditto. - (*ssubl_se_1): Ditto. - * config/alpha/predicates.md (const123_operand): New predicate. - * config/alpha/constraints.md (P): Use IN_RANGE. - -2018-05-25 Richard Biener - - * tree-ssa-alias.h (refs_may_alias_p): Add tbaa_p bool parameter, - defaulted to true. - (ref_maybe_used_by_stmt_p): Likewise. - (stmt_may_clobber_ref_p): Likewise. - (stmt_may_clobber_ref_p_1): Likewise. - * tree-ssa-alias.c (refs_may_alias_p): Add tbaa_p bool parameter - and pass it along. - (ref_maybe_used_by_stmt_p): Likewise. - (stmt_may_clobber_ref_p): Likewise. - (stmt_may_clobber_ref_p_1): Likewise. - * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Use - the alias oracle to disambiguate DRs with stmts DR analysis - couldn't handle. - (vect_analyze_data_refs): Do not give up on not analyzable - DRs for BB vectorization. Remove code truncating the dataref - vector. - -2018-05-25 Jakub Jelinek - - PR target/85832 - * config/i386/sse.md (_eq3_1): - Add (=Yk,v,C) variant using vptestm insn. Use TARGET_AVX512BW - in test instead of TARGET_AVX512F for VI12_AVX512VL iterator. - -2018-05-25 Richard Biener - - * tree-vect-data-refs.c (vect_find_stmt_data_reference): New - function, combining stmt data ref gathering and fatal analysis - parts. - (vect_analyze_data_refs): Remove now redudnant code and simplify. - * tree-vect-loop.c (vect_get_datarefs_in_loop): Factor out from - vect_analyze_loop_2 and use vect_find_stmt_data_reference. - * tree-vect-slp.c (vect_slp_bb): Use vect_find_stmt_data_reference. - * tree-vectorizer.h (vect_find_stmt_data_reference): Declare. - -2018-05-25 Bin Cheng - - PR tree-optimization/85720 - * tree-loop-distribution.c (break_alias_scc_partitions): Don't merge - SCC if all partitions are builtins. - (version_loop_by_alias_check): New parameter. Generate cancelable - runtime alias check if all partitions are builtins. - (distribute_loop): Update call to above function. - -2018-05-25 Bin Cheng - - * tree-outof-ssa.c (tree-ssa.h, tree-dfa.h): Include header files. - (create_default_def, for_all_parms): Moved from tree-ssa-coalesce.c. - (parm_default_def_partition_arg): Ditto. - (set_parm_default_def_partition): Ditto. - (get_parm_default_def_partitions): Ditto and make it static. - (get_undefined_value_partitions): Ditto and make it static. - (remove_ssa_form): Refactor call to init_var_map here. - * tree-ssa-coalesce.c (build_ssa_conflict_graph): Support live range - computation for loop region. - (coalesce_partitions, compute_optimized_partition_bases): Ditto. - (register_default_def): Delete. - (for_all_parms, create_default_def): Move to tree-outof-ssa.c. - (parm_default_def_partition_arg): Ditto. - (set_parm_default_def_partition): Ditto. - (get_parm_default_def_partitions): Ditto and make it static. - (get_undefined_value_partitions): Ditto and make it static. - (coalesce_with_default, coalesce_with_default): Update comment. - (create_coalesce_list_for_region): New func factored out from - create_outofssa_var_map. - (populate_coalesce_list_for_outofssa): New func factored out from - create_outofssa_var_map and coalesce_ssa_name. - (create_outofssa_var_map): Delete. - (coalesce_ssa_name): Refactor to support live range computation. - * tree-ssa-coalesce.h (coalesce_ssa_name): Change decl. - (get_parm_default_def_partitions): Delete. - (get_undefined_value_partitions): Ditto. - * tree-ssa-live.c (init_var_map, delete_var_map): Support live range - computation for loop region. - (new_tree_live_info, loe_visit_block): Ditto. - (live_worklist, set_var_live_on_entry): Ditto. - (calculate_live_on_exit, verify_live_on_entry): Ditto. - * tree-ssa-live.h (struct _var_map): New fields. - (init_var_map): Change decl. - (region_contains_p): New. - -2018-05-25 Bin Cheng - - * tree-ssa-live.h (live_merge_and_clear): Delete. - -2018-05-25 Richard Biener - - PR c++/85912 - * tree-dump.c (dequeue_and_dump): Remove access to removed - operand 2 of a SWITCH_EXPR. - -2018-05-25 Richard Sandiford - - * doc/sourcebuild.texi (vect_double_cond_arith): Include - multiplication and division. - * doc/md.texi (cond_mul@var{m}, cond_div@var{m}, cond_mod@var{m}) - (cond_udiv@var{m}, cond_umod@var{m}): Document. - * optabs.def (cond_smul_optab, cond_sdiv_optab, cond_smod_optab) - (cond_udiv_optab, cond_umod_optab): New optabs. - * internal-fn.def (IFN_COND_MUL, IFN_COND_DIV, IFN_COND_MOD) - (IFN_COND_RDIV): New internal functions. - * internal-fn.c (get_conditional_internal_fn): Handle TRUNC_DIV_EXPR, - TRUNC_MOD_EXPR and RDIV_EXPR. - * match.pd (UNCOND_BINARY, COND_BINARY): Handle them. - * config/aarch64/iterators.md (UNSPEC_COND_MUL, UNSPEC_COND_DIV): - New unspecs. - (SVE_INT_BINARY): Include mult. - (SVE_COND_FP_BINARY): Include UNSPEC_MUL and UNSPEC_DIV. - (optab, sve_int_op): Handle mult. - (optab, sve_fp_op, commutative): Handle UNSPEC_COND_MUL and - UNSPEC_COND_DIV. - * config/aarch64/aarch64-sve.md (cond_): New pattern - for SVE_INT_BINARY_SD. - -2018-05-25 Richard Sandiford - - * config/aarch64/iterators.md (SVE_INT_BINARY_SD): New code iterator. - (optab, sve_int_op): Handle div and udiv. - * config/aarch64/aarch64-sve.md (3): New expander - for SVE_INT_BINARY_SD. - (*3): New insn for the same. - -2018-05-25 Richard Sandiford - - * tree-vect-patterns.c: Include predict.h. - (vect_recog_divmod_pattern): Restrict check for division support - to when optimizing for size. - -2018-05-25 Richard Sandiford - - * doc/sourcebuild.texi (vect_double_cond_arith: Document. - * gimple-match.h (gimple_match_op::MAX_NUM_OPS): Bump to 4. - (gimple_match_op::gimple_match_op): Add an overload for 4 operands. - (gimple_match_op::set_op): Likewise. - (gimple_resimplify4): Declare. - * genmatch.c (get_operand_type): Handle CFN_COND_* functions. - (expr::gen_transform): Likewise. - (decision_tree::gen): Generate a simplification routine for 4 operands. - * gimple-match-head.c (gimple_simplify): Add an overload for - 4 operands. In the top-level function, handle up to 4 call - arguments and call gimple_resimplify4. - (gimple_resimplify4): New function. - (build_call_internal): Pass a fourth operand. - (maybe_push_to_seq): Likewise. - * match.pd (UNCOND_BINARY, COND_BINARY): New operator lists. - Fold VEC_COND_EXPRs of an operation and a default value into - an IFN_COND_* function if possible. - * config/aarch64/iterators.md (UNSPEC_COND_MAX, UNSPEC_COND_MIN): - New unspecs. - (SVE_COND_FP_BINARY): Include them. - (optab, sve_fp_op): Handle them. - (SVE_INT_BINARY_REV): New code iterator. - (SVE_COND_FP_BINARY_REV): New int iterator. - (commutative): New int attribute. - * config/aarch64/aarch64-protos.h (aarch64_sve_prepare_conditional_op): - Declare. - * config/aarch64/aarch64.c (aarch64_sve_prepare_conditional_op): New - function. - * config/aarch64/aarch64-sve.md (cond_): Use it. - (*cond_): New patterns for reversed operands. - -2018-05-25 Richard Biener - - * tree-vectorizer.h (STMT_VINFO_GROUP_*, GROUP_*): Remove. - (DR_GROUP_*): New, assert we have non-NULL ->data_ref_info. - (REDUC_GROUP_*): New, assert we have NULL ->data_ref_info. - (STMT_VINFO_GROUPED_ACCESS): Adjust. - * tree-vect-data-refs.c (everywhere): Adjust users. - * tree-vect-loop.c (everywhere): Likewise. - * tree-vect-slp.c (everywhere): Likewise. - * tree-vect-stmts.c (everywhere): Likewise. - * tree-vect-patterns.c (vect_reassociating_reduction_p): Likewise. - -2018-05-25 Rainer Orth - - * configure.ac (gcc_cv_as_section_has_e): Move to common section. - Rename to... - (gcc_cv_as_section_exclude): ... this. - Try Solaris as #exclude syntax. - * configure: Regenerate. - * config.in: Regenerate. - * config/i386/i386.c (i386_solaris_elf_named_section): Handle - SECTION_EXCLUDE. - * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section) - [HAVE_GAS_SECTION_EXCLUDE]: Handle SECTION_EXCLUDE. - - * varasm.c (default_elf_asm_named_section): Don't check if - HAVE_GAS_SECTION_EXCLUDE is defined. - -2018-05-25 Richard Sandiford - - * doc/md.texi: Update the documentation of the cond_* optabs - to mention the new final operand. Fix GET_MODE_NUNITS call. - Describe the scalar case too. - * internal-fn.def (IFN_EXTRACT_LAST): Change type to fold_left. - * internal-fn.c (expand_cond_unary_optab_fn): Expect 3 operands - instead of 2. - (expand_cond_binary_optab_fn): Expect 4 operands instead of 3. - (get_conditional_internal_fn): Update comment. - * tree-vect-loop.c (vectorizable_reduction): Pass the original - accumulator value as a final argument to conditional functions. - * config/aarch64/aarch64-sve.md (cond_): Turn into - a define_expand and add an "else" operand. Assert for now that - the else operand is equal to operand 2. Use SVE_INT_BINARY and - SVE_COND_FP_BINARY instead of SVE_COND_INT_OP and SVE_COND_FP_OP. - (*cond_): New patterns. - * config/aarch64/iterators.md (UNSPEC_COND_SMAX, UNSPEC_COND_UMAX) - (UNSPEC_COND_SMIN, UNSPEC_COND_UMIN, UNSPEC_COND_AND, UNSPEC_COND_ORR) - (UNSPEC_COND_EOR): Delete. - (optab): Remove associated mappings. - (SVE_INT_BINARY): New code iterator. - (sve_int_op): Remove int attribute and add "minus" to the code - attribute. - (SVE_COND_INT_OP): Delete. - (SVE_COND_FP_OP): Rename to... - (SVE_COND_FP_BINARY): ...this. - -2018-05-25 Richard Sandiford - - * optabs.c (can_reuse_operands_p): New function. - (maybe_legitimize_operands): Try to reuse the results for - earlier operands. - -2018-05-24 Uros Bizjak - - * config/i386/sse.md (cvtusi264): - Add {q} suffix to insn mnemonic. - -2018-05-23 Jozef Lawrynowicz - - * config/msp430/msp430.c (TARGET_WARN_FUNC_RETURN): Define. - (msp430_warn_func_return): New. - -2018-05-24 Roger Sayle - - * fold-const.c (tree_nonzero_bits): New function. - * fold-const.h (tree_nonzero_bits): Likewise. - * match.pd (POPCOUNT): New patterns to fold BUILTIN_POPCOUNT and - friends. POPCOUNT(x&1) => x&1, POPCOUNT(x)==0 => x==0, etc. - -2018-05-24 H.J. Lu - - PR target/85900 - PR target/85345 - * varasm.c (assemble_alias): Check ifunc_resolver only on - FUNCTION_DECL. - -2018-05-24 Uros Bizjak - - PR target/85903 - * config/i386/sse.md (movdi_to_sse): Do not generate pseudo - when memory input operand is handled. - -2018-05-24 Luis Machado - - * config/aarch64/aarch64.c (qdf24xx_addrcost_table): New static - global. - (qdf24xx_tunings) : Set to qdf24xx_addrcost_table. - -2018-05-24 Richard Sandiford - - * match.pd: Delay FMA folds until after vectorization. - -2018-05-24 Andre Vieira - - PR target/83009 - * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make - address check not strict. - -2018-05-24 Richard Sandiford - - * gimple-match.h (gimple_match_op): New class. - (mprts_hook): Replace parameters with a gimple_match_op *. - (maybe_build_generic_op): Likewise. - (gimple_simplified_result_is_gimple_val): Replace parameters with - a const gimple_match_op *. - (gimple_simplify): Replace code_helper * and tree * parameters with - a gimple_match_op * parameter. - (gimple_resimplify1): Replace code_helper *, tree and tree * - parameters with a gimple_match_op * parameter. - (gimple_resimplify2): Likewise. - (gimple_resimplify3): Likewise. - (maybe_push_res_to_seq): Replace code_helper, tree and tree * - parameters with a gimple_match_op * parameter. - * gimple-match-head.c (gimple_simplify): Change prototypes of - auto-generated functions to take a gimple_match_op * instead of - separate code_helper * and tree * parameters. Make the same - change in the top-level overload and update calls to the - gimple_resimplify routines. Update calls to the auto-generated - functions and to maybe_push_res_to_seq in the publicly-facing - operation-specific gimple_simplify overloads. - (gimple_match_op::MAX_NUM_OPS): Define. - (gimple_resimplify1): Replace rcode and ops with a single res_op - parameter. Update call to gimple_simplify. - (gimple_resimplify2): Likewise. - (gimple_resimplify3): Likewise. - (mprts_hook): Replace parameters with a gimple_match_op *. - (maybe_build_generic_op): Likewise. - (build_call_internal): Replace type, nargs and ops with - a gimple_match_op *. - (maybe_push_res_to_seq): Replace res_code, type and ops parameters - with a single gimple_match_op *. Update calls to mprts_hook, - build_call_internal and gimple_simplified_result_is_gimple_val. - Factor out code that is common to the tree_code and combined_fn cases. - * genmatch.c (expr::gen_transform): Replace tem_code and - tem_ops with a gimple_match_op called tem_op. Update calls - to the gimple_resimplify functions and maybe_push_res_to_seq. - (dt_simplify::gen_1): Manipulate res_op instead of res_code and - res_ops. Update call to the gimple_resimplify functions. - (dt_simplify::gen): Pass res_op instead of res_code and res_ops. - (decision_tree::gen): Make the functions take a gimple_match_op * - called res_op instead of separate res_code and res_ops parameters. - Update call accordingly. - * gimple-fold.c (replace_stmt_with_simplification): Replace rcode - and ops with a single res_op parameter. Update calls to - maybe_build_generic_op and maybe_push_res_to_seq. - (fold_stmt_1): Update calls to gimple_simplify and - replace_stmt_with_simplification. - (gimple_fold_stmt_to_constant_1): Update calls to gimple_simplify - and gimple_simplified_result_is_gimple_val. - * tree-cfgcleanup.c (cleanup_control_expr_graph): Update call to - gimple_simplify. - * tree-ssa-sccvn.c (vn_lookup_simplify_result): Replace parameters - with a gimple_match_op *. - (vn_nary_build_or_lookup): Likewise. Update call to - vn_nary_build_or_lookup_1. - (vn_nary_build_or_lookup_1): Replace rcode, type and ops with a - gimple_match_op *. Update calls to the gimple_resimplify routines - and to gimple_simplified_result_is_gimple_val. - (vn_nary_simplify): Update call to vn_nary_build_or_lookup_1. - Use gimple_match_op::MAX_NUM_OPS instead of a hard-coded 3. - (vn_reference_lookup_3): Update call to vn_nary_build_or_lookup. - (visit_nary_op): Likewise. - (visit_reference_op_load): Likewise. - -2018-05-23 Luis Machado - - * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Use correct type - modifier for printing the step amount. - -2018-05-23 Jozef Lawrynowicz - - PR target/78849 - * tree.c (build_common_tree_nodes): Dont set TYPE_SIZE for __intN - types. - -2018-05-23 Segher Boessenkool - - * doc/sourcebuild.texi (Endianness): New subsubsection. - -2018-05-23 Luis Machado - - * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) - : New const bool field. - * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include - prefetch_dynamic_strides. - (exynosm1_prefetch_tune): Likewise. - (thunderxt88_prefetch_tune): Likewise. - (thunderx_prefetch_tune): Likewise. - (thunderx2t99_prefetch_tune): Likewise. - (qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides to - false. - (aarch64_override_options_internal): Update to set - PARAM_PREFETCH_DYNAMIC_STRIDES. - * doc/invoke.texi (prefetch-dynamic-strides): Document new option. - * params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New. - * params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define. - * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for - prefetch-dynamic-strides setting. - -2018-05-23 Luis Machado - - * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) - : New const int field. - * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include - minimum_stride field defaulting to -1. - (exynosm1_prefetch_tune): Likewise. - (thunderxt88_prefetch_tune): Likewise. - (thunderx_prefetch_tune): Likewise. - (thunderx2t99_prefetch_tune): Likewise. - (qdf24xx_prefetch_tune) : Set to 2048. - : Set to 3. - (aarch64_override_options_internal): Update to set - PARAM_PREFETCH_MINIMUM_STRIDE. - * doc/invoke.texi (prefetch-minimum-stride): Document new option. - * params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New. - * params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define. - * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if - stride is constant and is below the minimum stride threshold. - -2018-05-23 Kyrylo Tkachov - - * config/arm/arm-cpus.in (mode26): Delete. - (armv4): Delete mode26 reference. - * config/arm/arm.c (arm_configure_build_target): Delete use of - isa_bit_mode26. - -2018-05-23 Uros Bizjak - - * config/i386/i386.md (*floatuns2_avx512): - New insn pattern. - (floatunssi2): Also enable for AVX512F and TARGET_SSE_MATH. - Rewrite expander pattern. Emit gen_floatunssi2_i387_with_xmm - for non-SSE modes. - (floatunsdisf2): Rewrite expander pattern. Hanlde TARGET_AVX512F. - (floatunsdidf2): Ditto. - -2018-05-23 Uros Bizjak - - * config/i386/i386.md (fixuns_truncdi2): New insn pattern. - (fixuns_truncsi2_avx512f): Ditto. - (*fixuns_truncsi2_avx512f_zext): Ditto. - (fixuns_truncsi2): Also enable for AVX512F and TARGET_SSE_MATH. - Emit fixuns_truncsi2_avx512f for AVX512F targets. - -2018-05-23 Alexander Monakov - - PR rtl-optimization/79985 - * df-scan.c (df_insn_refs_collect): Remove special case for - global registers and asm statements. - -2018-05-23 Alexander Monakov - - * extend.texi (Global Register Variables): Rewrite the bullet list. - Note that the register is available for allocation. Note that access - via inline asm must use constraints. Add note about async-signal - handlers. Remove paragraph about automagic register selection. - -2018-05-23 Richard Biener - - * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove restriction - of fixed offset from memset VN. - -2018-05-23 Bill Schmidt - - * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add - first_interp field. - (alloc_cand_and_find_basis): Initialize first_interp field. - (slsr_process_mul): Modify first_interp field. - (slsr_process_add): Likewise. - (slsr_process_cast): Modify first_interp field for each new - interpretation. - (slsr_process_copy): Likewise. - (dump_candidate): Dump first_interp field. - (replace_mult_candidate): Process all interpretations, not just - subsequent ones. - (replace_rhs_if_not_dup): Likewise. - (replace_one_candidate): Likewise. - -2018-05-23 Wilco Dijkstra - - * config/aarch64/aarch64.c (aarch64_use_frame_pointer): - Add new boolean. - (aarch64_needs_frame_chain): New function. - (aarch64_parse_override_string): Set aarch64_use_frame_pointer. - -2018-05-23 Sudakshina Das - - PR target/84882 - * common/config/aarch64/aarch64-common.c (aarch64_handle_option): - Check val before adding MASK_STRICT_ALIGN to opts->x_target_flags. - * config/aarch64/aarch64.opt (mstrict-align): Remove RejectNegative. - * config/aarch64/aarch64.c (aarch64_attributes): Mark allow_neg - as true for strict-align. - (aarch64_can_inline_p): Perform checks even when callee has no - attributes to check for strict alignment. - * doc/extend.texi (AArch64 Function Attributes): Document - no-strict-align. - * doc/invoke.texi: (AArch64 Options): Likewise. - -2018-05-23 Richard Sandiford - - PR tree-optimization/85853 - * tree-vect-slp.c (vect_slp_analyze_node_operations): Split out - the handling of the root of the node to... - (vect_slp_analyze_node_operations_1): ...this new function, - and run the whole thing with the child nodes' def types - set according to their SLP node's def type. - -2018-05-23 Richard Biener - - PR middle-end/85874 - * tree-data-ref.c (create_runtime_alias_checks): Defer - and ignore overflow warnings. - -2018-05-23 Yury Gribov - - PR tree-optimization/85822 - * tree-vrp.c (is_masked_range_test): Fix handling of negative - constants. - -2018-05-23 Richard Biener - - * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle arbitrary - memset constants via native_interpret_expr. - -2018-05-22 H.J. Lu - - PR target/85345 - * cgraph.h (cgraph_node::create): Set ifunc_resolver for ifunc - attribute. - (cgraph_node::create_alias): Likewise. - (cgraph_node::get_availability): Check ifunc_resolver instead - of looking up ifunc attribute. - * cgraphunit.c (maybe_diag_incompatible_alias): Likewise. - * varasm.c (do_assemble_alias): Likewise. - (assemble_alias): Likewise. - (default_binds_local_p_3): Likewise. - * cgraph.h (cgraph_node): Add ifunc_resolver. - (cgraph_node::only_called_directly_or_aliased_p): Return false - for IFUNC resolver. - * lto-cgraph.c (input_node): Set ifunc_resolver for ifunc - attribute. - * symtab.c (symtab_node::verify_base): Verify that ifunc_resolver - is equivalent to lookup_attribute ("ifunc", DECL_ATTRIBUTES (decl)). - (symtab_node::binds_to_current_def_p): Check ifunc_resolver - instead of looking up ifunc attribute. - -2018-05-22 Luis Machado - - * config/aarch64/aarch64.md (*ashift_extv_bfiz): New pattern. - -2018-05-22 Martin Sebor - - PR middle-end/85359 - * builtins.c (expand_builtin_strcpy): Call maybe_warn_nonstring_arg - only when expasion succeeds. - (expand_builtin_strcmp): Same. - (expand_builtin_strncmp): Same. - -2018-05-22 Martin Sebor - - * calls.c (maybe_warn_nonstring_arg): Fix a typo in a comment. - -2018-05-22 Jackson Woodruff - Kyrylo Tkachov - - * config/aarch64/aarch64-ldpstp.md: Replace uses of - aarch64_mem_pair_operand with memory_operand and delete operand swapping - code. - * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): - Add check for legitimate_address. - (aarch64_gen_adjusted_ldpstp): Swap operands where appropriate. - (aarch64_swap_ldrstr_operands): New. - * config/aarch64/aarch64-protos.h (aarch64_swap_ldrstr_operands): - Define prototype. - -2018-05-22 Jackson Woodruff - Kyrylo Tkachov - - * config/aarch64/aarch64.md: New patterns to generate stp - and ldp. - (store_pair_sw, store_pair_dw): New patterns to generate stp for - single words and double words. - (load_pair_sw, load_pair_dw): Likewise. - (store_pair_sf, store_pair_df, store_pair_si, store_pair_di): - Delete. - (load_pair_sf, load_pair_df, load_pair_si, load_pair_di): - Delete. - * config/aarch64/aarch64-ldpstp.md: Modify peephole - for different mode ldpstp and add peephole for merged zero stores. - Likewise for loads. - * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): - Add size check. - (aarch64_gen_store_pair): Rename calls to match new patterns. - (aarch64_gen_load_pair): Rename calls to match new patterns. - * config/aarch64/aarch64-simd.md (load_pair): Rename to... - (load_pair): ... This. - (store_pair): Rename to... - (vec_store_pair): ... This. - * config/aarch64/iterators.md (DREG, DREG2, DX2, SX, SX2, DSX): - New mode iterators. - (V_INT_EQUIV): Handle SImode. - * config/aarch64/predicates.md (aarch64_reg_zero_or_fp_zero): - New predicate. - -2018-05-22 Martin Sebor - - PR c/85623 - * calls.c (maybe_warn_nonstring_arg): Use string length to set - or ajust the presumed bound on an operation to avoid unnecessary - warnings. - -2018-05-22 Martin Sebor - - PR tree-optimization/85826 - * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Avoid - assuming that a DECL necesarily has a constant size. - -2018-05-22 Richard Sandiford - - PR middle-end/85862 - * internal-fn.c (expand_direct_optab_fn): Cope with a null lhs. - -2018-05-22 Richard Biener - - PR tree-optimization/85834 - * tree-ssa-sccvn.c (vn_reference_lookup_3): Properly handle - non-constant and non-zero memset arguments. - -2018-05-22 Martin Liska - - PR ipa/85607 - * ipa-icf.c (sem_item::add_type): Do not ICE for incomplete types. - -2018-05-22 Richard Biener - - PR tree-optimization/85863 - * tree-vect-stmts.c (vect_is_simple_cond): Only widen invariant - comparisons when vectype is specified. - (vectorizable_condition): Do not specify vectype for - vect_is_simple_cond when SLP vectorizing. - -2018-05-21 Michael Meissner - - PR target/85657 - * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not - define __ibm128 as long double. - * config/rs6000/rs6000.c (rs6000_init_builtins): Create __ibm128 - as a distinct type when IEEE 128-bit support is enabled. - (init_float128_ieee): Fix up conversions between IFmode and IEEE - 128-bit types to use the correct functions. - (rs6000_expand_float128_convert): Use explicit FLOAT_EXTEND to - convert between 128-bit floating point types that have different - modes but the same representation, instead of using gen_lowpart to - makean alias. - * config/rs6000/rs6000.md (IFKF): New iterator for IFmode and - KFmode. - (IFKF_reg): New attributes to give the register constraints for - IFmode and KFmode. - (extendtf2_internal): New insns to mark an explicit - conversion between 128-bit floating point types that have a - different mode but share the same representation. - -2018-05-21 Richard Sandiford - - PR tree-optimization/85814 - * tree-ssa-strlen.c (get_stridx_plus_constant): Cope with - a null return from get_strinfo when unsharing the next - strinfo in the chain. - -2018-05-21 Vladimir Mezentsev - - PR gcc/84923 - * varasm.c (weak_finish): Clean up weak_decls. - -2018-05-21 Kyrylo Tkachov - - * config/aarch64/aarch64.md ("unspec"): Define UNSPEC_SABAL, - UNSPEC_SABDL2, UNSPEC_SADALP, UNSPEC_UABAL, UNSPEC_UABDL2, - UNSPEC_UADALP values. - * config/aarch64/iterators.md (ABAL): New int iterator. - (ABDL2): Likewise. - (ADALP): Likewise. - (sur): Add mappings for the above. - * config/aarch64/aarch64-simd.md (aarch64_abdl2_3): - New define_insn. - (aarch64_abal_4): Likewise. - (aarch64_adalp_3): Likewise. - (sadv16qi): New define_expand. - -2018-05-21 Alexander Nesterovskiy - - * config/i386/i386.md (*movsf_internal): AVX falsedep fix. - (*movdf_internal): Ditto. - (*rcpsf2_sse): Ditto. - (*rsqrtsf2_sse): Ditto. - (*sqrt2_sse): Ditto. - -2018-05-21 Tamar Christina - - * config/aarch64/aarch64-simd.md (aarch64_eor3qv8hi): Change to - eor3q4. - (aarch64_bcaxqv8hi): Change to bcaxq4. - * config/aarch64/aarch64-simd-builtins.def (veor3q_u8, veor3q_u32, - veor3q_u64, veor3q_s8, veor3q_s16, veor3q_s32, veor3q_s64, vbcaxq_u8, - vbcaxq_u32, vbcaxq_u64, vbcaxq_s8, vbcaxq_s16, vbcaxq_s32, - vbcaxq_s64): New. - * config/aarch64/arm_neon.h: Likewise. - * config/aarch64/iterators.md (VQ_I): New. - -2018-05-21 Alexey Brodkin - - * config.gcc: Add arc/t-multilib-linux to tmake_file for - arc*-*-linux*. - * config/arc/t-multilib-linux: Specify MULTILIB_OPTIONS and - MULTILIB_DIRNAMES - -2018-05-20 Chung-Ju Wu - - * config/nds32/constraints.md (S): New constraint. - * config/nds32/nds32.md (call_internal): Use constraint S. - (call_value_internal): Likewise. - (sibcall_internal): Likewise. - (sibcall_value_internal): Likewise. - -2018-05-20 Kito Cheng - Chung-Ju Wu - - * config/nds32/nds32.c (nds32_register_move_cost): Take garywolf cpu - into consideration. - -2018-05-20 Kito Cheng - Chung-Ju Wu - - * config/nds32/nds32-cost.c (rtx_cost_model_t): New structure. - (insn_size_16bit, insn_size_32bit): New variables for cost evaluation. - (nds32_rtx_costs_impl): Simplify. - (nds32_address_cost_impl): Simplify. - (nds32_init_rtx_costs): New function. - (nds32_rtx_costs_speed_prefer): Likewise. - (nds32_rtx_costs_size_prefer): Likewise. - (nds32_address_cost_speed_prefer): Likewise. - (nds32_address_cost_speed_fwprop): Likewise. - (nds32_address_cost_size_prefer): Likewise. - * config/nds32/nds32-protos.h (nds32_init_rtx_costs): Declare. - * config/nds32/nds32.c (nds32_option_override): Use - nds32_init_rtx_costs function. - -2018-05-20 Chung-Ju Wu - - * config/nds32/nds32.c (nds32_asm_file_start): Output pipeline model. - * config/nds32/nds32.h (TARGET_PIPELINE_N7): Define. - (TARGET_PIPELINE_N8): Likewise. - (TARGET_PIPELINE_N10): Likewise. - (TARGET_PIPELINE_N13): Likewise. - (TARGET_PIPELINE_GRAYWOLF): Likewise. - -2018-05-19 Monk Chiang - - * config/nds32/nds32-fpu.md: Update copyright year. - -2018-05-19 Chung-Ju Wu - - * config/nds32/nds32.h (ASM_SPEC): Adjust spec rule. - -2018-05-19 Chung-Ju Wu - - * config/nds32/nds32.c - (nds32_md_asm_adjust): Consider flag_inline_asm_r15 variable. - * config/nds32/nds32.opt (minline-asm-r15): New option. - -2018-05-19 Chung-Ju Wu - - * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS): Add - MASK_HW_ABS. - * config/nds32/nds32.md (abssi2): New pattern. - -2018-05-19 Uros Bizjak - - * config/i386/i386.md (rex64namesuffix): New mode attribute. - * config/i386/sse.md (sse_cvtsi2ss): - Merge insn pattern from sse_cvtsi2ss and - sse_cvtsi2ssq using SWI48 mode iterator. - (sse_cvtss2si): Merge insn pattern - from sse_cvtss2si and sse_cvtss2siq - using SWI48 mode iterator. - (sse_cvtss2si_2): Merge insn pattern from - sse_cvtss2si_2 and sse_cvtss2siq_2 using SWI48 mode iterator. - (sse_cvttss2si): Merge insn - pattern from sse_cvttss2si - and sse_cvttss2siq using SWI48 mode iterator. - (avx512f_vcvtss2usi): Merge insn pattern - from avx512f_vcvtss2usi and avx512f_vcvtss2usiq - using SWI48 mode iterator. - (avx512f_vcvttss2usi): Merge - insn pattern from avx512f_vcvttss2usi and - avx512f_vcvttss2usiq using SWI48 mode iterator. - (avx512f_vcvtsd2usi): Merge insn pattern - from avx512f_vcvtsd2usi and avx512f_vcvtsd2usiq - using SWI48 mode iterator. - (avx512f_vcvttsd2usi): Merge - insn pattern from avx512f_vcvttsd2usi and - avx512f_vcvttsd2usiq using SWI48 mode iterator. - (sse2_cvtsd2si): Merge insn pattern from - sse2_cvtsd2si and sse2_cvtsd2siq using - SWI48 mode iterator. - (sse2_cvtsd2si_2): Merge insn pattern from - sse2_cvtsd2si_2 and sse2_cvtsd2siq_2 using SWI48 mode iterator. - (sse_cvttsd2si): Merge insn - pattern from sse_cvttsd2si - and sse_cvttsd2siq using SWI48 mode iterator. - -2018-05-19 Chung-Ju Wu - - * config/nds32/nds32-md-auxiliary.c - (nds32_valid_smw_lwm_base_p): Refine. - (nds32_output_smw_single_word): Refine. - (nds32_output_smw_double_word): New. - * config/nds32/nds32-protos.h (nds32_output_smw_double_word): New. - -2018-05-19 Chung-Ju Wu - - * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push): Refine. - (nds32_output_stack_pop): Refine. - (nds32_expand_unaligned_load): Refine. - (nds32_expand_unaligned_store): Refine. - -2018-05-19 Kuan-Lin Chen - Chung-Ju Wu - - * config/nds32/constants.md: Add TP_REGNUM constant. - (unspec_element): Add UNSPEC_GOTINIT, UNSPEC_GOT, UNSPEC_GOTOFF, - UNSPEC_PLT, UNSPEC_TLSGD, UNSPEC_TLSLD, UNSPEC_TLSIE, UNSPEC_TLSLE and - UNSPEC_ADD32. - * config/nds32/nds32-doubleword.md: Consider flag_pic. - * config/nds32/nds32-dspext.md (mov): Expand TLS and PIC cases. - * config/nds32/nds32-predicates.c (nds32_const_unspec_p): New. - * config/nds32/nds32-md-auxiliary.c: Implementation that support TLS - and PIC code generation. - * config/nds32/nds32-protos.h: Declarations that support TLS and PIC - code generation. - * config/nds32/nds32-relax-opt.c: Consider TLS and PIC for relax - optimization. - * config/nds32/nds32.md: Support TLS and PIC. - * config/nds32/nds32.c: Support TLS and PIC. - * config/nds32/nds32.h (nds32_relax_insn_type): New enum type. - * config/nds32/predicates.md (nds32_nonunspec_symbolic_operand): New - predicate. - -2018-05-19 Chung-Ju Wu - - * config/nds32/nds32-predicates.c (const_vector_to_hwint): Use machine - mode with E_ prefix. - -2018-05-19 Kuan-Lin Chen - Chung-Ju Wu - - * config/nds32/constants.md (unspec_element): Add UNSPEC_ICT. - * config/nds32/nds32-md-auxiliary.c - (symbolic_reference_mentioned_p): New. - (nds32_legitimize_ict_address): New. - (nds32_expand_ict_move): New. - (nds32_indirect_call_referenced_p): New. - (nds32_symbol_binds_local_p): Delete. - (nds32_long_call_p): Modify. - * config/nds32/nds32-opts.h (nds32_ict_model_type): New enum type. - * config/nds32/nds32-protos.h - (symbolic_reference_mentioned_p): Declare. - (nds32_legitimize_ict_address): Declare. - (nds32_expand_ict_move): Declare. - (nds32_indirect_call_referenced_p): Declare. - * config/nds32/nds32-relax-opt.c (nds32_ict_const_p): New. - (nds32_relax_group): Use nds32_ict_const_p as condition. - * config/nds32/nds32.c (nds32_attribute_table): Add "indirect_call". - (nds32_asm_file_start): Output ict_model directive in asm code. - (nds32_legitimate_address_p): Consider indirect call. - (nds32_print_operand): Consider indirect call. - (nds32_print_operand_address): Consider indirect call. - (nds32_insert_attributes): Handle "indirect_call" attribute. - (TARGET_LEGITIMATE_ADDRESS_P): Define. - (TARGET_LEGITIMATE_CONSTANT_P): Define. - (TARGET_CANNOT_FORCE_CONST_MEM): Define. - (TARGET_DELEGITIMIZE_ADDRESS): Define. - (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. - * config/nds32/nds32.h (SYMBOLIC_CONST_P): Define. - (TARGET_ICT_MODEL_SMALL): Define. - (TARGET_ICT_MODEL_LARGE): Define. - * config/nds32/nds32.md (movsi): Consider ict model. - (call, call_value): Consider ict model. - (sibcall, sibcall_value): Consider ict model. - * config/nds32/nds32.opt (mict-model): New option. - * config/nds32/predicates.md (nds32_symbolic_operand): Consider ict - model. - -2018-05-18 Kito Cheng - Monk Chiang - Jim Wilson - - * common/config/riscv/riscv-common.c (riscv_parse_arch_string): - Add support to parse rv32e*. Clear MASK_RVE for rv32i and rv64i. - * config.gcc (riscv*-*-*): Add support for rv32e* and ilp32e. - * config/riscv/riscv-c.c (riscv_cpu_cpp_builtins): Define - __riscv_32e when TARGET_RVE. Handle ABI_ILP32E as soft-float ABI. - * config/riscv/riscv-opts.h (riscv_abi_type): Add ABI_ILP32E. - * config/riscv/riscv.c (riscv_compute_frame_info): When TARGET_RVE, - compute save_libcall_adjustment properly. - (riscv_option_override): Call error if TARGET_RVE and not ABI_ILP32E. - (riscv_conditional_register_usage): Handle TARGET_RVE and ABI_ILP32E. - * config/riscv/riscv.h (UNITS_PER_FP_ARG): Handle ABI_ILP32E. - (STACK_BOUNDARY, ABI_STACK_BOUNDARY): Handle TARGET_RVE. - (GP_REG_LAST, MAX_ARGS_IN_REGISTERS): Likewise. - (ABI_SPEC): Handle mabi=ilp32e. - * config/riscv/riscv.opt (abi_type): Add ABI_ILP32E. - (RVE): Add RVE mask. - * doc/invoke.texi (RISC-V options) <-mabi>: Add ilp32e info. - <-march>: Add rv32e as an example. - -2018-05-18 Marc Glisse - - PR c++/82899 - * tree-ssa-structalias.c (create_variable_info_for_1): Extra argument. - (intra_create_variable_infos): Handle C++ constructors. - -2018-05-18 Martin Liska - - * passes.def: Remove a redundant pass. - -2018-05-18 Eric Botcazou - - PR bootstrap/85838 - * config/sparc/sparc.c (sparc_expand_builtin): Always initialize op[0]. - -2018-05-18 Kyrylo Tkachov - - * config/arm/arm-cpus.in (armv3m, mode32): Delete features. - (ARMv4): Update. - (ARMv2, ARMv3, ARMv3m): Delete fgroups. - (ARMv6m): Update. - (armv2, armv2a, armv3, armv3m): Delete architectures. - (arm2, arm250, arm3, arm6, arm60, arm600, arm610, arm620, - arm7, arm7d, arm7di, arm70, arm700, arm700i, arm710, arm720, - arm710c, arm7100, arm7500, arm7500fe, arm7m, arm7dm, arm7dmi): - Delete cpus. - * config/arm/arm.md (maddsidi4): Remove check for arm_arch3m. - (*mulsidi3adddi): Likewise. - (mulsidi3): Likewise. - (*mulsidi3_nov6): Likewise. - (umulsidi3): Likewise. - (umulsidi3_nov6): Likewise. - (umaddsidi4): Likewise. - (*umulsidi3adddi): Likewise. - (smulsi3_highpart): Likewise. - (*smulsi3_highpart_nov6): Likewise. - (umulsi3_highpart): Likewise. - (*umulsi3_highpart_nov6): Likewise. - * config/arm/arm.h (arm_arch3m): Delete. - * config/arm/arm.c (arm_arch3m): Delete. - (arm_option_override_internal): Update armv3-related comment. - (arm_configure_build_target): Delete use of isa_bit_mode32. - (arm_option_reconfigure_globals): Delete set of arm_ach3m. - (arm_rtx_costs_internal): Delete check of arm_arch3m. - * config/arm/arm-fixed.md (mulsq3): Delete check for arm_arch3m. - (mulsa3): Likewise. - (mulusa3): Likewise. - * config/arm/arm-protos.h (arm_arch3m): Delete. - * config/arm/arm-tables.opt: Regenerate. - * config/arm/arm-tune.md: Likewise. - * config/arm/t-arm-elf (all_early_nofp): Delete mentions of - deleted architectures. - -2018-05-18 Kyrylo Tkachov - - * config/arm/arm-cpus.in (armv5, armv5e): Delete features. - (armv5t, armv5te): New features. - (ARMv5, ARMv5e): Delete fgroups. - (ARMv5t, ARMv5te): Adjust for above changes. - (ARMv6m): Likewise. - (armv5, armv5e): Delete arches. - * config/arm/arm.md (*call_reg_armv5): Use arm_arch5t instead of - arm_arch5. - (*call_reg_arm): Likewise. - (*call_value_reg_armv5): Likewise. - (*call_value_reg_arm): Likewise. - (*call_symbol): Likewise. - (*call_value_symbol): Likewise. - (*sibcall_insn): Likewise. - (*sibcall_value_insn): Likewise. - (clzsi2): Likewise. - (prefetch): Likewise. - (define_split and define_peephole2 dependent on arm_arch5): - Likewise. - * config/arm/arm.h (TARGET_LDRD): Use arm_arch5te instead of - arm_arch5e. - (TARGET_ARM_QBIT): Likewise. - (TARGET_DSP_MULTIPLY): Likewise. - (enum base_architecture): Delete BASE_ARCH_5, BASE_ARCH_5E. - (arm_arch5, arm_arch5e): Delete. - (arm_arch5t, arm_arch5te): Declare. - * config/arm/arm.c (arm_arch5, arm_arch5e): Delete. - (arm_arch5t): Declare. - (arm_option_reconfigure_globals): Update for the above. - (arm_options_perform_arch_sanity_checks): Update comment, replace - use of arm_arch5 with arm_arch5t. - (use_return_insn): Likewise. - (arm_emit_call_insn): Likewise. - (output_return_instruction): Likewise. - (arm_final_prescan_insn): Likewise. - (arm_coproc_builtin_available): Likewise. - * config/arm/arm-c.c (arm_cpu_builtins): Replace arm_arch5 and - arm_arch5e with arm_arch5t and arm_arch5te. - * config/arm/arm-protos.h (arm_arch5, arm_arch5e): Delete. - (arm_arch5t, arm_arch5te): Declare. - * config/arm/arm-tables.opt: Regenerate. - * config/arm/t-arm-elf: Remove references to armv5, armv5e. - * config/arm/t-multilib: Likewise. - * config/arm/thumb1.md (*call_reg_thumb1_v5): Check arm_arch5t - instead of arm_arch5. - (*call_reg_thumb1): Likewise. - (*call_value_reg_thumb1_v5): Likewise. - (*call_value_reg_thumb1): Likewise. - * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Remove now - unreachable path. - * doc/invoke.texi (ARM Options): Remove references to armv5, armv5e. - -2018-05-18 Martin Liska - - PR gcov-profile/84846 - * doc/gcov.texi: Document -t option of gcov tool. - -2018-05-18 Martin Liska - - PR gcov-profile/84846 - * gcov.c (print_usage): Add new -t option. - (process_args): Handle the option. - (generate_results): Use stdout as output when requested by - the option. - -2018-05-18 Martin Liska - - PR gcov-profile/84846 - * coverage.c (coverage_init): Write PWD to .gcno file. - * doc/gcov.texi: Document how working directory is printed. - * gcov-dump.c (dump_gcov_file): Print PWD. - * gcov.c (output_intermediate_file): Likewise. - (read_graph_file): Read PWD string. - (output_lines): Print PWD. - -2018-05-18 Prathamesh Kulkarni - - PR middle-end/85817 - * ipa-pure-const.c (malloc_candidate_p): Remove the check integer_zerop - for retval and return false if all args to phi are zero. - -2018-05-18 Richard Biener - - * gimple-ssa-evrp.c (class evrp_folder): Add simplify_stmt_using_ranges - method. - (evrp_dom_walker::before_dom_children): Call it. - -2018-05-18 Richard Biener - - * tree-dfa.c (get_ref_base_and_extent): Use range-info to refine - results when processing array refs with variable index. - -2018-05-18 Toon Moene - - * doc/invoke.texi: Move -floop-unroll-and-jam documentation - directly after that of -floop-interchange. Indicate that both - options are enabled by default when specifying -O3. - -2018-05-18 Kyrylo Tkachov - - * config/aarch64/aarch64-simd.md (vec_set): Use VALL_F16 mode - iterator. Delete separate integer-mode vec_set expander. - (aarch64_simd_vec_setv2di): Delete. - (vec_setv2di): Delete. - (aarch64_simd_vec_set): Delete all other patterns with that name. - Use VALL_F16 mode iterator. Add LD1 alternative and use vwcore for - the "w, r" alternative. - -2018-05-18 Martin Liska - - * passes.def: Add pass_lower_switch and pass_lower_switch_O0. - * tree-pass.h (make_pass_lower_switch_O0): New function. - * tree-switch-conversion.c (node_has_low_bound): Remove. - (node_has_high_bound): Likewise. - (node_is_bounded): Likewise. - (class pass_lower_switch): Make it a template type and create - two instances. - (pass_lower_switch::execute): Add template argument. - (make_pass_lower_switch): New function. - (make_pass_lower_switch_O0): New function. - (do_jump_if_equal): Remove. - (emit_case_nodes): Simplify to just handle all 3 cases and leave - all the hard work to tree optimization passes. - -2018-05-18 Martin Liska - - * dbgcnt.c (limit_low): Renamed from limit. - (limit_high): New variable. - (dbg_cnt_is_enabled): Check for upper limit. - (dbg_cnt): Adjust dumping. - (dbg_cnt_set_limit_by_index): Add new argument for high - value. - (dbg_cnt_set_limit_by_name): Likewise. - (dbg_cnt_process_single_pair): Parse new format. - (dbg_cnt_process_opt): Use strtok. - (dbg_cnt_list_all_counters): Remove 'value' and add - 'limit_high'. - * doc/invoke.texi: Document changes. - -2018-05-18 Richard Sandiford - - * doc/sourcebuild.texi (scalar_all_fma): Document. - * tree.def (FMA_EXPR): Delete. - * internal-fn.def (FMA, FMS, FNMA, FNMS): New internal functions. - * internal-fn.c (ternary_direct): New macro. - (expand_ternary_optab_fn): Likewise. - (direct_ternary_optab_supported_p): Likewise. - * Makefile.in (build/genmatch.o): Depend on case-fn-macros.h. - * builtins.c (fold_builtin_fma): Delete. - (fold_builtin_3): Don't call it. - * cfgexpand.c (expand_debug_expr): Remove FMA_EXPR handling. - * expr.c (expand_expr_real_2): Likewise. - * fold-const.c (operand_equal_p): Likewise. - (fold_ternary_loc): Likewise. - * gimple-pretty-print.c (dump_ternary_rhs): Likewise. - * gimple.c (DEFTREECODE): Likewise. - * gimplify.c (gimplify_expr): Likewise. - * optabs-tree.c (optab_for_tree_code): Likewise. - * tree-cfg.c (verify_gimple_assign_ternary): Likewise. - * tree-eh.c (operation_could_trap_p): Likewise. - (stmt_could_throw_1_p): Likewise. - * tree-inline.c (estimate_operator_cost): Likewise. - * tree-pretty-print.c (dump_generic_node): Likewise. - (op_code_prio): Likewise. - * tree-ssa-loop-im.c (stmt_cost): Likewise. - * tree-ssa-operands.c (get_expr_operands): Likewise. - * tree.c (commutative_ternary_tree_code, add_expr): Likewise. - * fold-const-call.h (fold_fma): Delete. - * fold-const-call.c (fold_const_call_ssss): Handle CFN_FMS, - CFN_FNMA and CFN_FNMS. - (fold_fma): Delete. - * genmatch.c (combined_fn): New enum. - (commutative_ternary_tree_code): Remove FMA_EXPR handling. - (commutative_op): New function. - (commutate): Use it. Handle more than 2 operands. - (dt_operand::gen_gimple_expr): Use commutative_op. - (parser::parse_expr): Allow :c to be used with non-binary - operators if the commutative operand is known. - * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Handle - CFN_FMS, CFN_FNMA and CFN_FNMS. - (backprop::process_assign_use): Remove FMA_EXPR handling. - * hsa-gen.c (gen_hsa_insns_for_operation_assignment): Likewise. - (gen_hsa_fma): New function. - (gen_hsa_insn_for_internal_fn_call): Use it for IFN_FMA, IFN_FMS, - IFN_FNMA and IFN_FNMS. - * match.pd: Add folds for IFN_FMS, IFN_FNMA and IFN_FNMS. - * gimple-fold.h (follow_all_ssa_edges): Declare. - * gimple-fold.c (follow_all_ssa_edges): New function. - * tree-ssa-math-opts.c (convert_mult_to_fma_1): Use the - gimple_build interface and use follow_all_ssa_edges to fold the result. - (convert_mult_to_fma): Use direct_internal_fn_suppoerted_p - instead of checking for optabs directly. - * config/i386/i386.c (ix86_add_stmt_cost): Recognize FMAs as calls - rather than FMA_EXPRs. - * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Create a - call to IFN_FMA instead of an FMA_EXPR. - -2018-05-17 Jim Wilson - - * expr.c (do_tablejump): When converting index to Pmode, if we have a - sign extended promoted subreg, and the range does not have the sign bit - set, then do a sign extend. - - * config/riscv/riscv.c (riscv_extend_comparands): In unsigned QImode - test, check for sign extended subreg and/or constant operands, and - do a sign extend in that case. - -2018-05-17 Steve Ellcey - - * config/aarch64/thunderx2t99.md (thunderx2t99_ls_both): Delete. - (thunderx2t99_multiple): Delete psuedo-units from used cpus. - Add untyped. - (thunderx2t99_alu_shift): Remove alu_shift_reg, alus_shift_reg. - Change logics_shift_reg to logics_shift_imm. - (thunderx2t99_fp_loadpair_basic): Delete. - (thunderx2t99_fp_storepair_basic): Delete. - (thunderx2t99_asimd_int): Add neon_sub and neon_sub_q types. - (thunderx2t99_asimd_polynomial): Delete. - (thunderx2t99_asimd_fp_simple): Add neon_fp_mul_s_scalar_q - and neon_fp_mul_d_scalar_q. - (thunderx2t99_asimd_fp_conv): Add *int_to_fp* types. - (thunderx2t99_asimd_misc): Delete neon_dup and neon_dup_q. - (thunderx2t99_asimd_recip_step): Add missing *sqrt* types. - (thunderx2t99_asimd_lut): Add missing tbl types. - (thunderx2t99_asimd_ext): Delete. - (thunderx2t99_asimd_load1_1_mult): Delete. - (thunderx2t99_asimd_load1_2_mult): Delete. - (thunderx2t99_asimd_load1_ldp): New. - (thunderx2t99_asimd_load1): New. - (thunderx2t99_asimd_load2): Add missing *load2* types. - (thunderx2t99_asimd_load3): New. - (thunderx2t99_asimd_load4): New. - (thunderx2t99_asimd_store1_1_mult): Delete. - (thunderx2t99_asimd_store1_2_mult): Delete. - (thunderx2t99_asimd_store2_mult): Delete. - (thunderx2t99_asimd_store2_onelane): Delete. - (thunderx2t99_asimd_store_stp): New. - (thunderx2t99_asimd_store1): New. - (thunderx2t99_asimd_store2): New. - (thunderx2t99_asimd_store3): New. - (thunderx2t99_asimd_store4): New. - -2018-05-17 Jerome Lambourg - - * config/arm/arm_cmse.h (cmse_nsfptr_create, cmse_is_nsfptr): Remove - #include . Replace intptr_t with __INTPTR_TYPE__. - -2018-05-17 Pat Haugen - Segher Boessenkool - - PR target/85698 - * config/rs6000/rs6000.c (rs6000_output_move_128bit): Check dest - operand. - -2018-05-17 Richard Biener - - * tree-ssa-dse.c (dse_classify_store): Fix iterator increment - for pruning loop and prune defs feeding only already visited PHIs. - -2018-05-17 Richard Biener - - * tree-ssa-sccvn.c (vn_reference_lookup_3): Improve memset handling. - -2018-05-17 Bin Cheng - Richard Biener - - PR tree-optimization/85793 - * tree-vect-stmts.c (vectorizable_load): Handle 1 element-wise load - for VMAT_ELEMENTWISE. - -2018-05-17 Richard Sandiford - - * internal-fn.h (lookup_internal_fn): Declare - * internal-fn.c (lookup_internal_fn): New function. - * gimple.c (gimple_build_call_from_tree): Handle calls to - internal functions. - * gimple-pretty-print.c (dump_gimple_call): Print "." before - internal function names. - * tree-pretty-print.c (dump_generic_node): Likewise. - * tree-ssa-scopedtables.c (expr_hash_elt::print): Likewise. - -2018-05-17 Richard Sandiford - - * gimple-fold.h (gimple_build): Make the function forms take - combined_fn rather than built_in_function. - (gimple_simplify): Likewise. - * gimple-match-head.c (gimple_simplify): Likewise. - * gimple-fold.c (gimple_build): Likewise. - * tree-vect-loop.c (get_initial_def_for_reduction): Use gimple_build - rather than gimple_build_call_internal. - (get_initial_defs_for_reduction): Likewise. - (vect_create_epilog_for_reduction): Likewise. - (vectorizable_live_operation): Likewise. - -2018-05-17 Martin Liska - - * gimple-ssa-sprintf.c (format_directive): Do not use - space in between 'G_' and '('. - -2018-05-17 Jakub Jelinek - - PR target/85323 - * config/i386/i386.c (ix86_fold_builtin): Handle masked shifts - even if the mask is not all ones. - - PR target/85323 - * config/i386/i386.c (ix86_fold_builtin): Fold shift builtins by - vector. - (ix86_gimple_fold_builtin): Likewise. - - PR target/85323 - * config/i386/i386.c: Include tree-vector-builder.h. - (ix86_vector_shift_count): New function. - (ix86_fold_builtin): Fold shift builtins by scalar count. - (ix86_gimple_fold_builtin): Likewise. - - * config/i386/avx512fintrin.h (_mm512_set_epi16, _mm512_set_epi8, - _mm512_setzero): New intrinsics. - -2018-05-17 James Greenhalgh - Kyrylo Tkachov - - * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify - code generation for cases where splatting a value is not useful. - * simplify-rtx.c (simplify_ternary_operation): Simplify - vec_merge across a vec_duplicate and a paradoxical subreg forming - a vector mode to a vec_concat. - -2018-05-17 Olga Makhotina - - * config.gcc: Support "goldmont-plus". - * config/i386/driver-i386.c (host_detect_local_cpu): Detect - "goldmont-plus". - * config/i386/i386-c.c (ix86_target_macros_internal): Handle - PROCESSOR_GOLDMONT_PLUS. - * config/i386/i386.c (m_GOLDMONT_PLUS): Define. - (processor_target_table): Add "goldmont-plus". - (PTA_GOLDMONT_PLUS): Define. - (ix86_lea_outperforms): Add TARGET_GOLDMONT_PLUS. - (get_builtin_code_for_version): Handle PROCESSOR_GOLDMONT_PLUS. - (fold_builtin_cpu): Add M_INTEL_GOLDMONT_PLUS. - (fold_builtin_cpu): Add "goldmont-plus". - (ix86_add_stmt_cost): Add TARGET_GOLDMONT_PLUS. - (ix86_option_override_internal): Add "goldmont-plus". - * config/i386/i386.h (processor_costs): Define TARGET_GOLDMONT_PLUS. - (processor_type): Add PROCESSOR_GOLDMONT_PLUS. - * config/i386/x86-tune.def: Add m_GOLDMONT_PLUS. - * doc/invoke.texi: Add goldmont-plus as x86 -march=/-mtune= CPU type. - -2018-05-17 Richard Biener - - PR tree-optimization/85757 - * tree-ssa-dse.c (dse_classify_store): Record a PHI def and - remove defs that only feed that PHI from further processing. - -2018-05-16 Jim Wilson - - * config/riscv/riscv.md (si3_mask, si3_mask_1): Prepend - asterisk to name. - (di3_mask, di3_mask_1): Likewise. - -2018-05-16 Mark Wielaard - - * dwarf2out.c (count_index_strings): New function. - (output_indirect_strings): Call count_index_strings and generate - header for dwarf_version >= 5. - -2018-05-16 Mark Wielaard - - * dwarf2out.c (dwarf_FORM): New function. - (set_indirect_string): Use dwarf_FORM. - (reset_indirect_string): Likewise. - (size_of_die): Likewise. - (value_format): Likewise. - (output_die): Likewise. - (add_skeleton_AT_string): Likewise. - (output_macinfo_op): Likewise. - (index_string): Likewise. - (output_index_string_offset): Likewise. - (output_index_string): Likewise. - (count_index_strings): Likewise. - -2018-05-16 Carl Love - - * config/rs6000/rs6000.md (prefetch): Generate ISA 2.06 instructions - dcbt and dcbtstt with TH=16 if operands[2] is 0 and Power 8 or newer. - -2018-05-16 Martin Jambor - - * ipa-prop.c (ipa_free_all_edge_args): Remove. - * ipa-prop.h (ipa_free_all_edge_args): Likewise. - -2018-05-16 Wilco Dijkstra - - * config/aarch64/aarch64.md (fma4): Change into expand pattern. - (fnma4): Likewise. - (fms4): Likewise. - (fnms4): Likewise. - (aarch64_fma4): Rename insn, reorder accumulator operand. - (aarch64_fnma4): Likewise. - (aarch64_fms4): Likewise. - (aarch64_fnms4): Likewise. - (aarch64_fnmadd4): Likewise. - -2018-05-16 Jason Merrill - - * tree.c (warn_deprecated_use): Return bool. Simplify logic. - -2018-05-16 Richard Biener - - * tree-vectorizer.h (struct stmt_info_for_cost): Add where member. - (dump_stmt_cost): Declare. - (add_stmt_cost): Dump cost we add. - (add_stmt_costs): New function. - (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost): - No longer exported. - (vect_analyze_stmt): Adjust prototype. - (vectorizable_condition): Likewise. - (vectorizable_live_operation): Likewise. - (vectorizable_reduction): Likewise. - (vectorizable_induction): Likewise. - * tree-vect-loop.c (vect_analyze_loop_operations): Create local - cost vector to pass to vectorizable_ and record afterwards. - (vect_model_reduction_cost): Take cost vector argument and adjust. - (vect_model_induction_cost): Likewise. - (vectorizable_reduction): Likewise. - (vectorizable_induction): Likewise. - (vectorizable_live_operation): Likewise. - * tree-vect-slp.c (vect_create_new_slp_node): Initialize - SLP_TREE_NUMBER_OF_VEC_STMTS. - (vect_analyze_slp_cost_1): Remove. - (vect_analyze_slp_cost): Likewise. - (vect_slp_analyze_node_operations): Take visited args and - a target cost vector. Avoid processing already visited stmt sets. - (vect_slp_analyze_operations): Use a local cost vector to gather - costs and register those of non-discarded instances. - (vect_bb_vectorization_profitable_p): Use add_stmt_costs. - (vect_schedule_slp_instance): Remove copying of - SLP_TREE_NUMBER_OF_VEC_STMTS. Instead assert that it is not - zero. - * tree-vect-stmts.c (record_stmt_cost): Remove path directly - adding cost. Record cost entry location. - (vect_prologue_cost_for_slp_op): Function to compute cost of - a constant or invariant generated for SLP vect in the prologue, - split out from vect_analyze_slp_cost_1. - (vect_model_simple_cost): Make static. Adjust for SLP costing. - (vect_model_promotion_demotion_cost): Likewise. - (vect_model_store_cost): Likewise, make static. - (vect_model_load_cost): Likewise. - (vectorizable_bswap): Add cost vector arg and adjust. - (vectorizable_call): Likewise. - (vectorizable_simd_clone_call): Likewise. - (vectorizable_conversion): Likewise. - (vectorizable_assignment): Likewise. - (vectorizable_shift): Likewise. - (vectorizable_operation): Likewise. - (vectorizable_store): Likewise. - (vectorizable_load): Likewise. - (vectorizable_condition): Likewise. - (vectorizable_comparison): Likewise. - (can_vectorize_live_stmts): Likewise. - (vect_analyze_stmt): Likewise. - (vect_transform_stmt): Adjust calls to vectorizable_*. - * tree-vectorizer.c: Include gimple-pretty-print.h. - (dump_stmt_cost): New function. - -2018-05-16 Richard Biener - - * params.def (PARAM_DSE_MAX_ALIAS_QUERIES_PER_STORE): New param. - * doc/invoke.texi (dse-max-alias-queries-per-store): Document. - * tree-ssa-dse.c: Include tree-ssa-loop.h. - (check_name): New callback. - (dse_classify_store): Track cycles via a visited bitmap of PHI - defs and simplify handling of in-loop and across loop dead stores - and properly fail for loop-variant refs. Handle byte-tracking with - multiple defs. Use PARAM_DSE_MAX_ALIAS_QUERIES_PER_STORE for - limiting the walk. - -2018-05-16 Richard Sandiford - - * tree-vectorizer.h (vect_get_vector_types_for_stmt): Declare. - (vect_get_mask_type_for_stmt): Likewise. - * tree-vect-slp.c (vect_two_operations_perm_ok_p): New function, - split out from... - (vect_build_slp_tree_1): ...here. Use vect_get_vector_types_for_stmt - to determine the statement's vector type and the vector type that - should be used for calculating nunits. Deal with cases in which - the type has to be deferred. - (vect_slp_analyze_node_operations): Use vect_get_vector_types_for_stmt - and vect_get_mask_type_for_stmt to calculate STMT_VINFO_VECTYPE. - * tree-vect-loop.c (vect_determine_vf_for_stmt_1) - (vect_determine_vf_for_stmt): New functions, split out from... - (vect_determine_vectorization_factor): ...here. - * tree-vect-stmts.c (vect_get_vector_types_for_stmt) - (vect_get_mask_type_for_stmt): New functions, split out from - vect_determine_vectorization_factor. - -2018-05-16 Richard Biener - - * tree-cfg.c (verify_gimple_assign_ternary): Properly - verify the [VEC_]COND_EXPR embedded comparison. - -2018-05-15 Martin Sebor - - PR tree-optimization/85753 - * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Handle - RECORD_TYPE in addition to ARRAY_TYPE. - -2018-05-15 Martin Sebor - - PR middle-end/85643 - * calls.c (get_attr_nonstring_decl): Handle MEM_REF. - -2018-05-15 Richard Biener - - * tree-ssa-dse.c (dse_classify_store): Remove use_stmt parameter, - add by_clobber_p one. Change algorithm to collect all defs - representing uses we need to walk and try reducing them to - a single one before failing. - (dse_dom_walker::dse_optimize_stmt): Adjust. - -2018-05-13 Mark Wielaard - - * dwarf2out.c (dwarf_OP): Handle DW_OP_addrx and DW_OP_constx. - (size_of_loc_descr): Likewise. - (output_loc_operands): Likewise. - (output_loc_operands_raw): Likewise. - (dw_addr_op): Use dwarf_OP () for DW_OP_constx and DW_OP_addrx. - (resolve_addr_in_expr): Handle DW_OP_addrx and DW_OP_constx. - (hash_loc_operands): Likewise. - (compare_loc_operands): Likewise. - -2018-05-14 Mark Wielaard - - * dwarf2out.c (count_index_addrs): New function. - (dwarf2out_finish): Use count_index_addrs to calculate addrs_length. - -2018-05-15 Prathamesh Kulkarni - - PR tree-optimization/83648 - * ipa-pure-const.c (malloc_candidate_p): Allow function with NULL - return value as malloc candidate. - -2018-05-15 Prathamesh Kulkarni - - PR ipa/85734 - * ipa-pure-const.c (warn_function_malloc): Pass value of known_finite - param as true in call to suggest_attribute. - -2018-05-14 Segher Boessenkool - - * doc/invoke.texi (RS/6000 and PowerPC Options): Delete @itemx for - -mreadonly-in-sdata. - -2018-05-14 Kyrylo Tkachov - - * config/aarch64/aarch64-simd.md (*aarch64_crypto_aese_fused): - New pattern. - (aarch64_crypto_aesd_fused): Likewise. - -2018-05-14 Wilco Dijkstra - - * config/aarch64/aarch64.md (mov): Remove '*' in alternatives. - (movsi_aarch64): Likewise. - (load_pairsi): Likewise. - (load_pairdi): Likewise. - (store_pairsi): Likewise. - (store_pairdi): Likewise. - (load_pairsf): Likewise. - (load_pairdf): Likewise. - (store_pairsf): Likewise. - (store_pairdf): Likewise. - (zero_extend): Likewise. - (trunc): Swap alternatives. - (fcvt_target): Add '?' to prefer w over r. - -2018-05-14 Jakub Jelinek - - PR target/85756 - * config/i386/i386.md: Disallow non-commutative arithmetics in - last twpeephole for mem {+,-,&,|,^}= x; mem != 0 after cmpelim - optimization. Use COMMUTATIVE_ARITH_P test rather than != MINUS - in the peephole2 before it. - -2018-05-14 Sebastian Peryt - - * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLDEMOTE_SET, - OPTION_MASK_ISA_CLDEMOTE_UNSET): New defines. - (ix86_handle_option): Handle -mcldemote. - * config.gcc: New header. - * config/i386/cldemoteintrin.h: New file. - * config/i386/cpuid.h (bit_CLDEMOTE): New bit. - * config/i386/driver-i386.c (host_detect_local_cpu): Detect - -mcldemote. - * config/i386/i386-c.c (ix86_target_macros_internal): Handle - OPTION_MASK_ISA_CLDEMOTE. - * config/i386/i386.c (ix86_target_string): Add -mcldemote. - (ix86_valid_target_attribute_inner_p): Ditto. - (enum ix86_builtins): Add IX86_BUILTIN_CLDEMOTE. - (ix86_init_mmx_sse_builtins): Define __builtin_ia32_cldemote. - (ix86_expand_builtin): Expand IX86_BUILTIN_CLDEMOTE. - * config/i386/i386.h (TARGET_CLDEMOTE, TARGET_CLDEMOTE_P): New. - * config/i386/i386.md (UNSPECV_CLDEMOTE): New. - (cldemote): New. - * config/i386/i386.opt: Add -mcldemote. - * config/i386/x86intrin.h: New header. - * doc/invoke.texi: Add -mcldemote. - -2018-05-14 Richard Biener - - * doc/match-and-simplify.texi: Adjust :s documentation. - -2018-05-14 Alexander Monakov - - * sort.cc (REORDER_23): Pass the type for the temporaries instead of - intended memcpy size. - (REORDER_45): Likewise. - -2018-05-13 Alexander Monakov - - * sort.cc: New file. - * system.h [!CHECKING_P] (qsort): Redirect to gcc_qsort. - * vec.c (qsort_chk): Use gcc_qsort. - * Makefile.in (OBJS-libcommon): Add sort.o. - (build/sort.o): New target. Use it... - (BUILD_RTL): ... here, and... - (build/gencfn-macros): ... here, and... - (build/genmatch): ... here. - -2018-05-13 Kito Cheng - Chung-Ju Wu - - * config.gcc (nds32*-*-*): Check that n15 is valid to --with-cpu. - * config/nds32/nds32-graywolf.md: New file. - * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_GRAYWOLF. - * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n15 - pipeline. - * config/nds32/nds32-protos.h: More declarations for n15 pipeline. - * config/nds32/nds32-utils.c: More implementations for n15 pipeline. - * config/nds32/nds32.md (pipeline_model): Add graywolf. - * config/nds32/nds32.opt (mcpu): Support n15 pipeline cpus. - * config/nds32/pipelines.md: Include n15 settings. - -2018-05-13 Kito Cheng - Chung-Ju Wu - - * config.gcc (nds32*-*-*): Check that n12/n13 are valid to --with-cpu. - * config/nds32/nds32-n13.md: New file. - * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N12 and CPU_N13. - * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n12/n13 - pipeline. - * config/nds32/nds32-protos.h: More declarations for n12/n13 pipeline. - * config/nds32/nds32.md (pipeline_model): Add n13. - * config/nds32/nds32.opt (mcpu): Support n12/n13 pipeline cpus. - * config/nds32/pipelines.md: Include n13 settings. - -2018-05-13 Kito Cheng - Chung-Ju Wu - - * config.gcc (nds32*-*-*): Check that n10/d10 are valid to --with-cpu. - * config/nds32/nds32-n10.md: New file. - * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N10. - * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n10 - pipeline. - * config/nds32/nds32-protos.h: More declarations for n10 pipeline. - * config/nds32/nds32-utils.c: More implementations for n10 pipeline. - * config/nds32/nds32.md (pipeline_model): Add n10. - * config/nds32/nds32.opt (mcpu): Support n10 pipeline cpus. - * config/nds32/pipelines.md: Include n10 settings. - -2018-05-13 Monk Chiang - Kito Cheng - Chung-Ju Wu - - * config.gcc (nds32be-*-*): Handle --with-ext-dsp. - * config/nds32/constants.md (unspec_element, unspec_volatile_element): - Add enum values for DSP extension instructions. - * config/nds32/constraints.md (Iu06, IU06, CVp5, CVs5, CVs2, CVhi): - New constraints. - * config/nds32/iterators.md (shifts, shiftrt, sat_plus, all_plus, - sat_minus, all_minus, plus_minus, extend, sumax, sumin, sumin_max): - New code iterators. - (su, zs, uk, opcode, add_rsub, add_sub): New code attributes. - * config/nds32/nds32-dspext.md: New file for DSP implementation. - * config/nds32/nds32-intrinsic.c: Implementation of DSP extension. - * config/nds32/nds32-intrinsic.md: Likewise. - * config/nds32/nds32_intrinsic.h: Likewise. - * config/nds32/nds32-md-auxiliary.c: Likewise. - * config/nds32/nds32-memory-manipulation.c: Consider DSP extension. - * config/nds32/nds32-predicates.c (const_vector_to_hwint): New. - (nds32_valid_CVp5_p, nds32_valid_CVs5_p): New. - (nds32_valid_CVs2_p, nds32_valid_CVhi_p): New. - * config/nds32/nds32-protos.h: New declarations for DSP extension. - * config/nds32/nds32-utils.c (extract_mac_non_acc_rtx): New case - TYPE_DMAC in switch statement. - * config/nds32/nds32.c: New checking and implementation for DSP - extension instructions. - * config/nds32/nds32.h: Likewise. - * config/nds32/nds32.md: Likewise. - * config/nds32/nds32.opt (mhw-abs, mext-dsp): New options. - * config/nds32/predicates.md: Implement new predicates for DSP - extension. - -2018-05-11 Michael Meissner - - * config/rs6000/rs6000.md (mov_softfloat, FMOVE32): - Reformat alternatives and attributes so it is easier to identify - which constraints/attributes go with which instruction. - (mov_hardfloat32, FMOVE64): Likewise. - (mov_softfloat32, FMOVE64): Likewise. - (mov_hardfloat64, FMOVE64): Likewise. - (mov_softfloat64, FMOVE64): Likewise. - -2018-05-11 Kelvin Nilsen - - * doc/extend.texi (PowerPC Built-in Functions): Rename this - subsection. - (Basic PowerPC Built-in Functions): The new name of the - subsection previously known as "PowerPC Built-in Functions". - (Basic PowerPC Built-in Functions Available on all Configurations): - New subsubsection. - (Basic PowerPC Built-in Functions Available on ISA 2.05): Likewise. - (Basic PowerPC Built-in Functions Available on ISA 2.06): Likewise. - (Basic PowerPC Built-in Functions Available on ISA 2.07): Likewise. - (Basic PowerPC Built-in Functions Available on ISA 3.0): Likewise. - -2018-05-11 Martin Jambor - - PR ipa/85655 - * ipa-cp.c (intersect_with_plats): Check that the lattice contains - single const. - -2018-05-11 Richard Earnshaw - - PR target/85733 - * config/arm/arm-cpus.in (fgroup ARMv6m): Add be8 feature. - -2018-05-11 Sebastian Peryt - - * common/config/i386/i386-common.c (OPTION_MASK_ISA_WAITPKG_SET, - OPTION_MASK_ISA_WAITPKG_UNSET): New defines. - (ix86_handle_option): Handle -mwaitpkg. - * config.gcc: New header. - * config/i386/cpuid.h (bit_WAITPKG): New bit. - * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mwaitpkg. - * config/i386/i386-builtin-types.def ((UINT8, UNSIGNED, UINT64)): New - function type. - * config/i386/i386-c.c (ix86_target_macros_internal): Handle - OPTION_MASK_ISA_WAITPKG. - * config/i386/i386.c (ix86_target_string): Add -mwaitpkg. - (ix86_option_override_internal): Add PTA_WAITPKG. - (ix86_valid_target_attribute_inner_p): Add -mwaitpkg. - (enum ix86_builtins): Add IX86_BUILTIN_UMONITOR, IX86_BUILTIN_UMWAIT, - IX86_BUILTIN_TPAUSE. - (ix86_init_mmx_sse_builtins): Define __builtin_ia32_umonitor, - __builtin_ia32_umwait and __builtin_ia32_tpause. - (ix86_expand_builtin): Expand IX86_BUILTIN_UMONITOR, - IX86_BUILTIN_UMWAIT, IX86_BUILTIN_TPAUSE. - * config/i386/i386.h (TARGET_WAITPKG, TARGET_WAITPKG_P): New. - * config/i386/i386.md (UNSPECV_UMWAIT, UNSPECV_UMONITOR, - UNSPECV_TPAUSE): New. - (umwait, umwait_rex64, umonitor_, tpause, tpause_rex64): New. - * config/i386/i386.opt: Add -mwaitpkg. - * config/i386/waitpkgintrin.h: New file. - * config/i386/x86intrin.h: New header. - * doc/invoke.texi: Add -mwaitpkg. - -2018-05-11 Richard Earnshaw - - PR target/85606 - * config/arm/arm-cpus.in: Add comment that ARMv6-m and ARMv6S-m are now - equivalent. - (cortex-m0): Use armv6s-m isa. - (cortex-m0plus): Likewise. - (cortex-m1): Likewise. - (cortex-m0.small-multiply): Likewise. - (cortex-m0plus.small-multiply): Likewise. - (cortex-m1.small-multiply): Likewise. - -2018-05-11 Allan Sandfeld Jensen - Jakub Jelinek - - PR tree-optimization/85692 - * tree-ssa-forwprop.c (simplify_vector_constructor): Try two - source permute as well. - -2018-05-11 Martin Liska - - PR sanitizer/85556 - * doc/extend.texi: Document LLVM style format for no_sanitize - attribute. - -2018-05-10 Michael Meissner - - * config/rs6000/rs6000.c (mode_supports_dq_form): Rename - mode_supports_vsx_dform_quad to mode_supports_dq_form. - (mode_supports_vsx_dform_quad): Likewise. - (mode_supports_vmx_dform): Move these functions to be next to the - other mode_supports functions. - (mode_supports_dq_form): Likewise. - (quad_address_p): Change calls of mode_supports_vsx_dform_quad to - mode_supports_dq_form. - (reg_offset_addressing_ok_p): Likewise. - (offsettable_ok_by_alignment): Likewise. - (rs6000_legitimate_offset_address_p): Likewise. - (legitimate_lo_sum_address_p): Likewise. - (rs6000_legitimize_address): Likewise. - (rs6000_legitimize_reload_address): Likewise. - (rs6000_secondary_reload_inner): Likewise. - (rs6000_preferred_reload_class): Likewise. - (rs6000_output_move_128bit): Likewise. - -2018-05-10 Uros Bizjak - - * config/i386/i386.c (ix86_expand_builtin) : - Generate SImode target register for null target. - : Ditto. - : Optimize LSHIFTRT generation. - * config/i386/xsaveintrin.h (_xgetbv): Add missing return. - -2018-05-10 Carl Love - - * config/rs6000/rs6000.md (prefetch): Generate ISA 2.06 instructions - dcbtt and dcbtstt if operands[2] is 0. - -2018-05-10 Uros Bizjak - - PR target/85693 - * config/i386/sse.md (usadv64qi): New expander. - -2018-05-10 Segher Boessenkool - - * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh, - altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw): Remove - -maltivec=be support. - (vec_widen_umult_even_v16qi, vec_widen_smult_even_v16qi, - vec_widen_umult_even_v8hi, vec_widen_smult_even_v8hi, - vec_widen_umult_even_v4si, vec_widen_smult_even_v4si, - vec_widen_umult_odd_v16qi, vec_widen_smult_odd_v16qi, - vec_widen_umult_odd_v8hi, vec_widen_smult_odd_v8hi, - vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si, altivec_vpkpx, - altivec_vpksss, altivec_vpksus, - altivec_vpkuus, altivec_vpkuum, altivec_vsum2sws, - altivec_vsumsws): Adjust. - (altivec_vspltb *altivec_vspltb_internal, altivec_vsplth, - *altivec_vsplth_internal, altivec_vspltw, *altivec_vspltw_internal, - altivec_vspltsf, *altivec_vspltsf_internal): Remove -maltivec=be - support. - (altivec_vperm_, altivec_vperm__uns, - altivec_vupkhs, altivec_vupkls, altivec_vupkhpx, - altivec_vupklpx, altivec_lvsl, altivec_lvsr): Adjust. - (altivec_lvex): Delete expand. - (*altivec_lvex_internal): Rename to... - (altivec_lvex): ... this. - (altivec_lvxl_): Delete expand. - (*altivec_lvxl__internal): Rename to ... - (altivec_lvxl_): ... this. - (altivec_stvxl_): Delete expand. - (*altivec_stvxl__internal): Rename to ... - (altivec_stvxl_): ... this. - (altivec_stvex): Delete expand. - (*altivec_stvex_internal): Rename to ... - (altivec_stvex): ... this. - (doublee2, unsdoubleev4si2, doubleo2, unsdoubleov4si2, - doubleh2, unsdoublehv4si2, doublel2, unsdoublelv4si2, - reduc_plus_scal_): Adjust. - * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust - comment. - (rs6000_cpu_cpp_builtins): Adjust. - (altivec_resolve_overloaded_builtin): Remove -maltivec=be support. - * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be, - altivec_expand_stvx_be, altivec_expand_stvex_be): Delete. - * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove - -maltivec=be support. - (rs6000_split_vec_extract_var): Adjust. - (rs6000_split_v4si_init): Adjust. - (swap_selector_for_mode): Delete. - (altivec_expand_lvx_be, altivec_expand_stvx_be, - altivec_expand_stvex_be): Delete. - (altivec_expand_lv_builtin, altivec_expand_stv_builtin): Remove - -maltivec=be support. - (rs6000_gimple_fold_builtin): Ditto. - (rs6000_generate_float2_double_code, rs6000_generate_float2_code): - Adjust. - * config/rs6000/rs6000.h (VECTOR_ELT_ORDER_BIG): Delete. - (TARGET_DIRECT_MOVE_64BIT): Adjust. - * config/rs6000/rs6000.md (split for extendsidi2 for vectors): Adjust. - * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Delete. - * config/rs6000/vsx.md (floate, unsfloatev2di, floato, - unsfloatov2di, vsignedo_v2df, vsignede_v2df, vunsignedo_v2df, - vunsignede_v2df, vsx_extract__p9, *vsx_extract_si, - *vsx_extract__p8, *vsx_extract_si_float_df, - *vsx_extract_si_float_, vsx_set__p9, vsx_set_v4sf_p9, - *vsx_insert_extract_v4sf_p9, *vsx_insert_extract_v4sf_p9_2, and an - anonymous split): Adjust. - (vsx_mergel_, vsx_mergeh_): Remove -maltivec=be support. - (vsx_xxspltd_, extract4b, insert4b): Adjust. - -2018-05-10 Eric Botcazou - - * configure.ac (gcc_gxx_include_dir_add_sysroot): Set it to 1 only - when --with-gxx-include-dir is also specified. - * configure: Regenerate. - -2018-05-09 Jim Wilson - - PR target/84797 - * config.gcc (riscv*-*-*): Handle --with-multilib-list. - * config/riscv/t-withmultilib: New. - * config/riscv/withmultilib.h: New. - * doc/install.texi: Document RISC-V --with-multilib-list support. - -2018-05-09 Richard Biener - - * tree-vect-slp.c (vect_bb_slp_scalar_cost): Fill a cost - vector. - (vect_bb_vectorization_profitable_p): Adjust. Compute - actual scalar cost using the cost vector and the add_stmt_cost - machinery. - -2018-05-09 Segher Boessenkool - - PR rtl-optimization/85645 - * config/rs6000/rs6000.c (rs6000_emit_prologue_components): Put a SET - in the REG_CFA_REGISTER note for LR, don't leave it empty. - -2018-05-09 Segher Boessenkool - - PR rtl-optimization/85645 - * shrink-wrap.c (spread_components): Return a boolean saying if - anything was changed. - (try_shrink_wrapping_separate): Iterate spread_components until - nothing changes anymore. - -2018-05-09 Segher Boessenkool - - PR rtl-optimization/85645 - * regrename.c (build_def_use): Also kill the chains that include the - destination of a REG_CFA_REGISTER note. - -2018-05-09 Segher Boessenkool - - PR rtl-optimization/85645 - * regcprop.c (copyprop_hardreg_forward_1): Don't propagate into an - insn that has a REG_CFA_REGISTER note. - -2018-05-09 Richard Sandiford - - * cfgexpand.c (expand_clobber): New function. - (expand_gimple_stmt_1): Use it. - * tree-vect-stmts.c (vect_clobber_variable): New function, - split out from... - (vectorizable_simd_clone_call): ...here. - (vectorizable_store): Emit a clobber either side of an - IFN_STORE_LANES sequence. - (vectorizable_load): Emit a clobber after an IFN_LOAD_LANES sequence. - -2018-05-09 Tom de Vries - - PR target/85626 - * config/nvptx/nvptx.md (define_insn "trap", define_insn "trap_if_true") - (define_insn "trap_if_false"): Add exit after trap. - -2018-05-09 Eric Botcazou - - PR rtl-optimization/85638 - * bb-reorder.c: Include common/common-target.h. - (create_forwarder_block): New function extracted from... - (fix_up_crossing_landing_pad): ...here. Rename into... - (dw2_fix_up_crossing_landing_pad): ...this. - (sjlj_fix_up_crossing_landing_pad): New function. - (find_rarely_executed_basic_blocks_and_crossing_edges): In SJLJ mode, - call sjlj_fix_up_crossing_landing_pad if there are incoming EH edges - from both partitions and exit the loop after one iteration. - -2018-05-08 Kelvin Nilsen - - Revert: - * doc/extend.texi (PowerPC Built-in Functions): Rename this - subsection. - (Basic PowerPC Built-in Functions): The new name of the - subsection previously known as "PowerPC Built-in Functions". - (Basic PowerPC Built-in Functions Available on all Configurations): - New subsubsection. - (Basic PowerPC Built-in Functions Available on ISA 2.05): New - subsubsection. - (Basic PowerPC Built-in Functions Available on ISA 2.06): New - subsubsection. - (Basic PowerPC Built-in Functions Available on ISA 2.07): New - subsubsection. - (Basic PowerPC Built-in Functions Available on ISA 3.0): New - subsubsection. - -2018-05-08 Jim Wilson - - * config/riscv/linux.h (MUSL_ABI_SUFFIX): Delete unnecessary backslash. - (LD_EMUL_SUFFIX): New. - (LINK_SPEC): Use it. - -2018-05-08 Kelvin Nilsen - - * doc/extend.texi (PowerPC Built-in Functions): Rename this - subsection. - (Basic PowerPC Built-in Functions): The new name of the - subsection previously known as "PowerPC Built-in Functions". - (Basic PowerPC Built-in Functions Available on all Configurations): - New subsubsection. - (Basic PowerPC Built-in Functions Available on ISA 2.05): New - subsubsection. - (Basic PowerPC Built-in Functions Available on ISA 2.06): New - subsubsection. - (Basic PowerPC Built-in Functions Available on ISA 2.07): New - subsubsection. - (Basic PowerPC Built-in Functions Available on ISA 3.0): New - subsubsection. - -2018-05-08 Jakub Jelinek - - PR target/85683 - * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0 - after cmpelim optimization. - -2018-05-08 Olga Makhotina - - * config.gcc: Support "goldmont". - * config/i386/driver-i386.c (host_detect_local_cpu): Detect "goldmont". - * config/i386/i386-c.c (ix86_target_macros_internal): Handle - PROCESSOR_GOLDMONT. - * config/i386/i386.c (m_GOLDMONT): Define. - (processor_target_table): Add "goldmont". - (PTA_GOLDMONT): Define. - (ix86_lea_outperforms): Add TARGET_GOLDMONT. - (get_builtin_code_for_version): Handle PROCESSOR_GOLDMONT. - (fold_builtin_cpu): Add M_INTEL_GOLDMONT. - (fold_builtin_cpu): Add "goldmont". - (ix86_add_stmt_cost): Add TARGET_GOLDMONT. - (ix86_option_override_internal): Add "goldmont". - * config/i386/i386.h (processor_costs): Define TARGET_GOLDMONT. - (processor_type): Add PROCESSOR_GOLDMONT. - * config/i386/i386.md: Add CPU "glm". - * config/i386/glm.md: New file. - * config/i386/x86-tune.def: Add m_GOLDMONT. - * doc/invoke.texi: Add goldmont as x86 -march=/-mtune= CPU type. - -2018-05-08 Jakub Jelinek - - PR target/85572 - * config/i386/i386.c (ix86_expand_sse2_abs): Handle E_V2DImode and - E_V4DImode. - * config/i386/sse.md (abs2): Use VI_AVX2 iterator instead of - VI1248_AVX512VL_AVX512BW. Handle V2DImode and V4DImode if not - TARGET_AVX512VL using ix86_expand_sse2_abs. Formatting fixes. - - PR target/85317 - * config/i386/i386.c (ix86_fold_builtin): Handle - IX86_BUILTIN_{,P}MOVMSK{PS,PD,B}{,128,256}. - - PR target/85480 - * config/i386/sse.md (ssequaterinsnmode): New mode attribute. - (*_vinsert_0): New pattern. - -2018-05-08 Richard Earnshaw - - PR target/85658 - * config/arm/parsecpu.awk (check_cpu): Fix operator precedence. - (check_arch): Likewise. - (check_fpu): Return the result rather than printing it. - (end arch): Fix operator precedence. - (end cpu): Likewise. - (END): Print the result from check_fpu. - -2018-05-08 Richard Sandiford - Alan Hayward - David Sherwood - - * config/aarch64/aarch64-sve.md (*pred_cmp_combine) - (*pred_cmp, *fcm_and_combine) - (*fcmuo_and_combine, *fcm_and) - (*fcmuo_and): New patterns. - -2018-05-08 Richard Sandiford - - * config/aarch64/iterators.md (UNSPEC_COND_LO, UNSPEC_COND_LS) - (UNSPEC_COND_HI, UNSPEC_COND_HS, UNSPEC_COND_UO): Delete. - (SVE_INT_CMP, SVE_FP_CMP): New code iterators. - (cmp_op, sve_imm_con): New code attributes. - (SVE_COND_INT_CMP, imm_con): Delete. - (cmp_op): Remove above unspecs from int attribute. - * config/aarch64/aarch64-sve.md (*vec_cmp_): Rename - to... - (*cmp): ...this. Use UNSPEC_MERGE_PTRUE instead of - comparison-specific unspecs. - (*vec_cmp__ptest): Rename to... - (*cmp_ptest): ...this and adjust likewise. - (*vec_cmp__cc): Rename to... - (*cmp_cc): ...this and adjust likewise. - (*vec_fcm): Rename to... - (*fcm): ...this and adjust likewise. - (*vec_fcmuo): Rename to... - (*fcmuo): ...this and adjust likewise. - (*pred_fcm): New pattern. - * config/aarch64/aarch64.c (aarch64_emit_unop, aarch64_emit_binop) - (aarch64_emit_sve_ptrue_op, aarch64_emit_sve_ptrue_op_cc): New - functions. - (aarch64_unspec_cond_code): Remove handling of LTU, GTU, LEU, GEU - and UNORDERED. - (aarch64_gen_unspec_cond, aarch64_emit_unspec_cond): Delete. - (aarch64_emit_sve_predicated_cond): New function. - (aarch64_expand_sve_vec_cmp_int): Use aarch64_emit_sve_ptrue_op_cc. - (aarch64_emit_unspec_cond_or): Replace with... - (aarch64_emit_sve_or_conds): ...this new function. Use - aarch64_emit_sve_ptrue_op for the individual comparisons and - aarch64_emit_binop to OR them together. - (aarch64_emit_inverted_unspec_cond): Replace with... - (aarch64_emit_sve_inverted_cond): ...this new function. Use - aarch64_emit_sve_ptrue_op for the comparison and - aarch64_emit_unop to invert the result. - (aarch64_expand_sve_vec_cmp_float): Update after the above - changes. Use aarch64_emit_sve_ptrue_op for native comparisons. - -2018-05-07 Nathan Sidwell - - * doc/invoke.texi (C++ Dialect Options): Remove -ffor-scope. - * doc/extend.texi (Deprecated Features): Remove -fno-for-scope - (Backwards Compatibility): Likewise. - -2018-05-07 Luis Machado - - PR bootstrap/85681 - Revert: - 2018-05-07 Luis Machado - - * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) - : New const bool field. - * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include - prefetch_dynamic_strides. - (exynosm1_prefetch_tune): Likewise. - (thunderxt88_prefetch_tune): Likewise. - (thunderx_prefetch_tune): Likewise. - (thunderx2t99_prefetch_tune): Likewise. - (qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides - to false. - (aarch64_override_options_internal): Update to set - PARAM_PREFETCH_DYNAMIC_STRIDES. - * doc/invoke.texi (prefetch-dynamic-strides): Document new option. - * params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New. - * params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define. - * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for - prefetch-dynamic-strides setting. - - 2018-05-07 Luis Machado - - * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) - : New const int field. - * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include - minimum_stride field. - (exynosm1_prefetch_tune): Likewise. - (thunderxt88_prefetch_tune): Likewise. - (thunderx_prefetch_tune): Likewise. - (thunderx2t99_prefetch_tune): Likewise. - (qdf24xx_prefetch_tune): Likewise. Set minimum_stride to 2048. - (aarch64_override_options_internal): Update to set - PARAM_PREFETCH_MINIMUM_STRIDE. - * doc/invoke.texi (prefetch-minimum-stride): Document new option. - * params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New. - * params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define. - * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if - stride is constant and is below the minimum stride threshold. - -2018-05-07 Luis Machado - - * config/aarch64/aarch64.c (qdf24xx_prefetch_tune) : Set - to 512. - -2018-05-07 Luis Machado - - * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) - : New const bool field. - * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include - prefetch_dynamic_strides. - (exynosm1_prefetch_tune): Likewise. - (thunderxt88_prefetch_tune): Likewise. - (thunderx_prefetch_tune): Likewise. - (thunderx2t99_prefetch_tune): Likewise. - (qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides - to false. - (aarch64_override_options_internal): Update to set - PARAM_PREFETCH_DYNAMIC_STRIDES. - * doc/invoke.texi (prefetch-dynamic-strides): Document new option. - * params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New. - * params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define. - * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for - prefetch-dynamic-strides setting. - -2018-05-07 Luis Machado - - * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) - : New const int field. - * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include - minimum_stride field. - (exynosm1_prefetch_tune): Likewise. - (thunderxt88_prefetch_tune): Likewise. - (thunderx_prefetch_tune): Likewise. - (thunderx2t99_prefetch_tune): Likewise. - (qdf24xx_prefetch_tune): Likewise. Set minimum_stride to 2048. - (aarch64_override_options_internal): Update to set - PARAM_PREFETCH_MINIMUM_STRIDE. - * doc/invoke.texi (prefetch-minimum-stride): Document new option. - * params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New. - * params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define. - * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if - stride is constant and is below the minimum stride threshold. - -2018-05-06 Jakub Jelinek - - PR c++/85659 - * cfgexpand.c (expand_asm_stmt): Don't create a temporary if - the type is addressable. Don't force op into register if it has - BLKmode. - -2018-05-05 Roland McGrath - - PR other/77609 - * varasm.c (default_section_type_flags): Set SECTION_NOTYPE for - any section for which we don't know a specific type it should have, - regardless of name. Previously this was done only for the exact - names ".init_array", ".fini_array", and ".preinit_array". - (default_elf_asm_named_section): Add comment about - relationship with default_section_type_flags and SECTION_NOTYPE. - (get_section): Don't consider it a type conflict if one side has - SECTION_NOTYPE and the other doesn't, as long as neither has the - SECTION_BSS et al used in the default_section_type_flags logic. - -2018-05-05 Tom de Vries - - PR target/85653 - * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG_3): Define. - (workaround_barsyncs): New function. - (nvptx_reorg): Use workaround_barsyncs. - * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR. - (define_expand "nvptx_membar_cta"): New define_expand. - (define_insn "*nvptx_membar_cta"): New insn. - -2018-05-04 Pekka Jääskeläinen - - * brig-builtins.def: Add consts to ptrs etc. in BRIG builtin defs. - To improve optimization opportunities. - * builtin-types.def: The new needed builtin types for the above. - -2018-05-04 Richard Biener - - * bb-reorder.c (sanitize_hot_paths): Release hot_bbs_to_check. - * gimple-ssa-store-merging.c - (imm_store_chain_info::output_merged_store): Remove redundant create, - release split_store vector contents on failure. - * tree-vect-slp.c (vect_schedule_slp_instance): Avoid leaking - scalar stmt vector on cache hit. - -2018-05-04 Segher Boessenkool - - * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Remove - Xilinx FP support. - * config.gcc (powerpc-xilinx-eabi*): Remove. - * config/rs6000/predicates.md (easy_fp_constant): Remove Xilinx FP - support. - (fusion_addis_mem_combo_load): Ditto. - * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove Xilinx - FP support. - (rs6000_cpu_cpp_builtins): Ditto. - * config/rs6000/rs6000-linux.c - (rs6000_linux_float_exceptions_rounding_supported_p): Ditto. - * config/rs6000/rs6000-opts.h (enum fpu_type_t): Delete. - * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove Xilinx FP - support. - (rs6000_setup_reg_addr_masks): Ditto. - (rs6000_init_hard_regno_mode_ok): Ditto. - (rs6000_option_override_internal): Ditto. - (legitimate_lo_sum_address_p): Ditto. - (rs6000_legitimize_address): Ditto. - (rs6000_legitimize_reload_address): Ditto. - (rs6000_legitimate_address_p): Ditto. - (abi_v4_pass_in_fpr): Ditto. - (setup_incoming_varargs): Ditto. - (rs6000_gimplify_va_arg): Ditto. - (rs6000_split_multireg_move): Ditto. - (rs6000_savres_strategy): Ditto. - (rs6000_emit_prologue_components): Ditto. - (rs6000_emit_epilogue_components): Ditto. - (rs6000_emit_prologue): Ditto. - (rs6000_emit_epilogue): Ditto. - (rs6000_elf_file_end): Ditto. - (rs6000_function_value): Ditto. - (rs6000_libcall_value): Ditto. - * config/rs6000/rs6000.h: Ditto. - (TARGET_MINMAX_SF, TARGET_MINMAX_DF): Delete, merge to ... - (TARGET_MINMAX): ... this. New. - (TARGET_SF_FPR, TARGET_DF_FPR, TARGET_SF_INSN, TARGET_DF_INSN): Delete. - * config/rs6000/rs6000.md: Remove Xilinx FP support. - (*movsi_internal1_single): Delete. - * config/rs6000/rs6000.opt (msingle-float, mdouble-float, msimple-fpu, - mfpu=, mxilinx-fpu): Delete. - * config/rs6000/singlefp.h: Delete. - * config/rs6000/sysv4.h: Remove Xilinx FP support. - * config/rs6000/t-rs6000: Ditto. - * config/rs6000/t-xilinx: Delete. - * config/rs6000/titan.md: Adjust for fp_type removal. - * config/rs6000/vsx.md: Remove Xilinx FP support. - (VStype_simple): Delete. - (VSfptype_simple, VSfptype_mul, VSfptype_div, VSfptype_sqrt): Delete. - * config/rs6000/xfpu.h: Delete. - * config/rs6000/xfpu.md: Delete. - * config/rs6000/xilinx.h: Delete. - * config/rs6000/xilinx.opt: Delete. - * doc/invoke.texi (RS/6000 and PowerPC Options): Remove - -msingle-float, -mdouble-float, -msimple-fpu, -mfpu=, and -mxilinx-fpu. - -2018-05-04 Tom de Vries - - PR libgomp/85639 - * builtins.c (expand_builtin_goacc_parlevel_id_size): Handle null target - if ignore == 0. - -2018-05-04 Richard Biener - - PR middle-end/85627 - * tree-complex.c (update_complex_assignment): We are always in SSA form. - (expand_complex_div_wide): Likewise. - (expand_complex_operations_1): Likewise. - (expand_complex_libcall): Preserve EH info of the original stmt. - (tree_lower_complex): Handle removed blocks. - * tree.c (build_common_builtin_nodes): Do not set ECF_NOTRHOW - on complex multiplication and division libcall builtins. - -2018-05-04 Richard Biener - - PR middle-end/85574 - * fold-const.c (negate_expr_p): Restrict negation of operand - zero of a division to when we know that can happen without - overflow. - (fold_negate_expr_1): Likewise. - -2018-05-04 Jakub Jelinek - - PR libstdc++/85466 - * real.h (real_nextafter): Declare. - * real.c (real_nextafter): New function. - * fold-const-call.c (fold_const_nextafter): New function. - (fold_const_call_sss): Call it for CASE_CFN_NEXTAFTER and - CASE_CFN_NEXTTOWARD. - (fold_const_call_1): For CASE_CFN_NEXTTOWARD call fold_const_call_sss - even when arg1_mode is different from arg0_mode. - -2018-05-03 Nathan Sidwell - - * doc/extend.texi (Deprecated Features): Remove - -ffriend-injection. - (Backwards Compatibility): Likewise. - * doc/invoke.texi (C++ Language Options): Likewise. - (C++ Dialect Options): Likewise. - -2018-05-03 Jakub Jelinek - - PR target/85530 - * config/i386/avx512fintrin.h (_mm512_mullox_epi64, - _mm512_mask_mullox_epi64): New intrinsics. - -2018-05-03 Tom de Vries - - PR testsuite/85106 - * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization - dump files): Add offload-tree. - -2018-05-03 Richard Biener - - PR tree-optimization/85615 - * tree-ssa-threadupdate.c (thread_block_1): Only allow exits - to loops not nested in BBs loop father to avoid creating multi-entry - loops. - -2018-05-03 Kyrylo Tkachov - - PR tree-optimization/70291 - * tree-complex.c (expand_complex_libcall): Add type, inplace_p - arguments. Change return type to tree. Emit libcall as a new - statement rather than replacing existing one when inplace_p is true. - (expand_complex_multiplication_components): New function. - (expand_complex_multiplication): Expand floating-point complex - multiplication using the above. - (expand_complex_division): Rename inner_type parameter to type. - Update expand_complex_libcall call-site. - (expand_complex_operations_1): Update expand_complex_multiplication - and expand_complex_division call-sites. - -2018-05-02 Jakub Jelinek - - PR target/85582 - * config/i386/i386.md (*ashl3_doubleword_mask, - *ashl3_doubleword_mask_1, *3_doubleword_mask, - *3_doubleword_mask_1): In condition require that - the highest significant bit of the shift count mask is clear. In - check whether and[sq]i3 is needed verify that all significant bits - of the shift count other than the highest are set. - -2018-05-02 Tom de Vries - - PR libgomp/82428 - * builtins.def (DEF_GOACC_BUILTIN_ONLY): Define. - * omp-builtins.def (BUILT_IN_GOACC_PARLEVEL_ID) - (BUILT_IN_GOACC_PARLEVEL_SIZE): New builtin. - * builtins.c (expand_builtin_goacc_parlevel_id_size): New function. - (expand_builtin): Call expand_builtin_goacc_parlevel_id_size. - * doc/extend.texi (Other Builtins): Add __builtin_goacc_parlevel_id and - __builtin_goacc_parlevel_size. - -2018-05-02 Richard Biener - - PR tree-optimization/85597 - * tree-vect-stmts.c (vectorizable_operation): For ternary SLP - do not use split vect_get_vec_defs call but call vect_get_slp_defs - directly. - -2018-05-02 Tom de Vries - - PR testsuite/85106 - * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization - dump files): Add ltrans-tree. - -2018-05-02 Tom de Vries - - PR testsuite/85106 - * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization - dump files): Add wpa-ipa. - -2018-05-02 Segher Boessenkool - - * config.gcc (powerpc*-*-*): Remove paired.h. Unsupport the - powerpc*-*-linux*paired* target. - * config/rs6000/750cl.h: Delete. - * config/rs6000/paired.h: Delete. - * config/rs6000/paired.md: Delete. - * config/rs6000/predicates.md (easy_vector_constant): Remove paired - float support. - * config/rs6000/rs6000-builtin.def: Remove paired float support. - * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update - comment. Remove paired float support. - * config/rs6000/rs6000-modes.def: Remove V2SF and V2SI. - * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete - VECTOR_PAIRED. - * config/rs6000/rs6000-protos.h (paired_expand_vector_init, - paired_emit_vector_cond_expr, paired_expand_vector_move): Delete - declarations. - * config/rs6000/rs6000.c: Remove paired float support. - (paired_expand_vector_init, paired_expand_vector_move, - paired_emit_vector_compare, paired_emit_vector_cond_expr, - (paired_expand_lv_builtin, paired_expand_stv_builtin, - paired_expand_builtin, paired_expand_predicate_builtin, - paired_init_builtins): Delete. - * config/rs6000/rs6000.h: Remove paired float support. - * config/rs6000/rs6000.md: Remove paired float support. - (move_from_CR_ov_bit): Delete. - * config/rs6000/rs6000.opt (mpaired): Delete. - * config/rs6000/t-rs6000: Remove paired.md from MD_INCLUDES. - * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mpaired. - -2018-05-02 Richard Biener - - PR middle-end/85567 - * gimplify.c (gimplify_save_expr): When in SSA form allow - SAVE_EXPRs to compute to SSA vars. - -2018-05-02 Jakub Jelinek - - PR target/85582 - * config/i386/i386.md (*ashl3_doubleword_mask, - *ashl3_doubleword_mask_1, *3_doubleword_mask, - *3_doubleword_mask_1): If and[sq]i3 is needed, don't - clobber operands[2], instead use a new pseudo. Formatting fixes. - -2018-05-02 Richard Sandiford - - PR tree-optimization/85586 - * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Only - exit early for statements in the same group if the accesses are - not strided. - -2018-05-02 Tom de Vries - - PR lto/85451 - * lto-wrapper.c (compile_offload_image): Add "could not find mkoffload" - error message. - -2018-05-01 Marc Glisse - - PR tree-optimization/85143 - * match.pd (A - - PR lto/85451 - * config/nvptx/mkoffload.c (main): Suggest using -B in "offload compiler - not found" error message. - -2018-05-01 Tom de Vries - - PR other/83786 - * vec.h (VEC_ORDERED_REMOVE_IF, VEC_ORDERED_REMOVE_IF_FROM_TO): Define. - * vec.c (test_ordered_remove_if): New function. - (vec_c_tests): Call test_ordered_remove_if. - * dwarf2cfi.c (connect_traces): Use VEC_ORDERED_REMOVE_IF_FROM_TO. - * lto-streamer-out.c (prune_offload_funcs): Use VEC_ORDERED_REMOVE_IF. - * tree-vect-patterns.c (vect_pattern_recog_1): Use - VEC_ORDERED_REMOVE_IF. - -2018-05-01 Prathamesh Kulkarni - - PR tree-optimization/82665 - * vr-values.c (vr_values::extract_range_from_binary_expr): Handle - pointer subtraction where arguments come from a memchr call. - -2018-05-01 Jakub Jelinek - - * configure.ac (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Use - --push-state --as-needed and --pop-state instead of --as-needed and - --no-as-needed if ld supports it. - * configure: Regenerated. - - PR web/85578 - * doc/install.texi2html: Replace _002d with - and _002a with * in - generated html files using sed. - -2018-04-30 David Malcolm - - PR c++/85523 - * gcc-rich-location.c (blank_line_before_p): New function. - (use_new_line): New function. - (gcc_rich_location::add_fixit_insert_formatted): New function. - * gcc-rich-location.h - (gcc_rich_location::add_fixit_insert_formatted): New function. - -2018-04-30 David Malcolm - - * selftest.c (assert_streq): Rename "expected" and "actual" to - "val1" and "val2". Extend NULL-handling to cover both inputs - symmetrically, while still requiring both to be non-NULL for a pass. - * selftest.h (assert_streq): Rename "expected" and "actual" to - "val1" and "val2". - (ASSERT_EQ): Likewise. - (ASSERT_EQ_AT): Likewise. - (ASSERT_KNOWN_EQ): Likewise. - (ASSERT_KNOWN_EQ_AT): Likewise. - (ASSERT_NE): Likewise. - (ASSERT_MAYBE_NE): Likewise. - (ASSERT_MAYBE_NE_AT): Likewise. - (ASSERT_STREQ): Likewise. Clarify that both must be non-NULL for - the assertion to pass. - (ASSERT_STREQ_AT): Likewise. - -2018-04-30 Jonathan Wakely - - * doc/invoke.texi (-fpie, -fPIE): Fix grammar and clarify - interaction with -pie. - -2018-04-30 David Malcolm - - * selftest.h: Fix alphabetization of per-source-file selftest - declarations. - -2018-04-30 Jason Merrill - - PR c++/61982 - dead stores to destroyed objects. - * gimplify.c (gimplify_modify_expr): Simplify complex lvalue on LHS - of clobber. - -2018-04-30 Jason Merrill - - * tree.c (build_clobber): New. - * tree.h: Declare it. - * gimplify.c (gimplify_bind_expr, gimplify_target_expr): Use it. - -2018-04-30 David Malcolm - - * diagnostic-show-locus.c (layout::layout): Update for - location_get_source_line returning a char_span. - (struct char_span): Move to input.h. - (struct correction): Update for fields in char_span becoming - private. - (struct source_line): Update for location_get_source_line - returning a char_span. - (layout::print_line): Likewise. - * edit-context.c (edited_file::print_content): Likewise. - (edited_file::print_diff_hunk): Likewise. - (edited_file::print_run_of_changed_lines): Likewise. - (edited_file::get_num_lines): Likewise. - (edited_line::edited_line): Likewise. - * final.c (asm_show_source): Likewise. - * input.c (location_get_source_line): Convert return type - from const char * to char_span, losing the final "line_len" - param. - (dump_location_info): Update for the above. - (get_substring_ranges_for_loc): Likewise. Use a char_span - when handling the literal within the line. - (test_reading_source_line): Update for location_get_source_line - returning a char_span. - * input.h (class char_span): Move here from - diagnostic-show-locus.c, converting from a struct to a class. - Make data members private. - (char_span::operator bool): New. - (char_span::length): New. - (char_span::get_buffer): New. - (char_span::operator[]): New. - (char_span::subspan): Make const. - (char_span::xstrdup): New. - (location_get_source_line): Convert return type from const char * - to char_span, losing the final "line_size" param. - -2018-04-30 Jan Hubicka - - * lto-wrapper.c (ltrans_priorities): New static var. - (cmp_priority): New. - (run_gcc): Read priorities and if doing parallel build order - the Makefile by them. - -2018-04-30 David Malcolm - - * input.h (builtins_location_check): Convert to a STATIC_ASSERT. - -2018-04-30 Richard Biener - - * tree-cfg.c (verify_address): Remove base argument, add - flag whether to check TREE_ADDRESSABLE and do that. - (verify_expr): Remove. - (verify_types_in_gimple_reference): Add pieces from verify_expr. - (verify_gimple_assign_single): Likewise. - (verify_gimple_switch): Likewise. - (verify_expr_location_1): Dereference tp once. Add (disabled) - piece from verify_expr. - (verify_gimple_in_cfg): Do not call verify_expr on all ops. - -2018-04-30 Claudiu Zissulescu - - * config/arc/linux.h (CLEAR_INSN_CACHE): Define. - -2018-04-30 Claudiu Zissulescu - - * config/arc/arc-protos.h (prepare_extend_operands): Remove. - (small_data_pattern): Likewise. - (arc_rewrite_small_data): Likewise. - * config/arc/arc.c (LEGITIMATE_SMALL_DATA_OFFSET_P): Remove. - (LEGITIMATE_SMALL_DATA_ADDRESS_P): Likewise. - (get_symbol_alignment): New function. - (legitimate_small_data_address_p): Likewise. - (legitimate_scaled_address): Update, call - legitimate_small_data_address_p. - (output_sdata): New static variable. - (arc_print_operand): Update how we handle small data operands. - (arc_print_operand_address): Likewise. - (arc_legitimate_address_p): Update, use - legitimate_small_data_address_p. - (arc_rewrite_small_data_p): Remove. - (arc_rewrite_small_data_1): Likewise. - (arc_rewrite_small_data): Likewise. - (small_data_pattern): Likewise. - (compact_sda_memory_operand): Update to use - legitimate_small_data_address_p and get_symbol_alignment. - (prepare_move_operands): Don't rewite sdata pattern. - (prepare_extend_operands): Remove. - * config/arc/arc.md (zero_extendqihi2): Don't rewrite sdata - pattern. - (zero_extendqisi2): Likewise. - (zero_extendhisi2): Likewise. - (extendqihi2): Likewise. - (extendqisi2): Likewise. - (extendhisi2): Likewise. - (addsi3): Likewise. - (subsi3): Likewise. - (andsi3): Likewise. - * config/arc/constraints.md (Usd): Change it to memory constraint. - -2018-04-30 Claudiu Zissulescu - - * config/arc/arc.c (arc_split_move): Allow signed 6-bit constants - as source of std instructions. - * config/arc/arc.md (movsi_insn): Update pattern predicate to - allow 6-bit constants as source for store instructions. - (movdi_insn): Update instruction pattern to allow 6-bit constants - as source for store instructions. - -2018-04-30 Jonathan Wakely - - * doc/invoke.texi (-fdebug-types-section): Fix grammar. - -2018-04-30 Nathan Sidwell - Sandra Loosemore - - * dumpfile.c (dump_open): Allow '-' for stdout. - * doc/invoke.texi (Developer Options): Document dump filename - determination early. Document stdin/stdout selection. - -2018-04-30 Andrew Sadek - - Microblaze Target: PIC data text relative - - * config/microblaze/microblaze.opt: add new option -mpic-data-text-rel. - * config/microblaze/microblaze-protos.h (microblaze_constant_address_p): - Add declaration. - * config/microblaze/microblaze.h (microblaze_constant_address_p): - CONSTANT_ADDRESS_P definition to microblaze_constant_address_p. - * config/microblaze/microblaze.c (TARGET_PIC_DATA_TEXT_REL): - New addressing mode for data-text relative position indepenedent code. - (microblaze_classify_unspec): add 'UNSPEC_TEXT' case -> - 'ADDRESS_SYMBOLIC_TXT_REL'. - (microblaze_classify_address): Add handling for UNSPEC + CONST_INT. - (microblaze_legitimate_pic_operand): Exclude function calls from - pic operands in case of TARGET_PIC_DATA_TEXT_REL option. - (microblaze_legitimize_address): Generate 'UNSPEC_TEXT' for all possible - addresses cases. - (microblaze_address_insns): Add 'ADDRESS_SYMBOLIC_TXT_REL' case. - (print_operand): Add 'ADDRESS_SYMBOLIC_TXT_REL' case. - (print_operand_address): Add 'ADDRESS_SYMBOLIC_TXT_REL' case + handling - for 'address + offset'. - (microblaze_expand_prologue): Add new function prologue call for - 'r20' assignation. - (microblaze_asm_generate_pic_addr_dif_vec): Override new target hook - 'TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC' to disable address diff vector - table in case of TARGET_PIC_DATA_TEXT_REL. - (expand_pic_symbol_ref): Add handling for 'UNSPEC_TEXT'. - * config/microblaze/microblaze.md (TARGET_PIC_DATA_TEXT_REL): - Add new macros 'UNSPEC_TEXT', - 'UNSPEC_SET_TEXT' + add rule for setting r20 in function prologue - + exclude function calls from 'UNSPEC_PLT' in case of data text - relative mode. - * doc/tm.texi.in (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add - new target hook for generating address diff vector tables in case of - flag_pic. - * doc/tm.texi : Regenerate. - * stmt.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Append new condition - 'targetm.asm_out.generate_pic_addr_diff_vec' to flag_pic in case - of addr diff vector generation. - * target.def (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add - target hook definition. - * targhooks.h, targhooks.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): - Add default function for generate_pic_addr_diff_vec -> flag_pic. - * doc/invoke.texi (Add new pic option): Add new microblaze pic - option for data text relative. - -2018-04-30 Richard Biener - - * tree-chrec.h (evolution_function_is_constant_p): Remove - redundant check. - * tree-cfg.c (tree_node_can_be_shared): Re-order checks. - -2018-04-30 Richard Biener - - PR bootstrap/85571 - * dwarf2out.c (gen_producer_string): Ignore -fchecking[=]. - -2018-04-30 Richard Biener - - PR tree-optimization/28364 - PR tree-optimization/85275 - * tree-ssa-loop-ch.c (ch_base::copy_headers): Stop after - copying first exit test. - -2018-04-28 Mark Wielaard - - * dwarf2out.c (dwarf2out_finish): Add .debug_addr table header for - dwarf_version >= 5. - (dwarf_AT): Handle DW_AT_addr_base. - (add_top_level_skeleton_die_attrs): Use dwarf_AT for DW_AT_addr_base. - -2018-04-28 Uros Bizjak - - PR target/84431 - * config/i386/i386.md (*ashl3_doubleword_mask): New pattern. - (*ashl3_doubleword_mask_1): Ditto. - (*3_doubleword_mask): Ditto. - (*3_doubleword_mask_1): Ditto. - -2018-04-28 Richard Biener - - * tree-cfg.c (verify_gimple_phi): Take a gphi * argument. - (verify_gimple_in_cfg): Rename visited_stmts to visited_throwing_stmts - to reflect use. Only add interesting stmts. - -2018-04-27 Martin Jambor - - PR ipa/85549 - * ipa-cp.c (find_aggregate_values_for_callers_subset): Make sure - the jump function allows for passing through aggregate values. - -2018-04-27 David Malcolm - - * input.h (in_system_header_at): Convert from macro to inline - function. - (from_macro_expansion_at): Likewise. - (from_macro_definition_at): Likewise. - -2018-04-27 Jeff Law - - * config.gcc: Mark tile* targets as deprecated/obsolete. - -2018-04-27 Richard Biener - - * config/aarch64/aarch64.c: Simplify ap.__stack advance and - fix for ILP32. - -2018-04-27 Richard Biener - - * tree-cfg.c (verify_expr): Make dead code hit gcc_unreachable. - -2018-04-27 Uros Bizjak - - * config/i386/i386.md (*movti_internal): Substitute Ye constraint - with Yd constraint. Set "preferred_for_speed" attribute from - TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC for alternatives - with Yd constraint. - (*movdi_internal): Ditto. - (movti_interunit splitters): Remove - TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC from insn condition. - (movdi_interunit splitters): Ditto. - * config/i386/constraints.md (Ye): Remove. - (Yd): Do not depend on TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC. - -2018-04-27 Kyrylo Tkachov - - PR target/85512 - * config/aarch64/constraints.md (Usg): Limit to 31. - (Usj): Limit to 63. - -2018-04-27 Jakub Jelinek - - PR tree-optimization/85529 - * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Add FIRST_BB - argument. Don't call get_nonzero_bits if opcode is ERROR_MARK_NODE, - rhs2 def stmt's bb is dominated by first_bb and it isn't an obvious - zero extension or masking of the MSB bit. - (optimize_range_tests): Add FIRST_BB argument, pass it through - to optimize_range_tests_var_bound. - (maybe_optimize_range_tests, reassociate_bb): Adjust - optimize_range_tests callers. - -2018-04-26 Richard Biener - Jakub Jelinek - - * cgraph.h (symbol_table): Just declare debug method here. - * symtab.c (symbol_table::debug): Define. - -2018-04-26 Eric Botcazou - - * loop-invariant.c (may_assign_reg_p): Return false for frame pointer. - -2018-04-26 Uros Bizjak - - * config/i386/i386.md ("isa" attribute): Add x64_sse2. - ("enabled" attribute): Handle x64_sse2 "isa" attribute. - (*movdi_internal): Substitute Yi and Yj constraint with x - and Ym and Yn constraint with y constraint. Update "isa" - attribute and set "preferred_for_speed" attribute from - TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC for updated alternatives. - (*movsi_internal): Ditto. - (*movdf_internal): Ditto. - (*movsf_internal): Ditto. - (*zero_extendsidi2): Ditto. - * config/i386/sse.md (vec_set_0): Ditto. - (sse2_loadld): Ditto. - (*vec_extract_0): Ditto. - (*vec_extractv4si_0_zext_sse4): Ditto. - (vec_concatv2di): Ditto. - (*vec_dup): Ditto. - * config/i386/mmx.md (*mov_internal): Ditto. - * config/i386/constraints.md (Yi): Remove. - (Yj): Remove. - (Ym): Remove. - (Yn): Remove. - -2018-04-26 Nathan Sidwell - - * dumpfile.c (dump_open): New. - (dump_open_alternate_stream, dump_start, dump_begin): Call it. - (dump_finish): Detect stdio/stderr by value not name. - -2018-04-26 Jonathan Wakely - - * doc/invoke.texi (-Wreturn-type): Document default status for C++. - -2018-04-26 Tom de Vries - - PR target/84952 - * config/nvptx/nvptx.c (verify_neutering_jumps) - (verify_neutering_labels): New function - (nvptx_single): Use verify_neutering_jumps and verify_neutering_labels. - -2018-04-26 Tom de Vries - - PR target/84025 - * config/nvptx/nvptx.c (needs_neutering_p): New function. - (nvptx_single): Use needs_neutering_p to skip over insns that do not - need neutering. - -2018-04-26 Richard Biener - Tom de Vries - - PR lto/85422 - * lto-streamer-out.c (output_function): Fixup loops if required to match - discovery done in the reader. - -2018-04-26 Richard Biener - - PR tree-optimization/85116 - * tree-ssa-loop-ch.c (do_while_loop_p): A do-while loop should - have a loop exit from the single latch predecessor. Remove - case of header with just condition. - (ch_base::copy_headers): Exclude infinite loops from any - processing. - (pass_ch::execute): Record exits. - -2018-04-26 Richard Biener - - * tree-vect-data-refs.c (vect_get_data_access_cost): Get - prologue cost vector and pass it to vect_get_load_cost. - (vect_get_peeling_costs_all_drs): Likewise. - (vect_peeling_hash_get_lowest_cost): Likewise. - (vect_enhance_data_refs_alignment): Likewise. - -2018-04-26 Richard Biener - - PR middle-end/85450 - * tree-cfg.c (verify_gimple_assign_unary): Restore proper - checking of integer<->pointer conversions. - * omp-expand.c (expand_omp_for_static_nochunk): Avoid - sign-/zero-extending pointer types. - (expand_omp_for_static_chunk): Likewise. - -2018-03-22 Hans-Peter Nilsson - Jean Lee - - * config/mips/mips.c (mips_asan_shadow_offset): New function. - (TARGET_ASAN_SHADOW_OFFSET): Define. - * config/mips/mips.h (FRAME_GROWS_DOWNWARD): Augment to also be - true for -fsanitize=address. - -2018-04-25 Mark Wielaard - - * dwarf2out.c (file_info_cmp): Sort longer dir prefixes before - shorter ones. - -2018-04-25 Jakub Jelinek - - * config/i386/i386.md (*x86_movcc_0_m1): Use type "alu1" rather - than "alu", remove explicit "memory" and "imm_disp" attributes. - (*x86_movcc_0_m1_se, *x86_movcc_0_m1_neg): Likewise. - - PR middle-end/85414 - * simplify-rtx.c (simplify_unary_operation_1) : Pass SUBREG_REG (op) rather than op to - gen_lowpart_no_emit. - -2018-04-25 Sebastian Peryt - - PR target/85473 - * config/i386/i386.c (ix86_expand_builtin): Change memory - operand to XI, extend p0 to Pmode. - * config/i386/i386.md: Change unspec volatile and operand - 1 mode to XI, change operand 0 mode to P. - -2018-04-25 Chung-Ju Wu - - * config/nds32/nds32-predicates.c (nds32_can_use_bclr_p): Mask with - GET_MODE_MASK before any checking. - (nds32_can_use_bset_p): Likewise. - (nds32_can_use_btgl_p): Likewise. - -2018-04-25 Chung-Ju Wu - - * config/nds32/nds32-doubleword.md: New define_split pattern for - illegal register number. - -2018-04-25 Chung-Ju Wu - - * config/nds32/nds32.c (nds32_print_operand): Set op_value ealier. - -2018-04-25 Chung-Ju Wu - - * config/nds32/nds32.h (ASM_APP_ON): Add missing newline character. - -2018-04-25 Richard Biener - - * lto-streamer.h (LTO_major_version): Bump to 8. - -2018-04-25 Jakub Jelinek - - * BASE-VER: Set to 9.0.0. - -2018-04-24 Segher Boessenkool - - * config/rs6000/rs6000.c (init_float128_ieee): Fix spelling mistakes - in __abskf2 and __powikf2. - -2018-04-24 Kyrylo Tkachov - - PR target/85512 - * config/aarch64/constraints.md (Usg, Usj): New constraints. - * config/aarch64/iterators.md (cmode_simd): New mode attribute. - * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_3): - Use the above on operand 2. Reindent. - (*aarch64_lshr_sisd_or_int_3): Likewise. - -2018-04-24 H.J. Lu - - PR target/85485 - * common/config/i386/i386-common.c (ix86_handle_option): Don't - handle OPT_mcet. - * config/i386/i386.opt (mcet): Removed. - * doc/install.texi: Remove -mcet documentation. - * doc/invoke.texi: Likewise. - -2018-04-24 H.J. Lu - - PR target/85485 - * doc/install.texi: Remove -mcet from bootstrap-cet. - -2018-04-24 Jakub Jelinek - - PR target/85511 - * config/i386/i386.c (ix86_init_mmx_sse_builtins): Don't define - __builtin_ia32_readeflags_u32 and __builtin_ia32_writeeflags_u32 - if TARGET_64BIT. - - PR target/85503 - * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Punt if - const_vector is not CONST_VECTOR or SYMBOL_REF for a constant pool - containing a CONST_VECTOR. - -2018-04-24 Cesar Philippidis - - * doc/install.texi: Update newlib dependency for nvptx. - -2018-04-24 Jakub Jelinek - - PR target/85508 - * config/i386/i386.c (ix86_expand_vector_init_one_var): Use UINTVAL - instead of INTVAL when shifting x left. - -2018-04-24 Andreas Krebbel - - PR tree-optimization/85478 - * tree-vect-loop.c (vect_analyze_loop_2): Do not call - vect_grouped_store_supported for single element vectors. - -2018-04-24 Richard Biener - - PR target/85491 - * config/i386/i386.c (ix86_add_stmt_cost): Restrict strided - load cost increase to the case of non-constant step. - -2018-04-24 Jakub Jelinek - - PR target/84828 - * reg-stack.c (move_for_stack_reg): Don't fail assertion about dead - destination if any_malformed_asm. - -2018-04-23 Eric Botcazou - - PR middle-end/85496 - * expr.c (store_field): In the bitfield case, if the value comes from - a function call and is returned in registers by means of a PARALLEL, - do not change the mode of the temporary unless BLKmode and VOIDmode. - -2018-04-23 Andrey Belevantsev - - PR rtl-optimization/85423 - * sel-sched-ir.c (has_dependence_note_mem_dep): Only discard - dependencies to debug insns when the previous insn is non-debug. - -2018-04-23 Claudiu Zissulescu - - * config/arc/arc.md ("vunspec"): Delete it, unify all the unspec - enums into a single definition. - (fls): Fix predicates and printing. - (seti): Likewise. - -2018-04-23 Claudiu Zissulescu - - * config/arc/arc-protos.h (check_if_valid_sleep_operand): Remove. - * config/arc/arc.c (arc_expand_builtin): Sleep accepts registers - and short u6 immediate. - (check_if_valid_sleep_operand): Remove. - * config/arc/arc.md (Sleep): Accepts registers and u6 immediates. - -2018-04-22 Chung-Ju Wu - - * config/nds32/nds32.c (nds32_compute_stack_frame): Consider - flag_always_save_lp condition. - * config/nds32/nds32.opt (malways-save-lp): New option. - -2018-04-22 Shiva Chen - - * config/nds32/nds32-protos.h (nds32_use_load_post_increment): Declare. - * config/nds32/nds32.c (nds32_use_load_post_increment): New. - * config/nds32/nds32.h - (USE_LOAD_POST_INCREMENT, USE_LOAD_POST_DECREMENT): Define. - (USE_STORE_POST_INCREMENT, USE_STORE_POST_DECREMENT): Define. - -2018-04-22 Shiva Chen - - * config/nds32/nds32-protos.h (nds32_ls_333_p): Remove. - * config/nds32/nds32.c (nds32_ls_333_p): Remove. - -2018-04-22 Shiva Chen - Chung-Ju Wu - - * config/nds32/nds32-protos.h (nds32_case_vector_shorten_mode): - Declare. - * config/nds32/nds32.c (nds32_case_vector_shorten_mode): New function. - * config/nds32/nds32.h (CASE_VECTOR_SHORTEN_MODE): Modify. - -2018-04-22 Chung-Ju Wu - - * config/nds32/nds32.c (nds32_compute_stack_frame): Fix wrong value. - -2018-04-22 Chung-Ju Wu - - * config/nds32/nds32-protos.h (nds32_data_alignment, - nds32_local_alignment): Declare. - * config/nds32/nds32.c (nds32_data_alignment, nds32_constant_alignment, - nds32_local_alignment): New functions. - (TARGET_CONSTANT_ALIGNMENT): Define. - * config/nds32/nds32.h (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define. - -2018-04-22 Chung-Ju Wu - - * config/nds32/nds32.c - (TARGET_HARD_REGNO_MODE_OK): Move to the bottom of file. - (TARGET_MODES_TIEABLE_P): Likewise. - -2018-04-22 Chung-Ju Wu - - * config/nds32/nds32.c (nds32_asm_file_start): Display optimization - level Ofast and Og. - -2018-04-22 Monk Chiang - Chung-Ju Wu - - * config/nds32/constants.md (unspec_volatile_element): Add enum values - for unaligned access. - * config/nds32/nds32-intrinsic.c: Implementation of expanding - unaligned access. - * config/nds32/nds32-intrinsic.md: Likewise. - * config/nds32/nds32_intrinsic.h: Likewise. - * config/nds32/nds32.h (nds32_builtins): Likewise. - * config/nds32/nds32.opt (munaligned-access): New option. - * config/nds32/nds32.c (nds32_asm_file_start): Display - flag_unaligned_access status. - -2018-04-20 Kito Cheng - - * config/riscv/elf.h (LINK_SPEC): Pass --no-relax if - -mno-relax is present. - * config/riscv/linux.h (LINK_SPEC): Ditto. - -2018-04-20 Martin Sebor - - PR c/85365 - * gimple-fold.c (gimple_fold_builtin_strcpy): Suppress -Wrestrict - for null pointers. - (gimple_fold_builtin_stxcpy_chk): Same. - * gimple-ssa-warn-restrict.c (check_bounds_or_overlap): Same. - -2018-04-20 Michael Meissner - - PR target/85456 - * config/rs6000/rs6000.c (init_float128_ieee): Add support to call - __powikf2 when long double is IEEE 128-bit. - -2018-04-20 Kito Cheng - - * config/riscv/riscv.c (riscv_first_stack_step): Round up min - step to make sure stack always aligned. - -2018-04-20 Carl Love - - PR target/83402 - * config/rs6000/rs6000-c.c (rs6000_gimple_fold_builtin): Add - size check for arg0. - -2018-04-20 Nathan Sidwell - Tom de Vries - - PR target/85445 - * config/nvptx/nvptx.c (nvptx_emit_forking, nvptx_emit_joining): - Emit insns for calls too. - (nvptx_find_par): Always look for worker-level predecessor insn. - (nvptx_propagate): Add is_call parm, return bool. Copy frame for - calls. - (nvptx_vpropagate, nvptx_wpropagate): Adjust. - (nvptx_process_pars): Propagate frames for calls. - -2018-04-20 H.J. Lu - - PR target/85469 - * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): - Removed. - (OPTION_MASK_ISA_IBT_UNSET): Likewise. - (ix86_handle_option): Don't handle OPT_mibt. - * config/i386/cet.h: Check __CET__ instead of __IBT__ and - __SHSTK__. - * config/i386/driver-i386.c (host_detect_local_cpu): Remove - has_ibt and ibt. - * config/i386/i386-c.c (ix86_target_macros_internal): Don't - check OPTION_MASK_ISA_IBT nor flag_cf_protection. - (ix86_target_macros): Define __CET__ with flag_cf_protection - for -fcf-protection. - * config/i386/i386.c (isa2_opts): Remove -mibt. - * config/i386/i386.h (TARGET_IBT): Removed. - (TARGET_IBT_P): Likewise. - (ix86_valid_target_attribute_inner_p): Don't check OPT_mibt. - * config/i386/i386.md (nop_endbr): Don't check TARGET_IBT. - * config/i386/i386.opt (mcet): Update help message. - (mshstk): Likewise. - (mibt): Removed. - * doc/invoke.texi: Remove -mibt. Document __CET__. Document - -mcet as an alias for -mshstk. - -2018-04-20 Richard Biener - - PR middle-end/85475 - * match.pd ((X * CST) * Y -> (X * Y) * CST): Avoid exponential - complexity by forcing a single use of the multiply operand. - -2018-04-20 Martin Jambor - - ipa/85449 - * ipa-cp.c (cgraph_edge_brings_value_p): Move check for self-feeding - recursion dependency to only apply to non-clones. - -2018-04-20 Martin Jambor - - ipa/85447 - * ipa-cp.c (create_specialized_node): Check that clones of - self-recursive edges exist during IPA-CP. - -2018-04-19 Toon Moene - - * doc/invoke.texi: Add -floop-unroll-and-jam to options enabled - by -O3. - -2018-04-19 Jakub Jelinek - - PR tree-optimization/85467 - * fold-const.c (fold_ternary_loc) : Use - VECTOR_TYPE_P macro. If type is vector type, VIEW_CONVERT_EXPR the - VECTOR_CST element to type. - -2018-04-19 H.J. Lu - - PR target/85397 - * config/i386/i386.h (STACK_SAVEAREA_MODE): New. - * config/i386/i386.md (builtin_setjmp_setup): Removed. - (builtin_longjmp): Likewise. - (save_stack_nonlocal): New pattern. - (restore_stack_nonlocal): Likewise. - -2018-04-19 H.J. Lu - - PR target/85404 - * config/i386/cet.c (file_end_indicate_exec_stack_and_cet): - Replace ASM_OUTPUT_LABEL with fprintf. - -2018-04-19 H.J. Lu - - PR target/85417 - * config/i386/cet.c (file_end_indicate_exec_stack_and_cet): - Check flag_cf_protection instead of TARGET_IBT and TARGET_SHSTK. - * config/i386/i386-c.c (ix86_target_macros_internal): Also - define __IBT__ and __SHSTK__ for -fcf-protection. - * config/i386/i386.c (pass_insert_endbranch::gate): Don't check - TARGET_IBT. - (ix86_trampoline_init): Likewise. - (x86_output_mi_thunk): Likewise. - (ix86_notrack_prefixed_insn_p): Likewise. - (ix86_option_override_internal): Don't disallow -fcf-protection. - * config/i386/i386.md (rdssp): Also enable for - -fcf-protection. - (incssp): Likewise. - (nop_endbr): Likewise. - * config/i386/i386.opt (mcet): Change help message to built-in - functions only. - (mibt): Likewise. - (mshstk): Likewise. - * doc/invoke.texi: Remove -mcet, -mibt and -mshstk condition - on -fcf-protection. Change -mcet, -mibt and -mshstk to only - enable CET built-in functions. - -2018-04-19 Sebastian Peryt - - * common/config/i386/i386-common.c - (OPTION_MASK_ISA_MOVDIRI_SET, OPTION_MASK_ISA_MOVDIR64B_SET, - OPTION_MASK_ISA_MOVDIRI_UNSET, - OPTION_MASK_ISA_MOVDIR64B_UNSET): New defines. - (ix86_handle_option): Handle -mmovdiri and -mmovdir64b. - * config.gcc (movdirintrin.h): New header. - * config/i386/cpuid.h (bit_MOVDIRI, - bit_MOVDIR64B): New bits. - * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mmovdiri - and -mmvodir64b. - * config/i386/i386-builtin-types.def ((VOID, PUNSIGNED, UNSIGNED), - (VOID, PVOID, PCVOID)): New function types. - * config/i386/i386-builtin.def (__builtin_ia32_directstoreu_u32, - __builtin_ia32_directstoreu_u64, - __builtin_ia32_movdir64b): New builtins. - * config/i386/i386-c.c (__MOVDIRI__, __MOVDIR64B__): New. - * config/i386/i386.c (ix86_target_string): Added -mmovdir64b - and -mmovdiri. - (ix86_valid_target_attribute_inner_p): Ditto. - (ix86_expand_special_args_builtin): Added VOID_FTYPE_PUNSIGNED_UNSIGNED - and VOID_FTYPE_PUNSIGNED_UNSIGNED. - (ix86_expand_builtin): Expand IX86_BUILTIN_MOVDIR64B. - * config/i386/i386.h (TARGET_MOVDIRI, TARGET_MOVDIRI_P, - TARGET_MOVDIR64B, TARGET_MOVDIR64B_P): New. - * config/i386/i386.md (UNSPECV_MOVDIRI, UNSPECV_MOVDIR64B): New. - (movdiri, movdir64b_): New. - * config/i386/i386.opt: Add -mmovdiri and -mmovdir64b. - * config/i386/immintrin.h: Include movdirintrin.h. - * config/i386/movdirintrin.h: New file. - * doc/invoke.texi: Added -mmovdiri and -mmovdir64b. - -2018-04-19 Richard Biener - - PR middle-end/85455 - * cfg.c (clear_bb_flags): When loop state says we have - marked irreducible regions also preserve BB_IRREDUCIBLE_LOOP. - -2018-04-19 Richard Biener - - PR tree-optimization/84737 - * tree-vect-data-refs.c (vect_copy_ref_info): New function - copying restrict info. - (vect_setup_realignment): Use it. - * tree-vectorizer.h (vect_copy_ref_info): Declare. - * tree-vect-stmts.c (vectorizable_store): Copy ref info from - the first DR to all generated stores. - (vectorizable_load): Likewise for loads. - -2018-04-19 Jakub Jelinek - - PR tree-optimization/85446 - * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Require - the integral and pointer types to have the same precision. - - * doc/install.texi: Document --disable-cet being the default and - --enable-cet=auto. - -2018-04-18 Martin Liska - - * ipa-devirt.c (odr_subtypes_equivalent_p): Fix GNU coding - style. - -2018-04-18 Martin Liska - - Revert - 2018-03-02 Eric Botcazou - - PR ipa/83983 - * ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both - arguments if they are comparable. - -2018-04-18 Martin Liska - - Revert - 2018-03-13 Eric Botcazou - - PR lto/84805 - * ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of - incomplete types. - -2018-04-18 H.J. Lu - - PR target/85388 - * config/i386/i386.c (ix86_expand_split_stack_prologue): Insert - ENDBR after calling __morestack. - -2018-04-18 David Malcolm - - PR jit/85384 - * configure.ac (gcc-driver-name.h): Honor --with-gcc-major-version - by using gcc_base_ver to generate a gcc_driver_version, and use - it when generating GCC_DRIVER_NAME. - * configure: Regenerate. - -2018-04-18 Jakub Jelinek - - PR target/81084 - * config.gcc: Obsolete powerpc*-*-*spe*. - -2018-04-17 Jakub Jelinek - - PR debug/84637 - * dbxout.c (dbxout_int): Perform negation in unsigned int type. - (stabstr_D): Change type of unum from unsigned int to - unsigned HOST_WIDE_INT. Perform negation in unsigned HOST_WIDE_INT - type. - -2018-04-17 Jim Wilson - - PR 84856 - * config/riscv/riscv.c (riscv_compute_frame_info): Add calls to - RISCV_STACK_ALIGN when using outgoing_args_size and pretend_args_size. - Set arg_pointer_offset after using pretend_args_size. - -2018-04-17 Jakub Jelinek - - PR rtl-optimization/85431 - * dse.c (record_store): Ignore zero width stores. - - PR sanitizer/85230 - * asan.c (handle_builtin_stack_restore): Adjust comment. Emit - __asan_allocas_unpoison call and last_alloca_addr = new_sp before - __builtin_stack_restore rather than after it. - * builtins.c (expand_asan_emit_allocas_unpoison): Pass - arg1 + (virtual_dynamic_stack_rtx - stack_pointer_rtx) as second - argument instead of virtual_dynamic_stack_rtx. - -2018-04-17 Kelvin Nilsen - - * config/rs6000/rs6000-protos.h (rs6000_builtin_is_supported_p): - New prototype. - * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): - Add note to error message to explain internal mapping of overloaded - built-in function name to non-overloaded built-in function name. - * config/rs6000/rs6000.c (rs6000_builtin_is_supported_p): New - function. - -2018-04-17 Michael Meissner - - PR target/85424 - * config/rs6000/rs6000.md (pack): Do not try handle a pack - where the inputs overlap with the output. - -2018-04-17 Jakub Jelinek - - * config/i386/sse.md (vec_extract_lo_): Add - (=v, v) alternative and explicit "memory" attribute. - (vec_extract_lo_): Likewise. Also add - "type", "prefix", "prefix_extra", "length_immediate" and "mode" - attributes. - (vec_extract_lo_): Add (=v, v) alternative and use - "sselog1" type instead of "sselog". - (vec_extract_hi_): Use "sselog1" type instead of - "sselog". Remove explicit "memory" attribute. - (vec_extract_lo_v32hi): Add (=v, v) alternative and explicit "memory", - "type", "prefix", "prefix_extra", "length_immediate" and "mode" - attributes. - (vec_extract_hi_v32hi): Merge all alternatives into one, use - "sselog1" type instead of "sselog". Remove explicit "memory" - attribute. - (vec_extract_hi_v16hi): Merge each pair of alternatives into one, - use "sselog1" type instead of "sselog". Remove explicit "memory" - attribute. - (vec_extract_lo_v64qi): Add (=v, v) alternative and explicit "memory", - "type", "prefix", "prefix_extra", "length_immediate" and "mode" - attributes. - (vec_extract_hi_v64qi): Merge all alternatives into one, use - "sselog1" type instead of "sselog". Remove explicit "memory" - attribute. - (vec_extract_hi_v32qi): Merge each pair of alternatives into one, - use "sselog1" type instead of "sselog". Remove explicit "memory" - attribute. - - PR target/85430 - * config/i386/i386.md (*ashlqi3_1_slp): Use alu1 type instead of alu. - - PR middle-end/85414 - * rtlhooks.c (gen_lowpart_if_possible): Don't call gen_lowpart_SUBREG - on a SUBREG. - -2018-04-17 Martin Jambor - - PR ipa/85421 - * ipa-cp.c (create_specialized_node): Call - expand_all_artificial_thunks if necessary. - -2018-04-17 Martin Liska - - PR lto/85405 - * ipa-devirt.c (odr_types_equivalent_p): Remove trailing - in message, remote space in between '_G' and '('. - -2018-04-17 Jakub Jelinek - - PR target/85281 - * config/i386/sse.md (reduces, - avx512f_vmcmp3, - avx512f_vmcmp3_mask, - avx512f_sgetexp, - avx512f_rndscale, - avx512dq_ranges, - avx512f_vgetmant): - Use %2 instead of %2 for -masm=intel. - (avx512f_vcvtss2usi, avx512f_vcvtss2usiq, - avx512f_vcvttss2usi, - avx512f_vcvttss2usiq): Use %k1 instead of %1 for - -masm=intel. - (avx512f_vcvtsd2usi, avx512f_vcvtsd2usiq, - avx512f_vcvttsd2usi, - avx512f_vcvttsd2usiq, ufloatv2siv2df2): - Use %q1 instead of %1 for -masm=intel. - (avx512f_sfixupimm, - avx512f_sfixupimm_mask): Use %3 instead - of %3 for -masm=intel. - (sse2_shufpd_v2df_mask): Fix a typo, change %{6%} to %{%6%} for - -masm=intel. - (*avx512vl_v2div2qi2_store): Use %w0 instead of %0 for - -masm=intel. - (*avx512vl_v4qi2_store): Use %k0 instead of %0 for - -masm=intel. - (avx512vl_v4qi2_mask_store): Use a single pattern with - %k0 and %1 for -masm=intel rather than two patterns, one with %0 and - %g1. - (*avx512vl_v8qi2_store): Use %q0 instead of %0 for - -masm=intel. - (avx512vl_v8qi2_mask_store): Use a single pattern with - %q0 and %1 for -masm=intel rather than two patterns, one with %0 and - %g1 and one with %0 and %1. - (avx512er_vmrcp28, - avx512er_vmrsqrt28): Use %1 instead of - %1 for -masm=intel. - (avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddss_mask, - avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddss_mask, - avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssds_mask): Swap order - of %0 and %{%4%} for -masm=intel. - (avx5124fmaddps_4fmaddps_maskz, avx5124fmaddps_4fmaddss_maskz, - avx5124fmaddps_4fnmaddps_maskz, avx5124fmaddps_4fnmaddss_maskz, - avx5124vnniw_vp4dpwssd_maskz, avx5124vnniw_vp4dpwssds_maskz): Swap - order of %0 and %{%5%}%{z%} for -masm=intel. - -2018-04-17 Jan Hubicka - - PR lto/85405 - * ipa-devirt.c (odr_types_equivalent_p): Handle bit fields. - -2018-04-17 Martin Liska - - PR ipa/85329 - * multiple_target.c (create_dispatcher_calls): Set apostrophes - for target_clone error message. Make default implementation - clone to be a local declaration. - (separate_attrs): Add new argument and check for an empty - string. - (expand_target_clones): Handle it. - (ipa_target_clone): Make redirection just for target_clones - functions. - -2018-04-16 Cesar Philippidis - Tom de Vries - - PR middle-end/84955 - * omp-expand.c (expand_oacc_for): Add dummy false branch for - tiled basic blocks without omp continue statements. - -2018-04-16 Aaron Sawdey - - PR target/83660 - * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Mark - vec_extract expression as having side effects to make sure it gets - a cleanup point. - -2018-04-16 H.J. Lu - - PR target/85403 - * config/i386/i386.c (get_builtin_code_for_version): Check - error_mark_node. - -2018-04-16 Olga Makhotina - - PR target/84331 - * config.gcc: Support "skylake". - * config/i386/i386-c.c (ix86_target_macros_internal): Handle - PROCESSOR_SKYLAKE. - * config/i386/i386.c (m_SKYLAKE): Define. - (processor_target_table): Add "skylake". - (ix86_option_override_internal): Add "skylake". - (get_builtin_code_for_version): Handle PROCESSOR_SKYLAKE, - PROCESSOR_CANNONLAKE. - (get_builtin_code_for_version): Fix priority for - PROCESSOR_ICELAKE_CLIENT, PROCESSOR_ICELAKE_SERVER, - PROCESSOR_SKYLAKE-AVX512. - * config/i386/i386.h (processor_costs): Define TARGET_SKYLAKE. - (processor_type): Add PROCESSOR_SKYLAKE. - -2018-04-16 Paolo Carlini - Jason Merrill - - PR c++/85112 - * convert.c (convert_to_integer_1): Use direct recursion for - enumeral types and types with a precision less than the number - of bits in their mode. - -2018-04-16 Julia Koval - - PR target/84413 - * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL, - X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Add m_SKYLAKE_AVX512 - -2018-04-14 Segher Boessenkool - - PR target/85293 - * config/rs6000/rs6000.opt (mdirect-move): Make deprecated. - * doc/invoke.texi (RS/6000 and PowerPC Options): Remove -mdirect-move - and -mno-direct-move. - -2018-04-13 Paul A. Clarke - - PR target/83402 - * config/rs6000/emmintrin.h (_mm_slli_epi{16,32,64}): - Ensure that vec_splat_s32 is only called with 0 <= shift < 16. - Ensure negative shifts result in {0}. - -2018-04-13 Vladimir Makarov - - PR rtl-optimization/79916 - * config/rs6000/rs6000.c (rs6000_emit_move): Use assigned hard - regs (if any) to define how to gnerate SD moves when LRA is in - progress. - -2018-04-13 Jakub Jelinek - - PR rtl-optimization/85393 - * except.h (expand_dw2_landing_pad_for_region): Remove declaration. - * except.c (expand_dw2_landing_pad_for_region): Make static. - * bb-reorder.c (fix_up_crossing_landing_pad): In new_bb emit just - a label and unconditional jump to old_bb, rather than - expand_dw2_landing_pad_for_region insn(s) and jump to single_succ - basic block. - - PR rtl-optimization/85376 - * simplify-rtx.c (simplify_const_unary_operation): For CLZ and CTZ and - zero op0, if C?Z_DEFINED_VALUE_AT_ZERO is false, return NULL_RTX - instead of a specific value. - -2018-04-13 Jan Hubicka - Bin Cheng - - PR tree-optimization/82965 - PR tree-optimization/83991 - * cfgloopanal.c (expected_loop_iterations_unbounded): Add - by_profile_only parameter. - * cfgloopmanip.c (scale_loop_profile): Further scale loop's profile - information if the loop was predicted to iterate too many times. - * cfgloop.h (expected_loop_iterations_unbounded): Update prototype - -2018-04-13 Jan Hubicka - - PR lto/71991 - * config/i386/i386.c (ix86_can_inline_p): Allow safe transitions for - always inline. - -2018-04-13 Martin Liska - Jakub Jelinek - - PR middle-end/81657 - * expr.h (enum block_op_methods): Add BLOCK_OP_NO_LIBCALL_RET. - * expr.c (emit_block_move_hints): Handle BLOCK_OP_NO_LIBCALL_RET. - * builtins.c (expand_builtin_memory_copy_args): Use - BLOCK_OP_NO_LIBCALL_RET method for mempcpy with non-ignored target, - handle dest_addr == pc_rtx. - -2018-04-12 Segher Boessenkool - - PR target/85291 - * config/rs6000/rs6000.md (fix_truncsi2): Use legacy code if - asked to not generate direct moves. - (fix_truncsi2_stfiwx): Similar. - (fix_truncsi2_internal): Similar. - -2018-04-12 Jakub Jelinek - - PR debug/83157 - * var-tracking.c (add_stores): Handle STRICT_LOW_PART SET_DEST. - * cselib.c (cselib_record_sets): For STRICT_LOW_PART dest, - lookup if dest in some wider mode is known to be const0_rtx and - if so, record permanent equivalence for it to be ZERO_EXTEND of - the narrower mode destination. - -2018-04-12 Cesar Philippidis - - * lto-streamer-out.c (output_function): Revert 259346. - * omp-expand.c (expand_oacc_for): Likewise. - -2018-04-12 Alexander Monakov - - PR rtl-optimization/85354 - * sel-sched-ir.c (sel_init_pipelining): Move cfg_cleanup call... - * sel-sched.c (sel_global_init): ... here. - -2018-04-12 Eric Botcazou - - PR target/85238 - * lto-wrapper.c (debug_objcopy): Open the files in binary mode. - * dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO - mode for PE-COFF targets. - * config/i386/i386-protos.h (i386_pe_asm_lto_start): Declare. - (i386_pe_asm_lto_end): Likewise. - * config/i386/cygming.h (TARGET_ASM_LTO_START): Define. - (TARGET_ASM_LTO_END): Likewise. - * config/i386/winnt.c (saved_debug_info_level): New static variable. - (i386_pe_asm_lto_start): New function. - (i386_pe_asm_lto_end): Likewise. - -2018-04-12 Cesar Philippidis - Richard Biener - - PR middle-end/84955 - * lto-streamer-out.c (output_function): Fix CFG loop state before - streaming out. - * omp-expand.c (expand_oacc_for): Handle calls to internal - functions like regular functions. - -2018-04-12 Richard Biener - - PR lto/85371 - * dwarf2out.c (init_sections_and_labels): Use debug_line_section[_label] - for the early LTO debug to properly generate references to it - during DIE emission. Do not re-use that for the skeleton for - split-dwarf. - (dwarf2out_early_finish): Likewise. - -2018-04-12 Jakub Jelinek - - PR target/85328 - * config/i386/sse.md - (avx512dq_vextract64x2_1 split, - avx512f_vextract32x4_1 split, - vec_extract_lo_ split, vec_extract_lo_v32hi, - vec_extract_lo_v64qi): For non-AVX512VL if input is xmm16+ reg - and output is a reg, avoid creating invalid lowpart subreg, but - instead split into a 512-bit move. Don't split if not AVX512VL, - input is xmm16+ reg and output is a mem. - (vec_extract_lo_, vec_extract_lo_v32hi, - vec_extract_lo_v64qi): Don't require split if not AVX512VL, input is - xmm16+ reg and output is a mem. - -2018-04-12 Andreas Krebbel - - * config/s390/s390.c (s390_output_indirect_thunk_function): Check - also for flag_dwarf2_cfi_asm. - -2018-04-12 Jakub Jelinek - - PR rtl-optimization/85342 - * regcprop.c (copyprop_hardreg_forward_1): Remove replaced array, use - a bool scalar var inside of the loop instead. Don't try to update - recog_data.operand after failed apply_change_group. - -2018-04-12 Tom de Vries - - PR target/85296 - * config/nvptx/nvptx.c (flexible_array_member_type_p): New function. - (nvptx_assemble_decl_begin): Add undefined param. Declare undefined - array with flexible array member as array without given dimension. - (nvptx_assemble_undefined_decl): Set nvptx_assemble_decl_begin call - argument for undefined param to true. - -2018-04-11 Aaron Sawdey - - PR target/85321 - * doc/invoke.texi (RS/6000 and PowerPC Options): Document options - -mcall- and -mtraceback=. Remove options -mabi=spe and -mabi=no-spe - from PowerPC section. - * config/rs6000/sysv4.opt (mcall-): Improve help text. - * config/rs6000/rs6000.opt (mblock-compare-inline-limit=): Trim - help text that is too long. - * config/rs6000/rs6000.opt (mblock-compare-inline-loop-limit=): Trim - help text that is too long. - * config/rs6000/rs6000.opt (mstring-compare-inline-limit=): Trim - help text that is too long. - -2018-04-11 Uros Bizjak - - * config/alpha/alpha.md (stack_probe_internal): Rename - from "probe_stack". Update all callers. - -2018-04-11 Alexander Monakov - - PR rtl-optimization/84566 - * sched-deps.c (sched_analyze_insn): Check deps->readonly when invoking - sched_macro_fuse_insns. - -2018-04-11 Alexander Monakov - - PR target/84301 - * sched-rgn.c (add_branch_dependences): Move sel_sched_p check here... - (compute_block_dependences): ... from here. - -2018-04-11 Jakub Jelinek - - PR tree-optimization/85331 - * vec-perm-indices.h (vec_perm_indices::clamp): Change input type - from int to HOST_WIDE_INT. - -2018-04-11 Martin Jambor - - PR ipa/84149 - * ipa-cp.c (propagate_vals_across_pass_through): Expand comment. - (cgraph_edge_brings_value_p): New parameter dest_val, check if it is - not the same as the source val. - (cgraph_edge_brings_value_p): New parameter. - (gather_edges_for_value): Pass destination value to - cgraph_edge_brings_value_p. - (perhaps_add_new_callers): Likewise. - (get_info_about_necessary_edges): Likewise and exclude values brought - only by self-recursive edges. - (create_specialized_node): Redirect only clones of self-calling edges. - (+self_recursive_pass_through_p): New function. - (find_more_scalar_values_for_callers_subset): Use it. - (find_aggregate_values_for_callers_subset): Likewise. - (known_aggs_to_agg_replacement_list): Removed. - (decide_whether_version_node): Re-calculate known constants for all - remaining context clones. - -2018-04-11 Richard Biener - - PR lto/85339 - * dwarf2out.c (dwarf2out_finish): Remove DW_AT_stmt_list attribute - from early DWARF output. - (dwarf2out_early_finish): Output line info unconditionally into - early DWARF and add reference to it. - -2018-04-11 Jakub Jelinek - - PR target/85281 - * config/i386/sse.md (iptr): Add V16SFmode and V8DFmode cases. - (_vec_dup): Use a single pattern for modes - other than V2DFmode using iptr mode attribute. - (_vec_dup): Use iptr mode attribute. - -2018-04-11 Alexander Monakov - - PR rtl-optimization/84659 - * sel-sched-ir.c (sel_init_pipelining): Invoke cleanup_cfg. - -2018-04-11 Jakub Jelinek - - PR debug/85302 - * dwarf2out.c (skip_loc_list_entry): Don't call size_of_locs if - SIZEP is NULL. - (output_loc_list): Pass address of a dummy size variable even in the - locview handling loop. - (index_location_lists): Add comment on why skip_loc_list_entry can't - call size_of_locs. - -2018-04-11 Thomas Preud'homme - - PR target/85261 - * config/arm/arm-builtins.c (arm_expand_builtin): Force input operand - into register. - -2018-04-10 Aaron Sawdey - - PR target/85321 - * doc/invoke.texi (RS/6000 and PowerPC Options): Document options - -mblock-compare-inline-limit, -mblock-compare-inline-loop-limit, - and -mstring-compare-inline-limit. - -2018-04-10 Segher Boessenkool - - PR target/85287 - * config/rs6000/rs6000.md (allocate_stack): Put the residual size - for stack clash protection in a register whenever we need it to be in - a register. - -2018-04-10 Segher Boessenkool - - * common/config/rs6000/rs6000-common.c (rs6000_option_init_struct): - Enable -fasynchronous-unwind-tables by default if OBJECT_FORMAT_ELF. - -2018-04-10 Segher Boessenkool - - PR target/85321 - * config/rs6000/rs6000.opt (mtraceback=): Show the allowed values in - the help text. - (mlong-double-): Ditto. - * config/rs6000/sysv4.opt (msdata=): Ditto. - (mtls-size=): Ditto. - -2018-04-10 Kelvin Nilsen - - * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove - erroneous entries for - "vector int vec_ldl (int, long int *)", and - "vector unsigned int vec_ldl (int, unsigned long int *)". - Add comments and entries for - "vector bool char vec_ldl (int, bool char *)", - "vector bool short vec_ldl (int, bool short *)", - "vector bool int vec_ldl (int, bool int *)", - "vector bool long long vec_ldl (int, bool long long *)", - "vector pixel vec_ldl (int, pixel *)", - "vector long long vec_ldl (int, long long *)", - "vector unsigned long long vec_ldl (int, unsigned long long *)". - * config/rs6000/rs6000.c (rs6000_init_builtins): Initialize new - type tree bool_long_long_type_node and correct definition of - bool_V2DI_type_node to make reference to this new type tree. - (rs6000_mangle_type): Replace erroneous reference to - bool_long_type_node with bool_long_long_type_node. - * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Add - comments to emphasize sign distinctions for char and int types and - replace RS6000_BTI_bool_long constant with - RS6000_BTI_bool_long_long constant. Also add comment to restrict - use of RS6000_BTI_pixel. - (bool_long_type_node): Remove this macro definition. - (bool_long_long_type_node): New macro definition - -2018-04-10 Jakub Jelinek - - PR rtl-optimization/85300 - * combine.c (subst): Handle subst of CONST_SCALAR_INT_P new_rtx also - into FLOAT and UNSIGNED_FLOAT like ZERO_EXTEND, return a CLOBBER if - simplify_unary_operation fails. - -2018-04-10 Martin Liska - - * gdbhooks.py: Add pretty-printers for varpool_node, symtab_node, - cgraph_edge and ipa_ref. - -2018-04-10 Jakub Jelinek - - PR target/85177 - PR target/85255 - * config/i386/sse.md - (_vinsert_mask): Fix - computation of the VEC_MERGE selector from mask. - (_vinsert_1): - Fix decoding of the VEC_MERGE selector into mask. - -2018-04-10 Richard Sandiford - - PR tree-optimization/85286 - * tree-vect-data-refs.c (vect_get_smallest_scalar_type): - -2018-04-10 Richard Sandiford - - * final.c (final_1): Set insn_last_address as well as - insn_current_address. - -2018-04-10 Kyrylo Tkachov - - PR target/85173 - * explow.c (emit_stack_probe): Call validize_mem on memory location - before passing it to gen_probe_stack. Create address operand and - legitimize it for the probe_stack_address case. - -2018-04-09 Jan Hubicka - - PR lto/85078 - * ipa-devirt.c (rebuild_type_inheritance-hash): New. - * ipa-utils.h (rebuild_type_inheritance-hash): Declare. - * tree.c (free_lang_data_in_type): Fix handling of binfos; - walk basetypes. - (free_lang_data): Rebuild type inheritance graph. - -2018-04-09 Martin Sebor - - * invoke.texi (-finline-small-functions): Mention other optimization - options. - (-findirect-inlining, -fpartial-inlining): Same. - (-finline-functions-called-once): Same. - (-freorder-blocks-and-partition): Same. - -2018-04-09 Jan Hubicka - - PR rtl/84058 - * cfgcleanup.c (try_forward_edges): Do not give up on crossing - jumps; choose last target that matches the criteria (i.e. - no partition changes for non-crossing jumps). - * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Add basic - support for redirecting crossing jumps to non-crossing. - -2018-04-09 Alexey Brodkin - - * config/arc/arc.c (arc_expand_prologue): Set stack usage info - also for naked functions. - -2018-04-09 Claudiu Zissulescu - - * config/arc/arc.md (add_shift): New pattern. - (add_shift2): Likewise. - (sub_shift): Likewise. - (sub_shift_cmp0_noout): Likewise. - (compare_si_ashiftsi): Likewise. - (xbfu_cmp0_noout): New combine pattern. - (xbfu_cmp0"): Likewise. - (movsi_set_cc_insn): Place the predicable variant first. - (commutative_binary_cmp0_noout): Remove clobber. - (commutative_binary_cmp0): New pattern. - (noncommutative_binary_cmp0): Likewise. - (noncommutative_binary_cmp0_noout): Likewise. - (noncommutative_binary_comparison_result_used): Removed. - (rsub_cmp0): New pattern. - (rsub_cmp0_noout): Likewise. - (extzvsi): Changed, keep only meaningful variants. - (SQH, SEZ): New iterators. - (SQH_postfix): New mode attribute. - (SEZ_prefix): New code attribute. - (xt_cmp0_noout): New instruction pattern. - (xt_cmp0): Likewise. - * config/arc/predicates.md (cc_set_register): Use CC_REG instead - of numerical value. - (noncommutative_operator): Check the availability of barrel - shifter option. - -2018-04-09 Richard Biener - - PR tree-optimization/85284 - * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): - Only use the niter constraining form of simple_iv when the exit - is always executed. - -2018-04-09 Tom de Vries - - PR target/84041 - * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR. - (define_expand "*memory_barrier"): New define_expand. - (define_insn "memory_barrier"): New insn. - -2018-04-09 Andrey Belevantsev - - PR rtl-optimization/80463 - PR rtl-optimization/83972 - PR rtl-optimization/83480 - - * sel-sched-ir.c (has_dependence_note_mem_dep): Take into account the - correct producer for the insn. - (tidy_control_flow): Fixup seqnos in case of debug insns. - -2018-04-09 Andrey Belevantsev - - PR rtl-optimization/83913 - - * sel-sched-ir.c (merge_expr_data): Choose the middle between two - different sched-times when merging exprs. - -2018-04-09 Andrey Belevantsev - - PR rtl-optimization/83962 - - * sel-sched-ir.c (tidy_control_flow): Correct the order in which we call - tidy_fallthru_edge and tidy_control_flow. - -2018-04-09 Andrey Belevantsev - - PR rtl-optimization/83530 - - * sel-sched.c (force_next_insn): New global variable. - (remove_insn_for_debug): When force_next_insn is true, also leave only - next insn in the ready list. - (sel_sched_region): When the region wasn't scheduled, make another pass - over it with force_next_insn set to 1. - -2018-04-08 Monk Chiang - - * config.gcc (nds32le-*-*, nds32be-*-*): Add nds32/nds32_intrinsic.h - into tm_file. - * config/nds32/constants.md (unspec_volatile_element): Add enum values - for interrupt control. - * config/nds32/nds32-intrinsic.c: Implementation of intrinsic - functions for interrupt control. - * config/nds32/nds32-intrinsic.md: Likewise. - * config/nds32/nds32_intrinsic.h: Likewise. - * config/nds32/nds32.h (nds32_builtins): Likewise. - -2018-04-08 Chung-Ju Wu - - * config/nds32/nds32.c (nds32_init_machine_status, - nds32_legitimate_index_p, nds32_legitimate_address_p): Consider - strict_aligned_p field. - (nds32_expand_to_rtl_hook): New function. - (TARGET_EXPAND_TO_RTL_HOOK): Define. - * config/nds32/nds32.h (machine_function): Add strict_aligned_p field. - -2018-04-08 Kito Cheng - Chung-Ju Wu - - * config.gcc (nds32*-*-*): Check that n7 is valid to --with-cpu. - * config/nds32/nds32-n7.md: New file. - * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N7. - * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n7 - pipeline. - * config/nds32/nds32-protos.h: More declarations for n7 pipeline. - * config/nds32/nds32.md (pipeline_model): Add n7. - * config/nds32/nds32.opt (mcpu): Support n7 pipeline cpus. - * config/nds32/pipelines.md: Include n7 settings. - -2018-04-08 Kito Cheng - Chung-Ju Wu - - * config.gcc (nds32*-*-*): Check that e8 is valid to --with-cpu. - * config/nds32/nds32-e8.md: New file. - * config/nds32/nds32-opts.h (nds32-cpu_type): Add CPU_E8. - * config/nds32/nds32-pipelines-auxiliary.c: Implementation for e8 - pipeline. - * config/nds32/nds32-protos.h: More declarations for e8 pipeline. - * config/nds32/nds32.md (pipeline_model): Add e8. - * config/nds32/nds32.opt (mcpu): Support e8 pipeline cpus. - * config/nds32/pipelines.md: Include e8 settings. - -2018-04-08 Kito Cheng - Chung-Ju Wu - - * config.gcc (nds32*-*-*): Check that n6/n8/s8 are valid to --with-cpu. - * config/nds32/nds32-n8.md: New file. - * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N6 and CPU_N8. - * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n8 - pipeline. - * config/nds32/nds32-protos.h: More declarations for n8 pipeline. - * config/nds32/nds32-utils.c: More implementations for n8 pipeline. - * config/nds32/nds32.md (pipeline_model): Add n8. - * config/nds32/nds32.opt (mcpu): Support n8 pipeline cpus. - * config/nds32/pipelines.md: Include n8 settings. - -2018-04-08 Kito Cheng - Chung-Ju Wu - - * config.gcc (nds32*): Add nds32-utils.o into extra_objs. - * config/nds32/nds32-n9-2r1w.md: New file. - * config/nds32/nds32-n9-3r2w.md: New file. - * config/nds32/nds32-opts.h (nds32_cpu_type, nds32_mul_type, - nds32_register_ports): New or modify for cpu n9. - * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n9 - pipeline. - * config/nds32/nds32-protos.h: More declarations for n9 pipeline. - * config/nds32/nds32-utils.c: New file. - * config/nds32/nds32.h (TARGET_PIPELINE_N9, TARGET_PIPELINE_SIMPLE, - TARGET_MUL_SLOW): Define. - * config/nds32/nds32.md (pipeline_model): New attribute. - * config/nds32/nds32.opt (mcpu, mconfig-mul, mconfig-register-ports): - New options that support cpu n9. - * config/nds32/pipelines.md: Include n9 settings. - * config/nds32/t-nds32 (nds32-utils.o): Add dependency. - -2018-04-08 Chung-Ju Wu - - * config/nds32/nds32-md-auxiliary.c (output_cond_branch): Output align - information if necessary. - (output_cond_branch_compare_zero): Likewise. - * config/nds32/nds32.c (nds32_adjust_insn_length): Consider align case. - (nds32_target_alignment): Refine for alignment. - * config/nds32/nds32.h (NDS32_ALIGN_P): Define. - (FUNCTION_BOUNDARY): Modify. - * config/nds32/nds32.md (call_internal, call_value_internal): Consider - align case. - * config/nds32/nds32.opt (malways-align, malign-functions): New. - -2018-04-08 Monk Chiang - - * config/nds32/constants.md (unspec_volatile_element): Add values for - TLB operation and data prefetch. - * config/nds32/nds32-intrinsic.c: Implementation of intrinsic - functions for TLB operation and data prefetch. - * config/nds32/nds32-intrinsic.md: Likewise. - * config/nds32/nds32_intrinsic.h: Likewise. - * config/nds32/nds32.c (nds32_dpref_names): Likewise. - (nds32_print_operand): Likewise. - * config/nds32/nds32.h (nds32_builtins): Likewise. - -2018-04-07 Thomas Koenig - Andrew Pinski - - PR middle-end/82976 - * match.pd: Use constant_boolean_node of correct type instead of - boolean_true_node or boolean_false_node for simplifying - pointer comparisons to zero. - -2018-04-07 Jakub Jelinek - - PR tree-optimization/80021 - * tree.c (verify_type_variant): Make error call in verify_variant_match - translatable and remove final full stop. - -2018-04-07 Chung-Ju Wu - - * config/nds32/constants.md (unspec_volatile_element): Add - UNSPEC_VOLATILE_EH_RETURN. - * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push, - nds32_output_stack_pop): Support dwarf exception handling process. - * config/nds32/nds32-protos.h (nds32_dynamic_chain_address): Declare. - * config/nds32/nds32.c (nds32_init_machine_status): Support dwarf - exception handling process. - (nds32_compute_stack_frame): Likewise. - (nds32_return_addr_rtx): Likewise. - (nds32_initial_elimination_offset): Likewise. - (nds32_expand_prologue): Likewise. - (nds32_expand_epilogue): Likewise. - (nds32_dynamic_chain_address): New function. - * config/nds32/nds32.h (machine_function): Add fields for dwarf - exception handling. - (DYNAMIC_CHAIN_ADDRESS): Define. - (EH_RETURN_DATA_REGNO): Define. - (EH_RETURN_STACKADJ_RTX): Define. - * config/nds32/nds32.md (eh_return, nds32_eh_return): Implement - patterns for dwarf exception handling. - -2018-04-07 Chung-Ju Wu - - * config/nds32/nds32.h: Clean up obsolete macros. - -2018-04-07 Monk Chiang - - * config/nds32/constants.md (unspec_element, unspec_volatile_element): - Add enum values for particular instructions. - * config/nds32/nds32-intrinsic.c: Implementation of expanding - particular intrinsic functions. - * config/nds32/nds32-intrinsic.md: Likewise. - * config/nds32/nds32_intrinsic.h: Likewise. - * config/nds32/nds32.h (nds32_builtins): Likewise. - * config/nds32/nds32.md (type): Add pbsad and pbsada. - (btst, ave): New patterns for particular instructions. - -2018-04-07 Monk Chiang - - * config/nds32/constants.md (unspec_element, unspec_volatile_element): - Add enum values for atomic load/store and memory sync. - * config/nds32/nds32-intrinsic.c: Implementation for atomic load/store - and memory sync. - * config/nds32/nds32-intrinsic.md: Likewise. - * config/nds32/nds32_intrinsic.h: Likewise. - * config/nds32/nds32.h (nds32_builtins): Likewise. - -2018-04-07 Jakub Jelinek - - PR tree-optimization/85257 - * fold-const.c (native_encode_vector): If not all elts could fit - and off is -1, return 0 rather than offset. - * tree-ssa-sccvn.c (vn_reference_lookup_3): Pass - (offseti - offset2) / BITS_PER_UNIT as 4th argument to - native_encode_expr. Verify len * BITS_PER_UNIT >= maxsizei. Don't - adjust buffer in native_interpret_expr call. - -2018-04-07 Monk Chiang - - * config/nds32/constants.md (unspec_volatile_element): Add cache - control enum values. - * config/nds32/nds32-intrinsic.c: Add cache control expand functions. - * config/nds32/nds32-intrinsic.md: Add cache control patterns. - * config/nds32/nds32.c (nds32_cctl_names): New. - (nds32_print_operand): Handle cache control register names. - * config/nds32/nds32.h (nds32_builtins): New enum values. - * config/nds32/nds32_intrinsic.h: Add cache control enum types and - macros. - * config/nds32/nds32.md (type): Add mmu. - * config/nds32/pipelines.md (simple_insn): Add mmu. - -2018-04-07 Chung-Ju Wu - - * config/nds32/nds32.md (type): Remove call. - * config/nds32/pipelines.md (simple_insn): Likewise. - -2018-04-07 Monk Chiang - - * config/nds32/constants.md (unspec_volatile_element): Add - UNSPEC_VOLATILE_FMFCSR, UNSPEC_VOLATILE_FMTCSR and - UNSPEC_VOLATILE_FMFCFG. - * config/nds32/nds32-intrinsic.c (bdesc_noarg): New builtin - description for fmfcfg and fmfcsr. - (bdesc_1arg): Add fmtcsr. - (bdesc_2arg): Add fcpynss, fcpyss, fcpynsd and fcpysd. - (nds32_expand_builtin_impl): Deal with FPU intrinsic functions. - * config/nds32/nds32-intrinsic.md (unspec_fcpynsd, unspec_fcpysd, - unspec_fcpynss, unspec_fcpysd, unspec_fcpyss, unspec_fmfcsr, - unspec_fmfcfg): New patterns. - * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FMFCFG, - NDS32_BUILTIN_FMFCSR, NDS32_BUILTIN_FMTCSR, NDS32_BUILTIN_FCPYNSS, - NDS32_BUILTIN_FCPYSS,NDS32_BUILTIN_FCPYNSD and NDS32_BUILTIN_FCPYSD. - * config/nds32/nds32_intrinsic.h (__nds32__fcpynsd, __nds32__fcpynss, - __nds32__fcpysd, __nds32__fcpyss, __nds32__fmfcsr, __nds32__fmtcsr, - __nds32__fmfcfg): Define. - -2018-04-07 Monk Chiang - - * config/nds32/nds32.c (nds32_intrinsic_register_names): Add more - intrinsic register names. - * config/nds32/nds32_intrinsic.h (nds32_intrinsic_registers): Add more - intrinsic register enum values and macros. - -2018-04-07 Chung-Ju Wu - - * config/nds32/nds32.c (nds32_legitimate_index_p): Modify condition - for load/store addressing form. - (nds32_print_operand_address): Likewise. - -2018-04-06 Eric Botcazou - - PR target/85196 - * config/sparc/sparc.c (sparc_expand_move): Deal with symbolic operands - based on LABEL_REF. Remove useless assertion. - (pic_address_needs_scratch): Fix formatting. - (sparc_legitimize_pic_address): Minor tweaks. - (sparc_delegitimize_address): Adjust assertion accordingly. - * config/sparc/sparc.md (movsi_pic_label_ref): Change label_ref_operand - into symbolic_operand. - (movsi_high_pic_label_ref): Likewise. - (movsi_lo_sum_pic_label_ref): Likewise. - (movdi_pic_label_ref): Likewise. - (movdi_high_pic_label_ref): Likewise. - (movdi_lo_sum_pic_label_ref): Likewise. - -2018-04-06 Amaan Cheval - - * config.gcc (x86_64-*-rtems*): Add rtems.h to tm_file for - custom LIB_SPEC setup. - -2018-04-06 Ruslan Bukin - Kito Cheng - - * config.gcc (riscv*-*-freebsd*): Add RISC-V FreeBSD support. - * config/riscv/freebsd.h: New. - -2018-04-06 Chung-Ju Wu - - * config/nds32/nds32.c (nds32_adjust_insn_length): Refine. - * config/nds32/nds32.h (ADJUST_INSN_LENGTH): Change the location in - file. - -2018-04-06 Chung-Ju Wu - Kito Cheng - - * config/nds32/nds32-md-auxiliary.c (nds32_output_return, - nds32_output_call, nds32_symbol_binds_local_p): New functions. - * config/nds32/nds32-protos.h (nds32_output_call, - nds32_output_return): Declare. - * config/nds32/nds32.md: Refine all the call and return patterns. - -2018-04-06 Jakub Jelinek - - PR debug/85252 - * dwarf2out.c (rtl_for_decl_init): For STRING_CST initializer only - build CONST_STRING if TYPE_MAX_VALUE is non-NULL and is INTEGER_CST. - - PR rtl-optimization/84872 - * cfgloopmanip.c (create_preheader): Use make_forwarder_block even if - nentry == 1 when CP_FALLTHRU_PREHEADERS and single_entry is - EDGE_CROSSING edge. - -2018-04-06 Tamar Christina - - * expr.c (copy_blkmode_to_reg): Revert 254862. - * doc/sourcebuild.texi (word_mode_no_slow_unalign): Likewise. - -2018-04-06 Richard Biener - - PR middle-end/85244 - * tree-dfa.c (get_ref_base_and_extent): Reset seen_variable_array_ref - after seeing a component reference with an adjacent field. Treat - refs to arrays at struct end of external decls similar to - refs to unconstrained commons. - -2018-04-06 Jakub Jelinek - - PR sanitizer/85213 - * fold-const.c (twoval_comparison_p): Remove SAVE_P argument and don't - look through SAVE_EXPRs with non-side-effects argument. Adjust - recursive calls. - (fold_comparison): Adjust twoval_comparison_p caller, don't handle - save_p here. - -2018-04-06 Richard Biener - - PR middle-end/85180 - * alias.c (find_base_term): New wrapper around find_base_term - unwinding CSELIB_VAL_PTR changes. - (find_base_term): Do not restore CSELIB_VAL_PTR during the - recursion. - -2018-04-06 Andreas Krebbel - - * config/s390/s390.c (s390_z10_optimize_cmp): Expand dedicated NOP - instructions. - * config/s390/s390.md (UNSPECV_NOP_LR_0, UNSPECV_NOP_LR_1): New - constant definitions. - ("nop"): lr 0,0 -> nopr r0 - ("nop_lr0", "nop_lr1"): New insn definitions. - -2018-04-06 Chung-Ju Wu - - * config/nds32/nds32.md (*stack_push, *stack_pop): Use - NDS32_V3PUSH_AVAILABLE_P macro. - -2018-04-06 Monk Chiang - Chung-Ju Wu - - * config.gcc (nds32*-*-*): Add v2j v3f v3s checking. - (nds32*-*-*): Add float and fpu_config into supported_defaults. - * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS): - Include TARGET_DEFAULT_FPU_ISA and TARGET_DEFAULT_FPU_FMA. - * config/nds32/constants.md (unspec_element): Add UNSPEC_COPYSIGN, - UNSPEC_FCPYNSD, UNSPEC_FCPYNSS, UNSPEC_FCPYSD and UNSPEC_FCPYSS. - * config/nds32/constraints.md: New constraints and checking for hard - float configuration. - * config/nds32/iterators.md: New mode iterator and attribute for hard - float configuration. - * config/nds32/nds32-doubleword.md: Use hard float alternatives and - patterns. - * config/nds32/nds32-fpu.md: New file. - * config/nds32/nds32-md-auxiliary.c: New functions and checkings to - deal with hard float code generation. - * config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3F and - ARCH_V3S. - (abi_type, float_reg_number): New enum type. - * config/nds32/nds32-predicates.c: New predicates for hard float. - * config/nds32/nds32-protos.h: Declare functions for hard float. - * config/nds32/nds32.c: Implementation for hard float configuration. - * config/nds32/nds32.h: Definitions for hard float configuration. - * config/nds32/nds32.md: Include hard float machine description and - modify patterns for hard float configuration. - * config/nds32/nds32.opt: New options for hard float configuration. - * config/nds32/predicates.md: New predicates for hard float - configuration. - -2018-04-06 Kuan-Lin Chen - - * common/config/nds32/nds32-common.c - (nds32_option_optimization_table): Enable -mreleax-hint by default. - -2018-04-05 Jakub Jelinek - - PR middle-end/85195 - * match.pd (BIT_FIELD_REF CONSTRUCTOR@0 @1 @2): Use view_convert around - CONSTRUCTOR_ELT (ctor, ...)->value. - -2018-04-05 Uros Bizjak - - PR target/85193 - * config/i386/i386.md (define_attr "memory"): Handle rotate1 type. - -2018-04-05 Tom de Vries - - PR target/85204 - * config/nvptx/nvptx.c (nvptx_single): Fix neutering of bb with only - cond jump. - -2018-04-05 Shiva Chen - Kito Cheng - - * config/nds32/constraints.md (U33): Fine-tune checking condition. - * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Ditto. - * config/nds32/nds32.h (nds32_16bit_address_type): Add - ADDRESS_POST_MODIFY_LO_REG_IMM3U. - -2018-04-05 Shiva Chen - Kito Cheng - - * config/nds32/constraints.md (Ufe): New memory constraint. - * config/nds32/nds32-md-auxiliary.c (nds32_mem_format, - nds32_output_16bit_load): Consider r8 register for lwi45.fe format. - * config/nds32/nds32.c (nds32_print_operand): Output lwi45.fe - operands. - * config/nds32/nds32.h (nds32_16bit_address_type): Add ADDRESS_R8_IMM7U. - * config/nds32/nds32.md (*mov): Adjust pattern. - -2018-04-05 Chung-Ju Wu - - * config/nds32/nds32.md: Use optimize_size in the condition for - alu-shift instructions. - -2018-04-05 Chung-Ju Wu - - * config/nds32/nds32.md (divsi4, udivsi4): New patterns. - -2018-04-05 Chung-Ju Wu - - * config/nds32/nds32.md (negsi2): Refine pattern. - -2018-04-05 Kito Cheng - Chung-Ju Wu - - * config/nds32/iterators.md (shift_rotate): New code iterator. - (shift): New code attribute. - * config/nds32/nds32-md-auxiliary.c (nds32_expand_constant): New. - * config/nds32/nds32-protos.h (nds32_expand_constant): Declare. - * config/nds32/nds32.c (nds32_print_operand): Deal with more cases. - * config/nds32/nds32.md (addsi3, *add_srli): Refine implementation for - bit-wise operations. - (andsi3, *andsi3): Ditto. - (iorsi3, *iorsi3, *or_slli, *or_srli): Ditto. - (xorsi3, *xorsi3, *xor_slli, *xor_srli): Ditto. - (si3, *ashlsi3, *ashrsi3, *lshrsi3, *rotrsi3): Ditto. - * config/nds32/predicates.md (nds32_rimm5u_operand, nds32_and_operand, - nds32_ior_operand, nds32_xor_operand): New predicates. - -2018-04-05 Chung-Ju Wu - - * config/nds32/nds32.md (add3, sub3): Rename to ... - (addsi3, subsi3): ... this. - -2018-04-05 Chung-Ju Wu - - * config/nds32/nds32.md (*sub_srli, *and_slli): Fine-tune predicator. - -2018-04-05 Chung-Ju Wu - - * config/nds32/nds32.md: Adjust indention. - -2018-04-05 Kito Cheng - - * config/nds32/nds32.md (feature): New attribute. - -2018-04-05 Chung-Ju Wu - - * config/nds32/nds32.md (subtype): New attribute. - -2018-04-04 Thomas Preud'homme - - PR target/85203 - * config/arm/arm-builtins.c (arm_expand_builtin): Change - expansion to perform a bitwise AND of the argument followed by a - boolean negation of the result. - -2018-04-04 Peter Bergner - - PR rtl-optimization/84878 - * ddg.c (add_cross_iteration_register_deps): Use DF_REF_BB to determine - the basic block. Assert the use reference is not artificial and that - it has an associated insn. - -2018-04-04 Michael Matz - - * builtins.c (compute_objsize): Pass correct operand - to array_at_struct_end_p. - -2018-04-04 Richard Biener - - PR lto/85176 - * dwarf2out.c (dwarf2out_register_external_die): Peel namespaces - from contexts for DINFO_LEVEL_TERSE and below. - -2018-04-04 Kito Cheng - - * config/nds32/nds32-doubleword.md (move_): Require - resiter_operand condition. - * config/nds32/nds32.md (*move): Ditto. - -2018-04-04 Kito Cheng - Monk Chiang - - * config/nds32/nds32.md (movmisalign): New pattern. - -2018-04-04 Chung-Ju Wu - - * config/nds32/nds32.md (movqi, movhi): Merge into mov. - -2018-04-04 Chung-Ju Wu - Kito Cheng - - * config/nds32/nds32-md-auxiliary.c (nds32_inverse_cond_code, - nds32_cond_code_str, output_cond_branch, - output_cond_branch_compare_zero, nds32_expand_cbranch, - nds32_expand_cstore, nds32_expand_movcc, - nds32_output_cbranchsi4_equality_zero, - nds32_output_cbranchsi4_equality_reg, - nds32_output_cbranchsi4_equality_reg_or_const_int, - nds32_output_cbranchsi4_greater_less_zero: New functions. - * config/nds32/nds32-protos.h (nds32_expand_cbranch, - nds32_expand_cstore, nds32_expand_movcc, - nds32_output_cbranchsi4_equality_zero, - nds32_output_cbranchsi4_equality_reg, - nds32_output_cbranchsi4_equality_reg_or_const_int, - nds32_output_cbranchsi4_greater_less_zero): Declare. - * config/nds32/predicates.md (nds32_movecc_comparison_operator, - nds32_rimm11s_operand): New predicates. - * config/nds32/nds32.h (nds32_expand_result_type): New enum type. - * config/nds32/nds32.md: Rewrite all the branch and conditional move - patterns. - -2018-04-04 Kito Cheng - - * config/nds32/nds32-doubleword.md: Refine all the instruction type. - * config/nds32/nds32.md: Ditto. - * config/nds32/pipelines.md: Ditto. - -2018-04-04 Richard Biener - - PR tree-optimization/85168 - * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Avoid - propagating abnormals. - -2018-04-04 Chung-Ju Wu - - * config/nds32/nds32.md (enabled): Use yes/no for this attribute. - -2018-04-04 Chung-Ju Wu - Kito Cheng - - * config/nds32/nds32-md-auxiliary.c (nds32_long_call_p): New function. - * config/nds32/nds32-protos.h (nds32_long_call_p): Declare. - * config/nds32/nds32.c (nds32_function_ok_for_sibcall): New function. - (TARGET_FUNCTION_OK_FOR_SIBCALL): Define. - * config/nds32/nds32.md (sibcall_internal): New. - (sibcall_register): Remove. - (sibcall_immediate): Remove. - (sibcall_value_internal): New. - (sibcall_value_register): Remove. - (sibcall_value_immediate): Remove. - * config/nds32/predicates.md (nds32_general_register_operand): New. - (nds32_call_address_operand): New. - -2018-04-03 Jakub Jelinek - - PR rtl-optimization/85167 - * shrink-wrap.c (move_insn_for_shrink_wrap): Don't set bb_uses and - bb_defs if *split_p, instead preinitialize it to NULL. - - PR tree-optimization/85156 - * builtins.c (fold_builtin_expect): Use save_expr on arg1 to avoid - evaluating the argument multiple times. - -2018-04-03 Bill Schmidt - - * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Use __vector rather - than vector. - (_mm_cvtpd_ps): Likewise. - (_mm_cvttpd_epi32): Likewise. - * config/rs6000/mmintrin.h (_mm_unpacklo_pi8): Likewise. - * config/rs6000/xmmintrin.h: For strict-ANSI C++ or C11, undefine - vector, pixel, and bool following altivec.h include. - -2018-04-03 Martin Sebor - - * doc/extend.texi (Common Function Attributes): Clarify. - (const attribute): Likewise. - (pure attribute): Likewise. - -2018-04-03 Jakub Jelinek - - PR target/85169 - * config/i386/i386.c (ix86_expand_vector_set): Use - HOST_WIDE_INT_1U << elt instead of 1 << elt. Formatting fix. - -2018-04-03 Uros Bizjak - - * config/i386/i386.c (emit_i387_cw_initialization): Always use logic - instructions when changing rounding bits to preserve precision bits - in the x87 control word. - -2018-04-03 Martin Liska - - PR tree-optimization/82491 - * rtl.h (strip_offset_and_add): Replace += suboffset with - poly_uint64 () + suboffset. - -2018-03-29 Martin Liska - Martin Jambor - - PR ipa/84947 - * ipa-cp.c (propagate_bits_across_jump_function): Bail out if - param_type is not an integral or pointer type. - -2018-04-03 Richard Biener - - * sese.h (recompute_all_dominators): Remove. - -2018-04-02 Martin Sebor - - * doc/invoke.texi (-Wrestrict): Fix typos. - -2018-04-02 Jim Wilson - - * config/riscv/riscv.h (SHIFT_COUNT_TRUNCATED): Set to zero. - * config/riscv/riscv.md (si3): Use QImode shift count. - (di3, si3_extend): Likewise. - (si3_mask, si3_mask_1): New. - (di3_mask, di3_mask_1): New. - (si3_extend_mask, si3_extend_mask_1): New. - (lshrsi3_zero_extend_1): Use VOIDmode shift count. - * config/riscv/sync.md (atomic_test_and_set): Emit QImode shift count. - -2018-04-02 Gerald Pfeifer - - * doc/cpp.texi (Variadic Macros): Fix line continuation in an - example. - -2018-04-02 Chung-Ju Wu - - * config/nds32/nds32.c (TARGET_CANONICALIZE_COMPARISON): Define. - (nds32_canonicalize_comparison): New function. - -2018-04-01 Chung-Ju Wu - Kito Cheng - Kuan-Lin Chen - - * config.gcc (nds32): Add nds32-relax-opt.o into extra_objs. - * config/nds32/constants.md (unspec_volatile_element): Add - UNSPEC_VOLATILE_RELAX_GROUP. - * config/nds32/nds32-relax-opt.c: New file. - * config/nds32/nds32-predicates.c - (nds32_symbol_load_store_p): New function. - * config/nds32/nds32-protos.h - (nds32_symbol_load_store_p): Declare function. - (make_pass_nds32_relax_opt): Declare new rtl pass function. - * config/nds32/nds32.c - (nds32_register_pass): New function to register pass. - (nds32_register_passes): New function to register passes. - * config/nds32/nds32.md (relax_group): New pattern. - * config/nds32/nds32.opt (mrelax-hint): New option. - * config/nds32/t-nds32 (nds32-relax-opt.o): New dependency. - -2018-04-01 Kito Cheng - - * config/nds32/t-nds32: Modify files dependency. - -2018-04-01 Chung-Ju Wu - - * config/nds32/nds32.h (FUNCTION_PROFILER): Output newline character. - (PROFILE_HOOK): Define its implementation. - -2018-04-01 Chung-Ju Wu - - * config/nds32/nds32.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use unsigned int - type and 32-bit size. - -2018-04-01 Jakub Jelinek - - PR middle-end/85090 - * config/i386/sse.md (V): Add V64QI and V32HI for TARGET_AVX512F. - (V_128_256): New mode iterator. - (*avx512dq_vextract64x2_1 splitter): New define_split. - (*avx512f_vextract32x4_1 splitter): Likewise. - (xop_pcmov_): Use V_128_256 mode iterator instead - of V. - * config/i386/i386.c (ix86_expand_vector_set): Improve V32HImode and - V64QImode expansion for !TARGET_AVX512BW && TARGET_AVX512F. - -2018-03-31 Segher Boessenkool - - PR target/83315 - * config/rs6000/xmmintrin.h (_mm_set_ps, _mm_max_ps): Handle (quiet) - NaN inputs correctly. - -2018-03-30 Peter Bergner - - PR target/80546 - * config/rs6000/vsx.md (??r): New mode attribute. - (*vsx_mov_64bit): Use it. - (*vsx_mov_32bit): Likewise. - -2018-03-30 Martin Sebor - - PR tree-optimization/84818 - * builtins.c (check_access): Use warning_n. - -2018-03-30 Aaron Sawdey - - PR target/83822 - * config/rs6000/rs6000-string.c (expand_compare_loop): Fix redundant - condition. - * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Fix redundant - condition. - -2018-03-30 Julia Koval - - PR target/84413 - * x86-tune.def (movx, partial_reg_dependency): Enable for - m_SKYLAKE_AVX512. - -2018-03-29 Vladimir Makarov - - PR inline-asm/84985 - * lra-constraints.c (process_alt_operands): Move setting - this_alternative_matches below. - -2018-03-29 Martin Liska - - PR lto/84995. - * doc/invoke.texi: Document how LTO works with debug info. - Describe auto-load support of binutils. Mention 'x86-64' - as valid option value of -march option. - -2018-03-29 Jakub Jelinek - - * config/i386/sse.md (_blendm): Use . - - PR c/85094 - * fold-const.c (operand_equal_p): Handle DEBUG_BEGIN_STMT. - For STATEMENT_LIST, pass down OEP_LEXICOGRAPHIC and maybe - OEP_NO_HASH_CHECK for recursive call, to avoid exponential - checking. - -2018-03-28 Peter Bergner - - PR target/84912 - * config/rs6000/rs6000.h (RS6000_BTM_POWERPC64): New define. - (RS6000_BTM_COMMON): Add RS6000_BTM_POWERPC64. - * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add support - for RS6000_BTM_POWERPC64. - (rs6000_invalid_builtin): Add handling for RS6000_BTM_POWERPC64 - (rs6000_builtin_mask_names): Add RS6000_BTM_POWERPC64. - * config/rs6000/rs6000-builtin.def (BU_P7_POWERPC64_MISC_2): New macro - definition. - (DIVDE): Use it. - (DIVDEU): Likewise. - -2018-03-28 Carl Love - - Revert - 2017-09-27 Carl Love - - * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro. - (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins. - * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the - fctiw instruction. - -2018-03-28 Bill Schmidt - - * config/rs6000/xmmintrin.h (_mm_max_pi16): Use __vector __bool - instead of __vector bool. - (_mm_max_pu8): Likewise. - (_mm_min_pi16): Likewise. - -2018-03-28 Peter Bergner - - PR target/84912 - * config/rs6000/rs6000-builtin.def (DIVWEO): Delete macro expansion. - (DIVWEUO): Likewise. - (DIVDEO): Likewise. - (DIVDEUO): Likewise. - * config/rs6000/rs6000.c (builtin_function_type): Remove support for - DIVWEUO and DIVDEUO. - * config/rs6000/rs6000.md (UNSPEC_DIVEO, UNSPEC_DIVEUO): Delete unspecs. - (UNSPEC_DIV_EXTEND): Remove deleted unspecs. - (div_extend): Likewise. - * doc/extend.texi (__builtin_divweo): Remove documentation for deleted - builtin function. - (__builtin_divweuo): Likewise. - (__builtin_divdeo): Likewise. - (__builtin_divdeuo): Likewise. - -2018-03-28 Jakub Jelinek - - PR target/85095 - * config/i386/i386.md (*add3_carry_0, *addsi3_carry_zext_0, - *sub3_carry_0, *subsi3_carry_zext_0): New patterns. - - PR tree-optimization/82004 - * gimple-match-head.c (optimize_pow_to_exp): New function. - * match.pd (pow(C,x) -> exp(log(C)*x)): Wrap with #if GIMPLE. - Don't fold to exp if optimize_pow_to_exp is false. - -2018-03-28 Martin Liska - - PR other/84819 - * calls.c (initialize_argument_information): Fix trailing space. - * common.opt: Fix typo and provide better explanation for - -fsanitize-coverage option. - * config/i386/i386.opt: Fix typo. - -2018-03-28 Jakub Jelinek - Martin Liska - - PR sanitizer/85081 - * gimplify.c (asan_poison_variable): Don't do the check for - gimplify_omp_ctxp here. - (gimplify_decl_expr): Do it here. - (gimplify_target_expr): Likewise. - -2018-03-28 Martin Liska - - PR target/84988 - * config/i386/i386.c (ix86_function_arg_advance): Do not call - chkp_type_bounds_count if MPX is not enabled. - -2018-03-27 Chung-Ju Wu - - * config/nds32/nds32.h (BRANCH_COST): Adjust cost. - -2018-03-27 Michael Meissner - - PR target/84914 - * config/rs6000/rs6000.c (create_complex_muldiv): New helper - function to create the function decl for complex long double - multiply and divide for -mabi=ieeelongdouble. - (init_float128_ieee): Call it. - -2018-03-27 H.J. Lu - - PR target/85044 - * config/i386/i386.c (ix86_trampoline_init): Insert ENDBR for - -fcf-protection=branch -mibt. - * config/i386/i386.h (TRAMPOLINE_SIZE): Increased by 4 bytes. - -2018-03-27 Ramana Radhakrishnan - - PR target/81863 - * config/arm/arm.c (arm_valid_symbolic_address): Handle - arm_word_relocations. - -2018-03-27 Cesar Philippidis - - PR target/85056 - * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Add '[]' to - extern array declarations. - -2018-03-27 Richard Biener - - PR middle-end/84067 - * match.pd ((A * C) +- (B * C) -> (A+-B) * C): Guard with - explicit single_use checks. - -2018-03-27 Richard Biener - - PR tree-optimization/85082 - * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_for_pieces): - Valueize the VUSE. - -2018-03-27 Ramana Radhakrishnan - - * config.gcc (aarch64*-*-linux*): New TARGET_DEFAULT_ASYNC_UNWIND_TABLES - * common/config/aarch64/aarch64-common.c (aarch64_optimization_table[]): - Turn on fasynchronous-unwind-tables and funwind-tables. - -2018-03-26 Uros Bizjak - - PR target/85073 - * config/i386/i386.md (*bmi_blsr__cmp): New insn pattern. - (*bmi_blsr__ccz): Ditto. - -2018-03-26 Tom de Vries - - PR tree-optimization/85063 - * omp-general.c (offloading_function_p): New function. Factor out - of ... - * omp-offload.c (pass_omp_target_link::gate): ... here. - * omp-general.h (offloading_function_p): Declare. - * tree-switch-conversion.c (build_one_array): Mark CSWTCH.x variable - with attribute omp declare target for offloading functions. - -2018-03-24 Richard Sandiford - - PR tree-optimization/84005 - * tree-data-ref.h (get_base_for_alignment): Declare. - * tree-data-ref.c (get_base_for_alignment_1): New function. - (get_base_for_alignment): Likewise. - * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use - get_base_for_alignment to find a suitable base object, instead - of always using drb->base_address. - -2018-03-23 Jakub Jelinek - - PR inline-asm/85022 - * emit-rtl.c (init_emit_regs): Indicate that VOIDmode MEMs don't have - known size by default. - -2018-03-23 Vladimir Makarov - - PR inline-asm/85030 - * lra-constraints.c (process_alt_operands): Don't match BLKmode - and non BLKmode operands. - -2018-03-23 Kyrylo Tkachov - - PR target/85026 - * config/arm/arm.md (unaligned_loadhis): Remove first alternative. - Clean up attributes. - -2018-03-23 Richard Biener - - PR debug/85020 - * dwarf2out.c (rtl_for_decl_location): Do not generate RTL early when - we are going to emit early debug for LTO. - -2018-03-23 Jakub Jelinek - - PR inline-asm/85034 - * function.c (match_asm_constraints_1): Don't optimize if input - doesn't satisfy general_operand predicate for output's mode. - - PR inline-asm/85022 - * alias.c (write_dependence_p): Don't require for x_canonicalized - non-VOIDmode if x has VOIDmode. - - PR sanitizer/85029 - * sanopt.c (maybe_optimize_ubsan_ptr_ifn): If DECL_REGISTER (base), - just don't try to optimize it rather than assert it never happens. - -2018-03-22 Kelvin Nilsen - - * config/rs6000/rs6000-builtin.def: Remove various BU_ALTIVEC_X - macro expansions for definition of ST_INTERNAL_ and - LD_INTERNAL_ builtins. - * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): - Remove prototype. - * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Delete this - function. - (altivec_expand_st_builtin): Likewise. - (altivec_expand_builtin): Remove calls to deleted functions. - (rs6000_address_for_altivec): Delete this function. - * config/rs6000/vector.md: Remove expands for - vector_altivec_load_ and vector_altivec_store_. - -2018-03-22 Sudakshina Das - - PR target/84826 - * config/arm/arm.h (machine_function): Add static_chain_stack_bytes. - * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Avoid - re-computing once computed. - (arm_expand_prologue): Compute machine->static_chain_stack_bytes. - (arm_init_machine_status): Initialize - machine->static_chain_stack_bytes. - -2018-03-22 Kelvin Nilsen - - PR target/84760 - * doc/extend.texi: Add four new prototypes for vec_ld. - * config/rs6000/rs6000-builtin.def (LVX_V1TI): Reorder symbol - definitions for more logical presentation. - * config/rs6000/rs6000-c.c: (altivec_overloaded_builtins): Add - entries for V1TI variants of __builtin_altivec_ld builtin. - * config/rs6000/rs6000.c: (altivec_expand_lv_builtin): Add test and - handling of V1TI variant of LVX icode pattern. - (altivec_expand_builtin): Add case for ALTIVEC_BUILTIN_LVX_V1TI. - (rs6000_gimple_fold_builtin): Likewise. - (altivec_init_builtins): Add code to define - __builtin_altivec_lvx_v1ti function. - -2018-03-22 Jakub Jelinek - - PR inline-asm/84941 - * function.c (match_asm_constraints_1): Don't do the optimization - if input isn't a REG, SUBREG, MEM or constant. - -2018-03-22 Tom de Vries - - PR tree-optimization/84956 - * tree-ssa-tail-merge.c (find_clusters_1): Skip bbs with - bb_has_abnormal_pred. - -2018-03-22 Jakub Jelinek - - PR sanitizer/85018 - * dwarf2asm.c (dw2_output_indirect_constant_1): Set - DECL_INITIAL (decl) to decl at the end. - * varasm.c (use_blocks_for_decl_p): Revert the 2018-03-20 change, - adjust the comment. - -2018-03-21 Joseph Myers - - * doc/extend.texi (__builtin_tgmath): Document when complex - integer types are treated as _Complex _Float64. - -2018-03-21 Tom de Vries - - * doc/extend.texi (__builtin_extend_pointer): Remove pasto. - -2018-03-21 Jakub Jelinek - - PR tree-optimization/84960 - * tree-cfg.c (remove_bb): Don't move forced labels into bb->prev_bb - if it is ENTRY block, move them into single succ of ENTRY in that case. - -2018-03-21 Richard Sandiford - - PR tree-optimization/84811 - * poly-int.h (poly_span_traits): Remove the T3 parameter and - promote HOST_WIDE_INT T2 - T1 results to unsigned HOST_WIDE_INT. - (maybe_in_range_p, known_in_range_p, ranges_known_overlap_p): - (known_subrange_p): Update accordingly. Cast each value involved - in the size comparison, rather than casting the result of the - subtraction. - -2018-03-21 Jakub Jelinek - - PR tree-optimization/84982 - * gimple-ssa-store-merging.c (invert_op): Handle boolean inversion - by flipping the least significant bit rather than all bits from - bitpos to bitpos + bitsize - 1. - -2018-03-21 Nathan Sidwell - - * doc/extend.texi (Deprecated Features): Remove mention of - long-deleted deprecations. - -2018-03-21 Rainer Orth - - PR jit/84288 - * configure.ac (gcc_cv_ld_soname) <*-*-solaris2*>: Set. - * configure: Regenerate. - -2018-03-21 Tom de Vries - - PR tree-optimization/83126 - * tree-parloops.c (num_phis): New function. - (gen_parallel_loop): Detect and handle canonicalize_loop_ivs failure. - -2018-03-21 Nathan Sidwell - - * doc/extend.texi (Deprecated Features): Update deprecated flags, - mention anon-struct/union members and trailing attributes. - -2018-03-21 Bin Cheng - - PR tree-optimization/84969 - * tree-loop-distribution.c (fuse_memset_builtins): Don't reorder - builtin memset partitions if they set different rhs values. - -2018-03-21 Jakub Jelinek - - PR rtl-optimization/84989 - * simplify-rtx.c (simplify_unary_operation_1): Don't try to simplify - VEC_DUPLICATE with scalar result mode. - -2018-03-21 Martin Liska - - PR ipa/84963 - * ipa-icf.c (sem_item_optimizer::fixup_points_to_sets): Remove - not intended return statement. - -2018-03-21 Martin Liska - - PR target/84988 - * tree-chkp.c (CHKP_ARRAY_MAX_CHECK_STEPS): Define a new macro. - (chkp_find_bound_slots_1): Limit number of iterations. - -2018-03-20 David H. Gutteridge - - PR target/84838 - * Minor grammar fixes for x86 options. - -2018-03-20 Jakub Jelinek - - PR debug/84875 - * dce.c (delete_unmarked_insns): Don't remove frame related noop moves - holding REG_CFA_RESTORE notes, instead turn them into a USE. - -2018-03-20 Peter Bergner - - PR target/83789 - * config/rs6000/altivec.md (altivec_lvx__2op): Delete define_insn. - (altivec_lvx__1op): Likewise. - (altivec_stvx__2op): Likewise. - (altivec_stvx__1op): Likewise. - (altivec_lvx_): New define_expand. - (altivec_stvx_): Likewise. - (altivec_lvx__2op_): New define_insn. - (altivec_lvx__1op_): Likewise. - (altivec_stvx__2op_): Likewise. - (altivec_stvx__1op_): Likewise. - * config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Use new expanders. - (rs6000_gen_lvx): Likewise. - * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Likewise. - (altivec_expand_stv_builtin): Likewise. - (altivec_expand_builtin): Likewise. - * config/rs6000/vector.md: Likewise. - -2018-03-20 Kyrylo Tkachov - - PR target/82518 - * config/arm/arm.c (arm_array_mode_supported_p): Return false for - BYTES_BIG_ENDIAN. - -2018-03-20 Richard Biener - - PR target/84986 - * config/i386/i386.c (ix86_add_stmt_cost): Only cost - sign-conversions as zero, fall back to standard scalar_stmt - cost for the rest. - -2018-03-20 Martin Liska - - PR ipa/84825 - * predict.c (rebuild_frequencies): Handle case when we have - PROFILE_ABSENT, but flag_guess_branch_prob is false. - -2018-03-20 Jakub Jelinek - - PR target/84990 - * dwarf2asm.c (dw2_output_indirect_constant_1): Temporarily turn off - flag_section_anchors. - * varasm.c (use_blocks_for_decl_p): Remove hack for - dw2_force_const_mem. - - PR target/84845 - * config/aarch64/aarch64.md (*aarch64_reg_3_neg_mask2): Rename - to ... - (*aarch64__reg_3_neg_mask2): ... this. If pseudos can't - be created, use lowpart_subreg of operands[0] rather than operands[0] - itself. - (*aarch64_reg_3_minus_mask): Rename to ... - (*aarch64_ashl_reg_3_minus_mask): ... this. - (*aarch64__reg_di3_mask2): Use const_int_operand predicate - and n constraint instead of aarch64_shift_imm_di and Usd. - (*aarch64_reg__minus3): Rename to ... - (*aarch64__reg_minus3): ... this. - -2018-03-20 Sudakshina Das - - PR target/82989 - * config/arm/neon.md (ashldi3_neon): Update ?s for constraints - to favor GPR over NEON registers. - (di3_neon): Likewise. - -2018-03-20 Tom de Vries - - PR target/84952 - * config/nvptx/nvptx.c (nvptx_single): Don't neuter bar.sync. - (nvptx_process_pars): Emit bar.sync asap and alap. - -2018-03-20 Tom de Vries - - PR target/84954 - * config/nvptx/nvptx.c (prevent_branch_around_nothing): Also update - seen_label if seen_label is already set. - -2018-03-20 Jakub Jelinek - - PR target/84945 - * config/i386/i386.c (fold_builtin_cpu): For features above 31 - use __cpu_features2 variable instead of __cpu_model.__cpu_features[0]. - Use 1U instead of 1. Formatting fixes. - - PR c/84953 - * builtins.c (fold_builtin_strpbrk): For strpbrk(x, "") use type - instead of TREE_TYPE (s1) for the return value. - -2018-03-19 Jakub Jelinek - - PR tree-optimization/84946 - * gimple-ssa-store-merging.c (mem_valid_for_store_merging): Compute - bitsize + bitsize in poly_uint64 rather than poly_int64. - - PR sanitizer/78651 - * dwarf2asm.c: Include fold-const.c. - (dw2_output_indirect_constant_1): Set DECL_INITIAL (decl) to ADDR_EXPR - of decl rather than decl itself. - - PR rtl-optimization/84643 - * memmodel.h (enum memmodel): Add MEMMODEL_MAX enumerator. - -2018-03-19 Maxim Ostapenko - - PR sanitizer/78651 - * dwarf2asm.c (dw2_output_indirect_constant_1): Disable ASan before - calling assemble_variable. - -2018-03-19 Sudakshina Das - - PR target/81647 - * config/aarch64/aarch64-simd.md (vec_cmp): Modify - instructions for UNLT, UNLE, UNGT, UNGE, UNEQ, UNORDERED and ORDERED. - -2018-03-19 Jim Wilson - - PR bootstrap/84856 - * config/riscv/riscv.c (riscv_function_arg_boundary): Use - PREFERRED_STACK_BOUNDARY instead of STACK_BOUNDARY. - (riscv_first_stack_step): Likewise. - (riscv_option_override): Use STACK_BOUNDARY instead of - MIN_STACK_BOUNDARY. - * config/riscv/riscv.h (STACK_BOUNDARY): Renamed from - MIN_STACK_BOUNDARY. - (BIGGEST_ALIGNMENT): Set to 128. - (PREFERRED_STACK_BOUNDARY): Renamed from STACK_BOUNDARY. - (RISCV_STACK_ALIGN): Use PREFERRED_STACK_BOUNDARY instead of - STACK_BOUNDARY. - -2018-03-19 Richard Biener - - PR tree-optimization/84933 - * tree-vrp.c (set_and_canonicalize_value_range): Treat out-of-bound - values as -INF/INF when canonicalizing an ANTI_RANGE to a RANGE. - -2018-03-19 Richard Biener - - PR tree-optimization/84859 - * tree-ssa-phiopt.c (single_trailing_store_in_bb): New function. - (cond_if_else_store_replacement): Perform sinking operation on - single-store BBs regardless of MAX_STORES_TO_SINK setting. - Generalize what a BB with a single eligible store is. - -2018-03-19 Richard Biener - - PR tree-optimization/84929 - * tree-data-ref.c (analyze_siv_subscript_cst_affine): Guard - chrec_is_positive against non-chrec arg. - -2018-03-19 Tamar Christina - - PR target/84711 - * config/arm/arm.c (arm_can_change_mode_class): revert r258554. - -2018-03-18 Martin Liska - - PR rtl-optimization/84635 - * regrename.c (build_def_use): Use matches_mode only when - matches >= 0. - -2018-03-18 Richard Sandiford - - PR tree-optimization/84913 - * tree-vect-loop.c (vectorizable_reduction): Don't try to - vectorize chains of COND_EXPRs. - -2018-03-18 Chung-Ju Wu - - * config/nds32/nds32.h (MAX_REGS_PER_ADDRESS): Fix the value. - -2018-03-18 Chung-Ju Wu - - * config/nds32/nds32.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define. - -2018-03-18 Chung-Ju Wu - - * config/nds32/nds32.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. - -2018-03-17 Chung-Ju Wu - Kito Cheng - - * config/nds32/nds32-protos.h (nds32_adjust_reg_alloc_order): Declare. - * config/nds32/nds32.c (nds32_reg_alloc_order_for_speed): New array. - (nds32_adjust_reg_alloc_order): New function. - * config/nds32/nds32.h (ADJUST_REG_ALLOC_ORDER): Define. - -2018-03-17 Kito Cheng - - * config/nds32/nds32.c (nds32_asm_output_mi_thunk, - nds32_print_operand, nds32_print_operand_address): Use - HOST_WIDE_INT_PRINT_DEC instead. - -2018-03-17 Chung-Ju Wu - - * config/nds32/nds32.c (nds32_register_priority): Modify cost. - -2018-03-17 Jakub Jelinek - - PR target/84902 - * config/i386/i386.c (initial_ix86_tune_features, - initial_ix86_arch_features): Use unsigned HOST_WIDE_INT rather than - unsigned long long. - (set_ix86_tune_features): Change ix86_tune_mask from unsigned int - to unsigned HOST_WIDE_INT, initialize to HOST_WIDE_INT_1U << ix86_tune - rather than 1u << ix86_tune. Formatting fix. - (ix86_option_override_internal): Change ix86_arch_mask from - unsigned int to unsigned HOST_WIDE_INT, initialize to - HOST_WIDE_INT_1U << ix86_arch rather than 1u << ix86_arch. - (ix86_function_specific_restore): Likewise. - -2018-03-16 Jakub Jelinek - - PR target/84899 - * postreload.c (reload_combine_recognize_pattern): Perform - INTVAL addition in unsigned HOST_WIDE_INT type to avoid UB and - truncate_int_for_mode the result for the destination's mode. - - PR c/84909 - * hsa-gen.c (mem_type_for_type): Fix comment typo. - * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): - Likewise. - * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset): - Likewise. - -2018-03-16 Vladimir Makarov - - PR target/84876 - * lra-assigns.c (lra_split_hard_reg_for): Don't use - regno_allocno_class_array and sorted_pseudos. - * lra-constraints.c (spill_hard_reg_in_range): Ignore hard regs in - insns where regno is used. - -2018-03-16 Martin Liska - - PR ipa/84833 - * multiple_target.c (create_dispatcher_calls): Redirect - reference in the symbol table. - -2018-03-16 Martin Liska - - PR ipa/84722 - * multiple_target.c (create_dispatcher_calls): Redirect also - an alias. - -2018-03-16 Jakub Jelinek - - PR c++/79937 - PR c++/82410 - * tree.h (TARGET_EXPR_NO_ELIDE): Define. - * gimplify.c (gimplify_modify_expr_rhs): Don't elide TARGET_EXPRs with - TARGET_EXPR_NO_ELIDE flag set unless *expr_p is INIT_EXPR. - -2018-03-16 Julia Koval - - * doc/invoke.texi (Skylake Server): Add CLWB. - Cannonlake): Remove CLWB. - -2018-03-16 Jakub Jelinek - - PR tree-optimization/84841 - * tree-ssa-reassoc.c (INTEGER_CONST_TYPE): Change to 1 << 4 from - 1 << 3. - (FLOAT_ONE_CONST_TYPE): Define. - (constant_type): Return FLOAT_ONE_CONST_TYPE for -1.0 and 1.0. - (sort_by_operand_rank): Put entries with higher constant_type last - rather than first to match comments. - -2018-03-15 Sandra Loosemore - - * config/nios2/nios2.md (movsi_internal): Fix thinko in - split predicate. - -2018-03-15 Jakub Jelinek - - PR c++/79085 - * calls.c (expand_call): For TREE_ADDRESSABLE rettype ignore alignment - check and use address of target always. - -2018-03-15 H.J. Lu - - PR target/84574 - * config/i386/i386.c (indirect_thunk_needed): Update comments. - (indirect_thunk_bnd_needed): Likewise. - (indirect_thunks_used): Likewise. - (indirect_thunks_bnd_used): Likewise. - (indirect_return_needed): New. - (indirect_return_bnd_needed): Likewise. - (output_indirect_thunk_function): Add a bool argument for - function return. - (output_indirect_thunk_function): Don't generate alias for - function return thunk. - (ix86_code_end): Call output_indirect_thunk_function to generate - function return thunks. - (ix86_output_function_return): Set indirect_return_bnd_needed - and indirect_return_needed instead of indirect_thunk_bnd_needed - and indirect_thunk_needed. - -2018-03-15 Olga Makhotina - - * config/i386/sgxintrin.h (_enclv_u32): New intrinsic. - (__enclv_bc, __enclv_cd, __enclv_generic): New definitions. - (ERDINFO, ETRACKC, ELDBC, ELDUC): New leaves. - -2018-03-15 David Malcolm - Paul Hua - - PR c/84852 - * gcc.dg/fixits-pr84852-1.c: Fix filename in dg-regexp. - -2018-03-15 Segher Boessenkool - - * config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add back the - TARGET_DOUBLE_FLOAT and TARGET_SINGLE_FLOAT conditions on the DFmode - resp. SFmode cases. - -2018-03-15 Tamar Christina - - PR target/84711 - * config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE - instead of GET_MODE_SIZE when comparing Units. - -2018-03-15 Vladimir Mezentsev - - PR target/68256 - * varasm.c (hash_section): Return an unchangeble hash value - * config/aarch64/aarch64.c (aarch64_use_blocks_for_constant_p): - Return !aarch64_can_use_per_function_literal_pools_p (). - -2018-03-15 Jakub Jelinek - - PR target/84860 - * optabs.c (emit_conditional_move): Pass address of cmode's copy - rather than address of cmode as last argument to prepare_cmp_insn. - -2018-03-15 Julia Koval - - * config/i386/i386.c (F_AVX512VBMI2, F_GFNI, F_VPCLMULQDQ, - F_AVX512VNNI, F_AVX512BITALG): New. - -2018-03-14 John David Anglin - - PR target/83451 - * config/pa/pa.c (pa_emit_move_sequence): Always emit secondary reload - insn for floating-point loads and stores. - -2018-03-14 Carl Love - - * config/rs6000/rs6000-c.c: Add macro definitions for - ALTIVEC_BUILTIN_VEC_PERMXOR. - * config/rs6000/rs6000.h: Add #define for vec_permxor builtin. - * config/rs6000/rs6000-builtin.def: Add macro expansions for VPERMXOR. - * config/rs6000/altivec.md (altivec_vpermxor): New define expand. - * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Add case - UNSPEC_VPERMXOR. - * config/doc/extend.texi: Add prototypes for vec_permxor. - -2018-03-14 David Malcolm - - PR c/84852 - * diagnostic-show-locus.c (class layout_point): Convert m_line - from int to linenum_type. - (line_span::comparator): Use linenum "compare" function when - comparing line numbers. - (test_line_span): New function. - (layout_range::contains_point): Convert param "row" from int to - linenum_type. - (layout_range::intersects_line_p): Likewise. - (layout::will_show_line_p): Likewise. - (layout::print_source_line): Likewise. - (layout::should_print_annotation_line_p): Likewise. - (layout::print_annotation_line): Likewise. - (layout::print_leading_fixits): Likewise. - (layout::annotation_line_showed_range_p): Likewise. - (struct line_corrections): Likewise for field m_row. - (line_corrections::line_corrections): Likewise for param "row". - (layout::print_trailing_fixits): Likewise. - (layout::get_state_at_point): Likewise. - (layout::get_x_bound_for_row): Likewise. - (layout::print_line): Likewise. - (diagnostic_show_locus): Likewise for locals "last_line" and "row". - (selftest::diagnostic_show_locus_c_tests): Call test_line_span. - * input.c (selftest::test_linenum_comparisons): New function. - (selftest::input_c_tests): Call it. - * selftest.c (selftest::test_assertions): Test ASSERT_GT, - ASSERT_GT_AT, ASSERT_LT, and ASSERT_LT_AT. - * selftest.h (ASSERT_GT): New macro. - (ASSERT_GT_AT): New macro. - (ASSERT_LT): New macro. - (ASSERT_LT_AT): New macro. - -2018-03-14 Segher Boessenkool - - PR rtl-optimization/84780 - * combine.c (distribute_links): Don't make a link based on pc_rtx. - -2018-03-14 Martin Liska - - * tree.c (record_node_allocation_statistics): Use - get_stats_node_kind. - (get_stats_node_kind): New function extracted from - record_node_allocation_statistics. - (free_node): Use get_stats_node_kind. - -2018-03-14 Richard Biener - - * tree-ssa-pre.c (compute_antic_aux): Remove code that asserts - that the value-set of ANTIC_IN doesn't grow. - - Revert - * tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs - member. - (BB_VISITED_WITH_VISITED_SUCCS): New define. - (compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS. - -2018-03-14 Julia Koval - - * config.gcc (icelake-client, icelake-server): New. - (icelake): Remove. - * config/i386/i386.c (initial_ix86_tune_features): Extend to 64 bit. - (initial_ix86_arch_features): Ditto. - (PTA_SKYLAKE): Add SGX. - (PTA_ICELAKE): Remove. - (PTA_ICELAKE_CLIENT): New. - (PTA_ICELAKE_SERVER): New. - (ix86_option_override_internal): Split up icelake on icelake client and - icelake server. - (get_builtin_code_for_version): Ditto. - (fold_builtin_cpu): Ditto. - * config/i386/driver-i386.c (config/i386/driver-i386.c): Ditto. - * config/i386/i386-c.c (ix86_target_macros_internal): Ditto - * config/i386/i386.h (processor_type): Ditto. - * doc/invoke.texi: Ditto. - -2018-03-14 Jakub Jelinek - - PR sanitizer/83392 - * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Handle also - INTEGER_CST offset, add it together with bitpos / 8 and - sign extend based on POINTER_SIZE. - - PR target/84844 - Revert - 2017-04-20 Uros Bizjak - - PR target/78090 - * config/i386/constraints.md (Yc): New register constraint. - * config/i386/i386.md (*float2_mixed): - Use Yc constraint for alternative 2 of operand 0. Remove - preferred_for_speed attribute. - -2018-03-14 Richard Biener - - PR tree-optimization/84830 - * tree-ssa-pre.c (compute_antic_aux): Intersect the new ANTIC_IN - with the old one to avoid oscillations. - -2018-03-13 Vladimir Makarov - - PR target/83712 - * lra-assigns.c (find_all_spills_for): Ignore uninteresting - pseudos. - (assign_by_spills): Return a flag of reload assignment failure. - Do not process the reload assignment failures. Do not spill other - reload pseudos if they has the same reg class. Update n if - necessary. - (lra_assign): Add a return arg. Set up from the result of - assign_by_spills call. - (find_reload_regno_insns, lra_split_hard_reg_for): New functions. - * lra-constraints.c (split_reg): Add a new arg. Use it instead of - usage_insns if it is not NULL. - (spill_hard_reg_in_range): New function. - (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. - * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New - function prototypes. - (lra_assign): Change prototype. - * lra.c (lra): Add code to deal with fails by splitting hard reg - live ranges. - -2018-03-01 Palmer Dabbelt - - * config/riscv/riscv.opt (mrelax): New option. - * config/riscv/riscv.c (riscv_file_start): Emit ".option - "norelax" when riscv_mrelax is disabled. - * doc/invoke.texi (RISC-V): Document "-mrelax" and "-mno-relax". - -2018-03-13 Aaron Sawdey - - PR target/84743 - * config/rs6000/rs6000.c (rs6000_reassociation_width): Disable parallel - reassociation for int modes. - -2018-03-13 Richard Sandiford - - * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): - Reverse the choice between VEC_UNPACK_LO_EXPR and VEC_UNPACK_HI_EXPR - for big-endian. - * config/aarch64/iterators.md (hi_lanes_optab): New int attribute. - * config/aarch64/aarch64-sve.md - (*aarch64_sve_): Rename to... - (aarch64_sve_): ...this. - (*extend2): Rename to... - (aarch64_sve_extend2): ...this. - (vec_unpack__): Turn into a define_expand, - renaming the old pattern to... - (aarch64_sve_punpk_): ...this. Only define - unsigned packs. - (vec_unpack__): Turn into a - define_expand, renaming the old pattern to... - (aarch64_sve_unpk_): ...this. - (*vec_unpacku___no_convert): Delete. - (vec_unpacks__): Take BYTES_BIG_ENDIAN into - account when deciding which SVE instruction the optab should use. - (vec_unpack_float__vnx4si): Likewise. - -2018-03-13 Richard Sandiford - - * config/aarch64/aarch64.md (V4_REGNUM, V8_REGNUM, V12_REGNUM) - (V20_REGNUM, V24_REGNUM, V28_REGNUM, P1_REGNUM, P2_REGNUM, P3_REGNUM) - (P4_REGNUM, P5_REGNUM, P6_REGNUM, P8_REGNUM, P9_REGNUM, P10_REGNUM) - (P11_REGNUM, P12_REGNUM, P13_REGNUM, P14_REGNUM): New define_constants. - (tlsdesc_small_): Turn a define_expand and use - tlsdesc_small_sve_ for SVE. Rename original define_insn to... - (tlsdesc_small_advsimd_): ...this. - (tlsdesc_small_sve_): New pattern. - -2018-03-13 Richard Sandiford - - * config/aarch64/iterators.md (UNSPEC_SMUL_HIGHPART) - (UNSPEC_UMUL_HIGHPART): New constants. - (MUL_HIGHPART): New int iteraor. - (su): Handle UNSPEC_SMUL_HIGHPART and UNSPEC_UMUL_HIGHPART. - * config/aarch64/aarch64-sve.md (mul3_highpart): New - define_expand. - (*mul3_highpart): New define_insn. - -2018-03-13 Eric Botcazou - - PR lto/84805 - * ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of - incomplete types. - -2018-03-13 Martin Liska - - PR ipa/84658. - * (sem_item_optimizer::sem_item_optimizer): Initialize new - vector. - (sem_item_optimizer::~sem_item_optimizer): Release it. - (sem_item_optimizer::merge_classes): Register variable aliases. - (sem_item_optimizer::fixup_pt_set): New function. - (sem_item_optimizer::fixup_points_to_sets): Likewise. - * ipa-icf.h: Declare new variables and functions. - -2018-03-13 Jakub Jelinek - - PR middle-end/84834 - * match.pd ((A & C) != 0 ? D : 0): Use INTEGER_CST@2 instead of - integer_pow2p@2 and test integer_pow2p in condition. - (A < 0 ? C : 0): Similarly for @1. - - PR middle-end/84831 - * stmt.c (parse_output_constraint): If the CONSTRAINT_LEN (*p, p) - characters starting at p contain '\0' character, don't look beyond - that. - - PR target/84827 - * config/i386/i386.md (round2): For 387 fancy math, disable - pattern if -ftrapping-math -fno-fp-int-builtin-inexact. - - PR target/84828 - * reg-stack.c (change_stack): Change update_end var from int to - rtx_insn *, if non-NULL don't update just BB_END (current_block), but - also call set_block_for_insn on the newly added insns and rescan. - - PR target/84786 - * config/i386/sse.md (sse2_loadhpd): Use Yv constraint rather than v - on the last operand. - - PR c++/84704 - * tree.c (stabilize_reference_1): Return save_expr (e) for - STATEMENT_LIST even if it doesn't have side-effects. - -2018-03-12 Jonathan Wakely - - * doc/invoke.texi (-mclflushopt): Fix spelling of option. - -2018-03-12 Renlin Li - - * config/aarch64/aarch64.md (movhf_aarch64): Fix mode argument to - aarch64_output_scalar_simd_mov_immediate. - -2018-03-12 Martin Sebor - - PR tree-optimization/83456 - * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid warning - for perfectly overlapping calls to memcpy. - (gimple_fold_builtin_memory_chk): Same. - (gimple_fold_builtin_strcpy): Handle no-warning. - (gimple_fold_builtin_stxcpy_chk): Same. - * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Handle no-warning. - -2018-03-12 Segher Boessenkool - - * config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add bool "named" - parameter. Use it for SFmode. - (rs6000_function_arg_advance_1): Adjust. - (rs6000_function_arg): Adjust. - (rs6000_gimplify_va_arg): Pass false for that new parameter. - -2018-03-12 Segher Boessenkool - - PR rtl-optimization/84169 - PR rtl-optimization/84780 - * combine.c (can_combine_p): Check for a 2-insn combination whether - the destination register is used between the two insns, too. - -2018-03-12 Richard Biener - - PR tree-optimization/84803 - * tree-if-conv.c (ifcvt_memrefs_wont_trap): Don't do anything - for refs DR analysis didn't process. - -2018-03-12 Richard Biener - - PR tree-optimization/84777 - * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): For - force-vectorize loops ignore whether we are optimizing for size. - -2018-03-12 Chung-Ju Wu - - * config/nds32/nds32.c (nds32_md_asm_adjust): New function. - (TARGET_MD_ASM_ADJUST): Define. - -2018-03-12 Monk Chiang - Kito Cheng - Chung-Ju Wu - - * config/nds32/nds32.c (nds32_compute_stack_frame, - nds32_emit_stack_push_multiple, nds32_emit_stack_pop_multiple, - nds32_emit_stack_v3push, nds32_emit_stack_v3pop, - nds32_emit_adjust_frame, nds32_expand_prologue, nds32_expand_epilogue, - nds32_expand_prologue_v3push, nds32_expand_epilogue_v3pop): Refine. - * config/nds32/nds32.h (NDS32_FIRST_CALLEE_SAVE_GPR_REGNUM, - NDS32_LAST_CALLEE_SAVE_GPR_REGNUM, NDS32_V3PUSH_AVAILABLE_P): New. - * config/nds32/nds32.md (prologue, epilogue): Use macro - NDS32_V3PUSH_AVAILABLE_P to do checking. - -2018-03-11 Jakub Jelinek - - PR debug/58150 - * dwarf2out.c (gen_enumeration_type_die): Don't guard adding - DW_AT_declaration for ENUM_IS_OPAQUE on -gdwarf-4 or -gno-strict-dwarf, - but on TYPE_SIZE. Don't do anything for ENUM_IS_OPAQUE if not creating - a new die. Don't set TREE_ASM_WRITTEN if ENUM_IS_OPAQUE. Guard - addition of most attributes on !orig_type_die or the attribute not - being present already. Assert TYPE_VALUES is NULL for ENUM_IS_OPAQUE. - -2018-03-11 Kito Cheng - Chung-Ju Wu - - * config/nds32/nds32.c (nds32_cpu_cpp_builtins): Modify to define - __NDS32_VH__ macro. - * config/nds32/nds32.opt (mvh): New option. - -2018-03-11 Kito Cheng - Chung-Ju Wu - - * config/nds32/nds32-protos.h (nds32_cpu_cpp_builtins): Declare - function. - * config/nds32/nds32.c (nds32_cpu_cpp_builtins): New function. - * config/nds32/nds32.h (TARGET_CPU_CPP_BUILTINS): Modify its - definition. - -2018-03-11 Kito Cheng - Chung-Ju Wu - - * config/nds32/nds32-memory-manipulation.c (nds32_expand_strlen): New - function. - * config/nds32/nds32-multiple.md (strlensi): New pattern. - * config/nds32/nds32-protos.h (nds32_expand_strlen): Declare function. - -2018-03-11 Monk Chiang - Kito Cheng - Chung-Ju Wu - - * config/nds32/constants.md (unspec_element): Add UNSPEC_FFB, - UNSPEC_FFMISM and UNSPEC_FLMISM. - * config/nds32/nds32-intrinsic.c (bdesc_2arg): Add builtin description - for ffb, ffmism and flmism. - * config/nds32/nds32-intrinsic.md (unspec_ffb): Define new pattern. - (unspec_ffmism): Ditto. - (unspec_flmism): Ditto. - (nds32_expand_builtin_impl): Check if string extension is available. - * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FFB, - NDS32_BUILTIN_FFMISM and NDS32_BUILTIN_FLMISM. - -2018-03-10 Vladimir Makarov - - Reverting patch: - 2018-03-09 Vladimir Makarov - - PR target/83712 - * lra-assigns.c (assign_by_spills): Return a flag of reload - assignment failure. Do not process the reload assignment - failures. Do not spill other reload pseudos if they has the same - reg class. - (lra_assign): Add a return arg. Set up from the result of - assign_by_spills call. - (find_reload_regno_insns, lra_split_hard_reg_for): New functions. - * lra-constraints.c (split_reg): Add a new arg. Use it instead of - usage_insns if it is not NULL. - (spill_hard_reg_in_range): New function. - (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. - * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New - function prototypes. - (lra_assign): Change prototype. - * lra.c (lra): Add code to deal with fails by splitting hard reg - live ranges. - -2018-03-10 H.J. Lu - - PR target/84807 - * config/i386/i386.opt: Replace Enforcment with Enforcement. - -2018-03-10 Alexandre Oliva - - PR debug/84620 - * dwarf2out.h (dw_val_class): Add dw_val_class_symview. - (dw_val_node): Add val_symbolic_view. - * dwarf2out.c (dw_line_info_table): Add symviews_since_reset. - (symview_upper_bound): New. - (new_line_info_table): Initialize symviews_since_reset. - (dwarf2out_source_line): Count symviews_since_reset and set - symview_upper_bound. - (dw_val_equal_p): Handle symview. - (add_AT_symview): New. - (print_dw_val): Handle symview. - (attr_checksum, attr_checksum_ordered): Likewise. - (same_dw_val_p, size_of_die): Likewise. - (value_format, output_die): Likewise. - (add_high_low_attributes): Use add_AT_symview for entry_view. - (dwarf2out_finish): Reset symview_upper_bound, clear - zero_view_p. - -2018-03-09 Peter Bergner - - PR target/83969 - * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New prototype. - Add strict argument and use it. - (rs6000_split_multireg_move): Update for new strict argument. - (mem_operand_gpr): Disallow all non-offsettable addresses. - * config/rs6000/rs6000.md (*movdi_internal64): Use YZ constraint. - -2018-03-09 Jakub Jelinek - - PR target/84772 - * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Mark va_arg_tmp - temporary TREE_ADDRESSABLE before gimplification of BUILT_IN_MEMCPY. - * config/powerpcspe/powerpcspe.c (rs6000_gimplify_va_arg): Likewise. - - PR c++/84767 - * tree-inline.c (copy_tree_body_r): For INDIRECT_REF of a remapped - decl, use remap_type if we want to use the type. - -2018-03-09 Martin Sebor - - PR tree-optimization/84526 - * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset): - Remove dead code. - (builtin_access::generic_overlap): Be prepared to handle non-array - base objects. - -2018-03-09 Alexandre Oliva - - PR rtl-optimization/84682 - * lra-constraints.c (process_address_1): Check is_address flag - for address constraints. - (process_alt_operands): Likewise. - * lra.c (lra_set_insn_recog_data): Pass asm operand locs to - preprocess_constraints. - * recog.h (preprocess_constraints): Add oploc parameter. - Adjust callers. - * recog.c (preprocess_constraints): Test address_operand for - CT_ADDRESS constraints. - -2018-03-09 Vladimir Makarov - - PR target/83712 - * lra-assigns.c (assign_by_spills): Return a flag of reload - assignment failure. Do not process the reload assignment - failures. Do not spill other reload pseudos if they has the same - reg class. - (lra_assign): Add a return arg. Set up from the result of - assign_by_spills call. - (find_reload_regno_insns, lra_split_hard_reg_for): New functions. - * lra-constraints.c (split_reg): Add a new arg. Use it instead of - usage_insns if it is not NULL. - (spill_hard_reg_in_range): New function. - (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. - * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New - function prototypes. - (lra_assign): Change prototype. - * lra.c (lra): Add code to deal with fails by splitting hard reg - live ranges. - -2018-03-09 Kyrylo Tkachov - - PR target/83193 - * common/config/arm/arm-common.c (arm_parse_arch_option_name): - Accept complain bool parameter. Only emit errors if it is true. - (arm_parse_cpu_option_name): Likewise. - (arm_target_thumb_only): Adjust callers of the above. - * config/arm/arm-protos.h (arm_parse_cpu_option_name): Adjust - prototype to take a default true bool parameter. - (arm_parse_arch_option_name): Likewise. - -2018-03-09 David Malcolm - Francois-Xavier Coudert - - PR jit/64089 - PR jit/84288 - * Makefile.in (LD_VERSION_SCRIPT_OPTION, LD_SONAME_OPTION): New. - * configure: Regenerate. - * configure.ac ("linker --version-script option"): New. - ("linker soname option"): New. - -2018-03-09 Richard Biener - - PR tree-optimization/84775 - * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Delink - immediate uses of predicate stmts and mark them modified. - - Revert - PR tree-optimization/84178 - * tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates - to caller. - (version_loop_for_if_conversion): Delay update_ssa call. - (tree_if_conversion): Delay update_ssa until after predicate - insertion. - -2018-03-09 Eric Botcazou - - PR target/84763 - * config/i386/winnt.c (i386_pe_seh_cold_init): Use small pre-allocation - when the function accesses prior frames. - -2018-03-08 Jakub Jelinek - - PR debug/84456 - * dwarf2out.c (dw_loc_list): If list && loc_list->first->next, call - gen_llsym, otherwise call maybe_gen_llsym. - - PR inline-asm/84742 - * recog.c (asm_operand_ok): Return 0 if multi-character constraint - has ',' character inside of it. - -2018-03-08 Kyrylo Tkachov - - PR target/84748 - * config/aarch64/aarch64.md (*compare_cstore_insn): Mark pattern - as clobbering CC_REGNUM. - -2018-03-08 Richard Biener - - PR middle-end/84552 - * tree-scalar-evolution.c: Include tree-into-ssa.h. - (follow_copies_to_constant): Do not follow SSA names registered - for update. - -2018-03-08 Richard Biener - - PR tree-optimization/84178 - * tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates - to caller. - (version_loop_for_if_conversion): Delay update_ssa call. - (tree_if_conversion): Delay update_ssa until after predicate - insertion. - -2018-03-08 David Malcolm - - PR tree-optimization/84178 - * tree-if-conv.c (release_bb_predicate): Remove the - the assertion that the stmts have NULL use_ops. - Discard the statements, asserting that they haven't - yet been added to a BB. - -2018-03-08 Richard Biener - - PR tree-optimization/84746 - * tree-ssa-pre.c (find_leader_in_sets): Deal with SET1 being NULL. - (phi_translate): Pass in destination ANTIC_OUT set. - (phi_translate_1): Likewise. For a simplified result lookup - a leader in ANTIC_OUT and AVAIL_OUT, not the ANTIC_IN sets. - (phi_translate_set): Adjust. - (do_pre_regular_insertion): Likewise. - (do_pre_partial_partial_insertion): Likewise. - -2018-03-08 Martin Liska - - PR gcov-profile/84735 - * doc/gcov.texi: Document usage of profile files. - * gcov-io.h: Document changes in the format. - -2018-03-08 Alexandre Oliva - - PR debug/84404 - PR debug/84408 - * dwarf2out.c (struct dw_line_info_table): Update comments for - view == -1. - (FORCE_RESET_NEXT_VIEW): New. - (FORCE_RESETTING_VIEW_P): New. - (RESETTING_VIEW_P): Check for -1 too. - (ZERO_VIEW_P): Likewise. - (new_line_info_table): Force-reset next view. - (dwarf2out_begin_function): Likewise. - (dwarf2out_source_line): Simplify zero_view_p initialization. - Test FORCE_RESETTING_VIEW_P and RESETTING_VIEW_P instead of - view directly. Omit view when omitting .loc at line 0. - -2018-03-08 Jakub Jelinek - - PR tree-optimization/84740 - * tree-switch-conversion.c (process_switch): Call build_constructors - only if info.phi_count is non-zero. - - PR tree-optimization/84739 - * tree-tailcall.c (find_tail_calls): Check call arguments against - DECL_ARGUMENTS (current_function_decl) rather than - DECL_ARGUMENTS (func) when checking for tail recursion. - -2018-03-07 Jakub Jelinek - - * doc/contrib.texi: Add entries for Martin Liska, David Malcolm, - Marek Polacek, extend Vladimir Makarov's, Jonathan Wakely's and - Volker Reichelt's entry and add entries for people that perform - GCC fuzzy testing and report numerous bugs. - -2018-03-07 Segher Boessenkool - - PR target/82411 - * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Don't put - readonly data in sdata, if that is disabled. - * config/rs6000/sysv4.opt (mreadonly-in-sdata): New option. - * doc/invoke.texi (RS/6000 and PowerPC Options): Document - -mreadonly-in-sdata option. - -2018-03-07 Martin Sebor - - PR tree-optimization/84468 - * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Consider successor - basic block when looking for nul assignment. - -2018-03-07 Eric Botcazou - - PR target/84277 - * except.h (output_function_exception_table): Adjust prototype. - * except.c (output_function_exception_table): Remove FNNAME parameter - and add SECTION parameter. Ouput one part of the table at a time. - * final.c (final_scan_insn_1) : Output - the first part of the exception table and emit unwind directives. - * config/i386/i386-protos.h (i386_pe_end_cold_function): Declare. - (i386_pe_seh_cold_init): Likewise. - * config/i386/cygming.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro. - (ASM_DECLARE_COLD_FUNCTION_SIZE): Likewise. - * config/i386/i386.c (x86_expand_epilogue): Fix wording in comment. - (ix86_output_call_insn): Emit a nop in one more case for SEH. - * config/i386/winnt.c: Include except.h. - (struct seh_frame_state): Add reg_offset, after_prologue and - in_cold_section fields. - (i386_pe_seh_end_prologue): Set seh->after_prologue. - (i386_pe_seh_cold_init): New function. - (i386_pe_seh_fini): Add COLD parameter and bail out if it is not equal - to seh->in_cold_section. - (seh_emit_push): Record the offset of the push. - (seh_emit_save): Record the offet of the save. - (i386_pe_seh_unwind_emit): Deal with NOTE_INSN_SWITCH_TEXT_SECTIONS. - Test seh->after_prologue to disregard the epilogue. - (i386_pe_end_function): Pass FALSE to i386_pe_seh_fini. - (i386_pe_end_cold_function): New function. - -2018-03-07 Jakub Jelinek - - PR fortran/84565 - * config/aarch64/predicates.md (aarch64_simd_reg_or_zero): Use - aarch64_simd_or_scalar_imm_zero rather than aarch64_simd_imm_zero. - - PR c++/84704 - * gimple-expr.c (create_tmp_var_raw): Set DECL_NAMELESS flag - on tmp_var. - * tree-pretty-print.c (dump_decl_name): For TDF_COMPARE_DEBUG, - don't print names of DECL_NAMELESS DECL_IGNORED_P decls. - - PR middle-end/84723 - * multiple_target.c: Include tree-inline.h and intl.h. - (expand_target_clones): Diagnose and fail if node->definition and - !tree_versionable_function_p (node->decl). - -2018-03-06 John David Anglin - - * config/pa/pa.h (ASM_GENERATE_INTERNAL_LABEL): Revise to use - sprint_ul. - (ASM_OUTPUT_ADDR_VEC_ELT): Revise for above change. - (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. - * config/pa/pa64-hpux.h (ASM_GENERATE_INTERNAL_LABEL): Revise as above. - -2018-03-06 Jakub Jelinek - - PR target/84710 - * combine.c (try_combine): Use reg_or_subregno instead of handling - just paradoxical SUBREGs and REGs. - -2018-03-06 Claudiu Zissulescu - - * config/arc/arc.c (arc_finalize_pic): Remove function. - (arc_must_save_register): We use single base PIC register, remove - checks to save/restore the PIC register. - (arc_expand_prologue): Likewise. - * config/arc/arc-protos.h (arc_set_default_type_attributes): - Remove. - (arc_verify_short): Likewise. - (arc_attr_type): Likewise. - * config/arc/arc.c (arc_set_default_type_attributes): Remove. - (walk_stores): Likewise. - (arc_address_cost): Make it static. - (arc_verify_short): Likewise. - (branch_dest): Likewise. - (arc_attr_type): Likewise. - * config/arc/arc.c (TARGET_ADJUST_INSN_LENGTH): Remove. - (TARGET_INSN_LENGTH_PARAMETERS): Likewise. - (arc_final_prescan_insn): Remove inserting the nops due to - hardware hazards. It is done in reorg step. - (insn_length_variant_t): Remove. - (insn_length_parameters_t): Likewise. - (arc_insn_length_parameters): Likewise. - (arc_get_insn_variants): Likewise. - * config/arc/arc.h (TARGET_UPSIZE_DBR): Remove. - -2018-03-06 Jakub Jelinek - - PR inline-asm/84683 - * reg-stack.c (move_for_stack_reg): If any_malformed_asm, avoid - assertion failure. - - PR tree-optimization/84687 - * omp-simd-clone.c (simd_clone_create): Clear DECL_BUILT_IN_CLASS - on new_node->decl. - * match.pd (pow(C,x)*expN(y) -> expN(logN(C)*x+y)): New optimization. - -2018-03-05 Bill Schmidt - - * config/rs6000/rs6000-builtin.def (rs6000_speculation_barrier): - Rename to ppc_speculation_barrier. - * config/rs6000/rs6000.c (rs6000_init_builtins): Rename builtin to - __builtin_ppc_speculation_barrier. - -2018-03-05 Jakub Jelinek - - PR target/84700 - * combine.c (combine_simplify_rtx): Don't try to simplify if - if_then_else_cond returned non-NULL, but either true_rtx or false_rtx - are equal to x. - -2018-03-05 Segher Boessenkool - - * config/rs6000/rs6000.c (rs6000_loop_align): Don't align tiny loops - to 32 bytes when compiling for POWER9. - -2018-03-05 Jakub Jelinek - - PR target/84564 - * config/i386/i386.c (ix86_function_ok_for_sibcall): Check for - regparm >= 3 with no arg reg available also for calls with - flag_force_indirect_call. Pass decl to ix86_function_regparm. - - PR target/84524 - * config/i386/sse.md (*3): Replace with - orig,vex. - (*3): Likewise. Remove uses. - -2018-03-05 Peter Bergner - - PR target/84264 - * config/rs6000/vector.md (mov): Disallow altivec memory operands. - -2018-03-05 Richard Biener - - PR tree-optimization/84486 - * tree-ssa-pre.c (create_expression_by_pieces): Remove dead code. - When inserting a __builtin_assume_aligned call set the LHS - SSA name alignment info accordingly. - -2018-03-05 Wilco Dijkstra - - PR tree-optimization/84114 - * config/aarch64/aarch64.c (aarch64_reassociation_width) - Avoid reassociation of FLOAT_MODE addition. - -2018-03-05 Olga Makhotina - - * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCONFIG_SET, - OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_SET, - OPTION_MASK_ISA_WBNOINVD_UNSET): New definitions. - (ix86_handle_option): Handle -mpconfig and -mwbnoinvd. - * config.gcc (pconfigintrin.h, wbnoinvdintrin.h) : Add headers. - * config/i386/cpuid.h (bit_PCONFIG, bit_WBNOINVD): New. - * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mpconfig - and -mwbnoinvd. - * config/i386/i386-builtin.def (__builtin_ia32_wbnoinvd, - __builtin_ia32_wbinvd): New builtins. - (SPECIAL_ARGS2): New. - * config/i386/i386-c.c (__WBNOINVD__, __PCONFIG__): New. - (SPECIAL_ARGS2): New. - * config/i386/i386.c (ix86_target_string): Add -mpconfig and -mwbnoinvd. - (ix86_valid_target_attribute_inner_p): Ditto. - (ix86_init_mmx_sse_builtins): Add special_args2. - * config/i386/i386.h (TARGET_PCONFIG, TARGET_PCONFIG_P, TARGET_WBNOINVD, - TARGET_WBNOINVD_P): New. - * config/i386/i386.md (UNSPECV_WBINVD, UNSPECV_WBNOINVD): New. - (define_insn "wbinvd", define_insn "wbnoinvd"): New. - * config/i386/i386.opt: Add -mpconfig and -mwbnoinvd. - * config/i386/immintrin.h (_wbinvd): New intrinsic. - * config/i386/pconfigintrin.h: New file. - * config/i386/wbnoinvdintrin.h: Ditto. - * config/i386/x86intrin.h: Add headers pconfigintrin.h and - wbnoinvdintrin.h. - * doc/invoke.texi (-mpconfig, -mwbnoinvd): New. - -2018-03-05 Richard Biener - - PR tree-optimization/84670 - * tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs - member. - (BB_VISITED_WITH_VISITED_SUCCS): New define. - (compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS. - (compute_antic_aux): Only assert the number of values in ANTIC_IN - doesn't grow if all successors (recursively) were visited at least - once. - -2018-03-05 Richard Biener - - PR tree-optimization/84650 - * tree-ssa-loop-im.c (pass_lim::execute): Reset the SCEV cache - if executed in the loop pipeline. - -2018-03-05 Sandra Loosemore - - * doc/configfiles.texi (Configuration Files): Move info about - conditionalizing $target-protos.h to... - * doc/sourcebuild.texi (Back End): Here. Explain how $target.h - differs from $target-protos.h. - -2018-03-05 Kito Cheng - Chung-Ju Wu - - * config/nds32/nds32-protos.h (nds32_expand_setmem): Declare. - * config/nds32/nds32-multiple.md (setmemsi): Define. - * config/nds32/nds32-memory-manipulation.c - (nds32_gen_dup_4_byte_to_word_value): New. - (emit_setmem_word_loop): New. - (emit_setmem_byte_loop): New. - (nds32_expand_setmem_loop): New. - (nds32_expand_setmem_loop_v3m): New. - (nds32_expand_setmem_unroll): New. - (nds32_expand_setmem): New. - -2018-03-04 Kito Cheng - Chung-Ju Wu - - * config/nds32/nds32-memory-manipulation.c - (nds32_emit_load_store): New. - (nds32_emit_post_inc_load_store): New. - (nds32_emit_mem_move): New. - (nds32_emit_mem_move_block): New. - (nds32_expand_movmemsi_loop_unknown_size): New. - (nds32_expand_movmemsi_loop_known_size): New. - (nds32_expand_movmemsi_loop): New. - (nds32_expand_movmemsi_unroll): New. - (nds32_expand_movmemqi): Rename ... - (nds32_expand_movmemsi): ... to this. - * config/nds32/nds32-multiple.md (movmemqi): Rename ... - (movmemsi): ... to this. - * config/nds32/nds32-protos.h (nds32_expand_movmemqi): Rename ... - (nds32_expand_movmemsi): ... to this. - -2018-03-04 Kito Cheng - Monk Chiang - Chung-Ju Wu - - * config/nds32/nds32-protos.h - (nds32_expand_load_multiple): New arguments. - (nds32_expand_store_multiple): Ditto. - (nds32_valid_multiple_load_store): Rename ... - (nds32_valid_multiple_load_store_p): ... to this. - * config/nds32/nds32-memory-manipulation.c - (nds32_expand_load_multiple): Refine implementation. - (nds32_expand_store_multiple): Ditto. - * config/nds32/nds32-multiple.md - (load_multiple): Update nds32_expand_load_multiple interface. - (store_multiple): Update nds32_expand_store_multiple interface. - * config/nds32/nds32-predicates.c - (nds32_valid_multiple_load_store): Rename ... - (nds32_valid_multiple_load_store_p): ... to this and refine - implementation. - * config/nds32/predicates.md - (nds32_load_multiple_and_update_address_operation): New predicate. - (nds32_store_multiple_and_update_address_operation): New predicate. - -2018-03-04 Kito Cheng - Chung-Ju Wu - - * config/nds32/nds32.md (type): Add load_multiple and store_multiple. - (combo): New attribute. - * config/nds32/nds32-multiple.md: Refine patterns with new attributes. - -2018-03-03 Chung-Ju Wu - - * config/nds32/nds32.opt: Change -mcmodel= default value. - -2018-03-03 Kito Cheng - Monk Chiang - Chung-Ju Wu - - * config/nds32/constants.md (unspec_element): New enum. - * config/nds32/constraints.md (Umw): New constraint. - * config/nds32/nds32-intrinsic.c: Add more builtin functions. - * config/nds32/nds32-intrinsic.md: Likewise. - * config/nds32/nds32-md-auxiliary.c (nds32_regno_to_enable4): New. - (nds32_valid_smw_lwm_base_p): New. - (nds32_output_smw_single_word): New. - (nds32_output_lmw_single_word): New. - (nds32_expand_unaligned_load): New. - (nds32_expand_unaligned_store): New. - * config/nds32/nds32-protos.h (nds32_valid_smw_lwm_base_p): Declare. - (nds32_output_smw_single_word): Declare. - (nds32_output_lmw_single_word): Declare. - (nds32_expand_unaligned_load): Declare. - (nds32_expand_unaligned_store): Declare. - * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_UALOAD_HW, - NDS32_BUILTIN_UALOAD_W, NDS32_BUILTIN_UALOAD_DW, - NDS32_BUILTIN_UASTORE_HW, NDS32_BUILTIN_UASTORE_W, - NDS32_BUILTIN_UASTORE_DW. - * config/nds32/predicates.md (nds32_lmw_smw_base_operand): New - predicate. - -2018-03-03 Monk Chiang - Kito Cheng - Chung-Ju Wu - - * config/nds32/nds32-intrinsic.c - (nds32_expand_builtin_null_ftype_reg): Delete. - (nds32_expand_builtin_reg_ftype_imm): Ditto. - (nds32_expand_builtin_null_ftype_reg_imm): Ditto. - (nds32_read_argument): New. - (nds32_legitimize_target): Ditto. - (nds32_legitimize_argument): Ditto. - (nds32_check_constant_argument): Ditto. - (nds32_expand_unop_builtin): Ditto. - (nds32_expand_unopimm_builtin): Ditto. - (nds32_expand_binop_builtin): Ditto. - (nds32_builtin_decl_impl): Ditto. - (builtin_description): Ditto. - (nds32_expand_builtin_impl): Rewrite with new infrastructure. - (nds32_init_builtins_impl): Ditto. - * config/nds32/nds32.c (TARGET_BUILTIN_DECL): Define. - (nds32_builtin_decl): New. - * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_COUNT. - * config/nds32/nds32-protos.h (nds32_builtin_decl_impl): Declare. - -2018-03-02 Jeff Law - - * reorg.c (stop_search_p): Handle DEBUG_INSN. - (redundant_insn, fill_simple_delay_slots): Likewise. - (fill_slots_from_thread): Likewise. - * resource.c (mark_referenced_resources): Likewise. - (mark_set_resources, find_dead_or_set_registers): Likewise. - -2018-03-02 Jakub Jelinek - - * substring-locations.h (format_warning_va): Formatting fix for - ATTRIBUTE_GCC_DIAG. - (format_warning_at_substring): Fix up ATTRIBUTE_GCC_DIAG second - argument. - (format_warning_n_va, format_warning_at_substring_n): New prototypes. - * substring-locations.c: Include intl.h. - (format_warning_va): Turned into small wrapper around - format_warning_n_va, renamed to ... - (format_warning_n_va): ... this, add N and PLURAL_GMSGID arguments, - rename GMSGID to SINGULAR_GMSGID, if SINGULAR_GMSGID != PLURAL_GMSGID, - use ngettext. - (format_warning_at_substring_n): New function. - * gimple-ssa-sprintf.c: Remove GCC diagnostic ignored pragma. - (fmtwarn): Add ATTRIBUTE_GCC_DIAG. Turn into a copy of - format_warning_at_substring with just a shorter name instead of - const function pointer. - (fmtwarn_n): New function. - (maybe_warn, format_directive, parse_directive): Use fmtwarn_n where - appropriate, get rid of all the fmtstr temporaries, move conditionals - with G_() wrapped string literals directly into fmtwarn arguments, - cast dir.len to (int), formatting fixes. - -2018-03-02 Thomas Schwinge - - * doc/invoke.texi: Remove "Cilk Plus" references. - -2018-03-02 Jakub Jelinek - Richard Biener - - PR ipa/84628 - * expr.c (expand_expr_real_1) : Don't emit diagnostics - for error or warning attributes if CALL_FROM_THUNK_P is set. - Formatting fixes. - -2018-03-02 Jakub Jelinek - - PR target/56540 - * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Predefine - __SIZEOF_128__ macro if HPUX_LONG_DOUBLE_LIBRARY. - - PR target/56540 - * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Predefine - __SIZEOF_{FPREG,FLOAT{80,128}}__ macros. - - * predict.c (test_prediction_value_range): Use PROB_UNINITIALIZED - instead of -1U in last predictors element's probability member. - -2018-03-02 Eric Botcazou - - PR ipa/83983 - * ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both - arguments if they are comparable. - -2018-03-02 Richard Sandiford - - PR tree-optimization/84634 - * tree-vect-stmts.c (vectorizable_store, vectorizable_load): Replace - masks and masked_loop_p with a single loop_masks, making sure it's - null for bb vectorization. - -2018-03-02 Richard Sandiford - - * tree-vect-data-refs.c (vect_analyze_data_ref_dependence) - (vect_analyze_data_ref_access): Use loop->safe_len rather than - loop->force_vectorize to check whether there is no alias. - -2018-03-02 Jakub Jelinek - - PR target/84614 - * rtl.h (prev_real_nondebug_insn, next_real_nondebug_insn): New - prototypes. - * emit-rtl.c (next_real_insn, prev_real_insn): Fix up function - comments. - (next_real_nondebug_insn, prev_real_nondebug_insn): New functions. - * cfgcleanup.c (try_head_merge_bb): Use prev_real_nondebug_insn - instead of a loop around prev_real_insn. - * combine.c (move_deaths): Use prev_real_nondebug_insn instead of - prev_real_insn. - - PR inline-asm/84625 - * config/i386/i386.c (ix86_print_operand): Use conditional - output_operand_lossage instead of gcc_assert if CONST_VECTOR is not - zero vector. - -2018-03-02 Richard Biener - - PR tree-optimization/84427 - * tree-ssa-pre.c (bitmap_remove_expr_from_set): Remove. - (bitmap_set_subtract_values): Rewrite to handle multiple - exprs per value. - (clean): Likewise. - (prune_clobbered_mems): Likewise. - (phi_translate): Take edge instead of pred/phiblock. - (phi_translate_1): Likewise. - (phi_translate_set): Likewise. Insert all translated - exprs for a value into the set, keeping possibly multiple - expressions per value. - (compute_antic_aux): Adjust for phi_translate changes. - When intersecting union the expressions and prune those - not in the final value set, keeping possibly multiple - expressions per value. Do not use value-insertion - for unioning ANTIC_OUT U EXP_GEN - TMP_GEN but merge - all expressions. Add verification that the value-sets - only shrink during iteration. - (compute_partial_antic_aux): Adjust for the phi_translate changes. - (do_pre_regular_insertion): Likewise. - (do_pre_partial_partial_insertion): Likewise. - -2018-03-02 Richard Biener - - PR target/82005 - * config/darwin.c (saved_debug_info_level): New static global. - (darwin_asm_lto_start): Disable debug info generation for LTO out. - (darwin_asm_lto_end): Restore debug info generation settings. - -2018-03-01 Martin Liska - - PR sanitizer/82484 - * sanopt.c (sanitize_rewrite_addressable_params): Do not handle - volatile arguments. - -2018-03-01 Richard Biener - - PR debug/84645 - * dwarf2out.c (gen_variable_die): Properly handle late VLA - type annotation with LTO when debug was disabled at compile-time. - -2018-03-01 Matthew Fortune - - * config/mips/mips.c (mips_final_prescan_insn): Fix incorrect - XINT with INTVAL. - (mips_final_postscan_insn): Likewise. - -2018-03-01 Richard Sandiford - - PR rtl-optimization/84528 - * alias.c (init_alias_target): Add commentary. - (init_alias_analysis): Only give HARD_FRAME_POINTER_REGNUM - a unique base value if the frame pointer is not eliminated - to the stack pointer. - -2018-03-01 Tom de Vries - - PR rtl-optimization/83327 - * lra-int.h (hard_regs_spilled_into): Declare. - * lra.c (hard_regs_spilled_into): Define. - (init_reg_info): Init hard_regs_spilled_into. - * lra-spills.c (assign_spill_hard_regs): Update hard_regs_spilled_into. - * lra-lives.c (make_hard_regno_born, make_hard_regno_dead) - (process_bb_lives): Handle hard_regs_spilled_into. - (lra_create_live_ranges_1): Before doing liveness propagation, clear - regs in all_hard_regs_bitmap if set in hard_regs_spilled_into. - -2018-02-28 David Edelsohn - - * config.gcc (powerpc-ibm-aix7.1.*): New stanza. - (powerpc-ibm-aix[789]*): Default to AIX 7.2. - * config/rs6000/aix71.h (TARGET_DEFAULT): Revert to Power4 ISA. - * config/rs6000/aix72.h: New file. - -2018-02-28 Jakub Jelinek - - * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Use warning_n - instead of warning_at with conditional singular and plural messages - where possible. - - PR target/52991 - * stor-layout.c (update_alignment_for_field): For - targetm.ms_bitfield_layout_p (rli->t), if !is_bitfield - && !DECL_PACKED (field), do the alignment update, just use - only desired_align instead of MAX (type_align, desired_align) - as the alignment. - (place_field): Don't do known_align < desired_align handling - early if targetm.ms_bitfield_layout_p (rli->t) and rli->prev_field - is non-NULL, instead do it after rli->prev_field handling and - only if not within a bitfield word. For DECL_PACKED (field) - use type_align of BITS_PER_UNIT. - -2018-02-28 Eric Botcazou - - * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Remove - superfluous parentheses and trailing spaces. - -2018-02-28 Richard Biener - - PR tree-optimization/84584 - * graphite-scop-detection.c (scop_detection::add_scop): Discard - SCoPs with fake exit edge. - -2018-02-28 Martin Liska - - PR testsuite/84597 - * timevar.c (timer::print): Fix format to properly print 100% - values. - -2018-02-28 Richard Biener - - PR middle-end/84607 - * genmatch.c (capture_info::walk_match): Do not mark - captured expressions without operands as expr_p given - they act more like predicates and should be subject to - "lost tail" side-effect preserving. - -2018-02-28 Alexandre Oliva - - PR rtl-optimization/81611 - * auto-inc-dec.c (attempt_change): Move dead note from - mem_insn if it's the next use of regno - (find_address): Take address use of reg holding - non-incremented value. Add parm to limit search to the named - reg only. - (merge_in_block): Attempt to use a mem insn that is the next - use of the original regno. - -2018-02-27 Martin Sebor - - PR c++/83871 - * doc/invoke.texi (-Wmissing-attributes): New option. - * print-tree.c (print_node): Handle DECL_UNINLINABLE. - -2018-02-27 Martin Sebor - - PR translation/84207 - * diagnostic-core.h (warning_n, error_n, inform_n): Change - n argument to unsigned HOST_WIDE_INT. - * diagnostic.c (warning_n, error_n, inform_n): Ditto. - (diagnostic_n_impl): Ditto. Handle arguments in excess of LONG_MAX. - * gimple-ssa-sprintf.c (format_directive): Simplify inform_n call. - * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Use warning_n. - -2018-02-27 Richard Biener - - PR tree-optimization/84512 - * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): - Do not use the estimate returned from record_stmt_cost for - the scalar iteration cost but sum properly using add_stmt_cost. - -2018-02-27 Richard Biener - - PR tree-optimization/84466 - * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): - Adjust last change to less strictly validate use operands. - -2018-02-27 Martin Liska - - PR gcov-profile/84548 - * gcov.c (process_file): Allow partial overlap and consider it - also as group functions. - (output_lines): Properly calculate range of lines for a group. - -2018-02-27 Martin Liska - - * timevar.c (timer::print_row): Remove 'usr', 'sys', 'wall' and - 'ggc' suffixes. Change first column width. - (timer::print): Fix formatting of the column. - -2018-02-27 Alexandre Oliva - - * tree-ssa-live.c (remove_unused_scope_block_p): Do not - preserve inline entry blocks for the sake of debug inline - entry point markers alone. - (remove_unused_locals): Suggest in comments a better place to - force the preservation of inline entry blocks that are - otherwise unused, but do not preserve them. - -2018-02-26 H.J. Lu - - * config/i386/i386.c (ix86_output_indirect_jmp): Update comments. - -2018-02-26 H.J. Lu - - PR target/84039 - * config/i386/constraints.md (Bs): Replace - ix86_indirect_branch_register with - TARGET_INDIRECT_BRANCH_REGISTER. - (Bw): Likewise. - * config/i386/i386.md (indirect_jump): Likewise. - (tablejump): Likewise. - (*sibcall_memory): Likewise. - (*sibcall_value_memory): Likewise. - Peepholes of indirect call and jump via memory: Likewise. - (*sibcall_GOT_32): Disallowed for TARGET_INDIRECT_BRANCH_REGISTER. - (*sibcall_value_GOT_32): Likewise. - * config/i386/predicates.md (indirect_branch_operand): Likewise. - (GOT_memory_operand): Likewise. - (call_insn_operand): Likewise. - (sibcall_insn_operand): Likewise. - (GOT32_symbol_operand): Likewise. - * config/i386/i386.h (TARGET_INDIRECT_BRANCH_REGISTER): New. - -2018-02-26 Eric Botcazou - - PR rtl-optimization/83496 - * reorg.c (steal_delay_list_from_target): Change REDUNDANT array from - booleans to RTXes. Call fix_reg_dead_note on every non-null element. - (steal_delay_list_from_fallthrough): Call fix_reg_dead_note on a - redundant insn, if any. - (relax_delay_slots): Likewise. - (update_reg_unused_notes): Rename REDUNDANT_INSN to OTHER_INSN. - -2018-02-26 Richard Sandiford - - PR tree-optimization/83965 - * tree-vect-patterns.c (vect_reassociating_reduction_p): Assume - that grouped statements are part of a reduction chain. Return - true if the statement is not marked as a reduction itself but - is part of a group. - (vect_recog_dot_prod_pattern): Don't check whether the statement - is part of a group here. - (vect_recog_sad_pattern): Likewise. - (vect_recog_widen_sum_pattern): Likewise. - -2018-02-26 Eric Botcazou - - PR debug/84545 - * final.c (rest_of_clean_state): Also look for calls inside sequences. - -2018-02-26 H.J. Lu - - PR target/84530 - * config/i386/i386-protos.h (ix86_output_indirect_jmp): Remove - the bool argument. - (ix86_output_indirect_function_return): New prototype. - (ix86_split_simple_return_pop_internal): Likewise. - * config/i386/i386.c (indirect_return_via_cx): New. - (indirect_return_via_cx_bnd): Likewise. - (indirect_thunk_name): Handle return va CX_REG. - (output_indirect_thunk_function): Create alias for - __x86_return_thunk_[re]cx and __x86_return_thunk_[re]cx_bnd. - (ix86_output_indirect_jmp): Remove the bool argument. - (ix86_output_indirect_function_return): New function. - (ix86_split_simple_return_pop_internal): Likewise. - * config/i386/i386.md (*indirect_jump): Don't pass false - to ix86_output_indirect_jmp. - (*tablejump_1): Likewise. - (simple_return_pop_internal): Change it to define_insn_and_split. - Call ix86_split_simple_return_pop_internal to split it for - -mfunction-return=. - (simple_return_indirect_internal): Call - ix86_output_indirect_function_return instead of - ix86_output_indirect_jmp. - -2018-02-26 Jakub Jelinek - - PR bootstrap/84405 - * vec.h (vec_default_construct): For BROKEN_VALUE_INITIALIZATION use - memset and value initialization afterwards. - -2018-02-26 Christophe Lyon - - * Makefile.in (lto-wrapper): Use ALL_LINKERFLAGS. - -2018-02-26 Ramana Radhakrishnan - - PR target/84521 - * common/config/aarch64/aarch64-common.c - (aarch_option_optimization_table[]): Switch - off fomit-frame-pointer - -2018-02-26 Kito Cheng - Chung-Ju Wu - - * config/nds32/nds32-multiple.md (load_multiple): Disallow - volatile memory. - (store_multiple): Ditto. - -2018-02-26 Kito Cheng - - * config.gcc: Add --with-cpu support for nds32 target. - * config/nds32/nds32-opts.h (nds32_cpu_type): New. - * config/nds32/nds32.opt: Add -mcpu= option. - -2018-02-25 Segher Boessenkool - - * config/rs6000/rs6000.opt (mvrsave=no, mvrsave=yes, isel=no, - isel=yes): Warn for these deprecated options. - -2018-02-23 David Edelsohn - - * config/rs6000/aix71.h (TARGET_DEFAULT): Change to - ISA_2_5_MASKS_EMBEDDED. - -2018-02-23 Jakub Jelinek - - * ipa-prop.c (ipa_vr_ggc_hash_traits::hash): Hash p->min and - p->max as pointers rather than using iterative_hash_expr. - -2018-02-23 Carl Love - - * config/rs6000/rs6000-builtin.def: Change VSIGNED2 and VUNSIGNED2 - macro expansions from BU_VSX_2 to BU_P8V_VSX_2 and BU_VSX_OVERLOAD_2 to - BU_P8V_OVERLOAD_2. - * config/rs6000/rs6000-c.c: Change VSX_BUILTIN_VEC_VSIGNED2 to - P8V_BUILTIN_VEC_VSIGNED2. Change VSX_BUILTIN_VEC_VUNSIGNED2 to - P8V_BUILTIN_VEC_VUNSIGNED2. - -2018-02-22 Vladimir Makarov - - PR target/81572 - * lra-int.h (LRA_UNKNOWN_ALT, LRA_NON_CLOBBERED_ALT): New macros. - * lra.c (lra_set_insn_recog_data, lra_update_insn_recog_data): Use - LRA_UNKNOWN_ALT. - * lra-constraints.c (curr_insn_transform): Set up - LRA_NON_CLOBBERED_ALT for moves processed on the fast path. Use - LRA_UNKNOWN_ALT. - (remove_inheritance_pseudos): Use LRA_UNKNOWN_ALT. - * lra-eliminations.c (spill_pseudos): Ditto. - (process_insn_for_elimination): Ditto. - * lra-lives.c (reg_early_clobber_p): Use the new macros. - * lra-spills.c (spill_pseudos): Use LRA_UNKNOWN_ALT and - LRA_NON_CLOBBERED_ALT. - -2018-02-22 Martin Sebor - - PR tree-optimization/84480 - * gimple-fold.c (gimple_fold_builtin_strcpy): Move warnings - to maybe_diag_stxncpy_trunc. Call it. - * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Integrate warnings - from gimple_fold_builtin_strcpy. Print inlining stack. - (handle_builtin_stxncpy): Print inlining stack. - * tree-ssa-strlen.h (maybe_diag_stxncpy_trunc): Declare. - -2018-02-22 H.J. Lu - - PR target/84176 - * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an - error when -mindirect-branch=thunk-extern, -fcf-protection=branch - and -fcheck-pointer-bounds are used together. - (indirect_thunk_prefix): New enum. - (indirect_thunk_need_prefix): New function. - (indirect_thunk_name): Replace need_bnd_p with need_prefix. Use - "_nt" instead of "_bnd" for NOTRACK prefix. - (output_indirect_thunk): Replace need_bnd_p with need_prefix. - (output_indirect_thunk_function): Likewise. - (): Likewise. - (ix86_code_end): Update output_indirect_thunk_function calls. - (ix86_output_indirect_branch_via_reg): Replace - ix86_bnd_prefixed_insn_p with indirect_thunk_need_prefix. - (ix86_output_indirect_branch_via_push): Likewise. - (ix86_output_function_return): Likewise. - * doc/invoke.texi: Document -mindirect-branch=thunk-extern is - incompatible with -fcf-protection=branch and - -fcheck-pointer-bounds. - -2018-02-22 Steve Ellcey - - PR target/83335 - * config/aarch64/aarch64.c (aarch64_print_address_internal): - Change gcc_assert call to output_operand_lossage. - -2018-02-22 Steve Ellcey - - * doc/extend.texi (__builtin_extend_pointer): Document builtin. - -2018-02-22 DJ Delorie - Sebastian Perta - Oleg Endo - - * config/rx/rx.c (rx_rtx_costs): New function. - (TARGET_RTX_COSTS): Override to use rx_rtx_costs. - -2018-02-22 Thomas Preud'homme - - * config/arm/t-multilib: Map Armv8-R to Armv7 multilibs. - -2018-02-22 Martin Liska - - PR driver/83193 - * common/config/arm/arm-common.c (arm_print_hint_for_cpu_option): - Add "native" as a possible value. - -2018-02-22 Martin Liska - - PR driver/83193 - * config/i386/i386.c (ix86_option_override_internal): - Add "native" as a possible value for -march and -mtune. - -2018-02-22 Jakub Jelinek - - PR target/84502 - * stor-layout.c (finalize_type_size): Propagate TYPE_EMPTY_P flag - to all type variants. - - PR tree-optimization/84503 - * gimple-ssa-store-merging.c (merged_store_group::merge_into): Compute - width as info->bitpos + info->bitsize - start. - (merged_store_group::merge_overlapping): Simplify width computation. - (check_no_overlap): New function. - (imm_store_chain_info::try_coalesce_bswap): Compute expected - start + width and last_order of the group, fail if check_no_overlap - fails. - (imm_store_chain_info::coalesce_immediate_stores): Don't merge info - to group if check_no_overlap fails. - -2018-02-21 Segher Boessenkool - - * config/rs6000/altivec.md: Delete contraint arguments to - define_expand, define_split, and define_peephole2, and in - define_insn_and_split if always unused. - * config/rs6000/darwin.md: Ditto. - * config/rs6000/dfp.md: Ditto. - * config/rs6000/rs6000.md: Ditto. - * config/rs6000/sync.md: Ditto. - * config/rs6000/vector.md: Ditto. - * config/rs6000/vsx.md: Ditto. - -2018-02-21 Segher Boessenkool - - * config/rs6000/altivec.md: Write output control strings as braced - blocks instead of double-quoted strings. - * config/rs6000/darwin.md: Ditto. - * config/rs6000/rs6000.md: Ditto. - * config/rs6000/vector.md: Ditto. - * config/rs6000/vsx.md: Ditto. - -2018-02-21 Jason Merrill - - PR c++/84314 - ICE with templates and fastcall attribute. - * attribs.c (build_type_attribute_qual_variant): Remove assert. - -2018-02-21 Jan Hubicka - - * ipa-cp.c (determine_versionability): Fix comment typos. - -2018-02-21 Jan Hubicka - - PR c/84229 - * ipa-cp.c (determine_versionability): Do not version functions caling - va_arg_pack. - -2018-02-21 Martin Liska - - PR driver/83193 - * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch): - Add "native" as a possible value. - * config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT): Define - the macro when native cpu detection is available. - -2018-02-21 Martin Liska - - PR driver/83193 - * common/config/arm/arm-common.c (arm_print_hint_for_arch_option): - Add "native" as a possible value. - * config/arm/arm.h (HAVE_LOCAL_CPU_DETECT): Define the macro - when native cpu detection is available. - -2018-02-21 Jakub Jelinek - Martin Sebor - - PR tree-optimization/84478 - * gimple-fold.h (get_range_strlen): Add a bool argument defaulted to - false. - * gimple-fold.c (get_range_strlen): Make minlen const and assume it - can't be NULL. Change FUZZY from bool to int, for 1 add PHI/COND_EXPR - support which is conservatively correct, for 2 only stay conservative - for maxlen. Formatting and comment capitalization fixes. Add STRICT - argument to the 2 argument get_range_strlen, adjust 6 arg - get_range_strlen caller and clear minmaxlen[0] and [1] if it returned - false. - (get_maxval_strlen): Adjust 6 arg get_range_strlen caller. - (gimple_fold_builtin_strlen): Pass true as last argument to - get_range_strlen. - -2018-02-20 Martin Sebor - - PR middle-end/84095 - * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): New. - (builtin_memref::set_base_and_offset): Same. Handle inner references. - (builtin_memref::builtin_memref): Factor out parts into - set_base_and_offset and call it. - -2018-02-20 Richard Sandiford - - PR middle-end/84406 - * optabs-query.c (find_widening_optab_handler_and_mode): If from_mode - is a scalar_int_mode, assert that to_mode is a scalar_int_mode with - greater precision. If to_mode is a MODE_PARTIAL_INT, stop the - search at the associated MODE_INT. - -2018-02-20 Jeff Law - - PR middle-end/82123 - PR tree-optimization/81592 - PR middle-end/79257 - * gimple-ssa-sprintf.c (format_integer): Query EVRP range analyzer - for range data rather than using global data. - * gimple-ssa-sprintf.c (get_int_range): Query EVRP range analyzer for - range data rather than using global data. - * gimple-ssa-sprintf.c (get_int_range): Accept vr_values parameter - pass it to children as needed. - (struct directive::fmtresult): Similarly. - (struct directive::set_width): Similarly. - (struct directive::set_precision): Similarly. - (format_integer, format_directive, parse_directive): Similarly. - (format_none): Accept unnamed vr_values parameter. - (format_percent, format_floating, format_character): Similarly. - (format_string, format_plain): Similarly. - * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): Query - the EVRP range analyzer for range data rather than using global data. - * gimple-ssa-sprintf.c: Include alloc-pool.h, vr-values.h and - gimple-ssa-evrp-analyze.h - (class sprintf_dom_walker): Add after_dom_children member function. - Add evrp_range_analyzer member. - (sprintf_dom_walker::before_dom_children): Call into the EVRP - range analyzer as needed. - (sprintf_dom_walker::after_dom_children): New member function. - * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::enter): Do nothing - if not optimizing. - (evrp_range_analyzer::record_ranges_from_stmt): Likewise. - (evrp_range_analyzer::pop_to_marker): Likewise. - -2018-02-20 Richard Sandiford - - PR tree-optimization/84419 - * internal-fn.c (expand_call_mem_ref): Create a TARGET_MEM_REF - with the required type if its current type is compatible but - different. - -2018-02-20 Jakub Jelinek - - PR middle-end/82004 - * match.pd (pow(C,x) -> exp(log(C)*x)): Delay all folding until - after vectorization. - -2018-02-20 Martin Liska - - PR driver/83193 - * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch): Print - possible values if we don't have a hint. - -2018-02-20 Martin Liska - - PR c/84310 - PR target/79747 - * final.c (shorten_branches): Build align_tab array with one - more element. - * opts.c (finish_options): Add alignment option limit check. - (MAX_CODE_ALIGN): Likewise. - (MAX_CODE_ALIGN_VALUE): Likewise. - * doc/invoke.texi: Document maximum allowed option value for - all -falign-* options. - -2018-02-19 Jakub Jelinek - - PR target/84146 - * reg-notes.def (REG_CALL_ARG_LOCATION): New reg note. - * insn-notes.def (NOTE_INSN_CALL_ARG_LOCATION): Remove. - * var-tracking.c (emit_note_insn_var_location): Remove all references - to NOTE_INSN_CALL_ARG_LOCATION. - (emit_notes_in_bb): Emit arguments as REG_CALL_ARG_LOCATION note on - the CALL_INSN rather than separate NOTE_INSN_CALL_ARG_LOCATION note. - Use copy_rtx_if_shared. - * dwarf2out.c (gen_subprogram_die): Use XEXP with 0 instead of - NOTE_VAR_LOCATION on ca_loc->call_arg_loc_note. - (dwarf2out_var_location): Remove handling of - NOTE_INSN_CALL_ARG_LOCATION, instead handle REG_CALL_ARG_LOCATION note - on call_insn. - * final.c (final_scan_insn): Remove all references to - NOTE_INSN_CALL_ARG_LOCATION. - (rest_of_clean_state): Likewise. Remove REG_CALL_ARG_LOCATION notes - before dumping final insns. - * except.c (emit_note_eh_region_end): Remove all references to - NOTE_INSN_CALL_ARG_LOCATION. - * config/alpha/alpha.c (alpha_pad_function_end): Likewise. - * config/c6x/c6x.c (c6x_gen_bundles): Likewise. - * config/arc/arc.c (hwloop_optimize): Likewise. - * config/arm/arm.c (create_fix_barrier): Likewise. - * config/s390/s390.c (s390_chunkify_start): Likewise. - * config/sh/sh.c (find_barrier): Likewise. - * config/i386/i386.c (rest_of_insert_endbranch, - ix86_seh_fixup_eh_fallthru): Likewise. - * config/xtensa/xtensa.c (hwloop_optimize): Likewise. - * config/iq2000/iq2000.c (final_prescan_insn): Likewise. - * config/frv/frv.c (frv_function_prologue): Likewise. - * emit-rtl.c (try_split): Likewise. Copy over REG_CALL_ARG_LOCATION - reg note. - (note_outside_basic_block_p): Remove all references to - NOTE_INSN_CALL_ARG_LOCATION. - * gengtype.c (adjust_field_rtx_def): Likewise. - * print-rtl.c (rtx_writer::print_rtx_operand_code_0, print_insn): - Likewise. - * jump.c (cleanup_barriers, delete_related_insns): Likewise. - * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. - - PR c++/84444 - * builtins.c (builtin_mathfn_code): Don't check if CALL_EXPR_FN (t) - is ADDR_EXPR. - - PR tree-optimization/84452 - * tree-vect-patterns.c (vect_recog_pow_pattern): Don't call - expand_simd_clones if targetm.simd_clone.compute_vecsize_and_simdlen - is NULL. - -2018-02-19 Martin Liska - - PR sanitizer/82183 - * passes.def: Put pass_sancov_O0 before pass_lower_switch with -O0. - -2018-02-19 Martin Liska - Richard Sandiford - - PR tree-optimization/82491 - * gimple-fold.c (get_base_constructor): Make earlier bail out - to prevent ubsan. - -2018-02-19 Carl Love - - * config/rs6000/rs6000-builtin.def: Change NEG macro expansions from - BU_ALTIVEC_A to BU_P8V_AV_1 and BU_ALTIVEC_OVERLOAD_1 to - BU_P8V_OVERLOAD_1. - * config/rs6000/rs6000-c.c: Change ALTIVEC_BUILTIN_VEC_NEG to - P8V_BUILTIN_VEC_NEG. - -2018-02-19 Sebastian Perta - - * config/rl78/rl78.md (movdf): New define expand. - -2018-02-19 Martin Liska - - PR other/80589 - * doc/invoke.texi: Fix typo. - * params.def (PARAM_MAX_LOOP_HEADER_INSNS): Likewise. - -2018-02-18 Segher Boessenkool - - * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't - handle rs6000_single_float and rs6000_double_float specially for - e500 family CPUs. - -2018-02-16 Jeff Law - - * config/rx/rx.c (add_pop_cfi_notes): New function.; - (pop_regs): Use it. - -2018-02-16 Jakub Jelinek - - PR ipa/84425 - * ipa-inline.c (inline_small_functions): Fix a typo. - -2018-02-16 Nathan Sidwell - - * doc/extend.texi (Backwards Compatibility): Americanize 'behaviour'. - -2018-02-16 Carl Love - - * config/rs6000/rs6000-builtin.def: Add BU_P8V_VSX_2 macro definition. - Change FLOAT2 expansions from BU_VSX_2 to BU_P8V_VSX_2 and - from BU_VSX_OVERLOAD_2 to BU_P8V_OVERLOAD_2. - * config/rs6000/rs6000-c.c: Changed macro VSX_BUILTIN_VEC_FLOAT2 - expansion to P8V_BUILTIN_VEC_FLOAT2. - -2018-02-16 Vladimir Makarov - - PR rtl-optimization/70023 - * lra-constraints.c (inherit_in_ebb): Take hard reg mode of - src_regno into account. - -2018-02-16 Carl Love - - * config/rs6000/altivec.h: Remove vec_vextract4b and vec_vinsert4b. - * config/rs6000/rs6000-builtin.def: Remove macro expansion for - VEXTRACT4B, VINSERT4B, VINSERT4B_DI and VEXTRACT4B. - * config/rs6000/rs6000.c: Remove case statements for - P9V_BUILTIN_VEXTRACT4B, P9V_BUILTIN_VEC_VEXTRACT4B, - P9V_BUILTIN_VINSERT4B, P9V_BUILTIN_VINSERT4B_DI, - and P9V_BUILTIN_VEC_VINSERT4B. - * config/rs6000/rs6000-c.c (altivec_expand_builtin): Remove entries for - P9V_BUILTIN_VEC_VEXTRACT4B and P9V_BUILTIN_VEC_VINSERT4B. - * config/rs6000/vsx.md: - * doc/extend.texi: Remove vec_vextract4b, non ABI definitions for - vec_insert4b. - -2018-02-16 Carl Love - - * config/rs6000/altivec.h: Add builtin names vec_extract4b - vec_insert4b. - * config/rs6000/rs6000-builtin.def: Add INSERT4B and EXTRACT4B - definitions. - * config/rs6000/rs6000-c.c: Add the definitions for - P9V_BUILTIN_VEC_EXTRACT4B and P9V_BUILTIN_VEC_INSERT4B. - * config/rs6000/rs6000.c (altivec_expand_builtin): Add - P9V_BUILTIN_EXTRACT4B and P9V_BUILTIN_INSERT4B case statements. - * config/rs6000/vsx.md: Add define_insn extract4b. Add define_expand - definition for insert4b and define insn *insert3b_internal. - * doc/extend.texi: Add documentation for vec_extract4b. - -2018-02-16 Nathan Sidwell - - * doc/extend.texi (Backwards Compatibility): Mention friend - injection. Note for-scope is deprecated. - * doc/invoke.texi (-ffriend-injection): Deprecate. - -2018-02-16 Segher Boessenkool - - * combine.c (try_combine): When adjusting LOG_LINKS for the destination - that moved to I2, also allow destinations that are a paradoxical - subreg (instead of a normal reg). - -2018-02-16 Oleg Endo - - PR target/83831 - * config/rx/rx.c (rx_fuse_in_memory_bitop): Convert shift operand - to QImode. - -2018-02-16 Richard Biener - - PR tree-optimization/84037 - PR tree-optimization/84016 - PR target/82862 - * config/i386/i386.c (ix86_builtin_vectorization_cost): - Adjust vec_construct for the fact we need additional higher latency - 128bit inserts for AVX256 and AVX512 vector builds. - (ix86_add_stmt_cost): Scale vector construction cost for - elementwise loads. - -2018-02-16 Richard Biener - - PR tree-optimization/84417 - * tree-ssa.c (non_rewritable_mem_ref_base): Properly constrain - the MEM_REF offset when conversion to BIT_FIELD_REF is desired. - (non_rewritable_lvalue_p): Likewise, use poly-ints. - -2018-02-16 Martin Liska - - PR sanitizer/84307 - * internal-fn.def (ASAN_CHECK): Set proper flags. - (ASAN_MARK): Likewise. - -2018-02-16 Julia Koval - - * config/i386/i386.c (ix86_option_override_internal): Remove PTA_CLWB - from PTA_CANNONLAKE. - -2018-02-16 Jakub Jelinek - - PR target/84272 - * config/aarch64/cortex-a57-fma-steering.c (fma_forest::merge_forest): - Use ++iter rather than iter++ for std::list iterators. - (func_fma_steering::dfs): Likewise. Don't delete nodes right away, - defer deleting them until all nodes in the forest are processed. Do - free even leaf nodes. Change to_process into auto_vec. - - PR bootstrap/84405 - * system.h (BROKEN_VALUE_INITIALIZATION): Define for GCC < 4.3. - * vec.h (vec_default_construct): Use memset instead of placement new - if BROKEN_VALUE_INITIALIZATION is defined. - * hash-table.h (hash_table::empty_slow): Use - memset instead of value initialization if BROKEN_VALUE_INITIALIZATION - is defined. - - PR rtl-optimization/83723 - * lra-int.h (lra_substitute_pseudo): Add DEBUG_P argument. - * lra.c (lra_substitute_pseudo): Likewise. If true, use - gen_rtx_raw_SUBREG instead of gen_rtx_SUBREG. Pass DEBUG_P to - recursive calls. - (lra_substitute_pseudo_within_insn): Adjust lra_substitute_pseudo - callers. - * lra-constraints.c (inherit_reload_reg, split_reg): Likewise. - -2018-02-16 Eric Botcazou - - PR rtl-optimization/81443 - * rtlanal.c (num_sign_bit_copies1) : Do not propagate results - from inner REGs to paradoxical SUBREGs. - -2018-02-16 Richard Biener - - PR tree-optimization/84399 - * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): - For operands we can analyze at their definition make sure we can - analyze them at each use as well. - -2018-02-16 Richard Biener - - PR tree-optimization/84190 - * tree-ssa.c (non_rewritable_mem_ref_base): Do not touch - volatile accesses if the decl isn't volatile. - -2018-02-15 Jason Merrill - - PR c++/84314 - ICE with templates and fastcall attribute. - * attribs.c (build_type_attribute_qual_variant): Don't clobber - TYPE_CANONICAL on an existing type. - -2018-02-15 Jakub Jelinek - - PR tree-optimization/84383 - * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Don't look at - dstoff nor call operand_equal_p if dstbase is NULL. - - PR tree-optimization/84334 - * match.pd ((A +- CST1) +- CST2 -> A + CST3): If A is - also a CONSTANT_CLASS_P, punt. - -2018-02-14 Jim Wilson - - * config/riscv/riscv.c (riscv_first_stack_step): Move locals after - first SMALL_OPERAND check. New local min_second_step. Move assert - to where locals are set. Add TARGET_RVC support. - * config/riscv/riscv.h (C_SxSP_BITS, SWSP_REACH, SDSP_REACH): New. - -2018-02-14 Indu Bhagat - - * doc/invoke.texi: Correct -Wformat-overflow code sample. - -2018-02-14 Martin Sebor - - PR tree-optimization/83698 - * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For - arrays constrain the offset range to their bounds. - (builtin_access::strcat_overlap): Adjust the bounds of overlap offset. - (builtin_access::overlap): Avoid setting the size of overlap if it's - already been set. - (maybe_diag_overlap): Also consider arrays when deciding what values - of offsets to include in diagnostics. - -2018-02-14 Martin Sebor - - PR c/84108 - * attribs.c (diag_attr_exclusions): Consider the exclusion(s) - that correspond to the kind of a declaration. - -2018-02-14 John David Anglin - - PR target/83984 - * config/pa/pa.md: Load address of PIC label using the linkage table - if the label is nonlocal. - -2018-02-14 Kelvin Nilsen - - * config/rs6000/rs6000.c (rs6000_option_override_internal): Issue - warning message if user requests -maltivec=be. - * doc/invoke.texi: Document deprecation of -maltivec=be. - -2018-02-14 Will Schmidt - - PR target/84220 - * config/rs6000/rs6000-c.c: Update definitions for - ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SLDW, - VEC_XXSLDWI and ALTIVEC_BUILTIN_VEC_XXPERMDI builtins. - -2018-02-14 Igor Tsimbalist - - PR target/84239 - * config/i386/cetintrin.h: Remove _rdssp[d|q] and - add _get_ssp intrinsics. Remove argument from - __builtin_ia32_rdssp[d|q]. - * config/i386/i386-builtin-types.def: Add UINT_FTYPE_VOID. - * config/i386/i386-builtin.def: Remove argument from - __builtin_ia32_rdssp[d|q]. - * config/i386/i386.c: Use UINT_FTYPE_VOID. Use - ix86_expand_special_args_builtin for _rdssp[d|q]. - * config/i386/i386.md: Remove argument from rdssp[si|di] insn. - Clear register before usage. - * doc/extend.texi: Remove argument from __builtin_ia32_rdssp[d|q]. - Add documentation for new _get_ssp and _inc_ssp intrinsics. - -2018-02-14 Richard Sandiford - - PR tree-optimization/84357 - * tree-data-ref.c (object_address_invariant_in_loop_p): Check - operand 1 of an ARRAY_REF too. - -2018-02-14 Oleg Endo - - PR target/83831 - * config/rx/rx-protos.h (rx_reg_dead_or_unused_after_insn, - rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New - declarations. - (set_of_reg): New struct. - (rx_find_set_of_reg, rx_find_use_of_reg): New functions. - * config/rx/rx.c (rx_reg_dead_or_unused_after_insn, - rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New - functions. - * config/rx/rx.md (andsi3, iorsi3, xorsi3): Convert to insn_and_split. - Split into bitclr, bitset, bitinvert patterns if appropriate. - (*bitset, *bitinvert, *bitclr): Convert to named insn_and_split and - use rx_fuse_in_memory_bitop. - (*bitset_in_memory, *bitinvert_in_memory, *bitclr_in_memory): Convert - to named insn, correct maximum insn length. - -2018-02-14 Jozef Lawrynowicz - - PR target/79242 - * machmode.def: Define a complex mode for PARTIAL_INT. - * genmodes.c (complex_class): Return MODE_COMPLEX_INT for - MODE_PARTIAL_INT. - * doc/rtl.texi: Document CSPImode. - * config/msp430/msp430.c (msp430_hard_regno_nregs): Add CPSImode - handling. - (msp430_hard_regno_nregs_with_padding): Likewise. - -2018-02-13 Peter Bergner - - PR target/84279 - * config/rs6000/rs6000.c (mem_operand_gpr): Disallow altivec addresses. - -2018-02-13 Segher Boessenkool - - PR rtl-optimization/84169 - * combine.c (try_combine): New variable split_i2i3. Set it to true if - we generated a parallel as new i3 and we split that to new i2 and i3 - instructions. Handle split_i2i3 similar to swap_i2i3: scan the - LOG_LINKs of i3 to see which of those need to link to i2 now. Link - those to i2, not i1. Partially rewrite this scan code. - -2018-02-13 Jakub Jelinek - - PR c/82210 - * stor-layout.c (place_field): For variable length fields, adjust - offset_align afterwards not just based on the field's alignment, - but also on the size. - - PR middle-end/84309 - * match.pd (pow(C,x) -> exp(log(C)*x)): Use exp2s and log2s instead - of exps and logs in the use_exp2 case. - -2018-02-13 Jeff Law - - * config/rl/rl78.c (rl78_attribute_table): Fix terminator and - entry for "vector". - - * config/rl78/rl78.c (rl78_handle_func_attribute): Mark - ARGS as unused. - -2018-02-13 Alexandre Oliva - - PR debug/84342 - PR debug/84319 - * common.opt (gas-loc-support, gas-locview-support): New. - (ginline-points, ginternal-reset-location-views): New. - * doc/invoke.texi: Document them. Use @itemx where intended. - (gvariable-location-views): Adjust. - * target.def (reset_location_view): New. - * doc/tm.texi.in (DWARF2_ASM_VIEW_DEBUG_INFO): New. - (TARGET_RESET_LOCATION_VIEW): New. - * doc/tm.texi: Rebuilt. - * dwarf2out.c (dwarf2out_default_as_loc_support): New. - (dwarf2out_default_as_locview_support): New. - (output_asm_line_debug_info): Use option variables. - (dwarf2out_maybe_output_loclist_view_pair): Likewise. - (output_loc_list): Likewise. - (add_high_low_attributes): Check option variables. - Don't output entry view attribute in strict mode. - (gen_inlined_subroutine_die): Check option variables. - (dwarf2out_inline_entry): Likewise. - (init_sections_and_labels): Likewise. - (dwarf2out_early_finish): Likewise. - (maybe_reset_location_view): New, from... - (dwarf2out_var_location): ... here. Call it. - * debug.h (dwarf2out_default_as_loc_support): Declare. - (dwarf2out_default_as_locview_support): Declare. - * hooks.c (hook_int_rtx_insn_0): New. - * hooks.h (hook_int_rtx_insn_0): Declare. - * toplev.c (process_options): Take -gas-loc-support and - -gas-locview-support from dwarf2out. Enable - -gvariable-location-views by default only with locview - assembler support. Enable -ginternal-reset-location-views by - default only if the target defines the corresponding hook. - Enable -ginline-points by default if location views are - enabled; force it disabled if statement frontiers are - disabled. - * tree-inline.c (expand_call_inline): Check option variables. - * tree-ssa-live.c (remove_unused_scope_block_p): Likewise. - -2018-02-13 Richard Sandiford - - PR tree-optimization/84321 - * tree-vrp.c (intersect_range_with_nonzero_bits): Fix VR_ANTI_RANGE - handling. Also check whether the anti-range contains any values - that satisfy the mask; switch to a VR_RANGE if not. - -2018-02-13 Paolo Bonzini - - PR sanitizer/84340 - * internal-fn.def (ASAN_CHECK, ASAN_MARK): Revert changes to fnspec. - -2018-02-13 Martin Jambor - - PR c++/83990 - * ipa-param-manipulation.c (ipa_modify_call_arguments): Use location - of call statements, also set location of a load to a temporary. - -2018-02-13 Sebastian Perta - - * config/rl78/rl78.c (add_vector_labels): New function. - * config/rl78/rl78.c (rl78_handle_vector_attribute): New function. - * config/rl78/rl78.c (rl78_start_function): Call add_vector_labels. - * config/rl78/rl78.c (rl78_handle_func_attribute): Removed the assert - which checks that no arguments are passed. - * config/rl78/rl78.c (rl78_attribute_table): Add "vector" attribute. - * doc/extend.texi: Documentation for the new attribute. - -2018-02-13 Andreas Schwab - - * config/riscv/linux.h (CPP_SPEC): Define. - -2018-02-13 Jakub Jelinek - - PR target/84335 - * config/i386/i386.c (ix86_init_mmx_sse_builtins): Pass - OPTION_MASK_ISA_AES | OPTION_MASK_ISA_SSE2 instead of - OPTION_MASK_ISA_AES as first argument to def_builtin_const - for AES builtins. Pass OPTION_MASK_ISA_PCLMUL | OPTION_MASK_ISA_SSE2 - instead of OPTION_MASK_ISA_PCLMUL as first argument to - def_builtin_const for __builtin_ia32_pclmulqdq128 builtin. - * config/i386/wmmintrin.h: If __SSE2__ is not defined, enable it - temporarily for AES and PCLMUL builtins. - - PR tree-optimization/84339 - * gimple-fold.c (get_range_strlen): Set *FLEXP to true when handling - ARRAY_REF where first operand is array_at_struct_end_p COMPONENT_REF. - Formatting fixes. - - PR middle-end/84309 - * match.pd (pow(C,x) -> exp(log(C)*x)): Optimize instead into - exp2(log2(C)*x) if C is a power of 2 and c99 runtime is available. - * generic-match-head.c (canonicalize_math_after_vectorization_p): New - inline function. - * gimple-match-head.c (canonicalize_math_after_vectorization_p): New - inline function. - * omp-simd-clone.h: New file. - * omp-simd-clone.c: Include omp-simd-clone.h. - (expand_simd_clones): No longer static. - * tree-vect-patterns.c: Include fold-const-call.h, attribs.h, - cgraph.h and omp-simd-clone.h. - (vect_recog_pow_pattern): Optimize pow(C,x) to exp(log(C)*x). - (vect_recog_widen_shift_pattern): Formatting fix. - (vect_pattern_recog_1): Don't check optab for calls. - - PR target/84336 - * config/i386/sse.md (_vpermi2var3_mask): Force - operands[2] into a REG before using gen_lowpart on it. - -2018-02-12 Jeff Law - - PR target/83760 - * config/sh/sh.c (find_barrier): Consider a sibling call - a barrier as well. - - * cse.c (try_back_substitute_reg): Move any REG_ARGS_SIZE note when - successfully back substituting a reg. - -2018-02-12 Richard Biener - - PR tree-optimization/84037 - * tree-vect-slp.c (vect_analyze_slp_cost): Add visited - parameter, move visited init to caller. - (vect_slp_analyze_operations): Separate cost from validity - check, initialize visited once for all instances. - (vect_schedule_slp): Analyze map to CSE vectorized nodes once - for all instances. - * tree-vect-stmts.c (vect_model_simple_cost): Make early - out an assert. - (vect_model_promotion_demotion_cost): Likewise. - (vectorizable_bswap): Guard cost modeling with !slp_node - instead of !PURE_SLP_STMT to avoid double-counting on hybrid - SLP stmts. - (vectorizable_call): Likewise. - (vectorizable_conversion): Likewise. - (vectorizable_assignment): Likewise. - (vectorizable_shift): Likewise. - (vectorizable_operation): Likewise. - (vectorizable_store): Likewise. - (vectorizable_load): Likewise. - (vectorizable_condition): Likewise. - (vectorizable_comparison): Likewise. - -2018-02-12 Paolo Bonzini - - PR sanitizer/84307 - * internal-fn.def (ASAN_CHECK): Fix fnspec to account for return value. - (ASAN_MARK): Fix fnspec to account for return value, change pointer - argument from 'R' to 'W' so that the pointed-to datum is clobbered. - -2018-02-08 Jan Hubicka - - PR middle-end/83665 - * params.def (inline-min-speedup): Increase from 8 to 15. - (max-inline-insns-auto): Decrease from 40 to 30. - * ipa-split.c (consider_split): Add some buffer for function to - be considered inlining candidate. - * invoke.texi (max-inline-insns-auto, inline-min-speedup): UPdate - default values. - -2018-02-12 Richard Biener - - PR tree-optimization/84037 - * tree-vect-slp.c (vect_build_slp_tree_2): Try swapping the - matched stmts if we cannot swap the non-matched ones. - -2018-02-12 Olga Makhotina - - * config/i386/avx512fintrin.h (_mm_mask_scalef_round_sd, - _mm_maskz_scalef_round_sd, _mm_mask_scalef_round_ss, - _mm_maskz_scalef_round_ss): New intrinsics. - (__builtin_ia32_scalefsd_round, __builtin_ia32_scalefss_round): Fix. - * config/i386/i386-builtin.def (__builtin_ia32_scalefsd_round, - __builtin_ia32_scalefss_round): Remove. - (__builtin_ia32_scalefsd_mask_round, - __builtin_ia32_scalefss_mask_round): New intrinsics. - * config/i386/sse.md (vmscalef): Renamed to ... - (vmscalef): ... this. - ((match_operand:VF_128 2 "" - "")): Changed to ... - ((match_operand:VF_128 2 "" - "")): ... this. - ("vscalef\t{%2, %1, %0| - %0, %1, %2}"): Changed to ... - ("vscalef\t{%2, %1, - %0|%0, %1, - %2}"): ... this. - * config/i386/subst.md (round_scalar_nimm_predicate): New. - -2018-02-12 Olga Makhotina - - * config/i386/avx512fintrin.h (_mm_mask_sqrt_round_sd) - (_mm_maskz_sqrt_round_sd, _mm_mask_sqrt_round_ss) - (_mm_maskz_sqrt_round_ss): New intrinsics. - (__builtin_ia32_sqrtsd_round, __builtin_ia32_sqrtss_round): Remove. - (__builtin_ia32_sqrtsd_mask_round) - (__builtin_ia32_sqrtss_mask_round): New builtins. - * config/i386/i386-builtin.def (__builtin_ia32_sqrtsd_round) - (__builtin_ia32_sqrtss_round): Remove. - (__builtin_ia32_sqrtsd_mask_round) - (__builtin_ia32_sqrtss_mask_round): New builtins. - * config/i386/sse.md (vmsqrt2): Renamed to ... - (vmsqrt2): ... this. - ((match_operand:VF_128 1 "vector_operand" - "xBm,")): Changed to ... - ((match_operand:VF_128 1 "vector_operand" - "xBm,")): ... this. - (vsqrt\t{%1, %2, %0| - %0, %2, %1}): Changed to ... - (vsqrt\t{%1, %2, - %0|%0, %2, - %1}): ... this. - ((set_attr "prefix" "")): Changed to ... - ((set_attr "prefix" "")): ... this. - -2018-02-11 Steven Munroe - - PR target/84266 - * config/rs6000/mmintrin.h (_mm_cmpeq_pi32 [_ARCH_PWR9]): - Cast vec_cmpeq result to correct type. - * config/rs6000/mmintrin.h (_mm_cmpgt_pi32 [_ARCH_PWR9]): - Cast vec_cmpgt result to correct type. - -2018-02-11 Alexandre Oliva - - * final.c (final_scan_insn_1): Renamed from... - (final_scan_insn): ... this. New wrapper, to recover - seen from the outermost call in recursive ones. - * config/sparc/sparc.c (output_return): Drop seen from call. - (output_sibcall): Likewise. - * config/visium/visium.c (output_branch): Likewise. - -2018-02-10 John David Anglin - - * config/pa/pa.c (hppa_profile_hook): Mark SYMBOL_REF for _mcount as - function label. - -2018-02-10 Alan Modra - - PR target/84300 - * config/rs6000/rs6000.md (split_stack_return): Remove (use ..). - Specify LR as an input. - -2018-02-10 Jakub Jelinek - - PR sanitizer/83987 - * omp-low.c (maybe_remove_omp_member_access_dummy_vars, - remove_member_access_dummy_vars): New functions. - (lower_omp_for, lower_omp_taskreg, lower_omp_target, - lower_omp_1, execute_lower_omp): Use them. - - PR rtl-optimization/84308 - * shrink-wrap.c (spread_components): Release todo vector. - -2018-02-09 Vladimir Makarov - - PR rtl-optimization/57193 - * ira-color.c (struct allocno_color_data): Add member - conflict_allocno_hard_prefs. - (update_conflict_allocno_hard_prefs): New. - (bucket_allocno_compare_func): Add a preference based on - conflict_allocno_hard_prefs. - (push_allocno_to_stack): Update conflict_allocno_hard_prefs. - (color_allocnos): Remove a dead code. Initiate - conflict_allocno_hard_prefs. Call update_costs_from_prefs. - -2018-02-09 Jakub Jelinek - - PR target/84226 - * config/rs6000/vsx.md (p9_xxbrq_v16qi): Change input operand - constraint from =wa to wa. Avoid a subreg on the output operand, - instead use a pseudo and subreg it in a move. - (p9_xxbrd_): Changed to ... - (p9_xxbrd_v2di): ... this insn, without VSX_D iterator. - (p9_xxbrd_v2df): New expander. - (p9_xxbrw_): Changed to ... - (p9_xxbrw_v4si): ... this insn, without VSX_W iterator. - (p9_xxbrw_v4sf): New expander. - -2018-02-09 Sebastian Perta - - * config/rx/rx.md (movsicc): Update expander to be matched by GCC. - -2018-02-09 Peter Bergner - - PR target/83926 - * config/rs6000/vsx.md (vsx_mul_v2di): Handle generating a 64-bit - multiply in 32-bit mode. - (vsx_div_v2di): Handle generating a 64-bit signed divide in 32-bit mode. - (vsx_udiv_v2di): Handle generating a 64-bit unsigned divide in 32-bit - mode. - -2018-02-09 Sebastian Perta - - * config/rx/constraints.md (CALL_OP_SYMBOL_REF): Added new constraint - to allow or block "symbol_ref" depending on the value of TARGET_JSR. - * config/rx/rx.md (call_internal): Use CALL_OP_SYMBOL_REF. - * config/rx/rx.md (call_value_internal): Use CALL_OP_SYMBOL_REF. - -2018-02-09 Pierre-Marie de Rodat - - PR lto/84213 - * dwarf2out.c (is_trivial_indirect_ref): New function. - (dwarf2out_late_global_decl): Do not generate a location - attribute for variables that have a non-trivial DECL_VALUE_EXPR - and that are not defined in the current unit. - -2018-02-09 Eric Botcazou - - * optabs.c (prepare_cmp_insn): Try harder to emit a direct comparison - instead of a libcall for UNORDERED. - -2018-02-09 Tamar Christina - - PR target/82641 - * config/arm/arm-c.c (arm_cpu_builtins): Un-define __ARM_FEATURE_LDREX, - __ARM_ARCH_PROFILE, __ARM_ARCH_ISA_THUMB, __ARM_FP and __ARM_NEON_FP. - -2018-02-09 Andreas Krebbel - - PR target/PR84295 - * config/s390/s390.c (s390_set_current_function): Invoke - s390_indirect_branch_settings also if fndecl didn't change. - -2018-02-09 Alexandre Oliva - - * config/rs6000/rs6000.md (blockage): Set length to zero. - -2018-02-09 Eric Botcazou - - * expr.c (optimize_bitfield_assignment_op): Remove obsolete assertion. - -2018-02-09 Jakub Jelinek - - PR sanitizer/84285 - * gcc.c (STATIC_LIBASAN_LIBS, STATIC_LIBTSAN_LIBS, - STATIC_LIBLSAN_LIBS, STATIC_LIBUBSAN_LIBS): Handle -static like - -static-lib*san. - - PR debug/84252 - * var-tracking.c (vt_add_function_parameter): Punt for non-onepart - PARALLEL incoming that failed vt_get_decl_and_offset check. - - PR middle-end/84237 - * output.h (bss_initializer_p): Add NAMED argument, defaulted to false. - * varasm.c (bss_initializer_p): Add NAMED argument, if true, ignore - TREE_READONLY bit. - (get_variable_section): For decls in named .bss* sections pass true as - second argument to bss_initializer_p. - -2018-02-09 Marek Polacek - Jakub Jelinek - - PR c++/83659 - * fold-const.c (fold_indirect_ref_1): Use VECTOR_TYPE_P macro. - Formatting fixes. Verify first that tree_fits_poly_int64_p (op01). - Sync some changes from cxx_fold_indirect_ref. - -2018-02-09 Alexandre Oliva - - * cfgexpand.c (expand_gimple_basic_block): Handle inline entry - markers. - * dwarf2out.c (dwarf2_debug_hooks): Enable inline_entry hook. - (BLOCK_INLINE_ENTRY_LABEL): New. - (dwarf2out_var_location): Disregard inline entry markers. - (inline_entry_data): New struct. - (inline_entry_data_hasher): New hashtable type. - (inline_entry_data_hasher::hash): New. - (inline_entry_data_hasher::equal): New. - (inline_entry_data_table): New variable. - (add_high_low_attributes): Add DW_AT_entry_pc and - DW_AT_GNU_entry_view attributes if a pending entry is found - in inline_entry_data_table. Add old entry_pc attribute only - if debug nonbinding markers are disabled. - (gen_inlined_subroutine_die): Set BLOCK_DIE if nonbinding - markers are enabled. - (block_within_block_p, dwarf2out_inline_entry): New. - (dwarf2out_finish): Check that no entries remained in - inline_entry_data_table. - * final.c (reemit_insn_block_notes): Handle inline entry notes. - (final_scan_insn, notice_source_line): Likewise. - (rest_of_clean_state): Skip inline entry markers. - * gimple-pretty-print.c (dump_gimple_debug): Handle inline entry - markers. - * gimple.c (gimple_build_debug_inline_entry): New. - * gimple.h (enum gimple_debug_subcode): Add - GIMPLE_DEBUG_INLINE_ENTRY. - (gimple_build_debug_inline_entry): Declare. - (gimple_debug_inline_entry_p): New. - (gimple_debug_nonbind_marker_p): Adjust. - * insn-notes.def (INLINE_ENTRY): New. - * print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle - inline entry marker notes. - (print_insn): Likewise. - * rtl.h (NOTE_MARKER_P): Add INLINE_ENTRY support. - (INSN_DEBUG_MARKER_KIND): Likewise. - (GEN_RTX_DEBUG_MARKER_INLINE_ENTRY_PAT): New. - * tree-inline.c (expand_call_inline): Build and insert - debug_inline_entry stmt. - * tree-ssa-live.c (remove_unused_scope_block_p): Preserve - inline entry blocks early, if nonbind markers are enabled. - (dump_scope_block): Dump fragment info. - * var-tracking.c (reemit_marker_as_note): Handle inline entry note. - * doc/gimple.texi (gimple_debug_inline_entry_p): New. - (gimple_build_debug_inline_entry): New. - * doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers): - Enable/disable inline entry points too. - * doc/rtl.texi (NOTE_INSN_INLINE_ENTRY): New. - (DEBUG_INSN): Describe inline entry markers. - - * common.opt (gvariable-location-views): New. - (gvariable-location-views=incompat5): New. - * config.in: Rebuilt. - * configure: Rebuilt. - * configure.ac: Test assembler for view support. - * dwarf2asm.c (dw2_asm_output_symname_uleb128): New. - * dwarf2asm.h (dw2_asm_output_symname_uleb128): Declare. - * dwarf2out.c (var_loc_view): New typedef. - (struct dw_loc_list_struct): Add vl_symbol, vbegin, vend. - (dwarf2out_locviews_in_attribute): New. - (dwarf2out_locviews_in_loclist): New. - (dw_val_equal_p): Compare val_view_list of dw_val_class_view_lists. - (enum dw_line_info_opcode): Add LI_adv_address. - (struct dw_line_info_table): Add view. - (RESET_NEXT_VIEW, RESETTING_VIEW_P): New macros. - (DWARF2_ASM_VIEW_DEBUG_INFO): Define default. - (zero_view_p): New variable. - (ZERO_VIEW_P): New macro. - (output_asm_line_debug_info): New. - (struct var_loc_node): Add view. - (add_AT_view_list, AT_loc_list): New. - (add_var_loc_to_decl): Add view param. Test it against last. - (new_loc_list): Add view params. Record them. - (AT_loc_list_ptr): Handle loc and view lists. - (view_list_to_loc_list_val_node): New. - (print_dw_val): Handle dw_val_class_view_list. - (size_of_die): Likewise. - (value_format): Likewise. - (loc_list_has_views): New. - (gen_llsym): Set vl_symbol too. - (maybe_gen_llsym, skip_loc_list_entry): New. - (dwarf2out_maybe_output_loclist_view_pair): New. - (output_loc_list): Output view list or entries too. - (output_view_list_offset): New. - (output_die): Handle dw_val_class_view_list. - (output_dwarf_version): New. - (output_compilation_unit_header): Use it. - (output_skeleton_debug_sections): Likewise. - (output_rnglists, output_line_info): Likewise. - (output_pubnames, output_aranges): Update version comments. - (output_one_line_info_table): Output view numbers in asm comments. - (dw_loc_list): Determine current endview, pass it to new_loc_list. - Call maybe_gen_llsym. - (loc_list_from_tree_1): Adjust. - (add_AT_location_description): Create view list attribute if - needed, check it's absent otherwise. - (convert_cfa_to_fb_loc_list): Adjust. - (maybe_emit_file): Call output_asm_line_debug_info for test. - (dwarf2out_var_location): Reset views as needed. Precompute - add_var_loc_to_decl args. Call get_attr_min_length only if we have the - attribute. Set view. - (new_line_info_table): Reset next view. - (set_cur_line_info_table): Call output_asm_line_debug_info for test. - (dwarf2out_source_line): Likewise. Output view resets and labels to - the assembler, or select appropriate line info opcodes. - (prune_unused_types_walk_attribs): Handle dw_val_class_view_list. - (optimize_string_length): Catch it. Adjust. - (resolve_addr): Copy vl_symbol along with ll_symbol. Handle - dw_val_class_view_list, and remove it if no longer needed. - (hash_loc_list): Hash view numbers. - (loc_list_hasher::equal): Compare them. - (optimize_location_lists): Check whether a view list symbol is - needed, and whether the locview attribute is present, and - whether they match. Remove the locview attribute if no longer - needed. - (index_location_lists): Call skip_loc_list_entry for test. - (dwarf2out_finish): Call output_asm_line_debug_info for test. - Use output_dwarf_version. - * dwarf2out.h (enum dw_val_class): Add dw_val_class_view_list. - (struct dw_val_node): Add val_view_list. - * final.c (SEEN_NEXT_VIEW): New. - (set_next_view_needed): New. - (clear_next_view_needed): New. - (maybe_output_next_view): New. - (final_start_function): Rename to... - (final_start_function_1): ... this. Take pointer to FIRST, - add SEEN parameter. Emit param bindings in the initial view. - (final_start_function): Reintroduce SEEN-less interface. - (final): Rename to... - (final_1): ... this. Take SEEN parameter. Output final pending - next view at the end. - (final): Reintroduce seen-less interface. - (final_scan_insn): Output pending next view before switching - sections or ending a block. Mark the next view as needed when - outputting variable locations. Notify debug backend of section - changes, and of location view changes. - (rest_of_handle_final): Adjust. - * toplev.c (process_options): Autodetect value for debug variable - location views option. Warn on incompat5 without -gdwarf-5. - * doc/invoke.texi (gvariable-location-views): New. - (gvariable-location-views=incompat5): New. - (gno-variable-location-views): New. - -2018-02-08 David Malcolm - - PR tree-optimization/84136 - * tree-cfg.c (find_taken_edge_computed_goto): Remove assertion - that the result of find_edge is non-NULL. - -2018-02-08 Sergey Shalnov - - PR target/83008 - * config/i386/x86-tune-costs.h (skylake_cost): Fix cost of - storing integer register in SImode. Fix cost of 256 and 512 - byte aligned SSE register store. - -2018-02-08 Sergey Shalnov - - * config/i386/i386.c (ix86_multiplication_cost): Fix - multiplication cost for TARGET_AVX512DQ. - -2018-02-08 Marek Polacek - - PR tree-optimization/84238 - * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Verify the result of - get_range_strlen. - -2018-02-08 Richard Sandiford - - PR tree-optimization/84265 - * tree-vect-stmts.c (vectorizable_store): Don't treat - VMAT_CONTIGUOUS accesses as grouped. - (vectorizable_load): Likewise. - -2018-02-08 Richard Sandiford - - PR tree-optimization/81635 - * wide-int.h (wi::round_down_for_mask, wi::round_up_for_mask): Declare. - * wide-int.cc (wi::round_down_for_mask, wi::round_up_for_mask) - (test_round_for_mask): New functions. - (wide_int_cc_tests): Call test_round_for_mask. - * tree-vrp.h (intersect_range_with_nonzero_bits): Declare. - * tree-vrp.c (intersect_range_with_nonzero_bits): New function. - * tree-data-ref.c (split_constant_offset_1): Use it to refine the - range returned by get_range_info. - -2018-02-08 Jan Hubicka - - PR ipa/81360 - * cgraph.h (symtab_node::output_to_lto_symbol_table_p): Declare - * symtab.c: Include builtins.h - (symtab_node::output_to_lto_symbol_table_p): Move here - from lto-streamer-out.c:output_symbol_p. - * lto-streamer-out.c (write_symbol): Turn early exit to assert. - (output_symbol_p): Move all logic to symtab.c - (produce_symtab): Update. - -2018-02-08 Andreas Krebbel - - * config/s390/s390-opts.h (enum indirect_branch): Define. - * config/s390/s390-protos.h (s390_return_addr_from_memory) - (s390_indirect_branch_via_thunk) - (s390_indirect_branch_via_inline_thunk): Add function prototypes. - (enum s390_indirect_branch_type): Define. - * config/s390/s390.c (struct s390_frame_layout, struct - machine_function): Remove. - (indirect_branch_prez10thunk_mask, indirect_branch_z10thunk_mask) - (indirect_branch_table_label_no, indirect_branch_table_name): - Define variables. - (INDIRECT_BRANCH_NUM_OPTIONS): Define macro. - (enum s390_indirect_branch_option): Define. - (s390_return_addr_from_memory): New function. - (s390_handle_string_attribute): New function. - (s390_attribute_table): Add new attribute handler. - (s390_execute_label): Handle UNSPEC_EXECUTE_JUMP patterns. - (s390_indirect_branch_via_thunk): New function. - (s390_indirect_branch_via_inline_thunk): New function. - (s390_function_ok_for_sibcall): When jumping via thunk disallow - sibling call optimization for non z10 compiles. - (s390_emit_call): Force indirect branch target to be a single - register. Add r1 clobber for non-z10 compiles. - (s390_emit_epilogue): Emit return jump via return_use expander. - (s390_reorg): Handle JUMP_INSNs as execute targets. - (s390_option_override_internal): Perform validity checks for the - new command line options. - (s390_indirect_branch_attrvalue): New function. - (s390_indirect_branch_settings): New function. - (s390_set_current_function): Invoke s390_indirect_branch_settings. - (s390_output_indirect_thunk_function): New function. - (s390_code_end): Implement target hook. - (s390_case_values_threshold): Implement target hook. - (TARGET_ASM_CODE_END, TARGET_CASE_VALUES_THRESHOLD): Define target - macros. - * config/s390/s390.h (struct s390_frame_layout) - (struct machine_function): Move here from s390.c. - (TARGET_INDIRECT_BRANCH_NOBP_RET) - (TARGET_INDIRECT_BRANCH_NOBP_JUMP) - (TARGET_INDIRECT_BRANCH_NOBP_JUMP_THUNK) - (TARGET_INDIRECT_BRANCH_NOBP_JUMP_INLINE_THUNK) - (TARGET_INDIRECT_BRANCH_NOBP_CALL) - (TARGET_DEFAULT_INDIRECT_BRANCH_TABLE) - (TARGET_INDIRECT_BRANCH_THUNK_NAME_EXRL) - (TARGET_INDIRECT_BRANCH_THUNK_NAME_EX) - (TARGET_INDIRECT_BRANCH_TABLE): Define macros. - * config/s390/s390.md (UNSPEC_EXECUTE_JUMP) - (INDIRECT_BRANCH_THUNK_REGNUM): Define constants. - (mnemonic attribute): Add values which aren't recognized - automatically. - ("*cjump_long", "*icjump_long", "*basr", "*basr_r"): Disable - pattern for branch conversion. Fix mnemonic attribute. - ("*c", "*sibcall_br", "*sibcall_value_br", "*return"): Emit - indirect branch via thunk if requested. - ("indirect_jump", ""): Expand patterns for branch conversion. - ("*indirect_jump"): Disable for branch conversion using out of - line thunks. - ("indirect_jump_via_thunk_z10") - ("indirect_jump_via_thunk") - ("indirect_jump_via_inlinethunk_z10") - ("indirect_jump_via_inlinethunk", "*casesi_jump") - ("casesi_jump_via_thunk_z10", "casesi_jump_via_thunk") - ("casesi_jump_via_inlinethunk_z10") - ("casesi_jump_via_inlinethunk", "*basr_via_thunk_z10") - ("*basr_via_thunk", "*basr_r_via_thunk_z10") - ("*basr_r_via_thunk", "return_prez10"): New pattern. - ("*indirect2_jump"): Disable for branch conversion. - ("casesi_jump"): Turn into expander and expand patterns for branch - conversion. - ("return_use"): New expander. - ("*return"): Emit return via thunk and rename it to ... - ("*return"): ... this one. - * config/s390/s390.opt: Add new options and and enum for the - option values. - -2018-02-08 Richard Sandiford - - * lra-constraints.c (match_reload): Unconditionally use - gen_lowpart_SUBREG, rather than selecting between that - and equivalent gen_rtx_SUBREG code. - -2018-02-08 Richard Biener - - PR tree-optimization/84233 - * tree-ssa-phiprop.c (propagate_with_phi): Use separate - changed flag instead of boguously re-using phi_inserted. - -2018-02-08 Martin Jambor - - * hsa-gen.c (get_symbol_for_decl): Set program allocation for - static local variables. - -2018-02-08 Richard Biener - - PR tree-optimization/84278 - * tree-vect-stmts.c (vectorizable_store): When looking for - smaller vector types to perform grouped strided loads/stores - make sure the mode is supported by the target. - (vectorizable_load): Likewise. - -2018-02-08 Wilco Dijkstra - - * config/aarch64/aarch64.c (aarch64_components_for_bb): - Increase LDP/STP opportunities by adding adjacent callee-saves. - -2018-02-08 Wilco Dijkstra - - PR rtl-optimization/84068 - PR rtl-optimization/83459 - * haifa-sched.c (rank_for_schedule): Fix SCHED_PRESSURE_MODEL sorting. - -2018-02-08 Aldy Hernandez - - PR tree-optimization/84224 - * gimple-ssa-warn-alloca.c (pass_walloca::execute): Remove assert. - * calls.c (gimple_alloca_call_p): Only return TRUE when we have - non-zero arguments. - -2018-02-07 Iain Sandoe - - PR target/84113 - * config/rs6000/altivec.md (*restore_world): Remove LR use. - * config/rs6000/predicates.md (restore_world_operation): Adjust op - count, remove one USE. - -2018-02-07 Michael Meissner - - * doc/install.texi (Configuration): Document the - --with-long-double-format={ibm,ieee} PowerPC configuration - options. - - PR target/84154 - * config/rs6000/rs6000.md (fix_trunc2): - Convert from define_expand to be define_insn_and_split. Rework - float/double/_Float128 conversions to QI/HI/SImode to work with - both ISA 2.07 (power8) or ISA 3.0 (power9). Fix regression where - conversions to QI/HImode types did a store and then a load to - truncate the value. For conversions to VSX registers, don't split - the insn, instead emit the code directly. Use the code iterator - any_fix to combine signed and unsigned conversions. - (fix_truncsi2_p8): Likewise. - (fixuns_trunc2): Likewise. - (fix_trunc2): Likewise. - (fix_trunc2): Likewise. - (fix_di2_hw): Likewise. - (fixuns_di2_hw): Likewise. - (fix_si2_hw): Likewise. - (fixuns_si2_hw): Likewise. - (fix_2_hw): Likewise. - (fix_trunc2): Likewise. - (fctiwz__smallint): Rename fctiwz__smallint to - fix_truncsi2_p8. - (fix_trunc2_internal): Delete, no longer used. - (fixuns_trunc2_internal): Likewise. - (fix__mem): Likewise. - (fctiwz__mem): Likewise. - (fix__mem): Likewise. - (fix_trunc2_mem): On ISA 3.0, prevent - the register allocator from doing a direct move to the GPRs to do - a store, and instead use the ISA 3.0 store byte/half-word from - vector register instruction. For IEEE 128-bit floating point, - also optimize stores of 32-bit ints. - (fix_trunc2_mem): Likewise. - -2018-02-07 Alan Hayward - - * genextract.c (push_pathstr_operand): New function to support - [a-zA-Z]. - (walk_rtx): Call push_pathstr_operand. - (print_path): Support [a-zA-Z]. - -2018-02-07 Richard Biener - - PR tree-optimization/84037 - * tree-vectorizer.h (struct _loop_vec_info): Add ivexpr_map member. - (cse_and_gimplify_to_preheader): Declare. - (vect_get_place_in_interleaving_chain): Likewise. - * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize - ivexpr_map. - (_loop_vec_info::~_loop_vec_info): Delete it. - (cse_and_gimplify_to_preheader): New function. - * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Export. - * tree-vect-stmts.c (vectorizable_store): CSE base and steps. - (vectorizable_load): Likewise. For grouped stores always base - the IV on the first element. - * tree-vect-loop-manip.c (vect_loop_versioning): Unshare versioning - condition before gimplifying. - -2018-02-07 Jakub Jelinek - - * tree-eh.c (operation_could_trap_helper_p): Ignore honor_trapv for - *DIV_EXPR and *MOD_EXPR. - -2018-02-07 H.J. Lu - - PR target/84248 - * config/i386/i386.c (ix86_option_override_internal): Mask out - the CF_SET bit when checking -fcf-protection. - -2018-02-07 Tom de Vries - - PR libgomp/84217 - * omp-expand.c (expand_oacc_collapse_init): Ensure diff_type is large - enough. - -2018-02-07 Richard Biener - - PR tree-optimization/84204 - * tree-chrec.c (chrec_fold_plus_1): Remove size limiting in - this place. - - PR tree-optimization/84205 - * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Also - special-case isl_ast_op_zdiv_r. - - PR tree-optimization/84223 - * graphite-scop-detection.c (gather_bbs::before_dom_children): - Only add conditions from within the region. - (gather_bbs::after_dom_children): Adjust. - -2018-02-07 Georg-Johann Lay - - PR target/84209 - * config/avr/avr.h (GENERAL_REGNO_P, GENERAL_REG_P): New macros. - * config/avr/avr.md: Only post-reload split REG-REG moves if - either register is GENERAL_REG_P. - -2018-02-07 Jakub Jelinek - - PR tree-optimization/84235 - * tree-ssa-scopedtables.c - (avail_exprs_stack::simplify_binary_operation): Fir MINUS_EXPR, punt - if the subtraction is performed in floating point type where NaNs are - honored. For *DIV_EXPR, punt for ALL_FRACT_MODE_Ps where we can't - build 1. Formatting fix. - -2018-02-06 Jakub Jelinek - - PR target/84146 - * config/i386/i386.c (rest_of_insert_endbranch): Only skip - NOTE_INSN_CALL_ARG_LOCATION after a call, not anything else, - and skip it regardless of bb boundaries. Use CALL_P macro, - don't test INSN_P (insn) together with CALL_P or JUMP_P check - unnecessarily, formatting fix. - -2018-02-06 Michael Collison - - * config/arm/thumb2.md: - (*thumb2_mov_negscc): Split only if TARGET_THUMB2 && !arm_restrict_it. - (*thumb_mov_notscc): Ditto. - -2018-02-06 Michael Meissner - - PR target/84154 - * config/rs6000/rs6000.md (su code attribute): Use "u" for - unsigned_fix, not "s". - -2018-02-06 Rainer Orth - - * configure.ac (gcc_fn_eh_frame_ro): New function. - (gcc_cv_as_cfi_directive): Check both 32 and 64-bit assembler for - correct .eh_frame permissions. - * configure: Regenerate. - -2018-02-06 Andrew Jenner - - * doc/invoke.texi: Add section for the PowerPC SPE backend. Remove - irrelevant options. - -2018-02-06 Bill Schmidt - - * config/rs6000/rs6000.c (rs6000_option_override_internal): - Display warning message for -mno-speculate-indirect-jumps. - -2018-02-06 Andrew Jenner - - * config/powerpcspe/powerpcspe.opt: (msimple-fpu, mfpu) Add - Undocumented. - * config/powerpcspe/sysv4.opt (mbit-align): Likewise. - -2018-02-06 Aldy Hernandez - - PR tree-optimization/84225 - * tree-eh.c (find_trapping_overflow): Only call - operation_no_trapping_overflow when ANY_INTEGRAL_TYPE_P. - -2018-02-06 Igor Tsimbalist - - PR target/84145 - * config/i386/i386.c: Reimplement the check of possible options - -mibt/-mshstk conbination. Change error messages. - * doc/invoke.texi: Fix a typo: remove extra '='. - -2018-02-06 Marek Polacek - - PR tree-optimization/84228 - * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Skip debug statements. - -2018-02-06 Tamar Christina - - PR target/82641 - * config/arm/arm.c (arm_print_asm_arch_directives): Record already - emitted arch directives. - * config/arm/arm-c.c (arm_cpu_builtins): Undefine __ARM_ARCH and - __ARM_FEATURE_COPROC before changing architectures. - -2018-02-06 Richard Biener - - * config/i386/i386.c (print_reg): Fix typo. - (ix86_loop_unroll_adjust): Do not unroll beyond the original nunroll. - -2018-02-06 Eric Botcazou - - * configure: Regenerate. - -2018-02-05 Martin Sebor - - PR tree-optimization/83369 - * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Use %G to print - inlining context. - -2018-02-05 Martin Liska - - * doc/invoke.texi: Cherry-pick upstream r323995. - -2018-02-05 Richard Sandiford - - * ira.c (ira_init_register_move_cost): Adjust comment. - -2018-02-05 Martin Liska - - PR gcov-profile/84137 - * doc/gcov.texi: Fix typo in documentation. - -2018-02-05 Martin Liska - - PR gcov-profile/83879 - * doc/gcov.texi: Document necessity of --dynamic-list-data when - using dlopen functionality. - -2018-02-05 Olga Makhotina - - * config/i386/avx512dqintrin.h (_mm_mask_range_sd, _mm_maskz_range_sd, - _mm_mask_range_round_sd, _mm_maskz_range_round_sd, _mm_mask_range_ss, - _mm_maskz_range_ss, _mm_mask_range_round_ss, - _mm_maskz_range_round_ss): New intrinsics. - (__builtin_ia32_rangesd128_round) - (__builtin_ia32_rangess128_round): Remove. - (__builtin_ia32_rangesd128_mask_round, - __builtin_ia32_rangess128_mask_round): New builtins. - * config/i386/i386-builtin.def (__builtin_ia32_rangesd128_round, - __builtin_ia32_rangess128_round): Remove. - (__builtin_ia32_rangesd128_mask_round, - __builtin_ia32_rangess128_mask_round): New builtins. - * config/i386/sse.md (ranges): Renamed to ... - (ranges): ... this. - ((match_operand:VF_128 2 "" - "")): Changed to ... - ((match_operand:VF_128 2 "" - "")): ... this. - ("vrange\t{%3, %2, %1, %0| - %0, %1, %2, %3}"): Changed to ... - ("vrange\t{%3, %2, - %1, %0|%0, %1, - %2, %3}"): ... this. - -2018-02-02 Andrew Jenner - - * config/powerpcspe/powerpcspe.opt: Add Undocumented to irrelevant - options. - * config/powerpcspe/powerpcspe-tables.opt (rs6000_cpu_opt_value): - Remove all values except native, 8540 and 8548. - -2018-02-02 H.J. Lu - - * config/i386/i386.c (ix86_output_function_return): Pass - INVALID_REGNUM, instead of -1, as invalid register number to - indirect_thunk_name and output_indirect_thunk. - -2018-02-02 Julia Koval - - * config.gcc: Add -march=icelake. - * config/i386/driver-i386.c (host_detect_local_cpu): Detect icelake. - * config/i386/i386-c.c (ix86_target_macros_internal): Handle icelake. - * config/i386/i386.c (processor_costs): Add m_ICELAKE. - (PTA_ICELAKE, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES, PTA_AVX512VBMI2, - PTA_VPCLMULQDQ, PTA_RDPID, PTA_AVX512BITALG): New. - (processor_target_table): Add icelake. - (ix86_option_override_internal): Handle new PTAs. - (get_builtin_code_for_version): Handle icelake. - (M_INTEL_COREI7_ICELAKE): New. - (fold_builtin_cpu): Handle icelake. - * config/i386/i386.h (TARGET_ICELAKE, PROCESSOR_ICELAKE): New. - * doc/invoke.texi: Add -march=icelake. - -2018-02-02 Julia Koval - - * config/i386/i386.c (ix86_option_override_internal): Change flags type - to wide_int_bitmask. - * wide-int-bitmask.h: New. - -2018-02-02 Igor Tsimbalist - - PR target/84066 - * config/i386/i386.md: Replace Pmode with word_mode in - builtin_setjmp_setup and builtin_longjmp to support x32. - -2018-02-01 Peter Bergner - - PR target/56010 - PR target/83743 - * config/rs6000/driver-rs6000.c: #include "diagnostic.h". - #include "opts.h". - (rs6000_supported_cpu_names): New static variable. - (linux_cpu_translation_table): Likewise. - (elf_platform) : Define new static variable and use it. - Translate kernel AT_PLATFORM name to canonical name if needed. - Error if platform name is unknown. - -2018-02-01 Aldy Hernandez - - PR target/84089 - * config/pa/predicates.md (base14_operand): Handle E_VOIDmode. - -2018-02-01 Jeff Law - - PR target/84128 - * config/i386/i386.c (release_scratch_register_on_entry): Add new - OFFSET and RELEASE_VIA_POP arguments. Use SP+OFFSET to restore - the scratch if RELEASE_VIA_POP is false. - (ix86_adjust_stack_and_probe_stack_clash): Un-constify SIZE. - If we have to save a temporary register, decrement SIZE appropriately. - Pass new arguments to release_scratch_register_on_entry. - (ix86_adjust_stack_and_probe): Likewise. - (ix86_emit_probe_stack_range): Pass new arguments to - release_scratch_register_on_entry. - -2018-02-01 Uros Bizjak - - PR rtl-optimization/84157 - * combine.c (change_zero_ext): Use REG_P predicate in - front of HARD_REGISTER_P predicate. - -2018-02-01 Georg-Johann Lay - - * config/avr/avr.c (avr_option_override): Move disabling of - -fdelete-null-pointer-checks to... - * common/config/avr/avr-common.c (avr_option_optimization_table): - ...here. - -2018-02-01 Richard Sandiford - - PR tree-optimization/81635 - * tree-data-ref.c (split_constant_offset_1): For types that - wrap on overflow, try to use range info to prove that wrapping - cannot occur. - -2018-02-01 Renlin Li - - PR target/83370 - * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle - TAILCALL_ADDR_REGS. - (aarch64_register_move_cost): Likewise. - * config/aarch64/aarch64.h (reg_class): Rename CALLER_SAVE_REGS to - TAILCALL_ADDR_REGS. - (REG_CLASS_NAMES): Likewise. - (REG_CLASS_CONTENTS): Rename CALLER_SAVE_REGS to - TAILCALL_ADDR_REGS. Remove IP registers. - * config/aarch64/aarch64.md (Ucs): Update register constraint. - -2018-02-01 Richard Biener - - * domwalk.h (dom_walker::dom_walker): Add additional constructor - for specifying RPO order and allow NULL for that. - * domwalk.c (dom_walker::dom_walker): Likewise. - (dom_walker::walk): Handle NULL RPO order. - * tree-into-ssa.c (rewrite_dom_walker): Do not walk dom children - in RPO order. - (rewrite_update_dom_walker): Likewise. - (mark_def_dom_walker): Likewise. - -2018-02-01 Richard Sandiford - - * config/aarch64/aarch64-protos.h (aarch64_split_sve_subreg_move) - (aarch64_maybe_expand_sve_subreg_move): Declare. - * config/aarch64/aarch64.md (UNSPEC_REV_SUBREG): New unspec. - * config/aarch64/predicates.md (aarch64_any_register_operand): New - predicate. - * config/aarch64/aarch64-sve.md (mov): Optimize subreg moves - that are semantically a reverse operation. - (*aarch64_sve_mov_subreg_be): New pattern. - * config/aarch64/aarch64.c (aarch64_maybe_expand_sve_subreg_move): - (aarch64_replace_reg_mode, aarch64_split_sve_subreg_move): New - functions. - (aarch64_can_change_mode_class): For big-endian, forbid changes - between two SVE modes if they have different element sizes. - -2018-02-01 Richard Sandiford - - * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector): Prefer - the TImode handling for big-endian targets. - -2018-02-01 Richard Sandiford - - * config/aarch64/aarch64-sve.md (sve_ld1rq): Replace with... - (*sve_ld1rq): ... this new pattern. Handle all element sizes, - not just bytes. - * config/aarch64/aarch64.c (aarch64_expand_sve_widened_duplicate): - Remove BSWAP handing for big-endian targets and use the form of - LD1RQ appropariate for the mode. - -2018-02-01 Richard Sandiford - - * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Handle - all CONST_VECTOR_DUPLICATE_P vectors, not just those with a single - duplicated element. - -2018-02-01 Richard Sandiford - - PR tearget/83845 - * config/aarch64/aarch64.c (aarch64_secondary_reload): Tighten - check for operands that need to go through aarch64_sve_reload_be. - -2018-02-01 Jakub Jelinek - - PR tree-optimization/81661 - PR tree-optimization/84117 - * tree-eh.h (rewrite_to_non_trapping_overflow): Declare. - * tree-eh.c: Include gimplify.h. - (find_trapping_overflow, replace_trapping_overflow, - rewrite_to_non_trapping_overflow): New functions. - * tree-vect-loop.c: Include tree-eh.h. - (vect_get_loop_niters): Use rewrite_to_non_trapping_overflow. - * tree-data-ref.c: Include tree-eh.h. - (get_segment_min_max): Use rewrite_to_non_trapping_overflow. - -2018-01-31 Uros Bizjak - - PR rtl-optimization/84123 - * combine.c (change_zero_ext): Check if hard register satisfies - can_change_dest_mode before calling gen_lowpart_SUBREG. - -2018-01-31 Vladimir Makarov - - PR target/82444 - * ira.c (ira_init_register_move_cost): Remove assert. - -2018-01-31 Eric Botcazou - - PR rtl-optimization/84071 - * doc/tm.texi.in (WORD_REGISTER_OPERATIONS): Add explicit case. - * doc/tm.texi: Regenerate. - -2018-01-31 Richard Biener - - PR tree-optimization/84132 - * tree-data-ref.c (analyze_miv_subscript): Properly - check whether evolution_function_is_affine_multivariate_p - before calling gcd_of_steps_may_divide_p. - -2018-01-31 Julia Koval - - PR target/83618 - * config/i386/i386.c (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID. - * config/i386/i386.md (rdpid_rex64) New. - (rdpid): Make 32bit only. - -2018-01-29 Aldy Hernandez - - PR lto/84105 - * tree-pretty-print.c (dump_generic_node): Handle a TYPE_NAME with - an IDENTIFIER_NODE for FUNCTION_TYPE's. - -2018-01-31 Eric Botcazou - - Revert - 2018-01-12 Eric Botcazou - - * config/sparc/sparc.md (vxworks_load_got): Set the GOT register. - -2018-01-31 Eric Botcazou - - PR rtl-optimization/84071 - * combine.c (record_dead_and_set_regs_1): Record the source unmodified - for a paradoxical SUBREG on a WORD_REGISTER_OPERATIONS target. - -2018-01-31 Claudiu Zissulescu - - * config/arc/arc.c (arc_handle_aux_attribute): New function. - (arc_attribute_table): Add 'aux' attribute. - (arc_in_small_data_p): Consider aux like variables. - (arc_is_aux_reg_p): New function. - (arc_asm_output_aligned_decl_local): Ignore 'aux' like variables. - (arc_get_aux_arg): New function. - (prepare_move_operands): Handle aux-register access. - (arc_handle_aux_attribute): New function. - * doc/extend.texi (ARC Variable attributes): Add subsection. - -2018-01-31 Claudiu Zissulescu - - * config/arc/arc-protos.h (arc_is_uncached_mem_p): Function proto. - * config/arc/arc.c (arc_handle_uncached_attribute): New function. - (arc_attribute_table): Add 'uncached' attribute. - (arc_print_operand): Print '.di' flag for uncached memory - accesses. - (arc_in_small_data_p): Do not consider for small data the uncached - types. - (arc_is_uncached_mem_p): New function. - * config/arc/predicates.md (compact_store_memory_operand): Check - for uncached memory accesses. - (nonvol_nonimm_operand): Likewise. - * doc/extend.texi (ARC Type Attribute): New subsection. - -2018-01-31 Jakub Jelinek - - PR c/84100 - * common.opt (falign-functions=, falign-jumps=, falign-labels=, - falign-loops=): Add Optimization flag. - -2018-01-30 Jeff Law - - 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. - -2018-01-30 Rainer Orth - - PR target/40411 - * config/sol2.h (STARTFILE_ARCH_SPEC): Use -std=c*, - -std=iso9899:199409 instead of -pedantic to select values-Xc.o. - -2018-01-30 Vladimir Makarov - - PR target/84112 - * lra-constraints.c (curr_insn_transform): Process AND in the - address. - -2018-01-30 Jakub Jelinek - - PR rtl-optimization/83986 - * sched-deps.c (sched_analyze_insn): For frame related insns, add anti - dependence against last_pending_memory_flush in addition to - pending_jump_insns. - -2018-01-30 Alexandre Oliva - - PR tree-optimization/81611 - * tree-ssa-dom.c (simple_iv_increment_p): Skip intervening - copies. - -2018-01-30 Aaron Sawdey - - PR target/83758 - * config/rs6000/rs6000.c (rs6000_internal_arg_pointer): Only return - a reg rtx. - -2018-01-30 Richard Biener - Jakub Jelinek - - PR tree-optimization/84111 - * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Skip - inner loops added during recursion, as they don't have up-to-date - SSA form. - -2018-01-30 Jan Hubicka - - PR ipa/81360 - * ipa-inline.c (can_inline_edge_p): Break out late tests to... - (can_inline_edge_by_limits_p): ... here. - (can_early_inline_edge_p, check_callers, - update_caller_keys, update_callee_keys, recursive_inlining, - add_new_edges_to_heap, speculation_useful_p, - inline_small_functions, - inline_small_functions, flatten_function, - inline_to_all_callers_1): Update. - -2018-01-30 Jan Hubicka - - * profile-count.c (profile_count::combine_with_ipa_count): Handle - zeros correctly. - -2018-01-30 Richard Biener - - PR tree-optimization/83008 - * tree-vect-slp.c (vect_analyze_slp_cost_1): Properly cost - invariant and constant vector uses in stmts when they need - more than one stmt. - -2018-01-30 Rainer Orth - - PR bootstrap/84017 - * configure.ac (gcc_cv_as_shf_merge): Disable on Solaris 10/x86. - * configure: Regenerate. - -2018-01-30 Richard Sandiford - - * config/aarch64/aarch64-sve.md (*vec_extract_0): New - pattern. - (*vec_extract_v128): Require a nonzero lane number. - Use gen_rtx_REG rather than gen_lowpart. - -2018-01-30 Richard Sandiford - - * lra-constraints.c (match_reload): Use subreg_lowpart_offset - rather than 0 when creating partial subregs. - -2018-01-30 Richard Sandiford - - * vec-perm-indices.c (vec_perm_indices::series_p): Give examples - of usage. - -2018-01-29 Michael Meissner - - PR target/81550 - * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): If DFmode - and SFmode can go in Altivec registers (-mcpu=power7 for DFmode, - -mcpu=power8 for SFmode) don't set the PRE_INCDEC or PRE_MODIFY - flags. This restores the settings used before the 2017-07-24. - Turning off pre increment/decrement/modify allows IVOPTS to - optimize DF/SF loops where the index is an int. - -2018-01-29 Richard Biener - Kelvin Nilsen - - PR bootstrap/80867 - * tree-vect-stmts.c (vectorizable_call): Don't call - targetm.vectorize_builtin_md_vectorized_function if callee is - NULL. - -2018-01-22 Carl Love - - * doc/extend.tex: Fix typo in second arg in - __builtin_bcdadd_{lt|eq|gt|ov} and __builtin_bcdsub_{lt|eq|gt|ov}. - -2018-01-29 Richard Biener - - PR tree-optimization/84086 - * tree-ssanames.c: Include cfgloop.h and tree-scalar-evolution.h. - (flush_ssaname_freelist): When SSA names were released reset - the SCEV hash table. - -2018-01-29 Richard Biener - - PR tree-optimization/84057 - * tree-ssa-loop-ivcanon.c (unloop_loops): Deal with already - removed paths when removing edges. - -2018-01-27 H.J. Lu - - * doc/invoke.texi: Replace -mfunction-return==@var{choice} with - -mfunction-return=@var{choice}. - -2018-01-27 Bernd Edlinger - - PR diagnostic/84034 - * diagnostic-show-locus.c (get_line_width_without_trailing_whitespace): - Handle CR like TAB. - (layout::print_source_line): Likewise. - (test_get_line_width_without_trailing_whitespace): Add test cases. - -2018-01-27 Jakub Jelinek - - PR middle-end/84040 - * sched-deps.c (sched_macro_fuse_insns): Return immediately for - debug insns. - -2018-01-26 Jim Wilson - - * config/riscv/riscv.h (MAX_FIXED_MODE_SIZE): New. - - * config/riscv/elf.h (LIB_SPEC): Don't include -lgloss when nosys.specs - specified. - -2018-01-26 Kyrylo Tkachov - - * config/aarch64/aarch64.md: Add peepholes for CMP + SUB -> SUBS - and CMP + SUB-immediate -> SUBS. - -2018-01-26 Martin Sebor - - PR tree-optimization/83896 - * tree-ssa-strlen.c (get_string_len): Rename... - (get_string_cst_length): ...to this. Return HOST_WIDE_INT. - Avoid assuming length is constant. - (handle_char_store): Use HOST_WIDE_INT for string length. - -2018-01-26 Uros Bizjak - - PR target/81763 - * config/i386/i386.md (*andndi3_doubleword): Add earlyclobber - to (=&r,r,rm) alternative. Add (=r,0,rm) and (=r,r,0) alternatives. - -2018-01-26 Richard Biener - - PR rtl-optimization/84003 - * dse.c (record_store): Only record redundant stores when - the earlier store aliases at least all accesses the later one does. - -2018-01-26 Jakub Jelinek - - PR rtl-optimization/83985 - * dce.c (deletable_insn_p): Return false for separate shrink wrapping - REG_CFA_RESTORE insns. - (delete_unmarked_insns): Don't ignore separate shrink wrapping - REG_CFA_RESTORE insns here. - - PR c/83989 - * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Don't - use SSA_NAME_VAR as base for SSA_NAMEs with non-NULL SSA_NAME_VAR. - -2018-01-26 Claudiu Zissulescu - - * config/arc/arc-arch.h (arc_tune_attr): Add ARC_TUNE_CORE_3. - * config/arc/arc.c (arc_sched_issue_rate): Use ARC_TUNE_... . - (arc_init): Likewise. - (arc_override_options): Likewise. - (arc_file_start): Choose Tag_ARC_CPU_variation based on arc_tune - value. - (hwloop_fail): Use TARGET_DBNZ when we want to check for dbnz insn - support. - * config/arc/arc.h (TARGET_DBNZ): Define. - * config/arc/arc.md (attr tune): Add core_3, use ARC_TUNE_... to - properly set the tune attribute. - (dbnz): Use TARGET_DBNZ guard. - * config/arc/arc.opt (mtune): Add core3 option. - -2018-01-26 Claudiu Zissulescu - - * config/arc/arc.c (arc_delegitimize_address_0): Refactored to - recognize new pic like addresses. - (arc_delegitimize_address): Clean up. - -2018-01-26 Claudiu Zissulescu - - * config/arc/arc-arches.def: Option mrf16 valid for all - architectures. - * config/arc/arc-c.def (__ARC_RF16__): New predefined macro. - * config/arc/arc-cpus.def (em_mini): New cpu with rf16 on. - * config/arc/arc-options.def (FL_RF16): Add mrf16 option. - * config/arc/arc-tables.opt: Regenerate. - * config/arc/arc.c (arc_conditional_register_usage): Handle - reduced register file case. - (arc_file_start): Set must have build attributes. - * config/arc/arc.h (MAX_ARC_PARM_REGS): Conditional define using - mrf16 option value. - * config/arc/arc.opt (mrf16): Add new option. - * config/arc/elf.h (ATTRIBUTE_PCS): Define. - * config/arc/genmultilib.awk: Handle new mrf16 option. - * config/arc/linux.h (ATTRIBUTE_PCS): Define. - * config/arc/t-multilib: Regenerate. - * doc/invoke.texi (ARC Options): Document mrf16 option. - -2018-01-26 Claudiu Zissulescu - - * config/arc/arc-protos.h: Add arc_is_secure_call_p proto. - * config/arc/arc.c (arc_handle_secure_attribute): New function. - (arc_attribute_table): Add 'secure_call' attribute. - (arc_print_operand): Print secure call operand. - (arc_function_ok_for_sibcall): Don't optimize tail calls when - secure. - (arc_is_secure_call_p): New function. * config/arc/arc.md - (call_i): Add support for sjli instruction. - (call_value_i): Likewise. - * config/arc/constraints.md (Csc): New constraint. - -2018-01-26 Claudiu Zissulescu - John Eric Martin - - * config/arc/arc-protos.h: Add arc_is_jli_call_p proto. - * config/arc/arc.c (_arc_jli_section): New struct. - (arc_jli_section): New type. - (rc_jli_sections): New static variable. - (arc_handle_jli_attribute): New function. - (arc_attribute_table): Add jli_always and jli_fixed attribute. - (arc_file_end): New function. - (TARGET_ASM_FILE_END): Define. - (arc_print_operand): Reuse 'S' letter for JLI output instruction. - (arc_add_jli_section): New function. - (jli_call_scan): Likewise. - (arc_reorg): Call jli_call_scan. - (arc_output_addsi): Remove 'S' from printing asm operand. - (arc_is_jli_call_p): New function. - * config/arc/arc.md (movqi_insn): Remove 'S' from printing asm - operand. - (movhi_insn): Likewise. - (movsi_insn): Likewise. - (movsi_set_cc_insn): Likewise. - (loadqi_update): Likewise. - (load_zeroextendqisi_update): Likewise. - (load_signextendqisi_update): Likewise. - (loadhi_update): Likewise. - (load_zeroextendhisi_update): Likewise. - (load_signextendhisi_update): Likewise. - (loadsi_update): Likewise. - (loadsf_update): Likewise. - (movsicc_insn): Likewise. - (bset_insn): Likewise. - (bxor_insn): Likewise. - (bclr_insn): Likewise. - (bmsk_insn): Likewise. - (bicsi3_insn): Likewise. - (cmpsi_cc_c_insn): Likewise. - (movsi_ne): Likewise. - (movsi_cond_exec): Likewise. - (clrsbsi2): Likewise. - (norm_f): Likewise. - (normw): Likewise. - (swap): Likewise. - (divaw): Likewise. - (flag): Likewise. - (sr): Likewise. - (kflag): Likewise. - (ffs): Likewise. - (ffs_f): Likewise. - (fls): Likewise. - (call_i): Remove 'S' asm letter, add jli instruction. - (call_value_i): Likewise. - * config/arc/arc.op (mjli-always): New option. - * config/arc/constraints.md (Cji): New constraint. - * config/arc/fpx.md (addsf3_fpx): Remove 'S' from printing asm - operand. - (subsf3_fpx): Likewise. - (mulsf3_fpx): Likewise. - * config/arc/simdext.md (vendrec_insn): Remove 'S' from printing - asm operand. - * doc/extend.texi (ARC): Document 'jli-always' and 'jli-fixed' - function attrbutes. - * doc/invoke.texi (ARC): Document mjli-always option. - -2018-01-26 Sebastian Perta - - * config/rl78/rl78.c (rl78_addsi3_internal): If operand 2 is const - avoid addition with 0 and use incw and decw where possible. - -2018-01-26 Richard Biener - - PR tree-optimization/81082 - * fold-const.c (fold_plusminus_mult_expr): Do not perform the - association if it requires casting to unsigned. - * match.pd ((A * C) +- (B * C) -> (A+-B)): New patterns derived - from fold_plusminus_mult_expr to catch important cases late when - range info is available. - -2018-01-26 Rainer Orth - - * config/i386/sol2.h (USE_HIDDEN_LINKONCE): Remove. - * configure.ac (hidden_linkonce): New test. - * configure: Regenerate. - * config.in: Regenerate. - -2018-01-26 Julia Koval - - * config/i386/avx512bitalgintrin.h (_mm512_bitshuffle_epi64_mask, - _mm512_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask, - _mm256_mask_bitshuffle_epi64_mask, _mm_bitshuffle_epi64_mask, - _mm_mask_bitshuffle_epi64_mask): Fix type. - * config/i386/i386-builtin-types.def (UHI_FTYPE_V2DI_V2DI_UHI, - USI_FTYPE_V4DI_V4DI_USI): Remove. - * config/i386/i386-builtin.def (__builtin_ia32_vpshufbitqmb512_mask, - __builtin_ia32_vpshufbitqmb256_mask, - __builtin_ia32_vpshufbitqmb128_mask): Fix types. - * config/i386/i386.c (ix86_expand_args_builtin): Remove old types. - * config/i386/sse.md (VI1_AVX512VLBW): Change types. - -2018-01-26 Alan Modra - - PR target/84033 - * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Exclude - UNSPEC_VBPERMQ. Sort other unspecs. - -2018-01-25 David Edelsohn - - * doc/invoke.texi (PowerPC Options): Document 'native' cpu type. - -2018-01-25 Jan Hubicka - - PR middle-end/83055 - * predict.c (drop_profile): Do not push/pop cfun; update also - node->count. - (handle_missing_profiles): Fix logic looking for zero profiles. - -2018-01-25 Jakub Jelinek - - PR middle-end/83977 - * ipa-fnsummary.c (compute_fn_summary): Clear can_change_signature - on functions with #pragma omp declare simd or functions with simd - attribute. - * omp-simd-clone.c (expand_simd_clones): Revert 2018-01-24 change. - * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): - Remove trailing \n from warning_at calls. - -2018-01-25 Tom de Vries - - PR target/84028 - * config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call - for neutered workers. - -2018-01-24 Joseph Myers - - PR target/68467 - * config/m68k/m68k.c (m68k_promote_function_mode): New function. - (TARGET_PROMOTE_FUNCTION_MODE): New macro. - -2018-01-24 Jeff Law - - PR target/83994 - * i386.c (get_probe_interval): Move to earlier point. - (ix86_compute_frame_layout): If -fstack-clash-protection and - the frame is larger than the probe interval, then use pushes - to save registers rather than reg->mem moves. - (ix86_expand_prologue): Remove conditional for int_registers_saved - assertion. - -2018-01-24 Vladimir Makarov - - PR target/84014 - * ira-build.c (setup_min_max_allocno_live_range_point): Set up - min/max for never referenced object. - -2018-01-24 Jakub Jelinek - - PR middle-end/83977 - * tree.c (free_lang_data_in_decl): Don't clear DECL_ABSTRACT_ORIGIN - here. - * omp-low.c (create_omp_child_function): Remove "omp declare simd" - attributes from DECL_ATTRIBUTES (decl) without affecting - DECL_ATTRIBUTES (current_function_decl). - * omp-simd-clone.c (expand_simd_clones): Ignore DECL_ARTIFICIAL - functions with non-NULL DECL_ABSTRACT_ORIGIN. - -2018-01-24 Richard Sandiford - - PR tree-optimization/83979 - * fold-const.c (fold_comparison): Use constant_boolean_node - instead of boolean_{true,false}_node. - -2018-01-24 Jan Hubicka - - * ipa-profile.c (ipa_propagate_frequency_1): Fix logic skipping calls - with zero counts. - -2018-01-24 Bill Schmidt - - * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv): - Simplify the clause that sets the length attribute. - (*call_value_indirect_nonlocal_sysv): Likewise. - (*sibcall_nonlocal_sysv): Clean up code block; simplify the - clause that sets the length attribute. - (*sibcall_value_nonlocal_sysv): Likewise. - -2018-01-24 Tom de Vries - - PR target/83589 - * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG_2): Define to 1. - (nvptx_pc_set, nvptx_condjump_label): New function. Copy from jump.c. - Add strict parameter. - (prevent_branch_around_nothing): Insert dummy insn between branch to - label and label with no ptx insn inbetween. - * config/nvptx/nvptx.md (define_insn "fake_nop"): New insn. - -2018-01-24 Tom de Vries - - PR target/81352 - * config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call - for neutered threads in warp. - * config/nvptx/nvptx.md (define_insn "exit"): New insn. - -2018-01-24 Richard Biener - - PR tree-optimization/83176 - * tree-chrec.c (chrec_fold_plus_1): Handle (signed T){(T) .. } - operands. - -2018-01-24 Richard Biener - - PR tree-optimization/82819 - * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Avoid - code generating pluses that are no-ops in the target precision. - -2018-01-24 Richard Biener - - PR middle-end/84000 - * tree-cfg.c (replace_loop_annotate): Handle annot_expr_parallel_kind. - -2018-01-23 Jan Hubicka - - * cfgcleanup.c (try_crossjump_to_edge): Use combine_with_count - to merge probabilities. - * predict.c (probably_never_executed): Also mark as cold functions - with global 0 profile and guessed local profile. - * profile-count.c (profile_probability::combine_with_count): New - member function. - * profile-count.h (profile_probability::operator*, - profile_probability::operator*=, profile_probability::operator/, - profile_probability::operator/=): Reduce precision to adjusted - and set value to guessed on contradictory divisions. - (profile_probability::combine_with_freq): Remove. - (profile_probability::combine_wiht_count): Declare. - (profile_count::force_nonzero):: Set to adjusted. - (profile_count::probability_in):: Set quality to adjusted. - * tree-ssa-tail-merge.c (replace_block_by): Use - combine_with_count. - -2018-01-23 Andrew Waterman - Jim Wilson - - * config/riscv/riscv.c (riscv_stack_boundary): New. - (riscv_option_override): Set riscv_stack_boundary. Handle - riscv_preferred_stack_boundary_arg. - * config/riscv/riscv.h (MIN_STACK_BOUNDARY, ABI_STACK_BOUNDARY): New. - (BIGGEST_ALIGNMENT): Set to STACK_BOUNDARY. - (STACK_BOUNDARY): Set to riscv_stack_boundary. - (RISCV_STACK_ALIGN): Use STACK_BOUNDARY. - * config/riscv/riscv.opt (mpreferred-stack-boundary): New. - * doc/invoke.tex (RISC-V Options): Add -mpreferred-stack-boundary. - -2018-01-23 H.J. Lu - - PR target/83905 - * config/i386/i386.c (ix86_expand_prologue): Use cost reference - of struct ix86_frame. - (ix86_expand_epilogue): Likewise. Add a local variable for - the reg_save_offset field in struct ix86_frame. - -2018-01-23 Bin Cheng - - PR tree-optimization/82604 - * tree-loop-distribution.c (enum partition_kind): New enum item - PKIND_PARTIAL_MEMSET. - (partition_builtin_p): Support above new enum item. - (generate_code_for_partition): Ditto. - (compute_access_range): Differentiate cases that equality can be - proven at all loops, the innermost loops or no loops. - (classify_builtin_st, classify_builtin_ldst): Adjust call to above - function. Set PKIND_PARTIAL_MEMSET for partition appropriately. - (finalize_partitions, distribute_loop): Don't fuse partition of - PKIND_PARTIAL_MEMSET kind when distributing 3-level loop nest. - (prepare_perfect_loop_nest): Distribute 3-level loop nest only if - parloop is enabled. - -2018-01-23 Martin Liska - - * predict.def (PRED_INDIR_CALL): Set probability to PROB_EVEN in - order to ignore the predictor. - (PRED_POLYMORPHIC_CALL): Likewise. - (PRED_RECURSIVE_CALL): Likewise. - -2018-01-23 Martin Liska - - * tree-profile.c (tree_profiling): Print function header to - aware reader which function we are working on. - * value-prof.c (gimple_find_values_to_profile): Do not print - not interesting value histograms. - -2018-01-23 Martin Liska - - * profile-count.h (enum profile_quality): Add - profile_uninitialized as the first value. Do not number values - as they are zero based. - (profile_count::verify): Update sanity check. - (profile_probability::verify): Likewise. - -2018-01-23 Nathan Sidwell - - * doc/invoke.texi (ffor-scope): Deprecate. - -2018-01-23 David Malcolm - - PR tree-optimization/83510 - * domwalk.c (set_all_edges_as_executable): New function. - (dom_walker::dom_walker): Convert bool param - "skip_unreachable_blocks" to enum reachability. Move setup of - edge flags to set_all_edges_as_executable and only do it when - reachability is REACHABLE_BLOCKS. - * domwalk.h (enum dom_walker::reachability): New enum. - (dom_walker::dom_walker): Convert bool param - "skip_unreachable_blocks" to enum reachability. - (set_all_edges_as_executable): New decl. - * graphite-scop-detection.c (gather_bbs::gather_bbs): Convert - from false for "skip_unreachable_blocks" to ALL_BLOCKS for - "reachability". - * tree-ssa-dom.c (dom_opt_dom_walker::dom_opt_dom_walker): Likewise, - but converting true to REACHABLE_BLOCKS. - * tree-ssa-sccvn.c (sccvn_dom_walker::sccvn_dom_walker): Likewise. - * tree-vrp.c - (check_array_bounds_dom_walker::check_array_bounds_dom_walker): - Likewise, but converting it to REACHABLE_BLOCKS_PRESERVING_FLAGS. - (vrp_dom_walker::vrp_dom_walker): Likewise, but converting it to - REACHABLE_BLOCKS. - (vrp_prop::vrp_finalize): Call set_all_edges_as_executable - if check_all_array_refs will be called. - -2018-01-23 David Malcolm - - * tree.c (selftest::test_location_wrappers): Add more test - coverage. - -2018-01-23 David Malcolm - - * sbitmap.c (selftest::test_set_range): Fix memory leaks. - (selftest::test_bit_in_range): Likewise. - -2018-01-23 Richard Sandiford - - PR testsuite/83888 - * doc/sourcebuild.texi (vect_float): Say that the selector - only describes the situation when -funsafe-math-optimizations is on. - (vect_float_strict): Document. - -2018-01-23 Richard Sandiford - - PR tree-optimization/83965 - * tree-vect-patterns.c (vect_reassociating_reduction_p): New function. - (vect_recog_dot_prod_pattern, vect_recog_sad_pattern): Use it - instead of checking only for a reduction. - (vect_recog_widen_sum_pattern): Likewise. - -2018-01-23 Jan Hubicka - - * predict.c (probably_never_executed): Only use precise profile info. - (compute_function_frequency): Skip after inlining hack since we now - have quality checking. - -2018-01-23 Jan Hubicka - - * profile-count.h (profile_probability::very_unlikely, - profile_probability::unlikely, profile_probability::even): Set - precision to guessed. - -2018-01-23 Richard Biener - - PR tree-optimization/83963 - * graphite-scop-detection.c (scop_detection::harmful_loop_in_region): - Properly terminate dominator walk when crossing the exit edge not - when visiting its source block. - -2018-01-23 Jakub Jelinek - - PR c++/83918 - * tree.c (maybe_wrap_with_location): Use NON_LVALUE_EXPR rather than - VIEW_CONVERT_EXPR to wrap CONST_DECLs. - -2018-01-22 Jakub Jelinek - - PR tree-optimization/83957 - * omp-expand.c (expand_omp_for_generic): Ignore virtual PHIs. Remove - semicolon after for body surrounded by braces. - - PR tree-optimization/83081 - * profile-count.h (profile_probability::split): New method. - * dojump.c (do_jump_1) : - Use profile_probability::split. - (do_compare_rtx_and_jump): Fix adjustment of probabilities - when splitting a single conditional jump into 2. - -2018-01-22 David Malcolm - - PR tree-optimization/69452 - * tree-ssa-loop-im.c (class move_computations_dom_walker): Remove - decl. - -2018-01-22 Sebastian Perta - - * config/rl78/rl78-expand.md (bswaphi2): New define_expand. - * config/rl78/rl78-virt.md (*bswaphi2_virt): New define_insn. - * config/rl78/rl78-real.md (*bswaphi2_real): New define_insn. - -2018-01-22 Sebastian Perta - - * config/rl78/rl78-protos.h (rl78_split_movdi): New function - declaration. - * config/rl78/rl78.md (movdi): New define_expand. - * config/rl78/rl78.c (rl78_split_movdi): New function. - -2018-01-22 Michael Meissner - - PR target/83862 - * config/rs6000/rs6000-protos.h (rs6000_split_signbit): Delete, - no longer used. - * config/rs6000/rs6000.c (rs6000_split_signbit): Likewise. - * config/rs6000/rs6000.md (signbit2): Change code for IEEE - 128-bit to produce an UNSPEC move to get the double word with the - signbit and then a shift directly to do signbit. - (signbit2_dm): Replace old IEEE 128-bit signbit - implementation with a new version that just does either a direct - move or a regular move. Move memory interface to separate insns. - Move insns so they are next to the expander. - (signbit2_dm_mem_be): New combiner insns to combine load - with signbit move. Split big and little endian case. - (signbit2_dm_mem_le): Likewise. - (signbit2_dm_ext): Delete, no longer used. - (signbit2_dm2): Likewise. - -2018-01-22 Sebastian Perta - - * config/rl78/rl78.md (anddi3): New define_expand. - -2018-01-22 Sebastian Perta - - * config/rl78/rl78.md (umindi3): New define_expand. - -2018-01-22 Sebastian Perta - - * config/rl78/rl78.md (smindi3): New define_expand. - -2018-01-22 Sebastian Perta - - * config/rl78/rl78.md (smaxdi3): New define_expand. - -2018-01-22 Carl Love - - * config/rs6000/rs6000-builtin.def (ST_ELEMREV_V1TI, LD_ELEMREV_V1TI, - LVX_V1TI): Add macro expansion. - * config/rs6000/rs6000-c.c (altivec_builtin_types): Add argument - definitions for VSX_BUILTIN_VEC_XST_BE, VSX_BUILTIN_VEC_ST, - VSX_BUILTIN_VEC_XL, LD_ELEMREV_V1TI builtins. - * config/rs6000/rs6000-p8swap.c (insn_is_swappable_p); - Change check to determine if the instruction is a byte reversing - entry. Fix typo in comment. - * config/rs6000/rs6000.c (altivec_expand_builtin): Add case entry - for VSX_BUILTIN_ST_ELEMREV_V1TI and VSX_BUILTIN_LD_ELEMREV_V1TI. - Add def_builtin calls for new builtins. - * config/rs6000/vsx.md (vsx_st_elemrev_v1ti, vsx_ld_elemrev_v1ti): - Add define_insn expansion. - -2018-01-22 Sebastian Perta - - * config/rl78/rl78.md (umaxdi3): New define_expand. - -2018-01-22 Sebastian Perta - - * config/rl78/rl78.c (rl78_note_reg_set): Fixed dead reg check - for non-QImode registers. - -2018-01-22 Richard Biener - - PR tree-optimization/83963 - * graphite-scop-detection.c (scop_detection::get_sese): Delay - including the loop exit block. - (scop_detection::merge_sese): Likewise. - (scop_detection::add_scop): Do it here instead. - -2018-01-22 Kyrylo Tkachov - - * doc/sourcebuild.texi (arm_softfloat): Document. - -2018-01-21 John David Anglin - - PR gcc/77734 - * config/pa/pa.c (pa_function_ok_for_sibcall): Use - targetm.binds_local_p instead of TREE_PUBLIC to check local binding. - Move TARGET_PORTABLE_RUNTIME check after TARGET_64BIT check. - -2018-01-21 Bill Schmidt - David Edelsohn - - PR target/83946 - * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv): - Change "crset eq" to "crset 2". - (*call_value_indirect_nonlocal_sysv): Likewise. - (*call_indirect_aix_nospec): Likewise. - (*call_value_indirect_aix_nospec): Likewise. - (*call_indirect_elfv2_nospec): Likewise. - (*call_value_indirect_elfv2_nospec): Likewise. - (*sibcall_nonlocal_sysv): Change "crset eq" to "crset 2"; - change assembly output from . to $. - (*sibcall_value_nonlocal_sysv): Likewise. - (indirect_jump_nospec): Change assembly output from . to $. - (*tablejump_internal1_nospec): Likewise. - -2018-01-21 Oleg Endo - - PR target/80870 - * config/sh/sh_optimize_sett_clrt.cc: - Use INCLUDE_ALGORITHM and INCLUDE_VECTOR instead of direct includes. - -2018-01-20 Richard Sandiford - - PR tree-optimization/83940 - * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): Set - offset_dt to vect_constant_def rather than vect_unknown_def_type. - (vect_check_load_store_mask): Add a mask_dt_out parameter and - use it to pass back the definition type. - (vect_check_store_rhs): Likewise rhs_dt_out. - (vect_build_gather_load_calls): Add a mask_dt argument and use - it instead of a call to vect_is_simple_use. - (vectorizable_store): Update calls to vect_check_load_store_mask - and vect_check_store_rhs. Use the dt returned by the latter instead - of scatter_src_dt. Use the cached mask_dt and gs_info.offset_dt - instead of calls to vect_is_simple_use. Pass the scalar rather - than the vector operand to vect_is_simple_use when handling - second and subsequent copies of an rhs value. - (vectorizable_load): Update calls to vect_check_load_store_mask - and vect_build_gather_load_calls. Use the cached mask_dt and - gs_info.offset_dt instead of calls to vect_is_simple_use. - -2018-01-20 Jakub Jelinek - - PR middle-end/83945 - * tree-emutls.c: Include gimplify.h. - (lower_emutls_2): New function. - (lower_emutls_1): If ADDR_EXPR is a gimple invariant and walk_tree - with lower_emutls_2 callback finds some TLS decl in it, unshare_expr - it before further processing. - - PR target/83930 - * simplify-rtx.c (simplify_binary_operation_1) : Use - UINTVAL (trueop1) instead of INTVAL (op1). - -2018-01-19 Jakub Jelinek - - PR debug/81570 - PR debug/83728 - * dwarf2cfi.c (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define to - INCOMING_FRAME_SP_OFFSET if not defined. - (scan_trace): Add ENTRY argument. If true and - DEFAULT_INCOMING_FRAME_SP_OFFSET != INCOMING_FRAME_SP_OFFSET, - emit a note to adjust the CFA offset. - (create_cfi_notes): Adjust scan_trace callers. - (create_cie_data): Use DEFAULT_INCOMING_FRAME_SP_OFFSET rather than - INCOMING_FRAME_SP_OFFSET in the CIE. - * config/i386/i386.h (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define. - * config/stormy16/stormy16.h (DEFAULT_INCOMING_FRAME_SP_OFFSET): - Likewise. - * doc/tm.texi.in (DEFAULT_INCOMING_FRAME_SP_OFFSET): Document. - * doc/tm.texi: Regenerated. - -2018-01-19 Andreas Krebbel - - PR rtl-optimization/83147 - * lra-constraints.c (remove_inheritance_pseudos): Use - lra_substitute_pseudo_within_insn. - -2018-01-19 Tom de Vries - Cesar Philippidis - - PR target/83920 - * config/nvptx/nvptx.c (nvptx_single): Fix jit workaround. - -2018-01-19 Cesar Philippidis - - PR target/83790 - * config/nvptx/nvptx.c (output_init_frag): Don't use generic address - spaces for function labels. - -2018-01-19 Martin Liska - - * predict.def (PRED_LOOP_EXIT): Change from 85 to 89. - (PRED_LOOP_EXIT_WITH_RECURSION): Change from 72 to 78. - (PRED_LOOP_EXTRA_EXIT): Change from 83 to 67. - (PRED_OPCODE_POSITIVE): Change from 64 to 59. - (PRED_TREE_OPCODE_POSITIVE): Change from 64 to 59. - (PRED_CONST_RETURN): Change from 69 to 65. - (PRED_NULL_RETURN): Change from 91 to 71. - (PRED_LOOP_IV_COMPARE_GUESS): Change from 98 to 64. - (PRED_LOOP_GUARD): Change from 66 to 73. - -2018-01-19 Martin Liska - - * predict.c (predict_insn_def): Add new assert. - (struct branch_predictor): Change type to signed integer. - (test_prediction_value_range): Amend test to cover - PROB_UNINITIALIZED. - * predict.def (PRED_LOOP_ITERATIONS): Use the new constant. - (PRED_LOOP_ITERATIONS_GUESSED): Likewise. - (PRED_LOOP_ITERATIONS_MAX): Likewise. - (PRED_LOOP_IV_COMPARE): Likewise. - * predict.h (PROB_UNINITIALIZED): Define new constant. - -2018-01-19 Martin Liska - - * predict.c (dump_prediction): Add new format for - analyze_brprob.py script which is enabled with -details - suboption. - * profile-count.h (precise_p): New function. - -2018-01-19 Richard Sandiford - - PR tree-optimization/83922 - * tree-vect-loop.c (vect_verify_full_masking): Return false if - there are no statements that need masking. - (vect_active_double_reduction_p): New function. - (vect_analyze_loop_operations): Use it when handling phis that - are not in the loop header. - -2018-01-19 Richard Sandiford - - PR tree-optimization/83914 - * tree-vect-loop.c (vectorizable_induction): Don't convert - init_expr or apply the peeling adjustment for inductions - that are nested within the vectorized loop. - -2018-01-19 Kyrylo Tkachov - - * config/arm/thumb2.md (*thumb2_negsi2_short): Use RSB mnemonic - instead of NEG. - -2018-01-18 Jakub Jelinek - - PR sanitizer/81715 - PR testsuite/83882 - * function.h (gimplify_parameters): Add gimple_seq * argument. - * function.c: Include gimple.h and options.h. - (gimplify_parameters): Add cleanup argument, add CLOBBER stmts - for the added local temporaries if needed. - * gimplify.c (gimplify_body): Adjust gimplify_parameters caller, - if there are any parameter cleanups, wrap whole body into a - try/finally with the cleanups. - -2018-01-18 Wilco Dijkstra - - PR target/82964 - * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): - Use GET_MODE_CLASS for scalar floating point. - -2018-01-18 Jan Hubicka - - PR ipa/82256 - patch by PaX Team - * cgraphclones.c (cgraph_node::create_version_clone_with_body): - Fix call of call_cgraph_insertion_hooks. - -2018-01-18 Martin Sebor - - * doc/invoke.texi (-Wclass-memaccess): Tweak text. - -2018-01-18 Jan Hubicka - - PR ipa/83619 - * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Update edge - frequencies. - -2018-01-18 Boris Kolpackov - - PR other/70268 - * common.opt: (-ffile-prefix-map): New option. - * opts.c (common_handle_option): Defer it. - * opts-global.c (handle_common_deferred_options): Handle it. - * debug.h (remap_debug_filename, add_debug_prefix_map): Move to... - * file-prefix-map.h: New file. - (remap_debug_filename, add_debug_prefix_map): ...here. - (add_macro_prefix_map, add_file_prefix_map, remap_macro_filename): New. - * final.c (debug_prefix_map, add_debug_prefix_map - remap_debug_filename): Move to... - * file-prefix-map.c: New file. - (file_prefix_map, add_prefix_map, remap_filename) ...here and rename, - generalize, get rid of alloca(), use strrchr() instead of strchr(). - (add_macro_prefix_map, add_debug_prefix_map, add_file_prefix_map): - Implement in terms of add_prefix_map(). - (remap_macro_filename, remap_debug_filename): Implement in term of - remap_filename(). - * Makefile.in (OBJS, PLUGIN_HEADERS): Add new files. - * builtins.c (fold_builtin_FILE): Call remap_macro_filename(). - * dbxout.c: Include file-prefix-map.h. - * varasm.c: Likewise. - * vmsdbgout.c: Likewise. - * xcoffout.c: Likewise. - * dwarf2out.c: Likewise plus omit new options from DW_AT_producer. - * doc/cppopts.texi (-fmacro-prefix-map): Document. - * doc/invoke.texi (-ffile-prefix-map): Document. - (-fdebug-prefix-map): Update description. - -2018-01-18 Martin Liska - - * config/i386/i386.c (indirect_thunk_name): Document that also - lfence is emitted. - (output_indirect_thunk): Document why both instructions - (pause and lfence) are generated. - -2018-01-18 Richard Biener - - PR tree-optimization/83887 - * graphite-scop-detection.c - (scop_detection::get_nearest_dom_with_single_entry): Remove. - (scop_detection::get_nearest_pdom_with_single_exit): Likewise. - (scop_detection::merge_sese): Re-implement with a flood-fill - algorithm that properly finds a SESE region if it exists. - -2018-01-18 Jakub Jelinek - - PR c/61240 - * match.pd ((P + A) - P, P - (P + A), (P + A) - (P + B)): For - pointer_diff optimizations use view_convert instead of convert. - -2018-01-17 Bill Schmidt - - * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv): - Generate different code for -mno-speculate-indirect-jumps. - (*call_value_indirect_nonlocal_sysv): Likewise. - (*call_indirect_aix): Disable for - -mno-speculate-indirect-jumps. - (*call_indirect_aix_nospec): New define_insn. - (*call_value_indirect_aix): Disable for - -mno-speculate-indirect-jumps. - (*call_value_indirect_aix_nospec): New define_insn. - (*sibcall_nonlocal_sysv): Generate different code for - -mno-speculate-indirect-jumps. - (*sibcall_value_nonlocal_sysv): Likewise. - -2018-01-17 Michael Meissner - - * config/rs6000/rs6000.c (rs6000_emit_move): If we load or store a - long double type, set the flags for noting the default long double - type, even if we don't pass or return a long double type. - -2018-01-17 Jan Hubicka - - PR ipa/83051 - * ipa-inline.c (flatten_function): Do not overwrite final inlining - failure. - -2018-01-17 Will Schmidt - - * config/rs6000/rs6000.c (rs6000_gimple_builtin): Add gimple folding - support for merge[hl]. - (fold_mergehl_helper): New helper function. - (tree-vector-builder.h): New #include for tree_vector_builder usage. - * config/rs6000/altivec.md (altivec_vmrghw_direct): Add xxmrghw insn. - (altivec_vmrglw_direct): Add xxmrglw insn. - -2018-01-17 Andrew Waterman - - * config/riscv/riscv.c (riscv_conditional_register_usage): If - UNITS_PER_FP_ARG is 0, set call_used_regs to 1 for all FP regs. - -2018-01-17 David Malcolm - - PR lto/83121 - * ipa-devirt.c (add_type_duplicate): When comparing memory layout, - call the lto_location_cache before reading the - DECL_SOURCE_LOCATION of the types. - -2018-01-17 Wilco Dijkstra - Richard Sandiford - - * config/aarch64/aarch64.md (movti_aarch64): Use Uti constraint. - * config/aarch64/aarch64.c (aarch64_mov128_immediate): New function. - (aarch64_legitimate_constant_p): Just support CONST_DOUBLE - SF/DF/TF mode to avoid creating illegal CONST_WIDE_INT immediates. - * config/aarch64/aarch64-protos.h (aarch64_mov128_immediate): - Add declaration. - * config/aarch64/constraints.md (aarch64_movti_operand): - Limit immediates. - * config/aarch64/predicates.md (Uti): Add new constraint. - -2018-01-17 Carl Love - - * config/rs6000/vsx.md (define_expand xl_len_r, - define_expand stxvl, define_expand *stxvl): Add match_dup argument. - (define_insn): Add, match_dup 1 argument to define_insn stxvll and - lxvll. - (define_expand, define_insn): Move the shift left from the - define_insn to the define_expand for lxvl and stxvl instructions. - * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_2): Change LXVL - and XL_LEN_R definitions to PURE. - -2018-01-17 Uros Bizjak - - * config/i386/i386.c (indirect_thunk_name): Declare regno - as unsigned int. Compare regno with INVALID_REGNUM. - (output_indirect_thunk): Ditto. - (output_indirect_thunk_function): Ditto. - (ix86_code_end): Declare regno as unsigned int. Use INVALID_REGNUM - in the call to output_indirect_thunk_function. - -2018-01-17 Richard Sandiford - - PR middle-end/83884 - * expr.c (expand_expr_real_1): Use the size of GET_MODE (op0) - rather than the size of inner_type to determine the stack slot size - when handling VIEW_CONVERT_EXPRs on strict-alignment targets. - -2018-01-16 Sebastian Peryt - - PR target/83546 - * config/i386/i386.c (ix86_option_override_internal): Add PTA_RDRND - to PTA_SILVERMONT. - -2018-01-16 Michael Meissner - - * config.gcc (powerpc*-linux*-*): Add support for 64-bit little - endian Linux systems to optionally enable multilibs for selecting - the long double type if the user configured an explicit type. - * config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Indicate we - have no long double multilibs if not defined. - * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not - warn if the user used -mabi={ieee,ibm}longdouble and we built - multilibs for long double. - * config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Define as the - appropriate multilib option. - (MULTILIB_DEFAULTS): Add MULTILIB_DEFAULTS_IEEE to the default - multilib options. - * config/rs6000/t-ldouble-linux64le-ibm: New configuration files - for building long double multilibs. - * config/rs6000/t-ldouble-linux64le-ieee: Likewise. - -2018-01-16 John David Anglin - - * config.gcc (hppa*-*-linux*): Change callee copies ABI to caller - copies. - - * config/pa.h (MALLOC_ABI_ALIGNMENT): Set 32-bit alignment default to - 64 bits. - * config/pa/pa32-linux.h (MALLOC_ABI_ALIGNMENT): Set alignment to - 128 bits. - - * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Cleanup type and mode - variables. - - * config/pa/pa.c (pa_function_arg_size): Apply CEIL to GET_MODE_SIZE - return value. - -2018-01-16 Eric Botcazou - - * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For an - ADDR_EXPR, do not count the offset of a COMPONENT_REF twice. - -2018-01-16 Kelvin Nilsen - - * config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Generate - different rtl trees depending on TARGET_64BIT. - (rs6000_gen_lvx): Likewise. - -2018-01-16 Eric Botcazou - - * config/visium/visium.md (nop): Tweak comment. - (hazard_nop): Likewise. - -2018-01-16 Bill Schmidt - - * config/rs6000/rs6000.c (rs6000_opt_vars): Add entry for - -mspeculate-indirect-jumps. - * config/rs6000/rs6000.md (*call_indirect_elfv2): Disable - for -mno-speculate-indirect-jumps. - (*call_indirect_elfv2_nospec): New define_insn. - (*call_value_indirect_elfv2): Disable for - -mno-speculate-indirect-jumps. - (*call_value_indirect_elfv2_nospec): New define_insn. - (indirect_jump): Emit different RTL for - -mno-speculate-indirect-jumps. - (*indirect_jump): Disable for - -mno-speculate-indirect-jumps. - (*indirect_jump_nospec): New define_insn. - (tablejump): Emit different RTL for - -mno-speculate-indirect-jumps. - (tablejumpsi): Disable for -mno-speculate-indirect-jumps. - (tablejumpsi_nospec): New define_expand. - (tablejumpdi): Disable for -mno-speculate-indirect-jumps. - (tablejumpdi_nospec): New define_expand. - (*tablejump_internal1): Disable for - -mno-speculate-indirect-jumps. - (*tablejump_internal1_nospec): New define_insn. - * config/rs6000/rs6000.opt (mspeculate-indirect-jumps): New - option. - -2018-01-16 Artyom Skrobov tyomitch@gmail.com - - * caller-save.c (insert_save): Drop unnecessary parameter. All - callers updated. - -2018-01-16 Jakub Jelinek - Richard Biener - - PR libgomp/83590 - * gimplify.c (gimplify_one_sizepos): For is_gimple_constant (expr) - return early, inline manually is_gimple_sizepos. Make sure if we - call gimplify_expr we don't end up with a gimple constant. - * tree.c (variably_modified_type_p): Don't return true for - is_gimple_constant (_t). Inline manually is_gimple_sizepos. - * gimplify.h (is_gimple_sizepos): Remove. - -2018-01-16 Richard Sandiford - - PR tree-optimization/83857 - * tree-vect-loop.c (vect_analyze_loop_operations): Don't call - vectorizable_live_operation for pure SLP statements. - (vectorizable_live_operation): Handle PHIs. - -2018-01-16 Richard Biener - - PR tree-optimization/83867 - * tree-vect-stmts.c (vect_transform_stmt): Precompute - nested_in_vect_loop_p since the scalar stmt may get invalidated. - -2018-01-16 Jakub Jelinek - - PR c/83844 - * stor-layout.c (handle_warn_if_not_align): Use byte_position and - multiple_of_p instead of unchecked tree_to_uhwi and UHWI check. - If off is not INTEGER_CST, issue a may not be aligned warning - rather than isn't aligned. Use isn%'t rather than isn't. - * fold-const.c (multiple_of_p) : Don't fall through - into MULT_EXPR. - : Improve the case when bottom and one of the - MULT_EXPR operands are INTEGER_CSTs and bottom is multiple of that - operand, in that case check if the other operand is multiple of - bottom divided by the INTEGER_CST operand. - -2018-01-16 Richard Sandiford - - PR target/83858 - * config/pa/pa.h (FUNCTION_ARG_SIZE): Delete. - * config/pa/pa-protos.h (pa_function_arg_size): Declare. - * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Use - pa_function_arg_size instead of FUNCTION_ARG_SIZE. - * config/pa/pa.c (pa_function_arg_advance): Likewise. - (pa_function_arg, pa_arg_partial_bytes): Likewise. - (pa_function_arg_size): New function. - -2018-01-16 Richard Sandiford - - * fold-const.c (fold_ternary_loc): Construct the vec_perm_indices - in a separate statement. - -2018-01-16 Richard Sandiford - - PR tree-optimization/83847 - * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Don't - group gathers and scatters. - -2018-01-16 Jakub Jelinek - - PR rtl-optimization/86620 - * params.def (max-sched-ready-insns): Bump minimum value to 1. - - PR rtl-optimization/83213 - * recog.c (peep2_attempt): Copy over CROSSING_JUMP_P from peepinsn - to last if both are JUMP_INSNs. - - PR tree-optimization/83843 - * gimple-ssa-store-merging.c - (imm_store_chain_info::output_merged_store): Handle bit_not_p on - store_immediate_info for bswap/nop orig_stores. - -2018-01-15 Andrew Waterman - - * config/riscv/riscv.c (riscv_rtx_costs) : Increase cost if - !TARGET_MUL. - : Increase cost if !TARGET_DIV. - -2018-01-15 Segher Boessenkool - - * config/rs6000/rs6000.md (define_attr "type"): Remove delayed_cr. - (define_attr "cr_logical_3op"): New. - (cceq_ior_compare): Adjust. - (cceq_ior_compare_complement): Adjust. - (*cceq_rev_compare): Adjust. - * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust. - (is_cracked_insn): Adjust. - (insn_must_be_first_in_group): Adjust. - * config/rs6000/40x.md: Adjust. - * config/rs6000/440.md: Adjust. - * config/rs6000/476.md: Adjust. - * config/rs6000/601.md: Adjust. - * config/rs6000/603.md: Adjust. - * config/rs6000/6xx.md: Adjust. - * config/rs6000/7450.md: Adjust. - * config/rs6000/7xx.md: Adjust. - * config/rs6000/8540.md: Adjust. - * config/rs6000/cell.md: Adjust. - * config/rs6000/e300c2c3.md: Adjust. - * config/rs6000/e500mc.md: Adjust. - * config/rs6000/e500mc64.md: Adjust. - * config/rs6000/e5500.md: Adjust. - * config/rs6000/e6500.md: Adjust. - * config/rs6000/mpc.md: Adjust. - * config/rs6000/power4.md: Adjust. - * config/rs6000/power5.md: Adjust. - * config/rs6000/power6.md: Adjust. - * config/rs6000/power7.md: Adjust. - * config/rs6000/power8.md: Adjust. - * config/rs6000/power9.md: Adjust. - * config/rs6000/rs64.md: Adjust. - * config/rs6000/titan.md: Adjust. - -2018-01-15 H.J. Lu - - * config/i386/predicates.md (indirect_branch_operand): Rewrite - ix86_indirect_branch_register logic. - -2018-01-15 H.J. Lu - - * config/i386/constraints.md (Bs): Update - ix86_indirect_branch_register check. Don't check - ix86_indirect_branch_register with GOT_memory_operand. - (Bw): Likewise. - * config/i386/predicates.md (GOT_memory_operand): Don't check - ix86_indirect_branch_register here. - (GOT32_symbol_operand): Likewise. - -2018-01-15 H.J. Lu - - * config/i386/predicates.md (constant_call_address_operand): - Rewrite ix86_indirect_branch_register logic. - (sibcall_insn_operand): Likewise. - -2018-01-15 H.J. Lu - - * config/i386/constraints.md (Bs): Replace - ix86_indirect_branch_thunk_register with - ix86_indirect_branch_register. - (Bw): Likewise. - * config/i386/i386.md (indirect_jump): Likewise. - (tablejump): Likewise. - (*sibcall_memory): Likewise. - (*sibcall_value_memory): Likewise. - Peepholes of indirect call and jump via memory: Likewise. - * config/i386/i386.opt: Likewise. - * config/i386/predicates.md (indirect_branch_operand): Likewise. - (GOT_memory_operand): Likewise. - (call_insn_operand): Likewise. - (sibcall_insn_operand): Likewise. - (GOT32_symbol_operand): Likewise. - -2018-01-15 Jakub Jelinek - - PR middle-end/83837 - * omp-expand.c (expand_omp_atomic_pipeline): Use loaded_val - type rather than type addr's type points to. - (expand_omp_atomic_mutex): Likewise. - (expand_omp_atomic): Likewise. - -2018-01-15 H.J. Lu - - PR target/83839 - * config/i386/i386.c (output_indirect_thunk_function): Use - ASM_OUTPUT_LABEL, instead of ASM_OUTPUT_DEF, for TARGET_MACHO - for __x86_return_thunk. - -2018-01-15 Richard Biener - - PR middle-end/83850 - * expmed.c (extract_bit_field_1): Fix typo. - -2018-01-15 Kyrylo Tkachov - - PR target/83687 - * config/arm/iterators.md (VF): New mode iterator. - * config/arm/neon.md (neon_vabd_2): Use the above. - Remove integer-related logic from pattern. - (neon_vabd_3): Likewise. - -2018-01-15 Jakub Jelinek - - PR middle-end/82694 - * common.opt (fstrict-overflow): No longer an alias. - (fwrapv-pointer): New option. - * tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED): Define - also for pointer types based on flag_wrapv_pointer. - * opts.c (common_handle_option) : Set - opts->x_flag_wrap[pv] to !value, clear opts->x_flag_trapv if - opts->x_flag_wrapv got set. - * fold-const.c (fold_comparison, fold_binary_loc): Revert 2017-08-01 - changes, just use TYPE_OVERFLOW_UNDEFINED on pointer type instead of - POINTER_TYPE_OVERFLOW_UNDEFINED. - * match.pd: Likewise in address comparison pattern. - * doc/invoke.texi: Document -fwrapv and -fstrict-overflow. - -2018-01-15 Richard Biener - - PR lto/83804 - * tree.c (free_lang_data_in_type): Always unlink TYPE_DECLs - from TYPE_FIELDS. Free TYPE_BINFO if not used by devirtualization. - Reset type names to their identifier if their TYPE_DECL doesn't - have linkage (and thus is used for ODR and devirt). - (save_debug_info_for_decl): Remove. - (save_debug_info_for_type): Likewise. - (add_tree_to_fld_list): Adjust. - * tree-pretty-print.c (dump_generic_node): Make dumping of - type names more robust. - -2018-01-15 Richard Biener - - * BASE-VER: Bump to 8.0.1. - -2018-01-14 Martin Sebor - - PR other/83508 - * builtins.c (check_access): Avoid warning when the no-warning bit - is set. - -2018-01-14 Cory Fields - - * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Stabilize sort. - * ira-color (allocno_hard_regs_compare): Likewise. - -2018-01-14 Nathan Rossi - - PR target/83013 - * config/microblaze/microblaze.c (microblaze_asm_output_ident): - Use .pushsection/.popsection. - -2018-01-14 Martin Sebor - - PR c++/81327 - * doc/invoke.texi (-Wlass-memaccess): Document suppression by casting. - -2018-01-14 Jakub Jelinek - - * config.gcc (i[34567]86-*-*): Remove one duplicate gfniintrin.h - entry from extra_headers. - (x86_64-*-*): Remove two duplicate gfniintrin.h entries from - extra_headers, make the list bitwise identical to the i?86-*-* one. - -2018-01-14 H.J. Lu - - * config/i386/i386.c (ix86_set_indirect_branch_type): Disallow - -mcmodel=large with -mindirect-branch=thunk, - -mindirect-branch=thunk-extern, -mfunction-return=thunk and - -mfunction-return=thunk-extern. - * doc/invoke.texi: Document -mcmodel=large is incompatible with - -mindirect-branch=thunk, -mindirect-branch=thunk-extern, - -mfunction-return=thunk and -mfunction-return=thunk-extern. - -2018-01-14 H.J. Lu - - * config/i386/i386.c (print_reg): Print the name of the full - integer register without '%'. - (ix86_print_operand): Handle 'V'. - * doc/extend.texi: Document 'V' modifier. - -2018-01-14 H.J. Lu - - * config/i386/constraints.md (Bs): Disallow memory operand for - -mindirect-branch-register. - (Bw): Likewise. - * config/i386/predicates.md (indirect_branch_operand): Likewise. - (GOT_memory_operand): Likewise. - (call_insn_operand): Likewise. - (sibcall_insn_operand): Likewise. - (GOT32_symbol_operand): Likewise. - * config/i386/i386.md (indirect_jump): Call convert_memory_address - for -mindirect-branch-register. - (tablejump): Likewise. - (*sibcall_memory): Likewise. - (*sibcall_value_memory): Likewise. - Disallow peepholes of indirect call and jump via memory for - -mindirect-branch-register. - (*call_pop): Replace m with Bw. - (*call_value_pop): Likewise. - (*sibcall_pop_memory): Replace m with Bs. - * config/i386/i386.opt (mindirect-branch-register): New option. - * doc/invoke.texi: Document -mindirect-branch-register option. - -2018-01-14 H.J. Lu - - * config/i386/i386-protos.h (ix86_output_function_return): New. - * config/i386/i386.c (ix86_set_indirect_branch_type): Also - set function_return_type. - (indirect_thunk_name): Add ret_p to indicate thunk for function - return. - (output_indirect_thunk_function): Pass false to - indirect_thunk_name. - (ix86_output_indirect_branch_via_reg): Likewise. - (ix86_output_indirect_branch_via_push): Likewise. - (output_indirect_thunk_function): Create alias for function - return thunk if regno < 0. - (ix86_output_function_return): New function. - (ix86_handle_fndecl_attribute): Handle function_return. - (ix86_attribute_table): Add function_return. - * config/i386/i386.h (machine_function): Add - function_return_type. - * config/i386/i386.md (simple_return_internal): Use - ix86_output_function_return. - (simple_return_internal_long): Likewise. - * config/i386/i386.opt (mfunction-return=): New option. - (indirect_branch): Mention -mfunction-return=. - * doc/extend.texi: Document function_return function attribute. - * doc/invoke.texi: Document -mfunction-return= option. - -2018-01-14 H.J. Lu - - * config/i386/i386-opts.h (indirect_branch): New. - * config/i386/i386-protos.h (ix86_output_indirect_jmp): Likewise. - * config/i386/i386.c (ix86_using_red_zone): Disallow red-zone - with local indirect jump when converting indirect call and jump. - (ix86_set_indirect_branch_type): New. - (ix86_set_current_function): Call ix86_set_indirect_branch_type. - (indirectlabelno): New. - (indirect_thunk_needed): Likewise. - (indirect_thunk_bnd_needed): Likewise. - (indirect_thunks_used): Likewise. - (indirect_thunks_bnd_used): Likewise. - (INDIRECT_LABEL): Likewise. - (indirect_thunk_name): Likewise. - (output_indirect_thunk): Likewise. - (output_indirect_thunk_function): Likewise. - (ix86_output_indirect_branch_via_reg): Likewise. - (ix86_output_indirect_branch_via_push): Likewise. - (ix86_output_indirect_branch): Likewise. - (ix86_output_indirect_jmp): Likewise. - (ix86_code_end): Call output_indirect_thunk_function if needed. - (ix86_output_call_insn): Call ix86_output_indirect_branch if - needed. - (ix86_handle_fndecl_attribute): Handle indirect_branch. - (ix86_attribute_table): Add indirect_branch. - * config/i386/i386.h (machine_function): Add indirect_branch_type - and has_local_indirect_jump. - * config/i386/i386.md (indirect_jump): Set has_local_indirect_jump - to true. - (tablejump): Likewise. - (*indirect_jump): Use ix86_output_indirect_jmp. - (*tablejump_1): Likewise. - (simple_return_indirect_internal): Likewise. - * config/i386/i386.opt (mindirect-branch=): New option. - (indirect_branch): New. - (keep): Likewise. - (thunk): Likewise. - (thunk-inline): Likewise. - (thunk-extern): Likewise. - * doc/extend.texi: Document indirect_branch function attribute. - * doc/invoke.texi: Document -mindirect-branch= option. - -2018-01-14 Jan Hubicka - - PR ipa/83051 - * ipa-inline.c (edge_badness): Tolerate roundoff errors. - -2018-01-14 Richard Sandiford - - * ipa-inline.c (want_inline_small_function_p): Return false if - inlining has already failed with CIF_FINAL_ERROR. - (update_caller_keys): Call want_inline_small_function_p before - can_inline_edge_p. - (update_callee_keys): Likewise. - -2018-01-10 Kelvin Nilsen - - * config/rs6000/rs6000-p8swap.c (rs6000_sum_of_two_registers_p): - New function. - (rs6000_quadword_masked_address_p): Likewise. - (quad_aligned_load_p): Likewise. - (quad_aligned_store_p): Likewise. - (const_load_sequence_p): Add comment to describe the outer-most loop. - (mimic_memory_attributes_and_flags): New function. - (rs6000_gen_stvx): Likewise. - (replace_swapped_aligned_store): Likewise. - (rs6000_gen_lvx): Likewise. - (replace_swapped_aligned_load): Likewise. - (replace_swapped_load_constant): Capitalize argument name in - comment describing this function. - (rs6000_analyze_swaps): Add a third pass to search for vector loads - and stores that access quad-word aligned addresses and replace - with stvx or lvx instructions when appropriate. - * config/rs6000/rs6000-protos.h (rs6000_sum_of_two_registers_p): - New function prototype. - (rs6000_quadword_masked_address_p): Likewise. - (rs6000_gen_lvx): Likewise. - (rs6000_gen_stvx): Likewise. - * config/rs6000/vsx.md (*vsx_le_perm_load_): For modes - VSX_D (V2DF, V2DI), modify this split to select lvx instruction - when memory address is aligned. - (*vsx_le_perm_load_): For modes VSX_W (V4SF, V4SI), modify - this split to select lvx instruction when memory address is aligned. - (*vsx_le_perm_load_v8hi): Modify this split to select lvx - instruction when memory address is aligned. - (*vsx_le_perm_load_v16qi): Likewise. - (four unnamed splitters): Modify to select the stvx instruction - when memory is aligned. - -2018-01-13 Jan Hubicka - - * predict.c (determine_unlikely_bbs): Handle correctly BBs - which appears in the queue multiple times. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vectorizer.h (vec_lower_bound): New structure. - (_loop_vec_info): Add check_nonzero and lower_bounds. - (LOOP_VINFO_CHECK_NONZERO): New macro. - (LOOP_VINFO_LOWER_BOUNDS): Likewise. - (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Check lower_bounds too. - * tree-data-ref.h (dr_with_seg_len): Add access_size and align - fields. Make seg_len the distance travelled, not including the - access size. - (dr_direction_indicator): Declare. - (dr_zero_step_indicator): Likewise. - (dr_known_forward_stride_p): Likewise. - * tree-data-ref.c: Include stringpool.h, tree-vrp.h and - tree-ssanames.h. - (runtime_alias_check_p): Allow runtime alias checks with - variable strides. - (operator ==): Compare access_size and align. - (prune_runtime_alias_test_list): Rework for new distinction between - the access_size and seg_len. - (create_intersect_range_checks_index): Likewise. Cope with polynomial - segment lengths. - (get_segment_min_max): New function. - (create_intersect_range_checks): Use it. - (dr_step_indicator): New function. - (dr_direction_indicator): Likewise. - (dr_zero_step_indicator): Likewise. - (dr_known_forward_stride_p): Likewise. - * tree-loop-distribution.c (data_ref_segment_size): Return - DR_STEP * (niters - 1). - (compute_alias_check_pairs): Update call to the dr_with_seg_len - constructor. - * tree-vect-data-refs.c (vect_check_nonzero_value): New function. - (vect_preserves_scalar_order_p): New function, split out from... - (vect_analyze_data_ref_dependence): ...here. Check for zero steps. - (vect_vfa_segment_size): Return DR_STEP * (length_factor - 1). - (vect_vfa_access_size): New function. - (vect_vfa_align): Likewise. - (vect_compile_time_alias): Take access_size_a and access_b arguments. - (dump_lower_bound): New function. - (vect_check_lower_bound): Likewise. - (vect_small_gap_p): Likewise. - (vectorizable_with_step_bound_p): Likewise. - (vect_prune_runtime_alias_test_list): Ignore cross-iteration - depencies if the vectorization factor is 1. Convert the checks - for nonzero steps into checks on the bounds of DR_STEP. Try using - a bunds check for variable steps if the minimum required step is - relatively small. Update calls to the dr_with_seg_len - constructor and to vect_compile_time_alias. - * tree-vect-loop-manip.c (vect_create_cond_for_lower_bounds): New - function. - (vect_loop_versioning): Call it. - * tree-vect-loop.c (vect_analyze_loop_2): Clear LOOP_VINFO_LOWER_BOUNDS - when retrying. - (vect_estimate_min_profitable_iters): Account for any bounds checks. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * doc/sourcebuild.texi (vect_scatter_store): Document. - * optabs.def (scatter_store_optab, mask_scatter_store_optab): New - optabs. - * doc/md.texi (scatter_store@var{m}, mask_scatter_store@var{m}): - Document. - * genopinit.c (main): Add supports_vec_scatter_store and - supports_vec_scatter_store_cached to target_optabs. - * gimple.h (gimple_expr_type): Handle IFN_SCATTER_STORE and - IFN_MASK_SCATTER_STORE. - * internal-fn.def (SCATTER_STORE, MASK_SCATTER_STORE): New internal - functions. - * internal-fn.h (internal_store_fn_p): Declare. - (internal_fn_stored_value_index): Likewise. - * internal-fn.c (scatter_store_direct): New macro. - (expand_scatter_store_optab_fn): New function. - (direct_scatter_store_optab_supported_p): New macro. - (internal_store_fn_p): New function. - (internal_gather_scatter_fn_p): Handle IFN_SCATTER_STORE and - IFN_MASK_SCATTER_STORE. - (internal_fn_mask_index): Likewise. - (internal_fn_stored_value_index): New function. - (internal_gather_scatter_fn_supported_p): Adjust operand numbers - for scatter stores. - * optabs-query.h (supports_vec_scatter_store_p): Declare. - * optabs-query.c (supports_vec_scatter_store_p): New function. - * tree-vectorizer.h (vect_get_store_rhs): Declare. - * tree-vect-data-refs.c (vect_analyze_data_ref_access): Return - true for scatter stores. - (vect_gather_scatter_fn_p): Handle scatter stores too. - (vect_check_gather_scatter): Consider using scatter stores if - supports_vec_scatter_store_p. - * tree-vect-patterns.c (vect_try_gather_scatter_pattern): Handle - scatter stores too. - * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use - internal_fn_stored_value_index. - (check_load_store_masking): Handle scatter stores too. - (vect_get_store_rhs): Make public. - (vectorizable_call): Use internal_store_fn_p. - (vectorizable_store): Handle scatter store internal functions. - (vect_transform_stmt): Compare GROUP_STORE_COUNT with GROUP_SIZE - when deciding whether the end of the group has been reached. - * config/aarch64/aarch64.md (UNSPEC_ST1_SCATTER): New unspec. - * config/aarch64/aarch64-sve.md (scatter_store): New expander. - (mask_scatter_store): New insns. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vectorizer.h (vect_gather_scatter_fn_p): Declare. - * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Make public. - * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): New - function. - (vect_use_strided_gather_scatters_p): Take a masked_p argument. - Use vect_truncate_gather_scatter_offset if we can't treat the - operation as a normal gather load or scatter store. - (get_group_load_store_type): Take the gather_scatter_info - as argument. Try using a gather load or scatter store for - single-element groups. - (get_load_store_type): Update calls to get_group_load_store_type - and vect_use_strided_gather_scatters_p. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vectorizer.h (vect_create_data_ref_ptr): Take an extra - optional tree argument. - * tree-vect-data-refs.c (vect_check_gather_scatter): Check for - null target hooks. - (vect_create_data_ref_ptr): Take the iv_step as an optional argument, - but continue to use the current value as a fallback. - (bump_vector_ptr): Use operand_equal_p rather than tree_int_cst_compare - to compare the updates. - * tree-vect-stmts.c (vect_use_strided_gather_scatters_p): New function. - (get_load_store_type): Use it when handling a strided access. - (vect_get_strided_load_store_ops): New function. - (vect_get_data_ptr_increment): Likewise. - (vectorizable_load): Handle strided gather loads. Always pass - a step to vect_create_data_ref_ptr and bump_vector_ptr. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * doc/md.texi (gather_load@var{m}): Document. - (mask_gather_load@var{m}): Likewise. - * genopinit.c (main): Add supports_vec_gather_load and - supports_vec_gather_load_cached to target_optabs. - * optabs-tree.c (init_tree_optimization_optabs): Use - ggc_cleared_alloc to allocate target_optabs. - * optabs.def (gather_load_optab, mask_gather_laod_optab): New optabs. - * internal-fn.def (GATHER_LOAD, MASK_GATHER_LOAD): New internal - functions. - * internal-fn.h (internal_load_fn_p): Declare. - (internal_gather_scatter_fn_p): Likewise. - (internal_fn_mask_index): Likewise. - (internal_gather_scatter_fn_supported_p): Likewise. - * internal-fn.c (gather_load_direct): New macro. - (expand_gather_load_optab_fn): New function. - (direct_gather_load_optab_supported_p): New macro. - (direct_internal_fn_optab): New function. - (internal_load_fn_p): Likewise. - (internal_gather_scatter_fn_p): Likewise. - (internal_fn_mask_index): Likewise. - (internal_gather_scatter_fn_supported_p): Likewise. - * optabs-query.c (supports_at_least_one_mode_p): New function. - (supports_vec_gather_load_p): Likewise. - * optabs-query.h (supports_vec_gather_load_p): Declare. - * tree-vectorizer.h (gather_scatter_info): Add ifn, element_type - and memory_type field. - (NUM_PATTERNS): Bump to 15. - * tree-vect-data-refs.c: Include internal-fn.h. - (vect_gather_scatter_fn_p): New function. - (vect_describe_gather_scatter_call): Likewise. - (vect_check_gather_scatter): Try using internal functions for - gather loads. Recognize existing calls to a gather load function. - (vect_analyze_data_refs): Consider using gather loads if - supports_vec_gather_load_p. - * tree-vect-patterns.c (vect_get_load_store_mask): New function. - (vect_get_gather_scatter_offset_type): Likewise. - (vect_convert_mask_for_vectype): Likewise. - (vect_add_conversion_to_patterm): Likewise. - (vect_try_gather_scatter_pattern): Likewise. - (vect_recog_gather_scatter_pattern): New pattern recognizer. - (vect_vect_recog_func_ptrs): Add it. - * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use - internal_fn_mask_index and internal_gather_scatter_fn_p. - (check_load_store_masking): Take the gather_scatter_info as an - argument and handle gather loads. - (vect_get_gather_scatter_ops): New function. - (vectorizable_call): Check internal_load_fn_p. - (vectorizable_load): Likewise. Handle gather load internal - functions. - (vectorizable_store): Update call to check_load_store_masking. - * config/aarch64/aarch64.md (UNSPEC_LD1_GATHER): New unspec. - * config/aarch64/iterators.md (SVE_S, SVE_D): New mode iterators. - * config/aarch64/predicates.md (aarch64_gather_scale_operand_w) - (aarch64_gather_scale_operand_d): New predicates. - * config/aarch64/aarch64-sve.md (gather_load): New expander. - (mask_gather_load): New insns. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * optabs.def (fold_left_plus_optab): New optab. - * doc/md.texi (fold_left_plus_@var{m}): Document. - * internal-fn.def (IFN_FOLD_LEFT_PLUS): New internal function. - * internal-fn.c (fold_left_direct): Define. - (expand_fold_left_optab_fn): Likewise. - (direct_fold_left_optab_supported_p): Likewise. - * fold-const-call.c (fold_const_fold_left): New function. - (fold_const_call): Use it to fold CFN_FOLD_LEFT_PLUS. - * tree-parloops.c (valid_reduction_p): New function. - (gather_scalar_reductions): Use it. - * tree-vectorizer.h (FOLD_LEFT_REDUCTION): New vect_reduction_type. - (vect_finish_replace_stmt): Declare. - * tree-vect-loop.c (fold_left_reduction_fn): New function. - (needs_fold_left_reduction_p): New function, split out from... - (vect_is_simple_reduction): ...here. Accept reductions that - forbid reassociation, but give them type FOLD_LEFT_REDUCTION. - (vect_force_simple_reduction): Also store the reduction type in - the assignment's STMT_VINFO_REDUC_TYPE. - (vect_model_reduction_cost): Handle FOLD_LEFT_REDUCTION. - (merge_with_identity): New function. - (vect_expand_fold_left): Likewise. - (vectorize_fold_left_reduction): Likewise. - (vectorizable_reduction): Handle FOLD_LEFT_REDUCTION. Leave the - scalar phi in place for it. Check for target support and reject - cases that would reassociate the operation. Defer the transform - phase to vectorize_fold_left_reduction. - * config/aarch64/aarch64.md (UNSPEC_FADDA): New unspec. - * config/aarch64/aarch64-sve.md (fold_left_plus_): New expander. - (*fold_left_plus_, *pred_fold_left_plus_): New insns. - -2018-01-13 Richard Sandiford - - * tree-if-conv.c (predicate_mem_writes): Remove redundant - call to ifc_temp_var. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * target.def (legitimize_address_displacement): Take the original - offset as a poly_int. - * targhooks.h (default_legitimize_address_displacement): Update - accordingly. - * targhooks.c (default_legitimize_address_displacement): Likewise. - * doc/tm.texi: Regenerate. - * lra-constraints.c (base_plus_disp_to_reg): Take the displacement - as an argument, moving assert of ad->disp == ad->disp_term to... - (process_address_1): ...here. Update calls to base_plus_disp_to_reg. - Try calling targetm.legitimize_address_displacement before expanding - the address rather than afterwards, and adjust for the new interface. - * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement): - Match the new hook interface. Handle SVE addresses. - * config/sh/sh.c (sh_legitimize_address_displacement): Make the - new hook interface. - -2018-01-13 Richard Sandiford - - * Makefile.in (OBJS): Add early-remat.o. - * target.def (select_early_remat_modes): New hook. - * doc/tm.texi.in (TARGET_SELECT_EARLY_REMAT_MODES): New hook. - * doc/tm.texi: Regenerate. - * targhooks.h (default_select_early_remat_modes): Declare. - * targhooks.c (default_select_early_remat_modes): New function. - * timevar.def (TV_EARLY_REMAT): New timevar. - * passes.def (pass_early_remat): New pass. - * tree-pass.h (make_pass_early_remat): Declare. - * early-remat.c: New file. - * config/aarch64/aarch64.c (aarch64_select_early_remat_modes): New - function. - (TARGET_SELECT_EARLY_REMAT_MODES): Define. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Replace - vfm1 with a bound_epilog parameter. - (vect_do_peeling): Update calls accordingly, and move the prologue - call earlier in the function. Treat the base bound_epilog as 0 for - fully-masked loops and retain vf - 1 for other loops. Add 1 to - this base when peeling for gaps. - * tree-vect-loop.c (vect_analyze_loop_2): Allow peeling for gaps - with fully-masked loops. - (vect_estimate_min_profitable_iters): Handle the single peeled - iteration in that case. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vect-data-refs.c (vect_analyze_group_access_1): Allow - single-element interleaving even if the size is not a power of 2. - * tree-vect-stmts.c (get_load_store_type): Disallow elementwise - accesses for single-element interleaving if the group size is - not a power of 2. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * doc/md.texi (fold_extract_last_@var{m}): Document. - * doc/sourcebuild.texi (vect_fold_extract_last): Likewise. - * optabs.def (fold_extract_last_optab): New optab. - * internal-fn.def (FOLD_EXTRACT_LAST): New internal function. - * internal-fn.c (fold_extract_direct): New macro. - (expand_fold_extract_optab_fn): Likewise. - (direct_fold_extract_optab_supported_p): Likewise. - * tree-vectorizer.h (EXTRACT_LAST_REDUCTION): New vect_reduction_type. - * tree-vect-loop.c (vect_model_reduction_cost): Handle - EXTRACT_LAST_REDUCTION. - (get_initial_def_for_reduction): Do not create an initial vector - for EXTRACT_LAST_REDUCTION reductions. - (vectorizable_reduction): Leave the scalar phi in place for - EXTRACT_LAST_REDUCTIONs. Try using EXTRACT_LAST_REDUCTION - ahead of INTEGER_INDUC_COND_REDUCTION. Do not check for an - epilogue code for EXTRACT_LAST_REDUCTION and defer the - transform phase to vectorizable_condition. - * tree-vect-stmts.c (vect_finish_stmt_generation_1): New function, - split out from... - (vect_finish_stmt_generation): ...here. - (vect_finish_replace_stmt): New function. - (vectorizable_condition): Handle EXTRACT_LAST_REDUCTION. - * config/aarch64/aarch64-sve.md (fold_extract_last_): New - pattern. - * config/aarch64/aarch64.md (UNSPEC_CLASTB): New unspec. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * doc/md.texi (extract_last_@var{m}): Document. - * optabs.def (extract_last_optab): New optab. - * internal-fn.def (EXTRACT_LAST): New internal function. - * internal-fn.c (cond_unary_direct): New macro. - (expand_cond_unary_optab_fn): Likewise. - (direct_cond_unary_optab_supported_p): Likewise. - * tree-vect-loop.c (vectorizable_live_operation): Allow fully-masked - loops using EXTRACT_LAST. - * config/aarch64/aarch64-sve.md (aarch64_sve_lastb): Rename to... - (extract_last_): ...this optab. - (vec_extract): Update accordingly. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * target.def (empty_mask_is_expensive): New hook. - * doc/tm.texi.in (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): New hook. - * doc/tm.texi: Regenerate. - * targhooks.h (default_empty_mask_is_expensive): Declare. - * targhooks.c (default_empty_mask_is_expensive): New function. - * tree-vectorizer.c (vectorize_loops): Only call optimize_mask_stores - if the target says that empty masks are expensive. - * config/aarch64/aarch64.c (aarch64_empty_mask_is_expensive): - New function. - (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): Redefine. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vectorizer.h (_loop_vec_info::mask_skip_niters): New field. - (LOOP_VINFO_MASK_SKIP_NITERS): New macro. - (vect_use_loop_mask_for_alignment_p): New function. - (vect_prepare_for_masked_peels, vect_gen_while_not): Declare. - * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Add an - niters_skip argument. Make sure that the first niters_skip elements - of the first iteration are inactive. - (vect_set_loop_condition_masked): Handle LOOP_VINFO_MASK_SKIP_NITERS. - Update call to vect_set_loop_masks_directly. - (get_misalign_in_elems): New function, split out from... - (vect_gen_prolog_loop_niters): ...here. - (vect_update_init_of_dr): Take a code argument that specifies whether - the adjustment should be added or subtracted. - (vect_update_init_of_drs): Likewise. - (vect_prepare_for_masked_peels): New function. - (vect_do_peeling): Skip prologue peeling if we're using a mask - instead. Update call to vect_update_inits_of_drs. - * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize - mask_skip_niters. - (vect_analyze_loop_2): Allow fully-masked loops with peeling for - alignment. Do not include the number of peeled iterations in - the minimum threshold in that case. - (vectorizable_induction): Adjust the start value down by - LOOP_VINFO_MASK_SKIP_NITERS iterations. - (vect_transform_loop): Call vect_prepare_for_masked_peels. - Take the number of skipped iterations into account when calculating - the loop bounds. - * tree-vect-stmts.c (vect_gen_while_not): New function. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * doc/sourcebuild.texi (vect_fully_masked): Document. - * params.def (PARAM_MIN_VECT_LOOP_BOUND): Change minimum and - default value to 0. - * tree-vect-loop.c (vect_analyze_loop_costing): New function, - split out from... - (vect_analyze_loop_2): ...here. Don't check the vectorization - factor against the number of loop iterations if the loop is - fully-masked. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-ssa-loop-ivopts.c (USE_ADDRESS): Split into... - (USE_REF_ADDRESS, USE_PTR_ADDRESS): ...these new use types. - (dump_groups): Update accordingly. - (iv_use::mem_type): New member variable. - (address_p): New function. - (record_use): Add a mem_type argument and initialize the new - mem_type field. - (record_group_use): Add a mem_type argument. Use address_p. - Remove obsolete null checks of base_object. Update call to record_use. - (find_interesting_uses_op): Update call to record_group_use. - (find_interesting_uses_cond): Likewise. - (find_interesting_uses_address): Likewise. - (get_mem_type_for_internal_fn): New function. - (find_address_like_use): Likewise. - (find_interesting_uses_stmt): Try find_address_like_use before - calling find_interesting_uses_op. - (addr_offset_valid_p): Use the iv mem_type field as the type - of the addressed memory. - (add_autoinc_candidates): Likewise. - (get_address_cost): Likewise. - (split_small_address_groups_p): Use address_p. - (split_address_groups): Likewise. - (add_iv_candidate_for_use): Likewise. - (autoinc_possible_for_pair): Likewise. - (rewrite_groups): Likewise. - (get_use_type): Check for USE_REF_ADDRESS instead of USE_ADDRESS. - (determine_group_iv_cost): Update after split of USE_ADDRESS. - (get_alias_ptr_type_for_ptr_address): New function. - (rewrite_use_address): Rewrite address uses in calls that were - identified by find_address_like_use. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * expr.c (expand_expr_addr_expr_1): Handle ADDR_EXPRs of - TARGET_MEM_REFs. - * gimple-expr.h (is_gimple_addressable: Likewise. - * gimple-expr.c (is_gimple_address): Likewise. - * internal-fn.c (expand_call_mem_ref): New function. - (expand_mask_load_optab_fn): Use it. - (expand_mask_store_optab_fn): Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * doc/md.texi (cond_add@var{mode}, cond_sub@var{mode}) - (cond_and@var{mode}, cond_ior@var{mode}, cond_xor@var{mode}) - (cond_smin@var{mode}, cond_smax@var{mode}, cond_umin@var{mode}) - (cond_umax@var{mode}): Document. - * optabs.def (cond_add_optab, cond_sub_optab, cond_and_optab) - (cond_ior_optab, cond_xor_optab, cond_smin_optab, cond_smax_optab) - (cond_umin_optab, cond_umax_optab): New optabs. - * internal-fn.def (COND_ADD, COND_SUB, COND_MIN, COND_MAX, COND_AND) - (COND_IOR, COND_XOR): New internal functions. - * internal-fn.h (get_conditional_internal_fn): Declare. - * internal-fn.c (cond_binary_direct): New macro. - (expand_cond_binary_optab_fn): Likewise. - (direct_cond_binary_optab_supported_p): Likewise. - (get_conditional_internal_fn): New function. - * tree-vect-loop.c (vectorizable_reduction): Handle fully-masked loops. - Cope with reduction statements that are vectorized as calls rather - than assignments. - * config/aarch64/aarch64-sve.md (cond_): New insns. - * config/aarch64/iterators.md (UNSPEC_COND_ADD, UNSPEC_COND_SUB) - (UNSPEC_COND_SMAX, UNSPEC_COND_UMAX, UNSPEC_COND_SMIN) - (UNSPEC_COND_UMIN, UNSPEC_COND_AND, UNSPEC_COND_ORR) - (UNSPEC_COND_EOR): New unspecs. - (optab): Add mappings for them. - (SVE_COND_INT_OP, SVE_COND_FP_OP): New int iterators. - (sve_int_op, sve_fp_op): New int attributes. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * optabs.def (while_ult_optab): New optab. - * doc/md.texi (while_ult@var{m}@var{n}): Document. - * internal-fn.def (WHILE_ULT): New internal function. - * internal-fn.h (direct_internal_fn_supported_p): New override - that takes two types as argument. - * internal-fn.c (while_direct): New macro. - (expand_while_optab_fn): New function. - (convert_optab_supported_p): Likewise. - (direct_while_optab_supported_p): New macro. - * wide-int.h (wi::udiv_ceil): New function. - * tree-vectorizer.h (rgroup_masks): New structure. - (vec_loop_masks): New typedef. - (_loop_vec_info): Add masks, mask_compare_type, can_fully_mask_p - and fully_masked_p. - (LOOP_VINFO_CAN_FULLY_MASK_P, LOOP_VINFO_FULLY_MASKED_P) - (LOOP_VINFO_MASKS, LOOP_VINFO_MASK_COMPARE_TYPE): New macros. - (vect_max_vf): New function. - (slpeel_make_loop_iterate_ntimes): Delete. - (vect_set_loop_condition, vect_get_loop_mask_type, vect_gen_while) - (vect_halve_mask_nunits, vect_double_mask_nunits): Declare. - (vect_record_loop_mask, vect_get_loop_mask): Likewise. - * tree-vect-loop-manip.c: Include tree-ssa-loop-niter.h, - internal-fn.h, stor-layout.h and optabs-query.h. - (vect_set_loop_mask): New function. - (add_preheader_seq): Likewise. - (add_header_seq): Likewise. - (interleave_supported_p): Likewise. - (vect_maybe_permute_loop_masks): Likewise. - (vect_set_loop_masks_directly): Likewise. - (vect_set_loop_condition_masked): Likewise. - (vect_set_loop_condition_unmasked): New function, split out from - slpeel_make_loop_iterate_ntimes. - (slpeel_make_loop_iterate_ntimes): Rename to.. - (vect_set_loop_condition): ...this. Use vect_set_loop_condition_masked - for fully-masked loops and vect_set_loop_condition_unmasked otherwise. - (vect_do_peeling): Update call accordingly. - (vect_gen_vector_loop_niters): Use VF as the step for fully-masked - loops. - * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize - mask_compare_type, can_fully_mask_p and fully_masked_p. - (release_vec_loop_masks): New function. - (_loop_vec_info): Use it to free the loop masks. - (can_produce_all_loop_masks_p): New function. - (vect_get_max_nscalars_per_iter): Likewise. - (vect_verify_full_masking): Likewise. - (vect_analyze_loop_2): Save LOOP_VINFO_CAN_FULLY_MASK_P around - retries, and free the mask rgroups before retrying. Check loop-wide - reasons for disallowing fully-masked loops. Make the final decision - about whether use a fully-masked loop or not. - (vect_estimate_min_profitable_iters): Do not assume that peeling - for the number of iterations will be needed for fully-masked loops. - (vectorizable_reduction): Disable fully-masked loops. - (vectorizable_live_operation): Likewise. - (vect_halve_mask_nunits): New function. - (vect_double_mask_nunits): Likewise. - (vect_record_loop_mask): Likewise. - (vect_get_loop_mask): Likewise. - (vect_transform_loop): Handle the case in which the final loop - iteration might handle a partial vector. Call vect_set_loop_condition - instead of slpeel_make_loop_iterate_ntimes. - * tree-vect-stmts.c: Include tree-ssa-loop-niter.h and gimple-fold.h. - (check_load_store_masking): New function. - (prepare_load_store_mask): Likewise. - (vectorizable_store): Handle fully-masked loops. - (vectorizable_load): Likewise. - (supportable_widening_operation): Use vect_halve_mask_nunits for - booleans. - (supportable_narrowing_operation): Likewise vect_double_mask_nunits. - (vect_gen_while): New function. - * config/aarch64/aarch64.md (umax3): New expander. - (aarch64_uqdec): New insn. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * optabs.def (reduc_and_scal_optab, reduc_ior_scal_optab) - (reduc_xor_scal_optab): New optabs. - * doc/md.texi (reduc_and_scal_@var{m}, reduc_ior_scal_@var{m}) - (reduc_xor_scal_@var{m}): Document. - * doc/sourcebuild.texi (vect_logical_reduc): Likewise. - * internal-fn.def (IFN_REDUC_AND, IFN_REDUC_IOR, IFN_REDUC_XOR): New - internal functions. - * fold-const-call.c (fold_const_call): Handle them. - * tree-vect-loop.c (reduction_fn_for_scalar_code): Return the new - internal functions for BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR. - * config/aarch64/aarch64-sve.md (reduc__scal_): - (*reduc__scal_): New patterns. - * config/aarch64/iterators.md (UNSPEC_ANDV, UNSPEC_ORV) - (UNSPEC_XORV): New unspecs. - (optab): Add entries for them. - (BITWISEV): New int iterator. - (bit_reduc_op): New int attributes. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * doc/md.texi (vec_shl_insert_@var{m}): New optab. - * internal-fn.def (VEC_SHL_INSERT): New internal function. - * optabs.def (vec_shl_insert_optab): New optab. - * tree-vectorizer.h (can_duplicate_and_interleave_p): Declare. - (duplicate_and_interleave): Likewise. - * tree-vect-loop.c: Include internal-fn.h. - (neutral_op_for_slp_reduction): New function, split out from - get_initial_defs_for_reduction. - (get_initial_def_for_reduction): Handle option 2 for variable-length - vectors by loading the neutral value into a vector and then shifting - the initial value into element 0. - (get_initial_defs_for_reduction): Replace the code argument with - the neutral value calculated by neutral_op_for_slp_reduction. - Use gimple_build_vector for constant-length vectors. - Use IFN_VEC_SHL_INSERT for variable-length vectors if all - but the first group_size elements have a neutral value. - Use duplicate_and_interleave otherwise. - (vect_create_epilog_for_reduction): Take a neutral_op parameter. - Update call to get_initial_defs_for_reduction. Handle SLP - reductions for variable-length vectors by creating one vector - result for each scalar result, with the elements associated - with other scalar results stubbed out with the neutral value. - (vectorizable_reduction): Call neutral_op_for_slp_reduction. - Require IFN_VEC_SHL_INSERT for double reductions on - variable-length vectors, or SLP reductions that have - a neutral value. Require can_duplicate_and_interleave_p - support for variable-length unchained SLP reductions if there - is no neutral value, such as for MIN/MAX reductions. Also require - the number of vector elements to be a multiple of the number of - SLP statements when doing variable-length unchained SLP reductions. - Update call to vect_create_epilog_for_reduction. - * tree-vect-slp.c (can_duplicate_and_interleave_p): Make public - and remove initial values. - (duplicate_and_interleave): Make public. - * config/aarch64/aarch64.md (UNSPEC_INSR): New unspec. - * config/aarch64/aarch64-sve.md (vec_shl_insert_): New insn. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vect-slp.c: Include gimple-fold.h and internal-fn.h - (can_duplicate_and_interleave_p): New function. - (vect_get_and_check_slp_defs): Take the vector of statements - rather than just the current one. Remove excess parentheses. - Restriction rejectinon of vect_constant_def and vect_external_def - for variable-length vectors to boolean types, or types for which - can_duplicate_and_interleave_p is false. - (vect_build_slp_tree_2): Update call to vect_get_and_check_slp_defs. - (duplicate_and_interleave): New function. - (vect_get_constant_vectors): Use gimple_build_vector for - constant-length vectors and suitable variable-length constant - vectors. Use duplicate_and_interleave for other variable-length - vectors. Don't defer the update when inserting new statements. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vect-loop.c (vect_estimate_min_profitable_iters): Make sure - min_profitable_iters doesn't go negative. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * doc/md.texi (vec_mask_load_lanes@var{m}@var{n}): Document. - (vec_mask_store_lanes@var{m}@var{n}): Likewise. - * optabs.def (vec_mask_load_lanes_optab): New optab. - (vec_mask_store_lanes_optab): Likewise. - * internal-fn.def (MASK_LOAD_LANES): New internal function. - (MASK_STORE_LANES): Likewise. - * internal-fn.c (mask_load_lanes_direct): New macro. - (mask_store_lanes_direct): Likewise. - (expand_mask_load_optab_fn): Handle masked operations. - (expand_mask_load_lanes_optab_fn): New macro. - (expand_mask_store_optab_fn): Handle masked operations. - (expand_mask_store_lanes_optab_fn): New macro. - (direct_mask_load_lanes_optab_supported_p): Likewise. - (direct_mask_store_lanes_optab_supported_p): Likewise. - * tree-vectorizer.h (vect_store_lanes_supported): Take a masked_p - parameter. - (vect_load_lanes_supported): Likewise. - * tree-vect-data-refs.c (strip_conversion): New function. - (can_group_stmts_p): Likewise. - (vect_analyze_data_ref_accesses): Use it instead of checking - for a pair of assignments. - (vect_store_lanes_supported): Take a masked_p parameter. - (vect_load_lanes_supported): Likewise. - * tree-vect-loop.c (vect_analyze_loop_2): Update calls to - vect_store_lanes_supported and vect_load_lanes_supported. - * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. - * tree-vect-stmts.c (get_group_load_store_type): Take a masked_p - parameter. Don't allow gaps for masked accesses. - Use vect_get_store_rhs. Update calls to vect_store_lanes_supported - and vect_load_lanes_supported. - (get_load_store_type): Take a masked_p parameter and update - call to get_group_load_store_type. - (vectorizable_store): Update call to get_load_store_type. - Handle IFN_MASK_STORE_LANES. - (vectorizable_load): Update call to get_load_store_type. - Handle IFN_MASK_LOAD_LANES. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * config/aarch64/aarch64-modes.def: Define x2, x3 and x4 vector - modes for SVE. - * config/aarch64/aarch64-protos.h - (aarch64_sve_struct_memory_operand_p): Declare. - * config/aarch64/iterators.md (SVE_STRUCT): New mode iterator. - (vector_count, insn_length, VSINGLE, vsingle): New mode attributes. - (VPRED, vpred): Handle SVE structure modes. - * config/aarch64/constraints.md (Utx): New constraint. - * config/aarch64/predicates.md (aarch64_sve_struct_memory_operand) - (aarch64_sve_struct_nonimmediate_operand): New predicates. - * config/aarch64/aarch64.md (UNSPEC_LDN, UNSPEC_STN): New unspecs. - * config/aarch64/aarch64-sve.md (mov, *aarch64_sve_mov_le) - (*aarch64_sve_mov_be, pred_mov): New patterns for - structure modes. Split into pieces after RA. - (vec_load_lanes, vec_mask_load_lanes) - (vec_store_lanes, vec_mask_store_lanes): - New patterns. - * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle - SVE structure modes. - (aarch64_classify_address): Likewise. - (sizetochar): Move earlier in file. - (aarch64_print_operand): Handle SVE register lists. - (aarch64_array_mode): New function. - (aarch64_sve_struct_memory_operand_p): Likewise. - (TARGET_ARRAY_MODE): Redefine. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * target.def (array_mode): New target hook. - * doc/tm.texi.in (TARGET_ARRAY_MODE): New hook. - * doc/tm.texi: Regenerate. - * hooks.h (hook_optmode_mode_uhwi_none): Declare. - * hooks.c (hook_optmode_mode_uhwi_none): New function. - * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Use - targetm.array_mode. - * stor-layout.c (mode_for_array): Likewise. Support polynomial - type sizes. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * fold-const.c (fold_binary_loc): Check the argument types - rather than the result type when testing for a vector operation. - -2018-01-13 Richard Sandiford - - * doc/tm.texi.in (DWARF_LAZY_REGISTER_VALUE): Document. - * doc/tm.texi: Regenerate. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * doc/invoke.texi (-msve-vector-bits=): Document new option. - (sve): Document new AArch64 extension. - * doc/md.texi (w): Extend the description of the AArch64 - constraint to include SVE vectors. - (Upl, Upa): Document new AArch64 predicate constraints. - * config/aarch64/aarch64-opts.h (aarch64_sve_vector_bits_enum): New - enum. - * config/aarch64/aarch64.opt (sve_vector_bits): New enum. - (msve-vector-bits=): New option. - * config/aarch64/aarch64-option-extensions.def (fp, simd): Disable - SVE when these are disabled. - (sve): New extension. - * config/aarch64/aarch64-modes.def: Define SVE vector and predicate - modes. Adjust their number of units based on aarch64_sve_vg. - (MAX_BITSIZE_MODE_ANY_MODE): Define. - * config/aarch64/aarch64-protos.h (ADDR_QUERY_ANY): New - aarch64_addr_query_type. - (aarch64_const_vec_all_same_in_range_p, aarch64_sve_pred_mode) - (aarch64_sve_cnt_immediate_p, aarch64_sve_addvl_addpl_immediate_p) - (aarch64_sve_inc_dec_immediate_p, aarch64_add_offset_temporaries) - (aarch64_split_add_offset, aarch64_output_sve_cnt_immediate) - (aarch64_output_sve_addvl_addpl, aarch64_output_sve_inc_dec_immediate) - (aarch64_output_sve_mov_immediate, aarch64_output_ptrue): Declare. - (aarch64_simd_imm_zero_p): Delete. - (aarch64_check_zero_based_sve_index_immediate): Declare. - (aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p) - (aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p) - (aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p) - (aarch64_sve_float_mul_immediate_p): Likewise. - (aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT - rather than an rtx. - (aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): Declare. - (aarch64_expand_mov_immediate): Take a gen_vec_duplicate callback. - (aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move): Declare. - (aarch64_expand_sve_vec_cmp_int, aarch64_expand_sve_vec_cmp_float) - (aarch64_expand_sve_vcond, aarch64_expand_sve_vec_perm): Declare. - (aarch64_regmode_natural_size): Likewise. - * config/aarch64/aarch64.h (AARCH64_FL_SVE): New macro. - (AARCH64_FL_V8_3, AARCH64_FL_RCPC, AARCH64_FL_DOTPROD): Shift - left one place. - (AARCH64_ISA_SVE, TARGET_SVE): New macros. - (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add entries - for VG and the SVE predicate registers. - (V_ALIASES): Add a "z"-prefixed alias. - (FIRST_PSEUDO_REGISTER): Change to P15_REGNUM + 1. - (AARCH64_DWARF_VG, AARCH64_DWARF_P0): New macros. - (PR_REGNUM_P, PR_LO_REGNUM_P): Likewise. - (PR_LO_REGS, PR_HI_REGS, PR_REGS): New reg_classes. - (REG_CLASS_NAMES): Add entries for them. - (REG_CLASS_CONTENTS): Likewise. Update ALL_REGS to include VG - and the predicate registers. - (aarch64_sve_vg): Declare. - (BITS_PER_SVE_VECTOR, BYTES_PER_SVE_VECTOR, BYTES_PER_SVE_PRED) - (SVE_BYTE_MODE, MAX_COMPILE_TIME_VEC_BYTES): New macros. - (REGMODE_NATURAL_SIZE): Define. - * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle - SVE macros. - * config/aarch64/aarch64.c: Include cfgrtl.h. - (simd_immediate_info): Add a constructor for series vectors, - and an associated step field. - (aarch64_sve_vg): New variable. - (aarch64_dbx_register_number): Handle VG and the predicate registers. - (aarch64_vect_struct_mode_p, aarch64_vector_mode_p): Delete. - (VEC_ADVSIMD, VEC_SVE_DATA, VEC_SVE_PRED, VEC_STRUCT, VEC_ANY_SVE) - (VEC_ANY_DATA, VEC_STRUCT): New constants. - (aarch64_advsimd_struct_mode_p, aarch64_sve_pred_mode_p) - (aarch64_classify_vector_mode, aarch64_vector_data_mode_p) - (aarch64_sve_data_mode_p, aarch64_sve_pred_mode) - (aarch64_get_mask_mode): New functions. - (aarch64_hard_regno_nregs): Handle SVE data modes for FP_REGS - and FP_LO_REGS. Handle PR_REGS, PR_LO_REGS and PR_HI_REGS. - (aarch64_hard_regno_mode_ok): Handle VG. Also handle the SVE - predicate modes and predicate registers. Explicitly restrict - GPRs to modes of 16 bytes or smaller. Only allow FP registers - to store a vector mode if it is recognized by - aarch64_classify_vector_mode. - (aarch64_regmode_natural_size): New function. - (aarch64_hard_regno_caller_save_mode): Return the original mode - for predicates. - (aarch64_sve_cnt_immediate_p, aarch64_output_sve_cnt_immediate) - (aarch64_sve_addvl_addpl_immediate_p, aarch64_output_sve_addvl_addpl) - (aarch64_sve_inc_dec_immediate_p, aarch64_output_sve_inc_dec_immediate) - (aarch64_add_offset_1_temporaries, aarch64_offset_temporaries): New - functions. - (aarch64_add_offset): Add a temp2 parameter. Assert that temp1 - does not overlap dest if the function is frame-related. Handle - SVE constants. - (aarch64_split_add_offset): New function. - (aarch64_add_sp, aarch64_sub_sp): Add temp2 parameters and pass - them aarch64_add_offset. - (aarch64_allocate_and_probe_stack_space): Add a temp2 parameter - and update call to aarch64_sub_sp. - (aarch64_add_cfa_expression): New function. - (aarch64_expand_prologue): Pass extra temporary registers to the - functions above. Handle the case in which we need to emit new - DW_CFA_expressions for registers that were originally saved - relative to the stack pointer, but now have to be expressed - relative to the frame pointer. - (aarch64_output_mi_thunk): Pass extra temporary registers to the - functions above. - (aarch64_expand_epilogue): Likewise. Prevent inheritance of - IP0 and IP1 values for SVE frames. - (aarch64_expand_vec_series): New function. - (aarch64_expand_sve_widened_duplicate): Likewise. - (aarch64_expand_sve_const_vector): Likewise. - (aarch64_expand_mov_immediate): Add a gen_vec_duplicate parameter. - Handle SVE constants. Use emit_move_insn to move a force_const_mem - into the register, rather than emitting a SET directly. - (aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move) - (aarch64_get_reg_raw_mode, offset_4bit_signed_scaled_p) - (offset_6bit_unsigned_scaled_p, aarch64_offset_7bit_signed_scaled_p) - (offset_9bit_signed_scaled_p): New functions. - (aarch64_replicate_bitmask_imm): New function. - (aarch64_bitmask_imm): Use it. - (aarch64_cannot_force_const_mem): Reject expressions involving - a CONST_POLY_INT. Update call to aarch64_classify_symbol. - (aarch64_classify_index): Handle SVE indices, by requiring - a plain register index with a scale that matches the element size. - (aarch64_classify_address): Handle SVE addresses. Assert that - the mode of the address is VOIDmode or an integer mode. - Update call to aarch64_classify_symbol. - (aarch64_classify_symbolic_expression): Update call to - aarch64_classify_symbol. - (aarch64_const_vec_all_in_range_p): New function. - (aarch64_print_vector_float_operand): Likewise. - (aarch64_print_operand): Handle 'N' and 'C'. Use "zN" rather than - "vN" for FP registers with SVE modes. Handle (const ...) vectors - and the FP immediates 1.0 and 0.5. - (aarch64_print_address_internal): Handle SVE addresses. - (aarch64_print_operand_address): Use ADDR_QUERY_ANY. - (aarch64_regno_regclass): Handle predicate registers. - (aarch64_secondary_reload): Handle big-endian reloads of SVE - data modes. - (aarch64_class_max_nregs): Handle SVE modes and predicate registers. - (aarch64_rtx_costs): Check for ADDVL and ADDPL instructions. - (aarch64_convert_sve_vector_bits): New function. - (aarch64_override_options): Use it to handle -msve-vector-bits=. - (aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT - rather than an rtx. - (aarch64_legitimate_constant_p): Use aarch64_classify_vector_mode. - Handle SVE vector and predicate modes. Accept VL-based constants - that need only one temporary register, and VL offsets that require - no temporary registers. - (aarch64_conditional_register_usage): Mark the predicate registers - as fixed if SVE isn't available. - (aarch64_vector_mode_supported_p): Use aarch64_classify_vector_mode. - Return true for SVE vector and predicate modes. - (aarch64_simd_container_mode): Take the number of bits as a poly_int64 - rather than an unsigned int. Handle SVE modes. - (aarch64_preferred_simd_mode): Update call accordingly. Handle - SVE modes. - (aarch64_autovectorize_vector_sizes): Add BYTES_PER_SVE_VECTOR - if SVE is enabled. - (aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p) - (aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p) - (aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p) - (aarch64_sve_float_mul_immediate_p): New functions. - (aarch64_sve_valid_immediate): New function. - (aarch64_simd_valid_immediate): Use it as the fallback for SVE vectors. - Explicitly reject structure modes. Check for INDEX constants. - Handle PTRUE and PFALSE constants. - (aarch64_check_zero_based_sve_index_immediate): New function. - (aarch64_simd_imm_zero_p): Delete. - (aarch64_mov_operand_p): Use aarch64_simd_valid_immediate for - vector modes. Accept constants in the range of CNT[BHWD]. - (aarch64_simd_scalar_immediate_valid_for_move): Explicitly - ask for an Advanced SIMD mode. - (aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): New functions. - (aarch64_simd_vector_alignment): Handle SVE predicates. - (aarch64_vectorize_preferred_vector_alignment): New function. - (aarch64_simd_vector_alignment_reachable): Use it instead of - the vector size. - (aarch64_shift_truncation_mask): Use aarch64_vector_data_mode_p. - (aarch64_output_sve_mov_immediate, aarch64_output_ptrue): New - functions. - (MAX_VECT_LEN): Delete. - (expand_vec_perm_d): Add a vec_flags field. - (emit_unspec2, aarch64_expand_sve_vec_perm): New functions. - (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip) - (aarch64_evpc_ext): Don't apply a big-endian lane correction - for SVE modes. - (aarch64_evpc_rev): Rename to... - (aarch64_evpc_rev_local): ...this. Use a predicated operation for SVE. - (aarch64_evpc_rev_global): New function. - (aarch64_evpc_dup): Enforce a 64-byte range for SVE DUP. - (aarch64_evpc_tbl): Use MAX_COMPILE_TIME_VEC_BYTES instead of - MAX_VECT_LEN. - (aarch64_evpc_sve_tbl): New function. - (aarch64_expand_vec_perm_const_1): Update after rename of - aarch64_evpc_rev. Handle SVE permutes too, trying - aarch64_evpc_rev_global and using aarch64_evpc_sve_tbl rather - than aarch64_evpc_tbl. - (aarch64_vectorize_vec_perm_const): Initialize vec_flags. - (aarch64_sve_cmp_operand_p, aarch64_unspec_cond_code) - (aarch64_gen_unspec_cond, aarch64_expand_sve_vec_cmp_int) - (aarch64_emit_unspec_cond, aarch64_emit_unspec_cond_or) - (aarch64_emit_inverted_unspec_cond, aarch64_expand_sve_vec_cmp_float) - (aarch64_expand_sve_vcond): New functions. - (aarch64_modes_tieable_p): Use aarch64_vector_data_mode_p instead - of aarch64_vector_mode_p. - (aarch64_dwarf_poly_indeterminate_value): New function. - (aarch64_compute_pressure_classes): Likewise. - (aarch64_can_change_mode_class): Likewise. - (TARGET_GET_RAW_RESULT_MODE, TARGET_GET_RAW_ARG_MODE): Redefine. - (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): Likewise. - (TARGET_VECTORIZE_GET_MASK_MODE): Likewise. - (TARGET_DWARF_POLY_INDETERMINATE_VALUE): Likewise. - (TARGET_COMPUTE_PRESSURE_CLASSES): Likewise. - (TARGET_CAN_CHANGE_MODE_CLASS): Likewise. - * config/aarch64/constraints.md (Upa, Upl, Uav, Uat, Usv, Usi, Utr) - (Uty, Dm, vsa, vsc, vsd, vsi, vsn, vsl, vsm, vsA, vsM, vsN): New - constraints. - (Dn, Dl, Dr): Accept const as well as const_vector. - (Dz): Likewise. Compare against CONST0_RTX. - * config/aarch64/iterators.md: Refer to "Advanced SIMD" instead - of "vector" where appropriate. - (SVE_ALL, SVE_BH, SVE_BHS, SVE_BHSI, SVE_HSDI, SVE_HSF, SVE_SD) - (SVE_SDI, SVE_I, SVE_F, PRED_ALL, PRED_BHS): New mode iterators. - (UNSPEC_SEL, UNSPEC_ANDF, UNSPEC_IORF, UNSPEC_XORF, UNSPEC_COND_LT) - (UNSPEC_COND_LE, UNSPEC_COND_EQ, UNSPEC_COND_NE, UNSPEC_COND_GE) - (UNSPEC_COND_GT, UNSPEC_COND_LO, UNSPEC_COND_LS, UNSPEC_COND_HS) - (UNSPEC_COND_HI, UNSPEC_COND_UO): New unspecs. - (Vetype, VEL, Vel, VWIDE, Vwide, vw, vwcore, V_INT_EQUIV) - (v_int_equiv): Extend to SVE modes. - (Vesize, V128, v128, Vewtype, V_FP_EQUIV, v_fp_equiv, VPRED): New - mode attributes. - (LOGICAL_OR, SVE_INT_UNARY, SVE_FP_UNARY): New code iterators. - (optab): Handle popcount, smin, smax, umin, umax, abs and sqrt. - (logical_nn, lr, sve_int_op, sve_fp_op): New code attributs. - (LOGICALF, OPTAB_PERMUTE, UNPACK, UNPACK_UNSIGNED, SVE_COND_INT_CMP) - (SVE_COND_FP_CMP): New int iterators. - (perm_hilo): Handle the new unpack unspecs. - (optab, logicalf_op, su, perm_optab, cmp_op, imm_con): New int - attributes. - * config/aarch64/predicates.md (aarch64_sve_cnt_immediate) - (aarch64_sve_addvl_addpl_immediate, aarch64_split_add_offset_immediate) - (aarch64_pluslong_or_poly_operand, aarch64_nonmemory_operand) - (aarch64_equality_operator, aarch64_constant_vector_operand) - (aarch64_sve_ld1r_operand, aarch64_sve_ldr_operand): New predicates. - (aarch64_sve_nonimmediate_operand): Likewise. - (aarch64_sve_general_operand): Likewise. - (aarch64_sve_dup_operand, aarch64_sve_arith_immediate): Likewise. - (aarch64_sve_sub_arith_immediate, aarch64_sve_inc_dec_immediate) - (aarch64_sve_logical_immediate, aarch64_sve_mul_immediate): Likewise. - (aarch64_sve_dup_immediate, aarch64_sve_cmp_vsc_immediate): Likewise. - (aarch64_sve_cmp_vsd_immediate, aarch64_sve_index_immediate): Likewise. - (aarch64_sve_float_arith_immediate): Likewise. - (aarch64_sve_float_arith_with_sub_immediate): Likewise. - (aarch64_sve_float_mul_immediate, aarch64_sve_arith_operand): Likewise. - (aarch64_sve_add_operand, aarch64_sve_logical_operand): Likewise. - (aarch64_sve_lshift_operand, aarch64_sve_rshift_operand): Likewise. - (aarch64_sve_mul_operand, aarch64_sve_cmp_vsc_operand): Likewise. - (aarch64_sve_cmp_vsd_operand, aarch64_sve_index_operand): Likewise. - (aarch64_sve_float_arith_operand): Likewise. - (aarch64_sve_float_arith_with_sub_operand): Likewise. - (aarch64_sve_float_mul_operand): Likewise. - (aarch64_sve_vec_perm_operand): Likewise. - (aarch64_pluslong_operand): Include aarch64_sve_addvl_addpl_immediate. - (aarch64_mov_operand): Accept const_poly_int and const_vector. - (aarch64_simd_lshift_imm, aarch64_simd_rshift_imm): Accept const - as well as const_vector. - (aarch64_simd_imm_zero, aarch64_simd_imm_minus_one): Move earlier - in file. Use CONST0_RTX and CONSTM1_RTX. - (aarch64_simd_or_scalar_imm_zero): Likewise. Add match_codes. - (aarch64_simd_reg_or_zero): Accept const as well as const_vector. - Use aarch64_simd_imm_zero. - * config/aarch64/aarch64-sve.md: New file. - * config/aarch64/aarch64.md: Include it. - (VG_REGNUM, P0_REGNUM, P7_REGNUM, P15_REGNUM): New register numbers. - (UNSPEC_REV, UNSPEC_LD1_SVE, UNSPEC_ST1_SVE, UNSPEC_MERGE_PTRUE) - (UNSPEC_PTEST_PTRUE, UNSPEC_UNPACKSHI, UNSPEC_UNPACKUHI) - (UNSPEC_UNPACKSLO, UNSPEC_UNPACKULO, UNSPEC_PACK) - (UNSPEC_FLOAT_CONVERT, UNSPEC_WHILE_LO): New unspec constants. - (sve): New attribute. - (enabled): Disable instructions with the sve attribute unless - TARGET_SVE. - (movqi, movhi): Pass CONST_POLY_INT operaneds through - aarch64_expand_mov_immediate. - (*mov_aarch64, *movsi_aarch64, *movdi_aarch64): Handle - CNT[BHSD] immediates. - (movti): Split CONST_POLY_INT moves into two halves. - (add3): Accept aarch64_pluslong_or_poly_operand. - Split additions that need a temporary here if the destination - is the stack pointer. - (*add3_aarch64): Handle ADDVL and ADDPL immediates. - (*add3_poly_1): New instruction. - (set_clobber_cc): New expander. - -2018-01-13 Richard Sandiford - - * simplify-rtx.c (simplify_immed_subreg): Add an inner_bytes - parameter and use it instead of GET_MODE_SIZE (innermode). Use - inner_bytes * BITS_PER_UNIT instead of GET_MODE_BITSIZE (innermode). - Use CEIL (inner_bytes, GET_MODE_UNIT_SIZE (innermode)) instead of - GET_MODE_NUNITS (innermode). Also add a first_elem parameter. - Change innermode from fixed_mode_size to machine_mode. - (simplify_subreg): Update call accordingly. Handle a constant-sized - subreg of a variable-length CONST_VECTOR. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-ssa-address.c (mem_ref_valid_without_offset_p): New function. - (add_offset_to_base): New function, split out from... - (create_mem_ref): ...here. When handling a scale other than 1, - check first whether the address is valid without the offset. - Add it into the base if so, leaving the index and scale as-is. - -2018-01-12 Jakub Jelinek - - PR c++/83778 - * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Call - fold_for_warn before checking if arg2 is INTEGER_CST. - -2018-01-12 Segher Boessenkool - - * config/rs6000/predicates.md (load_multiple_operation): Delete. - (store_multiple_operation): Delete. - * config/rs6000/rs6000-cpus.def (601): Remove MASK_STRING. - * config/rs6000/rs6000-protos.h (rs6000_output_load_multiple): Delete. - * config/rs6000/rs6000-string.c (expand_block_move): Delete everything - guarded by TARGET_STRING. - (rs6000_output_load_multiple): Delete. - * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete - OPTION_MASK_STRING / TARGET_STRING handling. - (print_operand) <'N', 'O'>: Add comment that these are unused now. - (const rs6000_opt_masks) <"string">: Change mask to 0. - * config/rs6000/rs6000.h (TARGET_DEFAULT): Remove MASK_STRING. - (MASK_STRING): Delete. - * config/rs6000/rs6000.md (*mov_string): Delete TARGET_STRING - parts. Simplify. - (load_multiple): Delete. - (*ldmsi8): Delete. - (*ldmsi7): Delete. - (*ldmsi6): Delete. - (*ldmsi5): Delete. - (*ldmsi4): Delete. - (*ldmsi3): Delete. - (store_multiple): Delete. - (*stmsi8): Delete. - (*stmsi7): Delete. - (*stmsi6): Delete. - (*stmsi5): Delete. - (*stmsi4): Delete. - (*stmsi3): Delete. - (movmemsi_8reg): Delete. - (corresponding unnamed define_insn): Delete. - (movmemsi_6reg): Delete. - (corresponding unnamed define_insn): Delete. - (movmemsi_4reg): Delete. - (corresponding unnamed define_insn): Delete. - (movmemsi_2reg): Delete. - (corresponding unnamed define_insn): Delete. - (movmemsi_1reg): Delete. - (corresponding unnamed define_insn): Delete. - * config/rs6000/rs6000.opt (mno-string): New. - (mstring): Replace by deprecation warning stub. - * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mstring. - -2018-01-12 Jakub Jelinek - - * regrename.c (regrename_do_replace): If replacing the same - reg multiple times, try to reuse last created gen_raw_REG. - - PR debug/81155 - * bb-reorder.c (pass_partition_blocks::gate): In lto don't partition - main to workaround a bug in GDB. - -2018-01-12 Tom de Vries - - PR target/83737 - * config.gcc (nvptx*-*-*): Set use_gcc_stdint=wrap. - -2018-01-12 Vladimir Makarov - - PR rtl-optimization/80481 - * ira-color.c (get_cap_member): New function. - (allocnos_conflict_by_live_ranges_p): Use it. - (slot_coalesced_allocno_live_ranges_intersect_p): Add assert. - (setup_slot_coalesced_allocno_live_ranges): Ditto. - -2018-01-12 Uros Bizjak - - PR target/83628 - * config/alpha/alpha.md (*saddsi_1): New insn_ans_split pattern. - (*saddl_se_1): Ditto. - (*ssubsi_1): Ditto. - (*ssubl_se_1): Ditto. - -2018-01-12 Richard Sandiford - - * tree-predcom.c (aff_combination_dr_offset): Use wi::to_poly_widest - rather than wi::to_widest for DR_INITs. - * tree-vect-data-refs.c (vect_find_same_alignment_drs): Use - wi::to_poly_offset rather than wi::to_offset for DR_INIT. - (vect_analyze_data_ref_accesses): Require both DR_INITs to be - INTEGER_CSTs. - (vect_analyze_group_access_1): Note that here. - -2018-01-12 Richard Sandiford - - * tree-vectorizer.c (get_vec_alignment_for_array_type): Handle - polynomial type sizes. - -2018-01-12 Richard Sandiford - - * gimplify.c (gimple_add_tmp_var_fn): Allow variables to have a - poly_uint64 size, rather than requiring an unsigned HOST_WIDE_INT size. - (gimple_add_tmp_var): Likewise. - -2018-01-12 Martin Liska - - * gimple.c (gimple_alloc_counts): Use uint64_t instead of int. - (gimple_alloc_sizes): Likewise. - (dump_gimple_statistics): Use PRIu64 in printf format. - * gimple.h: Change uint64_t to int. - -2018-01-12 Martin Liska - - * tree-core.h: Use uint64_t instead of int. - * tree.c (tree_node_counts): Likewise. - (tree_node_sizes): Likewise. - (dump_tree_statistics): Use PRIu64 in printf format. - -2018-01-12 Martin Liska - - * Makefile.in: As qsort_chk is implemented in vec.c, add - vec.o to linkage of gencfn-macros. - * tree.c (build_new_poly_int_cst): Add CXX_MEM_STAT_INFO as it's - passing the info to record_node_allocation_statistics. - (test_vector_cst_patterns): Add CXX_MEM_STAT_INFO to declaration - and pass the info. - * ggc-common.c (struct ggc_usage): Add operator== and use - it in operator< and compare function. - * mem-stats.h (struct mem_usage): Likewise. - * vec.c (struct vec_usage): Remove operator< and compare - function. Can be simply inherited. - -2018-01-12 Martin Jambor - - PR target/81616 - * params.def: New parameter PARAM_AVOID_FMA_MAX_BITS. - * tree-ssa-math-opts.c: Include domwalk.h. - (convert_mult_to_fma_1): New function. - (fma_transformation_info): New type. - (fma_deferring_state): Likewise. - (cancel_fma_deferring): New function. - (result_of_phi): Likewise. - (last_fma_candidate_feeds_initial_phi): Likewise. - (convert_mult_to_fma): Added deferring logic, split actual - transformation to convert_mult_to_fma_1. - (math_opts_dom_walker): New type. - (math_opts_dom_walker::after_dom_children): New method, body moved - here from pass_optimize_widening_mul::execute, added deferring logic - bits. - (pass_optimize_widening_mul::execute): Moved most of code to - math_opts_dom_walker::after_dom_children. - * config/i386/x86-tune.def (X86_TUNE_AVOID_128FMA_CHAINS): New. - * config/i386/i386.c (ix86_option_override_internal): Added - maybe_setting of PARAM_AVOID_FMA_MAX_BITS. - -2018-01-12 Richard Biener - - PR debug/83157 - * dwarf2out.c (gen_variable_die): Do not reset old_die for - inline instance vars. - -2018-01-12 Oleg Endo - - PR target/81819 - * config/rx/rx.c (rx_is_restricted_memory_address): - Handle SUBREG case. - -2018-01-12 Richard Biener - - PR tree-optimization/80846 - * target.def (split_reduction): New target hook. - * targhooks.c (default_split_reduction): New function. - * targhooks.h (default_split_reduction): Declare. - * tree-vect-loop.c (vect_create_epilog_for_reduction): If the - target requests first reduce vectors by combining low and high - parts. - * tree-vect-stmts.c (vect_gen_perm_mask_any): Adjust. - (get_vectype_for_scalar_type_and_size): Export. - * tree-vectorizer.h (get_vectype_for_scalar_type_and_size): Declare. - * doc/tm.texi.in (TARGET_VECTORIZE_SPLIT_REDUCTION): Document. - * doc/tm.texi: Regenerate. - * config/i386/i386.c (ix86_split_reduction): Implement - TARGET_VECTORIZE_SPLIT_REDUCTION. - -2018-01-12 Eric Botcazou - - PR target/83368 - * config/sparc/sparc.h (PIC_OFFSET_TABLE_REGNUM): Set to INVALID_REGNUM - in PIC mode except for TARGET_VXWORKS_RTP. - * config/sparc/sparc.c: Include cfgrtl.h. - (TARGET_INIT_PIC_REG): Define. - (TARGET_USE_PSEUDO_PIC_REG): Likewise. - (sparc_pic_register_p): New predicate. - (sparc_legitimate_address_p): Use it. - (sparc_legitimize_pic_address): Likewise. - (sparc_delegitimize_address): Likewise. - (sparc_mode_dependent_address_p): Likewise. - (gen_load_pcrel_sym): Remove 4th parameter. - (load_got_register): Adjust call to above. Remove obsolete stuff. - (sparc_expand_prologue): Do not call load_got_register here. - (sparc_flat_expand_prologue): Likewise. - (sparc_output_mi_thunk): Set the pic_offset_table_rtx object. - (sparc_use_pseudo_pic_reg): New function. - (sparc_init_pic_reg): Likewise. - * config/sparc/sparc.md (vxworks_load_got): Set the GOT register. - (builtin_setjmp_receiver): Enable only for TARGET_VXWORKS_RTP. - -2018-01-12 Christophe Lyon - - * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes): - Add item for branch_cost. - -2018-01-12 Eric Botcazou - - PR rtl-optimization/83565 - * rtlanal.c (nonzero_bits1): On WORD_REGISTER_OPERATIONS machines, do - not extend the result to a larger mode for rotate operations. - (num_sign_bit_copies1): Likewise. - -2018-01-12 Rainer Orth - - PR target/40411 - * config/sol2.h (STARTFILE_ARCH_SPEC): Don't use with -shared or - -symbolic. - Use values-Xc.o for -pedantic. - Link with values-xpg4.o for C90, values-xpg6.o otherwise. - -2018-01-12 Martin Liska - - PR ipa/83054 - * ipa-devirt.c (final_warning_record::grow_type_warnings): - New function. - (possible_polymorphic_call_targets): Use it. - (ipa_devirt): Likewise. - -2018-01-12 Martin Liska - - * profile-count.h (enum profile_quality): Use 0 as invalid - enum value of profile_quality. - -2018-01-12 Chung-Ju Wu - - * doc/invoke.texi (NDS32 Options): Add -mext-perf, -mext-perf2 and - -mext-string options. - -2018-01-12 Richard Biener - - * lto-streamer-out.c (DFS::DFS_write_tree_body): Process - DECL_DEBUG_EXPR conditional on DECL_HAS_DEBUG_EXPR_P. - * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers): - Likewise. - * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise. - -2018-01-11 Michael Meissner - - * configure.ac (--with-long-double-format): Add support for the - configuration option to change the default long double format on - PowerPC systems. - * config.gcc (powerpc*-linux*-*): Likewise. - * configure: Regenerate. - * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If long - double is IEEE, define __KC__ and __KF__ to allow floatn.h to be - used without modification. - -2018-01-11 Bill Schmidt - - * config/rs6000/rs6000-builtin.def (BU_P7_MISC_X): New #define. - (SPEC_BARRIER): New instantiation of BU_P7_MISC_X. - * config/rs6000/rs6000.c (rs6000_expand_builtin): Handle - MISC_BUILTIN_SPEC_BARRIER. - (rs6000_init_builtins): Likewise. - * config/rs6000/rs6000.md (UNSPECV_SPEC_BARRIER): New UNSPECV - enum value. - (speculation_barrier): New define_insn. - * doc/extend.texi: Document __builtin_speculation_barrier. - -2018-01-11 Jakub Jelinek - - PR target/83203 - * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): If one_var - is 0, for V{8,16}S[IF] and V[48]D[IF]mode use gen_vec_set_0. - * config/i386/sse.md (VI8_AVX_AVX512F, VI4F_256_512): New mode - iterators. - (ssescalarmodesuffix): Add 512-bit vectors. Use "d" or "q" for - integral modes instead of "ss" and "sd". - (vec_set_0): New define_insns for 256-bit and 512-bit - vectors with 32-bit and 64-bit elements. - (vecdupssescalarmodesuffix): New mode attribute. - (vec_dup): Use it. - -2018-01-11 H.J. Lu - - PR target/83330 - * config/i386/i386.c (ix86_compute_frame_layout): Align stack - frame if argument is passed on stack. - -2018-01-11 Jakub Jelinek - - PR target/82682 - * ree.c (combine_reaching_defs): Optimize also - reg2=exp; reg1=reg2; reg2=any_extend(reg1); into - reg2=any_extend(exp); reg1=reg2;, formatting fix. - -2018-01-11 Jan Hubicka - - PR middle-end/83189 - * gimple-ssa-isolate-paths.c (isolate_path): Fix profile update. - -2018-01-11 Jan Hubicka - - PR middle-end/83718 - * tree-inline.c (copy_cfg_body): Adjust num&den for scaling - after they are computed. - -2018-01-11 Bin Cheng - - PR tree-optimization/83695 - * gimple-loop-linterchange.cc - (tree_loop_interchange::interchange_loops): Call scev_reset_htab to - reset cached scev information after interchange. - (pass_linterchange::execute): Remove call to scev_reset_htab. - -2018-01-11 Kyrylo Tkachov - - * config/arm/arm_neon.h (vfmlal_lane_low_u32, vfmlal_lane_high_u32, - vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32, vfmlal_laneq_low_u32, - vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32, vfmlal_laneq_high_u32, - vfmlsl_lane_low_u32, vfmlsl_lane_high_u32, vfmlslq_laneq_low_u32, - vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32, vfmlslq_laneq_high_u32, - vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32): Define. - * config/arm/arm_neon_builtins.def (vfmal_lane_low, - vfmal_lane_lowv4hf, vfmal_lane_lowv8hf, vfmal_lane_high, - vfmal_lane_highv4hf, vfmal_lane_highv8hf, vfmsl_lane_low, - vfmsl_lane_lowv4hf, vfmsl_lane_lowv8hf, vfmsl_lane_high, - vfmsl_lane_highv4hf, vfmsl_lane_highv8hf): New sets of builtins. - * config/arm/iterators.md (VFMLSEL2, vfmlsel2): New mode attributes. - (V_lane_reg): Likewise. - * config/arm/neon.md (neon_vfml_lane_): - New define_expand. - (neon_vfml_lane_): Likewise. - (vfmal_lane_low_intrinsic, - vfmal_lane_low_intrinsic, - vfmal_lane_high_intrinsic, - vfmal_lane_high_intrinsic, vfmsl_lane_low_intrinsic, - vfmsl_lane_low_intrinsic, - vfmsl_lane_high_intrinsic, - vfmsl_lane_high_intrinsic): New define_insns. - -2018-01-11 Kyrylo Tkachov - - * config/arm/arm-cpus.in (fp16fml): New feature. - (ALL_SIMD): Add fp16fml. - (armv8.2-a): Add fp16fml as an option. - (armv8.3-a): Likewise. - (armv8.4-a): Add fp16fml as part of fp16. - * config/arm/arm.h (TARGET_FP16FML): Define. - * config/arm/arm-c.c (arm_cpu_builtins): Define __ARM_FEATURE_FP16_FML - when appropriate. - * config/arm/arm-modes.def (V2HF): Define. - * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32, - vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, - vfmlslq_low_u32, vfmlalq_high_u32, vfmlslq_high_u32): Define. - * config/arm/arm_neon_builtins.def (vfmal_low, vfmal_high, - vfmsl_low, vfmsl_high): New set of builtins. - * config/arm/iterators.md (PLUSMINUS): New code iterator. - (vfml_op): New code attribute. - (VFMLHALVES): New int iterator. - (VFML, VFMLSEL): New mode attributes. - (V_reg): Define mapping for V2HF. - (V_hi, V_lo): New mode attributes. - (VF_constraint): Likewise. - (vfml_half, vfml_half_selector): New int attributes. - * config/arm/neon.md (neon_vfml_): New - define_expand. - (vfmal_low_intrinsic, vfmsl_high_intrinsic, - vfmal_high_intrinsic, vfmsl_low_intrinsic): - New define_insn. - * config/arm/t-arm-elf (v8_fps): Add fp16fml. - * config/arm/t-multilib (v8_2_a_simd_variants): Add fp16fml. - * config/arm/unspecs.md (UNSPEC_VFML_LO, UNSPEC_VFML_HI): New unspecs. - * doc/invoke.texi (ARM Options): Document fp16fml. Update armv8.4-a - documentation. - * doc/sourcebuild.texi (arm_fp16fml_neon_ok, arm_fp16fml_neon): - Document new effective target and option set. - -2018-01-11 Kyrylo Tkachov - - * config/arm/arm-cpus.in (armv8_4): New feature. - (ARMv8_4a): New fgroup. - (armv8.4-a): New arch. - * config/arm/arm-tables.opt: Regenerate. - * config/arm/t-aprofile: Add matching rules for -march=armv8.4-a. - * config/arm/t-arm-elf (all_v8_archs): Add armv8.4-a. - * config/arm/t-multilib (v8_4_a_simd_variants): New variable. - Add matching rules for -march=armv8.4-a and extensions. - * doc/invoke.texi (ARM Options): Document -march=armv8.4-a. - -2018-01-11 Oleg Endo - - PR target/81821 - * config/rx/rx.md (BW): New mode attribute. - (sync_lock_test_and_setsi): Add mode suffix to insn output. - -2018-01-11 Richard Biener - - PR tree-optimization/83435 - * graphite.c (canonicalize_loop_form): Ignore fake loop exit edges. - * graphite-scop-detection.c (scop_detection::get_sese): Likewise. - * tree-vrp.c (add_assert_info): Drop TREE_OVERFLOW if they appear. - -2018-01-11 Richard Sandiford - Alan Hayward - David Sherwood - - * config/aarch64/aarch64.c (aarch64_address_info): Add a const_offset - field. - (aarch64_classify_address): Initialize it. Track polynomial offsets. - (aarch64_print_address_internal): Use it to check for a zero offset. - -2018-01-11 Richard Sandiford - Alan Hayward - David Sherwood - - * config/aarch64/aarch64-modes.def (NUM_POLY_INT_COEFFS): Set to 2. - * config/aarch64/aarch64-protos.h (aarch64_initial_elimination_offset): - Return a poly_int64 rather than a HOST_WIDE_INT. - (aarch64_offset_7bit_signed_scaled_p): Take the offset as a poly_int64 - rather than a HOST_WIDE_INT. - * config/aarch64/aarch64.h (aarch64_frame): Protect with - HAVE_POLY_INT_H rather than HOST_WIDE_INT. Change locals_offset, - hard_fp_offset, frame_size, initial_adjust, callee_offset and - final_offset from HOST_WIDE_INT to poly_int64. - * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use - to_constant when getting the number of units in an Advanced SIMD - mode. - (aarch64_builtin_vectorized_function): Check for a constant number - of units. - * config/aarch64/aarch64-simd.md (mov): Handle polynomial - GET_MODE_SIZE. - (aarch64_ld_lane): Use the nunits - attribute instead of GET_MODE_NUNITS. - * config/aarch64/aarch64.c (aarch64_hard_regno_nregs) - (aarch64_class_max_nregs): Use the constant_lowest_bound of the - GET_MODE_SIZE for fixed-size registers. - (aarch64_const_vec_all_same_in_range_p): Use const_vec_duplicate_p. - (aarch64_hard_regno_call_part_clobbered, aarch64_classify_index) - (aarch64_mode_valid_for_sched_fusion_p, aarch64_classify_address) - (aarch64_legitimize_address_displacement, aarch64_secondary_reload) - (aarch64_print_operand, aarch64_print_address_internal) - (aarch64_address_cost, aarch64_rtx_costs, aarch64_register_move_cost) - (aarch64_short_vector_p, aapcs_vfp_sub_candidate) - (aarch64_simd_attr_length_rglist, aarch64_operands_ok_for_ldpstp): - Handle polynomial GET_MODE_SIZE. - (aarch64_hard_regno_caller_save_mode): Likewise. Return modes - wider than SImode without modification. - (tls_symbolic_operand_type): Use strip_offset instead of split_const. - (aarch64_pass_by_reference, aarch64_layout_arg, aarch64_pad_reg_upward) - (aarch64_gimplify_va_arg_expr): Assert that we don't yet handle - passing and returning SVE modes. - (aarch64_function_value, aarch64_layout_arg): Use gen_int_mode - rather than GEN_INT. - (aarch64_emit_probe_stack_range): Take the size as a poly_int64 - rather than a HOST_WIDE_INT, but call sorry if it isn't constant. - (aarch64_allocate_and_probe_stack_space): Likewise. - (aarch64_layout_frame): Cope with polynomial offsets. - (aarch64_save_callee_saves, aarch64_restore_callee_saves): Take the - start_offset as a poly_int64 rather than a HOST_WIDE_INT. Track - polynomial offsets. - (offset_9bit_signed_unscaled_p, offset_12bit_unsigned_scaled_p) - (aarch64_offset_7bit_signed_scaled_p): Take the offset as a - poly_int64 rather than a HOST_WIDE_INT. - (aarch64_get_separate_components, aarch64_process_components) - (aarch64_expand_prologue, aarch64_expand_epilogue) - (aarch64_use_return_insn_p): Handle polynomial frame offsets. - (aarch64_anchor_offset): New function, split out from... - (aarch64_legitimize_address): ...here. - (aarch64_builtin_vectorization_cost): Handle polynomial - TYPE_VECTOR_SUBPARTS. - (aarch64_simd_check_vect_par_cnst_half): Handle polynomial - GET_MODE_NUNITS. - (aarch64_simd_make_constant, aarch64_expand_vector_init): Get the - number of elements from the PARALLEL rather than the mode. - (aarch64_shift_truncation_mask): Use GET_MODE_UNIT_BITSIZE - rather than GET_MODE_BITSIZE. - (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_ext) - (aarch64_evpc_rev, aarch64_evpc_dup, aarch64_evpc_zip) - (aarch64_expand_vec_perm_const_1): Handle polynomial - d->perm.length () and d->perm elements. - (aarch64_evpc_tbl): Likewise. Use nelt rather than GET_MODE_NUNITS. - Apply to_constant to d->perm elements. - (aarch64_simd_valid_immediate, aarch64_vec_fpconst_pow_of_2): Handle - polynomial CONST_VECTOR_NUNITS. - (aarch64_move_pointer): Take amount as a poly_int64 rather - than an int. - (aarch64_progress_pointer): Avoid temporary variable. - * config/aarch64/aarch64.md (aarch64_): Use - the mode attribute instead of GET_MODE. - -2018-01-11 Richard Sandiford - Alan Hayward - David Sherwood - - * config/aarch64/aarch64.c (aarch64_force_temporary): Assert that - x exists before using it. - (aarch64_add_constant_internal): Rename to... - (aarch64_add_offset_1): ...this. Replace regnum with separate - src and dest rtxes. Handle the case in which they're different, - including when the offset is zero. Replace scratchreg with an rtx. - Use 2 additions if there is no spare register into which we can - move a 16-bit constant. - (aarch64_add_constant): Delete. - (aarch64_add_offset): Replace reg with separate src and dest - rtxes. Take a poly_int64 offset instead of a HOST_WIDE_INT. - Use aarch64_add_offset_1. - (aarch64_add_sp, aarch64_sub_sp): Take the scratch register as - an rtx rather than an int. Take the delta as a poly_int64 - rather than a HOST_WIDE_INT. Use aarch64_add_offset. - (aarch64_expand_mov_immediate): Update uses of aarch64_add_offset. - (aarch64_expand_prologue): Update calls to aarch64_sub_sp, - aarch64_allocate_and_probe_stack_space and aarch64_add_offset. - (aarch64_expand_epilogue): Update calls to aarch64_add_offset - and aarch64_add_sp. - (aarch64_output_mi_thunk): Use aarch64_add_offset rather than - aarch64_add_constant. - -2018-01-11 Richard Sandiford - - * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int): - Use scalar_float_mode. - -2018-01-11 Richard Sandiford - - * config/aarch64/aarch64-simd.md - (aarch64_fmll_low): Avoid GET_MODE_NUNITS. - (aarch64_fmll_high): Likewise. - (aarch64_fmll_lane_lowv2sf): Likewise. - (aarch64_fmll_lane_highv2sf): Likewise. - (aarch64_fmllq_laneq_lowv4sf): Likewise. - (aarch64_fmllq_laneq_highv4sf): Likewise. - (aarch64_fmll_laneq_lowv2sf): Likewise. - (aarch64_fmll_laneq_highv2sf): Likewise. - (aarch64_fmllq_lane_lowv4sf): Likewise. - (aarch64_fmllq_lane_highv4sf): Likewise. - -2018-01-11 Prathamesh Kulkarni - - PR target/83514 - * config/arm/arm.c (arm_declare_function_name): Set arch_to_print if - targ_options->x_arm_arch_string is non NULL. - -2018-01-11 Tamar Christina - - * config/aarch64/aarch64.h - (AARCH64_FL_FOR_ARCH8_4): Add AARCH64_FL_DOTPROD. - -2018-01-11 Sudakshina Das - - PR target/82096 - * expmed.c (emit_store_flag_force): Swap if const op0 - and change VOIDmode to mode of op0. - -2018-01-11 Richard Sandiford - - PR rtl-optimization/83761 - * caller-save.c (replace_reg_with_saved_mem): Pass bits rather - than bytes to mode_for_size. - -2018-01-10 Jan Hubicka - - PR middle-end/83189 - * gfortran.fortran-torture/compile/pr83189.f90: New testcase. - * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Handle zero - profile. - -2018-01-10 Jan Hubicka - - PR middle-end/83575 - * cfgrtl.c (rtl_verify_edges): Only verify fixability of partition - when in layout mode. - (cfg_layout_finalize): Do not verify cfg before we are out of layout. - * cfgcleanup.c (try_optimize_cfg): Only verify flow info when doing - partition fixup. - -2018-01-10 Michael Collison - - * config/aarch64/aarch64-modes.def (V2HF): New VECTOR_MODE. - * config/aarch64/aarch64-option-extension.def: Add - AARCH64_OPT_EXTENSION of 'fp16fml'. - * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): - (__ARM_FEATURE_FP16_FML): Define if TARGET_F16FML is true. - * config/aarch64/predicates.md (aarch64_lane_imm3): New predicate. - * config/aarch64/constraints.md (Ui7): New constraint. - * config/aarch64/iterators.md (VFMLA_W): New mode iterator. - (VFMLA_SEL_W): Ditto. - (f16quad): Ditto. - (f16mac1): Ditto. - (VFMLA16_LOW): New int iterator. - (VFMLA16_HIGH): Ditto. - (UNSPEC_FMLAL): New unspec. - (UNSPEC_FMLSL): Ditto. - (UNSPEC_FMLAL2): Ditto. - (UNSPEC_FMLSL2): Ditto. - (f16mac): New code attribute. - * config/aarch64/aarch64-simd-builtins.def - (aarch64_fmlal_lowv2sf): Ditto. - (aarch64_fmlsl_lowv2sf): Ditto. - (aarch64_fmlalq_lowv4sf): Ditto. - (aarch64_fmlslq_lowv4sf): Ditto. - (aarch64_fmlal_highv2sf): Ditto. - (aarch64_fmlsl_highv2sf): Ditto. - (aarch64_fmlalq_highv4sf): Ditto. - (aarch64_fmlslq_highv4sf): Ditto. - (aarch64_fmlal_lane_lowv2sf): Ditto. - (aarch64_fmlsl_lane_lowv2sf): Ditto. - (aarch64_fmlal_laneq_lowv2sf): Ditto. - (aarch64_fmlsl_laneq_lowv2sf): Ditto. - (aarch64_fmlalq_lane_lowv4sf): Ditto. - (aarch64_fmlsl_lane_lowv4sf): Ditto. - (aarch64_fmlalq_laneq_lowv4sf): Ditto. - (aarch64_fmlsl_laneq_lowv4sf): Ditto. - (aarch64_fmlal_lane_highv2sf): Ditto. - (aarch64_fmlsl_lane_highv2sf): Ditto. - (aarch64_fmlal_laneq_highv2sf): Ditto. - (aarch64_fmlsl_laneq_highv2sf): Ditto. - (aarch64_fmlalq_lane_highv4sf): Ditto. - (aarch64_fmlsl_lane_highv4sf): Ditto. - (aarch64_fmlalq_laneq_highv4sf): Ditto. - (aarch64_fmlsl_laneq_highv4sf): Ditto. - * config/aarch64/aarch64-simd.md: - (aarch64_fmll_low): New pattern. - (aarch64_fmll_high): Ditto. - (aarch64_simd_fmll_low): Ditto. - (aarch64_simd_fmll_high): Ditto. - (aarch64_fmll_lane_lowv2sf): Ditto. - (aarch64_fmll_lane_highv2sf): Ditto. - (aarch64_simd_fmll_lane_lowv2sf): Ditto. - (aarch64_simd_fmll_lane_highv2sf): Ditto. - (aarch64_fmllq_laneq_lowv4sf): Ditto. - (aarch64_fmllq_laneq_highv4sf): Ditto. - (aarch64_simd_fmllq_laneq_lowv4sf): Ditto. - (aarch64_simd_fmllq_laneq_highv4sf): Ditto. - (aarch64_fmll_laneq_lowv2sf): Ditto. - (aarch64_fmll_laneq_highv2sf): Ditto. - (aarch64_simd_fmll_laneq_lowv2sf): Ditto. - (aarch64_simd_fmll_laneq_highv2sf): Ditto. - (aarch64_fmllq_lane_lowv4sf): Ditto. - (aarch64_fmllq_lane_highv4sf): Ditto. - (aarch64_simd_fmllq_lane_lowv4sf): Ditto. - (aarch64_simd_fmllq_lane_highv4sf): Ditto. - * config/aarch64/arm_neon.h (vfmlal_low_u32): New intrinsic. - (vfmlsl_low_u32): Ditto. - (vfmlalq_low_u32): Ditto. - (vfmlslq_low_u32): Ditto. - (vfmlal_high_u32): Ditto. - (vfmlsl_high_u32): Ditto. - (vfmlalq_high_u32): Ditto. - (vfmlslq_high_u32): Ditto. - (vfmlal_lane_low_u32): Ditto. - (vfmlsl_lane_low_u32): Ditto. - (vfmlal_laneq_low_u32): Ditto. - (vfmlsl_laneq_low_u32): Ditto. - (vfmlalq_lane_low_u32): Ditto. - (vfmlslq_lane_low_u32): Ditto. - (vfmlalq_laneq_low_u32): Ditto. - (vfmlslq_laneq_low_u32): Ditto. - (vfmlal_lane_high_u32): Ditto. - (vfmlsl_lane_high_u32): Ditto. - (vfmlal_laneq_high_u32): Ditto. - (vfmlsl_laneq_high_u32): Ditto. - (vfmlalq_lane_high_u32): Ditto. - (vfmlslq_lane_high_u32): Ditto. - (vfmlalq_laneq_high_u32): Ditto. - (vfmlslq_laneq_high_u32): Ditto. - * config/aarch64/aarch64.h (AARCH64_FL_F16SML): New flag. - (AARCH64_FL_FOR_ARCH8_4): New. - (AARCH64_ISA_F16FML): New ISA flag. - (TARGET_F16FML): New feature flag for fp16fml. - (doc/invoke.texi): Document new fp16fml option. - -2018-01-10 Michael Collison - - * config/aarch64/aarch64-builtins.c: - (aarch64_types_ternopu_imm_qualifiers, TYPES_TERNOPUI): New. - * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): - (__ARM_FEATURE_SHA3): Define if TARGET_SHA3 is true. - * config/aarch64/aarch64.h (AARCH64_FL_SHA3): New flags. - (AARCH64_ISA_SHA3): New ISA flag. - (TARGET_SHA3): New feature flag for sha3. - * config/aarch64/iterators.md (sha512_op): New int attribute. - (CRYPTO_SHA512): New int iterator. - (UNSPEC_SHA512H): New unspec. - (UNSPEC_SHA512H2): Ditto. - (UNSPEC_SHA512SU0): Ditto. - (UNSPEC_SHA512SU1): Ditto. - * config/aarch64/aarch64-simd-builtins.def - (aarch64_crypto_sha512hqv2di): New builtin. - (aarch64_crypto_sha512h2qv2di): Ditto. - (aarch64_crypto_sha512su0qv2di): Ditto. - (aarch64_crypto_sha512su1qv2di): Ditto. - (aarch64_eor3qv8hi): Ditto. - (aarch64_rax1qv2di): Ditto. - (aarch64_xarqv2di): Ditto. - (aarch64_bcaxqv8hi): Ditto. - * config/aarch64/aarch64-simd.md: - (aarch64_crypto_sha512hqv2di): New pattern. - (aarch64_crypto_sha512su0qv2di): Ditto. - (aarch64_crypto_sha512su1qv2di): Ditto. - (aarch64_eor3qv8hi): Ditto. - (aarch64_rax1qv2di): Ditto. - (aarch64_xarqv2di): Ditto. - (aarch64_bcaxqv8hi): Ditto. - * config/aarch64/arm_neon.h (vsha512hq_u64): New intrinsic. - (vsha512h2q_u64): Ditto. - (vsha512su0q_u64): Ditto. - (vsha512su1q_u64): Ditto. - (veor3q_u16): Ditto. - (vrax1q_u64): Ditto. - (vxarq_u64): Ditto. - (vbcaxq_u16): Ditto. - * config/arm/types.md (crypto_sha512): New type attribute. - (crypto_sha3): Ditto. - (doc/invoke.texi): Document new sha3 option. - -2018-01-10 Michael Collison - - * config/aarch64/aarch64-builtins.c: - (aarch64_types_quadopu_imm_qualifiers, TYPES_QUADOPUI): New. - * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): - (__ARM_FEATURE_SM3): Define if TARGET_SM4 is true. - (__ARM_FEATURE_SM4): Define if TARGET_SM4 is true. - * config/aarch64/aarch64.h (AARCH64_FL_SM4): New flags. - (AARCH64_ISA_SM4): New ISA flag. - (TARGET_SM4): New feature flag for sm4. - * config/aarch64/aarch64-simd-builtins.def - (aarch64_sm3ss1qv4si): Ditto. - (aarch64_sm3tt1aq4si): Ditto. - (aarch64_sm3tt1bq4si): Ditto. - (aarch64_sm3tt2aq4si): Ditto. - (aarch64_sm3tt2bq4si): Ditto. - (aarch64_sm3partw1qv4si): Ditto. - (aarch64_sm3partw2qv4si): Ditto. - (aarch64_sm4eqv4si): Ditto. - (aarch64_sm4ekeyqv4si): Ditto. - * config/aarch64/aarch64-simd.md: - (aarch64_sm3ss1qv4si): Ditto. - (aarch64_sm3ttqv4si): Ditto. - (aarch64_sm3partwqv4si): Ditto. - (aarch64_sm4eqv4si): Ditto. - (aarch64_sm4ekeyqv4si): Ditto. - * config/aarch64/iterators.md (sm3tt_op): New int iterator. - (sm3part_op): Ditto. - (CRYPTO_SM3TT): Ditto. - (CRYPTO_SM3PART): Ditto. - (UNSPEC_SM3SS1): New unspec. - (UNSPEC_SM3TT1A): Ditto. - (UNSPEC_SM3TT1B): Ditto. - (UNSPEC_SM3TT2A): Ditto. - (UNSPEC_SM3TT2B): Ditto. - (UNSPEC_SM3PARTW1): Ditto. - (UNSPEC_SM3PARTW2): Ditto. - (UNSPEC_SM4E): Ditto. - (UNSPEC_SM4EKEY): Ditto. - * config/aarch64/constraints.md (Ui2): New constraint. - * config/aarch64/predicates.md (aarch64_imm2): New predicate. - * config/arm/types.md (crypto_sm3): New type attribute. - (crypto_sm4): Ditto. - * config/aarch64/arm_neon.h (vsm3ss1q_u32): New intrinsic. - (vsm3tt1aq_u32): Ditto. - (vsm3tt1bq_u32): Ditto. - (vsm3tt2aq_u32): Ditto. - (vsm3tt2bq_u32): Ditto. - (vsm3partw1q_u32): Ditto. - (vsm3partw2q_u32): Ditto. - (vsm4eq_u32): Ditto. - (vsm4ekeyq_u32): Ditto. - (doc/invoke.texi): Document new sm4 option. - -2018-01-10 Michael Collison - - * config/aarch64/aarch64-arches.def (armv8.4-a): New architecture. - * config/aarch64/aarch64.h (AARCH64_ISA_V8_4): New ISA flag. - (AARCH64_FL_FOR_ARCH8_4): New. - (AARCH64_FL_V8_4): New flag. - (doc/invoke.texi): Document new armv8.4-a option. - -2018-01-10 Michael Collison - - * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): - (__ARM_FEATURE_AES): Define if TARGET_AES is true. - (__ARM_FEATURE_SHA2): Define if TARGET_SHA2 is true. - * config/aarch64/aarch64-option-extension.def: Add - AARCH64_OPT_EXTENSION of 'sha2'. - (aes): Add AARCH64_OPT_EXTENSION of 'aes'. - (crypto): Disable sha2 and aes if crypto disabled. - (crypto): Enable aes and sha2 if enabled. - (simd): Disable sha2 and aes if simd disabled. - * config/aarch64/aarch64.h (AARCH64_FL_AES, AARCH64_FL_SHA2): - New flags. - (AARCH64_ISA_AES, AARCH64_ISA_SHA2): New ISA flags. - (TARGET_SHA2): New feature flag for sha2. - (TARGET_AES): New feature flag for aes. - * config/aarch64/aarch64-simd.md: - (aarch64_crypto_aesv16qi): Make pattern - conditional on TARGET_AES. - (aarch64_crypto_aesv16qi): Ditto. - (aarch64_crypto_sha1hsi): Make pattern conditional - on TARGET_SHA2. - (aarch64_crypto_sha1hv4si): Ditto. - (aarch64_be_crypto_sha1hv4si): Ditto. - (aarch64_crypto_sha1su1v4si): Ditto. - (aarch64_crypto_sha1v4si): Ditto. - (aarch64_crypto_sha1su0v4si): Ditto. - (aarch64_crypto_sha256hv4si): Ditto. - (aarch64_crypto_sha256su0v4si): Ditto. - (aarch64_crypto_sha256su1v4si): Ditto. - (doc/invoke.texi): Document new aes and sha2 options. - -2018-01-10 Martin Sebor - - PR tree-optimization/83781 - * gimple-fold.c (get_range_strlen): Avoid treating arrays of pointers - as string arrays. - -2018-01-11 Martin Sebor - Prathamesh Kulkarni - - PR tree-optimization/83501 - PR tree-optimization/81703 - - * tree-ssa-strlen.c (get_string_cst): Rename... - (get_string_len): ...to this. Handle global constants. - (handle_char_store): Adjust. - -2018-01-10 Kito Cheng - Jim Wilson - - * config/riscv/riscv-protos.h (riscv_output_return): New. - * config/riscv/riscv.c (struct machine_function): New naked_p field. - (riscv_attribute_table, riscv_output_return), - (riscv_handle_fndecl_attribute, riscv_naked_function_p), - (riscv_allocate_stack_slots_for_args, riscv_warn_func_return): New. - (riscv_compute_frame_info): Only compute frame->mask if not a naked - function. - (riscv_expand_prologue): Add early return for naked function. - (riscv_expand_epilogue): Likewise. - (riscv_function_ok_for_sibcall): Return false for naked function. - (riscv_set_current_function): New. - (TARGET_SET_CURRENT_FUNCTION, TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS), - (TARGET_ATTRIBUTE_TABLE, TARGET_WARN_FUNC_RETURN): New. - * config/riscv/riscv.md (simple_return): Call riscv_output_return. - * doc/extend.texi (RISC-V Function Attributes): New. - -2018-01-10 Michael Meissner - - * config/rs6000/rs6000.c (is_complex_IBM_long_double): Explicitly - check for 128-bit long double before checking TCmode. - * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Explicitly check for - 128-bit long doubles before checking TFmode or TCmode. - (FLOAT128_IBM_P): Likewise. - -2018-01-10 Martin Sebor - - PR tree-optimization/83671 - * builtins.c (c_strlen): Unconditionally return zero for the empty - string. - Use -Warray-bounds for warnings. - * gimple-fold.c (get_range_strlen): Handle non-constant lengths - for non-constant array indices with COMPONENT_REF, arrays of - arrays, and pointers to arrays. - (gimple_fold_builtin_strlen): Determine and set length range for - non-constant character arrays. - -2018-01-10 Aldy Hernandez - - PR middle-end/81897 - * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Skip - empty blocks. - -2018-01-10 Eric Botcazou - - * dwarf2out.c (dwarf2out_var_location): Do not pass NULL to fprintf. - -2018-01-10 Peter Bergner - - PR target/83399 - * config/rs6000/rs6000.c (print_operand) <'y'>: Use - VECTOR_MEM_ALTIVEC_OR_VSX_P. - * config/rs6000/vsx.md (*vsx_le_perm_load_ for VSX_D): Use - indexed_or_indirect_operand predicate. - (*vsx_le_perm_load_ for VSX_W): Likewise. - (*vsx_le_perm_load_v8hi): Likewise. - (*vsx_le_perm_load_v16qi): Likewise. - (*vsx_le_perm_store_ for VSX_D): Likewise. - (*vsx_le_perm_store_ for VSX_W): Likewise. - (*vsx_le_perm_store_v8hi): Likewise. - (*vsx_le_perm_store_v16qi): Likewise. - (eight unnamed splitters): Likewise. - -2018-01-10 Peter Bergner - - * config/rs6000/x86intrin.h: Change #warning to #error. Update message. - * config/rs6000/emmintrin.h: Likewise. - * config/rs6000/mmintrin.h: Likewise. - * config/rs6000/xmmintrin.h: Likewise. - -2018-01-10 David Malcolm - - PR c++/43486 - * tree-core.h: Document EXPR_LOCATION_WRAPPER_P's usage of - "public_flag". - * tree.c (tree_nop_conversion): Return true for location wrapper - nodes. - (maybe_wrap_with_location): New function. - (selftest::check_strip_nops): New function. - (selftest::test_location_wrappers): New function. - (selftest::tree_c_tests): Call it. - * tree.h (STRIP_ANY_LOCATION_WRAPPER): New macro. - (maybe_wrap_with_location): New decl. - (EXPR_LOCATION_WRAPPER_P): New macro. - (location_wrapper_p): New inline function. - (tree_strip_any_location_wrapper): New inline function. - -2018-01-10 H.J. Lu - - PR target/83735 - * config/i386/i386.c (ix86_compute_frame_layout): Always adjust - stack_realign_offset for the largest alignment of stack slot - actually used. - (ix86_find_max_used_stack_alignment): New function. - (ix86_finalize_stack_frame_flags): Use it. Set - max_used_stack_alignment if we don't realign stack. - * config/i386/i386.h (machine_function): Add - max_used_stack_alignment. - -2018-01-10 Christophe Lyon - - * config/arm/arm.opt (-mbranch-cost): New option. - * config/arm/arm.h (BRANCH_COST): Take arm_branch_cost into - account. - -2018-01-10 Segher Boessenkool - - PR target/83629 - * config/rs6000/rs6000.md (load_toc_v4_PIC_2, load_toc_v4_PIC_3b, - load_toc_v4_PIC_3c): Wrap const term in CONST RTL. - -2018-01-10 Richard Biener - - PR debug/83765 - * dwarf2out.c (gen_subprogram_die): Hoist old_die && declaration - early out so it also covers the case where we have a non-NULL - origin. - -2018-01-10 Richard Sandiford - - PR tree-optimization/83753 - * tree-vect-stmts.c (get_group_load_store_type): Use VMAT_CONTIGUOUS - for non-strided grouped accesses if the number of elements is 1. - -2018-01-10 Jan Hubicka - - PR target/81616 - * i386.c (ix86_vectorize_builtin_gather): Check TARGET_USE_GATHER. - * i386.h (TARGET_USE_GATHER): Define. - * x86-tune.def (X86_TUNE_USE_GATHER): New. - -2018-01-10 Martin Liska - - PR bootstrap/82831 - * basic-block.h (CLEANUP_NO_PARTITIONING): New define. - * bb-reorder.c (pass_reorder_blocks::execute): Do not clean up - partitioning. - * cfgcleanup.c (try_optimize_cfg): Fix up partitioning if - CLEANUP_NO_PARTITIONING is not set. - -2018-01-10 Richard Sandiford - - * doc/rtl.texi: Remove documentation of (const ...) wrappers - for vectors, as a partial revert of r254296. - * rtl.h (const_vec_p): Delete. - (const_vec_duplicate_p): Don't test for vector CONSTs. - (unwrap_const_vec_duplicate, const_vec_series_p): Likewise. - * expmed.c (make_tree): Likewise. - - Revert: - * common.md (E, F): Use CONSTANT_P instead of checking for - CONST_VECTOR. - * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of - checking for CONST_VECTOR. - -2018-01-09 Jan Hubicka - - PR middle-end/83575 - * predict.c (force_edge_cold): Handle in more sane way edges - with no prediction. - -2018-01-09 Carl Love - - * config/rs6002/altivec.md (p8_vmrgow): Add support for V2DI, V2DF, - V4SI, V4SF types. - (p8_vmrgew): Add support for V2DI, V2DF, V4SF types. - * config/rs6000/rs6000-builtin.def: Add definitions for FLOAT2_V2DF, - VMRGEW_V2DI, VMRGEW_V2DF, VMRGEW_V4SF, VMRGOW_V4SI, VMRGOW_V4SF, - VMRGOW_V2DI, VMRGOW_V2DF. Remove definition for VMRGOW. - * config/rs6000/rs6000-c.c (VSX_BUILTIN_VEC_FLOAT2, - P8V_BUILTIN_VEC_VMRGEW, P8V_BUILTIN_VEC_VMRGOW): Add definitions. - * config/rs6000/rs6000-protos.h: Add extern defition for - rs6000_generate_float2_double_code. - * config/rs6000/rs6000.c (rs6000_generate_float2_double_code): Add - function. - * config/rs6000/vsx.md (vsx_xvcdpsp): Add define_insn. - (float2_v2df): Add define_expand. - -2018-01-09 Uros Bizjak - - PR target/83628 - * combine.c (force_int_to_mode) : Use mode instead of - op_mode in the force_to_mode call. - -2018-01-09 Richard Sandiford - - * config/aarch64/aarch64.c (aarch64_evpc_trn): Use d.perm.series_p - instead of checking each element individually. - (aarch64_evpc_uzp): Likewise. - (aarch64_evpc_zip): Likewise. - (aarch64_evpc_ext): Likewise. - (aarch64_evpc_rev): Likewise. - (aarch64_evpc_dup): Test the encoding for a single duplicated element, - instead of checking each element individually. Return true without - generating rtl if - (aarch64_vectorize_vec_perm_const): Use all_from_input_p to test - whether all selected elements come from the same input, instead of - checking each element individually. Remove calls to gen_rtx_REG, - start_sequence and end_sequence and instead assert that no rtl is - generated. - -2018-01-09 Richard Sandiford - - * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Fix - order of HIGH and CONST checks. - -2018-01-09 Richard Sandiford - - * tree-vect-stmts.c (permute_vec_elements): Create a fresh variable - if the destination isn't an SSA_NAME. - -2018-01-09 Richard Biener - - PR tree-optimization/83668 - * graphite.c (canonicalize_loop_closed_ssa): Add edge argument, - move prologue... - (canonicalize_loop_form): ... here, renamed from ... - (canonicalize_loop_closed_ssa_form): ... this and amended to - swap successor edges for loop exit blocks to make us use - the RPO order we need for initial schedule generation. - -2018-01-09 Joseph Myers - - PR tree-optimization/64811 - * match.pd: When optimizing comparisons with Inf, avoid - introducing or losing exceptions from comparisons with NaN. - -2018-01-09 Martin Liska - - PR sanitizer/82517 - * asan.c (shadow_mem_size): Add gcc_assert. - -2018-01-09 Georg-Johann Lay - - Don't save registers in main(). - - PR target/83738 - * doc/invoke.texi (AVR Options) [-mmain-is-OS_task]: Document it. - * config/avr/avr.opt (-mmain-is-OS_task): New target option. - * config/avr/avr.c (avr_set_current_function): Don't error if - naked, OS_task or OS_main are specified at the same time. - (avr_function_ok_for_sibcall): Don't disable sibcalls for OS_task, - OS_main. - (avr_insert_attributes) [-mmain-is-OS_task]
: Add OS_task - attribute. - * common/config/avr/avr-common.c (avr_option_optimization_table): - Switch on -mmain-is-OS_task for optimizing compilations. - -2018-01-09 Richard Biener - - PR tree-optimization/83572 - * graphite.c: Include cfganal.h. - (graphite_transform_loops): Connect infinite loops to exit - and remove fake edges at the end. - -2018-01-09 Jan Hubicka - - * ipa-inline.c (edge_badness): Revert accidental checkin. - -2018-01-09 Jan Hubicka - - PR ipa/80763 - * ipa-comdats.c (set_comdat_group): Only set comdat group of real - symbols; not inline clones. - -2018-01-09 Jakub Jelinek - - PR target/83507 - * modulo-sched.c (schedule_reg_moves): Punt if we'd need to move - hard registers. Formatting fixes. - - PR preprocessor/83722 - * gcc.c (try_generate_repro): Pass - &temp_stderr_files[RETRY_ICE_ATTEMPTS - 1] rather than - &temp_stdout_files[RETRY_ICE_ATTEMPTS - 1] as last argument to - do_report_bug. - -2018-01-08 Monk Chiang - Kito Cheng - - * config/riscv/riscv.c (machine_function::is_leaf): Remove field. - (riscv_leaf_function_p): Delete. - (riscv_function_ok_for_sibcall): Return false when TARGET_SAVE_RESTORE. - -2018-01-08 Aaron Sawdey - - * config/rs6000/rs6000-string.c (do_load_for_compare_from_addr): New - function. - (do_ifelse): New function. - (do_isel): New function. - (do_sub3): New function. - (do_add3): New function. - (do_load_mask_compare): New function. - (do_overlap_load_compare): New function. - (expand_compare_loop): New function. - (expand_block_compare): Call expand_compare_loop() when appropriate. - * config/rs6000/rs6000.opt (-mblock-compare-inline-limit): Change - option description. - (-mblock-compare-inline-loop-limit): New option. - -2018-01-08 Bill Schmidt - - PR target/83677 - * config/rs6000/altivec.md (*altivec_vpermr__internal): - Reverse order of second and third operands in first alternative. - * config/rs6000/rs6000.c (rs6000_expand_vector_set): Reverse order - of first and second elements in UNSPEC_VPERMR vector. - (altivec_expand_vec_perm_le): Likewise. - -2018-01-08 Jeff Law - - PR rtl-optimizatin/81308 - * tree-switch-conversion.c (cfg_altered): New file scoped static. - (process_switch): If group_case_labels makes a change, then set - cfg_altered. - (pass_convert_switch::execute): If a switch is converted, then - set cfg_altered. Return TODO_cfg_cleanup if cfg_altered is true. - - PR rtl-optimization/81308 - * recog.c (split_all_insns): Conditionally cleanup the CFG after - splitting insns. - -2018-01-08 Vidya Praveen - - PR target/83663 - Revert r255946 - * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code - generation for cases where splatting a value is not useful. - * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge - across a vec_duplicate and a paradoxical subreg forming a vector - mode to a vec_concat. - -2018-01-08 Kyrylo Tkachov - - * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping rules for - -march=armv8.3-a variants. - * config/arm/t-multilib: Likewise. - * config/arm/t-arm-elf: Likewise. Handle dotprod extension. - -2018-01-08 Aaron Sawdey - - * config/rs6000/rs6000.md (cceq_ior_compare): Remove * so I can use it - to generate rtl. - (cceq_ior_compare_complement): Give it a name so I can use it, and - change boolean_or_operator predicate to boolean_operator so it can - be used to generate a crand. - (eqne): New code iterator. - (bd/bd_neg): New code_attrs. - (_): New name for ctr_internal[12] now combined into - a single define_insn. - (tf_): A new insn pattern for the conditional form branch - decrement (bdnzt/bdnzf/bdzt/bdzf). - * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Updated - with the new names of the branch decrement patterns, and added the - names of the branch decrement conditional patterns. - -2018-01-08 Richard Biener - - PR tree-optimization/83563 - * graphite.c (canonicalize_loop_closed_ssa_form): Reset the SCEV - cache. - -2018-01-08 Richard Biener - - PR middle-end/83713 - * convert.c (do_narrow): Properly guard TYPE_OVERFLOW_WRAPS checks. - -2018-01-08 Richard Biener - - PR tree-optimization/83685 - * tree-ssa-pre.c (create_expression_by_pieces): Do not insert - references to abnormals. - -2018-01-08 Richard Biener - - PR lto/83719 - * dwarf2out.c (output_indirect_strings): Handle empty - skeleton_debug_str_hash. - (dwarf2out_early_finish): Index strings for -gsplit-dwarf. - -2018-01-08 Claudiu Zissulescu - - * config/arc/arc.c (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Delete. - (emit_store_direct): Likewise. - (arc_trampoline_adjust_address): Likewise. - (arc_asm_trampoline_template): New function. - (arc_initialize_trampoline): Use asm_trampoline_template. - (TARGET_ASM_TRAMPOLINE_TEMPLATE): Define. - * config/arc/arc.h (TRAMPOLINE_SIZE): Adjust to 16. - * config/arc/arc.md (flush_icache): Delete pattern. - -2018-01-08 Claudiu Zissulescu - - * config/arc/arc-c.def (__ARC_UNALIGNED__): New define. - * config/arc/arc.h (STRICT_ALIGNMENT): Control this macro using - munaligned-access. - -2018-01-08 Sebastian Huber - - PR target/83681 - * config/epiphany/epiphany.h (make_pass_mode_switch_use): Guard - by not USED_FOR_TARGET. - (make_pass_resolve_sw_modes): Likewise. - -2018-01-08 Sebastian Huber - - * config/nios2/nios2.h (nios2_section_threshold): Guard by not - USED_FOR_TARGET. - -2018-01-08 Richard Biener - - PR middle-end/83580 - * tree-data-ref.c (split_constant_offset): Remove STRIP_NOPS. - -2018-01-08 Richard Biener - - PR middle-end/83517 - * match.pd ((t * 2) / 2) -> t): Add missing :c. - -2018-01-06 Aldy Hernandez - - PR middle-end/81897 - * tree-ssa-uninit.c (compute_control_dep_chain): Do not bail on - basic blocks with a small number of successors. - (convert_control_dep_chain_into_preds): Improve handling of - forwarder blocks. - (dump_predicates): Split apart into... - (dump_pred_chain): ...here... - (dump_pred_info): ...and here. - (can_one_predicate_be_invalidated_p): Add debugging printfs. - (can_chain_union_be_invalidated_p): Improve check for invalidation - of paths. - (uninit_uses_cannot_happen): Avoid unnecessary if - convert_control_dep_chain_into_preds yielded nothing. - -2018-01-06 Martin Sebor - - PR tree-optimization/83640 - * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Avoid - subtracting negative offset from size. - (builtin_access::overlap): Adjust offset bounds of the access to fall - within the size of the object if possible. - -2018-01-06 Richard Sandiford - - PR rtl-optimization/83699 - * expmed.c (extract_bit_field_1): Restrict the vector usage of - extract_bit_field_as_subreg to cases in which the extracted - value is also a vector. - - * lra-constraints.c (process_alt_operands): Test for the equivalence - substitutions when detecting a possible reload cycle. - -2018-01-06 Jakub Jelinek - - PR debug/83480 - * toplev.c (process_options): Don't enable debug_nonbind_markers_p - by default if flag_selective_schedling{,2}. Formatting fixes. - - PR rtl-optimization/83682 - * rtl.h (const_vec_duplicate_p): Only return true for VEC_DUPLICATE - if it has non-VECTOR_MODE element mode. - (vec_duplicate_p): Likewise. - - PR middle-end/83694 - * cfgexpand.c (expand_debug_expr): Punt if mode1 is VOIDmode - and bitsize might be greater than MAX_BITSIZE_MODE_ANY_INT. - -2018-01-05 Jakub Jelinek - - PR target/83604 - * config/i386/i386-builtin.def - (__builtin_ia32_vgf2p8affineinvqb_v64qi, - __builtin_ia32_vgf2p8affineqb_v64qi, __builtin_ia32_vgf2p8mulb_v64qi): - Require also OPTION_MASK_ISA_AVX512F in addition to - OPTION_MASK_ISA_GFNI. - (__builtin_ia32_vgf2p8affineinvqb_v16qi_mask, - __builtin_ia32_vgf2p8affineqb_v16qi_mask): Require - OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_SSE in addition - to OPTION_MASK_ISA_GFNI. - (__builtin_ia32_vgf2p8mulb_v32qi_mask): Require - OPTION_MASK_ISA_AVX512VL in addition to OPTION_MASK_ISA_GFNI and - OPTION_MASK_ISA_AVX512BW. - (__builtin_ia32_vgf2p8mulb_v16qi_mask): Require - OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_AVX512BW in - addition to OPTION_MASK_ISA_GFNI. - (__builtin_ia32_vgf2p8affineinvqb_v16qi, - __builtin_ia32_vgf2p8affineqb_v16qi, __builtin_ia32_vgf2p8mulb_v16qi): - Require OPTION_MASK_ISA_SSE2 instead of OPTION_MASK_ISA_SSE in addition - to OPTION_MASK_ISA_GFNI. - * config/i386/i386.c (def_builtin): Change to builtin isa/isa2 being - a requirement for all ISAs rather than any of them with a few - exceptions. - (ix86_add_new_builtins): Clear OPTION_MASK_ISA_64BIT from isa before - processing. - (ix86_expand_builtin): Require all ISAs from builtin's isa and isa2 - bitmasks to be enabled with 3 exceptions, instead of requiring any - enabled ISA with lots of exceptions. - * config/i386/sse.md (vgf2p8affineinvqb_, - vgf2p8affineqb_, vgf2p8mulb_): - Change avx512bw in isa attribute to avx512f. - * config/i386/sgxintrin.h: Add license boilerplate. - * config/i386/vaesintrin.h: Likewise. Fix macro spelling __AVX512F - to __AVX512F__ and __AVX512VL to __AVX512VL__. - (_mm256_aesdec_epi128, _mm256_aesdeclast_epi128, _mm256_aesenc_epi128, - _mm256_aesenclast_epi128): Enable temporarily avx if __AVX__ is not - defined. - * config/i386/gfniintrin.h (_mm_gf2p8mul_epi8, - _mm_gf2p8affineinv_epi64_epi8, _mm_gf2p8affine_epi64_epi8): Enable - temporarily sse2 rather than sse if not enabled already. - - PR target/83604 - * config/i386/sse.md (VI248_VLBW): Rename to ... - (VI248_AVX512VL): ... this. Don't guard V32HI with TARGET_AVX512BW. - (vpshrd_, vpshld_, - vpshrdv_, vpshrdv__mask, vpshrdv__maskz, - vpshrdv__maskz_1, vpshldv_, vpshldv__mask, - vpshldv__maskz, vpshldv__maskz_1): Use VI248_AVX512VL - mode iterator instead of VI248_VLBW. - -2018-01-05 Jan Hubicka - - * ipa-fnsummary.c (record_modified_bb_info): Add OP. - (record_modified): Skip clobbers; add debug output. - (param_change_prob): Use sreal frequencies. - -2018-01-05 Richard Sandiford - - * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't - punt for user-aligned variables. - -2018-01-05 Richard Sandiford - - * tree-chrec.c (chrec_contains_symbols): Return true for - POLY_INT_CST. - -2018-01-05 Sudakshina Das - - PR target/82439 - * simplify-rtx.c (simplify_relational_operation_1): Add simplifications - of (x|y) == x for BICS pattern. - -2018-01-05 Jakub Jelinek - - PR tree-optimization/83605 - * gimple-ssa-strength-reduction.c: Include tree-eh.h. - (find_candidates_dom_walker::before_dom_children): Ignore stmts that - can throw. - -2018-01-05 Sebastian Huber - - * config.gcc (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration. - * config/epiphany/rtems.h: New file. - -2018-01-04 Jakub Jelinek - Uros Bizjak - - PR target/83554 - * config/i386/i386.md (*hi3_1 splitter): Use - QIreg_operand instead of register_operand predicate. - * config/i386/i386.c (ix86_rop_should_change_byte_p, - set_rop_modrm_reg_bits, ix86_mitigate_rop): Use -mmitigate-rop in - comments instead of -fmitigate[-_]rop. - -2018-01-04 Rainer Orth - - PR bootstrap/81926 - * cgraphunit.c (symbol_table::compile): Switch to text_section - before calling assembly_start debug hook. - * run-rtl-passes.c (run_rtl_passes): Likewise. - Include output.h. - -2018-01-04 Richard Sandiford - - * tree-vrp.c (extract_range_from_binary_expr_1): Check - range_int_cst_p rather than !symbolic_range_p before calling - extract_range_from_multiplicative_op_1. - -2018-01-04 Jeff Law - - * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Remove - redundant test in assertion. - -2018-01-04 Richard Sandiford - - * doc/rtl.texi: Document machine_mode wrapper classes. - -2018-01-04 Richard Sandiford - - * fold-const.c (fold_ternary_loc): Check tree_fits_uhwi_p before - using tree_to_uhwi. - -2018-01-04 Richard Sandiford - - * tree-ssa-forwprop.c (is_combined_permutation_identity): Allow - the VEC_PERM_EXPR fold to fail. - -2018-01-04 Jakub Jelinek - - PR debug/83585 - * bb-reorder.c (insert_section_boundary_note): Set has_bb_partition - to switched_sections. - -2018-01-04 Richard Sandiford - - PR target/83680 - * config/arm/arm.c (arm_vectorize_vec_perm_const): Fix inverted - test for d.testing. - -2018-01-04 Peter Bergner - - PR target/83387 - * config/rs6000/rs6000.c (rs6000_discover_homogeneous_aggregate): Do not - allow arguments in FP registers if TARGET_HARD_FLOAT is false. - -2018-01-04 Jakub Jelinek - - PR debug/83666 - * cfgexpand.c (expand_debug_expr) : Punt if mode - is BLKmode and bitpos not zero or mode change is needed. - -2018-01-04 Richard Sandiford - - PR target/83675 - * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Require - TARGET_VIS2. - -2018-01-04 Uros Bizjak - - PR target/83628 - * config/alpha/alpha.md (*sadd): Use ASHIFT - instead of MULT rtx. Update all corresponding splitters. - (*saddl_se): Ditto. - (*ssub): Ditto. - (*ssubl_se): Ditto. - (*cmp_sadd_di): Update split patterns. - (*cmp_sadd_si): Ditto. - (*cmp_sadd_sidi): Ditto. - (*cmp_ssub_di): Ditto. - (*cmp_ssub_si): Ditto. - (*cmp_ssub_sidi): Ditto. - * config/alpha/predicates.md (const23_operand): New predicate. - * config/alpha/alpha.c (alpha_rtx_costs) [PLUS, MINUS]: - Look for ASHIFT, not MULT inner operand. - (alpha_split_conditional_move): Update for *sadd change. - -2018-01-04 Martin Liska - - PR gcov-profile/83669 - * gcov.c (output_intermediate_file): Add version to intermediate - gcov file. - * doc/gcov.texi: Document new field 'version' in intermediate - file format. Fix location of '-k' option of gcov command. - -2018-01-04 Martin Liska - - PR ipa/82352 - * ipa-icf.c (sem_function::merge): Do not cross comdat boundary. - -2018-01-04 Jakub Jelinek - - * gimple-ssa-sprintf.c (parse_directive): Cast second dir.len to uhwi. - -2018-01-03 Martin Sebor - - PR tree-optimization/83655 - * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): Avoid - checking calls with invalid arguments. - -2018-01-03 Richard Sandiford - - * tree-vect-stmts.c (vect_get_store_rhs): New function. - (vectorizable_mask_load_store): Delete. - (vectorizable_call): Return false for masked loads and stores. - (vectorizable_store): Handle IFN_MASK_STORE. Use vect_get_store_rhs - instead of gimple_assign_rhs1. - (vectorizable_load): Handle IFN_MASK_LOAD. - (vect_transform_stmt): Don't set is_store for call_vec_info_type. - -2018-01-03 Richard Sandiford - - * tree-vect-stmts.c (vect_build_gather_load_calls): New function, - split out from.., - (vectorizable_mask_load_store): ...here. - (vectorizable_load): ...and here. - -2018-01-03 Richard Sandiford - - * tree-vect-stmts.c (vect_build_all_ones_mask) - (vect_build_zero_merge_argument): New functions, split out from... - (vectorizable_load): ...here. - -2018-01-03 Richard Sandiford - - * tree-vect-stmts.c (vect_check_store_rhs): New function, - split out from... - (vectorizable_mask_load_store): ...here. - (vectorizable_store): ...and here. - -2018-01-03 Richard Sandiford - - * tree-vect-stmts.c (vect_check_load_store_mask): New function, - split out from... - (vectorizable_mask_load_store): ...here. - -2018-01-03 Richard Sandiford - - * tree-vectorizer.h (vec_load_store_type): Moved from tree-vec-stmts.c - (vect_model_store_cost): Take a vec_load_store_type instead of a - vect_def_type. - * tree-vect-stmts.c (vec_load_store_type): Move to tree-vectorizer.h. - (vect_model_store_cost): Take a vec_load_store_type instead of a - vect_def_type. - (vectorizable_mask_load_store): Update accordingly. - (vectorizable_store): Likewise. - * tree-vect-slp.c (vect_analyze_slp_cost_1): Update accordingly. - -2018-01-03 Richard Sandiford - - * tree-vect-loop.c (vect_transform_loop): Stub out scalar - IFN_MASK_LOAD calls here rather than... - * tree-vect-stmts.c (vectorizable_mask_load_store): ...here. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * expmed.c (extract_bit_field_1): For vector extracts, - fall back to extract_bit_field_as_subreg if vec_extract - isn't available. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * lra-spills.c (pseudo_reg_slot_compare): Sort slots by whether - they are variable or constant sized. - (assign_stack_slot_num_and_sort_pseudos): Don't reuse variable-sized - slots for constant-sized data. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): When - handling COND_EXPRs with boolean comparisons, try to find a better - basis for the mask type than the boolean itself. - -2018-01-03 Richard Sandiford - - * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_MODE): Describe how the default - is calculated and how it can be overridden. - * genmodes.c (max_bitsize_mode_any_mode): New variable. - (create_modes): Initialize it from MAX_BITSIZE_MODE_ANY_MODE, - if defined. - (emit_max_int): Use it to set the output MAX_BITSIZE_MODE_ANY_MODE, - if nonzero. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * config/aarch64/aarch64-protos.h (aarch64_output_simd_mov_immediate): - Remove the mode argument. - (aarch64_simd_valid_immediate): Remove the mode and inverse - arguments. - * config/aarch64/iterators.md (bitsize): New iterator. - * config/aarch64/aarch64-simd.md (*aarch64_simd_mov, and3) - (ior3): Update calls to aarch64_output_simd_mov_immediate. - * config/aarch64/constraints.md (Do, Db, Dn): Update calls to - aarch64_simd_valid_immediate. - * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Likewise. - (aarch64_reg_or_bic_imm): Likewise. - * config/aarch64/aarch64.c (simd_immediate_info): Replace mvn - with an insn_type enum and msl with a modifier_type enum. - Replace element_width with a scalar_mode. Change the shift - to unsigned int. Add constructors for scalar_float_mode and - scalar_int_mode elements. - (aarch64_vect_float_const_representable_p): Delete. - (aarch64_can_const_movi_rtx_p) - (aarch64_simd_scalar_immediate_valid_for_move) - (aarch64_simd_make_constant): Update call to - aarch64_simd_valid_immediate. - (aarch64_advsimd_valid_immediate_hs): New function. - (aarch64_advsimd_valid_immediate): Likewise. - (aarch64_simd_valid_immediate): Remove mode and inverse - arguments. Rewrite to use the above. Use const_vec_duplicate_p - to detect duplicated constants and use aarch64_float_const_zero_rtx_p - and aarch64_float_const_representable_p on the result. - (aarch64_output_simd_mov_immediate): Remove mode argument. - Update call to aarch64_simd_valid_immediate and use of - simd_immediate_info. - (aarch64_output_scalar_simd_mov_immediate): Update call - accordingly. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * machmode.h (mode_precision): Prefix with CONST_MODE_PRECISION. - (mode_nunits): Likewise CONST_MODE_NUNITS. - * machmode.def (ADJUST_NUNITS): Document. - * genmodes.c (mode_data::need_nunits_adj): New field. - (blank_mode): Update accordingly. - (adj_nunits): New variable. - (print_maybe_const_decl): Replace CATEGORY with a NEEDS_ADJ - parameter. - (emit_mode_size_inline): Set need_bytesize_adj for all modes - listed in adj_nunits. - (emit_mode_nunits_inline): Set need_nunits_adj for all modes - listed in adj_nunits. Don't emit case statements for such modes. - (emit_insn_modes_h): Emit definitions of CONST_MODE_NUNITS - and CONST_MODE_PRECISION. Make CONST_MODE_SIZE expand to - nothing if adj_nunits is nonnull. - (emit_mode_precision, emit_mode_nunits): Use print_maybe_const_decl. - (emit_mode_unit_size, emit_mode_base_align, emit_mode_ibit) - (emit_mode_fbit): Update use of print_maybe_const_decl. - (emit_move_size): Likewise. Treat the array as non-const - if adj_nunits. - (emit_mode_adjustments): Handle adj_nunits. - -2018-01-03 Richard Sandiford - - * machmode.def (VECTOR_MODES_WITH_PREFIX): Document. - * genmodes.c (VECTOR_MODES_WITH_PREFIX): New macro. - (VECTOR_MODES): Use it. - (make_vector_modes): Take the prefix as an argument. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * mode-classes.def (MODE_VECTOR_BOOL): New mode class. - * machmode.h (INTEGRAL_MODE_P, VECTOR_MODE_P): Return true - for MODE_VECTOR_BOOL. - * machmode.def (VECTOR_BOOL_MODE): Document. - * genmodes.c (VECTOR_BOOL_MODE): New macro. - (make_vector_bool_mode): New function. - (complete_mode, emit_mode_wider, emit_mode_adjustments): Handle - MODE_VECTOR_BOOL. - * lto-streamer-in.c (lto_input_mode_table): Likewise. - * rtx-vector-builder.c (rtx_vector_builder::find_cached_value): - Likewise. - * stor-layout.c (int_mode_for_mode): Likewise. - * tree.c (build_vector_type_for_mode): Likewise. - * varasm.c (output_constant_pool_2): Likewise. - * emit-rtl.c (init_emit_once): Make sure that CONST1_RTX (BImode) and - CONSTM1_RTX (BImode) are the same thing. Initialize const_tiny_rtx - for MODE_VECTOR_BOOL. - * expr.c (expand_expr_real_1): Use VECTOR_MODE_P instead of a list - of mode class checks. - * tree-vect-generic.c (expand_vector_operation): Use VECTOR_MODE_P - instead of a list of mode class checks. - (expand_vector_scalar_condition): Likewise. - (type_for_widest_vector_mode): Handle BImode as an inner mode. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * machmode.h (mode_size): Change from unsigned short to - poly_uint16_pod. - (mode_to_bytes): Return a poly_uint16 rather than an unsigned short. - (GET_MODE_SIZE): Return a constant if ONLY_FIXED_SIZE_MODES, - or if measurement_type is not polynomial. - (fixed_size_mode::includes_p): Check for constant-sized modes. - * genmodes.c (emit_mode_size_inline): Make mode_size_inline - return a poly_uint16 rather than an unsigned short. - (emit_mode_size): Change the type of mode_size from unsigned short - to poly_uint16_pod. Use ZERO_COEFFS for the initializer. - (emit_mode_adjustments): Cope with polynomial vector sizes. - * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value - for GET_MODE_SIZE. - * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value - for GET_MODE_SIZE. - * auto-inc-dec.c (try_merge): Treat GET_MODE_SIZE as polynomial. - * builtins.c (expand_ifn_atomic_compare_exchange_into_call): Likewise. - * caller-save.c (setup_save_areas): Likewise. - (replace_reg_with_saved_mem): Likewise. - * calls.c (emit_library_call_value_1): Likewise. - * combine-stack-adj.c (combine_stack_adjustments_for_block): Likewise. - * combine.c (simplify_set, make_extraction, simplify_shift_const_1) - (gen_lowpart_for_combine): Likewise. - * convert.c (convert_to_integer_1): Likewise. - * cse.c (equiv_constant, cse_insn): Likewise. - * cselib.c (autoinc_split, cselib_hash_rtx): Likewise. - (cselib_subst_to_values): Likewise. - * dce.c (word_dce_process_block): Likewise. - * df-problems.c (df_word_lr_mark_ref): Likewise. - * dwarf2cfi.c (init_one_dwarf_reg_size): Likewise. - * dwarf2out.c (multiple_reg_loc_descriptor, mem_loc_descriptor) - (concat_loc_descriptor, concatn_loc_descriptor, loc_descriptor) - (rtl_for_decl_location): Likewise. - * emit-rtl.c (gen_highpart, widen_memory_access): Likewise. - * expmed.c (extract_bit_field_1, extract_integral_bit_field): Likewise. - * expr.c (emit_group_load_1, clear_storage_hints): Likewise. - (emit_move_complex, emit_move_multi_word, emit_push_insn): Likewise. - (expand_expr_real_1): Likewise. - * function.c (assign_parm_setup_block_p, assign_parm_setup_block) - (pad_below): Likewise. - * gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise. - * gimple-ssa-store-merging.c (rhs_valid_for_store_merging_p): Likewise. - * ira.c (get_subreg_tracking_sizes): Likewise. - * ira-build.c (ira_create_allocno_objects): Likewise. - * ira-color.c (coalesced_pseudo_reg_slot_compare): Likewise. - (ira_sort_regnos_for_alter_reg): Likewise. - * ira-costs.c (record_operand_costs): Likewise. - * lower-subreg.c (interesting_mode_p, simplify_gen_subreg_concatn) - (resolve_simple_move): Likewise. - * lra-constraints.c (get_reload_reg, operands_match_p): Likewise. - (process_addr_reg, simplify_operand_subreg, curr_insn_transform) - (lra_constraints): Likewise. - (CONST_POOL_OK_P): Reject variable-sized modes. - * lra-spills.c (slot, assign_mem_slot, pseudo_reg_slot_compare) - (add_pseudo_to_slot, lra_spill): Likewise. - * omp-low.c (omp_clause_aligned_alignment): Likewise. - * optabs-query.c (get_best_extraction_insn): Likewise. - * optabs-tree.c (expand_vec_cond_expr_p): Likewise. - * optabs.c (expand_vec_perm_var, expand_vec_cond_expr): Likewise. - (expand_mult_highpart, valid_multiword_target_p): Likewise. - * recog.c (offsettable_address_addr_space_p): Likewise. - * regcprop.c (maybe_mode_change): Likewise. - * reginfo.c (choose_hard_reg_mode, record_subregs_of_mode): Likewise. - * regrename.c (build_def_use): Likewise. - * regstat.c (dump_reg_info): Likewise. - * reload.c (complex_word_subreg_p, push_reload, find_dummy_reload) - (find_reloads, find_reloads_subreg_address): Likewise. - * reload1.c (eliminate_regs_1): Likewise. - * rtlanal.c (for_each_inc_dec_find_inc_dec, rtx_cost): Likewise. - * simplify-rtx.c (avoid_constant_pool_reference): Likewise. - (simplify_binary_operation_1, simplify_subreg): Likewise. - * targhooks.c (default_function_arg_padding): Likewise. - (default_hard_regno_nregs, default_class_max_nregs): Likewise. - * tree-cfg.c (verify_gimple_assign_binary): Likewise. - (verify_gimple_assign_ternary): Likewise. - * tree-inline.c (estimate_move_cost): Likewise. - * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. - * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Likewise. - (get_address_cost_ainc): Likewise. - * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. - (vect_supportable_dr_alignment): Likewise. - * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. - (vectorizable_reduction): Likewise. - * tree-vect-stmts.c (vectorizable_assignment, vectorizable_shift) - (vectorizable_operation, vectorizable_load): Likewise. - * tree.c (build_same_sized_truth_vector_type): Likewise. - * valtrack.c (cleanup_auto_inc_dec): Likewise. - * var-tracking.c (emit_note_insn_var_location): Likewise. - * config/arc/arc.h (ASM_OUTPUT_CASE_END): Use as_a . - (ADDR_VEC_ALIGN): Likewise. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * machmode.h (mode_to_bits): Return a poly_uint16 rather than an - unsigned short. - (GET_MODE_BITSIZE): Return a constant if ONLY_FIXED_SIZE_MODES, - or if measurement_type is polynomial. - * calls.c (shift_return_value): Treat GET_MODE_BITSIZE as polynomial. - * combine.c (make_extraction): Likewise. - * dse.c (find_shift_sequence): Likewise. - * dwarf2out.c (mem_loc_descriptor): Likewise. - * expmed.c (store_integral_bit_field, extract_bit_field_1): Likewise. - (extract_bit_field, extract_low_bits): Likewise. - * expr.c (convert_move, convert_modes, emit_move_insn_1): Likewise. - (optimize_bitfield_assignment_op, expand_assignment): Likewise. - (store_expr_with_bounds, store_field, expand_expr_real_1): Likewise. - * fold-const.c (optimize_bit_field_compare, merge_ranges): Likewise. - * gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise. - * reload.c (find_reloads): Likewise. - * reload1.c (alter_reg): Likewise. - * stor-layout.c (bitwise_mode_for_mode, compute_record_mode): Likewise. - * targhooks.c (default_secondary_memory_needed_mode): Likewise. - * tree-if-conv.c (predicate_mem_writes): Likewise. - * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise. - * tree-vect-patterns.c (adjust_bool_pattern): Likewise. - * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise. - * valtrack.c (dead_debug_insert_temp): Likewise. - * varasm.c (mergeable_constant_section): Likewise. - * config/sh/sh.h (LOCAL_ALIGNMENT): Use as_a . - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * expr.c (expand_assignment): Cope with polynomial mode sizes - when assigning to a CONCAT. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * machmode.h (mode_precision): Change from unsigned short to - poly_uint16_pod. - (mode_to_precision): Return a poly_uint16 rather than an unsigned - short. - (GET_MODE_PRECISION): Return a constant if ONLY_FIXED_SIZE_MODES, - or if measurement_type is not polynomial. - (HWI_COMPUTABLE_MODE_P): Turn into a function. Optimize the case - in which the mode is already known to be a scalar_int_mode. - * genmodes.c (emit_mode_precision): Change the type of mode_precision - from unsigned short to poly_uint16_pod. Use ZERO_COEFFS for the - initializer. - * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value - for GET_MODE_PRECISION. - * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value - for GET_MODE_PRECISION. - * combine.c (update_rsp_from_reg_equal): Treat GET_MODE_PRECISION - as polynomial. - (try_combine, find_split_point, combine_simplify_rtx): Likewise. - (expand_field_assignment, make_extraction): Likewise. - (make_compound_operation_int, record_dead_and_set_regs_1): Likewise. - (get_last_value): Likewise. - * convert.c (convert_to_integer_1): Likewise. - * cse.c (cse_insn): Likewise. - * expr.c (expand_expr_real_1): Likewise. - * lra-constraints.c (simplify_operand_subreg): Likewise. - * optabs-query.c (can_atomic_load_p): Likewise. - * optabs.c (expand_atomic_load): Likewise. - (expand_atomic_store): Likewise. - * ree.c (combine_reaching_defs): Likewise. - * rtl.h (partial_subreg_p, paradoxical_subreg_p): Likewise. - * rtlanal.c (nonzero_bits1, lsb_bitfield_op_p): Likewise. - * tree.h (type_has_mode_precision_p): Likewise. - * ubsan.c (instrument_si_overflow): Likewise. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * tree.h (TYPE_VECTOR_SUBPARTS): Turn into a function and handle - polynomial numbers of units. - (SET_TYPE_VECTOR_SUBPARTS): Likewise. - (valid_vector_subparts_p): New function. - (build_vector_type): Remove temporary shim and take the number - of units as a poly_uint64 rather than an int. - (build_opaque_vector_type): Take the number of units as a - poly_uint64 rather than an int. - * tree.c (build_vector_from_ctor): Handle polynomial - TYPE_VECTOR_SUBPARTS. - (type_hash_canon_hash, type_cache_hasher::equal): Likewise. - (uniform_vector_p, vector_type_mode, build_vector): Likewise. - (build_vector_from_val): If the number of units is variable, - use build_vec_duplicate_cst for constant operands and - VEC_DUPLICATE_EXPR otherwise. - (make_vector_type): Remove temporary is_constant (). - (build_vector_type, build_opaque_vector_type): Take the number of - units as a poly_uint64 rather than an int. - (check_vector_cst): Handle polynomial TYPE_VECTOR_SUBPARTS and - VECTOR_CST_NELTS. - * cfgexpand.c (expand_debug_expr): Likewise. - * expr.c (count_type_elements, categorize_ctor_elements_1): Likewise. - (store_constructor, expand_expr_real_1): Likewise. - (const_scalar_mask_from_tree): Likewise. - * fold-const-call.c (fold_const_reduction): Likewise. - * fold-const.c (const_binop, const_unop, fold_convert_const): Likewise. - (operand_equal_p, fold_vec_perm, fold_ternary_loc): Likewise. - (native_encode_vector, vec_cst_ctor_to_array): Likewise. - (fold_relational_const): Likewise. - (native_interpret_vector): Likewise. Change the size from an - int to an unsigned int. - * gimple-fold.c (gimple_fold_stmt_to_constant_1): Handle polynomial - TYPE_VECTOR_SUBPARTS. - (gimple_fold_indirect_ref, gimple_build_vector): Likewise. - (gimple_build_vector_from_val): Use VEC_DUPLICATE_EXPR when - duplicating a non-constant operand into a variable-length vector. - * hsa-brig.c (hsa_op_immed::emit_to_buffer): Handle polynomial - TYPE_VECTOR_SUBPARTS and VECTOR_CST_NELTS. - * ipa-icf.c (sem_variable::equals): Likewise. - * match.pd: Likewise. - * omp-simd-clone.c (simd_clone_subparts): Likewise. - * print-tree.c (print_node): Likewise. - * stor-layout.c (layout_type): Likewise. - * targhooks.c (default_builtin_vectorization_cost): Likewise. - * tree-cfg.c (verify_gimple_comparison): Likewise. - (verify_gimple_assign_binary): Likewise. - (verify_gimple_assign_ternary): Likewise. - (verify_gimple_assign_single): Likewise. - * tree-pretty-print.c (dump_generic_node): Likewise. - * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. - (simplify_bitfield_ref, is_combined_permutation_identity): Likewise. - * tree-vect-data-refs.c (vect_permute_store_chain): Likewise. - (vect_grouped_load_supported, vect_permute_load_chain): Likewise. - (vect_shift_permute_load_chain): Likewise. - * tree-vect-generic.c (nunits_for_known_piecewise_op): Likewise. - (expand_vector_condition, optimize_vector_constructor): Likewise. - (lower_vec_perm, get_compute_type): Likewise. - * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. - (get_initial_defs_for_reduction, vect_transform_loop): Likewise. - * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise. - (vect_recog_mask_conversion_pattern): Likewise. - * tree-vect-slp.c (vect_supported_load_permutation_p): Likewise. - (vect_get_constant_vectors, vect_transform_slp_perm_load): Likewise. - * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. - (get_group_load_store_type, vectorizable_mask_load_store): Likewise. - (vectorizable_bswap, simd_clone_subparts, vectorizable_assignment) - (vectorizable_shift, vectorizable_operation, vectorizable_store) - (vectorizable_load, vect_is_simple_cond, vectorizable_comparison) - (supportable_widening_operation): Likewise. - (supportable_narrowing_operation): Likewise. - * tree-vector-builder.c (tree_vector_builder::binary_encoded_nelts): - Likewise. - * varasm.c (output_constant): Likewise. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vect-data-refs.c (vect_permute_store_chain): Reorganize - so that both the length == 3 and length != 3 cases set up their - own permute vectors. Add comments explaining why we know the - number of elements is constant. - (vect_permute_load_chain): Likewise. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * machmode.h (mode_nunits): Change from unsigned char to - poly_uint16_pod. - (ONLY_FIXED_SIZE_MODES): New macro. - (pod_mode::measurement_type, scalar_int_mode::measurement_type) - (scalar_float_mode::measurement_type, scalar_mode::measurement_type) - (complex_mode::measurement_type, fixed_size_mode::measurement_type): - New typedefs. - (mode_to_nunits): Return a poly_uint16 rather than an unsigned short. - (GET_MODE_NUNITS): Return a constant if ONLY_FIXED_SIZE_MODES, - or if measurement_type is not polynomial. - * genmodes.c (ZERO_COEFFS): New macro. - (emit_mode_nunits_inline): Make mode_nunits_inline return a - poly_uint16. - (emit_mode_nunits): Change the type of mode_nunits to poly_uint16_pod. - Use ZERO_COEFFS when emitting initializers. - * data-streamer.h (bp_pack_poly_value): New function. - (bp_unpack_poly_value): Likewise. - * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value - for GET_MODE_NUNITS. - * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value - for GET_MODE_NUNITS. - * tree.c (make_vector_type): Remove temporary shim and make - the real function take the number of units as a poly_uint64 - rather than an int. - (build_vector_type_for_mode): Handle polynomial nunits. - * dwarf2out.c (loc_descriptor, add_const_value_attribute): Likewise. - * emit-rtl.c (const_vec_series_p_1): Likewise. - (gen_rtx_CONST_VECTOR): Likewise. - * fold-const.c (test_vec_duplicate_folding): Likewise. - * genrecog.c (validate_pattern): Likewise. - * optabs-query.c (can_vec_perm_var_p, can_mult_highpart_p): Likewise. - * optabs-tree.c (expand_vec_cond_expr_p): Likewise. - * optabs.c (expand_vector_broadcast, expand_binop_directly): Likewise. - (shift_amt_for_vec_perm_mask, expand_vec_perm_var): Likewise. - (expand_vec_cond_expr, expand_mult_highpart): Likewise. - * rtlanal.c (subreg_get_info): Likewise. - * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. - (vect_grouped_load_supported): Likewise. - * tree-vect-generic.c (type_for_widest_vector_mode): Likewise. - * tree-vect-loop.c (have_whole_vector_shift): Likewise. - * simplify-rtx.c (simplify_unary_operation_1): Likewise. - (simplify_const_unary_operation, simplify_binary_operation_1) - (simplify_const_binary_operation, simplify_ternary_operation) - (test_vector_ops_duplicate, test_vector_ops): Likewise. - (simplify_immed_subreg): Use GET_MODE_NUNITS on a fixed_size_mode - instead of CONST_VECTOR_NUNITS. - * varasm.c (output_constant_pool_2): Likewise. - * rtx-vector-builder.c (rtx_vector_builder::build): Only include the - explicit-encoded elements in the XVEC for variable-length vectors. - -2018-01-03 Richard Sandiford - - * lra-constraints.c (curr_insn_transform): Use partial_subreg_p. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * coretypes.h (fixed_size_mode): Declare. - (fixed_size_mode_pod): New typedef. - * builtins.h (target_builtins::x_apply_args_mode) - (target_builtins::x_apply_result_mode): Change type to - fixed_size_mode_pod. - * builtins.c (apply_args_size, apply_result_size, result_vector) - (expand_builtin_apply_args_1, expand_builtin_apply) - (expand_builtin_return): Update accordingly. - -2018-01-03 Richard Sandiford - - * cse.c (hash_rtx_cb): Hash only the encoded elements. - * cselib.c (cselib_hash_rtx): Likewise. - * expmed.c (make_tree): Build VECTOR_CSTs directly from the - CONST_VECTOR encoding. - -2018-01-03 Jakub Jelinek - Jeff Law - - PR target/83641 - * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): For - noreturn probe, use gen_pop instead of ix86_emit_restore_reg_using_pop, - only set RTX_FRAME_RELATED_P on both the push and pop if cfa_reg is sp - and add REG_CFA_ADJUST_CFA notes in that case to both insns. - - PR target/83641 - * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Do not - explicitly probe *sp in a noreturn function if there were any callee - register saves or frame pointer is needed. - -2018-01-03 Jakub Jelinek - - PR debug/83621 - * cfgexpand.c (expand_debug_expr): Return NULL if mode is - BLKmode for ternary, binary or unary expressions. - - PR debug/83645 - * var-tracking.c (delete_vta_debug_insn): New inline function. - (delete_vta_debug_insns): Add USE_CFG argument, if true, walk just - insns from get_insns () to NULL instead of each bb separately. - Use delete_vta_debug_insn. No longer static. - (vt_debug_insns_local, variable_tracking_main_1): Adjust - delete_vta_debug_insns callers. - * rtl.h (delete_vta_debug_insns): Declare. - * final.c (rest_of_handle_final): Call delete_vta_debug_insns - instead of variable_tracking_main. - -2018-01-03 Martin Sebor - - PR tree-optimization/83603 - * calls.c (maybe_warn_nonstring_arg): Avoid accessing function - arguments past the endof the argument list in functions declared - without a prototype. - * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): - Avoid checking when arguments are null. - -2018-01-03 Martin Sebor - - PR c/83559 - * doc/extend.texi (attribute const): Fix a typo. - * ipa-pure-const.c ((warn_function_const, warn_function_pure): Avoid - issuing -Wsuggest-attribute for void functions. - -2018-01-03 Martin Sebor - - * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use - offset_int::from instead of wide_int::to_shwi. - (maybe_diag_overlap): Remove assertion. - Use HOST_WIDE_INT_PRINT_DEC instead of %lli. - * gimple-ssa-sprintf.c (format_directive): Same. - (parse_directive): Same. - (sprintf_dom_walker::compute_format_length): Same. - (try_substitute_return_value): Same. - -2018-01-03 Jeff Law - - PR middle-end/83654 - * explow.c (anti_adjust_stack_and_probe_stack_clash): Test a - non-constant residual for zero at runtime and avoid probing in - that case. Reorganize code for trailing problem to mirror handling - of the residual. - -2018-01-03 Prathamesh Kulkarni - - PR tree-optimization/83501 - * tree-ssa-strlen.c (get_string_cst): New. - (handle_char_store): Call get_string_cst. - -2018-01-03 Martin Liska - - PR tree-optimization/83593 - * tree-ssa-strlen.c: Include tree-cfg.h. - (strlen_check_and_optimize_stmt): Add new argument cleanup_eh. - (strlen_dom_walker): Add new member variable m_cleanup_cfg. - (strlen_dom_walker::strlen_dom_walker): Initialize m_cleanup_cfg - to false. - (strlen_dom_walker::before_dom_children): Call - gimple_purge_dead_eh_edges. Dump tranformation with details - dump flags. - (strlen_dom_walker::before_dom_children): Update call by adding - new argument cleanup_eh. - (pass_strlen::execute): Return TODO_cleanup_cfg if needed. - -2018-01-03 Martin Liska - - PR ipa/83549 - * cif-code.def (VARIADIC_THUNK): New enum value. - * ipa-fnsummary.c (compute_fn_summary): Do not inline variadic - thunks. - -2018-01-03 Jan Beulich - - * sse.md (mov_internal): Tighten condition for when to use - vmovdqu for TI and OI modes. - -2018-01-03 Jakub Jelinek +2019-01-01 Jakub Jelinek Update copyright years. -2018-01-03 Martin Liska - - PR ipa/83594 - * ipa-visibility.c (function_and_variable_visibility): Skip - functions with noipa attribure. - -2018-01-03 Jakub Jelinek - * gcc.c (process_command): Update copyright notice dates. * gcov-dump.c (print_version): Ditto. * gcov.c (print_version): Ditto. @@ -34185,996 +61,8 @@ * doc/gcov.texi: Ditto. * doc/install.texi: Ditto. * doc/invoke.texi: Ditto. - -2018-01-03 Richard Sandiford - - * vector-builder.h (vector_builder::m_full_nelts): Change from - unsigned int to poly_uint64. - (vector_builder::full_nelts): Update prototype accordingly. - (vector_builder::new_vector): Likewise. - (vector_builder::encoded_full_vector_p): Handle polynomial full_nelts. - (vector_builder::operator ==): Likewise. - (vector_builder::finalize): Likewise. - * int-vector-builder.h (int_vector_builder::int_vector_builder): - Take the number of elements as a poly_uint64 rather than an - unsigned int. - * vec-perm-indices.h (vec_perm_indices::m_nelts_per_input): Change - from unsigned int to poly_uint64. - (vec_perm_indices::vec_perm_indices): Update prototype accordingly. - (vec_perm_indices::new_vector): Likewise. - (vec_perm_indices::length): Likewise. - (vec_perm_indices::nelts_per_input): Likewise. - (vec_perm_indices::input_nelts): Likewise. - * vec-perm-indices.c (vec_perm_indices::new_vector): Take the - number of elements per input as a poly_uint64 rather than an - unsigned int. Use the original encoding for variable-length - vectors, rather than clamping each individual element. - For the second and subsequent elements in each pattern, - clamp the step and base before clamping their sum. - (vec_perm_indices::series_p): Handle polynomial element counts. - (vec_perm_indices::all_in_range_p): Likewise. - (vec_perm_indices_to_tree): Likewise. - (vec_perm_indices_to_rtx): Likewise. - * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise. - * tree-vector-builder.c (tree_vector_builder::new_unary_operation) - (tree_vector_builder::new_binary_operation): Handle polynomial - element counts. Return false if we need to know the number - of elements at compile time. - * fold-const.c (fold_vec_perm): Punt if the number of elements - isn't known at compile time. - -2018-01-03 Richard Sandiford - - * vec-perm-indices.h (vec_perm_builder): Change element type - from HOST_WIDE_INT to poly_int64. - (vec_perm_indices::element_type): Update accordingly. - (vec_perm_indices::clamp): Handle polynomial element_types. - * vec-perm-indices.c (vec_perm_indices::series_p): Likewise. - (vec_perm_indices::all_in_range_p): Likewise. - (tree_to_vec_perm_builder): Check for poly_int64 trees rather - than shwi trees. - * vector-builder.h (vector_builder::stepped_sequence_p): Handle - polynomial vec_perm_indices element types. - * int-vector-builder.h (int_vector_builder::equal_p): Likewise. - * fold-const.c (fold_vec_perm): Likewise. - * optabs.c (shift_amt_for_vec_perm_mask): Likewise. - * tree-vect-generic.c (lower_vec_perm): Likewise. - * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise. - * config/aarch64/aarch64.c (aarch64_evpc_tbl): Cast d->perm - element type to HOST_WIDE_INT. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * alias.c (addr_side_effect_eval): Take the size as a poly_int64 - rather than an int. Use plus_constant. - (memrefs_conflict_p): Take the sizes as poly_int64s rather than ints. - Take the offset "c" as a poly_int64 rather than a HOST_WIDE_INT. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * calls.c (emit_call_1, expand_call): Change struct_value_size from - a HOST_WIDE_INT to a poly_int64. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * calls.c (load_register_parameters): Cope with polynomial - mode sizes. Require a constant size for BLKmode parameters - that aren't described by a PARALLEL. If BLOCK_REG_PADDING - forces a parameter to be padded at the lsb end in order to - fill a complete number of words, require the parameter size - to be ordered wrt UNITS_PER_WORD. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * reload1.c (spill_stack_slot_width): Change element type - from unsigned int to poly_uint64_pod. - (alter_reg): Treat mode sizes as polynomial. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * reload.c (complex_word_subreg_p): New function. - (reload_inner_reg_of_subreg, push_reload): Use it. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * lra-constraints.c (process_alt_operands): Reject matched - operands whose sizes aren't ordered. - (match_reload): Refer to this check here. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * builtins.c (expand_ifn_atomic_compare_exchange_into_call): Assert - that the mode size is in the set {1, 2, 4, 8, 16}. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * var-tracking.c (adjust_mems): Treat mode sizes as polynomial. - Use plus_constant instead of gen_rtx_PLUS. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * config/cr16/cr16-protos.h (cr16_push_rounding): Declare. - * config/cr16/cr16.h (PUSH_ROUNDING): Move implementation to... - * config/cr16/cr16.c (cr16_push_rounding): ...this new function. - * config/h8300/h8300-protos.h (h8300_push_rounding): Declare. - * config/h8300/h8300.h (PUSH_ROUNDING): Move implementation to... - * config/h8300/h8300.c (h8300_push_rounding): ...this new function. - * config/i386/i386-protos.h (ix86_push_rounding): Declare. - * config/i386/i386.h (PUSH_ROUNDING): Move implementation to... - * config/i386/i386.c (ix86_push_rounding): ...this new function. - * config/m32c/m32c-protos.h (m32c_push_rounding): Take and return - a poly_int64. - * config/m32c/m32c.c (m32c_push_rounding): Likewise. - * config/m68k/m68k-protos.h (m68k_push_rounding): Declare. - * config/m68k/m68k.h (PUSH_ROUNDING): Move implementation to... - * config/m68k/m68k.c (m68k_push_rounding): ...this new function. - * config/pdp11/pdp11-protos.h (pdp11_push_rounding): Declare. - * config/pdp11/pdp11.h (PUSH_ROUNDING): Move implementation to... - * config/pdp11/pdp11.c (pdp11_push_rounding): ...this new function. - * config/stormy16/stormy16-protos.h (xstormy16_push_rounding): Declare. - * config/stormy16/stormy16.h (PUSH_ROUNDING): Move implementation to... - * config/stormy16/stormy16.c (xstormy16_push_rounding): ...this new - function. - * expr.c (emit_move_resolve_push): Treat the input and result - of PUSH_ROUNDING as a poly_int64. - (emit_move_complex_push, emit_single_push_insn_1): Likewise. - (emit_push_insn): Likewise. - * lra-eliminations.c (mark_not_eliminable): Likewise. - * recog.c (push_operand): Likewise. - * reload1.c (elimination_effects): Likewise. - * rtlanal.c (nonzero_bits1): Likewise. - * calls.c (store_one_arg): Likewise. Require the padding to be - known at compile time. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * expr.c (emit_single_push_insn_1): Treat mode sizes as polynomial. - Use plus_constant instead of gen_rtx_PLUS. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * auto-inc-dec.c (set_inc_state): Take the mode size as a poly_int64 - rather than an int. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * expr.c (expand_expr_real_1): Use tree_to_poly_uint64 - instead of int_size_in_bytes when handling VIEW_CONVERT_EXPRs - via stack temporaries. Treat the mode size as polynomial too. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * expr.c (expand_expr_real_2): When handling conversions involving - unions, apply tree_to_poly_uint64 to the TYPE_SIZE rather than - multiplying int_size_in_bytes by BITS_PER_UNIT. Treat GET_MODE_BISIZE - as a poly_uint64 too. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * rtlanal.c (subreg_get_info): Handle polynomial mode sizes. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * combine.c (can_change_dest_mode): Handle polynomial - REGMODE_NATURAL_SIZE. - * expmed.c (store_bit_field_1): Likewise. - * expr.c (store_constructor): Likewise. - * emit-rtl.c (validate_subreg): Operate on polynomial mode sizes - and polynomial REGMODE_NATURAL_SIZE. - (gen_lowpart_common): Likewise. - * reginfo.c (record_subregs_of_mode): Likewise. - * rtlanal.c (read_modify_subreg_p): Likewise. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * internal-fn.c (expand_vector_ubsan_overflow): Handle polynomial - numbers of elements. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * match.pd: Cope with polynomial numbers of vector elements. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * fold-const.c (fold_indirect_ref_1): Handle polynomial offsets - in a POINTER_PLUS_EXPR. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * omp-simd-clone.c (simd_clone_subparts): New function. - (simd_clone_init_simd_arrays): Use it instead of TYPE_VECTOR_SUBPARTS. - (ipa_simd_modify_function_body): Likewise. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vect-generic.c (nunits_for_known_piecewise_op): New function. - (expand_vector_piecewise): Use it instead of TYPE_VECTOR_SUBPARTS. - (expand_vector_addition, add_rshift, expand_vector_divmod): Likewise. - (expand_vector_condition, vector_element): Likewise. - (subparts_gt): New function. - (get_compute_type): Use subparts_gt. - (count_type_subparts): Delete. - (expand_vector_operations_1): Use subparts_gt instead of - count_type_subparts. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vect-data-refs.c (vect_no_alias_p): Replace with... - (vect_compile_time_alias): ...this new function. Do the calculation - on poly_ints rather than trees. - (vect_prune_runtime_alias_test_list): Update call accordingly. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vect-slp.c (vect_build_slp_tree_1): Handle polynomial - numbers of units. - (vect_schedule_slp_instance): Likewise. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vect-slp.c (vect_get_and_check_slp_defs): Reject - constant and extern definitions for variable-length vectors. - (vect_get_constant_vectors): Note that the number of units - is known to be constant. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vect-stmts.c (vectorizable_conversion): Treat the number - of units as polynomial. Choose between WIDE and NARROW based - on multiple_p. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vect-stmts.c (simd_clone_subparts): New function. - (vectorizable_simd_clone_call): Use it instead of TYPE_VECTOR_SUBPARTS. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vect-stmts.c (vectorizable_call): Treat the number of - vectors as polynomial. Use build_index_vector for - IFN_GOMP_SIMD_LANE. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vect-stmts.c (get_load_store_type): Treat the number of - units as polynomial. Reject VMAT_ELEMENTWISE and VMAT_STRIDED_SLP - for variable-length vectors. - (vectorizable_mask_load_store): Treat the number of units as - polynomial, asserting that it is constant if the condition has - already been enforced. - (vectorizable_store, vectorizable_load): Likewise. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vect-loop.c (vectorizable_live_operation): Treat the number - of units as polynomial. Punt if we can't tell at compile time - which vector contains the final result. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vect-loop.c (vectorizable_induction): Treat the number - of units as polynomial. Punt on SLP inductions. Use an integer - VEC_SERIES_EXPR for variable-length integer reductions. Use a - cast of such a series for variable-length floating-point - reductions. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * tree.h (build_index_vector): Declare. - * tree.c (build_index_vector): New function. - * tree-vect-loop.c (get_initial_defs_for_reduction): Treat the number - of units as polynomial, forcibly converting it to a constant if - vectorizable_reduction has already enforced the condition. - (vect_create_epilog_for_reduction): Likewise. Use build_index_vector - to create a {1,2,3,...} vector. - (vectorizable_reduction): Treat the number of units as polynomial. - Choose vectype_in based on the largest scalar element size rather - than the smallest number of units. Enforce the restrictions - relied on above. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vect-data-refs.c (vector_alignment_reachable_p): Treat the - number of units as polynomial. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * target.h (vector_sizes, auto_vector_sizes): New typedefs. - * target.def (autovectorize_vector_sizes): Return the vector sizes - by pointer, using vector_sizes rather than a bitmask. - * targhooks.h (default_autovectorize_vector_sizes): Update accordingly. - * targhooks.c (default_autovectorize_vector_sizes): Likewise. - * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): - Likewise. - * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise. - * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise. - * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. - * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise. - * omp-general.c (omp_max_vf): Likewise. - * omp-low.c (omp_clause_aligned_alignment): Likewise. - * optabs-query.c (can_vec_mask_load_store_p): Likewise. - * tree-vect-loop.c (vect_analyze_loop): Likewise. - * tree-vect-slp.c (vect_slp_bb): Likewise. - * doc/tm.texi: Regenerate. - * tree-vectorizer.h (current_vector_size): Change from an unsigned int - to a poly_uint64. - * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Take - the vector size as a poly_uint64 rather than an unsigned int. - (current_vector_size): Change from an unsigned int to a poly_uint64. - (get_vectype_for_scalar_type): Update accordingly. - * tree.h (build_truth_vector_type): Take the size and number of - units as a poly_uint64 rather than an unsigned int. - (build_vector_type): Add a temporary overload that takes - the number of units as a poly_uint64 rather than an unsigned int. - * tree.c (make_vector_type): Likewise. - (build_truth_vector_type): Take the number of units as a poly_uint64 - rather than an unsigned int. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * target.def (get_mask_mode): Take the number of units and length - as poly_uint64s rather than unsigned ints. - * targhooks.h (default_get_mask_mode): Update accordingly. - * targhooks.c (default_get_mask_mode): Likewise. - * config/i386/i386.c (ix86_get_mask_mode): Likewise. - * doc/tm.texi: Regenerate. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * omp-general.h (omp_max_vf): Return a poly_uint64 instead of an int. - * omp-general.c (omp_max_vf): Likewise. - * omp-expand.c (omp_adjust_chunk_size): Update call to omp_max_vf. - (expand_omp_simd): Handle polynomial safelen. - * omp-low.c (omplow_simd_context): Add a default constructor. - (omplow_simd_context::max_vf): Change from int to poly_uint64. - (lower_rec_simd_input_clauses): Update accordingly. - (lower_rec_input_clauses): Likewise. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vectorizer.h (vect_nunits_for_cost): New function. - * tree-vect-loop.c (vect_model_reduction_cost): Use it. - * tree-vect-slp.c (vect_analyze_slp_cost_1): Likewise. - (vect_analyze_slp_cost): Likewise. - * tree-vect-stmts.c (vect_model_store_cost): Likewise. - (vect_model_load_cost): Likewise. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vect-slp.c (vect_record_max_nunits, vect_build_slp_tree_1) - (vect_build_slp_tree_2, vect_build_slp_tree): Change max_nunits - from an unsigned int * to a poly_uint64_pod *. - (calculate_unrolling_factor): New function. - (vect_analyze_slp_instance): Use it. Track polynomial max_nunits. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * tree-vectorizer.h (_slp_instance::unrolling_factor): Change - from an unsigned int to a poly_uint64. - (_loop_vec_info::slp_unrolling_factor): Likewise. - (_loop_vec_info::vectorization_factor): Change from an int - to a poly_uint64. - (MAX_VECTORIZATION_FACTOR): Bump from 64 to INT_MAX. - (vect_get_num_vectors): New function. - (vect_update_max_nunits, vect_vf_for_cost): Likewise. - (vect_get_num_copies): Use vect_get_num_vectors. - (vect_analyze_data_ref_dependences): Change max_vf from an int * - to an unsigned int *. - (vect_analyze_data_refs): Change min_vf from an int * to a - poly_uint64 *. - (vect_transform_slp_perm_load): Take the vf as a poly_uint64 rather - than an unsigned HOST_WIDE_INT. - * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr) - (vect_analyze_data_ref_dependence): Change max_vf from an int * - to an unsigned int *. - (vect_analyze_data_ref_dependences): Likewise. - (vect_compute_data_ref_alignment): Handle polynomial vf. - (vect_enhance_data_refs_alignment): Likewise. - (vect_prune_runtime_alias_test_list): Likewise. - (vect_shift_permute_load_chain): Likewise. - (vect_supportable_dr_alignment): Likewise. - (dependence_distance_ge_vf): Take the vectorization factor as a - poly_uint64 rather than an unsigned HOST_WIDE_INT. - (vect_analyze_data_refs): Change min_vf from an int * to a - poly_uint64 *. - * tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Take - vfm1 as a poly_uint64 rather than an int. Make the same change - for the returned bound_scalar. - (vect_gen_vector_loop_niters): Handle polynomial vf. - (vect_do_peeling): Likewise. Update call to - vect_gen_scalar_loop_niters and handle polynomial bound_scalars. - (vect_gen_vector_loop_niters_mult_vf): Assert that the vf must - be constant. - * tree-vect-loop.c (vect_determine_vectorization_factor) - (vect_update_vf_for_slp, vect_analyze_loop_2): Handle polynomial vf. - (vect_get_known_peeling_cost): Likewise. - (vect_estimate_min_profitable_iters, vectorizable_reduction): Likewise. - (vect_worthwhile_without_simd_p, vectorizable_induction): Likewise. - (vect_transform_loop): Likewise. Use the lowest possible VF when - updating the upper bounds of the loop. - (vect_min_worthwhile_factor): Make static. Return an unsigned int - rather than an int. - * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Cope with - polynomial unroll factors. - (vect_analyze_slp_cost_1, vect_analyze_slp_instance): Likewise. - (vect_make_slp_decision): Likewise. - (vect_supported_load_permutation_p): Likewise, and polynomial - vf too. - (vect_analyze_slp_cost): Handle polynomial vf. - (vect_slp_analyze_node_operations): Likewise. - (vect_slp_analyze_bb_1): Likewise. - (vect_transform_slp_perm_load): Take the vf as a poly_uint64 rather - than an unsigned HOST_WIDE_INT. - * tree-vect-stmts.c (vectorizable_simd_clone_call, vectorizable_store) - (vectorizable_load): Handle polynomial vf. - * tree-vectorizer.c (simduid_to_vf::vf): Change from an int to - a poly_uint64. - (adjust_simduid_builtins, shrink_simd_arrays): Update accordingly. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * match.pd: Handle bit operations involving three constants - and try to fold one pair. - -2018-01-03 Richard Sandiford - - * tree-vect-loop-manip.c: Include gimple-fold.h. - (slpeel_make_loop_iterate_ntimes): Add step, final_iv and - niters_maybe_zero parameters. Handle other cases besides a step of 1. - (vect_gen_vector_loop_niters): Add a step_vector_ptr parameter. - Add a path that uses a step of VF instead of 1, but disable it - for now. - (vect_do_peeling): Add step_vector, niters_vector_mult_vf_var - and niters_no_overflow parameters. Update calls to - slpeel_make_loop_iterate_ntimes and vect_gen_vector_loop_niters. - Create a new SSA name if the latter choses to use a ste other - than zero, and return it via niters_vector_mult_vf_var. - * tree-vect-loop.c (vect_transform_loop): Update calls to - vect_do_peeling, vect_gen_vector_loop_niters and - slpeel_make_loop_iterate_ntimes. - * tree-vectorizer.h (slpeel_make_loop_iterate_ntimes, vect_do_peeling) - (vect_gen_vector_loop_niters): Update declarations after above changes. - -2018-01-02 Michael Meissner - - * config/rs6000/rs6000.md (floor2): Add support for IEEE - 128-bit round to integer instructions. - (ceil2): Likewise. - (btrunc2): Likewise. - (round2): Likewise. - -2018-01-02 Aaron Sawdey - - * config/rs6000/rs6000-string.c (expand_block_move): Allow the use of - unaligned VSX load/store on P8/P9. - (expand_block_clear): Allow the use of unaligned VSX - load/store on P8/P9. - -2018-01-02 Bill Schmidt - - * config/rs6000/rs6000-p8swap.c (swap_feeds_both_load_and_store): - New function. - (rs6000_analyze_swaps): Mark a web unoptimizable if it contains a - swap associated with both a load and a store. - -2018-01-02 Andrew Waterman - - * config/riscv/linux.h (ICACHE_FLUSH_FUNC): New. - * config/riscv/riscv.md (clear_cache): Use it. - -2018-01-02 Artyom Skrobov - - * web.c: Remove out-of-date comment. - -2018-01-02 Richard Sandiford - - * expr.c (fixup_args_size_notes): Check that any existing - REG_ARGS_SIZE notes are correct, and don't try to re-add them. - (emit_single_push_insn_1): Move stack_pointer_delta adjustment to... - (emit_single_push_insn): ...here. - -2018-01-02 Richard Sandiford - - * rtl.h (CONST_VECTOR_ELT): Redefine to const_vector_elt. - (const_vector_encoded_nelts): New function. - (CONST_VECTOR_NUNITS): Redefine to use GET_MODE_NUNITS. - (const_vector_int_elt, const_vector_elt): Declare. - * emit-rtl.c (const_vector_int_elt_1): New function. - (const_vector_elt): Likewise. - * simplify-rtx.c (simplify_immed_subreg): Avoid taking the address - of CONST_VECTOR_ELT. - -2018-01-02 Richard Sandiford - - * expr.c: Include rtx-vector-builder.h. - (const_vector_mask_from_tree): Use rtx_vector_builder and operate - directly on the tree encoding. - (const_vector_from_tree): Likewise. - * optabs.c: Include rtx-vector-builder.h. - (expand_vec_perm_var): Use rtx_vector_builder and create a repeating - sequence of "u" values. - * vec-perm-indices.c: Include rtx-vector-builder.h. - (vec_perm_indices_to_rtx): Use rtx_vector_builder and operate - directly on the vec_perm_indices encoding. - -2018-01-02 Richard Sandiford - - * doc/rtl.texi (const_vector): Describe new encoding scheme. - * Makefile.in (OBJS): Add rtx-vector-builder.o. - * rtx-vector-builder.h: New file. - * rtx-vector-builder.c: Likewise. - * rtl.h (rtx_def::u2): Add a const_vector field. - (CONST_VECTOR_NPATTERNS): New macro. - (CONST_VECTOR_NELTS_PER_PATTERN): Likewise. - (CONST_VECTOR_DUPLICATE_P): Likewise. - (CONST_VECTOR_STEPPED_P): Likewise. - (CONST_VECTOR_ENCODED_ELT): Likewise. - (const_vec_duplicate_p): Check for a duplicated vector encoding. - (unwrap_const_vec_duplicate): Likewise. - (const_vec_series_p): Check for a non-duplicated vector encoding. - Say that the function only returns true for integer vectors. - * emit-rtl.c: Include rtx-vector-builder.h. - (gen_const_vec_duplicate_1): Delete. - (gen_const_vector): Call gen_const_vec_duplicate instead of - gen_const_vec_duplicate_1. - (const_vec_series_p_1): Operate directly on the CONST_VECTOR encoding. - (gen_const_vec_duplicate): Use rtx_vector_builder. - (gen_const_vec_series): Likewise. - (gen_rtx_CONST_VECTOR): Likewise. - * config/powerpcspe/powerpcspe.c: Include rtx-vector-builder.h. - (swap_const_vector_halves): Take an rtx pointer rather than rtx. - Build a new vector rather than modifying a CONST_VECTOR in-place. - (handle_special_swappables): Update call accordingly. - * config/rs6000/rs6000-p8swap.c: Include rtx-vector-builder.h. - (swap_const_vector_halves): Take an rtx pointer rather than rtx. - Build a new vector rather than modifying a CONST_VECTOR in-place. - (handle_special_swappables): Update call accordingly. - -2018-01-02 Richard Sandiford - - * simplify-rtx.c (simplify_const_binary_operation): Use - CONST_VECTOR_ELT instead of XVECEXP. - -2018-01-02 Richard Sandiford - - * tree-cfg.c (verify_gimple_assign_ternary): Allow the size of - the selector elements to be different from the data elements - if the selector is a VECTOR_CST. - * tree-vect-stmts.c (vect_gen_perm_mask_any): Use a vector of - ssizetype for the selector. - -2018-01-02 Richard Sandiford - - * optabs.c (shift_amt_for_vec_perm_mask): Try using series_p - before testing each element individually. - * tree-vect-generic.c (lower_vec_perm): Likewise. - -2018-01-02 Richard Sandiford - - * selftest.h (selftest::vec_perm_indices_c_tests): Declare. - * selftest-run-tests.c (selftest::run_tests): Call it. - * vector-builder.h (vector_builder::operator ==): New function. - (vector_builder::operator !=): Likewise. - * vec-perm-indices.h (vec_perm_indices::series_p): Declare. - (vec_perm_indices::all_from_input_p): New function. - * vec-perm-indices.c (vec_perm_indices::series_p): Likewise. - (test_vec_perm_12, selftest::vec_perm_indices_c_tests): Likewise. - * fold-const.c (fold_ternary_loc): Use tree_to_vec_perm_builder - instead of reading the VECTOR_CST directly. Detect whether both - vector inputs are the same before constructing the vec_perm_indices, - and update the number of inputs argument accordingly. Use the - utility functions added above. Only construct sel2 if we need to. - -2018-01-02 Richard Sandiford - - * optabs.c (expand_vec_perm_var): Use an explicit encoding for - the broadcast of the low byte. - (expand_mult_highpart): Use an explicit encoding for the permutes. - * optabs-query.c (can_mult_highpart_p): Likewise. - * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise. - * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. - (vectorizable_bswap): Likewise. - * tree-vect-data-refs.c (vect_grouped_store_supported): Use an - explicit encoding for the power-of-2 permutes. - (vect_permute_store_chain): Likewise. - (vect_grouped_load_supported): Likewise. - (vect_permute_load_chain): Likewise. - -2018-01-02 Richard Sandiford - - * vec-perm-indices.h (vec_perm_indices_to_tree): Declare. - * vec-perm-indices.c (vec_perm_indices_to_tree): New function. - * tree-ssa-forwprop.c (simplify_vector_constructor): Use it. - * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise. - * tree-vect-stmts.c (vectorizable_bswap): Likewise. - (vect_gen_perm_mask_any): Likewise. - -2018-01-02 Richard Sandiford - - * int-vector-builder.h: New file. - * vec-perm-indices.h: Include int-vector-builder.h. - (vec_perm_indices): Redefine as an int_vector_builder. - (auto_vec_perm_indices): Delete. - (vec_perm_builder): Redefine as a stand-alone class. - (vec_perm_indices::vec_perm_indices): New function. - (vec_perm_indices::clamp): Likewise. - * vec-perm-indices.c: Include fold-const.h and tree-vector-builder.h. - (vec_perm_indices::new_vector): New function. - (vec_perm_indices::new_expanded_vector): Update for new - vec_perm_indices class. - (vec_perm_indices::rotate_inputs): New function. - (vec_perm_indices::all_in_range_p): Operate directly on the - encoded form, without computing elided elements. - (tree_to_vec_perm_builder): Operate directly on the VECTOR_CST - encoding. Update for new vec_perm_indices class. - * optabs.c (expand_vec_perm_const): Create a vec_perm_indices for - the given vec_perm_builder. - (expand_vec_perm_var): Update vec_perm_builder constructor. - (expand_mult_highpart): Use vec_perm_builder instead of - auto_vec_perm_indices. - * optabs-query.c (can_mult_highpart_p): Use vec_perm_builder and - vec_perm_indices instead of auto_vec_perm_indices. Use a single - or double series encoding as appropriate. - * fold-const.c (fold_ternary_loc): Use vec_perm_builder and - vec_perm_indices instead of auto_vec_perm_indices. - * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. - * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. - (vect_permute_store_chain): Likewise. - (vect_grouped_load_supported): Likewise. - (vect_permute_load_chain): Likewise. - (vect_shift_permute_load_chain): Likewise. - * tree-vect-slp.c (vect_build_slp_tree_1): Likewise. - (vect_transform_slp_perm_load): Likewise. - (vect_schedule_slp_instance): Likewise. - * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. - (vectorizable_mask_load_store): Likewise. - (vectorizable_bswap): Likewise. - (vectorizable_store): Likewise. - (vectorizable_load): Likewise. - * tree-vect-generic.c (lower_vec_perm): Use vec_perm_builder and - vec_perm_indices instead of auto_vec_perm_indices. Use - tree_to_vec_perm_builder to read the vector from a tree. - * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Take a - vec_perm_builder instead of a vec_perm_indices. - (have_whole_vector_shift): Use vec_perm_builder and - vec_perm_indices instead of auto_vec_perm_indices. Leave the - truncation to calc_vec_perm_mask_for_shift. - (vect_create_epilog_for_reduction): Likewise. - * config/aarch64/aarch64.c (expand_vec_perm_d::perm): Change - from auto_vec_perm_indices to vec_perm_indices. - (aarch64_expand_vec_perm_const_1): Use rotate_inputs on d.perm - instead of changing individual elements. - (aarch64_vectorize_vec_perm_const): Use new_vector to install - the vector in d.perm. - * config/arm/arm.c (expand_vec_perm_d::perm): Change - from auto_vec_perm_indices to vec_perm_indices. - (arm_expand_vec_perm_const_1): Use rotate_inputs on d.perm - instead of changing individual elements. - (arm_vectorize_vec_perm_const): Use new_vector to install - the vector in d.perm. - * config/powerpcspe/powerpcspe.c (rs6000_expand_extract_even): - Update vec_perm_builder constructor. - (rs6000_expand_interleave): Likewise. - * config/rs6000/rs6000.c (rs6000_expand_extract_even): Likewise. - (rs6000_expand_interleave): Likewise. - -2018-01-02 Richard Sandiford - - * optabs-query.c (can_vec_perm_var_p): Check whether lowering - to qimode could truncate the indices. - * optabs.c (expand_vec_perm_var): Likewise. - -2018-01-02 Richard Sandiford - - * Makefile.in (OBJS): Add vec-perm-indices.o. - * vec-perm-indices.h: New file. - * vec-perm-indices.c: Likewise. - * target.h (vec_perm_indices): Replace with a forward class - declaration. - (auto_vec_perm_indices): Move to vec-perm-indices.h. - * optabs.h: Include vec-perm-indices.h. - (expand_vec_perm): Delete. - (selector_fits_mode_p, expand_vec_perm_var): Declare. - (expand_vec_perm_const): Declare. - * target.def (vec_perm_const_ok): Replace with... - (vec_perm_const): ...this new hook. - * doc/tm.texi.in (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Replace with... - (TARGET_VECTORIZE_VEC_PERM_CONST): ...this new hook. - * doc/tm.texi: Regenerate. - * optabs.def (vec_perm_const): Delete. - * doc/md.texi (vec_perm_const): Likewise. - (vec_perm): Refer to TARGET_VECTORIZE_VEC_PERM_CONST. - * expr.c (expand_expr_real_2): Use expand_vec_perm_const rather than - expand_vec_perm for constant permutation vectors. Assert that - the mode of variable permutation vectors is the integer equivalent - of the mode that is being permuted. - * optabs-query.h (selector_fits_mode_p): Declare. - * optabs-query.c: Include vec-perm-indices.h. - (selector_fits_mode_p): New function. - (can_vec_perm_const_p): Check whether targetm.vectorize.vec_perm_const - is defined, instead of checking whether the vec_perm_const_optab - exists. Use targetm.vectorize.vec_perm_const instead of - targetm.vectorize.vec_perm_const_ok. Check whether the indices - fit in the vector mode before using a variable permute. - * optabs.c (shift_amt_for_vec_perm_mask): Take a mode and a - vec_perm_indices instead of an rtx. - (expand_vec_perm): Replace with... - (expand_vec_perm_const): ...this new function. Take the selector - as a vec_perm_indices rather than an rtx. Also take the mode of - the selector. Update call to shift_amt_for_vec_perm_mask. - Use targetm.vectorize.vec_perm_const instead of vec_perm_const_optab. - Use vec_perm_indices::new_expanded_vector to expand the original - selector into bytes. Check whether the indices fit in the vector - mode before using a variable permute. - (expand_vec_perm_var): Make global. - (expand_mult_highpart): Use expand_vec_perm_const. - * fold-const.c: Includes vec-perm-indices.h. - * tree-ssa-forwprop.c: Likewise. - * tree-vect-data-refs.c: Likewise. - * tree-vect-generic.c: Likewise. - * tree-vect-loop.c: Likewise. - * tree-vect-slp.c: Likewise. - * tree-vect-stmts.c: Likewise. - * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm_const): - Delete. - * config/aarch64/aarch64-simd.md (vec_perm_const): Delete. - * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const) - (aarch64_vectorize_vec_perm_const_ok): Fuse into... - (aarch64_vectorize_vec_perm_const): ...this new function. - (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete. - (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. - * config/arm/arm-protos.h (arm_expand_vec_perm_const): Delete. - * config/arm/vec-common.md (vec_perm_const): Delete. - * config/arm/arm.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete. - (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. - (arm_expand_vec_perm_const, arm_vectorize_vec_perm_const_ok): Merge - into... - (arm_vectorize_vec_perm_const): ...this new function. Explicitly - check for NEON modes. - * config/i386/i386-protos.h (ix86_expand_vec_perm_const): Delete. - * config/i386/sse.md (VEC_PERM_CONST, vec_perm_const): Delete. - * config/i386/i386.c (ix86_expand_vec_perm_const_1): Update comment. - (ix86_expand_vec_perm_const, ix86_vectorize_vec_perm_const_ok): Merge - into... - (ix86_vectorize_vec_perm_const): ...this new function. Incorporate - the old VEC_PERM_CONST conditions. - * config/ia64/ia64-protos.h (ia64_expand_vec_perm_const): Delete. - * config/ia64/vect.md (vec_perm_const): Delete. - * config/ia64/ia64.c (ia64_expand_vec_perm_const) - (ia64_vectorize_vec_perm_const_ok): Merge into... - (ia64_vectorize_vec_perm_const): ...this new function. - * config/mips/loongson.md (vec_perm_const): Delete. - * config/mips/mips-msa.md (vec_perm_const): Delete. - * config/mips/mips-ps-3d.md (vec_perm_constv2sf): Delete. - * config/mips/mips-protos.h (mips_expand_vec_perm_const): Delete. - * config/mips/mips.c (mips_expand_vec_perm_const) - (mips_vectorize_vec_perm_const_ok): Merge into... - (mips_vectorize_vec_perm_const): ...this new function. - * config/powerpcspe/altivec.md (vec_perm_constv16qi): Delete. - * config/powerpcspe/paired.md (vec_perm_constv2sf): Delete. - * config/powerpcspe/spe.md (vec_perm_constv2si): Delete. - * config/powerpcspe/vsx.md (vec_perm_const): Delete. - * config/powerpcspe/powerpcspe-protos.h (altivec_expand_vec_perm_const) - (rs6000_expand_vec_perm_const): Delete. - * config/powerpcspe/powerpcspe.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): - Delete. - (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. - (altivec_expand_vec_perm_const_le): Take each operand individually. - Operate on constant selectors rather than rtxes. - (altivec_expand_vec_perm_const): Likewise. Update call to - altivec_expand_vec_perm_const_le. - (rs6000_expand_vec_perm_const): Delete. - (rs6000_vectorize_vec_perm_const_ok): Delete. - (rs6000_vectorize_vec_perm_const): New function. - (rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of - an element count and rtx array. - (rs6000_expand_extract_even): Update call accordingly. - (rs6000_expand_interleave): Likewise. - * config/rs6000/altivec.md (vec_perm_constv16qi): Delete. - * config/rs6000/paired.md (vec_perm_constv2sf): Delete. - * config/rs6000/vsx.md (vec_perm_const): Delete. - * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_const) - (rs6000_expand_vec_perm_const): Delete. - * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete. - (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. - (altivec_expand_vec_perm_const_le): Take each operand individually. - Operate on constant selectors rather than rtxes. - (altivec_expand_vec_perm_const): Likewise. Update call to - altivec_expand_vec_perm_const_le. - (rs6000_expand_vec_perm_const): Delete. - (rs6000_vectorize_vec_perm_const_ok): Delete. - (rs6000_vectorize_vec_perm_const): New function. Remove stray - reference to the SPE evmerge intructions. - (rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of - an element count and rtx array. - (rs6000_expand_extract_even): Update call accordingly. - (rs6000_expand_interleave): Likewise. - * config/sparc/sparc.md (vec_perm_constv8qi): Delete in favor of... - * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): ...this - new function. - (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. - -2018-01-02 Richard Sandiford - - * optabs.c (expand_vec_perm_1): Assert that SEL has an integer - vector mode and that that mode matches the mode of the data - being permuted. - (expand_vec_perm): Split handling of non-CONST_VECTOR selectors - out into expand_vec_perm_var. Do all CONST_VECTOR handling here, - directly using expand_vec_perm_1 when forcing selectors into - registers. - (expand_vec_perm_var): New function, split out from expand_vec_perm. - -2018-01-02 Richard Sandiford - - * optabs-query.h (can_vec_perm_p): Delete. - (can_vec_perm_var_p, can_vec_perm_const_p): Declare. - * optabs-query.c (can_vec_perm_p): Split into... - (can_vec_perm_var_p, can_vec_perm_const_p): ...these two functions. - (can_mult_highpart_p): Use can_vec_perm_const_p to test whether a - particular selector is valid. - * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. - * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. - (vect_grouped_load_supported): Likewise. - (vect_shift_permute_load_chain): Likewise. - * tree-vect-slp.c (vect_build_slp_tree_1): Likewise. - (vect_transform_slp_perm_load): Likewise. - * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. - (vectorizable_bswap): Likewise. - (vect_gen_perm_mask_checked): Likewise. - * fold-const.c (fold_ternary_loc): Likewise. Don't take - implementations of variable permutation vectors into account - when deciding which selector to use. - * tree-vect-loop.c (have_whole_vector_shift): Don't check whether - vec_perm_const_optab is supported; instead use can_vec_perm_const_p - with a false third argument. - * tree-vect-generic.c (lower_vec_perm): Use can_vec_perm_const_p - to test whether the constant selector is valid and can_vec_perm_var_p - to test whether a variable selector is valid. - -2018-01-02 Richard Sandiford - - * optabs-query.h (can_vec_perm_p): Take a const vec_perm_indices *. - * optabs-query.c (can_vec_perm_p): Likewise. - * fold-const.c (fold_vec_perm): Take a const vec_perm_indices & - instead of vec_perm_indices. - * tree-vectorizer.h (vect_gen_perm_mask_any): Likewise, - (vect_gen_perm_mask_checked): Likewise, - * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise, - (vect_gen_perm_mask_checked): Likewise, - -2018-01-02 Richard Sandiford - - * optabs-query.h (qimode_for_vec_perm): Declare. - * optabs-query.c (can_vec_perm_p): Split out qimode search to... - (qimode_for_vec_perm): ...this new function. - * optabs.c (expand_vec_perm): Use qimode_for_vec_perm. - -2018-01-02 Aaron Sawdey - - * rtlanal.c (canonicalize_condition): Return 0 if final rtx - does not have a conditional at the top. - -2018-01-02 Richard Biener - - * ipa-inline.c (big_speedup_p): Fix expression. - -2018-01-02 Jan Hubicka - - PR target/81616 - * config/i386/x86-tune-costs.h: Increase cost of integer load costs - for generic 4->6. - -2018-01-02 Jan Hubicka - - PR target/81616 - Generic tuning. - * x86-tune-costs.h (generic_cost): Reduce cost of FDIV 20->17, - cost of sqrt 20->14, DIVSS 18->13, DIVSD 32->17, SQRtSS 30->14 - and SQRTsD 58->18, cond_not_taken_branch_cost. 2->1. Increase - cond_taken_branch_cost 3->4. - -2018-01-01 Jakub Jelinek - - PR tree-optimization/83581 - * tree-loop-distribution.c (pass_loop_distribution::execute): Return - TODO_cleanup_cfg if any changes have been made. - - PR middle-end/83608 - * expr.c (store_expr_with_bounds): Use simplify_gen_subreg instead of - convert_modes if target mode has the right side, but different mode - class. - - PR middle-end/83609 - * expr.c (expand_assignment): Fix up a typo in simplify_gen_subreg - last argument when extracting from CONCAT. If either from_real or - from_imag is NULL, use expansion through memory. If result is not - a CONCAT and simplify_gen_subreg fails, try to simplify_gen_subreg - the parts directly to inner mode, if even that fails, use expansion - through memory. - - PR middle-end/83623 - * expmed.c (expand_shift_1): For 2-byte rotates by BITS_PER_UNIT, - check for bswap in mode rather than HImode and use that in expand_unop - too. -Copyright (C) 2018 Free Software Foundation, Inc. +Copyright (C) 2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ChangeLog-2018 gcc-snapshot-20190102/=unpacked-tar1=/gcc/ChangeLog-2018 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ChangeLog-2018 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ChangeLog-2018 2019-01-02 08:05:17.000000000 +0000 @@ -0,0 +1,36303 @@ +2018-12-31 Max Filippov + + PR target/86814 + * config/xtensa/xtensa.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): + Define to speculation_safe_value_not_needed. + +2018-12-31 Martin Liska + + * predict.c (set_even_probabilities): Include also + unlikely_count in calculation. + (combine_predictions_for_bb): Consider also HOT and + COLD labels predictions. + * predict.def (PRED_HOT_LABEL): Move it just after + __builtin_expect_with_probability predictor. + (PRED_COLD_LABEL): Likewise. + +2018-12-30 Jan Hubicka + + * x86-tune.def: Enable inter_unit_moves_to_vec for generic. + +2018-12-30 Martin Sebor + Jeff Law + + * gimple-fold.c (get_range_strlen): Minor logic cleanup. Add comments + on code's intent. + + * gimple-fold.c (strlen_range_kind): New enum. + (get_range_strlen): Update signature to use strlen_range_kind + instead of type+fuzzy. + (get_range_strlen_tree): Update signature to use + strlen_range_kind instead of type+fuzzy. Pass rkind down to + get_range_strlen. Check the rkind enum value instead of + type+fuzzy. + (get_range_strlen): Similarly. + (get_maxval_strlen): Update signature to make NONSTR argument have + a default value and make static. Add asserts to ensure sanity of + arguments. Update calls to get_range_strlen. + (gimple_fold_builtin_strcpy): Update calls to get_maxval_strlen. + (gimple_fold_builtin_strcat, gimple_fold_builtin_fputs): Similarly. + (gimple_fold_builtin_memory_chk): Similarly. + (gimple_fold_builtin_stxcpy_chk): Similarly. + (gimple_fold_builtin_snprintf_chk): Similarly. + (gimple_fold_builtin_sprintf, gimple_fold_builtin_snprintf): Similarly. + * gimple-fold.h (get_maxval_strlen): Delete prototype. + +2018-12-29 Jozef Lawrynowicz + + * config/msp430/msp430.c (msp430_attr): Warn when the critical and + interrupt function attributes are used together. + * gcc/doc/extend.texi: Update documentation on the critical attribute. + +2018-12-29 John David Anglin + + * config.gcc (hppa*64*-*-linux*): Add pa/t-pa to tmake_file. Define + d_target_objs. + (hppa*-*-openbsd*): Likewise. + (hppa[12]*-*-hpux10*): Likewise. + (hppa*64*-*-hpux11*): Likewise. + (hppa[12]*-*-hpux11*): Likewise. + +2018-12-29 Jakub Jelinek + + PR ipa/88586 + * omp-low.c (lower_omp_task_reductions): Set DECL_CONTEXT on field + and ifield. Update TYPE_ALIGN from alignment of field, ifield or + bfield. + +2018-12-28 Uros Bizjak + + * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add + sil, dil, bpl and spl aliases. + +2018-12-28 Martin Sebor + + * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Avoid + undesirable warning. + +2018-12-28 Thomas Schwinge + + * omp-expand.c (expand_omp_target): Restructure OpenACC vs. OpenMP + code paths. Update for libgomp OpenACC entry points change. + +2018-12-28 Thomas Schwinge + Julian Brown + + * gimplify.c (gimplify_scan_omp_clauses): Fix known_eq typo/bug. + +2018-12-27 Jan Hubicka + + * ipa-devirt.c (polymorphic_call_target_d): Add n_odr_types. + (polymorphic_call_target_hasher::hash): Hash it. + (polymorphic_call_target_hasher::equal): Compare it. + (possible_polymorphic_call_targets): Set it. + * tree.c (free_lang_data): Rebuild type inheritance graph even on + non-LTO path. + +2018-12-27 Martin Liska + + PR gcov-profile/88225 + * gcov.c(source_info::get_functions_at_location): + Use newly added line_to_function_map. + (source_info::add_function): New. + (output_json_intermediate_file): Use a pointer return + type for get_functions_at_location. + (process_all_functions): Use add_function instead + of direct push to a s->functions container. + (release_structures): Release ident_to_fn. + (read_graph_file): Register function into ident_to_fn. + (read_count_file): Use the map. + (output_lines): Handle pointer return type of + get_functions_at_location. + +2018-12-27 Martin Liska + + * builtins.c (expand_movstr): Compare with RETURN_BEGIN. + * expr.c (move_by_pieces): Likewise. + (store_by_pieces): Likewise. + (store_expr): Fix GNU coding style. + +2018-12-26 Andrew Pinski + + * config/aarch64/aarch64-cores.def (octeontx): New. + (octeontx81): Likewise. + (octeontx83): Likewise. + * config/aarch64/aarch64-tune.md: Regenerate. + * doc/invoke.texi (AArch64 Options) [mtune]: Add octeontx, octeontx81 + and octeontx83. + +2018-12-24 Martin Sebor + + * gimple-fold.c (get_range_strlen_tree): Factored out of + get_range_strlen. Minor comment updates/additions. Assert + argument is not a simple SSA_NAME. + (get_range_strlen): Call get_range_strlen_tree as appropriate. + Minor comment updates/additions. + +2018-12-24 Jan Hubicka + + * ipa-devirt.c (dump_targets): Cap number of targets printed. + (dump_possible_polymorphic_call_targets): Add verbose parameter. + (ipa_devirt): Use it. + * ipa-utils.h (dump_possible_polymorphic_call_targets): Add verbose + parametrs. + +2018-12-24 Jan Hubicka + + PR lto/88140 + * tree.c (fld_simplified_type): Temporarily disable array + simplification. + +2018-12-24 Jan Hubicka + + * lto-symtab.c (lto_symtab_merge_decls_2): Do not report ODR violations + for method whose basetype was already reported. + * ipa-devirt.c (odr_type_violation_reported_p): New. + * ipa-utils.h (odr_type_violation_reported_p): Declare. + +2018-12-24 Iain Sandoe + + * configure.ac (dwarf2_debug_line): Check for the debug_line + section using otool when there’s no objdump available. + * configure: Regenerate. + +2018-12-24 Jan Hubicka + + * ipa-utils.c (ipa_merge_profiles): Fix updating of fnsummary; + also handle rescaling of mismatched profiles. + * ipa-fnsummary.c (analyze_function): Handle speculative edges. + +2018-12-23 Martin Sebor + Jeff Law + + * builtins.h (c_strlen_data): Add new fields and comments. + * builtins.c (unterminated_array): Change field reference from + "len" to "minlen" in c_strlen_data instance. + * gimple-fold.c (get_range_strlen): Likewise. + * gimple-ssa-sprintf.c (get_string_length): Likewise. + + * builtins.c (unterminated_array): Rename "data" to "lendata". Fix + a few comments. + (expand_builtin_strnlen, expand_builtin_stpcpy_1): Likewise. + (fold_builtin_strlen): Likewise. + * gimple-fold.c (get_range_strlen): Likewise. Also rename a couple + instances of "type" to "optype" and "arg" to "fld". + + * builtins.c (unterminated_array): Use empty brace initialization + for c_strlen_data. + (c_strlen, expand_builtin_strnlen): Likewise. + (expand_builtin_stpcpy_1, fold_builtin_strlen): Likewise. + * gimple-fold.c (get_range_strlen): Likewise. + (gimple_fold_builtin_stpcpy): Likewise. + * gimple-ssa-sprintf.c (get_string_length): Likewise. + +2018-12-23 Alan Modra + + PR 88346 + * config/rs6000/rs6000.h (ASM_CPU_SPEC): Correct %e message. Handle + -mcpu=rs64, not -mcpu=rs64a. Handle -mcpu=powerpc64 and -mcpu=titan. + * config/rs6000/driver-rs6000.c (asm_names): Similarly. + * config/rs6000/aix71.h (ASM_CPU_SPEC): Delete %e message. Handle + -mcpu=rs64, not -mcpu=rs64a. + * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise. + +2018-12-23 Iain Sandoe + + * lto-wrapper.c (tool_cleanup): Don’t report ficticious temp files. + (debug_objcopy): Improve temp filenames. Append the early + debug objects to the outfiles. Remove the phase prelinking the + early debug. Emit the early debug filenames for ld. + +2018-12-23 Iain Sandoe + + * config/i386/darwin.h (TARGET_ASM_OUTPUT_IDENT): New. + +2018-12-23 Iain Sandoe + + * collect2.c (maybe_run_lto_and_relink): Don’t say we have a temp file + unless we actually did some LTO. + (has_lto_section, is_lto_object_file): New. + (maybe_lto_object_file): Remove. + (scan_prog_file): Use is_lto_object_file() instead of scanning the + output of nm. + +2018-12-23 Iain Sandoe + + * collect2.c (main): Parse the output file early so we can make nicer + temp names. Respond to “-save-temps” in the GCC OPTIONS. + (maybe_unlink): Don’t print “[Leaving…”] for files we never created + and don’t exist. + +2018-12-23 Iain Sandoe + + * collect2.c (main): Combine flags from both the command line and + COLLECT_GCC_OPTIONS to determine the set in force + +2018-12-21 Jan Hubicka + + * ipa-utils.c (ipa_merge_profiles): Recompute summaries. + +2018-12-21 Jakub Jelinek + + PR middle-end/85594 + PR middle-end/88553 + * omp-expand.c (extract_omp_for_update_vars): Regimplify the condition + if needed. + (expand_omp_for_generic): Don't clobber t temporary for ordered loops. + +2018-12-15 Jan Hubicka + + PR ipa/88561 + * ipa-polymorphic-call.c + (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Handle + arguments of thunks correctly. + (ipa_polymorphic_call_context::get_dynamic_context): Be ready for + NULL instance pinter. + * lto-cgraph.c (lto_output_node): Always stream thunk info. + +2018-12-21 Andreas Krebbel + + * config/s390/vector.md ("floatv2div2df2", "floatunsv2div2df2") + ("fix_truncv2dfv2di2", "fixuns_truncv2dfv2di2"): New pattern + definitions. + +2018-12-21 Eric Botcazou + + PR rtl-optimization/87727 + * combine.c (cant_combine_insn_p): On a LEAF_REGISTERS target, combine + again moves from leaf hard registers. + + * final.c (final_scan_insn_1) : Minor tweak. + +2018-12-21 Jakub Jelinek + + PR target/88522 + * config/i386/sse.md (*avx512pf_gatherpfsf_mask, + *avx512pf_gatherpfdf_mask, *avx512pf_scatterpfsf_mask, + *avx512pf_scatterpfdf_mask): Use %X5 instead of %5 for + -masm=intel. + (gatherq_mode): Remove mode iterator. + (*avx512f_gathersi, *avx512f_gathersi_2): Use X instead + of . + (*avx512f_gatherdi): Use X instead of . + (*avx512f_gatherdi_2, *avx512f_scattersi, + *avx512f_scatterdi): Use %X5 for -masm=intel. + + PR rtl-optimization/88563 + * expr.c (expand_expr_real_2) : Swap innermode + and mode arguments to convert_modes. Likewise swap mode and word_mode + arguments. Handle both arguments with VOIDmode before convert_modes + of one of them. Formatting fixes. + +2018-12-21 Uros Bizjak + + PR target/88556 + * internal-fn.def (COSH): New. + (SINH): Ditto. + (TANH): Ditto. + * optabs.def (cosh_optab): New. + (sinh_optab): Ditto. + (tanh_optab): Ditto. + * config/i386/i386-protos.h (ix86_emit_i387_sinh): New prototype. + (ix86_emit_i387_cosh): Ditto. + (ix86_emit_i387_tanh): Ditto. + * config/i386/i386.c (ix86_emit_i387_sinh): New function. + (ix86_emit_i387_cosh): Ditto. + (ix86_emit_i387_tanh): Ditto. + * config/i386/i386.md (sinhxf2): New expander. + (sinh2): Ditto. + (coshxf2): Ditto. + (cosh2): Ditto. + (tanhxf2): Ditto. + (tanh2): Ditto. + +2018-12-21 Jakub Jelinek + + PR target/88547 + * config/i386/i386.c (ix86_expand_int_sse_cmp): Optimize + x > y ? 0 : -1 into min (x, y) == x ? -1 : 0. + +2018-12-21 Jan Beulich + + * config/i386/sse.md (vaesdec_, vaesdeclast_): Allow + memory input. + +2018-12-21 Alexandre Oliva + + * config.gcc (tmake_file): Add name to tmake_file for + each @name in --with-multilib-list on arm-*-* targets. + * doc/install.texi (with-multilib-list): Document it. + +2018-12-21 Jakub Jelinek + + * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use + DR_TARGET_ALIGNMENT on dr_info rather than dr. Spelling fixes. + +2018-12-20 Joern Rennecke + + * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Don't do + versioning for data accesses with misaligned step. + +2018-12-20 H.J. Lu + + PR c/51628 + * doc/invoke.texi: Document -Wno-address-of-packed-member. + +2018-12-20 Vladimir Makarov + + PR target/88457 + * ira-color.c (fast_allocation): Choose the best cost hard reg. + +2018-12-20 Richard Sandiford + + * config/aarch64/iterators.md (SVE_INT_UNARY, fp_int_op): Add abs. + (SVE_FP_UNARY): Sort. + +2018-12-20 Richard Sandiford + + * config/aarch64/aarch64-sve.md (*cond__4): Use + sve_fmla_op rather than sve_fmad_op for the movprfx alternative. + +2018-12-20 Martin Jambor + + PR ipa/88214 + * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Assert that + ptr is a pointer. + +2018-12-20 Richard Biener + + PR tree-optimization/84362 + * tree-ssa-loop-im.c: Include alias.h, builtins.h and tree-dfa.h. + (struct im_mem_ref): add ref_canonical flag. + (struct mem_ref_hasher): Use ao_ref as compare_type. + (mem_ref_hasher::equal): Adjust and add variant comparing ao_ref + parts. + (mem_ref_alloc): Take ao_ref parameter, initialize ref_canonical + member. + (gather_mem_refs_stmt): Set up ao_ref early and do the lookup + using it. If we have non-equal refs canonicalize the one + in the hashtable used for insertion. + (tree_ssa_lim_initialize): Adjust. + +2018-12-20 Jakub Jelinek + + PR target/88547 + * config/i386/i386.c (ix86_expand_sse_movcc): For maskcmp, try to + emit vpmovm2? instruction perhaps after knot?. Reorganize code + so that it doesn't have to test !maskcmp in almost every conditional. + +2018-12-20 Alan Modra + + * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Define. + +2018-12-19 Andreas Tobler + + * config.gcc: Enable TARGET_DEFAULT_ASYNC_UNWIND_TABLES on + aarch64*-*-freebsd* + +2018-12-19 Uros Bizjak + + * config/i386/i386.md (SWI1248_AVX512BWDQ_64): Rename from + SWI1248_AVX512BWDQ2_64. Unconditionally enable HImode. + (*cmp_ccz_1): Emit kortest instead of ktest insn. + Use SWI1248_AVX512BWDQ_64 mode iterator and enable only for + TARGET_AVX512F. + +2018-12-19 Thomas Preud'homme + + * config/arm/elf.h: Update comment about condition that need to + match with libgcc/config/arm/lib1funcs.S to also include + libgcc/config/arm/t-arm. + * doc/sourcebuild.texi (output-exists, output-exists-not): Rename + subsubsection these directives are in to "Check for output files". + Move scan-symbol to that section and add to it new scan-symbol-not + directive. + +2018-12-19 Tom de Vries + + * config/nvptx/nvptx.c (PTX_CTA_SIZE): Define. + +2018-12-19 Tom de Vries + + * omp-offload.c (oacc_fn_attrib_level): Remove static. + * omp-offload.h (oacc_fn_attrib_level): Declare. + +2018-12-19 Tom de Vries + + * omp-offload.c (oacc_get_default_dim): New function. + * omp-offload.h (oacc_get_default_dim): Declare. + +2018-12-19 David Malcolm + + PR c++/87504 + * gcc-rich-location.c + (maybe_range_label_for_tree_type_mismatch::get_text): Move here from + c/c-typeck.c. + (binary_op_rich_location::binary_op_rich_location): New ctor. + (binary_op_rich_location::use_operator_loc_p): New function. + * gcc-rich-location.h + (class maybe_range_label_for_tree_type_mismatch)): Move here from + c/c-typeck.c. + (struct op_location_t): New forward decl. + (class binary_op_rich_location): New class. + * tree.h (struct op_location_t): New struct. + +2018-12-19 David Malcolm + + PR c++/43064 + PR c++/43486 + * convert.c: Include "selftest.h". + (preserve_any_location_wrapper): New function. + (convert_to_pointer_maybe_fold): Update to handle location + wrappers. + (convert_to_real_maybe_fold): Likewise. + (convert_to_integer_1): Strip expr when using TREE_OVERFLOW. + Handle location wrappers when checking for INTEGER_CST. + (convert_to_integer_maybe_fold): Update to handle location + wrappers. + (convert_to_complex_maybe_fold): Likewise. + (selftest::test_convert_to_integer_maybe_fold): New functions. + (selftest::convert_c_tests): New function. + * convert.h (preserve_any_location_wrapper): New decl. + * fold-const.c (size_binop_loc): Strip location wrappers when + using TREE_OVERFLOW. + (operand_equal_p): Strip any location wrappers. + (integer_valued_real_p): Strip any location wrapper. + * selftest-run-tests.c (selftest::run_tests): Call + selftest::convert_c_tests. + * selftest.h (selftest::convert_c_tests): New decl. + * tree.c (build_complex): Assert that REAL and IMAG are constants. + (integer_zerop): Look through location wrappers. + (integer_onep): Likewise. + (integer_each_onep): Likewise. + (integer_all_onesp): Likewise. + (integer_minus_onep): Likewise. + (integer_pow2p): Likewise. + (integer_nonzerop): Likewise. + (integer_truep): Likewise. + (fixed_zerop): Likewise. + (real_zerop): Likewise. + (real_onep): Likewise. + (real_minus_onep): Likewise. + (tree_int_cst_equal): Likewise. + (simple_cst_equal): Treat location wrappers with non-equal source + locations as being unequal. + (uniform_integer_cst_p): Look through location wrappers. + (maybe_wrap_with_location): Don't create wrappers if any + auto_suppress_location_wrappers are active. + (suppress_location_wrappers): New variable. + (selftest::test_predicates): New test. + (selftest::tree_c_tests): Call it. + * tree.h (CONSTANT_CLASS_OR_WRAPPER_P): New macro. + (suppress_location_wrappers): New decl. + (class auto_suppress_location_wrappers): New class. + +2018-12-19 Paul A. Clarke + + * config/rs6000/tmmintrin.h (_mm_hadds_epi16): Vector lanes swapped. + (_mm_hsub_epi32): Likewise. + (_mm_shuffle_epi8): Fix reversed interpretation of parameters. + (_mm_shuffle_pi8): Likewise. + (_mm_addubs_pi16): Likewise. + +2018-12-19 Thomas Preud'homme + + * config/arm/arm.h (TARGET_HARD_FLOAT): Restrict to TARGET_32BIT + targets. + * config/arm/arm.c (output_return_instruction): Only check + TARGET_HARD_FLOAT to decide whether FP instructions are available. + +2018-12-19 Tom de Vries + + * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization + dump files): Add offload-rtl. + +2018-12-19 Segher Boessenkool + + PR target/88213 + * config/rs6000/vsx.md (*vsx_extract___load): + Require TARGET_POWERPC64. + +2018-12-19 Richard Biener + + PR tree-optimization/88533 + Revert + 2018-04-30 Richard Biener + + PR tree-optimization/28364 + PR tree-optimization/85275 + * tree-ssa-loop-ch.c (ch_base::copy_headers): Stop after + copying first exit test. + + * tree-ssa-loop-ch.c: Include tree-phinodes.h and + ssa-iterators.h. + (should_duplicate_loop_header_p): Track whether stmt compute + loop invariants or values based on IVs. Apart from the + original loop header only duplicate blocks with exit tests + that are based on IVs or invariants. + +2018-12-19 Tom de Vries + + * config/nvptx/nvptx.c (nvptx_gen_shared_bcast, shared_prop_gen) + (nvptx_goacc_expand_accel_var): Use MAX and ROUND_UP. + (nvptx_assemble_value, nvptx_output_skip): Use MIN. + (nvptx_shared_propagate, nvptx_single, nvptx_expand_shared_addr): Use + MAX. + +2018-12-19 Tom de Vries + + * config/nvptx/nvptx.c (nvptx_gen_wcast): Rename as + nvptx_gen_warp_bcast. + (nvptx_gen_wcast): Rename to nvptx_gen_shared_bcast, add bool + vector argument, and update call to nvptx_gen_shared_bcast. + (propagator_fn): Add bool argument. + (nvptx_propagate): New bool argument, pass bool argument to fn. + (vprop_gen): Rename to warp_prop_gen, update call to + nvptx_gen_warp_bcast. + (nvptx_vpropagate): Rename to nvptx_warp_propagate, update call to + nvptx_propagate. + (wprop_gen): Rename to shared_prop_gen, update call to + nvptx_gen_shared_bcast. + (nvptx_wpropagate): Rename to nvptx_shared_propagate, update call + to nvptx_propagate. + (nvptx_wsync): Rename to nvptx_cta_sync. + (nvptx_single): Update calls to nvptx_gen_warp_bcast, + nvptx_gen_shared_bcast and nvptx_cta_sync. + (nvptx_process_pars): Likewise. + (write_worker_buffer): Rename as write_shared_buffer. + (nvptx_file_end): Update calls to write_shared_buffer. + (nvptx_expand_worker_addr): Rename as nvptx_expand_shared_addr. + (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr. + (nvptx_get_worker_red_addr): Rename as nvptx_get_shared_red_addr. + (nvptx_goacc_reduction_setup): Update call to + nvptx_get_shared_red_addr. + (nvptx_goacc_reduction_fini): Likewise. + (nvptx_goacc_reduction_teardown): Likewise. + +2018-12-19 Tom de Vries + + * config/nvptx/nvptx.c (worker_bcast_size): Rename as + oacc_bcast_size. + (worker_bcast_align): Rename as oacc_bcast_align. + (worker_bcast_sym): Rename as oacc_bcast_sym. + (nvptx_option_override): Update usage of oacc_bcast_*. + (struct wcast_data_t): Rename as broadcast_data_t. + (nvptx_gen_wcast): Update type of data argument and usage of + oacc_bcast_align. + (wprop_gen): Update type of data_ and usage of oacc_bcast_align. + (nvptx_wpropagate): Update type of data and usage of + oacc_bcast_{sym,size}. + (nvptx_single): Update type of data and usage of oacc_bcast_size. + (nvptx_file_end): Update usage of oacc_bcast_{sym,align,size}. + +2018-12-19 Tom de Vries + + * config/nvptx/nvptx.md (nvptx_barsync): Add and handle operand. + * config/nvptx/nvptx.c (nvptx_wsync): Update call to gen_nvptx_barsync. + +2018-12-19 Tom de Vries + + * config/nvptx/nvptx.c (nvptx_single): Always pass false to + nvptx_wsync. + (nvptx_process_pars): Likewise. + +2018-12-19 Tom de Vries + + * config/nvptx/nvptx.c (nvptx_previous_fndecl): Declare. + (nvptx_set_current_function): New function. + (TARGET_SET_CURRENT_FUNCTION): Define. + +2018-12-19 Shaokun Zhang + + * config/aarch64/aarch64-cores.def (tsv110): Fix architecture. This + part is really Armv8.2 with some permitted Armv8.4 extensions. + +2018-12-19 Jakub Jelinek + + PR target/88541 + * config/i386/vpclmulqdqintrin.h (_mm256_clmulepi64_epi128): Enable + for -mavx -mvpclmulqdq rather than just for -mavx512vl -mvpclmulqdq. + +2018-12-19 Alexandre Oliva + + PR testsuite/86153 + PR middle-end/83239 + * vr-values.c + (vr_values::vrp_evaluate_conditional_warnv_with_ops): Extend + simplification of overflow tests to cover cases in which we + can determine the result of the comparison. + +2018-12-19 Bin Cheng + + * auto-profile.c (afdo_indirect_call): Skip generating histogram + value if we can't find cgraph_node for then indirected callee. Save + profile_id of the cgraph_node in histogram value's first counter. + * value-prof.c (gimple_value_profile_transformations): Don't skip + for flag_auto_profile. + +2018-12-18 Vladimir Makarov + + PR rtl-optimization/87759 + * lra-assigns.c (lra_split_hard_reg_for): Recalculate + non_reload_pseudos. + +2018-12-18 Jakub Jelinek + + PR target/88464 + * config/i386/i386-builtin-types.def + (VOID_FTYPE_PDOUBLE_QI_V8SI_V4DF_INT, + VOID_FTYPE_PFLOAT_QI_V4DI_V8SF_INT, + VOID_FTYPE_PLONGLONG_QI_V8SI_V4DI_INT, + VOID_FTYPE_PINT_QI_V4DI_V8SI_INT, + VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT, + VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT, + VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT, + VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): New builtin types. + * config/i386/i386.c (enum ix86_builtins): Add + IX86_BUILTIN_SCATTERALTSIV4DF, IX86_BUILTIN_SCATTERALTDIV8SF, + IX86_BUILTIN_SCATTERALTSIV4DI, IX86_BUILTIN_SCATTERALTDIV8SI, + IX86_BUILTIN_SCATTERALTSIV2DF, IX86_BUILTIN_SCATTERALTDIV4SF, + IX86_BUILTIN_SCATTERALTSIV2DI and IX86_BUILTIN_SCATTERALTDIV4SI. + (ix86_init_mmx_sse_builtins): Fix up names of IX86_BUILTIN_GATHERALT*, + IX86_BUILTIN_GATHER3ALT* and IX86_BUILTIN_SCATTERALT* builtins to + match the IX86_BUILTIN codes. Build IX86_BUILTIN_SCATTERALTSIV4DF, + IX86_BUILTIN_SCATTERALTDIV8SF, IX86_BUILTIN_SCATTERALTSIV4DI, + IX86_BUILTIN_SCATTERALTDIV8SI, IX86_BUILTIN_SCATTERALTSIV2DF, + IX86_BUILTIN_SCATTERALTDIV4SF, IX86_BUILTIN_SCATTERALTSIV2DI and + IX86_BUILTIN_SCATTERALTDIV4SI decls. + (ix86_vectorize_builtin_scatter): Expand those new builtins. + +2018-12-18 Bill Schmidt + + * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions): + Describe when a typedef name can be used as the type specifier for + a vector type, and when it cannot. + +2018-12-18 Jozef Lawrynowicz + + * config/msp430/msp430.h: Define TARGET_VTABLE_ENTRY_ALIGN. + +2018-12-18 Jakub Jelinek + + PR target/88513 + PR target/88514 + * optabs.def (vec_pack_sbool_trunc_optab, vec_unpacks_sbool_hi_optab, + vec_unpacks_sbool_lo_optab): New optabs. + * optabs.c (expand_widen_pattern_expr): Use vec_unpacks_sbool_*_optab + and pass additional argument if both input and target have the same + scalar mode of VECTOR_BOOLEAN_TYPE_P vectors. + * expr.c (expand_expr_real_2) : Handle + VECTOR_BOOLEAN_TYPE_P pack where result has the same scalar mode + as the operands using vec_pack_sbool_trunc_optab. + * tree-vect-stmts.c (supportable_widening_operation): Use + vec_unpacks_sbool_{lo,hi}_optab for VECTOR_BOOLEAN_TYPE_P conversions + where both wider_vectype and vectype have the same scalar mode. + (supportable_narrowing_operation): Similarly use + vec_pack_sbool_trunc_optab if narrow_vectype and vectype have the same + scalar mode. + * config/i386/i386.c (ix86_get_builtin) + : Check for VECTOR_MODE_P + rather than non-VOIDmode. + * config/i386/sse.md (vec_pack_trunc_qi, vec_pack_trunc_): + Remove useless ()s around "register_operand", formatting fixes. + (vec_pack_sbool_trunc_qi, vec_unpacks_sbool_lo_qi, + vec_unpacks_sbool_hi_qi): New expanders. + * doc/md.texi (vec_pack_sbool_trunc_M, vec_unpacks_sbool_hi_M, + vec_unpacks_sbool_lo_M): Document. + +2018-12-18 Jozef Lawrynowicz + + * combine.c (update_rsp_from_reg_equal): Only look for the nonzero bits + of src in nonzero_bits_mode if the mode of src is MODE_INT and + HWI_COMPUTABLE. + (reg_nonzero_bits_for_combine): Add clarification to comment. + +2018-12-18 Wei Xiao + + * config/i386/driver-i386.c (host_detect_local_cpu): Detect cascadelake. + * config/i386/i386.c (fold_builtin_cpu): Handle cascadelake. + * doc/extend.texi: Add cascadelake. +2018-12-17 Peter Bergner + + PR target/87870 + * config/rs6000/vsx.md (nW): New mode iterator. + (vsx_mov_64bit): Use it. Remove redundant GPR 0/-1 alternative. + Update length attribute for (, ) alternative. + (vsx_mov_32bit): Likewise. + +2018-12-17 Tom de Vries + + * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH, + PTX_DEFAULT_RUNTIME_DIM): Move to the top of the file. + +2018-12-17 Tom de Vries + + * config/nvptx/nvptx.c (PTX_WARP_SIZE): Define. + (nvptx_simt_vf): Return PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH. + +2018-12-17 Tom de Vries + + * config/nvptx/nvptx.c (nvptx_single): Fix whitespace. + (nvptx_neuter_pars): Likewise. + +2018-12-17 Tom de Vries + + * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Work around Fortran + bug PR72741 by overriding dims parameter for routines. + +2018-12-17 Tom de Vries + + * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Rewrite using + predicate vars. + +2018-12-17 Steve Ellcey + + * config/aarch64/aarch64-protos.h (aarch64_use_simple_return_insn_p): + New prototype. + (aarch64_epilogue_uses): Ditto. + * config/aarch64/aarch64.c (aarch64_attribute_table): New array. + (aarch64_simd_decl_p): New function. + (aarch64_reg_save_mode): New function. + (aarch64_function_ok_for_sibcall): Check for simd calls. + (aarch64_layout_frame): Check for simd function. + (aarch64_gen_storewb_pair): Handle E_TFmode. + (aarch64_push_regs): Use aarch64_reg_save_mode to get mode. + (aarch64_gen_loadwb_pair): Handle E_TFmode. + (aarch64_pop_regs): Use aarch64_reg_save_mode to get mode. + (aarch64_gen_store_pair): Handle E_TFmode. + (aarch64_gen_load_pair): Ditto. + (aarch64_save_callee_saves): Handle different mode sizes. + (aarch64_restore_callee_saves): Ditto. + (aarch64_components_for_bb): Check for simd function. + (aarch64_epilogue_uses): New function. + (aarch64_process_components): Check for simd function. + (aarch64_expand_prologue): Ditto. + (aarch64_expand_epilogue): Ditto. + (aarch64_expand_call): Ditto. + (aarch64_use_simple_return_insn_p): New function. + (TARGET_ATTRIBUTE_TABLE): New define. + * config/aarch64/aarch64.h (EPILOGUE_USES): Redefine. + (FP_SIMD_SAVED_REGNUM_P): New macro. + * config/aarch64/aarch64.md (simple_return): New define_expand. + (load_pair_dw_tftf): New instruction. + (store_pair_dw_tftf): Ditto. + (loadwb_pair_): Ditto. + (storewb_pair_): Ditto. + +2018-12-17 Uros Bizjak + + PR target/88502 + * internal-fn.def (ACOSH): New. + (ASINH): Ditto. + (ATANH): Ditto. + * optabs.def (acosh_optab): New. + (asinh_optab): Ditto. + (atanh_optab): Ditto. + * config/i386/i386-protos.h (ix86_emit_i387_asinh): New prototype. + (ix86_emit_i387_acosh): Ditto. + (ix86_emit_i387_atanh): Ditto. + * config/i386/i386.c (ix86_emit_i387_asinh): New function. + (ix86_emit_i387_acosh): Ditto. + (ix86_emit_i387_atanh): Ditto. + * config/i386/i386.md (asinhxf2): New expander. + (asinh2): Ditto. + (acoshxf2): Ditto. + (acosh2): Ditto. + (atanhxf2): Ditto. + (atanh2): Ditto. + +2018-12-17 David Edelsohn + + * config.gcc (powerpc-ibm-aix6.*): Delete extra_headers. + (powerpc-ibm-aix7.1.*): Same. + (powerpc-ibm-aix[789].*): Same. + +2018-12-17 H.J. Lu + + PR debug/79342 + * dwarf2out.c (find_AT_string_in_table): Add insert argument + defaulting to INSERT and replace INSERT. + (find_AT_string): Likewise. + (output_macinfo_op): Pass NO_INSERT to find_AT_string. + +2018-12-15 Jan Hubicka + + * coverage.c (struct conts_entry): Add n_counts. + (remap_counts_file): Record number of ocunts. + (get_coverage_counts): Verify that counts match. + * coverage.h (get_coverage_counts): Update prototype. + * profile.c (get_exec_counts. compute_value_histograms): Add + n_counts parametrs. + +2018-12-17 Senthil Kumar Selvaraj + + PR rtl-optimization/88253 + * combine.c (combine_simplify_rtx): Test for side-effects before + substituting by zero. + +2018-12-17 Richard Sandiford + + * doc/invoke.texi (-fversion-loops-for-strides): Document + (loop-versioning-group-size, loop-versioning-max-inner-insns) + (loop-versioning-max-outer-insns): Document new --params. + * Makefile.in (OBJS): Add gimple-loop-versioning.o. + * common.opt (fversion-loops-for-strides): New option. + * opts.c (default_options_table): Enable fversion-loops-for-strides + at -O3. + * params.def (PARAM_LOOP_VERSIONING_GROUP_SIZE) + (PARAM_LOOP_VERSIONING_MAX_INNER_INSNS) + (PARAM_LOOP_VERSIONING_MAX_OUTER_INSNS): New parameters. + * passes.def: Add pass_loop_versioning. + * timevar.def (TV_LOOP_VERSIONING): New time variable. + * tree-ssa-propagate.h + (substitute_and_fold_engine::substitute_and_fold): Add an optional + block parameter. + * tree-ssa-propagate.c + (substitute_and_fold_engine::substitute_and_fold): Likewise. + When passed, only walk blocks dominated by that block. + * tree-vrp.h (range_includes_p): Declare. + (range_includes_zero_p): Turn into an inline wrapper around + range_includes_p. + * tree-vrp.c (range_includes_p): New function, generalizing... + (range_includes_zero_p): ...this. + * tree-pass.h (make_pass_loop_versioning): Declare. + * gimple-loop-versioning.cc: New file. + +2018-12-15 Jan Hubicka + + * ipa-fnsummary.c (remap_edge_change_prob): Do not ICE when changes + are not streamed in. + +2018-12-15 H.J. Lu + + PR target/88483 + * config/i386/i386.c (ix86_finalize_stack_frame_flags): Revert + reversion 267133. + +2018-12-15 Jan Hubicka + + * ipa-fnsummary.c (analyze_function_body): Do not loeak conds and + size_time_table. + (ipa_fn_summary_generate): Add prevails parameter; do not allocate + data when symbol is not prevailing. + (inline_read_section): Likewise. + +2018-12-15 Jan Hubicka + + * cgraph.h (cgraph_node): Add predicate prevailing_p. + (cgraph_edge): Add predicate possible_call_in_translation_unit_p. + * ipa-prop.c (ipa_write_jump_function): Optimize streaming of ADDR_EXPR. + (ipa_read_jump_function): Add prevails parameter; optimize streaming. + (ipa_read_edge_info): Break out from ... + (ipa_read_node_info): ... here; optimize streaming. + * cgraph.c (cgraph_edge::possibly_call_in_translation_unit_p): New + predicate. + +2018-12-15 Jan Hubicka + + * ipa-utils.c (ipa_merge_profiles): Do no merging when source function + has zero count. + +2018-12-15 Jakub Jelinek + + PR tree-optimization/88464 + PR target/88498 + * tree-vect-stmts.c (vect_build_gather_load_calls): For NARROWING + and mask with integral masktype, don't try to permute mask vectors, + instead emit VEC_UNPACK_{LO,HI}_EXPR. Fix up NOP_EXPR operand. + (vectorizable_store): Handle masked scatters with decl and integral + mask type. + (permute_vec_elements): Allow scalar_dest to be NULL. + * config/i386/i386.c (ix86_get_builtin) + : Use lowpart_subreg for masks. + : Don't assume mask and src have + to be the same. + +2018-12-15 Jan Hubicka + + * ipa.c (cgraph_build_static_cdtor_1): Add OPTIMIZATION and TARGET + parameters. + (cgraph_build_static_cdtor): Update. + (build_cdtor): Use OPTIMIZATION and TARGET of the first real cdtor + callsed. + +2018-12-15 Alan Modra + + * config/rs6000/rs6000.c (generate_set_vrsave, rs6000_emit_savres_rtx), + (rs6000_emit_prologue, rs6000_call_aix, rs6000_call_sysv), + (rs6000_call_darwin_1): Use gen_hard_reg_clobber. + +2018-12-15 Jakub Jelinek + + PR target/88489 + * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator. + (avx512f_sfixupimm): Use it + instead of UNSPEC_FIXUPIMM. + + PR rtl-optimization/88478 + * cselib.c (cselib_record_sets): Move sets[i].src_elt tests + after REG_P (dest) test. + +2018-12-14 Martin Sebor + + PR tree-optimization/88372 + * calls.c (maybe_warn_alloc_args_overflow): Handle function pointers. + * tree-object-size.c (alloc_object_size): Same. Simplify. + * doc/extend.texi (Object Size Checking): Update. + (Other Builtins): Add __builtin_object_size. + (Common Type Attributes): Add alloc_size. + (Common Variable Attributes): Ditto. + +2018-12-14 Martin Sebor + + PR rtl-optimization/87096 + * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): Avoid + folding calls whose bound may exceed INT_MAX. Diagnose bound ranges + that exceed the limit. + +2018-12-14 Martin Sebor + + PR web/79738 + * doc/extend.texi (attribute const, pure): Clarify. + +2018-12-14 H.J. Lu + + * config/i386/i386.c (rest_of_insert_endbranch): Insert ENDBR + at the function entry only when -mmanual-endbr isn't used or + there is cf_check function attribute. + (ix86_attribute_table): Add cf_check. + * config/i386/i386.opt: Add -mmanual-endbr. + * doc/extend.texi: Document cf_check attribute. + * doc/invoke.texi: Document -mmanual-endbr. + +2018-12-14 Thomas Schwinge + Cesar Philippidis + + * omp-offload.c (inform_oacc_loop): New function. + (execute_oacc_device_lower): Use it to display loop parallelism. + +2018-12-14 Jakub Jelinek + + PR c++/82294 + PR c++/87436 + * expr.h (categorize_ctor_elements): Add p_unique_nz_elts argument. + * expr.c (categorize_ctor_elements_1): Likewise. Compute it like + p_nz_elts, except don't multiply it by mult. Adjust recursive call. + Fix up COMPLEX_CST handling. + (categorize_ctor_elements): Add p_unique_nz_elts argument, initialize + it and pass it through to categorize_ctor_elements_1. + (mostly_zeros_p, all_zeros_p): Adjust categorize_ctor_elements callers. + * gimplify.c (gimplify_init_constructor): Likewise. Don't force + ctor into readonly data section if num_unique_nonzero_elements is + smaller or equal to 1/8 of num_nonzero_elements and size is >= 64 + bytes. + +2018-12-14 Thomas Preud'homme + + * config/arm/arm.md (arm_movdi): Split if -mslow-flash-data and + source is a constant that would be loaded by literal pool. + (movsf expander): Generate a no_literal_pool_sf_immediate insn if + -mslow-flash-data is present, targeting hardfloat ABI and source is a + float constant that cannot be loaded via vmov. + (movdf expander): Likewise but generate a no_literal_pool_df_immediate + insn. + (arm_movsf_soft_insn): Split if -mslow-flash-data and source is a + float constant that would be loaded by literal pool. + (softfloat constant movsf splitter): Splitter for the above case. + (movdf_soft_insn): Split if -mslow-flash-data and source is a float + constant that would be loaded by literal pool. + (softfloat constant movdf splitter): Splitter for the above case. + * config/arm/constraints.md (Pz): Document existing constraint. + (Ha): Define constraint. + (Tu): Likewise. + * config/arm/predicates.md (hard_sf_operand): New predicate. + (hard_df_operand): Likewise. + * config/arm/thumb2.md (thumb2_movsi_insn): Split if + -mslow-flash-data and constant would be loaded by literal pool. + * constant/arm/vfp.md (thumb2_movsi_vfp): Likewise and disable constant + load in VFP register. + (movdi_vfp): Likewise. + (thumb2_movsf_vfp): Use hard_sf_operand as predicate for source to + prevent match for a constant load if -mslow-flash-data and constant + cannot be loaded via vmov. Adapt constraint accordingly by + using Ha instead of E for generic floating-point constant load. + (thumb2_movdf_vfp): Likewise using hard_df_operand predicate instead. + (no_literal_pool_df_immediate): Add a clobber to use as the + intermediate general purpose register and also enable it after reload + but disable it constant is a valid FP constant. Add constraints and + generate a DI intermediate load rather than 2 SI loads. + (no_literal_pool_sf_immediate): Add a clobber to use as the + intermediate general purpose register and also enable it after + reload. + +2018-12-14 Uros Bizjak + + PR target/88474 + * internal-fn.def (HYPOT): New. + * optabs.def (hypot_optab): New. + * config/i386/i386.md (hypot3): New expander. + +2018-12-14 Jeff Law + + * target.def (post_cfi_startproc): Fix text. + +2018-12-14 Sam Tebbs + + * doc/tm.texi (TARGET_ASM_POST_CFI_STARTPROC): Define. + * doc/tm.texi.in (TARGET_ASM_POST_CFI_STARTPROC): Define. + * dwarf2out.c (dwarf2out_do_cfi_startproc): Trigger the hook. + * hooks.c (hook_void_FILEptr_tree): Define. + * hooks.h (hook_void_FILEptr_tree): Define. + * target.def (post_cfi_startproc): Define. + +2018-12-14 Tom de Vries + + * lto-cgraph.c (verify_node_partition): New function. + (input_overwrite_node, input_varpool_node): Use verify_node_partition. + +2018-12-14 H.J. Lu + + PR target/88483 + * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't + use get_frame_size (). + +2018-12-14 Andrew Stubbs + + * gcc/lra-int.h (lra_register_new_scratch_op): Add third parameter. + * gcc/lra-remat.c (update_scratch_ops): Pass icode to + lra_register_new_scratch_op. + * gcc/lra.c (struct sloc): Add icode field. + (lra_register_new_scratch_op): Add icode parameter. + Use icode to skip insns that have changed beyond recognition. + +2018-12-14 Eric Botcazou + + * dwarf2out.c (analyze_discr_in_predicate): Simplify. + (analyze_variants_discr): Deal with naked boolean discriminants. + +2018-12-14 Claudiu Zissulescu + + * config/arc/arc.c (arc_restore_callee_milli) Don't clobber off + variable. + +2018-12-14 Claudiu Zissulescu + + * config/arc/arc.h (reg_class): Add SIBCALL_REGS. + +2018-12-14 Richard Biener + + * gimple-ssa-split-paths.c (is_feasible_trace): Remove + duplicated code block. + +2018-12-14 Alan Modra + + PR rtl-optimization/88311 + * config/rs6000/rs6000.c (rs6000_call_sysv): Do not mask cookie. + (rs6000_sibcall_sysv): Likewise. + +2018-12-14 Segher Boessenkool + + PR rtl-optimization/88001 + * function.c (match_asm_constraints_1): Don't invalidly share RTL. + +2018-12-14 Bin Cheng + + * auto-profile.c (afdo_annotate_cfg): Call update_max_bb_count even + if autofdo counts are all zeros. + +2018-12-14 Bin Cheng + + * auto-profile.c (afdo_indirect_call): Skip generating histogram + value for internal call. + +2018-12-14 Bin Cheng + + * auto-profile.c (AFDO_EINFO): New macro. + (class edge_info): New class. + (is_edge_annotated, set_edge_annotated): Delete. + (afdo_propagate_edge, afdo_propagate_circuit, afdo_propagate): Remove + parameter. Adjust edge count computation and annotation using class + edge_info. + (afdo_calculate_branch_prob, afdo_annotate_cfg): Likewise. + +2018-12-13 Michael Ploujnikov + + * ipa-cp.c (print_all_lattices): Skip cp clones. + + * ipa-cp.c: Fix various comment typos. + +2018-12-13 Jakub Jelinek + + PR tree-optimization/88444 + * tree-inline.c (fold_marked_statements): Iterate up to + last_basic_block_for_fn rather than n_basic_blocks_for_fn. + + PR rtl-optimization/88470 + * cfgcleanup.c (outgoing_edges_match): If the function is + shrink-wrapped and bb1 ends with a JUMP_INSN with a single fake + edge to EXIT, return false. + +2018-12-13 Martin Sebor + + * doc/extend.texi: Consistently use @code for const and volatile + qualifiers, the true and false constants, and asm statements. + +2018-12-13 Vladimir Makarov + + PR rtl-optimization/88414 + * lra-int.h (lra_asm_error_p): New. + * lra-assigns.c (lra_assign): Check lra_asm_error_p for checking + call crossed pseudo assignment correctness. + (lra_split_hard_reg_for): Set up lra_asm_error_p. + * lra-constraints.c (curr_insn_transform): Ditto. + * lra.c (lra_asm_error_p): New. + (lra): Reset lra_asm_error_p. + +2018-12-13 Jakub Jelinek + + PR rtl-optimization/88416 + * valtrack.c (cleanup_auto_inc_dec): Handle pre/post-inc/dec/modify + even if !AUTO_INC_DEC. + +2018-12-13 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_function_arg): Ensure type is + non-NULL. + (rs6000_arg_partial_bytes): Same. + +2018-12-13 Jason Merrill + + * gdbinit.in (pp): New macro. + (pbb): Remove. + +2018-12-13 Jakub Jelinek + + PR tree-optimization/88464 + * tree-vect-stmts.c (vect_build_gather_load_calls): Handle INTEGER_TYPE + masktype if mask is non-NULL. + (vectorizable_load): Don't reject masked gather loads if masktype + in the decl is INTEGER_TYPE. + +2018-12-13 Andreas Krebbel + + * config/s390/s390-builtins.def (s390_vec_double_s64): Map to + s390_vec_double_s64 instead of s390_vcdgb. + (s390_vec_double_u64): Map to s390_vec_double_u64 instead of + s390_vcdlgb. + +2018-12-13 Andreas Krebbel + + * config/s390/vx-builtins.md ("vec_ctd_s64", "vec_ctd_u64") + ("vec_ctsl", "vec_ctul"): Replace 0 with VEC_NOINEXACT. + ("vec_double_s64", "vec_double_u64"): Replace 4 with VEC_INEXACT. + +2018-12-13 Kyrylo Tkachov + + * doc/invoke.texi (-msve-vector-bits): Clarify -msve-vector-bits=128 + behavior. + +2018-12-13 Wei Xiao + + * common/config/i386/i386-common.c (processor_names): Add cascadelake. + (processor_alias_table): Add cascadelake. + * config.gcc: Add -march=cascadelake. + * config/i386/i386-c.c (ix86_target_macros_internal): Handle + cascadelake. + * config/i386/i386.c (Add m_CASCADELAKE): New. + (processor_cost_table): Add cascadelake. + (get_builtin_code_for_version): Handle cascadelake. + * config/i386/i386.h (TARGET_CASCADELAKE, PROCESSOR_CASCADELAKE): New. + (PTA_CASCADELAKE): Ditto. + * doc/invoke.texi: Add -march=cascadelake. + +2018-12-13 Jakub Jelinek + + PR target/88465 + * config/i386/i386.md (*movdi_internal, *movsi_internal, + *movhi_internal, *movqi_internal): Add alternative(s) to load + 0 or -1 into k registers using kxor or kxnoq instructions. + + PR target/88461 + * config/i386/sse.md (VI1248_AVX512VLBW, AVX512ZEXTMASK): New + mode iterators. + (_testm3, + _testnm3): Merge patterns + with VI12_AVX512VL and VI48_AVX512VL iterators into ones with + VI1248_AVX512VLBW iterator. + (*_testm3_zext, + *_testm3_zext_mask, + *_testnm3_zext, + *_testnm3_zext_mask): New + define_insns. + + PR target/88461 + * config/i386/i386.md (*zero_extendsidi2, zero_extenddi2, + *zero_extendsi2, *zero_extendqihi2): Add =*k, *km alternatives. + +2018-12-12 Tom de Vries + Jakub Jelinek + + * omp-builtins.def (BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_START, + BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_START, + BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_START, + BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_START, + BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME, + BUILT_IN_GOMP_PARALLEL_LOOP_MAYBE_NONMONOTONIC_RUNTIME): Fix up + function types - remove one argument. + +2018-12-12 Martin Sebor + + * doc/extend.texi (attribute copy): Fix typos. + +2018-12-12 Martin Sebor + + * doc/extend.texi (Function Attributes): Clarify C++ aspects. + (Variable Attributes): Same. + (Type Attributes): Same. + +2018-12-12 Olivier Hainque + + * config/aarch64/aarch64.c (aarch64_override_options): Once arch, + cpu and tune were validated, insert SUBTARGET_OVERRIDE_OPTIONS if + defined. + +2018-12-12 Olivier Hainque + + * config/aarch64/aarch64.c (PROBE_STACK_FIRST_REG) : Redefine as + R9_REGNUM instead of 9. + (PROBE_STACK_SECOND_REG): Redefine as R10_REGNUM instead of 10. + +2018-12-12 Eric Botcazou + + PR target/86806 + * config/sparc/sparc.md (unspecv): Add UNSPECV_SPECULATION_BARRIER. + (speculation_barrier): New instruction for V9. + +2018-12-12 Segher Boessenkool + Iain Sandoe + + PR target/88343 + * config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg + unless it has been used. + (first_reg_to_save): Remove dead code. + +2018-12-12 Iain Sandoe + + * config/rs6000/rs6000-protos.h (rs6000_call_darwin): New. + (rs6000_sibcall_darwin): New. (macho_call_template): Remove. + * config/rs6000/rs6000.c (get_prev_label): Forward declaration. + (rs6000_call_template_1): Handle Darwin. + (macho_call_template): Remove. + (rs6000_call_sysv): Remove handling for Darwin. + (rs6000_call_darwin_1, rs6000_call_darwin): New + (rs6000_sibcall_darwin): New. + * config/rs6000/rs6000.md (define_expand “call”): Handle Darwin + with its own expander. (define_expand “call_value”): Likewise. + (define_expand “sibcall”): Likewise. + (define_expand “sibcall_value”): Likewise. + (call_nonlocal_sysv): Remove Darwin special-casing. + (call_value_nonlocal_sysv): Likewise. + +2018-12-12 Iain Sandoe + + * config/rs6000/darwin.md (call_indirect_nonlocal_darwin64): Remove. + (call_nonlocal_darwin64): Remove. + (call_value_indirect_nonlocal_darwin64): Remove. + (call_value_nonlocal_darwin64): Remove. + * config/rs6000/rs6000.c (rs6000_call_template_1): Handle Darwin with + the same asm output as AIX/ELFv2. (rs6000_call_sysv): Preserve the + CALL_LONG flag when needed for Darwin. + * config/rs6000/rs6000.md (define expand “call”): Expand Darwin as + per sysv. + (define_expand “call_value”): Likewise. + (define_expand “sibcall”): Likewise. + (define_expand “sibcall_value”): Likewise. + (call_indirect_nonlocal_sysv): Mark the clobber mode P. + (call_nonlocal_sysv): Likewise. + (call_nonlocal_sysv_secure): Likewise. + (call_value_indirect_nonlocal_sysv): Likewise. + (call_value_nonlocal_sysv): Likewise. + (call_value_nonlocal_sysv_secure): Likewise. + (call_local64): Mark the clobber DI. + (call_value_local64): Likewise. + +2018-12-11 Jakub Jelinek + + PR tree-optimization/88444 + * tree-vrp.c (register_edge_assert_for_2): Only register assertions + for conversions if rhs1 is a SSA_NAME. + +2018-12-11 Dimitar Dimitrov + + * cfgexpand.c (asm_clobber_reg_is_valid): Also produce + error when stack pointer is clobbered. + (expand_asm_stmt): Refactor clobber check in separate function. + +2018-12-11 Eric Botcazou + + * config/rs6000/vxworks.h (RS6000_STARTING_FRAME_OFFSET): Define, + accounting for STACK_BOUNDARY 128. + (STACK_DYNAMIC_OFFSET): Likewise. + +2018-12-11 Jakub Jelinek + + PR target/88425 + * config/i386/i386.md (*x86_movcc_0_m1_neg_leu): + New define_insn_and_split. + +2018-12-11 Richard Biener + + PR middle-end/88448 + PR middle-end/88415 + * gimple.c (gimple_assign_set_rhs_with_ops): Revert previous + change. + * tree-complex.c (update_complex_assignment): Properly transfer + or clean EH info around gimple_assign_set_rhs_with_ops. + +2018-12-11 Richard Earnshaw + + PR target/87369 + * config/aarch64/iterators.md (sizem1): Add sizes for SFmode and DFmode. + (Vbtype): Add SFmode mapping. + * config/aarch64/aarch64.md (copysigndf3, copysignsf3): Delete. + (copysign3): New expand pattern. + (copysign3_insn): New insn pattern. + +2018-12-11 Richard Biener + + * ccmp.c (ccmp_candidate_p): Use GIMPLE API properly. + +2018-12-11 Jakub Jelinek + + PR lto/86004 + * doc/sourcebuild.texi (lto_incremental): Document new effective + target. + +2018-12-11 Segher Boessenkool + + PR target/88145 + * config/rs6000/rs6000.c (rs6000_expand_zeroop_builtin): Use + rs6000_isa_flags instead of rs6000_isa_flags_explicit to decide + whether soft float is enabled. + (rs6000_expand_mtfsb_builtin): Ditto. + (rs6000_expand_set_fpscr_rn_builtin): Ditto. + (rs6000_expand_set_fpscr_drn_builtin): Ditto. + +2018-12-10 Jeff Law + + PR tree-optimization/80520 + * gimple-ssa-split-paths.c (is_feasible_trace): Recognize half + diamonds that are likely if convertable. + +2018-12-10 Martin Sebor + + PR tree-optimization/86196 + * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use + base size only of arrays. + +2018-12-10 Segher Boessenkool + + * config.gcc (Obsolete configurations): Delete powerpc*-*-*spe*. + (Unsupported targets): Add powerpc*-*-*spe*. + (powerpc*-*-*spe*): Delete. + (powerpc-*-eabispe*): Delete. + (powerpc-*-rtems*spe*): Delete. + (powerpc*-*-linux*spe*): Delete. + (powerpc*-*-linux*): Do not handle the linux*spe* targets. + (powerpc-wrs-vxworks*spe): Delete. + (with_cpu setting code): Delete powerpc*-*-*spe* handling. + * config.host (target powerpc*-*-*spe*): Delete. + * doc/invoke.texi (PowerPC SPE Options): Delete. + (PowerPC SPE Options): Delete. + * config/powerpcspe: Delete. + +2018-12-10 Uros Bizjak + + PR target/88418 + * config/i386/i386.c (ix86_expand_sse_cmp): For vector modes, + check operand 1 with vector_operand predicate. + (ix86_expand_sse_movcc): For vector modes, check op_true with + vector_operand, not nonimmediate_operand. + +2018-12-10 Richard Biener + + * tree-affine.c (tree_to_aff_combination): Remove unreachable + MEM_REF case. + (aff_combination_expand): Cache on SSA names, not possibly + on conversion trees. Avoid expanding cases we do not handle. + +2018-12-10 Richard Biener + + PR tree-optimization/88427 + * vr-values.c (vr_values::extract_range_from_phi_node): + Handle symbolic ranges conservatively when trying to drop + to Inf +- 1. + +2018-12-10 Martin Jambor + + PR ipa/88214 + * ipa-prop.c (determine_locally_known_aggregate_parts): Make sure + we check pointers against pointers. + +2018-12-10 Richard Biener + + PR middle-end/88415 + * gimple.c (gimple_assign_set_rhs_with_ops): Transfer EH + info to a newly allocated stmt. + +2018-12-10 Jerome Lambourg + + * config/vxworksae.h (TARGET_VXWORKS_HAVE_CTORS_DTORS): Define. + +2018-12-10 Fredrik Nyström + + PR bootstrap/65725 + * config/sol2.h: Only use libgcc-unwind.map if + ENABLE_SHARED_LIBGCC. + +2018-12-10 Bin Cheng + + * auto-profile.c (afdo_calculate_branch_prob): Convert profile_count + to afdo precision quality. + (afdo_callsite_hot_enough_for_early_inline): Likewise. + (afdo_annotate_cfg): Set profile_count for exit basic block. + +2018-12-10 Bin Cheng + + * auto-profile.c (string_table::get_index_by_decl) + (function_instance::get_function_instance_by_decl): Avoid infinite + recursion by using DECL_FROM_INLINE. + +2018-12-09 John David Anglin + + * config.gcc (hppa*-*-linux*): Add pa/t-pa to tmake_file. Define + d_target_objs. + * config/pa/pa-protos.h (pa_d_target_versions): New prototype. + * config/pa/pa.h (TARGET_D_CPU_VERSIONS): Define. + * config/pa/pa-d.c: New file. + * config/pa/t-pa: New file. + +2018-12-08 Bin Cheng + + * ipa-cp.c (update_profiling_info): Call adjust_for_ipa_scaling for + zero profile count. + +2018-12-08 Jakub Jelinek + + PR fortran/88304 + * tree-nested.c (convert_local_reference_stmt): Handle clobbers where + lhs is not a decl normally, don't call use_pointer_in_frame on that + lhs. + +2018-12-08 Eric Botcazou + + PR rtl-optimization/88390 + * dwarf2cfi.c (struct dw_cfi_row): Add window_save field. + (cfi_row_equal_p): Compare it. + (dwarf2out_frame_debug_cfa_window_save): Add FAKE parameter. + If FAKE is false, set window_save of the current row. + (dwarf2out_frame_debug) : Call above + function with FAKE parameter set to true. + : Likewise but with FAKE parameter set to false. + (change_cfi_row): Emit a DW_CFA_GNU_window_save if necessary. + +2018-12-07 Peter Bergner + + PR target/87496 + * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow + -mabi=ieeelongdouble and -mabi=ibmlongdouble without -mlong-double-128. + Do not error for -mabi=ibmlongdouble and no ISA 2.06 support. + * doc/invoke.texi: Document -mabi=ibmlongdouble and -mabi=ieeelongdouble + require -mlong-double-128. + +2018-12-07 Kyrylo Tkachov + + * config/aarch64/aarch64.c (aarch64_tuning_override_functions): Add + sve_width entry. + (aarch64_parse_sve_width_string): Define. + +2018-12-07 Jeff Law + + PR middle-end/87813 + * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Add + m_update_global_ranges member. Add corresponding argument to ctor. + * gimple-ssa-evrp-analyze.c + (evrp_range_analyzer::evrp_range_analyzer): Add new argument and + initialize m_update_global_ranges. + (evrp_range_analyzer::set_ssa_range_info): Assert that we are + updating global ranges. + (evrp_range_analyzer::record_ranges_from_incoming_edge): Only + update global ranges if explicitly requested. + (evrp_range_analyzer::record_ranges_from_phis): Similarly. + (evrp_range_analyzer::record_ranges_from_stmt): Similarly. + * gimple-ssa-evrp.c (evrp_dom_walker): Pass new argument to + evrp_range_analyzer ctor. + * gimple-ssa-sprintf.c (sprintf_dom_walker): Similarly. + * tree-ssa-dom.c (dom_opt_dom_walker): Similarly. + +2018-12-07 Kyrylo Tkachov + + * config/aarch64/aarch64-opts.h (aarch64_sve_vector_bits_enum): + Add SVE_NOT_IMPLEMENTED value. + * config/aarch64/aarch64-protos.h (struct tune_params): Add sve_width + field. + * config/aarch64/aarch64.c (generic_tunings,cortexa35_tunings, + cortexa53_tunings, cortexa57_tunings, cortexa72_tunings, + cortexa73_tunings, exynosm1_tunings, thunderx_tunings, + thunderx_tunings, tsv110_tunings, xgene1_tunings, qdf24xx_tunings, + saphira_tunings, thunderx2t99_tunings, emag_tunings): + Specify sve_width. + (aarch64_estimated_poly_value): Define. + (TARGET_ESTIMATED_POLY_VALUE): Define. + +2018-12-07 Paul A. Clarke + + PR target/88408 + * config/rs6000/mmintrin.h (_mm_packs_pu16): Correctly use "__vector". + +2018-12-07 Vladimir Makarov + + PR rtl-optimization/88349 + * ira-costs.c (record_operand_costs): Check bigger reg class on + NO_REGS. + +2018-12-07 Richard Sandiford + + * config/aarch64/aarch64-sve.md (*mul3, *v3): + Split the patterns after reload if we don't need the predicate + operand. + (*post_ra_mul3, *post_ra_v3): New patterns. + +2018-12-07 Richard Sandiford + + * config/aarch64/iterators.md (SVE_UNPRED_FP_BINARY): New code + iterator. + (sve_fp_op): Handle minus and mult. + * config/aarch64/aarch64-sve.md (*add3, *sub3) + (*mul3): Split the patterns after reload if we don't + need the predicate operand. + (*post_ra_3): New pattern. + +2018-12-07 Bin Cheng + + * profile-count.h (profile_count::oeprator>=): Fix typo by inverting + return condition when *this is precise zero. + +2018-12-07 Jakub Jelinek + + PR target/85593 + * final.c (rest_of_handle_final): Don't call collect_fn_hard_reg_usage + for functions with naked attribute. + + PR c/88367 + * tree-vrp.c (extract_range_from_binary_expr): For POINTER_PLUS_EXPR + with -fno-delete-null-pointer-checks, set_nonnull only if the pointer + is non-NULL and offset is known to have most significant bit clear. + * vr-values.c (vr_values::vrp_stmt_computes_nonzero): For ADDR_EXPR + of MEM_EXPR, return true if the MEM_EXPR has non-zero offset with + most significant bit clear. If offset does have most significant bit + set and -fno-delete-null-pointer-checks, don't return true even if + the base pointer is non-NULL. + +2018-12-06 Alexandre Oliva + + * cselib.c (cselib_record_sets): Skip strict low part sets + with NULL src_elt. + +2018-12-06 Paul A. Clarke + + PR target/88316 + * config/rs6000/smmintrin.h: New file. + * config.gcc: Add smmintrin.h to extra_headers for powerpc*-*-*. + +2018-12-06 Paul A. Clarke + + PR target/88316 + * config/rs6000/mmintrin.h (_mm_unpackhi_pi8): Fix for big-endian. + (_mm_unpacklo_pi8): Likewise. + (_mm_mulhi_pi16): Likewise. + (_mm_packs_pi16): Fix for big-endian. Use preferred API. + (_mm_packs_pi32): Likewise. + (_mm_packs_pu16): Likewise. + * config/rs6000/xmmintrin.h (_mm_cvtss_si32): Fix for big-endian. + (_mm_cvtss_si64): Likewise. + (_mm_cvtpi32x2_ps): Likewise. + (_mm_shuffle_ps): Likewise. + (_mm_movemask_pi8): Likewise. + (_mm_mulhi_pu16): Likewise. + (_mm_sad_pu8): Likewise. + (_mm_sad_pu8): Likewise. + (_mm_cvtpu16_ps): Fix for big-endian. Use preferred API. + (_mm_cvtpu8_ps): Likewise. + (_mm_movemask_ps): Better #else case for big-endian (no functional + change). + (_mm_shuffle_pi16): Likewise. + * config/rs6000/emmintrin.h (_mm_movemask_pd): Fix for big-endian. + Better #else case for big-endian (no functional change). + (_mm_movemask_epi8): Likewise. + (_mm_shufflehi_epi16): Likewise. + (_mm_shufflelo_epi16): Likewise. + (_mm_shuffle_epi32): Likewise. + (_mm_mul_epu32): Fix for big-endian. + (_mm_bsrli_si128): Likewise. + (_mm_cvtps_pd): Better #else case for big endian. + (_mm_mulhi_epi16): Likewise. + (_mm_mul_epu32): Likewise. + (_mm_slli_si128): Likewise. + (_mm_sll_epi16): Likewise. + (_mm_sll_epi32): Likewise. + (_mm_sra_epi16): Likewise. + (_mm_sra_epi32): Likewise. + (_mm_srl_epi16): Likewise. + (_mm_srl_epi32): Likewise. + (_mm_mulhi_epu16): Likewise. + (_mm_sad_epu8): Likewise. + * config/rs6000/pmmintrin.h (_mm_hadd_ps): Fix for big-endian. + (_mm_sub_ps): Likewise. + * config/rs6000/mmintrin.h (_mm_cmpeq_pi8): Fix for 32-bit mode. + * gcc/config/rs6000/tmmintrin.h (_mm_alignr_epi8): Use ENDIAN + macros consistently (no functional changes). + (_mm_alignr_pi8): Likewise. + +2018-12-06 Iain Sandoe + + PR c++/87380 + * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC) Remove, use the + default. + * config/rs6000/darwin7.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New. + +2018-12-06 Vladimir Makarov + + PR target/88282 + * ira.c (ira_init_register_move_cost): Use info from + hard_regno_mode_ok instead of contains_reg_of_mode. + * ira-costs.c (contains_reg_of_mode): Don't use cost from bigger + hard register class for some fixed hard registers. + +2018-12-06 Segher Boessenkool + + * doc/extend.texi (Using Assembly Language with C): Document asm inline. + (Size of an asm): Fix typo. Document asm inline. + * gimple-pretty-print.c (dump_gimple_asm): Handle asm inline. + * gimple.h (enum gf_mask): Add GF_ASM_INLINE. + (gimple_asm_set_volatile): Fix typo. + (gimple_asm_inline_p): New. + (gimple_asm_set_inline): New. + * gimplify.c (gimplify_asm_expr): Propagate the asm inline flag from + tree to gimple. + * ipa-icf-gimple.c (func_checker::compare_gimple_asm): Compare the + gimple_asm_inline_p flag, too. + * tree-core.h (tree_base): Document that protected_flag is ASM_INLINE_P + in an ASM_EXPR. + * tree-inline.c (estimate_num_insns): If gimple_asm_inline_p return + a minimum size for an asm. + * tree.h (ASM_INLINE_P): New. + +2018-12-06 Segher Boessenkool + + PR inline-asm/55681 + * doc/extend.texi (Basic Asm): Update grammar. + (Extended Asm): Update grammar. + +2018-12-06 Iain Sandoe + + PR target/78444 + * config/i386/darwin.h (STACK_BOUNDARY): Remove macro. + * config/i386/i386.c (ix86_compute_frame_layout): Ensure at least 128b + stack alignment in non-leaf functions. + +2018-12-06 Jakub Jelinek + + PR target/87598 + * config/aarch64/aarch64.c (aarch64_print_address_internal): Don't + call output_operand_lossage on VOIDmode CONST_INTs. After + output_operand_lossage do return false. + +2018-12-06 Richard Biener + + * df-problems.c (df_rd_local_compute): Use bitmap_release. + (df_live_free): Likewise. + (df_md_local_compute): Likewise. + (df_md_free): Release df_md_scratch bitmap. + * loop-invariant.c (calculate_loop_reg_pressure): Use + bitmap_release. + * sched-deps.c (true_dependency_cache, output_dependency_cache, + anti_dependency_cache, control_dependency_cache, + spec_dependency_cache): Use bitmap instead of bitmap_head *. + * sched-ebb.c (schedule_ebbs_init): Initialize non-GTY + dont_calc_deps as bitmap allocated from obstack not GC. + (schedule_ebbs_finish): Use bitmap_release. + * sched-rgn.c (schedule_insns): Initialize non-GTY + not_in_df as bitmap allocated from obstack not GC. + Use bitmap_release. + * sel-sched.c (_forced_ebb_heads): Remove premature optimization. + (sel_region_init): Allocate forced_ebb_heads. + (sel_region_finish): Free forced_ebb_heads. + +2018-12-06 Richard Biener + + * bitmap.c (bitmap_head::crashme): Define. + * bitmap.h (bitmap_head): Add constexpr default constructor + poisoning the obstack member. + (bitmap_head::crashme): Declare. + (bitmap_release): New function clearing a bitmap and poisoning + the obstack member. + * gengtype.c (main): Make it recognize CONSTEXPR. + * lra-constraints.c (lra_inheritance): Use bitmap_release + instead of bitmap_clear. + * ira.c (ira): Work around class-memaccess warning. + * regrename.c (create_new_chain): Likewise. + +2018-12-06 Jakub Jelinek + + PR tree-optimization/85726 + * generic-match-head.c (optimize_successive_divisions_p): New function. + * gimple-match-head.c (optimize_successive_divisions_p): Likewise. + * match.pd: Don't combine successive divisions if they aren't exact + and optimize_successive_divisions_p is false. + + PR fortran/88304 + * tree-nested.c (convert_nonlocal_reference_stmt): Remove clobbers + for non-local automatic decls. + +2018-12-05 David Edelsohn + + * config/rs6000/aix72.h (ASM_DEFAULT_SPEC): Match Power7 processor + default. + +2018-12-05 Uros Bizjak + + * dwarf2out.c (field_byte_offset): Remove + #ifdef PCC_BITFIELD_TYPE_MATTERS check. + +2018-12-05 Richard Biener + Martin Sebor + + PR c/87028 + * calls.c (get_attr_nonstring_decl): Avoid setting *REF to + SSA_NAME_VAR. + * gcc/gimple-low.c (lower_stmt): Fold builtin calls here. + * gimplify (maybe_fold_stmt): Avoid folding builtin calls. + +2018-12-05 Iain Sandoe + + * configure.ac (gcc_cv_otool): Set. + * configure: Regenerate. + +2018-12-05 Uros Bizjak + + * config/i386/cygming.h (PCC_BITFIELD_TYPE_MATTERS): Remove. + (GROUP_BITFIELDS_BY_ALIGN): Ditto. + +2018-12-05 Richard Sandiford + + PR tree-optimization/88064 + * tree-vect-patterns.c (vect_convert_input): Convert the result of + an existing cast if it has the right width but the wrong sign. + Do not test the signedness of the required result when + considering whether to split an existing cast; instead split to + a type with the same signedness as the source of the cast, then + convert it to the opposite signedness where necessary. + (vect_recog_over_widening_pattern): Handle sign changes between + the final PLUS_EXPR and the RSHIFT_EXPR. + (vect_recog_average_pattern): Use an unsigned operation when + truncating an addition, subtraction or multiplication. Cast the + result back to the "real" signedness before promoting. + +2018-12-05 Richard Biener + + PR tree-optimization/86637 + * tree-vectorizer.c (pass_slp_vectorize::execute): Reset + vect_location at the end. + +2018-12-05 Jakub Jelinek + + PR tree-optimization/87360 + * gimple-loop-jam.c (tree_loop_unroll_and_jam): On failure to analyze + data dependencies, don't return false, just continue. Formatting + fixes. + (merge_loop_tree, bb_prevents_fusion_p, unroll_jam_possible_p, + fuse_loops): Formatting fixes. + + PR sanitizer/88333 + * cfgexpand.c (expand_stack_vars): If asan_vec is empty, start with + aligning frame offset to ASAN_RED_ZONE_SIZE bytes. + +2018-12-05 Xianmiao Qu + + * config.gcc (csky-*-linux-gnu*): Force .init_array support. + +2018-12-05 Segher Boessenkool + + * config/rs6000/rs6000.c (rs6000_function_arg): Only do the special + aggregate handling on actual AIX, not on somewhat similar systems. + (rs6000_arg_partial_bytes): Ditto. + +2018-12-04 Vladimir Makarov + + PR rtl-optimization/88317 + * lra-constraints.c (split_reg): Don't set up check_only_regs if + we are outside the inheritance pass. + +2018-12-04 Jan Hubicka + + * ipa-prop.c (jump_function_useful_p): New. + (ipa_read_node_info): Do not allocated useless jump functions. + +2018-12-04 David Malcolm + + PR c/82967 + * spellcheck.c (selftest::test_suggestions): Add another assertion. + +2018-12-04 Martin Sebor + + * doc/extend.texi (__builtin_has_attribute): Fix typo. + +2018-12-04 Jakub Jelinek + + PR target/88188 + * config/rs6000/rs6000.c (ccr_bit): Return -1 instead of assertion + failures. + (print_operand): Use REG_P instead of GET_CODE == REG. + : Also check CR_REGNO_P (REGNO (x)). + : Likewise. Remove GET_MODE check. + * config/rs6000/rs6000.md (scc patterns): Assert ccr_bit didn't + return -1. + +2018-12-04 Martin Sebor + + * doc/extend.texi (attribute aligned): Expand. + +2018-12-04 David Edelsohn + + PR target/61976 + * config/rs6000/rs6000.c (rs6000_function_arg): Don't pass aggregates + in FPRs on AIX. + (rs6000_arg_partial_bytes): Same. + +2018-12-04 Vladimir Makarov + + PR target/88282 + * ira-costs.c (exec): Try bigger class to use smaller register + move cost. + +2018-12-04 Michael Ploujnikov + + PR ipa/88297 + * ipa-cp.c (create_specialized_node): Track clone counters by + node assembler names. + (ipcp_driver): Change type of clone_num_suffixes key to const char*. + +2018-12-04 Richard Biener + + * tree-vect-loop.c (vect_transform_loop): Fix epilogue iterations + for epilogue vectorization. + +2018-12-04 Richard Biener + + PR tree-optimization/88301 + * tree-vrp.c (register_edge_assert_for_2): Fix sign-conversion + issues in last commit. + +2018-12-04 Richard Biener + + PR tree-optimization/88315 + * tree-vect-loop.c (get_initial_defs_for_reduction): Simplify + and fix initialization vector for SAD and DOT_PROD SLP reductions. + +2018-12-03 Sandra Loosemore + + PR c/59039 + * doc/extend.texi (Nonlocal gotos): New section. + +2018-12-03 Uros Bizjak + + * config/i386/sse.md (vec_concatv2df): Change (v,xm,C) + alternative to (v,vm,c). + +2018-12-03 Segher Boessenkool + + * gcc/config.gcc (Unsupported targets): Add powerpc*-*-linux*paired*. + (powerpc*-*-linux*): Don't handle it here. + +2018-12-03 Jeff Law + + * config/h8300/h8300.md (qi3_1): Add gcc_unreachable to keep + warnings quiet. + + * config/h8300/h8300.md (low byte masking peepholes): Only accept + nonimmediate_operand for the to-be-masked operand. + +2018-12-03 Richard Biener + + * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only + allow expected function-pointer cast re-instantiation. + +2018-12-03 Ilya Leoshkevich + + * common/config/s390/s390-common.c (s390_option_init_struct): + Use section anchors by default. + * config/s390/s390.c (s390_check_symref_alignment): Handle + anchors. + (TARGET_MAX_ANCHOR_OFFSET): Use short displacement. + * output.h (assemble_align): Pass `align' as unsigned int, so + that the value 0x80000000, which corresponds to `aligned(1 << + 28)', would pass the `align > BITS_PER_UNIT' check. + * varasm.c (assemble_align): Likewise. + +2018-12-03 Julian Brown + + * tree-pretty-print.c (dump_omp_clause): Make default case + gcc_unreachable. + +2018-12-03 Richard Biener + + PR tree-optimization/88301 + * tree-vrp.c (register_edge_assert_for_2): Handle conversions + that do not change the value by registering the same assert + for the operand. + +2018-12-03 Richard Biener + + * tree-vect-loop.c (vect_transform_loop): Properly compute + upper bound for the epilogue when doing epilogue vectorization. + +2018-12-03 Ilya Leoshkevich + + PR target/80080 + * cfgcleanup.c (class pass_postreload_jump): New pass. + (pass_postreload_jump::execute): Likewise. + (make_pass_postreload_jump): Likewise. + * passes.def: Add pass_postreload_jump before + pass_postreload_cse. + * tree-pass.h (make_pass_postreload_jump): New pass. + +2018-12-02 Uros Bizjak + + * config/i386/i386.c (inline_memory_move_cost): Correctly + compute number of TFmode GPR moves. + +2018-12-02 Jakub Jelinek + + PR target/88278 + * config/i386/sse.md (*vec_concatv4sf_0, *vec_concatv4si_0): New insns. + +2018-12-02 Jeff Law + + * config/h8300/h8300.md (call, call_value): Drop mode from + operand containing number of bytes pushed. + (call_insn, call_value_insn): Use mode iterator for number + of bytes pushed operand. Make pattern name vary appropriately. + +2018-12-02 Jan Hubicka + + * bb-reorer.c (find_rarely_executed_basic_blocks_and_crossin_edges): + trust precise profiles. + +2018-12-02 Jakub Jelinek + + * tree-nested.c (convert_nonlocal_omp_clauses, + convert_local_omp_clauses): Handle OMP_CLAUSE_IN_REDUCTION, + OMP_CLAUSE_TASK_REDUCTION and OMP_CLAUSE__SIMT_ clauses. + (convert_nonlocal_reference_stmt, convert_local_reference_stmt): + Convert clauses for GIMPLE_OMP_TASKGROUP. + + * omp-low.c (check_omp_nesting_restrictions): Allow cancel or + cancellation point with taskgroup clause inside of taskloop. Consider + a taskloop construct without nogroup clause as implicit taskgroup for + diagnostics if cancel/cancellation point with taskgroup clause is + closely nested inside of taskgroup region. + + PR sanitizer/88291 + * asan.c (asan_clear_shadow): Move assert that len is multiple of 4 + to the start of the function. + (asan_emit_stack_protection): When emitting clearing sequence for + epilogue, align offset down to ASAN_RED_ZONE_SIZE granularity, + add last_size_aligned which is last_size padded to multiples of + ASAN_RED_ZONE_SIZE and emit asan_clear_shadow always on 4 byte + boundaries. + +2018-12-01 Jakub Jelinek + + PR sanitizer/88289 + * asan.c (asan_redzone_buffer::flush_redzone_payload): Fix up + an off-by-one for BYTES_BIG_ENDIAN. + + PR target/54589 + * combine.c (find_split_point): For invalid memory address + nonobj + obj + const, if reg + obj + const is valid addressing + mode, split at nonobj. Use if rather than else if for the + fallback. Comment fixes. + +2018-11-30 Indu Bhagat + + * coverage.c (get_coverage_counts): Use from_function_decl for precise + function location. + * profile-count.c (profile_count::dump): Add handling for precise + profile quality. + * profile.c (compute_branch_probabilities): Rely on exec_counts instead + of profile_info to set profile_status of function. + (branch_prob): Do not set profile_status of function based on + profile_info. Done above based on exec_counts. + +2018-11-30 Jakub Jelinek + + PR tree-optimization/88274 + * tree-ssa-reassoc.c (optimize_range_tests_xor, + optimize_range_tests_diff): If type has smaller precision than + corresponding mode or if it has non-standard min/max, compute + everything in a standard type for the precision. + + PR testsuite/85368 + * params.def (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT): New param. + * tree-ssa-ifcombine.c (ifcombine_ifandif): If + --param logical-op-non-short-circuit is present, override + LOGICAL_OP_NON_SHORT_CIRCUIT value from the param. + * fold-const.c (fold_range_test, fold_truth_andor): Likewise. + +2018-11-30 Jeff Law + + * optabs.c (expand_binop): Use "machine_mode" rather than + "enum machine mode" in most recent change. + +2018-11-30 Wilco Dijkstra + + PR middle-end/64242 + * builtins.c (expand_builtin_longjmp): Use a temporary when restoring + the frame pointer. + (expand_builtin_nonlocal_goto): Likewise. + +2018-11-30 David Malcolm + + * diagnostic-core.h (emit_diagnostic): New decl. + * diagnostic.c (emit_diagnostic): New overload, taking a + rich_location *. + +2018-11-30 David Malcolm + + * pretty-print.c (class selftest::test_pretty_printer): New + subclass of pretty_printer. + (selftest::test_prefixes_and_wrapping): New test. + (selftest::pretty_print_c_tests): Call it. + +2018-11-30 Michael Ploujnikov + + Minimize clone counter memory usage in create_virtual_clone. + * cgraph.h (clone_function_name): Add a variant that takes a + tree decl. + * cgraph.h (cgraph_node::create_virtual_clone): Add a new + argument: num_suffix. + * cgraphclones.c (cgraph_node::create_virtual_clone): Pass + num_suffix to clone_function_name. + (clone_function_name): Add a variant that takes a tree decl. + * ipa-cp.c (create_specialized_node): Keep track of clone + counters in clone_num_suffixes hash map. + (ipcp_driver): Free the counter hash map. + * ipa-hsa.c (process_hsa_functions): Creates at most one hsa + clone per function. + +2018-11-30 Michael Ploujnikov + Make function assembly more independent. + + This is achieved by having clone_function_name assign unique clone + numbers for each function independently. + + * cgraphclones.c: Replaced clone_fn_id_num with clone_fn_ids; + hash map. + (clone_function_name_numbered): Use clone_fn_ids. + +2018-11-30 Vladimir Makarov + + PR rtl-optimization/88179 + * lra-constraints.c (address_eliminator::address_eliminator): + Don't eleminate regs in illegitimate address. + +2018-11-30 David Malcolm + + PR preprocessor/88257 + * input.c (get_substring_ranges_for_loc): Fix indentation. + Bulletproof against getting a different files back from + linemap_resolve_location and expand_location_to_spelling_point. + +2018-11-30 Alexander Monakov + + PR gcov-profile/88279 + * tree-profile.c (init_ic_make_global_vars): Call + decl_default_tls_model for variable and not it's type. + +2018-11-30 Sam Tebbs + + * config/arm/arm.h (TARGET_DOTPROD): Add TARGET_VFP5 constraint. + +2018-11-30 Martin Liska + + PR sanitizer/81715 + * asan.c (asan_shadow_cst): Remove, partially transform + into flush_redzone_payload. + (RZ_BUFFER_SIZE): New. + (struct asan_redzone_buffer): New. + (asan_redzone_buffer::emit_redzone_byte): Likewise. + (asan_redzone_buffer::flush_redzone_payload): Likewise. + (asan_redzone_buffer::flush_if_full): Likewise. + (asan_emit_stack_protection): Use asan_redzone_buffer class + that is responsible for proper aligned stores and flushing + of shadow memory payload. + * asan.h (ASAN_MIN_RED_ZONE_SIZE): New. + (asan_var_and_redzone_size): Likewise. + * cfgexpand.c (expand_stack_vars): Use smaller alignment + (ASAN_MIN_RED_ZONE_SIZE) in order to make shadow memory + for automatic variables more compact. + +2018-11-30 Alan Modra + + * config/rs6000/predicates.md (easy_fp_constant): Avoid long + dependent insn sequences. + * config/rs6000/rs6000.c (num_insns_constant): Support long + double constants. + * config/rs6000/rs6000.md (mov_softfloat ): Adjust + length attribute. + +2018-11-30 Alan Modra + + * config/rs6000/rs6000.c (num_insns_constant_gpr): Renamed from + num_insns_constant_wide. Make static. Revise comment. + (num_insns_constant_multi): New function. + (num_insns_constant): Formatting. Correct CONST_WIDE_INT + calculation. Simplify and extract code common to both + CONST_INT and CONST_DOUBLE. Add gcc_unreachable for unhandled + const_double modes. + * config/rs6000/rs6000-protos.h (num_insns_const_wide): Delete. + +2018-11-30 Richard Biener + + PR tree-optimization/88274 + * tree-vrp.c (ranges_from_anti_range): Fix handling of + TYPE_MIN/MAX_VALUE. + +2018-11-29 Andi Kleen + + * config/i386/i386.c (current_fentry_section): Add. + (x86_function_profiler): Handle fentry section. + (ix86_attribute_table): Add fentry section. + * config/i386/i386.opt: Add -mfentry-section. + * doc/extend.texi: Document fentry_section attribute. + * doc/invoke.texi: Document -mfentry-section. + +2018-11-29 Andi Kleen + + * config/i386/i386.c (x86_print_call_or_nop): Handle nop name. + (current_fentry_name): Add. + (x86_function_profiler): Handle fentry_name attribute. + (ix86_handle_fentry_name): Add. + (ix86_attribute_table): Add fentry_name. + * config/i386/i386.opt: Add -mfentry-name + * doc/extend.texi: Document fentry_name. + * doc/invoke.texi: Document minstrument-return. + +2018-11-29 Andi Kleen + + * config/i386/i386-opts.h (enum instrument_return): Add. + * config/i386/i386.c (output_return_instrumentation): Add. + (ix86_output_function_return): Call output_return_instrumentation. + (ix86_output_call_insn): Call output_return_instrumentation. + * config/i386/i386.opt: Add -minstrument-return=. + * doc/invoke.texi (-minstrument-return): Document. + +2018-11-29 Eric Botcazou + + PR target/87807 + * config/sparc/sparc-modes.def: Minor tweak. + * config/sparc/sparc.c: Minor reordering. + (sparc_pass_by_reference): Move around. + (traverse_record_type): Change offset from HOST_WIDE_INT to int. + (classify_registers): Likewise for bitpos. + (function_arg_slotno): Remove dead test and tweak comments. + : Remove useless assertion and test whether the + parameter is named in order to pass it in FP registers. Return + the regno for floating-point vector types. + (compute_int_layout): Change bitpos from HOST_WIDE_INT to int. + (compute_fp_layout): Likewise. + (count_registers): Likewise. + (assign_int_registers): Likewise. + (assign_fp_registers): Likewise. + (assign_registers): Likewise. + (function_arg_record_value): Change size from HOST_WIDE_INT to int + and use CEIL_NWORDS to compute the number of registers. + (function_arg_union_value): Minor tweaks. + (function_arg_vector_value): Add slotno and named parameters, use + CEIL_NWORDS to compute the number of registers. + (sparc_function_arg_1): Rework handling of vector types. Change + size from HOST_WIDE_INT to int. + (sparc_arg_partial_bytes): Rework handling of 32-bit ABI and deal + with vector types for the 64-bt ABI. + (sparc_function_arg_advance): Likewise. + (sparc_return_in_memory): Add reference to -fpcc-struct-return. + (sparc_struct_value_rtx): Return NULL_RTX instead of 0. + (sparc_function_value_1): Rework handling of vector types. Change + size from HOST_WIDE_INT to int. + +2018-11-29 Jakub Jelinek + + PR target/88152 + * config/i386/sse.md (*_movmsk_lt, + *_movmsk_zext_lt, + *_movmsk_shift, + *_movmsk_zext_shift, + *_pmovmskb_lt, *_pmovmskb_zext_lt): New + define_insn_and_split patterns. + + PR target/54700 + * config/i386/sse.md + (*_blendv_lt, + *_blendv_ltint, + *_pblendvb_lt): Change define_insn into + define_insn_and_split. + +2018-11-29 Peter Bergner + + PR target/87496 + * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow + -mabi=ieeelongdouble without both -mpopcntd and -mvsx. + +2018-11-29 Uros Bizjak + + * config/i386/i386.c (inline_memory_move_cost): + Check "in" for 2 in MMX_CLASS_P case. + * config/i386/mmx.md (*mov_internal): Correct + TARGET_INTER_UNIT_MOVES_FROM_VEC and TARGET_INTER_UNIT_MOVES_TO_VEC + alternatives in preferred_for_speed attribute calculation. + +2018-11-29 Martin Sebor + + PR c/88172 + PR testsuite/88208 + * doc/extend.texi (attribute constructor): Clarify. + +2018-11-29 Martin Liska + + PR middle-end/88246 + * builtins.c (expand_movstr): Fix thinko introduced + when switching to the new enum. + +2018-11-29 qing zhao + + * cif-code.def (EXTERN_LIVE_ONLY_STATIC): New CIF code. + * common.opt: Add -flive-patching flag. + * doc/invoke.texi: Document -flive-patching. + * flag-types.h (enum live_patching_level): New enum. + * ipa-inline.c (can_inline_edge_p): Disable external functions from + inlining when flag_live_patching is LIVE_PATCHING_INLINE_ONLY_STATIC. + * opts.c (control_options_for_live_patching): New function. + (finish_options): Make flag_live_patching incompatible with flag_lto. + Control IPA optimizations based on different levels of + flag_live_patching. + +2018-11-29 Giuliano Belinassi + + * match.pd (sinh (atanh (x))): New simplification rules. + (cosh (atanh (x))): Likewise. + +2018-11-29 Jakub Jelinek + + PR target/54700 + * config/i386/sse.md (ssebytemode): Add V16SI, V8SI and V4SI entries. + (ssefltmodesuffix, ssefltvecmode): New define_mode_attrs. + (*_blendv_lt, + *_blendv_ltint, + *_pblendvb_lt): New define_insns. + + PR target/88152 + * tree.h (build_uniform_cst, uniform_integer_cst_p): Declare. + * tree.c (build_uniform_cst, uniform_integer_cst_p): New functions. + * match.pd (define_predicates): Add uniform_integer_cst_p. + (cmp @0 INTEGER_CST@1, cmp (convert?@2 @0) INTEGER_CST@1): Adjust + so that it works also for vector comparisons with uniform constants + with INTEGER_CST element. + + PR target/88234 + * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): For + vec_add and vec_sub builtins, perform PLUS_EXPR or MINUS_EXPR + in unsigned_type_for instead of vector integral type where overflow + doesn't wrap. + +2018-11-29 Michael Ploujnikov + + There can be at most one .resolver clone per function + * config/rs6000/rs6000.c (make_resolver_func): Generate + resolver symbol with clone_function_name instead of + clone_function_name_numbered. + +2018-11-29 Richard Biener + + PR tree-optimization/88243 + * tree-vect-patterns.c (vect_mark_pattern_stmts): Set the def + type of all pattern-sequence stmts to vect_internal_def. + +2018-11-29 Andre Vieira + + PR target/88224 + * config/arm/arm-cpus.in (armv7-r): Add FP16conv configurations. + (cortex-r7, cortex-r8): Update default and add new configuration. + * doc/invoke.texi (armv7-r): Add two new vfp options. + (nofp.dp): Add cortex-r7 and cortex-r8 to the list of targets that + support this option. + +2018-11-29 Alan Modra + + * config/rs6000/rs6000.c (rs6000_emit_move): Disable long + double split for targets other than Darwin. + +2018-11-29 Alan Modra + + * config/rs6000/rs6000.md (movdi_internal64): Correct lengths. + +2018-11-29 Alan Modra + + * config/rs6000/predicates.md (easy_fp_constant): Remove code + dealing with integers in const_double. Assert on unexpected + modes. Delete superfluous ABI_V4 test. + * config/rs6000/rs6000.c (rs6000_emit_move): Comment fixes. + Don't call easy_fp_constant for Pmode. + (rs6000_hash_constant): Remove code dealing with integers in + const_double. + (rs6000_legitimate_constant_p): Likewise. + (output_toc): Formatting, use CONST_DOUBLE_P. + +2018-11-29 Alan Modra + + * config/rs6000/constraints.md (G, H): Comment on purpose of + constraint. Correct mode comments and "G" mode test. + * config/rs6000/rs6000.md (movdi_internal32): Remove "GH" from + alternative handling "F". Add length attr. Formatting. + (mov_softfloat ): Delete "GH" from + alternative, and move "F" to separate alternative. Correct + insn lengths. + +2018-11-29 Alan Modra + + * config/rs6000/predicates.md (easy_vector_constant): Don't call + easy_fp_constant. + +2018-11-29 Alan Modra + + * config.in (HAVE_AS_PLTSEQ): Add. + * config/rs6000/predicates.md (indirect_call_operand): New. + * config/rs6000/rs6000-protos.h (rs6000_pltseq_template), + (rs6000_sibcall_sysv): Declare. + * config/rs6000/rs6000.c (init_cumulative_args): Set cookie + CALL_LONG for -fno-plt. + (print_operand ): Handle UNSPEC_PLTSEQ. + (rs6000_indirect_call_template_1): Emit .reloc directives for + UNSPEC_PLTSEQ calls. + (rs6000_pltseq_template): New function. + (rs6000_longcall_ref): Add arg parameter. Use PLT16 insns if + relocs supported by assembler. Move SYMBOL_REF test to callers. + (rs6000_call_aix): Adjust rs6000_longcall_ref call. Package + insns in UNSPEC_PLTSEQ, preserving original func_desc. + (rs6000_call_sysv): Likewise. + (rs6000_sibcall_sysv): New function. + * config/rs6000/rs6000.h (HAVE_AS_PLTSEQ): Provide default. + * config/rs6000/rs6000.md (UNSPEC_PLTSEQ, UNSPEC_PLT16_HA, + UNSPEC_PLT16_LO): New. + (pltseq_tocsave, pltseq_plt16_ha, pltseq_plt16_lo, pltseq_mtctr): New. + (call_indirect_nonlocal_sysv): Don't differentiate zero from non-zero + cookie in constraints. Test explicitly for flags in length attr. + Handle unspec operand 1. + (call_value_indirect_nonlocal_sysv): Likewise. + (call_indirect_aix, call_value_indirect_aix): Handle unspec operand 1. + (call_indirect_elfv2, call_value_indirect_elfv2): Likewise. + (sibcall, sibcall_value): Use rs6000_sibcall_sysv. + (sibcall_indirect_nonlocal_sysv): New pattern. + (sibcall_value_indirect_nonlocal_sysv): Likewise. + (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Remove indirect + call alternatives. + * configure.ac: Check for gas plt sequence marker support. + * configure: Regenerate. + +2018-11-29 Alan Modra + + * config/rs6000/predicates.md (unspec_tls): New. + * config/rs6000/rs6000-protos.h (rs6000_call_template), + (rs6000_sibcall_template): Update prototype. + (rs6000_longcall_ref): Delete. + (rs6000_call_sysv): Declare. + * config/rs6000/rs6000.c (edit_tls_call_insn): New function. + (global_tlsarg): New variable. + (rs6000_legitimize_tls_address): Rewrite __tls_get_addr call + handling. + (print_operand): Extract UNSPEC_TLSGD address operand. + (rs6000_call_template, rs6000_sibcall_template): Remove arg + parameter, extract from second call operand instead. + (rs6000_longcall_ref): Make static, localize vars. + (rs6000_call_aix): Rename parameter to reflect new usage. Take + tlsarg from global_tlsarg. Don't create unused rtl or nop insns. + (rs6000_sibcall_aix): Rename parameter to reflect new usage. Take + tlsarg from global_tlsarg. + (rs6000_call_sysv): New function. + * config/rs6000/rs6000.md: Adjust rs6000_call_template and + rs6000_sibcall_template throughout. + (tls_gd_aix, tls_gd_sysv, tls_gd_call_aix, tls_gd_call_sysv): Delete. + (tls_ld_aix, tls_ld_sysv, tls_ld_call_aix, tls_ld_call_sysv): Delete. + (tls_gdld_nomark): New insn. + (tls_gd): Swap operand order. Simplify mode selection. + (tls_gd_high, tls_gd_low): Swap operand order. + (tls_ld): Remove const_int 0 vector element from UNSPEC_TLSLD. + Simplify mode selection. + (tls_ld_high, tls_ld_low): Similarly adjust UNSPEC_TLSLD. + (call, call_value): Don't assert for second call operand. + Use rs6000_call_sysv. + +2018-11-29 Alan Modra + + * config/rs6000/darwin.md (call_indirect_nonlocal_darwin64), + (call_nonlocal_darwin64, call_value_indirect_nonlocal_darwin64), + (call_value_nonlocal_darwin64): Remove constraints from second call + arg, the rounded_stack_size_rtx arg. + * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv, tls_gd_call_aix), + (tls_gd_call_sysv, tls_ld_aix, tls_ld_sysv, tls_ld_call_aix), + (tls_ld_call_sysv, call_local32, call_local64, call_value_local32), + (call_value_local64, call_indirect_nonlocal_sysv), + (call_nonlocal_sysv, call_nonlocal_sysv_secure), + (call_value_indirect_nonlocal_sysv, call_value_nonlocal_sysv), + (call_value_nonlocal_sysv_secure, call_local_aix), + (call_value_local_aix, call_nonlocal_aix, call_value_nonlocal_aix), + (call_indirect_aix, call_value_indirect_aix, call_indirect_elfv2), + (call_value_indirect_elfv2, sibcall_local32, sibcall_local64), + (sibcall_value_local32, sibcall_value_local64, sibcall_aix), + (sibcall_value_aix): Likewise. + +2018-11-29 Alan Modra + + * config/rs6000/rs6000.md (TLSmode): Delete mode iterator. Replace + with P throughout except for call mems which should use SI. + (tls_abi_suffix, tls_sysv_suffix, tls_insn_suffix): Delete mode + attributes. Replace with bits, mode and ptrload respectively. + +2018-11-29 Alan Modra + + * config/rs6000/rs6000-protos.h (rs6000_indirect_call_template), + (rs6000_indirect_sibcall_template): Declare. + * config/rs6000/rs6000.c (rs6000_indirect_call_template_1), + (rs6000_indirect_call_template, rs6000_indirect_sibcall_template): + New functions. + * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv), + (call_value_indirect_nonlocal_sysv, sibcall_nonlocal_sysv), + (call_indirect_aix, call_value_indirect_aix): Use + rs6000_indirect_call_template and rs6000_indirect_sibcall_template. + call_indirect_elfv2, call_value_indirect_elfv2): Likewise, and + handle both speculation and non-speculation cases. + (call_indirect_aix_nospec, call_value_indirect_aix_nospec): Delete. + (call_indirect_elfv2_nospec, call_value_indirect_elfv2_nospec): Delete. + +2018-11-29 Alan Modra + + * config/rs6000/rs6000-protos.h (rs6000_call_template): Declare. + (rs6000_sibcall_template): Declare. + (macho_call_template): Rename from output_call. + * config/rs6000/rs6000.c (rs6000_call_template_1): New function. + (rs6000_call_template, rs6000_sibcall_template): Likewise. + (macho_call_template): Rename from output_call. + * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv), + (tls_gd_call_aix, tls_gd_call_sysv, tls_ld_aix, tls_ld_sysv), + (tls_ld_call_aix, tls_ld_call_sysv, call_nonlocal_sysv), + (call_nonlocal_sysv_secure, call_value_nonlocal_sysv), + (call_value_nonlocal_sysv_secure, call_nonlocal_aix), + (call_value_nonlocal_aix): Use rs6000_call_template and update + occurrences of output_call to macho_call_template. + (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv, sibcall_aix), + (sibcall_value_aix): Use rs6000_sibcall_template. + +2018-11-28 Aaron Sawdey + + * config/rs6000/rs6000-string.c (expand_block_clear): Change how + we determine if unaligned vsx is ok. + +2018-11-28 Jan Hubicka + + * predict.c (determine_unlikely_bbs): Forward declare; also determine + edges that are always known to be taken because it is only likely + edge out of given BB. + (tree_estimate_probability): Call before profile guessing to get bit + of extra precision. + +2018-11-28 Jan Hubicka + + * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Handle + profile_probability::always better. + +2018-11-28 Jan Hubicka + + * profile-count.h (profile_count::split): Give better result when + splitting profile_probability::always. + +2018-11-28 Vladimir Makarov + + PR target/88207 + * ira-costs.c (scan_one_insn): Process subregs when updating costs + for pseudos and allocnos from insn. + +2018-11-28 David Edelsohn + + * config/rs6000/aix72.h: Update to match aix71.h changes. + +2018-11-28 Jeff Law + + * config/h8300/constraints.md: Add "C" constraint for call insns. + * config/h8300/h8300.md (call, call_value): Turn into a define_expand + and define_insn pair. Move invalid call targets into a register in + the expander and fix constraints in the matching pattern. + * config/h8300/predicates.md (call_expander_operand): Renamed from + call_insn_operand. Reject things we shouldn't be trying to handle. + (call_insn_operand): New predicate for use by the call/call_value + insns. + (small_call_insn_operand): Update appropriately. + +2018-11-28 Sam Tebbs + + * config/aarch64/aarch64.c (aarch64_process_target_attr): Replace + calls to strtok with strtok_r. + +2018-11-28 Richard Biener + + PR tree-optimization/88223 + * tree-ssa-sccvn.c (vn_reference_lookup_3): When skipping + over a stored-same value may-alias store make sure to consider + partial overlaps which are valid when TBAA reasonings do not + apply and byte-granular overlaps are possible at all. + +2018-11-28 Richard Biener + + PR tree-optimization/88217 + * vr-values.c (vr_values::extract_range_from_phi_node): Make + sure to handle results > +INF and < -INF correctly when + trying to drop down to +INF - 1 or -INF + 1. + +2018-11-28 Alan Modra + + * xcoffout.c (do_block): Signed/unsigned warning fix. + +2018-11-28 Richard Biener + + PR tree-optimization/79351 + * tree-ssa-sccvn.c (vn_reference_lookup_3): For assignments from + empty CONSTRUCTORs ensure the store is at a constant position. + +2018-11-28 Richard Biener + + PR tree-optimization/88229 + * tree-ssa.c (non_rewritable_mem_ref_base): Check DECL_SIZE_UNIT + is an INTEGER_CST before accessing it so. + +2018-11-28 Sam Tebbs + + * doc/invoke.texi (-mtune=): Remove obsolete CPU names. + +2018-11-28 Jakub Jelinek + + PR target/88189 + * config/i386/i386.c (ix86_expand_sse_movcc): Handle DFmode and + SFmode using sse4_1_blendvs[sd] with TARGET_SSE4_1. Formatting fixes. + * config/i386/sse.md (sse4_1_blendv): New pattern. + +2018-11-27 Martin Liska + + * gcov.c (generate_results): Append current_working_directory + only when exists. + +2018-11-27 Mike Gulick + + PR preprocessor/83173 + * input.c (dump_location_info): Dump reason and included_from + fields from line_map_ordinary struct. Fix indentation when + location > 5 digits. + * diagnostic-show-locus.c (num_digits, num_digits): Move to + diagnostic.c to allow it to be utilized by input.c. + * diagnostic.c (num_digits, selftest::test_num_digits): Moved + here. + (selftest::diagnostic_c_tests): Run selftest::test_num_digits. + * diagnostic.h (num_digits): Add extern definition. + +2018-11-27 Fredrik Noring + + * config/mips/mips.c (mips_reorg_process_insns) + (mips_option_override): Handle `-mfix-r5900'. + * config/mips/mips.h (ASM_SPEC): Add `mfix-r5900' and + `mno-fix-r5900'. + * config/mips/mips.opt (mfix-r5900): New option. + * doc/invoke.texi: Document the `r5900' processor name, and + `-mfix-r5900' and `-mno-fix-r5900' options. + +2018-11-27 Jakub Jelinek + + PR target/88188 + * config/rs6000/rs6000.c (print_operand) : Use + output_operand_lossage instead of gcc_assert. + : Likewise. + : Likewise. + : Use output_operand_lossage instead of gcc_unreachable. + +2018-11-27 Jeff Law + + * config/riscv/riscv (riscv_block_mvoe_straight): Use RETURN_BEGIN + in call to move_by_pieces. + + * config/sh/sh-mem.c (expand_block_move): Use RETURN_BEGIN in call + to move_by_pieces. + + * config/lm32/lm32.c (lm32_block_move_inline): Use RETURN_BEGIN in + call to move_by_pieces. + + * config/mips/mips.c (mips_block_move_straight): Use RETURN_BEGIN + in call to move_by_pieces. + + * config/microblaze/microblaze.c (microblaze_block_move_straight): Use + RETURN_BEGIN in call to move_by_pieces. + (microblaze_expand_block_move): Likewise. + +2018-11-27 Tamar Christina + + * doc/md.texi (xorsign): Document it. + +2018-11-27 Martin Liska + + * config/gnu-user.h (TARGET_F951_OPTIONS): New. + * gcc.c (find_fortran_preinclude_file): New function + to handle Fortran pre-include. + +2018-11-27 Martin Liska + + * asan.c (asan_emit_stack_protection): Use new enum values + instead of int constants. + * builtins.c (expand_builtin_memory_copy_args): Replace int + type with memop_ret enum type. + (expand_builtin_mempcpy_args): Likewise. + (expand_builtin_memcpy): Use new enum values + instead of int constants. Likewise. + (expand_builtin_mempcpy): Likewise. + (expand_movstr): Likewise. + (expand_builtin_strcpy_args): Likewise. + (expand_builtin_stpcpy_1): Likewise. + (expand_builtin_strncpy): Likewise. + (expand_builtin_memset_args): Likewise. + * expr.c (move_by_pieces_d::finish_endp): Rename to ... + (move_by_pieces_d::finish_retmode): ... this. + (move_by_pieces): Change last argument type to memop_ret. + (store_by_pieces): Use new enum values + instead of int constants. + (emit_block_move_hints): Likewise. + (emit_push_insn): Likewise. + (store_expr): Likewise. + * expr.h (store_by_pieces): Change int to newly added enum + type. + * rtl.h (enum memop_ret): Define. + (move_by_pieces): Use the enum type. + +2018-11-27 Alan Modra + + * config/rs6000/aix71.h (ASM_SPEC): Don't select default -maix64 + cpu here. + (ASM_CPU_SPEC): Do so here. Rewrite using if .. else if .. specs + form. Error on missing -mcpu case. + * config/rs6000/driver-rs6000.c (asm_names <_AIX>): Update NULL case. + (asm_names ): Add missing cpus. Update NULL case. Apply + PR63177 fix for -mcpu=power8 and -mcpu=powerpc64le. + * config/rs6000/rs6000.h (ASM_CPU_SPEC): Rewrite using if .. + else if .. specs form. Error on missing -mcpu case. Don't output + duplicate -maltivec. Apply PR63177 fix for -mcpu=powerpc64le. + +2018-11-26 David Malcolm + + * dump-context.h (dump_context::dump_loc): Convert 1st param from + dump_flags_t to const dump_metadata_t &. Convert 2nd param from + const dump_location_t & to const dump_user_location_t &. + (dump_context::dump_loc_immediate): Convert 2nd param from + const dump_location_t & to const dump_user_location_t &. + (dump_context::dump_gimple_stmt): Convert 1st param from + dump_flags_t to const dump_metadata_t &. + (dump_context::void dump_gimple_stmt_loc): Likewise; convert + 2nd param from const dump_location_t & to + const dump_user_location_t &. + (dump_context::dump_gimple_expr): Convert 1st param from + dump_flags_t to const dump_metadata_t &. + (dump_context::dump_gimple_expr_loc): Likewise; convert + 2nd param from const dump_location_t & to + const dump_user_location_t &. + (dump_context::dump_generic_expr): Convert 1st param from + dump_flags_t to const dump_metadata_t &. + (dump_context::dump_generic_expr_loc): Likewise; convert + 2nd param from const dump_location_t & to + const dump_user_location_t &. + (dump_context::dump_printf_va): Convert 1st param from + dump_flags_t to const dump_metadata_t &. + (dump_context::dump_printf_loc_va): Likewise; convert + 2nd param from const dump_location_t & to + const dump_user_location_t &. + (dump_context::dump_dec): Convert 1st param from + dump_flags_t to const dump_metadata_t &. + (dump_context::dump_symtab_node): Likewise. + (dump_context::begin_scope): Split out 2nd param into + user and impl locations. + (dump_context::ensure_pending_optinfo): Add metadata param. + (dump_context::begin_next_optinfo): Replace dump_location_t param + with metadata and user location. + * dumpfile.c (dump_context::dump_loc): Convert 1st param from + dump_flags_t to const dump_metadata_t &. Convert 2nd param from + const dump_location_t & to const dump_user_location_t &. + (dump_context::dump_loc_immediate): Convert 2nd param from + const dump_location_t & to const dump_user_location_t &. + (dump_context::dump_gimple_stmt): Convert 1st param from + dump_flags_t to const dump_metadata_t &. + (dump_context::void dump_gimple_stmt_loc): Likewise; convert + 2nd param from const dump_location_t & to + const dump_user_location_t &. + (dump_context::dump_gimple_expr): Convert 1st param from + dump_flags_t to const dump_metadata_t &. + (dump_context::dump_gimple_expr_loc): Likewise; convert + 2nd param from const dump_location_t & to + const dump_user_location_t &. + (dump_context::dump_generic_expr): Convert 1st param from + dump_flags_t to const dump_metadata_t &. + (dump_context::dump_generic_expr_loc): Likewise; convert + 2nd param from const dump_location_t & to + const dump_user_location_t &. + (dump_context::dump_printf_va): Convert 1st param from + dump_flags_t to const dump_metadata_t &. + (dump_context::dump_printf_loc_va): Likewise; convert + 2nd param from const dump_location_t & to + const dump_user_location_t &. + (dump_context::dump_dec): Convert 1st param from + dump_flags_t to const dump_metadata_t &. + (dump_context::dump_symtab_node): Likewise. + (dump_context::begin_scope): Split out 2nd param into + user and impl locations. + (dump_context::ensure_pending_optinfo): Add metadata param. + (dump_context::begin_next_optinfo): Replace dump_location_t param + with metadata and user location. + (dump_gimple_stmt): Convert 1st param from dump_flags_t to + const dump_metadata_t &. + (dump_gimple_stmt_loc): Likewise; convert 2nd param from + const dump_location_t & to const dump_user_location_t &. + (dump_gimple_expr): Convert 1st param from dump_flags_t to + const dump_metadata_t &. + (dump_gimple_expr_loc): Likewise; convert 2nd param from + const dump_location_t & to const dump_user_location_t &. + (dump_generic_expr): Convert 1st param from dump_flags_t to + const dump_metadata_t &. + (dump_generic_expr_loc): Likewise; convert 2nd param from + const dump_location_t & to const dump_user_location_t &. + (dump_printf): Convert 1st param from dump_flags_t to + const dump_metadata_t &. + (dump_printf_loc): Likewise; convert 2nd param from + const dump_location_t & to const dump_user_location_t &. + (dump_dec): Convert 1st param from dump_flags_t to + const dump_metadata_t &. + (dump_symtab_node): Likewise. + (dump_begin_scope): Split out 2nd param into user and impl + locations. + (selftest::assert_impl_location_eq): New function. + (ASSERT_IMPL_LOCATION_EQ): New macro. + (selftest::test_impl_location): Update to use + ASSERT_IMPL_LOCATION_EQ. + (selftest::test_capture_of_dump_calls): Convert "loc" to + dump_user_location_t. Add ASSERT_IMPL_LOCATION_EQ throughout, + verifying line numbers of dump emissions. + * dumpfile.h (class dump_metadata_t): New class. + (dump_printf): Convert 1st param from dump_flags_t to + const dump_metadata_t &. + (dump_printf_loc): Likewise; convert 2nd param from + const dump_location_t & to const dump_user_location_t &. + (dump_generic_expr_loc): Likewise. + (dump_generic_expr): Convert 1st param from dump_flags_t to + const dump_metadata_t &. + (dump_gimple_stmt_loc): Likewise; convert 2nd param from + const dump_location_t & to const dump_user_location_t &. + (dump_gimple_stmt): Convert 1st param from dump_flags_t to + const dump_metadata_t &. + (dump_gimple_expr_loc): Likewise; convert 2nd param from + const dump_location_t & to const dump_user_location_t &. + (dump_gimple_expr): Convert 1st param from dump_flags_t to + const dump_metadata_t &. + (dump_symtab_node): Likewise. + (dump_dec): Likewise. + (dump_begin_scope): Split out 2nd param into user and impl + locations. + (auto_dump_scope::auto_dump_scope): Split "loc" param into a user + location and impl_location, and capture the impl_location. + (AUTO_DUMP_SCOPE): Rename param from LOC to USER_LOC. + * loop-unroll.c (report_unroll): Update for changes to + dump_printf_loc and dump_printf. + * opt-problem.cc (opt_problem::opt_problem): Update for change to + dump_loc. + * optinfo-emit-json.cc + (selftest::test_building_json_from_dump_calls): Convert "loc" from + dump_location_t to dump_user_location_t. + * optinfo.cc (optinfo::emit_for_opt_problem): Update for change in + dump_loc_immediate. + * profile.c (compute_branch_probabilities): Update for change to + dump_printf_loc. + * selftest.h (ASSERT_STR_CONTAINS_AT): New macro. + * tree-vect-slp.c (vect_print_slp_tree): Update for change to + dump_printf_loc. + +2018-11-27 Jozef Lawrynowicz + + * doc/sourcebuild.texi: Document check_effective_target_int_eq_float + and check_effective_target_ptr_eq_long. + +2018-11-27 Alan Modra + + * config.gcc (powerpc*-*-freebsd*, powerpc-*-netbsd*), + (powerpc-*-eabisimaltivec*, powerpc-*-eabisim*, powerpc-*-elf*), + (powerpc-*-eabialtivec*, powerpc-*-eabi*, powerpc-*-rtems*), + (powerpc-wrs-vxworks*, powerpc-*-lynxos*, powerpcle-*-elf*), + (powerpcle-*-eabisim*, powerpcle-*-eabi*): Add gnu-user.h to tm_file. + * config/rs6000/freebsd.h (CPLUSPLUS_CPP_SPEC), + (LINK_GCC_C_SEQUENCE_SPEC): Undef. + (ASM_APP_ON, ASM_APP_OFF): Don't define. + * config/rs6000/freebsd64.h (ASM_APP_ON, ASM_APP_OFF): Don't define. + * config/rs6000/lynx.h (ASM_APP_ON, ASM_APP_OFF): Don't define. + * config/rs6000/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + * config/rs6000/netbsd.h (CPLUSPLUS_CPP_SPEC), + (LINK_GCC_C_SEQUENCE_SPEC): Undef. + * config/rs6000/rtems.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + * config/rs6000/sysv4.h (GNU_USER_TARGET_CRTI): Redefine. + (GNU_USER_TARGET_CRTN): Redefine. + (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC. + (LIB_LINUX_SPEC): Use GNU_USER_TARGET_LIB_SPEC. + (CRTOFFLOADBEGIN, CRTOFFLOADEND): Don't define. + (STARTFILE_LINUX_SPEC): Define as GNU_USER_TARGET_STARTFILE_SPEC. + (ENDFILE_LINUX_SPEC): Define as GNU_USER_TARGET_ENDFILE_SPEC. + (UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER): Don't define. + (LINK_EH_SPEC): Don't define. + +2018-11-26 Martin Sebor + + PR 87756 + * expr.c (string_constant): Handle top-level decls of all character + types and subobjects of narrow character type. + +2018-11-27 Alan Modra + + * config.gcc (powerpc*-*-linux*): Add linux.h to tm_file. + * config/rs6000/linux.h (TARGET_OS_CPP_BUILTINS): Use + GNU_USER_TARGET_OS_CPP_BUILTINS. + (RS6000_ABI_NAME): Define. + * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Use + GNU_USER_TARGET_OS_CPP_BUILTINS. + (MUSL_DYNAMIC_LINKER32): Undef before defining. + (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64): Don't define. + (CHOOSE_DYNAMIC_LINKER): Don't define. + (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Don't define. + * config/rs6000/sysv4.h (MUSL_DYNAMIC_LINKER): Undef before defining. + (CHOOSE_DYNAMIC_LINKER, GNU_USER_DYNAMIC_LINKER): Only define when + not already defined. + (CPP_OS_LINUX_SPEC): Remove defines and asserts handled by + TARGET_OS_CPP_BUILTINS. + +2018-11-26 Jozef Lawrynowicz + + * doc/sourcebuild.texi: Document check_effective_target_newlib_nano_io. + +2018-11-26 Jakub Jelinek + + PR target/88195 + * config/i386/i386.c (def_builtin2): If tcode == VOID_FTYPE_UINT64 + and !TARGET_64BIT, return NULL_TREE. + + PR c++/86900 + * dwarf2out.c (secname_for_decl): For functions with + DECL_SECTION_NAME if in_cold_section_p, try to return + current_function_section's name if it is a named section. + +2018-11-26 Maya Rashish + + PR target/58397 + * config.host (*-*-netbsd*): Use x-netbsd and host-netbsd.o. + * config/x-netbsd: New file. + * config/host-netbsd: New file. + +2018-11-26 Jozef Lawrynowicz + + * doc/sourcebuild.texi: Document check_effective_target_size20plus. + Clarify documentation for check_effective_target_size32plus. + +2018-11-26 Aaron Sawdey + + * config/rs6000/rs6000-string.c (expand_cmp_vec_sequence): Rename + and modify expand_strncmp_vec_sequence. + (emit_final_compare_vec): Rename and modify emit_final_str_compare_vec. + (generate_6432_conversion): New function. + (expand_block_compare): Add support for vsx. + (expand_block_compare_gpr): New function. + * config/rs6000/rs6000.opt (rs6000_block_compare_inline_limit): Increase + default limit to 63 because of more compact vsx code. + +2018-11-26 Uros Bizjak + + PR target/88178 + * config/i386/i386.c (dbx_register_map): Use IGNORED_DWARF_REGNUM + for registers for which no debug information can be generated. + Use INVALID_REGNUM for non-existent registers. + (dbx64_register_map): Ditto. + (svr4_dbx_register_map): Ditto. + +2018-11-26 Sandra Loosemore + + PR c/57182 + * doc/invoke.texi (Optimize Options): Document that + -freorder-functions also uses "hot" and "cold" attributes. + +2018-11-26 Kyrylo Tkachov + + * config/aarch64/aarch64.c (aarch64_mangle_type): Fix typo in comment. + +2018-11-26 Kyrylo Tkachov + + * config/arm/types.md (mul64): Rename to... + (widen_mul64): ... This. + * config/arm/arm-generic.md: Rename mul64 to widen_mul64. + * config/arm/cortex-a15.md: Likewise. + * config/arm/cortex-a5.md: Likewise. + * config/arm/cortex-a53.md: Likewise. + * config/arm/cortex-a57.md: Likewise. + * config/arm/cortex-a7.md: Likewise. + * config/arm/cortex-m4.md: Likewise. + * config/arm/exynos-m1.md: Likewise. + * config/arm/marvell-pj4.md: Likewise. + * config/arm/xgene1.md: Likewise. + +2018-11-26 Richard Biener + + PR tree-optimization/88182 + * tree-vect-loop.c (vectorizable_reduction): Pick up single + correct reduc_def_info. + * tree-vect-slp.c (vect_analyze_slp_instance): Set + STMT_VINFO_REDUC_DEF of the first stmt. + +2018-11-26 Andreas Krebbel + + * doc/invoke.texi: Document z14/arch12 -march option. + +2018-11-25 Sandra Loosemore + + PR c/57166 + * doc/invoke.texi (Option Summary): Add -Wmissing-noreturn. + (Warning Options): Likewise. + +2018-11-25 Sandra Loosemore + + PR web/79738 + * doc/extend.texi (Common Function Attributes): Clarify that + functions with "const" attribute can read const global variables. + +2018-11-26 Alan Modra + + * config/rs6000/rs6000.h (OBJECT_PEF, TARGET_MACOS): Delete. + +2018-11-25 Sandra Loosemore + + PR other/54265 + * doc/extend.texi (Common Variable Attributes): Use preferred + placement of type attributes in examples, plus whitespace fixes. + (Type Attributes): Clarify why placement of attributes + immediately after struct/union/enum keyword is preferred. + (Common Type Attributes): Use preferred placement of type + attributes in examples, plus more whitespace fixes. + +2018-11-25 Paul Koning + + * config/pdp11/pdp11.h (TARGET_HAS_NO_HW_DIVIDE): Define. + +2018-11-25 Rainer Orth + + * doc/sourcebuild.texi (Effective-Target Keywords, Environment + attributes): Document d_runtime. + +2018-11-25 Vladimir Makarov + + PR bootstrap/88157 + * ira-costs.c (record_operand_costs): Initiate register move cost + for mode. + +2018-11-23 Jeff Law + + PR rtl-optimization/87468 + * tree-ssa-threadupdate.c (create_block_for_threading): Clear + EDGE_IGNORE on all outgoing edges of the duplicate block. + +2018-11-23 Vladimir Makarov + + PR bootstrap/88157 + * ira-costs.c (record_operand_costs): Use bigger hard reg class if + its mode does not fit to the original class. + +2018-11-23 Martin Sebor + + PR tree-optimization/87756 + * expr.c (string_constant): Synthesize a string literal from + the address of a constant character. + * tree.c (build_string_literal): Add an argument. + * tree.h (build_string_literal): Same. + +2018-11-23 Christoph Muellner + + * config/aarch64/aarch64-cores.def: Define emag. + * config/aarch64/aarch64-tune.md: Regenerated with emag. + * config/aarch64/aarch64.c (emag_tunings): New struct. + * doc/invoke.texi: Document mtune value. + +2018-11-23 Christoph Muellner + Philipp Tomsich + + * config/aarch64/aarch64.c (xgene1_tunings): Optimize Xgene1 tunings + for GCC 9. + * config/aarch64/aarch64.c (xgene1_tunings): Add Xgene1 specific + prefetch tunings. + * config/aarch64/aarch64.c (xgene1_addrcost_table): Correct the post-modify + costs. + * config/arm/aarch-cost-tables.h (xgene1_extra_costs): Update the cost table + for XGene1. + +2018-11-23 Richard Biener + + PR tree-optimization/88149 + * tree-vect-slp.c (vect_slp_analyze_node_operations): Detect + the case where there are two different def types for the + same operand at different operand position in the same stmt. + +2018-23-11 Mihail Ionescu + + * config/arm/arm.c (arm_expand_compare_and_swap): Simplify and call + gen_atomic_compare_swap_1. + (arm_evpc_neon_vuzp): Likewise gen_neon_vuzp_internal. + (arm_evpc_neon_vtrn): Likewise gen_neon_vtrn_internal. + (arm_evpc_neon_vext): Likewise gen_neon_vext_internal. + (arm_evpc_neon_vzip): Likewise gen_neon_vzip_internal. + (arm_evpc_neon_vrev): Replace the function pointer and simplify the mode + checks. + * config/arm/arm.md (neon_vext), + (neon_vrev64, neon_vrev32), + (neon_vrev16, neon_vtrn_internal), + (neon_vzip_internal, neon_vuzp_internal): Add an '@'character + before the pattern name. + * config/arm/sync.md: + (atomic_compare_and_swap_1), + (atomic_compare_and_swap_1): Likewise. + +2018-11-23 Jakub Jelinek + + PR tree-optimization/86614 + * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Return early + if TREE_NO_WARNING is set on ref.ref. + +2018-11-22 Sandra Loosemore + Alan Coopersmith + + PR c/53608 + * doc/extend.texi (Designated Inits): Clarify handling of multiple + initializers for unions. + +2018-11-22 Jan Hubicka + + PR lto/88142 + * ipa-devirt.c (type_variants_equivalent_p): Drop warn and warned + parameters; do not warn here. + (odr_subtypes_equivalent_p): Likewise. + (warn_odr): Fix typo. + (warn_types_mismatch): Do not output confused warnings on integer types. + (odr_types_equivalent_p): Update. + +2018-11-22 Jakub Jelinek + + * config/i386/i386.c (ix86_option_override_internal, + ix86_can_inline_p, classify_argument, construct_container, + ix86_expand_prologue, ix86_expand_split_stack_prologue, + ix86_expand_carry_flag_compare, expand_set_or_movmem_via_loop, + expand_setmem_epilogue_via_loop, promote_duplicated_reg, + ix86_expand_set_or_movmem, ix86_init_builtins_va_builtins_abi): + Formatting fixes. + + * config/i386/i386.c (ix86_option_override_internal): For + stack_protector_guard related options, use opts_set->x_ instead + of global_options_set. and prefix options with opts->x_ . Move + defaults for offset and reg into else block. + +2018-11-22 Uros Bizjak + + * config/i386/i386.c (ix86_check_avx_upper_register): + Return true for all SSE registers with mode bitsize > 128. + +2018-11-22 Vladimir Makarov + + PR rtl-optimization/87718 + * ira-costs.c: Remove trailing white-spaces. + (record_operand_costs): Add a special treatment for moves + involving a hard register. + +2018-11-22 Uros Bizjak + + * config/i386/i386.c (ix86_avx_emit_vzeroupper): Remove. + (ix86_emit_mode_set) : Emit vzeroupper here. + +2018-11-22 Martin Liska + + * common/config/i386/i386-common.c (processor_names): Add + static assert and add missing "znver2". + (ix86_get_valid_option_values): Add checking assert for null + values and add "native" value if feasible. + * config/i386/i386.h: Do not declare size of processor_names. + * common/config/i386/i386-common.c: + * config/i386/i386.c: Add static assert for size + of processor_cost_table. + +2018-11-22 Thomas Preud'homme + + * target-insns.def (stack_protect_combined_set): Define new standard + pattern name. + (stack_protect_combined_test): Likewise. + * cfgexpand.c (stack_protect_prologue): Try new + stack_protect_combined_set pattern first. + * function.c (stack_protect_epilogue): Try new + stack_protect_combined_test pattern first. + * config/arm/arm.c (require_pic_register): Add pic_reg and compute_now + parameters to control which register to use as PIC register and force + reloading PIC register respectively. Insert in the stream of insns if + possible. + (legitimize_pic_address): Expose above new parameters in prototype and + adapt recursive calls accordingly. Use pic_reg if non null instead of + cached one. + (arm_load_pic_register): Add pic_reg parameter and use it if non null. + (arm_legitimize_address): Adapt to new legitimize_pic_address + prototype. + (thumb_legitimize_address): Likewise. + (arm_emit_call_insn): Adapt to require_pic_register prototype change. + (arm_expand_prologue): Adapt to arm_load_pic_register prototype change. + (thumb1_expand_prologue): Likewise. + * config/arm/arm-protos.h (legitimize_pic_address): Adapt to prototype + change. + (arm_load_pic_register): Likewise. + * config/arm/predicated.md (guard_addr_operand): New predicate. + (guard_operand): New predicate. + * config/arm/arm.md (movsi expander): Adapt to legitimize_pic_address + prototype change. + (builtin_setjmp_receiver expander): Adapt to thumb1_expand_prologue + prototype change. + (stack_protect_combined_set): New expander.. + (stack_protect_combined_set_insn): New insn_and_split pattern. + (stack_protect_set_insn): New insn pattern. + (stack_protect_combined_test): New expander. + (stack_protect_combined_test_insn): New insn_and_split pattern. + (arm_stack_protect_test_insn): New insn pattern. + * config/arm/thumb1.md (thumb1_stack_protect_test_insn): New insn pattern. + * config/arm/unspecs.md (UNSPEC_SP_SET): New unspec. + (UNSPEC_SP_TEST): Likewise. + * doc/md.texi (stack_protect_combined_set): Document new standard + pattern name. + (stack_protect_set): Clarify that the operand for guard's address is + legal. + (stack_protect_combined_test): Document new standard pattern name. + (stack_protect_test): Clarify that the operand for guard's address is + legal. + +2018-11-22 Richard Biener + + PR tree-optimization/88148 + * tree-ssa-loop-niter.c (simplify_replace_tree): Get optional + valueization callback parameter and handle it. + * tree-ssa-loop-niter.h (simplify_replace_tree): Export. + * tree-ssa-sccvn.c (process_bb): Eliminate in loop niter trees. + +2018-11-22 Richard Biener + + PR lto/87229 + PR lto/88112 + * lto-streamer-out.c (lto_is_streamable): Allow CALL_EXPRs + which can appear in size expressions. + * tree-streamer-in.c (unpack_ts_base_value_fields): Stream + CALL_EXPR_BY_DESCRIPTOR. + (streamer_read_tree_bitfields): Stream CALL_EXPR_IFN. + * tree-streamer-out.c (pack_ts_base_value_fields): Stream + CALL_EXPR_BY_DESCRIPTOR. + (streamer_write_tree_bitfields): Stream CALL_EXPR_IFN. + + Revert + PR lto/87229 + * tree.c (free_lang_data_in_one_sizepos): Free non-gimple-val + sizepos values. + +2018-11-22 Richard Biener + + PR tree-optimization/88069 + * tree-ssa-sccvn.c (visit_phi): Tweak previous fix to not + apply to default defs. + +2018-11-22 Jakub Jelinek + + PR target/85644 + PR target/86832 + * config/i386/i386.c (ix86_option_override_internal): Default + ix86_stack_protector_guard to SSP_TLS only if TARGET_THREAD_SSP_OFFSET + is defined. + * config/i386/i386.md (stack_protect_set, stack_protect_set_, + stack_protect_test, stack_protect_test_): Use empty condition + instead of TARGET_SSP_TLS_GUARD. + +2018-11-22 Martin Liska + + PR sanitizer/88017 + * config/i386/i386.c (ix86_option_override_internal): Error + about usage -mabi=ms and -fsanitize=thread. + +2018-11-21 Uros Bizjak + + Revert the revert: + 2013-10-26 Vladimir Makarov + + Revert: + 2013-10-25 Vladimir Makarov + + * lra-spills.c (lra_final_code_change): Remove useless move insns. + +2018-11-21 Uros Bizjak + + PR middle-end/88129 + * function.c (expand_function_end): Do not emit extra blockage insn. + +2018-11-21 Lokesh Janghel + + PR target/85667 + * config/i386/i386.c (function_value_ms_64): Return AX_REG instead + of FIRST_SSE_REG for 4 or 8 byte modes. + +2018-11-21 Jan Hubicka + + PR lto/87957 + * tree.c (fld_decl_context): Break out from ... + (free_lang_data_in_decl): ... here; free TREE_PUBLIC, TREE_PRIVATE + DECL_ARTIFICIAL of TYPE_DECL; do not free TREE_TYPE of TYPE_DECL. + (fld_incomplete_type_of): Build copy of TYP_DECL. + * ipa-devirt.c (free_enum_values): Rename to ... + (free_odr_warning_data): ... this one; free also duplicated TYPE_DECLs + and TREE_TYPEs of TYPE_DECLs. + (get_odr_type): Initialize odr_vtable_hash if needed. + +2018-11-21 Alexandre Oliva + + * final.c (compute_discriminator): Declare. Renamed from... + (maybe_set_discriminator): ... this. Set and return a local. + (override_discriminator): New. + (final_scan_insn_1): Set it. + (notice_source_line): Adjust. Always set discriminator. + +2018-11-21 Jakub Jelinek + + PR target/87839 + * config/aarch64/atomics.md (@aarch64_compare_and_swap): Use + rIJ constraint for aarch64_plus_operand rather than rn. + +2018-11-21 Renlin Li + + PR middle-end/84877 + * explow.h (get_dynamic_stack_size): Declare it as external. + * explow.c (record_new_stack_level): Remove function static attribute. + * function.c (assign_stack_local_1): Dynamically align the stack slot + addr for parameter copy on the stack. + +2018-11-21 Richard Biener + + PR bootstrap/88133 + * bitmap.c (bitmap_last_set_bit): Refactor to avoid warning. + * Makefile.in (bitmap.o-warn): Remove again. + +2018-11-20 Jeff Law + + PR tree-optimization/88069 + * tree-ssa-dom.c (record_equivalences_from_phis): Propagate away + degenerate virtual PHIs. + +2018-11-21 H.J. Lu + + PR target/87317 + * config/i386/sse.md (sse4_1_v8qiv8hi2): Replace + nonimmediate_operand with register_operand. + (avx2_v8qiv8si2): Likewise. + (sse4_1_v4qiv4si2): Likewise. + (sse4_1_v4hiv4si2): Likewise. + (sse4_1_v2qiv2di2): Likewise. + (avx512f_v8qiv8di2): Likewise. + (avx2_v4qiv4di2): Likewise. + (avx2_v4hiv4di2): Likewise. + (sse4_1_v2hiv2di2): Likewise. + (sse4_1_v2siv2di2): Likewise. + (*sse4_1_v8qiv8hi2_1): New pattern. + (*sse4_1_v8qiv8hi2_2): Likewise. + (*avx2_v8qiv8si2_1): Likewise. + (*avx2_v8qiv8si2_2): Likewise. + (*sse4_1_v4qiv4si2_1): Likewise. + (*sse4_1_v4qiv4si2_2): Likewise. + (*sse4_1_v4hiv4si2_1): Likewise. + (*sse4_1_v4hiv4si2_2): Likewise. + (*avx512f_v8qiv8di2_1): Likewise. + (*avx512f_v8qiv8di2_2): Likewise. + (*avx2_v4qiv4di2_1): Likewise. + (*avx2_v4qiv4di2_2): Likewise. + (*avx2_v4hiv4di2_1): Likewise. + (*avx2_v4hiv4di2_2): Likewise. + (*sse4_1_v2hiv2di2_1): Likewise. + (*sse4_1_v2hiv2di2_2): Likewise. + (*sse4_1_v2siv2di2_1): Likewise. + (*sse4_1_v2siv2di2_2): Likewise. + +2018-11-21 H.J. Lu + + * read-rtl.c (apply_subst_iterator): Handle define_split and + define_insn_and_split. + +2018-11-21 Jakub Jelinek + + PR rtl-optimization/87817 + * config/i386/i386.md (bmi2_bzhi_3, *bmi2_bzhi_3, + *bmi2_bzhi_3_1, *bmi2_bzhi_3_1_ccz): Use IF_THEN_ELSE + in the pattern to avoid triggering UB when operands[2] is zero. + (tbm_bextri_): New expander. Renamed the old define_insn to ... + (*tbm_bextri_): ... this. + +2018-11-21 Tom de Vries + + PR driver/79855 + * params.def (HOT_BB_COUNT_FRACTION): Terminate help message with + period. + +2018-11-21 Andreas Krebbel + + * configure.ac: Add check for Binutils to determine whether vector + load/store alignments hints are being supported. + * config.in: Regenerate. + * configure: Regenerate. + * config/s390/s390.c (print_operand): Support new output + modifier A. + * config/s390/s390.md ("movti"): Append alignment hint output + using the new output modifier 'A'. + * config/s390/vector.md ("mov", "*vec_tf_to_v1tf") + ("*vec_ti_to_v1ti"): Likewise. + +2018-11-20 Martin Sebor + + * doc/extend.texi (Other Builtins): Add __builtin_has_attribute. + +2018-11-20 Jan Hubicka + + PR lto/84044 + * ipa-devirt.c (odr_types_equivalent_p): Use operand_equal_p to + compare ENUM values. + +2018-11-20 Jakub Jelinek + + PR tree-optimization/87895 + * omp-simd-clone.c (ipa_simd_modify_function_body): When removing + or replacing GIMPLE_RETURN, set EDGE_FALLTHRU on the edge to EXIT. + (simd_clone_adjust): Don't set EDGE_FALLTHRU here. In a loop that + redirects edges to EXIT to edges to incr_bb, iterate while EXIT + has any preds and always use EDGE_PRED (, 0). + +2018-11-20 Uros Bizjak + + PR target/88070 + * mode-switching.c (create_pre_exit): After reload, always split the + fallthrough edge to the exit block. + +2018-11-20 Jan Hubicka + + * ipa-devirt.c (add_type_duplicate): Do not ICE on incomplete enums. + * tree.c (build_array_type_1): Forward declare. + (fld_type_variant_equal_p): Add INNER_TYPE parameter. + (fld_type_variant): Likewise. + (fld_simplified_types): New hash. + (fld_process_array_type): New function. + (fld_incomplete_type_of): Handle array and enumeration types. + (fld_simplified_type): Handle simplification of arrays. + (free_lang_data): Allocate and free simplified types hash. + +2018-11-20 Jan Hubicka + + PR lto/87957 + * ipa-devirt.c (odr_subtypes_equivalent_p): Report ODR violation + when sybtype already violates ODR. + (get_odr_type): Do not ICE when insert is false and type duplicate + is not registered yet. + (register_odr_type): Be sure to register subtypes first. + +2018-11-20 Andreas Krebbel + + * config/s390/s390.md ("clztidi2"): Swap the RTX's written to the + DImode parts of the target operand. + +2018-11-20 Nathan Sidwell + + PR 87926 + * Makefile.in (bitmap.o-warn): Use -Wno-error=array-bounds. + +2018-11-20 Jan Hubicka + + PR lto/87997 + * tree.c (free_lang_data_in_cgraph): Add argument fld; break out + type checking to... + (free_lang_data) ... here; update call of free_lang_data_in_cgraph. + +2018-11-20 Jan Hubicka + + PR ipa/87706 + * ipa-fnsummary.c (pass_ipa_fnsummary): Do not remove functions + * ipa.c (possible_inline_candidate_p): Break out from .. + (process_references): ... here ; drop before_inlining_p; + cleanup handling of alises. + (walk_polymorphic_call_targets): Likewise. + (symbol_table::remove_unreachable_nodes): Likewise. + * passes.c (pass_data_ipa_remove_symbols): New structure. + (pass_ipa_remove_symbols): New pass. + (make_pass_ipa_remove_symbols): New function. + * tree-pass.h (make_pass_ipa_remove_symbols): Declare. + * passes.def (pass_ipa_remove_symbols): Schedule after early passes. + +2018-11-20 Richard Biener + + * tree-vect-stmts.c (vectorizable_condition): Do not get + at else_clause vect def for EXTRACT_LAST_REDUCTION. Remove + pointless vect_is_simple_use calls. + +2018-11-20 Richard Biener + + PR tree-optimization/88074 + * tree-ssa-dom.c (pass_dominator::execute): Do not walk + backedges. + +2018-11-20 Richard Biener + + PR tree-optimization/88069 + * tree-ssa-sccvn.c (visit_phi): Do not value-number to unvisited + virtual PHI arguments. + +2018-11-20 Ilya Leoshkevich + + PR target/88083 + * config/s390/s390.md: Skip LT(G) peephole when literal pool is + involved. + * rtl.h (contains_constant_pool_address_p): New function. + * rtlanal.c (contains_constant_pool_address_p): Likewise. + +2018-11-20 Richard Biener + + PR middle-end/83215 + * alias.c (component_uses_parent_alias_set_from): Remove + alias-set zero and TYPE_TYPELESS_STORAGE case both already + handled in other ways. + +2018-11-20 Richard Biener + + PR tree-optimization/88087 + * tree-ssa-pre.c (create_expression_by_pieces): Re-materialize + call fntype. + * tree-ssa-sccvn.c (copy_reference_ops_from_call): Remember + call fntype. + +2018-11-20 Richard Biener + + PR middle-end/88089 + * tree-data-ref.c (lambda_matrix_right_hermite): Use abs_hwi. + +2018-11-19 Jan Hubicka + + PR lto/87957 + * ipa-devirt.c (free_enum_values): Do not ICE on ODR vilations. + +2018-11-19 Sandra Loosemore + + PR driver/50250 + * doc/invoke.texi (Link Options): Mention shared libraries + in documentation for the -l option. Simplify discussion and + point to the system linker documentation for details. + +2018-11-19 Peter Bergner + + PR rtl-optimization/88033 + * ira-lives.c (non_conflicting_reg_copy_p): Skip copies from a register + to itself. Use HARD_REGISTER_NUM_P. + +2018-11-19 Kyrylo Tkachov + + * tree-vect-loop.c (vect_transform_loop): Disable further unrolling + of the loop if vf is non-constant. + +2018-11-19 David Malcolm + + PR tree-optimization/87025 + * dumpfile.c (dump_context::begin_scope): Call end_any_optinfo + immediately after creating the scope optinfo. + (selftest::test_pr87025): New function. + (selftest::dumpfile_c_tests): Call it. + * optinfo-emit-json.cc (optrecord_json_writer::pop_scope): Assert + that we're not popping the top-level records array. + * optinfo.cc (optinfo::handle_dump_file_kind): Assert that we're + not changing the kind of a "scope" optinfo. + +2018-11-19 David Malcolm + + PR tree-optimization/87025 + * dump-context.h: Include "optinfo.h". + (class optrecord_json_writer): New forward decl. + (dump_context::forcibly_enable_optinfo_p): Delete. + (dump_context::optinfo_enabled_p): New member function. + (dump_context::optimization_records_enabled_p): New member + function. + (dump_context::set_json_writer): New member function. + (dump_context::emit_optinfo): New member function. + (dump_context::m_forcibly_enable_optinfo): Delete. + (dump_context::m_json_writer): New member data. + * dumpfile.c (dump_context::set_json_writer): New member function. + (dump_context::finish_any_json_writer): New member function. + (dump_context::end_scope): Replace call to + optimization_records_maybe_pop_dump_scope with call to + m_json_writer->pop_scope. + (dump_context::optinfo_enabled_p): New member function. + (dump_context::end_any_optinfo): Replace call to optinfo::emit with call + to dump_context::emit_optinfo. + (dump_context::emit_optinfo): New member function. + (temp_dump_context::temp_dump_context): Replace + m_forcibly_enable_optinfo with call to set_json_writer. + (temp_dump_context::~temp_dump_context): Clean up any json writer. + * optinfo-emit-json.cc (class optrecord_json_writer): Move to + optinfo-emit-json.h + (the_json_writer): Delete. + (optimization_records_start): Delete. + (optimization_records_finish): Delete. + (optimization_records_enabled_p): Delete, in favor of + dump_context::optimization_records_enabled_p. + (optimization_records_maybe_record_optinfo): Delete. + (optimization_records_maybe_pop_dump_scope): Delete. + * optinfo-emit-json.h: Include "json.h". Delete forward + decl of opt_pass. + (optimization_records_start): Delete. + (optimization_records_finish): Delete. + (optimization_records_enabled_p): Delete. + (optimization_records_maybe_record_optinfo): Delete. + (optimization_records_maybe_pop_dump_scope): Delete. + (class optrecord_json_writer): Move here from + optinfo-emit-json.cc. + * optinfo.cc (optinfo::emit_for_opt_problem): Replace call + to optinfo::emit with call to dump_context::emit_optinfo. + (optinfo::emit): Delete, in favor of dump_context::emit_optinfo. + (optinfo_enabled_p): Delete, in favor of + dump_context::optinfo_enabled_p. + (optinfo_wants_inlining_info_p): Update for conversion o + optimization_records_enabled_p to a member function of + dump_context. + * optinfo.h (optinfo_enabled_p): Delete, in favor of + dump_context::optinfo_enabled_p. + (optinfo::emit): Delete, in favor of dump_context::emit_optinfo. + * toplev.c: Include "dump-context.h". + (compile_file): Replace call to optimization_records_finish with + dump_context::finish_any_json_writer. + (do_compile): Replace call to optimization_records_start with + conditionally creating a optrecord_json_writer for the + dump_context. + +2018-11-19 Jakub Jelinek + + PR tree-optimization/88071 + * tree-vect-loop.c (vectorize_fold_left_reduction): Pass true instead + of false as last argument to gsi_remove. + * tree-vect-stmts.c (vect_finish_replace_stmt): Pass true instead of + false as last argument to gsi_replace. + + PR debug/87039 + * omp-expand.c: Don't include debug.h. + (adjust_context_and_scope): Add REGION argument. Find DECL_CONTEXT + from innermost outer parallel, task, teams or target that has a + child_fn set, or, if there is no such outer region, use + current_function_decl. Do the DECL_CONTEXT adjustment regardless of + whether a suitable BLOCK is found or not. + (expand_parallel_call, expand_teams_call): Don't call + adjust_context_and_scope here. + (grid_expand_target_grid_body): Revert 2017-01-25 changes. + (expand_omp_taskreg, expand_omp_target): Likewise. Call + adjust_context_and_scope. + * dwarf2out.c (dwarf2out_early_global_decl): For + decl_function_context recurse instead of calling dwarf2out_decl. + +2018-11-20 Eric Botcazou + + PR rtl-optimization/85925 + * rtl.h (word_register_operation_p): New predicate. + * combine.c (record_dead_and_set_regs_1): Only apply specific handling + for WORD_REGISTER_OPERATIONS targets to word_register_operation_p RTX. + * rtlanal.c (nonzero_bits1): Likewise. Adjust couple of comments. + (num_sign_bit_copies1): Likewise. + +2018-11-19 Richard Biener + + PR lto/87229 + * tree.c (free_lang_data_in_one_sizepos): Free non-gimple-val + sizepos values. + +2018-11-19 Eric Botcazou + + * compare-elim.c (struct comparison): Add not_in_a field. + (is_not): New static function. + (strip_not): Likewise. + (conforming_compare): Handle a NOT in the first operand. + (can_eliminate_compare): Likewise. + (find_comparison_dom_walker::before_dom_children): Likewise. + (try_eliminate_compare): Likewise. + * config/visium/visium.md (negsi2_insn_set_carry): Turn into... + (neg2_insn_set_carry): ...this and add missing NEG operation. + +2018-11-19 Jonathan Wakely + + * doc/extend.texi (Common Type Attributes): Fix typos. + +2018-11-19 Martin Liska + + PR gcov-profile/88045 + * coverage.c (coverage_begin_function): Add assert. + +2018-11-18 Sandra Loosemore + + PR other/40498 + * doc/extend.texi (Common Function Attributes): Document that + no_instrument_function applies to -p and -pg, too. + * doc/invoke.texi (Instrumentation Options): Add cross-references + to docs for -p, -pg, and -finstrument-functions. + +2018-11-18 Alan Modra + + * config/gnu-user.h (GNU_USER_TARGET_CRTI): Define. + (GNU_USER_TARGET_STARTFILE_SPEC): Use it here. + (GNU_USER_TARGET_CRTN): Define. + (GNU_USER_TARGET_ENDFILE_SPEC): Use it here. + (GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC): Define. + +2018-11-18 Alan Modra + + * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Delete + !HAVE_LD_PIE variant. + (GNU_USER_TARGET_ENDFILE_SPEC): Likewise. + +2018-11-17 Nick Clifton + Sandra Loosemore + + PR driver/31357 + * doc/invoke.texi (Overall Options): Document that --help and + --help= options cannot be combined. + +2018-11-17 Jim Wilson + + * config/riscv/riscv.c (epilogue_cfa_sp_offset): New. + (riscv_restore_reg): If restoring HARD_FRAME_POINTER_REGNUM, and + epilogue_cfa_sp_offset set, then add REG_CFA_DEF_CFA regnote. + (riscv_expand_epilogue): Initialize epilogue_cfa_sp_offset. Set it + to step2 if frame_pointer_needed and step1 is 0. + +2018-11-17 Sandra Loosemore + + PR c++/4225 + * doc/cpp.texi (System Headers): Add note about implicit + extern "C" block on targets that define SYSTEM_IMPLICIT_EXTERN_C. + +2018-11-17 Sandra Loosemore + + PR c++/4025 + * doc/invoke.texi (C++ Dialect Options): Clarify usage of + -fno-implicit-templates. + +2018-11-17 Jakub Jelinek + + PR tree-optimization/87546 + * tree-vect-patterns.c (vect_look_through_possible_promotion): Add + min_precision variable, initially set it to orig_precision, only does + something if op_type's precision is <= min_precision and update + min_precision whenever calling set_op. + +2018-11-16 Jan Hubicka + + PR ipa/87957 + * ipa-devirt.c (warn_odr): Look for main variant to get TYPE_DECL. + +2018-11-16 Sandra Loosemore + + * doc/invoke.texi (Option Summary): Fix whitespace and line + breaks in @gccoptlist environments. + (Warning Options): Likewise. + (Optimize Options): Likewise. + (PowerPC SPE Options): Likewise. + (RS/6000 and PowerPC Options): Likewise. + +2018-11-16 Jeff Law + + * config/mn10300/mn10300.md (adddi3_degenerate): Remove bogus + gcc_assert. + +2018-11-16 Sandra Loosemore + + PR middle-end/23197 + * doc/invoke.texi (Optimize Options): Update options enabled by + fprofile-generate, -fprofile-use, and -fauto-profile. + +2018-11-16 Jozef Lawrynowicz + + PR target/87927 + * target-def.h: Initialize TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP. + Add them to the TARGET_ASM_{,UN}ALIGNED_INT_OP structs. + * target.def: Enumerate TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP in + the byte_op hook. + * target.h: Add psi, pdi, pti to struct asm_int_op definition. + * targhooks.c (default_print_patchable_function_entry): Assert + asm_int_op does not return a NULL string. + * varasm.c (integer_asm_op): Return the op for a partial int type + when the requested size does not correspond to an integer type. + * config/msp430/msp430.c: Initialize TARGET_ASM_{,UN}ALIGNED_PSI_OP. + * doc/tm.texi: Regenerate. + +2018-11-12 Jason Merrill + + * gimplify.c (gimplify_case_label_expr): Handle hot/cold attributes. + +2018-11-16 Michael Meissner + + * config/rs6000/constraints.md (wF constraint): Remove power9 + fusion documentation. Just document wF's use for power8 fusion. + * config/rs6000/predicates.md (p9_fusion_reg_operand): Delete. + (fusion_gpr_addis): Delete power9 fusion support. Change power8 + fusion support to require the upper 12 bits to be all 0's or all + 1's. + (fusion_gpr_mem_load): Add comment. + (fusion_addis_mem_combo_load): Remove power9 fusion support. + (fusion_addis_mem_combo_store): Delete. + (fusion_offsettable_mem_operand): Delete. + * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Do not set + power8 fusion here. + (ISA_3_0_MASKS_SERVER): Delete power9 fusion. + (POWERPC_MASKS): Delete power9 fusion. + * config/rs6000/rs6000-protos.h (emit_fusion_load_store): Delete. + (fusion_p9_p): Delete. + (expand_fusion_p9_load): Delete. + (expand_fusion_p9_store): Delete. + (emit_fusion_p9_load): Delete. + (emit_fusion_p9_store): Delete. + * config/rs6000/rs6000.c (rs6000_debug_reg_global): Delete power9 + fusion support. + (rs6000_option_override_internal): Set power8 fusion based on + whether we are tuning for power8. Delete power9 fusion support. + (rs6000_opt_masks): Delete -mpower9-fusion switch. + (emit_fusion_load): Rename emit_fusion_load_store to + emit_fusion_load, and drop fusion store support. Update callers. + (emit_fusion_load_store): Likewise. + (emit_fusion_gpr_load): Likewise. + (fusion_p9_p): Delete. + (expand_fusion_p9_load): Delete. + (expand_fusion_p9_store): Delete. + (emit_fusion_p9_load): Delete. + (emit_fusion_p9_store): Delete. + * config/rs6000/rs6000.md (UNSPEC_FUSION_P9): Delete. + (GPR_FUSION): Delete. + (FPR_FUSION): Delete. + (power9 fusion peephole2s): Delete. + (fusion_gpr___load): Delete. + (fusion_gpr___store): Delete. + (fusion_vsx___load): Delete. + (fusion_vsx___store): Delete. + (fusion_p9__constant): Delete. + * config/rs6000/rs6000.opt (-mpower9-fusion): Delete undocumented + power9 fusion switch. + * doc/md.texi (PowerPC constraints): Update wF constraint + documentation for power8 fusion only. + +2018-11-16 Jakub Jelinek + + PR rtl-optimization/87475 + * cfgrtl.c (patch_jump_insn): Allow redirection failure for + CROSSING_JUMP_P insns. + (cfg_layout_redirect_edge_and_branch): Don't ICE if ret is NULL. + +2018-11-16 Uros Bizjak + + PR target/88051 + * config/i386/i386.md (floatunsdidf2): Allow only 64bit AVX512F targets. + * config/i386/sse.md (UNSPEC_MOVDI_TO_SSE): New UNSPEC. + (movdi_to_sse): Rewrite using UNSPEC_MOVDI_TO_SSE unspec. + +2018-11-16 Jakub Jelinek + + PR middle-end/88032 + * optabs.c (expand_binop): For op0_mode use GET_MODE (op0), unless it + is VOIDmode, in which case use int_mode. Similarly for op1_mode. + +2018-11-16 Eric Botcazou + + * tree-switch-conversion.h (switch_decision_tree::emit_case_nodes): Add + location_t parameter. + (switch_decision_tree::emit_cmp_and_jump_insns): Likewise. + (switch_decision_tree::do_jump_if_equal): Likewise. + * tree-switch-conversion.c (switch_decision_tree::emit): Pass location + of switch statement to emit_case_nodes. + (switch_decision_tree::emit_cmp_and_jump_insns): Add LOC parameter and + set it on the newly built GIMPLE comparison statement. + (switch_decision_tree::do_jump_if_equal): Likewise. + (switch_decision_tree::emit_case_nodes): Add LOC parameter and pass it + in calls to do_jump_if_equal as well as recursive calls. + +2018-11-16 Andi Kleen + + * config/i386/i386.md: Allow memory operands to ptwrite. + +2018-11-16 Michael Matz + + * system.h (PRsa): New macro. + (SIZE_AMOUNT): Cast number to uint64_t. + * alloc-pool.h (pool_usage::dump): Don't use %zu but PRsa. + (pool_usage::dump_footer): Likewise and also use PRIu64. + * bitmap.h (bitmap_usage::dump): Likewise. + * ggc-common.c (ggc_usage::dump): Likewise. + * ggc-page.c (ggc_print_statistics): Likewise. + * input.c (dump_line_table_statistics): Likewise. + * mem-stats.h (mem_usage::dump): Likewise. + (mem_usage::dump_footer): Likewise. + * rtl.c (dump_rtx_statistics): Likewise. + * tree-cfg.c (dump_cfg_stats): Likewise. + * tree-dfa.c (dump_dfa_stats): Likewise. + * tree-phinodes.c (phinodes_print_statistics): Likewise. + * tree-ssanames (ssanames_print_statistics): Likewise. + * vec.c (vec_usage::dump): Likewise. + (vec_usage::dump_footer): Likewise. + +2018-11-16 Richard Biener + + PR tree-optimization/88011 + * tree-vrp.c (extract_range_from_binary_expr): Fix error in + replacing set_value_range_to_undefined and + set_value_range_to_varying with method calls. + +2018-11-16 Ilya Leoshkevich + + * config/s390/s390.md + (*rsbg__srl_bitmask): Do not delegate arithmetic to + assembler. + (*rsbg__sll): Likewise. + (*rsbg__srl): Likewise. + (*rsbg_sidi_srl): New pattern. + +2018-11-16 Jerome Lambourg + + * config/vxworks.h (TARGET_VXWORKS_HAVE_CTORS_DTORS): New macro. + Default to TARGET_VXWORKS_RTP. + (SUPPORTS_INIT_PRIORITY): Use TARGET_VXWORKS_HAVE_CTORS_DTORS instead + of TARGET_VXWORKS_RTP. + * config/vxworks.c: Use TARGET_VXWORKS_HAVE_CTORS_DTORS instead + of TARGET_VXWORKS_RTP to set targetm.have_ctors_dtors. + +2018-11-15 Sandra Loosemore + + PR c++/25759 + * doc/extend.texi (Common Type Attributes): Make it explicit + that attribute "packed" can apply to C++ classes. + +2018-11-15 Martin Sebor + + PR c++/87541 + PR c++/87542 + * tree.c (type_argument_type): New function. + * tree.h (type_argument_type): Declare it. + * gcc/doc/extend.texi (alloc_align): Update and clarify. + (alloc_size, nonnull, sentinel): Same. + +2018-11-15 Andrew Stubbs + Kwok Cheung Yeung + + * tree-vect-stmts.c (vectorizable_store): Don't ICE when + int_mode_for_size fails. + (vectorizable_load): Likewise. + +2018-11-15 David Malcolm + + * doc/ux.texi (Group logically-related diagnostics): Move + discussion of auto_diagnostic_group into this new subsection. + Give an example of where this grouping is used. + +2018-11-15 David Malcolm + + PR other/19165 + * Makefile.in (OBJS): Move json.o to... + (OBJS-libcommon): ...here and add diagnostic-format-json.o. + * common.opt (fdiagnostics-format=): New option. + (diagnostics_output_format): New enum. + * diagnostic-format-json.cc: New file. + * diagnostic.c (default_diagnostic_final_cb): New function, taken + from start of diagnostic_finish. + (diagnostic_initialize): Initialize final_cb to + default_diagnostic_final_cb. + (diagnostic_finish): Move "being treated as errors" messages to + default_diagnostic_final_cb. Call any final_cb. + (default_diagnostic_finalizer): Add diagnostic_t param. + (diagnostic_report_diagnostic): Pass "orig_diag_kind" to + diagnostic_finalizer callback. + * diagnostic.h (enum diagnostics_output_format): New enum. + (diagnostic_finalizer_fn): Reimplement, adding diagnostic_t param. + (struct diagnostic_context): Add "final_cb". + (default_diagnostic_finalizer): Add diagnostic_t param. + (diagnostic_output_format_init): New decl. + * doc/invoke.texi (-fdiagnostics-format): New option. + * dwarf2out.c (gen_producer_string): Ignore + OPT_fdiagnostics_format_. + * gcc.c (driver_handle_option): Handle OPT_fdiagnostics_format_. + * lto-wrapper.c (append_diag_options): Ignore it. + * opts.c (common_handle_option): Handle it. + +2018-11-15 David Malcolm + + PR tree-optimization/88015 + * graphite-isl-ast-to-gimple.c + (translate_isl_ast_to_gimple::scop_to_isl_ast): Add missing check + for dump_enabled_p. + * graphite-sese-to-poly.c (build_poly_scop): Likewise. + +2018-11-15 Richard Biener + + PR middle-end/88029 + * gimple.c (gimple_call_flags): Union flags from decl, type + and call fntype. + * trans-mem.c (is_tm_pure_call): Simplify. + +2018-11-15 Richard Biener + + PR tree-optimization/88031 + * tree-vect-loop.c (vectorizable_reduction): Move check + for multiple types earlier so we get the expected dump. + Simplify calls to vectorizable_condition. + * tree-vect-stmts.h (vectorizable_condition): Update prototype. + * tree-vect-stmts.c (vectorizable_condition): Instead of + reduc_def and reduc_index take just a flag. Simplify + code-generation now that we can rely on the defs being set up. + (vectorizable_comparison): Remove unused argument. + +2018-11-15 Richard Biener + + PR tree-optimization/88030 + * tree-complex.c (need_eh_cleanup): New global. + (update_complex_assignment): Mark blocks that need EH update. + (expand_complex_comparison): Likewise. + (tree_lower_complex): Allocate and deallocate need_eh_cleanup, + perform EH cleanup and schedule CFG cleanup if that did anything. + +2018-11-15 Jakub Jelinek + + PR rtl-optimization/88018 + * cfgrtl.c (fixup_abnormal_edges): Guard moving insns to fallthru edge + on the presence of fallthru edge, rather than if it is a USE or not. + +2018-11-15 Richard Biener + + PR middle-end/87917 + * tree-data-ref.c (analyze_miv_subscript): Guard calls to + analyze_subscript_affine_affine properly. + +2018-11-15 Xianmiao Qu + + * config/csky/csky-linux-elf.h (LINUX_DYNAMIC_LINKER): Remove. + (GLIBC_DYNAMIC_LINKER): Define. + (LINUX_TARGET_LINK_SPEC): Update the dynamic linker's name. + +2018-11-15 Bin Cheng + + PR tree-optimization/84648 + * tree-ssa-loop-niter.c (adjust_cond_for_loop_until_wrap): New. + (number_of_iterations_cond): Adjust exit cond for loop-until-wrap case + by calling adjust_cond_for_loop_until_wrap. + +2018-11-15 Sandra Loosemore + + PR other/56334 + * doc/extend.texi (Common Function Attributes): Clarify linker + restrictions on "aligned" attribute. + (Common Variable Attributes): Likewise. Mention that linker + restrictions don't apply to stack-allocated variables. + +2018-11-15 Joern Rennecke + + * gensupport.c (add_predicate_code): Properly handle ZERO_EXTRACT + as an lvalue. + +2018-11-14 Sandra Loosemore + + PR lto/55102 + PR lto/56700 + * doc/invoke.texi (Optimize Options): Remove bad example about + interaction between -flto and -O. Replace it with a note that + you need to compile with -O and not just link. Copy-edit -flto + discussion to reduce verbiage and improve flow. + +2018-11-14 Sandra Loosemore + + PR middle-end/59658 + * doc/invoke.texi (Optimize Options): Clarify that -O0 and -Og + also suppress many optimizations. Alphabetize option lists for + -O1, -O2, and -Os. Add list of options disabled with -Og, and + correct documentation for those options to say that. + * opts.c (default_options_table): Sort table by level and option + name, to make it easier to correlate to the manual. + +2018-11-14 Uros Bizjak + + * config/i386/i386.c (ix86_print_operand_address_as): Simplify + printing of the names of segment registers. + +2018-11-14 Nathan Sidwell + + PR debug/88006 + PR debug/87462 + * dwarf2out.c (dwarf2out_finish): Apply resolve_addr to comdat + type list. + +2018-11-14 David Malcolm + + * Makefile.in (CFLAGS-optinfo-emit-json.o): Add $(ZLIBINC). + +2018-11-14 Jakub Jelinek + + P1236R1 - Signed integers are two's complement + * doc/invoke.texi (Wshift-overflow): Adjust documentation for c++2a. + + PR bootstrap/86739 + * hash-map.h (hash_map::iterator::reference_pair): New class. + (hash_map::iterator::operator*): Return it rather than std::pair. + +2018-11-14 Jeff Law + + * optabs.c (expand_binop): Pass INT_MODE to operand_subword_force + iff the operand is a constant. + +2018-11-14 Aldy Hernandez + + * gimple-ssa-evrp-analyze.c + (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename + ignore_equivs_equal_p to equal_p. + * ipa-cp.c (meet_with_1): Use equal_p instead of + ignore_equivs_equal_p. + * ipa-prop.c (ipa_vr_ggc_hash_traits::equal): Same. + * tree-vrp.c (value_range::ignore_equivs_equal_p): Remove. + (value_range::operator==): Remove. + (value_range::operator!=): Remove. + (vrp_prop::visit_stmt): Use equal_p. + * tree-vrp.h (value_range): Remove operator==, operator!=, + ignore_equivs_equal_p. + * vr-values.c (update_value_range): Use equal_p. + +2018-11-14 Michael Matz + + PR middle-end/86575 + * gimplify.c (collect_fallthrough_labels): Add new argument, + return location via that, don't modify statements. + (warn_implicit_fallthrough_r): Adjust call, don't use + statement location directly. + +2018-11-14 Richard Biener + + PR middle-end/87985 + * tree-data-ref.c (split_constant_offset): Add wrapper + allocating a cache hash-map. + (split_constant_offset_1): Cache results of expanding + expressions from SSA def stmts. + +2018-11-14 Richard Biener + + PR middle-end/88021 + * tree-data-ref.c (lambda_matrix_row_add): Change const1 argument + to lambda_int. + (lambda_vector_mult_const): Likewise. + (lambda_matrix_right_hermite): Use lambda_int temporaries. + +2018-11-14 Wilco Dijkstra + Jackson Woodruff + + PR 71026/tree-optimization + * match.pd: Simplify floating point comparisons. + +2018-11-14 Jakub Jelinek + + PR rtl-optimization/87817 + * config/i386/i386.c (ix86_fold_builtin): For _bzhi_u{32,64} if + last argument has low 8 bits clear, fold to 0. + +2018-11-14 Iain Sandoe + + * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Cast + MAX_OFILE_ALIGNMENT as needed. + +2018-11-14 Richard Biener + + PR tree-optimization/88019 + * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Rewrite + COND_EXPR arguments to non-trapping overflow. + +2018-11-14 Claudiu Zissulescu + + * config/arc/arc.h (reg_class): Reorder registers classes, remove + unused register classes. + (REG_CLASS_NAMES): Likewise. + (REG_CLASS_CONTENTS): Likewise. + (FIXED_REGISTERS): Make lp_count fixed. + (BASE_REG_CLASS): Remove ACC16_BASE_REGS reference. + (PROGRAM_COUNTER_REGNO): Remove. + * config/arc/arc.c (arc_conditional_register_usage): Remove unused + register classes, use constants for register numbers, remove + reg_class_contents references. + (arc_process_double_reg_moves): Add asserts. + (arc_secondary_reload): Remove LPCOUNT_REG reference, use + lra_in_progress predicate. + (arc_init_reg_tables): Remove unused register classes. + (arc_register_move_cost): Likewise. + (arc_preferred_reload_class): Likewise. + (hwloop_optimize): Update rtx patterns involving lp_count register. + (arc_return_address_register): Rename ILINK1, INLINK2 regnums macros. + * config/arc/constraints.md ("c"): Choose between GENERAL_REGS and + CHEAP_CORE_REGS. Former one will be used for LRA. + ("Rac"): Choose between GENERAL_REGS and ALL_CORE_REGS. Former + one will be used for LRA. + ("w"): Choose between GENERAL_REGS and WRITABLE_CORE_REGS. Former + one will be used for LRA. + ("W"): Choose between GENERAL_REGS and MPY_WRITABLE_CORE_REGS. + Former one will be used for LRA. + ("f"): Delete constraint. + ("k"): Likewise. + ("e"): Likewise. + ("l"): Change it from register constraint to constraint. + * config/arc/arc.md (movqi_insn): Remove unsed lp_count constraints. + (movhi_insn): Likewise. + (movsi_insn): Update pattern. + (arc_lp): Likewise. + (dbnz): Likewise. + (stack_tie): Remove 'b' constraint letter. + (R4_REG): Define. + (R9_REG, R15_REG, R16_REG, R25_REG): Likewise. + (R32_REG, R40_REG, R41_REG, R42_REG, R43_REG, R44_REG): Likewise. + (R57_REG, R59_REG, PCL_REG): Likewise. + (ILINK1_REGNUM): Renamed to ILINK1_REG. + (ILINK2_REGNUM): Renamed to ILINK2_REG. + (Rgp): Remove. + (SP_REGS): Likewise. + (Rcw): Remove unused reg classes. + * config/arc/predicates.md (dest_reg_operand): Just default on + register_operand predicate. + (mpy_dest_reg_operand): Likewise. + (move_dest_operand): Use macros instead of constants. + * config/arc/arc.opt (mlra): Switch to lra as default. + +2018-11-14 Richard Biener + + PR tree-optimization/87974 + * tree-vect-loop.c (vectorizable_reduction): When computing + the vectorized reduction PHI vector type ignore constant + and external defs. + +2018-11-14 Jakub Jelinek + + PR tree-optimization/87977 + * tree-ssa-math-opts.c (optimize_recip_sqrt): Don't reuse division + stmt, build a new one and replace the old one with it. Formatting fix. + Call release_ssa_name (x) if !has_other_use and !delete_div. + (pass_cse_reciprocals::execute): Before calling optimize_recip_sqrt + verify lhs of stmt is still def. + +2018-11-13 Peter Bergner + + PR rtl-optimization/87507 + * lower-subreg.c (operand_for_swap_move_operator): New function. + (simple_move): Strip simple operators. + (find_pseudo_copy): Likewise. + (resolve_operand_for_swap_move_operator): New function. + (resolve_simple_move): Strip simple operators and swap operands. + +2018-11-13 Jakub Jelinek + + PR tree-optimization/87898 + * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Formatting fix. + (ipa_simd_modify_function_body): Remove debug stmts where the first + argument was changed into a non-decl. + +2018-11-13 Peter Bergner + + PR rtl-optimization/87899 + * lra-lives.c (start_living): Update white space in comment. + (enum point_type): New. + (sparseset_contains_pseudos_p): New function. + (update_pseudo_point): Likewise. + (make_hard_regno_live): Use HARD_REGISTER_NUM_P macro. + (make_hard_regno_dead): Likewise. Remove ignore_reg_for_conflicts + handling. Move early exit after adding conflicts. + (mark_pseudo_live): Use HARD_REGISTER_NUM_P macro. Add early exit + if regno is already live. Remove all handling of program points. + (mark_pseudo_dead): Use HARD_REGISTER_NUM_P macro. Add early exit + after adding conflicts. Remove all handling of program points and + ignore_reg_for_conflicts. + (mark_regno_live): Use HARD_REGISTER_NUM_P macro. Remove return value + and do not guard call to mark_pseudo_live. + (mark_regno_dead): Use HARD_REGISTER_NUM_P macro. Remove return value + and do not guard call to mark_pseudo_dead. + (check_pseudos_live_through_calls): Use HARD_REGISTER_NUM_P macro. + (process_bb_lives): Use HARD_REGISTER_NUM_P and HARD_REGISTER_P macros. + Use new function update_pseudo_point. Handle register copies by + removing the source register from the live set. Handle INOUT operands. + Update to the next program point using the unused_set, dead_set and + start_dying sets. + (lra_create_live_ranges_1): Use HARD_REGISTER_NUM_P macro. + +2018-11-13 David Malcolm + + * builtins.c: Replace "source_location" with "location_t". + * diagnostic-show-locus.c: Likewise. + * diagnostic.c: Likewise. + * dumpfile.c: Likewise. + * gcc-rich-location.h: Likewise. + * genmatch.c: Likewise. + * gimple.h: Likewise. + * gimplify.c: Likewise. + * input.c: Likewise. + * input.h: Likewise. Eliminate the typedef. + * omp-expand.c: Likewise. + * selftest.h: Likewise. + * substring-locations.h (get_source_location_for_substring): + Rename to... + (get_location_within_string): ...this. + * tree-cfg.c: Replace "source_location" with "location_t". + * tree-cfgcleanup.c: Likewise. + * tree-diagnostic.c: Likewise. + * tree-into-ssa.c: Likewise. + * tree-outof-ssa.c: Likewise. + * tree-parloops.c: Likewise. + * tree-phinodes.c: Likewise. + * tree-phinodes.h: Likewise. + * tree-ssa-loop-ivopts.c: Likewise. + * tree-ssa-loop-manip.c: Likewise. + * tree-ssa-phiopt.c: Likewise. + * tree-ssa-phiprop.c: Likewise. + * tree-ssa-threadupdate.c: Likewise. + * tree-ssa.c: Likewise. + * tree-ssa.h: Likewise. + * tree-vect-loop-manip.c: Likewise. + +2018-11-13 Michael Ploujnikov + + * doc/extend.texi: Fix typo in the weakref description. + +2018-11-13 Richard Biener + + PR tree-optimization/86991 + * tree-vect-loop.c (vect_is_slp_reduction): Delay reduction + group building until we have successfully detected the SLP + reduction. + (vect_is_simple_reduction): Remove fixup code here. + +2018-11-13 David Malcolm + + * dumpfile.c (VERIFY_DUMP_ENABLED_P): New macro. + (dump_gimple_stmt): Use it. + (dump_gimple_stmt_loc): Likewise. + (dump_gimple_expr): Likewise. + (dump_gimple_expr_loc): Likewise. + (dump_generic_expr): Likewise. + (dump_generic_expr_loc): Likewise. + (dump_printf): Likewise. + (dump_printf_loc): Likewise. + (dump_dec): Likewise. + (dump_dec): Likewise. + (dump_hex): Likewise. + (dump_symtab_node): Likewise. + * gimple-loop-interchange.cc (tree_loop_interchange::interchange): + Guard dump call with dump_enabled_p. + * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): Likewise. + * graphite-optimize-isl.c (optimize_isl): Likewise. + * graphite.c (graphite_transform_loops): Likewise. + * tree-loop-distribution.c (pass_loop_distribution::execute): Likewise. + * tree-parloops.c (parallelize_loops): Likewise. + * tree-ssa-loop-niter.c (number_of_iterations_exit): Likewise. + * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise. + (vect_prune_runtime_alias_test_list): Likewise. + * tree-vect-loop.c (vect_update_vf_for_slp): Likewise. + (vect_estimate_min_profitable_iters): Likewise. + * tree-vect-slp.c (vect_record_max_nunits): Likewise. + (vect_build_slp_tree_2): Likewise. + (vect_supported_load_permutation_p): Likewise. + (vect_slp_analyze_operations): Likewise. + (vect_slp_analyze_bb_1): Likewise. + (vect_slp_bb): Likewise. + * tree-vect-stmts.c (vect_analyze_stmt): Likewise. + * tree-vectorizer.c (try_vectorize_loop_1): Likewise. + (pass_slp_vectorize::execute): Likewise. + (increase_alignment): Likewise. + +2018-11-13 David Malcolm + + PR ipa/87955 + * ipa-inline.c (report_inline_failed_reason): Guard calls to + cl_target_option_print_diff and cl_optimization_print_diff with + if (dump_file). + +2018-11-13 David Malcolm + + * doc/invoke.texi (-fsave-optimization-record): Note that the + output is compressed. + * optinfo-emit-json.cc: Include . + (optrecord_json_writer::write): Compress the output. + +2018-11-13 Aldy Hernandez + + * tree-vrp.c (value_range_base::dump): Dump type. + Do not use INF nomenclature for 1-bit types. + (dump_value_range): Group all variants to common dumping code. + (debug): New overloaded functions for value_ranges. + (value_range_base::dump): Remove no argument version. + (value_range::dump): Same. + +2018-11-13 Richard Biener + + PR tree-optimization/87931 + * tree-vect-loop.c (vect_is_simple_reduction): Restrict + nested cycles we support to latch computations vectorizable_reduction + handles. + +2018-11-13 Martin Liska + + PR tree-optimization/87885 + * cfghooks.c (account_profile_record): Rename + to ... + (profile_record_check_consistency): ... this. + Calculate missing num_mismatched_freq_in. + (profile_record_account_profile): New function + that calculates time and size of a function. + * cfghooks.h (struct profile_record): Remove + all tuples. + (struct cfg_hooks): Remove after_pass flag. + (account_profile_record): Rename to ... + (profile_record_check_consistency): ... this. + (profile_record_account_profile): New. + * cfgrtl.c (rtl_account_profile_record): Remove + after_pass flag. + * passes.c (check_profile_consistency): Do only + checking. + (account_profile): Calculate size and time of + function only. + (pass_manager::dump_profile_report): Reformat + output. + (execute_one_ipa_transform_pass): Call + consistency check before clean upand call account_profile + after a clean up is done. + (execute_one_pass): Call check_profile_consistency and + account_profile instead of using after_pass flag.. + * tree-cfg.c (gimple_account_profile_record): Likewise. + +2018-11-13 Martin Liska + + PR sanitizer/87930 + * config/i386/i386.c (ix86_option_override_internal): Error + about usage -mabi=ms and -fsanitize={,kernel-}address. + +2018-11-13 Andre Vieira + + * config/aarch64/aarch64.c + (aarch64_vectorize_preferred_vector_alignment): Change return type to + poly_uint64. + (aarch64_simd_vector_alignment_reachable): Adapt to preferred vector + alignment being a poly int. + * doc/tm.texi (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): Change + return type to poly_uint64. + * target.def (default_preferred_vector_alignment): Likewise. + * targhooks.c (default_preferred_vector_alignment): Likewise. + * targhooks.h (default_preferred_vector_alignment): Likewise. + * tree-vect-data-refs.c (vect_calculate_target_alignment): Likewise. + (vect_compute_data_ref_alignment): Adapt to vector alignment being a + poly int. + (vect_update_misalignment_for_peel): Likewise. + (vect_enhance_data_refs_alignment): Likewise. + (vect_find_same_alignment_drs): Likewise. + (vect_duplicate_ssa_name_ptr_info): Likewise. + (vect_setup_realignment): Likewise. + (vect_can_force_dr_alignment_p): Change alignment parameter type to + poly_uint64. + * tree-vect-loop-manip.c (get_misalign_in_elems): Learn to construct a + mask with a compile time variable vector alignment. + (vect_gen_prolog_loop_niters): Adapt to vector alignment being a poly + int. + (vect_do_peeling): Exit early if vector alignment is not constant. + * tree-vect-stmts.c (ensure_base_align): Adapt to vector alignment being + a poly int. + (vectorizable_store): Likewise. + (vectorizable_load): Likweise. + * tree-vectorizer.h (struct dr_vec_info): Make target_alignment field a + poly_uint64. + (vect_known_alignment_in_bytes): Adapt to vector alignment being a + poly int. + (vect_can_force_dr_alignment_p): Change alignment parameter type to + poly_uint64. + +2018-11-13 Richard Biener + + PR tree-optimization/87962 + * tree-vect-loop.c (vect_is_simple_reduction): More reliably + detect outer reduction for disqualifying in-loop uses. + +2018-11-13 Richard Biener + + PR tree-optimization/87967 + * tree-vect-loop.c (vect_transform_loop): Also copy PHIs + for constants for the scalar loop. + +2018-11-13 Alan Modra + + * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Exclude + integer constants when -mcmodel=medium. + +2018-11-13 Claudiu Zissulescu + + * config/arc/arc.h (FUNCTION_PROFILER): Redefine to empty. + * config/arc/elf.h (PROFILE_HOOK): Define. + * config/arc/linux.h (PROFILE_HOOK): Likewise. + +2018-11-13 Claudiu Zissulescu + + * config/arc/arc.c (hwloop_optimize): Bailout when detecting a + jump table data in the text section. + +2018-11-13 Claudiu Zissulescu + + * config/arc/arc.c (arc_eh_return_address_location): Repurpose it + to fit the eh_return pattern. + * config/arc/arc.md (eh_return): Define. + (VUNSPEC_ARC_EH_RETURN): Likewise. + * config/arc/arc-protos.h (arc_eh_return_address_location): Match + new implementation. + * config/arc/arc.h (EH_RETURN_HANDLER_RTX): Remove it. + + +2018-11-13 Claudiu Zissulescu + + * common/config/arc/arc-common.c (arc_option_optimization_table): + Millicode optimization is default on for size optimizations. + * config/arc/arc-protos.h (arc_check_multi): New function. + * config/arc/arc.c (RTX_OK_FOR_OFFSET_P): Rearange. + (ENTER_LEAVE_START_REG): Define. + (ENTER_LEAVE_END_REG): Likewise. + (arc_override_options): Disable millicode when long calls option + is on. + (arc_frame_info): Change it from int to bool. + (arc_compute_frame_size): Clean up. + (arc_save_restore): Remove. + (frame_save_reg): New function. + (frame_restore_reg): Likewise. + (arc_enter_leave_p): Likewise. + (arc_save_callee_saves): Likewise. + (arc_restore_callee_saves): Likewise. + (arc_save_callee_enter): Likewise. + (arc_restore_callee_leave): Likewise. + (arc_save_callee_milli): Likewise. + (arc_restore_callee_milli): Likewise. + (arc_expand_prologue): Reimplement to emit enter/leave + instructions. + (arc_expand_epilogue): Likewise. + (arc_check_multi): New function. + * config/arc/arc.md (push_multi_fp): New pattern. + (push_multi_fp_blink): Likewise. + (pop_multi_fp): Likewise. + (pop_multi_fp_blink): Likewise. + (pop_multi_fp_ret): Likewise. + (pop_multi_fp_blink_ret): Likewise. + * config/arc/arc.opt (mmillicode): Update option. + (mcode-density-frame): New option. + * config/arc/predicates.md (push_multi_operand): New predicate. + (pop_multi_operand): Likewise. + * doc/invoke.texi (ARC): Update ARC options information. + + +2018-11-13 Claudiu Zissulescu + + * config/arc/arc-protos.h (gen_operands_ldd_std): Add. + * config/arc/arc.c (operands_ok_ldd_std): New function. + (mem_ok_for_ldd_std): Likewise. + (gen_operands_ldd_std): Likewise. + * config/arc/arc.md: Add peephole2 rules for std/ldd. + +2018-11-13 Eric Botcazou + + * toplev.c (output_stack_usage): Turn test on flag_stack_usage into + test on stack_usage_file. + (lang_dependent_init): Do not open the .su file if generating LTO. + +2018-11-13 Jakub Jelinek + + PR rtl-optimization/87918 + * simplify-rtx.c (simplify_merge_mask): For COMPARISON_P, use + simplify_gen_relational rather than simplify_gen_binary. + +2018-11-13 Richard Biener + + * tree-ssanames.h (set_range_info): Use value_range_base. + (get_range_info): Likewise. + * tree-ssanames.c (set_range_info): Likewise. + (get_range_info): Likewise. + * tree-vrp.c (value_range_base::union_helper): Split + out common parts of value_range[_base]::union_. + (value_range_base::union_): Update. + (value_range::union_): Likewise. + (determine_value_range_1): Use value_range_base. + (determine_value_range): Likewise. + * tree-vrp.h (value_range_base::union_helper): Move ... + (value_range::union_helper): ... from here. + +2018-11-13 Alan Modra + + * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Negate + offset for PRE_DEC. + (rs6000_secondary_reload_gpr): Don't call find_replacement. + +2018-11-13 Sandra Loosemore + + PR middle-end/59634 + * doc/invoke.texi (Optimize Options): Clarify that the + l1-cache-line-size, l1-cache-size, and l2-cache-size parameters + apply to data cache size. + +2018-11-13 Alan Modra + + * config/rs6000/predicates.md (logical_const_operand), + (logical_operand): Correct comment. + * config/rs6000/rs6000.c (rs6000_emit_prologue): Comment fix. + +2018-11-13 Alan Modra + + * config/rs6000/rs6000.md (addsi3_high): Prefix with '*'. + +2018-11-13 Alan Modra + + * gcc/doc/md.texi (Machine Constraints): Correct rs6000 h constraint + description. + * config/rs6000/rs6000.md (movsi_internal1): Delete MT%0 case + covered by alternative. + (movcc_internal1): Ignore h for register preference. + (mov_hardfloat64): Likewise. + (mov_softfloat): Ignore c, l, h for register preference. + +2018-11-12 Sandra Loosemore + + PR preprocessor/47823 + * doc/cpp.texi (Alternatives to Wrapper #ifndef): Move #pragma once + documentation to... + (Pragmas): ...here. + * doc/extend.texi (Pragmas): Note additional pragmas documented + in the CPP manual. + +2018-11-13 Kugan Vivekanandarajah + + PR middle-end/86677 + PR middle-end/87528 + * tree-scalar-evolution.c (expression_expensive_p): Make + BUILTIN POPCOUNT as expensive when backend does not define it. + +2018-11-12 Fredrik Noring + + * config.gcc: Update with-llsc defaults for MIPS r5900. + +2018-11-12 Martin Liska + + PR gcov-profile/87442 + * common.opt: Add -fprofile-filter-files and -fprofile-exclude-files + options. + * doc/invoke.texi: Document them. + * tree-profile.c (parse_profile_filter): New. + (parse_profile_file_filtering): Likewise. + (release_profile_file_filtering): Likewise. + (include_source_file_for_profile): Likewise. + (tree_profiling): Filter source files based on the + newly added options. + +2018-11-12 Martin Liska + + PR target/87903 + * doc/extend.texi: Add missing values for __builtin_cpu_is and + __builtin_cpu_supports for x86 target. + +2018-11-12 Sandra Loosemore + + PR middle-end/21110 + * doc/rtl.texi (Constants): Clarify that mode of "high" doesn't + have to be Pmode. + (Arithmetic): Likewise for "lo_sum". + +2018-11-12 Renlin Li + + PR target/87815 + * dse.c (get_stored_val): Add check for compile-time constantness + of gap. + +2018-11-12 Sudakshina Das + + * config/arm/arm-cpus.in (armv8_5, sb, predres): New features. + (ARMv8_5a): New fgroup. + (armv8.5-a): New arch. + (armv8-a, armv8.1-a, armv8.2-a, armv8.3-a, armv8.4-a): New options + sb and predres. + * config/arm/arm-tables.opt: Regenerate. + * config/arm/t-aprofile: Add matching rules for -march=armv8.5-a + * config/arm/t-arm-elf (all_v8_archs): Add armv8.5-a. + * config/arm/t-multilib (v8_5_a_simd_variants): New variable. + Add matching rules for -march=armv8.5-a and extensions. + * doc/invoke.texi (ARM options): Document -march=armv8.5-a. + Add sb and predres to all armv8-a except armv8.5-a. + +2018-11-12 Richard Biener + + * tree-vrp.h (value_range[_base]::set): Make public. Provide + overload for single value. + (value_range[_base]::set_nonnull): New. + (value_range[_base]::set_null): Likewise. + (value_range): Document bitmap copying behavior, mark + copy constructor and assignment operator deleted. + (value_range::move): New. + (value_range::set_and_canonicalize): Default bitmap to zero. + (set_value_range_to_nonnull): Remove. + (set_value_range_to_null): Likewise. + (set_value_range): Likewise. + (set_value_range_to_value): Likewise. + (extract_range_from_unary_expr): Work on value_range_base. + (extract_range_from_binary_expr_1): Likewise. Rename to... + (extract_range_from_binary_expr): ... this. + * tree-vrp.c (value_range::update): Clear equiv bitmap + if required. + (value_range::move): New, move equiv bitmap. + (value_range_base::set_undefined): Avoid assignment. + (value_range::set_undefined): Likewise. + (value_range_base::set_varying): Likewise. + (value_range::set_varying): Likewise. + (set_value_range): Remove. + (value_range_base::set): New overload for value. + (value_range::set): Likewise. + (set_value_range_to_nonnull): Remove. + (value_range_base::set_nonnull): New. + (value_range::set_nonnull): Likewise. + (set_value_range_to_null): Remove. + (value_range_base::set_null): New. + (value_range::set_null): Likewise. + (range_is_null): Work on value_range_base. + (range_is_nonnull): Likewise. + (ranges_from_anti_range): Likewise. + (extract_range_into_wide_ints): Likewise. + (extract_range_from_multiplicative_op): Likewise. + (extract_range_from_binary_expr): Likewise. Update for API changes. + (extract_range_from_unary_expr): Likewise. Remove OBJ_TYPE_REF + handling. + (value_range::intersect_helper): Avoid copy and assignment. + (value_range::union_helper): Likewise. + (determine_value_range_1): Adjust. + * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range): + Avoid assignment by using move. + (evrp_range_analyzer::record_ranges_from_stmt): Avoid assignment. + * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): + Likewise. + * tree-ssanames.c (get_range_info): Likewise. + * vr-values.h (vr_values::get_vr_for_comparison): Adjust API. + * vr-values.c (vr_values::get_value_range): Adjust. + (vr_values::update_value_range): Likewise. + (symbolic_range_based_on_p): Work on value_range_base. + (vr_values::extract_range_from_binary_expr): Use value_range_base. + (vr_values::extract_range_from_unary_expr): Likewise. + (vr_values::extract_range_from_cond_expr): Avoid assignment. + (vr_values::extract_range_from_comparison): Adjust. + (vr_values::check_for_binary_op_overflow): Use value_range_base. + (vr_values::extract_range_basic): Adjust. + (vr_values::adjust_range_with_scev): Likewise. + (vr_values::vrp_visit_assignment_or_call): Likewise. + (vr_values::get_vr_for_comparison): Change API to avoid + assignment and copy construction. + (vr_values::compare_name_with_value): Adjust accordingly. + (vr_values::compare_names): Likewise. + (vr_values::extract_range_from_phi_node): Avoid assignment and + bogus in-place modify of equiv bitmap. + (vr_values::simplify_bit_ops_using_ranges): Use value_range_base. + * ipa-prop.c (ipa_compute_jump_functions_for_edge): Adjust + for extract_range_from_unary_expr API change. + * ipa-cp.c (ipa_vr_operation_and_type_effects): Likewise. + +2018-11-12 Eric Botcazou + + * config/mcore/mcore.h (WORD_REGISTER_OPERATIONS): Remove duplicate. + +2018-11-12 Richard Biener + + * tree-vrp.h (value_range_base::symbolic_p, + value_range_base::constant_p, value_range_base::zero_p, + value_range_base::singleton_p): Move from value_range. + (value_range::dump): Add. + * gimple-ssa-evrp-analyze.c + (evrp_range_analyzer::record_ranges_from_phis): Use set_varying. + * ipa-cp.c (ipcp_vr_lattice::print): Use dump_value_range. + * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): + Use set_varying. + * tree-vrp.c (value_range::symbolic_p): Move to value_range_base. + (value_range::constant_p): Likewise. + (value_range::singleton_p): Likewise. + (value_range_base::dump): Add. + (set_value_range_to_undefined): Remove. + (set_value_range_to_varying): Likewise. + (range_int_cst_p): Take value_range_base argument. + (range_int_cst_singleton_p): Likewise. + (value_range_constant_singleton): Likewise. + (vrp_set_zero_nonzero_bits): Likewise. + (extract_range_from_multiplicative_op): Use set_varying. + (extract_range_from_binary_expr_1): Likewise. Use set_undefined. + (extract_range_from_unary_expr): Likewise. + (dump_value_range_base): Change to overload of dump_value_range. + (vrp_prop::vrp_initialize): Use set_varying and set_undefined. + (vrp_prop::visit_stmt): Likewise. + (value_range::intersect_helper): Likewise. + (value_range::union_helper): Likewise. + (determine_value_range_1): Likewise. + +2018-11-12 Richard Biener + + * tree-vrp.c (set_value_range_to_nonnull): Clear equiv. + (set_value_range_to_null): Likewise. + * vr-values.c (vr_values::extract_range_from_comparison): + Clear equiv for constant singleton ranges. + +2018-11-12 Wei Xiao + + * config/i386/sse.md: Combine VFIXUPIMM* patterns + (_fixupimm_maskz): Update. + (_fixupimm): Update. + (_fixupimm_mask): Remove. + (avx512f_sfixupimm_maskz): Update. + (avx512f_sfixupimm): Update. + (avx512f_sfixupimm_mask): Remove. + +2018-11-11 Sandra Loosemore + + PR c/69502 + * doc/extend.texi (Common Type Attributes): For the align type + attribute, copy language about decreasing alignment from the + corresponding variable attribute. + +2018-11-11 Xianmiao Qu + + * config/csky/csky.md (*fpuv2_nmulsf3_1, *fpuv2_nmuldf3_1): Handle + -frounding-math. + +2018-11-11 Sandra Loosemore + + PR c++/43105 + * doc/invoke.texi (C++ Dialect Options): Add warning about mixing + -frtti and -fno-rtti code. + +2018-11-11 Sandra Loosemore + + PR c/26366 + * doc/extend.texi (Other Builtins): Document probability associated + with __builtin_expect. + +2018-11-11 Uros Bizjak + + PR target/87928 + * config/i386/i386.h (STACK_BOUNDARY): Use TARGET_64BIT_MS_ABI + instead of (TARGET_64BIT && ix86_abi == MS_ABI). + * config/i386/darwin.h (STACK_BOUNDARY): Ditto. + * config/i386/cygming.h (STACK_BOUNDARY): Remove. + +2018-11-11 Xianmiao Qu + + * config/csky/csky-linux-elf.h (CC1_SPEC): Support -profile. + +2018-11-11 Xianmiao Qu + + * config/csky/csky.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. + +2018-11-11 Richard Biener + + * tree-vrp.h (class value_range_base): New base class for + value_range containing all but the m_equiv member. + (dump_value_range_base): Add. + (range_includes_zero_p): Work on value_range_base. + * tree-vrp.c (value_range_base::set): Split out base handling + from... + (value_range::set): this. + (value_range::set_equiv): New. + (value_range_base::value_range_base): New constructors. + (value_range_base::check): Split out base handling from... + (value_range::check): this. + (value_range::equal_p): Refactor in terms of + ignore_equivs_equal_p which is now member of the base. + (value_range_base::set_undefined): New. + (value_range_base::set_varying): Likewise. + (value_range_base::dump):Split out base handling from... + (value_range::dump): this. + (value_range_base::set_and_canonicalize): Split out base handling + from... + (value_range::set_and_canonicalize): this. + (value_range_base::union_): New. + * ipa-prop.h (struct ipa_jump_func): Use value_range_base * + for m_vr. + * ipa-cp.c (class ipcp_vr_lattice): Use value_range_base + instead of value_range everywhere. + (ipcp_vr_lattice::print): Use dump_value_range_base. + (ipcp_vr_lattice::meet_with): Adjust. + (ipcp_vr_lattice::meet_with_1): Likewise. + (ipa_vr_operation_and_type_effects): Likewise. + (propagate_vr_across_jump_function): Likewise. + * ipa-prop.c (struct ipa_vr_ggc_hash_traits): Likewise. + (ipa_get_value_range): Likewise. + (ipa_set_jfunc_vr): Likewise. + (ipa_compute_jump_functions_for_edge): Likewise. + +2018-11-10 Sandra Loosemore + + PR middle-end/65703 + * doc/invoke.texi (Optimize Options): Add @opindex entries + for the positive forms of -fno-xxx and -mno-xxx options + that were lacking them. + +2018-11-10 Segher Boessenkool + + * combine.c (make_more_copies): Only make an intermediate copy if the + dest of a move is a pseudo. + +2018-11-09 Maya Rashish + + PR target/87221 + * config/netbsd-elf.h (NETBSD_STARTFILE_SPEC): Use crtbeginS.o for PIE. + (NETBSD_ENDFILE_SPEC): Use crtendS.o for PIE. + +2018-11-09 Sandra Loosemore + + PR driver/41179 + PR middle-end/65703 + * doc/invoke.texi (Optimize Options): Clarify default behavior + for -fno-toplevel-reorder, -fno-defer-pop, and -fno-branch-count-reg. + +2018-11-09 Bernd Edlinger + + PR tree-optimization/87940 + * expr.c (string_constant): Don't strip NOPS in subexpressions. + Fold PLUS_EXPR correctly. + +2018-11-09 Ilya Leoshkevich + + PR target/87762 + * config/s390/s390.c (s390_safe_relative_long_p): New function. + (annotate_constant_pool_refs): Skip insns which support + relative addressing. + (annotate_constant_pool_refs_1): New helper function. + (find_constant_pool_ref): Skip insns which support relative + addression. + (find_constant_pool_ref_1): New helper function. + (replace_constant_pool_ref): Skip insns which support + relative addressing. + (replace_constant_pool_ref_1): New helper function. + (s390_mainpool_start): Adapt to the new signature. + (s390_mainpool_finish): Likewise. + (s390_chunkify_start): Likewise. + (s390_chunkify_finish): Likewise. + (pass_s390_early_mach::execute): Likewise. + (s390_prologue_plus_offset): Likewise. + (s390_emit_prologue): Likewise. + (s390_emit_epilogue): Likewise. + +2018-11-09 Jakub Jelinek + + * gimplify.c (gimplify_scan_omp_clauses): Call sorry_at for valid + but unsupported lastprivate with conditional modifier. + +2018-11-09 Jeff Law + + * config/mips/mips.c (mips_loongson_ext2_prefetch_cookie): Handle + unused argument better. Add gcc_unreachable to silence warning. + +2018-11-09 Martin Sebor + + PR middle-end/81824 + * attribs.c (has_attribute): New helper function. + (decls_mismatched_attributes, maybe_diag_alias_attributes): Same. + * attribs.h (decls_mismatched_attributes): Declare. + * cgraphunit.c (handle_alias_pairs): Call maybe_diag_alias_attributes. + (maybe_diag_incompatible_alias): Use OPT_Wattribute_alias_. + * common.opt (-Wattribute-alias): Take an argument. + (-Wno-attribute-alias): New option. + * doc/extend.texi (Common Function Attributes): Document copy. + (Common Variable Attributes): Same. + * doc/invoke.texi (-Wmissing-attributes): Document enhancement. + (-Wattribute-alias): Document new option argument. + +2018-11-09 Richard Earnshaw + + * config/arm/parsecpu.awk (/alias/): Tighten invisible alias + matching criteria. Remove unused array initializer. + +2018-11-09 Bill Schmidt + Jinsong Ji + + * config/rs6000/xmmintrin.h (_mm_cvtss_si32): Fix incorrect + constraints by introducing a new temporary. + (_mm_cvtss_si64): Likewise. + +2018-11-09 Martin Liska + + * common.opt: Add -fipa-stack-alignment flag. + * doc/invoke.texi: Document it. + * final.c (rest_of_clean_state): Guard stack + shrinking with flag. + +2018-11-09 Martin Liska + + * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Rename + to ... + (ipa_discover_variable_flags): ... this. + * common.opt: Come up with new flag -fipa-reference-addressable. + * doc/invoke.texi: Document it. + * ipa-reference.c (propagate): Call the renamed fn. + * ipa-visibility.c (whole_program_function_and_variable_visibility): + Likewise. + * ipa.c (ipa_discover_readonly_nonaddressable_vars): Renamed to + ... + (ipa_discover_variable_flags): ... this. Discover + non-addressable variables only with the newly added flag. + * opts.c: Enable the newly added flag with -O1 and higher + optimization level. + +2018-11-09 David Malcolm + + * json.cc (selftest::test_writing_literals): Fix comment. + +2018-11-09 Martin Liska + + * config/aarch64/aarch64.c (aarch64_parse_arch): Do not copy + string to a stack buffer. + (aarch64_parse_cpu): Likewise. + (aarch64_parse_tune): Likewise. + +2018-11-09 Richard Biener + + PR tree-optimization/87953 + * tree-vect-loop.c (vectorizable_reduction): For analysis + always pass ops[0] to vectorizable_condition. + +2018-11-09 Stafford Horne + Richard Henderson + Joel Sherrill + + * common/config/or1k/or1k-common.c: New file. + * config/or1k/*: New. + * config.gcc (or1k*-*-*): New. + * configure.ac (or1k*-*-*): New test for openrisc tls. + * configure: Regenerated. + * doc/install.texi: Document OpenRISC triplets. + * doc/invoke.texi: Document OpenRISC arguments. + * doc/md.texi: Document OpenRISC. + +2018-11-09 Richard Earnshaw + + * config/arm/arm-cpus.in (arm7tdmi): Add an alias for arm7tdmi-s. + (arm7tdmi-s): Delete CPU. + (arm710t): Add aliases for arm720t and arm740t. + (arm720t, arm740t): Delete CPUs. + (arm920t): Add aliases for arm920, arm922t and arm940t. + (arm920, arm922t, arm940t): Delete CPUs. + (arm10tdmi): Add alias for arm1020t. + (arm1020t): Delete CPU. + (arm9e): Add aliases for arm946e-s, arm966e-s and arm968e-s. + (arm946e-s, arm966e-s, arm968e-s): Delete CPUs. + (arm10e): Add aliases for arm1020e and arm1022e. + (arm1020e, arm1022e): Delete CPU. + * config/arm/arm.md (generic_sched): Remove entries that are now + handled by aliases. + (generic_vfp): Likewise. + * config/arm/arm1020e.md: Simplify tuning selection based on alias + changes. + * config/arm/arm-tune.md: Regenerated. + * config/arm/arm-tables.opt: Regenerated. + +2018-11-09 Richard Biener + + PR tree-optimization/87621 + * tree-vect-loop.c (vectorizable_reduction): Handle reduction + op with only phi inputs. + * tree-ssa-loop-ch.c: Include tree-ssa-sccvn.h. + (ch_base::copy_headers): Run CSE on copied loop headers. + (pass_ch_vect::process_loop_p): Simplify. + +2018-11-09 Alexandre Oliva + + * config/i386/mingw32.h (LINK_SPEC_LARGE_ADDR_AWARE): Adjust + for non-w64 x86_64 biarch. + +2018-11-09 Alexandre Oliva + + PR rtl-optimization/86438 + * compare-elim.c (try_eliminate_compare): Use SET_SRC instead + of in_b for the compare if in_b is SET_DEST. + + PR target/87793 + * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Reject + non-toplevel UNSPEC. + +2018-11-08 Aldy Hernandez + + * tree-vrp.c (value_range::check): Do not access internals + directly. + (value_range::singleton_p): Same. + (value_range::type): Same. + (vrp_finalize): Use value_range API. + +2018-11-08 Aldy Hernandez + + * tree-vrp.c (may_contain_p): Do not access m_min/m_max directly. + +2018-11-08 Aldy Hernandez + + * vr-values.c (vr_values::get_value_range): Use value_range API + instead of piecing together ranges. + (vr_values::update_value_range): Same. + +2018-11-08 Aldy Hernandez + + * gimple-fold.c (size_must_be_zero_p): Use value_range API instead + of performing ad-hoc calculations. + * tree-ssanames.c (set_range_info): New overloaded function + accepting value_range &. + (get_range_info): Same. + * tree-ssanames.h (set_range_info_raw): Remove. + (set_range_info): New prototype. + (get_range_info): Same. + * tree-vrp.h (value_range::null_p): Rename to zero_p. + * tree-vrp.c (value_range::null_p): Same. + +2018-11-09 Jan Hubicka + + * tree.c (fld_type_variant_equal_p): Test user align flag. + (flt_type_variant): Copy user align flag. + (fld_incomplete_type_of): Clear it. + +2018-11-09 Prathamesh Kulkarni + + * config/arm/neon.md (div3): New pattern. + +2018-11-08 Andi Kleen + + * common/config/i386/i386-common.c (OPTION_MASK_ISA_PTWRITE_SET): New. + (OPTION_MASK_ISA_PTWRITE_UNSET): New. + (ix86_handle_option): Handle OPT_mptwrite. + * config/i386/cpuid.h (bit_PTWRITE): Add. + * config/i386/driver-i386.c (host_detect_local_cpu): Detect ptwrite. + * config/i386/i386-builtin.def (BDESC): Add ptwrite32/64. + * config/i386/i386-c.c (ix86_target_macros_internal): Define __PTWRITE__. + * config/i386/i386.c (ix86_target_string): Handle ptwrite. + (ix86_option_override_internal): Handle PTA_PTWRITE. + (ix86_valid_target_attribute_inner_p): Define ptwrite. + (def_builtin2): Force UINT64 to be 64bit only. + * config/i386/i386.h (TARGET_PTWRITE): Add. + (TARGET_PTWRITE_P): Add. + (PTA_PTWRITE): Add. + * config/i386/i386.md: Define ptwrite. + * config/i386/i386.opt: Add -mptwrite. + * config/i386/immintrin.h (_ptwrite64): Add. + (_ptwrite32): Add + * doc/extend.texi: Document __builtin_ia32_ptwrite*. + * doc/invoke.texi: Document -mptwrite. + +2018-11-08 Peter Bergner + + PR rtl-optimization/87600 + * cfgexpand.c (expand_asm_stmt): Catch illegal asm constraint usage. + * lra-constraints.c (process_alt_operands): Skip illegal hard + register usage. Prefer reloading non hard register operands. + +2018-11-08 Sandra Loosemore + + PR other/36572 + * doc/invoke.texi (Optimize Options): Clarify default behavior + for -fno-sched-interblock and -fno-sched-spec. + +2018-11-08 Roman Geissler + + * collect2.c (linker_select): Add USE_LLD_LD. + (ld_suffixes): Add ld.lld. + (main): Handle -fuse-ld=lld. + * common.opt (-fuse-ld=lld): New option. + * doc/invoke.texi (-fuse-ld=lld): Document. + * opts.c (common_handle_option): Handle OPT_fuse_ld_lld. + +2018-11-08 Paul Koning + + * config/pdp11/constraints.md: Add "Z" series constraints for use + with pre-dec and post-inc addressing. + * config/pdp11/pdp11-protos.m (expand_block_move): Delete. + (pdp11_expand_operands): Add int argument (word count). + (pdp11_sp_frame_offset): Delete. + (pdp11_cmp_length): New function. + (pushpop_regeq): New function. + * config/pdp11/pdp11.c (TARGET_STACK_PROTECT_RUNTIME_ENABLED_P): + Add hook. + (pdp11_expand_prologue, pdp11_expand_epilogue): Rewrite for new + frame layout. + (pdp11_initial_elimination_offset): Ditto. + (pdp11_expand_operands): Add word count argument. Bugfixes. + (output_move_multiple): Change how pointer adjustment is done. + (pdp11_gen_int_label): Correct format. + (output_ascii): Ditto. + (pdp11_asm_output_var): Add code for DEC assembler case. + (pdp11_asm_print_operand): Bugfix for CONST_DOUBLE holding integer + value. + (legitimate_const_double_p): Ditto. + (pdp11_register_move_cost): Adjust for new register classes. + (pdp11_regno_reg_class): Ditto. + (expand_block_move): Delete. + (pushpop_regeq): New function. + (pdp11_legitimate_address_p): Bugfix in check for constant + offset. + (pdp11_sp_frame_offset): Delete. + (pdp11_reg_save_size): New helper function for new frame layout. + (output_addr_const_pdp11): Remove CONST_DOUBLE case. + (pdp11_expand_shift): Bugfix in check for constant shift count. + (pdp11_shift_length): Ditto. + (pdp11_assemble_shift): Copy input to pdp11_expand_operands. + (pdp11_cmp_length): New function. + * config/pdp11/pdp11.h (TARGET_CPU_CPP_BUILTINS): Add macros for + some compile options. + (FIXED_REGISTERS): Remove HARD_FRAME_POINTER_REGNUM. + (CALL_USED_REGISTERS): Ditto. + (ELIMINABLE_REGS): Ditto. + (REGISTER_NAMES): Ditto. + (reg_class): Add classes NOTR0_REG through NOTSP_REG for use by Z + constraints. + (REG_CLASS_NAMES): Ditto. + (REG_CLASS_CONTENTS): Ditto. Also remove + HARD_FRAME_POINTER_REGNUM. + (CPU_REG_CLASS): New macro. + (CLASS_MAX_NREGS): Adjust for new register classes. + (FUNCTION_PROFILER): Make no-op. + (may_call_alloca): Remove unused declaration. + (ASM_OUTPUT_ALIGN): Add workaround for PR87795. + (ASM_OUTPUT_SKIP): Fix format. + * config/pdp11/pdp11.md (unspecv): Add UNSPECV_MOVMEM. + (HARD_FRAME_POINTER_REGNUM): Remove. + (return): Delete. + (*rts): Rename. Remove epilogue related checks. + (cmpsi, cmpdi): New insn. + (cbranch4): Change to apply to SI and DI modes as well. + (mov): Change constraints to enforce that push/pop + destination cannot use the same register as source. + (*mov): Ditto. + (movmemhi, movmemhi1, movmemhi_nocc): Change to expand block move + at assembly output rather than as RTL expander. + (zero_extendqihi2): Bugfix in check for same registers. + (adddi3_nocc): Bugfix in check for constant operand. + (addsi3_nocc): Ditto. + (subdi3_nocc): Ditto. + (subsi3_nocc): Ditto. + (negdi2_nocc): Copy input to pdp11_expand_operands. + (negsi2_nocc): Ditto. + (bswap2_nocc): Ditto. + * config/pdp11/pdp11.opt (mlra): Fix documentation. + * config/pdp11/t-pdp11: Use -Os. + +2018-11-08 Richard Earnshaw + + * config/arm/parsecpu.awk (/alias/): New parsing rule. + (/begin cpu/): Check that the cpu name hasn't been previously defined. + (gen_comm_data): Print out CPU alias tables. + (check_cpu): Match aliases when checking the CPU name. + * config/arm/arm-protos.h (cpu_alias): New structure. + (cpu_option): Add entry for aliases. + * config/arm/arm-cpus.in (strongarm): Add aliases for strongarm110 + strongarm1100 and strongarm1110. + (strongarm110, strongarm1100, strongarm1110): Delete CPU entries. + (config/arm/arm-generic.md): Remove redundant references to + strongarm110, strongarm1100 and strongarm1110. + * common/config/arm/arm-common.c (arm_print_hint_for_cpu_option): + Scan aliases for additional hints. + (arm_parse_cpu_option_name): Also match a cpu name against the list + of aliases. + * config/arm/arm-tables.opt: Regenerated. + * config/arm/arm-tune.md: Regenerated. + +2018-11-08 Jakub Jelinek + + * builtin-types.def (BT_FN_VOID_BOOL, BT_FN_VOID_SIZE_SIZE_PTR, + BT_FN_UINT_UINT_PTR_PTR, BT_FN_UINT_OMPFN_PTR_UINT_UINT, + BT_FN_BOOL_UINT_LONGPTR_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, + BT_FN_BOOL_UINT_ULLPTR_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR, + BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, + BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR): New. + * gengtype.c (open_base_files): Add omp-general.h. + * gimple.c (gimple_build_omp_critical): + (gimple_build_omp_taskgroup): Add CLAUSES argument. Call + gimple_omp_taskgroup_set_clauses. + (gimple_build_omp_atomic_load): Add mo argument, call + gimple_omp_atomic_set_memory_order. + (gimple_build_omp_atomic_store): Likewise. + (gimple_copy): Adjust handling of GIMPLE_OMP_TASKGROUP. + * gimple.def (GIMPLE_OMP_TASKGROUP): Use GSS_OMP_SINGLE_LAYOUT + instead of GSS_OMP. + (GIMPLE_OMP_TEAMS): Use GSS_OMP_PARALLEL_LAYOUT instead + of GSS_OMP_SINGLE_LAYOUT, adjust comments. + * gimple.h (enum gf_mask): Add GF_OMP_TEAMS_HOST, GF_OMP_TASK_TASKWAIT + and GF_OMP_ATOMIC_MEMORY_ORDER. Remove GF_OMP_ATOMIC_SEQ_CST, use + different value for GF_OMP_ATOMIC_NEED_VALUE. + (struct gimple_statement_omp_taskreg): Add GIMPLE_OMP_TEAMS to + comments. + (struct gimple_statement_omp_single_layout): And remove here. + (struct gomp_teams): Inherit from gimple_statement_omp_taskreg rather + than gimple_statement_omp_single_layout. + (is_a_helper ::test): Allow + GIMPLE_OMP_TEAMS. + (is_a_helper ::test): Likewise. + (gimple_omp_subcode): Formatting fix. + (gimple_omp_teams_child_fn, gimple_omp_teams_child_fn_ptr, + gimple_omp_teams_set_child_fn, gimple_omp_teams_data_arg, + gimple_omp_teams_data_arg_ptr, gimple_omp_teams_set_data_arg, + gimple_omp_teams_host, gimple_omp_teams_set_host, + gimple_omp_task_taskwait_p, gimple_omp_task_set_taskwait_p, + gimple_omp_taskgroup_clauses, gimple_omp_taskgroup_clauses_ptr, + gimple_omp_taskgroup_set_clauses): New inline functions. + (gimple_build_omp_atomic_load): Add enum omp_memory_order argument. + (gimple_build_omp_atomic_store): Likewise. + (gimple_omp_atomic_seq_cst_p): Remove. + (gimple_omp_atomic_memory_order): New function. + (gimple_omp_atomic_set_seq_cst): Remove. + (gimple_omp_atomic_set_memory_order): New function. + (gimple_build_omp_taskgroup): Add clauses argument. + * gimple-pretty-print.c (dump_gimple_omp_taskgroup): New function. + (dump_gimple_omp_task): Print taskwait with depend clauses. + (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Use + dump_omp_atomic_memory_order. + (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP. + * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALLOC_ONLY, + GOVD_MAP_FROM_ONLY and GOVD_NONTEMPORAL. + (enum omp_region_type): Reserve bits 1 and 2 for auxiliary flags, + renumber values of most of ORT_* enumerators, add ORT_HOST_TEAMS, + ORT_COMBINED_HOST_TEAMS, ORT_TASKGROUP, ORT_TASKLOOP and + ORT_UNTIED_TASKLOOP enumerators. + (enum gimplify_defaultmap_kind): New. + (struct gimplify_omp_ctx): Remove target_map_scalars_firstprivate and + target_map_pointers_as_0len_arrays members, add defaultmap. + (new_omp_context): Initialize defaultmap member. + (gimple_add_tmp_var): Handle ORT_TASKGROUP like ORT_WORKSHARE. + (maybe_fold_stmt): Don't fold even in host teams regions. + (omp_firstprivatize_variable): Handle ORT_TASKGROUP like + ORT_WORKSHARE. Test ctx->defaultmap[GDMK_SCALAR] instead of + ctx->omp_firstprivatize_variable. + (omp_add_variable): Don't add private/firstprivate for VLAs in + ORT_TASKGROUP. + (omp_default_clause): Print "taskloop" rather than "task" if + ORT_*TASKLOOP. + (omp_notice_variable): Handle ORT_TASKGROUP like ORT_WORKSHARE. + Handle new defaultmap clause kinds. + (omp_is_private): Handle ORT_TASKGROUP like ORT_WORKSHARE. Allow simd + iterator to be lastprivate or private. Fix up diagnostics if linear + is used on collapse>1 simd iterator. + (omp_check_private): Handle ORT_TASKGROUP like ORT_WORKSHARE. + (gimplify_omp_depend): New function. + (gimplify_scan_omp_clauses): Add shared clause on parallel for + combined parallel master taskloop{, simd} if taskloop has + firstprivate, lastprivate or reduction clause. Handle + OMP_CLAUSE_REDUCTION_TASK diagnostics. Adjust tests for + ORT_COMBINED_TEAMS. Gimplify depend clauses with iterators. Handle + cancel and simd OMP_CLAUSE_IF_MODIFIERs. Handle + OMP_CLAUSE_NONTEMPORAL. Handle new defaultmap clause kinds. Handle + OMP_CLAUSE_{TASK,IN}_REDUCTION. Diagnose invalid conditional + lastprivate. + (gimplify_adjust_omp_clauses_1): Ignore GOVD_NONTEMPORAL. Handle + GOVD_MAP_ALLOC_ONLY and GOVD_MAP_FROM_ONLY. + (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_NONTEMPORAL. Handle + OMP_CLAUSE_{TASK,IN}_REDUCTION. + (gimplify_omp_task): Handle taskwait with depend clauses. + (gimplify_omp_for): Add shared clause on parallel for combined + parallel master taskloop{, simd} if taskloop has firstprivate, + lastprivate or reduction clause. Use ORT_TASKLOOP or + ORT_UNTIED_TASKLOOP instead of ORT_TASK or ORT_UNTIED_TASK. Adjust + tests for ORT_COMBINED_TEAMS. Handle C++ range for loops with + NULL TREE_PURPOSE in OMP_FOR_ORIG_DECLS. Firstprivatize + __for_end and __for_range temporaries on OMP_PARALLEL for + distribute parallel for{, simd}. Move OMP_CLAUSE_REDUCTION + and OMP_CLAUSE_IN_REDUCTION from taskloop to the task construct + sandwiched in between two taskloops. + (computable_teams_clause): Test ctx->defaultmap[GDMK_SCALAR] + instead of ctx->omp_firstprivatize_variable. + (gimplify_omp_workshare): Set ort to ORT_HOST_TEAMS or + ORT_COMBINED_HOST_TEAMS if not inside of target construct. If + host teams, use gimplify_and_return_first etc. for body like + for target or target data constructs, and at the end call + gimple_omp_teams_set_host on the GIMPLE_OMP_TEAMS object. + (gimplify_omp_atomic): Use OMP_ATOMIC_MEMORY_ORDER instead + of OMP_ATOMIC_SEQ_CST, pass it as new argument to + gimple_build_omp_atomic_load and gimple_build_omp_atomic_store, remove + gimple_omp_atomic_set_seq_cst calls. + (gimplify_expr) : Move handling into a separate + case, handle taskgroup clauses. + * lto-streamer-out.c (hash_tree): Handle + OMP_CLAUSE_{TASK,IN}_REDUCTION. + * Makefile.in (GTFILES): Add omp-general.h. + * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND, + BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_START, + BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_START, + BUILT_IN_GOMP_LOOP_START, BUILT_IN_GOMP_LOOP_ORDERED_START, + BUILT_IN_GOMP_LOOP_DOACROSS_START, + BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_NEXT, + BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_NEXT, + BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_START, + BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_START, + BUILT_IN_GOMP_LOOP_ULL_START, BUILT_IN_GOMP_LOOP_ULL_ORDERED_START, + BUILT_IN_GOMP_LOOP_ULL_DOACROSS_START, + BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_NEXT, + BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_NEXT, + BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME, + BUILT_IN_GOMP_PARALLEL_LOOP_MAYBE_NONMONOTONIC_RUNTIME, + BUILT_IN_GOMP_PARALLEL_REDUCTIONS, BUILT_IN_GOMP_SECTIONS2_START, + BUILT_IN_GOMP_TEAMS_REG, BUILT_IN_GOMP_TASKGROUP_REDUCTION_REGISTER, + BUILT_IN_GOMP_TASKGROUP_REDUCTION_UNREGISTER, + BUILT_IN_GOMP_TASK_REDUCTION_REMAP, + BUILT_IN_GOMP_WORKSHARE_TASK_REDUCTION_UNREGISTER): New builtins. + * omp-expand.c (workshare_safe_to_combine_p): Return false for + non-worksharing loops. + (omp_adjust_chunk_size): Don't adjust anything if chunk_size is zero. + (determine_parallel_type): Don't combine parallel with worksharing + which has _reductemp_ clause. + (expand_parallel_call): Emit the GOMP_*nonmonotonic_runtime* or + GOMP_*maybe_nonmonotonic_runtime* builtins instead of GOMP_*runtime* + if there is nonmonotonic modifier or if there is no modifier and no + ordered clause. For dynamic and guided schedule without monotonic + and nonmonotonic modifier, default to nonmonotonic. + (expand_omp_for): Likewise. Adjust expand_omp_for_generic caller, use + GOMP_loop{,_ull}{,_ordered,_doacross}_start builtins if there are + task reductions. + (expand_task_call): Add GOMP_TASK_FLAG_REDUCTION flag to flags if + there are any reduction clauses. + (expand_taskwait_call): New function. + (expand_teams_call): New function. + (expand_omp_taskreg): Allow GIMPLE_OMP_TEAMS and call + expand_teams_call for it. Formatting fix. Handle taskwait with + depend clauses. + (expand_omp_for_generic): Add SCHED_ARG argument. Handle expansion + of worksharing loops with task reductions. + (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle + expansion of worksharing loops with task reductions. + (expand_omp_sections): Handle expansion of sections with task + reductions. + (expand_omp_synch): For host teams call expand_omp_taskreg. + (omp_memory_order_to_memmodel): New function. + (expand_omp_atomic_load, expand_omp_atomic_store, + expand_omp_atomic_fetch_op): Use it and gimple_omp_atomic_memory_order + instead of gimple_omp_atomic_seq_cst_p. + (build_omp_regions_1, omp_make_gimple_edges): Treat taskwait with + depend clauses as a standalone directive. + * omp-general.c (enum omp_requires): New variable. + (omp_extract_for_data): Initialize have_reductemp member. Allow + NE_EXPR even in OpenMP loops, transform them into LT_EXPR or + GT_EXPR loops depending on incr sign. Formatting fixes. + * omp-general.h (struct omp_for_data): Add have_reductemp member. + (enum omp_requires): New enum. + (omp_requires_mask): Declare. + * omp-grid.c (grid_eliminate_combined_simd_part): Formatting fix. + Fix comment typos. + * omp-low.c (struct omp_context): Add task_reductions and + task_reduction_map fields. + (is_host_teams_ctx): New function. + (is_taskreg_ctx): Return true also if is_host_teams_ctx. + (use_pointer_for_field): Use is_global_var instead of + TREE_STATIC || DECL_EXTERNAL, and apply only if not privatized + in outer contexts. + (build_outer_var_ref): Ignore taskgroup outer contexts. + (delete_omp_context): Release task_reductions and task_reduction_map. + (scan_sharing_clauses): Don't add any fields for reduction clause on + taskloop. Handle OMP_CLAUSE__REDUCTEMP_. Handle + OMP_CLAUSE_{IN,TASK}_REDUCTION and OMP_CLAUSE_REDUCTION with task + modifier. Don't ignore shared clauses in is_host_teams_ctx contexts. + Handle OMP_CLAUSE_NONTEMPORAL. + (add_taskreg_looptemp_clauses): Add OMP_CLAUSE__REDUCTEMP_ clause if + needed. + (scan_omp_parallel): Add _reductemp_ clause if there are any reduction + clauses with task modifier. + (scan_omp_task): Handle taskwait with depend clauses. + (finish_taskreg_scan): Move field corresponding to _reductemp_ clause + first. Move also OMP_CLAUSE__REDUCTEMP_ clause in front if present. + Handle GIMPLE_OMP_TEAMS like GIMPLE_OMP_PARALLEL. + (scan_omp_for): Fix comment formatting. + (scan_omp_teams): Handle host teams constructs. + (check_omp_nesting_restrictions): Allow teams with no outer + OpenMP context. Adjust diagnostics for teams strictly nested into + some explicit OpenMP construct other than target. Allow OpenMP atomics + inside of simd regions. + (scan_omp_1_stmt): Call scan_sharing_clauses for taskgroups. + (scan_omp_1_stmt) : Temporarily bump + taskreg_nesting_level while scanning host teams construct. + (task_reduction_read): New function. + (lower_rec_input_clauses): Handle OMP_CLAUSE_REDUCTION on taskloop + construct. Handle OMP_CLAUSE_IN_REDUCTION and OMP_CLAUSE__REDUCTEMP_ + clauses. Handle OMP_CLAUSE_REDUCTION with task modifier. Remove + second argument create_tmp_var if it is NULL. Don't ignore shared + clauses in is_host_teams_ctx contexts. Handle + OMP_CLAUSE_FIRSTPRIVATE_NO_REFERENCE on OMP_CLAUSE_FIRSTPRIVATE + clauses. + (lower_reduction_clauses): Ignore reduction clauses with task + modifier. Remove second argument create_tmp_var if it is NULL. + Initialize OMP_ATOMIC_MEMORY_ORDER to relaxed. + (lower_send_clauses): Ignore reduction clauses with task modifier. + Handle OMP_CLAUSE__REDUCTEMP_. Don't send anything for + OMP_CLAUSE_REDUCTION on taskloop. Handle OMP_CLAUSE_IN_REDUCTION. + (maybe_add_implicit_barrier_cancel): Add OMP_RETURN argument, don't + rely that it is the last stmt in body so far. Ignore outer taskgroup + contexts. + (omp_task_reductions_find_first, omp_task_reduction_iterate, + lower_omp_task_reductions): New functions. + (lower_omp_sections): Handle reduction clauses with taskgroup + modifiers. Adjust maybe_add_implicit_barrier_cancel caller. + (lower_omp_single): Adjust maybe_add_implicit_barrier_cancel caller. + (lower_omp_for): Likewise. Handle reduction clauses with taskgroup + modifiers. + (lower_omp_taskgroup): Handle taskgroup reductions. + (create_task_copyfn): Copy over OMP_CLAUSE__REDUCTEMP_ pointer. + Handle OMP_CLAUSE_IN_REDUCTION and OMP_CLAUSE_REDUCTION clauses. + (lower_depend_clauses): If there are any + OMP_CLAUSE_DEPEND_DEPOBJ or OMP_CLAUSE_DEPEND_MUTEXINOUTSET + depend clauses, use a new array format. If OMP_CLAUSE_DEPEND_LAST is + seen, assume lowering is done already and return early. Set kind + on artificial depend clause to OMP_CLAUSE_DEPEND_LAST. + (lower_omp_taskreg): Handle reduction clauses with task modifier on + parallel construct. Handle reduction clause on taskloop construct. + Handle taskwait with depend clauses. + (lower_omp_1): Use lower_omp_taskreg instead of lower_omp_teams + for host teams constructs. + * tree.c (omp_clause_num_ops): Add in_reduction, task_reduction, + nontemporal and _reductemp_ clause entries. + (omp_clause_code_name): Likewise. + (walk_tree_1): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION, + OMP_CLAUSE_NONTEMPORAL and OMP_CLAUSE__REDUCTEMP_. + * tree-core.h (enum omp_clause_code): Add + OMP_CLAUSE_{{IN,TASK}_REDUCTION,NONTEMPORAL,_REDUCTEMP_}. + (enum omp_clause_defaultmap_kind, enum omp_memory_order): New. + (struct tree_base): Add omp_atomic_memory_order field into union. + Remove OMP_ATOMIC_SEQ_CST comment. + (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_MUTEXINOUTSET + and OMP_CLAUSE_DEPEND_DEPOBJ. + (struct tree_omp_clause): Add subcode.defaultmap_kind. + * tree.def (OMP_TASKGROUP): Add another operand, move next to other + OpenMP constructs with body and clauses operands. + * tree.h (OMP_BODY): Use OMP_MASTER instead of OMP_TASKGROUP. + (OMP_CLAUSES): Use OMP_TASKGROUP instead of OMP_SINGLE. + (OMP_TASKGROUP_CLAUSES): Define. + (OMP_CLAUSE_DECL): Use OMP_CLAUSE__REDUCTEMP_ instead of + OMP_CLAUSE__LOOPTEMP_. + (OMP_ATOMIC_SEQ_CST): Remove. + (OMP_ATOMIC_MEMORY_ORDER, OMP_CLAUSE_FIRSTPRIVATE_NO_REFERENCE, + OMP_CLAUSE_LASTPRIVATE_CONDITIONAL): Define. + (OMP_CLAUSE_REDUCTION_CODE, OMP_CLAUSE_REDUCTION_INIT, + OMP_CLAUSE_REDUCTION_MERGE, OMP_CLAUSE_REDUCTION_PLACEHOLDER, + OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER, + OMP_CLAUSE_REDUCTION_OMP_ORIG_REF): Handle + OMP_CLAUSE_{,IN_,TASK_}REDUCTION. + (OMP_CLAUSE_REDUCTION_TASK, OMP_CLAUSE_REDUCTION_INSCAN, + OMP_CLAUSE_DEFAULTMAP_KIND, OMP_CLAUSE_DEFAULTMAP_CATEGORY, + OMP_CLAUSE_DEFAULTMAP_BEHAVIOR, OMP_CLAUSE_DEFAULTMAP_SET_KIND): + Define. + * tree-inline.c (remap_gimple_stmt): Remap taskgroup clauses. + * tree-nested.c (convert_nonlocal_omp_clauses): Handle + OMP_CLAUSE__REDUCTEMP_, OMP_CLAUSE_NONTEMPORAL. + (convert_local_omp_clauses): Likewise. Remove useless test. + * tree-parloops.c (create_call_for_reduction_1): Pass + OMP_MEMORY_ORDER_RELAXED as new argument to + dump_gimple_omp_atomic_load and dump_gimple_omp_atomic_store. + * tree-pretty-print.c (dump_omp_iterators): New function. + (dump_omp_clause): Handle OMP_CLAUSE__REDUCTEMP_, + OMP_CLAUSE_NONTEMPORAL, OMP_CLAUSE_{TASK,IN}_REDUCTION. Print + reduction modifiers. Handle OMP_CLAUSE_DEPEND_DEPOBJ and + OMP_CLAUSE_DEPEND_MUTEXINOUTSET. Print iterators in depend clauses. + Print __internal__ for OMP_CLAUSE_DEPEND_LAST. Handle cancel and + simd OMP_CLAUSE_IF_MODIFIERs. Handle new kinds of + OMP_CLAUSE_DEFAULTMAP. Print conditional: for + OMP_CLAUSE_LASTPRIVATE_CONDITIONAL. + (dump_omp_atomic_memory_order): New function. + (dump_generic_node): Use it. Print taskgroup clauses. Print + taskwait with depend clauses. + * tree-pretty-print.h (dump_omp_atomic_memory_order): Declare. + * tree-streamer-in.c (unpack_ts_omp_clause_value_fields): + Handle OMP_CLAUSE_{TASK,IN}_REDUCTION. + * tree-streamer-out.c (pack_ts_omp_clause_value_fields, + write_ts_omp_clause_tree_pointers): Likewise. + +2018-11-08 David Malcolm + + PR ipa/86395 + * doc/invoke.texi (-fdump-ipa-): Document the "-optimized", + "-missed", "-note", and "-all" sub-options. + * ipa-inline.c (caller_growth_limits): Port from fprintf to dump + API. + (can_early_inline_edge_p): Likewise. + (want_early_inline_function_p): Likewise. + (want_inline_self_recursive_call_p): Likewise. + (recursive_inlining): Likewise. + (inline_small_functions): Likewise. + (flatten_function): Likewise. + (ipa_inline): Likewise. + (inline_always_inline_functions): Likewise. + (early_inline_small_functions): Likewise. + (early_inliner): Likewise. + * tree-inline.c (expand_call_inline): Likewise. + +2018-11-08 David Malcolm + + * pretty-print.c (pp_format): Handle %f. + (selftest::test_pp_format): Add test of %f. + * pretty-print.h (pp_double): New macro. + +2018-11-08 David Malcolm + + * dump-context.h (ASSERT_IS_CGRAPH_NODE): New macro. + * dumpfile.c (make_item_for_dump_cgraph_node): Move to before... + (dump_pretty_printer::decode_format): Implement "%C" for + cgraph_node *. + (selftest::test_capture_of_dump_calls): Rename "where" to + "stmt_loc". Convert test_decl to a function decl and set its + location. Add a symbol_table_test RAII instance and a + cgraph_node, using it to test "%C" and dump_symtab_node. + +2018-11-08 Eric Botcazou + + PR middle-end/87916 + * cgraphclones.c (duplicate_thunk_for_node): Also set DECL_IGNORED_P. + +2018-11-08 David Malcolm + + * cgraph.c: Include "selftest.h". + (saved_symtab): New variable. + (selftest::symbol_table_test::symbol_table_test): New ctor. + (selftest::symbol_table_test::~symbol_table_test): New dtor. + (selftest::test_symbol_table_test): New test. + (selftest::cgraph_c_tests): New. + * cgraph.h (saved_symtab): New decl. + (selftest::symbol_table_test): New class. + * selftest-run-tests.c (selftest::run_tests): Call + selftest::cgraph_c_tests. + * selftest.h (selftest::cgraph_c_tests): New decl. + +2018-11-08 Richard Biener + + * tree-data-ref.h (lambda_int): New typedef. + (lambda_vector_gcd): Adjust. + (lambda_vector_new): Likewise. + (lambda_matrix_new): Likewise. + * tree-data-ref.c (print_lambda_vector): Adjust. + +2018-11-08 Richard Biener + + PR tree-optimization/87929 + * tree-complex.c (expand_complex_comparison): Clean EH. + +2018-11-08 Martin Liska + + * doc/extend.texi: Reword. + * predict.c (expr_expected_value_1): Likewise. + +2018-11-08 Richard Biener + + PR tree-optimization/87913 + * tree-ssa-phiopt.c (minmax_replacement): Turn EQ/NE compares + of extreme values to ordered comparisons. + +2018-11-07 Sandra Loosemore + + PR middle-end/42726 + * doc/invoke.texi (Code Gen Options): Clarify -fno-common behavior. + +2018-11-07 Sandra Loosemore + + * doc/invoke.texi: Remove leading dash from @opindex entries + throughout the file. + +2018-11-07 Sandra Loosemore + + PR driver/80828 + * doc/invoke.texi (Option Summary): Add -e and --entry. + (Link Options): Likewise. + +2018-11-07 Nathan Sidwell + + PR 87926 + * Makefile.in (bitmap.o-warn): Add -Wno-error to unbreak + --disable-checking bootstrap. + +2018-11-07 Hafiz Abid Qadeer + + * configure: Regenerated. + +2018-11-07 Jozef Lawrynowicz + + PR c/87691 + * stor-layout.c (compute_record_mode): Set TYPE_MODE of UNION_TYPE + to the mode of the widest field iff the widest field has mode class + MODE_INT, or MODE_PARTIAL_INT and the union would be passed by + reference. + +2018-11-07 Nikolai Merinov + + * common.opt: Add -Wattribute-warning. + * doc/invoke.texi: Add documentation for -Wno-attribute-warning. + * expr.c (expand_expr_real_1): Add new attribute to warning_at + call to allow user configure behavior of "warning" attribute. + +2018-11-07 Segher Boessenkool + + * target.def: Put @: after every vs., e.g., and i.e. where it is + followed by whitespace. + * doc/extend.texi: Ditto. + * doc/fragments.texi: Ditto. + * doc/gimple.texi: Ditto. + * doc/implement-c.texi: Ditto. + * doc/install.texi: Ditto. + * doc/invoke.texi: Ditto. + * doc/md.texi: Ditto. + * doc/plugins.texi: Ditto. + * doc/rtl.texi: Ditto. + * doc/sourcebuild.texi: Ditto. + * doc/tm.texi.in: Ditto. + * doc/ux.texi: Ditto. + * doc/tm.texi: Regenerate. + +2018-11-07 Kyrylo Tkachov + + * config/arm/arm-cpus.in (ares): New entry. + * config/arm/arm-tables.opt: Regenerate. + * config/arm/arm-tune.md: Likewise. + * doc/invoke.texi (ARM Options): Document ares. + +2018-11-07 Kyrylo Tkachov + + * config/aarch64/aarch64-cores.def (ares): Define. + * config/aarch64/aarch64-tune.md: Regenerate. + * doc/invoke.texi (AArch64 Options): Document ares value for mtune. + +2018-11-07 Jan Hubicka + + * tree.c (fld_incomplete_type_of): Clear TREE_ADDRESSABLE. + (free_lang_data_in_decl): Set TREE_ADDRESSABLE for public vars and + functions; clear TYPE_DECL_SUPPRESS_DEBUG and DECL_MODE for + TYPE_DECL. + +2018-11-07 Richard Biener + + PR tree-optimization/87914 + * tree-vect-loop.c (vect_is_simple_reduction): Improve detection + of nested cycles. + (vectorizable_reduction): Handle shifts and rotates by dispatching + to vectorizable_shift. + * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Handle + in-loop uses of vect_nested_cycle defs. Merge cycle and internal + def cases. + (vectorizable_shift): Export and handle being called as + vect_nested_cycle. + (vect_analyze_stmt): Call vectorizable_shift after + vectorizable_reduction. + * tree-vectorizer.h (vectorizable_shift): Declare. + +2018-11-07 Jan Hubicka + + * ipa-devirt.c (odr_types_equivalent_p): Expect constants + than const decls in TREE_VALUE of enum. + (dump_type_inheritance_graph): Improve duplicate dumping. + (free_enum_values): New. + (build_type_inheritance_graph): Use it. + * tree.c (free_lang_data_in_type): Free TYPE_VALUES of enums + which are not main variants or not ODR types. + (verify_type_variant): Expect variants to have no TYPE_VALUES. + +2018-11-07 Richard Biener + + * ipa-inline.c (want_inline_small_function_p): Compute + big_speedup_p lazily and last. + +2018-11-07 Jan Hubicka + + * tree.c (fld_type_variant_equal_p): Skip TYPE_ALIGN check when + building incomplete variant of complete type. + (fld_type_variant): Do not copy TYPE_ALIGN when building incomplete + variant of complete type. + +2018-11-07 Chenghua Xu + + * config/mips/mips.c: Fix typo in documentation of + mips_loongson_ext2_prefetch_cookie. + (mips_option_override): fix brain twister logical. + * config/mips/mips.h: Fix typo in documentation of + ISA_HAS_CTZ_CTO and define pattern. + * config/mips/mips.md (prefetch): Hoist EXT2 above + the 2EF/EXT block. + (prefetch_indexed): Hoist EXT2 above the EXT block. + +2018-11-07 Jan Hubicka + + * tree.c (free_lang_data_in_type): Add fld parameter; simplify + return and parameter types of function and method types. + (free_lang_data_in_cgraph): Update. + +2018-11-07 Martin Liska + + PR rtl-optimization/87868 + * postreload-gcse.c (eliminate_partially_redundant_load): Set + threshold to max_count if we would overflow. + * profile-count.h: Make max_count a public constant. + +2018-11-07 Martin Liska + + * mem-stats.h: Fix GNU coding style. + +2018-11-07 Chenghua Xu + + * config/mips/gs264e.md: New. + * config/mips/mips-cpus.def: Define gs264e. + * config/mips/mips-tables.opt: Regenerate. + * config/mips/mips.c (mips_rtx_cost_data): Add DEFAULT_COSTS for + gs264e. + (mips_issue_rate): Add support for gs264e. + (mips_multipass_dfa_lookahead): Likewise. + * config/mips/mips.h: Define TARGET_GS264E and TUNE_GS264E. + (MIPS_ISA_LEVEL_SPEC): Infer mips64r2 from gs264e. + (MIPS_ASE_MSA_SPEC): New. + (BASE_DRIVER_SELF_SPECS): march=gs264e implies -mmsa. + (ISA_HAS_FUSED_MADD4): Enable for TARGET_GS264E. + (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_GS264E. + * config/mips/mips.md: Include gs264e.md. + (processor): Add gs264e. + * config/mips/mips.opt (MSA): Use Mask instead of Var. + * doc/invoke.texi: Add gs264e to supported architectures. + +2018-11-07 Chenghua Xu + + * config/mips/gs464e.md: New. + * config/mips/mips-cpus.def: Define gs464e. + * config/mips/mips-tables.opt: Regenerate. + * config/mips/mips.c (mips_rtx_cost_data): Add DEFAULT_COSTS for + gs464e. + (mips_issue_rate): Add support for gs464e. + (mips_multipass_dfa_lookahead): Likewise. + (mips_option_override): Enable MMI, EXT and EXT2 for gs464e. + * config/mips/mips.h: Define TARGET_GS464E and TUNE_GS464E. + (MIPS_ISA_LEVEL_SPEC): Infer mips64r2 from gs464e. + (ISA_HAS_FUSED_MADD4): Enable for TARGET_GS464E. + (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_GS464E. + * config/mips/mips.md: Include gs464e.md. + (processor): Add gs464e. + * doc/invoke.texi: Add gs464e to supported architectures. + +2018-11-07 Chenghua Xu + + * config/mips/loongson3a.md: Rename to ... + * config/mips/gs464.md: ... here. + * config/mips/mips-cpus.def: Define gs464; Add loongson3a + as an alias of gs464 processor. + * config/mips/mips-tables.opt: Regenerate. + * config/mips/mips.c (mips_issue_rate): Use PROCESSOR_GS464 + instead of PROCESSOR_LOONGSON_3A. + (mips_multipass_dfa_lookahead): Use TUNE_GS464 instead of + TUNE_LOONGSON_3A. + (mips_option_override): Enable MMI and EXT for gs464. + * config/mips/mips.h: Rename TARGET_LOONGSON_3A to TARGET_GS464; + Rename TUNE_LOONGSON_3A to TUNE_GS464. + (MIPS_ISA_LEVEL_SPEC): Infer mips64r2 from gs464. + (ISA_HAS_ODD_SPREG, ISA_AVOID_DIV_HILO, ISA_HAS_FUSED_MADD4, + ISA_HAS_UNFUSED_MADD4): Use TARGET_GS464 instead of + TARGET_LOONGSON_3A. + * config/mips/mips.md: Include gs464.md instead of loongson3a.md. + (processor): Add gs464; + * doc/invoke.texi: Add gs464 to supported architectures. + +2018-11-07 Chenghua Xu + + * config/mips/mips-protos.h + (mips_loongson_ext2_prefetch_cookie): New prototype. + * config/mips/mips.c (mips_loongson_ext2_prefetch_cookie): New. + (mips_option_override): Enable TARGET_LOONGSON_EXT when + TARGET_LOONGSON_EXT2 is true. + * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define + __mips_loongson_ext2, __mips_loongson_ext_rev=2. + (ISA_HAS_CTZ_CTO): New, true if TARGET_LOONGSON_EXT2. + (ISA_HAS_PREFETCH): Include TARGET_LOONGSON_EXT and + TARGET_LOONGSON_EXT2. + (ASM_SPEC): Add mloongson-ext2 and mno-loongson-ext2. + (define_insn "ctz2"): New insn pattern. + (define_insn "prefetch"): Include TARGET_LOONGSON_EXT2. + (define_insn "prefetch_indexed_"): Include + TARGET_LOONGSON_EXT and TARGET_LOONGSON_EXT2. + * config/mips/mips.opt (-mloongson-ext2): Add option. + * gcc/doc/invoke.texi (-mloongson-ext2): Document. + +2018-11-07 Chenghua Xu + + * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add + __mips_loongson_ext. + (MIPS_ASE_LOONGSON_EXT_SPEC): New. + (BASE_DRIVER_SELF_SPECS): march=loongson3a implies + -mloongson-ext. + (ASM_SPEC): Add mloongson-ext and mno-loongson-ext. + * config/mips/mips.md (mul3, mul3_mul3_nohilo, + div3, mod3, prefetch): Use TARGET_LOONGSON_EXT + instead of TARGET_LOONGSON_3A. + * config/mips/mips.opt (-mloongson-ext): Add option. + * gcc/doc/invoke.texi (-mloongson-ext): Document. + +2018-11-07 Chenghua Xu + + * config.gcc (extra_headers): Add loongson-mmiintrin.h. + * config/mips/loongson.md: Move to ... + * config/mips/loongson-mmi.md: here; Adjustment. + * config/mips/loongson.h: Move to ... + State as deprecated. Include loongson-mmiintrin.h for back + compatibility and warning. + * config/mips/loongson-mmiintrin.h: ... here. + * config/mips/mips.c (mips_hard_regno_mode_ok_uncached, + mips_vector_mode_supported_p, AVAIL_NON_MIPS16): Use + TARGET_LOONGSON_MMI instead of TARGET_LOONGSON_VECTORS. + (mips_option_override): Make sure MMI use hard float; + (mips_shift_truncation_mask, mips_expand_vpc_loongson_even_odd, + mips_expand_vpc_loongson_pshufh, mips_expand_vpc_loongson_bcast, + mips_expand_vector_init): Use TARGET_LOONGSON_MMI instead of + TARGET_LOONGSON_VECTORS. + * gcc/config/mips/mips.h (TARGET_LOONGSON_VECTORS): Delete. + (TARGET_CPU_CPP_BUILTINS): Add __mips_loongson_mmi. + (MIPS_ASE_DSP_SPEC, MIPS_ASE_LOONGSON_MMI_SPEC): New. + (BASE_DRIVER_SELF_SPECS): march=loongson2e/2f/3a implies + -mloongson-mmi. + (SHIFT_COUNT_TRUNCATED): Use TARGET_LOONGSON_MMI instead of + TARGET_LOONGSON_VECTORS. + * gcc/config/mips/mips.md (MOVE64, MOVE128): Use + TARGET_LOONGSON_MMI instead of TARGET_LOONGSON_VECTORS. + (Loongson MMI patterns): Include loongson-mmi.md instead of + loongson.md. + * gcc/config/mips/mips.opt (-mloongson-mmi): New option. + * gcc/doc/invoke.texi (-mloongson-mmi): Document. + +2018-11-07 Richard Biener + + PR lto/87906 + * tree-streamer-in.c (lto_input_ts_block_tree_pointers): Fixup + BLOCK_ABSTRACT_ORIGIN to be the ultimate origin. + +2018-11-07 Alexandre Oliva + + PR rtl-optimization/87874 + * lra.c (lra_substitute_pseudo): Do not create a subreg for + const wide ints. + +2018-11-06 Aaron Sawdey + + * config/rs6000/rs6000.md (bswap2): Force address into register + if not in indexed or indirect form. + (bswap2_load): Change predicate to indexed_or_indirect_operand. + (bswap2_store): Ditto. + +2018-11-06 Richard Earnshaw + + * config/aarch64/aarch64.md (speculation_tracker): Set the mode for + the UNSPEC. + +2018-11-06 Richard Biener + + PR tree-optimization/86850 + * vec.h (vec::splice): Check src.length () + instead of src.m_vec. + +2018-11-06 Jan Hubicka + + * tree.c (fld_simplified_type_name): Break out form ... + (free_lang_data_in_type): ... here. + (fld_type_variant_equal_p): Use it. + +2018-11-06 Rainer Orth + + * config/default-d.c: Include memmodel.h. + + * config/sol2-d.c: New file. + * config/t-sol2 (sol2-d.o): New rule. + * config.gcc <*-*-solaris2*>: Set d_target_objs, + target_has_targetdm. + +2018-11-06 Jan Hubicka + + * tree.c (fld_type_variant): Also copy alignment; be sure that + new variant is equal. + +2018-11-06 Ilya Leoshkevich + + PR target/87762 + * config/s390/s390.md: Add relative_long attribute. + +2018-11-06 Jan Hubicka + + * ipa-pure-const.c (check_decl): Do not test TYPE_NEEDS_CONSTRUCTING. + * lto-streamer-out.c (hash_tree): Do not hash TYPE_NEEDS_CONSTRUCTING. + * tree-streamer-in.c (unpack_ts_type_common_value_fields): Do not + stream TYPE_NEEDS_CONSTRUCTING. + * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise. + * tree.c (free_lang_data_in_type): Clear TYPE_NEEDS_CONSTRUCTING. + +2018-11-06 Richard Biener + + * tree-vect-slp.c (vect_slp_bb): Move opening of vect_slp_analyze_bb + dump-scope ... + (vect_slp_analyze_bb_1): ... here to avoid hiding optimized locations. + +2018-11-06 Jozef Lawrynowicz + + * gcc/config/msp430/msp430.h (REG_CLASS_CONTENTS): Add R0 to + REG_CLASS_CONTENTS[GEN_REGS]. + (REGNO_REG_CLASS): Return NO_REGS for R2 and R3. + +2018-11-06 Jan Hubicka + + * tree.c (fld_simplified_type_of): Clear TYPELESS_STORAGE flag. + +2018-11-06 Rainer Orth + + PR sanitizer/80953 + * config/sol2.h (ASAN_CC1_SPEC): Define. + (LD_WHOLE_ARCHIVE_OPTION): Define. + (LD_NO_WHOLE_ARCHIVE_OPTION): Define. + (ASAN_REJECT_SPEC): Provide default. + (LIBASAN_EARLY_SPEC): Define. + (LIBTSAN_EARLY_SPEC): Define. + (LIBLSAN_EARLY_SPEC): Define. + * config/i386/sol2.h (CC1_SPEC): Redefine. + (ASAN_REJECT_SPEC): Define. + + * config/sparc/sparc.c (sparc_asan_shadow_offset): Declare. + (TARGET_ASAN_SHADOW_OFFSET): Define. + (sparc_asan_shadow_offset): New function. + * config/sparc/sol2.h (CC1_SPEC): Append ASAN_CC1_SPEC. + (ASAN_REJECT_SPEC): Define. + +2018-11-06 Jan Hubicka + + * tree.c (fld_type_variant): Copy canonical type. + (fld_incomplete_type_of): Check that canonical types looks sane; + copy canonical type. + (verify_type): Accept when incomplete type has complete canonical type. + +2018-11-06 Jan Hubicka + + * tree.c (free_lang_data): Reset overwite_assembler_name, + print_xnode, print_decl, print_type and print_identifier of + langhooks. + +2018-11-06 Richard Biener + + PR tree-optimization/87889 + * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges): + Do nothing if old and new arg are the same + +2018-11-06 Andreas Krebbel + + PR target/87723 + * config/s390/s390.md ("*rsbg_di_rotl"): Remove mode + attributes for operands 3 and 4. + +2018-11-06 Richard Biener + + PR middle-end/18041 + * simplify-rtx.c (simplify_binary_operation_1): Add pattern + matching bitfield insertion. + +2018-11-06 Alexandre Oliva + + * auto-inc-dec.c: Include valtrack.h. Improve comments. + (reg_next_debug_use): New. + (attempt_change): Propagate adjusted expression into affected + debug insns. + (merge_in_block): Track uses in debug insns. + (pass_inc_dec::execute): Allocate and release + reg_next_debug_use. + +2018-11-06 Wei Xiao + + * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics. + (_mm512_fixupimm_round_pd): Update parameters and builtin. + (_mm512_maskz_fixupimm_round_pd): Ditto. + (_mm512_fixupimm_round_ps): Ditto. + (_mm512_maskz_fixupimm_round_ps): Ditto. + (_mm_fixupimm_round_sd): Ditto. + (_mm_maskz_fixupimm_round_sd): Ditto. + (_mm_fixupimm_round_ss): Ditto. + (_mm_maskz_fixupimm_round_ss): Ditto. + (_mm512_fixupimm_pd): Ditto. + (_mm512_maskz_fixupimm_pd): Ditto. + (_mm512_fixupimm_ps): Ditto. + (_mm512_maskz_fixupimm_ps): Ditto. + (_mm_fixupimm_sd): Ditto. + (_mm_maskz_fixupimm_sd): Ditto. + (_mm_fixupimm_ss): Ditto. + (_mm_maskz_fixupimm_ss): Ditto. + (_mm512_mask_fixupimm_round_pd): Update builtin. + (_mm512_mask_fixupimm_round_ps): Ditto. + (_mm_mask_fixupimm_round_sd): Ditto. + (_mm_mask_fixupimm_round_ss): Ditto. + (_mm512_mask_fixupimm_pd): Ditto. + (_mm512_mask_fixupimm_ps): Ditto. + (_mm_mask_fixupimm_sd): Ditto. + (_mm_mask_fixupimm_ss): Ditto. + * config/i386/avx512vlintrin.h: + (_mm256_fixupimm_pd): Update parameters and builtin. + (_mm256_maskz_fixupimm_pd): Ditto. + (_mm256_fixupimm_ps): Ditto. + (_mm256_maskz_fixupimm_ps): Ditto. + (_mm_fixupimm_pd): Ditto. + (_mm_maskz_fixupimm_pd): Ditto. + (_mm_fixupimm_ps): Ditto. + (_mm_maskz_fixupimm_ps): Ditto. + (_mm256_mask_fixupimm_pd): Update builtin. + (_mm256_mask_fixupimm_ps): Ditto. + (_mm_mask_fixupimm_pd): Ditto. + (_mm_mask_fixupimm_ps): Ditto. + * config/i386/i386-builtin-types.def: Add new types and remove useless ones. + * config/i386/i386-builtin.def: Update builtin definitions. + * config/i386/i386.c: Handle new builtin types and remove useless ones. + * config/i386/sse.md: Update VFIXUPIMM* patterns. + (_fixupimm_maskz): Update. + (_fixupimm): Update. + (_fixupimm_mask): Update. + (avx512f_sfixupimm_maskz): Update. + (avx512f_sfixupimm): Update. + (avx512f_sfixupimm_mask): Update. + * config/i386/subst.md: + (round_saeonly_sd_mask_operand4): Add new subst_attr. + (round_saeonly_sd_mask_op4): Ditto. + (round_saeonly_expand_operand5): Ditto. + (round_saeonly_expand): Update. + +2018-11-05 Max Filippov + + * config/xtensa/uclinux.h (XTENSA_ALWAYS_PIC): Change to 0. + +2018-11-05 Segher Boessenkool + + PR rtl-optimization/87871 + * combine.c (make_more_copies): Skip if dest is frame_pointer_rtx. + +2018-11-05 Paul Koning + + * doc/sourcebuild.texi (target attributes): Document new "inf" + effective target keyword. + +2018-11-05 Robin Dapp + + * config/s390/s390.c (s390_register_move_cost): Increase costs for + moves involving the CC reg. + +2018-11-05 Richard Biener + + PR tree-optimization/87873 + * tree-ssa-loop-manip.h (split_loop_exit_edge): Add copy_constants_p + argument. + * tree-ssa-loop-manip.c (split_loop_exit_edge): Likewise. + * tree-vect-loop.c (vect_transform_loop): When splitting the + loop exit also create forwarder PHIs for constants. + * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges): + Handle constant to_arg, add extra checking we match up the correct + PHIs. + +2018-11-05 Robin Dapp + + * config/s390/s390.md: QImode and HImode for load on condition. + +2018-11-05 Robin Dapp + + * config/s390/predicates.md: Fix typo. + * config/s390/s390.md: Allow immediates for load on condition. + +2018-11-05 Martin Liska + + * alloc-pool.h (struct pool_usage): Use SIZE_AMOUNT. + * bitmap.h (struct bitmap_usage): Likewise. + * ggc-common.c (SCALE): Remove. + (LABEL): Likewise. + (struct ggc_usage): Use SIZE_AMOUNT. And update + compare method. + * ggc-page.c (SCALE): Remove. + (STAT_LABEL): Remove. + (ggc_print_statistics): Use SIZE_AMOUNT. + * gimple.h (SCALE): Remove. + (LABEL): Likewise. + * input.c (ONE_K): Remove. + (ONE_M): Likewise. + (SCALE): Likewise. + (STAT_LABEL): Likewise. + (FORMAT_AMOUNT): Likewise. + (dump_line_table_statistics): Use SIZE_AMOUNT. + * mem-stats.h (struct mem_usage): Likewise. + * rtl.c (dump_rtx_statistics): Likewise. + (rtx_alloc_counts): Change type to size_t. + (rtx_alloc_sizes): Likewise. + (rtx_count_cmp): New. + (dump_rtx_statistics): Sort first based on counts. + * tree.c (tree_nodes_cmp): New. + (tree_codes_cmp): New. + (dump_tree_statistics): Sort first based on counts. + * system.h (ONE_K): New. + (ONE_M): Likewise. + (SIZE_SCALE): Likewise. + (SIZE_LABEL): Likewise. + (SIZE_AMOUNT): Likewise. + * tree-cfg.c (dump_cfg_stats): Use SIZE_AMOUNT. + * tree-dfa.c (dump_dfa_stats): Likewise. + * tree-phinodes.c (phinodes_print_statistics): Likewise. + * tree-ssanames.c (ssanames_print_statistics): Likewise. + * tree.c (dump_tree_statistics): Likewise. + * vec.c (struct vec_usage): Likewise. + * trans-mem.c (tm_mangle): Enlarge buffer in order to not + trigger a -Werror=format-overflow with + --enable-gather-detailed-stats. + +2018-11-05 Martin Liska + + * mem-stats.h (mem_alloc_description::release_instance_overhead): + Return T *. + * vec.c (struct vec_usage): Register m_element_size. + (vec_prefix::register_overhead): New arguments: elements and + element_size. + (vec_prefix::release_overhead): Subtract elements. + * vec.h (struct vec_prefix): Change signature. + (va_heap::reserve): Pass proper arguments. + (va_heap::release): Likewise. + +2018-11-05 Martin Liska + + * mem-stats.h (mem_alloc_description::get_list): Fix GNU coding + style. + * vec.c: Likewise. + +2018-11-05 Richard Biener + + * tree-scalar-evolution.h (final_value_replacement_loop): Update + prototype. + * tree-scalar-evolution.c (final_value_replacement_loop): Return + whether anything was done. + (scev_const_prop): Remove constant propagation part, fold + remains into ... + * tree-ssa-loop.c (pass_scev_cprop::execute): ... here. + (pass_data_scev_cprop): TODO_cleanup_cfg is now done + conditionally. + +2018-11-05 Jakub Jelinek + + PR tree-optimization/87859 + * gimple-ssa-store-merging.c (struct merged_store_group): Add + only_constants and first_nonmergeable_order members. + (merged_store_group::merged_store_group): Initialize them. + (merged_store_group::do_merge): Clear only_constants member if + adding something other than INTEGER_CST store. + (imm_store_chain_info::coalesce_immediate_stores): Don't merge + stores with order >= first_nonmergeable_order. Use + merged_store->only_constants instead of always recomputing it. + Set merged_store->first_nonmergeable_order if we've skipped any + stores. Attempt to merge overlapping INTEGER_CST stores that + we would otherwise skip. + + PR sanitizer/87837 + * match.pd (X + Y < X): Don't optimize if TYPE_OVERFLOW_SANITIZED. + +2018-11-05 Xuepeng Guo + + PR target/87853 + * config/i386/emmintrin.h (__v16qs): New to cope with option + -funsigned-char. + (_mm_cmpeq_epi8): Replace __v16qi with __v16qs. + (_mm_cmplt_epi8): Likewise. + (_mm_cmpgt_epi8): Likewise. + +2018-11-05 Richard Biener + + PR rtl-optimization/87852 + * fwprop.c (use_killed_between): Only consider single-defs of the + use whose definition statement dominates the use. + +2018-11-05 Martin Liska + + PR web/87829 + * doc/invoke.texi: Remove options that are + not disabled with -Os. + +2018-11-05 Martin Liska + + PR c/87811 + * doc/extend.texi: Update constrain about the last argument + of __builtin_expect_with_probability. + +2018-11-05 Martin Liska + + PR c/87811 + * predict.c (expr_expected_value_1): Verify + that last argument is a real constants and emit + error. + +2018-11-05 Martin Liska + + PR gcov-profile/77698 + * ipa-profile.c (ipa_profile): Adjust hotness threshold + only in LTO mode. + +2018-11-04 Bernd Edlinger + + PR tree-optimization/86572 + * builtins.c (c_strlen): Handle negative offsets in a safe way. + +2018-11-04 Bernd Edlinger + + PR tree-optimization/87672 + * gimple-fold.c (gimple_fold_builtin_stxcpy_chk): Gimplify. + * tree-ssa-strlen.c (handle_builtin_strcat): Adjust object size. + +2018-11-04 Uros Bizjak + + PR middle-end/58372 + * cfgexpand.c (pass_expand::execute): Move the call to + finish_eh_generation in front of the call to expand_stack_alignment. + +2018-11-04 Venkataramanan Kumar + + * common/config/i386/i386-common.c (processor_alias_table): Add + znver2 entry. + * config.gcc (i[34567]86-*-linux* | ...): Add znver2. + (case ${target}): Add znver2. + * config/i386/driver-i386.c: (host_detect_local_cpu): Let + -march=native recognize znver2 processors. + * config/i386/i386-c.c (ix86_target_macros_internal): Add znver2. + * config/i386/i386.c (m_znver2): New definition. + (m_ZNVER): New definition. + (m_AMD_MULTIPLE): Includes m_znver2. + (processor_cost_table): Add znver2 entry. + (processor_target_table): Add znver2 entry. + (get_builtin_code_for_version): Set priority for + PROCESSOR_ZNVER2. + (processor_model): Add M_AMDFAM17H_ZNVER2. + (arch_names_table): Ditto. + (ix86_reassociation_width): Include znver2. + * config/i386/i386.h (TARGET_znver2): New definition. + (struct ix86_size_cost): Add TARGET_ZNVER2. + (enum processor_type): Add PROCESSOR_ZNVER2. + * config/i386/i386.md (define_attr "cpu"): Add znver2. + * config/i386/x86-tune-costs.h: (processor_costs) Add znver2 costs. + * config/i386/x86-tune-sched.c: (ix86_issue_rate): Add znver2. + (ix86_adjust_cost): Add znver2. + * config/i386/x86-tune.def: Replace m_ZNVER1 by m_ZNVER. + * gcc/doc/extend.texi: Add details about znver2. + * gcc/doc/invoke.texi: Add details about znver2. + +2018-11-03 Sandra Loosemore + + PR target/87079 + + * config/nios2/nios2.c (nios2_rtx_costs): Recognize sidi3 + pattern. + +2018-11-02 Aaron Sawdey + + * config/rs6000/rs6000-string.c (expand_strncmp_gpr_sequence): Pay + attention to TARGET_AVOID_XFORM and BYTES_BIG_ENDIAN. + +2018-11-02 Richard Earnshaw + + * config/aarch64/aarch64.c ((aarch64_override_options): Disable + shrink-wrapping when -mtrack-speculation. + +2018-11-02 Richard Biener + + * tree-ssa-coalesce.c (struct coalesce_list): Add obstack member. + (pop_cost_one_pair): Do not free pair. + (pop_best_coalesce): Likewise. + (create_coalesce_list): Initialize obstack. + (delete_coalesce_list): Free obstack. + (find_coalesce_pair): Obstack-allocate coalesce pairs. + (add_cost_one_coalesce): Likewise. + (struct live_track): Remove bitmap pointer indirections. + (new_live_track): Adjust. + (delete_live_track): Likewise. + (live_track_remove_partition): Likewise. + (live_track_add_partition): Likewise. + (live_track_live_p): Likewise. + (live_track_process_def): Likewise. + (live_track_clear_base_vars): Likewise. + +2018-11-02 Rainer Orth + + * configure.ac (gcc_cv_as_sparc_register_op): Remove. + * configure: Regenerate. + * config.in: Regenerate. + * config/sparc/sparc.c (sparc_output_scratch_registers): Remove + HAVE_AS_REGISTER_PSEUDO_OP guard. + * config/sparc/sparc.h (ASM_ARCH64_SPEC): Remove + !HAVE_AS_REGISTER_PSEUDO_OP support. + (ASM_DECLARE_REGISTER_GLOBAL): Remove HAVE_AS_REGISTER_PSEUDO_OP + guard. + +2018-11-02 Richard Biener + + * dwarf2out.c (build_abbrev_table): Guard lookup_external_ref call + with is_type_die. + +2018-11-02 Richard Biener + + PR tree-optimization/87776 + * tree-ssa-sccvn.c (do_rpo_vn): Do not mark backedges + executable when iterating but running into rpo-vn-max-loop-depth + and not eliding the iteration. + +2018-11-30 Jan Hubicka + + * tree.c (free_lang_data_in_decl): Free TREE_TYPE and alignment of + TYPE_DECL. + +2018-11-01 Aaron Sawdey + + * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert): Remove + prototype. + * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem): + Combine with rs6000_address_for_fpconvert. + (rs6000_address_for_fpconvert): Combine with + rs6000_force_indexed_or_indirect_mem. + (rs6000_expand_vector_init): Change function call from + rs6000_address_for_fpconvert to rs6000_force_indexed_or_indirect_mem. + * config/rs6000/rs6000.md (floatsi2_lfiwax): Change call from + rs6000_address_for_fpconvert to rs6000_force_indexed_or_indirect_mem. + (floatsi2_lfiwax_mem): Ditto. + (floatunssi2_lfiwzx): Ditto. + (floatunssi2_lfiwzx_mem): Ditto. + (float2): Ditto. + (floatuns2): Ditto. + (fix_truncsi2_stfiwx): Ditto. + (fixuns_truncsi2_stfiwx): Ditto. + (float_si2_hw): Ditto. + (floatuns_si2_hw): Ditto. + * config/rs6000/vsx.md (*vsx_extract_si): Ditto. + (vsx_splat_): Ditto. + +2018-11-01 Joseph Myers + + * configure.ac (gcc_cv_as_ia64_ltoffx_ldxmov_relocs): Add newline + at end of assembler input text. + * configure: Regenerate. + +2018-11-01 Jakub Jelinek + + PR tree-optimization/87826 + * gimple-ssa-store-merging.c (do_shift_rotate): Punt if count is + negative or larger or equal to type's precision. + +2018-10-31 Alexandre Oliva + + * opts.c (default_options_table): Do not enable + OPT_fdelayed_branch at -Og. + * doc/invoke.texi (-fdelayed-branch): Document it. + +2018-10-31 Richard Henderson + + * optabs-libfuncs.c (build_libfunc_function_visibility): + New, split out from... + (build_libfunc_function): ... here. + (init_one_libfunc_visibility): New, split out from ... + (init_one_libfunc): ... here. + + * config/aarch64/atomics.md (aarch64_atomic__lse): + scratch register need not be early-clobber. Document the reason + why we cannot use ST. + +2018-10-31 Joseph Myers + + PR bootstrap/82856 + * configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE. Use single + line for second argument of AC_DEFINE_UNQUOTED. + * doc/install.texi (Tools/packages necessary for modifying GCC): + Update to autoconf 2.69 and automake 1.15.1. + * aclocal.m4, config.in, configure: Regenerate. + +2018-10-31 Pat Haugen + + * tree-ssa-loop-ivcanon.c (try_peel_loop): Fix typo and remove dead + initialization. + +2018-10-31 Martin Liska + + PR driver/83193 + * common/config/aarch64/aarch64-common.c (aarch64_parse_extension): + Add new argument invalid_extension. + (aarch64_get_all_extension_candidates): New function. + (aarch64_rewrite_selected_cpu): Add NULL to function call. + * config/aarch64/aarch64-protos.h (aarch64_parse_extension): Add + new argument. + (aarch64_get_all_extension_candidates): New function. + * config/aarch64/aarch64.c (aarch64_parse_arch): Add new + argument invalid_extension. + (aarch64_parse_cpu): Likewise. + (aarch64_print_hint_for_extensions): New function. + (aarch64_validate_mcpu): Provide hint about invalid extension. + (aarch64_validate_march): Likewise. + (aarch64_handle_attr_arch): Pass new argument. + (aarch64_handle_attr_cpu): Provide hint about invalid extension. + (aarch64_handle_attr_isa_flags): Likewise. + +2018-10-31 Richard Biener + + PR middle-end/70359 + PR middle-end/86270 + * tree-outof-ssa.c (insert_backedge_copies): Restrict + copy generation to useful cases. Place the copy before + the definition of the backedge value when possible. + +2018-10-31 Claudiu Zissulescu + + * config/arc/arc-arch.h (ARC_TUNE_ARC7XX): New tune value. + * config/arc/arc.c (arc_active_insn): New function. + (check_store_cacheline_hazard): Likewise. + (workaround_arc_anomaly): Use check_store_cacheline_hazard. + (arc_override_options): Disable delay slot scheduler for older + A7. + (arc_store_addr_hazard_p): New implementation, old one renamed to + ... + (arc_store_addr_hazard_internal_p): Renamed. + (arc_reorg): Don't combine into brcc instructions which are part + of hardware hazard solution. + * config/arc/arc.md (attr tune): Consider new arc7xx tune value. + (tune_arc700): Likewise. + * config/arc/arc.opt (arc7xx): New tune value. + * config/arc/arc700.md: Improve A7 scheduler. + +2018-10-31 Claudiu Zissulescu + + * config/arc/arc.c (arc_override_options): Remove + TARGET_COMPACT_CASESI. + * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Update. + (CASE_VECTOR_MODE): Likewise. + (CASE_VECTOR_PC_RELATIVE): Likewise. + (CASE_VECTOR_SHORTEN_MODE): Likewise. + (CASE_VECTOR_SHORTEN_MODE1): Delete. + (ADDR_VEC_ALIGN): Update. + (ASM_OUTPUT_CASE_LABEL): Undefine. + (ASM_OUTPUT_BEFORE_CASE_LABEL): Undefine. + (TARGET_BI_BIH): Define. + (DEFAULT_BRANCH_INDEX): Likewise. + * config/arc/arc.md (casesi): Rework to accept BI/BIH + instructions, remove compact_casesi use case. + (casesi_compact_jump): Remove. + (casesi_dispatch): New pattern. + * config/arc/arc.opt: Add mbranch-index option. Deprecate + compact_casesi option. + * doc/invoke.texi: Document mbranch-index option. + +2018-10-31 Claudiu Zissulescu + + * config/arc/arc.c (arc_get_tp): Remove function. + (arc_emit_call_tls_get_addr): Likewise. + (arc_call_tls_get_addr): New function. + (arc_legitimize_tls_address): Make use of arc_call_tls_get_addr. + * config/arc/arc.md (tls_load_tp_soft): Remove. + (tls_gd_get_addr): Likewise. + +2018-10-31 Claudiu Zissulescu + + * config/arc/arc.md (mulsi3): Remove call to mulsi_600_lib. + (mulsi3_600_lib): Remove pattern. + (umulsi3_highpart_600_lib_le): Likewise. + (umulsi3_highpart): Remove call to umulsi3_highpart_600_lib_le. + (umulsidi3): Remove call to umulsidi3_600_lib. + (umulsidi3_600_lib): Remove pattern. + (peephole2): Remove peephole using the above deprecated patterns. + +2018-10-31 Thomas Preud'homme + + PR target/87374 + * config/arm/arm.c (arm_option_check_internal): Disable the combined + use of -mslow-flash-data and -mword-relocations. + (arm_option_override): Enable -mword-relocations if -fpic or -fPIC. + * config/arm/arm.md (SYMBOL_REF MOVT splitter): Stop checking for + flag_pic. + * doc/invoke.texi (-mword-relocations): Mention conflict with + -mslow-flash-data. + (-mslow-flash-data): Reciprocally. + +2018-10-31 Richard Henderson + + * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Force + 16-byte modes held in GP registers to use an even regno. + + * config/aarch64/aarch64.c (aarch64_emit_bic): Remove. + (aarch64_atomic_ldop_supported_p): Remove. + (aarch64_gen_atomic_ldop): Remove. + * config/aarch64/atomic.md (atomic_): + Fully expand LSE operations here. + (atomic_fetch_): Likewise. + (atomic__fetch): Likewise. + (aarch64_atomic__lse): Drop atomic_op iterator + and use ATOMIC_LDOP instead; use register_operand for the input; + drop the split and emit insns directly. + (aarch64_atomic_fetch__lse): Likewise. + (aarch64_atomic__fetch_lse): Remove. + (@aarch64_atomic_load): Remove. + + * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): Remove. + (aarch64_gen_atomic_ldop): Don't call it. + * config/aarch64/atomics.md (atomic_exchange): + Use aarch64_reg_or_zero. + (aarch64_atomic_exchange): Likewise. + (aarch64_atomic_exchange_lse): Remove split; remove & from + operand 0; use aarch64_reg_or_zero for input; merge ... + (@aarch64_atomic_swp): ... this and remove. + + * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): New. + (aarch64_split_compare_and_swap): Use it. + (aarch64_expand_compare_and_swap): Likewise. Remove convert_modes; + test oldval against the proper predicate. + * config/aarch64/atomics.md (@atomic_compare_and_swap): + Use nonmemory_operand for expected. + (cas_short_expected_pred): New. + (@aarch64_compare_and_swap): Use it; use "rn" not "rI" to match. + (@aarch64_compare_and_swap): Use "rn" not "rI" for expected. + * config/aarch64/predicates.md (aarch64_plushi_immediate): New. + (aarch64_plushi_operand): New. + + * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): + Force oldval into the rval register for TARGET_LSE; emit the compare + during initial expansion so that it may be deleted if unused. + (aarch64_gen_atomic_cas): Remove. + * config/aarch64/atomics.md (@aarch64_compare_and_swap_lse): + Change =&r to +r for operand 0; use match_dup for operand 2; + remove is_weak and mod_f operands as unused. Drop the split + and merge with... + (@aarch64_atomic_cas): ... this pattern's output; remove. + (@aarch64_compare_and_swap_lse): Similarly. + (@aarch64_atomic_cas): Similarly. + +2018-10-31 Richard Biener + + * tree-eh.c (replace_trapping_overflow): Simplify ABS_EXPR case + using ABSU_EXPR. + +2018-10-31 Sameera Deshpande + + * config/aarch64/aarch64-cores.def (saphira): Use saphira pipeline. + * config/aarch64/aarch64.md: Include saphira.md + * config/aarch64/saphira.md: New file for pipeline description. + +2018-10-30 Martin Sebor + + PR middle-end/87041 + * gimple-ssa-sprintf.c (format_directive): Use %G to include + inlining context. + (sprintf_dom_walker::compute_format_length): + Avoid setting POSUNDER4K here. + (get_destination_size): Handle null argument values. + (get_user_idx_format): New function. + (sprintf_dom_walker::handle_gimple_call): Handle all printf-like + functions, including user-defined with attribute format printf. + Use %G to include inlining context. + Set POSUNDER4K here. + +2018-10-30 Jan Hubicka + + * params.def (lto-partitions): Bump from 32 to 128. + +2018-10-30 Jan Hubicka + + * tree.c + (free_lang_data_d, add_tree_to_fld_list, fld_worklist_push): Move + head in file. + (free_lang_data_in_type): Forward declare. + (fld_type_variant_equal_p): New function. + (fld_type_variant): New function + (fld_incomplete_types): New hash. + (fld_incomplete_type_of): New function + (fld_simplfied-type): New function. + (free_lang_data_in_decl): Add fld parameter; simplify type of FIELD_DECL + (free_lang_data): Allocate and free fld_incomplete_type; update call + of free_lang_data_in_decl. + +2018-10-30 Eric Botcazou + + * gcov.c (output_lines): Remove duplicate line. + +2018-10-30 Aaron Sawdey + + * config/rs6000/rs6000.md (bswapdi2): Force address into register + if not in indexed or indirect form. + (bswapdi2_load): Change predicate to indexed_or_indirect_operand. + (bswapdi2_store): Ditto. + * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem): New + helper function. + * config/rs6000/rs6000-protos.h (rs6000_force_indexed_or_indirect_mem): + Prototype for helper function. + +2018-10-30 Martin Sebor + + * doc/extend.texi (optimize): Clarify/expand attribute documentation. + (target, pragma GCC optimize, pragma GCC target): Ditto. + +2018-10-30 Jonathan Wakely + + * doc/extend.texi: Fix prototype and description of + __builtin_expect_with_probability. + +2018-10-30 Michael Ploujnikov + + * cgraph.h (clone_function_name_1): Replaced by new + clone_function_name_numbered that takes name as string; for + privatize_symbol_name_1 use only. + (clone_function_name): Renamed to + clone_function_name_numbered to be explicit about numbering. + (clone_function_name): New two-argument function that does + not number its output. + (clone_function_name): New three-argument function that + takes a number to append to its output. + * cgraphclones.c (duplicate_thunk_for_node): + (clone_function_name_1): Renamed. + (clone_function_name_numbered): Two new functions. + (clone_function_name): Improved documentation. + (cgraph_node::create_virtual_clone): Use clone_function_name_numbered. + * config/rs6000/rs6000.c (make_resolver_func): Ditto. + * final.c (final_scan_insn_1): Use the new clone_function_name + without numbering. + * multiple_target.c (create_dispatcher_calls): Ditto. + (create_target_clone): Ditto. + * omp-expand.c (grid_expand_target_grid_body): Ditto. + * omp-low.c (create_omp_child_function_name): Ditto. + * omp-simd-clone.c (simd_clone_create): Ditto. + * symtab.c (simd_symtab_node::noninterposable_alias): Use the + new clone_function_name without numbering. + +2018-10-30 Richard Earnshaw + + * alloc-pool.h (base_pool_allocator ::initialize): + Assert that the allocation size is not zero. + +2018-10-30 Richard Biener + + PR tree-optimization/87800 + * tree-vect-slp.c (vect_build_slp_tree_2): Reject any + non-induction or reduction PHIs. + +2018-10-30 Sameera Deshpande + + * config/aarch64/falkor-tag-collision-avoidance.c + (execute_tag_collision_avoidance): Call df_note_add_problem. + +2018-10-30 Martin Liska + + * doc/extend.texi: Fix typo in documentation + of __builtin_expect_with_probability. + +2018-10-29 David Malcolm + + PR c++/87721 + * input.c (get_substring_ranges_for_loc): Detect if + linemap_resolve_location gives us a NULL map, and reject + this case. + +2018-10-29 Iain Buclaw + + * config.gcc (xstormy16-*-elf): Set tm_d_file. + +2018-10-29 David Malcolm + Martin Sebor + Manuel Lopez-Ibanez + + * doc/ux.texi (Quoting): New subsection, adapted from material at + https://gcc.gnu.org/wiki/DiagnosticsGuidelines written by + MartinSebor and ManuelLopezIbanez. + (Fix-it hints): Note that fix-it hints shouldn't be marked for + translation. + +2018-10-29 Kugan Vivekanandarajah + + PR middle-end/87469 + * tree-ssa-loop-niter.c (number_of_iterations_popcount): Fix niter + max value. + +2018-10-29 Paul A. Clarke + + * gcc.target/powerpc/ssse3-check.h: Remove inaccurate comment. + +2018-10-29 Paul Koning + + * doc/rtl.texi (CONST_WIDE_INT_ELT): Give correct macro name. + +2018-10-29 Paul A. Clarke + + * gcc/config/rs6000/mmintrin.h (_mm_packs_pi16, _mm_packs_pi32, + _mm_packs_pu16, _mm_unpackhi_pi8, _mm_unpacklo_pi8, _mm_add_pi8, + _mm_add_pi16, _mm_add_pi32, _mm_sub_pi8, _mm_sub_pi16, _mm_sub_pi32, + _mm_cmpgt_pi8, _mm_cmpeq_pi16, _mm_cmpgt_pi16, _mm_cmpeq_pi32, + _mm_cmpgt_pi32, _mm_adds_pi8, _mm_adds_pi16, _mm_adds_pu8, + _mm_adds_pu16, _mm_subs_pi8, _mm_subs_pi16, _mm_subs_pu8, + _mm_subs_pu16, _mm_madd_pi16, _mm_mulhi_pi16, _mm_mullo_pi16, + _mm_sll_pi16, _mm_sra_pi16, _mm_srl_pi16, _mm_set1_pi16, _mm_set1_pi8): + Change 'vector' to '__vector'. + * gcc/config/rs6000/xmmintrin.h (_mm_cvtps_pi32, _mm_cvttps_pi32, + _mm_cvtps_pi16, _mm_cvtps_pi8, _mm_max_pi16, _mm_max_pu8, _mm_min_pi16, + _mm_min_pu8, _mm_mulhi_pu16, _mm_shuffle_pi16, _mm_avg_pu8, + _mm_avg_pu16): Likewise. And, whitespace corrections. + +2018-10-29 Richard Biener + + PR tree-optimization/87785 + * tree-vect-slp.c (vect_gather_slp_loads): Only gather + internal defs. + +2018-10-29 Olivier Hainque + + * VXWORKS_NET_LIBS_RTP: New macro, network part of VXWORKS_LIBS_RTP. + +2018-10-29 Olivier Hainque + + * config/vxworks.h (VXWORKS_PERSONALITY): New VxWorks + ports configuration macro, defaults to "gnu". + (VXWORKS_OS_CPP_BUILTINS): Use it. Feed TOOL and + TOOL_FAMILY instead of _VX_TOOL/_VXTOOL_FAMILY. + +2018-10-29 Olivier Hainque + + * config/vxworks.h (CLEAR_INSN_CACHE): #undef before #define. + +2018-10-29 Richard Biener + + PR tree-optimization/87790 + * tree-vect-slp.c (vect_mark_slp_stmts): Simplify. + (vect_make_slp_decision): Adjust. + (vect_slp_analyze_bb_1): Likewise. + (vect_detect_hybrid_slp_stmts): Properly union SLP type over + edges. + +2018-10-29 Richard Biener + + PR tree-optimization/87785 + * tree-vect-slp.c (vect_build_slp_tree_2): Remove loads argument + and processing. + (vect_build_slp_tree): Likewise. + (vect_gather_slp_loads): New function. + (vect_analyze_slp_instance): Gather loads separately from the + SLP tree build. + +2018-10-29 Martin Liska + + * Makefile.in: Make dependency to json.o. + * doc/gcov.texi: Document new JSON format, remove + old intermediate format documentation. + * gcov.c (struct function_info): Come up with m_name and + m_demangled_name. + (function_info::function_info): Initialize it. + (function_info::~function_info): Release it. + (main): Rename flag_intermediate_format to flag_json_format. + (print_usage): Describe --json-format. + (process_args): Set flag_json_format. + (output_intermediate_line): Remove. + (output_intermediate_json_line): Likewise. + (get_gcov_intermediate_filename): Return new extension + ".gcov.json.gz". + (output_intermediate_file): Implement JSON emission. + (output_json_intermediate_file): Implement JSON emission. + (generate_results): Use ::get_name for function name. + Handle JSON output file. + (read_graph_file): Use ::get_name instead of cplus_demangle. + (read_count_file): Likewise. + (solve_flow_graph): Likewise. + (add_line_counts): Likewise. + (accumulate_line_counts): Use new flag_json_format. + (output_function_details): Use ::get_name instead of cplus_demangle. + (output_lines): Likewise. + * json.cc (test_writing_literals): Add new tests. + * json.h (class literal): Add new boolean constructor. + +2018-10-29 Segher Boessenkool + + PR rtl-optimization/87701 + PR rtl-optimization/87780 + * combine.c (make_more_copies): Rewrite. + +2018-10-28 Kugan Vivekanandarajah + + * doc/generic.texi (ABSU_EXPR): Document. + * match.pd (absu(x)*absu(x) -> x*x): Handle. + (absu(absu(X)) -> absu(X)): Likewise. + (absu(-X) -> absu(X)): Likewise. + (absu(X) where X is nonnegative -> X): Likewise. + +2018-10-28 Iain Buclaw + + * Makefile.in (tm_d_file_list, tm_d_include_list): New variables. + (TM_D_H, D_TARGET_DEF, D_TARGET_H, D_TARGET_OBJS): New variables. + (tm_d.h, cs-tm_d.h, default-d.o): New rules. + (d/d-target-hooks-def.h, s-d-target-hooks-def-h): New rules. + (s-tm-texi): Also check timestamp on d-target.def. + (generated_files): Add TM_D_H and d-target-hooks-def.h. + (build/genhooks.o): Also depend on D_TARGET_DEF. + * config.gcc (tm_d_file, d_target_objs, target_has_targetdm): New + variables. + * config/aarch64/aarch64-d.c: New file. + * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_D_CRITSEC_SIZE): + Define. + * config/aarch64/aarch64-protos.h (aarch64_d_target_versions): New + prototype. + * config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Define. + * config/aarch64/t-aarch64 (aarch64-d.o): New rule. + * config/arm/arm-d.c: New file. + * config/arm/arm-protos.h (arm_d_target_versions): New prototype. + * config/arm/arm.h (TARGET_D_CPU_VERSIONS): Define. + * config/arm/linux-eabi.h (EXTRA_TARGET_D_OS_VERSIONS): Define. + * config/arm/t-arm (arm-d.o): New rule. + * config/default-d.c: New file. + * config/glibc-d.c: New file. + * config/gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. + * config/i386/i386-d.c: New file. + * config/i386/i386-protos.h (ix86_d_target_versions): New prototype. + * config/i386/i386.h (TARGET_D_CPU_VERSIONS): Define. + * config/i386/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Define. + (GNU_USER_TARGET_D_CRITSEC_SIZE): Define. + * config/i386/t-i386 (i386-d.o): New rule. + * config/kfreebsd-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. + * config/kopensolaris-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. + * config/linux-android.h (ANDROID_TARGET_D_OS_VERSIONS): Define. + * config/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. + * config/mips/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Define. + * config/mips/mips-d.c: New file. + * config/mips/mips-protos.h (mips_d_target_versions): New prototype. + * config/mips/mips.h (TARGET_D_CPU_VERSIONS): Define. + * config/mips/t-mips (mips-d.o): New rule. + * config/powerpcspe/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. + * config/powerpcspe/linux64.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. + * config/powerpcspe/powerpcspe-d.c: New file. + * config/powerpcspe/powerpcspe-protos.h (rs6000_d_target_versions): + New prototype. + * config/powerpcspe/powerpcspe.c (rs6000_output_function_epilogue): + Support GNU D by using 0 as the language type. + * config/powerpcspe/powerpcspe.h (TARGET_D_CPU_VERSIONS): Define. + * config/powerpcspe/t-powerpcspe (powerpcspe-d.o): New rule. + * config/riscv/riscv-d.c: New file. + * config/riscv/riscv-protos.h (riscv_d_target_versions): New + prototype. + * config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Define. + * config/riscv/t-riscv (riscv-d.o): New rule. + * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. + * config/rs6000/linux64.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. + * config/rs6000/rs6000-d.c: New file. + * config/rs6000/rs6000-protos.h (rs6000_d_target_versions): New + prototype. + * config/rs6000/rs6000.c (rs6000_output_function_epilogue): + Support GNU D by using 0 as the language type. + * config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS): Define. + * config/rs6000/t-rs6000 (rs6000-d.o): New rule. + * config/s390/s390-d.c: New file. + * config/s390/s390-protos.h (s390_d_target_versions): New prototype. + * config/s390/s390.h (TARGET_D_CPU_VERSIONS): Define. + * config/s390/t-s390 (s390-d.o): New rule. + * config/sparc/sparc-d.c: New file. + * config/sparc/sparc-protos.h (sparc_d_target_versions): New + prototype. + * config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Define. + * config/sparc/t-sparc (sparc-d.o): New rule. + * config/t-glibc (glibc-d.o): New rule. + * configure: Regenerated. + * configure.ac (tm_d_file): New variable. + (tm_d_file_list, tm_d_include_list, d_target_objs): Add substitutes. + * doc/contrib.texi (Contributors): Add self for the D frontend. + * doc/frontends.texi (G++ and GCC): Mention D as a supported language. + * doc/install.texi (Configuration): Mention libphobos as an option for + --enable-shared. Mention d as an option for --enable-languages. + (Testing): Mention check-d as a target. + * doc/invoke.texi (Overall Options): Mention .d, .dd, and .di as file + name suffixes. Mention d as a -x option. + * doc/sourcebuild.texi (Top Level): Mention libphobos. + * doc/standards.texi (Standards): Add section on D language. + * doc/tm.texi: Regenerated. + * doc/tm.texi.in: Add @node for D language and ABI, and @hook for + TARGET_CPU_VERSIONS, TARGET_D_OS_VERSIONS, and TARGET_D_CRITSEC_SIZE. + * dwarf2out.c (is_dlang): New function. + (gen_compile_unit_die): Use DW_LANG_D for D. + (declare_in_namespace): Return module die for D, instead of adding + extra declarations into the namespace. + (gen_namespace_die): Generate DW_TAG_module for D. + (gen_decl_die): Handle CONST_DECLSs for D. + (dwarf2out_decl): Likewise. + (prune_unused_types_walk_local_classes): Handle DW_tag_interface_type. + (prune_unused_types_walk): Handle DW_tag_interface_type same as other + kinds of aggregates. + * gcc.c (default_compilers): Add entries for .d, .dd and .di. + * genhooks.c: Include d/d-target.def. + +2018-10-28 Iain Sandoe + + PR target/85669 + * config/rs6000/darwin.h (STACK_BOUNDARY): New. + (RS6000_STARTING_FRAME_OFFSET): Adjust to preserve 16byte alignment. + (STACK_DYNAMIC_OFFSET): Likewise. + +2018-10-27 Sandra Loosemore + + PR target/80024 + * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Fix + error message. + +2018-10-26 Tulio Magno Quites Machado Filho + + * doc/extend.texi (PowerPC builtins): Fix __builtin_unpack_ibm128 + return type and other typos. + +2018-10-26 Aaron Sawdey + + * config/rs6000/rs6000-string.c (expand_strncmp_gpr_sequence): Change to + a shorter sequence with fewer branches. + (emit_final_str_compare_gpr): Ditto. + +2018-10-26 Paul A. Clarke + + * config/rs6000/tmmintrin.h: New file. + * config.gcc (powerpc*-*-*): Add tmmintrin.h to extra_headers. + +2018-10-26 Paul A. Clarke + + * config/rs6000/mmintrin.h: Enable 32bit compilation. + * config/rs6000/xmmintrin.h: Likewise. + +2018-10-26 Paul A. Clarke + + * config/rs6000/xmmintrin.h (_mm_extract_pi16): Fix for big-endian. + +2018-10-26 Richard Biener + + * tree-vect-slp.c (vect_mark_slp_stmts): Add visited hash_set + and wrapper. + (vect_mark_slp_stmts_relevant): Likewise. + (vect_detect_hybrid_slp_stmts): Likewise. + (vect_bb_slp_scalar_cost): Likewise. + (vect_remove_slp_scalar_calls): Likewise. + +2018-10-26 Jan Hubicka + + * ipa-devirt.c (odr_subtypes_equivalent_p): Fix recursion. + (warn_types_mismatch): Fix walk of DECL_NAME. + (odr_types_equivalent_p): Fix overactive assert. + +2018-10-26 Richard Biener + + PR tree-optimization/87105 + * tree-vectorizer.h (_slp_tree::refcnt): New member. + * tree-vect-slp.c (vect_free_slp_tree): Decrement and honor + refcnt. + (vect_create_new_slp_node): Initialize refcnt to one. + (bst_traits): Move. + (scalar_stmts_set_t, bst_fail): Remove. + (vect_build_slp_tree_2): Add bst_map argument and adjust calls. + (vect_build_slp_tree): Add bst_map argument and lookup + already created SLP nodes. + (vect_print_slp_tree): Handle a SLP graph, print SLP node + addresses. + (vect_slp_rearrange_stmts): Handle a SLP graph. + (vect_analyze_slp_instance): Adjust and free SLP nodes from + the CSE map. Fix indenting. + (vect_schedule_slp_instance): Add short-cut. + +2018-10-26 Martin Liska + + PR testsuite/86158 + * ipa-prop.c (struct ipa_vr_ggc_hash_traits): Hash with + addr_expr and not with pointers. + +2018-10-26 Jan Hubicka + + * tree.c (free_lang_data_in_type): Only check main variants. + * ipa-devirt.c (warn_odr): Make static. + (types_same_for_odr): Drop strict variant. + (types_odr_comparable): Likewise. + (odr_or_derived_type_p): Look for main variants. + (odr_name_hasher::equal): Cleanup comment. + (odr_subtypes_equivalent): Add warn and warned arguments; check main + variants. + (type_variants_equivalent_p): break out from ... + (odr_types_equivalent): ... here; go for main variants where needed. + (warn_odr): ... here; turn static. + (warn_types_mismatch): Compare mangled names of main variants. + * ipa-utils.h (types_odr_comparable): Drop strict parameter. + (type_with_linkage_p): Sanity check that we look at main variant. + * lto.c (lto_read_decls): Only consider main variant to be ODR type. + * tree.h (types_same_for_odr): Drop strict argument. + +2018-10-26 Richard Biener + + PR tree-optimization/87746 + * tree-vect-data-refs.c (vect_update_misalignment_for_peel): + Simplify and fix WRT strided store groups with size not + equal to step in element count. + (vect_analyze_group_access_1): Dump the whole group. + +2018-10-25 Carl Love + + * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_VSCEDPGT, + P9V_BUILTIN_VEC_VSCEDPLT, P9V_BUILTIN_VEC_VSCEDPEQ, + P9V_BUILTIN_VEC_VSCEDPUO): Rename base overloaded name. Add quad + precicion entry for each overloaded builtin. + * config/rs6000/rs6000-builtin.def (VSCEDPGT, VSCEDPLT, VSCEDPEQ, + VSCEDPUO): Rename overloaded name. + (VSCEDPGT, VSCEQPGT, VSCEDPLT, VSCEQPLT, VSCEDPEQ, VSCEQPEQ, + VSCEDPUO, VSCEQPUO): Add defitions for overloaded builtins. + * config/rs6000/vsx.md (xscmpexpqp__): Add + define_expand for xscmpexqp instruction. + (*xscmpexpqp): Add define_insn for the xscmpexqp instruction. + +2018-10-25 Bill Schmidt + Jinsong Ji + + * config/rs6000/emmintrin.h (_mm_slli_epi16): Replace deprecated + function with vec_sl. + (_mm_slli_epi32): Likewise. + (_mm_slli_epi64): Likewise. + (_mm_srai_epi16): Replace deprecated function with vec_sra. + (_mm_srai_epi32): Likewise. + (_mm_srli_epi16): Replace deprecated function with vec_sr. + (_mm_srli_epi32): Likewise. + (_mm_srli_epi64): Likewise. + (_mm_sll_epi16): Replace deprecated function with vec_sl. + (_mm_sll_epi32): Likewise. + (_mm_sll_epi64): Likewise. + (_mm_sra_epi16): Replace deprecated function with vec_sra. + (_mm_sra_epi32): Likewise. + (_mm_srl_epi16): Replace deprecated function with vec_sr. + (_mm_srl_epi32): Likewise. + (_mm_srl_epi64): Likewise. + +2018-10-25 Bill Schmidt + Jinsong Ji + + * gcc/config/rs6000/emmintrin.h (_mm_sll_epi16): Replace + comparison operators with vec_cmp* for compatibility due to + unfortunate history; clean up formatting and use types more + appropriately. + (_mm_sll_epi32): Likewise. + (_mm_sll_epi64): Likewise. + (_mm_srl_epi16): Likewise. + (_mm_srl_epi32): Likewise. + (_mm_srl_epi64): Likewise. + +2018-10-25 Bill Schmidt + Jinsong Ji + + * config/rs6000/emmintrin.h (_mm_sll_epi64): Remove wrong cast. + * config/rs6000/xmmintrin.h (_mm_min_ps): Change m's type to + __vector __bool int. Use vec_cmpgt in preference to deprecated + function vec_vcmpgtfp. + (_mm_max_ps): Likewise. + +2018-10-25 Jeff Law + + * config/rl78/rl78.c (insn_ok_now): Always re-recognize the insn + if returning false. + +2018-10-25 Martin Sebor + + * doc/extend.texi (aligned): Expand attribute description. + (Alignment): Rename section. Discuss function arguments. + +2018-10-25 Jan Hubicka + + * ipa-devirt.c (main_odr_variant): Remove. + (hash_odr_name, types_same_for_odr, types_odr_comparable, + odr_name_hasher::equal, odr_subtypes_equivalent_p): + Drop use of main_odr_variant. + (add_type_duplicate): Silence confused warnings on integer types. + (get_odr_type): Always look for main variant. + (register_odr_type): Simplify. + +2018-10-25 Richard Biener + + * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): + Initialize ng to silence error with release checking bootstrap. + +2018-10-25 Richard Biener + + * tree-if-conv.c: Include tree-ssa-sccvn.h. + (tree_if_conversion): Run CSE on the if-converted loop body. + +2018-10-25 Ilya Leoshkevich + + * config/s390/constraints.md (ZL): New constraint. + * config/s390/s390.c (legitimate_pic_operand_p): Accept LARL + operands. + * config/s390/s390.md (movdi_larl): Remove. + (movdi_64): Add the LARL alternative. + +2018-10-25 Ilya Leoshkevich + + PR bootstrap/87747 + * rtl.c (RTX_CODE_HWINT_P_1): New helper macro. + (RTX_CODE_HWINT_P): New macro. + (rtx_code_size): Use RTX_CODE_HWINT_P (). + +2018-10-25 Jan Hubicka + + * ipa-devirt.c (odr_types_equivalent_p): Do not ICE if one of types + is anonymous. + +2018-10-25 Richard Biener + + PR tree-optimization/87665 + PR tree-optimization/87745 + * tree-vectorizer.h (get_earlier_stmt): Remove. + (get_later_stmt): Pick up UID from the original non-pattern stmt. + +2018-10-25 Sam Tebbs + + * options.texi (Deprecated): Move list to Var section. + +2018-10-24 Bill Schmidt + Jinsong Ji + + * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Change deprecated + __vector long to __vector long long. + (_mm_cvtpd_ps): Likewise. + (_mm_cvttpd_epi32): Likewise. + (_mm_cvtpi32_pd): Likewise. + (_mm_unpackhi_epi64): Likewise. + (_mm_unpacklo_epi64): Likewise. + +2018-10-24 Segher Boessenkool + + PR rtl-optimization/87720 + * combine.c (make_more_copies): Skip if the dest is pc_rtx. + +2018-10-24 Alexandre Oliva + + * gimple-ssa-isolate-paths.c + (find_implicit_erroneous_behavior): Do not change code if the + pass is running for warnings only. + (find_explicit_erroneous_behavior): Likewise. + +2018-10-24 Michael Meissner + + * config/rs6000/rs6000.c (TARGET_MANGLE_DECL_ASSEMBLER_NAME): + Define as rs6000_mangle_decl_assembler_name. + (rs6000_mangle_decl_assembler_name): If the user switched from IBM + long double to IEEE long double, switch the names of the long + double built-in functions to be f128 instead of l. + +2018-10-24 Martin Sebor + + * doc/extend.texi (nonnull): List no-argument form. Reference + -fno-delete-null-pointer-checks and -fisolate-erroneous-paths-attribute. + +2018-10-24 Richard Biener + + * tree-ssa-sccvn.c (do_rpo_vn): Free rpo_state. + +2018-10-24 Martin Liska + + PR tree-optimization/84436 + * tree-switch-conversion.c (switch_conversion::contains_same_values_p): + Remove. + (switch_conversion::contains_linear_function_p): New. + (switch_conversion::build_one_array): Support linear + transformation on input. + * tree-switch-conversion.h (struct switch_conversion): Add + contains_linear_function_p declaration. + +2018-10-24 Richard Biener + + * varasm.c (const_hash_1): Return hash of ADDR_EXPR + if its argument is CONSTANT_CLASS_P. + +2018-10-11 Jan Hubicka + + * ipa-utils.h (type_with_linkage_p): No longer check for TYPE_STUB_DECL; + it is wrong for forward declarations. + +2018-10-24 Ilya Leoshkevich + + * config/s390/s390.c (s390_check_qrst_address): Add the missing + SYMBOL_REF_P () check. + +2018-10-24 Richard Biener + + PR tree-optimization/87105 + * tree-vect-data-refs.c (vect_analyze_group_access_1): Adjust + dump classification. + (vect_analyze_data_ref_accesses): Handle duplicate loads and + stores by splitting the affected group after the fact. + * tree-vect-slp.c (vect_build_slp_tree_2): Dump when we + fail the SLP build because of size constraints. + +2018-10-24 Rainer Orth + + * configure.ac (gcc_cv_ld_aligned_shf_merge): New test. + * configure: Regenerate. + * config.in: Regenerate. + * varasm.c (mergeable_string_section): Use readonly_data_section + if linker doesn't support SHF_MERGE with alignment > 8. + (mergeable_constant_section): Likewise. + +2018-10-24 Richard Biener + + PR tree-optimization/84013 + * tree-ssa-structalias.c (struct msdi_data): New struct for + marshalling data to walk_stmt_load_store_ops. + (maybe_set_dependence_info): Refactor as callback for + walk_stmt_load_store_ops. + (compute_dependence_clique): Set restrict info on all stmt kinds. + +2018-10-24 Martin Liska + + * cgraph.c (cgraph_node::dump): + Remove reduntant dumps and make tp_first_run dump more compact. + +2018-10-24 Richard Biener + + PR tree-optimization/87665 + * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Adjust + to reflect reality. + +2018-10-12 Jeff Law + + * config/h8300/h8300.c (h8300_expand_prologue): Fix stm generation + for H8/S. + +2018-10-23 Richard Biener + + * tree-vrp.c (add_assert_info): Guard dump_printf with + dump_enabled_p. + * gimple-ssa-evrp-analyze.c + (evrp_range_analyzer::record_ranges_from_incoming_edge): + Use value_range::ignore_equivs_equal_p. + +2018-10-23 Richard Biener + + PR tree-optimization/87105 + PR tree-optimization/87608 + * passes.def (pass_all_early_optimizations): Add early phi-opt + after dce. + * tree-ssa-phiopt.c (value_replacement): Ignore NOPs and predicts in + addition to debug stmts. + (tree_ssa_phiopt_worker): Add early_p argument, do only min/max + and abs replacement early. + * tree-cfg.c (gimple_empty_block_p): Likewise. + +2018-10-23 Richard Earnshaw + + PR target/86383 + * config.gcc (arm*-*-netbsdelf*): Default to StrongARM if no CPU + specified to configure. + (arm*-*-*): Use ARM7TDMI as the target CPU if no default provided. + +2018-10-23 Richard Biener + + PR tree-optimization/87700 + * tree-ssa-copy.c (set_copy_of_val): Fix change detection logic. + +2018-10-23 Jakub Jelinek + + PR target/87674 + * config/i386/avx512vlintrin.h (_mm_mask_mullo_epi32): Change type of + second argument from __mmask16 to __mmask8. + * config/i386/avx512vlbwintrin.h (_mm_mask_packus_epi32, + _mm_mask_packs_epi32): Likewise. + * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i64scatter_ps): + Likewise. + (_mm512_mask_prefetch_i64scatter_pd): Likewise. Formatting fix. + +2018-10-23 Richard Biener + + * tree-vect-stmts.c (vect_analyze_stmt): Fix typo in comment. + +2018-10-23 Richard Biener + + PR tree-optimization/86144 + * tree-vect-stmts.c (vect_analyze_stmt): Prefer -mveclibabi + over simd attribute. + +2018-10-23 Richard Biener + + PR tree-optimization/87693 + * tree-ssa-threadedge.c (thread_around_empty_blocks): Handle + the case we do not find the taken edge. + +2018-10-22 Bill Schmidt + Jinsong Ji + + * config/rs6000/emmintrin.h (_MM_SHUFFLE2): Comment cleanup. + (_mm_store_pd): Use unaligned vector type for pointer cast. + (_mm_maskmoveu_si128): Likewise. + * config/rs6000/xmmintrin.h (__m128_u): New typedef. + (_mm_store_ps): Use unaligned vector type for pointer cast. + +2018-10-22 Paul Koning + + * symtab.c (symtab_node::increase_alignment): Correct max + alignment check. + +2018-10-22 Yury Gribov + + PR tree-optimization/87633 + * match.pd: Do not generate unordered integer comparisons. + +2018-10-22 Segher Boessenkool + + PR rtl-optimization/87600 + * combine.c: Add include of expr.h. + (cant_combine_insn_p): Do not combine moves from any hard non-fixed + register to a pseudo. + (make_more_copies): New function, add a copy to a new pseudo after + the moves from hard registers into pseudos. + (rest_of_handle_combine): Declare rebuild_jump_labels_after_combine + later. Call make_more_copies. + +2018-10-22 Andrew Stubbs + + * lra-constraints.c (process_alt_operands): New local array, + matching_early_clobber. Check matching_early_clobber before + decrementing reject, and set matching_early_clobber after. + +2018-10-22 Segher Boessenkool + + PR target/87598 + * config/rs6000/rs6000.c (print_operand_address): For unexpected RTL + call output_addr_const and hope for the best. + +2018-10-22 Richard Biener + + * gimple-ssa-evrp-analyze.c + (evrp_range_analyzer::record_ranges_from_incoming_edge): Be + smarter about what ranges to use. + * tree-vrp.c (add_assert_info): Dump here. + (register_edge_assert_for_2): Instead of here at multiple but + not all places. + + * gcc.dg/tree-ssa/evrp12.c: New testcase. + * gcc.dg/predict-6.c: Adjust. + * gcc.dg/tree-ssa/vrp33.c: Disable EVRP. + * gcc.dg/tree-ssa/vrp02.c: Likewise. + * gcc.dg/tree-ssa/cunroll-9.c: Likewise. + +2018-10-22 Steven Bosscher + Richard Biener + + * bitmap.h: Update data structure documentation, including a + description of bitmap views as either linked-lists or splay trees. + (struct bitmap_element_def): Update comments for splay tree bitmaps. + (struct bitmap_head_def): Likewise. + (bitmap_list_view, bitmap_tree_view): New prototypes. + (bitmap_initialize_stat): Initialize a bitmap_head's indx and + tree_form fields. + (bmp_iter_set_init): Assert the iterated bitmaps are in list form. + (bmp_iter_and_init, bmp_iter_and_compl_init): Likewise. + * bitmap.c (bitmap_elem_to_freelist): Unregister overhead of a + released bitmap element here. + (bitmap_element_free): Remove. + (bitmap_elt_clear_from): Work on splay tree bitmaps. + (bitmap_list_link_element): Renamed from bitmap_element_link. Move + this function similar ones such that linked-list bitmap implementation + functions are grouped. + (bitmap_list_unlink_element): Renamed from bitmap_element_unlink, + and moved for grouping. + (bitmap_list_insert_element_after): Renamed from + bitmap_elt_insert_after, and moved for grouping. + (bitmap_list_find_element): New function spliced from bitmap_find_bit. + (bitmap_tree_link_left, bitmap_tree_link_right, + bitmap_tree_rotate_left, bitmap_tree_rotate_right, bitmap_tree_splay, + bitmap_tree_link_element, bitmap_tree_unlink_element, + bitmap_tree_find_element): New functions for splay-tree bitmap + implementation. + (bitmap_element_link, bitmap_element_unlink, bitmap_elt_insert_after): + Renamed and moved, see above entries. + (bitmap_tree_listify_from): New function to convert part of a splay + tree bitmap to a linked-list bitmap. + (bitmap_list_view): Convert a splay tree bitmap to linked-list form. + (bitmap_tree_view): Convert a linked-list bitmap to splay tree form. + (bitmap_find_bit): Remove. + (bitmap_clear, bitmap_clear_bit, bitmap_set_bit, + bitmap_single_bit_set_p, bitmap_first_set_bit, bitmap_last_set_bit): + Handle splay tree bitmaps. + (bitmap_copy, bitmap_count_bits, bitmap_and, bitmap_and_into, + bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into, + bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior, bitmap_ior_into, + bitmap_xor, bitmap_xor_into, bitmap_equal_p, bitmap_intersect_p, + bitmap_intersect_compl_p, bitmap_ior_and_compl, + bitmap_ior_and_compl_into, bitmap_set_range, bitmap_clear_range, + bitmap_hash): Reject trying to act on splay tree bitmaps. Make + corresponding changes to use linked-list specific bitmap_element + manipulation functions as applicable for efficiency. + (bitmap_tree_to_vec): New function. + (debug_bitmap_elt_file): New function split out from ... + (debug_bitmap_file): ... here. Handle splay tree bitmaps. + (bitmap_print): Likewise. + + PR tree-optimization/63155 + * tree-ssa-propagate.c (ssa_prop_init): Use tree-view for the + SSA edge worklists. + * tree-ssa-coalesce.c (coalesce_ssa_name): Populate used_in_copies + in tree-view. + +2018-10-22 Martin Liska + + PR tree-optimization/87686 + Revert + 2018-08-29 Martin Liska + + * tree-switch-conversion.c (switch_conversion::expand): + Strenghten assumption about gswitch statements. + +2018-10-22 Martin Liska + + * ipa-icf.c (sem_item::compare_attributes): Remove. + (sem_item::compare_referenced_symbol_properties): Use + attribute_list_equal instead. + (sem_function::equals_wpa): Likewise. + * ipa-icf.h: Remove compare_attributes. + +2018-10-22 Richard Biener + + PR middle-end/87682 + * mem-stats.h (mem_usage::operator==): Fix pasto. + +2018-10-22 Richard Biener + + PR tree-optimization/87640 + * tree-vrp.c (set_value_range_with_overflow): Decompose + incomplete result. + (extract_range_from_binary_expr_1): Adjust. + +2018-10-22 Martin Jambor + + * tree-eh.h (stmt_could_throw_p): Add function parameter. + (stmt_can_throw_external): Likewise. + (stmt_can_throw_internal): Likewise. + * tree-eh.c (lower_eh_constructs_2): Pass cfun to stmt_could_throw_p. + (lower_eh_constructs_2): Likewise. + (stmt_could_throw_p): Add fun parameter, use it instead of cfun. + (stmt_can_throw_external): Likewise. + (stmt_can_throw_internal): Likewise. + (maybe_clean_eh_stmt_fn): Pass cfun to stmt_could_throw_p. + (maybe_clean_or_replace_eh_stmt): Pass cfun to stmt_could_throw_p. + (maybe_duplicate_eh_stmt_fn): Pass new_fun to stmt_could_throw_p. + (maybe_duplicate_eh_stmt): Pass cfun to stmt_could_throw_p. + (pass_lower_eh_dispatch::execute): Pass cfun to + stmt_can_throw_external. + (cleanup_empty_eh): Likewise. + (verify_eh_edges): Pass cfun to stmt_could_throw_p. + * cgraph.c (cgraph_edge::set_call_stmt): Pass a function to + stmt_can_throw_external instead of pushing it to cfun. + (symbol_table::create_edge): Likewise. + * gimple-fold.c (fold_builtin_atomic_compare_exchange): Pass cfun to + stmt_can_throw_internal. + * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Pass cfun + to stmt_could_throw_p. + * gimple-ssa-store-merging.c (handled_load): Pass cfun to + stmt_can_throw_internal. + (pass_store_merging::execute): Likewise. + * gimple-ssa-strength-reduction.c + (find_candidates_dom_walker::before_dom_children): Pass cfun to + stmt_could_throw_p. + * gimplify-me.c (gimple_regimplify_operands): Pass cfun to + stmt_can_throw_internal. + * ipa-pure-const.c (check_call): Pass cfun to stmt_could_throw_p and + to stmt_can_throw_external. + (check_stmt): Pass cfun to stmt_could_throw_p. + (check_stmt): Pass cfun to stmt_can_throw_external. + (pass_nothrow::execute): Likewise. + * trans-mem.c (expand_call_tm): Pass cfun to stmt_can_throw_internal. + * tree-cfg.c (is_ctrl_altering_stmt): Pass cfun to + stmt_can_throw_internal. + (verify_gimple_in_cfg): Pass cfun to stmt_could_throw_p. + (stmt_can_terminate_bb_p): Pass cfun to stmt_can_throw_external. + (gimple_purge_dead_eh_edges): Pass cfun to stmt_can_throw_internal. + * tree-complex.c (expand_complex_libcall): Pass cfun to + stmt_could_throw_p and to stmt_can_throw_internal. + (expand_complex_multiplication): Pass cfun to stmt_can_throw_internal. + * tree-inline.c (copy_edges_for_bb): Likewise. + (maybe_move_debug_stmts_to_successors): Likewise. + * tree-outof-ssa.c (ssa_is_replaceable_p): Pass cfun to + stmt_could_throw_p. + * tree-parloops.c (oacc_entry_exit_ok_1): Likewise. + * tree-sra.c (scan_function): Pass cfun to stmt_can_throw_external. + * tree-ssa-alias.c (stmt_kills_ref_p): Pass cfun to + stmt_can_throw_internal. + * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise. + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Pass cfun to + stmt_could_throw_p. + (mark_aliased_reaching_defs_necessary_1): Pass cfun to + stmt_can_throw_internal. + * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise. + * tree-ssa-loop-im.c (movement_possibility): Pass cfun to + stmt_could_throw_p. + * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Likewise. + (add_autoinc_candidates): Pass cfun to stmt_can_throw_internal. + * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. + (convert_mult_to_fma_1): Likewise. + (convert_to_divmod): Likewise. + * tree-ssa-phiprop.c (propagate_with_phi): Likewise. + * tree-ssa-pre.c (compute_avail): Pass cfun to stmt_could_throw_p. + * tree-ssa-propagate.c + (substitute_and_fold_dom_walker::before_dom_children): Likewise. + * tree-ssa-reassoc.c (suitable_cond_bb): Likewise. + (maybe_optimize_range_tests): Likewise. + (linearize_expr_tree): Likewise. + (reassociate_bb): Likewise. + * tree-ssa-sccvn.c (copy_reference_ops_from_call): Likewise. + * tree-ssa-scopedtables.c (hashable_expr_equal_p): Likewise. + * tree-ssa-strlen.c (adjust_last_stmt): Likewise. + (handle_char_store): Likewise. + * tree-vect-data-refs.c (vect_find_stmt_data_reference): Pass cfun to + stmt_can_throw_internal. + * tree-vect-patterns.c (check_bool_pattern): Pass cfun to + stmt_could_throw_p. + * tree-vect-stmts.c (vect_finish_stmt_generation_1): Likewise. + (vectorizable_call): Pass cfun to stmt_can_throw_internal. + (vectorizable_simd_clone_call): Likewise. + * value-prof.c (gimple_ic): Pass cfun to stmt_could_throw_p. + (gimple_stringop_fixed_value): Likewise. + +2018-10-22 Ilya Leoshkevich + + * config/s390/s390.c (s390_loadrelative_operand_p): Accept + literal pool references. + (s390_check_qrst_address): Adapt to the new behavior of + s390_loadrelative_operand_p (). + +2018-10-22 H.J. Lu + + PR target/72782 + * config/i386/sse.md (*andnot3_bcst): New. + +2018-10-22 H.J. Lu + + PR target/72782 + * config/i386/sse.md (*3_bcst): New. + +2018-10-22 H.J. Lu + + PR target/72782 + * config/i386/sse.md (avx512bcst): Updated for V4SI, V2DI, V8SI, + V4DI, V16SI and V8DI. + (*sub3_bcst): New. + (*add3_bcst): Likewise. + +2018-10-21 Bill Schmidt + Jinsong Ji + + * config/rs6000/emmintrin.h (_mm_movemask_pd): Replace __vector + __m64 with __vector unsigned long long for compatibility. + (_mm_movemask_epi8): Likewise. + * config/rs6000/xmmintrin.h (_mm_cvtps_pi32): Likewise. + (_mm_cvttps_pi32): Likewise. + (_mm_cvtpi32_ps): Likewise. + (_mm_cvtps_pi16): Likewise. + (_mm_loadh_pi): Likewise. + (_mm_storeh_pi): Likewise. + (_mm_movehl_ps): Likewise. + (_mm_movelh_ps): Likewise. + (_mm_loadl_pi): Likewise. + (_mm_storel_pi): Likewise. + (_mm_movemask_ps): Likewise. + (_mm_shuffle_pi16): Likewise. + +2018-10-21 H.J. Lu + + PR target/72782 + * config/i386/avx512fintrin.h (_mm512_fnmsub_round_pd): Use + __builtin_ia32_vfnmsubpd512_mask. + (_mm512_mask_fnmsub_round_pd): Likewise. + (_mm512_fnmsub_pd): Likewise. + (_mm512_mask_fnmsub_pd): Likewise. + (_mm512_maskz_fnmsub_round_pd): Use + __builtin_ia32_vfnmsubpd512_maskz. + (_mm512_maskz_fnmsub_pd): Likewise. + (_mm512_fnmsub_round_ps): Use __builtin_ia32_vfnmsubps512_mask. + (_mm512_mask_fnmsub_round_ps): Likewise. + (_mm512_fnmsub_ps): Likewise. + (_mm512_mask_fnmsub_ps): Likewise. + (_mm512_maskz_fnmsub_round_ps): Use + __builtin_ia32_vfnmsubps512_maskz. + (_mm512_maskz_fnmsub_ps): Likewise. + * config/i386/avx512vlintrin.h (_mm256_mask_fnmsub_pd): Use + __builtin_ia32_vfnmsubpd256_mask. + (_mm256_maskz_fnmsub_pd): Use __builtin_ia32_vfnmsubpd256_maskz. + (_mm_mask_fnmsub_pd): Use __builtin_ia32_vfmaddpd128_mask + (_mm_maskz_fnmsub_pd): Use __builtin_ia32_vfnmsubpd128_maskz. + (_mm256_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_mask. + (_mm256_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_mask. + (_mm256_maskz_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_maskz. + (_mm_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps128_mask. + (_mm_maskz_fnmsub_ps): Use __builtin_ia32_vfnmsubps128_maskz. + * config/i386/fmaintrin.h (_mm_fnmsub_pd): Use + __builtin_ia32_vfnmsubpd. + (_mm256_fnmsub_pd): Use __builtin_ia32_vfnmsubpd256. + (_mm_fnmsub_ps): Use __builtin_ia32_vfnmsubps. + (_mm256_fnmsub_ps): Use __builtin_ia32_vfnmsubps256. + (_mm_fnmsub_sd): Use __builtin_ia32_vfnmsubsd3. + (_mm_fnmsub_ss): Use __builtin_ia32_vfnmsubss3. + * config/i386/i386-builtin.def: Add + __builtin_ia32_vfnmsubpd256_mask, + __builtin_ia32_vfnmsubpd256_maskz, + __builtin_ia32_vfnmsubpd128_mask, + __builtin_ia32_vfnmsubpd128_maskz, + __builtin_ia32_vfnmsubps256_mask, + __builtin_ia32_vfnmsubps256_maskz, + __builtin_ia32_vfnmsubps128_mask, + __builtin_ia32_vfnmsubps128_maskz, + __builtin_ia32_vfnmsubpd512_mask, + __builtin_ia32_vfnmsubpd512_maskz, + __builtin_ia32_vfnmsubps512_mask, + __builtin_ia32_vfnmsubps512_maskz, __builtin_ia32_vfnmsubss3, + __builtin_ia32_vfnmsubsd3, __builtin_ia32_vfnmsubps, + __builtin_ia32_vfnmsubpd, __builtin_ia32_vfnmsubps256 and. + __builtin_ia32_vfnmsubpd256. + * config/i386/sse.md (fma4i_fnmsub_): New. + (_fnmsub__maskz): Likewise. + (*fma_fnmsub__bcst_1): + Likewise. + (*fma_fnmsub__bcst_2): + Likewise. + (*fma_fnmsub__bcst_3): + Likewise. + (fmai_vmfnmsub_): Likewise. + +2018-10-21 H.J. Lu + + PR target/72782 + * config/i386/avx512fintrin.h (_mm512_fnmadd_round_pd): Use + __builtin_ia32_vfnmaddpd512_mask. + (_mm512_mask_fnmadd_round_pd): Likewise. + (_mm512_fnmadd_pd): Likewise. + (_mm512_mask_fnmadd_pd): Likewise. + (_mm512_maskz_fnmadd_round_pd): Use + __builtin_ia32_vfnmaddpd512_maskz. + (_mm512_maskz_fnmadd_pd): Likewise. + (_mm512_fnmadd_round_ps): Use __builtin_ia32_vfnmaddps512_mask. + (_mm512_mask_fnmadd_round_ps): Likewise. + (_mm512_fnmadd_ps): Likewise. + (_mm512_mask_fnmadd_ps): Likewise. + (_mm512_maskz_fnmadd_round_ps): Use + __builtin_ia32_vfnmaddps512_maskz. + (_mm512_maskz_fnmadd_ps): Likewise. + * config/i386/avx512vlintrin.h (_mm256_mask_fnmadd_pd): Use + __builtin_ia32_vfnmaddpd256_mask. + (_mm256_maskz_fnmadd_pd): Use __builtin_ia32_vfnmaddpd256_maskz. + (_mm_mask_fnmadd_pd): Use __builtin_ia32_vfmaddpd128_mask + (_mm_maskz_fnmadd_pd): Use __builtin_ia32_vfnmaddpd128_maskz. + (_mm256_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_mask. + (_mm256_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_mask. + (_mm256_maskz_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_maskz. + (_mm_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps128_mask. + (_mm_maskz_fnmadd_ps): Use __builtin_ia32_vfnmaddps128_maskz. + * config/i386/fmaintrin.h (_mm_fnmadd_pd): Use + __builtin_ia32_vfnmaddpd. + (_mm256_fnmadd_pd): Use __builtin_ia32_vfnmaddpd256. + (_mm_fnmadd_ps): Use __builtin_ia32_vfnmaddps. + (_mm256_fnmadd_ps): Use __builtin_ia32_vfnmaddps256. + (_mm_fnmadd_sd): Use __builtin_ia32_vfnmaddsd3. + (_mm_fnmadd_ss): Use __builtin_ia32_vfnmaddss3. + * config/i386/i386-builtin.def: Add + __builtin_ia32_vfnmaddpd256_mask, + __builtin_ia32_vfnmaddpd256_maskz, + __builtin_ia32_vfnmaddpd128_mask, + __builtin_ia32_vfnmaddpd128_maskz, + __builtin_ia32_vfnmaddps256_mask, + __builtin_ia32_vfnmaddps256_maskz, + __builtin_ia32_vfnmaddps128_mask, + __builtin_ia32_vfnmaddps128_maskz, + __builtin_ia32_vfnmaddpd512_mask, + __builtin_ia32_vfnmaddpd512_maskz, + __builtin_ia32_vfnmaddps512_mask, + __builtin_ia32_vfnmaddps512_maskz, __builtin_ia32_vfnmaddss3, + __builtin_ia32_vfnmaddsd3, __builtin_ia32_vfnmaddps, + __builtin_ia32_vfnmaddpd, __builtin_ia32_vfnmaddps256 and. + __builtin_ia32_vfnmaddpd256. + * config/i386/sse.md (fma4i_fnmadd_): New. + (_fnmadd__maskz): Likewise. + (*fma_fnmadd__bcst_1): + Likewise. + (*fma_fnmadd__bcst_2): + Likewise. + (*fma_fnmadd__bcst_3): + Likewise. + (fmai_vmfnmadd_): Likewise. + +2018-10-21 H.J. Lu + + PR target/72782 + * config/i386/avx512fintrin.h (_mm512_fmsub_round_pd): Use + __builtin_ia32_vfmsubpd512_mask. + (_mm512_mask_fmsub_round_pd): Likewise. + (_mm512_fmsub_pd): Likewise. + (_mm512_mask_fmsub_pd): Likewise. + (_mm512_maskz_fmsub_round_pd): Use + __builtin_ia32_vfmsubpd512_maskz. + (_mm512_maskz_fmsub_pd): Likewise. + (_mm512_fmsub_round_ps): Use __builtin_ia32_vfmsubps512_mask. + (_mm512_mask_fmsub_round_ps): Likewise. + (_mm512_fmsub_ps): Likewise. + (_mm512_mask_fmsub_ps): Likewise. + (_mm512_maskz_fmsub_round_ps): Use + __builtin_ia32_vfmsubps512_maskz. + (_mm512_maskz_fmsub_ps): Likewise. + * config/i386/avx512vlintrin.h (_mm256_mask_fmsub_pd): Use + __builtin_ia32_vfmsubpd256_mask. + (_mm256_maskz_fmsub_pd): Use __builtin_ia32_vfmsubpd256_maskz. + (_mm_mask_fmsub_pd): Use __builtin_ia32_vfmaddpd128_mask + (_mm_maskz_fmsub_pd): Use __builtin_ia32_vfmsubpd128_maskz. + (_mm256_mask_fmsub_ps): Use __builtin_ia32_vfmsubps256_mask. + (_mm256_mask_fmsub_ps): Use __builtin_ia32_vfmsubps256_mask. + (_mm256_maskz_fmsub_ps): Use __builtin_ia32_vfmsubps256_maskz. + (_mm_mask_fmsub_ps): Use __builtin_ia32_vfmsubps128_mask. + (_mm_maskz_fmsub_ps): Use __builtin_ia32_vfmsubps128_maskz. + * config/i386/fmaintrin.h (_mm_fmsub_pd): Use + __builtin_ia32_vfmsubpd. + (_mm256_fmsub_pd): Use __builtin_ia32_vfmsubpd256. + (_mm_fmsub_ps): Use __builtin_ia32_vfmsubps. + (_mm256_fmsub_ps): Use __builtin_ia32_vfmsubps256. + (_mm_fmsub_sd): Use __builtin_ia32_vfmsubsd3. + (_mm_fmsub_ss): Use __builtin_ia32_vfmsubss3. + * config/i386/i386-builtin.def: Add + __builtin_ia32_vfmsubpd256_mask, + __builtin_ia32_vfmsubpd256_maskz, + __builtin_ia32_vfmsubpd128_mask, + __builtin_ia32_vfmsubpd128_maskz, + __builtin_ia32_vfmsubps256_mask, + __builtin_ia32_vfmsubps256_maskz, + __builtin_ia32_vfmsubps128_mask, + __builtin_ia32_vfmsubps128_maskz, + __builtin_ia32_vfmsubpd512_mask, + __builtin_ia32_vfmsubpd512_maskz, + __builtin_ia32_vfmsubps512_mask, + __builtin_ia32_vfmsubps512_maskz, __builtin_ia32_vfmsubss3, + __builtin_ia32_vfmsubsd3, __builtin_ia32_vfmsubps, + __builtin_ia32_vfmsubpd, __builtin_ia32_vfmsubps256 and. + __builtin_ia32_vfmsubpd256. + * config/i386/sse.md (fma4i_fmsub_): New. + (_fmsub__maskz): Likewise. + (*fma_fmsub__bcst_1): + Likewise. + (*fma_fmsub__bcst_2): + Likewise. + (*fma_fmsub__bcst_3): + Likewise. + (fmai_vmfmsub_): Likewise. + +2018-10-21 H.J. Lu + + * config/i386/sse.md (*3_bcst_1): + Remove plus. Renamed to ... + (*sub3_bcst): This. + (*add3_bcst_2): Renamede to ... + (*add3_bcst): This. + +2018-10-21 H.J. Lu + + PR target/72782 + * config/i386/sse.md (*mul3_bcst): New. + +2018-10-21 H.J. Lu + + PR target/87662 + * i386/avx512vlintrin.h (_mm256_or_epi32): New. + (_mm_or_epi32): Likewise. + (_mm256_xor_epi32): Likewise. + (_mm_xor_epi32): Likewise. + (_mm256_or_epi64): Likewise. + (_mm_or_epi64): Likewise. + (_mm256_xor_epi64): Likewise. + (_mm_xor_epi64): Likewise. + +2018-10-20 H.J. Lu + + PR target/72782 + * config/i386/sse.md (*_div3_bcst): New. + +2018-10-20 Jakub Jelinek + + PR middle-end/87647 + * varasm.c (decode_addr_const): Handle COMPOUND_LITERAL_EXPR. + +2018-10-20 Andreas Schwab + + * doc/ux.texi: Move @section directly after @node. + +2018-10-19 Jakub Jelinek + + PR middle-end/85488 + PR middle-end/87649 + * omp-low.c (check_omp_nesting_restrictions): Diagnose ordered without + depend closely nested inside of loop with ordered clause with + a parameter. + +2018-10-19 David Malcolm + + * Makefile.in (TEXI_GCCINT_FILES): Add ux.texi. + * doc/gccint.texi: Include ux.texi and use it in top-level menu. + * doc/ux.texi: New file. + +2018-10-19 Segher Boessenkool + + * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Move 68 (that is, CR0) to + be the first CR field allocated. + +2018-10-19 Richard Biener + + PR target/87657 + * config/i386/i386.c (ix86_builtin_vectorization_cost): Use + TYPE_VECTOR_SUBPARTS and avoid relying on vector mode. + +2018-10-19 H.J. Lu + + PR target/72782 + * config/i386/sse.md + (*3_bcst_1): New. + (*add3_bcst_2): Likewise. + +2018-10-19 H.J. Lu + + * config/i386/sse.md + (*fma_fmadd__bcst_1): + Replace nonimmediate_operand with register_operand. + (*fma_fmadd__bcst_2): + Likewise. + (*fma_fmadd__bcst_3): + Likewise. + +2018-10-19 Ilya Leoshkevich + + PR rtl-optimization/87596 + * lra-constraints.c (spill_hard_reg_in_range): Use INSN_P () + + lra_get_insn_recog_data () instead of lra_insn_recog_data[] + for instructions in FROM..TO range. + +2018-10-19 Eric Botcazou + + * cfgexpand.c (expand_one_var): Use specific wording in error message + for non-local frame variables. + * stor-layout.c (layout_decl): Do not issue a warning for them. + +2018-10-19 Robin Dapp + + * haifa-sched.c (priority): Add force_recompute parameter. + (apply_replacement): Call priority () with force_recompute = true. + (restore_pattern): Likewise. + +2018-10-18 H.J. Lu + + * simplify-rtx.c (simplify_subreg): Limit mask of vec_merge to + HOST_BITS_PER_WIDE_INT. + (test_vector_ops_duplicate): Likewise. + +2018-10-18 H.J. Lu + + PR target/72782 + * config/i386/sse.md (VF_AVX512): New. + (avx512bcst): Likewise. + (*fma_fmadd__bcst_1): + Likewise. + (*fma_fmadd__bcst_2): + Likewise. + (*fma_fmadd__bcst_3): + Likewise. + +2018-10-18 Jonathan Wakely + + * doc/invoke.texi (-dumpversion): Improve grammar. + (-dumpfullversion): Make more consistent with -dumpversion. + +2018-10-18 Uros Bizjak + + * config/i386/i386.c (ix86_emit_fp_unordered_jump): + Set JUMP_LABEL to the jump insn. + (ix86_emit_i387_log1p): Use ix86_expand_branch to expand branch. + Predict emitted jump and add label to jump insn. + +2018-10-18 David Malcolm + + PR tree-optimization/87562 + * input.c (get_substring_ranges_for_loc): Use + LRK_SPELLING_LOCATION rather than LRK_MACRO_EXPANSION_POINT when + getting the linemap for the endpoint. Verify that it's either + in the same linemap as the start point's spelling location, or + at least in the same file. + +2018-10-18 Richard Biener + + * config/i386/i386.c (ix86_builtin_vectorization_cost): Do not + feed width-specific load/store costs through ix86_vec_cost. + * config/i386/x86-tune-costs.h (athlon_cost): Adjust. + (k8_cost): Likewise. + (bdver_cost): Likewise. + (znver1_cost): Likewise. + (btver1_cost): Likewise. + (btver2_cost): Likewise. + +2018-10-18 H.J. Lu + + * simplify-rtx.c (simplify_subreg): Call simplify_gen_subreg + to simplify subreg of vec_merge. + +2018-10-18 Richard Biener + + * config/i386/i386.c: Fix costing of vector FMA. + +2018-10-18 Richard Biener + + * config/i386/i386.c (ix86_vec_cost): Remove !parallel path + and argument. + (ix86_builtin_vectorization_cost): For vec_construct properly + cost insertion into SSE regs. + (...): Adjust calls to ix86_vec_cost. + +2018-10-18 Richard Biener + + PR middle-end/87087 + Revert + 2018-02-07 Richard Biener + + PR tree-optimization/84204 + * tree-chrec.c (chrec_fold_plus_1): Remove size limiting in + this place. + +2018-10-18 H.J. Lu + + PR target/87537 + * simplify-rtx.c (simplify_subreg): Simplify subreg of vec_merge + of vec_duplicate. + (test_vector_ops_duplicate): Add test for a scalar subreg of a + VEC_MERGE of a VEC_DUPLICATE. + +2018-10-17 Joseph Myers + + * doc/cpp.texi (__STDC_VERSION__): Document C2X handling. + * doc/invoke.texi (-std=c2x, -std=gnu2x): Document new options. + * doc/standards.texi (C Language): Document C2X. + * dwarf2out.c (highest_c_language), config/rl78/rl78.c + (rl78_option_override): Handle "GNU C2X" language name. + +2018-10-17 Joseph Myers + + * doc/invoke.texi (-std=c17), doc/standards.texi (C Language): + Document C17 as published in 2018. + +2018-10-17 Eric Botcazou + + PR middle-end/87623 + * fold-const.c (fold_truth_andor_1): If the right side is not constant, + bail out if both sides do not have the same storage order. + +2018-10-17 Aldy Hernandez + + * bitmap.c (bitmap_head::dump): New. + * bitmap.h (bitmap_head): Add dump(). + * gimple-ssa-evrp-analyze.c + (evrp_range_analyzer::try_find_new_range): Adjust for value_range API. + (evrp_range_analyzer::set_ssa_range_info): Same. + (evrp_range_analyzer::record_ranges_from_phis): Same. + (evrp_range_analyzer::record_ranges_from_stmt): Same. + * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Same. + * gimple-ssa-sprintf.c (get_int_range): Same. + (format_integer): Same. + (sprintf_dom_walker::handle_gimple_call): Same. + * ipa-cp.c (ipcp_vr_lattice::meet_with_1): Same. + (ipcp_vr_lattice::top_p): Same. + (ipcp_vr_lattice::bottom_p): Same. + (ipcp_vr_lattice::set_to_bottom): Same. + (ipa_vr_operation_and_type_effects): Same. + (propagate_vr_across_jump_function): Same. + (ipcp_store_vr_results): Same. + * ipa-prop.c (struct ipa_vr_ggc_hash_traits): Same. + (ipa_print_node_jump_functions_for_edge): Same. + (ipa_get_value_range): Same. + (ipa_compute_jump_functions_for_edge): Same. + (ipa_write_jump_function): Same. + * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Same. + * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): + Same. + * vr-values.c (set_value_range_to_nonnegative): Same. + (set_value_range_to_truthvalue): Same. + (vr_values::get_value_range): Same. + (vr_values::set_defs_to_varying): Same. + (vr_values::update_value_range): Same. + (symbolic_range_based_on_p): Same. + (vr_values::op_with_boolean_value_range_p): Same. + (vr_values::extract_range_for_var_from_comparison_expr): Same. + (vr_values::extract_range_from_ssa_name): Same. + (vr_values::extract_range_from_binary_expr): Same. + (vr_values::extract_range_from_unary_expr): Same. + (vr_values::extract_range_from_cond_expr): Same. + (vr_values::extract_range_from_comparison): Same. + (vr_values::check_for_binary_op_overflow): Same. + (vr_values::extract_range_basic): Same. + (vr_values::extract_range_from_assignment): Same. + (compare_ranges): Same. + (compare_range_with_value): Same. + (vr_values::adjust_range_with_scev): Same. + (vrp_valueize): Same. + (vrp_valueize_1): Same. + (vr_values::get_vr_for_comparison): Same. + (vr_values::compare_name_with_value): Same. + (vr_values::compare_names): Same. + (vr_values::vrp_evaluate_conditional): Same. + (find_case_label_ranges): Same. + (vr_values::vrp_visit_switch_stmt): Same. + (vr_values::extract_range_from_phi_node): Same. + (vr_values::simplify_div_or_mod_using_ranges): Same. + (vr_values::simplify_bit_ops_using_ranges): Same. + (test_for_singularity): Same. + (range_fits_type_p): Same. + (vr_values::simplify_cond_using_ranges_1): Same. + (vr_values::simplify_switch_using_ranges): Same. + (vr_values::simplify_float_conversion_using_ranges): Same. + (vr_values::two_valued_val_range_p): Same. + (vr_values::add_equivalence): Move to value_range::equiv_add. + * vr-values.h (vr_values::add_equivalence): Remove. + (VR_INITIALIZER): Remove. + * tree-vrp.c (value_range::set): New. + (value_range::equiv_add): New. + (value_range::value_range): New. + (value_range::deep_copy): New. + (value_range::check): New. + (value_range::equal_p): New. + (value_range::ignore_equivs_equal_p): New. + (value_range::operator==): New. + (value_range::operator!=): New. + (value_range::symbolic_p): New. + (value_range::numeric_p): New. + (value_range::set_undefined): New. + (value_range::set_varying): New. + (value_range::may_contain_p): New. + (value_range::equiv_clear): New. + (value_range::singleton_p): New. + (value_range::intersect): New. + (value_range::dump): New. + (value_range::set_and_canonicalize): New. + (set_value_range): Adjust for value_range API. + (set_value_range_to_undefined): Same. + (set_value_range_to_varying): Same. + (set_and_canonicalize_value_range): Same. + (set_value_range_to_nonnull): Same. + (set_value_range_to_null): Same. + (range_is_null): Same. + (range_is_nonnull): Same. + (range_int_cst_p): Same. + (range_int_cst_singleton_p): Same. + (symbolic_range_p): Same. + (range_includes_zero_p): Same. + (value_range_constant_singleton): Same. + (vrp_set_zero_nonzero_bits): Same. + (ranges_from_anti_range): Same. + (extract_range_into_wide_ints): Same. + (extract_range_from_multiplicative_op): Same. + (set_value_range_with_overflow): Same. + (extract_range_from_binary_expr_1): Same. + (extract_range_from_unary_expr): Same. + (dump_value_range): Same. + (debug_value_range): Same. + (vrp_prop::check_array_ref): Same. + (vrp_prop::check_mem_ref): Same. + (vrp_prop::vrp_initialize): Same. + (vrp_prop::visit_stmt): Same. + (intersect_ranges): Same. + (vrp_prop::visit_phi): Same. + (vrp_prop::vrp_finalize): Same. + (determine_value_range_1): Same. + (determine_value_range): Same. + (vrp_intersect_ranges_1): Rename to... + (vrp_intersect_1): this. + (vrp_intersect_ranges): Rename to... + (value_range::intersect_helper): ...this. + (vrp_meet_1): Rename to... + (value_range::union_helper): ...this. + (vrp_meet): Rename to... + (value_range::union_): ...this. + (copy_value_range): Remove. + * tree-vrp.h (struct value_range): Rewrite into a proper class. + (value_range::vrtype): New. + (value_range::type): New. + (value_range::equiv): New. + (value_range::min): New. + (value_range::max): New. + (value_range::varying_p): New. + (value_range::undefined_p): New. + (value_range::null_p): New. + (value_range::equiv_add): New. + (copy_value_range): Remove. + +2018-10-17 David Malcolm + + * Makefile.in (SELFTEST_TARGETS): New. + (selftest) Change from s-selftest-c to $(SELFTEST_TARGETS). + (C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb) + (selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move to + c/Make-lang.in. + (CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++) + (selftest-c++-gdb, selftest-c++-valgrind): Move to + cp/Make-lang.in. + * configure: Regenerate. + * configure.ac (selftest_languages): New. + +2018-10-17 Aldy Hernandez + + * tree-vrp.c (extract_range_from_multiplicative_op): Remove + overflow wraps argument. + (extract_range_from_binary_expr_1): Do not pass overflow wraps to + wide_int_range_multiplicative_op. + * wide-int-range.cc (wide_int_range_mult_wrapping): Remove + overflow wraps argument. + (wide_int_range_multiplicative_op): Same. + (wide_int_range_lshift): Same. + (wide_int_range_div): Same. + * wide-int-range.h (wide_int_range_multiplicative_op): Same. + (wide_int_range_lshift): Same. + (wide_int_range_div): Same. + +2018-10-17 Aldy Hernandez + + * wide-int-range.h (wide_int_range_shift_undefined_p): Adjust to + use sign as argument. + * tree-vrp.c (extract_range_from_binary_expr_1): Pass sign to + wide_int_range_shift_undefined_p. + +2018-10-16 Kyrylo Tkachov + + * config/aarch64/aarch64.md (despeculate_copy): + Rename to... + (@despeculate_copy): ... This. + * config/aarch64/aarch64.c (aarch64_speculation_safe_value): Remove + switch statement. + +2018-10-16 Rainer Orth + + * config.gcc: Obsolete *-*-solaris2.10*. + * doc/install.texi (Specific, *-*-solaris2*): Document it. + +2018-10-12 Jeff Law + + * config/ft32/ft32.md (ft32_general_movsrc_operand): Disable + reg + sym +- const_int addressing modes. + +2018-10-15 David Malcolm + + * common.opt (fdiagnostics-minimum-margin-width=): New option. + * diagnostic-show-locus.c (layout::layout): Apply the minimum + margin width. + (layout::start_annotation_line): Only print up to 3 of the + margin character, to avoid touching the left-hand side. + (selftest::test_diagnostic_show_locus_fixit_lines): Update for + minimum margin width, as set by test_diagnostic_context's ctor. + (selftest::test_fixit_insert_containing_newline): Likewise. + (selftest::test_fixit_insert_containing_newline_2): Likewise. + (selftest::test_line_numbers_multiline_range): Clear + dc.min_margin_width. + * diagnostic.c (diagnostic_initialize): Initialize + min_margin_width. + * diagnostic.h (struct diagnostic_context): Add field + "min_margin_width". + * doc/invoke.texi: Add -fdiagnostics-minimum-margin-width=. + * opts.c (common_handle_option): Handle + OPT_fdiagnostics_minimum_margin_width_. + * selftest-diagnostic.c + (selftest::test_diagnostic_context::test_diagnostic_context): + Initialize min_margin_width to 6. + * toplev.c (general_init): Initialize global_dc->min_margin_width. + +2018-10-15 David Malcolm + + * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby): + Fix usage of "error_at_rich_loc" in the comment. + +2018-10-15 Renlin Li + + PR target/87563 + * tree-vectorizer.c (try_vectorize_loop_1): Don't use + if-conversioned loop when it contains ifn with types not + supported by backend. + * internal-fn.c (expand_direct_optab_fn): Add an assert. + (direct_internal_fn_supported_p): New helper function. + * internal-fn.h (direct_internal_fn_supported_p): Declare. + +2018-10-15 Jakub Jelinek + + PR target/87572 + * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET): + Remove OPTION_MASK_ISA_AVX5124FMAPS_UNSET and + OPTION_MASK_ISA_AVX5124VNNIW_UNSET. + +2018-10-15 Bin Cheng + + PR tree-optimization/87022 + * tree-loop-distribution.c (pg_add_dependence_edges): Check all + bits in dist vector rather than the first one. + +2018-10-15 Richard Biener + + PR middle-end/87610 + * tree-ssa-structalias.c (struct vls_data): Add escaped_p member. + (visit_loadstore): When a used restrict tag escaped verify that + the points-to solution of "other" pointers do not include + escaped. + (compute_dependence_clique): If a used restrict tag escaped + communicated that down to visit_loadstore. + +2018-10-15 Andreas Krebbel + + * config/s390/s390.c (s390_expand_vec_init): Force vector element + into reg if it isn't a general operand. + +2018-10-14 H.J. Lu + + PR target/87599 + * config/i386/sse.md (*vec_dupv2di): Add register source to + movddup. + +2018-10-14 H.J. Lu + + PR target/87572 + * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET): + Add OPTION_MASK_ISA_AVX512IFMA_UNSET, + OPTION_MASK_ISA_AVX5124FMAPS_UNSET and + OPTION_MASK_ISA_AVX5124VNNIW_UNSET. + +2018-10-13 Eric Botcazou + + * dwarf2cfi.c (struct dw_trace_info): Add args_size_defined_for_eh. + (notice_args_size): Set it in the current trace if no insn that can + throw internally has been seen yet. + (connect_traces): When connecting args_size between traces, allow the + incoming values not to match if there is an insn setting it before the + first insn that can throw internally; in that case, force the creation + of a CFI note on this latter insn. + +2018-10-13 Jonathan Wakely + + * opt-problem.h (opt_wrapper): Use template-argument-list when naming + the base class, because using the injected-class-name was not clearly + specified until DR 176. + +2018-10-12 Paul Koning + + * config/pdp11/pdp11.md (doloop_end): New expander. + (doloop_end_insn): renamed from "doloop_end". + (addqi3): New pattern. + (subqi3): New pattern. + * config/pdp11/predicates.md (incdec_operand): New predicate. + +2018-10-12 Yury Gribov + + PR middle-end/81376 + * real.c (format_helper::can_represent_integral_type_p): New function + * real.h (format_helper::can_represent_integral_type_p): Ditto. + * match.pd: New pattern. + +2018-10-12 Alexandre Oliva + + * configure.ac: Introduce --enable-large-address-aware + to define MINGW_DEFAULT_LARGE_ADDR_AWARE. + * doc/install.texi: Document it. + * configure, config.in: Rebuilt. + * config/i386/mingw32.h (LINK_SPEC_LARGE_ADDR_AWARE): Define, + based on MINGW_DEFAULT_LARGE_ADDR_AWARE. + (LINK_SPEC): Insert it. + * config/i386/mingw-w64.h: Likewise. + + * cygming.h (HAVE_GAS_ALIGNED_COMM): Fallback-define. + +2018-10-12 Peter Bergner + + PR rtl-optimization/87600 + * ira-lives (non_conflicting_reg_copy_p): Disable for non LRA targets. + +2018-10-12 Paul Koning + + * doc/md.texi (doloop_end): Document that the pattern code may + need to check operand mode. + +2018-10-12 Wilco Dijkstra + + * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Add alternatives + to zero-extend between int and floating-point registers. + (load_pair_zero_extendsidi2_aarch64): Add alternative for zero-extended + ldp into floating-point registers. Add type and arch attributes. + (zero_extend2_aarch64): Add arch attribute. + Use f_loads for type attribute. + +2018-10-11 Martin Sebor + + * doc/extend.texi (attribute packed): Correct typos. + +2018-10-11 Martin Sebor + + * doc/extend.texi (attribute flatten): Mention interaction with + noinline. + +2018-10-11 Jan Hubicka + + PR target/87156 + * cgraphclones.c (cgraph_node::create_version_clone_with_body): + Set new_decl virtual flag to zero. + +2018-10-11 Martin Sebor + + PR middle-end/87593 + * doc/extend.texi (attribute format_arg): Discuss using multiple + attributes on a single function. + +2018-10-11 Giuliano Belinassi + + PR tree-optimization/86829 + * match.pd (sin (atan (x))): New simplification rules. + (cos (atan (x))): Likewise. + * real.c (build_sinatan_real): New function. + * real.h (build_sinatan_real): Prototype. + +2018-10-11 Will Schmidt + + * config/rs6000/rs6000.c (map_to_integral_tree_type): New helper + function. + (fold_mergeeo_helper): New helper function. + (rs6000_gimple_fold_builtin): Add hooks for vec_mergee and vec_mergeo + intrinsics. Correct some whitespace indentation issues. + +2018-10-11 Wilco Dijkstra + + PR target/87511 + * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p): + Use HOST_WIDE_INT_1U for shift. + +2018-10-11 Doug Rupp + Olivier Hainque + + * config/rs6000/vxworks.h (VXWORKS_RELAX_LINK_SPEC): New macro. + Pass --relax to the linker for RTPs. + (LINK_SPEC): Append VXWORKS_RELAX_LINK_SPEC. + +2018-10-11 Andrew Stubbs + Jan Hubicka + Martin Jambor + + * print-rtl.c (print_rtx_operand_codes_E_and_V): Print how many times + the same elements are repeated rather than printing all of them. + * read-rtl.c (rtx_reader::read_rtx_operand): Recognize and expand + "repeated" elements. + * read-rtl-function.c (test_loading_repeat): New function. + (read_rtl_function_c_tests): Call test_loading_repeat. + * rtl-tests.c (test_dumping_repeat): New function. + (rtl_tests_c_tests): Call test_dumping_repeat. + +2018-10-11 Richard Biener + + * config/i386/x86-tune-costs.h (bdver?_memcpy, bdver?_memset, + bdver?_cost): Unify to ... + (bdver_memcpy, bdver_memset, bdver_cost): ... this. + * config/i386/i386.c (processor_cost_table): Adjust. + +2018-10-10 Eric Botcazou + + PR middle-end/87574 + * cgraphunit.c (cgraph_node::expand_thunk): Force DECL_IGNORED_P on + the thunk when expanding to GIMPLE. + +2018-10-10 Bernd Edlinger + + PR bootstrap/87551 + * varasm.c (mergeable_string_section): Don't try to move zero-length + strings to the merge section. + +2018-10-10 Uros Bizjak + + PR target/87573 + * config/i386/mmx.md (const_vector 0 -> mem splitter): New splitter. + +2018-10-10 Jakub Jelinek + + PR target/87550 + * config/i386/i386-builtin.def (IX86_BUILTIN_RDPMC): Move from args set + to special_args set. + +2018-10-10 Richard Biener + + * config/i386/sse.md (reduc_plus_scal_v8df, reduc_plus_scal_v4df, + reduc_plus_scal_v2df, reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, + reduc_plus_scal_v4sf): Merge into pattern reducing to half width + and recursing and pattern terminating the recursion on SSE + vector width using ix86_expand_reduc. + (reduc_sminmax_scal_): Split into part reducing to half + width and recursing and SSE2 vector variant doing the final + reduction with ix86_expand_reduc. + (reduc_uminmax_scal_): Likewise for the AVX512 variants + with terminating the recursion at AVX level, splitting that + to SSE there. + +2018-10-09 David Malcolm + + * genmatch.c (error_cb): Rename to... + (diagnostic_cb): ...this, converting int params to enums. + (fatal_at): Update for renaming. + (warning_at): Likewise. + (main): Likewise. + * input.c (selftest::ebcdic_execution_charset::apply): + Update for renaming of... + (selftest::ebcdic_execution_charset::on_error): ...this, renaming + to... + (selftest::ebcdic_execution_charset::on_diagnostic): ...this, + converting level and reason to enums. + (class selftest::lexer_error_sink): Rename to... + (class selftest::lexer_test_options): ...this, renaming field + "m_errors" to "m_diagnostics". + (selftest::lexer_test_options::apply): Update for renaming of... + (selftest::lexer_test_options::on_error): ...this, renaming to... + (selftest::lexer_test_options::on_diagnostic): ...this + converting level and reason to enums. + (selftest::test_lexer_string_locations_raw_string_unterminated): + Update for renamings. + * opth-gen.awk (struct cpp_reason_option_codes_t): Use enum for + "reason". + +2018-10-09 Paul A. Clarke + + * config.gcc (powerpc*-*-*): Add pmmintrin.h to extra_headers. + * config/rs6000/pmmintrin.h: New file. + +2018-10-09 Eric Botcazou + + PR tree-optimization/86659 + * gimple-match.h (gimple_match_op constructors): Initialize reverse. + +2018-10-09 Richard Biener + + PR tree-optimization/63155 + * tree-ssa-structalias.c: Include tree-ssa.h. + (get_constraint_for_ssa_var): For undefs return nothing_id. + (find_func_aliases): Cleanup PHI handling. + +2018-10-09 Richard Biener + + * tree-vectorizer.c (dump_stmt_cost): Fix cut&paste missing + replacements. + +2018-10-09 Martin Liska + + * asan.c (asan_emit_stack_protection): If a stack variable + is located in a same file as current function, then emit + line info into variable definition string. + +2018-10-08 Eric Botcazou + + * print-rtl.c (rtx_writer::print_rtx_operand_code_i): Print column + information. + +2018-10-08 Eric Botcazou + + * cgraphunit.c (cgraph_node::expand_thunk): Do not force DECL_IGNORED_P + on the thunk. + +2018-10-08 Eric Botcazou + + PR tree-optimization/86659 + * gimple-match.h (struct gimple_match_op): Add reverse field. + (gimple_match_op::set_op): New overloaded method. + * gimple-match-head.c (maybe_build_generic_op) : Set + the REF_REVERSE_STORAGE_ORDER flag on the value. + (gimple_simplify) : For BIT_FIELD_REF, propagate the + REF_REVERSE_STORAGE_ORDER flag and avoid simplifying if it is set. + +2018-10-08 Richard Sandiford + + PR middle-end/63155 + * gimple-ssa-backprop.c (backprop::intersect_uses): Use + FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT. + +2018-10-08 H.J. Lu + + PR target/87517 + * config/i386/avx512fintrin.h (_mm512_mask_fmaddsub_round_pd): + Defined with __builtin_ia32_vfmaddsubpd512_mask. + +2018-10-08 Richard Biener + + * config/i386/x86-tune-costs.h (znver1_cost): Make AVX256 vector loads + cost the same as AVX128 ones. + +2018-10-08 Paul Koning + + * config/pdp11/pdp11-protos.h (output_block_move): Remove. + (expand_block_move): New function. + * config/pdp11/pdp11.c (output_block_move): Remove. + (expand_block_move): New function. + * config/pdp11/pdp11.h (MOVE_RATIO): New definition. + * config/pdp11/pdp11.md (movmemhi): Use expand_block_move. + (*movmemhi1): Remove. + +2018-10-08 Robin Dapp + + * config/s390/2827.md: Increase latencies for some FP instructions. + +2018-10-08 Richard Biener + + * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): + Open a dump scope. + * tree-vectorizer.c (dump_stmt_cost): Add cost param and dump it. + * tree-vectorizer.h (dump_stmt_cost): Adjust. + (add_stmt_cost): Dump return value of the hook. + +2018-10-08 Richard Biener + + PR tree-optimization/63155 + * tree-ssa-propagate.c (add_ssa_edge): Do cheap check first. + (ssa_propagation_engine::ssa_propagate): Remove redundant + bitmap bit clearing. + +2018-10-05 Peter Bergner + + PR rtl-optimization/86939 + PR rtl-optimization/87479 + * ira.h (non_conflicting_reg_copy_p): New prototype. + * ira-lives.c (ignore_reg_for_conflicts): New static variable. + (make_hard_regno_dead): Don't add conflicts for register + ignore_reg_for_conflicts. + (make_object_dead): Likewise. + (non_conflicting_reg_copy_p): New function. + (process_bb_node_lives): Set ignore_reg_for_conflicts for copies. + Remove special conflict handling of REAL_PIC_OFFSET_TABLE_REGNUM. + * lra-lives.c (ignore_reg_for_conflicts): New static variable. + (make_hard_regno_dead): Don't add conflicts for register + ignore_reg_for_conflicts. Remove special conflict handling of + REAL_PIC_OFFSET_TABLE_REGNUM. Remove now unused argument + check_pic_pseudo_p and update callers. + (mark_pseudo_dead): Don't add conflicts for register + ignore_reg_for_conflicts. + (process_bb_lives): Set ignore_reg_for_conflicts for copies. + +2018-10-05 Andrew Waterman + Jim Wilson + + * config/riscv/riscv.md (f_quiet4): + Add define_expand. Add ! HONOR_SNANS check to current pattern. Add + new pattern using HONOR_SNANS that emits one extra instruction. + +2018-10-05 Segher Boessenkool + + * config/rs6000/rs6000.md (unnamed mfcr scc_comparison_operator + patterns): Merge SI and DI patterns to a GPR pattern. + (unnamed define_insn and define_split for record form of that): Merge + to a single define_insn_and_split pattern. + +2018-10-05 David Malcolm + + PR c++/56856 + * input.c (expand_location_to_spelling_point): Add param "aspect" + and use rather than hardcoding LOCATION_ASPECT_CARET. + (get_substring_ranges_for_loc): Handle the case of a single token + within a macro expansion. + * input.h (expand_location_to_spelling_point): Add "aspect" param, + defaulting to LOCATION_ASPECT_CARET. + +2018-10-05 Paul Koning + + * config/pdp11/pdp11.c (TARGET_CXX_GUARD_TYPE): Define. + (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define. + (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define. + (pdp11_guard_type): New function. + +2018-10-05 Paul Koning + + * config/pdp11/pdp11.h (FLOAT_TYPE_SIZE): Always 32. + * config/pdp11/pdp11.opt (mfloat32): Remove. + (mfloat64): Remove. + * doc/invoke.texi (pdp11 -mfloat32): Remove: + (pdp11 -mfloat64): Remove. + +2018-10-05 Uros Bizjak + + * config/i386/i386.md (*cmpxf_cc_i387): Remove pattern. + (*cmp_cc_i387): Ditto. + (*cmpu_cc_i387): Ditto. + (*cmp__cc_i387): Ditto. + * config/i386/i386.c (ix86_expand_fp_compare): Remove + "scratch" argument. + : Do not generate pattern with HImode clobber. + Emit x86_sahf_1 pattern. + (ix86_expand_compare): Update call to ix86_expand_fp_compare. + (ix86_expand_carry_flag_compare): Ditto. + +2018-10-05 Uros Bizjak + + * config/i386/i386.md (*cmpxf_i387): Change operand 2 predicate + to reg_or_0_operand. Add "C" constraint. + (*cmpxf_cc_i387): Ditto. + (*cmp_i387): Change operand 2 predicate + to nonimm_or_0_operand. Add "C" constraint. + (*cmp_cc_i387): Ditto. + (*cmp_0_i387): Remove insn pattern. + (*cmp_0_cc_i387): Ditto. + +2018-10-05 Uros Bizjak + + * config/i386/constraints.md ("C"): Do not depend on TARGET_SSE. + * config/i386/predicates.md (nonimm_or_0_operand): Rename + from vector_move_operand. Update all uses. + +2018-10-05 Martin Sebor + + PR tree-optimization/87490 + * builtins.c (expand_builtin_strnlen): Handle a null data.decl + consistently. + +2018-10-05 Richard Biener + + PR tree-optimization/63155 + * tree-ssa-ccp.c (ccp_propagate::visit_phi): Avoid excess + vertical space in dumpfiles. + * tree-ssa-propagate.h + (ssa_propagation_engine::process_ssa_edge_worklist): Remove. + * tree-ssa-propagate.c (cfg_blocks_back): New global. + (ssa_edge_worklist_back): Likewise. + (curr_order): Likewise. + (cfg_blocks_get): Remove abstraction. + (cfg_blocks_add): Likewise. + (cfg_blocks_empty_p): Likewise. + (add_ssa_edge): Add to current or next worklist based on + RPO index. + (add_control_edge): Likewise. + (ssa_propagation_engine::process_ssa_edge_worklist): Fold + into ... + (ssa_propagation_engine::ssa_propagate): ... here. Unify + iteration from CFG and SSA edge worklist so we process + everything in RPO order, prioritizing forward progress + over iteration. + (ssa_prop_init): Allocate new worklists, do not dump + immediate uses. + (ssa_prop_fini): Free new worklists. + +2018-10-05 Richard Biener + + * tree-core.h (tree_block::abstract_flag): Remove. + (tree_block::block_num): Make full 32bits. + * tree.def (BLOCK): Remove docs about BLOCK_ABSTRACT. + * tree.h (BLOCK_ABSTRACT): Remove. + * dwarf2out.c (gen_lexical_block_die): Remove dead code + resulting from BLOCK_ABSTRACT being always false. + (gen_inlined_subroutine_die): Likewise. + (gen_block_die): Likewise. + * tree.c (block_ultimate_origin): Likewise. + * tree-pretty-print.c (dump_block_node): Remove code dealing + with BLOCK_ABSTRACT. + * tree-ssa-live.c (dump_scope_block): Likewise. + * tree-streamer-in.c (unpack_ts_block_value_fields): Likewise. + * tree-streamer-out.c (pack_ts_block_value_fields): Likewise. + +2018-10-05 Richard Biener + + * config/i386/i386.c (ix86_add_stmt_cost): When scalar cost + is asked for initialize mode to the component mode of the + vector type. + +2018-10-05 H.J. Lu + + PR target/87522 + * config/i386/gnu-user.h (ASM_SPEC): Don't pass -msse2avx to + assembler for -mavx. + * config/i386/gnu-user64.h (ASM_SPEC): Likewise. + +2018-10-05 Segher Boessenkool + + PR target/87509 + * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_SET_FPSCR_DRN): Use + RS6000_BTM_DFP. + * config/rs6000/rs6000.md (rs6000_set_fpscr_rn): Require the operand + to be DImode. When using mffscrn, force the operand to a register. + +2018-10-04 Uros Bizjak + + * config/i386/i386.md (*fop__2_i387): Macroize insn + from *fop__2_i387 and *fop_xf_2_i387 using + X87MODEF mode iterator. + (*fop__3_i387): Macroize insn from + *fop__3_i387 and *fop_xf_3_i387 using + X87MODEF mode iterator. + +2018-10-04 Vinay Kumar + + * doc/invoke.texi (-Wno-prio-ctor-dtor): Document new warning + -Wno-prio-ctor-dtor. + +2018-10-04 David Malcolm + + * Makefile.in (OBJS): Add opt-problem.o. + * dump-context.h: Include "selftest.h. + (selftest::temp_dump_context): New forward decl. + (class dump_context): Make friend of class + selftest::temp_dump_context. + (dump_context::dump_loc_immediate): New decl. + (class dump_pretty_printer): Move here from dumpfile.c. + (class temp_dump_context): Move to namespace selftest. + (temp_dump_context::temp_dump_context): Add param + "forcibly_enable_dumping". + (selftest::verify_dumped_text): + (ASSERT_DUMPED_TEXT_EQ): Move here from dumpfile.c. + (selftest::verify_item): + (ASSERT_IS_TEXT): Move here from dumpfile.c. + (ASSERT_IS_TREE): Likewise. + (ASSERT_IS_GIMPLE): Likewise. + * dumpfile.c (dump_context::dump_loc): Move immediate dumping + to... + (dump_context::dump_loc_immediate): ...this new function. + (class dump_pretty_printer): Move to dump-context.h. + (dump_switch_p_1): Don't enable MSG_PRIORITY_REEMITTED. + (opt_info_switch_p_1): Enable MSG_PRIORITY_REEMITTED. + (temp_dump_context::temp_dump_context): Move to "selftest" + namespace. Add param "forcibly_enable_dumping", and use it to + conditionalize the use of m_pp; + (selftest::verify_dumped_text): Make non-static. + (ASSERT_DUMPED_TEXT_EQ): Move to dump-context.h. + (selftest::verify_item): Make non-static. + (ASSERT_IS_TEXT): Move to dump-context.h. + (ASSERT_IS_TREE): Likewise. + (ASSERT_IS_GIMPLE): Likewise. + (selftest::test_capture_of_dump_calls): Pass "true" for new + param of temp_dump_context. + * dumpfile.h (enum dump_flag): Add MSG_PRIORITY_REEMITTED, adding + it to MSG_ALL_PRIORITIES. Update values of TDF_COMPARE_DEBUG and + TDF_COMPARE_DEBUG. + * opt-problem.cc: New file. + * opt-problem.h: New file. + * optinfo-emit-json.cc + (selftest::test_building_json_from_dump_calls): Pass "true" for + new param of temp_dump_context. + * optinfo.cc (optinfo_kind_to_dump_flag): New function. + (optinfo::emit_for_opt_problem): New function. + (optinfo::emit): Clarity which emit_item is used. + * optinfo.h (optinfo::get_dump_location): New accessor. + (optinfo::emit_for_opt_problem): New decl. + (optinfo::emit): Make const. + * selftest-run-tests.c (selftest::run_tests): Call + selftest::opt_problem_cc_tests. + * selftest.h (selftest::opt_problem_cc_tests): New decl. + * tree-data-ref.c (dr_analyze_innermost): Convert return type from + bool to opt_result, converting fprintf messages to + opt_result::failure_at calls. Add "stmt" param for use by the + failure_at calls. + (create_data_ref): Pass "stmt" to the dr_analyze_innermost call. + (runtime_alias_check_p): Convert return type from bool to + opt_result, converting dump_printf calls to + opt_result::failure_at, using the statement DDR_A for their + location. + (find_data_references_in_stmt): Convert return type from bool to + opt_result, converting "return false" to opt_result::failure_at + with a new message. + * tree-data-ref.h: Include "opt-problem.h". + (dr_analyze_innermost): Convert return type from bool to opt_result, + and add a const gimple * param. + (find_data_references_in_stmt): Convert return type from bool to + opt_result. + (runtime_alias_check_p): Likewise. + * tree-predcom.c (find_looparound_phi): Pass "init_stmt" to + dr_analyze_innermost. + * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): + Convert return type from bool to opt_result, adding a message for + the PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS zero case. + (vect_analyze_data_ref_dependence): Convert return type from bool + to opt_result. Change sense of return type from "false" + effectively meaning "no problems" to "false" meaning a problem, + so that "return false" becomes "return opt_result::success". + Convert "return true" calls to opt_result::failure_at, using + the location of statement A rather than vect_location. + (vect_analyze_data_ref_dependences): Convert return type from bool + to opt_result. + (verify_data_ref_alignment): Likewise, converting dump_printf_loc + calls to opt_result::failure_at, using the stmt location rather + than vect_location. + (vect_verify_datarefs_alignment): Convert return type from bool + to opt_result. + (vect_enhance_data_refs_alignment): Likewise. Split local "stat" + into multiple more-tightly-scoped copies. + (vect_analyze_data_refs_alignment): Convert return type from bool + to opt_result. + (vect_analyze_data_ref_accesses): Likewise, converting a + "return false" to a "return opt_result::failure_at", adding a + new message. + (vect_prune_runtime_alias_test_list): Convert return type from + bool to opt_result, converting dump_printf_loc to + opt_result::failure_at. Add a %G to show the pertinent statement, + and use the stmt's location rather than vect_location. + (vect_find_stmt_data_reference): Convert return type from + bool to opt_result, converting dump_printf_loc to + opt_result::failure_at, using stmt's location. + (vect_analyze_data_refs): Convert return type from bool to + opt_result. Convert "return false" to "return + opt_result::failure_at", adding messages as needed. + * tree-vect-loop.c (vect_determine_vf_for_stmt_1): Convert return + type from bool to opt_result. + (vect_determine_vf_for_stmt): Likewise. + (vect_determine_vectorization_factor): Likewise, converting + dump_printf_loc to opt_result::failure_at, using location of phi + rather than vect_location. + (vect_analyze_loop_form_1): Convert return type from bool to + opt_result, converting dump_printf_loc calls, retaining the use of + vect_location. + (vect_analyze_loop_form): Convert return type from loop_vec_info + to opt_loop_vec_info. + (vect_analyze_loop_operations): Convert return type from bool to + opt_result, converting dump_printf_loc calls, using the location + of phi/stmt rather than vect_location where available. Convert + various "return false" to "return opt_result::failure_at" with + "unsupported phi" messages. + (vect_get_datarefs_in_loop): Convert return type from bool to + opt_result. Add a message for the + PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS failure. + (vect_analyze_loop_2): Convert return type from bool to + opt_result. Ensure "ok" is set to a opt_result::failure_at before + each "goto again;", adding new messages where needed. + Add "unsupported grouped {store|load}" messages. + (vect_analyze_loop): Convert return type from loop_vec_info to + opt_loop_vec_info. + * tree-vect-slp.c (vect_analyze_slp): Convert return type from + bool to opt_result. + * tree-vect-stmts.c (process_use): Likewise, converting + dump_printf_loc call and using stmt location, rather than + vect_location. + (vect_mark_stmts_to_be_vectorized): Likeise. + (vect_analyze_stmt): Likewise, adding a %G. + (vect_get_vector_types_for_stmt): Convert return type from bool to + opt_result, converting dump_printf_loc calls and using stmt + location, rather than vect_location. + (vect_get_mask_type_for_stmt): Convert return type from tree to + opt_tree, converting dump_printf_loc calls and using stmt location. + * tree-vectorizer.c: Include "opt-problem.h. + (try_vectorize_loop_1): Flag "Analyzing loop at" dump message as + MSG_PRIORITY_INTERNALS. Convert local "loop_vinfo" from + loop_vec_info to opt_loop_vec_info. If if fails, and dumping is + enabled, use it to report at the top level "couldn't vectorize + loop" followed by the problem. + * tree-vectorizer.h (opt_loop_vec_info): New typedef. + (vect_mark_stmts_to_be_vectorized): Convert return type from bool + to opt_result. + (vect_analyze_stmt): Likewise. + (vect_get_vector_types_for_stmt): Likewise. + (tree vect_get_mask_type_for_stmt): Likewise. + (vect_analyze_data_ref_dependences): Likewise. + (vect_enhance_data_refs_alignment): Likewise. + (vect_analyze_data_refs_alignment): Likewise. + (vect_verify_datarefs_alignment): Likewise. + (vect_analyze_data_ref_accesses): Likewise. + (vect_prune_runtime_alias_test_list): Likewise. + (vect_find_stmt_data_reference): Likewise. + (vect_analyze_data_refs): Likewise. + (vect_analyze_loop): Convert return type from loop_vec_info to + opt_loop_vec_info. + (vect_analyze_loop_form): Likewise. + (vect_analyze_slp): Convert return type from bool to opt_result. + +2018-10-04 David Malcolm + + * doc/invoke.texi (-fopt-info): Document new "internals" + sub-option. + * dump-context.h (dump_context::apply_dump_filter_p): New decl. + * dumpfile.c (dump_options): Update for renaming of MSG_ALL to + MSG_ALL_KINDS. + (optinfo_verbosity_options): Add "internals". + (kind_as_string): Update for renaming of MSG_ALL to MSG_ALL_KINDS. + (dump_context::apply_dump_filter_p): New member function. + (dump_context::dump_loc): Use apply_dump_filter_p rather than + explicitly masking the dump_kind. + (dump_context::begin_scope): Increment the scope depth first. Use + apply_dump_filter_p rather than explicitly masking the dump_kind. + (dump_context::emit_item): Use apply_dump_filter_p rather than + explicitly masking the dump_kind. + (dump_dec): Likewise. + (dump_hex): Likewise. + (dump_switch_p_1): Default to MSG_ALL_PRIORITIES. + (opt_info_switch_p_1): Default to MSG_PRIORITY_USER_FACING. + (opt_info_switch_p): Update handling of default + MSG_OPTIMIZED_LOCATIONS to cope with default of + MSG_PRIORITY_USER_FACING. + (dump_basic_block): Use apply_dump_filter_p rather than explicitly + masking the dump_kind. + (selftest::test_capture_of_dump_calls): Update test_dump_context + instances to use MSG_ALL_KINDS | MSG_PRIORITY_USER_FACING rather + than MSG_ALL. Generalize scope test to be run at all four + combinations of with/without MSG_PRIORITY_USER_FACING and + MSG_PRIORITY_INTERNALS, adding examples of explicit priority + for each of the two values. + * dumpfile.h (enum dump_flag): Add comment about the MSG_* flags. + Rename MSG_ALL to MSG_ALL_KINDS. Add MSG_PRIORITY_USER_FACING, + MSG_PRIORITY_INTERNALS, and MSG_ALL_PRIORITIES, updating the + values for TDF_COMPARE_DEBUG and TDF_ALL_VALUES. + (AUTO_DUMP_SCOPE): Add a note to the comment about the interaction + with MSG_PRIORITY_*. + * tree-vect-loop-manip.c (vect_loop_versioning): Mark versioning + dump messages as MSG_PRIORITY_USER_FACING. + * tree-vectorizer.h (DUMP_VECT_SCOPE): Add a note to the comment + about the interaction with MSG_PRIORITY_*. + +2018-10-04 Bernd Edlinger + + * varasm.c (output_constant): Add new parameter merge_strings. + Make strings properly zero terminated in merge string sections. + (mergeable_string_section): Don't fail if the last char is non-zero. + (assemble_variable_contents): Handle merge string sections. + (assemble_variable): Likewise. + (assemble_constant_contents): Likewise. + (output_constant_def_contents): Likewise. + (output_constructor_array_range, + output_constructor_regular_field): Adjust call to output_constant. + (output_object_block): Adjust call to assemble_constant_contents + and assemble_variable_contents. + +2018-10-04 Martin Liska + + PR c/87483 + * cgraphunit.c (process_function_and_variable_attributes): + Warn about a function with alias attribute and a body. + +2018-10-04 Martin Liska + + PR ipa/82625 + * multiple_target.c (redirect_to_specific_clone): New function. + (ipa_target_clone): Use it. + * tree-inline.c: Fix comment. + +2018-10-04 David Malcolm + + * dumpfile.c (gcc::dump_manager::dump_manager): Initialize new + fields. + (gcc::dump_manager::~dump_manager): Free m_optinfo_filename. + (gcc::dump_manager::register_pass): New member function, adapted + from loop body in gcc::pass_manager::register_pass, adding a + call to update_dfi_for_opt_info. + (gcc::dump_manager::opt_info_enable_passes): Store the + -fopt-info options into the new fields. Move the loop + bodies into... + (gcc::dump_manager::update_dfi_for_opt_info): ...this new member + function. + * dumpfile.h (struct opt_pass): New forward decl. + (gcc::dump_manager::register_pass): New decl. + (gcc::dump_manager::update_dfi_for_opt_info): New decl. + (class gcc::dump_manager): Add fields "m_optgroup_flags", + "m_optinfo_flags", and "m_optinfo_filename". + * passes.c (gcc::pass_manager::register_pass): Move all of the + dump-handling code to gcc::dump_manager::register_pass. + +2018-10-04 Peter Bergner + + PR rtl-optimization/87466 + * target.def (setjmp_preserves_nonvolatile_regs_p): New target hook. + * doc/tm.texi.in (TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P): New hook. + * doc/tm.texi: Regenerate. + * ira-lives.c (process_bb_node_lives): Use the new target hook. + * lra-lives.c (process_bb_lives): Likewise. + * config/rs6000/rs6000.c (TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P): + Define. + +2018-10-04 Tamar Christina + + * params.c (add_params): Fix initialization. + +2018-10-04 Martin Liska + + PR gcov-profile/84107 + * tree-profile.c (init_ic_make_global_vars): + Remove ic_void_ptr_var and ic_gcov_type_ptr_var. + Come up with new ic_tuple* variables. Emit + __gcov_indirect_call{,_topn} variables. + (gimple_gen_ic_profiler): Access the variable + and emit gimple. + (gimple_gen_ic_func_profiler): Access + __gcov_indirect_call.callee field. + (gimple_init_gcov_profiler): Use ptr_type_node. + * value-prof.c (gimple_ic): Use ptr_type_node. + +2018-10-04 Prathamesh Kulkarni + + PR tree-optimization/85787 + * ipa-pure-const.c (malloc_candidate_p_1): Move most of + malloc_candidate_p into this function and add support for + detecting multiple phis. + (DUMP_AND_RETURN): Move from malloc_candidate_p into top-level macro. + +2018-10-04 Martin Liska + + PR ipa/87491 + * ipa-inline.c (inline_to_all_callers_1): + Call ultimate_alias_target for node being inlined. + +2018-10-03 Jeff Law + + * gimple-ssa-sprintf.c (format_string): Do not hardcode size of + target's wchar_t. + * tree.c (get_typenode_from_name): Moved from fortran/trans-types.c. + * tree.h (get_typenode_from_name): Prototype. + +2018-10-03 Uros Bizjak + + * config/i386/i386.md (*cmp__i387): + Change operand 2 predicate to nonimmediate_operand. + (*cmp__cc_i387): Ditto. + +2018-10-03 Martin Sebor + Jeff Law + + * gimple-ssa-sprintf.c (struct fmtresult): Add new member and + initialize it. + (get_string_length): Detect unterminated arrays. + (format_string): Same. + (format_directive): Warn about unterminated arrays. + (handle_gimple_call): Mark statements with no_warning as needed. + +2018-10-03 Jim Wilson + + * config/riscv/riscv-c.c (riscv_cpu_cpp_builtins): For ABI_ILP32E, + also define __riscv_abi_rve. Delete trailing white space. + +2018-10-03 Paul Koning + + Enable LRA register allocator for PDP11. + * config/pdp11/constraints.md (Q): Use define_memory_constraint. + (R): Likewise. + (D): Likewise. + * config/pdp11/pdp11.c (pdp11_lra_p): New function. + * config/pdp11/pdp11.opt (-mlra): New option. + * doc/invoke.texi (PDP-11 Options): Document -mlra. + +2018-10-03 Uros Bizjak + + * config/i386/i386.md (*extendsfdf2): Remove. + (*extendxf2): Ditto. + +2018-10-03 Aldy Hernandez + + PR tree-optimization/87415 + * tree-vrp.c (set_value_range_with_overflow): Special case one bit + precision fields. + +2018-10-02 Jeff Law + + * gimple-fold.c (get_range_strlen): Only set *nonstr when + an unterminated string is discovered. Bubble up range + even for unterminated strings. + (gimple_fold_builtin_strlen): Do not fold if get_range_strlen + indicates the string was not terminated via NONSTR. + +2018-10-03 Aldy Hernandez + + * tree-vrp.c (extract_range_from_unary_expr): Special case all + pointer conversions. + Do not do anything special for anti-ranges. + +2018-10-03 Jérôme Lambourg + + * config/arm/vxworks.h (ARM_TARGET2_DWARF_FORMAT): Adjust to + DW_EH_PE_pcrel | DW_EH_PE_indirect for RTPs. + +2018-10-03 Martin Liska + + PR gcov-profile/86109 + * coverage.c (coverage_begin_function): Do not + mark lambdas as artificial. + * tree-core.h (struct GTY): Remove tm_clone_flag + and introduce new lambda_function. + * tree.h (DECL_LAMBDA_FUNCTION): New macro. + +2018-10-02 Aaron Sawdey + + PR target/87474 + * config/rs6000/rs6000-string.c (expand_strn_compare): Check that both + P8_VECTOR and VSX are enabled. + +2018-10-02 Andreas Krebbel + + * config/s390/driver-native.c (s390_host_detect_local_cpu): Add + 0x3907 as CPU model number. + +2018-10-02 Andreas Krebbel + + * common/config/s390/s390-common.c: Rename PF_ARCH12 to PF_Z14. + * config/s390/s390.h (enum processor_flags): Rename PF_ARCH12 to + PF_Z14. Rename TARGET_CPU_ARCH12 to TARGET_CPU_Z14, + TARGET_CPU_ARCH12_P to TARGET_CPU_Z14_P, TARGET_ARCH12 to + TARGET_Z14, and TARGET_ARCH12_P to TARGET_Z14_P. + * config/s390/s390.md: Likewise. Rename also the cpu attribute + value from arch12 to z14. + +2018-10-02 Uros Bizjak + + * config/i386/i386.md (fxam2_i387_with_temp): Remove. + (isinfxf2): Ditto. + (isinf2): Ditto. + +2018-10-02 Uros Bizjak + + * config/i386/i386.c (ix86_emit_i387_round): Extend op1 to XFmode + before emitting fxam. Perform calculations in XFmode. + +2018-10-02 Marc Glisse + + * match.pd (((X /[ex] A) +- B) * A): New transformation. + +2018-10-02 Marc Glisse + + PR middle-end/87319 + * fold-const.c (fold_plusminus_mult_expr): Handle complex and vectors. + * tree.c (signed_or_unsigned_type_for): Handle complex. + +2018-10-02 Jeff Law + + * gimple-fold.c (get_range_strlen): Remove dead code. + +2018-10-02 Martin Sebor + Jeff Law + + * builtins.c (unterminated_array): Add new arguments. + If argument is not terminated, bubble up size and exact + state to callers. + (expand_builtin_strnlen): Detect, avoid expanding + and diagnose unterminated arrays. + (c_strlen): Fill in offset of start of unterminated strings. + * builtins.h (unterminated_array): Update prototype. + +2018-10-02 Richard Biener + + * config/i386/sse.md (reduc_plus_scal_v4df): Avoid the use + of haddv4df, first reduce to SSE width and exploit the fact + that we only need element zero with the reduction result. + (reduc_plus_scal_v2df): Likewise. + +2018-10-02 Eric Botcazou + + * dojump.h (do_jump): Delete. + (do_jump_1): Likewise. + (split_comparison): Move around. + * dojump.c (do_jump): Make static. + (do_jump_1): Likewise. + (jumpifnot): Move around. + (jumpifnot_1): Likewise. + (jumpif): Likewise. + (jumpif_1): Likewise. + * expr.c (expand_expr_real_1): Call jumpif[not] instead of do_jump. + +2018-10-02 Eric Botcazou + + * reorg.c (make_return_insns): Use emit_copy_of_insn_after for the + insns in the delay slot and add_insn_after for the jump insn. + +2018-10-02 Richard Biener + + * tree-inline.c (expand_call_inline): Use the location of + the callee declaration for the inline-entry marker. + * final.c (notice_source_line): Remove special-casing of + NOTE_INSN_INLINE_ENTRY. + +2018-10-01 Carl Love + + PR 69431 + * config/rs6000/rs6000-builtin.def (__builtin_mffsl): New. + (__builtin_mtfsb0): New. + (__builtin_mtfsb1): New. + ( __builtin_set_fpscr_rn): New. + (__builtin_set_fpscr_drn): New. + * config/rs6000/rs6000.c (rs6000_expand_mtfsb_builtin): Add. + (rs6000_expand_set_fpscr_rn_builtin): Add. + (rs6000_expand_set_fpscr_drn_builtin): Add. + (rs6000_expand_builtin): Add case statement entries for + RS6000_BUILTIN_MTFSB0, RS6000_BUILTIN_MTFSB1, + RS6000_BUILTIN_SET_FPSCR_RN, RS6000_BUILTIN_SET_FPSCR_DRN, + RS6000_BUILTIN_MFFSL. + (rs6000_init_builtins): Add ftype initialization and def_builtin + calls for __builtin_mffsl, __builtin_mtfsb0, __builtin_mtfsb1, + __builtin_set_fpscr_rn, __builtin_set_fpscr_drn. + * config/rs6000.md (rs6000_mtfsb0, rs6000_mtfsb1, rs6000_mffscrn, + rs6000_mffscdrn): Add define_insn. + (rs6000_set_fpscr_rn, rs6000_set_fpscr_drn): Add define_expand. + * doc/extend.texi: Add documentation for the builtins. + +2018-10-01 Richard Biener + + PR tree-optimization/87465 + * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix typo + causing branch miscounts. + +2018-10-01 Tamar Christina + + * common/config/aarch64/aarch64-common.c (TARGET_OPTION_DEFAULT_PARAM, + aarch64_option_default_param): New. + (params.h): Include. + (TARGET_OPTION_VALIDATE_PARAM, aarch64_option_validate_param): New. + * config/aarch64/aarch64.c (aarch64_override_options_internal): Simplify + stack-clash protection validation code. + +2018-10-01 Tamar Christina + + * params.c (validate_param): New. + (add_params): Use it. + (set_param_value): Refactor param validation into validate_param. + (diagnostic.h): Include. + * diagnostic.h (diagnostic_ready_p): New. + +2018-10-01 Tamar Christina + + * params.c (set_param_value): + Add index of parameter being validated. + * common/common-target.def (option_validate_param): New. + * common/common-targhooks.h (default_option_validate_param): New. + * common/common-targhooks.c (default_option_validate_param): New. + * doc/tm.texi.in (TARGET_OPTION_VALIDATE_PARAM): New. + * doc/tm.texi: Regenerate. + +2018-10-01 Tamar Christina + + PR target/86486 + * config/aarch64/aarch64.c (aarch64_override_options_internal): + Add validation for stack-clash parameters and set defaults. + +2018-10-01 Tamar Christina + + PR target/86486 + * configure.ac: Add stack-clash-protection-guard-size. + * doc/install.texi: Document it. + * config.in (DEFAULT_STK_CLASH_GUARD_SIZE): New. + * params.def: Update comment for guard-size. + (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE, + PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Update description. + * configure: Regenerate. + +2018-10-01 Tamar Christina + + PR target/86486 + * config/aarch64/aarch64.h (STACK_CLASH_MIN_BYTES_OUTGOING_ARGS, + STACK_DYNAMIC_OFFSET): New. + * config/aarch64/aarch64.c (aarch64_layout_frame): + Update outgoing args size. + (aarch64_stack_clash_protection_alloca_probe_range, + TARGET_STACK_CLASH_PROTECTION_ALLOCA_PROBE_RANGE): New. + +2018-10-01 Tamar Christina + + PR target/86486 + * explow.c (anti_adjust_stack_and_probe_stack_clash): Support custom + probe ranges. + * target.def (stack_clash_protection_alloca_probe_range): New. + (stack_clash_protection_final_dynamic_probe): Remove. + * targhooks.h (default_stack_clash_protection_alloca_probe_range) New. + (default_stack_clash_protection_final_dynamic_probe): Remove. + * targhooks.c: Likewise. + * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_ALLOCA_PROBE_RANGE): New. + (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE): Remove. + * doc/tm.texi: Regenerate. + +2018-10-01 Tamar Christina + + PR target/86486 + * config/aarch64/aarch64-protos.h (aarch64_output_probe_sve_stack_clash): New. + * config/aarch64/aarch64.c (aarch64_output_probe_sve_stack_clash, + aarch64_clamp_to_uimm12_shift): New. + (aarch64_allocate_and_probe_stack_space): Add SVE specific section. + * config/aarch64/aarch64.md (probe_sve_stack_clash): New. + +2018-10-01 Tamar Christina + + PR target/86486 + * config/aarch64/aarch64.c (aarch64_layout_frame): Add assert. + +2018-10-01 Jeff Law + Richard Sandiford + Tamar Christina + + PR target/86486 + * config/aarch64/aarch64.md + (probe_stack_range): Add k (SP) constraint. + * config/aarch64/aarch64.h (STACK_CLASH_CALLER_GUARD, + STACK_CLASH_MAX_UNROLL_PAGES): New. + * config/aarch64/aarch64.c (aarch64_output_probe_stack_range): Emit + stack probes for stack clash. + (aarch64_allocate_and_probe_stack_space): New. + (aarch64_expand_prologue): Use it. + (aarch64_expand_epilogue): Likewise and update IP regs re-use criteria. + (aarch64_sub_sp): Add emit_move_imm optional param. + +2018-10-01 MCC CS + + PR tree-optimization/87261 + * match.pd: Remove trailing whitespace. + Add (x & y) | ~(x | y) -> ~(x ^ y), + (~x | y) ^ (x ^ y) -> x | ~y and (x ^ y) | ~(x | y) -> ~(x & y) + +2018-10-01 Claudiu Zissulescu + + * config/arc/arc.md (*add_n): Clean up pattern, update instruction + constraints. + (ashlsi3_insn): Update instruction constraints. + (ashrsi3_insn): Likewise. + (rotrsi3): Likewise. + (add_shift): Likewise. + * config/arc/constraints.md (Csz): New 32 bit constraint. It + avoids placing in the limm field small constants which, otherwise, + could end into a small instruction. + +2018-10-01 Claudiu Zissulescu + + * config/arc/arc.md (maddsidi4_split): Don't use dmac if the + destination register is not odd-even. + (umaddsidi4_split): Likewise. + +2018-10-01 Richard Biener + + * tree-inline.c (expand_call_inline): Store origin of fn + in BLOCK_ABSTRACT_ORIGIN for the inline BLOCK. + * tree.c (block_ultimate_origin): Simplify and do some + checking. + +2018-09-30 Uros Bizjak + + * config/i386/mmx.md (EMMS): New int iterator. + (emms): New int attribute. + (mmx_): Macroize insn from *mmx_emms and *mmx_femms using + EMMS int iterator. Explicitly declare clobbers. + (mmx_emms): Remove expander. + (mmx_femms): Ditto. + * config/i386/predicates.md (emms_operation): Remove predicate. + (vzeroall_pattern): New predicate. + (vzeroupper_pattern): Rename from vzeroupper_operation. + * config/i386/i386.c (ix86_avx_u128_mode_after): Use + vzeroupper_pattern and vzeroall_pattern predicates. + +2018-09-30 Peter Bergner + + PR rtl-optimization/86939 + * ira-lives.c (make_hard_regno_born): Rename from this... + (make_hard_regno_live): ... to this. Remove update to conflict + information. Update function comment. + (make_hard_regno_dead): Add conflict information update. Update + function comment. + (make_object_born): Rename from this... + (make_object_live): ... to this. Remove update to conflict information. + Update function comment. + (make_object_dead): Add conflict information update. Update function + comment. + (mark_pseudo_regno_live): Call make_object_live. + (mark_pseudo_regno_subword_live): Likewise. + (mark_hard_reg_dead): Update function comment. + (mark_hard_reg_live): Call make_hard_regno_live. + (process_bb_node_lives): Likewise. + * lra-lives.c (make_hard_regno_born): Rename from this... + (make_hard_regno_live): ... to this. Remove update to conflict + information. Remove now uneeded check_pic_pseudo_p argument. + Update function comment. + (make_hard_regno_dead): Add check_pic_pseudo_p argument and add update + to conflict information. Update function comment. + (mark_pseudo_live): Remove update to conflict information. Update + function comment. + (mark_pseudo_dead): Add conflict information update. + (mark_regno_live): Call make_hard_regno_live. + (mark_regno_dead): Call make_hard_regno_dead with new arguement. + (process_bb_lives): Call make_hard_regno_live and make_hard_regno_dead. + +2018-09-29 H.J. Lu + + PR target/87370 + * config/i386/i386.c (construct_container): Use TImode for + BLKmode values in 2 integer registers. + +2018-09-29 Jeff Law + + * builtins.c (unterminated_array): Pass in c_strlen_data * to + c_strlen rather than just a tree *. + (c_strlen): Change NONSTR argument to a c_strlen_data pointer. + Update recursive calls appropriately. If caller did not provide a + suitable data pointer, create a local one. When a non-terminated + string is discovered, bubble up information about the string via the + c_strlen_data object. + * builtins.h (c_strlen): Update prototype. + (c_strlen_data): New structure. + * gimple-fold.c (get_range_strlen): Update calls to c_strlen. + For a type 2 call, if c_strlen indicates a non-terminated string + use the length of the non-terminated string. + (gimple_fold_builtin_stpcpy): Update calls to c_strlen. + +2018-09-29 Jakub Jelinek + + PR target/87467 + * config/i386/avx512fintrin.h (_mm512_abs_pd, _mm512_mask_abs_pd): Use + __m512d type for __A argument rather than __m512. + +2018-09-28 John David Anglin + + * match.pd (simple_comparison): Don't optimize if either operand is + a function pointer when target needs function pointer canonicalization. + +2018-09-28 Segher Boessenkool + + * config/rs6000/driver-rs6000.c (asm_names): Adjust the entries for + power5 .. power9 to remove indirection. + * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC, ASM_CPU_POWER6_SPEC, + ASM_CPU_POWER7_SPEC, ASM_CPU_POWER8_SPEC, ASM_CPU_POWER9_SPEC, + ASM_CPU_476_SPEC): Delete. + (ASM_CPU_SPEC): Adjust. + (EXTRA_SPECS): Delete asm_cpu_power5, asm_cpu_power6, asm_cpu_power7, + asm_cpu_power8, asm_cpu_power9, asm_cpu_476. + +2018-09-28 Segher Boessenkool + + * config.in: Delete HAVE_AS_DCI. + * config/powerpcspe/powerpcspe.h: Treat HAVE_AS_DCI as always true. + * config/rs6000/rs6000.h: Ditto. + * configure.ac: Delete HAVE_AS_DCI. + * configure: Regenerate. + +2018-09-28 Segher Boessenkool + + * config.in (HAVE_AS_LWSYNC): Delete. + * config/powerpcspe/powerpcspe.h (TARGET_LWSYNC_INSTRUCTION): Delete. + * config/powerpcspe/sync.md (*lwsync): Always generate lwsync, never + do it as a .long . + * config/rs6000/rs6000.h (TARGET_LWSYNC_INSTRUCTION): Delete. + * config/rs6000/sync.md (*lwsync): Always generate lwsync, never do it + as a .long . + * configure.ac: Delete HAVE_AS_LWSYNC. + * configure: Regenerate. + +2018-09-28 Eric Botcazou + Pierre-Marie de Rodat + + * calls.c (expand_call): Try to do a tail call for thunks at -O0 too. + * cgraph.h (struct cgraph_thunk_info): Add indirect_offset. + (cgraph_node::create_thunk): Add indirect_offset parameter. + (thunk_adjust): Likewise. + * cgraph.c (cgraph_node::create_thunk): Add indirect_offset parameter + and initialize the corresponding field with it. + (cgraph_node::dump): Dump indirect_offset field. + * cgraphclones.c (duplicate_thunk_for_node): Deal with indirect_offset. + * cgraphunit.c (cgraph_node::analyze): Be prepared for external thunks. + (thunk_adjust): Add indirect_offset parameter and deal with it. + (cgraph_node::expand_thunk): Deal with the indirect_offset field and + pass it to thunk_adjust. Do not call the target hook if it's non-zero + or if the thunk is external or local. Fix formatting. Do not chain + the RESULT_DECL to BLOCK_VARS. Pass the static chain to the target, + if any, in the GIMPLE representation. + * ipa-icf.c (sem_function::equals_wpa): Deal with indirect_offset. + * lto-cgraph.c (lto_output_node): Write indirect_offset field. + (input_node): Read indirect_offset field. + * tree-inline.c (expand_call_inline): Pass indirect_offset field in the + call to thunk_adjust. + * tree-nested.c (struct nesting_info): Add thunk_p field. + (create_nesting_tree): Set it. + (convert_all_function_calls): Copy static chain from targets to thunks. + (finalize_nesting_tree_1): Return early for thunks. + (unnest_nesting_tree_1): Do not finalize thunks. + (gimplify_all_functions): Do not gimplify thunks. + +2018-09-28 David Malcolm + + * opt-suggestions.c (option_proposer::build_option_suggestions): + Release "option_values". + +2018-09-28 David Malcolm + + * coverage.c (get_coverage_counts): Convert problem-reporting dump + messages from MSG_OPTIMIZED_LOCATIONS to MSG_MISSED_OPTIMIZATION. + * dumpfile.c (kind_as_string): New function. + (dump_loc): Rather than a hardcoded prefix of "note: ", use + kind_as_string to vary the prefix based on dump_kind. + (selftest::test_capture_of_dump_calls): Update for above. + +2018-09-28 Uros Bizjak + + * config/i386/i386.h (SSE_REGNO): Fix check for FIRST_REX_SSE_REG. + (GET_SSE_REGNO): Rename from SSE_REGNO. Update all uses for rename. + +2018-09-28 Uros Bizjak + + * config/i386/i386.h (CC_REGNO): Remove FPSR_REG. + * config/i386/i386.c (ix86_fixed_condition_code_regs): Use + INVALID_REGNUM instead of FPSR_REG. + (ix86_md_asm_adjust): Do not clobber FPSR_REG. + * config/i386/i386.md: Update comment of FP compares. + (fldenv): Do not clobber FPSR_REG. + +2018-09-28 Richard Biener + + * tree.h (BLOCK_ORIGIN): New. + * omp-expand.c (grid_expand_target_grid_body): Assign + BLOCK_ORIGIN to BLOCK_ABSTRACT_ORIGIN. + * tree-inline.c (remap_block): Likewise. + * auto-profile.c (get_function_decl_from_block): Simplify + by eliding the BLOCK_ABSTRACT_ORIGIN chasing. + * langhooks.c (lhd_print_error_function): Likewise. + * optinfo-emit-json.cc (optrecord_json_writer::inlining_chain_to): + Likewise. + * tree-ssa-live.c (remove_unused_scope_block_p): Likewise. + * tree.c (block_nonartificial_location): Likewise. + (block_ultimate_origin): Likewise. + * tree-pretty-print.c (percent_K_format): Likewise. Remove + no longer needed LTO case. + +2018-09-28 Andrew Stubbs + Jan Hubicka + Martin Jambor + + * simplify-rtx.c (simplify_merge_mask): New function. + (simplify_ternary_operation): Use it, also see if VEC_MERGEs with the + same masks are used in op1 or op2. + (test_vec_merge): New function. + (test_vector_ops): Call test_vec_merge. + +2018-09-28 Eric Botcazou + + * config/sparc/sparc-protos.h (sparc_branch_cost): Declare. + * config/sparc/sparc.h (BRANCH_COST): Call sparc_branch_cost. + * config/sparc/sparc.c (struct processor_costs): Add branch_cost field. + (cypress_costs): Set it. + (supersparc_costs): Likewise. + (hypersparc_costs): Likewise. + (leon_cost): Likewise. + (leon3_costs): Likewise. + (sparclet_costs): Likewise. + (ultrasparc_costs): Likewise. + (ultrasparc_costs): Likewise. + (niagara_costs): Likewise. + (niagara2_costs): Likewise. + (niagara3_costs): Likewise. + (niagara4_costs): Likewise. + (niagara7_costs): Likewise. + (m8_costs): Likewise. + (TARGET_CAN_FOLLOW_JUMP): Define. + (pass_work_around_errata::gate): Minor tweak. + (sparc_option_override): Remove MASK_FSMULD mask for V7 processors. + Do not set both MASK_VIS4 and MASK_VIS4B for M8 processor. + Automaitcally clear MASK_FSMULD mask for V7 processors. + (sparc_can_follow_jump): New static function. + (output_ubranch): Deal with CROSSING_JUMP_P. + (sparc_use_sched_lookahead): Rewrite using switch statement. + (sparc_issue_rate): Reorder. + (sparc_branch_cost): New function. + +2018-09-27 Martin Sebor + + * tree.h (tree_to_shwi): Add attribute nonnull and pure. + (tree_to_poly_int64, tree_to_uhwi, tree_to_poly_uint64): Same. + (int_fits_type_p): Same. + +2018-09-27 Uros Bizjak + + * config/i386/i386.md (FPCR_REG): Remove. + (UNSPEC_FLDCW): Remove. + (x86_fnstcw_1): Use (const_int 0) instead of FPCR_REG. + (x86_fldcw_1): Remove insn pattern. + (fnstenv): Do not clobber FPCR_REG. + (fldenv): Ditto. + * config/i386/i386.h (FIXED_REGISTERS) Remove fpsr register. + (CALL_USED_REGISTERS): Ditto. + (REG_ALLOC_ORDER): Ditto. + (REG_CLASS_CONTENTS): Ditto. + (HI_REGISTER_NAMES): Ditto. + (ADDITIONAL_REGISTER_NAMES): Use defines instead + of numerical constants. + * config/i386/i386.c (regclass_map): Remove fpsr register. + (dbx_register_map): Ditto. + (dbx64_register_map): Ditto. + (svr4_dbx_register_map): Ditto. + (print_reg): Do not handle FPCR_REG. + +2018-09-27 Segher Boessenkool + + PR target/87149 + * config.in (HAVE_AS_CMPB, HAVE_AS_DFP, HAVE_AS_FPRND, HAVE_AS_MFPGPR, + HAVE_AS_POPCNTB, HAVE_AS_POPCNTD, HAVE_AS_POWER8, HAVE_AS_POWER9): + Delete, always treat as true. + * config/powerpcspe/powerpcspe.c (rs6000_option_override_internal): + Ditto. Simplify remaining code. + * config/powerpcspe/powerpcspe.h: Ditto. + * config/rs6000/rs6000.c (rs6000_option_override_internal): Ditto. + Simplify remaining code. + (rs6000_expand_builtin): Ditto. + * config/rs6000/rs6000.h: Ditto. + * configure.ac: Ditto. + * configure: Regenerate. + +2018-09-27 Martin Liska + + * coverage.c (get_coverage_counts): Revert the formatting + of missing profile opt info. + +2018-09-27 Richard Biener + + PR debug/37801 + PR debug/87440 + * dwarf2out.c (set_block_origin_self): Do not mark outermost + block as we do not output that. + (gen_inlined_subroutine_die): Elide the originally outermost + block, matching what we do for concrete instances. + (decls_for_scope): Add parameter specifying whether to recurse + to subblocks. + +2018-09-27 Andrew Stubbs + Tom de Vries + + PR 82089 + + * expmed.c (emit_cstore): Fix handling of result_mode == BImode and + STORE_FLAG_VALUE == 1. + +2018-09-27 Andreas Krebbel + + * config/s390/s390.md (PPA_TX_ABORT, PPA_OOO_BARRIER): New + constant definitions. + ("tx_assist"): Replace magic number with PPA_TX_ABORT. + ("*ppa"): Enable pattern also for -march=zEC12 -mno-htm. + ("speculation_barrier"): New expander definition. + +2018-09-26 Indu Bhagat + + PR gcov-profile/86957 + * common.opt: New warning option -Wmissing-profile. + * coverage.c (get_coverage_counts): Add warning for missing .gcda file. + * doc/invoke.texi: Document -Wmissing-profile. + +2018-09-26 Jim Wilson + + * config/riscv/riscv.md (subsi3_extended2): Add J constraint. + (negdi2, negsi2, negsi2_extended, negsi2_extended2): New. + +2018-09-26 Martin Sebor + + * tree.c (zerop): Change return type to bool. + (integer_zerop, integer_onep, integer_each_onep): Same. + (integer_all_onesp, integer_minus_onep, integer_pow2p): Same. + (integer_nonzerop, integer_truep, tree_ctz, real_zerop): Same. + (real_onep, real_minus_onep, chain_index): Same. + (print_type_hash_statistics, type_list_equal): Same. + * tree.h (zerop): Same. + (zerop, integer_zerop, integer_onep, integer_each_onep): Same. + (integer_all_onesp, integer_minus_onep, integer_pow2p): Same. + (integer_nonzerop, integer_truep, tree_ctz, real_zerop): Same. + (real_onep, real_minus_onep, chain_index): Same. + (print_type_hash_statistics, type_list_equal): Same. + +2018-09-26 Jim Wilson + + * config/riscv/riscv.h (FUNCTION_ARG_REGNO_P): Fix comment. + +2018-09-26 Jakub Jelinek + + PR target/87414 + * config/i386/i386.c: Include debug.h and dwarf2out.h. + (output_indirect_thunk): Emit DW_CFA_def_cfa_offset after the + call. + +2018-09-25 Andrew Stubbs + + * builtins.c (get_builtin_sync_mem): Force address mode conversion. + +2018-09-26 Uros Bizjak + + * config/i386/i386.h (enum reg_class): Remove FP_TOP_SSE_REGS + and FP_SECOND_SSE_REGS. + (REG_CLASS_NAMES): Ditto. + (REG_CLASS_CONTENTS): Ditto. + * config/i386/i386.c (ix86_preferred_reload_class) Do not handle + FP_TOP_SSE_REGS and FP_SECOND_SSE_REGS classes. + (ix86_preferred_output_reload_class): Ditto. + * config/i386/i386.md (fix_trunc_i387_fisttp): Change "=&1f" + clobber constraint to "=&f". + (fix_truncdi_i387): Ditto. + (lrintxfdi2): Ditto. + (fistdi2_): Ditto. + (fpremxf4_i387): Change "=u" constraint to "=f". + (fprem1xf4_i387): Ditto. + (sincosxf3): Ditto. + (fptanxf4_i387): Ditto. + (fxtractxf3_i387): Ditto. + (fscalexf4_i387): Ditto. + (atan2xf3): Change "u" constraint to "f". + (fyl2xxf3_i387): Ditto. + (fyl2xp1xf3_i387): Ditto. + +2018-09-26 Uros Bizjak + + PR target/87439 + * config/i386/i386.h (NUM_MODES_FOR_MODE_SWITCHING): Update + for removed I387_MASK_PM entity. + + +2018-09-26 Jeff Law + Revert + 2018-09-26 Alexey Neyman + + * graphite.h: Include and ; these + headers are no longer pulled in by . + +2018-09-26 Richard Biener + + PR debug/87443 + * dwarf2out.c (gen_lexical_block_die): Do not equate inline + or concrete instance DIE to the tree. Create abstract origin + attributes also for concrete instances. + +2018-09-26 Alexey Neyman + + * graphite.h: Include and ; these + headers are no longer pulled in by . + +2018-09-26 Matthew Malcomson + + * config/arm/arm.c (arm_split_compare_and_swap, arm_split_atomic_op): + Use new helper functions. + * config/arm/sync.md (atomic_load, atomic_store): + Use new helper functions. + * config/arm/aarch-common-protos.h (aarch_mm_needs_acquire, + aarch_mm_needs_release): New declarations. + * config/arm/aarch-common.c (aarch_mm_needs_acquire, + aarch_mm_needs_release): New. + +2018-09-26 Eric Botcazou + + * config/arm/arm.c (arm_reorg): Skip Thumb reorg pass for thunks. + (arm32_output_mi_thunk): Deal with long calls. + +2018-09-26 Richard Biener + + PR debug/87428 + PR debug/87362 + * tree-inline.c (expand_call_inline): When the location + of the call is UNKNOWN_LOCATION use DECL_SOURCE_LOCATION + or BUILTINS_LOCATION for the BLOCK_SOURCE_LOCATION of + the inserted BLOCK to make inlined_function_outer_scope_p + recognize it. + * dwarf2out.c (add_call_src_coords_attributes): Do not add + coords for reserved locations. + +2018-09-25 Segher Boessenkool + + * config/rs6000/rs6000.md (*movcc_internal1): Use set_attr_alternative. + (*call_indirect_nonlocal_sysv): Ditto. + (*call_value_indirect_nonlocal_sysv): Ditto. + (*sibcall_nonlocal_sysv): Ditto. + (*sibcall_value_nonlocal_sysv): Ditto. + (_): Ditto. + (tf_): Ditto. + +2018-09-25 Segher Boessenkool + + * config/rs6000/altivec.md (*altivec_mov): Write the output + control string as a list of templates instead of as C code. + (*altivec_movti): Ditto. + * config/rs6000/darwin.md (movdf_low_di): Ditto. + +2018-09-25 Jim Wilson + + * config/riscv/riscv.c (riscv_split_symbol): Mark auipc label as weak + when target symbol is weak. + +2018-09-25 Bernd Edlinger + + PR c/87387 + * builtins.c (unterminated_array): Simplify. + * expr.c (string_constant): Handle SSA_NAME. Add more exceptions + where pointer arithmetic is safe. + +2018-09-25 Segher Boessenkool + + PR target/86987 + * config/rs6000/altivec.md (altivec_vspltb): Use + const_0_to_15_operand instead of u5bit_cint_operand. + (*altivec_vspltb_internal): Ditto. + (altivec_vspltb_direct): Ditto. + (altivec_vsplth): Use const_0_to_7_operand instead of + u5bit_cint_operand. + (*altivec_vsplth_internal): Ditto. + (altivec_vsplth_direct): Ditto. + (altivec_vspltw): Use const_0_to_3_operand instead of + u5bit_cint_operand. + (*altivec_vspltw_internal): Ditto. + (altivec_vspltw_direct): Ditto. + (altivec_vspltsf): Ditto. + (*altivec_vspltsf_internal): Ditto. + * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Handle the + various splats with the proper size immediate. Reorder the various + cases by ascending size of immediate, and put all such together. + +2018-09-25 Richard Biener + + PR debug/83941 + * dwarf2out.c (add_AT_external_die_ref): Remove now redundant + GC-ification. + (maybe_create_die_with_external_ref): Do not create + DW_TAG_imported_unit here. + (add_abstract_origin_attribute): Handle external BLOCK refs. + (dwarf2out_abstract_function): Simplify LTO case. + (dwarf2out_early_finish): Create DW_TAG_imported_unit explicitely + rather than using maybe_create_die_with_external_ref. + +2018-09-25 Uros Bizjak + + PR target/71278 + * config/i386/i386.md (frndintxf2_mask_pm): Remove. + (frndintxf2_mask_pm_i387): Ditto. + (nearbyintxf2): Rewrite expander pattern to match rintxf2. + Enable for !flag_trapping_math. + (nearbyint2): Enable x87 modes for !flag_trapping_math. + Enable SSE modes for TARGET_SSE4_1 and expand them with round insn. + Change operand 1 predicate to nonimmediate_operand. + (attr "i387_cw"): Remove mask_pm. + * config/i386/i386.h (enum ix86_stack_slot): Remove SLOT_CW_MASK_PM. + (enum ix86_entity): Remove I387_MASK_PM. + * config/i386/i386.c (ix86_i387_mode_needed): Do not + handle I387_MASK_PM. + (ix86_mode_needed): Ditto. + (ix86_mode_after): Ditto. + (ix86_mode_entry): Ditto. + (ix86_mode_exit): Ditto. + (emit_i387_cw_initialization): Do not handle I387_CW_MASK_PM. + +2018-09-25 Jakub Jelinek + + * vr-values.c (vr_values::vr_values): Initialize to_remove_edges and + to_update_switch_stmts to vNULL instead of calling create on them + immediately. + +2018-09-25 Richard Biener + + PR tree-optimization/87402 + * tree-ssa-sccvn.c (SSA_VISITED): Remove unused function. + (visit_phi): Re-instantiate handling of supposed to be VARYING + but non-VARYING backedge value. + +2018-09-25 Richard Biener + + PR debug/83941 + * dwarf2out.c (struct sym_off_pair): New. + (external_die_map): New global. + (lookup_decl_die): When in LTO create DIEs lazily from the + external_die_map. + (lookup_block_die): New function, create DIEs lazily in LTO. + (equate_block_to_die): New function. + (dwarf2out_die_ref_for_decl): During WPA get the association + from the external DIE map. + (dwarf2out_register_external_die): Record mapping into the + external DIE map. + (maybe_create_die_with_external_ref): New function split out from + DIE generation part of old dwarf2out_register_external_die. + (add_abstract_origin_attribute): Do not return the DIE. When + in LTO reference externals directly. + (dwarf2out_abstract_function): When in LTO ignore calls for + decls with external DIEs (already present abstract instances). + (gen_call_site_die): Adjust. + (add_high_low_attributes): Likewise. + (gen_lexical_block_die): Likewise. + (gen_inlined_subroutine_die): Likewie. + (gen_block_die): Likewise. + (dwarf2out_inline_entry): Likewise. + (dwarf2out_early_finish): In LTRANS phase create DW_TAG_imported_unit + DIEs. + +2018-09-25 Martin Liska + + * ipa-fnsummary.c (estimate_node_size_and_time): Scale by two + integers and not by a float value. + +2018-09-25 Martin Liska + + PR fortran/87394 + * dbgcnt.c (dbg_cnt_process_single_pair): Return false + instead of NULL. + * dumpfile.c (dump_enable_all): Remove extra parenthesis. + * gcov-tool.c: Declare the function with ATTRIBUTE_NORETURN. + * godump.c (go_format_type): Remove extra parenthesis. + +2018-09-25 Martin Liska + + * alias.c (set_dest_equal_p): Remove unused function. + * config/i386/i386.c (def_builtin_pure2): Likewise. + * diagnostic-show-locus.c (class layout): Remove + unused field. + (layout::layout): Likewise here. + * dump-context.h (class temp_dump_context): Likewise. + * dwarf2out.c (add_AT_fde_ref): Remove unused function. + (add_AT_loclistsptr): Likewise. + (add_AT_offset): Likewise. + (get_AT_hi_pc): Likewise. + (is_comdat_die): Likewise. + (type_is_enum): Likewise. + (ceiling): Likewise. + (add_AT_vms_delta): Likewise. + (is_class_die): Likewise. + * edit-context.c (class line_event): Remove unused field. + * graphite-sese-to-poly.c (tree_int_to_gmp): Remove + unused function. + * ipa-cp.c (ipa_get_vr_lat): Likewise. + * lra-constraints.c (ok_for_index_p_nonstrict): Likewise. + (ok_for_base_p_nonstrict): Likewise. + * tree-chrec.c (is_not_constant_evolution): Likewise. + (chrec_fold_poly_cst): Likewise. + * tree-if-conv.c (has_pred_critical_p): Likewise. + * tree-ssa-coalesce.c (print_exprs): Likewise. + * tree-ssa-pre.c (bitmap_set_contains_expr): Likewise. + * tree-ssa-uninit.c (is_and_or_or_p): Likewise. + * tree-vrp.c (value_ranges_intersect_p): Likewise. + (value_range_nonnegative_p): Likewise. + +2018-09-25 Martin Liska + + * config/powerpcspe/powerpcspe.c (rs6000_output_function_epilogue): + Do not handle "GNU Pascal". + * config/rs6000/rs6000.c (rs6000_output_function_epilogue): + Likewise. + * config/sparc/sparc.c (sparc_pass_by_reference): Remove Pascal + from documentation. Likewise. + * dbxout.c (dbxout_range_type): Likewise. + * doc/cpp.texi: Likewise. + * doc/extend.texi: Likewise. + * doc/frontends.texi: Likewise. + * doc/invoke.texi: Remove Pascal entry. + * tree.def (CLEANUP_POINT_EXPR): Likewise. + * doc/rtl.texi (MODE_FUNCTION): Remove not used entry. + +2018-09-25 Martin Liska + + PR middle-end/86078 + * doc/invoke.texi: Document all parameters and remove default + of the parameters. + +2018-09-25 Ilya Leoshkevich + + PR bootstrap/87417 + * rtl.c (rtx_code_size): Take into account that EQ_ATTR_ALT + contains HOST_WIDE_INTs when computing its size. + +2018-09-24 Jim Wilson + + PR target/87391 + * config/riscv/riscv.h (STACK_BOUNDARY): Test riscv_abi == ABI_ILP32E + not TARGET_RVE. + (ABI_STACK_BOUNDARY, MAX_ARGS_IN_REGISTERS): Likewise. + +2018-09-24 Andrew Pinski + + * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Don't + access prev before checking it for NULLness in the + AARCH64_FUSE_CMP_BRANCH case. + +2018-09-24 H.J. Lu + + PR target/82699 + * config/i386/i386.c (rest_of_insert_endbranch): Set + endbr_queued_at_entrance to true and don't insert ENDBR if + x86_function_profiler will be called. + (x86_function_profiler): Insert ENDBR if endbr_queued_at_entrance + is true. + * config/i386/i386.h (machine_function): Add + endbr_queued_at_entrance. + +2018-09-24 Ilya Leoshkevich + + * genattrtab.c (mk_attr_alt): Use alternative_mask. + (attr_rtx_1): Adjust caching to match the new EQ_ATTR_ALT field + types. + (check_attr_test): Use alternative_mask. + (get_attr_value): Likewise. + (compute_alternative_mask): Use alternative_mask and XWINT. + (make_alternative_compare): Use alternative_mask. + (attr_alt_subset_p): Use XWINT. + (attr_alt_subset_of_compl_p): Likewise. + (attr_alt_intersection): Use alternative_mask and XWINT. + (attr_alt_union): Likewise. + (attr_alt_complement): Use HOST_WIDE_INT and XWINT. + (mk_attr_alt): Use alternative_mask and HOST_WIDE_INT. + (simplify_test_exp): Use alternative_mask and XWINT. + (write_test_expr): Use alternative_mask and XWINT, adjust bit + number calculation to support 64 bits. Generate code that + checks 64-bit masks. + (main): Use alternative_mask. + * rtl.def (EQ_ATTR_ALT): Change field types from ii to ww. + +2018-09-24 Ilya Leoshkevich + + PR target/80080 + * config/s390/s390.c (s390_emit_epilogue): Do not use PARALLEL + RETURN+USE when returning via %r14. + +2018-09-24 Martin Liska + + * gcov.c (output_lines): Print colorization legend + for both flag_use_colors and flag_use_hotness_colors. + Reword the help. + +2018-09-24 Martin Liska + + * coverage.c (get_coverage_counts): Use warning_at + with current_function_decl location. Use %qD in warning + message. + +2018-09-24 Martin Liska + + * memory-block.h (memory_block_pool::release): Annotate with + valgrind that the memory is not accessible. + +2018-09-24 Martin Liska + + PR sanitizer/85774 + * asan.c: Make asan_handled_variables extern. + * asan.h: Likewise. + * cfgexpand.c (expand_stack_vars): Make sure + a representative is unpoison if another + variable in the partition is handled by + use-after-scope sanitization. + +2018-09-24 Richard Biener + + PR tree-optimization/63155 + * tree-ssa-propagate.c (add_ssa_edge): Avoid adding PHIs to + the worklist when the edge of the respective argument isn't + executable. + +2018-09-23 Uros Bizjak + + * config/i386/i386.h (enum reg_class): Rename MASK_REGS to + ALL_MASK_REGS and MASK_EVEX_REGS to MASK_REGS. + (MASK_CLASS_P): Update for rename. + (MAYBE_MASK_CLASS_P): Ditto. + (REG_CLASS_NAMES): Update. + (REG_CLASS_CONTENT): Update. + * config/i386/i386.c (regclass_map): Update for MASK_REG + and ALL_MASK_REGS rename. + * config/i386/constraints.md (Yk): Update for rename. + (k): Ditto. + +2018-09-23 Uros Bizjak + + * config/i386/i386.h (enum reg_class): Remove + EVEX_SSE_REGS and MOD4_SSE_REGS. + (REG_CLASS_NAMES): Update. + (REG_CLASS_CONTENT): Update. + * config/i386/i386.c (regclass_map): Declare AVX-512 SSE + registers as ALL_SSE_REGS. + (ix86_additional_allocno_class_p): Remove. + (TARGET_ADDITIONAL_ALLOCNO_CLASS_P): Remove. + (ix86_register_priority): Lower priority of EVEX SSE registers. + Use IN_RANGE macro where appropriate. + (ix86_hard_regno_mode_ok): Merge AVX-5124FMAPS and + AVX-5124VNNIW checks. + (ix86_modes_tieable_p): Tie 512-bit SSE modes. + * config/i386/sse.md (avx5124fmaddps_4fmaddps) + (avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddps_maskz) + (avx5124fmaddps_4fmaddss, avx5124fmaddps_4fmaddss_mask) + (avx5124fmaddps_4fmaddss_maskz, avx5124fmaddps_4fnmaddps) + (avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddps_maskz) + (avx5124fmaddps_4fnmaddss, avx5124fmaddps_4fnmaddss_mask) + (avx5124fmaddps_4fnmaddss_maskz, avx5124vnniw_vp4dpwssd) + (avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssd_maskz) + (avx5124vnniw_vp4dpwssds, avx5124vnniw_vp4dpwssds_mask) + (avx5124vnniw_vp4dpwssds_maskz): Use "v" instead of "Yh" constraint. + * config/i386/constraints.md (Yh): Remove. + +2018-09-23 Uros Bizjak + + * config/i386/i386.c (regclass_map): Declare integer REX registers + as GENERAL_REGS. + +2018-09-23 Gerald Pfeifer + + * doc/service.texi (Service): Switch the fsf.org link to https. + +2018-09-22 Chung-Ju Wu + + PR target/86798 + * config/nds32/nds32.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): + Define to speculation_safe_value_not_needed. + +2018-09-21 Florian Weimer + + PR middle-end/81035 + * doc/extend.texi (Common Function Attributes): Mention that + noreturn suppresses tail call optimization. + +2018-09-21 Jeff Law + + * gimple-ssa-evrp.c (evrp_dom_walker::cleanup): Call + vr_values::cleanup_edges_and_switches. + * tree-vrp.c (to_remove_edges, to_update_switch_stmts): Moved into + vr_values class. + (identify_jump_threads): Remove EDGE_IGNORE handling. + (execute_vrp): Move handling of to_remove_edges and + to_update_switch_stmts into vr_values class member functions. + * tree-vrp.h (switch_update, to_remove_edges): Remove declarations. + (to_update_switch_stmts): Likewise. + * vr-values.c: Include cfghooks.h. + (vr_values::vr_values): Initialize to_remove_edges and + to_update_switch_stmts. + (vr_values::~vr_values): Verify to_remove_edges and + to_update_switch_stmts are empty. + (vr_values::simplify_switch_using_ranges): Set EDGE_IGNORE as needed. + (vr_values::cleanup_edges_and_switches): New member function. + * vr-values.h (vr_values): Add cleanup_edges_and_switches member + function. Add new data members. + +2018-09-21 David Malcolm + + PR tree-optimization/87309 + * dumpfile.c (dump_context::begin_scope): Filter the dump_loc + calls with pflags and alt_flags. + (selftest::test_capture_of_dump_calls): Add test of interaction of + MSG_OPTIMIZED_LOCATIONS with AUTO_DUMP_SCOPE. + +2018-09-21 Olivier Hainque + + * config.gcc: Factorize and comment inclusion of vxworks-dummy.h. + +2018-09-21 Olivier Hainque + + * config/vxworks.h (CLEAR_INSN_CACHE): #define to 1. + +2018-09-21 Olivier Hainque + + * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Remove -lc_internal. + Merge block comment with the one ahead of VXWORKS_LIBS_RTP. Then: + (VXWORKS_LIBS_RTP): Minor reordering. + +2018-09-21 Olivier Hainque + + * config/vxworks.h (STARTFILE_PREFIX_SPEC): Define. + (VXWORKS_LIBS_DIR_RTP): Remove definition and use. + +2018-09-21 Olivier Hainque + + * config/vxworks.h (SIZE_TYPE): Account for TARGET_VXWORKS64. + (PTRDIFF_TYPE): Likewise. + +2018-09-21 Olivier Hainque + + * config.gcc: Enforce def of TARGET_VXWORKS64 to 1 from + triplet, similar to support for VxWorks7. + * config/vxworks-dummy.h: Provide a default definition + of TARGET_VXWORKS64 to 0. + +2018-09-21 Olivier Hainque + + * config/vxworks.h (TARGET_VXWORKS7): Move default definition ... + * config/vxworks-dummy.h: here. + +2018-09-21 Olivier Hainque + + * config.gcc: Prepend vxworks-dummy.h to tm_file for powerpc* + +2018-09-21 Shaokun Zhang + Bo Zhou + + * config/aarch64/aarch64-cores.def (tsv110): New CPU. + * config/aarch64/aarch64-tune.md: Regenerated. + * doc/invoke.texi (AArch64 Options/-mtune): Add "tsv110". + * config/aarch64/aarch64.c (tsv110_tunings): New tuning table. + * config/aarch64/aarch64-cost-tables.h: Add "tsv110" extra costs. + +2018-09-21 Andrew Stubbs + Julian Brown + + * builtins.c (get_builtin_sync_mem): Handle address spaces. + +2018-09-21 Eric Botcazou + + * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Return false + if the call takes a static chain. + +2018-09-21 Martin Liska + + * auto-profile.c (autofdo_source_profile::read): Do not + set sum_all. + (read_profile): Do not add working sets. + (read_autofdo_file): Remove sum_all. + (afdo_callsite_hot_enough_for_early_inline): Remove const + qualifier. + * coverage.c (struct counts_entry): Remove gcov_summary. + (read_counts_file): Read new GCOV_TAG_OBJECT_SUMMARY, + do not support GCOV_TAG_PROGRAM_SUMMARY. + (get_coverage_counts): Remove summary and expected + arguments. + * coverage.h (get_coverage_counts): Likewise. + * doc/gcov-dump.texi: Remove -w option. + * gcov-dump.c (dump_working_sets): Remove. + (main): Do not support '-w' option. + (print_usage): Likewise. + (tag_summary): Likewise. + * gcov-io.c (gcov_write_summary): Do not dump + histogram. + (gcov_read_summary): Likewise. + (gcov_histo_index): Remove. + (gcov_histogram_merge): Likewise. + (compute_working_sets): Likewise. + * gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Mark + it not obsolete. + (GCOV_TAG_PROGRAM_SUMMARY): Mark it obsolete. + (GCOV_TAG_SUMMARY_LENGTH): Adjust. + (GCOV_HISTOGRAM_SIZE): Remove. + (GCOV_HISTOGRAM_BITVECTOR_SIZE): Likewise. + (struct gcov_summary): Simplify rapidly just + to runs and sum_max fields. + (gcov_histo_index): Remove. + (NUM_GCOV_WORKING_SETS): Likewise. + (compute_working_sets): Likewise. + * gcov-tool.c (print_overlap_usage_message): Remove + trailing empty line. + * gcov.c (read_count_file): Read GCOV_TAG_OBJECT_SUMMARY. + (output_lines): Remove program related line. + * ipa-profile.c (ipa_profile): Do not consider GCOV histogram. + * lto-cgraph.c (output_profile_summary): Do not stream GCOV + histogram. + (input_profile_summary): Do not read it. + (merge_profile_summaries): And do not merge it. + (input_symtab): Do not call removed function. + * modulo-sched.c (sms_schedule): Do not print sum_max. + * params.def (HOT_BB_COUNT_FRACTION): Reincarnate param that was + removed when histogram method was invented. + (HOT_BB_COUNT_WS_PERMILLE): Mention that it's used only in LTO + mode. + * postreload-gcse.c (eliminate_partially_redundant_load): Fix + GCOV coding style. + * predict.c (get_hot_bb_threshold): Use HOT_BB_COUNT_FRACTION + and dump selected value. + * profile.c (add_working_set): Remove. + (get_working_sets): Likewise. + (find_working_set): Likewise. + (get_exec_counts): Do not work with working sets. + (read_profile_edge_counts): Do not inform as sum_max is removed. + (compute_branch_probabilities): Likewise. + (compute_value_histograms): Remove argument for call of + get_coverage_counts. + * profile.h: Do not make gcov_summary const. + +2018-09-21 Monk Chiang + + * config.gcc (nds32*-*-*): Set TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0. + +2018-09-21 Eric Botcazou + + PR tree-optimization/86990 + * gimple-ssa-store-merging.c (imm_store_chain_info:coalesce_immediate): + Check that the entire merged store group is made of constants only for + overlapping stores. + +2018-09-20 Allan Sandfeld Jensen + + * gcc.c (LINK_COMMAND_SPEC): Handle -r like -nostdlib. + (VTABLE_VERIFICATION_SPEC): Likewise. + (SANITIZER_EARLY_SPEC): Likewise. + (SANITIZER_SPEC): Likewise. + * config/darwin.h (LINK_COMMAND_SPEC): Likewise. + * doc/invoke.texi (Link Options): Document -r. + +2018-09-20 Richard Biener + + PR middle-end/87054 + * gimplify.c (gimplify_expr): Retain alignment of + addressable lvalue in dereference. + +2018-09-20 Alexandre Oliva + + PR bootstrap/87013 + * configure.ac: Check for .loc is_stmt support. + * configure, config.in: Rebuilt. + * dwarf2out.c (dwarf2out_source_line): Skip is_stmt + if not supported. + +2018-09-20 Segher Boessenkool + + * config/rs6000/rs6000.opt (misel=no, misel=yes): Delete. + * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -misel=yes and + -misel=no. + +2018-09-20 Segher Boessenkool + + * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete + VECTOR_OTHER. + * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete + case VECTOR_OTHER. + +2018-09-20 Marek Polacek + + * doc/invoke.texi: Add -Wno-init-list-lifetime to C++ Language Options. + +2018-09-20 Richard Sandiford + + PR tree-optimization/87288 + * tree-vect-loop.c (vect_analyze_loop_2): Take PEELING_FOR_GAPS + into account when determining PEELING_FOR_NITERS. + +2018-09-20 Richard Sandiford + + PR tree-optimization/86877 + * tree-vect-loop.c (vect_analyze_loop_2): Call + vect_verify_datarefs_alignment. + +2018-09-19 Marek Polacek + + * doc/invoke.texi: Document -Wclass-conversion. + +2018-09-19 John David Anglin + + * config/pa/pa.c (pa_adjust_priority): Delete. + (TARGET_SCHED_ADJUST_PRIORITY): Delete define. + + * config/pa/pa.md (atomic_storeqi): Restore deleted expander. + (atomic_storehi): Likewise. + (atomic_storesi): Likewise. + (atomic_loaddi): Restore compare and swap exchange loop code. + +2018-09-19 Segher Boessenkool + + PR rtl-optimization/86902 + * combine.c (try_combine): When changing the CC mode used, don't change + an unrelated mode in other_insn to that new CC mode. + +2018-09-19 David Malcolm + + * tree-data-ref.c (runtime_alias_check_p): Use formatted printing + with %T in place of calls to dump_generic_expr. + (prune_runtime_alias_test_list): Likewise. + (create_runtime_alias_checks): Likewise. + * tree-vect-data-refs.c (vect_check_nonzero_value): Likewise. + (vect_analyze_data_ref_dependence): Likewise. + (vect_slp_analyze_data_ref_dependence): Likewise. + (vect_record_base_alignment): Likewise. Use %G in place of call + to dump_gimple_stmt. + (vect_compute_data_ref_alignment): Likewise. + (verify_data_ref_alignment): Likewise. + (vect_find_same_alignment_drs): Likewise. + (vect_analyze_group_access_1): Likewise. + (vect_analyze_data_ref_accesses): Likewise. + (dependence_distance_ge_vf): Likewise. + (dump_lower_bound): Likewise. + (vect_prune_runtime_alias_test_list): Likewise. + (vect_find_stmt_data_reference): Likewise. + (vect_analyze_data_refs): Likewise. + (vect_create_addr_base_for_vector_ref): Likewise. + (vect_create_data_ref_ptr): Likewise. + * tree-vect-loop-manip.c (vect_set_loop_condition): Likewise. + (vect_can_advance_ivs_p): Likewise. + (vect_update_ivs_after_vectorizer): Likewise. + (vect_gen_prolog_loop_niters): Likewise. + (vect_prepare_for_masked_peels): Likewise. + * tree-vect-loop.c (vect_determine_vf_for_stmt): Likewise. + (vect_determine_vectorization_factor): Likewise. + (vect_is_simple_iv_evolution): Likewise. + (vect_analyze_scalar_cycles_1): Likewise. + (vect_analyze_loop_operations): Likewise. + (report_vect_op): Likewise. + (vect_is_slp_reduction): Likewise. + (check_reduction_path): Likewise. + (vect_is_simple_reduction): Likewise. + (vect_create_epilog_for_reduction): Likewise. + (vect_finalize_reduction:): Likewise. + (vectorizable_induction): Likewise. + (vect_transform_loop_stmt): Likewise. + (vect_transform_loop): Likewise. + (optimize_mask_stores): Likewise. + * tree-vect-patterns.c (vect_pattern_detected): Likewise. + (vect_split_statement): Likewise. + (vect_recog_over_widening_pattern): Likewise. + (vect_recog_average_pattern): Likewise. + (vect_determine_min_output_precision_1): Likewise. + (vect_determine_precisions_from_range): Likewise. + (vect_determine_precisions_from_users): Likewise. + (vect_mark_pattern_stmts): Likewise. + (vect_pattern_recog_1): Likewise. + * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise. + (vect_record_max_nunits): Likewise. + (vect_build_slp_tree_1): Likewise. + (vect_build_slp_tree_2): Likewise. + (vect_print_slp_tree): Likewise. + (vect_analyze_slp_instance): Likewise. + (vect_detect_hybrid_slp_stmts): Likewise. + (vect_detect_hybrid_slp_1): Likewise. + (vect_slp_analyze_operations): Likewise. + (vect_slp_analyze_bb_1): Likewise. + (vect_transform_slp_perm_load): Likewise. + (vect_schedule_slp_instance): Likewise. + * tree-vect-stmts.c (vect_mark_relevant): Likewise. + (vect_mark_stmts_to_be_vectorized): Likewise. + (vect_init_vector_1): Likewise. + (vect_get_vec_def_for_operand): Likewise. + (vect_finish_stmt_generation_1): Likewise. + (vect_check_load_store_mask): Likewise. + (vectorizable_call): Likewise. + (vectorizable_conversion): Likewise. + (vectorizable_operation): Likewise. + (vectorizable_load): Likewise. + (vect_analyze_stmt): Likewise. + (vect_is_simple_use): Likewise. + (vect_get_vector_types_for_stmt): Likewise. + (vect_get_mask_type_for_stmt): Likewise. + * tree-vectorizer.c (increase_alignment): Likewise. + +2018-09-19 Andrew Stubbs + + * doc/rtl.texi: Adjust vec_select description. + * simplify-rtx.c (simplify_binary_operation_1): Allow VEC_SELECT to use + non-constant selectors. + +2018-09-19 Matthew Malcomson + + * config/aarch64/aarch64-protos.h + (aarch64_offset_9bit_signed_unscaled_p): New declaration. + * config/aarch64/aarch64.md (arches): New "rcpc8_4" attribute value. + (arch_enabled): Add check for "rcpc8_4" attribute value of "arch". + * config/aarch64/aarch64.h (AARCH64_FL_RCPC8_4): New bitfield. + (AARCH64_FL_FOR_ARCH8_4): Include AARCH64_FL_RCPC8_4. + (AARCH64_FL_PROFILE): Move index so flags are ordered. + (AARCH64_ISA_RCPC8_4): New flag. + * config/aarch64/aarch64.c (offset_9bit_signed_unscaled_p): Renamed + to aarch64_offset_9bit_signed_unscaled_p. + * config/aarch64/atomics.md (atomic_store): Allow offset + and use stlur. + * config/aarch64/constraints.md (Ust): New constraint. + * config/aarch64/predicates.md. + (aarch64_9bit_offset_memory_operand): New predicate. + (aarch64_rcpc_memory_operand): New predicate. + +2018-09-19 Eric Botcazou + + PR rtl-optimization/87361 + * rtlanal.c (nonzero_bits1): Revert accidental change. + +2018-09-19 Richard Biener + + PR tree-optimization/87349 + PR tree-optimization/87342 + * tree-ssa-sccvn.c (do_rpo_vn): Iterate max_rpo computation. + +2018-09-18 Marek Polacek + + P1064R0 - Allowing Virtual Function Calls in Constant Expressions + * gimple-fold.c (gimple_get_virt_method_for_vtable): Adjust assert. + +2018-09-18 Segher Boessenkool + + * config/rs6000/rs6000.md: Remove old "Cygnus sibcall" comment. + +2018-09-18 Segher Boessenkool + + PR rtl-optimization/86882 + * rtlanal.c (reg_overlap_mentioned_p): Handle CLOBBER. + +2018-09-18 Uros Bizjak + + * config/i386/i386.md (*extendxf2): Macroize insn from + *extendsfxf2 and *extenddfxf2 using MODEF mode iterator. + +2018-09-18 Jonathan Wakely + + PR other/87353 + * doc/invoke.texi (Link Options): Fix formatting and grammar. + +2018-09-18 Richard Biener + + PR middle-end/63155 + * tree-ssa-coalesce.c (tree_int_map_hasher): Remove. + (compute_samebase_partition_bases): Likewise. + (coalesce_ssa_name): Always use compute_optimized_partition_bases. + (gimple_can_coalesce_p): Simplify. + +2018-09-18 Hans-Peter Nilsson + + Handle a library implementation of ffs calling __builtin_ffs. + * config/mmix/mmix.c (TARGET_INIT_LIBFUNCS): Override with... + (mmix_init_libfuncs): New function: make __builtin_ffs expand + to __ffsdi2. + +2018-09-17 David Malcolm + + * diagnostic-show-locus.c (class layout_range): Add field + "m_original_idx". + (layout_range::layout_range): Add "original_idx" param and use it + to initialize new field. + (make_range): Use 0 for original_idx. + (layout::layout): Pass in index to calls to + maybe_add_location_range. + (layout::maybe_add_location_range): Add param "original_idx" and + pass it on to layout_range. + (layout::print_any_labels): Pass on range->m_original_idx to + get_text call. + (gcc_rich_location::add_location_if_nearby): Use 0 for + original_idx. + * gcc-rich-location.h (text_range_label::get_text): Update for new + param. + (range_label_for_type_mismatch::get_text): Likewise. + +2018-09-17 Uros Bizjak + + * config/i386/i386.c (ix86_emit_i387_log1p): Emit fldln2 earlier. + +2018-09-17 David Malcolm + + * gimple-ssa-sprintf.c (fmtwarn): Update for introduction of + format_string_diagnostic_t. + (fmtwarn_n): Likewise. + * substring-locations.c + (format_string_diagnostic_t::format_string_diagnostic_t) New ctor. + (format_warning_n_va): Convert to... + (format_string_diagnostic_t::emit_warning_n_va): ...this. + (format_warning_va): Convert to... + (format_string_diagnostic_t::emit_warning_va): ...this. + (format_warning_at_substring): Convert to... + (format_string_diagnostic_t::emit_warning): ...this. + (format_warning_at_substring_n): Convert to... + (format_string_diagnostic_t::emit_warning_n): ...this. + * substring-locations.h (class format_string_diagnostic_t): New + class. + (format_warning_va): Convert to + format_string_diagnostic_t::emit_warning_va. + (format_warning_n_va): Convert to + format_string_diagnostic_t::emit_warning_n_va. + (format_warning_at_substring): Convert to + format_string_diagnostic_t::emit_warning. + (format_warning_at_substring_n): Convert to + format_string_diagnostic_t::emit_warning_n. + +2018-09-17 Cesar Philippidis + Bernd Schmidt + + * config/nvptx/nvptx.md (atomic_fetch_): Enable with + SImode args. + +2018-09-17 Uros Bizjak + + * config/i386/i386.md (truncxf2_i387_noop_unspec): Change + operand 0 predicate to nonimmediate operand. + (rint2_frndint): Remove insn pattern. + (rint2): Change operand 1 predicate to general_operand. + Extend operand 1 to XFmode and generate rintxf2 insn. + (frndintxf2_): Rename from frndint2_. + Do not use X87MODEF mode macro. + (frndintxf2__i387): Rename from + frndint2__i387. Do not use X87MODEF mode macro. + (2): For non-SSE modes, extend operand 1 + to XFmode and generate significandxf3 insn. + +2018-09-17 Richard Biener + + PR tree-optimization/87328 + * tree-ssa-sccvn.c (process_bb): Remove assertion about not + visiting unexecutable backedges when not iterating. + (do_rpo_vn): Mark all edges not executable even when not + iterating. + +2018-09-17 Martin Jambor + + PR c/63886 + * doc/invoke.texi (Warning Options): Likewise. + +2018-09-17 Richard Biener + + PR tree-optimization/87301 + * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_cleanup): Properly + clean EH info from leftover copy assignments. + +2018-09-17 Martin Liska + + PR gcov-profile/85871 + * gcov.c (output_intermediate_file): Fix out of bounds + access. + +2018-09-17 Vineet Gupta + + * config/arc/arc.c: Object attributes for core4 not reflected + correctly. + * config/arc/arc.h: Don't restrict DBNZ to core3 (core4 includes + core3). + +2018-09-17 Alexey Brodkin + + * config/arc/linux.h (LINK_EH_SPEC): Add missing space. + +2018-09-17 Martin Liska + + * doc/gcov.texi: Document new option --use-hotness-colors. + * gcov.c (struct source_info): Declare new field. + (source_info::source_info): Set default for maximum_count. + (print_usage): Add new -q option. + (process_args): Process it. + (accumulate_line_info): Save src->maximum_count. + (output_line_beginning): Make color line number if + flag_use_hotness_colors is set. + (output_line_details): Pass default argument value. + (output_lines): Pass src->maximum_count. + +2018-09-17 Martin Liska + + * common/config/i386/i386-common.c (ix86_get_valid_option_values): + Use processor_names table. + * config/i386/i386.c (ix86_default_align): Use + processor_cost_table for alignment values. + (ix86_option_override_internal): Use processor_names. + (ix86_function_specific_print): Likewise. + * config/i386/i386.h (struct processor_costs): + Add alignment values. + (struct ptt): Remove and replace with const char *. + * config/i386/x86-tune-costs.h (struct processor_costs): + Declare default alignments for all costs. + +2018-09-17 Aldy Hernandez + + * tree-vrp.c (extract_range_from_unary_expr): Do not special case + symbolics or VR_VARYING ranges for ABS_EXPR. + * wide-int-range.cc (wide_int_range_abs): Return positive numbers + when range will wrap. + +2018-09-15 Eric Botcazou + + PR middle-end/86864 + * cfgexpand.c (expand_gimple_basic_block): Be prepared for a BARRIER + before and after a JUMP_TABLE_DATA. + +2018-09-14 John David Anglin + + PR middle-end/87188 + * dojump.c (do_compare_and_jump): Canonicalize function pointers + when one operand is a function pointer. Use POINTER_TYPE_P and + FUNC_OR_METHOD_TYPE_P. + * expr.c (do_store_flag): Use POINTER_TYPE_P and FUNC_OR_METHOD_TYPE_P. + * fold-const.c (build_range_check): Likewise. + * match.pd (simple_comparison): Likewise. + +2018-09-14 David Malcolm + + PR c/82967 + * spellcheck.c (get_edit_distance_cutoff): New function. + (selftest::test_edit_distance_unit_test_oneway): Rename to... + (selftest::test_get_edit_distance_one_way): ...this. + (selftest::test_get_edit_distance_unit): Rename to... + (selftest::test_get_edit_distance_both_ways): ...this. + (selftest::test_edit_distances): Move tests to this new function, + and test some more pairs of strings. Update for above renaming. + (selftest::get_old_cutoff): New function. + (selftest::test_get_edit_distance_cutoff): New function. + (selftest::assert_suggested_for): New function. + (ASSERT_SUGGESTED_FOR): New macro. + (selftest::assert_not_suggested_for): New function. + (ASSERT_NOT_SUGGESTED_FOR): New macro. + (selftest::test_suggestions): New function. + (selftest::spellcheck_c_tests): Move test_get_edit_distance_unit + tests to selftest::test_edit_distances and call it. Add calls to + selftest::test_get_edit_distance_cutoff and + selftest::test_suggestions. + * spellcheck.h (get_edit_distance_cutoff): New function declaration. + (best_match::consider): Replace hard-coded cutoff calculation with + a call to... + (best_match::get_cutoff): New declaration. + (best_match::get_best_meaningful_candidate): Likewise. + +2018-09-14 Bernd Edlinger + + * builtins.c (fold_builtin_strlen): Remove TODO comment. + +2018-09-14 Bernd Edlinger + + revert: + 2018-07-30 Bernd Edlinger + + * tree-ssa-forwprop.c (simplify_builtin_call): Don't create a not NUL + terminated string literal. + +2018-09-14 Martin Sebor + + * builtins.c (unterminated_array): Handle ARRAY_REF. + (expand_builtin_stpcpy_1): Detect unterminated char arrays. + * builtins.h (unterminated_array): Declare extern. + * gimple-fold.c (gimple_fold_builtin_stpcpy): Detect unterminated + arrays. + (gimple_fold_builtin_sprintf): Propagate NO_WARNING to transformed + calls. + +2018-09-14 Martin Sebor + Jeff Law + + * builtins.c (unterminated_array): New. + (expand_builtin_strcpy): Adjust. + (expand_builtin_strcpy_args): Detect unterminated arrays. + * gimple-fold.c (get_maxval_strlen): Add argument. Detect + unterminated arrays. + * gimple-fold.h (get_maxval_strlen): Add argument. + (gimple_fold_builtin_strcpy): Detec unterminated arrays. + + * gimple-fold.c (get_range_strlen): Add argument. + (get_maxval_strlen): Adjust. + * gimple-fold.h (get_range_strlen): Add argument. + +2018-09-14 Wei Xiao + + * config/i386/movdirintrin.h: Fix copyright year. + +2018-09-14 Uros Bizjak + + * reg-stack.c: Include regs.h. + (replace_reg): Assert that mode is MODE_FLOAT or MODE_COMPLEX_FLOAT. + (emit_pop_insn): Default pop insn mode to the reg_raw_mode of + FIRST_STACK_REG, not DFmode. + (emit_swap_insn): Default swap insn mode to the reg_raw_mode of + FIRST_STACK_REG, not XFmode. Explicitly construct swap RTX. + (change stack): Default register mode to the reg_raw_mode of + FIRST_STACK_REG, not DFmode. + * config/i386/i386.md (*swap): Remove insn pattern. + (*swapxf): Rename from swapxf. + +2018-09-14 Carl Love + + * config/rs6000/emmintrin.h: Add _MM_SHUFFLE2. + * config/rs6000/xmmintrin.h: Add _MM_SHUFFLE. + +2018-09-14 Segher Boessenkool + + PR target/87224 + * config/rs6000/rs6000.md (*mov_hardfloat64): Add Z to the Y + alternatives. + +2018-09-14 Sam Tebbs + + PR target/85628 + * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Define. + +2018-09-14 Jason Merrill + + Fix --enable-gather-detailed-mem-stats. + * hash-table.c (hash_table_usage): Change from variable to function. + * hash-table.h: Adjust. + * Makefile.in: Add missing dependencies on hash-table.h. + +2018-09-14 Kyrylo Tkachov + + PR tree-optimization/87259 + PR lto/87283 + (pass_cse_reciprocals::execute): Run optimize_recip_sqrt after + execute_cse_reciprocals_1 has tried transforming. + +2018-09-14 Aldy Hernandez + + * tree-vrp.c (extract_range_from_binary_expr_1): Normalize + VR_VARYING for PLUS/MINUS_EXPR. + +2018-09-14 Ilya Leoshkevich + + * config/s390/s390-passes.def (INSERT_PASS_BEFORE): Improve + formatting. + +2018-09-14 Richard Biener + + PR middle-end/63155 + * tree-ssa-coalesce.c (ssa_conflicts_merge): Remove conflict + bits for the merged partition. + +2018-09-13 Martin Sebor + Bernd Edlinger + + * builtins.h (c_srlen): Add argument. + * builtins.c (warn_string_no_nul): New function. + (c_strlen): Add argument and use it. Update recursive calls. + Pass DECL argument to string_constant to get info on non + terminated strings. Update *NONSTR as needed. + (fold_builtin_strlen): Add argument to calls to c_strlen. + Warn for unterminated arrays. + (warn_string_no_null): Add prototype. + * expr.c (string_constant): Update arguments. Update recursive + calls appropriately. Detect missing NUL terminator and outermost + declaration its missing in. + Improve checks for arrays with nonzero lower bound or elements + that are not a single byte. Simplify offset computation. + Simplify checks for non-NUL terminated strings. + * gimple-fold.c (get_range_strlen): Add argument to c_strlen call. + * gimple-ssa-sprintf.c (get_string_length): Remove unnecessary code. + +2018-09-13 Bernd Edlinger + + * builtins.c (c_strlen): Handle not zero terminated STRING_CSTs + correctly. + * fold-const.c (c_getstr): Fix function comment. Remove unused third + argument. Fix range checks. + * fold-const.h (c_getstr): Adjust protoype. + * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid folding when + string is constant but contains no NUL byte. + + * expr.c (string_constant): Adjust function comment. + Remove bogus check for zero termination. + + * fold-const.c (c_getstr): Clamp STRING_LENGTH to STRING_SIZE. + + * varasm.c (compare_constant): Compare type size of STRING_CSTs. + (get_constant_size): Don't make STRING_CSTs larger than they are. + (check_string_literal): New check function for STRING_CSTs. + (output_constant): Use it. + +2018-09-13 Eric Botcazou + + PR target/86812 + * config/visium/visium.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define. + +2018-09-13 Richard Biener + + PR tree-optimization/87263 + * tree-ssa-sccvn.c (visit_phi): Revert some earlier changes. + (struct unwind_state): Add max_rpo field. + (do_rpo_vn): Allow up-to-date loop state to be used when not iterating. + Compute max_rpo, the max RPO number a block can be backwards reached + from. Re-write non-iterating mode to a RPO ordered worklist approach, + separating it from the iterating mode. + +2018-09-13 Vlad Lazar + + * haifa-sched.c (rank_for_schedule): Schedule by INSN_COST. + (rfs_decision): New scheduling decision. + +2018-09-13 Richard Biener + + PR bootstrap/87134 + * tree-ssa-sccvn.c (vn_nary_op_insert_into): Fix assert. + (vn_nary_op_insert_pieces_predicated): Do not write useless + valid_dominated_by_p entry outside of the allocated storage. + +2018-09-13 Omar Sandoval + Tom de Vries + + PR debug/86985 + * dwarf2out.c (is_c): New function. + (add_subscript_info): Add DW_AT_count of 0 for C zero-length arrays. + +2018-09-13 Sam Tebbs + + PR target/85628 + * config/aarch64/aarch64.md (*aarch64_bfxil): + Define. + * config/aarch64/constraints.md (Ulc): Define. + * config/aarch64/aarch64-protos.h (aarch64_high_bits_all_ones_p): + Define. + * config/aarch64/aarch64.c (aarch64_high_bits_all_ones_p): + New function. + +2018-09-13 Vlad Lazar + + * config/aarch64/aarch64.h (TARGET_COMPUTE_FRAME_LAYOUT): Define. + * config/aarch64/aarch64.c (aarch64_expand_prologue): Remove + aarch64_layout_frame call. + (aarch64_expand_epilogue): Likewise. + (aarch64_initial_elimination_offset): Likewise. + (aarch64_get_separate_components): Likewise. + (aarch64_use_return_insn_p): Likewise. + (aarch64_layout_frame): Remove unneeded check. + +2018-09-13 Jakub Jelinek + + * configure.ac: Only append + " : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS" to + gcc_config_arguments if it was never reconfigured or last reconfigure + was with different arguments. + * configure: Regenerated. + +2018-09-13 Jakub Jelinek + Kyrylo Tkachov + + PR middle-end/87290 + * expr.c (maybe_optimize_pow2p_mod_cmp): New function. + (maybe_optimize_mod_cmp): Use it if integer_pow2p treeop1. + +2018-09-13 Jakub Jelinek + + PR tree-optimization/87287 + * fold-const.c (fold_binary_loc) : Move signed modulo + X % C == 0 to X % (unsigned) C == 0 optimization to ... + * match.pd (X % C == 0): ... here. New optimization. + +2018-09-12 Jakub Jelinek + + PR middle-end/82853 + * expr.h (maybe_optimize_mod_cmp): Declare. + * expr.c (mod_inv): New function. + (maybe_optimize_mod_cmp): New function. + (do_store_flag): Use it. + * cfgexpand.c (expand_gimple_cond): Likewise. + +2018-09-09 Cesar Philippidis + Julian Brown + + PR middle-end/86336 + * gimplify.c (gimplify_scan_omp_clauses): Set + target_firstprivatize_array_bases in OpenACC parallel and kernels + region contexts. Remove GOMP_MAP_FIRSTPRIVATE_REFERENCE clauses from + OpenACC data regions. + +2018-09-12 Uros Bizjak + + * config/i386/i386.md (sqrt_extendxf3_i387): Remove. + (sqrt2): Extend operand 1 to XFmode and generate sqrtxf3 insn. + +2018-09-12 Richard Biener + + PR tree-optimization/87280 + * tree-ssa-sccvn.c (process_bb): Handle the case of executable + edge but unreachable target. + (do_rpo_vn): For conservatively handling a PHI only mark + the backedge executable but not the block reachable. + +2018-09-12 Richard Biener + + PR tree-optimization/87266 + * tree-ssa-sccvn.c (do_rpo_vn): Always iterate to not yet + visited blocks. + +2018-09-12 Andreas Krebbel + + * config/s390/s390.md (PFPO_RND_MODE_DFP, PFPO_RND_MODE_BFP): New + constants. + ("trunc2") + ("trunc2") + ("extend2") + ("extend2"): Set proper rounding mode + according to the target operand type. + +2018-09-12 Jakub Jelinek + Andreas Krebbel + + PR tree-optimization/86844 + * gimple-ssa-store-merging.c + (imm_store_chain_info::coalesce_immediate): For overlapping stores, if + there are any overlapping stores in between them, make sure they are + also coalesced or we give up completely. + +2018-09-12 Jakub Jelinek + + PR middle-end/87248 + * fold-const.c (fold_ternary_loc) : Verify also that + BIT_AND_EXPR's second operand is a power of two. Formatting fix. + +2018-09-12 Tom de Vries + + * common.opt (gdescribe-dies): Add option. + * dwarf2out.c (add_name_and_src_coords_attributes): Add description + attribute for artifical and nameless decls. + (dwarf2out_register_external_die): Add description attribute to + external reference die. + (add_desc_attribute): New functions. + (gen_subprogram_die): Add description attribute to + DW_TAG_call_site_parameter. + * tree-pretty-print.c (print_generic_expr_to_str): New function. + * tree-pretty-print.h (print_generic_expr_to_str): Declare. + * doc/invoke.texi (@item Debugging Options): Add -gdescribe-dies and + -gno-describe-dies. + (@item -gdescribe-dies): Add. + +2018-09-12 Aldy Hernandez + + * tree-vrp.c (vrp_shift_undefined_p): Remove. + (extract_range_from_binary_expr_1: Call + wide_int_range_shift_undefined_p instead of vrp_shift_undefined_p. + * wide-int-range.h (wide_int_range_shift_undefined_p): Do not + depend on sign. + +2018-09-12 Aldy Hernandez + + * gimple-ssa-warn-alloca.c + (alloca_type_and_limit::alloca_type_and_limit): Initialize limit + field for ALLOCA_BOUND_*_LARGE. + +2018-09-11 Nathan Sidwell + + * gcc.c (load_specs, execute, run_attempt): Use %qs not '%s'. + +2018-09-11 Uros Bizjak + + * reg-stack.c (subst_asm_stack_regs): Call replace_reg also + for clobbers. Remove obsolete comment. + +2018-09-11 Uros Bizjak + + * config/i386/i386.md (define_attr "type"): Remove mpxmov, mpxmk, + mpxchk, mpxld and mpxst types. + (define_attr length_immediate): Remove all processing of mpx types. + (define_attr prefix_0f): Ditto. + (define_attr memory): Ditto. + +2018-09-11 Uros Bizjak + + * config/i386/i386.md (fyl2x_extendxf3_i387): Remove. + (log2): Change operand 1 predicate to general_operand. + Extend operand 1 to XFmode and generate logxf3 insn. + (log102): Change operand 1 predicate to general_operand. + Extend operand 1 to XFmode and generate log10xf3 insn. + (log22): Change operand 1 predicate to general_operand. + Extend operand 1 to XFmode and generate log2xf3 insn. + (fyl2xp1_extendxf3_i387): Remove. + (log1p2): Change operand 1 predicate to general_operand. + Extend operand 1 to XFmode and generate log1pxf3 insn. + (fxtract_extendxf3_i387): Remove. + (logb2): Change operand 1 predicate to general_operand. + Extend operand 1 to XFmode and generate logbxf3 insn. + (ilogb2): Change operand 1 predicate to general_operand. + Extend operand 1 to XFmode and generate fxtractxf3_i387 insn. + (significand2): Change operand 1 predicate to general_operand. + Extend operand 1 to XFmode and generate significandxf3 insn. + +2018-09-11 Nathan Sidwell + + * gcc.c (perror_with_name, pfatal_with_name): Delete. + (load_specs): Use fatal_error. + (DELETE_IF_ORDINARY, process_command): Use error. + (execute, run_attempt): Use fatal_error. + +2018-09-11 Andrew Stubbs + + * diagnostic-core.h (sorry_at): New prototype. + * diagnostic.c (sorry_at): New function. + +2018-09-11 Aldy Hernandez + + * tree-vrp.c (extract_range_from_binary_expr_1): Treat all divisions + by zero as VR_UNDEFINED. + +2018-09-10 Uros Bizjak + + * config/i386/i386.md (xf2): Rename from *xf2_i387. + (*_extendxf2_i387): Remove insn pattern. + (mode2): New expander. + (sincos_extendxf3_i387): Remove insn pattern. + (sincos -> sin, cos splitters): Remove splitter patterns. + (sincos3): Change operand 2 predicate to general_operand. + Extend operand 2 to XFmode and generate sincosxf3 insn. + (fptanxf4_i387): Change mode of operands 0 and 3 to SFmode. + Change operand 3 predicate to const1_operand. + (fptan_extendxf4_i387): Remove insn pattern. + (tanxf2): Update operands in the call to fptanxf4_i387. + (tan2): Change operand 1 predicate to general_operand. + Extend operand 1 to XFmode and generate tanxf3 insn. + (atan2xf3): Rename from *fpatanxf3_i387. + (fpatan_extendxf3_i387): Remove insn pattern. + (atan2xf3): Remove expander. + (atan22): Change operand 1 predicate to general_operand. + Extend operand 1 to XFmode and generate atanxf3 insn. + +2018-09-10 Uros Bizjak + + * config/i386/i386.md (x87/SSE constant load splitter): Use + memory_operand instead of nonimmediate_operand for input operand + predicate. + +2018-09-09 Uros Bizjak + + * config/i386/i386.md (float partial SSE register stall splitter): Move + splitter near its instruction pattern. + (float_extend partial SSE register stall splitter): Ditto. + (float_truncate partial SSE register stall splitter): Ditto. + +2018-09-09 Hans-Peter Nilsson + + PR target/86794 + * config/mmix/mmix.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine + to speculation_safe_value_not_needed. + + PR target/85666 + * config/mmix/mmix.c (mmix_assemble_integer): Handle byte-size + non-CONST_INT rtx:es using assemble_integer_with_op ".byte". + (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS): Don't call + leaf_function_p, instead use has_hard_reg_initial_val. + +2018-09-09 Nathan Sidwell + + * gcc.h (pfatal_with_name): Don't declare here. + * gcc.c (pfatal_with_name): Make static. + +2018-09-09 Xianmiao Qu + + * config/csky/csky.md (*cskyv2_adddi3, *cskyv2_subdi3): Add + earlyclobber. + +2018-09-08 John David Anglin + + PR rtl-optimization/85458 + * sel-sched.c (sel_target_adjust_priority): Allow backend adjust + priority hook to reduce the priority of EXPR. + +2018-09-07 Uros Bizjak + + * config/i386/i386.md (float2) Enable + DImode for x87 on 32bit targets. Conditionally disable x87 modes + with X87_ENABLE_FLOAT. Remove preparation code. + (*float2): Rename from + *float2_mixed. Handle x87, SSE and mixed + math using "enabled" attribute. + (*floatdi2_i387): Rename from + *float2_i387. Handle only DImode and + enable for 32bit targets only. + (floatdi2_i387_with_xmm pre-reload splitter): New + splitter. + (floatdi2_i387_with_xmm): Use register_operand + as operand 1 predicate. Rewrite as define_insn_and_split. + (floatdi2_i387_with_xmm memory input splitter): Remove. + +2018-09-06 Uros Bizjak + + * reg-stack.c (get_true_reg) : Reorder + to fallthru to FLOAT case. + +2018-09-06 Will Schmidt + + PR target/86731 + * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Update logic + around folding of vec_sl to handle out of range shift values. + +2018-09-06 Uros Bizjak + + * config/i386/i386.md (fix_trunc_fisttp_i387_1): Remove. + Update callers to gen_fix_trunc_i387_fisttp + (fix_trunc_i387_fisttp): Change operand 0 predicate to + nonimmediate_operand. + (fix_trunc_i387_fisttp_with_temp): Remove insn pattern + and corresponding splitters. + (*fix_trunc_i387_1): Always expand with fix_trunc_i387. + (fix_truncdi_i387): Change operand 0 predicate to nonimmediate_operand. + (fix_truncdi_i387_with_temp): Remove insn pattern + and corresponding splitters. + (fix_trunc_i387): Change operand 0 predicate to + nonimmediate_operand. + (fix_trunc_i387_with_temp): Remove insn pattern + and corresponding splitters. + (*fistdi2_1): Remove. + (fistdi2): Ditto. + (fistdi2_with_temp): Remove insn pattern and corresponding splitters. + (lrintxfdi2): Remove expander. Reimplement as define_insn. + (*fist2_1): Remove. + (fist2): Ditto. + (fist2_with_temp): Remove insn pattern and corresponding + splitters. + (lrintxf2): Remove expander. Reimplement as define_insn. + (*fist2__1): Always expand with fist2_. + (fistdi2_): Change operand 0 predicate to + nonimmediate_operand. + (fistdi2__with_temp): Remove insn pattern + and corresponding splitters. + (fist2_): Change operand 0 predicate to + nonimmediate_operand. + (fist2__with_temp): Remove insn pattern + and corresponding splitters. + + (*fixuns_truncsi2_avx512f_zext): Depend on TARGET_SSE_MATH. + +2018-09-06 Bernd Edlinger + + * varasm.c (output_constructor_regular_field): Check TYPE_SIZE_UNIT of + the init value. + +2018-09-06 Will Schmidt + + * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for + early gimple folding of vec_splat(). + * tree-vect-generic.c: Remove static from tree_vec_extract() definition. + * gimple-fold.h: Add an extern define for tree_vec_extract(). + +2018-09-06 Will Schmidt + + * config/rs6000/rs6000.c (fold_mergehl_helper): Add types_compatible_p + wrappers around TREE_TYPE comparisons. + +2018-09-06 Ilya Leoshkevich + + PR target/80080 + * config/s390/predicates.md: Add nonsym_memory_operand. + * config/s390/s390.c (s390_legitimize_cs_operand): If operand + contains a SYMBOL_REF, load it into an intermediate pseudo. + (s390_emit_compare_and_swap): Legitimize operand. + * config/s390/s390.md: Use the new nonsym_memory_operand + with UNSPECV_CAS patterns. + +2018-09-06 Ilya Leoshkevich + + PR target/80080 + * config/s390/s390-passes.def: New file. + * config/s390/s390-protos.h (class rtl_opt_pass): Add forward + declaration. + (make_pass_s390_early_mach): Add declaration. + * config/s390/s390.c (make_pass_s390_early_mach): + (s390_option_override): Remove dynamic registration. + * config/s390/t-s390: Add s390-passes.def. + +2018-09-06 Ilya Leoshkevich + + * config/s390/s390.c (s390_decompose_constant_pool_ref): + Remove UNSPEC_LTREL_BASE check. + (annotate_constant_pool_refs): Likewise. + (find_constant_pool_ref): Likewise. + (find_ltrel_base): Removed. + (replace_ltrel_base): Removed. + (s390_mainpool_finish): Remove replace_ltrel_base call. + (s390_chunkify_start): Remove pending LTREL_BASE logic. + (s390_chunkify_finish): Remove replace_ltrel_base call. + * config/s390/s390.md: Remove UNSPEC_LTREL_BASE. + +2018-09-06 Hans-Peter Nilsson + + PR target/86779 + * config/cris/cris.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine + to speculation_safe_value_not_needed. + +2018-09-05 Cesar Philippidis + Bernd Schmidt + + * config/nvptx/nvptx-opts.h: New file. + * config/nvptx/nvptx.c (nvptx_file_start): Print the correct .target. + * config/nvptx/nvptx.h: Include "nvptx-opts.h". + (ASM_SPEC): Define. + (TARGET_SM35): New macro. + * config/nvptx/nvptx.md (atomic_fetch_): Enable with the + correct predicate. + * config/nvptx/nvptx.opt (ptx_isa, sm_30, sm_35): New enum and its + values. + (misa=): New option. + * doc/invoke.texi (Nvidia PTX Options): Document -misa. + +2018-09-05 Uros Bizjak + + * config/i386/i386.md (truncdfsf2): Remove expander. + (truncdfsf2_with_temp): Ditto. + (truncxf2): Ditto. + (*truncdfsf_fast_mixed): Remove insn pattern. + (*truncdfsf_fast_i387): Ditto. + (*truncdfsf_mixed): Ditto. + (*truncdfsf_i387): Ditto. + (*truncdfsf2_i387_1): Ditto. + (*truncxfsf2_mixed): Ditto. + (*truncxfdf2_mixed): Ditto. + (*truncxf2_i387_noop): Ditto. Update callers + to call gen_truncxf2 instead. + (*truncxf2_i387): Remove. + (reg->reg splitters): Remove splitter pattern. + (reg->mem splitters): Ditto. + + (truncdfsf2): New insn pattern. + (truncxf2): Ditto. + +2018-09-05 Kyrylo Tkachov + + * tree-ssa-math-opts.c (is_mult_by): New function. + (is_square_of): Use the above. + (optimize_recip_sqrt): New function. + (pass_cse_reciprocals::execute): Use the above. + +2018-09-05 Richard Biener + + PR bootstrap/87134 + * tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Make sure + to zero-init the emplaced vec. + +2018-09-05 Martin Liska + + PR tree-optimization/87205 + * tree-switch-conversion.c (pass_lower_switch::execute): + Group cases for switch statements. + +2018-09-05 Richard Biener + + PR tree-optimization/87217 + * tree-ssa-sccvn.c (vuse_valueize): New. + (vn_reference_lookup_pieces): Use it. + (vn_reference_lookup): Likewise. + +2018-09-05 Nathan Sidwell + + PR c++/87137 + * stor-layout.c (place_field): Scan forwards to check last + bitfield when ms_bitfield_placement is in effect. + +2018-09-05 Richard Biener + + PR bootstrap/87225 + * tree-vect-stmts.c (vectorizable_simd_clone_call): Fix bogus + return. + +2018-09-05 Siddhesh Poyarekar + Kugan Vivekanandarajah + + * config/aarch64/falkor-tag-collision-avoidance.c: New file. + * config.gcc (extra_objs): Build it. + * config/aarch64/t-aarch64 (falkor-tag-collision-avoidance.o): + Likewise. + * config/aarch64/aarch64-passes.def + (pass_tag_collision_avoidance): New pass. + * config/aarch64/aarch64.c (qdf24xx_tunings): Add + AARCH64_EXTRA_TUNE_RENAME_LOAD_REGS to tuning_flags. + (aarch64_classify_address): Remove static qualifier. + (aarch64_address_info, aarch64_address_type): Move to... + * config/aarch64/aarch64-protos.h: ... here. + (make_pass_tag_collision_avoidance): New function. + * config/aarch64/aarch64-tuning-flags.def (rename_load_regs): + New tuning flag. + +2018-09-05 Martin Liska + + * doc/gcov.texi: Update documentation of humar + readable mode. + * gcov.c (format_count): Print one decimal place, it provides + more fine number of situations like '1G' vs. '1.4G'. + +2018-09-05 Martin Liska + + PR target/87164 + * config/rs6000/rs6000.opt: Mark the option as Deprecated. + * optc-gen.awk: Allow 'Var' for Deprecated options in order + to generate a MASK value. + +2018-09-04 H.J. Lu + + PR debug/86593 + * dwarf2out.c (based_loc_descr): Allow hard frame pointer even + if frame pointer isn't used. + (compute_frame_pointer_to_fb_displacement): Likewise. + +2018-09-04 Jakub Jelinek + + PR target/87198 + * common/config/i386/i386-common.c (OPTION_MASK_ISA_XSAVEOPT_SET, + OPTION_MASK_ISA_XSAVES_SET, OPTION_MASK_ISA_XSAVEC_SET): Use + OPTION_MASK_ISA_XSAVE_SET instead of OPTION_MASK_ISA_XSAVE. + (OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_XSAVES_UNSET + and OPTION_MASK_ISA_XSAVEC_UNSET. + +2018-09-04 Max Filippov + + * config/xtensa/xtensa.c (xtensa_expand_atomic): Reorder AND and + XOR operations in NAND case. + +2018-09-04 Aldy Hernandez + + * wide-int-range.cc (wide_int_range_convert): New. + * wide-int-range.h (wide_int_range_convert): New. + * tree-vrp.c (extract_range_from_unary_expr): Abstract wide int + code into wide_int_range_convert. + (extract_range_into_wide_ints): Do not munge anti range constants + into the entire domain. Just return the range back. + +2018-09-04 Martin Liska + + * genmatch.c (output_line_directive): Add new argument + fnargs. + (dt_simplify::gen_1): Encapsulate dump within __builtin_expect. + +2018-09-04 Jonathan Wakely + + * doc/invoke.texi (Option Summary): Add whitespace. + + * doc/invoke.texi (Option Summary): Add -Waligned-new. + +2018-09-04 Richard Biener + + PR tree-optimization/87211 + * tree-ssa-sccvn.c (visit_phi): When value-numbering to a + backedge value we're supposed to treat as VARYING also number + the PHI to VARYING in case it got a different value-number already. + +2018-09-04 Aldy Hernandez + + * tree-vrp.c (vrp_can_optimize_bit_op): Remove. + (extract_range_from_binary_expr_1): Do not call + vrp_can_optimize_bit_op. + * wide-int-range.cc (wide_int_range_can_optimize_bit_op): Make + static. + (wide_int_range_get_mask_and_bounds): New. + (wide_int_range_optimize_bit_op): New. + (wide_int_range_bit_ior): Call wide_int_range_optimize_bit_op. + (wide_int_range_bit_and): Same. + * wide-int-range.h (wide_int_range_can_optimize_bit_op): Remove. + (wide_int_range_optimize_bit_op): New. + (wide_int_range_get_mask_and_bounds): New. + +2018-09-04 Richard Biener + + PR tree-optimization/87176 + * tree-ssa-sccvn.c (visit_phi): Remove redundant allsame + variable. When value-numbering a virtual PHI node make sure + to not value-number to the backedge value. + +2018-09-04 Jonathan Wakely + + * doc/extend.texi (Long Long, Hex Floats): Document support for + long long and hex floats in more recent versions of ISO C++. + +2018-09-03 Richard Biener + + PR tree-optimization/87177 + * tree-ssa-sccvn.c (vuse_ssa_val): Revert previous change, keep + cleanup. + +2018-09-03 Alexander Monakov + + * bb-reorder.c (edge_order): Convert to C-qsort-style + tri-state comparator. + (reorder_basic_blocks_simple): Change std::stable_sort to + gcc_stablesort. + +2018-09-03 Alexander Monakov + + * tree-loop-distribution.c (offset_cmp): Convert to C-qsort-style + tri-state comparator. + (fuse_memset_builtins): Change std::stable_sort to gcc_stablesort. + +2018-09-03 Alexander Monakov + + * sort.cc (struct sort_ctx): New field 'nlim'. Use it... + (mergesort): ... here as maximum count for using netsort. + (gcc_qsort): Set nlim to 3 if stable sort is requested. + (gcc_stablesort): New. + * system.h (gcc_stablesort): Declare. + +2018-09-03 Alexander Monakov + + * sort.cc (gcc_qsort) [CHECKING_P]: Call qsort_chk. + * system.h (qsort): Always redirect to gcc_qsort. Update comment. + * vec.c (qsort_chk): Do not call gcc_qsort. Update comment. + +2018-09-03 Segher Boessenkool + + * config/rs6000/rs6000.md (*mov_hardfloat32): Remove %U from the + lxsdx and stxsdx alternatives. + (*mov_hardfloat64): Ditto. + * config/rs6000/vsx.md (*vsx_extract__store): Ditto. + +2018-09-03 Richard Biener + + PR tree-optimization/87200 + * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize a + simplify result. + +2018-09-03 Martin Liska + + PR tree-optimization/87201 + * tree-switch-conversion.c (switch_decision_tree::balance_case_nodes): + Fix parenthesis in an expression. + +2018-09-03 Richard Biener + + PR tree-optimization/87197 + * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Mark the new def + visited. CSE the VN_INFO hashtable lookup. + + PR tree-optimization/87169 + * tree-ssa-sccvn.c (do_rpo_vn): When marking loops for not + iterating make sure there's no extra backedges from irreducible + regions feeding the header. Mark the destination block + executable. + +2018-09-03 Martin Liska + + PR driver/83193 + * common/common-target.def: Add TARGET_GET_VALID_OPTION_VALUES. + * common/common-targhooks.c (default_get_valid_option_values): + New function. + * common/common-targhooks.h (default_get_valid_option_values): + Likewise. + * common/config/i386/i386-common.c: Move processor_target_table + from i386.c. + (ix86_get_valid_option_values): New function. + (TARGET_GET_VALID_OPTION_VALUES): New macro. + * config/i386/i386.c (struct ptt): Move to i386-common.c. + (PTA_*): Move all defined masks into i386-common.c. + (ix86_function_specific_restore): Use new processor_cost_table. + * config/i386/i386.h (struct ptt): Moved from i386.c. + (struct pta): Likewise. + * doc/tm.texi: Document new TARGET_GET_VALID_OPTION_VALUES. + * doc/tm.texi.in: Likewise. + * opt-suggestions.c (option_proposer::suggest_option): + Pass prefix to build_option_suggestions. + (option_proposer::get_completions): Likewise. + (option_proposer::build_option_suggestions): Use the new target + hook. + * opts.c (struct option_help_tuple): New struct. + (print_filtered_help): Use the new target hook. + +2018-09-03 Martin Liska + + PR middle-end/59521 + * predict.c (set_even_probabilities): Add likely_edges + argument and handle cases where we have precisely one + likely edge. + (combine_predictions_for_bb): Catch also likely_edges. + (tree_predict_by_opcode): Handle gswitch statements. + * tree-cfg.h (find_case_label_for_value): New declaration. + (find_taken_edge_switch_expr): Likewise. + * tree-switch-conversion.c (switch_decision_tree::balance_case_nodes): + Find pivot in decision tree based on probabily, not by number of + nodes. + +2018-09-02 Gerald Pfeifer + + * doc/standards.texi (Standards): Update Objective-C reference. + +2018-09-01 Gerald Pfeifer + + * doc/install.texi (Prerequisites): Update link for MPC. + +2018-09-01 Michael Matz + + PR tree-optimization/87074 + * gimple-loop-jam.c (unroll_jam_possible_p): Check loop exit + PHIs for outer-loop uses. + +2018-09-01 Gerald Pfeifer + + * doc/generic.texi (OpenMP): Adjust link to openmp.org. + * doc/invoke.texi (C Dialect Options): Ditto. + +2018-09-01 Gerald Pfeifer + + * doc/install.texi (Prerequisites): Adjust link mpfr.org. + +2018-08-31 Richard Biener + + PR tree-optimization/87168 + * tree-ssa-sccvn.c (SSA_VAL): Add visited output parameter. + (rpo_elim::eliminate_avail): When OP was not visited it must + be available. + +2018-08-31 David Malcolm + + * tree-vrp.c (copy_value_range): Convert param "from" from + "value_range *" to "const value_range *". + (range_is_null): Likewise for param "vr". + (range_int_cst_p): Likewise. + (range_int_cst_singleton_p): Likewise. + (symbolic_range_p): Likewise. + (value_ranges_intersect_p): Likewise for both params. + (value_range_nonnegative_p): Likewise for param "vr". + (value_range_constant_singleton): Likewise. + (vrp_set_zero_nonzero_bits): Likewise for param "ar". + (extract_range_into_wide_ints): Likewise for param "vr". + (extract_range_from_multiplicative_op): Likewise for params "vr0" + and "vr1". + (vrp_can_optimize_bit_op): Likewise. + (extract_range_from_binary_expr_1): Likewise for params "vr0_" and + "vr1_". + (extract_range_from_unary_expr): Likewise. + (debug_value_range): Likewise for param "vr". + (value_range::dump): Add "const" qualifier. + (vrp_prop::check_array_ref): Convert local "vr" from + "value_range *" to "const value_range *". + (vrp_prop::check_mem_ref): Likewise. + (vrp_prop::visit_stmt): Likewise for local "old_vr". + (vrp_intersect_ranges_1): Likewise for param "vr_1". + (vrp_intersect_ranges): Likewise. + (simplify_stmt_for_jump_threading): Likewise for local "vr". + (vrp_prop::vrp_finalize): Likewise. + * tree-vrp.h (value_range::dump): Add "const" qualifier. + (vrp_intersect_ranges): Add "const" qualifier to params as above. + (extract_range_from_unary_expr): Likewise. + (value_range_constant_singleton): Likewise. + (symbolic_range_p): Likewise. + (copy_value_range): Likewise. + (extract_range_from_binary_expr_1): Likewise. + (range_int_cst_p): Likewise. + (vrp_set_zero_nonzero_bits): Likewise. + (range_int_cst_singleton_p): Likewise. + +2018-08-31 Vlad Lazar + + * config/aarch64/arm_neon.h (vabsd_s64): New. + (vnegd_s64): Likewise. + +2018-08-31 Martin Jambor + + * ipa-cp.c (estimate_local_effects): Replace wrong MAX with MIN. + +2018-08-31 Martin Liska + + * ipa-icf.c (sem_item::add_type): Use + sem_item::m_type_hash_cache. + * ipa-icf.h: Move the cache from sem_item_optimizer + to sem_item. + +2018-08-31 Nathan Sidwell + + * doc/extend.texi (Backwards Compatibility): Remove implicit + extern C leeway of () being (...). + +2018-08-31 Kyrylo Tkachov + + * ipa-inline.c (can_inline_edge_by_limits_p): Fix typos in comment. + +2018-08-31 Segher Boessenkool + + PR target/86684 + PR target/87149 + * config/rs6000/rs6000.md (lrounddi2): Gate on TARGET_FPRND. + +2018-08-31 Jakub Jelinek + + PR middle-end/87138 + * expmed.c (expand_mult_const): Use immed_wide_int_const instead of + gen_int_mode. Formatting fixes. + +2018-08-30 Sandra Loosemore + + * target.def (custom_function_descriptors): Improve documentation. + * doc/tm.texi.in (Trampolines): Expand discussion of function + descriptors and move TARGET_CUSTOM_FUNCTION_DESCRIPTORS to the + beginning of the section. + * doc/tm.texi: Regenerated. + +2018-08-30 Jose E. Marchesi + + * cfg.h (class auto_edge_flag): Spell out the template-id of the + base class in the initializer list. This is a workaround for + building with older GCC. + (class auto_bb_flag): Likewise. + +2018-08-30 Aaron Sawdey + + * config/rs6000/altivec.md (altivec_eq): Remove star. + (altivec_vcmpequ_p): Remove star. + * config/rs6000/rs6000-string.c (do_load_for_compare): Support + vector load modes. + (expand_strncmp_vec_sequence): New function. + (emit_final_str_compare_vec): New function. + (expand_strn_compare): Add support for vector strncmp. + * config/rs6000/rs6000.opt (-mstring-compare-inline-limit): Change + length specification to bytes. + * config/rs6000/vsx.md (vsx_ld_elemrev_v16qi_internal): Remove star. + (vcmpnezb_p): New pattern. + * doc/invoke.texi (RS/6000 and PowerPC Options): Update documentation + for option -mstring-compare-inline-limit. + +2018-08-30 Thiago Macieira + + * config/i386/i386.c (PTA_WESTMERE): Remove PTA_AES. + (PTA_SKYLAKE): Add PTA_AES. + (PTA_GOLDMONT): Likewise. + +2018-08-29 Jan Hubicka + + PR lto/86517 + * lto-opts.c (lto_write_options): Always stream PIC/PIE mode. + * lto-wrapper.c (merge_and_complain): Fix merging of PIC/PIE. + +2018-08-29 Jan Hubicka + + * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not follow + TYPE_STUB_DECL. + (hash_tree): Do not visit TYPE_STUB_DECL. + * tree-streamer-out.c (write_ts_type_common_tree_pointers): Do not + stream TYPE_STUB_DECL. + * tree-streamer-in.c (lto_input_ts_type_common_tree_pointers): Likewise. + * ipa-utils.h (type_with_linkage_p): Do not rely on TYPE_STUB_DECL + after free_lang_data. + (type_in_anonymous_namespace_p): Likewise. + +2018-08-29 Jan Hubicka + + * sreal.h (SREAL_PART_BITS): Change to 31; remove seemingly unnecessary + comment that it has to be even number. + (class sreal): Change m_sig type to int32_t. + * sreal.c (sreal::dump, sreal::to_int, opreator+, operator-): Use + int64_t for temporary calculations. + (sreal_verify_basics): Drop one bit from minimum and maximum. + +2018-08-30 Richard Biener + + PR tree-optimization/87147 + * tree-ssa-sccvn.c (SSA_VISITED): New function. + (visit_phi): When the degenerate result is from the backedge and + we didn't visit its definition yet drop to VARYING. + (do_rpo_vn): Properly mark blocks with incoming backedges as executable. + +2018-08-29 Jan Hubicka + + * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not walk + DECL_VINDEX. + (hash_tree): Likewise. + +2018-08-29 Jan Hubicka + + * tree.c (find_decls_types_r): Walk also TYPE_NEXT_PTR_TO + and TYPE_NEXT_REF_TO. + +2018-08-29 Jan Hubicka + + * sreal.h (SREAL_PART_BITS): Change to 31; remove seemingly unnecessary + comment that it has to be even number. + (class sreal): Change m_sig type to int32_t. + * sreal.c (sreal::dump, sreal::to_int, opreator+, operator-): Use + int64_t for temporary calculations. + (sreal_verify_basics): Drop one bit from minimum and maximum. + +2018-08-30 Tamar Christina + + * config/aarch64/aarch64.c (aarch64_expand_movmem): Set TImode max. + +2018-08-30 Vlad Lazar + + PR middle-end/86995 + * expmed.c (canonicalize_comparison): Use wi::sub instead of wi::add + if to_add is negative. + +2018-08-29 Bernd Edlinger + + PR middle-end/87053 + * builtins.c (c_strlen): Improve range checks. + +2018-08-29 Martin Sebor + Jeff Law + + PR tree-optimization/86714 + PR tree-optimization/86711 + * builtins.c (c_strlen): Add arguments to call to string_constant. + * expr.c (string_constant): Add argument. Detect missing nul + terminator and outermost declaration it's missing in. + * expr.h (string_constant): Add argument. + * fold-const.c (read_from_constant_string): Add arguments to call to + string_constant. + (c_getstr): Likewise. + * tree-ssa-forwprop.c (simplify_builtin_call): Likewise. + to string_constant. + * tree-ssa-strlen.c (get_stridx): Likewise. + +2018-08-29 Jan Hubicka + + * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): + Do not stream DECL_VINDEX. + * tree-streamer-out.c (write_ts_function_decl_tree_pointers): Likewise. + * tree.c (free_lang_data_in_decl): Clear DECL_VINDEX. + (decl_function_context): Use DECL_VIRTUAL_P rather than DECL_VINDEX. + +2018-08-29 Richard Biener + + * tree-ssa-sccvn.c (vuse_ssa_val): Return NULL for unvisited + virtual operands that are not default defs to honor region + boundaries. + (rpo_vn_valueize): Remove ineffective code here. + +2018-08-29 Richard Biener + + PR tree-optimization/87132 + * tree-ssa-alias.c (get_continuation_for_phi): Do not translate + when skipping defs reachable over backedges. + +2018-08-29 Richard Biener + + * tree-core.h: Document use of deprecated_flag in SSA_NAME. + * tree.h (SSA_NAME_POINTS_TO_READONLY_MEMORY): Define. + * tree-into-ssa.c (pass_build_ssa::execute): Initialize + function parameters SSA_NAME_POINTS_TO_READONLY_MEMORY from fnspec. + * tree-ssa-sccvn.c (const_parms, init_const_parms): Remove. + (vn_reference_lookup_3): Remove use of const_parms. + (free_rpo_vn): Do not free const_parms. + (do_rpo_vn): Do not call init_const_parms. + * tree-ssa-alias.c (refs_may_alias_p_1): Honor + SSA_NAME_POINTS_TO_READONLY_MEMORY. + (call_may_clobber_ref_p_1): Likewise. + +2018-08-29 Alexander Monakov + + PR other/86726 + * invoke.texi (Optimization Options): List -ftree-scev-cprop. + (-O): Ditto. + (-ftree-scev-cprop): Document. + +2018-08-29 Jan Hubicka + + * sreal.h (normalize, normalize_up, normalize_down): Add new_sig/new_exp + parameters. + (sreal constructor): Update. + * sreal.c (sreal:operator+, sreal:operator-, sreal:operator*, + sreal:operator/): Update. + +2018-08-29 Martin Liska + + * tree-switch-conversion.c (switch_conversion::expand): + Strenghten assumption about gswitch statements. + +2018-08-29 Richard Biener + + PR tree-optimization/87117 + * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only + re-value-number released SSA VDEFs. + +2018-08-29 Richard Biener + + PR tree-optimization/87126 + * tree-ssa-sccvn.c (vn_reference_insert): Remove assert. + +2018-08-28 Jim Wilson + + * config/riscv/pic.md: Rewrite. + * config/riscv/riscv.c (riscv_address_insns): Return cost of 3 for + invalid address. + * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Delete. + (SOFTF, default_load, softload, softstore): New. + +2018-08-28 Jeff Law + + * fold-const.c (fold_binary_loc): Remove recently added assert. + +2018-08-28 Joern Rennecke + + * genpreds.c (write_predicate_subfunction): Also add ATTRIBUTE_UNUSED + to OP parmeter of generated function. + +2018-08-28 MCC CS + + PR tree-optimization/87009 + * match.pd: Add boolean optimizations. + +2018-08-28 Martin Sebor + + PR middle-end/86631 + * calls.c (alloc_max_size): Treat HOST_WIDE_INT special. + * gimple-ssa-warn-alloca.c (adjusted_warn_limit): New function. + (pass_walloca::gate): Use it. + (alloca_call_type): Same. + (pass_walloca::execute): Same. + * stor-layout.c (layout_decl): Treat HOST_WIDE_INT special. + +2018-08-28 David Malcolm + + * dumpfile.h (ATTRIBUTE_GCC_DUMP_PRINTF): Change version check on + GCC_VERSION for usage of "__gcc_dump_printf__" format from + >= 3005 to >= 9000. + +2018-08-28 Richard Biener + + PR tree-optimization/87124 + * tree-ssa-sccvn.c (vn_lookup_simplify_result): Guard against + constants before looking up avail. + +2018-08-28 Jakub Jelinek + + PR middle-end/87099 + * calls.c (maybe_warn_nonstring_arg): Punt early if + warn_stringop_overflow is zero. Don't call get_range_strlen + on 3rd argument, keep iterating until lenrng[1] is INTEGER_CST. + Swap comparison operands to have constants on rhs. Only use + lenrng[1] if non-NULL and INTEGER_CST. Don't uselessly + increment lenrng[0]. + +2018-08-28 Richard Sandiford + + * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Fix unguarded + use of tree_to_shwi. Remove duplicated test for the size being + a whole number of bytes. + +2018-08-28 Richard Biener + + PR tree-optimization/87117 + * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_cleanup): + Handle removed stmt without LHS (GIMPLE_NOP). + +2018-08-28 Richard Biener + + PR tree-optimization/87117 + * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Exclude + void which is is_gimple_reg_type by checking for COMPLETE_TYPE_P. + +2018-08-28 Richard Biener + + PR tree-optimization/87117 + * tree-ssa-pre.c (compute_avail): Do not make expressions + with predicated values available. + (get_expr_value_id): Assert we do not run into predicated value + expressions. + +2018-08-28 Richard Biener + + PR tree-optimization/87117 + * tree-ssa-operands.c (add_stmt_operand): STRING_CST may + get virtual operands. + (get_expr_operands): Handle STRING_CST like other decls. + +2018-08-28 Martin Liska + + * tree.h: Update documentation of fndecl_built_in_p + functions. + + +2018-08-27 Jeff Law + PR tree-optimization/87110 + * tree-ssa-dse.c (compute_trims): Handle non-constant + TYPE_SIZE_UNIT. + +2018-08-27 Martin Sebor + + PR tree-optimization/86914 + * tree-ssa-strlen.c (maybe_set_strlen_range): Avoid MEM_REF. + +2018-08-27 Martin Sebor + + PR tree-optimization/87112 + * builtins.c (expand_builtin_strnlen): Convert c_strlen result to + the type of the bound argument. + +2018-08-27 Jeff Law + + * tree-ssa-dse.c (compute_trims): Handle case where the reference's + type does not have a TYPE_SIZE_UNIT. + +2018-08-27 Steve Ellcey + + * config/aarch64/aarch64-speculation.cc: Replace include of cfg.h + with include of backend.h. + +2018-08-27 Richard Biener + + PR tree-optimization/86927 + * tree-vect-loop.c (vect_create_epilog_for_reduction): Properly + use const cond reduction code. + +2018-08-27 Alexander Monakov + + PR tree-optimization/85758 + * match.pd ((X & Y) ^ Y): Add :s qualifier to inner expression. + +2018-08-27 David Malcolm + + PR c++/87091 + * diagnostic-show-locus.c (class layout_range): Update for + conversion of show_caret_p to a tri-state. + (layout_range::layout_range): Likewise. + (make_range): Likewise. + (layout::maybe_add_location_range): Likewise. + (layout::should_print_annotation_line_p): Don't show annotation + lines for ranges that are SHOW_LINES_WITHOUT_RANGE. + (layout::get_state_at_point): Update for conversion of + show_caret_p to a tri-state. Bail out early for + SHOW_LINES_WITHOUT_RANGE, so that such ranges don't affect + underlining or source colorization. + (gcc_rich_location::add_location_if_nearby): Update for conversion + of show_caret_p to a tri-state. + (selftest::test_one_liner_multiple_carets_and_ranges): Likewise. + (selftest::test_one_liner_fixit_replace_equal_secondary_range): + Likewise. + (selftest::test_one_liner_labels): Likewise. + * gcc-rich-location.c (gcc_rich_location::add_expr): Update for + conversion of show_caret_p to a tri-state. + * pretty-print.c (text_info::set_location): Likewise. + * pretty-print.h (text_info::set_location): Likewise. + * substring-locations.c (format_warning_n_va): Likewise. + * tree-diagnostic.c (default_tree_printer): Likewise. + * tree-pretty-print.c (newline_and_indent): Likewise. + +2018-08-27 David Malcolm + + PR c++/87091 + * diagnostic-show-locus.c (get_line_span_for_fixit_hint): Show the + line above for line-insertion fix-it hints. + (selftest::test_fixit_insert_containing_newline): Update the + expected results, and add a test with line-numbering enabled. + +2018-08-27 Martin Liska + + PR sanitizer/86962 + * sanopt.c (sanitize_rewrite_addressable_params): Ignore + params with DECL_HAS_VALUE_EXPR_P. + +2018-08-27 Martin Liska + + * config/i386/i386.c (ix86_expand_set_or_movmem): Dump + selected expansion strategy. + +2018-08-27 Martin Liska + + * builtins.h (is_builtin_fn): Remove and fndecl_built_in_p. + * builtins.c (is_builtin_fn): Likewise. + * attribs.c (diag_attr_exclusions): Use new function + fndecl_built_in_p and remove check for FUNCTION_DECL if + possible. + (builtin_mathfn_code): Likewise. + (fold_builtin_expect): Likewise. + (fold_call_expr): Likewise. + (fold_builtin_call_array): Likewise. + (fold_call_stmt): Likewise. + (set_builtin_user_assembler_name): Likewise. + (is_simple_builtin): Likewise. + * calls.c (gimple_alloca_call_p): Likewise. + (maybe_warn_nonstring_arg): Likewise. + * cfgexpand.c (expand_call_stmt): Likewise. + * cgraph.c (cgraph_update_edges_for_call_stmt_node): Likewise. + (cgraph_edge::verify_corresponds_to_fndecl): Likewise. + (cgraph_node::verify_node): Likewise. + * cgraphclones.c (build_function_decl_skip_args): Likewise. + (cgraph_node::create_clone): Likewise. + * config/arm/arm.c (arm_insert_attributes): Likewise. + * config/i386/i386.c (ix86_gimple_fold_builtin): Likewise. + * dse.c (scan_insn): Likewise. + * expr.c (expand_expr_real_1): Likewise. + * fold-const.c (operand_equal_p): Likewise. + (fold_binary_loc): Likewise. + * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise. + * gimple-low.c (lower_stmt): Likewise. + * gimple-pretty-print.c (dump_gimple_call): Likewise. + * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): + Likewise. + * gimple.c (gimple_build_call_from_tree): Likewise. + (gimple_call_builtin_p): Likewise. + (gimple_call_combined_fn): Likewise. + * gimplify.c (gimplify_call_expr): Likewise. + (gimple_boolify): Likewise. + (gimplify_modify_expr): Likewise. + (gimplify_addr_expr): Likewise. + * hsa-gen.c (gen_hsa_insns_for_call): Likewise. + * ipa-cp.c (determine_versionability): Likewise. + * ipa-fnsummary.c (compute_fn_summary): Likewise. + * ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise. + * ipa-split.c (visit_bb): Likewise. + (split_function): Likewise. + * ipa-visibility.c (cgraph_externally_visible_p): Likewise. + * lto-cgraph.c (input_node): Likewise. + * lto-streamer-out.c (write_symbol): Likewise. + * omp-low.c (setjmp_or_longjmp_p): Likewise. + (lower_omp_1): Likewise. + * predict.c (strip_predict_hints): Likewise. + * print-tree.c (print_node): Likewise. + * symtab.c (symtab_node::output_to_lto_symbol_table_p): Likewise. + * trans-mem.c (is_tm_irrevocable): Likewise. + (is_tm_load): Likewise. + (is_tm_simple_load): Likewise. + (is_tm_store): Likewise. + (is_tm_simple_store): Likewise. + (is_tm_abort): Likewise. + (tm_region_init_1): Likewise. + * tree-call-cdce.c (gen_shrink_wrap_conditions): Likewise. + * tree-cfg.c (verify_gimple_call): Likewise. + (move_stmt_r): Likewise. + (stmt_can_terminate_bb_p): Likewise. + * tree-eh.c (lower_eh_constructs_2): Likewise. + * tree-if-conv.c (if_convertible_stmt_p): Likewise. + * tree-inline.c (remap_gimple_stmt): Likewise. + (copy_bb): Likewise. + (estimate_num_insns): Likewise. + (fold_marked_statements): Likewise. + * tree-sra.c (scan_function): Likewise. + * tree-ssa-ccp.c (surely_varying_stmt_p): Likewise. + (optimize_stack_restore): Likewise. + (pass_fold_builtins::execute): Likewise. + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. + (mark_all_reaching_defs_necessary_1): Likewise. + * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Likewise. + * tree-ssa-forwprop.c (simplify_builtin_call): Likewise. + (pass_forwprop::execute): Likewise. + * tree-ssa-loop-im.c (stmt_cost): Likewise. + * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. + * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Likewise. + * tree-ssa-strlen.c (get_string_length): Likewise. + * tree-ssa-structalias.c (handle_lhs_call): Likewise. + (find_func_aliases_for_call): Likewise. + * tree-ssa-ter.c (find_replaceable_in_bb): Likewise. + * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Likewise. + * tree-tailcall.c (find_tail_calls): Likewise. + * tree.c (need_assembler_name_p): Likewise. + (free_lang_data_in_decl): Likewise. + (get_call_combined_fn): Likewise. + * ubsan.c (is_ubsan_builtin_p): Likewise. + * varasm.c (incorporeal_function_p): Likewise. + * tree.h (DECL_BUILT_IN): Remove and replace with + fndecl_built_in_p. + (DECL_BUILT_IN_P): Transfort to fndecl_built_in_p. + (fndecl_built_in_p): New. + +2018-08-27 Martin Liska + + PR tree-optimization/86847 + * tree-switch-conversion.c (switch_decision_tree::dump_case_nodes): + Dump also subtree probability. + (switch_decision_tree::do_jump_if_equal): New function. + (switch_decision_tree::emit_case_nodes): Handle special + situations in balanced tree that can be emitted much simpler. + Fix calculation of probabilities that happen in tree expansion. + * tree-switch-conversion.h (struct cluster): Add + is_single_value_p. + (struct simple_cluster): Likewise. + (struct case_tree_node): Add new function has_child. + (do_jump_if_equal): New. + +2018-08-27 Martin Liska + + * tree-switch-conversion.c (bit_test_cluster::find_bit_tests): + Add new argument to bit_test_cluster constructor. + (bit_test_cluster::emit): Set bits really number of values + handlel by a test. + (bit_test_cluster::hoist_edge_and_branch_if_true): Add + probability argument. + * tree-switch-conversion.h (struct bit_test_cluster): + Add m_handles_entire_switch. + +2018-08-27 Martin Liska + + PR tree-optimization/86702 + * tree-switch-conversion.c (jump_table_cluster::emit): + Make probabilities even for values in jump table + according to number of cases handled. + (switch_decision_tree::compute_cases_per_edge): Pass + argument to reset_out_edges_aux function. + (switch_decision_tree::analyze_switch_statement): Likewise. + * tree-switch-conversion.h (switch_decision_tree::reset_out_edges_aux): + Make it static. + +2018-08-27 Martin Liska + + * cfgexpand.c (expand_asm_stmt): Use label_to_block and pass + cfun argument explicitly. + * gimple-pretty-print.c (dump_gimple_switch): Likewise. + * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Use new + function gimple_switch_default_bb. + (convert_switch_statements): + (expand_builtins): + * ipa-fnsummary.c (set_switch_stmt_execution_predicate): + * stmt.c (label_to_block_fn): Use label_to_block and pass + cfun argument explicitly and use gimple_switch_label_bb. + (expand_case): Likewise. + * tree-cfg.c (lower_phi_internal_fn): Use label_to_block and pass + cfun argument explicitly. Likewise. + (make_edges_bb): Likewise. + (make_cond_expr_edges): Likewise. + (get_cases_for_edge): Likewise. + (make_gimple_switch_edges): Likewise. + (label_to_block_fn): Likewise. + (label_to_block): Likewise. + (make_goto_expr_edges): Likewise. + (make_gimple_asm_edges): Likewise. + (main_block_label): Likewise. + (group_case_labels_stmt): Likewise. + (find_taken_edge_computed_goto): Likewise. + (find_taken_edge_switch_expr): Likewise. + (gimple_verify_flow_info): Likewise. + (gimple_redirect_edge_and_branch): Likewise. + (gimple_switch_label_bb): New function. + (gimple_switch_default_bb): Likewise. + (gimple_switch_edge): Likewise. + (gimple_switch_default_edge): Likewise. + * tree-cfg.h (label_to_block_fn): Remove and replace ... + (label_to_block): ... with this. + (gimple_switch_label_bb): New. + (gimple_switch_default_bb): Likewise. + (gimple_switch_edge): Likewise. + (gimple_switch_default_edge): Likewise. + * tree-cfgcleanup.c (convert_single_case_switch): Use + new gimple functions and pass new argument to label_to_block. + (cleanup_control_flow_bb): + * tree-eh.c (make_eh_dispatch_edges): Use label_to_block and pass + cfun argument explicitly. + (make_eh_edges): Likewise. + (redirect_eh_dispatch_edge): Likewise. + (lower_resx): Likewise. + (lower_eh_dispatch): Likewise. + (maybe_remove_unreachable_handlers): Likewise. + (unsplit_eh): Likewise. + (cleanup_empty_eh): Likewise. + (verify_eh_edges): Likewise. + (verify_eh_dispatch_edge): Likewise. + * tree-ssa-dom.c (record_edge_info): Likewise. + * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): Likewise. + * tree-ssa-threadedge.c (thread_around_empty_blocks): Likewise. + (thread_through_normal_block): Likewise. + * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise. + * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): + * tree-switch-conversion.c (switch_conversion::collect): Use new + gimple functions. + (switch_conversion::check_final_bb): Likewise. + (switch_conversion::gather_default_values): Pass new argument + to label_to_block. + (switch_conversion::build_constructors): Likewise. + (switch_decision_tree::compute_cases_per_edge): Use new + gimple_switch_edge function. + (switch_decision_tree::analyze_switch_statement): Pass new argument + to label_to_block. + (switch_decision_tree::try_switch_expansion): Use + gimple_switch_default_edge. + * tree-vrp.c (find_switch_asserts): Pass new argument + to label_to_block. + * vr-values.c (vr_values::vrp_visit_switch_stmt): Likewise. + (vr_values::simplify_switch_using_ranges): Likewise. + +2018-08-27 Richard Biener + + * cfganal.h (rev_post_order_and_mark_dfs_back_seme): Declare. + * cfganal.c (rev_post_order_and_mark_dfs_back_seme): New function. + + * tree-ssa-sccvn.h (struct vn_pval): New structure. + (struct vn_nary_op_s): Add unwind_to member. Add + predicated_values flag and put result into a union together + with a linked list of vn_pval. + (struct vn_ssa_aux): Add name member to make maintaining + a map of SSA name to vn_ssa_aux possible. Remove no longer + needed info, dfsnum, low, visited, on_sccstack, use_processed + and range_info_anti_range_p members. + (run_scc_vn, vn_eliminate, free_scc_vn, vn_valueize): Remove. + (do_rpo_vn, run_rpo_vn, eliminate_with_rpo_vn, free_rpo_vn): + New functions. + (vn_valueize): New global. + (vn_context_bb): Likewise. + (VN_INFO_RANGE_INFO, VN_INFO_ANTI_RANGE_P, VN_INFO_RANGE_TYPE, + VN_INFO_PTR_INFO): Remove. + * tree-ssa-sccvn.c: ... (rewrite) + (pass_fre::execute): For -O2+ initialize loops and run + RPO VN in optimistic mode (iterating). For -O1 and -Og + run RPO VN in non-optimistic mode. + * params.def (PARAM_SCCVN_MAX_SCC_SIZE): Remove. + (PARAM_RPO_VN_MAX_LOOP_DEPTH): Add. + * doc/invoke.texi (sccvn-max-scc-size): Remove. + (rpo-vn-max-loop-depth): Document. + * tree-ssa-alias.c (walk_non_aliased_vuses): Stop walking + when valuezing the VUSE signals we walked out of the region. + * tree-ssa-pre.c (phi_translate_1): Ignore predicated values. + (phi_translate): Set VN context block to use for availability + lookup. + (compute_avail): Likewise. + (pre_valueize): New function. + (pass_pre::execute): Adjust to the RPO VN API. + + * tree-ssa-loop-ivcanon.c: Include tree-ssa-sccvn.h. + (propagate_constants_for_unrolling): Remove. + (tree_unroll_loops_completely): Perform value-numbering + on the unrolled bodies loop parent. + +2018-08-27 Richard Biener + + * tree-ssa-pre.c (compute_antic): Re-use inverted postorder + for partial antic compute. + +2018-08-27 Jakub Jelinek + + PR rtl-optimization/87065 + * combine.c (simplify_if_then_else): Formatting fix. + (if_then_else_cond): Guard MULT optimization with SCALAR_INT_MODE_P + check. + (known_cond): Don't return const_true_rtx for vector modes. Use + CONST0_RTX instead of const0_rtx. Formatting fixes. + +2018-08-27 Martin Liska + + PR gcov-profile/87069 + * gcov.c (process_file): Record files already processed + and warn about a file being processed multiple times. + +2018-08-27 Martin Liska + + PR driver/83193 + * config/aarch64/aarch64.c (aarch64_override_options_internal): + Set default values for x_aarch64_*_string strings. + * config/aarch64/aarch64.opt: Remove --{march,mcpu,mtune}== + prefix. For -mabi do not print '=ABI' in help and use + format for -msve-vector-bits and -moverride + options. + +2018-08-26 Jeff Law + + * config/mips/frame-header-opt.c: Include "backend.h" rather than + "cfg.h" + +2018-08-26 Marek Polacek + + PR c++/87029, Implement -Wredundant-move. + * doc/invoke.texi: Document -Wredundant-move. + +2018-08-25 Martin Sebor + + PR tree-optimization/87059 + * builtins.c (expand_builtin_strncmp): Convert MIN_EXPR operand + to the same type as the other. + * fold-const.c (fold_binary_loc): Assert expectation. + +2018-08-25 Iain Sandoe + + * config/darwin.c (machopic_legitimize_pic_address): Clean up + extraneous parentheses, dead code section and formatting. + +2018-08-24 David Malcolm + + PR c++/87091 + * diagnostic-show-locus.c (layout::layout): Ensure the margin is + wide enough for jumps in the line-numbering to be visible. + (layout::print_gap_in_line_numbering): New member function. + (layout::calculate_line_spans): When using line numbering, merge + line spans that are only 1 line apart. + (diagnostic_show_locus): When printing line numbers, show gaps in + line numbering directly, rather than printing headers. + (selftest::test_diagnostic_show_locus_fixit_lines): Add test of + line-numbering with multiple line spans. + (selftest::test_fixit_insert_containing_newline_2): Add test of + line-numbering, in which the spans are close enough to be merged. + +2018-08-24 Aldy Hernandez + + * gimple-ssa-evrp-analyze.c (set_ssa_range_info): Pass value_range + to range_includes_zero_p. Do not special case VR_ANTI_RANGE. + * tree-vrp.c (range_is_nonnull): Remove. + (range_includes_zero_p): Accept value_range instead of min/max. + (extract_range_from_binary_expr_1): Do not early bail on + POINTER_PLUS_EXPR. + Use range_includes_zero_p instead of range_is_nonnull. + (extract_range_from_unary_expr): Use range_includes_zero_p instead + of range_is_nonnull. + (vrp_meet_1): Pass value_range to range_includes_zero_p. Do not + special case VR_ANTI_RANGE. + (vrp_finalize): Same. + * tree-vrp.h (range_includes_zero_p): Pass value_range as argument + instead of min/max. + (range_is_nonnull): Remove. + * vr-values.c (vrp_stmt_computes_nonzero): Use + range_includes_zero_p instead of range_is_nonnull. + (extract_range_basic): Pass value_range to range_includes_zero_p + instead of range_is_nonnull. + +2018-08-24 Uros Bizjak + + * emit-rtl.c (init_emit_once): Do not emit MODE_POINTER_BOUNDS RTXes. + * emit-rtl.h (rtl_data): Remove return_bnd. + * explow.c (trunc_int_for_mode): Do not handle POINTER_BOUNDS_MODE_P. + * function.c (diddle_return_value): Do not handle crtl->return_bnd. + * genmodes.c (complete_mode): Do not handle MODE_POINTER_BOUNDS. + (POINTER_BOUNDS_MODE): Remove definition. + (make_pointer_bounds_mode): Remove. + (get_mode_class): Do not handle MODE_POINTER_BOUNDS. + * machmode.h (POINTER_BOUNDS_MODE_P): Remove definition. + (scalare_mode::includes_p): Do not handle MODE_POINTER_BOUNDS. + * mode-classes.def: Do not define MODE_POINTER_BOUNDS. + * stor-layout.c (int_mode_for_mode): Do not handle MODE_POINTER_BOUNDS. + * tree-core.h (enum tree_index): Remove TI_POINTER_BOUNDS_TYPE. + * varasm.c (output_constant_pool_2): Do not handle MODE_POINTER_BOUNDS. + + * config/i386/i386-modes.def (BND32, BND64): Remove. + * config/i386/i386.c (dbx_register_map): Remove bound registers. + (dbx64_register_map): Ditto. + (svr4_dbx_register_map): Ditto. + (indirect_thunk_bnd_needed): Remove. + (indirect_thunks_bnd_used): Ditto. + (indirect_return_bnd_needed): Ditto. + (indirect_return_via_cx_bnd): Ditto. + (enum indirect_thunk_prefix): Remove indirect_thunk_prefix_bnd. + (indirect_thunk_name): Remove handling of indirect_thunk_prefix_bnd. + (output_indirect_thunk): Ditto. Remove need_prefix argument. + (output_indirect_thunk_function): Remove handling of + indirect_return_bnd_needed, indirect_return_via_cx_bnd, + indirect_thunk_bnd_needed and indirect_thunks_bnd_used variables. + (ix86_save_reg): Remove handling of crtl->return_bnd. + (ix86_legitimate_constant_p): Remove handling of POINTER_BOUNDS_MODE_P. + (ix86_print_operand_address_as): Remove handling of UNSPEC_BNDMK_ADDR + and UNSPEC_BNDLX_ADDR. + (ix86_output_indirect_branch_via_reg): Remove handling of + indirect_thunk_prefix_bnd. + (ix86_output_indirect_branch_via_push): Ditto. + (ix86_output_function_return): Ditto. + (ix86_output_indirect_function_return): Ditto. + (avoid_func_arg_motion): Do not handle UNSPEC_BNDSTX. + * config/i386/i386.h (FIXED_REGISTERS): Remove bound registers. + (CALL_USED_REGISTERS): Ditto. + (REG_ALLOC_ORDER): Update for removal of bound registers. + (HI_REGISTER_NAMES): Ditto. + * config/i386/i386.md (UNSPEC_BNDMK, UNSPEC_BNDMK_ADDR, UNSPEC_BNDSTX) + (UNSPEC_BNDLDX, UNSPEC_BNDLDX_ADDR, UNSPEC_BNDCL, UNSPEC_BNDCU) + (UNSPEC_BNDCN, UNSPEC_MPX_FENCE): Remove. + (BND0_REG, BND1_REG, BND2_REG, BND3_REG): Remove + (FIRST_PSEUDO_REG): Update. + (BND): Remove mode iterator. + * config/i386/predicates.md (bnd_mem_operator): Remove. + +2018-08-24 Richard Sandiford + + * tree-vect-stmts.c (vectorizable_bswap): Handle variable-length + vectors. + +2018-08-24 Richard Sandiford + + * tree-vect-slp.c (vect_transform_slp_perm_load): Separate out + the case in which the permute needs only a single element and + repeats for every vector of the result. Extend that case to + handle variable-length vectors. + * tree-vect-stmts.c (vectorizable_load): Update accordingly. + +2018-08-24 H.J. Lu + + PR debug/79342 + * dwarf2out.c (save_macinfo_strings): Call set_indirect_string + on DW_MACINFO_start_file for -gsplit-dwarf -g3. + +2018-08-24 Richard Biener + + * cfg.h (struct control_flow_graph): Add edge_flags_allocated and + bb_flags_allocated members. + (auto_flag): New RAII class for allocating flags. + (auto_edge_flag): New RAII class for allocating edge flags. + (auto_bb_flag): New RAII class for allocating bb flags. + * cfgloop.c (verify_loop_structure): Allocate temporary edge + flag dynamically. + * cfganal.c (dfs_enumerate_from): Remove use of visited sbitmap + in favor of temporarily allocated BB flag. + * hsa-brig.c: Re-order includes. + * hsa-dump.c: Likewise. + * hsa-regalloc.c: Likewise. + * print-rtl.c: Likewise. + * profile-count.c: Likewise. + +2018-08-24 Segher Boessenkool + + PR target/86989 + * config/rs6000/rs6000.c (toc_relative_expr_p): Check that the base is + the TOC register. + +2018-08-24 Aldy Hernandez + + PR 87073/bootstrap + * wide-int-range.cc (wide_int_range_div): Do not ignore result + from wide_int_range_multiplicative_op. + +2018-08-23 Prathamesh Kulkarni + + * tree-vect-data-refs.c (vect_grouped_store_supported): Fix typo + "permutaion". + +2018-08-23 Giuliano Belinassi + + * genmatch.c (parser::parse_operation): Fix typo 'exapnded' + to 'expanded'. + +2018-08-23 Alexander Monakov + + * tree-scalar-evolution.c (final_value_replacement_loop): Dump + full GENERIC expression used for replacement. + +2018-08-23 Aldy Hernandez + + * tree-vrp.c (abs_extent_range): Remove. + (extract_range_into_wide_ints): Pass wide ints by reference. + (extract_range_from_binary_expr_1): Rewrite the *DIV_EXPR code. + Pass wide ints by reference in all calls to + extract_range_into_wide_ints. + * wide-int-range.cc (wide_int_range_div): New. + * wide-int-range.h (wide_int_range_div): New. + (wide_int_range_includes_zero_p): New. + (wide_int_range_zero_p): New. + +2018-08-23 Matthew Malcomson + + * config/aarch64/aarch64.md (arches): New enum. + (arch): New enum attr. + (arch_enabled): New attr. + (enabled): Now uses arch_enabled only. + (simd, sve, fp16): Removed attribute. + (fp): Attr now defined in terms of 'arch'. + (*mov_aarch64, *movsi_aarch64, *movdi_aarch64, *movti_aarch64, + *movhf_aarch64, 2, + 3, + 3): Merge 'fp' and 'simd' + attributes into 'arch'. + (*movsf_aarch64, *movdf_aarch64, *movtf_aarch64, *add3_aarch64, + subdi3, neg2, 3, one_cmpl2, + *_one_cmpl3, *xor_one_cmpl3, + *aarch64_ashl_sisd_or_int_3, *aarch64_lshr_sisd_or_int_3, + *aarch64_ashr_sisd_or_int_3, *aarch64_sisd_ushl): Convert use of + 'simd' attribute into 'arch'. + (load_pair_sw_, load_pair_dw_, + store_pair_sw_, store_pair_dw_): + Convert use of 'fp' attribute to 'arch'. + * config/aarch64/aarch64-simd.md (move_lo_quad_internal_, + move_lo_quad_internal_): (different modes) Merge 'fp' and 'simd' + into 'arch'. + (move_lo_quad_internal_be_, move_lo_quad_internal_be_): + (different modes) Merge 'fp' and 'simd' into 'arch'. + (*aarch64_combinez, *aarch64_combinez_be): Merge 'fp' and + 'simd' into 'arch'. + +2018-08-23 Segher Boessenkool + + PR rtl-optimization/87026 + * expmed.c (canonicalize_comparison): If we can no longer create + pseudoregisters, don't. + +2018-08-23 Richard Earnshaw + + PR target/86951 + * config/arm/arm-protos.h (arm_emit_speculation_barrier): New + prototype. + * config/arm/arm.c (speculation_barrier_libfunc): New static + variable. + (arm_init_libfuncs): Initialize it. + (arm_emit_speculation_barrier): New function. + * config/arm/arm.md (speculation_barrier): Call + arm_emit_speculation_barrier for architectures that do not have + DSB or ISB. + (speculation_barrier_insn): Only match on Armv7 or later. + +2018-08-23 Richard Biener + + PR middle-end/87024 + * tree-inline.c (copy_bb): Drop unused __builtin_va_arg_pack_len + calls. + +2018-08-23 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_evpc_sve_tbl): Fix handling + of single-vector TBLs. + (aarch64_vectorize_vec_perm_const): Set one_vector_p when only + one input is given. + +2018-08-23 Richard Sandiford + + PR target/85910 + * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Fix + aarch64_evpc_tbl guard. + +2018-08-22 Bernd Edlinger + + * tree-ssa-dse.c (compute_trims): Avoid folding away undefined + behaviour. + +2018-08-22 Martin Sebor + + PR middle-end/87052 + * tree-pretty-print.c (pretty_print_string): Add argument. + (dump_generic_node): Call to pretty_print_string with string size. + +2018-08-22 Segher Boessenkool + + PR rtl-optimization/86771 + * combine.c (try_combine): Do not allow splitting a resulting PARALLEL + of two SETs into those two SETs, one to be placed at i2, if that SETs + destination is modified between i2 and i3. + +2018-08-22 Richard Sandiford + + PR tree-optimization/86725 + * tree-vect-loop.c (vect_inner_phi_in_double_reduction_p): New + function. + (vect_analyze_scalar_cycles_1): Check it. + +2018-08-22 Richard Sandiford + + PR tree-optimization/86725 + * tree-vect-loop.c (vect_is_simple_reduction): When treating + an outer loop phi as a double reduction, make sure that the + single user of the phi result is an inner loop phi. + +2018-08-22 Richard Sandiford + + * tree-vect-data-refs.c (vect_analyze_group_access_1): Convert + grouped stores with gaps to a strided group. + +2018-08-22 Richard Sandiford + + * tree-vect-stmts.c (get_group_load_store_type) + (get_load_store_type): Only test STMT_VINFO_STRIDED_P for the + first statement in a group. + +2018-08-22 Iain Sandoe + + * config/darwin.h (LINK_COMMAND_SPEC_A): Sync LTO options with + the sequence used in gcc/gcc.c. + +2018-08-22 Iain Sandoe + + PR other/704 + * gcc-ar.c (main): Don’t try to invoke the plug-in if we’re not + building it. + +2018-08-22 Iain Sandoe + + * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Adjust to use the + Darwin10-specific unwinder-shim. + * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Remove. + * config/rs6000/darwin.h (DARWIN_CRT1_SPEC, DARWIN_DYLIB1_SPEC): + New to cater for Darwin10 Rosetta. + +2018-08-22 Iain Sandoe + + * config/i386/i386.c (ix86_output_addr_diff_elt): Move the MACH-O + specific test before the one for HAVE_AS_GOTOFF_IN_DATA. + +2018-08-22 Iain Sandoe + + PR bootstrap/81033 + PR target/81733 + PR target/52795 + * gcc/dwarf2out.c (FUNC_SECOND_SECT_LABEL): New. + (dwarf2out_switch_text_section): Generate a local label for the + second function sub-section and apply it as the second FDE start + label. + * gcc/final.c (final_scan_insn_1): Emit second FDE label after the + second sub-section start. + +2018-08-22 Richard Biener + + PR tree-optimization/86988 + * tree-vrp.c (vrp_prop::check_mem_ref): Bail out on VLAs. + +2018-08-22 Richard Biener + + PR tree-optimization/86945 + * tree-cfg.c (generate_range_test): Use unsigned arithmetic. + +2018-08-22 Alexandre Oliva + + * config/rs6000/rs6000.c (SMALL_DATA_RELOC, SMALL_DATA_REG): Add + a comment about how uses of r2 for .sdata2 come about. + +2018-08-22 Alexandre Oliva + + * tree-ssa-reassoc.c (is_reassociable_op): Fix cut&pasto. + +2018-08-21 Marek Polacek + + PR c++/86981, Implement -Wpessimizing-move. + * doc/invoke.texi: Document -Wpessimizing-move. + +2018-08-21 Jan Hubicka + + * tree.c (find_decls_types_r): Do not check for redundant typedefs. + * tree.h (is_redundant_typedef): Remove. + * dwarf2out.c (is_redundant_typedef): Turn into static function. + +2018-08-21 Jan Hubicka + + * tree.c (free_lang_data_in_decl): Remove types from DECL_CONTEXT + when possible. + +2018-08-21 Tamar Christina + + * expmed.c (extract_low_bits): Reject invalid subregs early. + +2018-08-21 Bernd Edlinger + + PR middle-end/86121 + * tree-ssa-strlen.c (adjust_last_stmt): Avoid folding away undefined + behaviour. + +2018-08-21 Rasmus Villemoes + + * config/vxworks.h: Guard vxworks_asm_out_constructor and + vxworks_asm_out_destructor by !HAVE_INITFINI_ARRAY_SUPPORT + * config/vxworks.c: Likewise. + +2018-08-21 Rasmus Villemoes + + * config/vxworks.c: Set targetm.have_ctors_dtors + if HAVE_INITFINI_ARRAY_SUPPORT. + * config/vxworks.h: Set SUPPORTS_INIT_PRIORITY + if HAVE_INITFINI_ARRAY_SUPPORT. + +2018-08-21 Rasmus Villemoes + + * config/vxworks.h: Add $(WIND_BASE)/target/h/wrn/coreip to + default search path for VxWorks < 7. + +2018-08-21 Bernd Edlinger + + * gimple-ssa-sprintf.c (decl_constant_value): Remove. + (get_format_string): Refer to c_getstr. + +2018-08-21 Tom de Vries + + * cgraph.h (debuginfo_early_init, debuginfo_init, debuginfo_fini) + (debuginfo_start, debuginfo_stop, debuginfo_early_start) + (debuginfo_early_stop): Declare. + * cgraphunit.c (debuginfo_early_init, debuginfo_init, debuginfo_fini) + (debuginfo_start, debuginfo_stop, debuginfo_early_start) + (debuginfo_early_stop): New function. + (symbol_table::finalize_compilation_unit): Call debuginfo_early_start + and debuginfo_early_stop. + * dwarf2out.c (dwarf2out_finish, dwarf2out_early_finish): Dump dwarf. + * toplev.c (compile_file): Call debuginfo_start and debuginfo_stop. + (general_init): Call debuginfo_early_init. + (finalize): Call debuginfo_fini. + (do_compile): Call debuginfo_init. + * doc/invoke.texi (@gccoptlist): Add -fdump-debug and + -fdump-early-debug. + (@item -fdump-debug, @item -fdump-earlydebug): Add. + +2018-08-21 Tom de Vries + + * dwarf2out.c (print_dw_val, print_loc_descr, print_die): Handle + flag_dump_noaddr and flag_dump_unnumbered. + +2018-08-21 Aldy Hernandez + + * wide-int-range.cc (wide_int_range_abs): New. + (wide_int_range_order_set): Rename from wide_int_range_min_max. + * wide-int-range.h (wide_int_range_abs): New. + (wide_int_range_min_max): New. + * tree-vrp.c (extract_range_from_unary_expr): Rewrite ABS_EXPR + case to call wide_int_range_abs. + Rewrite MIN/MAX_EXPR to call wide_int_range_min_max. + (extract_range_from_abs_expr): Delete. + +2018-08-20 Michael Meissner + + PR target/87033 + * config/rs6000/rs6000.md (extendsi2): Change constraints + from 'Y' to 'YZ' to enable the LWAX instruction to be generated + for indexed loads. + +2018-08-20 Nathan Sidwell + Jeff Law + + * config/s390/s390-c (s390_macro_to_expand): Use cpp_macro_p. + * config/spu/spu-c.c (spu_macro_to_expand): Likewise. + +2018-08-20 David Malcolm + + PR other/84889 + * attribs.c (diag_attr_exclusions): Add auto_diagnostic_group instance. + (decl_attributes): Likewise. + * calls.c (maybe_warn_nonstring_arg): Add auto_diagnostic_group + instance. + * cgraphunit.c (maybe_diag_incompatible_alias): Likewise. + * diagnostic-core.h (class auto_diagnostic_group): New class. + * diagnostic.c (diagnostic_initialize): Initialize the new fields. + (diagnostic_report_diagnostic): Handle the first diagnostics within + a group. + (emit_diagnostic): Add auto_diagnostic_group instance. + (inform): Likewise. + (inform_n): Likewise. + (warning): Likewise. + (warning_at): Likewise. + (warning_n): Likewise. + (pedwarn): Likewise. + (permerror): Likewise. + (error): Likewise. + (error_n): Likewise. + (error_at): Likewise. + (sorry): Likewise. + (fatal_error): Likewise. + (internal_error): Likewise. + (internal_error_no_backtrace): Likewise. + (auto_diagnostic_group::auto_diagnostic_group): New ctor. + (auto_diagnostic_group::~auto_diagnostic_group): New dtor. + * diagnostic.h (struct diagnostic_context): Add fields + "diagnostic_group_nesting_depth", + "diagnostic_group_emission_count", "begin_group_cb", + "end_group_cb". + * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): + Add auto_diagnostic_group instance(s). + (find_explicit_erroneous_behavior): Likewise. + * gimple-ssa-warn-alloca.c (pass_walloca::execute): Likewise. + * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Likewise. + * gimplify.c (warn_implicit_fallthrough_r): Likewise. + (gimplify_va_arg_expr): Likewise. + * hsa-gen.c (HSA_SORRY_ATV): Likewise. + (HSA_SORRY_AT): Likewise. + * ipa-devirt.c (compare_virtual_tables): Likewise. + (warn_odr): Likewise. + * multiple_target.c (expand_target_clones): Likewise. + * opts-common.c (cmdline_handle_error): Likewise. + * reginfo.c (globalize_reg): Likewise. + * substring-locations.c (format_warning_n_va): Likewise. + * tree-inline.c (expand_call_inline): Likewise. + * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Likewise. + * tree-ssa-loop-niter.c + (do_warn_aggressive_loop_optimizations): Likewise. + * tree-ssa-uninit.c (warn_uninit): Likewise. + * tree.c (warn_deprecated_use): Likewise. + +2018-08-20 H.J. Lu + + PR target/87014 + * config/i386/i386.md (eh_return): Always update EH return + address in word_mode. + +2018-08-20 Chung-Lin Tang + + * targhooks.c (std_gimplify_va_arg_expr): Properly handle case of when + TARGET_SPLIT_COMPLEX_ARG is defined. + +2018-08-20 Bernd Edlinger + + * expr.c (store_field): Change gcc_assert to gcc_checking_assert. + +2018-08-20 Bernd Edlinger + + PR target/86984 + * expr.c (expand_assignment): Assert that bitpos is positive. + (store_field): Likewise + (expand_expr_real_1): Make sure that bitpos is positive. + * config/alpha/alpha.h (CONSTANT_ADDRESS_P): Avoid signed + integer overflow. + +2018-08-20 Nathan Sidwell + + * Makefile.in (CPP_ID_DATA_H): Delete. + (CPP_INTERNAL_H): Don't add it. + (GTFILES): Replace CPP_ID_DATA_H with CPPLIB_H. + * gengtype.c (open_base_files): Replace cpp-id-data.h with cpplib.h + +2018-08-20 Richard Biener + + PR tree-optimization/78655 + * tree-vrp.c (extract_range_from_binary_expr_1): Make + pointer + offset nonnull if either operand is nonnull work. + +2018-08-20 Tom de Vries + + * dwarf2out.c (add_scalar_info): Don't add reference to existing die + unless the referenced die describes the added property using + DW_AT_location or DW_AT_const_value. Fall back to exprloc case. + Otherwise, add a DW_AT_location to the referenced die. + +2018-08-19 Uros Bizjak + + PR target/86994 + * config/i386/i386.c (ix86_rtx_costs) [case SET]: Check source for + register_operand when calling ix86_set_reg_reg_cost. + [case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF]: + Set *total to 0 for operands that satisfy x86_64_immediate_operand + predicate and to 1 otherwise. + +2018-08-18 Iain Sandoe + + * config/darwin.c (darwin_override_options): If -gsplit-dwarf is set, + emit a diagnostic that it is not supported and reset the option. + * config/darwin.h (DRIVER_SELF_SPECS): Note that gsplit-dwarf is not + supported and consume the option. (ASM_FINAL_SPEC): New. + +2018-08-17 Segher Boessenkool + + * doc/md.texi (Patterns): Use @ref instead of @xref in the middle of + a sentence. + +2018-08-17 Sandra Loosemore + + C-SKY port: Documentation + + * doc/extend.texi (C-SKY Function Attributes): New section. + * doc/invoke.texi (Option Summary): Add C-SKY options. + (C-SKY Options): New section. + * doc/md.texi (Machine Constraints): Document C-SKY constraints. + +2018-08-17 Jojo + Huibin Wang + Sandra Loosemore + Chung-Lin Tang + + C-SKY port: Backend implementation + + * config/csky/*: New. + * common/config/csky/*: New. + +2018-08-17 Jojo + Huibin Wang + Sandra Loosemore + Chung-Lin Tang + Andrew Jenner + + C-SKY port: Configury + + * config.gcc (csky-*-*): New. + * configure.ac: Add csky to targets for dwarf2 debug_line support. + * configure: Regenerated. + +2018-08-17 David Malcolm + + * dump-context.h: Include "dumpfile.h". + (dump_context::dump_printf_va): Convert final param from va_list + to va_list *. Convert from ATTRIBUTE_PRINTF to + ATTRIBUTE_GCC_DUMP_PRINTF. + (dump_context::dump_printf_loc_va): Likewise. + * dumpfile.c: Include "stringpool.h". + (make_item_for_dump_printf_va): Delete. + (make_item_for_dump_printf): Delete. + (class dump_pretty_printer): New class. + (dump_pretty_printer::dump_pretty_printer): New ctor. + (dump_pretty_printer::emit_items): New member function. + (dump_pretty_printer::emit_any_pending_textual_chunks): New member + function. + (dump_pretty_printer::emit_item): New member function. + (dump_pretty_printer::stash_item): New member function. + (dump_pretty_printer::format_decoder_cb): New member function. + (dump_pretty_printer::decode_format): New member function. + (dump_context::dump_printf_va): Reimplement in terms of + dump_pretty_printer. + (dump_context::dump_printf_loc_va): Convert final param from va_list + to va_list *. + (dump_context::begin_scope): Reimplement call to + make_item_for_dump_printf. + (dump_printf): Update for change to dump_printf_va. + (dump_printf_loc): Likewise. + (selftest::test_capture_of_dump_calls): Convert "stmt" from + greturn * to gimple *. Add a test_decl. Add tests of dump_printf + with %T, %E, and %G. + * dumpfile.h (ATTRIBUTE_GCC_DUMP_PRINTF): New macro. + (dump_printf): Replace ATTRIBUTE_PRINTF_2 with + ATTRIBUTE_GCC_DUMP_PRINTF (2, 3). + (dump_printf_loc): Replace ATTRIBUTE_PRINTF_3 with + ATTRIBUTE_GCC_DUMP_PRINTF (3, 0). + * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Convert + use of HOST_WIDE_INT_PRINT_DEC on unsigned HOST_WIDE_INT "count" + within a dump_printf_loc call to "%wu". + (vector_alignment_reachable_p): Merge two dump_printf[_loc] calls, + converting a use of HOST_WIDE_INT_PRINT_DEC to "%wd". Add a + missing space after "=". + * tree-vect-loop.c (vect_analyze_loop_2) Within a dump_printf + call, convert use of HOST_WIDE_INT_PRINT_DEC to "%wd". + * tree-vect-slp.c (vect_slp_bb): Within a dump_printf_loc call, + convert use of HOST_WIDE_INT_PRINT_UNSIGNED to "%wu". + * tree-vectorizer.c (try_vectorize_loop_1): Likewise. Remove + duplicate "vectorized" from message. + +2018-08-17 Szabolcs Nagy + + * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Clear + polyNxK_t element's TYPE_STRING_FLAG. + +2018-08-17 Segher Boessenkool + + * config/rs6000/rs6000.md (*cbranch, *creturn): Name these patterns + (they were unnamed before). Fix comments. + +2018-08-17 Nathan Sidwell + + * cppbuiltin.c: Include "cpplib.h", not "cpp-id-data.h". + +2018-08-17 Richard Biener + + PR tree-optimization/86841 + * wide-int-range.cc (wide_int_range_lshift): Use to_uhwi. + +2018-08-17 Martin Liska + + * common.opt: Remove Warn, Init and Report for options with + Ignore/Deprecated flag. Warning is done automatically for + Deprecated flags. + * config/i386/i386.opt: Likewise. + * config/ia64/ia64.opt: Likewise. + * config/rs6000/rs6000.opt: Likewise. + * cppbuiltin.c (define_builtin_macros_for_compilation_flags): + Remove usage of flag_check_pointer_bounds. + * lto-wrapper.c (merge_and_complain): Do not handle + OPT_fcheck_pointer_bounds. + (append_compiler_options): Likewise. + * opt-functions.awk: Do not handle Deprecated. + * optc-gen.awk: Check that Var, Report and Init are not + used for an option with Ignore/Deprecated flag. + * opts-common.c (decode_cmdline_option): Do not report + CL_ERR_DEPRECATED. + (read_cmdline_option): Report warning for OPT_SPECIAL_deprecated + options. + * opts.h (struct cl_option): Remove cl_deprecated flag. + (CL_ERR_DEPRECATED): Remove error enum value. + +2018-08-17 Richard Biener + + PR middle-end/86505 + * tree-inline.c (copy_bb): When inlining __builtin_va_arg_pack_len () + across a va-arg-pack using call adjust its return value accordingly. + +2018-08-16 Martin Sebor + + PR tree-optimization/86853 + * gimple-ssa-sprintf.c (struct format_result): Rename member. + (struct fmtresult): Add member and initialize it in ctors. + (format_character): Handle %C. Extend range to NUL. Set MAYFAIL. + (format_string): Handle %S the same as %ls. Set MAYFAIL. + (format_directive): Set POSUNDER4K when MAYFAIL is set. + (parse_directive): Handle %C same as %c. + (sprintf_dom_walker::compute_format_length): Adjust. + (is_call_safe): Adjust. + +2018-08-16 Bernd Edlinger + + * builtins.c (c_strlen): Add new parameter eltsize. Use it + for determining how to count the elements. + * builtins.h (c_strlen): Adjust prototype. + * expr.c (string_constant): Add new parameter mem_size. + Set *mem_size appropriately. + * expr.h (string_constant): Adjust protoype. + * gimple-fold.c (get_range_strlen): Add new parameter eltsize. + * gimple-fold.h (get_range_strlen): Adjust prototype. + * gimple-ssa-sprintf.c (get_string_length): Add new parameter eltsize. + (format_string): Call get_string_length with eltsize. + +2018-08-16 David Malcolm + + * diagnostic.c (default_diagnostic_start_span_fn): Call pp_string + to emit the span, rather than setting it as the prefix. + +2018-08-16 David Malcolm + + * diagnostic-show-locus.c (layout::start_annotation_line): Add + "margin_char" parameter, defaulting to space. Use it in place + of pp_space for the initial part of the margin. + (layout::print_leading_fixits): Use '+' when filling the margin + of line-insertion fix-it hints. + +2018-08-16 Segher Boessenkool + + * config/rs6000/rs6000.md (two unnamed define_insn and define_split): + Delete. + +2018-08-16 Segher Boessenkool + + * config/rs6000/altivec.md: Don't set length attribute to the default + value. + * config/rs6000/darwin.md: Ditto. + * config/rs6000/dfp.md: Ditto. + * config/rs6000/htm.md: Ditto. + * config/rs6000/rs6000.md: Ditto. + * config/rs6000/sync.md: Ditto. + * config/rs6000/vsx.md: Ditto. + +2018-08-16 Segher Boessenkool + + * config/rs6000/altivec.md: Don't set length attribute to the default + value, for branch instructions. + * config/rs6000/darwin.md: Ditto. + * config/rs6000/rs6000.md: Ditto. + +2018-08-16 Segher Boessenkool + + * config/rs6000/rs6000.md (length): Always define as const_int 4. + (unnamed conditional branch define_insn): Set length to 4 or 8 + depending on offset. + (_): Similar, for alternative 0. + (tf_): Ditto. + +2018-08-16 Tamar Christina + + * expr.c (copy_blkmode_to_reg): Perform larger copies when safe. + +2018-08-16 Matthew Malcomson + + * doc/rtl.texi: Replace old RTX class names with new names. + + +2018-08-16 Vlad Lazar + + * expmed.h (canonicalize_comparison): New declaration. + * expmed.c (canonicalize_comparison, equivalent_cmp_code): New function. + * expmed.c (emit_store_flag_1): Add call to canonicalize_comparison. + * optabs.c (prepare_cmp_insn): Likewise. + * rtl.h (unsigned_condition_p): New function which checks if a + comparison operator is unsigned. + +2018-08-16 Nathan Sidwell + + * config/rs6000/rs6000-c.c (rs6000_macro_to_expend): Use cpp_macro_p. + * config/powerpcspc/powerpcspe-c.c (rs6000_macro_to_expend): Likewise. + +2018-08-16 Tamar Christina + + PR target/84711 + * config/arm/arm.c (arm_can_change_mode_class): Disallow subreg. + * config/arm/neon.md (movv4hf, movv8hf): Refactored to.. + (mov): ..this and enable unconditionally. + +2018-08-16 Tamar Christina + + * config/arm/neon.md (*neon_mov): Remove reg-to-reg alternative. + +2018-08-16 Sam Tebbs + + * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt) + (mlow-precision-sqrt, mlow-precision-div, mverbose-cost-dump): Replace + "Common" with "Target". + +2018-08-15 Uros Bizjak + + * config/i386/i386.opt (mmitigate-rop): Mark as deprecated. + * doc/invoke.texi (mmitigate-rop): Remove. + * config/i386/i386.c: Do not include "regrename.h". + (ix86_rop_should_change_byte_p, reg_encoded_number) + (ix86_get_modrm_for_rop, set_rop_modrm_reg_bits, ix86_mitigate_rop): + Remove. + (ix86_reorg): Remove call to ix86_mitigate_rop. + * config/i386/i386.md (attr "modrm_class"): Remove. + (cmp_ccno_1, mov_xor, movstrict_xor) + (x86_movcc_0_m1. x86_movcc_0_m1_se) + (x86_movcc_0_m1_neg): Remove modrm_class attribute override. + +2018-08-15 Will Schmidt + + * config/rs6000/rs600.c (rs6000_gimple_fold_builtin): Add entries to + allow folding of mergeh() and mergel() for the float and double types. + (fold_mergehl_helper): Rework to handle building a permute tree + for float vectors. + +2018-08-15 Uros Bizjak + + * config/i386/i386.c (expand_vec_perm_movs): Enable V4SFmode + for TARGET_SSE. + +2018-08-15 David Malcolm + + * common.opt (fdiagnostics-show-labels): New option. + * diagnostic-show-locus.c (class layout_range): Add field + "m_label". + (class layout): Add field "m_show_labels_p". + (layout_range::layout_range): Add param "label" and use it to + initialize m_label. + (make_range): Pass in NULL for new "label" param of layout_range's + ctor. + (layout::layout): Initialize m_show_labels_p. + (layout::maybe_add_location_range): Pass in loc_range->m_label + when constructing layout_range instances. + (struct line_label): New struct. + (layout::print_any_labels): New member function. + (layout::print_line): Call it if label-printing is enabled. + (selftest::test_one_liner_labels): New test. + (selftest::test_diagnostic_show_locus_one_liner): Call it. + * diagnostic.c (diagnostic_initialize): Initialize + context->show_labels_p. + * diagnostic.h (struct diagnostic_context): Add field + "show_labels_p". + * doc/invoke.texi (Diagnostic Message Formatting Options): Add + -fno-diagnostics-show-labels. + * dwarf2out.c (gen_producer_string): Add + OPT_fdiagnostics_show_labels to the ignored options. + * gcc-rich-location.c (gcc_rich_location::add_expr): Add "label" + param. + (gcc_rich_location::maybe_add_expr): Likewise. + * gcc-rich-location.h (gcc_rich_location::gcc_rich_location): Add + label" param, defaulting to NULL. + (gcc_rich_location::add_expr): Add "label" param. + (gcc_rich_location::maybe_add_expr): Likewise. + (class text_range_label): New class. + (class range_label_for_type_mismatch): New class. + * gimple-ssa-sprintf.c (fmtwarn): Pass NULL for new label params + of format_warning_va. + (fmtwarn_n): Likewise for new params of format_warning_n_va. + * lto-wrapper.c (merge_and_complain): Add + OPT_fdiagnostics_show_labels to the "pick one setting" options. + (append_compiler_options): Likewise to the dropped options. + (append_diag_options): Likewise to the passed-on options. + * opts.c (common_handle_option): Handle the new option. + * selftest-diagnostic.c + (test_diagnostic_context::test_diagnostic_context): Enable + show_labels_p. + * substring-locations.c: Include "gcc-rich-location.h". + (format_warning_n_va): Add "fmt_label" and "param_label" params + and use them as appropriate. + (format_warning_va): Add "fmt_label" and "param_label" params, + passing them on to format_warning_n_va. + (format_warning_at_substring): Likewise. + (format_warning_at_substring_n): Likewise. + * substring-locations.h (format_warning_va): Add "fmt_label" and + "param_label" params. + (format_warning_n_va): Likewise. + (format_warning_at_substring): Likewise. + (format_warning_at_substring_n): Likewise. + * toplev.c (general_init): Initialize global_dc->show_labels_p. + +2018-08-15 Qing Zhao + + PR testsuite/86519 + * builtins.c (expand_builtin_memcmp): Do not expand the call + when overflow is detected. + +2018-08-15 Martin Sebor + + PR tree-optimization/71625 + * config/aarch64/aarch64-builtins.c + (aarch64_init_simd_builtin_types): Clear Poly8_t's TYPE_STRING_FLAG. + +2018-08-15 Ilya Leoshkevich + + * config/s390/s390.c (s390_reorg): Remove loop. + +2018-08-15 Iain Sandoe + + * config/darwin.c + (darwin_function_switched_text_sections): Delete. + * gcc/config/darwin.h + (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): Likewise. + +2018-08-15 Iain Sandoe + + PR target/81685 + * config/darwin.h: (DEBUG_STR_OFFSETS_SECTION, DEBUG_LOCLISTS_SECTION, + DEBUG_RNGLISTS_SECTION) new macros. (DEBUG_PUBNAMES_SECTION, + DEBUG_PUBTYPES_SECTION) update to include GNU variant. + +2018-08-15 Martin Liska + + PR tree-optimization/86925 + * predict.c (expr_expected_value_1): When taking + later predictor, assign also probability. + Use fold_build2_initializer_loc in order to fold + the expression in -frounding-math. + +2018-08-14 Allan Sandfeld Jensen + + * config/i386/i386.c (expand_vec_perm_movs): New method matching movs + patterns. + (expand_vec_perm_1): Try the new method. + +2018-08-14 Ilya Leoshkevich + + PR target/86547 + * lra-lives.c (remove_some_program_points_and_update_live_ranges): + Check whether lra_live_max_point is 0 before dividing. + +2018-08-14 Martin Sebor + + PR tree-optimization/86650 + * tree-vrp.c (vrp_prop::check_array_ref): Print an inform message. + (vrp_prop::check_mem_ref): Same. + +2018-08-13 Liu Hao + + * pretty-print.c (eat_esc_sequence): Swap the foreground and + background colors if the COMMON_LVB_REVERSE_VIDEO flag is set, + and clear it thereafter, as it only works for DBCS. + +2018-08-13 Liu Hao + + * pretty-print.c (mingw_ansi_fputs): Do not call _close() on the + handle returned by _get_osf_handle(). + +2018-08-13 Will Schmidt + + * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support + for folding vec_perm. + +2018-08-13 Will Schmidt + + * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): + Add support for gimple-folding of vec_pack() and vec_unpack() + intrinsics. + +2018-08-13 Will Schmidt + + * config/rs6000/rs6000.c (rs6000_builtin_valid_without_lhs): Add + vec_xst variants to the list. + (rs6000_gimple_fold_builtin): Add support for folding unaligned + vector loads and stores. + +2018-08-13 David Edelsohn + + * config.gcc (rs6000-ibm-aix4.x): Delete. + (rs6000-ibm-aix5.1): Delete. + (rs6000-ibm-aix5.2): Delete. + (rs6000-ibm-aix5.3): Delete. + * config/rs6000/aix43.h: Delete. + * config/rs6000/aix51.h: Delete. + * config/rs6000/aix52.h: Delete. + * config/rs6000/t-aix43: Delete. + +2018-08-13 Ilya Leoshkevich + + * config/s390/s390.c (s390_decompose_constant_pool_ref): + New function. + (s390_decompose_address): Factor out constant pool ref + decomposition. + +2018-08-12 Chung-Ju Wu + + * config/nds32/nds32-predicates.c + (nds32_can_use_bclr_p): Change return type as bool. + (nds32_can_use_bset_p): Ditto. + (nds32_can_use_btgl_p): Ditto. + (nds32_can_use_bitci_p): Ditto. + * config/nds32/nds32-protos.h + (nds32_can_use_bclr_p): Change declaration. + (nds32_can_use_bset_p): Ditto. + (nds32_can_use_btgl_p): Ditto. + (nds32_can_use_bitci_p): Ditto. + +2018-08-12 Chung-Ju Wu + + * config/nds32/nds32.c (nds32_expand_prologue, nds32_expand_epilogue): + Support -msched-prolog-epilog option. + * config/nds32/nds32.opt (msched-prolog-epilog): New option. + +2018-08-12 Chung-Ju Wu + + * common/config/nds32/nds32-common.c + (nds32_option_optimization_table): Enalbe -malways-align. + +2018-08-12 Chung-Ju Wu + + * config.gcc (nds32*): Add nds32_isr.h and nds32_init.inc in + extra_headers. + * common/config/nds32/nds32-common.c (nds32_handle_option): Handle + OPT_misr_secure_ case. + * config/nds32/nds32-isr.c: Implementation of backward compatibility. + * config/nds32/nds32-protos.h (nds32_isr_function_critical_p): New. + * config/nds32/nds32.c (nds32_attribute_table): Add critical and + secure attribute. + * config/nds32/nds32.h (nds32_isr_nested_type): Add NDS32_CRITICAL. + (nds32_isr_info): New field security_level. + (TARGET_ISR_VECTOR_SIZE_4_BYTE): New macro. + * config/nds32/nds32.md (return_internal): Consider critical attribute. + * config/nds32/nds32.opt (misr-secure): New option. + * config/nds32/nds32_init.inc: New file. + * config/nds32/nds32_isr.h: New file. + +2018-08-11 John David Anglin + + * config/pa/pa.md (UNSPEC_MEMORY_BARRIER): New unspec enum. + Update comment for atomic instructions. + (atomic_storeqi, atomic_storehi, atomic_storesi, atomic_storesf, + atomic_loaddf, atomic_loaddf_1, atomic_storedf, atomic_storedf_1): + Remove. + (atomic_loaddi): Revise fence expansion to only emit fence prior to + load for __ATOMIC_SEQ_CST model. + (atomic_loaddi_1): Remove float register target. + (atomic_storedi): Handle CONST_INT values. + (atomic_storedi_1): Remove float register source. Add special case + for zero value. + (memory_barrier): New expander and insn. + +2018-08-11 Jakub Jelinek + + PR tree-optimization/86835 + * tree-ssa-math-opts.c (insert_reciprocals): Even when inserting + new_stmt after def_gsi, make sure to insert new_square_stmt after + that stmt, not 2 stmts before it. + +2018-08-10 Alexander Monakov + + PR target/82418 + * config/i386/i386.md (mul3_highpart): Use DWIH mode iterator + instead of SWI48. + +2018-08-10 Martin Liska + + PR target/83610 + * builtin-types.def (BT_FN_LONG_LONG_LONG_DOUBLE): Add new + function type. + * builtins.c (expand_builtin_expect_with_probability): + New function. + (expand_builtin_expect_with_probability): New function. + (build_builtin_expect_predicate): Add new argumnet probability + for BUILT_IN_EXPECT_WITH_PROBABILITY. + (fold_builtin_expect): + (fold_builtin_2): + (fold_builtin_3): + * builtins.def (BUILT_IN_EXPECT_WITH_PROBABILITY): + * builtins.h (fold_builtin_expect): Set new argument. + * doc/extend.texi: Document __builtin_expect_with_probability. + * doc/invoke.texi: Likewise. + * gimple-fold.c (gimple_fold_call): Pass new argument. + * ipa-fnsummary.c (find_foldable_builtin_expect): Handle + also BUILT_IN_EXPECT_WITH_PROBABILITY. + * predict.c (get_predictor_value): New function. + (expr_expected_value): Add new argument probability. Assume + that predictor and probability are always non-null. + (expr_expected_value_1): Likewise. For __builtin_expect and + __builtin_expect_with_probability set probability. Handle + combination in binary expressions. + (tree_predict_by_opcode): Simplify code by simply calling + get_predictor_value. + (pass_strip_predict_hints::execute): Add handling of + BUILT_IN_EXPECT_WITH_PROBABILITY. + * predict.def (PRED_BUILTIN_EXPECT_WITH_PROBABILITY): Add + new predictor. + * tree.h (DECL_BUILT_IN_P): New function. + +2018-08-10 Martin Liska + + PR tree-optimization/85799 + * passes.def: Add argument for pass_strip_predict_hints. + * predict.c (class pass_strip_predict_hints): Add new argument + early_p. + (strip_predictor_early): New function. + (pass_strip_predict_hints::execute): Call the function to + strip predictors. + (strip_predict_hints): New function. + * predict.def: Fix comment. + +2018-08-10 Thomas Preud'homme + + * Makefile.in: Clarify which tm.texi to copy over to assert the + right to grant a GFDL license for all. + +2018-08-09 Jeff Law + + * config/m68k/m68k.c (m68k_adjust_decorated_operand): Remove + unused variable. + +2018-08-09 Andreas Schwab + + * config/m68k/m68k-protos.h (m68k_final_prescan_insn): Remove + prototype. + +2018-08-09 Richard Sandiford + + * tree-vect-loop.c (vectorizable_reduction): Allow inner-loop + reductions for variable-length vectors. + +2018-08-09 David Malcolm + + PR other/84889 + * common.opt (fdiagnostics-show-line-numbers): New option. + * diagnostic-show-locus.c (class layout): Add fields + "m_show_line_numbers_p" and "m_linenum_width"; + (num_digits): New function. + (test_num_digits): New function. + (layout::layout): Initialize new fields. Update m_x_offset + logic to handle any left margin. + (layout::print_source_line): Print line number when requested. + (layout::start_annotation_line): New member function. + (layout::print_annotation_line): Call it. + (layout::print_leading_fixits): Likewise. + (layout::print_trailing_fixits): Likewise. Update calls to + move_to_column for new parameter. + (layout::get_x_bound_for_row): Add "add_left_margin" param and use + it to potentially call start_annotation_line. + (layout::show_ruler): Call start_annotation_line. + (selftest::test_line_numbers_multiline_range): New selftest. + (selftest::diagnostic_show_locus_c_tests): Call test_num_digits + and selftest::test_line_numbers_multiline_range. + * diagnostic.c (diagnostic_initialize): Initialize + show_line_numbers_p. + * diagnostic.h (struct diagnostic_context): Add field + "show_line_numbers_p". + * doc/invoke.texi (Diagnostic Message Formatting Options): Add + -fno-diagnostics-show-line-numbers. + * dwarf2out.c (gen_producer_string): Add + OPT_fdiagnostics_show_line_numbers to the ignored options. + * lto-wrapper.c (merge_and_complain): Likewise to the "pick + one setting" options. + (append_compiler_options): Likewise to the dropped options. + (append_diag_options): Likewise to the passed-on options. + * opts.c (common_handle_option): Handle the new option. + * toplev.c (general_init): Set up global_dc->show_line_numbers_p. + +2018-08-09 Kelvin Nilsen + + * doc/extend.texi (PowerPC AltiVec Built-in Functions Available on + ISA 2.07): Correct spelling of bcdsub to be __builtin_bcdsub. Add + third argument of type "const signed char" to descriptions of + __builtin_bcdadd, __builtin_bcdadd_lt, __builtin_bcdadd_eq, + __builtin_bcdadd_gt, __builtin_bcdadd_ov, __builtin_bcdsub, + __builtin_bcdsub_lt, __builtin_bcdsub_eq, __builtin_bcdsub_gt, + __builtin_bcdsub_ov functions. + +2018-08-09 Richard Sandiford + + PR tree-optimization/86858 + * tree-vect-loop.c (vect_is_simple_reduction): Restore + flow_bb_inside_loop_p calls. + +2018-08-09 Richard Sandiford + + PR tree-optimization/86871 + * tree-vect-stmts.c (vect_transform_stmt): Use gimple_get_lhs + instead of gimple_assign_lhs. + +2018-08-09 Richard Earnshaw + + PR target/86887 + * config/aarch64/aarch64.md (add3_carryinC_zero): Add missing + register constraint to operand 0. + (add3_carryinC): Likewise. + (add3_carryinV_zero, add3_carryinV): Likewise. + +2018-08-09 Martin Liska + + PR c/86895 + * common.opt: Remove extra line. + +2018-08-09 Martin Liska + + * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Remove double dots + at the end of a line, make first letter capital and end up + a sentence with a dot. + (PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): Likewise. + (PARAM_LOOP_BLOCK_TILE_SIZE): Likewise. + (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Likewise. + (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): Likewise. + (PARAM_MAX_ISL_OPERATIONS): Likewise. + (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): Likewise. + (PARAM_PROFILE_FUNC_INTERNAL_ID): Likewise. + (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise. + (PARAM_SLP_MAX_INSNS_IN_BB): Likewise. + (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise. + (PARAM_IPA_CP_RECURSION_PENALTY): Likewise. + (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise. + (PARAM_IPA_CP_LOOP_HINT_BONUS): Likewise. + (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Likewise. + (PARAM_TREE_REASSOC_WIDTH): Likewise. + (PARAM_HSA_GEN_DEBUG_STORES): Likewise. + (PARAM_MAX_SPECULATIVE_DEVIRT_MAYDEFS): Likewise. + (PARAM_MAX_VRP_SWITCH_ASSERTIONS): Likewise. + +2018-08-09 Andreas Krebbel + + PR target/84332 + * config/s390/s390.c (s390_option_override_internal): Reduce the + stack-clash-protection-probe-interval param if it would be too big + for z900. + +2018-08-08 Andreas Schwab + + PR target/46179 + * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Don't define. + * config/m68k/m68k.c (handle_move_double): Don't call + m68k_final_prescan_insn. + (m68k_adjust_decorated_operand): Renamed from + m68k_final_prescan_insn, remove first and third operand and + simplify. + (print_operand): Call it. + (print_operand_address): Call it. + +2018-08-08 Nathan Sidwell + + * diagnostic.c (diagnostic_report_current_module): Use + linemap_included_from & linemap_included_from_linemap. + +2018-08-08 Hongbo Zhang + + * config/aarch64/aarch64-cores.def: Add phecda core. + * config/aarch64/aarch64-tune.md: Regenerate. + * doc/invoke.texi: Add phecda core. + +2018-08-08 Andreas Krebbel + + PR target/85295 + * config/s390/constraints.md ("NxHD0", "NxSD0"): New constraint + definitions. + * config/s390/s390.md ("movti"): Add more alternatives for + constant to GPR copies. + +2018-08-08 Andreas Krebbel + + * config/s390/s390.c: Fix whitespace damage throughout the file. + * config/s390/s390.h: Likewise. + * config/s390/tpf.h: Likewise. + +2018-08-08 Ilya Leoshkevich + + * config/s390/s390.c (s390_loadrelative_operand_p): + Remove TARGET_CPU_ZARCH usages. + (s390_rtx_costs): Likewise. + (s390_legitimate_constant_p): Likewise. + (s390_cannot_force_const_mem): Likewise. + (legitimate_reload_constant_p): Likewise. + (s390_preferred_reload_class): Likewise. + (legitimize_pic_address): Likewise. + (legitimize_tls_address): Likewise. + (s390_split_branches): Removed. + (s390_add_execute): Removed. + (s390_dump_pool): Remove TARGET_CPU_ZARCH usages. + (s390_mainpool_start): Likewise. + (s390_mainpool_finish): Likewise. + (s390_mainpool_cancel): Removed. + (s390_chunkify_start): Remove TARGET_CPU_ZARCH usages. + (s390_chunkify_cancel): Likewise. + (s390_return_addr_rtx): Likewise. + (s390_register_info): Remove split_branches_pending_p uages. + (s390_optimize_register_info): Likewise. + (s390_init_frame_layout): Remove TARGET_CPU_ZARCH and + split_branches_pending_p usages. + (s390_can_eliminate): Remove TARGET_CPU_ZARCH usages. + (s390_load_got): Likewise. + (s390_expand_split_stack_prologue): Likewise. + (output_asm_nops): Likewise. + (s390_function_profiler): Likewise. + (s390_emit_call): Likewise. + (s390_conditional_register_usage): Likewise. + (s390_optimize_prologue): Likewise. + (s390_reorg): Remove TARGET_CPU_ZARCH and + split_branches_pending_p usages. + (s390_option_override_internal): Remove TARGET_CPU_ZARCH + usages. + (s390_output_indirect_thunk_function): Likewise. + * config/s390/s390.h (TARGET_CPU_ZARCH): Removed. + (TARGET_CPU_ZARCH_P): Removed. + (struct machine_function): Remove split_branches_pending_p. + * config/s390/s390.md: Remove TARGET_CPU_ZARCH usages. + +2018-08-08 Ilya Leoshkevich + + * common/config/s390/s390-common.c (processor_flags_table): + Remove flags. + * config.gcc: Remove with_arch/with_tune support. + * config/s390/2064.md: Remove cpu attribute comparisons. + * config/s390/driver-native.c (s390_host_detect_local_cpu): + Remove MTN. + * config/s390/linux.h (ASM_SPEC): + Remove -march support. + * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): + Use a table to get an arch level. + * config/s390/s390-opts.h (enum processor_type): + Remove enum values. + * config/s390/s390.c + (processor_table): Remove entries, add arch_level values. + (s390_issue_rate): Remove cases. + (s390_option_override): Adjust + s390_option_override_internal() call. + (s390_option_override_internal): Remove deprecation warning. + (s390_valid_target_attribute_tree): Adjust + s390_option_override_internal() call. + * config/s390/s390.h (struct s390_processor): + Share with s390-c.c, add arch_level field. + * config/s390/s390.md: + Remove occurrences in cpu attribute. + * config/s390/s390.opt: Remove -march/-mtune support. + * config/s390/tpf.h (ASM_SPEC): Remove -march support. + * doc/invoke.texi: Remove deprecation warning. + +2018-08-08 Luis Machado + + * config/aarch64/aarch64.c (qdf24xx_vector_cost): New static + global. + (qdf24xx_tunings): Set vector cost structure to + qdf24xx_vector_cost. + + * config/aarch64/aarch64.c (qdf24xx_addrcost_table) + : Set to 3. + +2018-08-07 Richard Sandiford + + PR target/86838 + * config/aarch64/iterators.md (FRECP, frecp_suffix): Delete. + * config/aarch64/aarch64-simd.md + (aarch64_frecp): Fold FRECPE into... + (@aarch64_frecpe): ...here and the move FRECPX to... + (aarch64_frecpx): ...this new pattern. + * config/aarch64/aarch64-simd-builtins.def: Remove comment + about aarch64_frecp. + +2018-08-07 Martin Liska + + PR middle-end/83023 + * predict.c (expr_expected_value_1): Handle DECL_IS_MALLOC, + BUILT_IN_REALLOC and DECL_IS_OPERATOR_NEW. + * predict.def (PRED_MALLOC_NONNULL): New predictor. + * doc/extend.texi: Document that malloc attribute adds + hit to compiler. + +2018-08-06 John David Anglin + + PR target/86785 + * config/pa/pa.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): + Define to speculation_safe_value_not_needed. + +2018-08-06 Jeff Law + + * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Pass down + the vr_values instance to cprop_into_stmt. + (cprop_into_stmt): Pass vr_values instance down to cprop_operand. + (cprop_operand): Also query EVRP to determine if OP is a constant. + +2018-08-06 Nathan Sidwell + + * diagnostic.c (diagnostic_report_current_module): Reroll + included-at loop. Translate text. + +2018-08-06 David Malcolm + + * function-tests.c (selftest::test_expansion_to_rtl): Call + free_after_compilation. + +2018-08-06 Alan Hayward + + * config/aarch64/aarch64.md: Add clobber highs to tls_desc. + +2018-08-06 Andreas Krebbel + + * config/s390/s390.c (s390_loop_unroll_adjust): Prevent small + loops with memory block operations from getting unrolled. + +2018-08-06 Ulrich Weigand + + PR target/86807 + * config/spu/spu.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): + Define to speculation_safe_value_not_needed. + +2018-08-06 Jeff Law + + * reload1.c (forget_old_reloads_1): Adjust CLOBBER_HIGH + assert. + +2018-08-06 Jozef Lawrynowicz + + PR target/86662 + * gcc/tree.c (build_common_tree_nodes): Initialize integer_types array + with all enabled __intN types. + + * gcc/testsuite/gcc.target/msp430/pr86662.c: New test. + +2018-08-06 Alan Hayward + + * alias.c (record_set): Check for clobber high. + * cfgexpand.c (expand_gimple_stmt): Likewise. + * combine-stack-adj.c (single_set_for_csa): Likewise. + * combine.c (find_single_use_1): Likewise. + (set_nonzero_bits_and_sign_copies): Likewise. + (get_combine_src_dest): Likewise. + (is_parallel_of_n_reg_sets): Likewise. + (try_combine): Likewise. + (record_dead_and_set_regs_1): Likewise. + (reg_dead_at_p_1): Likewise. + (reg_dead_at_p): Likewise. + * dce.c (deletable_insn_p): Likewise. + (mark_nonreg_stores_1): Likewise. + (mark_nonreg_stores_2): Likewise. + * df-scan.c (df_find_hard_reg_defs): Likewise. + (df_uses_record): Likewise. + (df_get_call_refs): Likewise. + * dwarf2out.c (mem_loc_descriptor): Likewise. + * haifa-sched.c (haifa_classify_rtx): Likewise. + * ira-build.c (create_insn_allocnos): Likewise. + * ira-costs.c (scan_one_insn): Likewise. + * ira.c (equiv_init_movable_p): Likewise. + (rtx_moveable_p): Likewise. + (interesting_dest_for_shprep): Likewise. + * jump.c (mark_jump_label_1): Likewise. + * postreload-gcse.c (record_opr_changes): Likewise. + * postreload.c (reload_cse_simplify): Likewise. + (struct reg_use): Add source expr. + (reload_combine): Check for clobber high. + (reload_combine_note_use): Likewise. + (reload_cse_move2add): Likewise. + (move2add_note_store): Likewise. + * print-rtl.c (print_pattern): Likewise. + * recog.c (decode_asm_operands): Likewise. + (store_data_bypass_p): Likewise. + (if_test_bypass_p): Likewise. + * regcprop.c (kill_clobbered_value): Likewise. + (kill_set_value): Likewise. + * reginfo.c (reg_scan_mark_refs): Likewise. + * reload1.c (maybe_fix_stack_asms): Likewise. + (eliminate_regs_1): Likewise. + (elimination_effects): Likewise. + (mark_not_eliminable): Likewise. + (scan_paradoxical_subregs): Likewise. + (forget_old_reloads_1): Likewise. + * reorg.c (find_end_label): Likewise. + (try_merge_delay_insns): Likewise. + (redundant_insn): Likewise. + (own_thread_p): Likewise. + (fill_simple_delay_slots): Likewise. + (fill_slots_from_thread): Likewise. + (dbr_schedule): Likewise. + * resource.c (update_live_status): Likewise. + (mark_referenced_resources): Likewise. + (mark_set_resources): Likewise. + * rtl.c (copy_rtx): Likewise. + * rtlanal.c (reg_referenced_p): Likewise. + (single_set_2): Likewise. + (noop_move_p): Likewise. + (note_stores): Likewise. + * sched-deps.c (sched_analyze_reg): Likewise. + (sched_analyze_insn): Likewise. + +2018-08-06 Alan Hayward + + * cse.c (invalidate_reg): New function extracted from... + (invalidate): ...here. + (canonicalize_insn): Check for clobber high. + (invalidate_from_clobbers): invalidate clobber highs. + (invalidate_from_sets_and_clobbers): Likewise. + (count_reg_usage): Check for clobber high. + (insn_live_p): Likewise. + * cselib.c (cselib_expand_value_rtx_1):Likewise. + (cselib_invalidate_regno): Check for clobber in setter. + (cselib_invalidate_rtx): Pass through setter. + (cselib_invalidate_rtx_note_stores): + (cselib_process_insn): Check for clobber high. + * cselib.h (cselib_invalidate_rtx): Add operand. + +2018-08-06 Alan Hayward + + * lra-eliminations.c (lra_eliminate_regs_1): Check for clobber high. + (mark_not_eliminable): Likewise. + * lra-int.h (struct lra_insn_reg): Add clobber high marker. + * lra-lives.c (process_bb_lives): Check for clobber high. + * lra.c (new_insn_reg): Remember clobber highs. + (collect_non_operand_hard_regs): Check for clobber high. + (lra_set_insn_recog_data): Likewise. + (add_regs_to_insn_regno_info): Likewise. + (lra_update_insn_regno_info): Likewise. + +2018-08-06 Alan Hayward + + * rtl.h (reg_is_clobbered_by_clobber_high): Add declarations. + * rtlanal.c (reg_is_clobbered_by_clobber_high): Add function. + +2018-08-06 Alan Hayward + + * emit-rtl.c (verify_rtx_sharing): Check for CLOBBER_HIGH. + (copy_insn_1): Likewise. + (gen_hard_reg_clobber_high): New gen function. + * genconfig.c (walk_insn_part): Check for CLOBBER_HIGH. + * genemit.c (gen_exp): Likewise. + (gen_emit_seq): Pass through info. + (gen_insn): Check for CLOBBER_HIGH. + (gen_expand): Pass through info. + (gen_split): Likewise. + (output_add_clobbers): Likewise. + * genrecog.c (validate_pattern): Check for CLOBBER_HIGH. + (remove_clobbers): Likewise. + * rtl.h (gen_hard_reg_clobber_high): New declaration. + +2018-08-06 Alan Hayward + + * doc/rtl.texi (clobber_high): Add. + (parallel): Add in clobber high + * rtl.c (rtl_check_failed_code3): Add function. + * rtl.def (CLOBBER_HIGH): Add expression. + * rtl.h (RTL_CHECKC3): Add macro. + (rtl_check_failed_code3): Add declaration. + (XC3EXP): Add macro. + +2018-08-05 H.J. Lu + + PR target/86386 + * config/i386/i386.c (ix86_finalize_stack_frame_flags): Set + cfun->machine->max_used_stack_alignment if needed. + +2018-08-04 Martin Sebor + + PR tree-optimization/86571 + * gimple-ssa-sprintf.c (format_floating): Extend upper bound of + NaN output to 4. + +2018-08-03 Sandra Loosemore + + PR target/86799 + * config/nios2/nios2.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): + Define. + +2018-08-03 Jeff Law + + PR target/86795 + * config/mn10300/mn10300.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): + Define to speculation_safe_value_not_needed. + +2018-08-03 David Malcolm + + * doc/gcov.texi (-x): Remove duplicate "to". + * doc/invoke.texi (-Wnoexcept-type): Remove duplicate "calls". + (-Wif-not-aligned): Remove duplicate "is". + (-flto): Remove duplicate "the". + (MicroBlaze Options): In examples of "-mcpu=cpu-type", remove + duplicate "v5.00.b". + (MSP430 Options): Remove duplicate "and" from the description + of "-mgprel-sec=regexp". + (x86 Options): Remove duplicate copies of "vmldLog102" and + vmlsLog104 from description of "-mveclibabi=type". + +2018-08-03 Richard Sandiford + + * internal-fn.h (first_commutative_argument): Declare. + * internal-fn.c (first_commutative_argument): New function. + * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove extra + restrictions for pattern statements. Use first_commutative_argument + to look for commutative operands in calls to internal functions. + +2018-08-03 Aldy Hernandez + + * Makefile.in (wide-int-range.o): New. + * tree-vrp.c: Move all the wide_int_* functions to... + * wide-int-range.cc: ...here. + * tree-vrp.h: Move all the wide_int_* prototypes to... + * wide-int-range.h: ...here. + +2018-08-03 Tom de Vries + + * common/config/nvptx/nvptx-common.c (nvptx_except_unwind_info): Return + UI_NONE. + * config/nvptx/nvptx.c (TARGET_ASM_BYTE_OP): Remove define. + * except.c (output_function_exception_table): Do early exit if + targetm_common.except_unwind_info (&global_options) == UI_NONE. + +2018-08-03 Martin Liska + + * predict.c (dump_prediction): Change to 2 digits + in fraction part. + +2018-08-03 Siddhesh Poyarekar + + * config/aarch64/falkor.md (falkor_am_1_vxvy_vxvy): Move + neon_dup_q to... + (falkor_am_1_gtov_gtov): ... a new insn reservation. + +2018-07-19 Ilya Leoshkevich + + * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Replace > with >=. + * df-problems.c (df_remove_dead_eq_notes): Replace > with >=. + * dwarf2out.c (mem_loc_descriptor): Replace > with >=. + * lra-constraints.c (spill_hard_reg_in_range): Replace <= with <. + * lra-remat.c (call_used_input_regno_present_p): Replace <= with <. + +2018-08-02 David Malcolm + + * diagnostic-show-locus.c (diagnostic_show_locus): Use + pp_take_prefix when saving the existing prefix. + * diagnostic.c (diagnostic_append_note): Likewise. + * langhooks.c (lhd_print_error_function): Likewise. + * pretty-print.c (pp_set_prefix): Drop the "const" from "prefix" + param's type. Free the existing prefix. + (pp_take_prefix): New function. + (pretty_printer::pretty_printer): Drop the prefix parameter. + Rename the length parameter to match the comment. + (pretty_printer::~pretty_printer): Free the prefix. + * pretty-print.h (pretty_printer::pretty_printer): Drop the prefix + parameter. + (struct pretty_printer): Drop the "const" from "prefix" field's + type and clarify memory management. + (pp_set_prefix): Drop the "const" from the 2nd param. + (pp_take_prefix): New decl. + +2018-08-02 Aaron Sawdey + + * config/rs6000/rs6000-string.c (select_block_compare_mode): Move test + for word_mode_ok here instead of passing as argument. + (expand_block_compare): Change select_block_compare_mode() call. + (expand_strncmp_gpr_sequence): New function. + (expand_strn_compare): Make use of expand_strncmp_gpr_sequence. + +2018-08-02 Jeff Law + + PR target/86790 + * config/m68k/m68k.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): + Define to speculation_safe_value_not_needed. + + PR target/86784 + * config/h8300/h8300.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): + Define to speculation_safe_value_not_needed. + +2018-08-02 Tom de Vries + + PR target/86660 + * common/config/nvptx/nvptx-common.c (nvptx_except_unwind_info): New + function. Return UI_TARGET unconditionally. + (TARGET_EXCEPT_UNWIND_INFO): Redefine to nvptx_except_unwind_info. + * config/nvptx/nvptx.c (TARGET_ASM_BYTE_OP): Emit commented out '.byte'. + +2018-08-02 Richard Sandiford + + * genemit.c (print_overload_test): Fix typo. + +2018-08-02 Richard Biener + + PR tree-optimization/86816 + * tree-ssa-tail-merge.c (tail_merge_valueize): New function + which checks for value availability before querying it. + (gvn_uses_equal): Use it. + (same_succ_hash): Likewise. + (gimple_equal_p): Likewise. + +2018-08-02 Nick Clifton + + PR target/86813 + * config/stormy16/stormy16.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): + Define to speculation_safe_value_not_needed. + + PR target/86810 + * config/v850/v850.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): + Define to speculation_safe_value_not_needed. + + PR target/86810 + * config/v850/v850.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): + Define to speculation_safe_value_not_needed. + + PR target/86803 + * config/rx/rx.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): + Define to speculation_safe_value_not_needed. + + PR target/86797 + * config/msp430/msp430.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): + Define to speculation_safe_value_not_needed. + + PR target/86791 + * config/mcore/mcore.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): + Define to speculation_safe_value_not_needed. + + PR target/86789 + * config/m32r/m32r.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): + Define to speculation_safe_value_not_needed. + + PR target/86787 + * config/iq2000/iq2000.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): + Define to speculation_safe_value_not_needed. + + PR target/86782 + * config/frv/frv.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define to + speculation_safe_value_not_needed. + + PR target/86781 + * config/fr30/fr30.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define + to speculation_safe_value_not_needed. + +2018-08-02 Richard Sandiford + + * doc/md.texi: Expand the documentation of instruction names + to mention port-local uses. Document '@' in pattern names. + * read-md.h (overloaded_instance, overloaded_name): New structs. + (mapping): Declare. + (md_reader::handle_overloaded_name): New member function. + (md_reader::get_overloads): Likewise. + (md_reader::m_first_overload): New member variable. + (md_reader::m_next_overload_ptr): Likewise. + (md_reader::m_overloads_htab): Likewise. + * read-md.c (md_reader::md_reader): Initialize m_first_overload, + m_next_overload_ptr and m_overloads_htab. + * read-rtl.c (iterator_group): Add "type" and "get_c_token" fields. + (get_mode_token, get_code_token, get_int_token): New functions. + (map_attr_string): Add an optional argument that passes back + the associated iterator. + (overloaded_name_hash, overloaded_name_eq_p, named_rtx_p): + (md_reader::handle_overloaded_name, add_overload_instance): New + functions. + (apply_iterators): Handle '@' names. Report an error if '@' + is used without iterators. + (initialize_iterators): Initialize the new iterator_group fields. + * genopinit.c (handle_overloaded_code_for) + (handle_overloaded_gen): New functions. + (main): Use them to print declarations of maybe_code_for_* and + maybe_gen_* functions, and inline definitions of code_for_* and gen_*. + * genemit.c (print_overload_arguments, print_overload_test) + (handle_overloaded_code_for, handle_overloaded_gen): New functions. + (main): Use it to print definitions of maybe_code_for_* and + maybe_gen_* functions. + * config/aarch64/aarch64.c (aarch64_split_128bit_move): Use + gen_aarch64_mov{low,high}_di and gen_aarch64_movdi_{low,high} + instead of explicit mode checks. + (aarch64_split_simd_combine): Likewise gen_aarch64_simd_combine. + (aarch64_split_simd_move): Likewise gen_aarch64_split_simd_mov. + (aarch64_emit_load_exclusive): Likewise gen_aarch64_load_exclusive. + (aarch64_emit_store_exclusive): Likewise gen_aarch64_store_exclusive. + (aarch64_expand_compare_and_swap): Likewise + gen_aarch64_compare_and_swap and gen_aarch64_compare_and_swap_lse + (aarch64_gen_atomic_cas): Likewise gen_aarch64_atomic_cas. + (aarch64_emit_atomic_swap): Likewise gen_aarch64_atomic_swp. + (aarch64_constant_pool_reload_icode): Delete. + (aarch64_secondary_reload): Use code_for_aarch64_reload_movcp + instead of aarch64_constant_pool_reload_icode. Use + code_for_aarch64_reload_mov instead of explicit mode checks. + (rsqrte_type, get_rsqrte_type, rsqrts_type, get_rsqrts_type): Delete. + (aarch64_emit_approx_sqrt): Use gen_aarch64_rsqrte instead of + get_rsqrte_type and gen_aarch64_rsqrts instead of gen_rqrts_type. + (recpe_type, get_recpe_type, recps_type, get_recps_type): Delete. + (aarch64_emit_approx_div): Use gen_aarch64_frecpe instead of + get_recpe_type and gen_aarch64_frecps instead of get_recps_type. + (aarch64_atomic_load_op_code): Delete. + (aarch64_emit_atomic_load_op): Likewise. + (aarch64_gen_atomic_ldop): Use UNSPECV_ATOMIC_* instead of + aarch64_atomic_load_op_code. Use gen_aarch64_atomic_load + instead of aarch64_emit_atomic_load_op. + * config/aarch64/aarch64.md (aarch64_reload_movcp) + (aarch64_reload_movcp, aarch64_reload_mov) + (aarch64_movdi_low, aarch64_movdi_high) + (aarch64_movhigh_di, aarch64_movlow_di): Add a '@' + character before the pattern name. + * config/aarch64/aarch64-simd.md (aarch64_split_simd_mov) + (aarch64_rsqrte, aarch64_rsqrts) + (aarch64_simd_combine, aarch64_frecpe) + (aarch64_frecps): Likewise. + * config/aarch64/atomics.md (atomic_compare_and_swap) + (aarch64_compare_and_swap, aarch64_compare_and_swap_lse) + (aarch64_load_exclusive, aarch64_store_exclusive) + (aarch64_atomic_swp, aarch64_atomic_cas) + (aarch64_atomic_load): Likewise. + +2018-08-02 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_float_const_representable_p): + Allow HFmode constants if TARGET_FP_F16INST. + +2018-08-02 Jackson Woodruff + + PR target/86014 + * config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp): + No longer check last store for clobber of address register. + +2018-08-02 Martin Liska + + PR gcov-profile/86817 + * gcov.c (process_all_functions): New function. + (main): Call it. + (process_file): Move functions processing to + process_all_functions. + +2018-08-02 David Malcolm + + * dumpfile.c (dump_user_location_t::dump_user_location_t): Add + "const" to the "gimple *" and "rtx_insn *" parameters. + * dumpfile.h (dump_user_location_t::dump_user_location_t): + Likewise. + (dump_location_t::dump_location_t): Likewise. + +2018-08-01 Martin Sebor + + PR tree-optimization/86650 + * gimple-pretty-print.c (percent_G_format): Accept a "gimple *" + rather than a "gcall *". Directly pass the data of interest + to percent_K_format, rather than building a temporary CALL_EXPR + to hold it. + * gimple-fold.c (gimple_fold_builtin_strncpy): Adjust. + (gimple_fold_builtin_strncat): Adjust. + * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Replace + gcall* argument with gimple*. + * gimple-ssa-warn-restrict.c (check_call): Same. + (wrestrict_dom_walker::before_dom_children): Same. + (builtin_access::builtin_access): Same. + (check_bounds_or_overlap): Same + (maybe_diag_overlap): Same. + (maybe_diag_offset_bounds): Same. + * tree-diagnostic.c (default_tree_printer): Move usage of + EXPR_LOCATION (t) and TREE_BLOCK (t) from within percent_K_format + to this callsite. + * tree-pretty-print.c (percent_K_format): Add argument. + * tree-pretty-print.h: Add argument. + * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust. + * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Adjust. + (maybe_diag_stxncpy_trunc): Same. + (handle_builtin_stxncpy): Same. + (handle_builtin_strcat): Same. + +2018-08-01 Richard Sandiford + + * match.pd: Optimise pointer range checks. + +2018-08-01 Richard Sandiford + + PR tree-optimization/86758 + * tree-vect-stmts.c (vectorizable_simd_clone_call): Don't try + to remove pattern statements. + +2018-08-01 Richard Sandiford + + * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Use the + result of dfs_enumerate_from when constructing stmt_vec_infos, + instead of additionally calling get_loop_body. + +2018-08-01 Richard Sandiford + + * tree-vectorizer.h (vect_create_data_ref_ptr): Remove inv_p + parameter. + * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise. + When creating an iv, assert that the step is not known to be zero. + (vect_setup_realignment): Update call accordingly. + * tree-vect-stmts.c (vectorizable_store): Likewise. + (vectorizable_load): Likewise. Handle VMAT_INVARIANT separately. + +2018-08-01 Richard Sandiford + + * tree-vectorizer.h (vect_stmt_to_vectorize): New function. + * tree-vect-loop.c (vect_update_vf_for_slp): Use it. + (vectorizable_reduction): Likewise. + * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. + (vect_detect_hybrid_slp_stmts): Likewise. + * tree-vect-stmts.c (vect_is_simple_use): Likewise. + +2018-08-01 Aldy Hernandez + + * tree-vrp (zero_nonzero_bits_from_bounds): Rename to... + (wide_int_set_zero_nonzero_bits): ...this. + (zero_nonzero_bits_from_vr): Rename to... + (vrp_set_zero_nonzero_bits): ...this. + (extract_range_from_multiplicative_op_1): Abstract wide int + code... + (wide_int_range_multiplicative_op): ...here. + (extract_range_from_binary_expr_1): Extract wide int binary + operations into their own functions. + (wide_int_range_lshift): New. + (wide_int_range_can_optimize_bit_op): New. + (wide_int_range_shift_undefined_p): New. + (wide_int_range_bit_xor): New. + (wide_int_range_bit_ior): New. + (wide_int_range_bit_and): New. + (wide_int_range_trunc_mod): New. + (extract_range_into_wide_ints): New. + (vrp_shift_undefined_p): New. + (extract_range_from_multiplicative_op): New. + (vrp_can_optimize_bit_op): New. + * tree-vrp.h (value_range::dump): New. + (wide_int_range_multiplicative_op): New. + (wide_int_range_lshift):New. + (wide_int_range_shift_undefined_p): New. + (wide_int_range_bit_xor): New. + (wide_int_range_bit_ior): New. + (wide_int_range_bit_and): New. + (wide_int_range_trunc_mod): New. + (zero_nonzero_bits_from_bounds): Rename to... + (wide_int_set_zero_nonzero_bits): ...this. + (zero_nonzero_bits_from_vr): Rename to... + (vrp_set_zero_nonzero_bits): ...this. + (range_easy_mask_min_max): Rename to... + (wide_int_range_can_optimize_bit_op): this. + * vr-values.c (simplify_bit_ops_using_ranges): Rename + zero_nonzero_bits_from_vr into vrp_set_zero_nonzero_bits. + +2018-08-01 Richard Sandiford + + * tree-vectorizer.h (vect_orig_stmt): New function. + * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Use it. + * tree-vect-loop.c (vect_model_reduction_cost): Likewise. + (vect_create_epilog_for_reduction): Likewise. + (vectorizable_live_operation): Likewise. + * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Likewise. + (vect_detect_hybrid_slp_stmts, vect_schedule_slp): Likewise. + * tree-vect-stmts.c (vectorizable_call): Likewise. + (vectorizable_simd_clone_call, vect_remove_stores): Likewise. + +2018-08-01 Richard Sandiford + + * tree-vectorizer.h (vect_transform_stmt): Remove grouped_store + argument. + * tree-vect-stmts.c (vect_transform_stmt): Likewise. + * tree-vect-loop.c (vect_transform_loop_stmt): Update call accordingly. + (vect_transform_loop): Likewise. + * tree-vect-slp.c (vect_schedule_slp_instance): Likewise. + +2018-08-01 Richard Sandiford + + * tree-vectorizer.h (vect_schedule_slp): Return void. + * tree-vect-slp.c (vect_schedule_slp_instance): Likewise. + (vect_schedule_slp): Likewise. + +2018-08-01 Richard Sandiford + + * tree-vect-loop.c (vect_transform_loop_stmt): Remove slp_scheduled + argument. + (vect_transform_loop): Update calls accordingly. Schedule SLP + instances before the main loop, if any exist. + +2018-08-01 Richard Sandiford + + PR tree-optimization/86749 + * tree-vect-patterns.c (vect_determine_min_output_precision_1): + If the lhs is used in a COND_EXPR, check that it is being used + as the "then" or "else" value. + +2018-08-01 Tom de Vries + + PR target/86800 + * config/nvptx/nvptx.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define to + speculation_safe_value_not_needed. + +2018-08-01 Richard Biener + + * tree-ssa-sccvn.c (visit_phi): Compare invariant addresses + as base and offset. + +2018-08-01 Martin Liska + + * value-prof.c (gimple_divmod_fixed_value_transform): Unify + format how successful transformation is dumped. + (gimple_mod_pow2_value_transform): Likewise. + (gimple_mod_subtract_transform): Likewise. + (gimple_stringops_transform): Likewise. + +2018-08-01 Martin Liska + + PR value-prof/35543 + * value-prof.c (interesting_stringop_to_profile_p): + Simplify the code and add BUILT_IN_MEMMOVE. + (gimple_stringops_transform): Likewise. + +2018-08-01 Sam Tebbs + + * config/aarch64/aarch64-simd.md + (*aarch64_get_lane_zero_extendsi): Rename to... + (*aarch64_get_lane_zero_extend): ... This and + use GPI iterator instead of SI mode. + +2018-08-01 Richard Earnshaw + + * config/rs6000/rs6000.md (speculation_barrier): Renamed from + rs6000_speculation_barrier. + * config/rs6000/rs6000.c (rs6000_expand_builtin): Adjust for + new barrier pattern name. + +2018-08-01 Richard Earnshaw + + * config/i386/i386.md (unspecv): Add UNSPECV_SPECULATION_BARRIER. + (speculation_barrier): New insn. + +2018-08-01 Richard Biener + + PR bootstrap/86724 + * graphite.h: Include isl/id.h and isl/space.h to allow build + with ISL 0.20. + +2018-08-01 Jan Willem Jagersma + + PR target/86651 + * dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO + mode for COFF targets. + * defaults.h (TARGET_COFF): Define. + * config/i386/djgpp.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END, + TARGET_COFF): Define. + (i386_djgpp_asm_lto_start, i386_djgpp_asm_lto_end): Declare. + * config/i386/djgpp.c (saved_debug_info_level): New static variable. + (i386_djgpp_asm_lto_start, i386_djgpp_asm_lto_end): New functions. + +2018-07-31 Alexandre Oliva + + * gimple-streamer-in.c (input_bb): Restore BB discriminator. + * gimple-streamer-out.c (output_bb): Save it. + * lto-streamer-in.c (input_struct_function_base): Restore + instance discriminator if available. Create map on demand. + * lto-streamer-out.c (output_struct_function_base): Save it if + available. + * final.c (decl_to_instance_map): Document LTO strategy. + +2018-07-31 Alexandre Oliva + Olivier Hainque + + * debug.h (decl_to_instance_map_t): New type. + (decl_to_instance_map): Declare. + (maybe_create_decl_to_instance_map): New inline function. + * final.c (bb_discriminator, last_bb_discriminator): New statics, + to track basic block discriminators. + (final_start_function_1): Initialize them. + (final_scan_insn_1): On NOTE_INSN_BASIC_BLOCK, track + bb_discriminator. + (decl_to_instance_map): New variable. + (map_decl_to_instance, maybe_set_discriminator): New functions. + (notice_source_line): Set discriminator. + +2018-07-31 Ian Lance Taylor + + * targhooks.c (default_have_speculation_safe_value): Add + ATTRIBUTE_UNUSED. + +2018-07-31 David Malcolm + + * dump-context.h: Include "pretty-print.h". + (dump_context::refresh_dumps_are_enabled): New decl. + (dump_context::emit_item): New decl. + (class dump_context): Add fields "m_test_pp" and + "m_test_pp_flags". + (temp_dump_context::temp_dump_context): Add param "test_pp_flags". + (temp_dump_context::get_dumped_text): New decl. + (class temp_dump_context): Add field "m_pp". + * dumpfile.c (refresh_dumps_are_enabled): Convert to... + (dump_context::refresh_dumps_are_enabled): ...and add a test for + m_test_pp. + (set_dump_file): Update for above change. + (set_alt_dump_file): Likewise. + (dump_loc): New overload, taking a pretty_printer *. + (dump_context::dump_loc): Call end_any_optinfo. Dump the location + to any test pretty-printer. + (make_item_for_dump_gimple_stmt): New function, adapted from + optinfo::add_gimple_stmt. + (dump_context::dump_gimple_stmt): Call it, and use the result, + eliminating the direct usage of dump_file and alt_dump_file in + favor of indirectly using them via emit_item. + (make_item_for_dump_gimple_expr): New function, adapted from + optinfo::add_gimple_expr. + (dump_context::dump_gimple_expr): Call it, and use the result, + eliminating the direct usage of dump_file and alt_dump_file in + favor of indirectly using them via emit_item. + (make_item_for_dump_generic_expr): New function, adapted from + optinfo::add_tree. + (dump_context::dump_generic_expr): Call it, and use the result, + eliminating the direct usage of dump_file and alt_dump_file in + favor of indirectly using them via emit_item. + (make_item_for_dump_printf_va): New function, adapted from + optinfo::add_printf_va. + (make_item_for_dump_printf): New function. + (dump_context::dump_printf_va): Call make_item_for_dump_printf_va, + and use the result, eliminating the direct usage of dump_file and + alt_dump_file in favor of indirectly using them via emit_item. + (make_item_for_dump_dec): New function. + (dump_context::dump_dec): Call it, and use the result, + eliminating the direct usage of dump_file and alt_dump_file in + favor of indirectly using them via emit_item. + (make_item_for_dump_symtab_node): New function, adapted from + optinfo::add_symtab_node. + (dump_context::dump_symtab_node): Call it, and use the result, + eliminating the direct usage of dump_file and alt_dump_file in + favor of indirectly using them via emit_item. + (dump_context::begin_scope): Reimplement, avoiding direct usage + of dump_file and alt_dump_file in favor of indirectly using them + via emit_item. + (dump_context::emit_item): New member function. + (temp_dump_context::temp_dump_context): Add param "test_pp_flags". + Set up test pretty-printer on the underlying context. Call + refresh_dumps_are_enabled. + (temp_dump_context::~temp_dump_context): Call + refresh_dumps_are_enabled. + (temp_dump_context::get_dumped_text): New member function. + (selftest::verify_dumped_text): New function. + (ASSERT_DUMPED_TEXT_EQ): New macro. + (selftest::test_capture_of_dump_calls): Run all tests twice, with + and then without optinfo enabled. Add uses of + ASSERT_DUMPED_TEXT_EQ to all tests. Add test of nested scopes. + * dumpfile.h: Update comment for the dump_* API. + * optinfo-emit-json.cc + (selftest::test_building_json_from_dump_calls): Update for new + param for temp_dump_context ctor. + * optinfo.cc (optinfo_item::optinfo_item): Remove "owned" param + and "m_owned" field. + (optinfo_item::~optinfo_item): Likewise. + (optinfo::add_item): New member function. + (optinfo::emit): Update comment. + (optinfo::add_string): Delete. + (optinfo::add_printf): Delete. + (optinfo::add_printf_va): Delete. + (optinfo::add_gimple_stmt): Delete. + (optinfo::add_gimple_expr): Delete. + (optinfo::add_tree): Delete. + (optinfo::add_symtab_node): Delete. + (optinfo::add_dec): Delete. + * optinfo.h (class dump_context): New forward decl. + (optinfo::add_item): New decl. + (optinfo::add_string): Delete. + (optinfo::add_printf): Delete. + (optinfo::add_printf_va): Delete. + (optinfo::add_gimple_stmt): Delete. + (optinfo::add_gimple_expr): Delete. + (optinfo::add_tree): Delete. + (optinfo::add_symtab_node): Delete. + (optinfo::add_dec): Delete. + (optinfo::add_poly_int): Delete. + (optinfo_item::optinfo_item): Remove "owned" param. + (class optinfo_item): Remove field "m_owned". + +2018-07-31 Jozef Lawrynowicz + + PR middle-end/86705 + * gcc/cfgexpand.c (set_parm_rtl): Use the alignment of Pmode when + MAX_SUPPORTED_STACK_ALIGNMENT would otherwise be exceeded by the + requested variable alignment. + (expand_one_ssa_partition): Likewise. + (expand_one_var): Likewise. + +2018-07-31 Richard Earnshaw + + * config/pdp11/pdp11.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine + to speculation_safe_value_not_needed. + +2018-07-31 Richard Earnshaw + + * targhooks.h (speculation_safe_value_not_needed): New prototype. + * targhooks.c (speculation_safe_value_not_needed): New function. + * target.def (have_speculation_safe_value): Update documentation. + * doc/tm.texi: Regenerated. + +2018-07-31 Richard Earnshaw + + * config/aarch64/iterators.md (ALLI_TI): New iterator. + * config/aarch64/aarch64.md (despeculate_copy): New + expand. + (despeculate_copy_insn): New insn. + (despeculate_copyti_insn): New insn. + (despeculate_simple): New insn + (despeculate_simpleti): New insn. + * config/aarch64/aarch64.c (aarch64_speculation_safe_value): New + function. + (TARGET_SPECULATION_SAFE_VALUE): Redefine to + aarch64_speculation_safe_value. + (aarch64_print_operand): Handle const0_rtx in modifier 'H'. + +2018-07-31 Richard Earnshaw + + * config/aarch64/aarch64-speculation.cc: New file. + * config/aarch64/aarch64-passes.def (pass_track_speculation): Add + before pass_reorder_blocks. + * config/aarch64/aarch64-protos.h (make_pass_track_speculation): Add + prototype. + * config/aarch64/aarch64.c (aarch64_conditional_register_usage): Fix + X14 and X15 when tracking speculation. + * config/aarch64/aarch64.md (register name constants): Add + SPECULATION_TRACKER_REGNUM and SPECULATION_SCRATCH_REGNUM. + (unspec): Add UNSPEC_SPECULATION_TRACKER. + (speculation_barrier): New insn attribute. + (cmp): Allow SP in comparisons. + (speculation_tracker): New insn. + (speculation_barrier): Add speculation_barrier attribute. + * config/aarch64/t-aarch64: Add make rule for aarch64-speculation.o. + * config.gcc (aarch64*-*-*): Add aarch64-speculation.o to extra_objs. + * doc/invoke.texi (AArch64 Options): Document -mtrack-speculation. + +2018-07-31 Richard Earnshaw + + * config/aarch64/aarch64.md (cb1): Disable when + aarch64_track_speculation is true. + (tb1): Likewise. + * config/aarch64/aarch64.c (aarch64_split_compare_regs): Do not + generate CB[N]Z when tracking speculation. + (aarch64_split_compare_and_swap): Likewise. + (aarch64_split_atomic_op): Likewise. + +2018-07-31 Richard Earnshaw + + * config/aarch64/aarch64.opt (mtrack-speculation): New target option. + +2018-07-31 Richard Earnshaw + + * config/aarch64.md (unspecv): Add UNSPECV_SPECULAION_BARRIER. + (speculation_barrier): New insn. + +2018-07-31 Richard Earnshaw + + * config/arm/unspecs.md (unspecv): Add VUNSPEC_SPECULATION_BARRIER. + * config/arm/arm.md (speculation_barrier): New expand. + (speculation_barrier_insn): New pattern. + +2018-07-31 Richard Earnshaw + + * builtin-types.def (BT_FN_PTR_PTR_VAR): New function type. + (BT_FN_I1_I1_VAR, BT_FN_I2_I2_VAR, BT_FN_I4_I4_VAR): Likewise. + (BT_FN_I8_I8_VAR, BT_FN_I16_I16_VAR): Likewise. + * builtin-attrs.def (ATTR_NOVOPS_NOTHROW_LEAF_LIST): New attribute + list. + * builtins.def (BUILT_IN_SPECULATION_SAFE_VALUE_N): New builtin. + (BUILT_IN_SPECULATION_SAFE_VALUE_PTR): New internal builtin. + (BUILT_IN_SPECULATION_SAFE_VALUE_1): Likewise. + (BUILT_IN_SPECULATION_SAFE_VALUE_2): Likewise. + (BUILT_IN_SPECULATION_SAFE_VALUE_4): Likewise. + (BUILT_IN_SPECULATION_SAFE_VALUE_8): Likewise. + (BUILT_IN_SPECULATION_SAFE_VALUE_16): Likewise. + * builtins.c (expand_speculation_safe_value): New function. + (expand_builtin): Call it. + * doc/cpp.texi: Document predefine __HAVE_SPECULATION_SAFE_VALUE. + * doc/extend.texi: Document __builtin_speculation_safe_value. + * doc/md.texi: Document "speculation_barrier" pattern. + * doc/tm.texi.in: Pull in TARGET_SPECULATION_SAFE_VALUE and + TARGET_HAVE_SPECULATION_SAFE_VALUE. + * doc/tm.texi: Regenerated. + * target.def (have_speculation_safe_value, speculation_safe_value): New + hooks. + * targhooks.c (default_have_speculation_safe_value): New function. + (default_speculation_safe_value): New function. + * targhooks.h (default_have_speculation_safe_value): Add prototype. + (default_speculation_safe_value): Add prototype. + +2018-07-31 David Malcolm + + * dump-context.h (dump_context::dump_loc): New decl. + * dumpfile.c (dump_context::dump_loc): New member function. + (dump_context::dump_gimple_stmt_loc): Reimplement using dump_loc + and dump_gimple_stmt. + (dump_context::dump_gimple_expr_loc): Likewise, using + dump_gimple_expr. + (dump_context::dump_generic_expr_loc): Likewise, using + dump_generic_expr. + (dump_context::dump_printf_loc_va): Likewise, using + dump_printf_va. + (dump_context::begin_scope): Explicitly using the global function + "dump_loc", rather than the member function. + +2018-07-31 Martin Sebor + + PR tree-optimization/86741 + * tree-vrp.c (vrp_prop::check_mem_ref): Avoid incomplete types. + +2018-07-31 Andreas Krebbel + + * config/s390/s390.c (s390_expand_setmem): Make the unrolling to + depend on whether prefetch instructions will be emitted or not. + Use TARGET_SETMEM_PFD for checking whether prefetch instructions + will be emitted or not. + * config/s390/s390.h (TARGET_SETMEM_PREFETCH_DISTANCE) + (TARGET_SETMEM_PFD): New macros. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (stmt_vec_info): Turn back into a typedef. + (NULL_STMT_VEC_INFO): Delete. + (stmt_vec_info::operator*): Likewise. + (stmt_vec_info::operator gimple *): Likewise. + * tree-vect-loop.c (vectorizable_reduction): Use NULL instead + of NULL_STMT_VEC_INFO. + * tree-vect-patterns.c (vect_init_pattern_stmt): Likewise. + (vect_reassociating_reduction_p): Likewise. + * tree-vect-stmts.c (vect_build_gather_load_calls): Likewise. + (vectorizable_store): Likewise. + * tree-vectorizer.c (vec_info::set_vinfo_for_stmt): Likewise. + (vec_info::free_stmt_vec_infos): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (vect_stmt_in_region_p): Delete. + * tree-vectorizer.c (vect_stmt_in_region_p): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (vec_info::new_vinfo_for_stmt) + (vec_info::set_vinfo_for_stmt, vec_info::free_stmt_vec_infos) + (vec_info::free_stmt_vec_info): New private member functions. + (set_stmt_vec_info_vec, free_stmt_vec_infos, vinfo_for_stmt) + (set_vinfo_for_stmt, new_stmt_vec_info, free_stmt_vec_info): Delete. + * tree-parloops.c (gather_scalar_reductions): Remove calls to + set_stmt_vec_info_vec and free_stmt_vec_infos. + * tree-vect-loop.c (_loop_vec_info): Remove call to + set_stmt_vec_info_vec. + * tree-vect-stmts.c (new_stmt_vec_info, set_stmt_vec_info_vec) + (free_stmt_vec_infos, free_stmt_vec_info): Delete in favor of... + * tree-vectorizer.c (vec_info::new_stmt_vec_info) + (vec_info::set_vinfo_for_stmt, vec_info::free_stmt_vec_infos) + (vec_info::free_stmt_vec_info): ...these new functions. Remove + assignments in {vec_info::,}new_stmt_vec_info that are redundant + with the clearing in the xcalloc. + (stmt_vec_info_vec): Delete. + (vec_info::vec_info): Don't call set_stmt_vec_info_vec. + (vectorize_loops): Likewise. + (vec_info::~vec_info): Remove argument from call to + free_stmt_vec_infos. + (vec_info::add_stmt): Remove vinfo argument from call to + new_stmt_vec_info. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (free_stmt_vec_info): Take a stmt_vec_info + rather than a gimple stmt. + * tree-vect-stmts.c (free_stmt_vec_info): Likewise. Don't free + information for pattern statements when passed the original + statement; instead wait to be passed the pattern statement itself. + Don't call set_vinfo_for_stmt here. + (free_stmt_vec_infos): Update call to free_stmt_vec_info. + * tree-vect-loop.c (_loop_vec_info::~loop_vec_info): Don't free + stmt_vec_infos here. + * tree-vect-slp.c (_bb_vec_info::~bb_vec_info): Likewise. + * tree-vectorizer.c (vec_info::remove_stmt): Nullify the statement's + stmt_vec_infos entry. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (vec_info::replace_stmt): Declare. + * tree-vectorizer.c (vec_info::replace_stmt): New function. + * tree-vect-slp.c (vect_remove_slp_scalar_calls): Use it. + * tree-vect-stmts.c (vectorizable_call): Likewise. + (vectorizable_simd_clone_call): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (vec_info::remove_stmt): Declare. + * tree-vectorizer.c (vec_info::remove_stmt): New function. + * tree-vect-loop-manip.c (vect_set_loop_condition): Use it. + * tree-vect-loop.c (vect_transform_loop): Likewise. + * tree-vect-slp.c (vect_schedule_slp): Likewise. + * tree-vect-stmts.c (vect_remove_stores): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (vec_info::lookup_dr): New member function. + (vect_dr_stmt): Delete. + * tree-vectorizer.c (vec_info::lookup_dr): New function. + * tree-vect-loop-manip.c (vect_update_inits_of_drs): Use it instead + of DR_VECT_AUX. + * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr) + (vect_analyze_data_ref_dependence, vect_record_base_alignments) + (vect_verify_datarefs_alignment, vect_peeling_supportable) + (vect_analyze_data_ref_accesses, vect_prune_runtime_alias_test_list) + (vect_analyze_data_refs): Likewise. + (vect_slp_analyze_data_ref_dependence): Likewise. Take a vec_info + argument. + (vect_find_same_alignment_drs): Likewise. + (vect_slp_analyze_node_dependences): Update calls accordingly. + (vect_analyze_data_refs_alignment): Likewise. Use vec_info::lookup_dr + instead of DR_VECT_AUX. + (vect_get_peeling_costs_all_drs): Take a loop_vec_info instead + of a vector data references. Use vec_info::lookup_dr instead of + DR_VECT_AUX. + (vect_peeling_hash_get_lowest_cost): Update calls accordingly. + (vect_enhance_data_refs_alignment): Likewise. Use vec_info::lookup_dr + instead of DR_VECT_AUX. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (_loop_vec_info::unaligned_dr): Change to + dr_vec_info. + * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Update + accordingly. + * tree-vect-loop.c (vect_analyze_loop_2): Likewise. + * tree-vect-loop-manip.c (get_misalign_in_elems): Likewise. + (vect_gen_prolog_loop_niters): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (set_dr_misalignment, dr_misalignment) + (DR_TARGET_ALIGNMENT, aligned_access_p, known_alignment_for_access_p) + (vect_known_alignment_in_bytes, vect_dr_behavior) + (vect_get_scalar_dr_size): Take references as dr_vec_infos + instead of data_references. Update calls to other routines for + which the same change has been made. + * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Take + dr_vec_infos instead of stmt_vec_infos. + (vect_analyze_data_ref_dependence): Update call accordingly. + (vect_slp_analyze_data_ref_dependence) + (vect_record_base_alignments): Use DR_VECT_AUX. + (vect_calculate_target_alignment, vect_compute_data_ref_alignment) + (vect_update_misalignment_for_peel, verify_data_ref_alignment) + (vector_alignment_reachable_p, vect_get_data_access_cost) + (vect_peeling_supportable, vect_analyze_group_access_1) + (vect_analyze_group_access, vect_analyze_data_ref_access) + (vect_vfa_segment_size, vect_vfa_access_size, vect_vfa_align) + (vect_compile_time_alias, vect_small_gap_p) + (vectorizable_with_step_bound_p, vect_duplicate_ssa_name_ptr_info): + (vect_supportable_dr_alignment): Take references as dr_vec_infos + instead of data_references. Update calls to other routines for + which the same change has been made. + (vect_verify_datarefs_alignment, vect_get_peeling_costs_all_drs) + (vect_find_same_alignment_drs, vect_analyze_data_refs_alignment) + (vect_slp_analyze_and_verify_node_alignment) + (vect_analyze_data_ref_accesses, vect_prune_runtime_alias_test_list) + (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr) + (vect_setup_realignment): Use dr_vec_infos. Update calls after + above changes. + (_vect_peel_info::dr): Replace with... + (_vect_peel_info::dr_info): ...this new field. + (vect_peeling_hash_get_most_frequent) + (vect_peeling_hash_choose_best_peeling): Update accordingly. + (vect_peeling_hash_get_lowest_cost): + (vect_enhance_data_refs_alignment): Likewise. Update calls to other + routines for which the same change has been made. + (vect_peeling_hash_insert): Likewise. Take a dr_vec_info instead of a + data_reference. + * tree-vect-loop-manip.c (get_misalign_in_elems) + (vect_gen_prolog_loop_niters): Use dr_vec_infos. Update calls after + above changes. + * tree-vect-loop.c (vect_analyze_loop_2): Likewise. + * tree-vect-stmts.c (vect_get_store_cost, vect_get_load_cost) + (vect_truncate_gather_scatter_offset, compare_step_with_zero) + (get_group_load_store_type, get_negative_load_store_type) + (vect_get_data_ptr_increment, vectorizable_store) + (vectorizable_load): Likewise. + (ensure_base_align): Take a dr_vec_info instead of a data_reference. + Update calls to other routines for which the same change has been made. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (vec_info::move_dr): New member function. + (dataref_aux): Rename to... + (dr_vec_info): ...this and add "dr" and "stmt" fields. + (_stmt_vec_info::dr_aux): Update accordingly. + (_stmt_vec_info::data_ref_info): Delete. + (STMT_VINFO_GROUPED_ACCESS, DR_GROUP_FIRST_ELEMENT) + (DR_GROUP_NEXT_ELEMENT, DR_GROUP_SIZE, DR_GROUP_STORE_COUNT) + (DR_GROUP_GAP, DR_GROUP_SAME_DR_STMT, REDUC_GROUP_FIRST_ELEMENT): + (REDUC_GROUP_NEXT_ELEMENT, REDUC_GROUP_SIZE): Use dr_aux.dr instead + of data_ref. + (STMT_VINFO_DATA_REF): Likewise. Turn into an lvalue. + (STMT_VINFO_DR_INFO): New macro. + (DR_VECT_AUX): Use STMT_VINFO_DR_INKFO and vect_dr_stmt. + (set_dr_misalignment): Update after rename of dataref_aux. + (vect_dr_stmt): Move earlier in file. Return dr_aux.stmt. + * tree-vect-stmts.c (new_stmt_vec_info): Remove redundant + initialization of STMT_VINFO_DATA_REF. + * tree-vectorizer.c (vec_info::move_dr): New function. + * tree-vect-patterns.c (vect_recog_bool_pattern) + (vect_recog_mask_conversion_pattern) + (vect_recog_gather_scatter_pattern): Use it. + * tree-vect-data-refs.c (vect_analyze_data_refs): Initialize + the "dr" and "stmt" fields of dr_vec_info instead of + STMT_VINFO_DATA_REF. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (_stmt_vec_info::pattern_stmt_p): New field. + (is_pattern_stmt_p): Use it. + * tree-vect-patterns.c (vect_init_pattern_stmt): Set pattern_stmt_p + on pattern statements. + +2018-07-31 Richard Sandiford + + * tree-vect-patterns.c (vect_mark_pattern_stmts): Take the + original stmt as a stmt_vec_info rather than a gimple stmt. + (vect_pattern_recog_1): Take the statement directly as a + stmt_vec_info, rather than via a gimple_stmt_iterator. + Update call to vect_mark_pattern_stmts. + (vect_pattern_recog): Update calls accordingly. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (vect_get_vec_defs_for_stmt_copy) + (vect_get_vec_def_for_stmt_copy): Take a vec_info rather than + a vect_def_type for the first argument. + * tree-vect-stmts.c (vect_get_vec_defs_for_stmt_copy): Likewise. + (vect_get_vec_def_for_stmt_copy): Likewise. Return the original + operand if it isn't defined by a vectorized statement. + (vect_build_gather_load_calls): Remove the mask_dt argument and + update calls to vect_get_vec_def_for_stmt_copy. + (vectorizable_bswap): Likewise the dt argument. + (vectorizable_call): Update calls to vectorizable_bswap and + vect_get_vec_def_for_stmt_copy. + (vectorizable_simd_clone_call, vectorizable_assignment) + (vectorizable_shift, vectorizable_operation, vectorizable_condition) + (vectorizable_comparison): Update calls to + vect_get_vec_def_for_stmt_copy. + (vectorizable_store): Likewise. Remove now-unnecessary calls to + vect_is_simple_use. + (vect_get_loop_based_defs): Remove dt argument and update call + to vect_get_vec_def_for_stmt_copy. + (vectorizable_conversion): Update calls to vect_get_loop_based_defs + and vect_get_vec_def_for_stmt_copy. + (vectorizable_load): Update calls to vect_build_gather_load_calls + and vect_get_vec_def_for_stmt_copy. + * tree-vect-loop.c (vect_create_epilog_for_reduction) + (vectorizable_reduction, vectorizable_live_operation): Update calls + to vect_get_vec_def_for_stmt_copy. + +2018-07-31 Richard Sandiford + + * tree-vect-data-refs.c (vect_record_base_alignment): Replace vec_info + and gimple stmt arguments with a stmt_vec_info. + (vect_record_base_alignments): Update calls accordingly. + * tree-vect-slp.c (vect_record_max_nunits): Replace vec_info + and gimple stmt arguments with a stmt_vec_info. + (vect_build_slp_tree_1): Remove vinfo argument and update call + to vect_record_max_nunits. + (vect_build_slp_tree_2): Update calls to vect_build_slp_tree_1 + and vect_record_max_nunits. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (nested_in_vect_loop_p): Move further down + file and take a stmt_vec_info instead of a gimple stmt. + (supportable_widening_operation, vect_finish_replace_stmt) + (vect_finish_stmt_generation, vect_get_store_rhs) + (vect_get_vec_def_for_operand_1, vect_get_vec_def_for_operand) + (vect_get_vec_defs, vect_init_vector, vect_transform_stmt) + (vect_remove_stores, vect_analyze_stmt, vectorizable_condition) + (vect_get_smallest_scalar_type, vect_check_gather_scatter) + (vect_create_data_ref_ptr, bump_vector_ptr) + (vect_permute_store_chain, vect_setup_realignment) + (vect_transform_grouped_load, vect_record_grouped_load_vectors) + (vect_create_addr_base_for_vector_ref, vectorizable_live_operation) + (vectorizable_reduction, vectorizable_induction) + (get_initial_def_for_reduction, is_simple_and_all_uses_invariant) + (vect_get_place_in_interleaving_chain): Take stmt_vec_infos rather + than gimple stmts as arguments. + * tree-vect-data-refs.c (vect_get_smallest_scalar_type) + (vect_preserves_scalar_order_p, vect_slp_analyze_node_dependences) + (can_group_stmts_p, vect_check_gather_scatter) + (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr) + (bump_vector_ptr, vect_permute_store_chain, vect_setup_realignment) + (vect_permute_load_chain, vect_shift_permute_load_chain) + (vect_transform_grouped_load) + (vect_record_grouped_load_vectors): Likewise. + * tree-vect-loop.c (vect_fixup_reduc_chain) + (get_initial_def_for_reduction, vect_create_epilog_for_reduction) + (vectorize_fold_left_reduction, is_nonwrapping_integer_induction) + (vectorizable_reduction, vectorizable_induction) + (vectorizable_live_operation, vect_loop_kill_debug_uses): Likewise. + * tree-vect-patterns.c (type_conversion_p, adjust_bool_stmts) + (vect_get_load_store_mask): Likewise. + * tree-vect-slp.c (vect_get_place_in_interleaving_chain) + (vect_analyze_slp_instance, vect_mask_constant_operand_p): Likewise. + * tree-vect-stmts.c (vect_mark_relevant) + (is_simple_and_all_uses_invariant) + (exist_non_indexing_operands_for_use_p, process_use) + (vect_init_vector_1, vect_init_vector, vect_get_vec_def_for_operand_1) + (vect_get_vec_def_for_operand, vect_get_vec_defs) + (vect_finish_stmt_generation_1, vect_finish_replace_stmt) + (vect_finish_stmt_generation, vect_truncate_gather_scatter_offset) + (compare_step_with_zero, vect_get_store_rhs, get_group_load_store_type) + (get_negative_load_store_type, get_load_store_type) + (vect_check_load_store_mask, vect_check_store_rhs) + (vect_build_gather_load_calls, vect_get_strided_load_store_ops) + (vectorizable_bswap, vectorizable_call, vectorizable_simd_clone_call) + (vect_create_vectorized_demotion_stmts, vectorizable_conversion) + (vectorizable_assignment, vectorizable_shift, vectorizable_operation) + (get_group_alias_ptr_type, vectorizable_store, hoist_defs_of_uses) + (vectorizable_load, vectorizable_condition, vectorizable_comparison) + (vect_analyze_stmt, vect_transform_stmt, vect_remove_stores) + (supportable_widening_operation): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vect-data-refs.c (vect_describe_gather_scatter_call): Take + a stmt_vec_info instead of a gcall. + (vect_check_gather_scatter): Update call accordingly. + * tree-vect-loop-manip.c (iv_phi_p): Take a stmt_vec_info instead + of a gphi. + (vect_can_advance_ivs_p, vect_update_ivs_after_vectorizer) + (slpeel_update_phi_nodes_for_loops):): Update calls accordingly. + * tree-vect-loop.c (vect_transform_loop_stmt): Take a stmt_vec_info + instead of a gimple stmt. + (vect_transform_loop): Update calls accordingly. + * tree-vect-slp.c (vect_split_slp_store_group): Take and return + stmt_vec_infos instead of gimple stmts. + (vect_analyze_slp_instance): Update use accordingly. + * tree-vect-stmts.c (read_vector_array, write_vector_array) + (vect_clobber_variable, vect_stmt_relevant_p, permute_vec_elements) + (vect_use_strided_gather_scatters_p, vect_build_all_ones_mask) + (vect_build_zero_merge_argument, vect_get_gather_scatter_ops) + (vect_gen_widened_results_half, vect_get_loop_based_defs) + (vect_create_vectorized_promotion_stmts, can_vectorize_live_stmts): + Take a stmt_vec_info instead of a gimple stmt and pass stmt_vec_infos + down to subroutines. + +2018-07-31 Richard Sandiford + + * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Change the type + of the worklist from a vector of gimple stmts to a vector of + stmt_vec_infos. + * tree-vect-stmts.c (vect_mark_relevant, process_use) + (vect_mark_stmts_to_be_vectorized): Likewise + +2018-07-31 Richard Sandiford + + * tree-vect-loop.c (vect_analyze_loop_operations): Look up the + statement before passing it to vect_analyze_stmt. + (vect_create_epilog_for_reduction): Use a stmt_vec_info to walk + the chain of phi vector definitions. Track the exit phi via its + stmt_vec_info. + (vectorizable_reduction): Set cond_stmt_vinfo directly from the + STMT_VINFO_REDUC_DEF. + * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Use + stmt_vec_infos to handle the statement chains. + (vect_get_slp_defs): Record the first statement in the node + using a stmt_vec_info. + * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Look up + statements here and pass their stmt_vec_info down to subroutines. + (vect_init_vector_1): Hoist call to vinfo_for_stmt and pass it + down to vect_finish_stmt_generation. + (vect_init_vector, vect_get_vec_defs, vect_finish_replace_stmt) + (vect_finish_stmt_generation): Call vinfo_for_stmt and pass + stmt_vec_infos to subroutines. + (vect_remove_stores): Use stmt_vec_infos to handle the statement + chains. + +2018-07-31 Richard Sandiford + + * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): + (vect_check_gather_scatter, vect_create_data_ref_ptr, bump_vector_ptr) + (vect_permute_store_chain, vect_setup_realignment) + (vect_permute_load_chain, vect_shift_permute_load_chain) + (vect_transform_grouped_load): Use stmt_vec_info rather than gimple + stmts internally, and when passing values to other vectorizer routines. + * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Likewise. + * tree-vect-loop.c (vect_analyze_scalar_cycles_1) + (vect_analyze_loop_operations, get_initial_def_for_reduction) + (vect_create_epilog_for_reduction, vectorize_fold_left_reduction) + (vectorizable_reduction, vectorizable_induction) + (vectorizable_live_operation, vect_transform_loop_stmt) + (vect_transform_loop): Likewise. + * tree-vect-patterns.c (vect_reassociating_reduction_p) + (vect_recog_widen_op_pattern, vect_recog_mixed_size_cond_pattern) + (vect_recog_bool_pattern, vect_recog_gather_scatter_pattern): Likewise. + * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. + (vect_slp_analyze_node_operations_1): Likewise. + * tree-vect-stmts.c (vect_mark_relevant, process_use) + (exist_non_indexing_operands_for_use_p, vect_init_vector_1) + (vect_mark_stmts_to_be_vectorized, vect_get_vec_def_for_operand) + (vect_finish_stmt_generation_1, get_group_load_store_type) + (get_load_store_type, vect_build_gather_load_calls) + (vectorizable_bswap, vectorizable_call, vectorizable_simd_clone_call) + (vect_create_vectorized_demotion_stmts, vectorizable_conversion) + (vectorizable_assignment, vectorizable_shift, vectorizable_operation) + (vectorizable_store, vectorizable_load, vectorizable_condition) + (vectorizable_comparison, vect_analyze_stmt, vect_transform_stmt) + (supportable_widening_operation): Likewise. + (vect_get_vector_types_for_stmt): Likewise. + * tree-vectorizer.h (vect_dr_behavior): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vect-data-refs.c (vect_analyze_data_ref_dependence) + (vect_slp_analyze_node_dependences, vect_analyze_data_ref_accesses) + (vect_permute_store_chain, vect_permute_load_chain) + (vect_shift_permute_load_chain, vect_transform_grouped_load): Avoid + repeated stmt_vec_info lookups. + * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Likewise. + (vect_update_ivs_after_vectorizer): Likewise. + * tree-vect-loop.c (vect_is_simple_reduction): Likewise. + (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise. + * tree-vect-patterns.c (adjust_bool_stmts): Likewise. + * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. + (vect_bb_slp_scalar_cost): Likewise. + * tree-vect-stmts.c (get_group_alias_ptr_type): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vect-data-refs.c (vect_check_gather_scatter): Pass the + gcall rather than the generic gimple stmt to gimple_call_internal_fn. + (vect_get_smallest_scalar_type, can_group_stmts_p): Use dyn_cast + to get gassigns and gcalls, rather than operating on generc gimple + stmts. + * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p) + (vect_mark_stmts_to_be_vectorized, vectorizable_store) + (vectorizable_load, vect_analyze_stmt): Likewise. + * tree-vect-loop.c (vectorizable_reduction): Likewise gphi. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (get_earlier_stmt, get_later_stmt): Take and + return stmt_vec_infos rather than gimple stmts. Do not accept + null arguments. + (vect_find_last_scalar_stmt_in_slp): Return a stmt_vec_info instead + of a gimple stmt. + * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Likewise. + Update use of get_later_stmt. + (vect_get_constant_vectors): Update call accordingly. + (vect_schedule_slp_instance): Likewise + * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Likewise. + (vect_slp_analyze_instance_dependence): Likewise. + (vect_preserves_scalar_order_p): Update use of get_earlier_stmt. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (stmt_info_for_cost::stmt): Replace with... + (stmt_info_for_cost::stmt_info): ...this new field. + (add_stmt_costs): Update accordingly. + * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost) + (vect_get_known_peeling_cost): Likewise. + (vect_estimate_min_profitable_iters): Likewise. + * tree-vect-stmts.c (record_stmt_cost): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (_loop_vec_info::may_misalign_stmts): Change + from an auto_vec to an auto_vec. + * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Update + accordingly. + * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (_stmt_vec_info::same_dr_stmt): Change from + a gimple stmt to a stmt_vec_info. + * tree-vect-stmts.c (vectorizable_load): Update accordingly. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (vec_info::grouped_stores): Change from + an auto_vec to an auto_vec. + (_loop_vec_info::reduction_chains): Likewise. + * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Update + accordingly. + * tree-vect-slp.c (vect_analyze_slp): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (_stmt_vec_info::first_element): Change from + a gimple stmt to a stmt_vec_info. + (_stmt_vec_info::next_element): Likewise. + * tree-vect-data-refs.c (vect_update_misalignment_for_peel) + (vect_slp_analyze_and_verify_node_alignment) + (vect_analyze_group_access_1, vect_analyze_group_access) + (vect_small_gap_p, vect_prune_runtime_alias_test_list) + (vect_create_data_ref_ptr, vect_record_grouped_load_vectors) + (vect_supportable_dr_alignment): Update accordingly. + * tree-vect-loop.c (vect_fixup_reduc_chain): Likewise. + (vect_fixup_scalar_cycles_with_patterns, vect_is_slp_reduction) + (vect_is_simple_reduction, vectorizable_reduction): Likewise. + * tree-vect-patterns.c (vect_reassociating_reduction_p): Likewise. + * tree-vect-slp.c (vect_build_slp_tree_1) + (vect_attempt_slp_rearrange_stmts, vect_supported_load_permutation_p) + (vect_split_slp_store_group, vect_analyze_slp_instance) + (vect_analyze_slp, vect_transform_slp_perm_load): Likewise. + * tree-vect-stmts.c (vect_model_store_cost, vect_model_load_cost) + (get_group_load_store_type, get_load_store_type) + (get_group_alias_ptr_type, vectorizable_store, vectorizable_load) + (vect_transform_stmt, vect_remove_stores): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (vect_dr_stmt): Return a stmt_vec_info rather + than a gimple stmt. + * tree-vect-data-refs.c (vect_analyze_data_ref_dependence) + (vect_slp_analyze_data_ref_dependence, vect_record_base_alignments) + (vect_calculate_target_alignmentm, vect_compute_data_ref_alignment) + (vect_update_misalignment_for_peel, vect_verify_datarefs_alignment) + (vector_alignment_reachable_p, vect_get_data_access_cost) + (vect_get_peeling_costs_all_drs, vect_peeling_hash_get_lowest_cost) + (vect_peeling_supportable, vect_enhance_data_refs_alignment) + (vect_find_same_alignment_drs, vect_analyze_data_refs_alignment) + (vect_analyze_group_access_1, vect_analyze_group_access) + (vect_analyze_data_ref_access, vect_analyze_data_ref_accesses) + (vect_vfa_access_size, vect_small_gap_p, vect_analyze_data_refs) + (vect_supportable_dr_alignment): Remove vinfo_for_stmt from the + result of vect_dr_stmt and use the stmt_vec_info instead of + the associated gimple stmt. + * tree-vect-loop-manip.c (get_misalign_in_elems): Likewise. + (vect_gen_prolog_loop_niters): Likewise. + * tree-vect-loop.c (vect_analyze_loop_2): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (_slp_tree::stmts): Change from a vec + to a vec. + * tree-vect-slp.c (vect_free_slp_tree): Update accordingly. + (vect_create_new_slp_node): Take a vec instead of a + vec. + (_slp_oprnd_info::def_stmts): Change from a vec + to a vec. + (bst_traits::value_type, bst_traits::value_type): Likewise. + (bst_traits::hash): Update accordingly. + (vect_get_and_check_slp_defs): Change the stmts parameter from + a vec to a vec. + (vect_two_operations_perm_ok_p, vect_build_slp_tree_1): Likewise. + (vect_build_slp_tree): Likewise. + (vect_build_slp_tree_2): Likewise. Update uses of + SLP_TREE_SCALAR_STMTS. + (vect_print_slp_tree): Update uses of SLP_TREE_SCALAR_STMTS. + (vect_mark_slp_stmts, vect_mark_slp_stmts_relevant) + (vect_slp_rearrange_stmts, vect_attempt_slp_rearrange_stmts) + (vect_supported_load_permutation_p, vect_find_last_scalar_stmt_in_slp) + (vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations_1) + (vect_slp_analyze_node_operations, vect_slp_analyze_operations) + (vect_bb_slp_scalar_cost, vect_slp_analyze_bb_1) + (vect_get_constant_vectors, vect_get_slp_defs) + (vect_transform_slp_perm_load, vect_schedule_slp_instance) + (vect_remove_slp_scalar_calls, vect_schedule_slp): Likewise. + (vect_analyze_slp_instance): Build up a vec of stmt_vec_infos + instead of gimple stmts. + * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Change + the stores parameter for a vec to a vec. + (vect_slp_analyze_instance_dependence): Update uses of + SLP_TREE_SCALAR_STMTS. + (vect_slp_analyze_and_verify_node_alignment): Likewise. + (vect_slp_analyze_and_verify_instance_alignment): Likewise. + * tree-vect-loop.c (neutral_op_for_slp_reduction): Likewise. + (get_initial_defs_for_reduction): Likewise. + (vect_create_epilog_for_reduction): Likewise. + (vectorize_fold_left_reduction): Likewise. + * tree-vect-stmts.c (vect_prologue_cost_for_slp_op): Likewise. + (vect_model_simple_cost, vectorizable_shift, vectorizable_load) + (can_vectorize_live_stmts): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (_loop_vec_info::reductions): Change from an + auto_vec to an auto_vec. + (vect_force_simple_reduction): Take and return stmt_vec_infos rather + than gimple stmts. + * tree-parloops.c (valid_reduction_p): Take a stmt_vec_info instead + of a gimple stmt. + (gather_scalar_reductions): Update after above interface changes. + * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise. + (vect_is_simple_reduction): Take and return stmt_vec_infos rather + than gimple stmts. + (vect_force_simple_reduction): Likewise. + * tree-vect-patterns.c (vect_pattern_recog_1): Update use of + LOOP_VINFO_REDUCTIONS. + * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (_stmt_vec_info::reduc_def): Change from + a gimple stmt to a stmt_vec_info. + * tree-vect-loop.c (vect_active_double_reduction_p) + (vect_force_simple_reduction, vectorizable_reduction): Update + accordingly. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (_slp_tree::vec_stmts): Change from a + vec to a vec. + * tree-vect-loop.c (vect_create_epilog_for_reduction): Change + the reduction_phis argument from a vec to a + vec. + (vectorizable_reduction): Likewise the phis local variable that + is passed to vect_create_epilog_for_reduction. Update for new type + of SLP_TREE_VEC_STMTS. + (vectorizable_induction): Update for new type of SLP_TREE_VEC_STMTS. + (vectorizable_live_operation): Likewise. + * tree-vect-slp.c (vect_get_slp_vect_defs): Likewise. + (vect_transform_slp_perm_load, vect_schedule_slp_instance): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (_stmt_vec_info::vectorized_stmt): Change from + a gimple stmt to a stmt_vec_info. + (vectorizable_condition, vectorizable_live_operation) + (vectorizable_reduction, vectorizable_induction): Pass back the + vectorized statement as a stmt_vec_info. + * tree-vect-data-refs.c (vect_record_grouped_load_vectors): Update + use of STMT_VINFO_VEC_STMT. + * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise, + accumulating the inner phis that feed the STMT_VINFO_VEC_STMT + as stmt_vec_infos rather than gimple stmts. + (vectorize_fold_left_reduction): Change vec_stmt from a gimple stmt + to a stmt_vec_info. + (vectorizable_live_operation): Likewise. + (vectorizable_reduction, vectorizable_induction): Likewise, + updating use of STMT_VINFO_VEC_STMT. + * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Update use + of STMT_VINFO_VEC_STMT. + (vect_build_gather_load_calls, vectorizable_bswap, vectorizable_call) + (vectorizable_simd_clone_call, vectorizable_conversion) + (vectorizable_assignment, vectorizable_shift, vectorizable_operation) + (vectorizable_store, vectorizable_load, vectorizable_condition) + (vectorizable_comparison, can_vectorize_live_stmts): Change vec_stmt + from a gimple stmt to a stmt_vec_info. + (vect_transform_stmt): Update use of STMT_VINFO_VEC_STMT. Pass a + pointer to a stmt_vec_info to the vectorizable_* routines. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (_stmt_vec_info::related_stmt): Change from + a gimple stmt to a stmt_vec_info. + (is_pattern_stmt_p): Update accordingly. + * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Likewise. + (vect_record_grouped_load_vectors): Likewise. + * tree-vect-loop.c (vect_determine_vf_for_stmt): Likewise. + (vect_fixup_reduc_chain, vect_update_vf_for_slp): Likewise. + (vect_model_reduction_cost): Likewise. + (vect_create_epilog_for_reduction): Likewise. + (vectorizable_reduction, vectorizable_induction): Likewise. + * tree-vect-patterns.c (vect_init_pattern_stmt): Likewise. + Return the stmt_vec_info for the pattern statement. + (vect_set_pattern_stmt): Update use of STMT_VINFO_RELATED_STMT. + (vect_split_statement, vect_mark_pattern_stmts): Likewise. + * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise. + (vect_detect_hybrid_slp, vect_get_slp_defs): Likewise. + * tree-vect-stmts.c (vect_mark_relevant): Likewise. + (vect_get_vec_def_for_operand_1, vectorizable_call): Likewise. + (vectorizable_simd_clone_call, vect_analyze_stmt, new_stmt_vec_info) + (free_stmt_vec_info, vect_is_simple_use): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (vect_finish_replace_stmt): Return a stmt_vec_info + (vect_finish_stmt_generation): Likewise. + * tree-vect-stmts.c (vect_finish_stmt_generation_1): Likewise. + (vect_finish_replace_stmt, vect_finish_stmt_generation): Likewise. + (vect_build_gather_load_calls): Use the return value of the above + functions instead of a separate call to vinfo_for_stmt. Use narrow + scopes for the input gimple stmt and wider scopes for the associated + stmt_vec_info. Use vec_info::lookup_def when setting these + stmt_vec_infos from an SSA_NAME definition. + (vectorizable_bswap, vectorizable_call, vectorizable_simd_clone_call) + (vect_create_vectorized_demotion_stmts, vectorizable_conversion) + (vectorizable_assignment, vectorizable_shift, vectorizable_operation) + (vectorizable_store, vectorizable_load, vectorizable_condition) + (vectorizable_comparison): Likewise. + * tree-vect-loop.c (vectorize_fold_left_reduction): Likewise. + (vectorizable_reduction): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (vect_is_simple_use): Add an optional + stmt_vec_info * parameter before the optional gimple **. + * tree-vect-stmts.c (vect_is_simple_use): Likewise. + (process_use, vect_get_vec_def_for_operand_1): Update callers. + (vect_get_vec_def_for_operand, vectorizable_shift): Likewise. + * tree-vect-loop.c (vectorizable_reduction): Likewise. + (vectorizable_live_operation): Likewise. + * tree-vect-patterns.c (type_conversion_p): Likewise. + (vect_look_through_possible_promotion): Likewise. + (vect_recog_rotate_pattern): Likewise. + * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (stmt_vec_info): Temporarily change from + a typedef to a wrapper class. + (NULL_STMT_VEC_INFO): New macro. + (vec_info::stmt_infos): Change to vec. + (stmt_vec_info::operator*): New function. + (stmt_vec_info::operator gimple *): Likewise. + (set_vinfo_for_stmt): Use NULL_STMT_VEC_INFO. + (add_stmt_costs): Likewise. + * tree-vect-loop-manip.c (iv_phi_p): Likewise. + * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost) + (vect_get_known_peeling_cost): Likewise. + (vect_estimate_min_profitable_iters): Likewise. + * tree-vect-patterns.c (vect_init_pattern_stmt): Likewise. + * tree-vect-slp.c (vect_remove_slp_scalar_calls): Likewise. + * tree-vect-stmts.c (vect_build_gather_load_calls): Likewise. + (vectorizable_store, free_stmt_vec_infos): Likewise. + (new_stmt_vec_info): Change return type of xcalloc to + _stmt_vec_info *. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (vec_info::lookup_single_use): Declare. + * tree-vectorizer.c (vec_info::lookup_single_use): New function. + * tree-vect-loop.c (vectorizable_reduction): Use it instead of + a single_imm_use-based sequence. + * tree-vect-stmts.c (supportable_widening_operation): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (vec_info::lookup_def): Declare. + * tree-vectorizer.c (vec_info::lookup_def): New function. + * tree-vect-patterns.c (vect_get_internal_def): Use it. + (vect_widened_op_tree): Likewise. + * tree-vect-stmts.c (vect_is_simple_use): Likewise. + * tree-vect-loop.c (vect_analyze_loop_operations): Likewise. + (vectorizable_reduction): Likewise. + (vect_valid_reduction_input_p): Take a stmt_vec_info instead + of a gimple *. + (vect_is_slp_reduction): Update calls accordingly. Use + vec_info::lookup_def. + (vect_is_simple_reduction): Likewise + * tree-vect-slp.c (vect_detect_hybrid_slp_1): Use vec_info::lookup_def. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (vec_info::lookup_stmt): Declare. + * tree-vectorizer.c (vec_info::lookup_stmt): New function. + * tree-vect-loop.c (vect_determine_vf_for_stmt): Use it instead + of vinfo_for_stmt. + (vect_determine_vectorization_factor, vect_analyze_scalar_cycles_1) + (vect_compute_single_scalar_iteration_cost, vect_analyze_loop_form) + (vect_update_vf_for_slp, vect_analyze_loop_operations) + (vect_is_slp_reduction, vectorizable_induction) + (vect_transform_loop_stmt, vect_transform_loop): Likewise. + * tree-vect-patterns.c (vect_init_pattern_stmt): + (vect_determine_min_output_precision_1, vect_determine_precisions) + (vect_pattern_recog): Likewise. + * tree-vect-stmts.c (vect_analyze_stmt, vect_transform_stmt): Likewise. + * config/powerpcspe/powerpcspe.c (rs6000_density_test): Likewise. + * config/rs6000/rs6000.c (rs6000_density_test): Likewise. + * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise. + (vect_detect_hybrid_slp_1, vect_detect_hybrid_slp_2) + (vect_detect_hybrid_slp): Likewise. Change the walk_stmt_info + info field from a loop to a loop_vec_info. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (stmt_vec_info): Move typedef earlier in file. + (vec_info::add_stmt): Declare. + * tree-vectorizer.c (vec_info::add_stmt): New function. + * tree-vect-data-refs.c (vect_create_data_ref_ptr): Use it. + * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise. + (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise. + (vectorizable_induction): Likewise. + * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise. + * tree-vect-stmts.c (vect_finish_stmt_generation_1): Likewise. + (vectorizable_simd_clone_call, vectorizable_store): Likewise. + (vectorizable_load): Likewise. + * tree-vect-patterns.c (vect_init_pattern_stmt): Likewise. + (vect_recog_bool_pattern, vect_recog_mask_conversion_pattern) + (vect_recog_gather_scatter_pattern): Likewise. + (append_pattern_def_seq): Likewise. Remove a check that is + performed by add_stmt itself. + +2018-07-31 Richard Sandiford + + * tree-vect-loop.c (vectorizable_reduction): Fix an instance in + which make_ssa_name was called with new_stmt before new_stmt + had been created. + +2018-07-31 Richard Sandiford + + * tree-vect-loop.c (vect_valid_reduction_input_p): New function, + split out from... + (vect_is_slp_reduction): ...here... + (vect_is_simple_reduction): ...and here. Remove repetition of tests + that are already known to be false. + +2018-07-31 Richard Sandiford + + * tree-vectorizer.h (vect_free_slp_instance): Add a final_p parameter. + * tree-vect-slp.c (vect_free_slp_tree): Likewise. Don't update + STMT_VINFO_NUM_SLP_USES when it's true. + (vect_free_slp_instance): Add a final_p parameter and pass it to + vect_free_slp_tree. + (vect_build_slp_tree_2): Update call to vect_free_slp_instance. + (vect_analyze_slp_instance): Likewise. + (vect_slp_analyze_operations): Likewise. + (vect_slp_analyze_bb_1): Likewise. + * tree-vectorizer.c (vec_info): Likewise. + * tree-vect-loop.c (vect_transform_loop): Likewise. + +2018-07-31 Richard Sandiford + + * tree-vect-loop.c (vectorizable_reduction): Assert that the + function is not called for second and subsequent members of + a reduction group. + +2018-07-31 Richard Sandiford + + * tree-vect-loop.c (get_initial_def_for_reduction): Move special + cases for nested loops from here to ... + (vect_create_epilog_for_reduction): ...here. Only call + vect_is_simple_use for inner-loop reductions. + +2018-07-31 Martin Liska + + PR gcov-profile/85338 + PR gcov-profile/85350 + PR gcov-profile/85372 + * profile.c (struct location_triplet): New. + (struct location_triplet_hash): Likewise. + (output_location): Do not output a BB that + is already recorded for a line. + (branch_prob): Use streamed_locations. + +2018-07-31 Martin Liska + + PR gcov-profile/85370 + * coverage.c (coverage_begin_function): Do not mark target + clones as artificial functions. + +2018-07-31 Martin Liska + + PR gcov-profile/83813 + PR gcov-profile/84758 + PR gcov-profile/85217 + PR gcov-profile/85332 + * profile.c (branch_prob): Do not record GOTO expressions + for GIMPLE statements which locations are already streamed. + +2018-07-31 Olivier Hainque + + * gcc.c (handle_spec_function): Accept a soft_matched_part + argument, as do_spec_1. Pass it down to ... + (eval_spec_function): Accept a soft_matched_part argument, + and pass it down to ... + (do_spec_2): Accept a soft_matched_part argument, and pass + it down to do_spec_1. + (do_spec_1): Pass soft_matched_part to handle_spec_function. + (handle_braces): Update call to handle_spec_function. + (driver::set_up_specs): Update calls to do_spec_2. + (compare_debug_dump_opt_spec_function): Likewise. + (compare_debug_self_opt_spec_function): Likewise. + +2018-07-31 Olivier Hainque + + * common.opt (nolibc): New option. + * doc/invoke.texi (Link Options): Document it. + * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): Honor nolibc. + * config/alpha/linux.h: Likewise. + * config/arc/elf.h: Likewise. + * config/arm/uclinux-elf.h: Likewise. + * config/arm/unknown-elf.h: Likewise. + * config/avr/avrlibc.h: Likewise. + * config/bfin/bfin.h: Likewise. + * config/bfin/linux.h: Likewise. + * config/bfin/uclinux.h: Likewise. + * config/darwin.h: Likewise. + * config/darwin10.h: Likewise. + * config/darwin12.h: Likewise. + * config/gnu-user.h: Likewise. + * config/lm32/uclinux-elf.h: Likewise. + * config/pa/pa-hpux11.h: Likewise. + * config/pa/pa64-hpux.h: Likewise. + * config/sparc/sparc.h: Likewise. + +2018-07-31 Olivier Hainque + + * gcc.c (getenv_spec_function): Prepend '/' to value for allowed + undefined variables. + +2018-07-30 Segher Boessenkool + + PR target/86640 + * config/arm/arm.c (arm_block_set_aligned_vect): Use gen_int_mode + instead of GEN_INT. + +2018-07-30 Bernd Edlinger + + * tree-ssa-forwprop.c (simplify_builtin_call): Don't create a not NUL + terminated string literal. + +2018-07-30 Segher Boessenkool + + PR rtl-optimization/85160 + * combine.c (is_just_move): New function. + (try_combine): Allow combining two instructions into two if neither of + the original instructions was a move. + +2018-07-30 Alexander Monakov + + PR target/86673 + * doc/extend.texi (Global Register Variables): Discourage use of type + qualifiers. + (Local Register Variables): Likewise. + +2018-07-30 Richard Sandiford + + PR tree-optimization/86506 + * hwint.h (ceil_log2): Resync with hwint.c implementation. + +2018-07-30 Ilya Leoshkevich + + PR target/86547 + * lra-constraints.c (spill_hard_reg_in_range): When selecting the + hard_regno, make sure no insn between `from` and `to` clobbers it. + +2018-07-30 Cesar Philippidis + Tom de Vries + + * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): Rename to ... + (PTX_DEFAULT_RUNTIME_DIM): ... this. + (nvptx_goacc_validate_dims): Set default worker and gang dims to + PTX_DEFAULT_RUNTIME_DIM. + (nvptx_dim_limit): Ignore GOMP_DIM_WORKER. + +2018-07-29 John David Anglin + + * config/pa/pa.c (pa_output_addr_vec): Align address table. + * config/pa/pa.h (JUMP_TABLES_IN_TEXT_SECTION): Revise comment. + * config/pa/pa32-linux.h (JUMP_TABLES_IN_TEXT_SECTION): Define. + +2018-07-27 Michael Meissner + + * config/rs6000/constraints.md (wG constraint): Delete, no longer + used. + * config/rs6000/predicates.md (p9_fusion_reg_operand): Rename + predicate to reflect toc fusion has been deleted. + (toc_fusion_mem_raw): Delete, no longer used. + (toc_fusion_mem_wrapped): Likewise. + * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete toc + fusion mask bit. + * config/rs6000/rs6000-protos.h (fusion_wrap_memory_address): + Delete, no longer used. + * config/rs6000/rs6000.c (struct rs6000_reg_addr): Delete fields + meant to be used for toc fusion. + (rs6000_debug_print_mode): Delete toc fusion debugging. + (rs6000_debug_reg_global): Likewise. + (rs6000_init_hard_regno_mode_ok): Delete setting up fields for toc + fusion and secondary reload support that were never used. + (rs6000_option_override_internal): Delete TOC fusion, that was only + partially defined, and it did not work unless you also used the + -mcmodel= switch. + (rs6000_legitimate_address_p): Delete TOC fusion support. + (rs6000_opt_masks): Likewise. + (fusion_wrap_memory_address): Delete function, no longer used. + (fusion_split_address); Delete TOC fusion support. + * config/rs6000/rs6000.h (TARGET_TOC_FUSION_INT): Delete, no + longer used with toc fusion being deleted. + (TARGET_TOC_FUSION_FP): Likewise. + * config/rs6000/rs6000.md (UNSPEC_FUSION_ADDIS): Delete TOC fusion + UNSPEC. + (toc fusion spliter): Delete TOC fusion support. + (toc_fusionload_): Likewise. + (toc_fusionload_di): Likewise. + (fusion_gpr_load_): Delete generator function, this insn no + longer needs to be named. Rename predicate to delete TOC fusion. + (fusion_gpr___load): Likewise. + (fusion_gpr___store): Likewise. + (fusion_vsx___load): Likewise. + (fusion_vsx___store): Likewise. + (p9 fusion peephole2s): Rename predicate to delete TOC fusion. + +2018-07-27 Kelvin Nilsen + + * doc/extend.texi (Basic PowerPC Built-in Functions Available on + ISA 2.05): Replace __uint128_t with __uint128 and __int128_t with + __int128 in built-in function prototypes. + (PowerPC AltiVec Built-in Functions on ISA 2.07): Likewise. + (PowerPC AltiVec Built-in Functions on ISA 3.0): Likewise. + +2018-07-27 Martin Sebor + + PR tree-optimization/86696 + * tree-ssa-strlen.c (get_min_string_length): Handle all integer + types, including enums. + (handle_char_store): Be prepared for the above function to fail. + +2018-07-26 Qing Zhao + + * builtins.c (inline_expand_builtin_string_cmp): Disable inlining + when optimization level is lower than 2 or optimize for size. + +2018-07-26 Martin Sebor + + PR tree-optimization/86043 + PR tree-optimization/86042 + * tree-ssa-strlen.c (handle_builtin_memcpy): Handle strict overlaps. + (get_string_cst_length): Rename... + (get_min_string_length): ...to this. Add argument. + (handle_char_store): Extend to handle multi-character stores by + MEM_REF. + * tree.c (initializer_zerop): Use new argument. Handle MEM_REF. + * tree.h (initializer_zerop): Add argument. + +2018-07-26 Jakub Jelinek + + PR middle-end/86660 + * omp-low.c (scan_sharing_clauses): Don't ignore map clauses for + declare target to variables if they have always,{to,from,tofrom} map + kinds. + +2018-07-26 Martin Liska + + PR lto/86548 + * lto-wrapper.c: Add linker_output as prefix + for ltrans_output_file. + +2018-07-26 Segher Boessenkool + + PR rtl-optimization/85805 + * combine.c (reg_nonzero_bits_for_combine): Only use the last set + value for hard registers if that was written in the same mode. + +2018-07-26 Martin Liska + + PR gcov-profile/86536 + * gcov.c (format_gcov): Use printf format %.*f directly + and do not handle special values. + +2018-07-25 Claudiu Zissulescu + + * common/config/arc/arc-common.c (arc_option_optimization_table): + Update default optimizations for size. + +2018-07-25 Claudiu Zissulescu + + * config/arc/arc.md (movsf_insn): Add short instruction selection. + * config/arc/constraints.md (CfZ): New constraint. + * config/arc/fpu.md (addssf3_fpu): Use CfZ constraint. + (subsf3_fpu): Likewise. + (cmpsf_fpu): Likewise. + (cmpsf_fpu_uneq): Likewise. + +2018-07-25 Claudiu Zissulescu + + * config/arc/arc.c (compact_memory_operand_p): Check for uncached + accesses as well. + (arc_is_uncached_mem_p): uncached applies to both the variable and + the pointer. + +2018-07-25 Claudiu Zissulescu + + * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add additional + register names. + +2018-07-25 David Malcolm + + * optinfo-emit-json.cc (class optrecord_json_writer): Convert + field "m_scopes" from vec to auto_vec. + +2018-07-25 Martin Liska + + * config/powerpcspe/powerpcspe-protos.h (rs6000_loop_align): Fix + return type. + +2018-07-25 Richard Biener + + PR debug/86654 + * dwarf2out.c (dwarf2out_decl): Do not handle nested functions + special wrt context_die late. + (gen_subprogram_die): Re-use DIEs in local scope. + +2018-07-25 Richard Sandiford + + PR tree-optimization/86644 + * hwint.c (ceil_log2): Fix comment. Return 0 for 0. + +2018-07-25 Martin Liska + + PR middle-end/86645 + * dumpfile.c: And excluded values with TDF_ALL_VALUES. + * dumpfile.h (enum dump_flag): Defince TDF_ALL_VALUES. + +2018-07-25 Martin Liska + + PR sanitizer/79635 + * params.def: Explain ASan abbreviation and provide + a documentation link. + +2018-07-24 Martin Sebor + + PR tree-optimization/86622 + PR tree-optimization/86532 + * builtins.h (string_length): Declare. + * builtins.c (c_strlen): Correct handling of non-constant offsets. + (check_access): Be prepared for non-constant length ranges. + (string_length): Make extern. + * expr.c (string_constant): Only handle the minor non-constant + array index. Use string_constant to compute the length of + a generic string constant. + +2018-07-24 Richard Sandiford + + PR tree-optimization/86618 + * tree-vect-stmts.c (vectorizable_call): Don't take the address + of LOOP_VINFO_MASKS (loop_vinfo) when loop_vinfo is null. + +2018-07-24 David Malcolm + + PR tree-optimization/86636 + * json.cc (json::object::set): Fix comment. Add assertions. + (json::array::append): Move here from json.h. Add comment and an + assertion. + (json::string::string): Likewise. + * json.h (json::array::append): Move to json.cc. + (json::string::string): Likewise. + * optinfo-emit-json.cc + (optrecord_json_writer::impl_location_to_json): Assert that we + aren't attempting to write out UNKNOWN_LOCATION, or an ad-hoc + wrapper around it. Expand the location once, rather than three + times. + (optrecord_json_writer::inlining_chain_to_json): Fix the check for + UNKNOWN_LOCATION, to use LOCATION_LOCUS to look through ad-hoc + wrappers. + (optrecord_json_writer::optinfo_to_json): Likewise, in four + places. Fix some overlong lines. + +2018-07-24 Matthew Malcomson + + * config/aarch64/aarch64-simd.md + (aarch64_w): Split into... + (aarch64_subw): ... This... + (aarch64_addw): ... And this. + (aarch64_w_internal): Split into... + (aarch64_subw_internal): ... This... + (aarch64_addw_internal): ... And this. + (aarch64_w2_internal): Split into... + (aarch64_subw2_internal): ... This... + (aarch64_addw2_internal): ... And this. + +2018-07-24 Jakub Jelinek + + PR middle-end/86627 + * expmed.c (expand_divmod): Punt if d == HOST_WIDE_INT_MIN + and size > HOST_BITS_PER_WIDE_INT. For size > HOST_BITS_PER_WIDE_INT + and abs_d == d, do the power of two handling if profitable. + +2018-07-24 Richard Biener + + * match.pd: Add BIT_FIELD_REF canonicalizations. + +2018-07-23 Bernd Edlinger + + PR c/86617 + * genmatch.c (dt_operand::gen_match_op): Avoid folding volatile values. + +2018-07-23 Bernd Edlinger + + * gimple-fold.c (gimple_fold_builtin_printf): Don't create a not NUL + terminated STRING_CST object. + +2018-07-23 Bernd Edlinger + + hsa-dump.c (dump_hsa_symbol): Avoid out of scope access to buf. + +2018-07-23 Segher Boessenkool + + * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Adjust. + * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Delete. + * config/rs6000/rs6000.c (rs6000_expand_vector_init): Always force + the elements into a register. + (rs6000_split_v4si_init_di_reg): Delete. + (rs6000_split_v4si_init): Delete. + * config/rs6000/vsx.md (unspec): Delete UNSPEC_VSX_VEC_INIT. + (vsx_init_v4si): Rewrite as a define_expand. + +2018-07-23 Segher Boessenkool + + * config/rs6000/rs6000.md (splitters for rldimi and rlwimi with the + zero_extend argument from memory): New. + +2018-07-22 Martin Sebor + + PR bootstrap/86621 + * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Avoid + diagnosing calls with unknown arguments unless -Walloca-larger-than + is restricted to less than PTRDIFF_MAX bytes. + +2018-07-22 Gerald Pfeifer + + * doc/gcov.texi (Invoking Gcov): Editorial changes. + +2018-07-20 David Malcolm + + * pretty-print.c (text_info::set_location): Remove redundant + "line_table" parameter from call to rich_location::set_range. + +2018-07-20 Martin Sebor + + PR middle-end/82063 + * builtins.c (expand_builtin_alloca): Adjust. + * calls.c (alloc_max_size): Simplify. + * cgraphunit.c (cgraph_node::expand): Adjust. + * common.opt (larger_than_size, warn_frame_larger_than): Remove + variables. + (frame_larger_than_size): Same. + (-Wframe-larger-than, -Wlarger-than, -Wstack-usage): Change options + to take a HOST_WIDE_INT argument and accept a byte-size suffix. + Initialize. + * doc/invoke.texi (GCC Command Options): Document option arguments. + Explain byte-size arguments and suffixes. + (-Wvla-larger-than, -Wno-alloc-size-larger-than): Update. + (-Wno-alloca-larger-than, -Wno-vla-larger-than): Same. + (-Wframe-larger-than, -Wlarger-than, -Wstack-usage): Same. + * doc/options.texi (UInteger): Expand. + (Host_Wide_Int, ByteSize): Document new properties. + * final.c (final_start_function_1): Include sizes in an error message. + * function.c (frame_offset_overflow): Same. + * gimple-ssa-warn-alloca.c (pass_walloca::gate): Adjust. + (alloca_call_type_by_arg): Change function argument to HOST_WIDE_INT. + Diagnose unbounded alloca calls only for limits of less than + PTRDIFF_MAX. + (alloca_call_type): Adjust. Diagnose possibly out-of-bounds alloca + calls and VLA size only for limits of less than PTRDIFF_MAX. Same + for alloca(0). + (pass_walloca::execute): Adjust. Diagnose alloca calls in loops + only for limits of less than PTRDIFF_MAX. + * langhooks-def.h (lhd_handle_option): Change function argument + to HOST_WIDE_INT. + * langhooks.c (lhd_handle_option): Same. + * langhooks.h (handle_option): Same. + * opt-functions.awk (switch_bit_fields): Handle Host_Wide_Int and + ByteSize flags. + (var_type, var_type_struct): Same. + (var_set): Handle ByteSize flag. + * optc-gen.awk: Add comments to output to ease debugging. Make + use of HOST_WIDE_INT where appropriate. + * opts-gen-save.awk: Use %lx to format unsigned long. + * opth-gen.awk: Change function argument to HOST_WIDE_INT. + * opts-common.c (integral_argument): Return HOST_WIDE_INT and add + arguments. Parse bytes-size suffixes. + (enum_arg_to_value): Change function argument to HOST_WIDE_INT. + (enum_value_to_arg): Same. + (decode_cmdline_option): Handle cl_host_wide_int. Adjust. + (handle_option): Adjust. + (generate_option): Change function argument to HOST_WIDE_INT. + (cmdline_handle_error): Adjust. + (read_cmdline_option): Change function argument to HOST_WIDE_INT. + (set_option): Change function argument to HOST_WIDE_INT. + (option_enabled): Handle cl_host_wide_int. + (get_option_state): Handle CLVC_SIZE. + (control_warning_option): Same. + * opts.c (common_handle_option): Change function argument to + HOST_WIDE_INT. Remove handling of OPT_Walloca_larger_than_ and + OPT_Wvla_larger_than_. + * opts.h (enum cl_var_type): Add an enumerator. + * stor-layout.c (layout_decl): Print a more meaningful warning. + * toplev.c (output_stack_usage): Adjust. + +2018-07-20 Qing Zhao + + * builtins.c (expand_builtin_memcmp): Delete the last parameter for + call to inline_expand_builtin_string_cmp. + (expand_builtin_strcmp): Likewise. + (expand_builtin_strncmp): Likewise. + (inline_string_cmp): Delete the last parameter, change char_type_node + to unsigned_char_type_node for strcmp/strncmp, add conversions to the + two operands. + (inline_expand_builtin_string_cmp): Delete the last parameter, give up + the inlining expansion on target where the type of the call has same or + narrower precision than unsigned char. + +2018-07-20 David Malcolm + + * Makefile.in (OBJS): Add json.o and optinfo-emit-json.o. + (CFLAGS-optinfo-emit-json.o): Define TARGET_NAME. + * common.opt (fsave-optimization-record): New option. + * coretypes.h (struct kv_pair): Move here from dumpfile.c. + * doc/invoke.texi (-fsave-optimization-record): New option. + * dumpfile.c: Include "optinfo-emit-json.h". + (struct kv_pair): Move to coretypes.h. + (optgroup_options): Make non-static. + (dump_context::end_scope): Call + optimization_records_maybe_pop_dump_scope. + * dumpfile.h (optgroup_options): New decl. + * json.cc: New file. + * json.h: New file. + * optinfo-emit-json.cc: New file. + * optinfo-emit-json.h: New file. + * optinfo.cc: Include "optinfo-emit-json.h". + (optinfo::emit): Call optimization_records_maybe_record_optinfo. + (optinfo_enabled_p): Check optimization_records_enabled_p. + (optinfo_wants_inlining_info_p): Likewise. + * optinfo.h: Update comment. + * profile-count.c (profile_quality_as_string): New function. + * profile-count.h (profile_quality_as_string): New decl. + (profile_count::quality): New accessor. + * selftest-run-tests.c (selftest::run_tests): Call json_cc_tests + and optinfo_emit_json_cc_tests. + * selftest.h (selftest::json_cc_tests): New decl. + (selftest::optinfo_emit_json_cc_tests): New decl. + * toplev.c: Include "optinfo-emit-json.h". + (compile_file): Call optimization_records_finish. + (do_compile): Call optimization_records_start. + * tree-ssa-live.c: Include optinfo.h. + (remove_unused_scope_block_p): Retain inlining information if + optinfo_wants_inlining_info_p returns true. + +2018-07-20 Richard Biener + + PR debug/86585 + * dwarf2out.c (dwarf2out_die_ref_for_decl): Test in_lto_p + to cover -flto-partition=none. + +2018-07-20 Martin Liska + + * tree.h (DECL_LOCATION_RANGE): Remove unused macro. + (get_decl_source_range): Remove unused function. + +2018-07-20 Richard Biener + + * tree-ssa-sccvn.h (struct vn_nary_op_s): Add next member. + (struct vn_phi_s): Likewise. + (struct vn_reference_s): Likewise. + * tree-ssa-sccvn.c (vn_nary_op_hasher::equal): Add shortcut + for searching the slot of an entry known to be in the hash itself. + (vn_phi_hasher::equal): Likewise. + (vn_reference_hasher::equal): Likewise. + (last_inserted_ref, last_inserted_phi, last_inserted_nary): New + globals. + (optimistic_info, current_info): Remove, keeping only valid_info. + (vn_reference_lookup_1): Remove fallback lookup. + (vn_reference_lookup_2): Likewise. + (vn_nary_op_lookup_1): Likewise. + (vn_phi_lookup): Likewise. + (vn_nary_build_or_lookup_1): Make sure to not chain the built + hash element. + (vn_reference_insert): Adjust, chain the inserted hash element + at last_inserted_ref. + (vn_reference_insert_pieces): Likewise. + (visit_reference_op_call): Likewise. + (vn_nary_op_insert_into): Chain the inserted hash element at + last_inserted_nary. + (vn_nary_op_insert_pieces): Adjust. + (vn_nary_op_insert): Likewise. + (vn_nary_op_insert_stmt): Likewise. + (vn_phi_insert): Adjust, chain the inserted hash element at + last_inserted_phi. + (process_scc): Remove clearing and copying the optimistic + table. Instead remove elements inserted during an optimistic + iteration from the single table we maintain. + (init_scc_vn): Adjust. + (free_scc_vn): Likewise. + (sccvn_dom_walker::record_cond): Likewise. + (sccvn_dom_walker::after_dom_children): Likewise. + +2018-07-19 Martin Sebor + + PR tree-optimization/84047 + PR tree-optimization/83776 + * tree-vrp.c (vrp_prop::check_mem_ref): New function. + (check_array_bounds): Call it. + +2018-07-19 Martin Sebor + + * align.h (align_flags): Use member initialization. + +2018-07-19 David Malcolm + + * Makefile.in (OBJS): Add optinfo.o. + * coretypes.h (class symtab_node): New forward decl. + (struct cgraph_node): New forward decl. + (class varpool_node): New forward decl. + * dump-context.h: New file. + * dumpfile.c: Include "optinfo.h", "dump-context.h", "cgraph.h", + "tree-pass.h". + (refresh_dumps_are_enabled): Use optinfo_enabled_p. + (set_dump_file): Call dumpfile_ensure_any_optinfo_are_flushed. + (set_alt_dump_file): Likewise. + (dump_context::~dump_context): New dtor. + (dump_gimple_stmt): Move implementation to... + (dump_context::dump_gimple_stmt): ...this new member function. + Add the stmt to any pending optinfo, creating one if need be. + (dump_gimple_stmt_loc): Move implementation to... + (dump_context::dump_gimple_stmt_loc): ...this new member function. + Start a new optinfo and add the stmt to it. + (dump_gimple_expr): Move implementation to... + (dump_context::dump_gimple_expr): ...this new member function. + Add the stmt to any pending optinfo, creating one if need be. + (dump_gimple_expr_loc): Move implementation to... + (dump_context::dump_gimple_expr_loc): ...this new member function. + Start a new optinfo and add the stmt to it. + (dump_generic_expr): Move implementation to... + (dump_context::dump_generic_expr): ...this new member function. + Add the tree to any pending optinfo, creating one if need be. + (dump_generic_expr_loc): Move implementation to... + (dump_context::dump_generic_expr_loc): ...this new member + function. Add the tree to any pending optinfo, creating one if + need be. + (dump_printf): Move implementation to... + (dump_context::dump_printf_va): ...this new member function. Add + the text to any pending optinfo, creating one if need be. + (dump_printf_loc): Move implementation to... + (dump_context::dump_printf_loc_va): ...this new member function. + Start a new optinfo and add the stmt to it. + (dump_dec): Move implementation to... + (dump_context::dump_dec): ...this new member function. Add the + value to any pending optinfo, creating one if need be. + (dump_context::dump_symtab_node): New member function. + (dump_context::get_scope_depth): New member function. + (dump_context::begin_scope): New member function. + (dump_context::end_scope): New member function. + (dump_context::ensure_pending_optinfo): New member function. + (dump_context::begin_next_optinfo): New member function. + (dump_context::end_any_optinfo): New member function. + (dump_context::s_current): New global. + (dump_context::s_default): New global. + (dump_scope_depth): Delete global. + (dumpfile_ensure_any_optinfo_are_flushed): New function. + (dump_symtab_node): New function. + (get_dump_scope_depth): Reimplement in terms of dump_context. + (dump_begin_scope): Likewise. + (dump_end_scope): Likewise. + (selftest::temp_dump_context::temp_dump_context): New ctor. + (selftest::temp_dump_context::~temp_dump_context): New dtor. + (selftest::verify_item): New function. + (ASSERT_IS_TEXT): New macro. + (ASSERT_IS_TREE): New macro. + (ASSERT_IS_GIMPLE): New macro. + (selftest::test_capture_of_dump_calls): New test. + (selftest::dumpfile_c_tests): Call it. + * dumpfile.h (dump_printf, dump_printf_loc, dump_basic_block) + (dump_generic_expr_loc, dump_generic_expr, dump_gimple_stmt_loc) + (dump_gimple_stmt, dump_dec): Gather these related decls and add a + descriptive comment. + (dump_function, print_combine_total_stats, enable_rtl_dump_file) + (dump_node, dump_bb): Move these unrelated decls. + (class dump_manager): Add leading comment. + * optinfo.cc: New file. + * optinfo.h: New file. + +2018-07-19 Michael Collison + Richard Henderson + + * config/aarch64/aarch64.md (subv4, usubv4): New patterns. + (subti): Handle op1 zero. + (subvti4, usub4ti4): New. + (*sub3_compare1_imm): New. + (sub3_carryinCV): New. + (*sub3_carryinCV_z1_z2, *sub3_carryinCV_z1): New. + (*sub3_carryinCV_z2, *sub3_carryinCV): New. + +2018-07-19 Michael Collison + Richard Henderson + + * config/aarch64/aarch64.md: (addv4, uaddv4): New. + (addti3): Create simpler code if low part is already known to be 0. + (addvti4, uaddvti4): New. + (*add3_compareC_cconly_imm): New. + (*add3_compareC_cconly): New. + (*add3_compareC_imm): New. + (*add3_compareC): Rename from add3_compare1; do not + handle constants within this pattern.. + (*add3_compareV_cconly_imm): New. + (*add3_compareV_cconly): New. + (*add3_compareV_imm): New. + (add3_compareV): New. + (add3_carryinC, add3_carryinV): New. + (*add3_carryinC_zero, *add3_carryinV_zero): New. + (*add3_carryinC, *add3_carryinV): New. + ((*add3_compareC_cconly_imm): Replace 'ne' operator + with 'comparison' operator. + (*add3_compareV_cconly_imm): Ditto. + (*add3_compareV_cconly): Ditto. + (*add3_compareV_imm): Ditto. + (add3_compareV): Ditto. + (add3_carryinC): Ditto. + (*add3_carryinC_zero): Ditto. + (*add3_carryinC): Ditto. + (add3_carryinV): Ditto. + (*add3_carryinV_zero): Ditto. + (*add3_carryinV): Ditto. + +2018-07-19 Michael Collison + Richard Henderson + + * config/aarch64/aarch64-modes.def (CC_V): New. + * config/aarch64/aarch64-protos.h + (aarch64_addti_scratch_regs): Declare + (aarch64_subvti_scratch_regs): Declare. + (aarch64_expand_subvti): Declare. + (aarch64_gen_unlikely_cbranch): Declare + * config/aarch64/aarch64.c (aarch64_select_cc_mode): Test + for signed overflow using CC_Vmode. + (aarch64_get_condition_code_1): Handle CC_Vmode. + (aarch64_gen_unlikely_cbranch): New function. + (aarch64_addti_scratch_regs): New function. + (aarch64_subvti_scratch_regs): New function. + (aarch64_expand_subvti): New function. + +2018-07-19 Andre Vieira + + * config/aarch64/aarch64-option-extensions.def: New entry for profile + extension. + * config/aarch64/aarch64.h (AARCH64_FL_PROFILE): New. + * doc/invoke.texi (aarch64-feature-modifiers): New entry for profile + extension. + +2018-07-19 Andre Vieira + + PR target/83009 + * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make + address check not strict. + +2018-07-19 Andre Vieira + + * config/aarch64/aarch64-simd.md (aarch64_simd_mov): Replace + Umq with Umn. + (store_pair_lanes): Likewise. + * config/aarch64/aarch64-protos.h (aarch64_addr_query_type): Add new + enum value 'ADDR_QUERY_LDP_STP_N'. + * config/aarch64/aarch64.c (aarch64_addr_query_type): Likewise. + (aarch64_print_address_internal): Add declaration. + (aarch64_print_ldpstp_address): Remove. + (aarch64_classify_address): Adapt mode for 'ADDR_QUERY_LDP_STP_N'. + (aarch64_print_operand): Change printing of 'y'. + * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Use + new enum value 'ADDR_QUERY_LDP_STP_N', don't hardcode mode and use + 'true' rather than '1'. + * config/aarch64/constraints.md (Uml): Likewise. + (Uml): Rename to Umn. + (Umq): Remove. + +2018-07-19 Richard Biener + + * tree-ssa-sccvn.h (struct vn_phi_s): Make phiargs member + a trailing array. + * tree-ssa-sccvn.c: Remove alloc-pool.h use. + (vn_phi_hasher): Derive from nofree_ptr_hash and remove remove method. + (vn_reference_hasher): Likewise. + (struct vn_tables_s): Remove obstack and alloc-pool members. + (vn_tables_obstack, vn_tables_insert_obstack): New global obstacks. + (vn_nary_build_or_lookup_1): Manually build in vn_tables_insert_obstack. + (vn_reference_insert): Allocate from obstack instead of from alloc-pool. + (vn_reference_insert_pieces): Likewise. + (alloc_vn_nary_op_noinit): Adjust. + (vn_nary_op_insert_stmt): Allocate phiargs in-place. + (vn_phi_eq): Adjust. + (shared_lookup_phiargs): Remove. + (vn_phi_lookup): Allocate temporary vn_phi_s on the stack. + (vn_phi_insert): Allocate from obstack instead of from alloc-pool. + (visit_reference_op_call): Likewise. + (copy_nary, copy_phi, copy_reference): Remove. + (process_scc): Rewind the obstack when iterating. Do not + copy the elements to valid_info but just move them from one + hashtable to the other. + (allocate_vn_table): Adjust. + (free_vn_table): Likewise. + (init_scc_vn): Likewise. + (free_scc_vn): Likewise. + +2018-07-19 H.J. Lu + + PR target/86560 + * config/i386/i386.c (rest_of_insert_endbranch): Lookup + indirect_return as function type attribute. + (ix86_attribute_table): Change indirect_return to function + type attribute. + * doc/extend.texi: Update indirect_return attribute. + +2018-07-19 Aldy Hernandez + + * wide-int.h (widest2_int): New. + * gimple-fold.c (arith_overflowed_p): Use it. + * tree.h (widest2_int_cst): New. + * tree-vrp.c (wide_int_binop_overflow): Rename from + vrp_int_const_binop. + Rewrite to work on trees. + (extract_range_from_multiplicative_op_1): Abstract code to... + (wide_int_range_min_max): ...here. + (wide_int_range_cross_product): ...and here. + (extract_range_from_binary_expr_1): Abstract overflow code to... + (wide_int_range_mult_wrapping): ...here. + * tree-vrp.h (wide_int_range_cross_product): New. + (wide_int_range_mult_wrapping): New. + +2018-07-19 Andrew Senkevich + Julia Koval + + * config/i386/x86-tune-costs.h (skylake_memcpy, + skylake_memset): Replace rep_prefix with unrolling for size 512. + +2018-07-18 Kugan Vivekanandarajah + + PR middle-end/86544 + * tree-ssa-phiopt.c (cond_removal_in_popcount_pattern): Handle + comparision with EQ_EXPR in last stmt. + +2018-07-18 Kelvin Nilsen + + * doc/extend.texi (PowerPC AltiVec Built-in Functions): Rename + this subsection to "PowerPC AltiVec/VSX Built-in Functions". + (PowerPC AltiVec/VSX Built-in Functions): New name for subsection + previously known as "PowerPC AltiVec Built-in Functions". Move + some material to new subsubsections "PowerPC AltiVec Built-in + Functions on ISA 2.06" and "PowerPC AltiVec Built-in Functions on + ISA 2.07". + (PowerPC Altivec Built-in Functions on ISA 2.05): New subsubsection. + (PowerPC Altivec Built-in Functions on ISA 2.06): Likewise. + (PowerPC Altivec Built-in Functions on ISA 2.07): Likewise. + (PowerPC Altivec Built-in Functions on ISA 3.0): Likewise. + +2018-07-18 Richard Biener + + PR tree-optimization/86557 + * tree-vect-patterns.c (vect_recog_divmod_pattern): Also handle + EXACT_DIV_EXPR. + +2018-07-18 Ilya Leoshkevich + + * config/s390/s390.c (s390_function_profiler): Generate CFI. + +2018-07-17 Jeff Law + + * config/arm/arm.c (get_label_padding): Update for recent + changes to label_to_alignment. + + PR tree-optimization/86010 + * tree-ssa-dse.c (compute_trims): Fix typo/thinko. + + * config/mips/mips.c (vr4130_align_insns): Update for recent + changes to label_to_alignment. + + * config/frv/frv.c (frv_label_align): Update for recent changes + to label_to_alignment. + + * config/nios2/nios2.c (nios2_label_align): Update for recent + changes which dropped ALIGN_LABELS_LOG. + +2018-07-17 Andreas Schwab + + * config/m68k/m68k.md (umulsi3_highpart+1, const_umulsi3_highpart) + (smulsi3_highpart+1, const_smulsi3_highpart): Add CC_STATUS_INIT. + +2018-07-17 Claudiu Zissulescu + + * config/arc/arc.c (arc_label_align): Use align_labels instead of + deprecated align_labels_log. + +2018-07-17 Richard Biener + + PR lto/86456 + * dwarf2out.c (init_sections_and_labels): Always generate + a debug_line_str_section for early LTO debug. + (dwarf2out_finish): Reset debug_line_str_hash output early. + Bump counter for extra dwarf5 .debug_loc labels to not conflict + with fat LTO part. + (dwarf2out_early_finish): Output debug_line_str. + +2018-07-17 Robin Dapp + + * config/s390/s390.c (preferred_la_operand_p): Do not use LA with + index register on z196 or later. + +2018-07-17 Robin Dapp + + * config/s390/s390.c (s390_default_align): Set default function + alignment to 16. + (s390_override_options_after_change): Call s390_default align. + (s390_option_override_internal): Call s390_default_align. + (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define. + +2018-07-17 Jakub Jelinek + + PR middle-end/86542 + * omp-low.c (create_task_copyfn): Copy over also fields corresponding + to _looptemp_ clauses, other than the first two. + +2018-07-17 Martin Liska + + * opts.c: Do not enable OPT_falign_* for -Os. + +2018-07-17 Martin Liska + + * align.h (MAX_CODE_ALIGN): New. + (MAX_CODE_ALIGN_VALUE): New. + * common/config/i386/i386-common.c (ix86_handle_option): + (MAX_CODE_ALIGN): Moved to align.h. + * final.c (MAX_CODE_ALIGN): Likewise. + * opts.c (parse_and_check_align_values): + (MAX_CODE_ALIGN): Likewise. + (MAX_CODE_ALIGN_VALUE): Likewise. + +2018-07-17 Martin Liska + + * config/i386/att.h (ASM_OUTPUT_ALIGN): Fix spacing + in order to fulfil coding style. + * config/i386/cygming.h (ASM_OUTPUT_ALIGN): Likewise. + * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. + * config/iq2000/iq2000.h (ASM_OUTPUT_ALIGN): Likewise. + * config/pa/pa.h (ASM_OUTPUT_ALIGN): Likewise. + * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): Likewise. + * config/sparc/sparc.h (ASM_OUTPUT_ALIGN): Likewise. + * config/visium/visium.h (ASM_OUTPUT_ALIGN): Likewise. + (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + +2018-07-17 Martin Liska + + * align.h: New file. + * config/alpha/alpha.c (alpha_align_insns_1): Use align_functions + directly. + * config/i386/i386.c (ix86_avoid_jump_mispredicts): Use new return type + align_flags of label_to_alignment. + * config/m32r/m32r.h (LOOP_ALIGN): Wrap returned values into + align_flags class. + * config/m68k/m68k.c: Do not use removed align_labels_value and + align_loops_value. + * config/nds32/nds32.h (JUMP_ALIGN): Wrap result into align_flags class. + (LOOP_ALIGN): Likewise. + (LABEL_ALIGN): Likewise. + * config/powerpcspe/powerpcspe.c (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): + Remove not used macro. + (rs6000_loop_align): Change return type to align_flags. + (rs6000_loop_align_max_skip): Remove. + * config/rs6000/rs6000-protos.h (rs6000_loop_align): + Change return type to align_flags. + * config/rs6000/rs6000.c (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): + Remove not used macro. + (rs6000_loop_align): Change return type to align_flags. + (rs6000_loop_align_max_skip): Remove. + * config/rx/rx.h (JUMP_ALIGN): Wrap integer values + * config/rx/rx-protos.h (rx_align_for_label): Make it + static function. + * config/rx/rx.c (rx_align_for_label): Change return type + to align_flags. + (rx_max_skip_for_label): Remove TARGET_ASM_*_ALIGN_MAX_SKIP + macro definitions. + into align_flags class. + (LABEL_ALIGN): Likewise. + (LOOP_ALIGN): Likewise. + * config/s390/s390.c (s390_label_align): Use align_flags + class member. + (s390_asm_output_function_label): Likewise. + * config/sh/sh.c (sh_override_options_after_change): + Use align_flags class directly without macros. + (find_barrier): Likewise. + (barrier_align): Likewise. + (sh_loop_align): Likewise. + * config/spu/spu.c (spu_option_override): + Use align_flags_tuple::get_value instead of removed macros. + (spu_sched_init): Likewise. + * config/spu/spu.h (GTY): Likewise. + * config/visium/visium.c (visium_option_override): + Set "8" as default secondary alignment. + * config/visium/visium.h (SUBALIGN_LOG): Define to 3 + in order to guarantee secondary alignment of 8. + * coretypes.h: Include align.h header file. + * doc/tm.texi: Remove TARGET_ASM_JUMP_ALIGN_MAX_SKIP, + TARGET_ASM_LOOP_ALIGN_MAX_SKIP, TARGET_ASM_LABEL_ALIGN_MAX_SKIP + and TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP macros. + * doc/tm.texi.in: Likewise. + * final.c (struct label_alignment): Remove not used structure. + (LABEL_ALIGN): Change type to align_flags. + (LOOP_ALIGN): Likewise. + (JUMP_ALIGN): Likewise. + (default_loop_align_max_skip): Remove. + (default_label_align_max_skip): Likewise. + (default_jump_align_max_skip): Likewise. + (default_label_align_after_barrier_max_skip): + (LABEL_TO_ALIGNMENT): Change to access label_align vector. + (LABEL_TO_MAX_SKIP): Remove. + (label_to_alignment): Return align_flags type instead of integer. + (label_to_max_skip): Remove. + (align_fuzz): Use align_flags type. + (compute_alignments): Use align_flags type and use align_flags::max + to combine multiple alignments. + (grow_label_align): Grow vec instead of C array. + (update_alignments): Assign just LABEL_TO_ALIGNMENT. + (shorten_branches): Use align_flags type and use align_flags::max + to combine multiple alignments. + (final_scan_insn_1): Remove usage of secondary alignment that comes + from label alignment, but instead use proper secondary alignment + which is computed in grow_label_align. + * flags.h (struct align_flags_tuple): Move to align.h. + (struct align_flags): Likewise. + (state_align_loops): Rename to align_loops. + (state_align_jumps): Rename to align_jumps. + (state_align_labels): Rename to align_labels. + (state_align_functions): Rename to align_functions. + (align_loops_log): Remove. + (align_jumps_log): Remove. + (align_labels_log): Remove. + (align_functions_log): Remove. + (align_loops_max_skip): Remove. + (align_jumps_max_skip): Remove. + (align_labels_max_skip): Remove. + (align_functions_max_skip): Remove. + (align_loops_value): Remove. + (align_jumps_value): Remove. + (align_labels_value): Remove. + (align_functions_value): Remove. + * output.h (label_to_alignment): Change return type to align_flags. + (label_to_max_skip): Remove. + * target.def: Remove loop_align_max_skip, label_align_max_skip, + jump_align_max_skip macros. + * targhooks.h (default_loop_align_max_skip): Remove. + (default_label_align_max_skip): Likewise. + (default_jump_align_max_skip): Likewise. + (default_label_align_after_barrier_max_skip): Remove. + * toplev.c (read_log_maxskip): Use ::normalize function. + (parse_N_M): Remove not used argument and also call ::normalize. + (parse_alignment_opts): Do not pass unused arguments. + * varasm.c (assemble_start_function): Use directly align_functions + instead of removed macros. + * system.h: Do not poison removed macros. + +2018-07-17 Jakub Jelinek + + PR middle-end/86539 + * gimplify.c (gimplify_omp_for): Ensure taskloop firstprivatized init + and cond temporaries don't have reference type if iterator has + pointer type. For init use &for_pre_body instead of pre_p if + for_pre_body is non-empty. + +2018-07-16 Segher Boessenkool + + * config/rs6000/rs6000.md (truncsf2): Expand truncates of + double-double modes to SFmode directly directly. + (truncsf2_fprs): Delete. + +2018-07-16 Segher Boessenkool + + * config/rs6000/rs6000.c (init_float128_ibm): Use the correct names + for conversions between IFmode and the decimal floating point modes. + (init_float128_ieee): Use the correct names for conversions between + KFmode and the decimal floating point modes. + +2018-07-16 Segher Boessenkool + + * config/rs6000/rs6000.c (init_float128_ibm): Use more correct names + for the conversions between TDmode and IFmode. + (init_float128_ieee): Use more correct names for the conversions + between TDmode and KFmode. + +2018-07-16 Jakub Jelinek + + PR tree-optimization/86526 + * builtins.c (expand_builtin_memcmp): Formatting fixes. + (inline_expand_builtin_string_cmp): Likewise. + (inline_string_cmp): Likewise. Use c_readstr instead of + builtin_memcpy_read_str. Add unit_mode temporary. + +2018-07-16 Bernd Edlinger + + PR middle-end/86528 + * builtins.c (check_access): Bail out if range[0] is no INTEGER_CST. + * expr.c (string_constant): Fix the element size of ARRAY_TYPE. + +2018-07-16 Kelvin Nilsen + + * doc/extend.texi (PowerPC AltiVec Built-in Functions): + Alphabetize prototypes of built-in functions, separating out + built-in functions that are listed in this section but should be + described elsewhere. + +2018-07-16 Uros Bizjak + + PR target/86511 + * expmed.c (emit_store_flag): Do not emit setcc followed by a + conditional move when trapping comparison was split to a + non-trapping one (and vice versa). + +2018-07-16 Ilya Leoshkevich + + * config/s390/s390.c (s390_function_profiler): Generate nops + instead of profiler call sequences. + * config/s390/s390.opt: Add the new option. + +2018-07-16 Ilya Leoshkevich + + * config/s390/s390.c (s390_function_profiler): Generate + __mcount_loc section. + * config/s390/s390.opt: Add the new option. + +2018-07-16 Ilya Leoshkevich + + * common.opt: Add the new warning. + * config/s390/s390.c (s390_function_profiler): Emit "brasl + %r0,__fentry__" when -mfentry is specified. + (s390_option_override_internal): Disallow -mfentry for 31-bit + CPUs. + * config/s390/s390.opt: Add the new option. + +2018-07-16 Richard Biener + + PR lto/86523 + * dwarf2out.c (dwarf2out_register_external_die): Assign DIE parents + for function-local FUNCTION_DECL and RESULT_DECL immediately. + +2018-07-16 Martin Liska + + PR ipa/86529 + * ipa-pure-const.c (malloc_candidate_p): Revert ::get + to ::get_create. + +2017-07-16 Claudiu Zissulescu + + * config/arc/arcHS.md: Update ARCHS scheduling rules. + +2017-07-16 Claudiu Zissulescu + + * config/arc/arc-arch.h (arc_tune_attr): Add new tune parameters + for ARCHS4x. + * config/arc/arc-cpus.def (hs4x): New cpu. + (hs4xd): Likewise. + * config/arc/arc-tables.opt: Regenerate. + * config/arc/arc.c (arc_sched_issue_rate): New function. + (TARGET_SCHED_ISSUE_RATE): Define. + (TARGET_SCHED_EXPOSED_PIPELINE): Likewise. + * config/arc/arc.md (attr type): Add fpu_fuse, fpu_sdiv, fpu_ddiv, + fpu_cvt. + (attr tune): Add ARCHS4x tune values. + (attr tune_dspmpy): Define. + (*tst): Correct instruction type. + * config/arc/arcHS.md: Don't use this automaton for ARCHS4x cpus. + * config/arc/arcHS4x.md: New file. + * config/arc/fpu.md: Update instruction type attributes. + * config/arc/t-multilib: Regenerate. + +2018-07-16 Tom de Vries + + PR debug/86455 + * var-tracking.c (vt_initialize): Fix pre_dec handling. + +2018-07-16 Ramana Radhakrishnan + + * config/aarch64/atomics.md (aarch64_store_execlusive): Add + early clobber. + +2018-07-16 Eric Botcazou + + PR tree-optimization/86514 + * tree-ssa-reassoc.c (init_range_entry) : Return for a + conversion to a boolean type from a type with greater precision. + +2018-07-16 Tom de Vries + + * var-tracking.c (vt_initialize): Print adjusted insn slim if + dump_flags request TDF_SLIM. + +2018-07-16 Aldy Hernandez + + * fold-const.c (int_const_binop_1): Abstract... + (wide_int_binop): ...wide int code here. + (poly_int_binop): ...poly int code here. + Abstract the rest of int_const_binop_1 into int_const_binop. + * fold-const.h (wide_int_binop): New. + * tree-vrp.c (vrp_int_const_binop): Call wide_int_binop. + Remove useless PLUS/MINUS_EXPR case. + (zero_nonzero_bits_from_vr): Move wide int code... + (zero_nonzero_bits_from_bounds): ...here. + (extract_range_from_binary_expr_1): Move mask optimization code... + (range_easy_mask_min_max): ...here. + * tree-vrp.h (zero_nonzero_bits_from_bounds): New. + (range_easy_mask_min_max): New. + +2018-07-15 Jeff Law + + PR target/85993 + * config/sh/sh.c (output_mi_thunk): Remove dead conditional + block. + +2018-07-14 Jim Wilson + + * config/riscv/linux.h (TARGET_ASM_FILE_END): New. + +2018-07-14 Paul Koning + + * config/pdp11/pdp11.c (pdp11_rtx_costs): Bugfixes. + +2018-07-13 Jan Hubicka + + * lto-streamer-out.c (copy_function_or_variable): Dump info about + copying section. + +2018-07-13 Bill Schmidt + Steve Munroe + + * config/rs6000/emmintrin.h (_mm_and_si128): New function. + (_mm_andnot_si128): Likewise. + (_mm_or_si128): Likewise. + (_mm_xor_si128): Likewise. + +2018-07-13 Qing Zhao + + PR middle-end/78809 + * builtins.c (expand_builtin_memcmp): Inline the calls first + when result_eq is false. + (expand_builtin_strcmp): Inline the calls first. + (expand_builtin_strncmp): Likewise. + (inline_string_cmp): New routine. Expand a string compare + call by using a sequence of char comparison. + (inline_expand_builtin_string_cmp): New routine. Inline expansion + a call to str(n)cmp/memcmp. + * doc/invoke.texi (--param builtin-string-cmp-inline-length): + New option. + * params.def (BUILTIN_STRING_CMP_INLINE_LENGTH): New. + +2018-07-13 Richard Earnshaw + + * config/arm/driver-arm.c: Include arm-native.h. + (host_detect_local_cpu): Use auto-generated data tables. + (vendors, arm_cpu_table): Delete. Move part information to ... + * config/arm/arm-cpus.in: ... here. + * config/arm/parsecpu.awk (gen_native): New function. + (vendor, part): New CPU fields. + (END): Add support for building the native CPU detection tables. + * config/arm/t-arm (arm-native.h): Add build rule. + (driver-arm.o): Add dependency on arm-native.h. + +2018-07-13 Richard Biener + + PR middle-end/85974 + * match.pd (addr1 - addr2): Allow either of the operand to + have a conversion. + +2018-07-13 Tom de Vries + + * tree-inline.c (remap_ssa_name): Save and reuse debug exprs generated + in remap_ssa_name. + +2018-07-13 Jackson Woodruff + + * config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp): Use + arrays instead of numbered variables. + +2018-07-13 Eric Botcazou + + * config/sparc/sparc-protos.h (sparc_compute_frame_size): Delete. + * config/sparc/sparc.c (sparc_compute_frame_size): Make static. + +2018-07-13 Richard Biener + + PR debug/86452 + * dwarf2out.c (gen_type_die_with_usage): Use scope_die_for + instead of get_context_die. + +2018-07-13 Kugan Vivekanandarajah + Richard Biener + + PR middle-end/86489 + * tree-ssa-loop-niter.c (number_of_iterations_popcount): Check + that the loop latch destination where phi is defined. + +2018-07-12 Kito Cheng + + * config/riscv/riscv.c (enum riscv_privilege_levels): Add UNKNOWN_MODE. + (riscv_expand_epilogue): Add assertion to check interrupt mode. + (riscv_set_current_function): Extract getting interrupt type to new + function. + (riscv_get_interrupt_type): New function. + (riscv_merge_decl_attributes): New function, checking interrupt type is + same. + (TARGET_MERGE_DECL_ATTRIBUTES): Define. + +2018-07-12 Paul Koning + + * config/pdp11/pdp11.c (pdp11_output_def): Fix typo in .set + directive. + +2018-07-12 Paul Koning + + * doc/rtl.texi (REG_NONNEG): Remove decrement and branch until + zero reference, add doloop_end instead. + * doc/md.texi (decrement_and_branch_until_zero): Remove. + (Looping patterns): Remove decrement_and_branch_until_zero. Add + detail for doloop_end. + +2018-07-12 Martin Sebor + + PR c/86453 + * attribs.c (decl_attributes): Reject conflicting attributes before + calling attribute handlers. + +2018-07-12 Jan Hubicka + + * dumpfile.c (gcc::dump_manager::get_dump_file_name): Add PART + parameter. + (gcc::dump_manager::get_dump_file_name): likewise. + (dump_begin): Likewise. + * dumpfile.h (dump_begin): Update prototype. + (gcc::dump_manager::get_dump_file_name, + gcc::dump_manager::get_dump_file_name): Update prototype. + +2018-07-12 Richard Sandiford + + * internal-fn.h (vectorizable_internal_fn_p): New function. + * tree-vect-slp.c (compatible_calls_p): Likewise. + (vect_build_slp_tree_1): Remove nops argument. Handle calls + to internal functions. + (vect_build_slp_tree_2): Update call to vect_build_slp_tree_1. + +2018-07-12 Richard Sandiford + + * fold-const.h (inverse_conditions_p): Declare. + * fold-const.c (inverse_conditions_p): New function. + * match.pd: Use inverse_conditions_p. Add folds of view_converts + that test the inverse condition of a conditional internal function. + * internal-fn.h (vectorized_internal_fn_supported_p): Declare. + * internal-fn.c (internal_fn_mask_index): Handle conditional + internal functions. + (vectorized_internal_fn_supported_p): New function. + * tree-if-conv.c: Include internal-fn.h and fold-const.h. + (any_pred_load_store): Replace with... + (need_to_predicate): ...this new variable. + (redundant_ssa_names): New variable. + (ifcvt_can_use_mask_load_store): Move initial checks to... + (ifcvt_can_predicate): ...this new function. Handle tree codes + for which a conditional internal function exists. + (if_convertible_gimple_assign_stmt_p): Use ifcvt_can_predicate + instead of ifcvt_can_use_mask_load_store. Update after variable + name change. + (predicate_load_or_store): New function, split out from + predicate_mem_writes. + (check_redundant_cond_expr): New function. + (value_available_p): Likewise. + (predicate_rhs_code): Likewise. + (predicate_mem_writes): Rename to... + (predicate_statements): ...this. Use predicate_load_or_store + and predicate_rhs_code. + (combine_blocks, tree_if_conversion): Update after above name changes. + (ifcvt_local_dce): Handle redundant_ssa_names. + * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Handle + general conditional functions. + * tree-vect-stmts.c (vectorizable_call): Likewise. + +2018-07-12 Richard Sandiford + Alan Hayward + David Sherwood + + * internal-fn.h (can_interpret_as_conditional_op_p): Declare. + * internal-fn.c (can_interpret_as_conditional_op_p): New function. + * tree-ssa-math-opts.c (convert_mult_to_fma_1): Handle conditional + plus and minus and convert them into IFN_COND_FMA-based sequences. + (convert_mult_to_fma): Handle conditional plus and minus. + +2018-07-12 Richard Sandiford + + * doc/md.texi (cond_fma, cond_fms, cond_fnma, cond_fnms): Document. + * optabs.def (cond_fma_optab, cond_fms_optab, cond_fnma_optab) + (cond_fnms_optab): New optabs. + * internal-fn.def (COND_FMA, COND_FMS, COND_FNMA, COND_FNMS): New + internal functions. + (FMA): Use DEF_INTERNAL_FLT_FN rather than DEF_INTERNAL_FLT_FLOATN_FN. + * internal-fn.h (get_conditional_internal_fn): Declare. + (get_unconditional_internal_fn): Likewise. + * internal-fn.c (cond_ternary_direct): New macro. + (expand_cond_ternary_optab_fn): Likewise. + (direct_cond_ternary_optab_supported_p): Likewise. + (FOR_EACH_COND_FN_PAIR): Likewise. + (get_conditional_internal_fn): New function. + (get_unconditional_internal_fn): Likewise. + * gimple-match.h (gimple_match_op::MAX_NUM_OPS): Bump to 5. + (gimple_match_op::gimple_match_op): Add a new overload for 5 + operands. + (gimple_match_op::set_op): Likewise. + (gimple_resimplify5): Declare. + * genmatch.c (decision_tree::gen): Generate simplifications for + 5 operands. + * gimple-match-head.c (gimple_simplify): Define an overload for + 5 operands. Handle calls with 5 arguments in the top-level overload. + (convert_conditional_op): Handle conversions from unconditional + internal functions to conditional ones. + (gimple_resimplify5): New function. + (build_call_internal): Pass a fifth operand. + (maybe_push_res_to_seq): Likewise. + (try_conditional_simplification): Try converting conditional + internal functions to unconditional internal functions. + Handle 3-operand unconditional forms. + * match.pd (UNCOND_TERNARY, COND_TERNARY): Operator lists. + Define ternary equivalents of the current rules for binary conditional + internal functions. + * config/aarch64/aarch64.c (aarch64_preferred_else_value): Handle + ternary operations. + * config/aarch64/iterators.md (UNSPEC_COND_FMLA, UNSPEC_COND_FMLS) + (UNSPEC_COND_FNMLA, UNSPEC_COND_FNMLS): New unspecs. + (optab): Handle them. + (SVE_COND_FP_TERNARY): New int iterator. + (sve_fmla_op, sve_fmad_op): New int attributes. + * config/aarch64/aarch64-sve.md (cond_) + (*cond__2, *cond__any): New SVE_COND_FP_TERNARY patterns. + +2018-07-12 Richard Sandiford + + * target.def (preferred_else_value): New target hook. + * doc/tm.texi.in (TARGET_PREFERRED_ELSE_VALUE): New hook. + * doc/tm.texi: Regenerate. + * targhooks.h (default_preferred_else_value): Declare. + * targhooks.c (default_preferred_else_value): New function. + * internal-fn.h (conditional_internal_fn_code): Declare. + * internal-fn.c (FOR_EACH_CODE_MAPPING): New macro. + (get_conditional_internal_fn): Use it. + (conditional_internal_fn_code): New function. + * gimple-match.h (gimple_match_cond): New struct. + (gimple_match_op): Add a cond member function. + (gimple_match_op::gimple_match_op): Update all forms to take a + gimple_match_cond. + * genmatch.c (expr::gen_transform): Use the same condition as res_op + for the suboperation, but don't specify a particular else_value. + * tree-ssa-sccvn.c (vn_nary_simplify, vn_reference_lookup_3) + (visit_nary_op, visit_reference_op_load): Pass + gimple_match_cond::UNCOND to the gimple_match_op constructor. + * gimple-match-head.c: Include tree-eh.h + (convert_conditional_op): New function. + (maybe_resimplify_conditional_op): Likewise. + (gimple_resimplify1): Call maybe_resimplify_conditional_op. + (gimple_resimplify2): Likewise. + (gimple_resimplify3): Likewise. + (gimple_resimplify4): Likewise. + (maybe_push_res_to_seq): Return null for conditional operations. + (try_conditional_simplification): New function. + (gimple_simplify): Call it. Pass conditions to the gimple_match_op + constructor. + * match.pd: Fold VEC_COND_EXPRs of an IFN_COND_* call to a new + IFN_COND_* call. + * config/aarch64/aarch64.c (aarch64_preferred_else_value): New + function. + (TARGET_PREFERRED_ELSE_VALUE): Redefine. + +2018-07-12 Jan Hubicka + + * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream + DECL_FCONTEXT + (hash_tree): Do not hash DECL_FCONTEXT + * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers): + Do not stream DECL_FCONTEXT. + * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise. + * tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT. + +2018-07-12 Richard Biener + + PR debug/86462 + * dwarf2out.c (gen_block_die): Only output blocks when they have + at least one !DECL_IGNORED_P variable. + +2018-07-12 Richard Biener + + PR target/84829 + * config/gnu-user.h (GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC): + Remove -mieee-fp handling. + +2018-07-12 Richard Biener + + * tree-ssa-sccvn.c (vn_lookup_simplify_result): Remove bogus + left-over from last patch. + +2018-07-12 Jakub Jelinek + + PR tree-optimization/86492 + * gimple-ssa-store-merging.c + (imm_store_chain_info::coalesce_immediate_stores): Call + check_no_overlap even for the merge_overlapping case. Formatting fix. + +2018-07-12 Richard Biener + + PR middle-end/86479 + * fold-const.c (fold_binary_op_with_conditional_arg): Do not + move possibly trapping operations into the conditional. + +2018-07-12 Richard Biener + + * tree-ssa-sccvn.c (mprts_hook_cnt): Remove. + (vn_lookup_simplify_result): Remove recursion limit applied + here. + (vn_nary_build_or_lookup_1): Adjust. + (try_to_simplify): Likewise. + * gimple-match-head.c (gimple_resimplify1): Instead apply one + here. + (gimple_resimplify2): Likewise. + (gimple_resimplify3): Likewise. + (gimple_resimplify4): Likewise. + +2018-07-11 Jakub Jelinek + + * config/i386/avx512bitalgintrin.h (_mm512_mask_bitshuffle_epi64_mask): + Use __mmask64 type instead of __mmask8 for __M argument. + * config/i386/avx512fintrin.h (_mm512_mask_xor_epi64, + _mm512_maskz_xor_epi64): Use __mmask8 type instead of __mmask16 for + __U argument. + (_mm512_mask_cmpneq_epi64_mask): Use __mmask8 type instead of + __mmask16 for __M argument. + (_mm512_maskz_insertf32x4, _mm512_maskz_inserti32x4, + _mm512_mask_insertf32x4, _mm512_mask_inserti32x4): Cast last argument + to __mmask16 instead of __mmask8. + * config/i386/avx512vlintrin.h (_mm_mask_add_ps, _mm_maskz_add_ps, + _mm256_mask_add_ps, _mm256_maskz_add_ps, _mm_mask_sub_ps, + _mm_maskz_sub_ps, _mm256_mask_sub_ps, _mm256_maskz_sub_ps, + _mm256_maskz_cvtepi32_ps, _mm_maskz_cvtepi32_ps): Use __mmask8 type + instead of __mmask16 for __U argument. + * config/i386/avx512vlbwintrin.h (_mm_mask_cmp_epi8_mask): Use + __mmask16 instead of __mmask8 for __U argument. + (_mm256_mask_cmp_epi8_mask): Use __mmask32 instead of __mmask16 for + __U argument. + (_mm256_cmp_epi8_mask): Use __mmask32 return type instead of + __mmask16. + (_mm_mask_cmp_epu8_mask): Use __mmask16 instead of __mmask8 for __U + argument. + (_mm256_mask_cmp_epu8_mask): Use __mmask32 instead of __mmask16 for + __U argument. + (_mm256_cmp_epu8_mask): Use __mmask32 return type instead of + __mmask16. + (_mm_mask_cmp_epi16_mask): Cast last argument to __mmask8 instead + of __mmask16. + (_mm256_mask_cvtepi8_epi16): Use __mmask16 instead of __mmask32 for + __U argument. + (_mm_mask_cvtepi8_epi16): Use __mmask8 instead of __mmask32 for + __U argument. + (_mm256_mask_cvtepu8_epi16): Use __mmask16 instead of __mmask32 for + __U argument. + (_mm_mask_cvtepu8_epi16): Use __mmask8 instead of __mmask32 for + __U argument. + (_mm256_mask_cmpneq_epu8_mask, _mm256_mask_cmplt_epu8_mask, + _mm256_mask_cmpge_epu8_mask, _mm256_mask_cmple_epu8_mask): Change + return type as well as __M argument type and all casts from __mmask8 + to __mmask32. + (_mm256_mask_cmpneq_epu16_mask, _mm256_mask_cmplt_epu16_mask, + _mm256_mask_cmpge_epu16_mask, _mm256_mask_cmple_epu16_mask): Change + return type as well as __M argument type and all casts from __mmask8 + to __mmask16. + (_mm256_mask_cmpneq_epi8_mask, _mm256_mask_cmplt_epi8_mask, + _mm256_mask_cmpge_epi8_mask, _mm256_mask_cmple_epi8_mask): Change + return type as well as __M argument type and all casts from __mmask8 + to __mmask32. + (_mm256_mask_cmpneq_epi16_mask, _mm256_mask_cmplt_epi16_mask, + _mm256_mask_cmpge_epi16_mask, _mm256_mask_cmple_epi16_mask): Change + return type as well as __M argument type and all casts from __mmask8 + to __mmask16. + * config/i386/avx512vbmi2vlintrin.h (_mm_mask_shrdi_epi32, + _mm_mask_shldi_epi32): Cast last argument to __mmask8 instead of + __mmask16. + +2018-07-11 Grazvydas Ignotas + + * config/i386/avx512bwintrin.h: (_mm512_mask_cmp_epi8_mask, + _mm512_mask_cmp_epu8_mask): Use __mmask64 type instead of __mmask32 + for __U argument. + +2018-07-11 Paul Koning + + * doc/md.texi (define_subst): Document how multiple occurrences of + the same argument in the replacement pattern are handled. + +2018-07-11 Paul Koning + + * doc/extend.texi (Common Variable Attributes): Move "mode" into + alphabetical order. + (Common Type Attributes): Add "mode" attribute. + +2018-07-11 Jan Hubicka + + * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not + stream DECL_ORIGINAL_TYPE. + (DFS::DFS_write_tree_body): Drop hack handling local external decls. + (hash_tree): Do not walk DECL_ORIGINAL_TYPE. + * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers): + Do not walk original type. + * tree-streamer-out.c (streamer_write_chain): Drop hack handling + external decls. + (write_ts_decl_non_common_tree_pointers): Do not stream + DECL_ORIGINAL_TYPE + * tree.c (free_lang_data_in_decl): Clear DECL_ORIGINAL_TYPE. + (find_decls_types_r): Do not walk DEC_ORIGINAL_TYPE. + +2018-07-11 Aldy Hernandez + + * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not jump + thread twice from the same starting edge. + +2018-07-11 Aldy Hernandez + + * vr-values.c (gimple_stmt_nonzero_p): Abstract common code to... + * gimple.c (gimple_call_nonnull_result_p): ...here... + (gimple_call_nonnull_arg): ...and here. + * gimple.h (gimple_call_nonnull_result_p): New. + (gimple_call_nonnull_arg): New. + +2018-07-11 Richard Earnshaw + + * config/arm/arm-cpus.in: Move information from fpu field of each + cpu definition to the isa field. + * config/arm/parsecpu.awk (fpu): Delete match rule. + (gen_comm_data): Don't add bits from the CPU's FPU entry. + +2018-07-11 Richard Biener + + PR debug/86457 + * dwarf2out.c (init_sections_and_labels): Use + output_asm_line_debug_info consistently. + (dwarf2out_early_finish): Likewise. + (dwarf2out_finish): Remove DW_AT_stmt_list from early generated + type units. + +2018-07-11 Richard Biener + + * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): + Rework father_bb setting in a way to avoid propagating constants + multiple times on a loop body. + +2018-07-10 Mark Wielaard + + PR debug/86459 + * dwarf2out.c (output_macinfo_op): Fix dwarf_FORM typo in gcc_assert. + +2018-07-10 Richard Biener + + * hash-map.h (hash_map::iterator::operator*): Return + references to key and value. + +2018-07-10 Jakub Jelinek + + PR c++/86443 + * gimplify.c (find_combined_omp_for): Add DATA argument, in addition + to finding the inner OMP_FOR/OMP_SIMD stmt find non-trivial wrappers, + BLOCKs with BLOCK_VARs, OMP_PARALLEL in between, OMP_FOR in between. + (gimplify_omp_for): For composite loops, move outer + OMP_{DISTRIBUTE,TASKLOOP,FOR,PARALLEL} right around innermost + OMP_FOR/OMP_SIMD if there are any non-trivial wrappers. For class + iterators add any needed clauses. Allow OMP_FOR_ORIG_DECLS to contain + TREE_LIST for both the original class iterator and the "last" helper + var. Gimplify OMP_FOR_PRE_BODY before the outermost composite + loop, remember has_decl_expr from outer composite loops for the + innermost OMP_SIMD in TREE_PRIVATE bit on OMP_FOR_INIT. + +2018-07-09 Martin Sebor + + PR middle-end/77357 + PR middle-end/86428 + * builtins.c (c_strlen): Avoid out-of-bounds warnings when + accessing implicitly initialized array elements. + * expr.c (string_constant): Handle string initializers of + character arrays within aggregates. + * gimple-fold.c (fold_array_ctor_reference): Add argument. + Store element offset. As a special case, handle zero size. + (fold_nonarray_ctor_reference): Same. + (fold_ctor_reference): Add argument. Store subobject offset. + * gimple-fold.h (fold_ctor_reference): Add argument. + +2018-07-09 Paul Koning + + * config/pdp11/pdp11.c (pdp11_addr_cost): New function. + (pdp11_insn_cost): New function. + (pdp11_md_asm_adjust): New function. + (TARGET_INVALID_WITHIN_DOLOOP): Define. + (pdp11_rtx_costs): Update to match machine better. + (output_addr_const_pdp11): Correct format mismatch warnings. + * config/pdp11/pdp11.h (SLOW_BYTE_ACCESS): Correct definition. + * config/pdp11/pdp11.md: General change to add base_cost and/or + length attributes for use by new pdp11_insn_cost function. + (MIN_BRANCH): Correct definition. + (MIN_SOB): Ditto. + (doloop_end): Use standard pattern name for looping pattern. + (doloop_end_nocc): New. + (movsf): Add another constraint alternative. + (zero_extendqihi2): Add constraint alternatives for not in place + extend. + (zero_extendhisi2): Remove. + (shift patterns): Add CC handling variants. + (bswaphi2): New. + (bswapsi2): New. + (rothi3): New. + (define_peephole2): New peephole to recognize mov that sets CC for + subsequent test. + +2018-07-09 Rainer Orth + + * config/sparc/sparc.c (sparc_fold_builtin) : Adapt for signature change of wi::neg, + wi::add. + +2018-07-09 Jakub Jelinek + + PR c/86420 + * real.c (real_nextafter): Return true if result is denormal. + +2018-07-09 Martin Liska + + * common.opt: Add back wrongly removed attribute. + +2018-07-09 Richard Biener + + PR debug/86413 + * dwarf2out.c (gen_block_die): For an early generated DIE + always output high/low PC attributes. + +2018-07-09 Tom de Vries + + * cfgexpand.c (expand_debug_source_expr): Handle VAR_DECL. + * tree-inline.c (remap_ssa_name): Handle default def ssa_name mapping + onto VAR_DECL with abstract origin. + +2018-07-07 Jim Wilson + + * config/riscv/riscv.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): New. + +2018-07-07 Tom de Vries + + * tree-dfa.c (dump_enumerated_decls): Handle cfun->cfg == NULL. + +2018-07-07 Aldy Hernandez + + * tree-vrp.c (vrp_int_const_binop): Change overflow type to + overflow_type. + (combine_bound): Use wide-int overflow calculation instead of + rolling our own. + * calls.c (maybe_warn_alloc_args_overflow): Change overflow type to + overflow_type. + * fold-const.c (int_const_binop_2): Same. + (extract_muldiv_1): Same. + (fold_div_compare): Same. + (fold_abs_const): Same. + * match.pd: Same. + * poly-int.h (add): Same. + (sub): Same. + (neg): Same. + (mul): Same. + * predict.c (predict_iv_comparison): Same. + * profile-count.c (slow_safe_scale_64bit): Same. + * simplify-rtx.c (simplify_const_binary_operation): Same. + * tree-chrec.c (tree_fold_binomial): Same. + * tree-data-ref.c (split_constant_offset_1): Same. + * tree-if-conv.c (idx_within_array_bound): Same. + * tree-scalar-evolution.c (iv_can_overflow_p): Same. + * tree-ssa-phiopt.c (minmax_replacement): Same. + * tree-vect-loop.c (is_nonwrapping_integer_induction): Same. + * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): Same. + * vr-values.c (vr_values::adjust_range_with_scev): Same. + * wide-int.cc (wi::add_large): Same. + (wi::mul_internal): Same. + (wi::sub_large): Same. + (wi::divmod_internal): Same. + * wide-int.h: Change overflow type to overflow_type for neg, add, + mul, smul, umul, div_trunc, div_floor, div_ceil, div_round, + mod_trunc, mod_ceil, mod_round, add_large, sub_large, + mul_internal, divmod_internal. + (overflow_type): New enum. + (accumulate_overflow): New. + +2018-07-06 Kugan Vivekanandarajah + + * tree-ssa-phiopt.c (cond_removal_in_popcount_pattern): New. + (tree_ssa_phiopt_worker): Call cond_removal_in_popcount_pattern. + +2018-07-06 Kugan Vivekanandarajah + + * tree-ssa-loop-niter.c (number_of_iterations_popcount): If popcount + argument is checked for zero before entering loop, avoid checking again. + +2018-07-06 Kugan Vivekanandarajah + + * gimplify.h (generic_expr_could_trap_p): Set as global function. + * gimplify.h (generic_expr_could_trap_p): Likwise. + * tree-scalar-evolution.c (expression_expensive_p): Handle COND_EXPR. + +2018-07-06 Jakub Jelinek + + PR tree-optimization/86401 + * fold-const.c (fold_binary_loc) : Move the + ((A & N) + B) & M -> (A + B) & M etc. optimization into ... + (fold_bit_and_mask): ... here. New helper function for match.pd. + * fold-const.h (fold_bit_and_mask): Declare. + * match.pd (((A & N) + B) & M -> (A + B) & M): New optimization. + +2018-07-06 Peter Bergner + + PR target/86324 + * target.def (translate_mode_attribute): New hook. + * targhooks.h (default_translate_mode_attribute): Declare. + * targhooks.c (default_translate_mode_attribute): New function. + * doc/tm.texi.in (TARGET_TRANSLATE_MODE_ATTRIBUTE): New hook. + * doc/tm.texi: Regenerate. + * config/rs6000/rs6000.c (TARGET_TRANSLATE_MODE_ATTRIBUTE): Define. + (rs6000_translate_mode_attribute): New function. + +2018-07-06 Paul Koning + + * doc/md.texi (define_split): Document DONE and FAIL. + (define_peephole2): Ditto. + +2018-07-05 Jeff Law + + PR tree-optimization/86010 + * tree-ssa-dse.c (compute_trims): More aggressively trim at + both the head and tail of mem* and str* calls. + +2018-07-05 Jim Wilson + + * config.gcc (riscv*-*-*): When setting xlen, handle riscv-*. + +2018-07-05 Indu Bhagat + + * config/aarch64/aarch64-simd.md: correct flags text for + MIN_EXPR replacement. + +2018-07-05 James Clarke + + * configure: Regenerated. + +2018-07-05 Carl Love + + * config/rs6000/rs6000-c.c: Map ALTIVEC_BUILTIN_VEC_UNPACKH for + float argument to VSX_BUILTIN_DOUBLEH_V4SF. + Map ALTIVEC_BUILTIN_VEC_UNPACKL for float argument to + VSX_BUILTIN_DOUBLEL_V4SF. + +2018-07-05 Martin Sebor + + PR c++/86400 + * tree-ssa-strlen.c (maybe_set_strlen_range): Use type size rather + than its domain to compute its the upper bound of a char array. + +2018-07-05 Nathan Sidwell + + Replace NO_IMPLICIT_EXTERN_C with SYSTEM_IMPLICIT_EXTERN_C. + * doc/cpp.texi: Update comment. + * doc/tm.texi: Rebuilt. + * doc/tm.texi.in (NO_IMPLICIT_EXTERN_C): Replace with ... + (SYSTEM_IMPLICIT_EXTERN_C): ... this, opposite sense. + * doc/extend.texi (Backwards Compatibility): Clarify it is system + headers affected by extern "C". + * system.h: Poison NO_IMPLICIT_EXTERN_C. + * config/alpha/alpha.h, config/arm/uclinux-elf.h, + config/bfin/elf.h, config/cris/cris.h, config/darwin.h, + config/dragonfly.h, config/freebsd.h, config/gnu-user.h, + config/i386/cygming.h, config/i386/djgpp.h, config/i386/nto.h, + config/ia64/hpux.h, config/lm32/lm32.h, config/lm32/uclinux-elf.h, + config/lynx.h, config/mips/elf.h, config/mmix/mmix.h, + config/netbsd.h, config/pa/pa-hpux.h, config/powerpcspe/sysv4.h, + config/riscv/elf.h, config/rs6000/sysv4.h, config/rtems.h, + config/s390/tpf.h, config/sh/newlib.h, config/sol2.h, + config/sparc/openbsd64.h, config/sparc/sp-elf.h, + config/sparc/sp64-elf.h, config/spu/spu.h, + config/stormy16/stormy16.h, config/v850/v850.h, + config/visium/visium.h, config/vx-common.h, config/xtensa/elf.h: Don't + define NO_IMPLICIT_EXTERN_C. + * config/rs6000/aix.h: Set SYSTEM_IMPLICIT_EXTERN_C. + +2018-07-05 Tamar Christina + + PR target/84711 + * config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE + instead of GET_MODE_SIZE when comparing Units. + +2018-07-05 Tamar Christina + + PR target/84711 + * rtlanal.c (set_noop_p): Constrain on mode change, + include hard-reg-set.h + +2018-07-05 Tamar Christina + + * config/aarch64/aarch64.c (aarch64_expand_movmem): Fix mode size. + +2018-07-05 Jakub Jelinek + + Revert + 2018-07-04 Maxim Ostapenko + + PR sanitizer/84250 + * config/gnu-user.h (LIBASAN_EARLY_SPEC): Pass -lstdc++ for static + libasan. + * gcc.c: Do not pass LIBUBSAN_SPEC if ASan is enabled with UBSan. + +2018-07-04 Maxim Ostapenko + + PR sanitizer/84250 + * config/gnu-user.h (LIBASAN_EARLY_SPEC): Pass -lstdc++ for static + libasan. + * gcc.c: Do not pass LIBUBSAN_SPEC if ASan is enabled with UBSan. + +2018-07-04 Eric Botcazou + + PR middle-end/86380 + * expmed.c (choose_multiplier): Fix incorrect comparison with mask. + +2018-07-04 Aldy Hernandez + + * tree-vrp.c (extract_range_from_binary_expr_1): Initialize + neg_*_op* variables. + +2018-07-04 Martin Liska + + * tree-switch-conversion.c: Define + max_ratio_for_speed and max_ratio_for_size constants. + +2018-07-04 Denys Vlasenko + Martin Liska + + PR middle-end/66240 + PR target/45996 + PR c/84100 + * common.opt: Rename align options with 'str_' prefix. + * common/config/i386/i386-common.c (set_malign_value): New + function. + (ix86_handle_option): Use it to set -falign-* options/ + * config/aarch64/aarch64-protos.h (struct tune_params): Change + type from int to string. + * config/aarch64/aarch64.c: Update default values from int + to string. + * config/alpha/alpha.c (alpha_override_options_after_change): + Likewise. + * config/arm/arm.c (arm_override_options_after_change_1): Likewise. + * config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print + max skip conditionally. + * config/i386/freebsd.h (SUBALIGN_LOG): New. + (ASM_OUTPUT_MAX_SKIP_ALIGN): Print + max skip conditionally. + * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print + max skip conditionally. + * config/i386/gnu-user.h (SUBALIGN_LOG): New. + (ASM_OUTPUT_MAX_SKIP_ALIGN): Print + max skip conditionally. + * config/i386/i386.c (struct ptt): Change type from int to + string. + (ix86_default_align): Set default values. + * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Print + max skip conditionally. + * config/i386/iamcu.h (SUBALIGN_LOG): New. + (ASM_OUTPUT_MAX_SKIP_ALIGN): + * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): + * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print + max skip conditionally. + * config/i386/openbsdelf.h (SUBALIGN_LOG): New. + (ASM_OUTPUT_MAX_SKIP_ALIGN) Print max skip conditionally.: + * config/i386/x86-64.h (SUBALIGN_LOG): New. + (ASM_OUTPUT_MAX_SKIP_ALIGN): Print + max skip conditionally. + (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. + * config/ia64/ia64.c (ia64_option_override): Set default values + for alignment options. + * config/m68k/m68k.c: Handle new str_align_* options. + * config/mips/mips.c (mips_set_compression_mode): Change + type of constants. + (mips_option_override): Set default values for options. + * config/powerpcspe/powerpcspe.c (rs6000_option_override_internal): + Likewise. + * config/rs6000/rs6000.c (rs6000_option_override_internal): + Likewise. + * config/rx/rx.c (rx_option_override): Likewise. + * config/rx/rx.h (JUMP_ALIGN): Use align_jumps_log. + (LABEL_ALIGN): Use align_labels_log. + (LOOP_ALIGN): Use align_loops_align. + * config/s390/s390.c (s390_asm_output_function_label): Use new + macros. + * config/sh/sh.c (sh_override_options_after_change): + Change type of constants. + * config/spu/spu.c (spu_sched_init): Likewise. + * config/sparc/sparc.c (sparc_option_override): Set default + values for options. + * config/visium/visium.c (visium_option_override): Likewise. + * config/visium/visium.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Do not + emit p2align format with last argument if it's not needed. + * doc/invoke.texi: Document extended format of -falign-*. + * final.c: Use align_labels alignment. + * flags.h (struct target_flag_state): Change type to use + align_flags. + (struct align_flags_tuple): New. + (struct align_flags): Likewise. + (align_loops_log): Redefine macro to use new types. + (align_loops_max_skip): Redefine macro to use new types. + (align_jumps_log): Redefine macro to use new types. + (align_jumps_max_skip): Redefine macro to use new types. + (align_labels_log): Redefine macro to use new types. + (align_labels_max_skip): Redefine macro to use new types. + (align_functions_log): Redefine macro to use new types. + (align_loops): Redefine macro to use new types. + (align_jumps): Redefine macro to use new types. + (align_labels): Redefine macro to use new types. + (align_functions): Redefine macro to use new types. + (align_functions_max_skip): Redefine macro to use new types. + (align_loops_value): New macro. + (align_jumps_value): New macro. + (align_labels_value): New macro. + (align_functions_value): New macro. + * function.c (invoke_set_current_function_hook): Propagate + alignment values from flags to global variables default in + topleev.h. + * ipa-icf.c (sem_function::equals_wpa): Use + cl_optimization_option_eq instead of memcmp. + * lto-streamer.h (cl_optimization_stream_out): Support streaming + of string types. + (cl_optimization_stream_in): Likewise. + * optc-save-gen.awk: Support strings in cl_optimization. + * opth-gen.awk: Likewise. + * opts.c (finish_options): Remove error checking of invalid + value ranges. + (MAX_CODE_ALIGN): Remove. + (MAX_CODE_ALIGN_VALUE): Likewise. + (parse_and_check_align_values): New function. + (check_alignment_argument): Likewise. + (common_handle_option): Use check_alignment_argument. + * opts.h (parse_and_check_align_values): Declare. + * toplev.c (init_alignments): Remove. + (read_log_maxskip): New. + (parse_N_M): Likewise. + (parse_alignment_opts): Likewise. + (backend_init_target): Remove usage of init_alignments. + * toplev.h (parse_alignment_opts): Declare. + * tree-streamer-in.c (streamer_read_tree_bitfields): Add new + argument. + * tree-streamer-out.c (streamer_write_tree_bitfields): Likewise. + * tree.c (cl_option_hasher::equal): New. + * varasm.c: Use new global macros. + +2018-07-04 Denys Vlasenko + + * config/i386/dragonfly.h: (ASM_OUTPUT_MAX_SKIP_ALIGN): + Use a simpler align directive also if MAXSKIP = ALIGN-1. + * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. + * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove "If N + is large, do at least 8 byte alignment" code. Add SUBALIGN_LOG + define. Use a simpler align directive also if MAXSKIP = ALIGN-1. + * config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + +2018-07-04 Martin Liska + Jonathan Wakely + + * coverage.c: Use correct type. + * doc/invoke.texi: Language correction. + +2018-07-03 H.J. Lu + + PR target/85620 + * config/i386/i386.c (rest_of_insert_endbranch): Also generate + ENDBRANCH for non-tail call which may return via indirect branch. + * doc/extend.texi: Document indirect_return attribute. + +2018-07-03 Martin Sebor + + PR tree-optimization/86274 + * gimple-ssa-sprintf.c (fmtresult::type_max_digits): Verify + precondition. + (format_floating): Correct handling of infinities and NaNs. + +2018-07-03 Martin Sebor + + * print-tree.c (print_real_cst): New function. + (print_node_brief): Call it. + (print_node): Ditto. + +2018-07-03 Jeff Law + + * config/h8300/h8300.md (logical3_sn, logical3): Merge + into a single pattern. + + * config/h8300/h8300.md (ors code_iterator): New. + (bsetqi_msx, bnotqi_msx patterns and splitters): Consolidate into + a single pattern and single splitter. + (bsethi_msx, bnothi_msx patterns): Consolidate into a single pattern. + (iorqi3_1, xorqi3_1): Likewise. + (iorqi3, xorqi3 expanders): Similarly. + + * config/h8300/h8300.md (movmd_internal_normal): Consolidated with + (movmd_internal) into a single pattern using the P mode iterator. + (movmd splitters): Similarly. + (stpcpy_internal_normal, stpcpy_internal): Similarly for thes patterns. + (movsd splitters): Similarly. + + * config/h8300/h8300.c (h8300_insn_length_from_table): Consolidate + ADDB, ADDW and ADDL into a single ADD attribute which selects the + right table based on the size of the operand. + * config/h8300/h8300.md (length_table): Corresponding changes. All + references to "addb", "addw" and "addl" changed to "add". + (btst patterns): Merge two variants into a single pattern. + (tstqi, tsthi): Likewise. + (addhi3_incdec, addsi3_incdec): Likewise. + (subhi3_h8300hs, subsi3_h8300hs): Likewise. + (mulhi3, mulsi3): Likewise. + (udivhi3, udivsi3): Likewise. + (divhi3, divsi3): Likewise. + (andorqi3, andorhi3, andorsi3): Likewise. + +2018-07-03 Uros Bizjak + + PR target/85694 + * config/i386/sse.md (uavg3_ceil): New expander. + (_uavg3): Simplify expander. + +2018-07-03 Richard Sandiford + + PR tree-optimization/85694 + * config/aarch64/iterators.md (HADD, RHADD): New int iterators. + (u): Handle UNSPEC_SHADD, UNSPEC_UHADD, UNSPEC_SRHADD and + UNSPEC_URHADD. + * config/aarch64/aarch64-simd.md (avg3_floor) + (avg3_ceil): New patterns. + +2018-07-03 David Malcolm + + * gcc.dg/vect/slp-perm-1.c: Remove "note: " prefix from + scan-tree-dump directive. + * gcc.dg/vect/slp-perm-2.c: Likewise. + * gcc.dg/vect/slp-perm-3.c: Likewise. + * gcc.dg/vect/slp-perm-5.c: Likewise. + * gcc.dg/vect/slp-perm-6.c: Likewise. + * gcc.dg/vect/slp-perm-7.c: Likewise. + * gcc.dg/vect/slp-perm-8.c: Likewise. + +2018-07-03 Marek Polacek + + PR middle-end/86202 + * gimple-fold.c (size_must_be_zero_p): Check the type of the size. + +2018-07-03 Richard Biener + + PR ipa/86389 + * tree-ssa-structalias.c (find_func_clobbers): Properly + handle indirect calls. + +2018-07-03 Jeff Law + + * config/h8300/h8300.md (HSI, QHSI, QHSIF): New mode iterators. + (shifts): New code iterator. + (movqi, movhi, movsi, movsf expanders): Consolidate into a single + expander. Fix HImode handling on H8/SX. + (addqi3, addhi3, addsi3 expanders): Consolidate into a single expander. + (subqi3, subhi3, subsi3 expanders): Likewise. + (andqi3, andhi3, andsi3 expanders): Likewise. + (iorqi3, iorhi3, iorsi3 expanders): Likewise. + (xorqi3, xorhi3, xorsi3 expanders): Likewise. + (negqi2, neghi2, negsi2, negsf2 expanders): Likewise. + (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise. + (zero_extendqihi2, zero_extendqisi2): Likewise. + (extendqihi2, extendqisi2): Likewise. + (rotlqi3, rotlhi3, rotlsi3): Likewise. + (neghi2_h8300, negsi2_h8300): Likewise for these patterns. + (rotlqi3_1, rotlhi3_1): Likewise. + (logicalhi3_sn, logicalsi3_sn): Likewise. + (logicalhi3, logicalsi3): Likewise. + +2018-07-03 Richard Sandiford + + * tree-vect-patterns.c (vect_recog_rotate_pattern) + (vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern) + (vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast) + (adjust_bool_pattern, vect_recog_bool_pattern): Pass the vector + type to append_pattern_def_seq instead of creating a stmt_vec_info + directly. + (build_mask_conversion): Likewise. Remove vinfo argument. + (vect_add_conversion_to_patterm): Likewise, renaming to... + (vect_add_conversion_to_pattern): ...this. + (vect_recog_mask_conversion_pattern): Update call to + build_mask_conversion. Pass the vector type to + append_pattern_def_seq here too. + (vect_recog_gather_scatter_pattern): Update call to + vect_add_conversion_to_pattern. + +2018-07-03 Richard Sandiford + + * tree-vect-patterns.c (new_pattern_def_seq): Delete. + (vect_recog_dot_prod_pattern, vect_recog_sad_pattern) + (vect_recog_widen_op_pattern, vect_recog_over_widening_pattern) + (vect_recog_rotate_pattern, vect_synth_mult_by_constant): Don't set + STMT_VINFO_PATTERN_DEF_SEQ to null here. + (vect_recog_pow_pattern, vect_recog_vector_vector_shift_pattern) + (vect_recog_mixed_size_cond_pattern, vect_recog_bool_pattern): Use + append_pattern_def_seq instead of new_pattern_def_seq. + (vect_recog_divmod_pattern): Do both of the above. + (vect_pattern_recog_1): Assert that STMT_VINO_PATTERN_DEF_SEQ + is null. + +2018-07-03 Richard Sandiford + + * tree-vect-patterns.c (vect_recog_dot_prod_pattern): + (vect_recog_sad_pattern, vect_recog_widen_op_pattern) + (vect_recog_widen_mult_pattern, vect_recog_pow_pattern): + (vect_recog_widen_sum_pattern, vect_recog_over_widening_pattern) + (vect_recog_average_pattern, vect_recog_cast_forwprop_pattern) + (vect_recog_widen_shift_pattern, vect_recog_rotate_pattern) + (vect_recog_vector_vector_shift_pattern, vect_synth_mult_by_constant) + (vect_recog_mult_pattern, vect_recog_divmod_pattern) + (vect_recog_mixed_size_cond_pattern, vect_recog_bool_pattern) + (vect_recog_mask_conversion_pattern): Replace vec + parameter with a single stmt_vec_info. + (vect_recog_func_ptr): Likewise. + (vect_recog_gather_scatter_pattern): Likewise, folding in... + (vect_try_gather_scatter_pattern): ...this. + (vect_pattern_recog_1): Remove stmts_to_replace and just pass + the stmt_vec_info of the statement to be matched. Don't clear + STMT_VINFO_RELATED_STMT. + (vect_pattern_recog): Update call accordingly. + +2018-07-03 Richard Sandiford + + PR tree-optimization/85694 + * doc/md.texi (avgM3_floor, uavgM3_floor, avgM3_ceil) + (uavgM3_ceil): Document new optabs. + * doc/sourcebuild.texi (vect_avg_qi): Document new target selector. + * internal-fn.def (IFN_AVG_FLOOR, IFN_AVG_CEIL): New internal + functions. + * optabs.def (savg_floor_optab, uavg_floor_optab, savg_ceil_optab) + (savg_ceil_optab): New optabs. + * tree-vect-patterns.c (vect_recog_average_pattern): New function. + (vect_vect_recog_func_ptrs): Add it. + * tree-vect-stmts.c (vectorizable_call): Get the type of the zero + constant directly from the associated lhs. + +2018-07-03 Richard Sandiford + + * tree-vect-patterns.c (vect_split_statement): New function. + (vect_convert_input): Use it to try to split an existing cast. + +2018-07-03 Richard Sandiford + + * poly-int.h (print_hex): New function. + * dumpfile.h (dump_dec, dump_hex): Declare. + * dumpfile.c (dump_dec, dump_hex): New poly_wide_int functions. + * tree-vectorizer.h (_stmt_vec_info): Add min_output_precision, + min_input_precision, operation_precision and operation_sign. + * tree-vect-patterns.c (vect_get_range_info): New function. + (vect_same_loop_or_bb_p, vect_single_imm_use) + (vect_operation_fits_smaller_type): Delete. + (vect_look_through_possible_promotion): Add an optional + single_use_p parameter. + (vect_recog_over_widening_pattern): Rewrite to use new + stmt_vec_info infomration. Handle one operation at a time. + (vect_recog_cast_forwprop_pattern, vect_narrowable_type_p) + (vect_truncatable_operation_p, vect_set_operation_type) + (vect_set_min_input_precision): New functions. + (vect_determine_min_output_precision_1): Likewise. + (vect_determine_min_output_precision): Likewise. + (vect_determine_precisions_from_range): Likewise. + (vect_determine_precisions_from_users): Likewise. + (vect_determine_stmt_precisions, vect_determine_precisions): Likewise. + (vect_vect_recog_func_ptrs): Put over_widening first. + Add cast_forwprop. + (vect_pattern_recog): Call vect_determine_precisions. + +2018-07-03 Richard Sandiford + + * tree-vect-patterns.c (vect_mark_pattern_stmts): Remove pattern + statements that have been replaced by further pattern statements. + (vect_pattern_recog_1): Clear STMT_VINFO_PATTERN_DEF_SEQ on failure. + +2018-07-03 Richard Biener + + * tree-vect-stmts.c (vect_is_simple_use): Consolidate dumping, + always set *dt. Dump vectype in vectype overload. + * dumpfile.h (dump_gimple_expr): New function. + (dump_gimple_expr_loc): Likewise. + * dumpfile.c (dump_gimple_expr): New function. + (dump_gimple_expr_loc): Likewise. + +2018-07-02 Jeff Law + + * config/h8300/h8300.md (movqi_h8300, movqi_h8300hs): Consolidate + the H8/300, H8/300H and H8/S variants into a single pattern. + (movhi_h8300, movqi_h8300hs): Similarly. + (pushqi_h8300hs, pushhi_h8300hs): Consolidate into a single pattern. + (QHI mode iterator): New. + + * config/h8300/h8300.md: Remove trailing whitespace. + +2018-07-02 Jim Wilson + + * config/riscv/riscv.c (riscv_expand_epilogue): Use emit_jump_insn + instead of emit_insn for interrupt returns. + * config/riscv/riscv.md (riscv_met): Add (return) to rtl. + (riscv_sret, riscv_uret): Likewise. + +2018-07-02 David Malcolm + + * pretty-print.c (selftest::test_pp_format): Move save and restore + of quotes to class auto_fix_quotes, and add an instance. + * selftest.c: Include "intl.h". + (selftest::auto_fix_quotes::auto_fix_quotes): New ctor. + (selftest::auto_fix_quotes::~auto_fix_quotes): New dtor. + * selftest.h (selftest::auto_fix_quotes): New class. + +2018-07-02 Richard Henderson + + * config/aarch64/aarch64-protos.h, config/aarch64/aarch64.c + (aarch64_sve_prepare_conditional_op): Remove. + * config/aarch64/aarch64-sve.md (cond_): + Allow aarch64_simd_reg_or_zero as select operand; remove + the aarch64_sve_prepare_conditional_op call. + (cond_): Likewise. + (cond_): Likewise. + (*cond__z): New pattern. + (*cond__z): New pattern. + (*cond__z): New pattern. + (*cond__any): New pattern. + (*cond__any): New pattern. + (*cond__any): New pattern + and a splitters to match all of the *_any patterns. + * config/aarch64/predicates.md (aarch64_sve_any_binary_operator): New. + + * config/aarch64/iterators.md (SVE_INT_BINARY_REV): Remove. + (SVE_COND_FP_BINARY_REV): Remove. + (sve_int_op_rev, sve_fp_op_rev): New. + * config/aarch64/aarch64-sve.md (*cond__0): New. + (*cond__0): New. + (*cond__0): New. + (*cond__2): Rename, add movprfx alternative. + (*cond__2): Similarly. + (*cond__2): Similarly. + (*cond__3): Similarly; use sve_int_op_rev. + (*cond__3): Similarly. + (*cond__3): Similarly; use sve_fp_op_rev. + + * config/aarch64/aarch64-sve.md (cond_): + Remove match_dup 1 from the inner unspec. + (*cond_): Likewise. + + * config/aarch64/aarch64.md (movprfx): New attr. + (length): Default movprfx to 8. + * config/aarch64/aarch64-sve.md (*mul3): Add movprfx alt. + (*madd, *msubmul3_highpart): Likewise. + (*3): Likewise. + (*v3): Likewise. + (*3): Likewise. + (*3): Likewise. + (*fma4, *fnma4): Likewise. + (*fms4, *fnms4): Likewise. + (*div4): Likewise. + +2018-07-02 Richard Sandiford + + * tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix typo + in dump string. + +2018-07-02 Richard Biener + + PR tree-optimization/86363 + * tree-ssa-sccvn.c (vn_reference_lookup_3): Check the + memset argument refers to a non-variable address. + +2018-07-02 Aldy Hernandez + + * tree-vrp.c (extract_range_from_binary_expr_1): Abstract a lot of the + {PLUS,MINUS}_EXPR code to... + (adjust_symbolic_bound): ...here, + (combine_bound): ...here, + (set_value_range_with_overflow): ...and here. + +2018-07-02 Aldy Hernandez + + * tree-vrp.c (extract_range_from_unary_expr): Abstract ABS_EXPR + code... + (extract_range_from_abs_expr): ...here. + +2018-07-02 Eric Botcazou + + * config/i386/i386.c (ix86_finalize_stack_frame_flags): Do not overrule + -fno-omit-frame-pointer when not optimizing. + +2018-07-02 Martin Liska + + PR ipa/86279 + * ipa-pure-const.c (malloc_candidate_p): Revert usage of ::get. + (propagate_nothrow): Likewise. + +2018-07-02 Martin Liska + + PR ipa/86323 + * ipa-inline.c (early_inliner): Revert wrongly added ::get call. + +2018-07-02 David Malcolm + + * dumpfile.c (dump_generic_expr_loc): Undo removal of this + function in r262149, changing "loc" param from source_location to + const dump_location_t &. + * dumpfile.h (dump_generic_expr_loc): Undo removal of this + declaration, as above. + +2018-07-01 Paul Koning + + * common/config/pdp11/pdp11-common.c (pdp11_handle_option): Handle + -munit-asm, -mgnu-asm, -mdec-asm. + * config/pdp11/pdp11-protos.h (pdp11_gen_int_label): New. + (pdp11_output_labelref): New. + (pdp11_output_def): New. + (pdp11_output_addr_vec_elt): New. + * config/pdp11/pdp11.c: Use tab between opcode and operands. Use + %# and %@ format codes. + (pdp11_option_override): New. + (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Define. + (pdp11_output_ident): New. + (pdp11_asm_named_section): New. + (pdp11_asm_init_sections): New. + (pdp11_file_start): New. + (pdp11_file_end): New. + (output_ascii): Use .ascii/.asciz for -mdec-asm. + (pdp11_asm_print_operand): Update %# and %$ for -mdec-asm. Add + %o, like %c but octal. + (pdp11_option_override): New. + * config/pdp11/pdp11.h (TEXT_SECTION_ASM_OP): Update for + -mdec-asm. + (DATA_SECTION_ASM_OP): Ditto. + (READONLY_DATA_SECTION_ASM_OP): New. + (IS_ASM_LOGICAL_LINE_SEPARATOR): New. + (ASM_GENERATE_INTERNAL_LABEL): Use new function. + (ASM_OUTPUT_LABELREF): Ditto. + (ASM_OUTPUT_DEF): Ditto. + (ASM_OUTPUT_EXTERNAL): New. + (ASM_OUTPUT_SOURCE_FILENAME): New. + (ASM_OUTPUT_ADDR_VEC_ELT): Use new function. + (ASM_OUTPUT_SKIP): Update for -mdec-asm. + * config/pdp11/pdp11.md: Use tab between opcode and operands. Use + %# and %@ format codes. + * config/pdp11/pdp11.opt (mgnu-asm): New. + (mdec-asm): Conflicts with -mgnu-asm and -munix-asm. + (munix-asm): Conflicts with -mdec-asm and -mgnu-asm. + * doc/invoke.txt (PDP-11 Options): Add -mgnu-asm. + +2018-07-01 Aldy Hernandez + + * tree-ssa-threadupdate.c (mark_threaded_blocks): Avoid + dereferencing path[] beyond its length. + (debug_path): New. + (debug_all_paths): New. + (rewire_first_differing_edge): New. + (adjust_paths_after_duplication): New. + (duplicate_thread_path): Call adjust_paths_after_duplication. + Add new argument. + (thread_through_all_blocks): Add new argument to + duplicate_thread_path. + +2018-06-30 Jim Wilson + + * config/riscv/predicates.md (p2m1_shift_operand): New. + (high_mask_shift_operand): New. + * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): New combiner + pattern using p2m1_shift_operand. + (lshsi3_zero_extend_3+2): New combiner pattern using + high_mask_shift_operand. + +2018-06-30 Richard Sandiford + + * tree-vect-patterns.c (vect_get_external_def_edge): New function, + split out from... + (vect_recog_rotate_pattern): ...here. + (vect_convert_input): Try to insert casts of invariants in the + preheader. + * tree-vect-loop-manip.c (vect_loop_versioning): Don't require the + preheader to be empty. + +2018-06-30 Richard Sandiford + + * tree-vect-patterns.c (append_pattern_def_seq): Take an optional + vector type. If given, install it in the new statement's + STMT_VINFO_VECTYPE. + (vect_element_precision): New function. + (vect_unpromoted_value): New struct. + (vect_unpromoted_value::vect_unpromoted_value): New function. + (vect_unpromoted_value::set_op): Likewise. + (vect_look_through_possible_promotion): Likewise. + (vect_joust_widened_integer, vect_joust_widened_type): Likewise. + (vect_widened_op_tree, vect_convert_input): Likewise. + (vect_convert_inputs, vect_convert_output): Likewise. + (vect_recog_dot_prod_pattern): Use vect_look_through_possible_promotion + to handle the optional cast of the multiplication result and + vect_widened_op_tree to detect the widened multiplication itself. + Do not require the input and output of promotion casts to have + the same sign, but base the signedness of the operation on the + input rather than the result. If the pattern includes two + promotions, check that those promotions have the same sign. + Do not restrict the MULT_EXPR handling to a double-width result; + handle quadruple-width results and wider. Use vect_convert_inputs + to convert the inputs to the common type. + (vect_recog_sad_pattern): Use vect_look_through_possible_promotion + to handle the optional cast of the ABS result. Also allow a sign + change or a sign extension between the ABS and MINUS. + Use vect_widened_op_tree to detect the widened subtraction and use + vect_convert_inputs to convert the inputs to the common type. + (vect_handle_widen_op_by_const): Delete. + (vect_recog_widen_op_pattern): New function. + (vect_recog_widen_mult_pattern): Use it. + (vect_recog_widen_shift_pattern): Likewise. + (vect_recog_widen_sum_pattern): Use + vect_look_through_possible_promotion to handle the promoted + PLUS_EXPR operand. + +2018-06-30 Richard Sandiford + + * gimple-iterator.c (gsi_for_stmt): Add a new overload that takes + the containing gimple_seq *. + * gimple-iterator.h (gsi_for_stmt): Declare it. + * tree-vect-patterns.c (vect_recog_dot_prod_pattern) + (vect_recog_sad_pattern, vect_recog_widen_sum_pattern) + (vect_recog_widen_shift_pattern, vect_recog_rotate_pattern) + (vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern) + (vect_recog_mask_conversion_pattern): Remove STMT_VINFO_IN_PATTERN_P + checks. + (vect_init_pattern_stmt, vect_set_pattern_stmt): New functions, + split out from... + (vect_mark_pattern_stmts): ...here. Handle cases in which the + statement being replaced is part of an existing pattern + definition sequence, inserting the new pattern statements before + the original one. + (vect_pattern_recog_1): Don't return a bool. If the statement + is already part of a pattern, instead apply pattern matching + to the pattern definition statements. Don't clear the + STMT_VINFO_RELATED_STMT if is_pattern_stmt_p. + (vect_pattern_recog): Don't break after the first match; + continue processing the pattern definition statements instead. + Don't bail out for STMT_VINFO_IN_PATTERN_P here. + +2018-06-30 Richard Sandiford + + * tree-vect-patterns.c (vect_reassociating_reduction_p): New function. + (vect_recog_dot_prod_pattern, vect_recog_sad_pattern) + (vect_recog_widen_sum_pattern): Use it. + +2018-06-30 Richard Sandiford + + * tree-vect-loop.c (vectorizable_reduction): Assert that the + phi is not a pattern statement and has not been replaced by + a pattern statement. + * tree-vect-patterns.c (type_conversion_p): Don't check + STMT_VINFO_IN_PATTERN_P. + (vect_recog_vector_vector_shift_pattern): Likewise. + (vect_recog_dot_prod_pattern): Expect vect_is_simple_use to return + the pattern statement rather than the original statement; check + directly for a WIDEN_MULT_EXPR here. + * tree-vect-slp.c (vect_get_and_check_slp_defs): Expect + vect_is_simple_use to return the pattern statement rather + than the original statement; use is_pattern_stmt_p to check + for such a pattern statement. + * tree-vect-stmts.c (process_use): Expect vect_is_simple_use + to return the pattern statement rather than the original statement; + don't do the same transformation here. + (vect_is_simple_use): If the defining statement has been replaced + by a pattern statement, return the pattern statement instead. + Remove the corresponding (local) transformation from the vectype + overload. + +2018-06-30 Richard Sandiford + + * tree-vectorizer.h (vect_is_simple_use): Move the gimple ** to the + end and default to null. + * tree-vect-loop.c (vect_create_epilog_for_reduction) + (vectorizable_reduction): Update calls accordingly, dropping the + gimple ** argument if the passed-back statement isn't needed. + * tree-vect-patterns.c (vect_get_internal_def, type_conversion_p) + (vect_recog_rotate_pattern): Likewise. + (vect_recog_mask_conversion_pattern): Likewise. + * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise. + (vect_mask_constant_operand_p): Likewise. + * tree-vect-stmts.c (is_simple_and_all_uses_invariant, process_use): + (vect_model_simple_cost, vect_get_vec_def_for_operand): Likewise. + (get_group_load_store_type, get_load_store_type): Likewise. + (vect_check_load_store_mask, vect_check_store_rhs): Likewise. + (vectorizable_call, vectorizable_simd_clone_call): Likewise. + (vectorizable_conversion, vectorizable_assignment): Likewise. + (vectorizable_shift, vectorizable_operation): Likewise. + (vectorizable_store, vect_is_simple_cond): Likewise. + (vectorizable_condition, vectorizable_comparison): Likewise. + (get_same_sized_vectype, vect_get_mask_type_for_stmt): Likewise. + (vect_is_simple_use): Rename the def_stmt argument to def_stmt_out + and move it to the end. Cope with null def_stmt_outs. + +2018-06-30 Bernd Edlinger + + * Makefile.in (FLAGS_TO_PASS): Add RANLIB_FOR_TARGET. + +2018-06-29 Jeff Law + + * config/v850/v850.c (v850_legitimate_address_p): Handle large + displacements for TARGET_V850E2V3 and newer. + (TARGET_LRA_P): Remove. Defaults to LRA now. + * config/v850/v850.md (sign23byte_load): Remove. + (unsign23byte_load, sign23hword_load, unsign23hword_load): Likewise. + (23word_load, 23byte_store, 23hword_store, 23word_store): Likewise. + +2018-06-29 Martin Liska + + PR lto/85759 + * coverage.c (coverage_init): Mangle full path name. + * doc/invoke.texi: Document the change. + * gcov-io.c (mangle_path): New. + * gcov-io.h (mangle_path): Likewise. + * gcov.c (mangle_name): Use mangle_path for path mangling. + +2018-06-29 Kyrylo Tkachov + + * config/arm/arm.c (output_move_double): Don't allow STRD instructions + if starting source register is not even. + +2018-06-29 Martin Liska + + PR tree-optimization/86263 + * tree-switch-conversion.c (switch_decision_tree::try_switch_expansion): + Make edge redirection. + +2018-06-29 David Malcolm + + * dumpfile.c (dump_loc): Add indentation based on scope depth. + (dump_scope_depth): New variable. + (get_dump_scope_depth): New function. + (dump_begin_scope): New function. + (dump_end_scope): New function. + * dumpfile.h (get_dump_scope_depth): New declaration. + (dump_begin_scope): New declaration. + (dump_end_scope): New declaration. + (class auto_dump_scope): New class. + (AUTO_DUMP_SCOPE): New macro. + * tree-vectorizer.h (DUMP_VECT_SCOPE): Reimplement in terms of + AUTO_DUMP_SCOPE. + +2018-06-29 Richard Biener + + * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Assert + compute_all_dependences succeeds. + * tree-vect-loop.c (vect_get_datarefs_in_loop): Fail early if we + exceed --param loop-max-datarefs-for-datadeps. + +2018-06-29 Jakub Jelinek + + * config/rs6000/t-rs6000: Append rs6000-modes.h to TM_H. + +2018-06-28 Uros Bizjak + + PR target/86348 + * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): Use + alternative 0 in preferred_for_speed attribute. + +2018-06-28 Paul Koning + + * config/pdp11/pdp11-protos.h (pdp11_shift_length): New function. + * config/pdp11/pdp11.c (pdp11_shift_length): New function. + * config/pdp11/pdp11.h (ADJUST_INSN_LENGTH): Remove. + * config/pdp11/pdp11.md: Correct "length" attribute calculation + for shift insn patterns. + +2018-06-28 David Malcolm + + * cgraph.c (cgraph_node::get_body): Replace assignments to + "dump_file" with calls to set_dump_file. + * dumpfile.c (alt_dump_file): Make static, and group with... + (alt_flags): ...this definition. + (dumps_are_enabled): New variable. + (refresh_dumps_are_enabled): New function. + (set_dump_file): New function. + (set_alt_dump_file): New function. + (gcc::dump_manager::dump_start): Replace assignments to + "dump_file" and "alt_dump_file" with calls to set_dump_file and + set_alt_dump_file. + (gcc::dump_manager::dump_finish): Likewise. + * dumpfile.h (alt_dump_file): Delete decl. + (dumps_are_enabled): New variable decl. + (set_dump_file): New function decl. + (dump_enabled_p): Rewrite in terms of new "dumps_are_enabled" + global. + * tree-nested.c (lower_nested_functions): Replace assignments to + "dump_file" with calls to set_dump_file. + +2018-06-28 Eric Botcazou + + * tree-cfg.c (verify_gimple_in_cfg): Call verify_location on the + goto_locus of each outgoing edge of each basic block. + +2018-06-28 Richard Biener + + * dwarf2out.c (decl_scope_table): Remove. + (push_decl_scope): Likewise. + (pop_decl_scope): Likewise. + (gen_type_die_for_member): Do not call push/pop_decl_scope. + (gen_struct_or_union_type_die): Likewise. + (gen_tagged_type_die): Likewise. + (dwarf2out_init): Do not initialize decl_scope_table. + (dwarf2out_c_finalize): Do not free it. + +2018-06-28 Richard Biener + + * dwarf2out.c (gen_subprogram_die): Use is_unit_die when + deciding whether to not re-use a DIE. + +2018-06-28 Richard Biener + + * dwarf2out.c (gen_subprogram_die): Always re-use DIEs with an + DW_AT_abstract_origin attribute. + +2018-06-28 Martin Liska + + * tree-switch-conversion.c (jump_table_cluster::can_be_handled): + Use newly introduced constants. + * tree-switch-conversion.h (struct jump_table_cluster): + Define max_ratio_for_size and max_ratio_for_speed. + +2018-06-28 Martin Liska + + * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): + Add new checking assert to catch invalid state. + (jump_table_cluster::can_be_handled): Handle single case + clusters. + (jump_table_cluster::is_beneficial): Bail out for such case. + (bit_test_cluster::find_bit_tests): + Add new checking assert to catch invalid state. + (bit_test_cluster::can_be_handled): Handle single case + clusters. + (bit_test_cluster::is_beneficial): Bail out for such case. + (switch_decision_tree::analyze_switch_statement): + Fix comment. + +2018-06-28 Martin Liska + + * common.opt: Introduce -completion option. + * gcc.c (driver_handle_option): Handle it. + (driver::main): Print completions if completion + is set. + * opt-suggestions.c (option_proposer::get_completions): + New function. + (option_proposer::suggest_completion): Likewise. + (option_proposer::find_param_completions): Likewise. + (verify_autocompletions): Likewise. + (test_completion_valid_options): Likewise. + (test_completion_valid_params): Likewise. + (in_completion_p): Likewise. + (empty_completion_p): Likewise. + (test_completion_partial_match): Likewise. + (test_completion_garbage): Likewise. + (opt_proposer_c_tests): Likewise. + * opt-suggestions.h: Declare new functions. + * opts.c (common_handle_option): Handle OPT__completion_. + * selftest-run-tests.c (selftest::run_tests): Add + opt_proposer_c_tests. + * selftest.c (assert_str_startswith): New. + * selftest.h (assert_str_startswith): Likewise. + (opt_proposer_c_tests): New. + (ASSERT_STR_STARTSWITH): Likewise. + +2018-06-28 Martin Liska + + * Makefile.in: Add opt-suggestions.o. + * gcc-main.c: Include opt-suggestions.h. + * gcc.c (driver::driver): Likewise. + (driver::~driver): Remove m_option_suggestions. + (driver::build_option_suggestions): Moved to option_proposer. + (driver::suggest_option): Likewise. + (driver::handle_unrecognized_options): Use option_proposer. + * gcc.h (class driver): Add new memver m_option_proposer. + * opt-suggestions.c: New file. + * opt-suggestions.h: New file. + +2018-06-28 Martin Liska + + * vec.h (class auto_string_vec): New (moved from auto_argvec). + (auto_string_vec::~auto_string_vec): Likewise. + +2018-06-28 Eric Botcazou + + * tree-inline.h (struct copy_body_data): Move remapping_type_depth and + prevent_decl_creation_for_types fields up and add reset_location field. + * tree-inline.c (remap_gimple_stmt): Force input_location on the new + statement if id->reset_location is true. + (copy_edges_for_bb): Do not set goto_locus on the new edges if + id->reset_location is true. + (copy_phis_for_bb): Force input_location on the arguments if + id->reset_location is true. + (expand_call_inline): Set id->reset_location if DECL_IGNORED_P + is set on the function to be inlined. + +2018-06-27 Stephan Bergmann + + * doc/invoke.texi (Debugging Options): Add -gsplit-dwarf. + +2018-06-27 Dimitar Dimitrov + + * lra-eliminations.c (update_reg_eliminate): Mark all spanning hard + registers for Pmode. + * lra-lives.c (check_pseudos_live_through_calls): Mark all spanning + hard registers for the clobbered pseudo. + +2018-06-27 Paul Koning + + * common/config/pdp11/pdp11-common.c (pdp11_handle_option): Handle + mutually exclusive options. + * config/pdp11/constraints.md (h): New constraint. + (O): Update definition to match shift code generation. + (D): New constraint. + * config/pdp11/pdp11-modes.def (CCNZ): Define mode. + (CCFP): Remove. + * config/pdp11/pdp11-protos.h (int_no_side_effect_operand): New + function. + (output_jump): Change arguments. + (pdp11_fixed_cc_regs): New function. + (pdp11_cc_mode): Ditto. + (pdp11_expand_shift): Ditto. + (pdp11_assemble_shift): Ditto. + (pdp11_small_shift): Ditto. + (pdp11_branch_cost): Remove. + * config/pdp11/pdp11.c (pdp11_assemble_integer): Remove comments + from output. + (pdp11_register_move_cost): Update for CC registers. + (pdp11_rtx_costs): Add case for LSHIFTRT. + (pdp11_output_jump): Add CCNZ mode conditional branches. + (notice_update_cc_on_set): Remove. + (pdp11_cc_mode): New function. + (simple_memory_operand): Correct pre/post decrement case. + (no_side_effect_operand): New function. + (pdp11_regno_reg_class): Add CC_REGS class. + (pdp11_fixed_cc_regs): New function. + (pdp11_small_shift): New function. + (pdp11_expand_shift): New function to expand shift insns. + (pdp11_assemble_shift): New function to output shifts. + (pdp11_branch_cost): Remove. + (pdp11_modes_tieable_p): Make QI/HI modes tieable. + * config/pdp11/pdp11.h (SIZE_TYPE): Ensure 16-bit type. + (WCHAR_TYPE): Ditto. + (PTRDIFF_TYPE): Ditto. + (ADJUST_INSN_LENGTH): New macro. + (FIXED_REGISTERS): Add CC registers. + (CALL_USED_REGISTERS): Ditto. + (reg_class): Ditto. + (REG_CLASS_NAMES): Ditto. + (REG_CLASS_CONTENTS): Ditto. + (SELECT_CC_MODE): Use new function. + (TARGET_FLAGS_REGNUM): New macro. + (TARGET_FIXED_CONDITION_CODE_REGS): Ditto. + (cc0_reg_rtx): Remove. + (CC_STATUS_MDEP): Remove. + (CC_STATUS_MDEFP_INIT): Remove. + (CC_IN_FPU): Remove. + (NOTICE_UPDATE_CC): Remove. + (REGISTER_NAMES): Add CC registers. + (BRANCH_COST): Change to constant 1. + * config/pdp11/pdp11.md: Rewrite for CCmode condition code + handling. + * config/pdp11/pdp11.opt (mbcopy): Remove. + (mbcopy-builtin): Remove. + (mbranch-cheap): Remove. + (mbranch-expensive): Remove. + * config/pdp11/predicates.md (expand_shift_operand): Update to + match shift code generation. + (ccnz_operator): New predicate. + * doc/invoke.texi (PDP-11 Options): Remove deleted options + -mbcopy, -mbcopy-builtin, -mbranch-cheap, -mbranch-expensive. + Remove non-existent option -mabshi, -mno-abshi. Document mutually + exclusive options. + * doc/md.texi (PDP-11): Document new D and h constraints. Update + description of O constraint. + +2018-06-27 Jeff Law + Austin Law + + * config/v850/v850.md (addsi3_set_flags): New pattern. + (subsi3_set_flags, negsi2_set_flags, andsi3_set_flags): Likewise. + (iorsi3_set_flags, xorsi3_set_flags, one_cmplsi2_set_flags): Likewise. + (zero_extendhisi2_v850_set_flags): Likewise. + (zero_extendqisi2_v850_set_flags): Likewise. + (ashlsi3_set_flags, ashlsi3_v850e2_set_flags): Likewise. + (lshrsi3_set_flags, lshrsi3_v850e2_set_flags): Likewise. + (ashrsi3_set_flags, ashrsi3_v850e2_set_flags): Likewise. + + * config/v850/v850-protos.h (notice_update_cc): Remove. + * config/v850/v850.c (v850_compare_op0, v850_compare_op1): Remove. + (v850_print_operand): Handle 'D' and "d". + (v850_select_cc_mode): Remove ATTRIBUTE_UNUSED for last argument. + Add handling of arithmetic/logical operations compared against zero. + (v850_gen_float_compare): Remove ATTRIBUTE_UNUSED for last argument. + Do not look at v850_compare_op, instead get mode from last argument. + (v850_gen_compare): Remove + (increment_stack): Use addsi3_clobber_flags to avoid splitting failure + after reload for prologue insns. + (expand_prologue): Account for CLOBBER of CC_REGNUM in various + patterns. + (construct_save_jarl): Likewise. + (TARGET_FLAGS_REGNUM): Define. + * config/v850/v850.h (v850_compare_op0, v850_compare_op1): Remove. + (NOTICE_UPDATE_CC): Remove. + * config/v850/v850.md (v850_tst1): Use (reg:CCZ CC_REGNUM) rather + than cc0. Conditionalize on reload_completed. + (cmpsi_insn, setfcc_insn): Likewise. + (tst1 splitter): Turn into define_and_split which sets the flags + after reload. + (cstoresi4, cbranchsf4, cbranchdf4, cbranchsi4_insn): Likewise. + (cbranchsi4, branch_normal, branch_invert): Do not expose cc0 here. + (cstoresf4, cstoredf4): Clobber the flags. + (cmpsi, cmpsf, cmpdf): Remove expanders. + (setf_insn): Remove pattern. + (addsi3): Turn into define_and_split which clobbers the flags after + reload and a suitable pattern (addsi3_clobber_flags) for use after + reload. + (subsi3, negsi2, andsi3, iorsi3, xorsi3, one_cmplsi2) Likewise. + (ashlsi3, ashlsi3_v850e2, lshrsi3, lsh4si3_v850e2): Likewise. + (ashrsi3, ashrsi3_v850e2): Likewise. + (bins): Clobber the flags. + (movsicc_normal_cc, movsicc_normal, movsicc_tst1): Likewise. + (movsicc_tst1_revesed, sasf, swap and rotate patterns): Likewise. + (fix_loop_counter, call_internal_short, call_internal_long): Likewise. + (call_value_internal_short, call_value_internal_long): Likewise. + (callt_save_interrupt, callt_return_interrupt): Likewise. + (save_interrupt, return_interrupt): Likewise. + (callt_save_all_interrupt, save_all_interrupt): Likewise. + (_save_all_interrupt, callt_restore_all_interrupt): Likewise. + (restore_all_interrupt, _restore_all_interrupt): Likewise. + (All FP comparisons): Only allow after reload has completed. + (trfsr): Likewise. + (divh, divhu): Tweak output template. + (branch_z_normal, branch_z_invert): Remove + (branch_nz_normal, branch_nz_invert): Likewise. + (extendhisi_insn, extendqisi_insn): Do not clobber flags. + + * config/v850/v850-modes.def (CCZ, CCNZ): Add new modes. + * config/v850/v850.c (notice_update_cc): Remove. + * config/v850/v850.h (CC_OVERFLOW_UNUSABLE): Remove + (CC_NO_CARRY): Likewise. + (NOTICE_UPDATE_CC): Define to nothing. + * config/v850/v850.md: Remove block comment on cc0 handling + Remove "cc" attribute from all patterns. Remove cc_status handling + from all patterns. Minor formatting fixes. + +2018-06-27 Kyrylo Tkachov + + * config/aarch64/aarch64-cores.def (cortex-a76): New entry. + (cortex-a76.cortex-a55): Likewise. + * config/aarch64/aarch64-tune.md: Regenerate. + * doc/invoke.texi (AArch64 Options): Document cortex-a76 and + cortex-a76.cortex-a55. + +2018-06-27 Jeff Law + + * config/v850/t-v850 (MULTILIB_OPTIONS): Remove 8byte-align. + (MULTILIB_DIRNAMES): Similarly. + +2018-06-27 Eric Botcazou + + * gimple.h (gimple_return_retbnd): Delete. + (gimple_return_set_retbnd): Likewise. + * cgraphunit.c (cgraph_node::expand_thunk): Remove call to + gimple_return_set_retbnd. + * gimple-pretty-print.c (dump_gimple_return): Remove call to + gimple_return_retbnd and adjust. + * tree-inline.h (struct copy_body_data): Remove retbnd field. + * tree-inline.c (remap_gimple_stmt): Remove handling of retbnd. + Explicitly return NULL in a couple more cases. Move assertion + on debug statements and remove unreachable code. + (reset_debug_binding): Do not test id->retbnd. + (expand_call_inline): Do not set it. + +2018-06-27 Rasmus Villemoes + + * configure.ac: Add --disable-gcov option. + * configure: Regenerate. + * Makefile.in: Honour @enable_gcov@. + * doc/install.texi: Document --disable-gcov. + +2018-06-27 Kyrylo Tkachov + + * config/arm/arm-cpus.in (cortex-a76): New entry. + (cortex-a76.cortex-a55): Likewise. + * config/arm/arm-tables.opt: Regenerate. + * config/arm/arm-tune.md: Likewise. + * config/arm/driver-arm.c (arm_cpu_table): Add Cortex-A76 entry. + * doc/invoke.texi (ARM Options): Document cortex-a76 and + cortex-a76.cortex-a55. + +2018-06-27 Tamar Christina + + PR target/85769 + * config/aarch64/aarch64.md (*movhf_aarch64): Add dup v0.4h pattern. + +2018-06-27 Siddhesh Poyarekar + + * config/aarch64/aarch64.h (CALL_USE_REGISTERS): Fix obsolete + comment. + (EPILOGUE_USES): Likewise. + +2018-06-26 Eric Botcazou + + * tree-inline.c (remap_location): New function extracted from... + (copy_edges_for_bb): Add ID parameter. Remap goto_locus. + (copy_phis_for_bb): ...here. Call remap_location. + (copy_cfg_body): Adjust call to copy_edges_for_bb. + +2018-06-26 Aaron Sawdey + + * config/rs6000/rs6000-string.c (expand_block_clear): Don't use + unaligned vsx for 16B memset. + +2018-06-26 Segher Boessenkool + + PR target/86285 + * config/rs6000/rs6000.c (rs6000_init_builtins): Do not set + ieee128_float_type_node to long_double_type_node unless + TARGET_LONG_DOUBLE_128 is set. + +2018-06-26 David Malcolm + + * cfgloop.c (get_loop_location): Convert return type from + location_t to dump_user_location_t, replacing INSN_LOCATION lookups + by implicit construction from rtx_insn *, and using + dump_user_location_t::from_function_decl for the fallback case. + * cfgloop.h (get_loop_location): Convert return type from + location_t to dump_user_location_t. + * cgraphunit.c (walk_polymorphic_call_targets): Update call to + dump_printf_loc to pass in a dump_location_t rather than a + location_t, via the gimple stmt. + * coverage.c (get_coverage_counts): Update calls to + dump_printf_loc to pass in dump_location_t rather than a + location_t. + * doc/optinfo.texi (Dump types): Convert example of + dump_printf_loc from taking "locus" to taking "insn". Update + description of the "_loc" calls to cover dump_location_t. + * dumpfile.c: Include "backend.h", "gimple.h", "rtl.h", and + "selftest.h". + (dump_user_location_t::dump_user_location_t): New constructors, + from gimple *stmt and rtx_insn *. + (dump_user_location_t::from_function_decl): New function. + (dump_loc): Make static. + (dump_gimple_stmt_loc): Convert param "loc" from location_t to + const dump_location_t &. + (dump_generic_expr_loc): Delete. + (dump_printf_loc): Convert param "loc" from location_t to + const dump_location_t &. + (selftest::test_impl_location): New function. + (selftest::dumpfile_c_tests): New function. + * dumpfile.h: Include "profile-count.h". + (class dump_user_location_t): New class. + (struct dump_impl_location_t): New struct. + (class dump_location_t): New class. + (dump_printf_loc): Convert 2nd param from source_location to + const dump_location_t &. + (dump_generic_expr_loc): Delete. + (dump_gimple_stmt_loc): Convert 2nd param from source_location to + const dump_location_t &. + * gimple-fold.c (fold_gimple_assign): Update call to + dump_printf_loc to pass in a dump_location_t rather than a + location_t, via the gimple stmt. + (gimple_fold_call): Likewise. + * gimple-loop-interchange.cc + (loop_cand::analyze_iloop_reduction_var): Update for change to + check_reduction_path. + (tree_loop_interchange::interchange): Update for change to + find_loop_location. + * graphite-isl-ast-to-gimple.c (scop_to_isl_ast): Update for + change in return-type of find_loop_location. + (graphite_regenerate_ast_isl): Likewise. + * graphite-optimize-isl.c (optimize_isl): Likewise. + * graphite.c (graphite_transform_loops): Likewise. + * ipa-devirt.c (ipa_devirt): Update call to dump_printf_loc to + pass in a dump_location_t rather than a location_t, via the + gimple stmt. + * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. + * ipa.c (walk_polymorphic_call_targets): Likewise. + * loop-unroll.c (report_unroll): Convert "locus" param from + location_t to dump_location_t. + (decide_unrolling): Update for change to get_loop_location's + return type. + * omp-grid.c (struct grid_prop): Convert field "target_loc" from + location_t to dump_user_location_t. + (grid_find_single_omp_among_assignments_1): Updates calls to + dump_printf_loc to pass in a dump_location_t rather than a + location_t, via the gimple stmt. + (grid_parallel_clauses_gridifiable): Convert "tloc" from + location_t to dump_location_t. Updates calls to dump_printf_loc + to pass in a dump_location_t rather than a location_t, via the + gimple stmt. + (grid_inner_loop_gridifiable_p): Likewise. + (grid_dist_follows_simple_pattern): Likewise. + (grid_gfor_follows_tiling_pattern): Likewise. + (grid_target_follows_gridifiable_pattern): Likewise. + (grid_attempt_target_gridification): Convert initialization + of local "grid" from memset to zero-initialization; FIXME: does + this require C++11? Update call to dump_printf_loc to pass in a + optinfo_location rather than a location_t, via the gimple stmt. + * profile.c (read_profile_edge_counts): Updates call to + dump_printf_loc to pass in a dump_location_t rather than a + location_t + (compute_branch_probabilities): Likewise. + * selftest-run-tests.c (selftest::run_tests): Call + dumpfile_c_tests. + * selftest.h (dumpfile_c_tests): New decl. + * tree-loop-distribution.c (pass_loop_distribution::execute): + Update for change in return type of find_loop_location. + * tree-parloops.c (parallelize_loops): Likewise. + * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Convert + "locus" from location_t to dump_user_location_t. + (canonicalize_loop_induction_variables): Likewise. + * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_loop): Update + for change in return type of find_loop_location. + * tree-ssa-loop-niter.c (number_of_iterations_exit): Update call + to dump_printf_loc to pass in a dump_location_t rather than a + location_t, via the stmt. + * tree-ssa-sccvn.c (eliminate_dom_walker::before_dom_children): + Likewise. + * tree-vect-loop-manip.c (find_loop_location): Convert return + type from source_location to dump_user_location_t. + (vect_do_peeling): Update for above change. + (vect_loop_versioning): Update for change in type of + vect_location. + * tree-vect-loop.c (check_reduction_path): Convert "loc" param + from location_t to dump_user_location_t. + (vect_estimate_min_profitable_iters): Update for change in type + of vect_location. + * tree-vect-slp.c (vect_print_slp_tree): Convert param "loc" from + location_t to dump_location_t. + (vect_slp_bb): Update for change in type of vect_location. + * tree-vectorizer.c (vect_location): Convert from source_location + to dump_user_location_t. + (try_vectorize_loop_1): Update for change in vect_location's type. + (vectorize_loops): Likewise. + (increase_alignment): Likewise. + * tree-vectorizer.h (vect_location): Convert from source_location + to dump_user_location_t. + (find_loop_location): Convert return type from source_location to + dump_user_location_t. + (check_reduction_path): Convert 1st param from location_t to + dump_user_location_t. + * value-prof.c (check_counter): Update call to dump_printf_loc to + pass in a dump_user_location_t rather than a location_t; update + call to error_at for change in type of "locus". + (check_ic_target): Update call to dump_printf_loc to + pass in a dump_user_location_t rather than a location_t, via the + call_stmt. + +2018-06-26 Robin Dapp + + * config/s390/s390.h (enum processor_flags): Do not use + default tune parameter when -march was specified. + +2018-06-26 Jakub Jelinek + + PR target/86314 + * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2s): + Check reg_overlap_mentioned_p in addition to reg_set_p with the same + operands. + +2018-06-26 Richard Biener + + PR tree-optimization/86287 + PR bootstrap/86316 + * tree-vect-loop.c (vect_transform_loop_stmt): Fix read-after-free. + (vect_analyze_loop): Initialize n_stmts. + +2018-06-26 Richard Biener + + PR middle-end/86271 + * fold-const.c (fold_convertible_p): Pointer extension + isn't valid. + +2018-06-26 Alexandre Oliva + + PR debug/86064 + * dwarf2out.c (loc_list_has_views): Adjust comments. + (dw_loc_list): Split single cross-partition range with + nonzero locview. + +2018-06-25 Jeff Law + + * common/config/v850/v850-common.c (TARGET_DEFAULT_TARGET_FLAGS): Turn + on -mbig-switch by default. + + * config/v850/predicates.md (const_float_1_operand): Fix match_code + test. + (const_float_0_operand): Remove unused predicate. + * config/v850/v850.md (define_constants): Remove UNSPEC_LOOP. + (define_c_enum unspec): Add LOOP, RCP and RSQRT constants. + (recipsf2): New expander. Original pattern now called + (recipsf2_insn). + (recipdf2, recipdf2_insn): Similarly. + (rsqrtsf2, rsqrtsf2_insn): Similarly + (rsqrtdf2, rsqrtdf2_insn): Similarly + +2018-06-26 Gerald Pfeifer + + * ginclude/stddef.h: Remove an obsolete comment on FreeBSD 5. + Simplify logic for FreeBSD (twice). + +2018-06-25 Martin Sebor + + PR tree-optimization/86204 + * tree-ssa-strlen.c (handle_builtin_strlen): Avoid storing + a strnlen result if it's less than the length of the string. + +2018-06-25 Martin Sebor + + PR tree-optimization/85700 + * gimple-fold.c (gimple_fold_builtin_strncat): Adjust comment. + * tree-ssa-strlen.c (is_strlen_related_p): Handle integer subtraction. + (maybe_diag_stxncpy_trunc): Distinguish strncat from strncpy. + +2018-06-25 Martin Sebor + + * doc/extend.texi (Zero-length arrays): Update and clarify. + +2018-06-25 Michael Meissner + + * config.gcc (powerpc64le*): Revert January 16th, 2018 patch that + added IEEE/IBM long double multilib support on PowerPC little + endian Linux systems. + * config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Likewise. + (MULTILIB_DEFAULTS): Likewise. + * config/rs6000/rs6000.c (rs6000_option_override_internal): + Likewise. + * config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Likewise. + * config/rs6000/t-ldouble-linux64le-ibm: Delete, no longer used. + * config/rs6000/t-ldouble-linux64le-ieee: Delete, no longer used. + +2018-06-25 Alexander Monakov + + PR middle-end/86311 + * sort.cc (REORDER_23): Avoid memcpy with same destination and source. + (REORDER_45): Likewise. + +2018-06-25 Jeff Law + + * config/v850/v850.md (divmodhi4): Make sure to sign extend the + dividend to 32 bits. Adjust length. + (udivmodhi4): Cleanup output template. Fix length. + +2018-06-25 Carl Love + + * config/rs6000/vsx.md: Change word selector to prefered location. + +2018-06-25 Richard Biener + + PR tree-optimization/86304 + * tree-vectorizer.c (vectorize_loops): Walk over new possibly + epilogue-if-converted loops as well. + +2018-06-25 Jan Hubicka + + * lto-section-out.c (lto_begin_section): Do not print section + name for noaddr and unnumbered dumps. + +2018-06-25 Richard Biener + + * tree-vectorizer.h (struct vec_info_shared): New structure + with parts split out from struct vec_info and loop_nest from + struct _loop_vec_info. + (struct vec_info): Adjust accordingly. + (struct _loop_vec_info): Likewise. + (LOOP_VINFO_LOOP_NEST): Adjust. + (LOOP_VINFO_DATAREFS): Likewise. + (LOOP_VINFO_DDRS): Likewise. + (struct _bb_vec_info): Likewise. + (BB_VINFO_DATAREFS): Likewise. + (BB_VINFO_DDRS): Likewise. + (struct _stmt_vec_info): Add dr_aux member. + (DR_VECT_AUX): Adjust to refer to member of DR_STMTs vinfo. + (DR_MISALIGNMENT_UNINITIALIZED): New. + (set_dr_misalignment): Adjust. + (dr_misalignment): Assert misalign isn't DR_MISALIGNMENT_UNINITIALIZED. + (vect_analyze_loop): Adjust prototype. + (vect_analyze_loop_form): Likewise. + * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): + Compute dependences lazily. + (vect_record_base_alignments): Use shared datarefs/ddrs. + (vect_verify_datarefs_alignment): Likewise. + (vect_analyze_data_refs_alignment): Likewise. + (vect_analyze_data_ref_accesses): Likewise. + (vect_analyze_data_refs): Likewise. + * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Add + constructor parameter for shared part. + (vect_analyze_loop_form): Pass in shared part and adjust. + (vect_analyze_loop_2): Pass in storage for the number of + stmts. Move loop nest finding to the caller. Compute + datarefs lazily. + (vect_analyze_loop): Pass in shared part. + (vect_transform_loop): Verify shared datarefs are unchanged. + * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Add + constructor parameter for shared part. + (vect_slp_analyze_bb_1): Pass in shared part and adjust. + (vect_slp_bb): Verify shared datarefs are unchanged before + transform. + * tree-vect-stmts.c (ensure_base_align): Adjust for DR_AUX + change. + (new_stmt_vec_info): Initialize DR_AUX misalignment to + DR_MISALIGNMENT_UNINITIALIZED. + * tree-vectorizer.c (vec_info::vec_info): Add constructor + parameter for shared part. + (vec_info::~vec_info): Adjust. + (vec_info_shared::vec_info_shared): New. + (vec_info_shared::~vec_info_shared): Likewise. + (vec_info_shared::save_datarefs): Likewise. + (vec_info_shared::check_datarefs): Likewise. + (try_vectorize_loop_1): Construct shared part live for analyses + of a single loop for multiple vector sizes. + * tree-parloops.c (gather_scalar_reductions): Adjust. + +2018-06-25 Richard Biener + + * tree-vect-data-refs.c (vect_find_stmt_data_reference): Modify + DR for SIMD lane accesses here and mark DR with (void *)-1 aux. + (vect_analyze_data_refs): Remove similar code from here and + simplify accordingly. + +2018-06-25 Richard Biener + + * tree-vect-data-refs.c (vect_check_gather_scatter): Fail + for reverse storage order accesses rather than asserting + they cannot happen here. + +2018-06-25 Tom de Vries + + PR debug/86257 + * config/i386/i386.md (define_insn "*tls_global_dynamic_64_"): + Use data16 instead of .byte for insn prefix. + +2018-06-25 Andreas Krebbel + + PR C++/86082 + * parser.c (make_char_string_pack): Pass this literal chars + through cpp_interpret_string. + (cp_parser_userdef_numeric_literal): Check the result of + make_char_string_pack. + +2018-06-24 Maya Rashish + + * ginclude/stddef.h: Simplify conditions around avoiding + re-definition of __size_t. + +2018-06-22 Jan Hubicka + + * lto-streamer-out.c (tree_is_indexable): Make LABEL_DECL nonindexable + unless it is forced or nonlocal; assert that we stream no IMPORTED_DECL. + +2018-06-22 Maya Rashish + + * doc/invoke.texi (mno-fancy-math-387): Update for changes + made to OpenBSD and NetBSD through the years. + +2018-06-22 Kelvin Nilsen + + * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change + behavior of vec_pack (vector double, vector double) to match + behavior of vec_float2 (vector double, vector double). + +2018-06-22 Olivier Hainque + + * gimplify.c (gimplify_function_tree): Prevent creation + of a trampoline for the address of the current function + passed to entry/exit instrumentation hooks. + +2018-06-22 Aaron Sawdey + + PR target/86222 + * config/rs6000/rs6000-string.c (expand_strn_compare): Handle -m32 + correctly. + +2018-06-22 Martin Liska + + PR tree-optimization/86263 + * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): + Bail out if is_enabled is false. + * tree-switch-conversion.h (jump_table_cluster::is_enabled): + New declaration. + (jump_table_cluster::is_enabled): New function. + +2018-06-22 Jan Hubicka + + * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream + BINFO_BASE_ACCESSES and BINFO_VPTR_FIELD. + * tree-streamer-in.c (streamer_read_tree_bitfields): Likewise. + (lto_input_ts_binfo_tree_pointers): Likewise. + * tree-streamer-out.c (streamer_write_tree_bitfields, + write_ts_binfo_tree_pointers): Likewise. + * tree.c (free_lang_data_in_binfo): Clear BINFO_VPTR_FIELD. + +2018-06-22 Jan Hubicka + + * tree.c (free_lang_data_in_type): Free all TYPE_VFIELDs. + +2018-06-22 Martin Liska + + * symbol-summary.h (get): Make it pure and inline move + functionality from ::get function. + (get): Remove and inline into ::get and ::get_create. + (get_create): Move code from ::get function. + +2018-06-22 Rainer Orth + + PR target/85994 + * config/i386/sol2.h (CPP_SPEC): Don't pass -P for + -x assembler-with-cpp. + +2018-06-22 Rainer Orth + + * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define + _FILE_OFFSET_BITS=64 for C++. + +2018-06-21 Michael Meissner + + * config/rs6000/rs6000.md (extendtfif2): Add missing 128-bit + conversion insn that shows up when pr85657-3.c is compiled using + IEEE 128-bit long double. + (neg2_internal): Use the correct mode to check whether the + mode is IBM extended. + * config/rs6000/rs6000.c (init_float128_ieee): Prevent complex + multiply and divide external functions from being created more + than once. + +2018-06-21 Eric Botcazou + + * cfgrtl.c (fixup_reorder_chain): Do not emit NOPs in DECL_IGNORED_P + functions. + (rtl_merge_blocks): Likewise. Do not emit a NOP if the location of + the edge can be forwarded. + (cfg_layout_merge_blocks): Likewise. + +2018-06-21 Eric Botcazou + + * except.c (finish_eh_generation): Commit edge insertions only after + the EH edges have been redirected from post-landing to landing pads. + +2018-06-21 Eric Botcazou + + * tree-nested.c (get_frame_type): Use create_tmp_var_raw instead of + create_tmp_var_for to create the FRAME decl. + (finalize_nesting_tree_1): Do not unchain the FRAME decl. + +2018-06-21 Eric Botcazou + + * tree-inline.c (copy_edges_for_bb): Minor tweak. + (maybe_move_debug_stmts_to_successors): Also reset the locus of the + debug statement when resetting its value. + (expand_call_inline): Copy the locus of the call onto the assignment + of the return value, if any. Use local variable in more cases. + +2018-06-21 Martin Liska + + * ipa-pure-const.c (propagate_nothrow): Use + funct_state_summaries->get. + (dump_malloc_lattice): Likewise. + (propagate_malloc): Likewise. + +2018-06-21 Richard Biener + + * lto-streamer-out.c (DFS::DFS_write_tree_body): Update outdated + comment. Follow BLOCK_ABSTRACT_ORIGIN unconditionally. + * tree-streamer-in.c (lto_input_ts_block_tree_pointers): Update + comment. + * tree-streamer-out.c (write_ts_block_tree_pointers): Stream + BLOCK_ABSTRACT_ORIGIN unconditionally. + +2018-06-21 David Malcolm + + * ipa-cp.c (ipcp_driver): Set edge_clone_summaries to NULL after + deleting it. + * ipa-reference.c (ipa_reference_c_finalize): Delete + ipa_ref_opt_sum_summaries and set it to NULL. + +2018-06-21 Tom de Vries + + PR tree-optimization/85859 + * tree-ssa-tail-merge.c (stmt_local_def): Copy gimple_is_call + test with comment from bb_no_side_effects_p. + +2018-06-21 Richard Biener + + PR tree-optimization/86232 + * tree-ssa-loop-niter.c (number_of_iterations_popcount): Adjust + max for constant niter. + +2018-06-21 Andre Vieira + + * config/aarch64/aarch64-simd.md + (*aarch64_crypto_aesv16qi_xor_combine): New. + +2018-06-21 Andre Vieira + + * config/aarch64/aarch64-simd.md (aarch64_crypto_aesv16qi): + Make opernads of the unspec commutative. + +2018-06-21 Richard Biener + + * tree-data-ref.c (dr_step_indicator): Handle NULL DR_STEP. + * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr): + Avoid calling vect_mark_for_runtime_alias_test with gathers or scatters. + (vect_analyze_data_ref_dependence): Re-order checks to deal with + NULL DR_STEP. + (vect_record_base_alignments): Do not record base alignment + for gathers or scatters. + (vect_compute_data_ref_alignment): Drop return value that is always + true. Bail out early for gathers or scatters. + (vect_enhance_data_refs_alignment): Bail out early for gathers + or scatters. + (vect_find_same_alignment_drs): Likewise. + (vect_analyze_data_refs_alignment): Remove dead code. + (vect_slp_analyze_and_verify_node_alignment): Likewise. + (vect_analyze_data_refs): For possible gathers or scatters do + not create an alternate DR, just check their possible validity + and mark them. Adjust DECL_NONALIASED handling to not rely + on DR_BASE_ADDRESS. + * tree-vect-loop-manip.c (vect_update_inits_of_drs): Do not + update inits of gathers or scatters. + * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): + Also copy gather/scatter flag to pattern vinfo. + +2018-06-20 Kelvin Nilsen + + * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change + behavior of vec_packsu (vector unsigned long long, vector unsigned + long long) to match behavior of vec_packs with same signature. + +2018-06-20 Chung-Lin Tang + Thomas Schwinge + Cesar Philippidis + + * gimplify.c (gimplify_scan_omp_clauses): Add support for + OMP_CLAUSE_{IF_PRESENT,FINALIZE}. + (gimplify_adjust_omp_clauses): Likewise. + (gimplify_oacc_declare_1): Add support for GOMP_MAP_RELEASE, remove + support for GOMP_MAP_FORCE_{ALLOC,TO,FROM,TOFROM}. + (gimplify_omp_target_update): Update handling of acc update and + enter/exit data. + * omp-low.c (install_var_field): Remove unused parameter + base_pointers_restrict. + (scan_sharing_clauses): Remove base_pointers_restrict parameter. + Update call to install_var_field. Handle OMP_CLAUSE_{IF_PRESENT, + FINALIZE} + (omp_target_base_pointers_restrict_p): Delete. + (scan_omp_target): Update call to scan_sharing_clauses. + * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_{IF_PRESENT, + FINALIZE}. + * tree-nested.c (convert_nonlocal_omp_clauses): Handle + OMP_CLAUSE_{IF_PRESENT,FINALIZE}. + (convert_local_omp_clauses): Likewise. + * tree-pretty-print.c (dump_omp_clause): Likewise. + * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_{IF_PRESENT, + FINALIZE}. + (omp_clause_code_name): Likewise. + +2018-06-20 Jakub Jelinek + + PR debug/86194 + * var-tracking.c (use_narrower_mode_test): Check if shift amount can + be narrowed. + + PR tree-optimization/86231 + * tree-vrp.c (union_ranges): For ( [ ) ] or ( )[ ] range and + anti-range don't overwrite *vr0min before using it to compute *vr0max. + +2018-06-20 Tom de Vries + + PR tree-optimization/86097 + * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Also convert *nit to + iv type if signedness of iv type is not the same as that of *nit. + +2018-06-20 Jakub Jelinek + + * cfgrtl.c (rtl_verify_edges): Formatting fix. If bb->preds has any + EDGE_EH edges, verify they are all EDGE_EH. + +2018-06-20 Maya Rashish + + * ginclude/stddef.h: Limit #include to NetBSD. + +2018-06-20 Kyrylo Tkachov + + * config/aarch64/aarch64-tuning-flags.def (no_ldp_stp_qregs): New. + * config/aarch64/aarch64.c (xgene1_tunings): Add + AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS to tune_flags. + (aarch64_mode_valid_for_sched_fusion_p): + Allow 16-byte modes. + (aarch64_classify_address): Allow 16-byte modes for load_store_pair_p. + * config/aarch64/aarch64-ldpstp.md: Add peepholes for LDP STP of + 128-bit modes. + * config/aarch64/aarch64-simd.md (load_pair): + New pattern. + (vec_store_pair): Likewise. + * config/aarch64/iterators.md (VQ2): New mode iterator. + +2018-06-20 Martin Liska + + * tree-switch-conversion.c (jump_table_cluster::can_be_handled): + Change default ratio from 10 to 8. + +2018-06-20 Martin Liska + + * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): + New. + (bit_test_cluster::find_bit_tests): Likewise. + (switch_decision_tree::analyze_switch_statement): Find clusters. + * tree-switch-conversion.h (struct jump_table_cluster): Document + hierarchy. + +2018-06-20 Martin Liska + + * tree-switch-conversion.c (switch_conversion::collect): + Record m_uniq property. + (switch_conversion::expand): Bail out for special conditions. + (group_cluster::~group_cluster): New. + (group_cluster::group_cluster): Likewise. + (group_cluster::dump): Likewise. + (jump_table_cluster::emit): New. + (switch_decision_tree::fix_phi_operands_for_edges): New. + (struct case_node): Remove struct. + (jump_table_cluster::can_be_handled): New. + (case_values_threshold): Moved to header. + (reset_out_edges_aux): Likewise. + (jump_table_cluster::is_beneficial): New. + (bit_test_cluster::can_be_handled): Likewise. + (add_case_node): Remove. + (bit_test_cluster::is_beneficial): New. + (case_bit_test::cmp): New. + (bit_test_cluster::emit): New. + (expand_switch_as_decision_tree_p): Remove. + (bit_test_cluster::hoist_edge_and_branch_if_true): New. + (fix_phi_operands_for_edge): Likewise. + (switch_decision_tree::analyze_switch_statement): New. + (compute_cases_per_edge): Move ... + (switch_decision_tree::compute_cases_per_edge): ... here. + (try_switch_expansion): Likewise. + (switch_decision_tree::try_switch_expansion): Likewise. + (record_phi_operand_mapping): Likewise. + (switch_decision_tree::record_phi_operand_mapping): Likewise. + (emit_case_decision_tree): Likewise. + (switch_decision_tree::emit): Likewise. + (balance_case_nodes): Likewise. + (switch_decision_tree::balance_case_nodes): Likewise. + (dump_case_nodes): Likewise. + (switch_decision_tree::dump_case_nodes): Likewise. + (emit_jump): Likewise. + (switch_decision_tree::emit_jump): Likewise. + (emit_cmp_and_jump_insns): Likewise. + (switch_decision_tree::emit_cmp_and_jump_insns): Likewise. + (emit_case_nodes): Likewise. + (switch_decision_tree::emit_case_nodes): Likewise. + (conditional_probability): Remove. + * tree-switch-conversion.h (enum cluster_type): New. + (PRINT_CASE): New. + (struct cluster): Likewise. + (cluster::cluster): Likewise. + (struct simple_cluster): Likewise. + (simple_cluster::simple_cluster): Likewise. + (struct group_cluster): Likewise. + (struct jump_table_cluster): Likewise. + (struct bit_test_cluster): Likewise. + (struct min_cluster_item): Likewise. + (struct case_tree_node): Likewise. + (case_tree_node::case_tree_node): Likewise. + (jump_table_cluster::case_values_threshold): Likewise. + (struct case_bit_test): Likewise. + (struct switch_decision_tree): Likewise. + (struct switch_conversion): Likewise. + (switch_decision_tree::reset_out_edges_aux): Likewise. + +2018-06-20 Martin Liska + + * tree-switch-conversion.c (MAX_CASE_BIT_TESTS): Remove. + (hoist_edge_and_branch_if_true): Likewise. + (expand_switch_using_bit_tests_p): Likewise. + (struct case_bit_test): Likewise. + (case_bit_test_cmp): Likewise. + (emit_case_bit_tests): Likewise. + (switch_conversion::switch_conversion): New class. + (struct switch_conv_info): Remove old struct. + (collect_switch_conv_info): More to ... + (switch_conversion::collect): ... this. + (check_range): Likewise. + (switch_conversion::check_range): Likewise. + (check_all_empty_except_final): Likewise. + (switch_conversion::check_all_empty_except_final): Likewise. + (check_final_bb): Likewise. + (switch_conversion::check_final_bb): Likewise. + (create_temp_arrays): Likewise. + (switch_conversion::create_temp_arrays): Likewise. + (free_temp_arrays): Likewise. + (gather_default_values): Likewise. + (switch_conversion::gather_default_values): Likewise. + (build_constructors): Likewise. + (switch_conversion::build_constructors): Likewise. + (constructor_contains_same_values_p): Likewise. + (switch_conversion::contains_same_values_p): Likewise. + (array_value_type): Likewise. + (switch_conversion::array_value_type): Likewise. + (build_one_array): Likewise. + (switch_conversion::build_one_array): Likewise. + (build_arrays): Likewise. + (switch_conversion::build_arrays): Likewise. + (gen_def_assigns): Likewise. + (switch_conversion::gen_def_assigns): Likewise. + (prune_bbs): Likewise. + (switch_conversion::prune_bbs): Likewise. + (fix_phi_nodes): Likewise. + (switch_conversion::fix_phi_nodes): Likewise. + (gen_inbound_check): Likewise. + (switch_conversion::gen_inbound_check): Likewise. + (process_switch): Use the newly created class. + (switch_conversion::expand): New. + (switch_conversion::~switch_conversion): New. + * tree-switch-conversion.h: New file. + +2018-06-20 Richard Sandiford + + * tree-vectorizer.h (NUM_PATTERNS, vect_recog_func_ptr): Move to + tree-vect-patterns.c. + * tree-vect-patterns.c (vect_supportable_direct_optab_p): New function. + (vect_recog_dot_prod_pattern): Use it. Remove the type_in argument. + (vect_recog_sad_pattern): Likewise. + (vect_recog_widen_sum_pattern): Likewise. + (vect_recog_pow_pattern): Likewise. Check for a null vectype. + (vect_recog_widen_shift_pattern): Remove the type_in argument. + (vect_recog_rotate_pattern): Likewise. + (vect_recog_mult_pattern): Likewise. + (vect_recog_vector_vector_shift_pattern): Likewise. + (vect_recog_divmod_pattern): Likewise. + (vect_recog_mixed_size_cond_pattern): Likewise. + (vect_recog_bool_pattern): Likewise. + (vect_recog_mask_conversion_pattern): Likewise. + (vect_try_gather_scatter_pattern): Likewise. + (vect_recog_widen_mult_pattern): Likewise. Check for a null vectype. + (vect_recog_over_widening_pattern): Likewise. + (vect_recog_gather_scatter_pattern): Likewise. + (vect_recog_func_ptr): Move from tree-vectorizer.h + (vect_vect_recog_func_ptrs): Move further down the file. + (vect_recog_func): Likewise. Remove the third argument. + (NUM_PATTERNS): Define based on vect_vect_recog_func_ptrs. + (vect_pattern_recog_1): Expect the pattern function to do any + necessary target tests. Also expect it to provide a vector type. + Remove the type_in handling. + +2018-06-20 Richard Sandiford + + * tree-vect-patterns.c (vect_pattern_detected): New function. + (vect_recog_dot_prod_patternm, vect_recog_sad_pattern) + (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern) + (vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern + (vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern) + (vect_recog_mult_pattern, vect_recog_divmod_pattern) + (vect_recog_mixed_size_cond_pattern, vect_recog_bool_pattern) + (vect_recog_mask_conversion_pattern) + (vect_try_gather_scatter_pattern): Likewise. + +2018-06-20 Richard Sandiford + + * tree-vect-patterns.c (vect_get_internal_def): New function. + (vect_recog_dot_prod_pattern, vect_recog_sad_pattern) + (vect_recog_vector_vector_shift_pattern, check_bool_pattern) + (search_type_for_mask_1): Use it. + +2018-06-20 Richard Sandiford + + * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Remove + redundant WIDEN_SUM_EXPR handling. + (vect_recog_sad_pattern): Likewise. + +2018-06-20 Richard Sandiford + + * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Remove + redundant check that the types of a PLUS_EXPR or MULT_EXPR agree. + (vect_recog_sad_pattern): Likewise PLUS_EXPR, ABS_EXPR and MINUS_EXPR. + (vect_recog_widen_mult_pattern): Likewise MULT_EXPR. + (vect_recog_widen_sum_pattern): Likewise PLUS_EXPR. + +2018-06-20 Richard Sandiford + + * tree-vect-stmts.c (vectorizable_call): Make sure that we + use the stmt_vec_info of the original bb statement for the + new zero assignment, even if the call is part of a pattern. + +2018-06-20 Richard Sandiford + + * tree-vectorizer.h (_stmt_vec_info): Note above pattern_def_seq + that the sequence is attached to the original statement rather + than the pattern statement. + * tree-vect-loop.c (vect_determine_vf_for_stmt): Take the + PATTERN_DEF_SEQ from the original statement rather than + the main pattern statement. + * tree-vect-stmts.c (free_stmt_vec_info): Likewise. + * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise. + (vect_mark_pattern_stmts): Don't copy the PATTERN_DEF_SEQ. + +2018-06-20 Richard Sandiford + + * tree-vect-stmts.c (vect_analyze_stmt): Move the handling of pattern + definition statements before the early exit for statements that aren't + live or relevant. + * tree-vect-loop.c (vect_transform_loop_stmt): New function, + split out from... + (vect_transform_loop): ...here. Process pattern definition + statements without first checking whether the main pattern + statement is live or relevant. + +2018-06-19 Eric Botcazou + + * tree-cfgcleanup.c (tree_forwarder_block_p): Do not return false at + -O0 if the locus represent UNKNOWN_LOCATION but have different values. + +2018-06-19 Aaron Sawdey + + * config/rs6000/rs6000-string.c (select_block_compare_mode): Check + TARGET_EFFICIENT_OVERLAPPING_UNALIGNED here instead of in caller. + (do_and3, do_and3_mask, do_compb3, do_rotl3): New functions. + (expand_block_compare): Change select_block_compare_mode call. + (expand_strncmp_align_check): Use new functions, fix comment. + (emit_final_str_compare_gpr): New function. + (expand_strn_compare): Refactor and clean up code. + * config/rs6000/vsx.md (vsx_mov_64bit): Remove *. + +2018-06-19 Tony Reix + Damien Bergamini + David Edelsohn + + * collect2.c (static_obj): New variable. + (static_libs): New variable. + (is_in_list): Uncomment declaration. + (main): Track AIX libraries linked statically. + (is_in_list): Uncomment definition. + (scan_prog_file): Don't add AIX shared libraries initializer + to constructor list if linking statically. + +2018-06-19 Max Filippov + + * config/xtensa/xtensa.md (UNSPEC_FRAME_BLOCKAGE): New unspec + constant. + (allocate_stack, frame_blockage, *frame_blockage): New patterns. + +2018-06-19 Jan Hubicka + + * tree.c (find_decls_types_r): Remove all non-VAR_DECLs from + blocks. + +2018-06-19 Martin Liska + + * config/i386/i386.c (ix86_can_inline_p): Do not use + ipa_fn_summaries::get_create. + * ipa-cp.c (ipcp_cloning_candidate_p): Replace get_create with + get. + (devirtualization_time_bonus): Likewise. + (ipcp_propagate_stage): Likewise. + * ipa-fnsummary.c (redirect_to_unreachable): Likewise. + (edge_set_predicate): Likewise. + (evaluate_conditions_for_known_args): Likewise. + (evaluate_properties_for_edge): Likewise. + (ipa_call_summary::reset): Tranform to ... + (ipa_call_summary::~ipa_call_summary): ... this. + (ipa_fn_summary::reset): Transform to ... + (ipa_fn_summary::~ipa_fn_summary): ... this. + (ipa_fn_summary_t::remove): Rename to ... + (ipa_fn_summary_t::remove_callees): ... this. + (ipa_fn_summary_t::duplicate): Use placement new + instead of memory copy. + (ipa_call_summary_t::duplicate): Likewise. + (ipa_call_summary_t::remove): Remove. + (dump_ipa_call_summary): Change get_create to get. + (ipa_dump_fn_summary): Dump only when summary exists. + (analyze_function_body): Use symbol_summary::get instead + of get_create. + (compute_fn_summary): Likewise. + (estimate_edge_devirt_benefit): Likewise. + (estimate_edge_size_and_time): Likewise. + (inline_update_callee_summaries): Likewise. + (remap_edge_change_prob): Likewise. + (remap_edge_summaries): Likewise. + (ipa_merge_fn_summary_after_inlining): Likewise. + (write_ipa_call_summary): Likewise. + (ipa_fn_summary_write): Likewise. + (ipa_free_fn_summary): Likewise. + * ipa-fnsummary.h (struct GTY): Add new ctor and copy ctor. + (struct ipa_call_summary): Likewise. + * ipa-icf.c (sem_function::merge): Use symbol_summary::get instead + of get_create. + * ipa-inline-analysis.c (do_estimate_edge_time): Likewise. + (estimate_size_after_inlining): Likewise. + (estimate_growth): Likewise. + (growth_likely_positive): Likewise. + * ipa-inline-transform.c (clone_inlined_nodes): Likewise. + (inline_call): Likewise. + * ipa-inline.c (caller_growth_limits): Likewise. + (can_inline_edge_p): Likewise. + (can_inline_edge_by_limits_p): Likewise. + (compute_uninlined_call_time): Likewise. + (compute_inlined_call_time): Likewise. + (want_inline_small_function_p): Likewise. + (edge_badness): Likewise. + (update_caller_keys): Likewise. + (update_callee_keys): Likewise. + (inline_small_functions): Likewise. + (inline_to_all_callers_1): Likewise. + (dump_overall_stats): Likewise. + (early_inline_small_functions): Likewise. + (early_inliner): Likewise. + * ipa-profile.c (ipa_propagate_frequency_1): Likewise. + * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. + * ipa-pure-const.c (malloc_candidate_p): Likewise. + * ipa-split.c (execute_split_functions): Likewise. + * symbol-summary.h: Likewise. + * tree-sra.c (ipa_sra_preliminary_function_checks): Likewise. + +2018-06-19 Richard Biener + + * tree-vectorizer.c (try_vectorize_loop_1): Split out of ... + (vectorize_loops): ... here. Fix dbgcnt handling. + (try_vectorize_loop): Wrap try_vectorize_loop_1. + +2018-06-19 Segher Boessenkool + + PR target/86197 + * config/rs6000/rs6000.md (rs6000_discover_homogeneous_aggregate): An + ieee128 argument takes up only one (vector) register, not two (floating + point) registers. + +2018-06-19 Eric Botcazou + + * gimplify.c (gimplify_init_constructor): Really never clear for an + incomplete constructor if CONSTRUCTOR_NO_CLEARING is set. + +2018-06-19 Richard Biener + + PR tree-optimization/86179 + * tree-vect-patterns.c (vect_pattern_recog_1): Clean up + after failed recognition. + +2018-06-18 Martin Sebor + + PR middle-end/85602 + * calls.c (maybe_warn_nonstring_arg): Handle strncat. + * tree-ssa-strlen.c (is_strlen_related_p): Make extern. + Handle integer subtraction. + (maybe_diag_stxncpy_trunc): Handle nonstring source arguments. + * tree-ssa-strlen.h (is_strlen_related_p): Declare. + +2018-06-18 David Malcolm + + * config/frv/frv-protos.h (frv_ifcvt_modify_insn): Strengthen 3rd + param from rtx to rtx_insn *. + * config/frv/frv.c (frv_ifcvt_add_insn): Likewise for "insn" + param. + (frv_ifcvt_modify_insn): Likwise. + (frv_ifcvt_modify_final): Likwise for local "existing_insn", + adding an as_a cast. Likewise for local "insn". + * config/mips/mips.c (r10k_insert_cache_barriers): Add an + as_a cast to local "unprotected_region" once + it's been established that it's not NULL or pc_rtx. + * config/nds32/nds32-relax-opt.c (nds32_group_insns): Strengthen + param "sethi" from rtx to rtx_insn *. + (nds32_group_float_insns): Likewise for param "insn". + * config/vax/vax-protos.h (vax_output_int_add): Likewise for 1st + param. + (vax_output_int_subtract): Likewise. + * config/vax/vax.c (vax_output_int_add): Likewise for param + "insn". + (vax_output_int_subtract): Likewise. + * emit-rtl.c (set_insn_deleted): Likewise, removing cast. + (emit_pattern_after): Likewise for param "after". + (emit_insn_after): Likewise. + (emit_jump_insn_after): Likewise. + (emit_call_insn_after): Likewise. + (emit_debug_insn_after): Likewise. + (emit_pattern_before): Likewise for param "before". + (emit_insn_before): Likewise. + (emit_jump_insn_before): Likewise. + * final.c (get_insn_template): Likewise for param "insn", removing + a cast. + * output.h (get_insn_template): Likewise for 2nd param. + * rtl.h (emit_insn_before): Likewise. + (emit_jump_insn_before): Likewise. + (emit_debug_insn_before_noloc): Likewise. + (emit_insn_after): Likewise. + (emit_jump_insn_after): Likewise. + (emit_call_insn_after): Likewise. + (emit_debug_insn_after): Likewise. + (set_insn_deleted): Likewise for param. + +2018-06-18 Michael Meissner + + PR target/85358 + * config/rs6000/rs6000-modes.def (toplevel): Rework the 128-bit + floating point modes, so that IFmode is numerically greater than + TFmode, which is greater than KFmode using FRACTIONAL_FLOAT_MODE + to declare the ordering. This prevents IFmode from being + converted to TFmode when long double is IEEE 128-bit on an ISA 3.0 + machine. Include rs6000-modes.h to share the fractional values + between genmodes* and the rest of the compiler. + (IFmode): Likewise. + (KFmode): Likewise. + (TFmode): Likewise. + * config/rs6000/rs6000-modes.h: New file. + * config/rs6000/rs6000.c (rs6000_debug_reg_global): Change the + meaning of rs6000_long_double_size so that 126..128 selects an + appropriate 128-bit floating point type. + (rs6000_option_override_internal): Likewise. + * config/rs6000/rs6000.h (toplevel): Include rs6000-modes.h. + (TARGET_LONG_DOUBLE_128): Change the meaning of + rs6000_long_double_size so that 126..128 selects an appropriate + 128-bit floating point type. + (LONG_DOUBLE_TYPE_SIZE): Update comment. + * config/rs6000/rs6000.md (trunciftf2): Correct the modes of the + source and destination to match the standard usage. + (truncifkf2): Likewise. + (copysign3, IEEE iterator): Rework copysign of float128 on + ISA 2.07 to use an explicit clobber, instead of passing in a + temporary. + (copysign3_soft): Likewise. + +2018-06-18 David Malcolm + + * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): + Replace dump_printf_loc call with DUMP_VECT_SCOPE. + (vect_slp_analyze_instance_dependence): Likewise. + (vect_enhance_data_refs_alignment): Likewise. + (vect_analyze_data_refs_alignment): Likewise. + (vect_slp_analyze_and_verify_instance_alignment + (vect_analyze_data_ref_accesses): Likewise. + (vect_prune_runtime_alias_test_list): Likewise. + (vect_analyze_data_refs): Likewise. + * tree-vect-loop-manip.c (vect_update_inits_of_drs): Likewise. + * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. + (vect_analyze_scalar_cycles_1): Likewise. + (vect_get_loop_niters): Likewise. + (vect_analyze_loop_form_1): Likewise. + (vect_update_vf_for_slp): Likewise. + (vect_analyze_loop_operations): Likewise. + (vect_analyze_loop): Likewise. + (vectorizable_induction): Likewise. + (vect_transform_loop): Likewise. + * tree-vect-patterns.c (vect_pattern_recog): Likewise. + * tree-vect-slp.c (vect_analyze_slp): Likewise. + (vect_make_slp_decision): Likewise. + (vect_detect_hybrid_slp): Likewise. + (vect_slp_analyze_operations): Likewise. + (vect_slp_bb): Likewise. + * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise. + (vectorizable_bswap): Likewise. + (vectorizable_call): Likewise. + (vectorizable_simd_clone_call): Likewise. + (vectorizable_conversion): Likewise. + (vectorizable_assignment): Likewise. + (vectorizable_shift): Likewise. + (vectorizable_operation): Likewise. + * tree-vectorizer.h (DUMP_VECT_SCOPE): New macro. + +2018-06-18 Martin Sebor + + PR tree-optimization/81384 + * builtin-types.def (BT_FN_SIZE_CONST_STRING_SIZE): New. + * builtins.c (expand_builtin_strnlen): New function. + (expand_builtin): Call it. + (fold_builtin_n): Avoid setting TREE_NO_WARNING. + * builtins.def (BUILT_IN_STRNLEN): New. + * calls.c (maybe_warn_nonstring_arg): Handle BUILT_IN_STRNLEN. + Warn for bounds in excess of maximum object size. + * tree-ssa-strlen.c (maybe_set_strlen_range): Return tree representing + single-value ranges. Handle strnlen. + (handle_builtin_strlen): Handle strnlen. + (strlen_check_and_optimize_stmt): Same. + * doc/extend.texi (Other Builtins): Document strnlen. + +2018-06-18 Maya Rashish + + * config/alpha/openbsd.h (TARGET_DEFAULT): Define. + (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Likewise. + (INTMAX_TYPE, UINTMAX_TYPE, WINT_TYPE): Likewise. + + * config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Move from + here to ... + * config/alpha/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Here. + +2018-06-18 Prathamesh Kulkarni + + * tree.c (escaped_string::escape): Replace cast to char * by + const_cast (unescaped). + +2018-06-18 Nick Clifton + + PR 84195 + * tree.c (escaped_string): New class. Converts an unescaped + string into its escaped equivalent. + (warn_deprecated_use): Use the new class to convert the + deprecation message, if present. + (test_escaped_strings): New self test. + (test_c_tests): Add test_escaped_strings. + * doc/extend.texi (deprecated): Add a note that the + deprecation message is affected by the -fmessage-length + option, and that control characters will be escaped. + (#pragma GCC error): Document this pragma. + (#pragma GCC warning): Likewise. + * doc/invoke.texi (-fmessage-length): Document this option's + effect on the #warning and #error preprocessor directives and + the deprecated attribute. + +2018-06-18 Eric Botcazou + + * tree.c (decl_value_expr_lookup): Revert latest change. + (decl_value_expr_insert): Likewise. + +2018-06-17 Eric Botcazou + + * gimplify.c (nonlocal_vlas): Delete. + (nonlocal_vla_vars): Likewise. + (gimplify_var_or_parm_decl): Do not add debug VAR_DECLs for non-local + referenced VLAs. + (gimplify_body): Do not create and destroy nonlocal_vlas. + * tree-nested.c: Include diagnostic.h. + (use_pointer_in_frame): Tweak. + (lookup_field_for_decl): Add assertion and declare the transformation. + (convert_nonlocal_reference_op) : Rework and issue an + internal error when the reference is in a wrong context. Do not + create a debug decl by default. + (note_nonlocal_block_vlas): Delete. + (convert_nonlocal_reference_stmt) : Do not call it. + (convert_local_reference_op) : Skip the frame decl. Do not + create a debug decl by default. + (convert_gimple_call) : Issue an internal error when the + call is in a wrong context. + (fixup_vla_decls): New function. + (finalize_nesting_tree_1): Adjust comment. Call fixup_vla_decls if no + debug variables were created. + * tree.c (decl_value_expr_lookup): Add checking assertion. + (decl_value_expr_insert): Likewise. + +2018-06-16 Kugan Vivekanandarajah + + PR middle-end/82479 + * ipa-fnsummary.c (will_be_nonconstant_expr_predicate): Handle CALL_EXPR. + * tree-scalar-evolution.c (interpret_expr): Likewise. + (expression_expensive_p): Likewise. + * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Likewise. + * tree-ssa-loop-niter.c (number_of_iterations_popcount): New. + (number_of_iterations_exit_assumptions): Use number_of_iterations_popcount. + (ssa_defined_by_minus_one_stmt_p): New. + +2018-06-16 Kugan Vivekanandarajah + + PR middle-end/64946 + * cfgexpand.c (expand_debug_expr): Hande ABSU_EXPR. + * config/i386/i386.c (ix86_add_stmt_cost): Likewise. + * dojump.c (do_jump): Likewise. + * expr.c (expand_expr_real_2): Check operand type's sign. + * fold-const.c (const_unop): Handle ABSU_EXPR. + (fold_abs_const): Likewise. + * gimple-pretty-print.c (dump_unary_rhs): Likewise. + * gimple-ssa-backprop.c (backprop::process_assign_use): Likesie. + (strip_sign_op_1): Likesise. + * match.pd: Add new pattern to generate ABSU_EXPR. + * optabs-tree.c (optab_for_tree_code): Handle ABSU_EXPR. + * tree-cfg.c (verify_gimple_assign_unary): Likewise. + * tree-eh.c (operation_could_trap_helper_p): Likewise. + * tree-inline.c (estimate_operator_cost): Likewise. + * tree-pretty-print.c (dump_generic_node): Likewise. + * tree-vect-patterns.c (vect_recog_sad_pattern): Likewise. + * tree.def (ABSU_EXPR): New. + +2018-06-16 Jakub Jelinek + + PR middle-end/86095 + * common.opt (Wunsafe-loop-optimizations): Add Ignore, remove Var, + documented as preserved for backward compatibility only. + * doc/invoke.texi: Remove -Wunsafe-loop-optimizations documentation. + + PR rtl-optimization/86108 + * bb-reorder.c (create_forwarder_block): Renamed to ... + (create_eh_forwarder_block): ... this. Split OLD_BB after labels and + jump from new landing pad to the second part. + (sjlj_fix_up_crossing_landing_pad, dw2_fix_up_crossing_landing_pad): + Adjust callers. + +2018-06-15 Jakub Jelinek + + PR middle-end/85878 + * expr.c (expand_assignment): Remove now redundant COMPLEX_MODE_P + check from first store_expr, use to_mode instead of GET_MODE (to_rtx). + Only call store_expr for halves if the mode is the same. + + PR middle-end/86123 + * match.pd ((X / Y) == 0 -> X < Y): Don't transform complex divisions. + Fix up comment formatting. + +2018-06-15 Bernd Edlinger + + * typed-splay-tree.h (typed_splay_tree::remove): New function. + (typed_splay_tree::closure, + typed_splay_tree::inner_foreach_fn, typed_splay_tree::m_inner): Deleted. + (typed_splay_tree::typed_splay_tree, + typed_splay_tree::operator =): Declared private. + (typed_splay_tree::splay_tree_key, typed_splay_tree::splay_tree_value, + typed_splay_tree::splay_tree_node_s, typed_splay_tree::KDEL, + typed_splay_tree::VDEL, typed_splay_tree::splay_tree_delete_helper, + typed_splay_tree::rotate_left, typed_splay_tree::rotate_right, + typed_splay_tree::splay_tree_splay, + typed_splay_tree::splay_tree_foreach_helper, + typed_splay_tree::splay_tree_insert, + typed_splay_tree::splay_tree_remove, + typed_splay_tree::splay_tree_lookup, + typed_splay_tree::splay_tree_predecessor, + typed_splay_tree::splay_tree_successor, + typed_splay_tree::splay_tree_min, + typed_splay_tree::splay_tree_max): Took over from splay-tree.c/.h. + (typed_splay_tree::root, typed_splay_tree::comp, + typed_splay_tree::delete_key, + typed_splay_tree::delete_value): New data members. + * typed-splay-tree.c (selftest::test_str_to_int): Add a test for + typed_splay_tree::remove. + +2018-06-15 Matthew Fortune + + * config/mips/mips.h (ASM_SPEC): Pass through -mcrc, -mno-crc, + -mginv and -mno-ginv to the assembler. + * config/mips/mips.opt (-mcrc): New option. + (-mginv): Likewise. + * doc/invoke.text (-mcrc): Document. + (-mginv): Likewise. + +2018-06-15 Nick Clifton + + PR 84195 + * tree.c (escaped_string): New class. Converts an unescaped + string into its escaped equivalent. + (warn_deprecated_use): Use the new class to convert the + deprecation message, if present. + (test_escaped_strings): New self test. + (test_c_tests): Add test_escaped_strings. + * doc/extend.texi (deprecated): Add a note that the + deprecation message is affected by the -fmessage-length + option, and that control characters will be escaped. + (#pragma GCC error): Document this pragma. + (#pragma GCC warning): Likewise. + * doc/invoke.texi (-fmessage-length): Document this option's + effect on the #warning and #error preprocessor directives and + the deprecated attribute. + +2018-06-15 Richard Biener + + * tree-vect-slp.c (vect_slp_bb): Dump MSG_OPTIMIZED_LOCATIONS + here, also noting vector size used. + * tree-vectorizer.c (vectorize_loops): Adjust. Note vector + size used in MSG_OPTIMIZED_LOCATIONS dump. + (pass_slp_vectorize::execute): Adjust. + +2018-06-15 Claudiu Zissulescu + + PR target/85968 + * config/arc/arc.c (arc_return_address_register): Fix + if-condition. + +2018-06-15 Richard Biener + + PR middle-end/86159 + * tree-cfg.c (gimplify_build3): Do not strip sign conversions, + leave useless conversion stripping to force_gimple_operand_gsi. + (gimplify_build2): Likewise. + (gimplify_build1): Likewise. + +2018-06-15 Richard Biener + + PR middle-end/86076 + * tree-cfg.c (move_stmt_op): unshare invariant addresses + before adjusting their block. + +2018-06-15 Sebastian Huber + + * config.gcc (riscv*-*-elf* | riscv*-*-rtems*): Use custom + multilibs for *-*-rtems*. + * config/riscv/t-rtems: New file. + +2018-06-14 Jakub Jelinek + + PR middle-end/86122 + * match.pd ((A +- CST1) +- CST2): Punt if last resort + unsigned_type_for returns NULL. + + PR target/85945 + * lower-subreg.c (find_decomposable_subregs): Don't decompose float + subregs of multi-word pseudos unless the float mode has word size. + +2018-06-14 Richard Biener + + PR middle-end/86139 + * tree-vect-generic.c (build_word_mode_vector_type): Remove + duplicate and harmful type_hash_canon. + * tree.c (type_hash_canon): Assert we didn't find ourselves. + +2018-06-14 Richard Biener + + PR ipa/86124 + * tree-ssa-struct-alias.c (create_variable_info_for): Handle + NULL cgraph_node. + +2018-06-14 Sebastian Huber + + * config/rtems.h (STDINT_LONG32): Define. + +2018-06-13 Matthew Fortune + Prachi Godbole + + * config/mips/mips-cpus.def: Define P6600. + * config/mips/mips-tables.opt: Regenerate. + * config/mips/mips.c (mips_ucbranch_type): New enum. + (mips_rtx_cost_data): Add support for P6600. + (mips_issue_rate): Likewise. + (mips_multipass_dfa_lookahead): Likewise. + (mips_avoid_hazard): Likewise. + (mips_reorg_process_insns): Likewise. + (mips_classify_branch_p6600): New function. + * config/mips/mips.h (TUNE_P6600): New define. + (MIPS_ISA_LEVEL_SPEC): Infer mips64r6 from p6600. + (ENABLE_LD_ST_PAIRS): Enable load/store bonding for p6600. + * config/mips/mips.md: Include p6600.md. + (processor): Add p6600. + * config/mips/p6600.md: New file. + * doc/invoke.texi: Add p6600 to supported architectures. + +2018-06-13 Martin Sebor + + PR tree-optimization/86114 + * gimple-fold.c (gimple_fold_builtin_strlen): Only handle LHS + of integer types. + * tree-ssa-strlen.c (maybe_set_strlen_range): Same. + +2018-06-13 Richard Biener + + * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): + Properly set vector type of the intermediate stmt. + * tree-vect-stmts.c (vectorizable_operation): The destination + var always has vectype_out type. + +2018-06-13 Jeff Law + + * config/rl78/rl78.c (move_elim_pass): Use TDF_NONE rather than + integer 0 for argument to print_rtl_with_bb. + (rl78_reorg): Likewise. + +2018-06-13 David Malcolm + + * config/arc/arc.c (hwloop_optimize): Strengthen local "end_label" + from rtx to rtx_insn *. + * config/bfin/bfin.c (hwloop_optimize): Likewise for local + "label". + (add_sched_insns_for_speculation): Likewise for local "target", + converting usage of JUMP_LABEL to JUMP_LABEL_AS_INSN. + * config/c6x/c6x.c (reorg_split_calls): Strengthen param "call_labels" + from rtx_insn ** to rtx_code_label **. + (reorg_emit_nops): Likewise. + (c6x_reorg): Likewise for local "call_labels". + * config/sh/sh-protos.h (get_dest_uid): Strengthen 1st param from + rtx to rtx_insn *. + * config/sh/sh.c (dump_table): Strengthen local "lab" from rtx to + rtx_code_label *, adding safe_as_a casts to + the loops over LABEL_REFS. + (fixup_addr_diff_vecs): Add as_a to usage of + braf_label. + (barrier_align): Convert usage of JUMP_LABEL to JUMP_LABEL_AS_INSN. + (get_dest_uid): Strengthen param "label" from rtx to rtx_insn *. + (split_branches): Strengthen local "olabel" from rtx to + rtx_insn *, adding a safe_as_a cast. + * emit-rtl.c (next_real_insn): Strengthen param from "rtx" + to "rtx_insn *". + (add_insn_after): Likewise for first two params. + (add_insn_before): Likewise. + (remove_insn): Likewise for param. + (emit_pattern_before_noloc): Likewise for second and third params. + (emit_jump_insn_before_noloc): Convert NULL_RTX to NULL. + (emit_call_insn_before_noloc): Likewise. + (emit_debug_insn_before_noloc): Strengthen "before" param from "rtx" + to "rtx_insn *". + (emit_barrier_before): Likewise. + (emit_label_before): Strengthen "label" param from "rtx" to + "rtx_code_label *". Strengthen "before" param from "rtx" to + "rtx_insn *". + (emit_insn_after_1): Strengthen "after" param from "rtx" to + "rtx_insn *". + (emit_pattern_after_noloc): Likewise. + (emit_insn_after_noloc): Likewise. + (emit_jump_insn_after_noloc): Likewise. + (emit_call_insn_after_noloc): Likewise. + (emit_debug_insn_after_noloc): Likewise. + (emit_barrier_after): Likewise. + (emit_label_after): Likewise for both params. + (emit_pattern_after_setloc): Likewise for "after" param. Convert + "loc" param from "int" to "location_t". + (emit_insn_after_setloc): Likewise. + (emit_jump_insn_after_setloc): Likewise. + (emit_call_insn_after_setloc): Likewise. + (emit_debug_insn_after_setloc): Likewise. + (emit_pattern_before_setloc): Likewise for "before" param. Convert + "loc" param from "int" to "location_t". + (emit_pattern_before): Convert NULL_RTX to NULL. + (emit_insn_before_setloc): Convert "loc" param from "int" to + "location_t". + (emit_jump_insn_before_setloc): Likewise. + (emit_call_insn_before_setloc): Likewise. + (emit_debug_insn_before_setloc): Strengthen "before" param from rtx to + rtx_insn *. Convert "loc" param from "int" to "location_t". + * rtl.h (emit_insn_before_setloc, emit_jump_insn_before_setloc, + emit_call_insn_before_setloc, emit_debug_insn_before_setloc): + Convert 3rd param from "int" to "location_t". + (emit_barrier_before, emit_barrier_after, next_real_insn): + Strengthen param from rtx to rtx_insn *. + (emit_label_before): Strengthen 1st param from "rtx" to + "rtx_code_label *". Strengthen 2nd param from "rtx" to + "rtx_insn *". + (emit_insn_after_noloc, emit_jump_insn_after_noloc, + emit_call_insn_after_noloc, emit_debug_insn_after_noloc): + Strengthen 2nd param from "rtx" to "rtx_insn *". + (emit_insn_after_setloc, emit_jump_insn_after_setloc) + emit_call_insn_after_setloc, emit_debug_insn_after_setloc): + Likewise. Convert 3rd param from "int" to "location_t". + (emit_label_after): Strengthen 1st param from "rtx" to + "rtx_code_label *". + (next_real_insn, remove_insn): Strengthen param from "rtx" to + "rtx_insn *". + (add_insn_before, add_insn_after): Strengthen 1st and 2nd params + from "rtx" to "rtx_insn *". + +2018-06-13 Jan Hubicka + + * cgraph.c (cgraph_node::get_untransformed_body): Dump function + bodies streamed in with -Q. + * dumpfile.c (dump_files): Add lto-stream-out dump file. + * dumpfile.h (tree_dump_index): Add lto_stream_out. + * gimple-streamer-out.c: Include gimple-pretty-print.h + (output_bb): Dump stmts streamed. + * lto-section-out.c: Include print-tree.h + (lto_begin_section): Dump sections created. + (lto_output_decl_index): Dump decl encoded. + * lto-streamer-out.c: Include print-tree.h + (create_output_block): Dump output block created. + (DFS::DFS_write_tree_body): Dump DFS SCCs streamed. + (output_function): Dump function output. + (output_constructor): Dump constructor streamed. + (write_global_stream): Output indexes encoded. + (produce_asm_for_decls): Dump streams encoded. + * lto-streamer.c (streamer_dump_file): New global var. + * lto-streamer.h (streamer_dump_file): Declare. + * passes.c (ipa_write_summaries): Initialize streamer dump. + * varpool.c (varpool_node::get_constructor): Dump constructors streamed + in. + +2018-06-13 Eric Botcazou + + PR target/86048 + * config/i386/winnt.c (i386_pe_seh_cold_init): Do not emit negative + offsets for register save directives. Emit a second batch of save + directives, if need be, when the function accesses prior frames. + +2018-06-12 Claudiu Zissulescu + + * config/arc/fpu.md (fmasf4): Force operand to register. + (fnmasf4): Likewise. + +2018-06-12 Claudiu Zissulescu + + * config/arc/arc-protos.h (arc_pad_return): Remove. + * config/arc/arc.c (machine_function): Remove force_short_suffix + and size_reason. + (arc_print_operand): Adjust printing of '&'. + (arc_verify_short): Remove conditional printing of short suffix. + (arc_final_prescan_insn): Remove reference to size_reason. + (pad_return): New function. + (arc_reorg): Call pad_return. + (arc_pad_return): Remove. + (arc_init_machine_status): Remove reference to force_short_suffix. + * config/arc/arc.md (vunspec): Add VUNSPEC_ARC_BLOCKAGE. + (attr length): When attribute iscompact is true force to 2 + regardless; in the case of maybe check if we want to force the + instruction to have 4 bytes length. + (nopv): Change it to generate 4 byte long nop as well. + (blockage): New pattern. + (simple_return): Remove call to arc_pad_return. + (p_return_i): Likewise. + +2018-06-12 Claudiu Zissulescu + + * config/arc/elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + +2018-06-12 Claudiu Zissulescu + + * config/arc/builtins.def (SYNC): SYNC instruction is valid on all + ARC cores. + +2018-06-12 Claudiu Zissulescu + + * config/arc/arc.c (atomic_exchangesi): EX instruction is default + for ARC700 and ARCv2. + +2018-06-13 Chenghua Xu + + PR target/86076 + * config/mips/loongson.md (vec_setv4hi): Gen_lowpart for + operands[2] instead of operands[1]. + + +2018-06-12 Richard Sandiford + + * lra-constraints.c (simplify_operand_subreg): In the paradoxical + case, check whether the outer register overlaps an unallocatable + register, not just whether it fits the required class. + +2018-06-12 Richard Sandiford + + * poly-int.h (can_div_trunc_p): Add new overload in which all values + are poly_ints. + * alias.c (get_addr): Extend CONST_INT handling to poly_int_rtx_p. + (memrefs_conflict_p): Likewise. + (init_alias_analysis): Likewise. + * cfgexpand.c (expand_debug_expr): Likewise. + * combine.c (combine_simplify_rtx, force_int_to_mode): Likewise. + * cse.c (fold_rtx): Likewise. + * explow.c (adjust_stack, anti_adjust_stack): Likewise. + * expr.c (emit_block_move_hints): Likewise. + (clear_storage_hints, push_block, emit_push_insn): Likewise. + (store_expr_with_bounds, reduce_to_bit_field_precision): Likewise. + (emit_group_load_1): Use rtx_to_poly_int64 for group offsets. + (emit_group_store): Likewise. + (find_args_size_adjust): Use strip_offset. Use rtx_to_poly_int64 + to read the PRE/POST_MODIFY increment. + * calls.c (store_one_arg): Use strip_offset. + * rtlanal.c (rtx_addr_can_trap_p_1): Extend CONST_INT handling to + poly_int_rtx_p. + (set_noop_p): Use rtx_to_poly_int64 for the elements selected + by a VEC_SELECT. + * simplify-rtx.c (avoid_constant_pool_reference): Use strip_offset. + (simplify_binary_operation_1): Extend CONST_INT handling to + poly_int_rtx_p. + * var-tracking.c (compute_cfa_pointer): Take a poly_int64 rather + than a HOST_WIDE_INT. + (hard_frame_pointer_adjustment): Change from HOST_WIDE_INT to + poly_int64. + (adjust_mems, add_stores): Update accodingly. + (vt_canonicalize_addr): Track polynomial offsets. + (emit_note_insn_var_location): Likewise. + (vt_add_function_parameter): Likewise. + (vt_initialize): Likewise. + +2018-06-12 Jeff Law + + * config.gcc (alpha*-*-freebsd*): Remove. + * config/alpha/freebsd.h: Remove. + +2018-06-12 David Malcolm + + PR other/69968 + * spellcheck-tree.c (levenshtein_distance): Rename to... + (get_edit_distance): ...this, and update for underlying renaming. + * spellcheck-tree.h (levenshtein_distance): Rename to... + (get_edit_distance): ...this. + * spellcheck.c (levenshtein_distance): Rename to... + (get_edit_distance): ...this. Convert from Levenshtein distance + to Damerau-Levenshtein distance by supporting transpositions of + adjacent characters. Rename "v1" to "v_next" and "v0" to + "v_one_ago". + (selftest::levenshtein_distance_unit_test_oneway): Rename to... + (selftest::test_edit_distance_unit_test_oneway): ...this, and + update for underlying renaming. + (selftest::levenshtein_distance_unit_test): Rename to... + (selftest::test_get_edit_distance_unit): ...this, and update for + underlying renaming. + (selftest::test_find_closest_string): Add example from PR 69968 + where transposition helps + (selftest::test_metric_conditions): Update for renaming. + (selftest::test_metric_conditions): Likewise. + (selftest::spellcheck_c_tests): Likewise. + * spellcheck.h (levenshtein_distance): Rename both overloads to... + (get_edit_distance): ...this. + (best_match::consider): Update for renaming. + +2018-06-12 Martin Sebor + + PR tree-optimization/85259 + * builtins.c (compute_objsize): Handle constant offsets. + * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Return + true iff a warning has been issued. + * gimple.h (gimple_nonartificial_location): New function. + * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Call + gimple_nonartificial_location and handle -Wno-system-headers. + (handle_builtin_stxncpy): Same. + +2018-06-12 Martin Sebor + + PR c/85931 + * fold-const.c (operand_equal_p): Handle SAVE_EXPR. + +2018-06-12 Will Schmidt + + * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add + BUILTIN_VEC_XST entries for pointer to double and long long. + +2018-06-12 H.J. Lu + + PR target/85990 + * config/i386/gnu-user.h (TARGET_THREAD_SPLIT_STACK_OFFSET): + Update comments. + * config/i386/gnu-user64.h (TARGET_THREAD_SPLIT_STACK_OFFSET): + Likewise. + +2018-06-12 Martin Liska + + * doc/options.texi: Document IntegerRange. + +2018-06-12 Martin Liska + + * config/i386/i386.opt: Make MPX-related options as Deprecated. + * opt-functions.awk: Handle Deprecated flag. + * opts-common.c (decode_cmdline_option): Handle cl_deprecated + and report error. + (read_cmdline_option): Report warning for a deprecated option. + * opts.h (struct cl_option): Add new field cl_deprecated. + (CL_ERR_DEPRECATED): New. + +2018-06-12 Martin Liska + + * doc/options.texi: Document Deprecated option flag. + +2018-06-12 Claudiu Zissulescu + + * config/arc/arc-arch.h (arc_extras): New enum. + (arc_cpu_t):Add field extra. + (arc_cpu_types): Consider the extras. + * config/arc/arc-cpus.def: Add extras info. + * config/arc/arc-opts.h (processor_type): Consider extra field. + * config/arc/arc.c (arc_override_options): Handle extra field. + +2018-06-12 Claudiu Zissulescu + + * config/arc/arc-arch.h: Update ARC_OPTX macro. + * config/arc/arc-options.def (ARC_OPTX): Introduce a new doc + field. + * config/arc/arc.c (arc_init): Update pic warning. + (irq_range): Update irq range parsing warnings. + (arc_override_options): Update various warning messages. + (arc_handle_aux_attribute): Likewise. + +2018-06-12 Robert Suchanek + + * config/mips/i6400.md (i6400_fpu_fadd): Remove frint. + +2018-06-12 Jozef Lawrynowicz + + * doc/sourcebuild.texi: Document usage of line number 0 in verify + compiler messages directives. + +2018-06-12 Matthew Fortune + + * config/mips/mips-cpus.def: New MIPS_CPU for i6500. + * config/mips/mips-tables.opt: Regenerate. + * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Mark i6500 as + mips64r6. + * doc/invoke.texi: Document -march=i6500. + +2018-06-12 Prachi Godbole + + * config/mips/i6400.md (i6400_gpmuldiv): Remove cpu_unit. + (i6400_gpmul): Add cpu_unit. + (i6400_gpdiv): Likewise. + (i6400_msa_add_d): Update reservations. + (i6400_msa_int_add) Likewise. + (i6400_msa_short_logic3) Likewise. + (i6400_msa_short_logic2) Likewise. + (i6400_msa_short_logic) Likewise. + (i6400_msa_move) Likewise. + (i6400_msa_cmp) Likewise. + (i6400_msa_short_float2) Likewise. + (i6400_msa_div_d) Likewise. + (i6400_msa_long_logic1) Likewise. + (i6400_msa_long_logic2) Likewise. + (i6400_msa_mult) Likewise. + (i6400_msa_long_float2) Likewise. + (i6400_msa_long_float4) Likewise. + (i6400_msa_long_float5) Likewise. + (i6400_msa_long_float8) Likewise. + (i6400_fpu_fadd): Include frint type. + (i6400_fpu_store): New define_insn_reservation. + (i6400_fpu_load): Likewise. + (i6400_fpu_move): Likewise. + (i6400_fpu_fcmp): Likewise. + (i6400_fpu_fmadd): Likewise. + (i6400_int_mult): Include imul3nc type and update reservation. + (i6400_int_div): Include idiv3 type and update reservation. + (i6400_int_load): Update to check type not move_type. + (i6400_int_store): Likewise. + (i6400_int_prefetch): Set zero latency. + +2018-06-12 Eric Botcazou + + * gcc.c: Document new %@{...} sequence. + (LINK_COMMAND_SPEC): Use it for the -L switches. + (cpp_unique_options): Use it for the -I switches. + (at_file_argbuf): New global variable. + (in_at_file): Likewise. + (alloc_args): Create at_file_argbuf. + (clear_args): Truncate at_file_argbuf. + (store_arg): If in_at_file, push the argument onto at_file_argbuf. + (open_at_file): New function. + (close_at_file): Likewise. + (create_at_file): Delete. + (do_spec_1) <'i'>: Use open_at_file/close_at_file. + <'o'>: Likewise. + <'@'>: New case. + (validate_switches_from_spec): Deal with %@{...} sequence. + (validate_switches): Likewise. + (driver::finalize): Call clear_args. + +2018-06-11 Rasmus Villemoes + + * config/vx-common.h (USE_TM_CLONE_REGISTRY): #define to 0. + +2018-06-11 Martin Sebor + + * doc/invoke.texi (-Wall): List -Wc++17-compat. + (Wno-class-memaccess): Add @opindex. + (Wno-templates, Wno-multiple-inheritance): Same. + (Wno-virtual-inheritance, Wno-namespaces): Same. + (Wno-pedantic, Wno-chkp, Wcoverage-mismatch): Same. + (Wno-format-overflow, Wno-format-truncation): Same. + (Wno-unused-local-typedefs, Walloc-size-larger-than): Same. + (Wno-alloc-size-larger-than, Wframe-larger-than): Same + (Wno-stack-usage, Wno-c++-compat, Wno-c++11-compat): Same. + (Wno-c++14-compat, Wno-c++17-compat, Wno-openmp-simd): Same. + (Wno-unsuffixed-float-constants, Wno-addr-space-convert): Same. + (Wno-misspelled-isr): Same. + +2018-06-11 Martin Sebor + + * PR tree-optimization/86083 + * tree-ssa-strlen.c (handle_char_store): Use tree_expr_nonzero_p. + +2018-06-11 Zhouyi Zhou + + * tree-eh.c (lower_eh_constructs_2): Add a comma to comment. + +2018-06-11 Segher Boessenkool + + PR target/85755 + * config/rs6000/rs6000.md (*movdi_internal32): Put constraint modifiers + on the correct operand. + (*movdi_internal64): Ditto. + +2018-06-11 Martin Liska + + PR tree-optimization/86089 + * tree-ssa-strlen.c (get_string_length): Move back removed hunk. + +2018-06-11 Julia Koval + + * config/i386/vaesintrin.h (_mm_aesdec_epi128, _mm_aesdeclast_epi128) + _mm_aesenc_epi128, _mm_aesenclast_epi128: Remove. + * config/i386/vpclmulqdqintrin.h (_mm_clmulepi64_epi128): Remove. + +2018-06-11 Olivier Hainque + + * dwarf2out.c (gen_compile_unit_die): Fallout to DW_LANG_Ada83 + for Ada with strict dwarf2. + +2018-06-08 Peter Bergner + + PR target/85755 + * config/rs6000/rs6000.c (mem_operand_gpr): Enable PRE_INC and PRE_DEC + addresses. + +2018-06-08 Jan Hubicka + + * dumpfile.c (FIRST_ME_AUTO_NUMBERED_DUMP): Bump to 4. + +2018-06-08 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_passes_ieee128): Protect with #if + TARGET_ELF. + +2018-06-08 Martin Liska + + * tree-cfg.h (debug_function): Fix argument type to match + implementation. + +2018-06-08 Martin Liska + + * config/powerpcspe/powerpcspe.c (rs6000_xcoff_visibility): + Remove usage of MPX-related (and removed) fields. + * config/rs6000/rs6000.c (rs6000_xcoff_visibility): Likewise. + +2018-06-08 David Malcolm + + * cfg.c (debug): Use TDF_NONE rather than 0. + * cfghooks.c (debug): Likewise. + * dumpfile.c (DUMP_FILE_INFO): Likewise; also for OPTGROUP. + (struct dump_option_value_info): Convert to... + (struct kv_pair): ...this template type. + (dump_options): Convert to kv_pair; use TDF_NONE + rather than 0. + (optinfo_verbosity_options): Likewise. + (optgroup_options): Convert to kv_pair; use + OPTGROUP_NONE. + (gcc::dump_manager::dump_register): Use optgroup_flags_t rather + than int for "optgroup_flags" param. + (dump_generic_expr_loc): Use dump_flags_t rather than int for + "dump_kind" param. + (dump_dec): Likewise. + (dump_finish): Use TDF_NONE rather than 0. + (gcc::dump_manager::opt_info_enable_passes): Use optgroup_flags_t + rather than int for "optgroup_flags" param. Use TDF_NONE rather + than 0. Update for change to option_ptr. + (opt_info_switch_p_1): Convert "optgroup_flags" param from int * + to optgroup_flags_t *. Use TDF_NONE and OPTGROUP_NONE rather than + 0. Update for changes to optinfo_verbosity_options and + optgroup_options. + (opt_info_switch_p): Convert optgroup_flags from int to + optgroup_flags_t. + (dump_basic_block): Use dump_flags_t rather than int + for "dump_kind" param. + * dumpfile.h (TDF_ADDRESS, TDF_SLIM, TDF_RAW, TDF_DETAILS, + TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO, TDF_UID) + TDF_STMTADDR, TDF_GRAPH, TDF_MEMSYMS, TDF_RHS_ONLY, TDF_ASMNAME, + TDF_EH, TDF_NOUID, TDF_ALIAS, TDF_ENUMERATE_LOCALS, TDF_CSELIB, + TDF_SCEV, TDF_GIMPLE, TDF_FOLDING, MSG_OPTIMIZED_LOCATIONS, + MSG_MISSED_OPTIMIZATION, MSG_NOTE, MSG_ALL, TDF_COMPARE_DEBUG, + TDF_NONE): Convert from macros to... + (enum dump_flag): ...this new enum. + (dump_flags_t): Update to use enum. + (operator|, operator&, operator~, operator|=, operator&=): + Implement for dump_flags_t. + (OPTGROUP_NONE, OPTGROUP_IPA, OPTGROUP_LOOP, OPTGROUP_INLINE, + OPTGROUP_OMP, OPTGROUP_VEC, OPTGROUP_OTHER, OPTGROUP_ALL): + Convert from macros to... + (enum optgroup_flag): ...this new enum. + (optgroup_flags_t): New typedef. + (operator|, operator|=): Implement for optgroup_flags_t. + (struct dump_file_info): Convert field "alt_flags" to + dump_flags_t. Convert field "optgroup_flags" to + optgroup_flags_t. + (dump_basic_block): Use dump_flags_t rather than int for param. + (dump_generic_expr_loc): Likewise. + (dump_dec): Likewise. + (dump_register): Convert param "optgroup_flags" to + optgroup_flags_t. + (opt_info_enable_passes): Likewise. + * early-remat.c (early_remat::dump_edge_list): Use TDF_NONE rather + than 0. + * gimple-pretty-print.c (debug): Likewise. + * gimple-ssa-store-merging.c (bswap_replace): Likewise. + (merged_store_group::apply_stores): Likewise. + * gimple-ssa-strength-reduction.c (insert_initializers): Likewise. + * gimple.c (verify_gimple_pp): Likewise. + * graphite-poly.c (print_pbb_body): Likewise. + * passes.c (pass_manager::register_one_dump_file): Convert + local "optgroup_flags" to optgroup_flags_t. + * print-tree.c (print_node): Use TDF_NONE rather than 0. + (debug): Likewise. + (debug_body): Likewise. + * tree-pass.h (struct pass_data): Convert field "optgroup_flags" + to optgroup_flags_t. + * tree-pretty-print.c (print_struct_decl): Use TDF_NONE rather + than 0. + * tree-ssa-math-opts.c (convert_mult_to_fma_1): Likewise. + (convert_mult_to_fma): Likewise. + * tree-ssa-reassoc.c (undistribute_ops_list): Likewise. + * tree-ssa-sccvn.c (vn_eliminate): Likewise. + * tree-vect-data-refs.c (dump_lower_bound): Convert param + "dump_kind" to dump_flags_t. + +2018-06-08 Segher Boessenkool + + * config/rs6000/rs6000.c (min, max): Delete. + +2018-06-08 Segher Boessenkool + + * doc/invoke.texi (RS/6000 and PowerPC Options): Delete mention of + -mabi=spe and -mabi=no-spe. + +2018-06-08 Martin Liska + + * ipa-pure-const.c (propagate_pure_const): Use ::get at places + where we expect an existing summary. + +2018-06-08 Martin Liska + + * ipa-inline-analysis.c (simple_edge_hints): Use ::get method. + * ipa-inline.h (estimate_edge_growth): Likewise. + +2018-06-08 Martin Liska + + * cgraph.c (function_version_hasher::hash): Use + cgraph_node::get_uid (). + (function_version_hasher::equal): + * cgraph.h (cgraph_node::get_uid): New method. + * ipa-inline.c (update_caller_keys): Use + cgraph_node::get_uid (). + (update_callee_keys): Likewise. + * ipa-utils.c (searchc): Likewise. + (ipa_reduced_postorder): Likewise. + * lto-cgraph.c (input_node): Likewise. + * passes.c (is_pass_explicitly_enabled_or_disabled): Likewise. + * symbol-summary.h (symtab_insertion): Likewise. + (symtab_removal): Likewise. + (symtab_duplication): Likewise. + * tree-pretty-print.c (dump_function_header): Likewise. + * tree-sra.c (convert_callers_for_node): Likewise. + +2018-06-08 Martin Liska + + * cgraph.c (symbol_table::create_edge): Always assign a new + unique number. + (symbol_table::free_edge): Do not recycle numbers. + * cgraph.h (cgraph_edge::get): New method. + * symbol-summary.h (symtab_removal): Use it. + (symtab_duplication): Likewise. + (call_summary::hashable_uid): Remove. + +2018-06-08 Martin Liska + + * ipa-inline-analysis.c (inline_edge_removal_hook): Remove. + (initialize_growth_caches): Remove. + (free_growth_caches): Likewise. + (do_estimate_edge_time): Use edge_growth_cache. + (do_estimate_edge_size): Likewise. + (do_estimate_edge_hints): Likewise. + * ipa-inline.c (reset_edge_caches): Likewise. + (recursive_inlining): Likewise. + (inline_small_functions): Likewise. + * ipa-inline.h (initialize_growth_caches): Remove. + (estimate_edge_size): Likewise. + (estimate_edge_time): Likewise. + (estimate_edge_hints): Likewise. + (reset_edge_growth_cache): Likewise. + * symbol-summary.h (call_summary::remove): New method. + +2018-06-08 Martin Liska + + * ipa-cp.c (class edge_clone_summary): New summary. + (grow_edge_clone_vectors): Remove. + (ipcp_edge_duplication_hook): Remove. + (class edge_clone_summary_t): New call_summary class. + (ipcp_edge_removal_hook): Remove. + (edge_clone_summary_t::duplicate): New function. + (get_next_cgraph_edge_clone): Use edge_clone_summaries. + (create_specialized_node): Likewise. + (ipcp_driver): Initialize edge_clone_summaries and do not + register hooks. + +2018-06-08 Martin Liska + + * symbol-summary.h (get): New function. + (call_summary::m_initialize_when_cloning): New class member. + +2018-06-08 Martin Liska + + * cgraph.c (cgraph_node::remove): Do not recycle uid. + * cgraph.h (symbol_table::release_symbol): Do not pass uid. + (symbol_table::allocate_cgraph_symbol): Do not set uid. + * passes.c (uid_hash_t): Record removed_nodes by their uids. + (remove_cgraph_node_from_order): Use the removed_nodes set. + (do_per_function_toporder): Likwise. + * symbol-summary.h (symtab_insertion): Use cgraph_node::uid + instead of summary_uid. + (symtab_removal): Likewise. + (symtab_duplication): Likewise. + +2018-06-08 Martin Liska + + * ipa-cp.c (ipcp_store_bits_results): Use + ipcp_transformation_sum. + (ipcp_store_vr_results): Likewise. + * ipa-prop.c (ipcp_grow_transformations_if_necessary): Renamed + to ... + (ipcp_transformation_initialize): ... this. + (ipa_set_node_agg_value_chain): + (ipa_node_params_t::duplicate): Use ipcp_transformation_sum. + (write_ipcp_transformation_info): Likewise. + (read_ipcp_transformation_info): Likewise. + (ipcp_update_bits): Likewise. + (ipcp_update_vr): Likewise. + (ipcp_transform_function): Likewise. + * ipa-prop.h: Rename ipcp_transformation_summary to + ipcp_transformation. + (class ipcp_transformation_t): New function summary. + (ipcp_get_transformation_summary): Use ipcp_transformation_sum. + (ipa_get_agg_replacements_for_node): Likewise. + +2018-06-08 Martin Liska + + * ipa-pure-const.c (struct funct_state_d): Do it class instead + of struct. + (class funct_state_summary_t): New function_summary class. + (has_function_state): Remove. + (get_function_state): Likewise. + (set_function_state): Likewise. + (add_new_function): Likewise. + (funct_state_summary_t::insert): New function. + (duplicate_node_data): Remove. + (remove_node_data): Remove. + (funct_state_summary_t::duplicate): New function. + (register_hooks): Create new funct_state_summaries. + (pure_const_generate_summary): Use it. + (pure_const_write_summary): Likewise. + (pure_const_read_summary): Likewise. + (propagate_pure_const): Likewise. + (propagate_nothrow): Likewise. + (dump_malloc_lattice): Likewise. + (propagate_malloc): Likewise. + (execute): Do not register hooks, just remove summary + instead. + (pass_ipa_pure_const::pass_ipa_pure_const): Simplify + constructor. + +2018-06-08 Martin Liska + + * ipa-reference.c (remove_node_data): Remove. + (duplicate_node_data): Likewise. + (class ipa_ref_var_info_summary_t): New class. + (class ipa_ref_opt_summary_t): Likewise. + (get_reference_vars_info): Use ipa_ref_var_info_summaries. + (get_reference_optimization_summary): Use + ipa_ref_opt_sum_summaries. + (set_reference_vars_info): Remove. + (set_reference_optimization_summary): Likewise. + (ipa_init): Create summaries. + (init_function_info): Use function summary. + (ipa_ref_opt_summary_t::duplicate): New function. + (ipa_ref_opt_summary_t::remove): New function. + (get_read_write_all_from_node): Fix GNU coding style. + (propagate): Use function summary. + (write_node_summary_p): Fix GNU coding style. + (stream_out_bitmap): Likewise. + (ipa_reference_read_optimization_summary): Use function summary. + (ipa_reference_c_finalize): Do not release hooks. + +2018-06-08 Martin Liska + + * ipa-fnsummary.c (dump_ipa_call_summary): Use ::get method. + (analyze_function_body): Extract multiple calls of get_create. + * ipa-inline-analysis.c (simple_edge_hints): Likewise. + * ipa-inline.c (recursive_inlining): Use ::get method. + * ipa-inline.h (estimate_edge_growth): Likewise. + +2018-06-08 Martin Liska + + * hsa-common.h (enum hsa_function_kind): Rename HSA_NONE to + HSA_INVALID. + (hsa_function_summary::hsa_function_summary): Use the new enum + value. + (hsa_gpu_implementation_p): Use hsa_summaries::get. + * hsa-gen.c (hsa_get_host_function): Likewise. + (get_brig_function_name): Likewise. + * ipa-hsa.c (process_hsa_functions): Likewise. + (ipa_hsa_write_summary): Likewise. + * symbol-summary.h (symtab_duplication): Use ::get function/ + (get): New function. + +2018-06-08 Martin Liska + + * config/i386/i386.c (ix86_can_inline_p): Use get_create instead + of get. + * hsa-common.c (hsa_summary_t::link_functions): Likewise. + (hsa_register_kernel): Likewise. + * hsa-common.h (hsa_gpu_implementation_p): Likewise. + * hsa-gen.c (hsa_get_host_function): Likewise. + (get_brig_function_name): Likewise. + (generate_hsa): Likewise. + (pass_gen_hsail::execute): Likewise. + * ipa-cp.c (ipcp_cloning_candidate_p): Likewise. + (devirtualization_time_bonus): Likewise. + (ipcp_propagate_stage): Likewise. + * ipa-fnsummary.c (redirect_to_unreachable): Likewise. + (edge_set_predicate): Likewise. + (evaluate_conditions_for_known_args): Likewise. + (evaluate_properties_for_edge): Likewise. + (ipa_fn_summary::reset): Likewise. + (ipa_fn_summary_t::duplicate): Likewise. + (dump_ipa_call_summary): Likewise. + (ipa_dump_fn_summary): Likewise. + (analyze_function_body): Likewise. + (compute_fn_summary): Likewise. + (estimate_edge_devirt_benefit): Likewise. + (estimate_edge_size_and_time): Likewise. + (estimate_calls_size_and_time): Likewise. + (estimate_node_size_and_time): Likewise. + (inline_update_callee_summaries): Likewise. + (remap_edge_change_prob): Likewise. + (remap_edge_summaries): Likewise. + (ipa_merge_fn_summary_after_inlining): Likewise. + (ipa_update_overall_fn_summary): Likewise. + (read_ipa_call_summary): Likewise. + (inline_read_section): Likewise. + (write_ipa_call_summary): Likewise. + (ipa_fn_summary_write): Likewise. + (ipa_free_fn_summary): Likewise. + * ipa-hsa.c (process_hsa_functions): Likewise. + (ipa_hsa_write_summary): Likewise. + (ipa_hsa_read_section): Likewise. + * ipa-icf.c (sem_function::merge): Likewise. + * ipa-inline-analysis.c (simple_edge_hints): Likewise. + (do_estimate_edge_time): Likewise. + (estimate_size_after_inlining): Likewise. + (estimate_growth): Likewise. + (growth_likely_positive): Likewise. + * ipa-inline-transform.c (clone_inlined_nodes): Likewise. + (inline_call): Likewise. + * ipa-inline.c (caller_growth_limits): Likewise. + (can_inline_edge_p): Likewise. + (can_inline_edge_by_limits_p): Likewise. + (compute_uninlined_call_time): Likewise. + (compute_inlined_call_time): Likewise. + (want_inline_small_function_p): Likewise. + (edge_badness): Likewise. + (update_caller_keys): Likewise. + (update_callee_keys): Likewise. + (recursive_inlining): Likewise. + (inline_small_functions): Likewise. + (inline_to_all_callers_1): Likewise. + (dump_overall_stats): Likewise. + (early_inline_small_functions): Likewise. + (early_inliner): Likewise. + * ipa-inline.h (estimate_edge_growth): Likewise. + * ipa-profile.c (ipa_propagate_frequency_1): Likewise. + * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. + * ipa-prop.h (IPA_NODE_REF): Likewise. + (IPA_EDGE_REF): Likewise. + * ipa-pure-const.c (malloc_candidate_p): Likewise. + (propagate_malloc): Likewise. + * ipa-split.c (execute_split_functions): Likewise. + * symbol-summary.h: Rename get to get_create. + (get): Likewise. + (get_create): Likewise. + * tree-sra.c (ipa_sra_preliminary_function_checks): Likewise. + +2018-06-08 Martin Liska + + * symbol-summary.h (release): Move definition out of class + declaration. + (symtab_removal): Likewise. + (symtab_duplication): Likewise. + +2018-06-08 Martin Liska + + * symbol-summary.h (function_summary): Move constructor + implementation out of class declaration. + (release): Likewise. + (symtab_insertion): Likewise. + (symtab_removal): Likewise. + (symtab_duplication): Likewise. + (get): Likewise. + +2018-06-08 Martin Liska + + * Makefile.in: Remove support for MPX (macros, related functions, + fields in cgraph_node, ...). + * builtin-types.def (BT_BND): Likewise. + (BT_FN_BND_CONST_PTR): Likewise. + (BT_FN_CONST_PTR_BND): Likewise. + (BT_FN_VOID_PTR_BND): Likewise. + (BT_FN_BND_CONST_PTR_SIZE): Likewise. + (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): Likewise. + * builtins.c (expand_builtin_memcpy_with_bounds): Likewise. + (expand_builtin_mempcpy_with_bounds): Likewise. + (expand_builtin_memset_with_bounds): Likewise. + (expand_builtin_memset_args): Likewise. + (std_expand_builtin_va_start): Likewise. + (expand_builtin): Likewise. + (expand_builtin_with_bounds): Likewise. + * builtins.def (DEF_BUILTIN_CHKP): Likewise. + (DEF_LIB_BUILTIN_CHKP): Likewise. + (DEF_EXT_LIB_BUILTIN_CHKP): Likewise. + (DEF_CHKP_BUILTIN): Likewise. + (BUILT_IN_MEMCPY): Likewise. + (BUILT_IN_MEMMOVE): Likewise. + (BUILT_IN_MEMPCPY): Likewise. + (BUILT_IN_MEMSET): Likewise. + (BUILT_IN_STPCPY): Likewise. + (BUILT_IN_STRCAT): Likewise. + (BUILT_IN_STRCHR): Likewise. + (BUILT_IN_STRCPY): Likewise. + (BUILT_IN_STRLEN): Likewise. + (BUILT_IN_MEMCPY_CHK): Likewise. + (BUILT_IN_MEMMOVE_CHK): Likewise. + (BUILT_IN_MEMPCPY_CHK): Likewise. + (BUILT_IN_MEMSET_CHK): Likewise. + (BUILT_IN_STPCPY_CHK): Likewise. + (BUILT_IN_STRCAT_CHK): Likewise. + (BUILT_IN_STRCPY_CHK): Likewise. + * calls.c (store_bounds): Likewise. + (emit_call_1): Likewise. + (special_function_p): Likewise. + (maybe_warn_nonstring_arg): Likewise. + (initialize_argument_information): Likewise. + (finalize_must_preallocate): Likewise. + (compute_argument_addresses): Likewise. + (expand_call): Likewise. + * cfgexpand.c (expand_call_stmt): Likewise. + (expand_return): Likewise. + (expand_gimple_stmt_1): Likewise. + (pass_expand::execute): Likewise. + * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise. + (cgraph_node::remove): Likewise. + (cgraph_node::dump): Likewise. + (cgraph_node::verify_node): Likewise. + * cgraph.h (chkp_function_instrumented_p): Likewise. + (symtab_node::get_alias_target): Likewise. + (cgraph_node::can_remove_if_no_direct_calls_and_refs_p): Likewise. + (cgraph_local_p): Likewise. + * cgraphbuild.c (cgraph_edge::rebuild_edges): Likewise. + (cgraph_edge::rebuild_references): Likewise. + * cgraphunit.c (varpool_node::finalize_decl): Likewise. + (walk_polymorphic_call_targets): Likewise. + (cgraph_node::expand_thunk): Likewise. + (symbol_table::output_weakrefs): Likewise. + * common/config/i386/i386-common.c (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Likewise. + (ix86_handle_option): Likewise. + * config/i386/constraints.md: Likewise. + * config/i386/i386-builtin-types.def (BND): Likewise. + (VOID): Likewise. + (PVOID): Likewise. + (ULONG): Likewise. + * config/i386/i386-builtin.def (BDESC_END): Likewise. + (BDESC_FIRST): Likewise. + (BDESC): Likewise. + * config/i386/i386-c.c (ix86_target_macros_internal): Likewise. + * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): Likewise. + * config/i386/i386.c (enum reg_class): Likewise. + (ix86_target_string): Likewise. + (ix86_option_override_internal): Likewise. + (ix86_conditional_register_usage): Likewise. + (ix86_valid_target_attribute_inner_p): Likewise. + (ix86_set_indirect_branch_type): Likewise. + (ix86_set_current_function): Likewise. + (ix86_function_arg_regno_p): Likewise. + (init_cumulative_args): Likewise. + (ix86_function_arg_advance): Likewise. + (ix86_function_arg): Likewise. + (ix86_pass_by_reference): Likewise. + (ix86_function_value_regno_p): Likewise. + (ix86_function_value_1): Likewise. + (ix86_function_value_bounds): Likewise. + (ix86_return_in_memory): Likewise. + (ix86_setup_incoming_vararg_bounds): Likewise. + (ix86_va_start): Likewise. + (indirect_thunk_need_prefix): Likewise. + (print_reg): Likewise. + (ix86_print_operand): Likewise. + (ix86_expand_call): Likewise. + (ix86_output_function_return): Likewise. + (reg_encoded_number): Likewise. + (BDESC_VERIFYS): Likewise. + (ix86_init_mpx_builtins): Likewise. + (ix86_init_builtins): Likewise. + (ix86_emit_cmove): Likewise. + (ix86_emit_move_max): Likewise. + (ix86_expand_builtin): Likewise. + (ix86_builtin_mpx_function): Likewise. + (ix86_get_arg_address_for_bt): Likewise. + (ix86_load_bounds): Likewise. + (ix86_store_bounds): Likewise. + (ix86_load_returned_bounds): Likewise. + (ix86_store_returned_bounds): Likewise. + (ix86_class_likely_spilled_p): Likewise. + (ix86_hard_regno_mode_ok): Likewise. + (x86_order_regs_for_local_alloc): Likewise. + (ix86_mitigate_rop): Likewise. + (ix86_bnd_prefixed_insn_p): Likewise. + (ix86_mpx_bound_mode): Likewise. + (ix86_make_bounds_constant): Likewise. + (ix86_initialize_bounds): Likewise. + (TARGET_LOAD_BOUNDS_FOR_ARG): Likewise. + (TARGET_STORE_BOUNDS_FOR_ARG): Likewise. + (TARGET_LOAD_RETURNED_BOUNDS): Likewise. + (TARGET_STORE_RETURNED_BOUNDS): Likewise. + (TARGET_CHKP_BOUND_MODE): Likewise. + (TARGET_BUILTIN_CHKP_FUNCTION): Likewise. + (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): Likewise. + (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): Likewise. + (TARGET_CHKP_INITIALIZE_BOUNDS): Likewise. + * config/i386/i386.h (TARGET_MPX): Likewise. + (TARGET_MPX_P): Likewise. + (VALID_BND_REG_MODE): Likewise. + (FIRST_BND_REG): Likewise. + (LAST_BND_REG): Likewise. + (enum reg_class): Likewise. + (BND_REG_P): Likewise. + (BND_REGNO_P): Likewise. + (BNDmode): Likewise. + (ADJUST_INSN_LENGTH): Likewise. + * config/i386/i386.md: Likewise. + * config/i386/i386.opt: Likewise. + * config/i386/linux-common.h (LIBMPX_LIBS): Likewise. + (defined): Likewise. + (LINK_MPX): Likewise. + (MPX_SPEC): Likewise. + (LIBMPX_SPEC): Likewise. + (LIBMPXWRAPPERS_SPEC): Likewise. + (CHKP_SPEC): Likewise. + * config/i386/predicates.md: Likewise. + * dbxout.c (dbxout_type): Likewise. + * doc/extend.texi: Likewise. + * doc/invoke.texi: Likewise. + * doc/md.texi: Likewise. + * doc/tm.texi: Likewise. + * doc/tm.texi.in: Likewise. + * dwarf2out.c (is_base_type): Likewise. + (gen_formal_types_die): Likewise. + (gen_subprogram_die): Likewise. + (gen_type_die_with_usage): Likewise. + (gen_decl_die): Likewise. + (dwarf2out_late_global_decl): Likewise. + * expr.c (expand_assignment): Likewise. + (emit_storent_insn): Likewise. + (store_expr_with_bounds): Likewise. + (store_expr): Likewise. + (expand_expr_real_1): Likewise. + * expr.h (store_expr_with_bounds): Likewise. + * function.c (use_register_for_decl): Likewise. + (struct bounds_parm_data): Likewise. + (assign_parms_augmented_arg_list): Likewise. + (assign_parm_find_entry_rtl): Likewise. + (assign_parm_is_stack_parm): Likewise. + (assign_parm_load_bounds): Likewise. + (assign_bounds): Likewise. + (assign_parms): Likewise. + (expand_function_start): Likewise. + * gcc.c (CHKP_SPEC): Likewise. + * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise. + * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Likewise. + (wrestrict_dom_walker::check_call): Likewise. + * gimple.c (gimple_build_call_from_tree): Likewise. + * gimple.h (enum gf_mask): Likewise. + (gimple_call_with_bounds_p): Likewise. + (gimple_call_set_with_bounds): Likewise. + * gimplify.c (gimplify_init_constructor): Likewise. + * ipa-cp.c (initialize_node_lattices): Likewise. + (propagate_constants_across_call): Likewise. + (find_more_scalar_values_for_callers_subset): Likewise. + * ipa-hsa.c (process_hsa_functions): Likewise. + * ipa-icf-gimple.c (func_checker::compare_gimple_call): Likewise. + * ipa-icf.c (sem_function::merge): Likewise. + * ipa-inline.c (early_inliner): Likewise. + * ipa-pure-const.c (warn_function_noreturn): Likewise. + (warn_function_cold): Likewise. + (propagate_pure_const): Likewise. + * ipa-ref.h (enum GTY): Likewise. + * ipa-split.c (find_retbnd): Likewise. + (consider_split): Likewise. + (split_function): Likewise. + * ipa-visibility.c (cgraph_externally_visible_p): Likewise. + * ipa.c (walk_polymorphic_call_targets): Likewise. + (symbol_table::remove_unreachable_nodes): Likewise. + (process_references): Likewise. + (cgraph_build_static_cdtor_1): Likewise. + * lto-cgraph.c (lto_output_node): Likewise. + (output_refs): Likewise. + (compute_ltrans_boundary): Likewise. + (input_overwrite_node): Likewise. + (input_node): Likewise. + (input_cgraph_1): Likewise. + * params.def (PARAM_CHKP_MAX_CTOR_SIZE): Likewise. + * passes.c (pass_manager::execute_early_local_passes): Likewise. + (class pass_chkp_instrumentation_passes): Likewise. + (make_pass_chkp_instrumentation_passes): Likewise. + * passes.def: Likewise. + * rtl.h (struct GTY): Likewise. + (CALL_EXPR_WITH_BOUNDS_P): Likewise. + * stor-layout.c (layout_type): Likewise. + * symtab.c: Likewise. + * target.def: Likewise. + * targhooks.c (default_chkp_bound_type): Likewise. + (default_chkp_bound_mode): Likewise. + (default_builtin_chkp_function): Likewise. + (default_chkp_function_value_bounds): Likewise. + (default_chkp_make_bounds_constant): Likewise. + (default_chkp_initialize_bounds): Likewise. + * targhooks.h (default_chkp_bound_type): Likewise. + (default_chkp_bound_mode): Likewise. + (default_builtin_chkp_function): Likewise. + (default_chkp_function_value_bounds): Likewise. + (default_chkp_make_bounds_constant): Likewise. + (default_chkp_initialize_bounds): Likewise. + * toplev.c (compile_file): Likewise. + (process_options): Likewise. + * tree-core.h (DEF_BUILTIN): Likewise. + (DEF_BUILTIN_CHKP): Likewise. + * tree-inline.c (declare_return_variable): Likewise. + (remap_gimple_stmt): Likewise. + (copy_bb): Likewise. + (initialize_inlined_parameters): Likewise. + (expand_call_inline): Likewise. + * tree-pass.h (make_pass_ipa_chkp_versioning): Likewise. + (make_pass_ipa_chkp_early_produce_thunks): Likewise. + (make_pass_ipa_chkp_produce_thunks): Likewise. + (make_pass_chkp): Likewise. + (make_pass_chkp_opt): Likewise. + (make_pass_chkp_instrumentation_passes): Likewise. + * tree-pretty-print.c (dump_generic_node): Likewise. + * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Likewise. + * tree-ssa-dce.c (propagate_necessity): Likewise. + (eliminate_unnecessary_stmts): Likewise. + * tree-ssa-pre.c (create_expression_by_pieces): Likewise. + * tree-ssa-sccvn.c (copy_reference_ops_from_call): Likewise. + * tree-ssa-sccvn.h: Likewise. + * tree-ssa-strlen.c (get_string_length): Likewise. + (valid_builtin_call): Likewise. + (adjust_last_stmt): Likewise. + (handle_builtin_strchr): Likewise. + (handle_builtin_strcpy): Likewise. + (handle_builtin_stxncpy): Likewise. + (handle_builtin_memcpy): Likewise. + (handle_builtin_strcat): Likewise. + (strlen_check_and_optimize_stmt): Likewise. + * tree-stdarg.c (expand_ifn_va_arg_1): Likewise. + * tree-streamer-in.c: Likewise. + * tree-streamer.c (record_common_node): Likewise. + * tree.c (tree_code_size): Likewise. + (wide_int_to_tree_1): Likewise. + (type_contains_placeholder_1): Likewise. + (build_common_tree_nodes): Likewise. + * tree.def (POINTER_BOUNDS_TYPE): Likewise. + * tree.h (POINTER_BOUNDS_TYPE_P): Likewise. + (POINTER_BOUNDS_P): Likewise. + (BOUNDED_TYPE_P): Likewise. + (BOUNDED_P): Likewise. + (CALL_WITH_BOUNDS_P): Likewise. + (pointer_bounds_type_node): Likewise. + * value-prof.c (gimple_ic): Likewise. + * var-tracking.c (vt_add_function_parameters): Likewise. + * varasm.c (make_decl_rtl): Likewise. + (assemble_start_function): Likewise. + (output_constant): Likewise. + (maybe_assemble_visibility): Likewise. + * varpool.c (ctor_for_folding): Likewise. + * chkp-builtins.def: Remove. + * ipa-chkp.c: Remove. + * ipa-chkp.h: Remove. + * rtl-chkp.c: Remove. + * rtl-chkp.h: Remove. + * tree-chkp-opt.c: Remove. + * tree-chkp.c: Remove. + * tree-chkp.h: Remove. + +2018-06-07 Carl Love + + * config/rs6000/vsx.md (vextract_fp_from_shorth, + vextract_fp_from_shortl): Add BE support. + +2018-06-07 Paul Koning + + * compare-elim.c (try_merge_compare): Don't merge compare if + address contains a side effect. + (try_eliminate_compare): Likewise. + +2018-06-07 Olga Makhotina + + * config.gcc: Support "tremont". + * config/i386/driver-i386.c (host_detect_local_cpu): Detect "tremont". + * config/i386/i386-c.c (ix86_target_macros_internal): Handle + PROCESSOR_TREMONT. + * config/i386/i386.c (m_TREMONT): Define. + (processor_target_table): Add "tremont". + (PTA_TREMONT): Define. + (ix86_lea_outperforms): Add TARGET_TREMONT. + (get_builtin_code_for_version): Handle PROCESSOR_TREMONT. + (fold_builtin_cpu): Add M_INTEL_TREMONT, replace M_INTEL_GOLDMONT + and M_INTEL_GOLDMONT_PLUS. + (fold_builtin_cpu): Add "tremont". + (ix86_add_stmt_cost): Add TARGET_TREMONT. + (ix86_option_override_internal): Add "tremont". + * config/i386/i386.h (processor_costs): Define TARGET_TREMONT. + (processor_type): Add PROCESSOR_TREMONT. + * config/i386/x86-tune.def: Add m_TREMONT. + * doc/invoke.texi: Add tremont as x86 -march=/-mtune= CPU type. + +2018-06-07 Jozef Lawrynowicz + + * config/msp430/msp430.c (msp430_mcu_name): Set the "i" in the + symbol defined for msp430i* devices to be lower case. + +2018-06-07 Richard Biener + + * graphite-sese-to-poly.c (extract_affine): Avoid unneded + wrapping. Properly wrap the result of a BIT_NOT_EXPR. + Properly wrap signed arithmetic if overflow wraps. + +2018-06-07 Jakub Jelinek + + PR tree-optimization/69615 + * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If rhs2 is lhs + of a cast from a same precision integral SSA_NAME in a bb dominated + by first_bb, retry with rhs2 set to the rhs1 of the cast. Don't emit + cast to utype if rhs2 has already a compatible type. + +2018-06-07 Richard Biener + + PR tree-optimization/85935 + * graphite-scop-detection.c (find_params_in_bb): Analyze + condition operands with respect to the correct loop. Assert + the analysis doesn't fail. + +2018-06-04 Carl Love + + * config/rs6000/vsx.md (first_match_index_): Calculate index + using natural element order. Use gen_lshrsi3 instead of gen_ashrsi3 + as it is slightly cheaper. + (first_match_or_eos_index_): + Calculate index using natural element order. + (first_match_index_): + Calculate index using natural element order. + (first_match_or_eos_index_): + Calculate index using natural order. + (define_insn vclzlsbb): Change to define_insn vclzlsbb_. + for BE and LE modes. + * config/rs6000/rs6000-c.c: Rename P9V_BUILTIN_VCLZLSBB, + P9V_BUILTIN_VCLZLSBB_V16QI. + * config/rs6000/rs6000-builtin.def: Make VCLZLSBB mode + specific. + +2018-06-06 Kelvin Nilsen + + * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust + indentation and line wrap for many prototypes. Add missing + @smallexample directives around block of prototypes for vec_xl and + vec_xst. + +2018-06-05 Michael Meissner + + * config/rs6000/rs6000.c (rs6000_passes_ieee128): New boolean to + track if we pass or return IEEE 128-bit floating point. + (ieee128_mangling_gcc_8_1): New boolean to say whether to generate + C++ mangling that is compatible with GCC 8.1. + (TARGET_ASM_GLOBALIZE_DECL_NAME): Override target hook. + (init_cumulative_args): Note if we pass or return IEEE 128-bit + floating point types. + (rs6000_function_arg_advance_1): Likewise. + (rs6000_mangle_type): Optionally generate mangled names that match + what GCC 8.1 generated for IEEE 128-bit floating point types. + (rs6000_globalize_decl_name): If we have an external function that + passes or returns IEEE 128-bit types, generate a weak reference + from the mangled name used in GCC 8.1 to the current mangled + name. + (rs6000_init_builtins): Make __ibm128 use the long double type if + long double is IBM extended double. Make __float128 use the long + double type if long double is IEEE 128-bit. + + PR target/85657 + * config/rs6000/rs6000-builtin.def (BU_IBM128_2): New helper + macro for __ibm128 built-in functions. + (PACK_IF): Add __ibm128 pack/unpack functions. + (UNPACK_IF): Likewise. + * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Do not + enable long double built-in functions if long double is IEEE + 128-bit floating point. + (rs6000_invalid_builtin): Update long double built-in function + error message. + (rs6000_expand_builtin): For PACK_IF and UNPACK_IF built-in + functions, adjust the built-in function to use the long double + built-in function if __ibm128 and long double are the same type. + * doc/extend.texi (PowerPC builtins): Update documention for + __builtin_{,un}pack_longdouble. Add documentation for + __builtin_{,un}pack_ibm128. + +2018-06-06 Jim Wilson + + * config/riscv/riscv.c (enum riscv_privilege_levels): New. + (struct machine_function): New field interrupt_mode. + (riscv_handle_type_attribute): New function. Add forward declaration. + (riscv_attribute_table) : Use riscv_handle_type_attribute. + (riscv_expand_epilogue): Check interrupt_mode field. + (riscv_set_current_function): Check interrupt attribute args and + set interrupt_mode field. + * config/riscv/riscv.md (UNSPECV_SRET, UNSPECV_URET): New. + (riscv_sret, riscv_uret): New. + * doc/extend.texi (RISC-V Function Attributes) : Document + new arguments to interrupt attribute. + +2018-06-06 Peter Bergner + + PR target/63177 + * /config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mpower9. + Don't handle -mcpu=power8 if -mpower9-vector is also used. + +2018-06-06 Kelvin Nilsen + + * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_LD, + VSX_BUILTIN_VEC_ST): Add comment to explain non-traditional uses. + * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove + several redundant entries. + +2018-06-06 David Malcolm + + * config/i386/i386-protos.h (ix86_expand_call): Strengthen return + type from "rtx" to "rtx_insn *". + * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise + for local "call_insn", removing cast. + (ix86_expand_call): Likewise, introducing a "call_insn" local. + +2018-06-06 Eric Botcazou + + PR tree-optimization/86066 + * gimple-ssa-store-merging.c (process_store): Do not bypass BIT_NOT_EXPR + for BIT_INSERT_EXPR stores. + +2018-06-06 Richard Biener + + PR tree-optimization/86062 + * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle arbitrary + component refs ontop + of to be offsetted base. + +2018-06-06 Jozef Lawrynowicz + + * config/msp430/msp430.c (msp430_attr): Allow interrupt handlers + to be static and remove check on interrupt attribute name. + +2018-06-05 Kelvin Nilsen + + * doc/extend.texi (PowerPC AltiVec Built-in Functions): Remove + volatile qualifier from vec_lvsl and vec_lvsr argument prototypes. + +2018-06-05 Steve Ellcey + + PR target/79924 + * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): Remove + second argument. + * config/aarch64/aarch64-protos..c (aarch64_err_no_fpadvsimd): + Remove second argument, change how error is called. + (aarch64_layout_arg): Remove second argument from + aarch64_err_no_fpadvsimd call. + (aarch64_init_cumulative_args): Ditto. + (aarch64_gimplify_va_arg_expr): Ditto. + * config/aarch64/aarch64.md (mov): Ditto. + +2018-06-05 Uros Bizjak + + * config/i386/i386.md (simple_return_indirect_internal): New expander. + (*simple_return_indirect_internal): Rename from + simple_return_indirect_internal. Use W mode iterator. + (rstorssp): New expander. + (*rstorssp): Rename from rstorssp. Use P mode iterator. + (clrssbsy): New expander. + (*clrssbsy): Rename from clrssbsy. Use P mode iterator. + +2018-06-05 Andre Vieira + + * config/arm/arm_cmse.h (cmse_nsfptr_create): Change typeof to + __typeof__. + (cmse_check_pointed_object): Likewise. + +2018-06-05 Martin Liska + + PR gcov-profile/47618 + * doc/invoke.texi: Document how -fprofile-dir format + is extended. + +2018-06-05 Richard Biener + + * tree-cfgcleanup.c (cleanup_control_flow_pre): For edge + removal pretend DOM info isn't available so we do not update + it and only remove edges, not dominated blocks. Actually free + DOM info in case we removed something. Remove unreachable blocks. + (mfb_keep_latches): Work with either DOM info or marked backedges. + (cleanup_tree_cfg_noloop): Do not remove unreachable blocks + first. Mark backedges if DOM info isn't available. + (Re-)compute DOM info after cleanup_control_flow_pre. + +2018-06-05 Richard Biener + + * tree-cfg.c (struct locus_discrim_map): Store line, not location. + (locus_discrim_hasher::hash): Adjust. + (locus_discrim_hasher::equal): Likewise. + (next_discriminator_for_locus): Work on line directly. + (same_line_p): Pass in expanded locus1 as well. + (assign_discriminators): Avoid redundant location expansions. + +2018-06-05 Richard Biener + + PR tree-optimization/86046 + * tree-ssa.c (maybe_optimize_var): Clear DECL_GIMPLE_REG_P + if required after clearing TREE_ADDRESSABLE. + +2018-06-05 Richard Biener + + PR tree-optimization/86047 + * tree-ssa-loop.c (for_each_index): Glob handling of all + decls and constants and really handle all of them. + +2018-06-05 Kyrylo Tkachov + + PR target/81497 + * config/arm/arm-builtins.c (arm_type_qualifiers): Add + qualifier_void_pointer and qualifier_const_void_pointer. + (arm_ldc_qualifiers, arm_stc_qualifiers): Use the above. + (arm_init_builtins): Handle the above. + * config/arm/arm_acle.h (__arm_cdp, __arm_ldc, __arm_ldcl, __arm_stc, + __arm_stcl, __arm_mcr, __arm_cdp2, __arm_ldc2, __arm_ldcl2, __arm_stc2, + __arm_stcl2,__arm_mcr2, __arm_mcrr, __arm_mcrr2): Remove return for + void intrinsics. + +2018-06-05 Martin Liska + + * auto-profile.c (read_autofdo_file): Do not use + gcov_ctr_summary struct. + (afdo_callsite_hot_enough_for_early_inline): Likewise. + * coverage.c (struct counts_entry): Likewise. + (read_counts_file): Read just single summary entry. + (get_coverage_counts): Use gcov_summary struct. + * coverage.h (get_coverage_counts): Likewise. + * gcov-dump.c (dump_working_sets): Likewise. + (tag_summary): Dump just single summary. + * gcov-io.c (gcov_write_summary): Write just histogram + summary. + (gcov_read_summary): Read just single summary. + (compute_working_sets): Use gcov_summary struct. + * gcov-io.h (GCOV_TAG_SUMMARY_LENGTH): Remove usage + of GCOV_COUNTERS_SUMMABLE. + (GCOV_COUNTERS_SUMMABLE): Remove. + (GCOV_FIRST_VALUE_COUNTER): Replace with + GCOV_COUNTER_V_INTERVAL. + (struct gcov_ctr_summary): Remove. + (struct gcov_summary): Directly use fields of former + gcov_ctr_summary. + (compute_working_sets): Use gcov_summary struct. + * gcov.c (read_count_file): Do not use ctrs fields. + * lto-cgraph.c (merge_profile_summaries): Use gcov_summary + struct. + * lto-streamer.h (struct GTY): Make profile_info gcov_summary + struct. + * profile.c: Likewise. + * profile.h: Likewise. + +2018-06-05 Martin Liska + + PR gcov-profile/84846 + * gcov.c (output_lines): Print working directory only + in intermediate format. + +2018-06-05 Andreas Krebbel + + * config/s390/s390-builtin-types.def: Add void function type. + * config/s390/s390-builtins.def: Use the function type for the + tbeginc builtin. + +2018-06-04 Jim Wilson + + * config/riscv/riscv-protos.h (riscv_expand_epilogue): Change bool arg + to int. + * config/riscv/riscv.c (riscv_for_each_saved_reg): New args epilogue + and maybe_eh_return. Change regno to unsigned int. Use new args to + handle EH_RETURN_DATA_REGNO registers properly. + (riscv_expand_prologue): Pass new args to riscv_for_each_saved_reg. + (riscv_expand_epilogue): Update comment. Change argument name and + type. Update code to use new name and type. Pass new args to + riscv_for_each_saved_reg. Only use EH_RETURN_STACKADJ_RTX when + EXCEPTION_RETURN. + * config/riscv/riscv.md (NORMAL_RETURN): New. + (SIBCALL_RETURN, EXCEPTION_RETURN): New. + (epilogue, sibcall_epilogue): Update riscv_expand_epilogue arg. + (eh_return): Call gen_eh_return_internal and emit barrier. + (eh_return_internal): Call riscv_expand_epilogue. + +2018-06-04 Eric Botcazou + + * gimple-ssa-store-merging.c (struct merged_store_group): Move up + bit_insertion field and declare can_be_merged_into method. + (merged_store_group::can_be_merged_into): New method. + (imm_store_chain_info::coalesce_immediate): Call it to decide whether + consecutive non-overlapping stores can be merged. Turn MEM_REF stores + into BIT_INSERT_EXPR stores if the group contains a non-MEM_REF store. + +2018-06-04 Richard Biener + + PR tree-optimization/85955 + * builtins.c (fold_builtin_sincos): Convert pointers to + destination to appropriate type before dereferencing. + +2018-06-04 Segher Boessenkool + + * config/rs6000/rs6000.md (abs2 for FLOAT128): Handle IFmode. + +2018-06-04 Richard Sandiford + + * expr.c (expand_expr_real_1): Force the operand into memory if + its TYPE_MODE is BLKmode and if there is no integer mode for + the number of bits being extracted. + +2018-06-04 Jakub Jelinek + + PR target/85832 + PR target/86036 + * config/i386/sse.md (_eq3_1): + Use vptestnm rather than vptestm in (=Yc,v,C) variant. + +2018-06-04 Richard Biener + + * tree-cfgcleanup.c (cleanup_tree_cfg_1): Fold into... + (cleanup_tree_cfg_noloop): ... single caller. Do + start_recording_case_labels later. + +2018-06-04 Sebastian Peryt + + * config/i386/cldemoteintrin.h: Change define from _X86INTRIN_H_INCLUDED + to _IMMINTRIN_H_INCLUDED. + * config/i386/pconfigintrin.h: Ditto. + * config/i386/waitpkgintrin.h: Ditto. + * config/i386/immintrin.h: Add includes for sgxintrin.h, + pconfigintrin.h, waitpkgintrin.h and cldemoteintrin.h. + * config/i386/x86intrin.h: Remove includes for mintrin.h, xmmintrin.h, + emmintrin.h, pmmintrin.h, tmmintrin.h, smmintrin.h, wmmintrin.h, + bmiintrin.h, bmi2intrin.h, lzcntintrin.h, sgxintrin.h, pconfigintrin.h, + waitpkgintrin.h and cldemoteintrin.h. + +2018-06-04 Richard Biener + + PR tree-optimization/86038 + * tracer.c (find_best_successor): Check probability for + being initialized, bail out if not. + +2018-06-04 Richard Earnshaw + + PR target/86003 + * config/arm/arm-cpus.in (ALL_QUIRKS): Add xscale feature to the list + of bits to ignore when comparing architectures. + +2018-06-04 Jakub Jelinek + + PR tree-optimization/69615 + * fold-const.c (merge_ranges): If range1 is - [x, x] and x is the + maximum or minimum of the type, try to merge it also as if + range1 is + [-, x - 1] or + [x + 1, -]. + + PR c++/86025 + * tree.c (inchash::add_expr): Handle IDENTIFIER_NODE. + +2018-06-03 Eric Botcazou + + PR tree-optimization/86034 + * gimple-ssa-store-merging.c (output_merged_store): Convert the RHS to + the unsigned bitfield type in a bit insertion sequence if it does not + have a larger precision than the bitfield size. + (process_store): Also bypass widening conversions for BIT_INSERT_EXPR. + +2018-06-03 Kito Cheng + + * config/nds32/nds32-peephole2.md: Add new patterns for code size. + +2018-06-03 Chung-Ju Wu + + * config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3J. + * config/nds32/nds32.c (nds32_option_override): Consider ARCH_V3J. + * config/nds32/nds32.h (TARGET_ISA_V3): Add ARCH_V3J checking. + * config/nds32/nds32.opt (march): Add enum value Value(ARCH_V3J). + +2018-06-03 Chung-Ju Wu + + * common/config/nds32/nds32-common.c (nds32_option_optimization_table): + Disable -fdelete-null-pointer-checks for ELF toolchain. + +2018-06-02 Chung-Ju Wu + Kito Cheng + + * config.gcc (nds32*): Use nds32-linux.opt and nds32-elf.opt. + (nds32le-*-*, nds32be-*-*): Integrate checking process. + (nds32*-*-*): Add glibc and uclibc conditions. + * common/config/nds32/nds32-common.c (nds32_except_unwind_info): New. + (TARGET_EXCEPT_UNWIND_INFO): Define. + * config/nds32/elf.h: New file. + * config/nds32/linux.h: New file. + * config/nds32/nds32-elf.opt: New file. + * config/nds32/nds32-linux.opt: New file. + * config/nds32/nds32-fp-as-gp.c + (pass_nds32_fp_as_gp::gate): Consider TARGET_LINUX_ABI. + * config/nds32/nds32.c (nds32_conditional_register_usage): Consider + TARGET_LINUX_ABI. + (nds32_asm_file_end): Ditto. + (nds32_print_operand): Ditto. + (nds32_insert_attributes): Ditto. + (nds32_init_libfuncs): New function. + (TARGET_HAVE_TLS): Define. + (TARGET_INIT_LIBFUNCS): Define. + * config/nds32/nds32.h (TARGET_DEFAULT_RELAX): Apply different relax + spec content. + (TARGET_ELF): Apply different mcmodel setting. + (LINK_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): The content has + been migrated into elf.h and linux.h files. + * config/nds32/nds32.md (add_pc): Consider TARGET_LINUX_ABI. + * config/nds32/nds32.opt (mvh): Consider TARGET_LINUX_ABI. + (mcmodel): The content has been migrated into nds32-elf.opt and + nds32-linux.opt files. + * config/nds32/t-elf: New file. + * config/nds32/t-linux: New file. + +2018-06-02 Chung-Ju Wu + Shiva Chen + + * config/nds32/constants.md (unspec_volatile_element): Add + UNSPEC_VOLATILE_OMIT_FP_BEGIN and UNSPEC_VOLATILE_OMIT_FP_END. + * config/nds32/nds32-fp-as-gp.c: New implementation of fp_as_gp + optimization. + * config/nds32/nds32-protos.h (nds32_naked_function_p): Declare. + (make_pass_nds32_fp_as_gp): Declare. + * config/nds32/nds32.c (nds32_register_passes): Add fp_as_gp as one + optmization pass. + (nds32_asm_function_end_prologue): Remove unused asm output. + (nds32_asm_function_begin_epilogue): Remove unused asm output. + (nds32_asm_file_start): Output necessary fp_as_gp information. + (nds32_option_override): Adjust register usage. + (nds32_expand_prologue): Consider fp_as_gp situation. + (nds32_expand_prologue_v3push): Consider fp_as_gp situation. + * config/nds32/nds32.md (prologue): Check fp_as_gp_p and naked_p. + (epilogue): Ditto. + (return): Ditto. + (simple_return): Ditto. + (omit_fp_begin): Output special directive for fp_as_gp. + (omit_fp_end): Output special directive for fp_as_gp. + * config/nds32/nds32.opt (mfp-as-gp, mno-fp-as-gp, mforce-fp-as-gp, + mforbid-fp-as-gp): New options. + +2018-06-01 Mark Wielaard + + * dwarf2out.c (dwarf2out_finish): Remove generation of + DW_AT_loclists_base. + +2018-06-01 Eric Botcazou + + * gimple-ssa-store-merging.c: Include gimple-fold.h. + (struct store_immediate_info): Document BIT_INSERT_EXPR stores. + (struct merged_store_group): Add bit_insertion field. + (dump_char_array): Use standard hexadecimal format. + (merged_store_group::merged_store_group): Set bit_insertion to false. + (merged_store_group::apply_stores): Use optimal buffer size. Deal + with BIT_INSERT_EXPR stores. Move up code updating the mask and + also print the mask in the dump file. + (pass_store_merging::gate): Minor tweak. + (imm_store_chain_info::coalesce_immediate): Fix wrong association + of stores with groups in dump. Allow coalescing of BIT_INSERT_EXPR + stores with INTEGER_CST stores. + (count_multiple_uses) : New case. + (imm_store_chain_info::output_merged_store): Add try_bitpos variable + and use it throughout. Generate bit insertion sequences if need be. + (pass_store_merging::process_store): Remove redundant condition. + Record stores from a SSA name to a bit-field with BIT_INSERT_EXPR. + +2018-06-01 Segher Boessenkool + + * config/rs6000/rs6000.c (rs6000_mangle_type): Change the mangling of + the 128-bit floating point types. Fix function comment. + +2018-06-01 Kyrylo Tkachov + + * config/aarch64/aarch64-simd.md + (aarch64_simd_vec_unpack_lo_): Use UXTL and SXTL assembler + mnemonics. + (aarch64_simd_vec_unpack_hi_): Use UXTL2 and SXTL2 assembler + mnemonics. + +2018-06-01 Richard Sandiford + + PR tree-optimization/85989 + * gimple-ssa-backprop.c (backprop::m_visited_phis): New member + variable. + (backprop::intersect_uses): Check it when deciding whether this + is a backedge reference. + (backprop::process_block): Add each phi to m_visited_phis + after visiting it, then clear it at the end. + +2018-06-01 Richard Biener + + * tree-vectorizer.h (vect_dr_stmt): New function. + (vect_get_load_cost): Adjust. + (vect_get_store_cost): Likewise. + * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): + Use vect_dr_stmt instead of DR_SMTT. + (vect_record_base_alignments): Likewise. + (vect_calculate_target_alignment): Likewise. + (vect_compute_data_ref_alignment): Likewise and make static. + (vect_update_misalignment_for_peel): Likewise. + (vect_verify_datarefs_alignment): Likewise. + (vector_alignment_reachable_p): Likewise. + (vect_get_data_access_cost): Likewise. Pass down + vinfo to vect_get_load_cost/vect_get_store_cost instead of DR. + (vect_get_peeling_costs_all_drs): Likewise. + (vect_peeling_hash_get_lowest_cost): Likewise. + (vect_enhance_data_refs_alignment): Likewise. + (vect_find_same_alignment_drs): Likewise. + (vect_analyze_data_refs_alignment): Likewise. + (vect_analyze_group_access_1): Likewise. + (vect_analyze_group_access): Likewise. + (vect_analyze_data_ref_access): Likewise. + (vect_analyze_data_ref_accesses): Likewise. + (vect_vfa_segment_size): Likewise. + (vect_small_gap_p): Likewise. + (vectorizable_with_step_bound_p): Likewise. + (vect_prune_runtime_alias_test_list): Likewise. + (vect_analyze_data_refs): Likewise. + (vect_supportable_dr_alignment): Likewise. + * tree-vect-loop-manip.c (get_misalign_in_elems): Likewise. + (vect_gen_prolog_loop_niters): Likewise. + * tree-vect-loop.c (vect_analyze_loop_2): Likewise. + * tree-vect-patterns.c (vect_recog_bool_pattern): Do not + modify DR_STMT. + (vect_recog_mask_conversion_pattern): Likewise. + (vect_try_gather_scatter_pattern): Likewise. + * tree-vect-stmts.c (vect_model_store_cost): Pass stmt_info + to vect_get_store_cost. + (vect_get_store_cost): Get stmt_info instead of DR. + (vect_model_load_cost): Pass stmt_info to vect_get_load_cost. + (vect_get_load_cost): Get stmt_info instead of DR. + +2018-06-01 Richard Biener + + PR middle-end/86017 + * gimple-fold.c (var_decl_component_p): Also allow offsetted + vars wrapped in MEM_REFs. + +2018-06-01 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class): + Fix subreg tests so that we only return a choice between + GENERAL_REGS and FP_REGS if the original classes included both. + +2018-06-01 Richard Biener + + PR ipa/85960 + * tree-ssa-structalias.c (get_function_part_constraint): + Handle NULL fi->decl. + (find_func_aliases_for_call): Properly handle indirect + fi from direct call. + (find_func_clobbers): Likewise. + (ipa_pta_execute): Likewise. + (create_variable_info_for): For functions that are ifunc_resolver + resolve to a varinfo that contains the result of the resolver call. + (associate_varinfo_to_alias): Do not treat ifunc resolvers as + aliases. + +2018-05-31 Michael Collison + + * config/aarch64/aarch64.md: + (*fix_to_zero_extenddfdi2): New pattern. + * gcc.target/aarch64/fix_extend1.c: New testcase. + +2018-05-31 Qing Zhao + + PR middle-end/78809 + PR middle-end/83026 + * builtins.c (expand_builtin): Add the handling of BUILT_IN_STRCMP_EQ + and BUILT_IN_STRNCMP_EQ. + * builtins.def: Add new builtins BUILT_IN_STRCMP_EQ and + BUILT_IN_STRNCMP_EQ. + * gimple-fold.c (gimple_fold_builtin_string_compare): Add the + handling of BUILTIN_IN_STRCMP_EQ and BUILT_IN_STRNCMP_EQ. + (gimple_fold_builtin): Likewise. + * tree-ssa-strlen.c (compute_string_length): New function. + (determine_min_obsize): New function. + (handle_builtin_string_cmp): New function to handle calls to + string compare functions. + (strlen_optimize_stmt): Add handling to builtin string compare + calls. + * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): + Add the handling of BUILT_IN_STRCMP_EQ and BUILT_IN_STRNCMP_EQ. + * tree.c (build_common_builtin_nodes): Add new defines of + BUILT_IN_STRNCMP_EQ and BUILT_IN_STRCMP_EQ. + +2018-05-31 Jakub Jelinek + + PR target/85984 + * bb-reorder.c (pass_partition_blocks::gate): Return false for + functions with naked attribute. + +2018-05-31 Uros Bizjak + + * config/i386/sse.md (avx_vec_concat): + Substitute concat_tg_mode mode attribute with xtg_mode. + (avx512dq_broadcast_1): Ditto. + (concat_tg_mode): Remove mode attribute. + +2018-05-31 Martin Sebor + + PR c/82063 + * calls.c (alloc_max_size): Correct a logic error/typo. + Treat excessive arguments as infinite. Warn for invalid arguments. + * doc/invoke.texi (-Walloc-size-larger-than): Update. + +2018-05-31 H.J. Lu + + PR target/85829 + * config/i386/x86-tune.def: Re-enable partial_reg_dependency + and movx for Haswell. + +2018-05-31 Chung-Lin Tang + Cesar Philippidis + + PR middle-end/85879 + * gimplify.c (gimplify_adjust_omp_clauses): Add 'remove = true' + when emitting error on private/firstprivate reductions. + * omp-low.c (lower_omp_target): Avoid reference-type processing + on pointers for firstprivate clause. + +2018-05-31 Sameera Deshpande + + * config/aarch64/aarch64-simd-builtins.def (ld1x3): New. + (st1x2): Likewise. + (st1x3): Likewise. + * config/aarch64/aarch64-simd.md + (aarch64_ld1x3): New pattern. + (aarch64_ld1_x3_): Likewise + (aarch64_st1x2): Likewise + (aarch64_st1_x2_): Likewise + (aarch64_st1x3): Likewise + (aarch64_st1_x3_): Likewise + * config/aarch64/arm_neon.h (vld1_u8_x3): New function. + (vld1_s8_x3): Likewise. + (vld1_u16_x3): Likewise. + (vld1_s16_x3): Likewise. + (vld1_u32_x3): Likewise. + (vld1_s32_x3): Likewise. + (vld1_u64_x3): Likewise. + (vld1_s64_x3): Likewise. + (vld1_f16_x3): Likewise. + (vld1_f32_x3): Likewise. + (vld1_f64_x3): Likewise. + (vld1_p8_x3): Likewise. + (vld1_p16_x3): Likewise. + (vld1_p64_x3): Likewise. + (vld1q_u8_x3): Likewise. + (vld1q_s8_x3): Likewise. + (vld1q_u16_x3): Likewise. + (vld1q_s16_x3): Likewise. + (vld1q_u32_x3): Likewise. + (vld1q_s32_x3): Likewise. + (vld1q_u64_x3): Likewise. + (vld1q_s64_x3): Likewise. + (vld1q_f16_x3): Likewise. + (vld1q_f32_x3): Likewise. + (vld1q_f64_x3): Likewise. + (vld1q_p8_x3): Likewise. + (vld1q_p16_x3): Likewise. + (vld1q_p64_x3): Likewise. + (vst1_s64_x2): Likewise. + (vst1_u64_x2): Likewise. + (vst1_f64_x2): Likewise. + (vst1_s8_x2): Likewise. + (vst1_p8_x2): Likewise. + (vst1_s16_x2): Likewise. + (vst1_p16_x2): Likewise. + (vst1_s32_x2): Likewise. + (vst1_u8_x2): Likewise. + (vst1_u16_x2): Likewise. + (vst1_u32_x2): Likewise. + (vst1_f16_x2): Likewise. + (vst1_f32_x2): Likewise. + (vst1_p64_x2): Likewise. + (vst1q_s8_x2): Likewise. + (vst1q_p8_x2): Likewise. + (vst1q_s16_x2): Likewise. + (vst1q_p16_x2): Likewise. + (vst1q_s32_x2): Likewise. + (vst1q_s64_x2): Likewise. + (vst1q_u8_x2): Likewise. + (vst1q_u16_x2): Likewise. + (vst1q_u32_x2): Likewise. + (vst1q_u64_x2): Likewise. + (vst1q_f16_x2): Likewise. + (vst1q_f32_x2): Likewise. + (vst1q_f64_x2): Likewise. + (vst1q_p64_x2): Likewise. + (vst1_s64_x3): Likewise. + (vst1_u64_x3): Likewise. + (vst1_f64_x3): Likewise. + (vst1_s8_x3): Likewise. + (vst1_p8_x3): Likewise. + (vst1_s16_x3): Likewise. + (vst1_p16_x3): Likewise. + (vst1_s32_x3): Likewise. + (vst1_u8_x3): Likewise. + (vst1_u16_x3): Likewise. + (vst1_u32_x3): Likewise. + (vst1_f16_x3): Likewise. + (vst1_f32_x3): Likewise. + (vst1_p64_x3): Likewise. + (vst1q_s8_x3): Likewise. + (vst1q_p8_x3): Likewise. + (vst1q_s16_x3): Likewise. + (vst1q_p16_x3): Likewise. + (vst1q_s32_x3): Likewise. + (vst1q_s64_x3): Likewise. + (vst1q_u8_x3): Likewise. + (vst1q_u16_x3): Likewise. + (vst1q_u32_x3): Likewise. + (vst1q_u64_x3): Likewise. + (vst1q_f16_x3): Likewise. + (vst1q_f32_x3): Likewise. + (vst1q_f64_x3): Likewise. + (vst1q_p64_x3): Likewise. + +2018-05-30 Jozef Lawrynowicz + + * config/msp430/msp430.c (msp430_output_labelref): Prepend + user_label_prefix to name. + + * tree-core.h: Update comment about the format of NAME string + passed to handler in attribute_spec. + + * config/msp430/msp430.md: Remove erroneous subreg expression from + zero_extendqisi2 insn pattern. Remove msp430x ISA restriction on + zero_extend{q,h}isi2. + +2018-05-30 Borislav Petkov + + * doc/extend.texi: Document some architecture specific + constraints and sort entries. + +2018-05-30 Martin Sebor + + PR middle-end/85369 + * builtins.c (expand_builtin_stpcpy_1): New function. + (expand_builtin_stpcpy): Call it, and call maybe_warn_nonstring_arg + only if the former succeeds. + +2018-05-31 Sameera Deshpande + + * config/aarch64/aarch64-cores.def (saphira) : Add support for ARMv8.4 + in saphira. + +2018-05-30 Jan Hubicka + + * doc/invoke.texi (-flinker-output): Document + +2018-05-30 Jan Hubicka + + * passes.c (ipa_write_summaries): Only modify statements if body + is in memory. + * cgraphunit.c (ipa_passes): Also produce intermeidate code when + incrementally linking. + (ipa_passes): Likewise. + * lto-cgraph.c (lto_output_node): When incrementally linking do not + pass down resolution info. + * common.opt (flag_incremental_link): Update info. + * gcc.c (plugin specs): Turn flinker-output=* to + -plugin-opt=-linker-output-known + * toplev.c (compile_file): Also cut compilation when doing incremental + link. + * flag-types. (enum lto_partition_model): Add + LTO_LINKER_OUTPUT_NOLTOREL. + (invoke.texi): Add -flinker-output docs. + * ipa.c (symbol_table::remove_unreachable_nodes): Handle LTO incremental + link same way as WPA; do not stream in dead initializers. + + * dwarf2out.c (dwarf2out_die_ref_for_decl, + darf2out_register_external_decl): Support incremental link. + +2018-05-30 Jan Hubicka + + * lto-opts.c (lto_write_options): Skip OPT_dumpdir, OPT_fresolution_. + +2018-05-30 Jan Hubicka + + * lto-wrapper.c (debug_objcopy): Add rename parameter; pass + it down to simple_object_copy_lto_debug_sections. + (run_gcc): Determine incremental LTO link time and configure + lto1 into non-wpa mode, disable renaming of debug sections. + +2018-05-30 Kelvin Nilsen + + * doc/extend.texi (PowerPC AltiVec Built-in Functions): Remove + descriptions of various incorrectly documented functions. + +2018-05-30 Andre Vieira + + Revert: + * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make + address check not strict. + +2018-05-30 Richard Biener + + PR tree-optimization/85964 + * tracer.c (better_p): Drop initialized count check, we only + call the function with initialized counts now. + (find_best_successor): Do find a best edge if one + has uninitialized count. + (find_best_predecessor): Likewise. Do BB frequency check only + if count is initialized. + +2017-05-30 Jackson Woodruff + + * config/aarch64/aarch64.c (aarch64_host_wide_int_compare): New. + (aarch64_ldrstr_offset_compare): New. + (aarch64_operands_adjust_ok_for_ldpstp): Update to consider all + load/store orderings. + (aarch64_gen_adjusted_ldpstp): Likewise. + +2018-05-30 Wilco Dijkstra + + * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class): + Check for subset of GENERAL_REGS and FP_REGS. + * config/aarch64/aarch64-simd.md (aarch64_get_lane): Increase cost of + r=w alternative. + +2018-05-30 Richard Sandiford + + * alias.c (adjust_offset_for_component_ref): Use poly_int_tree_p + and wi::to_poly_offset. Add the current offset and then check + whether the sum fits, rather than using an unchecked addition of + a checked term. Check for a shwi rather than a uhwi. + * expr.c (get_bit_range): Use tree_to_poly_uint64. + (store_constructor): Use poly_int_tree_p. + (expand_expr_real_1): Likewise. + * function.c (assign_temp): Likewise. + * fold-const.c (const_binop): Use poly_int_tree_p and + wi::to_poly_offset. + (fold_indirect_ref_1): Likewise. Use multiple_p to attempt an exact + division. + * ipa-icf-gimple.c (func_checker::compare_operand): Use + to_poly_offset for MEM offsets. + * ipa-icf.c (sem_variable::equals): Likewise. + * stor-layout.c (compute_record_mode): Use poly_int_tree_p. + * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use + wi::to_poly_offset for BIT_FIELD_REF offsets. + (vn_reference_maybe_forwprop_address): Use poly_int_tree_p and + wi::to_poly_offset. + * var-tracking.c (emit_note_insn_var_location): Use + tree_to_poly_uint64. + +2018-05-29 Jim Wilson + + * config/riscv/riscv.c (riscv_interrupt_type): Fix comment typo. + +2018-05-29 Uros Bizjak + + PR target/85950 + * config/i386/i386.md (l2): + Enable for TARGET_SSE4_1 and generate rounds{s,d} and cvtts{s,d}2si{,q} + sequence. + (sse4_1_round2): Use nonimmediate_operand + for operand 1 predicate. + +2018-05-29 Martin Sebor + Richard Biener + + PR testsuite/85888 + * calls.c (get_size_range): Call determine_value_range instead + of get_value_range.. + * tree-vrp.h (determine_value_range): Declared new function. + * tree-vrp.c (determine_value_range_1, determine_value_range): New. + +2018-05-29 Richard Biener + + * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Make + sure to use non-pattern stmts for get_earlier_stmt arguments. + * tree-vectorizer.h (get_earlier_stmt): Assert we do not get + called on pattern stmts. + (get_later_stmt): Likewise. + +2018-05-29 Martin Liska + + PR gcov-profile/85759 + * doc/gcov.texi: Document GCOV_ERROR_FILE and GCOV_EXIT_AT_ERROR + env variables. + +2018-05-29 Jakub Jelinek + + * tree-cfg.c (verify_gimple_assign_unary): Add checking for + VEC_UNPACK_*_EXPR. + (verify_gimple_assign_binary): Check TYPE_VECTOR_SUBPARTS for + VEC_PACK_*_EXPR. + + PR target/85918 + * tree.def (VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR, + VEC_PACK_FLOAT_EXPR): New tree codes. + * tree-pretty-print.c (op_code_prio): Handle + VEC_UNPACK_FIX_TRUNC_HI_EXPR and VEC_UNPACK_FIX_TRUNC_LO_EXPR. + (dump_generic_node): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR, + VEC_UNPACK_FIX_TRUNC_LO_EXPR and VEC_PACK_FLOAT_EXPR. + * tree-inline.c (estimate_operator_cost): Likewise. + * gimple-pretty-print.c (dump_binary_rhs): Handle VEC_PACK_FLOAT_EXPR. + * fold-const.c (const_binop): Likewise. + (const_unop): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR and + VEC_UNPACK_FIX_TRUNC_LO_EXPR. + * tree-cfg.c (verify_gimple_assign_unary): Likewise. + (verify_gimple_assign_binary): Handle VEC_PACK_FLOAT_EXPR. + * cfgexpand.c (expand_debug_expr): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR, + VEC_UNPACK_FIX_TRUNC_LO_EXPR and VEC_PACK_FLOAT_EXPR. + * expr.c (expand_expr_real_2): Likewise. + * optabs.def (vec_packs_float_optab, vec_packu_float_optab, + vec_unpack_sfix_trunc_hi_optab, vec_unpack_sfix_trunc_lo_optab, + vec_unpack_ufix_trunc_hi_optab, vec_unpack_ufix_trunc_lo_optab): New + optabs. + * optabs.c (expand_widen_pattern_expr): For + VEC_UNPACK_FIX_TRUNC_HI_EXPR and VEC_UNPACK_FIX_TRUNC_LO_EXPR use + sign from result type rather than operand's type. + (expand_binop_directly): For vec_packu_float_optab and + vec_packs_float_optab allow result type to be different from operand's + type. + * optabs-tree.c (optab_for_tree_code): Handle + VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR and + VEC_PACK_FLOAT_EXPR. Formatting fixes. + * tree-vect-generic.c (expand_vector_operations_1): Handle + VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR and + VEC_PACK_FLOAT_EXPR. + * tree-vect-stmts.c (supportable_widening_operation): Handle + FIX_TRUNC_EXPR. + (supportable_narrowing_operation): Handle FLOAT_EXPR. + * config/i386/i386.md (fixprefix, floatprefix): New code attributes. + * config/i386/sse.md (*floatv2div2sf2): Rename to ... + (floatv2div2sf2): ... this. Formatting fix. + (vpckfloat_concat_mode, vpckfloat_temp_mode, vpckfloat_op_mode): New + mode attributes. + (vec_pack_float_): New expander. + (vunpckfixt_mode, vunpckfixt_model, vunpckfixt_extract_mode): New mode + attributes. + (vec_unpack_fix_trunc_lo_, + vec_unpack_fix_trunc_hi_): New expanders. + * doc/md.texi (vec_packs_float_@var{m}, vec_packu_float_@var{m}, + vec_unpack_sfix_trunc_hi_@var{m}, vec_unpack_sfix_trunc_lo_@var{m}, + vec_unpack_ufix_trunc_hi_@var{m}, vec_unpack_ufix_trunc_lo_@var{m}): + Document. + * doc/generic.texi (VEC_UNPACK_FLOAT_HI_EXPR, + VEC_UNPACK_FLOAT_LO_EXPR): Fix pasto in description. + (VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR, + VEC_PACK_FLOAT_EXPR): Document. + +2018-05-29 Richard Biener + + * tree-vectorizer.h (struct vec_info): Add stmt_vec_infos + member. + (stmt_vec_info_vec): Make pointer. + (init_stmt_vec_info_vec): Remove. + (free_stmt_vec_info_vec): Likewise. + (set_stmt_vec_info_vec): New function. + (free_stmt_vec_infos): Likewise. + (vinfo_for_stmt): Adjust for stmt_vec_info_vec indirection. + (set_vinfo_for_stmt): Likewise. + (get_earlier_stmt): Likewise. + (get_later_stmt): Likewise. + * tree-vectorizer.c (stmt_vec_info_vec): Make pointer. + (vec_info::vec_info): Allocate stmt_vec_infos and set the global. + (vec_info::~vec_info): Free stmt_vec_infos. + (vectorize_loops): Set the global stmt_vec_info_vec to NULL. + Remove old init_stmt_vec_info_vec/free_stmt_vec_info_vec calls. + (pass_slp_vectorize::execute): Likewise. + * tree-vect-stmts.c (init_stmt_vec_info_vec): Remove. + (free_stmt_vec_info_vec): Likewise. + (set_stmt_vec_info_vec): New function. + (free_stmt_vec_infos): Likewise. + * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Set + the global stmt_vec_info_vec. + * tree-parloops.c (gather_scalar_reductions): Use + set_stmt_vec_info_vec/free_stmt_vec_infos and maintain a local + vector. + +2018-05-29 Richard Biener + + * dominance.c (iterate_fix_dominators): Push/pop TV_DOMINANCE. + +2018-05-29 Martin Liska + David Malcolm + + * vec.c (test_reverse): New. + (vec_c_tests): Add new test. + * vec.h (vl_ptr>::reverse): New function. + +2018-05-29 Gerald Pfeifer + + * config.gcc: Identify FreeBSD 3.x and 4.x as unsupported. + + * config/freebsd-spec.h (FBSD_LIB_SPEC): Only consider FreeBSD 5 + and later. + +2018-05-28 Bernd Edlinger + + * tree-dump.c (dump_node): Use splay_tree_delete_pointers. + +2018-05-28 Richard Biener + + PR tree-optimization/85933 + * tree-vect-data-refs.c (vect_record_base_alignments): Only + look at stmts marked as vectorizable. + +2018-05-28 Richard Biener + + PR tree-optimization/85934 + * tree-vect-generic.c (expand_vector_operations_1): Hoist + vector boolean check before scalar optimization. + +2018-05-28 Jakub Jelinek + + * doc/invoke.texi (ARM Options): Use @item instead of @itemx + for armv5te. + +2018-05-28 Mark Wielaard + + * dwarf2asm.c (dw2_asm_output_delta_uleb128): Add brackets around lab2 + if it is an expression containing a minus sign. + +2018-05-27 John David Anglin + + * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 0. + +2018-05-27 Paul Koning + + * config/pdp11/pdp11.md (truncsihi2): Remove. + +2018-05-27 Monk Chiang + Chung-Ju Wu + + * config/nds32/nds32-intrinsic.md (unaligned_storedi): Modify patterns + implementation. + (unaligned_store_dw): Ditto. + * config/nds32/nds32-memory-manipulation.c + (nds32_expand_movmemsi_loop_known_size): Refactoring implementation. + (nds32_gen_dup_4_byte_to_word_value): Rename to ... + (nds32_gen_dup_4_byte_to_word_value_aux): ... this. + (emit_setmem_word_loop): Rename to ... + (emit_setmem_doubleword_loop): ... this. + (nds32_gen_dup_4_byte_to_word_value): New function. + (nds32_gen_dup_8_byte_to_double_word_value): New function. + (nds32_expand_setmem_loop): Refine implementation. + (nds32_expand_setmem_loop_v3m): Ditto. + * config/nds32/nds32-multiple.md (unaligned_store_update_base_dw): New + pattern. + +2018-05-27 Chung-Ju Wu + + * config/nds32/nds32.md (bswapsi2, bswaphi2): New patterns. + +2018-05-27 Chung-Ju Wu + + * config/nds32/nds32.c (nds32_attribute_table): Add "no_prologue". + (nds32_init_machine_status): Initialize machine->attr_naked_p and + machine->attr_no_prologue_p. + (nds32_compute_stack_frame): Check "naked" and "no_prologue" attributes. + (nds32_naked_function_p): Handle "naked" and "no_prologue" attributes. + (nds32_expand_epilogue): Consider attr_naked_p. + (nds32_expand_epilogue_v3pop): Likewise. + (nds32_can_use_return_insn): Likewise. + * config/nds32/nds32.h (machine_function): Add attr_naked_p and + attr_no_prologue_p fields. + * config/nds32/nds32.opt (mret-in-naked-func): New option. + +2018-05-27 Jakub Jelinek + + PR target/85918 + * config/i386/i386.md (fixunssuffix, floatunssuffix): New code + attributes. + * config/i386/sse.md + (float2): + Rename to ... + (float2): + ... this. + (float2): + Rename to ... + (float2): + ... this. + (*floatv2div2sf2): Rename to ... + (*floatv2div2sf2): ... this. + (floatv2div2sf2_mask): Rename to ... + (floatv2div2sf2_mask): ... this. + (*floatv2div2sf2_mask_1): Rename to ... + (*floatv2div2sf2_mask_1): ... this. + (fix_truncv8dfv8si2): Rename + to ... + (fix_truncv8dfv8si2): + ... this. + (fix_trunc2): + Rename to ... + (fix_trunc2): + ... this. + (fix_trunc2): + Rename to ... + (fix_trunc2): + ... this. + (fix_truncv2sfv2di2): Rename to ... + (fix_truncv2sfv2di2): ... this. + (vec_pack_ufix_trunc_): Use gen_fixuns_truncv8dfv8si2 instead of + gen_ufix_truncv8dfv8si2. + * config/i386/i386-builtin.def (__builtin_ia32_cvttpd2uqq256_mask, + __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvttps2uqq256_mask, + __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvtuqq2ps256_mask, + __builtin_ia32_cvtuqq2ps128_mask, __builtin_ia32_cvtuqq2pd256_mask, + __builtin_ia32_cvtuqq2pd128_mask, __builtin_ia32_cvttpd2udq512_mask, + __builtin_ia32_cvtuqq2ps512_mask, __builtin_ia32_cvtuqq2pd512_mask, + __builtin_ia32_cvttps2uqq512_mask, __builtin_ia32_cvttpd2uqq512_mask): + Use fixuns instead ufix or floatuns instead ufloat in CODE_FOR_ names. + +2018-05-24 H.J. Lu + + PR target/85900 + PR target/85345 + * varasm.c (assemble_alias): Lookup ifunc attribute on error. + +2018-05-25 Jim Wilson + + * config/riscv/riscv-protos.h (riscv_epilogue_uses): New. + * config/riscv/riscv.c (struct machine_function): Add + interrupt_handler_p and attribute_checked_p fields. + (riscv_attribute_table): Add interrupt. + (riscv_interrupt_type_p): New. + (riscv_save_reg_p): Save extra regs for interrupt handler. + (riscv_use_save_libcall): Return false for interrupt handler. + (riscv_first_stack_step): Add forward declaration. + (riscv_compute_frame_info): New local interrupt_save_t1. Set it + for interrupt handler with large frame. Use it for saved reg list. + (riscv_expand_prologue): Move flag_stack_usage_info support to + eliminate duplication. + (riscv_expand_epilogue): Generate mret for interrupt handler. + (riscv_epilogue_uses): New. + (riscv_can_use_return_insn): Return false for interrupt handler. + (riscv_function_ok_for_sibcall): Likewise. + (riscv_set_current_function): Add interrupt handler support. + * config/riscv/riscv.h (EPILOGUE_USES): Call riscv_epilogue_uses. + * config/riscv/riscv.md (UNSPECV_MRET): New. + (GP_REGNUM): New. + (riscv_frflags, riscv_fsflags): Use tab after opcode. + (riscv_mret): New. + * doc/extend.texi (RISC-V Function Attributes) : New. + +2018-05-25 Bill Schmidt + + PR tree-optimization/85712 + * gimple-ssa-strength-reduction.c (replace_one_candidate): Skip if + this candidate has already been replaced in-situ by a copy. + +2018-05-25 Jason Merrill + + PR c++/80485 - inline function non-zero address. + * symtab.c (nonzero_address): Check DECL_COMDAT. + +2018-05-25 Uros Bizjak + + PR target/83628 + * config/alpha/alpha.md (ashlsi3): New insn pattern. + (*ashlsi_se): Rename from *ashldi_se. Define as sign + extension of SImode operation. Use const123_operand predicate. + (*saddsi_1): Remove. + (*saddl_se_1): Ditto. + (*ssubsi_1): Ditto. + (*ssubl_se_1): Ditto. + * config/alpha/predicates.md (const123_operand): New predicate. + * config/alpha/constraints.md (P): Use IN_RANGE. + +2018-05-25 Richard Biener + + * tree-ssa-alias.h (refs_may_alias_p): Add tbaa_p bool parameter, + defaulted to true. + (ref_maybe_used_by_stmt_p): Likewise. + (stmt_may_clobber_ref_p): Likewise. + (stmt_may_clobber_ref_p_1): Likewise. + * tree-ssa-alias.c (refs_may_alias_p): Add tbaa_p bool parameter + and pass it along. + (ref_maybe_used_by_stmt_p): Likewise. + (stmt_may_clobber_ref_p): Likewise. + (stmt_may_clobber_ref_p_1): Likewise. + * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Use + the alias oracle to disambiguate DRs with stmts DR analysis + couldn't handle. + (vect_analyze_data_refs): Do not give up on not analyzable + DRs for BB vectorization. Remove code truncating the dataref + vector. + +2018-05-25 Jakub Jelinek + + PR target/85832 + * config/i386/sse.md (_eq3_1): + Add (=Yk,v,C) variant using vptestm insn. Use TARGET_AVX512BW + in test instead of TARGET_AVX512F for VI12_AVX512VL iterator. + +2018-05-25 Richard Biener + + * tree-vect-data-refs.c (vect_find_stmt_data_reference): New + function, combining stmt data ref gathering and fatal analysis + parts. + (vect_analyze_data_refs): Remove now redudnant code and simplify. + * tree-vect-loop.c (vect_get_datarefs_in_loop): Factor out from + vect_analyze_loop_2 and use vect_find_stmt_data_reference. + * tree-vect-slp.c (vect_slp_bb): Use vect_find_stmt_data_reference. + * tree-vectorizer.h (vect_find_stmt_data_reference): Declare. + +2018-05-25 Bin Cheng + + PR tree-optimization/85720 + * tree-loop-distribution.c (break_alias_scc_partitions): Don't merge + SCC if all partitions are builtins. + (version_loop_by_alias_check): New parameter. Generate cancelable + runtime alias check if all partitions are builtins. + (distribute_loop): Update call to above function. + +2018-05-25 Bin Cheng + + * tree-outof-ssa.c (tree-ssa.h, tree-dfa.h): Include header files. + (create_default_def, for_all_parms): Moved from tree-ssa-coalesce.c. + (parm_default_def_partition_arg): Ditto. + (set_parm_default_def_partition): Ditto. + (get_parm_default_def_partitions): Ditto and make it static. + (get_undefined_value_partitions): Ditto and make it static. + (remove_ssa_form): Refactor call to init_var_map here. + * tree-ssa-coalesce.c (build_ssa_conflict_graph): Support live range + computation for loop region. + (coalesce_partitions, compute_optimized_partition_bases): Ditto. + (register_default_def): Delete. + (for_all_parms, create_default_def): Move to tree-outof-ssa.c. + (parm_default_def_partition_arg): Ditto. + (set_parm_default_def_partition): Ditto. + (get_parm_default_def_partitions): Ditto and make it static. + (get_undefined_value_partitions): Ditto and make it static. + (coalesce_with_default, coalesce_with_default): Update comment. + (create_coalesce_list_for_region): New func factored out from + create_outofssa_var_map. + (populate_coalesce_list_for_outofssa): New func factored out from + create_outofssa_var_map and coalesce_ssa_name. + (create_outofssa_var_map): Delete. + (coalesce_ssa_name): Refactor to support live range computation. + * tree-ssa-coalesce.h (coalesce_ssa_name): Change decl. + (get_parm_default_def_partitions): Delete. + (get_undefined_value_partitions): Ditto. + * tree-ssa-live.c (init_var_map, delete_var_map): Support live range + computation for loop region. + (new_tree_live_info, loe_visit_block): Ditto. + (live_worklist, set_var_live_on_entry): Ditto. + (calculate_live_on_exit, verify_live_on_entry): Ditto. + * tree-ssa-live.h (struct _var_map): New fields. + (init_var_map): Change decl. + (region_contains_p): New. + +2018-05-25 Bin Cheng + + * tree-ssa-live.h (live_merge_and_clear): Delete. + +2018-05-25 Richard Biener + + PR c++/85912 + * tree-dump.c (dequeue_and_dump): Remove access to removed + operand 2 of a SWITCH_EXPR. + +2018-05-25 Richard Sandiford + + * doc/sourcebuild.texi (vect_double_cond_arith): Include + multiplication and division. + * doc/md.texi (cond_mul@var{m}, cond_div@var{m}, cond_mod@var{m}) + (cond_udiv@var{m}, cond_umod@var{m}): Document. + * optabs.def (cond_smul_optab, cond_sdiv_optab, cond_smod_optab) + (cond_udiv_optab, cond_umod_optab): New optabs. + * internal-fn.def (IFN_COND_MUL, IFN_COND_DIV, IFN_COND_MOD) + (IFN_COND_RDIV): New internal functions. + * internal-fn.c (get_conditional_internal_fn): Handle TRUNC_DIV_EXPR, + TRUNC_MOD_EXPR and RDIV_EXPR. + * match.pd (UNCOND_BINARY, COND_BINARY): Handle them. + * config/aarch64/iterators.md (UNSPEC_COND_MUL, UNSPEC_COND_DIV): + New unspecs. + (SVE_INT_BINARY): Include mult. + (SVE_COND_FP_BINARY): Include UNSPEC_MUL and UNSPEC_DIV. + (optab, sve_int_op): Handle mult. + (optab, sve_fp_op, commutative): Handle UNSPEC_COND_MUL and + UNSPEC_COND_DIV. + * config/aarch64/aarch64-sve.md (cond_): New pattern + for SVE_INT_BINARY_SD. + +2018-05-25 Richard Sandiford + + * config/aarch64/iterators.md (SVE_INT_BINARY_SD): New code iterator. + (optab, sve_int_op): Handle div and udiv. + * config/aarch64/aarch64-sve.md (3): New expander + for SVE_INT_BINARY_SD. + (*3): New insn for the same. + +2018-05-25 Richard Sandiford + + * tree-vect-patterns.c: Include predict.h. + (vect_recog_divmod_pattern): Restrict check for division support + to when optimizing for size. + +2018-05-25 Richard Sandiford + + * doc/sourcebuild.texi (vect_double_cond_arith: Document. + * gimple-match.h (gimple_match_op::MAX_NUM_OPS): Bump to 4. + (gimple_match_op::gimple_match_op): Add an overload for 4 operands. + (gimple_match_op::set_op): Likewise. + (gimple_resimplify4): Declare. + * genmatch.c (get_operand_type): Handle CFN_COND_* functions. + (expr::gen_transform): Likewise. + (decision_tree::gen): Generate a simplification routine for 4 operands. + * gimple-match-head.c (gimple_simplify): Add an overload for + 4 operands. In the top-level function, handle up to 4 call + arguments and call gimple_resimplify4. + (gimple_resimplify4): New function. + (build_call_internal): Pass a fourth operand. + (maybe_push_to_seq): Likewise. + * match.pd (UNCOND_BINARY, COND_BINARY): New operator lists. + Fold VEC_COND_EXPRs of an operation and a default value into + an IFN_COND_* function if possible. + * config/aarch64/iterators.md (UNSPEC_COND_MAX, UNSPEC_COND_MIN): + New unspecs. + (SVE_COND_FP_BINARY): Include them. + (optab, sve_fp_op): Handle them. + (SVE_INT_BINARY_REV): New code iterator. + (SVE_COND_FP_BINARY_REV): New int iterator. + (commutative): New int attribute. + * config/aarch64/aarch64-protos.h (aarch64_sve_prepare_conditional_op): + Declare. + * config/aarch64/aarch64.c (aarch64_sve_prepare_conditional_op): New + function. + * config/aarch64/aarch64-sve.md (cond_): Use it. + (*cond_): New patterns for reversed operands. + +2018-05-25 Richard Biener + + * tree-vectorizer.h (STMT_VINFO_GROUP_*, GROUP_*): Remove. + (DR_GROUP_*): New, assert we have non-NULL ->data_ref_info. + (REDUC_GROUP_*): New, assert we have NULL ->data_ref_info. + (STMT_VINFO_GROUPED_ACCESS): Adjust. + * tree-vect-data-refs.c (everywhere): Adjust users. + * tree-vect-loop.c (everywhere): Likewise. + * tree-vect-slp.c (everywhere): Likewise. + * tree-vect-stmts.c (everywhere): Likewise. + * tree-vect-patterns.c (vect_reassociating_reduction_p): Likewise. + +2018-05-25 Rainer Orth + + * configure.ac (gcc_cv_as_section_has_e): Move to common section. + Rename to... + (gcc_cv_as_section_exclude): ... this. + Try Solaris as #exclude syntax. + * configure: Regenerate. + * config.in: Regenerate. + * config/i386/i386.c (i386_solaris_elf_named_section): Handle + SECTION_EXCLUDE. + * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section) + [HAVE_GAS_SECTION_EXCLUDE]: Handle SECTION_EXCLUDE. + + * varasm.c (default_elf_asm_named_section): Don't check if + HAVE_GAS_SECTION_EXCLUDE is defined. + +2018-05-25 Richard Sandiford + + * doc/md.texi: Update the documentation of the cond_* optabs + to mention the new final operand. Fix GET_MODE_NUNITS call. + Describe the scalar case too. + * internal-fn.def (IFN_EXTRACT_LAST): Change type to fold_left. + * internal-fn.c (expand_cond_unary_optab_fn): Expect 3 operands + instead of 2. + (expand_cond_binary_optab_fn): Expect 4 operands instead of 3. + (get_conditional_internal_fn): Update comment. + * tree-vect-loop.c (vectorizable_reduction): Pass the original + accumulator value as a final argument to conditional functions. + * config/aarch64/aarch64-sve.md (cond_): Turn into + a define_expand and add an "else" operand. Assert for now that + the else operand is equal to operand 2. Use SVE_INT_BINARY and + SVE_COND_FP_BINARY instead of SVE_COND_INT_OP and SVE_COND_FP_OP. + (*cond_): New patterns. + * config/aarch64/iterators.md (UNSPEC_COND_SMAX, UNSPEC_COND_UMAX) + (UNSPEC_COND_SMIN, UNSPEC_COND_UMIN, UNSPEC_COND_AND, UNSPEC_COND_ORR) + (UNSPEC_COND_EOR): Delete. + (optab): Remove associated mappings. + (SVE_INT_BINARY): New code iterator. + (sve_int_op): Remove int attribute and add "minus" to the code + attribute. + (SVE_COND_INT_OP): Delete. + (SVE_COND_FP_OP): Rename to... + (SVE_COND_FP_BINARY): ...this. + +2018-05-25 Richard Sandiford + + * optabs.c (can_reuse_operands_p): New function. + (maybe_legitimize_operands): Try to reuse the results for + earlier operands. + +2018-05-24 Uros Bizjak + + * config/i386/sse.md (cvtusi264): + Add {q} suffix to insn mnemonic. + +2018-05-23 Jozef Lawrynowicz + + * config/msp430/msp430.c (TARGET_WARN_FUNC_RETURN): Define. + (msp430_warn_func_return): New. + +2018-05-24 Roger Sayle + + * fold-const.c (tree_nonzero_bits): New function. + * fold-const.h (tree_nonzero_bits): Likewise. + * match.pd (POPCOUNT): New patterns to fold BUILTIN_POPCOUNT and + friends. POPCOUNT(x&1) => x&1, POPCOUNT(x)==0 => x==0, etc. + +2018-05-24 H.J. Lu + + PR target/85900 + PR target/85345 + * varasm.c (assemble_alias): Check ifunc_resolver only on + FUNCTION_DECL. + +2018-05-24 Uros Bizjak + + PR target/85903 + * config/i386/sse.md (movdi_to_sse): Do not generate pseudo + when memory input operand is handled. + +2018-05-24 Luis Machado + + * config/aarch64/aarch64.c (qdf24xx_addrcost_table): New static + global. + (qdf24xx_tunings) : Set to qdf24xx_addrcost_table. + +2018-05-24 Richard Sandiford + + * match.pd: Delay FMA folds until after vectorization. + +2018-05-24 Andre Vieira + + PR target/83009 + * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make + address check not strict. + +2018-05-24 Richard Sandiford + + * gimple-match.h (gimple_match_op): New class. + (mprts_hook): Replace parameters with a gimple_match_op *. + (maybe_build_generic_op): Likewise. + (gimple_simplified_result_is_gimple_val): Replace parameters with + a const gimple_match_op *. + (gimple_simplify): Replace code_helper * and tree * parameters with + a gimple_match_op * parameter. + (gimple_resimplify1): Replace code_helper *, tree and tree * + parameters with a gimple_match_op * parameter. + (gimple_resimplify2): Likewise. + (gimple_resimplify3): Likewise. + (maybe_push_res_to_seq): Replace code_helper, tree and tree * + parameters with a gimple_match_op * parameter. + * gimple-match-head.c (gimple_simplify): Change prototypes of + auto-generated functions to take a gimple_match_op * instead of + separate code_helper * and tree * parameters. Make the same + change in the top-level overload and update calls to the + gimple_resimplify routines. Update calls to the auto-generated + functions and to maybe_push_res_to_seq in the publicly-facing + operation-specific gimple_simplify overloads. + (gimple_match_op::MAX_NUM_OPS): Define. + (gimple_resimplify1): Replace rcode and ops with a single res_op + parameter. Update call to gimple_simplify. + (gimple_resimplify2): Likewise. + (gimple_resimplify3): Likewise. + (mprts_hook): Replace parameters with a gimple_match_op *. + (maybe_build_generic_op): Likewise. + (build_call_internal): Replace type, nargs and ops with + a gimple_match_op *. + (maybe_push_res_to_seq): Replace res_code, type and ops parameters + with a single gimple_match_op *. Update calls to mprts_hook, + build_call_internal and gimple_simplified_result_is_gimple_val. + Factor out code that is common to the tree_code and combined_fn cases. + * genmatch.c (expr::gen_transform): Replace tem_code and + tem_ops with a gimple_match_op called tem_op. Update calls + to the gimple_resimplify functions and maybe_push_res_to_seq. + (dt_simplify::gen_1): Manipulate res_op instead of res_code and + res_ops. Update call to the gimple_resimplify functions. + (dt_simplify::gen): Pass res_op instead of res_code and res_ops. + (decision_tree::gen): Make the functions take a gimple_match_op * + called res_op instead of separate res_code and res_ops parameters. + Update call accordingly. + * gimple-fold.c (replace_stmt_with_simplification): Replace rcode + and ops with a single res_op parameter. Update calls to + maybe_build_generic_op and maybe_push_res_to_seq. + (fold_stmt_1): Update calls to gimple_simplify and + replace_stmt_with_simplification. + (gimple_fold_stmt_to_constant_1): Update calls to gimple_simplify + and gimple_simplified_result_is_gimple_val. + * tree-cfgcleanup.c (cleanup_control_expr_graph): Update call to + gimple_simplify. + * tree-ssa-sccvn.c (vn_lookup_simplify_result): Replace parameters + with a gimple_match_op *. + (vn_nary_build_or_lookup): Likewise. Update call to + vn_nary_build_or_lookup_1. + (vn_nary_build_or_lookup_1): Replace rcode, type and ops with a + gimple_match_op *. Update calls to the gimple_resimplify routines + and to gimple_simplified_result_is_gimple_val. + (vn_nary_simplify): Update call to vn_nary_build_or_lookup_1. + Use gimple_match_op::MAX_NUM_OPS instead of a hard-coded 3. + (vn_reference_lookup_3): Update call to vn_nary_build_or_lookup. + (visit_nary_op): Likewise. + (visit_reference_op_load): Likewise. + +2018-05-23 Luis Machado + + * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Use correct type + modifier for printing the step amount. + +2018-05-23 Jozef Lawrynowicz + + PR target/78849 + * tree.c (build_common_tree_nodes): Dont set TYPE_SIZE for __intN + types. + +2018-05-23 Segher Boessenkool + + * doc/sourcebuild.texi (Endianness): New subsubsection. + +2018-05-23 Luis Machado + + * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) + : New const bool field. + * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include + prefetch_dynamic_strides. + (exynosm1_prefetch_tune): Likewise. + (thunderxt88_prefetch_tune): Likewise. + (thunderx_prefetch_tune): Likewise. + (thunderx2t99_prefetch_tune): Likewise. + (qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides to + false. + (aarch64_override_options_internal): Update to set + PARAM_PREFETCH_DYNAMIC_STRIDES. + * doc/invoke.texi (prefetch-dynamic-strides): Document new option. + * params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New. + * params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define. + * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for + prefetch-dynamic-strides setting. + +2018-05-23 Luis Machado + + * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) + : New const int field. + * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include + minimum_stride field defaulting to -1. + (exynosm1_prefetch_tune): Likewise. + (thunderxt88_prefetch_tune): Likewise. + (thunderx_prefetch_tune): Likewise. + (thunderx2t99_prefetch_tune): Likewise. + (qdf24xx_prefetch_tune) : Set to 2048. + : Set to 3. + (aarch64_override_options_internal): Update to set + PARAM_PREFETCH_MINIMUM_STRIDE. + * doc/invoke.texi (prefetch-minimum-stride): Document new option. + * params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New. + * params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define. + * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if + stride is constant and is below the minimum stride threshold. + +2018-05-23 Kyrylo Tkachov + + * config/arm/arm-cpus.in (mode26): Delete. + (armv4): Delete mode26 reference. + * config/arm/arm.c (arm_configure_build_target): Delete use of + isa_bit_mode26. + +2018-05-23 Uros Bizjak + + * config/i386/i386.md (*floatuns2_avx512): + New insn pattern. + (floatunssi2): Also enable for AVX512F and TARGET_SSE_MATH. + Rewrite expander pattern. Emit gen_floatunssi2_i387_with_xmm + for non-SSE modes. + (floatunsdisf2): Rewrite expander pattern. Hanlde TARGET_AVX512F. + (floatunsdidf2): Ditto. + +2018-05-23 Uros Bizjak + + * config/i386/i386.md (fixuns_truncdi2): New insn pattern. + (fixuns_truncsi2_avx512f): Ditto. + (*fixuns_truncsi2_avx512f_zext): Ditto. + (fixuns_truncsi2): Also enable for AVX512F and TARGET_SSE_MATH. + Emit fixuns_truncsi2_avx512f for AVX512F targets. + +2018-05-23 Alexander Monakov + + PR rtl-optimization/79985 + * df-scan.c (df_insn_refs_collect): Remove special case for + global registers and asm statements. + +2018-05-23 Alexander Monakov + + * extend.texi (Global Register Variables): Rewrite the bullet list. + Note that the register is available for allocation. Note that access + via inline asm must use constraints. Add note about async-signal + handlers. Remove paragraph about automagic register selection. + +2018-05-23 Richard Biener + + * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove restriction + of fixed offset from memset VN. + +2018-05-23 Bill Schmidt + + * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add + first_interp field. + (alloc_cand_and_find_basis): Initialize first_interp field. + (slsr_process_mul): Modify first_interp field. + (slsr_process_add): Likewise. + (slsr_process_cast): Modify first_interp field for each new + interpretation. + (slsr_process_copy): Likewise. + (dump_candidate): Dump first_interp field. + (replace_mult_candidate): Process all interpretations, not just + subsequent ones. + (replace_rhs_if_not_dup): Likewise. + (replace_one_candidate): Likewise. + +2018-05-23 Wilco Dijkstra + + * config/aarch64/aarch64.c (aarch64_use_frame_pointer): + Add new boolean. + (aarch64_needs_frame_chain): New function. + (aarch64_parse_override_string): Set aarch64_use_frame_pointer. + +2018-05-23 Sudakshina Das + + PR target/84882 + * common/config/aarch64/aarch64-common.c (aarch64_handle_option): + Check val before adding MASK_STRICT_ALIGN to opts->x_target_flags. + * config/aarch64/aarch64.opt (mstrict-align): Remove RejectNegative. + * config/aarch64/aarch64.c (aarch64_attributes): Mark allow_neg + as true for strict-align. + (aarch64_can_inline_p): Perform checks even when callee has no + attributes to check for strict alignment. + * doc/extend.texi (AArch64 Function Attributes): Document + no-strict-align. + * doc/invoke.texi: (AArch64 Options): Likewise. + +2018-05-23 Richard Sandiford + + PR tree-optimization/85853 + * tree-vect-slp.c (vect_slp_analyze_node_operations): Split out + the handling of the root of the node to... + (vect_slp_analyze_node_operations_1): ...this new function, + and run the whole thing with the child nodes' def types + set according to their SLP node's def type. + +2018-05-23 Richard Biener + + PR middle-end/85874 + * tree-data-ref.c (create_runtime_alias_checks): Defer + and ignore overflow warnings. + +2018-05-23 Yury Gribov + + PR tree-optimization/85822 + * tree-vrp.c (is_masked_range_test): Fix handling of negative + constants. + +2018-05-23 Richard Biener + + * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle arbitrary + memset constants via native_interpret_expr. + +2018-05-22 H.J. Lu + + PR target/85345 + * cgraph.h (cgraph_node::create): Set ifunc_resolver for ifunc + attribute. + (cgraph_node::create_alias): Likewise. + (cgraph_node::get_availability): Check ifunc_resolver instead + of looking up ifunc attribute. + * cgraphunit.c (maybe_diag_incompatible_alias): Likewise. + * varasm.c (do_assemble_alias): Likewise. + (assemble_alias): Likewise. + (default_binds_local_p_3): Likewise. + * cgraph.h (cgraph_node): Add ifunc_resolver. + (cgraph_node::only_called_directly_or_aliased_p): Return false + for IFUNC resolver. + * lto-cgraph.c (input_node): Set ifunc_resolver for ifunc + attribute. + * symtab.c (symtab_node::verify_base): Verify that ifunc_resolver + is equivalent to lookup_attribute ("ifunc", DECL_ATTRIBUTES (decl)). + (symtab_node::binds_to_current_def_p): Check ifunc_resolver + instead of looking up ifunc attribute. + +2018-05-22 Luis Machado + + * config/aarch64/aarch64.md (*ashift_extv_bfiz): New pattern. + +2018-05-22 Martin Sebor + + PR middle-end/85359 + * builtins.c (expand_builtin_strcpy): Call maybe_warn_nonstring_arg + only when expasion succeeds. + (expand_builtin_strcmp): Same. + (expand_builtin_strncmp): Same. + +2018-05-22 Martin Sebor + + * calls.c (maybe_warn_nonstring_arg): Fix a typo in a comment. + +2018-05-22 Jackson Woodruff + Kyrylo Tkachov + + * config/aarch64/aarch64-ldpstp.md: Replace uses of + aarch64_mem_pair_operand with memory_operand and delete operand swapping + code. + * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): + Add check for legitimate_address. + (aarch64_gen_adjusted_ldpstp): Swap operands where appropriate. + (aarch64_swap_ldrstr_operands): New. + * config/aarch64/aarch64-protos.h (aarch64_swap_ldrstr_operands): + Define prototype. + +2018-05-22 Jackson Woodruff + Kyrylo Tkachov + + * config/aarch64/aarch64.md: New patterns to generate stp + and ldp. + (store_pair_sw, store_pair_dw): New patterns to generate stp for + single words and double words. + (load_pair_sw, load_pair_dw): Likewise. + (store_pair_sf, store_pair_df, store_pair_si, store_pair_di): + Delete. + (load_pair_sf, load_pair_df, load_pair_si, load_pair_di): + Delete. + * config/aarch64/aarch64-ldpstp.md: Modify peephole + for different mode ldpstp and add peephole for merged zero stores. + Likewise for loads. + * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): + Add size check. + (aarch64_gen_store_pair): Rename calls to match new patterns. + (aarch64_gen_load_pair): Rename calls to match new patterns. + * config/aarch64/aarch64-simd.md (load_pair): Rename to... + (load_pair): ... This. + (store_pair): Rename to... + (vec_store_pair): ... This. + * config/aarch64/iterators.md (DREG, DREG2, DX2, SX, SX2, DSX): + New mode iterators. + (V_INT_EQUIV): Handle SImode. + * config/aarch64/predicates.md (aarch64_reg_zero_or_fp_zero): + New predicate. + +2018-05-22 Martin Sebor + + PR c/85623 + * calls.c (maybe_warn_nonstring_arg): Use string length to set + or ajust the presumed bound on an operation to avoid unnecessary + warnings. + +2018-05-22 Martin Sebor + + PR tree-optimization/85826 + * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Avoid + assuming that a DECL necesarily has a constant size. + +2018-05-22 Richard Sandiford + + PR middle-end/85862 + * internal-fn.c (expand_direct_optab_fn): Cope with a null lhs. + +2018-05-22 Richard Biener + + PR tree-optimization/85834 + * tree-ssa-sccvn.c (vn_reference_lookup_3): Properly handle + non-constant and non-zero memset arguments. + +2018-05-22 Martin Liska + + PR ipa/85607 + * ipa-icf.c (sem_item::add_type): Do not ICE for incomplete types. + +2018-05-22 Richard Biener + + PR tree-optimization/85863 + * tree-vect-stmts.c (vect_is_simple_cond): Only widen invariant + comparisons when vectype is specified. + (vectorizable_condition): Do not specify vectype for + vect_is_simple_cond when SLP vectorizing. + +2018-05-21 Michael Meissner + + PR target/85657 + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not + define __ibm128 as long double. + * config/rs6000/rs6000.c (rs6000_init_builtins): Create __ibm128 + as a distinct type when IEEE 128-bit support is enabled. + (init_float128_ieee): Fix up conversions between IFmode and IEEE + 128-bit types to use the correct functions. + (rs6000_expand_float128_convert): Use explicit FLOAT_EXTEND to + convert between 128-bit floating point types that have different + modes but the same representation, instead of using gen_lowpart to + makean alias. + * config/rs6000/rs6000.md (IFKF): New iterator for IFmode and + KFmode. + (IFKF_reg): New attributes to give the register constraints for + IFmode and KFmode. + (extendtf2_internal): New insns to mark an explicit + conversion between 128-bit floating point types that have a + different mode but share the same representation. + +2018-05-21 Richard Sandiford + + PR tree-optimization/85814 + * tree-ssa-strlen.c (get_stridx_plus_constant): Cope with + a null return from get_strinfo when unsharing the next + strinfo in the chain. + +2018-05-21 Vladimir Mezentsev + + PR gcc/84923 + * varasm.c (weak_finish): Clean up weak_decls. + +2018-05-21 Kyrylo Tkachov + + * config/aarch64/aarch64.md ("unspec"): Define UNSPEC_SABAL, + UNSPEC_SABDL2, UNSPEC_SADALP, UNSPEC_UABAL, UNSPEC_UABDL2, + UNSPEC_UADALP values. + * config/aarch64/iterators.md (ABAL): New int iterator. + (ABDL2): Likewise. + (ADALP): Likewise. + (sur): Add mappings for the above. + * config/aarch64/aarch64-simd.md (aarch64_abdl2_3): + New define_insn. + (aarch64_abal_4): Likewise. + (aarch64_adalp_3): Likewise. + (sadv16qi): New define_expand. + +2018-05-21 Alexander Nesterovskiy + + * config/i386/i386.md (*movsf_internal): AVX falsedep fix. + (*movdf_internal): Ditto. + (*rcpsf2_sse): Ditto. + (*rsqrtsf2_sse): Ditto. + (*sqrt2_sse): Ditto. + +2018-05-21 Tamar Christina + + * config/aarch64/aarch64-simd.md (aarch64_eor3qv8hi): Change to + eor3q4. + (aarch64_bcaxqv8hi): Change to bcaxq4. + * config/aarch64/aarch64-simd-builtins.def (veor3q_u8, veor3q_u32, + veor3q_u64, veor3q_s8, veor3q_s16, veor3q_s32, veor3q_s64, vbcaxq_u8, + vbcaxq_u32, vbcaxq_u64, vbcaxq_s8, vbcaxq_s16, vbcaxq_s32, + vbcaxq_s64): New. + * config/aarch64/arm_neon.h: Likewise. + * config/aarch64/iterators.md (VQ_I): New. + +2018-05-21 Alexey Brodkin + + * config.gcc: Add arc/t-multilib-linux to tmake_file for + arc*-*-linux*. + * config/arc/t-multilib-linux: Specify MULTILIB_OPTIONS and + MULTILIB_DIRNAMES + +2018-05-20 Chung-Ju Wu + + * config/nds32/constraints.md (S): New constraint. + * config/nds32/nds32.md (call_internal): Use constraint S. + (call_value_internal): Likewise. + (sibcall_internal): Likewise. + (sibcall_value_internal): Likewise. + +2018-05-20 Kito Cheng + Chung-Ju Wu + + * config/nds32/nds32.c (nds32_register_move_cost): Take garywolf cpu + into consideration. + +2018-05-20 Kito Cheng + Chung-Ju Wu + + * config/nds32/nds32-cost.c (rtx_cost_model_t): New structure. + (insn_size_16bit, insn_size_32bit): New variables for cost evaluation. + (nds32_rtx_costs_impl): Simplify. + (nds32_address_cost_impl): Simplify. + (nds32_init_rtx_costs): New function. + (nds32_rtx_costs_speed_prefer): Likewise. + (nds32_rtx_costs_size_prefer): Likewise. + (nds32_address_cost_speed_prefer): Likewise. + (nds32_address_cost_speed_fwprop): Likewise. + (nds32_address_cost_size_prefer): Likewise. + * config/nds32/nds32-protos.h (nds32_init_rtx_costs): Declare. + * config/nds32/nds32.c (nds32_option_override): Use + nds32_init_rtx_costs function. + +2018-05-20 Chung-Ju Wu + + * config/nds32/nds32.c (nds32_asm_file_start): Output pipeline model. + * config/nds32/nds32.h (TARGET_PIPELINE_N7): Define. + (TARGET_PIPELINE_N8): Likewise. + (TARGET_PIPELINE_N10): Likewise. + (TARGET_PIPELINE_N13): Likewise. + (TARGET_PIPELINE_GRAYWOLF): Likewise. + +2018-05-19 Monk Chiang + + * config/nds32/nds32-fpu.md: Update copyright year. + +2018-05-19 Chung-Ju Wu + + * config/nds32/nds32.h (ASM_SPEC): Adjust spec rule. + +2018-05-19 Chung-Ju Wu + + * config/nds32/nds32.c + (nds32_md_asm_adjust): Consider flag_inline_asm_r15 variable. + * config/nds32/nds32.opt (minline-asm-r15): New option. + +2018-05-19 Chung-Ju Wu + + * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS): Add + MASK_HW_ABS. + * config/nds32/nds32.md (abssi2): New pattern. + +2018-05-19 Uros Bizjak + + * config/i386/i386.md (rex64namesuffix): New mode attribute. + * config/i386/sse.md (sse_cvtsi2ss): + Merge insn pattern from sse_cvtsi2ss and + sse_cvtsi2ssq using SWI48 mode iterator. + (sse_cvtss2si): Merge insn pattern + from sse_cvtss2si and sse_cvtss2siq + using SWI48 mode iterator. + (sse_cvtss2si_2): Merge insn pattern from + sse_cvtss2si_2 and sse_cvtss2siq_2 using SWI48 mode iterator. + (sse_cvttss2si): Merge insn + pattern from sse_cvttss2si + and sse_cvttss2siq using SWI48 mode iterator. + (avx512f_vcvtss2usi): Merge insn pattern + from avx512f_vcvtss2usi and avx512f_vcvtss2usiq + using SWI48 mode iterator. + (avx512f_vcvttss2usi): Merge + insn pattern from avx512f_vcvttss2usi and + avx512f_vcvttss2usiq using SWI48 mode iterator. + (avx512f_vcvtsd2usi): Merge insn pattern + from avx512f_vcvtsd2usi and avx512f_vcvtsd2usiq + using SWI48 mode iterator. + (avx512f_vcvttsd2usi): Merge + insn pattern from avx512f_vcvttsd2usi and + avx512f_vcvttsd2usiq using SWI48 mode iterator. + (sse2_cvtsd2si): Merge insn pattern from + sse2_cvtsd2si and sse2_cvtsd2siq using + SWI48 mode iterator. + (sse2_cvtsd2si_2): Merge insn pattern from + sse2_cvtsd2si_2 and sse2_cvtsd2siq_2 using SWI48 mode iterator. + (sse_cvttsd2si): Merge insn + pattern from sse_cvttsd2si + and sse_cvttsd2siq using SWI48 mode iterator. + +2018-05-19 Chung-Ju Wu + + * config/nds32/nds32-md-auxiliary.c + (nds32_valid_smw_lwm_base_p): Refine. + (nds32_output_smw_single_word): Refine. + (nds32_output_smw_double_word): New. + * config/nds32/nds32-protos.h (nds32_output_smw_double_word): New. + +2018-05-19 Chung-Ju Wu + + * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push): Refine. + (nds32_output_stack_pop): Refine. + (nds32_expand_unaligned_load): Refine. + (nds32_expand_unaligned_store): Refine. + +2018-05-19 Kuan-Lin Chen + Chung-Ju Wu + + * config/nds32/constants.md: Add TP_REGNUM constant. + (unspec_element): Add UNSPEC_GOTINIT, UNSPEC_GOT, UNSPEC_GOTOFF, + UNSPEC_PLT, UNSPEC_TLSGD, UNSPEC_TLSLD, UNSPEC_TLSIE, UNSPEC_TLSLE and + UNSPEC_ADD32. + * config/nds32/nds32-doubleword.md: Consider flag_pic. + * config/nds32/nds32-dspext.md (mov): Expand TLS and PIC cases. + * config/nds32/nds32-predicates.c (nds32_const_unspec_p): New. + * config/nds32/nds32-md-auxiliary.c: Implementation that support TLS + and PIC code generation. + * config/nds32/nds32-protos.h: Declarations that support TLS and PIC + code generation. + * config/nds32/nds32-relax-opt.c: Consider TLS and PIC for relax + optimization. + * config/nds32/nds32.md: Support TLS and PIC. + * config/nds32/nds32.c: Support TLS and PIC. + * config/nds32/nds32.h (nds32_relax_insn_type): New enum type. + * config/nds32/predicates.md (nds32_nonunspec_symbolic_operand): New + predicate. + +2018-05-19 Chung-Ju Wu + + * config/nds32/nds32-predicates.c (const_vector_to_hwint): Use machine + mode with E_ prefix. + +2018-05-19 Kuan-Lin Chen + Chung-Ju Wu + + * config/nds32/constants.md (unspec_element): Add UNSPEC_ICT. + * config/nds32/nds32-md-auxiliary.c + (symbolic_reference_mentioned_p): New. + (nds32_legitimize_ict_address): New. + (nds32_expand_ict_move): New. + (nds32_indirect_call_referenced_p): New. + (nds32_symbol_binds_local_p): Delete. + (nds32_long_call_p): Modify. + * config/nds32/nds32-opts.h (nds32_ict_model_type): New enum type. + * config/nds32/nds32-protos.h + (symbolic_reference_mentioned_p): Declare. + (nds32_legitimize_ict_address): Declare. + (nds32_expand_ict_move): Declare. + (nds32_indirect_call_referenced_p): Declare. + * config/nds32/nds32-relax-opt.c (nds32_ict_const_p): New. + (nds32_relax_group): Use nds32_ict_const_p as condition. + * config/nds32/nds32.c (nds32_attribute_table): Add "indirect_call". + (nds32_asm_file_start): Output ict_model directive in asm code. + (nds32_legitimate_address_p): Consider indirect call. + (nds32_print_operand): Consider indirect call. + (nds32_print_operand_address): Consider indirect call. + (nds32_insert_attributes): Handle "indirect_call" attribute. + (TARGET_LEGITIMATE_ADDRESS_P): Define. + (TARGET_LEGITIMATE_CONSTANT_P): Define. + (TARGET_CANNOT_FORCE_CONST_MEM): Define. + (TARGET_DELEGITIMIZE_ADDRESS): Define. + (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. + * config/nds32/nds32.h (SYMBOLIC_CONST_P): Define. + (TARGET_ICT_MODEL_SMALL): Define. + (TARGET_ICT_MODEL_LARGE): Define. + * config/nds32/nds32.md (movsi): Consider ict model. + (call, call_value): Consider ict model. + (sibcall, sibcall_value): Consider ict model. + * config/nds32/nds32.opt (mict-model): New option. + * config/nds32/predicates.md (nds32_symbolic_operand): Consider ict + model. + +2018-05-18 Kito Cheng + Monk Chiang + Jim Wilson + + * common/config/riscv/riscv-common.c (riscv_parse_arch_string): + Add support to parse rv32e*. Clear MASK_RVE for rv32i and rv64i. + * config.gcc (riscv*-*-*): Add support for rv32e* and ilp32e. + * config/riscv/riscv-c.c (riscv_cpu_cpp_builtins): Define + __riscv_32e when TARGET_RVE. Handle ABI_ILP32E as soft-float ABI. + * config/riscv/riscv-opts.h (riscv_abi_type): Add ABI_ILP32E. + * config/riscv/riscv.c (riscv_compute_frame_info): When TARGET_RVE, + compute save_libcall_adjustment properly. + (riscv_option_override): Call error if TARGET_RVE and not ABI_ILP32E. + (riscv_conditional_register_usage): Handle TARGET_RVE and ABI_ILP32E. + * config/riscv/riscv.h (UNITS_PER_FP_ARG): Handle ABI_ILP32E. + (STACK_BOUNDARY, ABI_STACK_BOUNDARY): Handle TARGET_RVE. + (GP_REG_LAST, MAX_ARGS_IN_REGISTERS): Likewise. + (ABI_SPEC): Handle mabi=ilp32e. + * config/riscv/riscv.opt (abi_type): Add ABI_ILP32E. + (RVE): Add RVE mask. + * doc/invoke.texi (RISC-V options) <-mabi>: Add ilp32e info. + <-march>: Add rv32e as an example. + +2018-05-18 Marc Glisse + + PR c++/82899 + * tree-ssa-structalias.c (create_variable_info_for_1): Extra argument. + (intra_create_variable_infos): Handle C++ constructors. + +2018-05-18 Martin Liska + + * passes.def: Remove a redundant pass. + +2018-05-18 Eric Botcazou + + PR bootstrap/85838 + * config/sparc/sparc.c (sparc_expand_builtin): Always initialize op[0]. + +2018-05-18 Kyrylo Tkachov + + * config/arm/arm-cpus.in (armv3m, mode32): Delete features. + (ARMv4): Update. + (ARMv2, ARMv3, ARMv3m): Delete fgroups. + (ARMv6m): Update. + (armv2, armv2a, armv3, armv3m): Delete architectures. + (arm2, arm250, arm3, arm6, arm60, arm600, arm610, arm620, + arm7, arm7d, arm7di, arm70, arm700, arm700i, arm710, arm720, + arm710c, arm7100, arm7500, arm7500fe, arm7m, arm7dm, arm7dmi): + Delete cpus. + * config/arm/arm.md (maddsidi4): Remove check for arm_arch3m. + (*mulsidi3adddi): Likewise. + (mulsidi3): Likewise. + (*mulsidi3_nov6): Likewise. + (umulsidi3): Likewise. + (umulsidi3_nov6): Likewise. + (umaddsidi4): Likewise. + (*umulsidi3adddi): Likewise. + (smulsi3_highpart): Likewise. + (*smulsi3_highpart_nov6): Likewise. + (umulsi3_highpart): Likewise. + (*umulsi3_highpart_nov6): Likewise. + * config/arm/arm.h (arm_arch3m): Delete. + * config/arm/arm.c (arm_arch3m): Delete. + (arm_option_override_internal): Update armv3-related comment. + (arm_configure_build_target): Delete use of isa_bit_mode32. + (arm_option_reconfigure_globals): Delete set of arm_ach3m. + (arm_rtx_costs_internal): Delete check of arm_arch3m. + * config/arm/arm-fixed.md (mulsq3): Delete check for arm_arch3m. + (mulsa3): Likewise. + (mulusa3): Likewise. + * config/arm/arm-protos.h (arm_arch3m): Delete. + * config/arm/arm-tables.opt: Regenerate. + * config/arm/arm-tune.md: Likewise. + * config/arm/t-arm-elf (all_early_nofp): Delete mentions of + deleted architectures. + +2018-05-18 Kyrylo Tkachov + + * config/arm/arm-cpus.in (armv5, armv5e): Delete features. + (armv5t, armv5te): New features. + (ARMv5, ARMv5e): Delete fgroups. + (ARMv5t, ARMv5te): Adjust for above changes. + (ARMv6m): Likewise. + (armv5, armv5e): Delete arches. + * config/arm/arm.md (*call_reg_armv5): Use arm_arch5t instead of + arm_arch5. + (*call_reg_arm): Likewise. + (*call_value_reg_armv5): Likewise. + (*call_value_reg_arm): Likewise. + (*call_symbol): Likewise. + (*call_value_symbol): Likewise. + (*sibcall_insn): Likewise. + (*sibcall_value_insn): Likewise. + (clzsi2): Likewise. + (prefetch): Likewise. + (define_split and define_peephole2 dependent on arm_arch5): + Likewise. + * config/arm/arm.h (TARGET_LDRD): Use arm_arch5te instead of + arm_arch5e. + (TARGET_ARM_QBIT): Likewise. + (TARGET_DSP_MULTIPLY): Likewise. + (enum base_architecture): Delete BASE_ARCH_5, BASE_ARCH_5E. + (arm_arch5, arm_arch5e): Delete. + (arm_arch5t, arm_arch5te): Declare. + * config/arm/arm.c (arm_arch5, arm_arch5e): Delete. + (arm_arch5t): Declare. + (arm_option_reconfigure_globals): Update for the above. + (arm_options_perform_arch_sanity_checks): Update comment, replace + use of arm_arch5 with arm_arch5t. + (use_return_insn): Likewise. + (arm_emit_call_insn): Likewise. + (output_return_instruction): Likewise. + (arm_final_prescan_insn): Likewise. + (arm_coproc_builtin_available): Likewise. + * config/arm/arm-c.c (arm_cpu_builtins): Replace arm_arch5 and + arm_arch5e with arm_arch5t and arm_arch5te. + * config/arm/arm-protos.h (arm_arch5, arm_arch5e): Delete. + (arm_arch5t, arm_arch5te): Declare. + * config/arm/arm-tables.opt: Regenerate. + * config/arm/t-arm-elf: Remove references to armv5, armv5e. + * config/arm/t-multilib: Likewise. + * config/arm/thumb1.md (*call_reg_thumb1_v5): Check arm_arch5t + instead of arm_arch5. + (*call_reg_thumb1): Likewise. + (*call_value_reg_thumb1_v5): Likewise. + (*call_value_reg_thumb1): Likewise. + * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Remove now + unreachable path. + * doc/invoke.texi (ARM Options): Remove references to armv5, armv5e. + +2018-05-18 Martin Liska + + PR gcov-profile/84846 + * doc/gcov.texi: Document -t option of gcov tool. + +2018-05-18 Martin Liska + + PR gcov-profile/84846 + * gcov.c (print_usage): Add new -t option. + (process_args): Handle the option. + (generate_results): Use stdout as output when requested by + the option. + +2018-05-18 Martin Liska + + PR gcov-profile/84846 + * coverage.c (coverage_init): Write PWD to .gcno file. + * doc/gcov.texi: Document how working directory is printed. + * gcov-dump.c (dump_gcov_file): Print PWD. + * gcov.c (output_intermediate_file): Likewise. + (read_graph_file): Read PWD string. + (output_lines): Print PWD. + +2018-05-18 Prathamesh Kulkarni + + PR middle-end/85817 + * ipa-pure-const.c (malloc_candidate_p): Remove the check integer_zerop + for retval and return false if all args to phi are zero. + +2018-05-18 Richard Biener + + * gimple-ssa-evrp.c (class evrp_folder): Add simplify_stmt_using_ranges + method. + (evrp_dom_walker::before_dom_children): Call it. + +2018-05-18 Richard Biener + + * tree-dfa.c (get_ref_base_and_extent): Use range-info to refine + results when processing array refs with variable index. + +2018-05-18 Toon Moene + + * doc/invoke.texi: Move -floop-unroll-and-jam documentation + directly after that of -floop-interchange. Indicate that both + options are enabled by default when specifying -O3. + +2018-05-18 Kyrylo Tkachov + + * config/aarch64/aarch64-simd.md (vec_set): Use VALL_F16 mode + iterator. Delete separate integer-mode vec_set expander. + (aarch64_simd_vec_setv2di): Delete. + (vec_setv2di): Delete. + (aarch64_simd_vec_set): Delete all other patterns with that name. + Use VALL_F16 mode iterator. Add LD1 alternative and use vwcore for + the "w, r" alternative. + +2018-05-18 Martin Liska + + * passes.def: Add pass_lower_switch and pass_lower_switch_O0. + * tree-pass.h (make_pass_lower_switch_O0): New function. + * tree-switch-conversion.c (node_has_low_bound): Remove. + (node_has_high_bound): Likewise. + (node_is_bounded): Likewise. + (class pass_lower_switch): Make it a template type and create + two instances. + (pass_lower_switch::execute): Add template argument. + (make_pass_lower_switch): New function. + (make_pass_lower_switch_O0): New function. + (do_jump_if_equal): Remove. + (emit_case_nodes): Simplify to just handle all 3 cases and leave + all the hard work to tree optimization passes. + +2018-05-18 Martin Liska + + * dbgcnt.c (limit_low): Renamed from limit. + (limit_high): New variable. + (dbg_cnt_is_enabled): Check for upper limit. + (dbg_cnt): Adjust dumping. + (dbg_cnt_set_limit_by_index): Add new argument for high + value. + (dbg_cnt_set_limit_by_name): Likewise. + (dbg_cnt_process_single_pair): Parse new format. + (dbg_cnt_process_opt): Use strtok. + (dbg_cnt_list_all_counters): Remove 'value' and add + 'limit_high'. + * doc/invoke.texi: Document changes. + +2018-05-18 Richard Sandiford + + * doc/sourcebuild.texi (scalar_all_fma): Document. + * tree.def (FMA_EXPR): Delete. + * internal-fn.def (FMA, FMS, FNMA, FNMS): New internal functions. + * internal-fn.c (ternary_direct): New macro. + (expand_ternary_optab_fn): Likewise. + (direct_ternary_optab_supported_p): Likewise. + * Makefile.in (build/genmatch.o): Depend on case-fn-macros.h. + * builtins.c (fold_builtin_fma): Delete. + (fold_builtin_3): Don't call it. + * cfgexpand.c (expand_debug_expr): Remove FMA_EXPR handling. + * expr.c (expand_expr_real_2): Likewise. + * fold-const.c (operand_equal_p): Likewise. + (fold_ternary_loc): Likewise. + * gimple-pretty-print.c (dump_ternary_rhs): Likewise. + * gimple.c (DEFTREECODE): Likewise. + * gimplify.c (gimplify_expr): Likewise. + * optabs-tree.c (optab_for_tree_code): Likewise. + * tree-cfg.c (verify_gimple_assign_ternary): Likewise. + * tree-eh.c (operation_could_trap_p): Likewise. + (stmt_could_throw_1_p): Likewise. + * tree-inline.c (estimate_operator_cost): Likewise. + * tree-pretty-print.c (dump_generic_node): Likewise. + (op_code_prio): Likewise. + * tree-ssa-loop-im.c (stmt_cost): Likewise. + * tree-ssa-operands.c (get_expr_operands): Likewise. + * tree.c (commutative_ternary_tree_code, add_expr): Likewise. + * fold-const-call.h (fold_fma): Delete. + * fold-const-call.c (fold_const_call_ssss): Handle CFN_FMS, + CFN_FNMA and CFN_FNMS. + (fold_fma): Delete. + * genmatch.c (combined_fn): New enum. + (commutative_ternary_tree_code): Remove FMA_EXPR handling. + (commutative_op): New function. + (commutate): Use it. Handle more than 2 operands. + (dt_operand::gen_gimple_expr): Use commutative_op. + (parser::parse_expr): Allow :c to be used with non-binary + operators if the commutative operand is known. + * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Handle + CFN_FMS, CFN_FNMA and CFN_FNMS. + (backprop::process_assign_use): Remove FMA_EXPR handling. + * hsa-gen.c (gen_hsa_insns_for_operation_assignment): Likewise. + (gen_hsa_fma): New function. + (gen_hsa_insn_for_internal_fn_call): Use it for IFN_FMA, IFN_FMS, + IFN_FNMA and IFN_FNMS. + * match.pd: Add folds for IFN_FMS, IFN_FNMA and IFN_FNMS. + * gimple-fold.h (follow_all_ssa_edges): Declare. + * gimple-fold.c (follow_all_ssa_edges): New function. + * tree-ssa-math-opts.c (convert_mult_to_fma_1): Use the + gimple_build interface and use follow_all_ssa_edges to fold the result. + (convert_mult_to_fma): Use direct_internal_fn_suppoerted_p + instead of checking for optabs directly. + * config/i386/i386.c (ix86_add_stmt_cost): Recognize FMAs as calls + rather than FMA_EXPRs. + * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Create a + call to IFN_FMA instead of an FMA_EXPR. + +2018-05-17 Jim Wilson + + * expr.c (do_tablejump): When converting index to Pmode, if we have a + sign extended promoted subreg, and the range does not have the sign bit + set, then do a sign extend. + + * config/riscv/riscv.c (riscv_extend_comparands): In unsigned QImode + test, check for sign extended subreg and/or constant operands, and + do a sign extend in that case. + +2018-05-17 Steve Ellcey + + * config/aarch64/thunderx2t99.md (thunderx2t99_ls_both): Delete. + (thunderx2t99_multiple): Delete psuedo-units from used cpus. + Add untyped. + (thunderx2t99_alu_shift): Remove alu_shift_reg, alus_shift_reg. + Change logics_shift_reg to logics_shift_imm. + (thunderx2t99_fp_loadpair_basic): Delete. + (thunderx2t99_fp_storepair_basic): Delete. + (thunderx2t99_asimd_int): Add neon_sub and neon_sub_q types. + (thunderx2t99_asimd_polynomial): Delete. + (thunderx2t99_asimd_fp_simple): Add neon_fp_mul_s_scalar_q + and neon_fp_mul_d_scalar_q. + (thunderx2t99_asimd_fp_conv): Add *int_to_fp* types. + (thunderx2t99_asimd_misc): Delete neon_dup and neon_dup_q. + (thunderx2t99_asimd_recip_step): Add missing *sqrt* types. + (thunderx2t99_asimd_lut): Add missing tbl types. + (thunderx2t99_asimd_ext): Delete. + (thunderx2t99_asimd_load1_1_mult): Delete. + (thunderx2t99_asimd_load1_2_mult): Delete. + (thunderx2t99_asimd_load1_ldp): New. + (thunderx2t99_asimd_load1): New. + (thunderx2t99_asimd_load2): Add missing *load2* types. + (thunderx2t99_asimd_load3): New. + (thunderx2t99_asimd_load4): New. + (thunderx2t99_asimd_store1_1_mult): Delete. + (thunderx2t99_asimd_store1_2_mult): Delete. + (thunderx2t99_asimd_store2_mult): Delete. + (thunderx2t99_asimd_store2_onelane): Delete. + (thunderx2t99_asimd_store_stp): New. + (thunderx2t99_asimd_store1): New. + (thunderx2t99_asimd_store2): New. + (thunderx2t99_asimd_store3): New. + (thunderx2t99_asimd_store4): New. + +2018-05-17 Jerome Lambourg + + * config/arm/arm_cmse.h (cmse_nsfptr_create, cmse_is_nsfptr): Remove + #include . Replace intptr_t with __INTPTR_TYPE__. + +2018-05-17 Pat Haugen + Segher Boessenkool + + PR target/85698 + * config/rs6000/rs6000.c (rs6000_output_move_128bit): Check dest + operand. + +2018-05-17 Richard Biener + + * tree-ssa-dse.c (dse_classify_store): Fix iterator increment + for pruning loop and prune defs feeding only already visited PHIs. + +2018-05-17 Richard Biener + + * tree-ssa-sccvn.c (vn_reference_lookup_3): Improve memset handling. + +2018-05-17 Bin Cheng + Richard Biener + + PR tree-optimization/85793 + * tree-vect-stmts.c (vectorizable_load): Handle 1 element-wise load + for VMAT_ELEMENTWISE. + +2018-05-17 Richard Sandiford + + * internal-fn.h (lookup_internal_fn): Declare + * internal-fn.c (lookup_internal_fn): New function. + * gimple.c (gimple_build_call_from_tree): Handle calls to + internal functions. + * gimple-pretty-print.c (dump_gimple_call): Print "." before + internal function names. + * tree-pretty-print.c (dump_generic_node): Likewise. + * tree-ssa-scopedtables.c (expr_hash_elt::print): Likewise. + +2018-05-17 Richard Sandiford + + * gimple-fold.h (gimple_build): Make the function forms take + combined_fn rather than built_in_function. + (gimple_simplify): Likewise. + * gimple-match-head.c (gimple_simplify): Likewise. + * gimple-fold.c (gimple_build): Likewise. + * tree-vect-loop.c (get_initial_def_for_reduction): Use gimple_build + rather than gimple_build_call_internal. + (get_initial_defs_for_reduction): Likewise. + (vect_create_epilog_for_reduction): Likewise. + (vectorizable_live_operation): Likewise. + +2018-05-17 Martin Liska + + * gimple-ssa-sprintf.c (format_directive): Do not use + space in between 'G_' and '('. + +2018-05-17 Jakub Jelinek + + PR target/85323 + * config/i386/i386.c (ix86_fold_builtin): Handle masked shifts + even if the mask is not all ones. + + PR target/85323 + * config/i386/i386.c (ix86_fold_builtin): Fold shift builtins by + vector. + (ix86_gimple_fold_builtin): Likewise. + + PR target/85323 + * config/i386/i386.c: Include tree-vector-builder.h. + (ix86_vector_shift_count): New function. + (ix86_fold_builtin): Fold shift builtins by scalar count. + (ix86_gimple_fold_builtin): Likewise. + + * config/i386/avx512fintrin.h (_mm512_set_epi16, _mm512_set_epi8, + _mm512_setzero): New intrinsics. + +2018-05-17 James Greenhalgh + Kyrylo Tkachov + + * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify + code generation for cases where splatting a value is not useful. + * simplify-rtx.c (simplify_ternary_operation): Simplify + vec_merge across a vec_duplicate and a paradoxical subreg forming + a vector mode to a vec_concat. + +2018-05-17 Olga Makhotina + + * config.gcc: Support "goldmont-plus". + * config/i386/driver-i386.c (host_detect_local_cpu): Detect + "goldmont-plus". + * config/i386/i386-c.c (ix86_target_macros_internal): Handle + PROCESSOR_GOLDMONT_PLUS. + * config/i386/i386.c (m_GOLDMONT_PLUS): Define. + (processor_target_table): Add "goldmont-plus". + (PTA_GOLDMONT_PLUS): Define. + (ix86_lea_outperforms): Add TARGET_GOLDMONT_PLUS. + (get_builtin_code_for_version): Handle PROCESSOR_GOLDMONT_PLUS. + (fold_builtin_cpu): Add M_INTEL_GOLDMONT_PLUS. + (fold_builtin_cpu): Add "goldmont-plus". + (ix86_add_stmt_cost): Add TARGET_GOLDMONT_PLUS. + (ix86_option_override_internal): Add "goldmont-plus". + * config/i386/i386.h (processor_costs): Define TARGET_GOLDMONT_PLUS. + (processor_type): Add PROCESSOR_GOLDMONT_PLUS. + * config/i386/x86-tune.def: Add m_GOLDMONT_PLUS. + * doc/invoke.texi: Add goldmont-plus as x86 -march=/-mtune= CPU type. + +2018-05-17 Richard Biener + + PR tree-optimization/85757 + * tree-ssa-dse.c (dse_classify_store): Record a PHI def and + remove defs that only feed that PHI from further processing. + +2018-05-16 Jim Wilson + + * config/riscv/riscv.md (si3_mask, si3_mask_1): Prepend + asterisk to name. + (di3_mask, di3_mask_1): Likewise. + +2018-05-16 Mark Wielaard + + * dwarf2out.c (count_index_strings): New function. + (output_indirect_strings): Call count_index_strings and generate + header for dwarf_version >= 5. + +2018-05-16 Mark Wielaard + + * dwarf2out.c (dwarf_FORM): New function. + (set_indirect_string): Use dwarf_FORM. + (reset_indirect_string): Likewise. + (size_of_die): Likewise. + (value_format): Likewise. + (output_die): Likewise. + (add_skeleton_AT_string): Likewise. + (output_macinfo_op): Likewise. + (index_string): Likewise. + (output_index_string_offset): Likewise. + (output_index_string): Likewise. + (count_index_strings): Likewise. + +2018-05-16 Carl Love + + * config/rs6000/rs6000.md (prefetch): Generate ISA 2.06 instructions + dcbt and dcbtstt with TH=16 if operands[2] is 0 and Power 8 or newer. + +2018-05-16 Martin Jambor + + * ipa-prop.c (ipa_free_all_edge_args): Remove. + * ipa-prop.h (ipa_free_all_edge_args): Likewise. + +2018-05-16 Wilco Dijkstra + + * config/aarch64/aarch64.md (fma4): Change into expand pattern. + (fnma4): Likewise. + (fms4): Likewise. + (fnms4): Likewise. + (aarch64_fma4): Rename insn, reorder accumulator operand. + (aarch64_fnma4): Likewise. + (aarch64_fms4): Likewise. + (aarch64_fnms4): Likewise. + (aarch64_fnmadd4): Likewise. + +2018-05-16 Jason Merrill + + * tree.c (warn_deprecated_use): Return bool. Simplify logic. + +2018-05-16 Richard Biener + + * tree-vectorizer.h (struct stmt_info_for_cost): Add where member. + (dump_stmt_cost): Declare. + (add_stmt_cost): Dump cost we add. + (add_stmt_costs): New function. + (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost): + No longer exported. + (vect_analyze_stmt): Adjust prototype. + (vectorizable_condition): Likewise. + (vectorizable_live_operation): Likewise. + (vectorizable_reduction): Likewise. + (vectorizable_induction): Likewise. + * tree-vect-loop.c (vect_analyze_loop_operations): Create local + cost vector to pass to vectorizable_ and record afterwards. + (vect_model_reduction_cost): Take cost vector argument and adjust. + (vect_model_induction_cost): Likewise. + (vectorizable_reduction): Likewise. + (vectorizable_induction): Likewise. + (vectorizable_live_operation): Likewise. + * tree-vect-slp.c (vect_create_new_slp_node): Initialize + SLP_TREE_NUMBER_OF_VEC_STMTS. + (vect_analyze_slp_cost_1): Remove. + (vect_analyze_slp_cost): Likewise. + (vect_slp_analyze_node_operations): Take visited args and + a target cost vector. Avoid processing already visited stmt sets. + (vect_slp_analyze_operations): Use a local cost vector to gather + costs and register those of non-discarded instances. + (vect_bb_vectorization_profitable_p): Use add_stmt_costs. + (vect_schedule_slp_instance): Remove copying of + SLP_TREE_NUMBER_OF_VEC_STMTS. Instead assert that it is not + zero. + * tree-vect-stmts.c (record_stmt_cost): Remove path directly + adding cost. Record cost entry location. + (vect_prologue_cost_for_slp_op): Function to compute cost of + a constant or invariant generated for SLP vect in the prologue, + split out from vect_analyze_slp_cost_1. + (vect_model_simple_cost): Make static. Adjust for SLP costing. + (vect_model_promotion_demotion_cost): Likewise. + (vect_model_store_cost): Likewise, make static. + (vect_model_load_cost): Likewise. + (vectorizable_bswap): Add cost vector arg and adjust. + (vectorizable_call): Likewise. + (vectorizable_simd_clone_call): Likewise. + (vectorizable_conversion): Likewise. + (vectorizable_assignment): Likewise. + (vectorizable_shift): Likewise. + (vectorizable_operation): Likewise. + (vectorizable_store): Likewise. + (vectorizable_load): Likewise. + (vectorizable_condition): Likewise. + (vectorizable_comparison): Likewise. + (can_vectorize_live_stmts): Likewise. + (vect_analyze_stmt): Likewise. + (vect_transform_stmt): Adjust calls to vectorizable_*. + * tree-vectorizer.c: Include gimple-pretty-print.h. + (dump_stmt_cost): New function. + +2018-05-16 Richard Biener + + * params.def (PARAM_DSE_MAX_ALIAS_QUERIES_PER_STORE): New param. + * doc/invoke.texi (dse-max-alias-queries-per-store): Document. + * tree-ssa-dse.c: Include tree-ssa-loop.h. + (check_name): New callback. + (dse_classify_store): Track cycles via a visited bitmap of PHI + defs and simplify handling of in-loop and across loop dead stores + and properly fail for loop-variant refs. Handle byte-tracking with + multiple defs. Use PARAM_DSE_MAX_ALIAS_QUERIES_PER_STORE for + limiting the walk. + +2018-05-16 Richard Sandiford + + * tree-vectorizer.h (vect_get_vector_types_for_stmt): Declare. + (vect_get_mask_type_for_stmt): Likewise. + * tree-vect-slp.c (vect_two_operations_perm_ok_p): New function, + split out from... + (vect_build_slp_tree_1): ...here. Use vect_get_vector_types_for_stmt + to determine the statement's vector type and the vector type that + should be used for calculating nunits. Deal with cases in which + the type has to be deferred. + (vect_slp_analyze_node_operations): Use vect_get_vector_types_for_stmt + and vect_get_mask_type_for_stmt to calculate STMT_VINFO_VECTYPE. + * tree-vect-loop.c (vect_determine_vf_for_stmt_1) + (vect_determine_vf_for_stmt): New functions, split out from... + (vect_determine_vectorization_factor): ...here. + * tree-vect-stmts.c (vect_get_vector_types_for_stmt) + (vect_get_mask_type_for_stmt): New functions, split out from + vect_determine_vectorization_factor. + +2018-05-16 Richard Biener + + * tree-cfg.c (verify_gimple_assign_ternary): Properly + verify the [VEC_]COND_EXPR embedded comparison. + +2018-05-15 Martin Sebor + + PR tree-optimization/85753 + * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Handle + RECORD_TYPE in addition to ARRAY_TYPE. + +2018-05-15 Martin Sebor + + PR middle-end/85643 + * calls.c (get_attr_nonstring_decl): Handle MEM_REF. + +2018-05-15 Richard Biener + + * tree-ssa-dse.c (dse_classify_store): Remove use_stmt parameter, + add by_clobber_p one. Change algorithm to collect all defs + representing uses we need to walk and try reducing them to + a single one before failing. + (dse_dom_walker::dse_optimize_stmt): Adjust. + +2018-05-13 Mark Wielaard + + * dwarf2out.c (dwarf_OP): Handle DW_OP_addrx and DW_OP_constx. + (size_of_loc_descr): Likewise. + (output_loc_operands): Likewise. + (output_loc_operands_raw): Likewise. + (dw_addr_op): Use dwarf_OP () for DW_OP_constx and DW_OP_addrx. + (resolve_addr_in_expr): Handle DW_OP_addrx and DW_OP_constx. + (hash_loc_operands): Likewise. + (compare_loc_operands): Likewise. + +2018-05-14 Mark Wielaard + + * dwarf2out.c (count_index_addrs): New function. + (dwarf2out_finish): Use count_index_addrs to calculate addrs_length. + +2018-05-15 Prathamesh Kulkarni + + PR tree-optimization/83648 + * ipa-pure-const.c (malloc_candidate_p): Allow function with NULL + return value as malloc candidate. + +2018-05-15 Prathamesh Kulkarni + + PR ipa/85734 + * ipa-pure-const.c (warn_function_malloc): Pass value of known_finite + param as true in call to suggest_attribute. + +2018-05-14 Segher Boessenkool + + * doc/invoke.texi (RS/6000 and PowerPC Options): Delete @itemx for + -mreadonly-in-sdata. + +2018-05-14 Kyrylo Tkachov + + * config/aarch64/aarch64-simd.md (*aarch64_crypto_aese_fused): + New pattern. + (aarch64_crypto_aesd_fused): Likewise. + +2018-05-14 Wilco Dijkstra + + * config/aarch64/aarch64.md (mov): Remove '*' in alternatives. + (movsi_aarch64): Likewise. + (load_pairsi): Likewise. + (load_pairdi): Likewise. + (store_pairsi): Likewise. + (store_pairdi): Likewise. + (load_pairsf): Likewise. + (load_pairdf): Likewise. + (store_pairsf): Likewise. + (store_pairdf): Likewise. + (zero_extend): Likewise. + (trunc): Swap alternatives. + (fcvt_target): Add '?' to prefer w over r. + +2018-05-14 Jakub Jelinek + + PR target/85756 + * config/i386/i386.md: Disallow non-commutative arithmetics in + last twpeephole for mem {+,-,&,|,^}= x; mem != 0 after cmpelim + optimization. Use COMMUTATIVE_ARITH_P test rather than != MINUS + in the peephole2 before it. + +2018-05-14 Sebastian Peryt + + * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLDEMOTE_SET, + OPTION_MASK_ISA_CLDEMOTE_UNSET): New defines. + (ix86_handle_option): Handle -mcldemote. + * config.gcc: New header. + * config/i386/cldemoteintrin.h: New file. + * config/i386/cpuid.h (bit_CLDEMOTE): New bit. + * config/i386/driver-i386.c (host_detect_local_cpu): Detect + -mcldemote. + * config/i386/i386-c.c (ix86_target_macros_internal): Handle + OPTION_MASK_ISA_CLDEMOTE. + * config/i386/i386.c (ix86_target_string): Add -mcldemote. + (ix86_valid_target_attribute_inner_p): Ditto. + (enum ix86_builtins): Add IX86_BUILTIN_CLDEMOTE. + (ix86_init_mmx_sse_builtins): Define __builtin_ia32_cldemote. + (ix86_expand_builtin): Expand IX86_BUILTIN_CLDEMOTE. + * config/i386/i386.h (TARGET_CLDEMOTE, TARGET_CLDEMOTE_P): New. + * config/i386/i386.md (UNSPECV_CLDEMOTE): New. + (cldemote): New. + * config/i386/i386.opt: Add -mcldemote. + * config/i386/x86intrin.h: New header. + * doc/invoke.texi: Add -mcldemote. + +2018-05-14 Richard Biener + + * doc/match-and-simplify.texi: Adjust :s documentation. + +2018-05-14 Alexander Monakov + + * sort.cc (REORDER_23): Pass the type for the temporaries instead of + intended memcpy size. + (REORDER_45): Likewise. + +2018-05-13 Alexander Monakov + + * sort.cc: New file. + * system.h [!CHECKING_P] (qsort): Redirect to gcc_qsort. + * vec.c (qsort_chk): Use gcc_qsort. + * Makefile.in (OBJS-libcommon): Add sort.o. + (build/sort.o): New target. Use it... + (BUILD_RTL): ... here, and... + (build/gencfn-macros): ... here, and... + (build/genmatch): ... here. + +2018-05-13 Kito Cheng + Chung-Ju Wu + + * config.gcc (nds32*-*-*): Check that n15 is valid to --with-cpu. + * config/nds32/nds32-graywolf.md: New file. + * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_GRAYWOLF. + * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n15 + pipeline. + * config/nds32/nds32-protos.h: More declarations for n15 pipeline. + * config/nds32/nds32-utils.c: More implementations for n15 pipeline. + * config/nds32/nds32.md (pipeline_model): Add graywolf. + * config/nds32/nds32.opt (mcpu): Support n15 pipeline cpus. + * config/nds32/pipelines.md: Include n15 settings. + +2018-05-13 Kito Cheng + Chung-Ju Wu + + * config.gcc (nds32*-*-*): Check that n12/n13 are valid to --with-cpu. + * config/nds32/nds32-n13.md: New file. + * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N12 and CPU_N13. + * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n12/n13 + pipeline. + * config/nds32/nds32-protos.h: More declarations for n12/n13 pipeline. + * config/nds32/nds32.md (pipeline_model): Add n13. + * config/nds32/nds32.opt (mcpu): Support n12/n13 pipeline cpus. + * config/nds32/pipelines.md: Include n13 settings. + +2018-05-13 Kito Cheng + Chung-Ju Wu + + * config.gcc (nds32*-*-*): Check that n10/d10 are valid to --with-cpu. + * config/nds32/nds32-n10.md: New file. + * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N10. + * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n10 + pipeline. + * config/nds32/nds32-protos.h: More declarations for n10 pipeline. + * config/nds32/nds32-utils.c: More implementations for n10 pipeline. + * config/nds32/nds32.md (pipeline_model): Add n10. + * config/nds32/nds32.opt (mcpu): Support n10 pipeline cpus. + * config/nds32/pipelines.md: Include n10 settings. + +2018-05-13 Monk Chiang + Kito Cheng + Chung-Ju Wu + + * config.gcc (nds32be-*-*): Handle --with-ext-dsp. + * config/nds32/constants.md (unspec_element, unspec_volatile_element): + Add enum values for DSP extension instructions. + * config/nds32/constraints.md (Iu06, IU06, CVp5, CVs5, CVs2, CVhi): + New constraints. + * config/nds32/iterators.md (shifts, shiftrt, sat_plus, all_plus, + sat_minus, all_minus, plus_minus, extend, sumax, sumin, sumin_max): + New code iterators. + (su, zs, uk, opcode, add_rsub, add_sub): New code attributes. + * config/nds32/nds32-dspext.md: New file for DSP implementation. + * config/nds32/nds32-intrinsic.c: Implementation of DSP extension. + * config/nds32/nds32-intrinsic.md: Likewise. + * config/nds32/nds32_intrinsic.h: Likewise. + * config/nds32/nds32-md-auxiliary.c: Likewise. + * config/nds32/nds32-memory-manipulation.c: Consider DSP extension. + * config/nds32/nds32-predicates.c (const_vector_to_hwint): New. + (nds32_valid_CVp5_p, nds32_valid_CVs5_p): New. + (nds32_valid_CVs2_p, nds32_valid_CVhi_p): New. + * config/nds32/nds32-protos.h: New declarations for DSP extension. + * config/nds32/nds32-utils.c (extract_mac_non_acc_rtx): New case + TYPE_DMAC in switch statement. + * config/nds32/nds32.c: New checking and implementation for DSP + extension instructions. + * config/nds32/nds32.h: Likewise. + * config/nds32/nds32.md: Likewise. + * config/nds32/nds32.opt (mhw-abs, mext-dsp): New options. + * config/nds32/predicates.md: Implement new predicates for DSP + extension. + +2018-05-11 Michael Meissner + + * config/rs6000/rs6000.md (mov_softfloat, FMOVE32): + Reformat alternatives and attributes so it is easier to identify + which constraints/attributes go with which instruction. + (mov_hardfloat32, FMOVE64): Likewise. + (mov_softfloat32, FMOVE64): Likewise. + (mov_hardfloat64, FMOVE64): Likewise. + (mov_softfloat64, FMOVE64): Likewise. + +2018-05-11 Kelvin Nilsen + + * doc/extend.texi (PowerPC Built-in Functions): Rename this + subsection. + (Basic PowerPC Built-in Functions): The new name of the + subsection previously known as "PowerPC Built-in Functions". + (Basic PowerPC Built-in Functions Available on all Configurations): + New subsubsection. + (Basic PowerPC Built-in Functions Available on ISA 2.05): Likewise. + (Basic PowerPC Built-in Functions Available on ISA 2.06): Likewise. + (Basic PowerPC Built-in Functions Available on ISA 2.07): Likewise. + (Basic PowerPC Built-in Functions Available on ISA 3.0): Likewise. + +2018-05-11 Martin Jambor + + PR ipa/85655 + * ipa-cp.c (intersect_with_plats): Check that the lattice contains + single const. + +2018-05-11 Richard Earnshaw + + PR target/85733 + * config/arm/arm-cpus.in (fgroup ARMv6m): Add be8 feature. + +2018-05-11 Sebastian Peryt + + * common/config/i386/i386-common.c (OPTION_MASK_ISA_WAITPKG_SET, + OPTION_MASK_ISA_WAITPKG_UNSET): New defines. + (ix86_handle_option): Handle -mwaitpkg. + * config.gcc: New header. + * config/i386/cpuid.h (bit_WAITPKG): New bit. + * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mwaitpkg. + * config/i386/i386-builtin-types.def ((UINT8, UNSIGNED, UINT64)): New + function type. + * config/i386/i386-c.c (ix86_target_macros_internal): Handle + OPTION_MASK_ISA_WAITPKG. + * config/i386/i386.c (ix86_target_string): Add -mwaitpkg. + (ix86_option_override_internal): Add PTA_WAITPKG. + (ix86_valid_target_attribute_inner_p): Add -mwaitpkg. + (enum ix86_builtins): Add IX86_BUILTIN_UMONITOR, IX86_BUILTIN_UMWAIT, + IX86_BUILTIN_TPAUSE. + (ix86_init_mmx_sse_builtins): Define __builtin_ia32_umonitor, + __builtin_ia32_umwait and __builtin_ia32_tpause. + (ix86_expand_builtin): Expand IX86_BUILTIN_UMONITOR, + IX86_BUILTIN_UMWAIT, IX86_BUILTIN_TPAUSE. + * config/i386/i386.h (TARGET_WAITPKG, TARGET_WAITPKG_P): New. + * config/i386/i386.md (UNSPECV_UMWAIT, UNSPECV_UMONITOR, + UNSPECV_TPAUSE): New. + (umwait, umwait_rex64, umonitor_, tpause, tpause_rex64): New. + * config/i386/i386.opt: Add -mwaitpkg. + * config/i386/waitpkgintrin.h: New file. + * config/i386/x86intrin.h: New header. + * doc/invoke.texi: Add -mwaitpkg. + +2018-05-11 Richard Earnshaw + + PR target/85606 + * config/arm/arm-cpus.in: Add comment that ARMv6-m and ARMv6S-m are now + equivalent. + (cortex-m0): Use armv6s-m isa. + (cortex-m0plus): Likewise. + (cortex-m1): Likewise. + (cortex-m0.small-multiply): Likewise. + (cortex-m0plus.small-multiply): Likewise. + (cortex-m1.small-multiply): Likewise. + +2018-05-11 Allan Sandfeld Jensen + Jakub Jelinek + + PR tree-optimization/85692 + * tree-ssa-forwprop.c (simplify_vector_constructor): Try two + source permute as well. + +2018-05-11 Martin Liska + + PR sanitizer/85556 + * doc/extend.texi: Document LLVM style format for no_sanitize + attribute. + +2018-05-10 Michael Meissner + + * config/rs6000/rs6000.c (mode_supports_dq_form): Rename + mode_supports_vsx_dform_quad to mode_supports_dq_form. + (mode_supports_vsx_dform_quad): Likewise. + (mode_supports_vmx_dform): Move these functions to be next to the + other mode_supports functions. + (mode_supports_dq_form): Likewise. + (quad_address_p): Change calls of mode_supports_vsx_dform_quad to + mode_supports_dq_form. + (reg_offset_addressing_ok_p): Likewise. + (offsettable_ok_by_alignment): Likewise. + (rs6000_legitimate_offset_address_p): Likewise. + (legitimate_lo_sum_address_p): Likewise. + (rs6000_legitimize_address): Likewise. + (rs6000_legitimize_reload_address): Likewise. + (rs6000_secondary_reload_inner): Likewise. + (rs6000_preferred_reload_class): Likewise. + (rs6000_output_move_128bit): Likewise. + +2018-05-10 Uros Bizjak + + * config/i386/i386.c (ix86_expand_builtin) : + Generate SImode target register for null target. + : Ditto. + : Optimize LSHIFTRT generation. + * config/i386/xsaveintrin.h (_xgetbv): Add missing return. + +2018-05-10 Carl Love + + * config/rs6000/rs6000.md (prefetch): Generate ISA 2.06 instructions + dcbtt and dcbtstt if operands[2] is 0. + +2018-05-10 Uros Bizjak + + PR target/85693 + * config/i386/sse.md (usadv64qi): New expander. + +2018-05-10 Segher Boessenkool + + * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh, + altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw): Remove + -maltivec=be support. + (vec_widen_umult_even_v16qi, vec_widen_smult_even_v16qi, + vec_widen_umult_even_v8hi, vec_widen_smult_even_v8hi, + vec_widen_umult_even_v4si, vec_widen_smult_even_v4si, + vec_widen_umult_odd_v16qi, vec_widen_smult_odd_v16qi, + vec_widen_umult_odd_v8hi, vec_widen_smult_odd_v8hi, + vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si, altivec_vpkpx, + altivec_vpksss, altivec_vpksus, + altivec_vpkuus, altivec_vpkuum, altivec_vsum2sws, + altivec_vsumsws): Adjust. + (altivec_vspltb *altivec_vspltb_internal, altivec_vsplth, + *altivec_vsplth_internal, altivec_vspltw, *altivec_vspltw_internal, + altivec_vspltsf, *altivec_vspltsf_internal): Remove -maltivec=be + support. + (altivec_vperm_, altivec_vperm__uns, + altivec_vupkhs, altivec_vupkls, altivec_vupkhpx, + altivec_vupklpx, altivec_lvsl, altivec_lvsr): Adjust. + (altivec_lvex): Delete expand. + (*altivec_lvex_internal): Rename to... + (altivec_lvex): ... this. + (altivec_lvxl_): Delete expand. + (*altivec_lvxl__internal): Rename to ... + (altivec_lvxl_): ... this. + (altivec_stvxl_): Delete expand. + (*altivec_stvxl__internal): Rename to ... + (altivec_stvxl_): ... this. + (altivec_stvex): Delete expand. + (*altivec_stvex_internal): Rename to ... + (altivec_stvex): ... this. + (doublee2, unsdoubleev4si2, doubleo2, unsdoubleov4si2, + doubleh2, unsdoublehv4si2, doublel2, unsdoublelv4si2, + reduc_plus_scal_): Adjust. + * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust + comment. + (rs6000_cpu_cpp_builtins): Adjust. + (altivec_resolve_overloaded_builtin): Remove -maltivec=be support. + * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be, + altivec_expand_stvx_be, altivec_expand_stvex_be): Delete. + * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove + -maltivec=be support. + (rs6000_split_vec_extract_var): Adjust. + (rs6000_split_v4si_init): Adjust. + (swap_selector_for_mode): Delete. + (altivec_expand_lvx_be, altivec_expand_stvx_be, + altivec_expand_stvex_be): Delete. + (altivec_expand_lv_builtin, altivec_expand_stv_builtin): Remove + -maltivec=be support. + (rs6000_gimple_fold_builtin): Ditto. + (rs6000_generate_float2_double_code, rs6000_generate_float2_code): + Adjust. + * config/rs6000/rs6000.h (VECTOR_ELT_ORDER_BIG): Delete. + (TARGET_DIRECT_MOVE_64BIT): Adjust. + * config/rs6000/rs6000.md (split for extendsidi2 for vectors): Adjust. + * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Delete. + * config/rs6000/vsx.md (floate, unsfloatev2di, floato, + unsfloatov2di, vsignedo_v2df, vsignede_v2df, vunsignedo_v2df, + vunsignede_v2df, vsx_extract__p9, *vsx_extract_si, + *vsx_extract__p8, *vsx_extract_si_float_df, + *vsx_extract_si_float_, vsx_set__p9, vsx_set_v4sf_p9, + *vsx_insert_extract_v4sf_p9, *vsx_insert_extract_v4sf_p9_2, and an + anonymous split): Adjust. + (vsx_mergel_, vsx_mergeh_): Remove -maltivec=be support. + (vsx_xxspltd_, extract4b, insert4b): Adjust. + +2018-05-10 Eric Botcazou + + * configure.ac (gcc_gxx_include_dir_add_sysroot): Set it to 1 only + when --with-gxx-include-dir is also specified. + * configure: Regenerate. + +2018-05-09 Jim Wilson + + PR target/84797 + * config.gcc (riscv*-*-*): Handle --with-multilib-list. + * config/riscv/t-withmultilib: New. + * config/riscv/withmultilib.h: New. + * doc/install.texi: Document RISC-V --with-multilib-list support. + +2018-05-09 Richard Biener + + * tree-vect-slp.c (vect_bb_slp_scalar_cost): Fill a cost + vector. + (vect_bb_vectorization_profitable_p): Adjust. Compute + actual scalar cost using the cost vector and the add_stmt_cost + machinery. + +2018-05-09 Segher Boessenkool + + PR rtl-optimization/85645 + * config/rs6000/rs6000.c (rs6000_emit_prologue_components): Put a SET + in the REG_CFA_REGISTER note for LR, don't leave it empty. + +2018-05-09 Segher Boessenkool + + PR rtl-optimization/85645 + * shrink-wrap.c (spread_components): Return a boolean saying if + anything was changed. + (try_shrink_wrapping_separate): Iterate spread_components until + nothing changes anymore. + +2018-05-09 Segher Boessenkool + + PR rtl-optimization/85645 + * regrename.c (build_def_use): Also kill the chains that include the + destination of a REG_CFA_REGISTER note. + +2018-05-09 Segher Boessenkool + + PR rtl-optimization/85645 + * regcprop.c (copyprop_hardreg_forward_1): Don't propagate into an + insn that has a REG_CFA_REGISTER note. + +2018-05-09 Richard Sandiford + + * cfgexpand.c (expand_clobber): New function. + (expand_gimple_stmt_1): Use it. + * tree-vect-stmts.c (vect_clobber_variable): New function, + split out from... + (vectorizable_simd_clone_call): ...here. + (vectorizable_store): Emit a clobber either side of an + IFN_STORE_LANES sequence. + (vectorizable_load): Emit a clobber after an IFN_LOAD_LANES sequence. + +2018-05-09 Tom de Vries + + PR target/85626 + * config/nvptx/nvptx.md (define_insn "trap", define_insn "trap_if_true") + (define_insn "trap_if_false"): Add exit after trap. + +2018-05-09 Eric Botcazou + + PR rtl-optimization/85638 + * bb-reorder.c: Include common/common-target.h. + (create_forwarder_block): New function extracted from... + (fix_up_crossing_landing_pad): ...here. Rename into... + (dw2_fix_up_crossing_landing_pad): ...this. + (sjlj_fix_up_crossing_landing_pad): New function. + (find_rarely_executed_basic_blocks_and_crossing_edges): In SJLJ mode, + call sjlj_fix_up_crossing_landing_pad if there are incoming EH edges + from both partitions and exit the loop after one iteration. + +2018-05-08 Kelvin Nilsen + + Revert: + * doc/extend.texi (PowerPC Built-in Functions): Rename this + subsection. + (Basic PowerPC Built-in Functions): The new name of the + subsection previously known as "PowerPC Built-in Functions". + (Basic PowerPC Built-in Functions Available on all Configurations): + New subsubsection. + (Basic PowerPC Built-in Functions Available on ISA 2.05): New + subsubsection. + (Basic PowerPC Built-in Functions Available on ISA 2.06): New + subsubsection. + (Basic PowerPC Built-in Functions Available on ISA 2.07): New + subsubsection. + (Basic PowerPC Built-in Functions Available on ISA 3.0): New + subsubsection. + +2018-05-08 Jim Wilson + + * config/riscv/linux.h (MUSL_ABI_SUFFIX): Delete unnecessary backslash. + (LD_EMUL_SUFFIX): New. + (LINK_SPEC): Use it. + +2018-05-08 Kelvin Nilsen + + * doc/extend.texi (PowerPC Built-in Functions): Rename this + subsection. + (Basic PowerPC Built-in Functions): The new name of the + subsection previously known as "PowerPC Built-in Functions". + (Basic PowerPC Built-in Functions Available on all Configurations): + New subsubsection. + (Basic PowerPC Built-in Functions Available on ISA 2.05): New + subsubsection. + (Basic PowerPC Built-in Functions Available on ISA 2.06): New + subsubsection. + (Basic PowerPC Built-in Functions Available on ISA 2.07): New + subsubsection. + (Basic PowerPC Built-in Functions Available on ISA 3.0): New + subsubsection. + +2018-05-08 Jakub Jelinek + + PR target/85683 + * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0 + after cmpelim optimization. + +2018-05-08 Olga Makhotina + + * config.gcc: Support "goldmont". + * config/i386/driver-i386.c (host_detect_local_cpu): Detect "goldmont". + * config/i386/i386-c.c (ix86_target_macros_internal): Handle + PROCESSOR_GOLDMONT. + * config/i386/i386.c (m_GOLDMONT): Define. + (processor_target_table): Add "goldmont". + (PTA_GOLDMONT): Define. + (ix86_lea_outperforms): Add TARGET_GOLDMONT. + (get_builtin_code_for_version): Handle PROCESSOR_GOLDMONT. + (fold_builtin_cpu): Add M_INTEL_GOLDMONT. + (fold_builtin_cpu): Add "goldmont". + (ix86_add_stmt_cost): Add TARGET_GOLDMONT. + (ix86_option_override_internal): Add "goldmont". + * config/i386/i386.h (processor_costs): Define TARGET_GOLDMONT. + (processor_type): Add PROCESSOR_GOLDMONT. + * config/i386/i386.md: Add CPU "glm". + * config/i386/glm.md: New file. + * config/i386/x86-tune.def: Add m_GOLDMONT. + * doc/invoke.texi: Add goldmont as x86 -march=/-mtune= CPU type. + +2018-05-08 Jakub Jelinek + + PR target/85572 + * config/i386/i386.c (ix86_expand_sse2_abs): Handle E_V2DImode and + E_V4DImode. + * config/i386/sse.md (abs2): Use VI_AVX2 iterator instead of + VI1248_AVX512VL_AVX512BW. Handle V2DImode and V4DImode if not + TARGET_AVX512VL using ix86_expand_sse2_abs. Formatting fixes. + + PR target/85317 + * config/i386/i386.c (ix86_fold_builtin): Handle + IX86_BUILTIN_{,P}MOVMSK{PS,PD,B}{,128,256}. + + PR target/85480 + * config/i386/sse.md (ssequaterinsnmode): New mode attribute. + (*_vinsert_0): New pattern. + +2018-05-08 Richard Earnshaw + + PR target/85658 + * config/arm/parsecpu.awk (check_cpu): Fix operator precedence. + (check_arch): Likewise. + (check_fpu): Return the result rather than printing it. + (end arch): Fix operator precedence. + (end cpu): Likewise. + (END): Print the result from check_fpu. + +2018-05-08 Richard Sandiford + Alan Hayward + David Sherwood + + * config/aarch64/aarch64-sve.md (*pred_cmp_combine) + (*pred_cmp, *fcm_and_combine) + (*fcmuo_and_combine, *fcm_and) + (*fcmuo_and): New patterns. + +2018-05-08 Richard Sandiford + + * config/aarch64/iterators.md (UNSPEC_COND_LO, UNSPEC_COND_LS) + (UNSPEC_COND_HI, UNSPEC_COND_HS, UNSPEC_COND_UO): Delete. + (SVE_INT_CMP, SVE_FP_CMP): New code iterators. + (cmp_op, sve_imm_con): New code attributes. + (SVE_COND_INT_CMP, imm_con): Delete. + (cmp_op): Remove above unspecs from int attribute. + * config/aarch64/aarch64-sve.md (*vec_cmp_): Rename + to... + (*cmp): ...this. Use UNSPEC_MERGE_PTRUE instead of + comparison-specific unspecs. + (*vec_cmp__ptest): Rename to... + (*cmp_ptest): ...this and adjust likewise. + (*vec_cmp__cc): Rename to... + (*cmp_cc): ...this and adjust likewise. + (*vec_fcm): Rename to... + (*fcm): ...this and adjust likewise. + (*vec_fcmuo): Rename to... + (*fcmuo): ...this and adjust likewise. + (*pred_fcm): New pattern. + * config/aarch64/aarch64.c (aarch64_emit_unop, aarch64_emit_binop) + (aarch64_emit_sve_ptrue_op, aarch64_emit_sve_ptrue_op_cc): New + functions. + (aarch64_unspec_cond_code): Remove handling of LTU, GTU, LEU, GEU + and UNORDERED. + (aarch64_gen_unspec_cond, aarch64_emit_unspec_cond): Delete. + (aarch64_emit_sve_predicated_cond): New function. + (aarch64_expand_sve_vec_cmp_int): Use aarch64_emit_sve_ptrue_op_cc. + (aarch64_emit_unspec_cond_or): Replace with... + (aarch64_emit_sve_or_conds): ...this new function. Use + aarch64_emit_sve_ptrue_op for the individual comparisons and + aarch64_emit_binop to OR them together. + (aarch64_emit_inverted_unspec_cond): Replace with... + (aarch64_emit_sve_inverted_cond): ...this new function. Use + aarch64_emit_sve_ptrue_op for the comparison and + aarch64_emit_unop to invert the result. + (aarch64_expand_sve_vec_cmp_float): Update after the above + changes. Use aarch64_emit_sve_ptrue_op for native comparisons. + +2018-05-07 Nathan Sidwell + + * doc/invoke.texi (C++ Dialect Options): Remove -ffor-scope. + * doc/extend.texi (Deprecated Features): Remove -fno-for-scope + (Backwards Compatibility): Likewise. + +2018-05-07 Luis Machado + + PR bootstrap/85681 + Revert: + 2018-05-07 Luis Machado + + * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) + : New const bool field. + * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include + prefetch_dynamic_strides. + (exynosm1_prefetch_tune): Likewise. + (thunderxt88_prefetch_tune): Likewise. + (thunderx_prefetch_tune): Likewise. + (thunderx2t99_prefetch_tune): Likewise. + (qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides + to false. + (aarch64_override_options_internal): Update to set + PARAM_PREFETCH_DYNAMIC_STRIDES. + * doc/invoke.texi (prefetch-dynamic-strides): Document new option. + * params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New. + * params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define. + * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for + prefetch-dynamic-strides setting. + + 2018-05-07 Luis Machado + + * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) + : New const int field. + * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include + minimum_stride field. + (exynosm1_prefetch_tune): Likewise. + (thunderxt88_prefetch_tune): Likewise. + (thunderx_prefetch_tune): Likewise. + (thunderx2t99_prefetch_tune): Likewise. + (qdf24xx_prefetch_tune): Likewise. Set minimum_stride to 2048. + (aarch64_override_options_internal): Update to set + PARAM_PREFETCH_MINIMUM_STRIDE. + * doc/invoke.texi (prefetch-minimum-stride): Document new option. + * params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New. + * params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define. + * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if + stride is constant and is below the minimum stride threshold. + +2018-05-07 Luis Machado + + * config/aarch64/aarch64.c (qdf24xx_prefetch_tune) : Set + to 512. + +2018-05-07 Luis Machado + + * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) + : New const bool field. + * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include + prefetch_dynamic_strides. + (exynosm1_prefetch_tune): Likewise. + (thunderxt88_prefetch_tune): Likewise. + (thunderx_prefetch_tune): Likewise. + (thunderx2t99_prefetch_tune): Likewise. + (qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides + to false. + (aarch64_override_options_internal): Update to set + PARAM_PREFETCH_DYNAMIC_STRIDES. + * doc/invoke.texi (prefetch-dynamic-strides): Document new option. + * params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New. + * params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define. + * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for + prefetch-dynamic-strides setting. + +2018-05-07 Luis Machado + + * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) + : New const int field. + * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include + minimum_stride field. + (exynosm1_prefetch_tune): Likewise. + (thunderxt88_prefetch_tune): Likewise. + (thunderx_prefetch_tune): Likewise. + (thunderx2t99_prefetch_tune): Likewise. + (qdf24xx_prefetch_tune): Likewise. Set minimum_stride to 2048. + (aarch64_override_options_internal): Update to set + PARAM_PREFETCH_MINIMUM_STRIDE. + * doc/invoke.texi (prefetch-minimum-stride): Document new option. + * params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New. + * params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define. + * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if + stride is constant and is below the minimum stride threshold. + +2018-05-06 Jakub Jelinek + + PR c++/85659 + * cfgexpand.c (expand_asm_stmt): Don't create a temporary if + the type is addressable. Don't force op into register if it has + BLKmode. + +2018-05-05 Roland McGrath + + PR other/77609 + * varasm.c (default_section_type_flags): Set SECTION_NOTYPE for + any section for which we don't know a specific type it should have, + regardless of name. Previously this was done only for the exact + names ".init_array", ".fini_array", and ".preinit_array". + (default_elf_asm_named_section): Add comment about + relationship with default_section_type_flags and SECTION_NOTYPE. + (get_section): Don't consider it a type conflict if one side has + SECTION_NOTYPE and the other doesn't, as long as neither has the + SECTION_BSS et al used in the default_section_type_flags logic. + +2018-05-05 Tom de Vries + + PR target/85653 + * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG_3): Define. + (workaround_barsyncs): New function. + (nvptx_reorg): Use workaround_barsyncs. + * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR. + (define_expand "nvptx_membar_cta"): New define_expand. + (define_insn "*nvptx_membar_cta"): New insn. + +2018-05-04 Pekka Jääskeläinen + + * brig-builtins.def: Add consts to ptrs etc. in BRIG builtin defs. + To improve optimization opportunities. + * builtin-types.def: The new needed builtin types for the above. + +2018-05-04 Richard Biener + + * bb-reorder.c (sanitize_hot_paths): Release hot_bbs_to_check. + * gimple-ssa-store-merging.c + (imm_store_chain_info::output_merged_store): Remove redundant create, + release split_store vector contents on failure. + * tree-vect-slp.c (vect_schedule_slp_instance): Avoid leaking + scalar stmt vector on cache hit. + +2018-05-04 Segher Boessenkool + + * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Remove + Xilinx FP support. + * config.gcc (powerpc-xilinx-eabi*): Remove. + * config/rs6000/predicates.md (easy_fp_constant): Remove Xilinx FP + support. + (fusion_addis_mem_combo_load): Ditto. + * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove Xilinx + FP support. + (rs6000_cpu_cpp_builtins): Ditto. + * config/rs6000/rs6000-linux.c + (rs6000_linux_float_exceptions_rounding_supported_p): Ditto. + * config/rs6000/rs6000-opts.h (enum fpu_type_t): Delete. + * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove Xilinx FP + support. + (rs6000_setup_reg_addr_masks): Ditto. + (rs6000_init_hard_regno_mode_ok): Ditto. + (rs6000_option_override_internal): Ditto. + (legitimate_lo_sum_address_p): Ditto. + (rs6000_legitimize_address): Ditto. + (rs6000_legitimize_reload_address): Ditto. + (rs6000_legitimate_address_p): Ditto. + (abi_v4_pass_in_fpr): Ditto. + (setup_incoming_varargs): Ditto. + (rs6000_gimplify_va_arg): Ditto. + (rs6000_split_multireg_move): Ditto. + (rs6000_savres_strategy): Ditto. + (rs6000_emit_prologue_components): Ditto. + (rs6000_emit_epilogue_components): Ditto. + (rs6000_emit_prologue): Ditto. + (rs6000_emit_epilogue): Ditto. + (rs6000_elf_file_end): Ditto. + (rs6000_function_value): Ditto. + (rs6000_libcall_value): Ditto. + * config/rs6000/rs6000.h: Ditto. + (TARGET_MINMAX_SF, TARGET_MINMAX_DF): Delete, merge to ... + (TARGET_MINMAX): ... this. New. + (TARGET_SF_FPR, TARGET_DF_FPR, TARGET_SF_INSN, TARGET_DF_INSN): Delete. + * config/rs6000/rs6000.md: Remove Xilinx FP support. + (*movsi_internal1_single): Delete. + * config/rs6000/rs6000.opt (msingle-float, mdouble-float, msimple-fpu, + mfpu=, mxilinx-fpu): Delete. + * config/rs6000/singlefp.h: Delete. + * config/rs6000/sysv4.h: Remove Xilinx FP support. + * config/rs6000/t-rs6000: Ditto. + * config/rs6000/t-xilinx: Delete. + * config/rs6000/titan.md: Adjust for fp_type removal. + * config/rs6000/vsx.md: Remove Xilinx FP support. + (VStype_simple): Delete. + (VSfptype_simple, VSfptype_mul, VSfptype_div, VSfptype_sqrt): Delete. + * config/rs6000/xfpu.h: Delete. + * config/rs6000/xfpu.md: Delete. + * config/rs6000/xilinx.h: Delete. + * config/rs6000/xilinx.opt: Delete. + * doc/invoke.texi (RS/6000 and PowerPC Options): Remove + -msingle-float, -mdouble-float, -msimple-fpu, -mfpu=, and -mxilinx-fpu. + +2018-05-04 Tom de Vries + + PR libgomp/85639 + * builtins.c (expand_builtin_goacc_parlevel_id_size): Handle null target + if ignore == 0. + +2018-05-04 Richard Biener + + PR middle-end/85627 + * tree-complex.c (update_complex_assignment): We are always in SSA form. + (expand_complex_div_wide): Likewise. + (expand_complex_operations_1): Likewise. + (expand_complex_libcall): Preserve EH info of the original stmt. + (tree_lower_complex): Handle removed blocks. + * tree.c (build_common_builtin_nodes): Do not set ECF_NOTRHOW + on complex multiplication and division libcall builtins. + +2018-05-04 Richard Biener + + PR middle-end/85574 + * fold-const.c (negate_expr_p): Restrict negation of operand + zero of a division to when we know that can happen without + overflow. + (fold_negate_expr_1): Likewise. + +2018-05-04 Jakub Jelinek + + PR libstdc++/85466 + * real.h (real_nextafter): Declare. + * real.c (real_nextafter): New function. + * fold-const-call.c (fold_const_nextafter): New function. + (fold_const_call_sss): Call it for CASE_CFN_NEXTAFTER and + CASE_CFN_NEXTTOWARD. + (fold_const_call_1): For CASE_CFN_NEXTTOWARD call fold_const_call_sss + even when arg1_mode is different from arg0_mode. + +2018-05-03 Nathan Sidwell + + * doc/extend.texi (Deprecated Features): Remove + -ffriend-injection. + (Backwards Compatibility): Likewise. + * doc/invoke.texi (C++ Language Options): Likewise. + (C++ Dialect Options): Likewise. + +2018-05-03 Jakub Jelinek + + PR target/85530 + * config/i386/avx512fintrin.h (_mm512_mullox_epi64, + _mm512_mask_mullox_epi64): New intrinsics. + +2018-05-03 Tom de Vries + + PR testsuite/85106 + * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization + dump files): Add offload-tree. + +2018-05-03 Richard Biener + + PR tree-optimization/85615 + * tree-ssa-threadupdate.c (thread_block_1): Only allow exits + to loops not nested in BBs loop father to avoid creating multi-entry + loops. + +2018-05-03 Kyrylo Tkachov + + PR tree-optimization/70291 + * tree-complex.c (expand_complex_libcall): Add type, inplace_p + arguments. Change return type to tree. Emit libcall as a new + statement rather than replacing existing one when inplace_p is true. + (expand_complex_multiplication_components): New function. + (expand_complex_multiplication): Expand floating-point complex + multiplication using the above. + (expand_complex_division): Rename inner_type parameter to type. + Update expand_complex_libcall call-site. + (expand_complex_operations_1): Update expand_complex_multiplication + and expand_complex_division call-sites. + +2018-05-02 Jakub Jelinek + + PR target/85582 + * config/i386/i386.md (*ashl3_doubleword_mask, + *ashl3_doubleword_mask_1, *3_doubleword_mask, + *3_doubleword_mask_1): In condition require that + the highest significant bit of the shift count mask is clear. In + check whether and[sq]i3 is needed verify that all significant bits + of the shift count other than the highest are set. + +2018-05-02 Tom de Vries + + PR libgomp/82428 + * builtins.def (DEF_GOACC_BUILTIN_ONLY): Define. + * omp-builtins.def (BUILT_IN_GOACC_PARLEVEL_ID) + (BUILT_IN_GOACC_PARLEVEL_SIZE): New builtin. + * builtins.c (expand_builtin_goacc_parlevel_id_size): New function. + (expand_builtin): Call expand_builtin_goacc_parlevel_id_size. + * doc/extend.texi (Other Builtins): Add __builtin_goacc_parlevel_id and + __builtin_goacc_parlevel_size. + +2018-05-02 Richard Biener + + PR tree-optimization/85597 + * tree-vect-stmts.c (vectorizable_operation): For ternary SLP + do not use split vect_get_vec_defs call but call vect_get_slp_defs + directly. + +2018-05-02 Tom de Vries + + PR testsuite/85106 + * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization + dump files): Add ltrans-tree. + +2018-05-02 Tom de Vries + + PR testsuite/85106 + * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization + dump files): Add wpa-ipa. + +2018-05-02 Segher Boessenkool + + * config.gcc (powerpc*-*-*): Remove paired.h. Unsupport the + powerpc*-*-linux*paired* target. + * config/rs6000/750cl.h: Delete. + * config/rs6000/paired.h: Delete. + * config/rs6000/paired.md: Delete. + * config/rs6000/predicates.md (easy_vector_constant): Remove paired + float support. + * config/rs6000/rs6000-builtin.def: Remove paired float support. + * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update + comment. Remove paired float support. + * config/rs6000/rs6000-modes.def: Remove V2SF and V2SI. + * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete + VECTOR_PAIRED. + * config/rs6000/rs6000-protos.h (paired_expand_vector_init, + paired_emit_vector_cond_expr, paired_expand_vector_move): Delete + declarations. + * config/rs6000/rs6000.c: Remove paired float support. + (paired_expand_vector_init, paired_expand_vector_move, + paired_emit_vector_compare, paired_emit_vector_cond_expr, + (paired_expand_lv_builtin, paired_expand_stv_builtin, + paired_expand_builtin, paired_expand_predicate_builtin, + paired_init_builtins): Delete. + * config/rs6000/rs6000.h: Remove paired float support. + * config/rs6000/rs6000.md: Remove paired float support. + (move_from_CR_ov_bit): Delete. + * config/rs6000/rs6000.opt (mpaired): Delete. + * config/rs6000/t-rs6000: Remove paired.md from MD_INCLUDES. + * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mpaired. + +2018-05-02 Richard Biener + + PR middle-end/85567 + * gimplify.c (gimplify_save_expr): When in SSA form allow + SAVE_EXPRs to compute to SSA vars. + +2018-05-02 Jakub Jelinek + + PR target/85582 + * config/i386/i386.md (*ashl3_doubleword_mask, + *ashl3_doubleword_mask_1, *3_doubleword_mask, + *3_doubleword_mask_1): If and[sq]i3 is needed, don't + clobber operands[2], instead use a new pseudo. Formatting fixes. + +2018-05-02 Richard Sandiford + + PR tree-optimization/85586 + * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Only + exit early for statements in the same group if the accesses are + not strided. + +2018-05-02 Tom de Vries + + PR lto/85451 + * lto-wrapper.c (compile_offload_image): Add "could not find mkoffload" + error message. + +2018-05-01 Marc Glisse + + PR tree-optimization/85143 + * match.pd (A + + PR lto/85451 + * config/nvptx/mkoffload.c (main): Suggest using -B in "offload compiler + not found" error message. + +2018-05-01 Tom de Vries + + PR other/83786 + * vec.h (VEC_ORDERED_REMOVE_IF, VEC_ORDERED_REMOVE_IF_FROM_TO): Define. + * vec.c (test_ordered_remove_if): New function. + (vec_c_tests): Call test_ordered_remove_if. + * dwarf2cfi.c (connect_traces): Use VEC_ORDERED_REMOVE_IF_FROM_TO. + * lto-streamer-out.c (prune_offload_funcs): Use VEC_ORDERED_REMOVE_IF. + * tree-vect-patterns.c (vect_pattern_recog_1): Use + VEC_ORDERED_REMOVE_IF. + +2018-05-01 Prathamesh Kulkarni + + PR tree-optimization/82665 + * vr-values.c (vr_values::extract_range_from_binary_expr): Handle + pointer subtraction where arguments come from a memchr call. + +2018-05-01 Jakub Jelinek + + * configure.ac (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Use + --push-state --as-needed and --pop-state instead of --as-needed and + --no-as-needed if ld supports it. + * configure: Regenerated. + + PR web/85578 + * doc/install.texi2html: Replace _002d with - and _002a with * in + generated html files using sed. + +2018-04-30 David Malcolm + + PR c++/85523 + * gcc-rich-location.c (blank_line_before_p): New function. + (use_new_line): New function. + (gcc_rich_location::add_fixit_insert_formatted): New function. + * gcc-rich-location.h + (gcc_rich_location::add_fixit_insert_formatted): New function. + +2018-04-30 David Malcolm + + * selftest.c (assert_streq): Rename "expected" and "actual" to + "val1" and "val2". Extend NULL-handling to cover both inputs + symmetrically, while still requiring both to be non-NULL for a pass. + * selftest.h (assert_streq): Rename "expected" and "actual" to + "val1" and "val2". + (ASSERT_EQ): Likewise. + (ASSERT_EQ_AT): Likewise. + (ASSERT_KNOWN_EQ): Likewise. + (ASSERT_KNOWN_EQ_AT): Likewise. + (ASSERT_NE): Likewise. + (ASSERT_MAYBE_NE): Likewise. + (ASSERT_MAYBE_NE_AT): Likewise. + (ASSERT_STREQ): Likewise. Clarify that both must be non-NULL for + the assertion to pass. + (ASSERT_STREQ_AT): Likewise. + +2018-04-30 Jonathan Wakely + + * doc/invoke.texi (-fpie, -fPIE): Fix grammar and clarify + interaction with -pie. + +2018-04-30 David Malcolm + + * selftest.h: Fix alphabetization of per-source-file selftest + declarations. + +2018-04-30 Jason Merrill + + PR c++/61982 - dead stores to destroyed objects. + * gimplify.c (gimplify_modify_expr): Simplify complex lvalue on LHS + of clobber. + +2018-04-30 Jason Merrill + + * tree.c (build_clobber): New. + * tree.h: Declare it. + * gimplify.c (gimplify_bind_expr, gimplify_target_expr): Use it. + +2018-04-30 David Malcolm + + * diagnostic-show-locus.c (layout::layout): Update for + location_get_source_line returning a char_span. + (struct char_span): Move to input.h. + (struct correction): Update for fields in char_span becoming + private. + (struct source_line): Update for location_get_source_line + returning a char_span. + (layout::print_line): Likewise. + * edit-context.c (edited_file::print_content): Likewise. + (edited_file::print_diff_hunk): Likewise. + (edited_file::print_run_of_changed_lines): Likewise. + (edited_file::get_num_lines): Likewise. + (edited_line::edited_line): Likewise. + * final.c (asm_show_source): Likewise. + * input.c (location_get_source_line): Convert return type + from const char * to char_span, losing the final "line_len" + param. + (dump_location_info): Update for the above. + (get_substring_ranges_for_loc): Likewise. Use a char_span + when handling the literal within the line. + (test_reading_source_line): Update for location_get_source_line + returning a char_span. + * input.h (class char_span): Move here from + diagnostic-show-locus.c, converting from a struct to a class. + Make data members private. + (char_span::operator bool): New. + (char_span::length): New. + (char_span::get_buffer): New. + (char_span::operator[]): New. + (char_span::subspan): Make const. + (char_span::xstrdup): New. + (location_get_source_line): Convert return type from const char * + to char_span, losing the final "line_size" param. + +2018-04-30 Jan Hubicka + + * lto-wrapper.c (ltrans_priorities): New static var. + (cmp_priority): New. + (run_gcc): Read priorities and if doing parallel build order + the Makefile by them. + +2018-04-30 David Malcolm + + * input.h (builtins_location_check): Convert to a STATIC_ASSERT. + +2018-04-30 Richard Biener + + * tree-cfg.c (verify_address): Remove base argument, add + flag whether to check TREE_ADDRESSABLE and do that. + (verify_expr): Remove. + (verify_types_in_gimple_reference): Add pieces from verify_expr. + (verify_gimple_assign_single): Likewise. + (verify_gimple_switch): Likewise. + (verify_expr_location_1): Dereference tp once. Add (disabled) + piece from verify_expr. + (verify_gimple_in_cfg): Do not call verify_expr on all ops. + +2018-04-30 Claudiu Zissulescu + + * config/arc/linux.h (CLEAR_INSN_CACHE): Define. + +2018-04-30 Claudiu Zissulescu + + * config/arc/arc-protos.h (prepare_extend_operands): Remove. + (small_data_pattern): Likewise. + (arc_rewrite_small_data): Likewise. + * config/arc/arc.c (LEGITIMATE_SMALL_DATA_OFFSET_P): Remove. + (LEGITIMATE_SMALL_DATA_ADDRESS_P): Likewise. + (get_symbol_alignment): New function. + (legitimate_small_data_address_p): Likewise. + (legitimate_scaled_address): Update, call + legitimate_small_data_address_p. + (output_sdata): New static variable. + (arc_print_operand): Update how we handle small data operands. + (arc_print_operand_address): Likewise. + (arc_legitimate_address_p): Update, use + legitimate_small_data_address_p. + (arc_rewrite_small_data_p): Remove. + (arc_rewrite_small_data_1): Likewise. + (arc_rewrite_small_data): Likewise. + (small_data_pattern): Likewise. + (compact_sda_memory_operand): Update to use + legitimate_small_data_address_p and get_symbol_alignment. + (prepare_move_operands): Don't rewite sdata pattern. + (prepare_extend_operands): Remove. + * config/arc/arc.md (zero_extendqihi2): Don't rewrite sdata + pattern. + (zero_extendqisi2): Likewise. + (zero_extendhisi2): Likewise. + (extendqihi2): Likewise. + (extendqisi2): Likewise. + (extendhisi2): Likewise. + (addsi3): Likewise. + (subsi3): Likewise. + (andsi3): Likewise. + * config/arc/constraints.md (Usd): Change it to memory constraint. + +2018-04-30 Claudiu Zissulescu + + * config/arc/arc.c (arc_split_move): Allow signed 6-bit constants + as source of std instructions. + * config/arc/arc.md (movsi_insn): Update pattern predicate to + allow 6-bit constants as source for store instructions. + (movdi_insn): Update instruction pattern to allow 6-bit constants + as source for store instructions. + +2018-04-30 Jonathan Wakely + + * doc/invoke.texi (-fdebug-types-section): Fix grammar. + +2018-04-30 Nathan Sidwell + Sandra Loosemore + + * dumpfile.c (dump_open): Allow '-' for stdout. + * doc/invoke.texi (Developer Options): Document dump filename + determination early. Document stdin/stdout selection. + +2018-04-30 Andrew Sadek + + Microblaze Target: PIC data text relative + + * config/microblaze/microblaze.opt: add new option -mpic-data-text-rel. + * config/microblaze/microblaze-protos.h (microblaze_constant_address_p): + Add declaration. + * config/microblaze/microblaze.h (microblaze_constant_address_p): + CONSTANT_ADDRESS_P definition to microblaze_constant_address_p. + * config/microblaze/microblaze.c (TARGET_PIC_DATA_TEXT_REL): + New addressing mode for data-text relative position indepenedent code. + (microblaze_classify_unspec): add 'UNSPEC_TEXT' case -> + 'ADDRESS_SYMBOLIC_TXT_REL'. + (microblaze_classify_address): Add handling for UNSPEC + CONST_INT. + (microblaze_legitimate_pic_operand): Exclude function calls from + pic operands in case of TARGET_PIC_DATA_TEXT_REL option. + (microblaze_legitimize_address): Generate 'UNSPEC_TEXT' for all possible + addresses cases. + (microblaze_address_insns): Add 'ADDRESS_SYMBOLIC_TXT_REL' case. + (print_operand): Add 'ADDRESS_SYMBOLIC_TXT_REL' case. + (print_operand_address): Add 'ADDRESS_SYMBOLIC_TXT_REL' case + handling + for 'address + offset'. + (microblaze_expand_prologue): Add new function prologue call for + 'r20' assignation. + (microblaze_asm_generate_pic_addr_dif_vec): Override new target hook + 'TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC' to disable address diff vector + table in case of TARGET_PIC_DATA_TEXT_REL. + (expand_pic_symbol_ref): Add handling for 'UNSPEC_TEXT'. + * config/microblaze/microblaze.md (TARGET_PIC_DATA_TEXT_REL): + Add new macros 'UNSPEC_TEXT', + 'UNSPEC_SET_TEXT' + add rule for setting r20 in function prologue + + exclude function calls from 'UNSPEC_PLT' in case of data text + relative mode. + * doc/tm.texi.in (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add + new target hook for generating address diff vector tables in case of + flag_pic. + * doc/tm.texi : Regenerate. + * stmt.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Append new condition + 'targetm.asm_out.generate_pic_addr_diff_vec' to flag_pic in case + of addr diff vector generation. + * target.def (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add + target hook definition. + * targhooks.h, targhooks.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): + Add default function for generate_pic_addr_diff_vec -> flag_pic. + * doc/invoke.texi (Add new pic option): Add new microblaze pic + option for data text relative. + +2018-04-30 Richard Biener + + * tree-chrec.h (evolution_function_is_constant_p): Remove + redundant check. + * tree-cfg.c (tree_node_can_be_shared): Re-order checks. + +2018-04-30 Richard Biener + + PR bootstrap/85571 + * dwarf2out.c (gen_producer_string): Ignore -fchecking[=]. + +2018-04-30 Richard Biener + + PR tree-optimization/28364 + PR tree-optimization/85275 + * tree-ssa-loop-ch.c (ch_base::copy_headers): Stop after + copying first exit test. + +2018-04-28 Mark Wielaard + + * dwarf2out.c (dwarf2out_finish): Add .debug_addr table header for + dwarf_version >= 5. + (dwarf_AT): Handle DW_AT_addr_base. + (add_top_level_skeleton_die_attrs): Use dwarf_AT for DW_AT_addr_base. + +2018-04-28 Uros Bizjak + + PR target/84431 + * config/i386/i386.md (*ashl3_doubleword_mask): New pattern. + (*ashl3_doubleword_mask_1): Ditto. + (*3_doubleword_mask): Ditto. + (*3_doubleword_mask_1): Ditto. + +2018-04-28 Richard Biener + + * tree-cfg.c (verify_gimple_phi): Take a gphi * argument. + (verify_gimple_in_cfg): Rename visited_stmts to visited_throwing_stmts + to reflect use. Only add interesting stmts. + +2018-04-27 Martin Jambor + + PR ipa/85549 + * ipa-cp.c (find_aggregate_values_for_callers_subset): Make sure + the jump function allows for passing through aggregate values. + +2018-04-27 David Malcolm + + * input.h (in_system_header_at): Convert from macro to inline + function. + (from_macro_expansion_at): Likewise. + (from_macro_definition_at): Likewise. + +2018-04-27 Jeff Law + + * config.gcc: Mark tile* targets as deprecated/obsolete. + +2018-04-27 Richard Biener + + * config/aarch64/aarch64.c: Simplify ap.__stack advance and + fix for ILP32. + +2018-04-27 Richard Biener + + * tree-cfg.c (verify_expr): Make dead code hit gcc_unreachable. + +2018-04-27 Uros Bizjak + + * config/i386/i386.md (*movti_internal): Substitute Ye constraint + with Yd constraint. Set "preferred_for_speed" attribute from + TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC for alternatives + with Yd constraint. + (*movdi_internal): Ditto. + (movti_interunit splitters): Remove + TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC from insn condition. + (movdi_interunit splitters): Ditto. + * config/i386/constraints.md (Ye): Remove. + (Yd): Do not depend on TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC. + +2018-04-27 Kyrylo Tkachov + + PR target/85512 + * config/aarch64/constraints.md (Usg): Limit to 31. + (Usj): Limit to 63. + +2018-04-27 Jakub Jelinek + + PR tree-optimization/85529 + * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Add FIRST_BB + argument. Don't call get_nonzero_bits if opcode is ERROR_MARK_NODE, + rhs2 def stmt's bb is dominated by first_bb and it isn't an obvious + zero extension or masking of the MSB bit. + (optimize_range_tests): Add FIRST_BB argument, pass it through + to optimize_range_tests_var_bound. + (maybe_optimize_range_tests, reassociate_bb): Adjust + optimize_range_tests callers. + +2018-04-26 Richard Biener + Jakub Jelinek + + * cgraph.h (symbol_table): Just declare debug method here. + * symtab.c (symbol_table::debug): Define. + +2018-04-26 Eric Botcazou + + * loop-invariant.c (may_assign_reg_p): Return false for frame pointer. + +2018-04-26 Uros Bizjak + + * config/i386/i386.md ("isa" attribute): Add x64_sse2. + ("enabled" attribute): Handle x64_sse2 "isa" attribute. + (*movdi_internal): Substitute Yi and Yj constraint with x + and Ym and Yn constraint with y constraint. Update "isa" + attribute and set "preferred_for_speed" attribute from + TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC for updated alternatives. + (*movsi_internal): Ditto. + (*movdf_internal): Ditto. + (*movsf_internal): Ditto. + (*zero_extendsidi2): Ditto. + * config/i386/sse.md (vec_set_0): Ditto. + (sse2_loadld): Ditto. + (*vec_extract_0): Ditto. + (*vec_extractv4si_0_zext_sse4): Ditto. + (vec_concatv2di): Ditto. + (*vec_dup): Ditto. + * config/i386/mmx.md (*mov_internal): Ditto. + * config/i386/constraints.md (Yi): Remove. + (Yj): Remove. + (Ym): Remove. + (Yn): Remove. + +2018-04-26 Nathan Sidwell + + * dumpfile.c (dump_open): New. + (dump_open_alternate_stream, dump_start, dump_begin): Call it. + (dump_finish): Detect stdio/stderr by value not name. + +2018-04-26 Jonathan Wakely + + * doc/invoke.texi (-Wreturn-type): Document default status for C++. + +2018-04-26 Tom de Vries + + PR target/84952 + * config/nvptx/nvptx.c (verify_neutering_jumps) + (verify_neutering_labels): New function + (nvptx_single): Use verify_neutering_jumps and verify_neutering_labels. + +2018-04-26 Tom de Vries + + PR target/84025 + * config/nvptx/nvptx.c (needs_neutering_p): New function. + (nvptx_single): Use needs_neutering_p to skip over insns that do not + need neutering. + +2018-04-26 Richard Biener + Tom de Vries + + PR lto/85422 + * lto-streamer-out.c (output_function): Fixup loops if required to match + discovery done in the reader. + +2018-04-26 Richard Biener + + PR tree-optimization/85116 + * tree-ssa-loop-ch.c (do_while_loop_p): A do-while loop should + have a loop exit from the single latch predecessor. Remove + case of header with just condition. + (ch_base::copy_headers): Exclude infinite loops from any + processing. + (pass_ch::execute): Record exits. + +2018-04-26 Richard Biener + + * tree-vect-data-refs.c (vect_get_data_access_cost): Get + prologue cost vector and pass it to vect_get_load_cost. + (vect_get_peeling_costs_all_drs): Likewise. + (vect_peeling_hash_get_lowest_cost): Likewise. + (vect_enhance_data_refs_alignment): Likewise. + +2018-04-26 Richard Biener + + PR middle-end/85450 + * tree-cfg.c (verify_gimple_assign_unary): Restore proper + checking of integer<->pointer conversions. + * omp-expand.c (expand_omp_for_static_nochunk): Avoid + sign-/zero-extending pointer types. + (expand_omp_for_static_chunk): Likewise. + +2018-03-22 Hans-Peter Nilsson + Jean Lee + + * config/mips/mips.c (mips_asan_shadow_offset): New function. + (TARGET_ASAN_SHADOW_OFFSET): Define. + * config/mips/mips.h (FRAME_GROWS_DOWNWARD): Augment to also be + true for -fsanitize=address. + +2018-04-25 Mark Wielaard + + * dwarf2out.c (file_info_cmp): Sort longer dir prefixes before + shorter ones. + +2018-04-25 Jakub Jelinek + + * config/i386/i386.md (*x86_movcc_0_m1): Use type "alu1" rather + than "alu", remove explicit "memory" and "imm_disp" attributes. + (*x86_movcc_0_m1_se, *x86_movcc_0_m1_neg): Likewise. + + PR middle-end/85414 + * simplify-rtx.c (simplify_unary_operation_1) : Pass SUBREG_REG (op) rather than op to + gen_lowpart_no_emit. + +2018-04-25 Sebastian Peryt + + PR target/85473 + * config/i386/i386.c (ix86_expand_builtin): Change memory + operand to XI, extend p0 to Pmode. + * config/i386/i386.md: Change unspec volatile and operand + 1 mode to XI, change operand 0 mode to P. + +2018-04-25 Chung-Ju Wu + + * config/nds32/nds32-predicates.c (nds32_can_use_bclr_p): Mask with + GET_MODE_MASK before any checking. + (nds32_can_use_bset_p): Likewise. + (nds32_can_use_btgl_p): Likewise. + +2018-04-25 Chung-Ju Wu + + * config/nds32/nds32-doubleword.md: New define_split pattern for + illegal register number. + +2018-04-25 Chung-Ju Wu + + * config/nds32/nds32.c (nds32_print_operand): Set op_value ealier. + +2018-04-25 Chung-Ju Wu + + * config/nds32/nds32.h (ASM_APP_ON): Add missing newline character. + +2018-04-25 Richard Biener + + * lto-streamer.h (LTO_major_version): Bump to 8. + +2018-04-25 Jakub Jelinek + + * BASE-VER: Set to 9.0.0. + +2018-04-24 Segher Boessenkool + + * config/rs6000/rs6000.c (init_float128_ieee): Fix spelling mistakes + in __abskf2 and __powikf2. + +2018-04-24 Kyrylo Tkachov + + PR target/85512 + * config/aarch64/constraints.md (Usg, Usj): New constraints. + * config/aarch64/iterators.md (cmode_simd): New mode attribute. + * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_3): + Use the above on operand 2. Reindent. + (*aarch64_lshr_sisd_or_int_3): Likewise. + +2018-04-24 H.J. Lu + + PR target/85485 + * common/config/i386/i386-common.c (ix86_handle_option): Don't + handle OPT_mcet. + * config/i386/i386.opt (mcet): Removed. + * doc/install.texi: Remove -mcet documentation. + * doc/invoke.texi: Likewise. + +2018-04-24 H.J. Lu + + PR target/85485 + * doc/install.texi: Remove -mcet from bootstrap-cet. + +2018-04-24 Jakub Jelinek + + PR target/85511 + * config/i386/i386.c (ix86_init_mmx_sse_builtins): Don't define + __builtin_ia32_readeflags_u32 and __builtin_ia32_writeeflags_u32 + if TARGET_64BIT. + + PR target/85503 + * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Punt if + const_vector is not CONST_VECTOR or SYMBOL_REF for a constant pool + containing a CONST_VECTOR. + +2018-04-24 Cesar Philippidis + + * doc/install.texi: Update newlib dependency for nvptx. + +2018-04-24 Jakub Jelinek + + PR target/85508 + * config/i386/i386.c (ix86_expand_vector_init_one_var): Use UINTVAL + instead of INTVAL when shifting x left. + +2018-04-24 Andreas Krebbel + + PR tree-optimization/85478 + * tree-vect-loop.c (vect_analyze_loop_2): Do not call + vect_grouped_store_supported for single element vectors. + +2018-04-24 Richard Biener + + PR target/85491 + * config/i386/i386.c (ix86_add_stmt_cost): Restrict strided + load cost increase to the case of non-constant step. + +2018-04-24 Jakub Jelinek + + PR target/84828 + * reg-stack.c (move_for_stack_reg): Don't fail assertion about dead + destination if any_malformed_asm. + +2018-04-23 Eric Botcazou + + PR middle-end/85496 + * expr.c (store_field): In the bitfield case, if the value comes from + a function call and is returned in registers by means of a PARALLEL, + do not change the mode of the temporary unless BLKmode and VOIDmode. + +2018-04-23 Andrey Belevantsev + + PR rtl-optimization/85423 + * sel-sched-ir.c (has_dependence_note_mem_dep): Only discard + dependencies to debug insns when the previous insn is non-debug. + +2018-04-23 Claudiu Zissulescu + + * config/arc/arc.md ("vunspec"): Delete it, unify all the unspec + enums into a single definition. + (fls): Fix predicates and printing. + (seti): Likewise. + +2018-04-23 Claudiu Zissulescu + + * config/arc/arc-protos.h (check_if_valid_sleep_operand): Remove. + * config/arc/arc.c (arc_expand_builtin): Sleep accepts registers + and short u6 immediate. + (check_if_valid_sleep_operand): Remove. + * config/arc/arc.md (Sleep): Accepts registers and u6 immediates. + +2018-04-22 Chung-Ju Wu + + * config/nds32/nds32.c (nds32_compute_stack_frame): Consider + flag_always_save_lp condition. + * config/nds32/nds32.opt (malways-save-lp): New option. + +2018-04-22 Shiva Chen + + * config/nds32/nds32-protos.h (nds32_use_load_post_increment): Declare. + * config/nds32/nds32.c (nds32_use_load_post_increment): New. + * config/nds32/nds32.h + (USE_LOAD_POST_INCREMENT, USE_LOAD_POST_DECREMENT): Define. + (USE_STORE_POST_INCREMENT, USE_STORE_POST_DECREMENT): Define. + +2018-04-22 Shiva Chen + + * config/nds32/nds32-protos.h (nds32_ls_333_p): Remove. + * config/nds32/nds32.c (nds32_ls_333_p): Remove. + +2018-04-22 Shiva Chen + Chung-Ju Wu + + * config/nds32/nds32-protos.h (nds32_case_vector_shorten_mode): + Declare. + * config/nds32/nds32.c (nds32_case_vector_shorten_mode): New function. + * config/nds32/nds32.h (CASE_VECTOR_SHORTEN_MODE): Modify. + +2018-04-22 Chung-Ju Wu + + * config/nds32/nds32.c (nds32_compute_stack_frame): Fix wrong value. + +2018-04-22 Chung-Ju Wu + + * config/nds32/nds32-protos.h (nds32_data_alignment, + nds32_local_alignment): Declare. + * config/nds32/nds32.c (nds32_data_alignment, nds32_constant_alignment, + nds32_local_alignment): New functions. + (TARGET_CONSTANT_ALIGNMENT): Define. + * config/nds32/nds32.h (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define. + +2018-04-22 Chung-Ju Wu + + * config/nds32/nds32.c + (TARGET_HARD_REGNO_MODE_OK): Move to the bottom of file. + (TARGET_MODES_TIEABLE_P): Likewise. + +2018-04-22 Chung-Ju Wu + + * config/nds32/nds32.c (nds32_asm_file_start): Display optimization + level Ofast and Og. + +2018-04-22 Monk Chiang + Chung-Ju Wu + + * config/nds32/constants.md (unspec_volatile_element): Add enum values + for unaligned access. + * config/nds32/nds32-intrinsic.c: Implementation of expanding + unaligned access. + * config/nds32/nds32-intrinsic.md: Likewise. + * config/nds32/nds32_intrinsic.h: Likewise. + * config/nds32/nds32.h (nds32_builtins): Likewise. + * config/nds32/nds32.opt (munaligned-access): New option. + * config/nds32/nds32.c (nds32_asm_file_start): Display + flag_unaligned_access status. + +2018-04-20 Kito Cheng + + * config/riscv/elf.h (LINK_SPEC): Pass --no-relax if + -mno-relax is present. + * config/riscv/linux.h (LINK_SPEC): Ditto. + +2018-04-20 Martin Sebor + + PR c/85365 + * gimple-fold.c (gimple_fold_builtin_strcpy): Suppress -Wrestrict + for null pointers. + (gimple_fold_builtin_stxcpy_chk): Same. + * gimple-ssa-warn-restrict.c (check_bounds_or_overlap): Same. + +2018-04-20 Michael Meissner + + PR target/85456 + * config/rs6000/rs6000.c (init_float128_ieee): Add support to call + __powikf2 when long double is IEEE 128-bit. + +2018-04-20 Kito Cheng + + * config/riscv/riscv.c (riscv_first_stack_step): Round up min + step to make sure stack always aligned. + +2018-04-20 Carl Love + + PR target/83402 + * config/rs6000/rs6000-c.c (rs6000_gimple_fold_builtin): Add + size check for arg0. + +2018-04-20 Nathan Sidwell + Tom de Vries + + PR target/85445 + * config/nvptx/nvptx.c (nvptx_emit_forking, nvptx_emit_joining): + Emit insns for calls too. + (nvptx_find_par): Always look for worker-level predecessor insn. + (nvptx_propagate): Add is_call parm, return bool. Copy frame for + calls. + (nvptx_vpropagate, nvptx_wpropagate): Adjust. + (nvptx_process_pars): Propagate frames for calls. + +2018-04-20 H.J. Lu + + PR target/85469 + * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): + Removed. + (OPTION_MASK_ISA_IBT_UNSET): Likewise. + (ix86_handle_option): Don't handle OPT_mibt. + * config/i386/cet.h: Check __CET__ instead of __IBT__ and + __SHSTK__. + * config/i386/driver-i386.c (host_detect_local_cpu): Remove + has_ibt and ibt. + * config/i386/i386-c.c (ix86_target_macros_internal): Don't + check OPTION_MASK_ISA_IBT nor flag_cf_protection. + (ix86_target_macros): Define __CET__ with flag_cf_protection + for -fcf-protection. + * config/i386/i386.c (isa2_opts): Remove -mibt. + * config/i386/i386.h (TARGET_IBT): Removed. + (TARGET_IBT_P): Likewise. + (ix86_valid_target_attribute_inner_p): Don't check OPT_mibt. + * config/i386/i386.md (nop_endbr): Don't check TARGET_IBT. + * config/i386/i386.opt (mcet): Update help message. + (mshstk): Likewise. + (mibt): Removed. + * doc/invoke.texi: Remove -mibt. Document __CET__. Document + -mcet as an alias for -mshstk. + +2018-04-20 Richard Biener + + PR middle-end/85475 + * match.pd ((X * CST) * Y -> (X * Y) * CST): Avoid exponential + complexity by forcing a single use of the multiply operand. + +2018-04-20 Martin Jambor + + ipa/85449 + * ipa-cp.c (cgraph_edge_brings_value_p): Move check for self-feeding + recursion dependency to only apply to non-clones. + +2018-04-20 Martin Jambor + + ipa/85447 + * ipa-cp.c (create_specialized_node): Check that clones of + self-recursive edges exist during IPA-CP. + +2018-04-19 Toon Moene + + * doc/invoke.texi: Add -floop-unroll-and-jam to options enabled + by -O3. + +2018-04-19 Jakub Jelinek + + PR tree-optimization/85467 + * fold-const.c (fold_ternary_loc) : Use + VECTOR_TYPE_P macro. If type is vector type, VIEW_CONVERT_EXPR the + VECTOR_CST element to type. + +2018-04-19 H.J. Lu + + PR target/85397 + * config/i386/i386.h (STACK_SAVEAREA_MODE): New. + * config/i386/i386.md (builtin_setjmp_setup): Removed. + (builtin_longjmp): Likewise. + (save_stack_nonlocal): New pattern. + (restore_stack_nonlocal): Likewise. + +2018-04-19 H.J. Lu + + PR target/85404 + * config/i386/cet.c (file_end_indicate_exec_stack_and_cet): + Replace ASM_OUTPUT_LABEL with fprintf. + +2018-04-19 H.J. Lu + + PR target/85417 + * config/i386/cet.c (file_end_indicate_exec_stack_and_cet): + Check flag_cf_protection instead of TARGET_IBT and TARGET_SHSTK. + * config/i386/i386-c.c (ix86_target_macros_internal): Also + define __IBT__ and __SHSTK__ for -fcf-protection. + * config/i386/i386.c (pass_insert_endbranch::gate): Don't check + TARGET_IBT. + (ix86_trampoline_init): Likewise. + (x86_output_mi_thunk): Likewise. + (ix86_notrack_prefixed_insn_p): Likewise. + (ix86_option_override_internal): Don't disallow -fcf-protection. + * config/i386/i386.md (rdssp): Also enable for + -fcf-protection. + (incssp): Likewise. + (nop_endbr): Likewise. + * config/i386/i386.opt (mcet): Change help message to built-in + functions only. + (mibt): Likewise. + (mshstk): Likewise. + * doc/invoke.texi: Remove -mcet, -mibt and -mshstk condition + on -fcf-protection. Change -mcet, -mibt and -mshstk to only + enable CET built-in functions. + +2018-04-19 Sebastian Peryt + + * common/config/i386/i386-common.c + (OPTION_MASK_ISA_MOVDIRI_SET, OPTION_MASK_ISA_MOVDIR64B_SET, + OPTION_MASK_ISA_MOVDIRI_UNSET, + OPTION_MASK_ISA_MOVDIR64B_UNSET): New defines. + (ix86_handle_option): Handle -mmovdiri and -mmovdir64b. + * config.gcc (movdirintrin.h): New header. + * config/i386/cpuid.h (bit_MOVDIRI, + bit_MOVDIR64B): New bits. + * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mmovdiri + and -mmvodir64b. + * config/i386/i386-builtin-types.def ((VOID, PUNSIGNED, UNSIGNED), + (VOID, PVOID, PCVOID)): New function types. + * config/i386/i386-builtin.def (__builtin_ia32_directstoreu_u32, + __builtin_ia32_directstoreu_u64, + __builtin_ia32_movdir64b): New builtins. + * config/i386/i386-c.c (__MOVDIRI__, __MOVDIR64B__): New. + * config/i386/i386.c (ix86_target_string): Added -mmovdir64b + and -mmovdiri. + (ix86_valid_target_attribute_inner_p): Ditto. + (ix86_expand_special_args_builtin): Added VOID_FTYPE_PUNSIGNED_UNSIGNED + and VOID_FTYPE_PUNSIGNED_UNSIGNED. + (ix86_expand_builtin): Expand IX86_BUILTIN_MOVDIR64B. + * config/i386/i386.h (TARGET_MOVDIRI, TARGET_MOVDIRI_P, + TARGET_MOVDIR64B, TARGET_MOVDIR64B_P): New. + * config/i386/i386.md (UNSPECV_MOVDIRI, UNSPECV_MOVDIR64B): New. + (movdiri, movdir64b_): New. + * config/i386/i386.opt: Add -mmovdiri and -mmovdir64b. + * config/i386/immintrin.h: Include movdirintrin.h. + * config/i386/movdirintrin.h: New file. + * doc/invoke.texi: Added -mmovdiri and -mmovdir64b. + +2018-04-19 Richard Biener + + PR middle-end/85455 + * cfg.c (clear_bb_flags): When loop state says we have + marked irreducible regions also preserve BB_IRREDUCIBLE_LOOP. + +2018-04-19 Richard Biener + + PR tree-optimization/84737 + * tree-vect-data-refs.c (vect_copy_ref_info): New function + copying restrict info. + (vect_setup_realignment): Use it. + * tree-vectorizer.h (vect_copy_ref_info): Declare. + * tree-vect-stmts.c (vectorizable_store): Copy ref info from + the first DR to all generated stores. + (vectorizable_load): Likewise for loads. + +2018-04-19 Jakub Jelinek + + PR tree-optimization/85446 + * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Require + the integral and pointer types to have the same precision. + + * doc/install.texi: Document --disable-cet being the default and + --enable-cet=auto. + +2018-04-18 Martin Liska + + * ipa-devirt.c (odr_subtypes_equivalent_p): Fix GNU coding + style. + +2018-04-18 Martin Liska + + Revert + 2018-03-02 Eric Botcazou + + PR ipa/83983 + * ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both + arguments if they are comparable. + +2018-04-18 Martin Liska + + Revert + 2018-03-13 Eric Botcazou + + PR lto/84805 + * ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of + incomplete types. + +2018-04-18 H.J. Lu + + PR target/85388 + * config/i386/i386.c (ix86_expand_split_stack_prologue): Insert + ENDBR after calling __morestack. + +2018-04-18 David Malcolm + + PR jit/85384 + * configure.ac (gcc-driver-name.h): Honor --with-gcc-major-version + by using gcc_base_ver to generate a gcc_driver_version, and use + it when generating GCC_DRIVER_NAME. + * configure: Regenerate. + +2018-04-18 Jakub Jelinek + + PR target/81084 + * config.gcc: Obsolete powerpc*-*-*spe*. + +2018-04-17 Jakub Jelinek + + PR debug/84637 + * dbxout.c (dbxout_int): Perform negation in unsigned int type. + (stabstr_D): Change type of unum from unsigned int to + unsigned HOST_WIDE_INT. Perform negation in unsigned HOST_WIDE_INT + type. + +2018-04-17 Jim Wilson + + PR 84856 + * config/riscv/riscv.c (riscv_compute_frame_info): Add calls to + RISCV_STACK_ALIGN when using outgoing_args_size and pretend_args_size. + Set arg_pointer_offset after using pretend_args_size. + +2018-04-17 Jakub Jelinek + + PR rtl-optimization/85431 + * dse.c (record_store): Ignore zero width stores. + + PR sanitizer/85230 + * asan.c (handle_builtin_stack_restore): Adjust comment. Emit + __asan_allocas_unpoison call and last_alloca_addr = new_sp before + __builtin_stack_restore rather than after it. + * builtins.c (expand_asan_emit_allocas_unpoison): Pass + arg1 + (virtual_dynamic_stack_rtx - stack_pointer_rtx) as second + argument instead of virtual_dynamic_stack_rtx. + +2018-04-17 Kelvin Nilsen + + * config/rs6000/rs6000-protos.h (rs6000_builtin_is_supported_p): + New prototype. + * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): + Add note to error message to explain internal mapping of overloaded + built-in function name to non-overloaded built-in function name. + * config/rs6000/rs6000.c (rs6000_builtin_is_supported_p): New + function. + +2018-04-17 Michael Meissner + + PR target/85424 + * config/rs6000/rs6000.md (pack): Do not try handle a pack + where the inputs overlap with the output. + +2018-04-17 Jakub Jelinek + + * config/i386/sse.md (vec_extract_lo_): Add + (=v, v) alternative and explicit "memory" attribute. + (vec_extract_lo_): Likewise. Also add + "type", "prefix", "prefix_extra", "length_immediate" and "mode" + attributes. + (vec_extract_lo_): Add (=v, v) alternative and use + "sselog1" type instead of "sselog". + (vec_extract_hi_): Use "sselog1" type instead of + "sselog". Remove explicit "memory" attribute. + (vec_extract_lo_v32hi): Add (=v, v) alternative and explicit "memory", + "type", "prefix", "prefix_extra", "length_immediate" and "mode" + attributes. + (vec_extract_hi_v32hi): Merge all alternatives into one, use + "sselog1" type instead of "sselog". Remove explicit "memory" + attribute. + (vec_extract_hi_v16hi): Merge each pair of alternatives into one, + use "sselog1" type instead of "sselog". Remove explicit "memory" + attribute. + (vec_extract_lo_v64qi): Add (=v, v) alternative and explicit "memory", + "type", "prefix", "prefix_extra", "length_immediate" and "mode" + attributes. + (vec_extract_hi_v64qi): Merge all alternatives into one, use + "sselog1" type instead of "sselog". Remove explicit "memory" + attribute. + (vec_extract_hi_v32qi): Merge each pair of alternatives into one, + use "sselog1" type instead of "sselog". Remove explicit "memory" + attribute. + + PR target/85430 + * config/i386/i386.md (*ashlqi3_1_slp): Use alu1 type instead of alu. + + PR middle-end/85414 + * rtlhooks.c (gen_lowpart_if_possible): Don't call gen_lowpart_SUBREG + on a SUBREG. + +2018-04-17 Martin Jambor + + PR ipa/85421 + * ipa-cp.c (create_specialized_node): Call + expand_all_artificial_thunks if necessary. + +2018-04-17 Martin Liska + + PR lto/85405 + * ipa-devirt.c (odr_types_equivalent_p): Remove trailing + in message, remote space in between '_G' and '('. + +2018-04-17 Jakub Jelinek + + PR target/85281 + * config/i386/sse.md (reduces, + avx512f_vmcmp3, + avx512f_vmcmp3_mask, + avx512f_sgetexp, + avx512f_rndscale, + avx512dq_ranges, + avx512f_vgetmant): + Use %2 instead of %2 for -masm=intel. + (avx512f_vcvtss2usi, avx512f_vcvtss2usiq, + avx512f_vcvttss2usi, + avx512f_vcvttss2usiq): Use %k1 instead of %1 for + -masm=intel. + (avx512f_vcvtsd2usi, avx512f_vcvtsd2usiq, + avx512f_vcvttsd2usi, + avx512f_vcvttsd2usiq, ufloatv2siv2df2): + Use %q1 instead of %1 for -masm=intel. + (avx512f_sfixupimm, + avx512f_sfixupimm_mask): Use %3 instead + of %3 for -masm=intel. + (sse2_shufpd_v2df_mask): Fix a typo, change %{6%} to %{%6%} for + -masm=intel. + (*avx512vl_v2div2qi2_store): Use %w0 instead of %0 for + -masm=intel. + (*avx512vl_v4qi2_store): Use %k0 instead of %0 for + -masm=intel. + (avx512vl_v4qi2_mask_store): Use a single pattern with + %k0 and %1 for -masm=intel rather than two patterns, one with %0 and + %g1. + (*avx512vl_v8qi2_store): Use %q0 instead of %0 for + -masm=intel. + (avx512vl_v8qi2_mask_store): Use a single pattern with + %q0 and %1 for -masm=intel rather than two patterns, one with %0 and + %g1 and one with %0 and %1. + (avx512er_vmrcp28, + avx512er_vmrsqrt28): Use %1 instead of + %1 for -masm=intel. + (avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddss_mask, + avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddss_mask, + avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssds_mask): Swap order + of %0 and %{%4%} for -masm=intel. + (avx5124fmaddps_4fmaddps_maskz, avx5124fmaddps_4fmaddss_maskz, + avx5124fmaddps_4fnmaddps_maskz, avx5124fmaddps_4fnmaddss_maskz, + avx5124vnniw_vp4dpwssd_maskz, avx5124vnniw_vp4dpwssds_maskz): Swap + order of %0 and %{%5%}%{z%} for -masm=intel. + +2018-04-17 Jan Hubicka + + PR lto/85405 + * ipa-devirt.c (odr_types_equivalent_p): Handle bit fields. + +2018-04-17 Martin Liska + + PR ipa/85329 + * multiple_target.c (create_dispatcher_calls): Set apostrophes + for target_clone error message. Make default implementation + clone to be a local declaration. + (separate_attrs): Add new argument and check for an empty + string. + (expand_target_clones): Handle it. + (ipa_target_clone): Make redirection just for target_clones + functions. + +2018-04-16 Cesar Philippidis + Tom de Vries + + PR middle-end/84955 + * omp-expand.c (expand_oacc_for): Add dummy false branch for + tiled basic blocks without omp continue statements. + +2018-04-16 Aaron Sawdey + + PR target/83660 + * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Mark + vec_extract expression as having side effects to make sure it gets + a cleanup point. + +2018-04-16 H.J. Lu + + PR target/85403 + * config/i386/i386.c (get_builtin_code_for_version): Check + error_mark_node. + +2018-04-16 Olga Makhotina + + PR target/84331 + * config.gcc: Support "skylake". + * config/i386/i386-c.c (ix86_target_macros_internal): Handle + PROCESSOR_SKYLAKE. + * config/i386/i386.c (m_SKYLAKE): Define. + (processor_target_table): Add "skylake". + (ix86_option_override_internal): Add "skylake". + (get_builtin_code_for_version): Handle PROCESSOR_SKYLAKE, + PROCESSOR_CANNONLAKE. + (get_builtin_code_for_version): Fix priority for + PROCESSOR_ICELAKE_CLIENT, PROCESSOR_ICELAKE_SERVER, + PROCESSOR_SKYLAKE-AVX512. + * config/i386/i386.h (processor_costs): Define TARGET_SKYLAKE. + (processor_type): Add PROCESSOR_SKYLAKE. + +2018-04-16 Paolo Carlini + Jason Merrill + + PR c++/85112 + * convert.c (convert_to_integer_1): Use direct recursion for + enumeral types and types with a precision less than the number + of bits in their mode. + +2018-04-16 Julia Koval + + PR target/84413 + * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL, + X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Add m_SKYLAKE_AVX512 + +2018-04-14 Segher Boessenkool + + PR target/85293 + * config/rs6000/rs6000.opt (mdirect-move): Make deprecated. + * doc/invoke.texi (RS/6000 and PowerPC Options): Remove -mdirect-move + and -mno-direct-move. + +2018-04-13 Paul A. Clarke + + PR target/83402 + * config/rs6000/emmintrin.h (_mm_slli_epi{16,32,64}): + Ensure that vec_splat_s32 is only called with 0 <= shift < 16. + Ensure negative shifts result in {0}. + +2018-04-13 Vladimir Makarov + + PR rtl-optimization/79916 + * config/rs6000/rs6000.c (rs6000_emit_move): Use assigned hard + regs (if any) to define how to gnerate SD moves when LRA is in + progress. + +2018-04-13 Jakub Jelinek + + PR rtl-optimization/85393 + * except.h (expand_dw2_landing_pad_for_region): Remove declaration. + * except.c (expand_dw2_landing_pad_for_region): Make static. + * bb-reorder.c (fix_up_crossing_landing_pad): In new_bb emit just + a label and unconditional jump to old_bb, rather than + expand_dw2_landing_pad_for_region insn(s) and jump to single_succ + basic block. + + PR rtl-optimization/85376 + * simplify-rtx.c (simplify_const_unary_operation): For CLZ and CTZ and + zero op0, if C?Z_DEFINED_VALUE_AT_ZERO is false, return NULL_RTX + instead of a specific value. + +2018-04-13 Jan Hubicka + Bin Cheng + + PR tree-optimization/82965 + PR tree-optimization/83991 + * cfgloopanal.c (expected_loop_iterations_unbounded): Add + by_profile_only parameter. + * cfgloopmanip.c (scale_loop_profile): Further scale loop's profile + information if the loop was predicted to iterate too many times. + * cfgloop.h (expected_loop_iterations_unbounded): Update prototype + +2018-04-13 Jan Hubicka + + PR lto/71991 + * config/i386/i386.c (ix86_can_inline_p): Allow safe transitions for + always inline. + +2018-04-13 Martin Liska + Jakub Jelinek + + PR middle-end/81657 + * expr.h (enum block_op_methods): Add BLOCK_OP_NO_LIBCALL_RET. + * expr.c (emit_block_move_hints): Handle BLOCK_OP_NO_LIBCALL_RET. + * builtins.c (expand_builtin_memory_copy_args): Use + BLOCK_OP_NO_LIBCALL_RET method for mempcpy with non-ignored target, + handle dest_addr == pc_rtx. + +2018-04-12 Segher Boessenkool + + PR target/85291 + * config/rs6000/rs6000.md (fix_truncsi2): Use legacy code if + asked to not generate direct moves. + (fix_truncsi2_stfiwx): Similar. + (fix_truncsi2_internal): Similar. + +2018-04-12 Jakub Jelinek + + PR debug/83157 + * var-tracking.c (add_stores): Handle STRICT_LOW_PART SET_DEST. + * cselib.c (cselib_record_sets): For STRICT_LOW_PART dest, + lookup if dest in some wider mode is known to be const0_rtx and + if so, record permanent equivalence for it to be ZERO_EXTEND of + the narrower mode destination. + +2018-04-12 Cesar Philippidis + + * lto-streamer-out.c (output_function): Revert 259346. + * omp-expand.c (expand_oacc_for): Likewise. + +2018-04-12 Alexander Monakov + + PR rtl-optimization/85354 + * sel-sched-ir.c (sel_init_pipelining): Move cfg_cleanup call... + * sel-sched.c (sel_global_init): ... here. + +2018-04-12 Eric Botcazou + + PR target/85238 + * lto-wrapper.c (debug_objcopy): Open the files in binary mode. + * dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO + mode for PE-COFF targets. + * config/i386/i386-protos.h (i386_pe_asm_lto_start): Declare. + (i386_pe_asm_lto_end): Likewise. + * config/i386/cygming.h (TARGET_ASM_LTO_START): Define. + (TARGET_ASM_LTO_END): Likewise. + * config/i386/winnt.c (saved_debug_info_level): New static variable. + (i386_pe_asm_lto_start): New function. + (i386_pe_asm_lto_end): Likewise. + +2018-04-12 Cesar Philippidis + Richard Biener + + PR middle-end/84955 + * lto-streamer-out.c (output_function): Fix CFG loop state before + streaming out. + * omp-expand.c (expand_oacc_for): Handle calls to internal + functions like regular functions. + +2018-04-12 Richard Biener + + PR lto/85371 + * dwarf2out.c (init_sections_and_labels): Use debug_line_section[_label] + for the early LTO debug to properly generate references to it + during DIE emission. Do not re-use that for the skeleton for + split-dwarf. + (dwarf2out_early_finish): Likewise. + +2018-04-12 Jakub Jelinek + + PR target/85328 + * config/i386/sse.md + (avx512dq_vextract64x2_1 split, + avx512f_vextract32x4_1 split, + vec_extract_lo_ split, vec_extract_lo_v32hi, + vec_extract_lo_v64qi): For non-AVX512VL if input is xmm16+ reg + and output is a reg, avoid creating invalid lowpart subreg, but + instead split into a 512-bit move. Don't split if not AVX512VL, + input is xmm16+ reg and output is a mem. + (vec_extract_lo_, vec_extract_lo_v32hi, + vec_extract_lo_v64qi): Don't require split if not AVX512VL, input is + xmm16+ reg and output is a mem. + +2018-04-12 Andreas Krebbel + + * config/s390/s390.c (s390_output_indirect_thunk_function): Check + also for flag_dwarf2_cfi_asm. + +2018-04-12 Jakub Jelinek + + PR rtl-optimization/85342 + * regcprop.c (copyprop_hardreg_forward_1): Remove replaced array, use + a bool scalar var inside of the loop instead. Don't try to update + recog_data.operand after failed apply_change_group. + +2018-04-12 Tom de Vries + + PR target/85296 + * config/nvptx/nvptx.c (flexible_array_member_type_p): New function. + (nvptx_assemble_decl_begin): Add undefined param. Declare undefined + array with flexible array member as array without given dimension. + (nvptx_assemble_undefined_decl): Set nvptx_assemble_decl_begin call + argument for undefined param to true. + +2018-04-11 Aaron Sawdey + + PR target/85321 + * doc/invoke.texi (RS/6000 and PowerPC Options): Document options + -mcall- and -mtraceback=. Remove options -mabi=spe and -mabi=no-spe + from PowerPC section. + * config/rs6000/sysv4.opt (mcall-): Improve help text. + * config/rs6000/rs6000.opt (mblock-compare-inline-limit=): Trim + help text that is too long. + * config/rs6000/rs6000.opt (mblock-compare-inline-loop-limit=): Trim + help text that is too long. + * config/rs6000/rs6000.opt (mstring-compare-inline-limit=): Trim + help text that is too long. + +2018-04-11 Uros Bizjak + + * config/alpha/alpha.md (stack_probe_internal): Rename + from "probe_stack". Update all callers. + +2018-04-11 Alexander Monakov + + PR rtl-optimization/84566 + * sched-deps.c (sched_analyze_insn): Check deps->readonly when invoking + sched_macro_fuse_insns. + +2018-04-11 Alexander Monakov + + PR target/84301 + * sched-rgn.c (add_branch_dependences): Move sel_sched_p check here... + (compute_block_dependences): ... from here. + +2018-04-11 Jakub Jelinek + + PR tree-optimization/85331 + * vec-perm-indices.h (vec_perm_indices::clamp): Change input type + from int to HOST_WIDE_INT. + +2018-04-11 Martin Jambor + + PR ipa/84149 + * ipa-cp.c (propagate_vals_across_pass_through): Expand comment. + (cgraph_edge_brings_value_p): New parameter dest_val, check if it is + not the same as the source val. + (cgraph_edge_brings_value_p): New parameter. + (gather_edges_for_value): Pass destination value to + cgraph_edge_brings_value_p. + (perhaps_add_new_callers): Likewise. + (get_info_about_necessary_edges): Likewise and exclude values brought + only by self-recursive edges. + (create_specialized_node): Redirect only clones of self-calling edges. + (+self_recursive_pass_through_p): New function. + (find_more_scalar_values_for_callers_subset): Use it. + (find_aggregate_values_for_callers_subset): Likewise. + (known_aggs_to_agg_replacement_list): Removed. + (decide_whether_version_node): Re-calculate known constants for all + remaining context clones. + +2018-04-11 Richard Biener + + PR lto/85339 + * dwarf2out.c (dwarf2out_finish): Remove DW_AT_stmt_list attribute + from early DWARF output. + (dwarf2out_early_finish): Output line info unconditionally into + early DWARF and add reference to it. + +2018-04-11 Jakub Jelinek + + PR target/85281 + * config/i386/sse.md (iptr): Add V16SFmode and V8DFmode cases. + (_vec_dup): Use a single pattern for modes + other than V2DFmode using iptr mode attribute. + (_vec_dup): Use iptr mode attribute. + +2018-04-11 Alexander Monakov + + PR rtl-optimization/84659 + * sel-sched-ir.c (sel_init_pipelining): Invoke cleanup_cfg. + +2018-04-11 Jakub Jelinek + + PR debug/85302 + * dwarf2out.c (skip_loc_list_entry): Don't call size_of_locs if + SIZEP is NULL. + (output_loc_list): Pass address of a dummy size variable even in the + locview handling loop. + (index_location_lists): Add comment on why skip_loc_list_entry can't + call size_of_locs. + +2018-04-11 Thomas Preud'homme + + PR target/85261 + * config/arm/arm-builtins.c (arm_expand_builtin): Force input operand + into register. + +2018-04-10 Aaron Sawdey + + PR target/85321 + * doc/invoke.texi (RS/6000 and PowerPC Options): Document options + -mblock-compare-inline-limit, -mblock-compare-inline-loop-limit, + and -mstring-compare-inline-limit. + +2018-04-10 Segher Boessenkool + + PR target/85287 + * config/rs6000/rs6000.md (allocate_stack): Put the residual size + for stack clash protection in a register whenever we need it to be in + a register. + +2018-04-10 Segher Boessenkool + + * common/config/rs6000/rs6000-common.c (rs6000_option_init_struct): + Enable -fasynchronous-unwind-tables by default if OBJECT_FORMAT_ELF. + +2018-04-10 Segher Boessenkool + + PR target/85321 + * config/rs6000/rs6000.opt (mtraceback=): Show the allowed values in + the help text. + (mlong-double-): Ditto. + * config/rs6000/sysv4.opt (msdata=): Ditto. + (mtls-size=): Ditto. + +2018-04-10 Kelvin Nilsen + + * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove + erroneous entries for + "vector int vec_ldl (int, long int *)", and + "vector unsigned int vec_ldl (int, unsigned long int *)". + Add comments and entries for + "vector bool char vec_ldl (int, bool char *)", + "vector bool short vec_ldl (int, bool short *)", + "vector bool int vec_ldl (int, bool int *)", + "vector bool long long vec_ldl (int, bool long long *)", + "vector pixel vec_ldl (int, pixel *)", + "vector long long vec_ldl (int, long long *)", + "vector unsigned long long vec_ldl (int, unsigned long long *)". + * config/rs6000/rs6000.c (rs6000_init_builtins): Initialize new + type tree bool_long_long_type_node and correct definition of + bool_V2DI_type_node to make reference to this new type tree. + (rs6000_mangle_type): Replace erroneous reference to + bool_long_type_node with bool_long_long_type_node. + * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Add + comments to emphasize sign distinctions for char and int types and + replace RS6000_BTI_bool_long constant with + RS6000_BTI_bool_long_long constant. Also add comment to restrict + use of RS6000_BTI_pixel. + (bool_long_type_node): Remove this macro definition. + (bool_long_long_type_node): New macro definition + +2018-04-10 Jakub Jelinek + + PR rtl-optimization/85300 + * combine.c (subst): Handle subst of CONST_SCALAR_INT_P new_rtx also + into FLOAT and UNSIGNED_FLOAT like ZERO_EXTEND, return a CLOBBER if + simplify_unary_operation fails. + +2018-04-10 Martin Liska + + * gdbhooks.py: Add pretty-printers for varpool_node, symtab_node, + cgraph_edge and ipa_ref. + +2018-04-10 Jakub Jelinek + + PR target/85177 + PR target/85255 + * config/i386/sse.md + (_vinsert_mask): Fix + computation of the VEC_MERGE selector from mask. + (_vinsert_1): + Fix decoding of the VEC_MERGE selector into mask. + +2018-04-10 Richard Sandiford + + PR tree-optimization/85286 + * tree-vect-data-refs.c (vect_get_smallest_scalar_type): + +2018-04-10 Richard Sandiford + + * final.c (final_1): Set insn_last_address as well as + insn_current_address. + +2018-04-10 Kyrylo Tkachov + + PR target/85173 + * explow.c (emit_stack_probe): Call validize_mem on memory location + before passing it to gen_probe_stack. Create address operand and + legitimize it for the probe_stack_address case. + +2018-04-09 Jan Hubicka + + PR lto/85078 + * ipa-devirt.c (rebuild_type_inheritance-hash): New. + * ipa-utils.h (rebuild_type_inheritance-hash): Declare. + * tree.c (free_lang_data_in_type): Fix handling of binfos; + walk basetypes. + (free_lang_data): Rebuild type inheritance graph. + +2018-04-09 Martin Sebor + + * invoke.texi (-finline-small-functions): Mention other optimization + options. + (-findirect-inlining, -fpartial-inlining): Same. + (-finline-functions-called-once): Same. + (-freorder-blocks-and-partition): Same. + +2018-04-09 Jan Hubicka + + PR rtl/84058 + * cfgcleanup.c (try_forward_edges): Do not give up on crossing + jumps; choose last target that matches the criteria (i.e. + no partition changes for non-crossing jumps). + * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Add basic + support for redirecting crossing jumps to non-crossing. + +2018-04-09 Alexey Brodkin + + * config/arc/arc.c (arc_expand_prologue): Set stack usage info + also for naked functions. + +2018-04-09 Claudiu Zissulescu + + * config/arc/arc.md (add_shift): New pattern. + (add_shift2): Likewise. + (sub_shift): Likewise. + (sub_shift_cmp0_noout): Likewise. + (compare_si_ashiftsi): Likewise. + (xbfu_cmp0_noout): New combine pattern. + (xbfu_cmp0"): Likewise. + (movsi_set_cc_insn): Place the predicable variant first. + (commutative_binary_cmp0_noout): Remove clobber. + (commutative_binary_cmp0): New pattern. + (noncommutative_binary_cmp0): Likewise. + (noncommutative_binary_cmp0_noout): Likewise. + (noncommutative_binary_comparison_result_used): Removed. + (rsub_cmp0): New pattern. + (rsub_cmp0_noout): Likewise. + (extzvsi): Changed, keep only meaningful variants. + (SQH, SEZ): New iterators. + (SQH_postfix): New mode attribute. + (SEZ_prefix): New code attribute. + (xt_cmp0_noout): New instruction pattern. + (xt_cmp0): Likewise. + * config/arc/predicates.md (cc_set_register): Use CC_REG instead + of numerical value. + (noncommutative_operator): Check the availability of barrel + shifter option. + +2018-04-09 Richard Biener + + PR tree-optimization/85284 + * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): + Only use the niter constraining form of simple_iv when the exit + is always executed. + +2018-04-09 Tom de Vries + + PR target/84041 + * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR. + (define_expand "*memory_barrier"): New define_expand. + (define_insn "memory_barrier"): New insn. + +2018-04-09 Andrey Belevantsev + + PR rtl-optimization/80463 + PR rtl-optimization/83972 + PR rtl-optimization/83480 + + * sel-sched-ir.c (has_dependence_note_mem_dep): Take into account the + correct producer for the insn. + (tidy_control_flow): Fixup seqnos in case of debug insns. + +2018-04-09 Andrey Belevantsev + + PR rtl-optimization/83913 + + * sel-sched-ir.c (merge_expr_data): Choose the middle between two + different sched-times when merging exprs. + +2018-04-09 Andrey Belevantsev + + PR rtl-optimization/83962 + + * sel-sched-ir.c (tidy_control_flow): Correct the order in which we call + tidy_fallthru_edge and tidy_control_flow. + +2018-04-09 Andrey Belevantsev + + PR rtl-optimization/83530 + + * sel-sched.c (force_next_insn): New global variable. + (remove_insn_for_debug): When force_next_insn is true, also leave only + next insn in the ready list. + (sel_sched_region): When the region wasn't scheduled, make another pass + over it with force_next_insn set to 1. + +2018-04-08 Monk Chiang + + * config.gcc (nds32le-*-*, nds32be-*-*): Add nds32/nds32_intrinsic.h + into tm_file. + * config/nds32/constants.md (unspec_volatile_element): Add enum values + for interrupt control. + * config/nds32/nds32-intrinsic.c: Implementation of intrinsic + functions for interrupt control. + * config/nds32/nds32-intrinsic.md: Likewise. + * config/nds32/nds32_intrinsic.h: Likewise. + * config/nds32/nds32.h (nds32_builtins): Likewise. + +2018-04-08 Chung-Ju Wu + + * config/nds32/nds32.c (nds32_init_machine_status, + nds32_legitimate_index_p, nds32_legitimate_address_p): Consider + strict_aligned_p field. + (nds32_expand_to_rtl_hook): New function. + (TARGET_EXPAND_TO_RTL_HOOK): Define. + * config/nds32/nds32.h (machine_function): Add strict_aligned_p field. + +2018-04-08 Kito Cheng + Chung-Ju Wu + + * config.gcc (nds32*-*-*): Check that n7 is valid to --with-cpu. + * config/nds32/nds32-n7.md: New file. + * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N7. + * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n7 + pipeline. + * config/nds32/nds32-protos.h: More declarations for n7 pipeline. + * config/nds32/nds32.md (pipeline_model): Add n7. + * config/nds32/nds32.opt (mcpu): Support n7 pipeline cpus. + * config/nds32/pipelines.md: Include n7 settings. + +2018-04-08 Kito Cheng + Chung-Ju Wu + + * config.gcc (nds32*-*-*): Check that e8 is valid to --with-cpu. + * config/nds32/nds32-e8.md: New file. + * config/nds32/nds32-opts.h (nds32-cpu_type): Add CPU_E8. + * config/nds32/nds32-pipelines-auxiliary.c: Implementation for e8 + pipeline. + * config/nds32/nds32-protos.h: More declarations for e8 pipeline. + * config/nds32/nds32.md (pipeline_model): Add e8. + * config/nds32/nds32.opt (mcpu): Support e8 pipeline cpus. + * config/nds32/pipelines.md: Include e8 settings. + +2018-04-08 Kito Cheng + Chung-Ju Wu + + * config.gcc (nds32*-*-*): Check that n6/n8/s8 are valid to --with-cpu. + * config/nds32/nds32-n8.md: New file. + * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N6 and CPU_N8. + * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n8 + pipeline. + * config/nds32/nds32-protos.h: More declarations for n8 pipeline. + * config/nds32/nds32-utils.c: More implementations for n8 pipeline. + * config/nds32/nds32.md (pipeline_model): Add n8. + * config/nds32/nds32.opt (mcpu): Support n8 pipeline cpus. + * config/nds32/pipelines.md: Include n8 settings. + +2018-04-08 Kito Cheng + Chung-Ju Wu + + * config.gcc (nds32*): Add nds32-utils.o into extra_objs. + * config/nds32/nds32-n9-2r1w.md: New file. + * config/nds32/nds32-n9-3r2w.md: New file. + * config/nds32/nds32-opts.h (nds32_cpu_type, nds32_mul_type, + nds32_register_ports): New or modify for cpu n9. + * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n9 + pipeline. + * config/nds32/nds32-protos.h: More declarations for n9 pipeline. + * config/nds32/nds32-utils.c: New file. + * config/nds32/nds32.h (TARGET_PIPELINE_N9, TARGET_PIPELINE_SIMPLE, + TARGET_MUL_SLOW): Define. + * config/nds32/nds32.md (pipeline_model): New attribute. + * config/nds32/nds32.opt (mcpu, mconfig-mul, mconfig-register-ports): + New options that support cpu n9. + * config/nds32/pipelines.md: Include n9 settings. + * config/nds32/t-nds32 (nds32-utils.o): Add dependency. + +2018-04-08 Chung-Ju Wu + + * config/nds32/nds32-md-auxiliary.c (output_cond_branch): Output align + information if necessary. + (output_cond_branch_compare_zero): Likewise. + * config/nds32/nds32.c (nds32_adjust_insn_length): Consider align case. + (nds32_target_alignment): Refine for alignment. + * config/nds32/nds32.h (NDS32_ALIGN_P): Define. + (FUNCTION_BOUNDARY): Modify. + * config/nds32/nds32.md (call_internal, call_value_internal): Consider + align case. + * config/nds32/nds32.opt (malways-align, malign-functions): New. + +2018-04-08 Monk Chiang + + * config/nds32/constants.md (unspec_volatile_element): Add values for + TLB operation and data prefetch. + * config/nds32/nds32-intrinsic.c: Implementation of intrinsic + functions for TLB operation and data prefetch. + * config/nds32/nds32-intrinsic.md: Likewise. + * config/nds32/nds32_intrinsic.h: Likewise. + * config/nds32/nds32.c (nds32_dpref_names): Likewise. + (nds32_print_operand): Likewise. + * config/nds32/nds32.h (nds32_builtins): Likewise. + +2018-04-07 Thomas Koenig + Andrew Pinski + + PR middle-end/82976 + * match.pd: Use constant_boolean_node of correct type instead of + boolean_true_node or boolean_false_node for simplifying + pointer comparisons to zero. + +2018-04-07 Jakub Jelinek + + PR tree-optimization/80021 + * tree.c (verify_type_variant): Make error call in verify_variant_match + translatable and remove final full stop. + +2018-04-07 Chung-Ju Wu + + * config/nds32/constants.md (unspec_volatile_element): Add + UNSPEC_VOLATILE_EH_RETURN. + * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push, + nds32_output_stack_pop): Support dwarf exception handling process. + * config/nds32/nds32-protos.h (nds32_dynamic_chain_address): Declare. + * config/nds32/nds32.c (nds32_init_machine_status): Support dwarf + exception handling process. + (nds32_compute_stack_frame): Likewise. + (nds32_return_addr_rtx): Likewise. + (nds32_initial_elimination_offset): Likewise. + (nds32_expand_prologue): Likewise. + (nds32_expand_epilogue): Likewise. + (nds32_dynamic_chain_address): New function. + * config/nds32/nds32.h (machine_function): Add fields for dwarf + exception handling. + (DYNAMIC_CHAIN_ADDRESS): Define. + (EH_RETURN_DATA_REGNO): Define. + (EH_RETURN_STACKADJ_RTX): Define. + * config/nds32/nds32.md (eh_return, nds32_eh_return): Implement + patterns for dwarf exception handling. + +2018-04-07 Chung-Ju Wu + + * config/nds32/nds32.h: Clean up obsolete macros. + +2018-04-07 Monk Chiang + + * config/nds32/constants.md (unspec_element, unspec_volatile_element): + Add enum values for particular instructions. + * config/nds32/nds32-intrinsic.c: Implementation of expanding + particular intrinsic functions. + * config/nds32/nds32-intrinsic.md: Likewise. + * config/nds32/nds32_intrinsic.h: Likewise. + * config/nds32/nds32.h (nds32_builtins): Likewise. + * config/nds32/nds32.md (type): Add pbsad and pbsada. + (btst, ave): New patterns for particular instructions. + +2018-04-07 Monk Chiang + + * config/nds32/constants.md (unspec_element, unspec_volatile_element): + Add enum values for atomic load/store and memory sync. + * config/nds32/nds32-intrinsic.c: Implementation for atomic load/store + and memory sync. + * config/nds32/nds32-intrinsic.md: Likewise. + * config/nds32/nds32_intrinsic.h: Likewise. + * config/nds32/nds32.h (nds32_builtins): Likewise. + +2018-04-07 Jakub Jelinek + + PR tree-optimization/85257 + * fold-const.c (native_encode_vector): If not all elts could fit + and off is -1, return 0 rather than offset. + * tree-ssa-sccvn.c (vn_reference_lookup_3): Pass + (offseti - offset2) / BITS_PER_UNIT as 4th argument to + native_encode_expr. Verify len * BITS_PER_UNIT >= maxsizei. Don't + adjust buffer in native_interpret_expr call. + +2018-04-07 Monk Chiang + + * config/nds32/constants.md (unspec_volatile_element): Add cache + control enum values. + * config/nds32/nds32-intrinsic.c: Add cache control expand functions. + * config/nds32/nds32-intrinsic.md: Add cache control patterns. + * config/nds32/nds32.c (nds32_cctl_names): New. + (nds32_print_operand): Handle cache control register names. + * config/nds32/nds32.h (nds32_builtins): New enum values. + * config/nds32/nds32_intrinsic.h: Add cache control enum types and + macros. + * config/nds32/nds32.md (type): Add mmu. + * config/nds32/pipelines.md (simple_insn): Add mmu. + +2018-04-07 Chung-Ju Wu + + * config/nds32/nds32.md (type): Remove call. + * config/nds32/pipelines.md (simple_insn): Likewise. + +2018-04-07 Monk Chiang + + * config/nds32/constants.md (unspec_volatile_element): Add + UNSPEC_VOLATILE_FMFCSR, UNSPEC_VOLATILE_FMTCSR and + UNSPEC_VOLATILE_FMFCFG. + * config/nds32/nds32-intrinsic.c (bdesc_noarg): New builtin + description for fmfcfg and fmfcsr. + (bdesc_1arg): Add fmtcsr. + (bdesc_2arg): Add fcpynss, fcpyss, fcpynsd and fcpysd. + (nds32_expand_builtin_impl): Deal with FPU intrinsic functions. + * config/nds32/nds32-intrinsic.md (unspec_fcpynsd, unspec_fcpysd, + unspec_fcpynss, unspec_fcpysd, unspec_fcpyss, unspec_fmfcsr, + unspec_fmfcfg): New patterns. + * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FMFCFG, + NDS32_BUILTIN_FMFCSR, NDS32_BUILTIN_FMTCSR, NDS32_BUILTIN_FCPYNSS, + NDS32_BUILTIN_FCPYSS,NDS32_BUILTIN_FCPYNSD and NDS32_BUILTIN_FCPYSD. + * config/nds32/nds32_intrinsic.h (__nds32__fcpynsd, __nds32__fcpynss, + __nds32__fcpysd, __nds32__fcpyss, __nds32__fmfcsr, __nds32__fmtcsr, + __nds32__fmfcfg): Define. + +2018-04-07 Monk Chiang + + * config/nds32/nds32.c (nds32_intrinsic_register_names): Add more + intrinsic register names. + * config/nds32/nds32_intrinsic.h (nds32_intrinsic_registers): Add more + intrinsic register enum values and macros. + +2018-04-07 Chung-Ju Wu + + * config/nds32/nds32.c (nds32_legitimate_index_p): Modify condition + for load/store addressing form. + (nds32_print_operand_address): Likewise. + +2018-04-06 Eric Botcazou + + PR target/85196 + * config/sparc/sparc.c (sparc_expand_move): Deal with symbolic operands + based on LABEL_REF. Remove useless assertion. + (pic_address_needs_scratch): Fix formatting. + (sparc_legitimize_pic_address): Minor tweaks. + (sparc_delegitimize_address): Adjust assertion accordingly. + * config/sparc/sparc.md (movsi_pic_label_ref): Change label_ref_operand + into symbolic_operand. + (movsi_high_pic_label_ref): Likewise. + (movsi_lo_sum_pic_label_ref): Likewise. + (movdi_pic_label_ref): Likewise. + (movdi_high_pic_label_ref): Likewise. + (movdi_lo_sum_pic_label_ref): Likewise. + +2018-04-06 Amaan Cheval + + * config.gcc (x86_64-*-rtems*): Add rtems.h to tm_file for + custom LIB_SPEC setup. + +2018-04-06 Ruslan Bukin + Kito Cheng + + * config.gcc (riscv*-*-freebsd*): Add RISC-V FreeBSD support. + * config/riscv/freebsd.h: New. + +2018-04-06 Chung-Ju Wu + + * config/nds32/nds32.c (nds32_adjust_insn_length): Refine. + * config/nds32/nds32.h (ADJUST_INSN_LENGTH): Change the location in + file. + +2018-04-06 Chung-Ju Wu + Kito Cheng + + * config/nds32/nds32-md-auxiliary.c (nds32_output_return, + nds32_output_call, nds32_symbol_binds_local_p): New functions. + * config/nds32/nds32-protos.h (nds32_output_call, + nds32_output_return): Declare. + * config/nds32/nds32.md: Refine all the call and return patterns. + +2018-04-06 Jakub Jelinek + + PR debug/85252 + * dwarf2out.c (rtl_for_decl_init): For STRING_CST initializer only + build CONST_STRING if TYPE_MAX_VALUE is non-NULL and is INTEGER_CST. + + PR rtl-optimization/84872 + * cfgloopmanip.c (create_preheader): Use make_forwarder_block even if + nentry == 1 when CP_FALLTHRU_PREHEADERS and single_entry is + EDGE_CROSSING edge. + +2018-04-06 Tamar Christina + + * expr.c (copy_blkmode_to_reg): Revert 254862. + * doc/sourcebuild.texi (word_mode_no_slow_unalign): Likewise. + +2018-04-06 Richard Biener + + PR middle-end/85244 + * tree-dfa.c (get_ref_base_and_extent): Reset seen_variable_array_ref + after seeing a component reference with an adjacent field. Treat + refs to arrays at struct end of external decls similar to + refs to unconstrained commons. + +2018-04-06 Jakub Jelinek + + PR sanitizer/85213 + * fold-const.c (twoval_comparison_p): Remove SAVE_P argument and don't + look through SAVE_EXPRs with non-side-effects argument. Adjust + recursive calls. + (fold_comparison): Adjust twoval_comparison_p caller, don't handle + save_p here. + +2018-04-06 Richard Biener + + PR middle-end/85180 + * alias.c (find_base_term): New wrapper around find_base_term + unwinding CSELIB_VAL_PTR changes. + (find_base_term): Do not restore CSELIB_VAL_PTR during the + recursion. + +2018-04-06 Andreas Krebbel + + * config/s390/s390.c (s390_z10_optimize_cmp): Expand dedicated NOP + instructions. + * config/s390/s390.md (UNSPECV_NOP_LR_0, UNSPECV_NOP_LR_1): New + constant definitions. + ("nop"): lr 0,0 -> nopr r0 + ("nop_lr0", "nop_lr1"): New insn definitions. + +2018-04-06 Chung-Ju Wu + + * config/nds32/nds32.md (*stack_push, *stack_pop): Use + NDS32_V3PUSH_AVAILABLE_P macro. + +2018-04-06 Monk Chiang + Chung-Ju Wu + + * config.gcc (nds32*-*-*): Add v2j v3f v3s checking. + (nds32*-*-*): Add float and fpu_config into supported_defaults. + * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS): + Include TARGET_DEFAULT_FPU_ISA and TARGET_DEFAULT_FPU_FMA. + * config/nds32/constants.md (unspec_element): Add UNSPEC_COPYSIGN, + UNSPEC_FCPYNSD, UNSPEC_FCPYNSS, UNSPEC_FCPYSD and UNSPEC_FCPYSS. + * config/nds32/constraints.md: New constraints and checking for hard + float configuration. + * config/nds32/iterators.md: New mode iterator and attribute for hard + float configuration. + * config/nds32/nds32-doubleword.md: Use hard float alternatives and + patterns. + * config/nds32/nds32-fpu.md: New file. + * config/nds32/nds32-md-auxiliary.c: New functions and checkings to + deal with hard float code generation. + * config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3F and + ARCH_V3S. + (abi_type, float_reg_number): New enum type. + * config/nds32/nds32-predicates.c: New predicates for hard float. + * config/nds32/nds32-protos.h: Declare functions for hard float. + * config/nds32/nds32.c: Implementation for hard float configuration. + * config/nds32/nds32.h: Definitions for hard float configuration. + * config/nds32/nds32.md: Include hard float machine description and + modify patterns for hard float configuration. + * config/nds32/nds32.opt: New options for hard float configuration. + * config/nds32/predicates.md: New predicates for hard float + configuration. + +2018-04-06 Kuan-Lin Chen + + * common/config/nds32/nds32-common.c + (nds32_option_optimization_table): Enable -mreleax-hint by default. + +2018-04-05 Jakub Jelinek + + PR middle-end/85195 + * match.pd (BIT_FIELD_REF CONSTRUCTOR@0 @1 @2): Use view_convert around + CONSTRUCTOR_ELT (ctor, ...)->value. + +2018-04-05 Uros Bizjak + + PR target/85193 + * config/i386/i386.md (define_attr "memory"): Handle rotate1 type. + +2018-04-05 Tom de Vries + + PR target/85204 + * config/nvptx/nvptx.c (nvptx_single): Fix neutering of bb with only + cond jump. + +2018-04-05 Shiva Chen + Kito Cheng + + * config/nds32/constraints.md (U33): Fine-tune checking condition. + * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Ditto. + * config/nds32/nds32.h (nds32_16bit_address_type): Add + ADDRESS_POST_MODIFY_LO_REG_IMM3U. + +2018-04-05 Shiva Chen + Kito Cheng + + * config/nds32/constraints.md (Ufe): New memory constraint. + * config/nds32/nds32-md-auxiliary.c (nds32_mem_format, + nds32_output_16bit_load): Consider r8 register for lwi45.fe format. + * config/nds32/nds32.c (nds32_print_operand): Output lwi45.fe + operands. + * config/nds32/nds32.h (nds32_16bit_address_type): Add ADDRESS_R8_IMM7U. + * config/nds32/nds32.md (*mov): Adjust pattern. + +2018-04-05 Chung-Ju Wu + + * config/nds32/nds32.md: Use optimize_size in the condition for + alu-shift instructions. + +2018-04-05 Chung-Ju Wu + + * config/nds32/nds32.md (divsi4, udivsi4): New patterns. + +2018-04-05 Chung-Ju Wu + + * config/nds32/nds32.md (negsi2): Refine pattern. + +2018-04-05 Kito Cheng + Chung-Ju Wu + + * config/nds32/iterators.md (shift_rotate): New code iterator. + (shift): New code attribute. + * config/nds32/nds32-md-auxiliary.c (nds32_expand_constant): New. + * config/nds32/nds32-protos.h (nds32_expand_constant): Declare. + * config/nds32/nds32.c (nds32_print_operand): Deal with more cases. + * config/nds32/nds32.md (addsi3, *add_srli): Refine implementation for + bit-wise operations. + (andsi3, *andsi3): Ditto. + (iorsi3, *iorsi3, *or_slli, *or_srli): Ditto. + (xorsi3, *xorsi3, *xor_slli, *xor_srli): Ditto. + (si3, *ashlsi3, *ashrsi3, *lshrsi3, *rotrsi3): Ditto. + * config/nds32/predicates.md (nds32_rimm5u_operand, nds32_and_operand, + nds32_ior_operand, nds32_xor_operand): New predicates. + +2018-04-05 Chung-Ju Wu + + * config/nds32/nds32.md (add3, sub3): Rename to ... + (addsi3, subsi3): ... this. + +2018-04-05 Chung-Ju Wu + + * config/nds32/nds32.md (*sub_srli, *and_slli): Fine-tune predicator. + +2018-04-05 Chung-Ju Wu + + * config/nds32/nds32.md: Adjust indention. + +2018-04-05 Kito Cheng + + * config/nds32/nds32.md (feature): New attribute. + +2018-04-05 Chung-Ju Wu + + * config/nds32/nds32.md (subtype): New attribute. + +2018-04-04 Thomas Preud'homme + + PR target/85203 + * config/arm/arm-builtins.c (arm_expand_builtin): Change + expansion to perform a bitwise AND of the argument followed by a + boolean negation of the result. + +2018-04-04 Peter Bergner + + PR rtl-optimization/84878 + * ddg.c (add_cross_iteration_register_deps): Use DF_REF_BB to determine + the basic block. Assert the use reference is not artificial and that + it has an associated insn. + +2018-04-04 Michael Matz + + * builtins.c (compute_objsize): Pass correct operand + to array_at_struct_end_p. + +2018-04-04 Richard Biener + + PR lto/85176 + * dwarf2out.c (dwarf2out_register_external_die): Peel namespaces + from contexts for DINFO_LEVEL_TERSE and below. + +2018-04-04 Kito Cheng + + * config/nds32/nds32-doubleword.md (move_): Require + resiter_operand condition. + * config/nds32/nds32.md (*move): Ditto. + +2018-04-04 Kito Cheng + Monk Chiang + + * config/nds32/nds32.md (movmisalign): New pattern. + +2018-04-04 Chung-Ju Wu + + * config/nds32/nds32.md (movqi, movhi): Merge into mov. + +2018-04-04 Chung-Ju Wu + Kito Cheng + + * config/nds32/nds32-md-auxiliary.c (nds32_inverse_cond_code, + nds32_cond_code_str, output_cond_branch, + output_cond_branch_compare_zero, nds32_expand_cbranch, + nds32_expand_cstore, nds32_expand_movcc, + nds32_output_cbranchsi4_equality_zero, + nds32_output_cbranchsi4_equality_reg, + nds32_output_cbranchsi4_equality_reg_or_const_int, + nds32_output_cbranchsi4_greater_less_zero: New functions. + * config/nds32/nds32-protos.h (nds32_expand_cbranch, + nds32_expand_cstore, nds32_expand_movcc, + nds32_output_cbranchsi4_equality_zero, + nds32_output_cbranchsi4_equality_reg, + nds32_output_cbranchsi4_equality_reg_or_const_int, + nds32_output_cbranchsi4_greater_less_zero): Declare. + * config/nds32/predicates.md (nds32_movecc_comparison_operator, + nds32_rimm11s_operand): New predicates. + * config/nds32/nds32.h (nds32_expand_result_type): New enum type. + * config/nds32/nds32.md: Rewrite all the branch and conditional move + patterns. + +2018-04-04 Kito Cheng + + * config/nds32/nds32-doubleword.md: Refine all the instruction type. + * config/nds32/nds32.md: Ditto. + * config/nds32/pipelines.md: Ditto. + +2018-04-04 Richard Biener + + PR tree-optimization/85168 + * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Avoid + propagating abnormals. + +2018-04-04 Chung-Ju Wu + + * config/nds32/nds32.md (enabled): Use yes/no for this attribute. + +2018-04-04 Chung-Ju Wu + Kito Cheng + + * config/nds32/nds32-md-auxiliary.c (nds32_long_call_p): New function. + * config/nds32/nds32-protos.h (nds32_long_call_p): Declare. + * config/nds32/nds32.c (nds32_function_ok_for_sibcall): New function. + (TARGET_FUNCTION_OK_FOR_SIBCALL): Define. + * config/nds32/nds32.md (sibcall_internal): New. + (sibcall_register): Remove. + (sibcall_immediate): Remove. + (sibcall_value_internal): New. + (sibcall_value_register): Remove. + (sibcall_value_immediate): Remove. + * config/nds32/predicates.md (nds32_general_register_operand): New. + (nds32_call_address_operand): New. + +2018-04-03 Jakub Jelinek + + PR rtl-optimization/85167 + * shrink-wrap.c (move_insn_for_shrink_wrap): Don't set bb_uses and + bb_defs if *split_p, instead preinitialize it to NULL. + + PR tree-optimization/85156 + * builtins.c (fold_builtin_expect): Use save_expr on arg1 to avoid + evaluating the argument multiple times. + +2018-04-03 Bill Schmidt + + * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Use __vector rather + than vector. + (_mm_cvtpd_ps): Likewise. + (_mm_cvttpd_epi32): Likewise. + * config/rs6000/mmintrin.h (_mm_unpacklo_pi8): Likewise. + * config/rs6000/xmmintrin.h: For strict-ANSI C++ or C11, undefine + vector, pixel, and bool following altivec.h include. + +2018-04-03 Martin Sebor + + * doc/extend.texi (Common Function Attributes): Clarify. + (const attribute): Likewise. + (pure attribute): Likewise. + +2018-04-03 Jakub Jelinek + + PR target/85169 + * config/i386/i386.c (ix86_expand_vector_set): Use + HOST_WIDE_INT_1U << elt instead of 1 << elt. Formatting fix. + +2018-04-03 Uros Bizjak + + * config/i386/i386.c (emit_i387_cw_initialization): Always use logic + instructions when changing rounding bits to preserve precision bits + in the x87 control word. + +2018-04-03 Martin Liska + + PR tree-optimization/82491 + * rtl.h (strip_offset_and_add): Replace += suboffset with + poly_uint64 () + suboffset. + +2018-03-29 Martin Liska + Martin Jambor + + PR ipa/84947 + * ipa-cp.c (propagate_bits_across_jump_function): Bail out if + param_type is not an integral or pointer type. + +2018-04-03 Richard Biener + + * sese.h (recompute_all_dominators): Remove. + +2018-04-02 Martin Sebor + + * doc/invoke.texi (-Wrestrict): Fix typos. + +2018-04-02 Jim Wilson + + * config/riscv/riscv.h (SHIFT_COUNT_TRUNCATED): Set to zero. + * config/riscv/riscv.md (si3): Use QImode shift count. + (di3, si3_extend): Likewise. + (si3_mask, si3_mask_1): New. + (di3_mask, di3_mask_1): New. + (si3_extend_mask, si3_extend_mask_1): New. + (lshrsi3_zero_extend_1): Use VOIDmode shift count. + * config/riscv/sync.md (atomic_test_and_set): Emit QImode shift count. + +2018-04-02 Gerald Pfeifer + + * doc/cpp.texi (Variadic Macros): Fix line continuation in an + example. + +2018-04-02 Chung-Ju Wu + + * config/nds32/nds32.c (TARGET_CANONICALIZE_COMPARISON): Define. + (nds32_canonicalize_comparison): New function. + +2018-04-01 Chung-Ju Wu + Kito Cheng + Kuan-Lin Chen + + * config.gcc (nds32): Add nds32-relax-opt.o into extra_objs. + * config/nds32/constants.md (unspec_volatile_element): Add + UNSPEC_VOLATILE_RELAX_GROUP. + * config/nds32/nds32-relax-opt.c: New file. + * config/nds32/nds32-predicates.c + (nds32_symbol_load_store_p): New function. + * config/nds32/nds32-protos.h + (nds32_symbol_load_store_p): Declare function. + (make_pass_nds32_relax_opt): Declare new rtl pass function. + * config/nds32/nds32.c + (nds32_register_pass): New function to register pass. + (nds32_register_passes): New function to register passes. + * config/nds32/nds32.md (relax_group): New pattern. + * config/nds32/nds32.opt (mrelax-hint): New option. + * config/nds32/t-nds32 (nds32-relax-opt.o): New dependency. + +2018-04-01 Kito Cheng + + * config/nds32/t-nds32: Modify files dependency. + +2018-04-01 Chung-Ju Wu + + * config/nds32/nds32.h (FUNCTION_PROFILER): Output newline character. + (PROFILE_HOOK): Define its implementation. + +2018-04-01 Chung-Ju Wu + + * config/nds32/nds32.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use unsigned int + type and 32-bit size. + +2018-04-01 Jakub Jelinek + + PR middle-end/85090 + * config/i386/sse.md (V): Add V64QI and V32HI for TARGET_AVX512F. + (V_128_256): New mode iterator. + (*avx512dq_vextract64x2_1 splitter): New define_split. + (*avx512f_vextract32x4_1 splitter): Likewise. + (xop_pcmov_): Use V_128_256 mode iterator instead + of V. + * config/i386/i386.c (ix86_expand_vector_set): Improve V32HImode and + V64QImode expansion for !TARGET_AVX512BW && TARGET_AVX512F. + +2018-03-31 Segher Boessenkool + + PR target/83315 + * config/rs6000/xmmintrin.h (_mm_set_ps, _mm_max_ps): Handle (quiet) + NaN inputs correctly. + +2018-03-30 Peter Bergner + + PR target/80546 + * config/rs6000/vsx.md (??r): New mode attribute. + (*vsx_mov_64bit): Use it. + (*vsx_mov_32bit): Likewise. + +2018-03-30 Martin Sebor + + PR tree-optimization/84818 + * builtins.c (check_access): Use warning_n. + +2018-03-30 Aaron Sawdey + + PR target/83822 + * config/rs6000/rs6000-string.c (expand_compare_loop): Fix redundant + condition. + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Fix redundant + condition. + +2018-03-30 Julia Koval + + PR target/84413 + * x86-tune.def (movx, partial_reg_dependency): Enable for + m_SKYLAKE_AVX512. + +2018-03-29 Vladimir Makarov + + PR inline-asm/84985 + * lra-constraints.c (process_alt_operands): Move setting + this_alternative_matches below. + +2018-03-29 Martin Liska + + PR lto/84995. + * doc/invoke.texi: Document how LTO works with debug info. + Describe auto-load support of binutils. Mention 'x86-64' + as valid option value of -march option. + +2018-03-29 Jakub Jelinek + + * config/i386/sse.md (_blendm): Use . + + PR c/85094 + * fold-const.c (operand_equal_p): Handle DEBUG_BEGIN_STMT. + For STATEMENT_LIST, pass down OEP_LEXICOGRAPHIC and maybe + OEP_NO_HASH_CHECK for recursive call, to avoid exponential + checking. + +2018-03-28 Peter Bergner + + PR target/84912 + * config/rs6000/rs6000.h (RS6000_BTM_POWERPC64): New define. + (RS6000_BTM_COMMON): Add RS6000_BTM_POWERPC64. + * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add support + for RS6000_BTM_POWERPC64. + (rs6000_invalid_builtin): Add handling for RS6000_BTM_POWERPC64 + (rs6000_builtin_mask_names): Add RS6000_BTM_POWERPC64. + * config/rs6000/rs6000-builtin.def (BU_P7_POWERPC64_MISC_2): New macro + definition. + (DIVDE): Use it. + (DIVDEU): Likewise. + +2018-03-28 Carl Love + + Revert + 2017-09-27 Carl Love + + * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro. + (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins. + * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the + fctiw instruction. + +2018-03-28 Bill Schmidt + + * config/rs6000/xmmintrin.h (_mm_max_pi16): Use __vector __bool + instead of __vector bool. + (_mm_max_pu8): Likewise. + (_mm_min_pi16): Likewise. + +2018-03-28 Peter Bergner + + PR target/84912 + * config/rs6000/rs6000-builtin.def (DIVWEO): Delete macro expansion. + (DIVWEUO): Likewise. + (DIVDEO): Likewise. + (DIVDEUO): Likewise. + * config/rs6000/rs6000.c (builtin_function_type): Remove support for + DIVWEUO and DIVDEUO. + * config/rs6000/rs6000.md (UNSPEC_DIVEO, UNSPEC_DIVEUO): Delete unspecs. + (UNSPEC_DIV_EXTEND): Remove deleted unspecs. + (div_extend): Likewise. + * doc/extend.texi (__builtin_divweo): Remove documentation for deleted + builtin function. + (__builtin_divweuo): Likewise. + (__builtin_divdeo): Likewise. + (__builtin_divdeuo): Likewise. + +2018-03-28 Jakub Jelinek + + PR target/85095 + * config/i386/i386.md (*add3_carry_0, *addsi3_carry_zext_0, + *sub3_carry_0, *subsi3_carry_zext_0): New patterns. + + PR tree-optimization/82004 + * gimple-match-head.c (optimize_pow_to_exp): New function. + * match.pd (pow(C,x) -> exp(log(C)*x)): Wrap with #if GIMPLE. + Don't fold to exp if optimize_pow_to_exp is false. + +2018-03-28 Martin Liska + + PR other/84819 + * calls.c (initialize_argument_information): Fix trailing space. + * common.opt: Fix typo and provide better explanation for + -fsanitize-coverage option. + * config/i386/i386.opt: Fix typo. + +2018-03-28 Jakub Jelinek + Martin Liska + + PR sanitizer/85081 + * gimplify.c (asan_poison_variable): Don't do the check for + gimplify_omp_ctxp here. + (gimplify_decl_expr): Do it here. + (gimplify_target_expr): Likewise. + +2018-03-28 Martin Liska + + PR target/84988 + * config/i386/i386.c (ix86_function_arg_advance): Do not call + chkp_type_bounds_count if MPX is not enabled. + +2018-03-27 Chung-Ju Wu + + * config/nds32/nds32.h (BRANCH_COST): Adjust cost. + +2018-03-27 Michael Meissner + + PR target/84914 + * config/rs6000/rs6000.c (create_complex_muldiv): New helper + function to create the function decl for complex long double + multiply and divide for -mabi=ieeelongdouble. + (init_float128_ieee): Call it. + +2018-03-27 H.J. Lu + + PR target/85044 + * config/i386/i386.c (ix86_trampoline_init): Insert ENDBR for + -fcf-protection=branch -mibt. + * config/i386/i386.h (TRAMPOLINE_SIZE): Increased by 4 bytes. + +2018-03-27 Ramana Radhakrishnan + + PR target/81863 + * config/arm/arm.c (arm_valid_symbolic_address): Handle + arm_word_relocations. + +2018-03-27 Cesar Philippidis + + PR target/85056 + * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Add '[]' to + extern array declarations. + +2018-03-27 Richard Biener + + PR middle-end/84067 + * match.pd ((A * C) +- (B * C) -> (A+-B) * C): Guard with + explicit single_use checks. + +2018-03-27 Richard Biener + + PR tree-optimization/85082 + * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_for_pieces): + Valueize the VUSE. + +2018-03-27 Ramana Radhakrishnan + + * config.gcc (aarch64*-*-linux*): New TARGET_DEFAULT_ASYNC_UNWIND_TABLES + * common/config/aarch64/aarch64-common.c (aarch64_optimization_table[]): + Turn on fasynchronous-unwind-tables and funwind-tables. + +2018-03-26 Uros Bizjak + + PR target/85073 + * config/i386/i386.md (*bmi_blsr__cmp): New insn pattern. + (*bmi_blsr__ccz): Ditto. + +2018-03-26 Tom de Vries + + PR tree-optimization/85063 + * omp-general.c (offloading_function_p): New function. Factor out + of ... + * omp-offload.c (pass_omp_target_link::gate): ... here. + * omp-general.h (offloading_function_p): Declare. + * tree-switch-conversion.c (build_one_array): Mark CSWTCH.x variable + with attribute omp declare target for offloading functions. + +2018-03-24 Richard Sandiford + + PR tree-optimization/84005 + * tree-data-ref.h (get_base_for_alignment): Declare. + * tree-data-ref.c (get_base_for_alignment_1): New function. + (get_base_for_alignment): Likewise. + * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use + get_base_for_alignment to find a suitable base object, instead + of always using drb->base_address. + +2018-03-23 Jakub Jelinek + + PR inline-asm/85022 + * emit-rtl.c (init_emit_regs): Indicate that VOIDmode MEMs don't have + known size by default. + +2018-03-23 Vladimir Makarov + + PR inline-asm/85030 + * lra-constraints.c (process_alt_operands): Don't match BLKmode + and non BLKmode operands. + +2018-03-23 Kyrylo Tkachov + + PR target/85026 + * config/arm/arm.md (unaligned_loadhis): Remove first alternative. + Clean up attributes. + +2018-03-23 Richard Biener + + PR debug/85020 + * dwarf2out.c (rtl_for_decl_location): Do not generate RTL early when + we are going to emit early debug for LTO. + +2018-03-23 Jakub Jelinek + + PR inline-asm/85034 + * function.c (match_asm_constraints_1): Don't optimize if input + doesn't satisfy general_operand predicate for output's mode. + + PR inline-asm/85022 + * alias.c (write_dependence_p): Don't require for x_canonicalized + non-VOIDmode if x has VOIDmode. + + PR sanitizer/85029 + * sanopt.c (maybe_optimize_ubsan_ptr_ifn): If DECL_REGISTER (base), + just don't try to optimize it rather than assert it never happens. + +2018-03-22 Kelvin Nilsen + + * config/rs6000/rs6000-builtin.def: Remove various BU_ALTIVEC_X + macro expansions for definition of ST_INTERNAL_ and + LD_INTERNAL_ builtins. + * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): + Remove prototype. + * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Delete this + function. + (altivec_expand_st_builtin): Likewise. + (altivec_expand_builtin): Remove calls to deleted functions. + (rs6000_address_for_altivec): Delete this function. + * config/rs6000/vector.md: Remove expands for + vector_altivec_load_ and vector_altivec_store_. + +2018-03-22 Sudakshina Das + + PR target/84826 + * config/arm/arm.h (machine_function): Add static_chain_stack_bytes. + * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Avoid + re-computing once computed. + (arm_expand_prologue): Compute machine->static_chain_stack_bytes. + (arm_init_machine_status): Initialize + machine->static_chain_stack_bytes. + +2018-03-22 Kelvin Nilsen + + PR target/84760 + * doc/extend.texi: Add four new prototypes for vec_ld. + * config/rs6000/rs6000-builtin.def (LVX_V1TI): Reorder symbol + definitions for more logical presentation. + * config/rs6000/rs6000-c.c: (altivec_overloaded_builtins): Add + entries for V1TI variants of __builtin_altivec_ld builtin. + * config/rs6000/rs6000.c: (altivec_expand_lv_builtin): Add test and + handling of V1TI variant of LVX icode pattern. + (altivec_expand_builtin): Add case for ALTIVEC_BUILTIN_LVX_V1TI. + (rs6000_gimple_fold_builtin): Likewise. + (altivec_init_builtins): Add code to define + __builtin_altivec_lvx_v1ti function. + +2018-03-22 Jakub Jelinek + + PR inline-asm/84941 + * function.c (match_asm_constraints_1): Don't do the optimization + if input isn't a REG, SUBREG, MEM or constant. + +2018-03-22 Tom de Vries + + PR tree-optimization/84956 + * tree-ssa-tail-merge.c (find_clusters_1): Skip bbs with + bb_has_abnormal_pred. + +2018-03-22 Jakub Jelinek + + PR sanitizer/85018 + * dwarf2asm.c (dw2_output_indirect_constant_1): Set + DECL_INITIAL (decl) to decl at the end. + * varasm.c (use_blocks_for_decl_p): Revert the 2018-03-20 change, + adjust the comment. + +2018-03-21 Joseph Myers + + * doc/extend.texi (__builtin_tgmath): Document when complex + integer types are treated as _Complex _Float64. + +2018-03-21 Tom de Vries + + * doc/extend.texi (__builtin_extend_pointer): Remove pasto. + +2018-03-21 Jakub Jelinek + + PR tree-optimization/84960 + * tree-cfg.c (remove_bb): Don't move forced labels into bb->prev_bb + if it is ENTRY block, move them into single succ of ENTRY in that case. + +2018-03-21 Richard Sandiford + + PR tree-optimization/84811 + * poly-int.h (poly_span_traits): Remove the T3 parameter and + promote HOST_WIDE_INT T2 - T1 results to unsigned HOST_WIDE_INT. + (maybe_in_range_p, known_in_range_p, ranges_known_overlap_p): + (known_subrange_p): Update accordingly. Cast each value involved + in the size comparison, rather than casting the result of the + subtraction. + +2018-03-21 Jakub Jelinek + + PR tree-optimization/84982 + * gimple-ssa-store-merging.c (invert_op): Handle boolean inversion + by flipping the least significant bit rather than all bits from + bitpos to bitpos + bitsize - 1. + +2018-03-21 Nathan Sidwell + + * doc/extend.texi (Deprecated Features): Remove mention of + long-deleted deprecations. + +2018-03-21 Rainer Orth + + PR jit/84288 + * configure.ac (gcc_cv_ld_soname) <*-*-solaris2*>: Set. + * configure: Regenerate. + +2018-03-21 Tom de Vries + + PR tree-optimization/83126 + * tree-parloops.c (num_phis): New function. + (gen_parallel_loop): Detect and handle canonicalize_loop_ivs failure. + +2018-03-21 Nathan Sidwell + + * doc/extend.texi (Deprecated Features): Update deprecated flags, + mention anon-struct/union members and trailing attributes. + +2018-03-21 Bin Cheng + + PR tree-optimization/84969 + * tree-loop-distribution.c (fuse_memset_builtins): Don't reorder + builtin memset partitions if they set different rhs values. + +2018-03-21 Jakub Jelinek + + PR rtl-optimization/84989 + * simplify-rtx.c (simplify_unary_operation_1): Don't try to simplify + VEC_DUPLICATE with scalar result mode. + +2018-03-21 Martin Liska + + PR ipa/84963 + * ipa-icf.c (sem_item_optimizer::fixup_points_to_sets): Remove + not intended return statement. + +2018-03-21 Martin Liska + + PR target/84988 + * tree-chkp.c (CHKP_ARRAY_MAX_CHECK_STEPS): Define a new macro. + (chkp_find_bound_slots_1): Limit number of iterations. + +2018-03-20 David H. Gutteridge + + PR target/84838 + * Minor grammar fixes for x86 options. + +2018-03-20 Jakub Jelinek + + PR debug/84875 + * dce.c (delete_unmarked_insns): Don't remove frame related noop moves + holding REG_CFA_RESTORE notes, instead turn them into a USE. + +2018-03-20 Peter Bergner + + PR target/83789 + * config/rs6000/altivec.md (altivec_lvx__2op): Delete define_insn. + (altivec_lvx__1op): Likewise. + (altivec_stvx__2op): Likewise. + (altivec_stvx__1op): Likewise. + (altivec_lvx_): New define_expand. + (altivec_stvx_): Likewise. + (altivec_lvx__2op_): New define_insn. + (altivec_lvx__1op_): Likewise. + (altivec_stvx__2op_): Likewise. + (altivec_stvx__1op_): Likewise. + * config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Use new expanders. + (rs6000_gen_lvx): Likewise. + * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Likewise. + (altivec_expand_stv_builtin): Likewise. + (altivec_expand_builtin): Likewise. + * config/rs6000/vector.md: Likewise. + +2018-03-20 Kyrylo Tkachov + + PR target/82518 + * config/arm/arm.c (arm_array_mode_supported_p): Return false for + BYTES_BIG_ENDIAN. + +2018-03-20 Richard Biener + + PR target/84986 + * config/i386/i386.c (ix86_add_stmt_cost): Only cost + sign-conversions as zero, fall back to standard scalar_stmt + cost for the rest. + +2018-03-20 Martin Liska + + PR ipa/84825 + * predict.c (rebuild_frequencies): Handle case when we have + PROFILE_ABSENT, but flag_guess_branch_prob is false. + +2018-03-20 Jakub Jelinek + + PR target/84990 + * dwarf2asm.c (dw2_output_indirect_constant_1): Temporarily turn off + flag_section_anchors. + * varasm.c (use_blocks_for_decl_p): Remove hack for + dw2_force_const_mem. + + PR target/84845 + * config/aarch64/aarch64.md (*aarch64_reg_3_neg_mask2): Rename + to ... + (*aarch64__reg_3_neg_mask2): ... this. If pseudos can't + be created, use lowpart_subreg of operands[0] rather than operands[0] + itself. + (*aarch64_reg_3_minus_mask): Rename to ... + (*aarch64_ashl_reg_3_minus_mask): ... this. + (*aarch64__reg_di3_mask2): Use const_int_operand predicate + and n constraint instead of aarch64_shift_imm_di and Usd. + (*aarch64_reg__minus3): Rename to ... + (*aarch64__reg_minus3): ... this. + +2018-03-20 Sudakshina Das + + PR target/82989 + * config/arm/neon.md (ashldi3_neon): Update ?s for constraints + to favor GPR over NEON registers. + (di3_neon): Likewise. + +2018-03-20 Tom de Vries + + PR target/84952 + * config/nvptx/nvptx.c (nvptx_single): Don't neuter bar.sync. + (nvptx_process_pars): Emit bar.sync asap and alap. + +2018-03-20 Tom de Vries + + PR target/84954 + * config/nvptx/nvptx.c (prevent_branch_around_nothing): Also update + seen_label if seen_label is already set. + +2018-03-20 Jakub Jelinek + + PR target/84945 + * config/i386/i386.c (fold_builtin_cpu): For features above 31 + use __cpu_features2 variable instead of __cpu_model.__cpu_features[0]. + Use 1U instead of 1. Formatting fixes. + + PR c/84953 + * builtins.c (fold_builtin_strpbrk): For strpbrk(x, "") use type + instead of TREE_TYPE (s1) for the return value. + +2018-03-19 Jakub Jelinek + + PR tree-optimization/84946 + * gimple-ssa-store-merging.c (mem_valid_for_store_merging): Compute + bitsize + bitsize in poly_uint64 rather than poly_int64. + + PR sanitizer/78651 + * dwarf2asm.c: Include fold-const.c. + (dw2_output_indirect_constant_1): Set DECL_INITIAL (decl) to ADDR_EXPR + of decl rather than decl itself. + + PR rtl-optimization/84643 + * memmodel.h (enum memmodel): Add MEMMODEL_MAX enumerator. + +2018-03-19 Maxim Ostapenko + + PR sanitizer/78651 + * dwarf2asm.c (dw2_output_indirect_constant_1): Disable ASan before + calling assemble_variable. + +2018-03-19 Sudakshina Das + + PR target/81647 + * config/aarch64/aarch64-simd.md (vec_cmp): Modify + instructions for UNLT, UNLE, UNGT, UNGE, UNEQ, UNORDERED and ORDERED. + +2018-03-19 Jim Wilson + + PR bootstrap/84856 + * config/riscv/riscv.c (riscv_function_arg_boundary): Use + PREFERRED_STACK_BOUNDARY instead of STACK_BOUNDARY. + (riscv_first_stack_step): Likewise. + (riscv_option_override): Use STACK_BOUNDARY instead of + MIN_STACK_BOUNDARY. + * config/riscv/riscv.h (STACK_BOUNDARY): Renamed from + MIN_STACK_BOUNDARY. + (BIGGEST_ALIGNMENT): Set to 128. + (PREFERRED_STACK_BOUNDARY): Renamed from STACK_BOUNDARY. + (RISCV_STACK_ALIGN): Use PREFERRED_STACK_BOUNDARY instead of + STACK_BOUNDARY. + +2018-03-19 Richard Biener + + PR tree-optimization/84933 + * tree-vrp.c (set_and_canonicalize_value_range): Treat out-of-bound + values as -INF/INF when canonicalizing an ANTI_RANGE to a RANGE. + +2018-03-19 Richard Biener + + PR tree-optimization/84859 + * tree-ssa-phiopt.c (single_trailing_store_in_bb): New function. + (cond_if_else_store_replacement): Perform sinking operation on + single-store BBs regardless of MAX_STORES_TO_SINK setting. + Generalize what a BB with a single eligible store is. + +2018-03-19 Richard Biener + + PR tree-optimization/84929 + * tree-data-ref.c (analyze_siv_subscript_cst_affine): Guard + chrec_is_positive against non-chrec arg. + +2018-03-19 Tamar Christina + + PR target/84711 + * config/arm/arm.c (arm_can_change_mode_class): revert r258554. + +2018-03-18 Martin Liska + + PR rtl-optimization/84635 + * regrename.c (build_def_use): Use matches_mode only when + matches >= 0. + +2018-03-18 Richard Sandiford + + PR tree-optimization/84913 + * tree-vect-loop.c (vectorizable_reduction): Don't try to + vectorize chains of COND_EXPRs. + +2018-03-18 Chung-Ju Wu + + * config/nds32/nds32.h (MAX_REGS_PER_ADDRESS): Fix the value. + +2018-03-18 Chung-Ju Wu + + * config/nds32/nds32.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define. + +2018-03-18 Chung-Ju Wu + + * config/nds32/nds32.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. + +2018-03-17 Chung-Ju Wu + Kito Cheng + + * config/nds32/nds32-protos.h (nds32_adjust_reg_alloc_order): Declare. + * config/nds32/nds32.c (nds32_reg_alloc_order_for_speed): New array. + (nds32_adjust_reg_alloc_order): New function. + * config/nds32/nds32.h (ADJUST_REG_ALLOC_ORDER): Define. + +2018-03-17 Kito Cheng + + * config/nds32/nds32.c (nds32_asm_output_mi_thunk, + nds32_print_operand, nds32_print_operand_address): Use + HOST_WIDE_INT_PRINT_DEC instead. + +2018-03-17 Chung-Ju Wu + + * config/nds32/nds32.c (nds32_register_priority): Modify cost. + +2018-03-17 Jakub Jelinek + + PR target/84902 + * config/i386/i386.c (initial_ix86_tune_features, + initial_ix86_arch_features): Use unsigned HOST_WIDE_INT rather than + unsigned long long. + (set_ix86_tune_features): Change ix86_tune_mask from unsigned int + to unsigned HOST_WIDE_INT, initialize to HOST_WIDE_INT_1U << ix86_tune + rather than 1u << ix86_tune. Formatting fix. + (ix86_option_override_internal): Change ix86_arch_mask from + unsigned int to unsigned HOST_WIDE_INT, initialize to + HOST_WIDE_INT_1U << ix86_arch rather than 1u << ix86_arch. + (ix86_function_specific_restore): Likewise. + +2018-03-16 Jakub Jelinek + + PR target/84899 + * postreload.c (reload_combine_recognize_pattern): Perform + INTVAL addition in unsigned HOST_WIDE_INT type to avoid UB and + truncate_int_for_mode the result for the destination's mode. + + PR c/84909 + * hsa-gen.c (mem_type_for_type): Fix comment typo. + * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): + Likewise. + * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset): + Likewise. + +2018-03-16 Vladimir Makarov + + PR target/84876 + * lra-assigns.c (lra_split_hard_reg_for): Don't use + regno_allocno_class_array and sorted_pseudos. + * lra-constraints.c (spill_hard_reg_in_range): Ignore hard regs in + insns where regno is used. + +2018-03-16 Martin Liska + + PR ipa/84833 + * multiple_target.c (create_dispatcher_calls): Redirect + reference in the symbol table. + +2018-03-16 Martin Liska + + PR ipa/84722 + * multiple_target.c (create_dispatcher_calls): Redirect also + an alias. + +2018-03-16 Jakub Jelinek + + PR c++/79937 + PR c++/82410 + * tree.h (TARGET_EXPR_NO_ELIDE): Define. + * gimplify.c (gimplify_modify_expr_rhs): Don't elide TARGET_EXPRs with + TARGET_EXPR_NO_ELIDE flag set unless *expr_p is INIT_EXPR. + +2018-03-16 Julia Koval + + * doc/invoke.texi (Skylake Server): Add CLWB. + Cannonlake): Remove CLWB. + +2018-03-16 Jakub Jelinek + + PR tree-optimization/84841 + * tree-ssa-reassoc.c (INTEGER_CONST_TYPE): Change to 1 << 4 from + 1 << 3. + (FLOAT_ONE_CONST_TYPE): Define. + (constant_type): Return FLOAT_ONE_CONST_TYPE for -1.0 and 1.0. + (sort_by_operand_rank): Put entries with higher constant_type last + rather than first to match comments. + +2018-03-15 Sandra Loosemore + + * config/nios2/nios2.md (movsi_internal): Fix thinko in + split predicate. + +2018-03-15 Jakub Jelinek + + PR c++/79085 + * calls.c (expand_call): For TREE_ADDRESSABLE rettype ignore alignment + check and use address of target always. + +2018-03-15 H.J. Lu + + PR target/84574 + * config/i386/i386.c (indirect_thunk_needed): Update comments. + (indirect_thunk_bnd_needed): Likewise. + (indirect_thunks_used): Likewise. + (indirect_thunks_bnd_used): Likewise. + (indirect_return_needed): New. + (indirect_return_bnd_needed): Likewise. + (output_indirect_thunk_function): Add a bool argument for + function return. + (output_indirect_thunk_function): Don't generate alias for + function return thunk. + (ix86_code_end): Call output_indirect_thunk_function to generate + function return thunks. + (ix86_output_function_return): Set indirect_return_bnd_needed + and indirect_return_needed instead of indirect_thunk_bnd_needed + and indirect_thunk_needed. + +2018-03-15 Olga Makhotina + + * config/i386/sgxintrin.h (_enclv_u32): New intrinsic. + (__enclv_bc, __enclv_cd, __enclv_generic): New definitions. + (ERDINFO, ETRACKC, ELDBC, ELDUC): New leaves. + +2018-03-15 David Malcolm + Paul Hua + + PR c/84852 + * gcc.dg/fixits-pr84852-1.c: Fix filename in dg-regexp. + +2018-03-15 Segher Boessenkool + + * config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add back the + TARGET_DOUBLE_FLOAT and TARGET_SINGLE_FLOAT conditions on the DFmode + resp. SFmode cases. + +2018-03-15 Tamar Christina + + PR target/84711 + * config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE + instead of GET_MODE_SIZE when comparing Units. + +2018-03-15 Vladimir Mezentsev + + PR target/68256 + * varasm.c (hash_section): Return an unchangeble hash value + * config/aarch64/aarch64.c (aarch64_use_blocks_for_constant_p): + Return !aarch64_can_use_per_function_literal_pools_p (). + +2018-03-15 Jakub Jelinek + + PR target/84860 + * optabs.c (emit_conditional_move): Pass address of cmode's copy + rather than address of cmode as last argument to prepare_cmp_insn. + +2018-03-15 Julia Koval + + * config/i386/i386.c (F_AVX512VBMI2, F_GFNI, F_VPCLMULQDQ, + F_AVX512VNNI, F_AVX512BITALG): New. + +2018-03-14 John David Anglin + + PR target/83451 + * config/pa/pa.c (pa_emit_move_sequence): Always emit secondary reload + insn for floating-point loads and stores. + +2018-03-14 Carl Love + + * config/rs6000/rs6000-c.c: Add macro definitions for + ALTIVEC_BUILTIN_VEC_PERMXOR. + * config/rs6000/rs6000.h: Add #define for vec_permxor builtin. + * config/rs6000/rs6000-builtin.def: Add macro expansions for VPERMXOR. + * config/rs6000/altivec.md (altivec_vpermxor): New define expand. + * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Add case + UNSPEC_VPERMXOR. + * config/doc/extend.texi: Add prototypes for vec_permxor. + +2018-03-14 David Malcolm + + PR c/84852 + * diagnostic-show-locus.c (class layout_point): Convert m_line + from int to linenum_type. + (line_span::comparator): Use linenum "compare" function when + comparing line numbers. + (test_line_span): New function. + (layout_range::contains_point): Convert param "row" from int to + linenum_type. + (layout_range::intersects_line_p): Likewise. + (layout::will_show_line_p): Likewise. + (layout::print_source_line): Likewise. + (layout::should_print_annotation_line_p): Likewise. + (layout::print_annotation_line): Likewise. + (layout::print_leading_fixits): Likewise. + (layout::annotation_line_showed_range_p): Likewise. + (struct line_corrections): Likewise for field m_row. + (line_corrections::line_corrections): Likewise for param "row". + (layout::print_trailing_fixits): Likewise. + (layout::get_state_at_point): Likewise. + (layout::get_x_bound_for_row): Likewise. + (layout::print_line): Likewise. + (diagnostic_show_locus): Likewise for locals "last_line" and "row". + (selftest::diagnostic_show_locus_c_tests): Call test_line_span. + * input.c (selftest::test_linenum_comparisons): New function. + (selftest::input_c_tests): Call it. + * selftest.c (selftest::test_assertions): Test ASSERT_GT, + ASSERT_GT_AT, ASSERT_LT, and ASSERT_LT_AT. + * selftest.h (ASSERT_GT): New macro. + (ASSERT_GT_AT): New macro. + (ASSERT_LT): New macro. + (ASSERT_LT_AT): New macro. + +2018-03-14 Segher Boessenkool + + PR rtl-optimization/84780 + * combine.c (distribute_links): Don't make a link based on pc_rtx. + +2018-03-14 Martin Liska + + * tree.c (record_node_allocation_statistics): Use + get_stats_node_kind. + (get_stats_node_kind): New function extracted from + record_node_allocation_statistics. + (free_node): Use get_stats_node_kind. + +2018-03-14 Richard Biener + + * tree-ssa-pre.c (compute_antic_aux): Remove code that asserts + that the value-set of ANTIC_IN doesn't grow. + + Revert + * tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs + member. + (BB_VISITED_WITH_VISITED_SUCCS): New define. + (compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS. + +2018-03-14 Julia Koval + + * config.gcc (icelake-client, icelake-server): New. + (icelake): Remove. + * config/i386/i386.c (initial_ix86_tune_features): Extend to 64 bit. + (initial_ix86_arch_features): Ditto. + (PTA_SKYLAKE): Add SGX. + (PTA_ICELAKE): Remove. + (PTA_ICELAKE_CLIENT): New. + (PTA_ICELAKE_SERVER): New. + (ix86_option_override_internal): Split up icelake on icelake client and + icelake server. + (get_builtin_code_for_version): Ditto. + (fold_builtin_cpu): Ditto. + * config/i386/driver-i386.c (config/i386/driver-i386.c): Ditto. + * config/i386/i386-c.c (ix86_target_macros_internal): Ditto + * config/i386/i386.h (processor_type): Ditto. + * doc/invoke.texi: Ditto. + +2018-03-14 Jakub Jelinek + + PR sanitizer/83392 + * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Handle also + INTEGER_CST offset, add it together with bitpos / 8 and + sign extend based on POINTER_SIZE. + + PR target/84844 + Revert + 2017-04-20 Uros Bizjak + + PR target/78090 + * config/i386/constraints.md (Yc): New register constraint. + * config/i386/i386.md (*float2_mixed): + Use Yc constraint for alternative 2 of operand 0. Remove + preferred_for_speed attribute. + +2018-03-14 Richard Biener + + PR tree-optimization/84830 + * tree-ssa-pre.c (compute_antic_aux): Intersect the new ANTIC_IN + with the old one to avoid oscillations. + +2018-03-13 Vladimir Makarov + + PR target/83712 + * lra-assigns.c (find_all_spills_for): Ignore uninteresting + pseudos. + (assign_by_spills): Return a flag of reload assignment failure. + Do not process the reload assignment failures. Do not spill other + reload pseudos if they has the same reg class. Update n if + necessary. + (lra_assign): Add a return arg. Set up from the result of + assign_by_spills call. + (find_reload_regno_insns, lra_split_hard_reg_for): New functions. + * lra-constraints.c (split_reg): Add a new arg. Use it instead of + usage_insns if it is not NULL. + (spill_hard_reg_in_range): New function. + (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. + * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New + function prototypes. + (lra_assign): Change prototype. + * lra.c (lra): Add code to deal with fails by splitting hard reg + live ranges. + +2018-03-01 Palmer Dabbelt + + * config/riscv/riscv.opt (mrelax): New option. + * config/riscv/riscv.c (riscv_file_start): Emit ".option + "norelax" when riscv_mrelax is disabled. + * doc/invoke.texi (RISC-V): Document "-mrelax" and "-mno-relax". + +2018-03-13 Aaron Sawdey + + PR target/84743 + * config/rs6000/rs6000.c (rs6000_reassociation_width): Disable parallel + reassociation for int modes. + +2018-03-13 Richard Sandiford + + * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): + Reverse the choice between VEC_UNPACK_LO_EXPR and VEC_UNPACK_HI_EXPR + for big-endian. + * config/aarch64/iterators.md (hi_lanes_optab): New int attribute. + * config/aarch64/aarch64-sve.md + (*aarch64_sve_): Rename to... + (aarch64_sve_): ...this. + (*extend2): Rename to... + (aarch64_sve_extend2): ...this. + (vec_unpack__): Turn into a define_expand, + renaming the old pattern to... + (aarch64_sve_punpk_): ...this. Only define + unsigned packs. + (vec_unpack__): Turn into a + define_expand, renaming the old pattern to... + (aarch64_sve_unpk_): ...this. + (*vec_unpacku___no_convert): Delete. + (vec_unpacks__): Take BYTES_BIG_ENDIAN into + account when deciding which SVE instruction the optab should use. + (vec_unpack_float__vnx4si): Likewise. + +2018-03-13 Richard Sandiford + + * config/aarch64/aarch64.md (V4_REGNUM, V8_REGNUM, V12_REGNUM) + (V20_REGNUM, V24_REGNUM, V28_REGNUM, P1_REGNUM, P2_REGNUM, P3_REGNUM) + (P4_REGNUM, P5_REGNUM, P6_REGNUM, P8_REGNUM, P9_REGNUM, P10_REGNUM) + (P11_REGNUM, P12_REGNUM, P13_REGNUM, P14_REGNUM): New define_constants. + (tlsdesc_small_): Turn a define_expand and use + tlsdesc_small_sve_ for SVE. Rename original define_insn to... + (tlsdesc_small_advsimd_): ...this. + (tlsdesc_small_sve_): New pattern. + +2018-03-13 Richard Sandiford + + * config/aarch64/iterators.md (UNSPEC_SMUL_HIGHPART) + (UNSPEC_UMUL_HIGHPART): New constants. + (MUL_HIGHPART): New int iteraor. + (su): Handle UNSPEC_SMUL_HIGHPART and UNSPEC_UMUL_HIGHPART. + * config/aarch64/aarch64-sve.md (mul3_highpart): New + define_expand. + (*mul3_highpart): New define_insn. + +2018-03-13 Eric Botcazou + + PR lto/84805 + * ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of + incomplete types. + +2018-03-13 Martin Liska + + PR ipa/84658. + * (sem_item_optimizer::sem_item_optimizer): Initialize new + vector. + (sem_item_optimizer::~sem_item_optimizer): Release it. + (sem_item_optimizer::merge_classes): Register variable aliases. + (sem_item_optimizer::fixup_pt_set): New function. + (sem_item_optimizer::fixup_points_to_sets): Likewise. + * ipa-icf.h: Declare new variables and functions. + +2018-03-13 Jakub Jelinek + + PR middle-end/84834 + * match.pd ((A & C) != 0 ? D : 0): Use INTEGER_CST@2 instead of + integer_pow2p@2 and test integer_pow2p in condition. + (A < 0 ? C : 0): Similarly for @1. + + PR middle-end/84831 + * stmt.c (parse_output_constraint): If the CONSTRAINT_LEN (*p, p) + characters starting at p contain '\0' character, don't look beyond + that. + + PR target/84827 + * config/i386/i386.md (round2): For 387 fancy math, disable + pattern if -ftrapping-math -fno-fp-int-builtin-inexact. + + PR target/84828 + * reg-stack.c (change_stack): Change update_end var from int to + rtx_insn *, if non-NULL don't update just BB_END (current_block), but + also call set_block_for_insn on the newly added insns and rescan. + + PR target/84786 + * config/i386/sse.md (sse2_loadhpd): Use Yv constraint rather than v + on the last operand. + + PR c++/84704 + * tree.c (stabilize_reference_1): Return save_expr (e) for + STATEMENT_LIST even if it doesn't have side-effects. + +2018-03-12 Jonathan Wakely + + * doc/invoke.texi (-mclflushopt): Fix spelling of option. + +2018-03-12 Renlin Li + + * config/aarch64/aarch64.md (movhf_aarch64): Fix mode argument to + aarch64_output_scalar_simd_mov_immediate. + +2018-03-12 Martin Sebor + + PR tree-optimization/83456 + * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid warning + for perfectly overlapping calls to memcpy. + (gimple_fold_builtin_memory_chk): Same. + (gimple_fold_builtin_strcpy): Handle no-warning. + (gimple_fold_builtin_stxcpy_chk): Same. + * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Handle no-warning. + +2018-03-12 Segher Boessenkool + + * config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add bool "named" + parameter. Use it for SFmode. + (rs6000_function_arg_advance_1): Adjust. + (rs6000_function_arg): Adjust. + (rs6000_gimplify_va_arg): Pass false for that new parameter. + +2018-03-12 Segher Boessenkool + + PR rtl-optimization/84169 + PR rtl-optimization/84780 + * combine.c (can_combine_p): Check for a 2-insn combination whether + the destination register is used between the two insns, too. + +2018-03-12 Richard Biener + + PR tree-optimization/84803 + * tree-if-conv.c (ifcvt_memrefs_wont_trap): Don't do anything + for refs DR analysis didn't process. + +2018-03-12 Richard Biener + + PR tree-optimization/84777 + * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): For + force-vectorize loops ignore whether we are optimizing for size. + +2018-03-12 Chung-Ju Wu + + * config/nds32/nds32.c (nds32_md_asm_adjust): New function. + (TARGET_MD_ASM_ADJUST): Define. + +2018-03-12 Monk Chiang + Kito Cheng + Chung-Ju Wu + + * config/nds32/nds32.c (nds32_compute_stack_frame, + nds32_emit_stack_push_multiple, nds32_emit_stack_pop_multiple, + nds32_emit_stack_v3push, nds32_emit_stack_v3pop, + nds32_emit_adjust_frame, nds32_expand_prologue, nds32_expand_epilogue, + nds32_expand_prologue_v3push, nds32_expand_epilogue_v3pop): Refine. + * config/nds32/nds32.h (NDS32_FIRST_CALLEE_SAVE_GPR_REGNUM, + NDS32_LAST_CALLEE_SAVE_GPR_REGNUM, NDS32_V3PUSH_AVAILABLE_P): New. + * config/nds32/nds32.md (prologue, epilogue): Use macro + NDS32_V3PUSH_AVAILABLE_P to do checking. + +2018-03-11 Jakub Jelinek + + PR debug/58150 + * dwarf2out.c (gen_enumeration_type_die): Don't guard adding + DW_AT_declaration for ENUM_IS_OPAQUE on -gdwarf-4 or -gno-strict-dwarf, + but on TYPE_SIZE. Don't do anything for ENUM_IS_OPAQUE if not creating + a new die. Don't set TREE_ASM_WRITTEN if ENUM_IS_OPAQUE. Guard + addition of most attributes on !orig_type_die or the attribute not + being present already. Assert TYPE_VALUES is NULL for ENUM_IS_OPAQUE. + +2018-03-11 Kito Cheng + Chung-Ju Wu + + * config/nds32/nds32.c (nds32_cpu_cpp_builtins): Modify to define + __NDS32_VH__ macro. + * config/nds32/nds32.opt (mvh): New option. + +2018-03-11 Kito Cheng + Chung-Ju Wu + + * config/nds32/nds32-protos.h (nds32_cpu_cpp_builtins): Declare + function. + * config/nds32/nds32.c (nds32_cpu_cpp_builtins): New function. + * config/nds32/nds32.h (TARGET_CPU_CPP_BUILTINS): Modify its + definition. + +2018-03-11 Kito Cheng + Chung-Ju Wu + + * config/nds32/nds32-memory-manipulation.c (nds32_expand_strlen): New + function. + * config/nds32/nds32-multiple.md (strlensi): New pattern. + * config/nds32/nds32-protos.h (nds32_expand_strlen): Declare function. + +2018-03-11 Monk Chiang + Kito Cheng + Chung-Ju Wu + + * config/nds32/constants.md (unspec_element): Add UNSPEC_FFB, + UNSPEC_FFMISM and UNSPEC_FLMISM. + * config/nds32/nds32-intrinsic.c (bdesc_2arg): Add builtin description + for ffb, ffmism and flmism. + * config/nds32/nds32-intrinsic.md (unspec_ffb): Define new pattern. + (unspec_ffmism): Ditto. + (unspec_flmism): Ditto. + (nds32_expand_builtin_impl): Check if string extension is available. + * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FFB, + NDS32_BUILTIN_FFMISM and NDS32_BUILTIN_FLMISM. + +2018-03-10 Vladimir Makarov + + Reverting patch: + 2018-03-09 Vladimir Makarov + + PR target/83712 + * lra-assigns.c (assign_by_spills): Return a flag of reload + assignment failure. Do not process the reload assignment + failures. Do not spill other reload pseudos if they has the same + reg class. + (lra_assign): Add a return arg. Set up from the result of + assign_by_spills call. + (find_reload_regno_insns, lra_split_hard_reg_for): New functions. + * lra-constraints.c (split_reg): Add a new arg. Use it instead of + usage_insns if it is not NULL. + (spill_hard_reg_in_range): New function. + (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. + * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New + function prototypes. + (lra_assign): Change prototype. + * lra.c (lra): Add code to deal with fails by splitting hard reg + live ranges. + +2018-03-10 H.J. Lu + + PR target/84807 + * config/i386/i386.opt: Replace Enforcment with Enforcement. + +2018-03-10 Alexandre Oliva + + PR debug/84620 + * dwarf2out.h (dw_val_class): Add dw_val_class_symview. + (dw_val_node): Add val_symbolic_view. + * dwarf2out.c (dw_line_info_table): Add symviews_since_reset. + (symview_upper_bound): New. + (new_line_info_table): Initialize symviews_since_reset. + (dwarf2out_source_line): Count symviews_since_reset and set + symview_upper_bound. + (dw_val_equal_p): Handle symview. + (add_AT_symview): New. + (print_dw_val): Handle symview. + (attr_checksum, attr_checksum_ordered): Likewise. + (same_dw_val_p, size_of_die): Likewise. + (value_format, output_die): Likewise. + (add_high_low_attributes): Use add_AT_symview for entry_view. + (dwarf2out_finish): Reset symview_upper_bound, clear + zero_view_p. + +2018-03-09 Peter Bergner + + PR target/83969 + * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New prototype. + Add strict argument and use it. + (rs6000_split_multireg_move): Update for new strict argument. + (mem_operand_gpr): Disallow all non-offsettable addresses. + * config/rs6000/rs6000.md (*movdi_internal64): Use YZ constraint. + +2018-03-09 Jakub Jelinek + + PR target/84772 + * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Mark va_arg_tmp + temporary TREE_ADDRESSABLE before gimplification of BUILT_IN_MEMCPY. + * config/powerpcspe/powerpcspe.c (rs6000_gimplify_va_arg): Likewise. + + PR c++/84767 + * tree-inline.c (copy_tree_body_r): For INDIRECT_REF of a remapped + decl, use remap_type if we want to use the type. + +2018-03-09 Martin Sebor + + PR tree-optimization/84526 + * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset): + Remove dead code. + (builtin_access::generic_overlap): Be prepared to handle non-array + base objects. + +2018-03-09 Alexandre Oliva + + PR rtl-optimization/84682 + * lra-constraints.c (process_address_1): Check is_address flag + for address constraints. + (process_alt_operands): Likewise. + * lra.c (lra_set_insn_recog_data): Pass asm operand locs to + preprocess_constraints. + * recog.h (preprocess_constraints): Add oploc parameter. + Adjust callers. + * recog.c (preprocess_constraints): Test address_operand for + CT_ADDRESS constraints. + +2018-03-09 Vladimir Makarov + + PR target/83712 + * lra-assigns.c (assign_by_spills): Return a flag of reload + assignment failure. Do not process the reload assignment + failures. Do not spill other reload pseudos if they has the same + reg class. + (lra_assign): Add a return arg. Set up from the result of + assign_by_spills call. + (find_reload_regno_insns, lra_split_hard_reg_for): New functions. + * lra-constraints.c (split_reg): Add a new arg. Use it instead of + usage_insns if it is not NULL. + (spill_hard_reg_in_range): New function. + (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. + * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New + function prototypes. + (lra_assign): Change prototype. + * lra.c (lra): Add code to deal with fails by splitting hard reg + live ranges. + +2018-03-09 Kyrylo Tkachov + + PR target/83193 + * common/config/arm/arm-common.c (arm_parse_arch_option_name): + Accept complain bool parameter. Only emit errors if it is true. + (arm_parse_cpu_option_name): Likewise. + (arm_target_thumb_only): Adjust callers of the above. + * config/arm/arm-protos.h (arm_parse_cpu_option_name): Adjust + prototype to take a default true bool parameter. + (arm_parse_arch_option_name): Likewise. + +2018-03-09 David Malcolm + Francois-Xavier Coudert + + PR jit/64089 + PR jit/84288 + * Makefile.in (LD_VERSION_SCRIPT_OPTION, LD_SONAME_OPTION): New. + * configure: Regenerate. + * configure.ac ("linker --version-script option"): New. + ("linker soname option"): New. + +2018-03-09 Richard Biener + + PR tree-optimization/84775 + * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Delink + immediate uses of predicate stmts and mark them modified. + + Revert + PR tree-optimization/84178 + * tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates + to caller. + (version_loop_for_if_conversion): Delay update_ssa call. + (tree_if_conversion): Delay update_ssa until after predicate + insertion. + +2018-03-09 Eric Botcazou + + PR target/84763 + * config/i386/winnt.c (i386_pe_seh_cold_init): Use small pre-allocation + when the function accesses prior frames. + +2018-03-08 Jakub Jelinek + + PR debug/84456 + * dwarf2out.c (dw_loc_list): If list && loc_list->first->next, call + gen_llsym, otherwise call maybe_gen_llsym. + + PR inline-asm/84742 + * recog.c (asm_operand_ok): Return 0 if multi-character constraint + has ',' character inside of it. + +2018-03-08 Kyrylo Tkachov + + PR target/84748 + * config/aarch64/aarch64.md (*compare_cstore_insn): Mark pattern + as clobbering CC_REGNUM. + +2018-03-08 Richard Biener + + PR middle-end/84552 + * tree-scalar-evolution.c: Include tree-into-ssa.h. + (follow_copies_to_constant): Do not follow SSA names registered + for update. + +2018-03-08 Richard Biener + + PR tree-optimization/84178 + * tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates + to caller. + (version_loop_for_if_conversion): Delay update_ssa call. + (tree_if_conversion): Delay update_ssa until after predicate + insertion. + +2018-03-08 David Malcolm + + PR tree-optimization/84178 + * tree-if-conv.c (release_bb_predicate): Remove the + the assertion that the stmts have NULL use_ops. + Discard the statements, asserting that they haven't + yet been added to a BB. + +2018-03-08 Richard Biener + + PR tree-optimization/84746 + * tree-ssa-pre.c (find_leader_in_sets): Deal with SET1 being NULL. + (phi_translate): Pass in destination ANTIC_OUT set. + (phi_translate_1): Likewise. For a simplified result lookup + a leader in ANTIC_OUT and AVAIL_OUT, not the ANTIC_IN sets. + (phi_translate_set): Adjust. + (do_pre_regular_insertion): Likewise. + (do_pre_partial_partial_insertion): Likewise. + +2018-03-08 Martin Liska + + PR gcov-profile/84735 + * doc/gcov.texi: Document usage of profile files. + * gcov-io.h: Document changes in the format. + +2018-03-08 Alexandre Oliva + + PR debug/84404 + PR debug/84408 + * dwarf2out.c (struct dw_line_info_table): Update comments for + view == -1. + (FORCE_RESET_NEXT_VIEW): New. + (FORCE_RESETTING_VIEW_P): New. + (RESETTING_VIEW_P): Check for -1 too. + (ZERO_VIEW_P): Likewise. + (new_line_info_table): Force-reset next view. + (dwarf2out_begin_function): Likewise. + (dwarf2out_source_line): Simplify zero_view_p initialization. + Test FORCE_RESETTING_VIEW_P and RESETTING_VIEW_P instead of + view directly. Omit view when omitting .loc at line 0. + +2018-03-08 Jakub Jelinek + + PR tree-optimization/84740 + * tree-switch-conversion.c (process_switch): Call build_constructors + only if info.phi_count is non-zero. + + PR tree-optimization/84739 + * tree-tailcall.c (find_tail_calls): Check call arguments against + DECL_ARGUMENTS (current_function_decl) rather than + DECL_ARGUMENTS (func) when checking for tail recursion. + +2018-03-07 Jakub Jelinek + + * doc/contrib.texi: Add entries for Martin Liska, David Malcolm, + Marek Polacek, extend Vladimir Makarov's, Jonathan Wakely's and + Volker Reichelt's entry and add entries for people that perform + GCC fuzzy testing and report numerous bugs. + +2018-03-07 Segher Boessenkool + + PR target/82411 + * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Don't put + readonly data in sdata, if that is disabled. + * config/rs6000/sysv4.opt (mreadonly-in-sdata): New option. + * doc/invoke.texi (RS/6000 and PowerPC Options): Document + -mreadonly-in-sdata option. + +2018-03-07 Martin Sebor + + PR tree-optimization/84468 + * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Consider successor + basic block when looking for nul assignment. + +2018-03-07 Eric Botcazou + + PR target/84277 + * except.h (output_function_exception_table): Adjust prototype. + * except.c (output_function_exception_table): Remove FNNAME parameter + and add SECTION parameter. Ouput one part of the table at a time. + * final.c (final_scan_insn_1) : Output + the first part of the exception table and emit unwind directives. + * config/i386/i386-protos.h (i386_pe_end_cold_function): Declare. + (i386_pe_seh_cold_init): Likewise. + * config/i386/cygming.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro. + (ASM_DECLARE_COLD_FUNCTION_SIZE): Likewise. + * config/i386/i386.c (x86_expand_epilogue): Fix wording in comment. + (ix86_output_call_insn): Emit a nop in one more case for SEH. + * config/i386/winnt.c: Include except.h. + (struct seh_frame_state): Add reg_offset, after_prologue and + in_cold_section fields. + (i386_pe_seh_end_prologue): Set seh->after_prologue. + (i386_pe_seh_cold_init): New function. + (i386_pe_seh_fini): Add COLD parameter and bail out if it is not equal + to seh->in_cold_section. + (seh_emit_push): Record the offset of the push. + (seh_emit_save): Record the offet of the save. + (i386_pe_seh_unwind_emit): Deal with NOTE_INSN_SWITCH_TEXT_SECTIONS. + Test seh->after_prologue to disregard the epilogue. + (i386_pe_end_function): Pass FALSE to i386_pe_seh_fini. + (i386_pe_end_cold_function): New function. + +2018-03-07 Jakub Jelinek + + PR fortran/84565 + * config/aarch64/predicates.md (aarch64_simd_reg_or_zero): Use + aarch64_simd_or_scalar_imm_zero rather than aarch64_simd_imm_zero. + + PR c++/84704 + * gimple-expr.c (create_tmp_var_raw): Set DECL_NAMELESS flag + on tmp_var. + * tree-pretty-print.c (dump_decl_name): For TDF_COMPARE_DEBUG, + don't print names of DECL_NAMELESS DECL_IGNORED_P decls. + + PR middle-end/84723 + * multiple_target.c: Include tree-inline.h and intl.h. + (expand_target_clones): Diagnose and fail if node->definition and + !tree_versionable_function_p (node->decl). + +2018-03-06 John David Anglin + + * config/pa/pa.h (ASM_GENERATE_INTERNAL_LABEL): Revise to use + sprint_ul. + (ASM_OUTPUT_ADDR_VEC_ELT): Revise for above change. + (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. + * config/pa/pa64-hpux.h (ASM_GENERATE_INTERNAL_LABEL): Revise as above. + +2018-03-06 Jakub Jelinek + + PR target/84710 + * combine.c (try_combine): Use reg_or_subregno instead of handling + just paradoxical SUBREGs and REGs. + +2018-03-06 Claudiu Zissulescu + + * config/arc/arc.c (arc_finalize_pic): Remove function. + (arc_must_save_register): We use single base PIC register, remove + checks to save/restore the PIC register. + (arc_expand_prologue): Likewise. + * config/arc/arc-protos.h (arc_set_default_type_attributes): + Remove. + (arc_verify_short): Likewise. + (arc_attr_type): Likewise. + * config/arc/arc.c (arc_set_default_type_attributes): Remove. + (walk_stores): Likewise. + (arc_address_cost): Make it static. + (arc_verify_short): Likewise. + (branch_dest): Likewise. + (arc_attr_type): Likewise. + * config/arc/arc.c (TARGET_ADJUST_INSN_LENGTH): Remove. + (TARGET_INSN_LENGTH_PARAMETERS): Likewise. + (arc_final_prescan_insn): Remove inserting the nops due to + hardware hazards. It is done in reorg step. + (insn_length_variant_t): Remove. + (insn_length_parameters_t): Likewise. + (arc_insn_length_parameters): Likewise. + (arc_get_insn_variants): Likewise. + * config/arc/arc.h (TARGET_UPSIZE_DBR): Remove. + +2018-03-06 Jakub Jelinek + + PR inline-asm/84683 + * reg-stack.c (move_for_stack_reg): If any_malformed_asm, avoid + assertion failure. + + PR tree-optimization/84687 + * omp-simd-clone.c (simd_clone_create): Clear DECL_BUILT_IN_CLASS + on new_node->decl. + * match.pd (pow(C,x)*expN(y) -> expN(logN(C)*x+y)): New optimization. + +2018-03-05 Bill Schmidt + + * config/rs6000/rs6000-builtin.def (rs6000_speculation_barrier): + Rename to ppc_speculation_barrier. + * config/rs6000/rs6000.c (rs6000_init_builtins): Rename builtin to + __builtin_ppc_speculation_barrier. + +2018-03-05 Jakub Jelinek + + PR target/84700 + * combine.c (combine_simplify_rtx): Don't try to simplify if + if_then_else_cond returned non-NULL, but either true_rtx or false_rtx + are equal to x. + +2018-03-05 Segher Boessenkool + + * config/rs6000/rs6000.c (rs6000_loop_align): Don't align tiny loops + to 32 bytes when compiling for POWER9. + +2018-03-05 Jakub Jelinek + + PR target/84564 + * config/i386/i386.c (ix86_function_ok_for_sibcall): Check for + regparm >= 3 with no arg reg available also for calls with + flag_force_indirect_call. Pass decl to ix86_function_regparm. + + PR target/84524 + * config/i386/sse.md (*3): Replace with + orig,vex. + (*3): Likewise. Remove uses. + +2018-03-05 Peter Bergner + + PR target/84264 + * config/rs6000/vector.md (mov): Disallow altivec memory operands. + +2018-03-05 Richard Biener + + PR tree-optimization/84486 + * tree-ssa-pre.c (create_expression_by_pieces): Remove dead code. + When inserting a __builtin_assume_aligned call set the LHS + SSA name alignment info accordingly. + +2018-03-05 Wilco Dijkstra + + PR tree-optimization/84114 + * config/aarch64/aarch64.c (aarch64_reassociation_width) + Avoid reassociation of FLOAT_MODE addition. + +2018-03-05 Olga Makhotina + + * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCONFIG_SET, + OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_SET, + OPTION_MASK_ISA_WBNOINVD_UNSET): New definitions. + (ix86_handle_option): Handle -mpconfig and -mwbnoinvd. + * config.gcc (pconfigintrin.h, wbnoinvdintrin.h) : Add headers. + * config/i386/cpuid.h (bit_PCONFIG, bit_WBNOINVD): New. + * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mpconfig + and -mwbnoinvd. + * config/i386/i386-builtin.def (__builtin_ia32_wbnoinvd, + __builtin_ia32_wbinvd): New builtins. + (SPECIAL_ARGS2): New. + * config/i386/i386-c.c (__WBNOINVD__, __PCONFIG__): New. + (SPECIAL_ARGS2): New. + * config/i386/i386.c (ix86_target_string): Add -mpconfig and -mwbnoinvd. + (ix86_valid_target_attribute_inner_p): Ditto. + (ix86_init_mmx_sse_builtins): Add special_args2. + * config/i386/i386.h (TARGET_PCONFIG, TARGET_PCONFIG_P, TARGET_WBNOINVD, + TARGET_WBNOINVD_P): New. + * config/i386/i386.md (UNSPECV_WBINVD, UNSPECV_WBNOINVD): New. + (define_insn "wbinvd", define_insn "wbnoinvd"): New. + * config/i386/i386.opt: Add -mpconfig and -mwbnoinvd. + * config/i386/immintrin.h (_wbinvd): New intrinsic. + * config/i386/pconfigintrin.h: New file. + * config/i386/wbnoinvdintrin.h: Ditto. + * config/i386/x86intrin.h: Add headers pconfigintrin.h and + wbnoinvdintrin.h. + * doc/invoke.texi (-mpconfig, -mwbnoinvd): New. + +2018-03-05 Richard Biener + + PR tree-optimization/84670 + * tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs + member. + (BB_VISITED_WITH_VISITED_SUCCS): New define. + (compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS. + (compute_antic_aux): Only assert the number of values in ANTIC_IN + doesn't grow if all successors (recursively) were visited at least + once. + +2018-03-05 Richard Biener + + PR tree-optimization/84650 + * tree-ssa-loop-im.c (pass_lim::execute): Reset the SCEV cache + if executed in the loop pipeline. + +2018-03-05 Sandra Loosemore + + * doc/configfiles.texi (Configuration Files): Move info about + conditionalizing $target-protos.h to... + * doc/sourcebuild.texi (Back End): Here. Explain how $target.h + differs from $target-protos.h. + +2018-03-05 Kito Cheng + Chung-Ju Wu + + * config/nds32/nds32-protos.h (nds32_expand_setmem): Declare. + * config/nds32/nds32-multiple.md (setmemsi): Define. + * config/nds32/nds32-memory-manipulation.c + (nds32_gen_dup_4_byte_to_word_value): New. + (emit_setmem_word_loop): New. + (emit_setmem_byte_loop): New. + (nds32_expand_setmem_loop): New. + (nds32_expand_setmem_loop_v3m): New. + (nds32_expand_setmem_unroll): New. + (nds32_expand_setmem): New. + +2018-03-04 Kito Cheng + Chung-Ju Wu + + * config/nds32/nds32-memory-manipulation.c + (nds32_emit_load_store): New. + (nds32_emit_post_inc_load_store): New. + (nds32_emit_mem_move): New. + (nds32_emit_mem_move_block): New. + (nds32_expand_movmemsi_loop_unknown_size): New. + (nds32_expand_movmemsi_loop_known_size): New. + (nds32_expand_movmemsi_loop): New. + (nds32_expand_movmemsi_unroll): New. + (nds32_expand_movmemqi): Rename ... + (nds32_expand_movmemsi): ... to this. + * config/nds32/nds32-multiple.md (movmemqi): Rename ... + (movmemsi): ... to this. + * config/nds32/nds32-protos.h (nds32_expand_movmemqi): Rename ... + (nds32_expand_movmemsi): ... to this. + +2018-03-04 Kito Cheng + Monk Chiang + Chung-Ju Wu + + * config/nds32/nds32-protos.h + (nds32_expand_load_multiple): New arguments. + (nds32_expand_store_multiple): Ditto. + (nds32_valid_multiple_load_store): Rename ... + (nds32_valid_multiple_load_store_p): ... to this. + * config/nds32/nds32-memory-manipulation.c + (nds32_expand_load_multiple): Refine implementation. + (nds32_expand_store_multiple): Ditto. + * config/nds32/nds32-multiple.md + (load_multiple): Update nds32_expand_load_multiple interface. + (store_multiple): Update nds32_expand_store_multiple interface. + * config/nds32/nds32-predicates.c + (nds32_valid_multiple_load_store): Rename ... + (nds32_valid_multiple_load_store_p): ... to this and refine + implementation. + * config/nds32/predicates.md + (nds32_load_multiple_and_update_address_operation): New predicate. + (nds32_store_multiple_and_update_address_operation): New predicate. + +2018-03-04 Kito Cheng + Chung-Ju Wu + + * config/nds32/nds32.md (type): Add load_multiple and store_multiple. + (combo): New attribute. + * config/nds32/nds32-multiple.md: Refine patterns with new attributes. + +2018-03-03 Chung-Ju Wu + + * config/nds32/nds32.opt: Change -mcmodel= default value. + +2018-03-03 Kito Cheng + Monk Chiang + Chung-Ju Wu + + * config/nds32/constants.md (unspec_element): New enum. + * config/nds32/constraints.md (Umw): New constraint. + * config/nds32/nds32-intrinsic.c: Add more builtin functions. + * config/nds32/nds32-intrinsic.md: Likewise. + * config/nds32/nds32-md-auxiliary.c (nds32_regno_to_enable4): New. + (nds32_valid_smw_lwm_base_p): New. + (nds32_output_smw_single_word): New. + (nds32_output_lmw_single_word): New. + (nds32_expand_unaligned_load): New. + (nds32_expand_unaligned_store): New. + * config/nds32/nds32-protos.h (nds32_valid_smw_lwm_base_p): Declare. + (nds32_output_smw_single_word): Declare. + (nds32_output_lmw_single_word): Declare. + (nds32_expand_unaligned_load): Declare. + (nds32_expand_unaligned_store): Declare. + * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_UALOAD_HW, + NDS32_BUILTIN_UALOAD_W, NDS32_BUILTIN_UALOAD_DW, + NDS32_BUILTIN_UASTORE_HW, NDS32_BUILTIN_UASTORE_W, + NDS32_BUILTIN_UASTORE_DW. + * config/nds32/predicates.md (nds32_lmw_smw_base_operand): New + predicate. + +2018-03-03 Monk Chiang + Kito Cheng + Chung-Ju Wu + + * config/nds32/nds32-intrinsic.c + (nds32_expand_builtin_null_ftype_reg): Delete. + (nds32_expand_builtin_reg_ftype_imm): Ditto. + (nds32_expand_builtin_null_ftype_reg_imm): Ditto. + (nds32_read_argument): New. + (nds32_legitimize_target): Ditto. + (nds32_legitimize_argument): Ditto. + (nds32_check_constant_argument): Ditto. + (nds32_expand_unop_builtin): Ditto. + (nds32_expand_unopimm_builtin): Ditto. + (nds32_expand_binop_builtin): Ditto. + (nds32_builtin_decl_impl): Ditto. + (builtin_description): Ditto. + (nds32_expand_builtin_impl): Rewrite with new infrastructure. + (nds32_init_builtins_impl): Ditto. + * config/nds32/nds32.c (TARGET_BUILTIN_DECL): Define. + (nds32_builtin_decl): New. + * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_COUNT. + * config/nds32/nds32-protos.h (nds32_builtin_decl_impl): Declare. + +2018-03-02 Jeff Law + + * reorg.c (stop_search_p): Handle DEBUG_INSN. + (redundant_insn, fill_simple_delay_slots): Likewise. + (fill_slots_from_thread): Likewise. + * resource.c (mark_referenced_resources): Likewise. + (mark_set_resources, find_dead_or_set_registers): Likewise. + +2018-03-02 Jakub Jelinek + + * substring-locations.h (format_warning_va): Formatting fix for + ATTRIBUTE_GCC_DIAG. + (format_warning_at_substring): Fix up ATTRIBUTE_GCC_DIAG second + argument. + (format_warning_n_va, format_warning_at_substring_n): New prototypes. + * substring-locations.c: Include intl.h. + (format_warning_va): Turned into small wrapper around + format_warning_n_va, renamed to ... + (format_warning_n_va): ... this, add N and PLURAL_GMSGID arguments, + rename GMSGID to SINGULAR_GMSGID, if SINGULAR_GMSGID != PLURAL_GMSGID, + use ngettext. + (format_warning_at_substring_n): New function. + * gimple-ssa-sprintf.c: Remove GCC diagnostic ignored pragma. + (fmtwarn): Add ATTRIBUTE_GCC_DIAG. Turn into a copy of + format_warning_at_substring with just a shorter name instead of + const function pointer. + (fmtwarn_n): New function. + (maybe_warn, format_directive, parse_directive): Use fmtwarn_n where + appropriate, get rid of all the fmtstr temporaries, move conditionals + with G_() wrapped string literals directly into fmtwarn arguments, + cast dir.len to (int), formatting fixes. + +2018-03-02 Thomas Schwinge + + * doc/invoke.texi: Remove "Cilk Plus" references. + +2018-03-02 Jakub Jelinek + Richard Biener + + PR ipa/84628 + * expr.c (expand_expr_real_1) : Don't emit diagnostics + for error or warning attributes if CALL_FROM_THUNK_P is set. + Formatting fixes. + +2018-03-02 Jakub Jelinek + + PR target/56540 + * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Predefine + __SIZEOF_128__ macro if HPUX_LONG_DOUBLE_LIBRARY. + + PR target/56540 + * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Predefine + __SIZEOF_{FPREG,FLOAT{80,128}}__ macros. + + * predict.c (test_prediction_value_range): Use PROB_UNINITIALIZED + instead of -1U in last predictors element's probability member. + +2018-03-02 Eric Botcazou + + PR ipa/83983 + * ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both + arguments if they are comparable. + +2018-03-02 Richard Sandiford + + PR tree-optimization/84634 + * tree-vect-stmts.c (vectorizable_store, vectorizable_load): Replace + masks and masked_loop_p with a single loop_masks, making sure it's + null for bb vectorization. + +2018-03-02 Richard Sandiford + + * tree-vect-data-refs.c (vect_analyze_data_ref_dependence) + (vect_analyze_data_ref_access): Use loop->safe_len rather than + loop->force_vectorize to check whether there is no alias. + +2018-03-02 Jakub Jelinek + + PR target/84614 + * rtl.h (prev_real_nondebug_insn, next_real_nondebug_insn): New + prototypes. + * emit-rtl.c (next_real_insn, prev_real_insn): Fix up function + comments. + (next_real_nondebug_insn, prev_real_nondebug_insn): New functions. + * cfgcleanup.c (try_head_merge_bb): Use prev_real_nondebug_insn + instead of a loop around prev_real_insn. + * combine.c (move_deaths): Use prev_real_nondebug_insn instead of + prev_real_insn. + + PR inline-asm/84625 + * config/i386/i386.c (ix86_print_operand): Use conditional + output_operand_lossage instead of gcc_assert if CONST_VECTOR is not + zero vector. + +2018-03-02 Richard Biener + + PR tree-optimization/84427 + * tree-ssa-pre.c (bitmap_remove_expr_from_set): Remove. + (bitmap_set_subtract_values): Rewrite to handle multiple + exprs per value. + (clean): Likewise. + (prune_clobbered_mems): Likewise. + (phi_translate): Take edge instead of pred/phiblock. + (phi_translate_1): Likewise. + (phi_translate_set): Likewise. Insert all translated + exprs for a value into the set, keeping possibly multiple + expressions per value. + (compute_antic_aux): Adjust for phi_translate changes. + When intersecting union the expressions and prune those + not in the final value set, keeping possibly multiple + expressions per value. Do not use value-insertion + for unioning ANTIC_OUT U EXP_GEN - TMP_GEN but merge + all expressions. Add verification that the value-sets + only shrink during iteration. + (compute_partial_antic_aux): Adjust for the phi_translate changes. + (do_pre_regular_insertion): Likewise. + (do_pre_partial_partial_insertion): Likewise. + +2018-03-02 Richard Biener + + PR target/82005 + * config/darwin.c (saved_debug_info_level): New static global. + (darwin_asm_lto_start): Disable debug info generation for LTO out. + (darwin_asm_lto_end): Restore debug info generation settings. + +2018-03-01 Martin Liska + + PR sanitizer/82484 + * sanopt.c (sanitize_rewrite_addressable_params): Do not handle + volatile arguments. + +2018-03-01 Richard Biener + + PR debug/84645 + * dwarf2out.c (gen_variable_die): Properly handle late VLA + type annotation with LTO when debug was disabled at compile-time. + +2018-03-01 Matthew Fortune + + * config/mips/mips.c (mips_final_prescan_insn): Fix incorrect + XINT with INTVAL. + (mips_final_postscan_insn): Likewise. + +2018-03-01 Richard Sandiford + + PR rtl-optimization/84528 + * alias.c (init_alias_target): Add commentary. + (init_alias_analysis): Only give HARD_FRAME_POINTER_REGNUM + a unique base value if the frame pointer is not eliminated + to the stack pointer. + +2018-03-01 Tom de Vries + + PR rtl-optimization/83327 + * lra-int.h (hard_regs_spilled_into): Declare. + * lra.c (hard_regs_spilled_into): Define. + (init_reg_info): Init hard_regs_spilled_into. + * lra-spills.c (assign_spill_hard_regs): Update hard_regs_spilled_into. + * lra-lives.c (make_hard_regno_born, make_hard_regno_dead) + (process_bb_lives): Handle hard_regs_spilled_into. + (lra_create_live_ranges_1): Before doing liveness propagation, clear + regs in all_hard_regs_bitmap if set in hard_regs_spilled_into. + +2018-02-28 David Edelsohn + + * config.gcc (powerpc-ibm-aix7.1.*): New stanza. + (powerpc-ibm-aix[789]*): Default to AIX 7.2. + * config/rs6000/aix71.h (TARGET_DEFAULT): Revert to Power4 ISA. + * config/rs6000/aix72.h: New file. + +2018-02-28 Jakub Jelinek + + * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Use warning_n + instead of warning_at with conditional singular and plural messages + where possible. + + PR target/52991 + * stor-layout.c (update_alignment_for_field): For + targetm.ms_bitfield_layout_p (rli->t), if !is_bitfield + && !DECL_PACKED (field), do the alignment update, just use + only desired_align instead of MAX (type_align, desired_align) + as the alignment. + (place_field): Don't do known_align < desired_align handling + early if targetm.ms_bitfield_layout_p (rli->t) and rli->prev_field + is non-NULL, instead do it after rli->prev_field handling and + only if not within a bitfield word. For DECL_PACKED (field) + use type_align of BITS_PER_UNIT. + +2018-02-28 Eric Botcazou + + * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Remove + superfluous parentheses and trailing spaces. + +2018-02-28 Richard Biener + + PR tree-optimization/84584 + * graphite-scop-detection.c (scop_detection::add_scop): Discard + SCoPs with fake exit edge. + +2018-02-28 Martin Liska + + PR testsuite/84597 + * timevar.c (timer::print): Fix format to properly print 100% + values. + +2018-02-28 Richard Biener + + PR middle-end/84607 + * genmatch.c (capture_info::walk_match): Do not mark + captured expressions without operands as expr_p given + they act more like predicates and should be subject to + "lost tail" side-effect preserving. + +2018-02-28 Alexandre Oliva + + PR rtl-optimization/81611 + * auto-inc-dec.c (attempt_change): Move dead note from + mem_insn if it's the next use of regno + (find_address): Take address use of reg holding + non-incremented value. Add parm to limit search to the named + reg only. + (merge_in_block): Attempt to use a mem insn that is the next + use of the original regno. + +2018-02-27 Martin Sebor + + PR c++/83871 + * doc/invoke.texi (-Wmissing-attributes): New option. + * print-tree.c (print_node): Handle DECL_UNINLINABLE. + +2018-02-27 Martin Sebor + + PR translation/84207 + * diagnostic-core.h (warning_n, error_n, inform_n): Change + n argument to unsigned HOST_WIDE_INT. + * diagnostic.c (warning_n, error_n, inform_n): Ditto. + (diagnostic_n_impl): Ditto. Handle arguments in excess of LONG_MAX. + * gimple-ssa-sprintf.c (format_directive): Simplify inform_n call. + * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Use warning_n. + +2018-02-27 Richard Biener + + PR tree-optimization/84512 + * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): + Do not use the estimate returned from record_stmt_cost for + the scalar iteration cost but sum properly using add_stmt_cost. + +2018-02-27 Richard Biener + + PR tree-optimization/84466 + * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): + Adjust last change to less strictly validate use operands. + +2018-02-27 Martin Liska + + PR gcov-profile/84548 + * gcov.c (process_file): Allow partial overlap and consider it + also as group functions. + (output_lines): Properly calculate range of lines for a group. + +2018-02-27 Martin Liska + + * timevar.c (timer::print_row): Remove 'usr', 'sys', 'wall' and + 'ggc' suffixes. Change first column width. + (timer::print): Fix formatting of the column. + +2018-02-27 Alexandre Oliva + + * tree-ssa-live.c (remove_unused_scope_block_p): Do not + preserve inline entry blocks for the sake of debug inline + entry point markers alone. + (remove_unused_locals): Suggest in comments a better place to + force the preservation of inline entry blocks that are + otherwise unused, but do not preserve them. + +2018-02-26 H.J. Lu + + * config/i386/i386.c (ix86_output_indirect_jmp): Update comments. + +2018-02-26 H.J. Lu + + PR target/84039 + * config/i386/constraints.md (Bs): Replace + ix86_indirect_branch_register with + TARGET_INDIRECT_BRANCH_REGISTER. + (Bw): Likewise. + * config/i386/i386.md (indirect_jump): Likewise. + (tablejump): Likewise. + (*sibcall_memory): Likewise. + (*sibcall_value_memory): Likewise. + Peepholes of indirect call and jump via memory: Likewise. + (*sibcall_GOT_32): Disallowed for TARGET_INDIRECT_BRANCH_REGISTER. + (*sibcall_value_GOT_32): Likewise. + * config/i386/predicates.md (indirect_branch_operand): Likewise. + (GOT_memory_operand): Likewise. + (call_insn_operand): Likewise. + (sibcall_insn_operand): Likewise. + (GOT32_symbol_operand): Likewise. + * config/i386/i386.h (TARGET_INDIRECT_BRANCH_REGISTER): New. + +2018-02-26 Eric Botcazou + + PR rtl-optimization/83496 + * reorg.c (steal_delay_list_from_target): Change REDUNDANT array from + booleans to RTXes. Call fix_reg_dead_note on every non-null element. + (steal_delay_list_from_fallthrough): Call fix_reg_dead_note on a + redundant insn, if any. + (relax_delay_slots): Likewise. + (update_reg_unused_notes): Rename REDUNDANT_INSN to OTHER_INSN. + +2018-02-26 Richard Sandiford + + PR tree-optimization/83965 + * tree-vect-patterns.c (vect_reassociating_reduction_p): Assume + that grouped statements are part of a reduction chain. Return + true if the statement is not marked as a reduction itself but + is part of a group. + (vect_recog_dot_prod_pattern): Don't check whether the statement + is part of a group here. + (vect_recog_sad_pattern): Likewise. + (vect_recog_widen_sum_pattern): Likewise. + +2018-02-26 Eric Botcazou + + PR debug/84545 + * final.c (rest_of_clean_state): Also look for calls inside sequences. + +2018-02-26 H.J. Lu + + PR target/84530 + * config/i386/i386-protos.h (ix86_output_indirect_jmp): Remove + the bool argument. + (ix86_output_indirect_function_return): New prototype. + (ix86_split_simple_return_pop_internal): Likewise. + * config/i386/i386.c (indirect_return_via_cx): New. + (indirect_return_via_cx_bnd): Likewise. + (indirect_thunk_name): Handle return va CX_REG. + (output_indirect_thunk_function): Create alias for + __x86_return_thunk_[re]cx and __x86_return_thunk_[re]cx_bnd. + (ix86_output_indirect_jmp): Remove the bool argument. + (ix86_output_indirect_function_return): New function. + (ix86_split_simple_return_pop_internal): Likewise. + * config/i386/i386.md (*indirect_jump): Don't pass false + to ix86_output_indirect_jmp. + (*tablejump_1): Likewise. + (simple_return_pop_internal): Change it to define_insn_and_split. + Call ix86_split_simple_return_pop_internal to split it for + -mfunction-return=. + (simple_return_indirect_internal): Call + ix86_output_indirect_function_return instead of + ix86_output_indirect_jmp. + +2018-02-26 Jakub Jelinek + + PR bootstrap/84405 + * vec.h (vec_default_construct): For BROKEN_VALUE_INITIALIZATION use + memset and value initialization afterwards. + +2018-02-26 Christophe Lyon + + * Makefile.in (lto-wrapper): Use ALL_LINKERFLAGS. + +2018-02-26 Ramana Radhakrishnan + + PR target/84521 + * common/config/aarch64/aarch64-common.c + (aarch_option_optimization_table[]): Switch + off fomit-frame-pointer + +2018-02-26 Kito Cheng + Chung-Ju Wu + + * config/nds32/nds32-multiple.md (load_multiple): Disallow + volatile memory. + (store_multiple): Ditto. + +2018-02-26 Kito Cheng + + * config.gcc: Add --with-cpu support for nds32 target. + * config/nds32/nds32-opts.h (nds32_cpu_type): New. + * config/nds32/nds32.opt: Add -mcpu= option. + +2018-02-25 Segher Boessenkool + + * config/rs6000/rs6000.opt (mvrsave=no, mvrsave=yes, isel=no, + isel=yes): Warn for these deprecated options. + +2018-02-23 David Edelsohn + + * config/rs6000/aix71.h (TARGET_DEFAULT): Change to + ISA_2_5_MASKS_EMBEDDED. + +2018-02-23 Jakub Jelinek + + * ipa-prop.c (ipa_vr_ggc_hash_traits::hash): Hash p->min and + p->max as pointers rather than using iterative_hash_expr. + +2018-02-23 Carl Love + + * config/rs6000/rs6000-builtin.def: Change VSIGNED2 and VUNSIGNED2 + macro expansions from BU_VSX_2 to BU_P8V_VSX_2 and BU_VSX_OVERLOAD_2 to + BU_P8V_OVERLOAD_2. + * config/rs6000/rs6000-c.c: Change VSX_BUILTIN_VEC_VSIGNED2 to + P8V_BUILTIN_VEC_VSIGNED2. Change VSX_BUILTIN_VEC_VUNSIGNED2 to + P8V_BUILTIN_VEC_VUNSIGNED2. + +2018-02-22 Vladimir Makarov + + PR target/81572 + * lra-int.h (LRA_UNKNOWN_ALT, LRA_NON_CLOBBERED_ALT): New macros. + * lra.c (lra_set_insn_recog_data, lra_update_insn_recog_data): Use + LRA_UNKNOWN_ALT. + * lra-constraints.c (curr_insn_transform): Set up + LRA_NON_CLOBBERED_ALT for moves processed on the fast path. Use + LRA_UNKNOWN_ALT. + (remove_inheritance_pseudos): Use LRA_UNKNOWN_ALT. + * lra-eliminations.c (spill_pseudos): Ditto. + (process_insn_for_elimination): Ditto. + * lra-lives.c (reg_early_clobber_p): Use the new macros. + * lra-spills.c (spill_pseudos): Use LRA_UNKNOWN_ALT and + LRA_NON_CLOBBERED_ALT. + +2018-02-22 Martin Sebor + + PR tree-optimization/84480 + * gimple-fold.c (gimple_fold_builtin_strcpy): Move warnings + to maybe_diag_stxncpy_trunc. Call it. + * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Integrate warnings + from gimple_fold_builtin_strcpy. Print inlining stack. + (handle_builtin_stxncpy): Print inlining stack. + * tree-ssa-strlen.h (maybe_diag_stxncpy_trunc): Declare. + +2018-02-22 H.J. Lu + + PR target/84176 + * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an + error when -mindirect-branch=thunk-extern, -fcf-protection=branch + and -fcheck-pointer-bounds are used together. + (indirect_thunk_prefix): New enum. + (indirect_thunk_need_prefix): New function. + (indirect_thunk_name): Replace need_bnd_p with need_prefix. Use + "_nt" instead of "_bnd" for NOTRACK prefix. + (output_indirect_thunk): Replace need_bnd_p with need_prefix. + (output_indirect_thunk_function): Likewise. + (): Likewise. + (ix86_code_end): Update output_indirect_thunk_function calls. + (ix86_output_indirect_branch_via_reg): Replace + ix86_bnd_prefixed_insn_p with indirect_thunk_need_prefix. + (ix86_output_indirect_branch_via_push): Likewise. + (ix86_output_function_return): Likewise. + * doc/invoke.texi: Document -mindirect-branch=thunk-extern is + incompatible with -fcf-protection=branch and + -fcheck-pointer-bounds. + +2018-02-22 Steve Ellcey + + PR target/83335 + * config/aarch64/aarch64.c (aarch64_print_address_internal): + Change gcc_assert call to output_operand_lossage. + +2018-02-22 Steve Ellcey + + * doc/extend.texi (__builtin_extend_pointer): Document builtin. + +2018-02-22 DJ Delorie + Sebastian Perta + Oleg Endo + + * config/rx/rx.c (rx_rtx_costs): New function. + (TARGET_RTX_COSTS): Override to use rx_rtx_costs. + +2018-02-22 Thomas Preud'homme + + * config/arm/t-multilib: Map Armv8-R to Armv7 multilibs. + +2018-02-22 Martin Liska + + PR driver/83193 + * common/config/arm/arm-common.c (arm_print_hint_for_cpu_option): + Add "native" as a possible value. + +2018-02-22 Martin Liska + + PR driver/83193 + * config/i386/i386.c (ix86_option_override_internal): + Add "native" as a possible value for -march and -mtune. + +2018-02-22 Jakub Jelinek + + PR target/84502 + * stor-layout.c (finalize_type_size): Propagate TYPE_EMPTY_P flag + to all type variants. + + PR tree-optimization/84503 + * gimple-ssa-store-merging.c (merged_store_group::merge_into): Compute + width as info->bitpos + info->bitsize - start. + (merged_store_group::merge_overlapping): Simplify width computation. + (check_no_overlap): New function. + (imm_store_chain_info::try_coalesce_bswap): Compute expected + start + width and last_order of the group, fail if check_no_overlap + fails. + (imm_store_chain_info::coalesce_immediate_stores): Don't merge info + to group if check_no_overlap fails. + +2018-02-21 Segher Boessenkool + + * config/rs6000/altivec.md: Delete contraint arguments to + define_expand, define_split, and define_peephole2, and in + define_insn_and_split if always unused. + * config/rs6000/darwin.md: Ditto. + * config/rs6000/dfp.md: Ditto. + * config/rs6000/rs6000.md: Ditto. + * config/rs6000/sync.md: Ditto. + * config/rs6000/vector.md: Ditto. + * config/rs6000/vsx.md: Ditto. + +2018-02-21 Segher Boessenkool + + * config/rs6000/altivec.md: Write output control strings as braced + blocks instead of double-quoted strings. + * config/rs6000/darwin.md: Ditto. + * config/rs6000/rs6000.md: Ditto. + * config/rs6000/vector.md: Ditto. + * config/rs6000/vsx.md: Ditto. + +2018-02-21 Jason Merrill + + PR c++/84314 - ICE with templates and fastcall attribute. + * attribs.c (build_type_attribute_qual_variant): Remove assert. + +2018-02-21 Jan Hubicka + + * ipa-cp.c (determine_versionability): Fix comment typos. + +2018-02-21 Jan Hubicka + + PR c/84229 + * ipa-cp.c (determine_versionability): Do not version functions caling + va_arg_pack. + +2018-02-21 Martin Liska + + PR driver/83193 + * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch): + Add "native" as a possible value. + * config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT): Define + the macro when native cpu detection is available. + +2018-02-21 Martin Liska + + PR driver/83193 + * common/config/arm/arm-common.c (arm_print_hint_for_arch_option): + Add "native" as a possible value. + * config/arm/arm.h (HAVE_LOCAL_CPU_DETECT): Define the macro + when native cpu detection is available. + +2018-02-21 Jakub Jelinek + Martin Sebor + + PR tree-optimization/84478 + * gimple-fold.h (get_range_strlen): Add a bool argument defaulted to + false. + * gimple-fold.c (get_range_strlen): Make minlen const and assume it + can't be NULL. Change FUZZY from bool to int, for 1 add PHI/COND_EXPR + support which is conservatively correct, for 2 only stay conservative + for maxlen. Formatting and comment capitalization fixes. Add STRICT + argument to the 2 argument get_range_strlen, adjust 6 arg + get_range_strlen caller and clear minmaxlen[0] and [1] if it returned + false. + (get_maxval_strlen): Adjust 6 arg get_range_strlen caller. + (gimple_fold_builtin_strlen): Pass true as last argument to + get_range_strlen. + +2018-02-20 Martin Sebor + + PR middle-end/84095 + * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): New. + (builtin_memref::set_base_and_offset): Same. Handle inner references. + (builtin_memref::builtin_memref): Factor out parts into + set_base_and_offset and call it. + +2018-02-20 Richard Sandiford + + PR middle-end/84406 + * optabs-query.c (find_widening_optab_handler_and_mode): If from_mode + is a scalar_int_mode, assert that to_mode is a scalar_int_mode with + greater precision. If to_mode is a MODE_PARTIAL_INT, stop the + search at the associated MODE_INT. + +2018-02-20 Jeff Law + + PR middle-end/82123 + PR tree-optimization/81592 + PR middle-end/79257 + * gimple-ssa-sprintf.c (format_integer): Query EVRP range analyzer + for range data rather than using global data. + * gimple-ssa-sprintf.c (get_int_range): Query EVRP range analyzer for + range data rather than using global data. + * gimple-ssa-sprintf.c (get_int_range): Accept vr_values parameter + pass it to children as needed. + (struct directive::fmtresult): Similarly. + (struct directive::set_width): Similarly. + (struct directive::set_precision): Similarly. + (format_integer, format_directive, parse_directive): Similarly. + (format_none): Accept unnamed vr_values parameter. + (format_percent, format_floating, format_character): Similarly. + (format_string, format_plain): Similarly. + * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): Query + the EVRP range analyzer for range data rather than using global data. + * gimple-ssa-sprintf.c: Include alloc-pool.h, vr-values.h and + gimple-ssa-evrp-analyze.h + (class sprintf_dom_walker): Add after_dom_children member function. + Add evrp_range_analyzer member. + (sprintf_dom_walker::before_dom_children): Call into the EVRP + range analyzer as needed. + (sprintf_dom_walker::after_dom_children): New member function. + * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::enter): Do nothing + if not optimizing. + (evrp_range_analyzer::record_ranges_from_stmt): Likewise. + (evrp_range_analyzer::pop_to_marker): Likewise. + +2018-02-20 Richard Sandiford + + PR tree-optimization/84419 + * internal-fn.c (expand_call_mem_ref): Create a TARGET_MEM_REF + with the required type if its current type is compatible but + different. + +2018-02-20 Jakub Jelinek + + PR middle-end/82004 + * match.pd (pow(C,x) -> exp(log(C)*x)): Delay all folding until + after vectorization. + +2018-02-20 Martin Liska + + PR driver/83193 + * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch): Print + possible values if we don't have a hint. + +2018-02-20 Martin Liska + + PR c/84310 + PR target/79747 + * final.c (shorten_branches): Build align_tab array with one + more element. + * opts.c (finish_options): Add alignment option limit check. + (MAX_CODE_ALIGN): Likewise. + (MAX_CODE_ALIGN_VALUE): Likewise. + * doc/invoke.texi: Document maximum allowed option value for + all -falign-* options. + +2018-02-19 Jakub Jelinek + + PR target/84146 + * reg-notes.def (REG_CALL_ARG_LOCATION): New reg note. + * insn-notes.def (NOTE_INSN_CALL_ARG_LOCATION): Remove. + * var-tracking.c (emit_note_insn_var_location): Remove all references + to NOTE_INSN_CALL_ARG_LOCATION. + (emit_notes_in_bb): Emit arguments as REG_CALL_ARG_LOCATION note on + the CALL_INSN rather than separate NOTE_INSN_CALL_ARG_LOCATION note. + Use copy_rtx_if_shared. + * dwarf2out.c (gen_subprogram_die): Use XEXP with 0 instead of + NOTE_VAR_LOCATION on ca_loc->call_arg_loc_note. + (dwarf2out_var_location): Remove handling of + NOTE_INSN_CALL_ARG_LOCATION, instead handle REG_CALL_ARG_LOCATION note + on call_insn. + * final.c (final_scan_insn): Remove all references to + NOTE_INSN_CALL_ARG_LOCATION. + (rest_of_clean_state): Likewise. Remove REG_CALL_ARG_LOCATION notes + before dumping final insns. + * except.c (emit_note_eh_region_end): Remove all references to + NOTE_INSN_CALL_ARG_LOCATION. + * config/alpha/alpha.c (alpha_pad_function_end): Likewise. + * config/c6x/c6x.c (c6x_gen_bundles): Likewise. + * config/arc/arc.c (hwloop_optimize): Likewise. + * config/arm/arm.c (create_fix_barrier): Likewise. + * config/s390/s390.c (s390_chunkify_start): Likewise. + * config/sh/sh.c (find_barrier): Likewise. + * config/i386/i386.c (rest_of_insert_endbranch, + ix86_seh_fixup_eh_fallthru): Likewise. + * config/xtensa/xtensa.c (hwloop_optimize): Likewise. + * config/iq2000/iq2000.c (final_prescan_insn): Likewise. + * config/frv/frv.c (frv_function_prologue): Likewise. + * emit-rtl.c (try_split): Likewise. Copy over REG_CALL_ARG_LOCATION + reg note. + (note_outside_basic_block_p): Remove all references to + NOTE_INSN_CALL_ARG_LOCATION. + * gengtype.c (adjust_field_rtx_def): Likewise. + * print-rtl.c (rtx_writer::print_rtx_operand_code_0, print_insn): + Likewise. + * jump.c (cleanup_barriers, delete_related_insns): Likewise. + * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. + + PR c++/84444 + * builtins.c (builtin_mathfn_code): Don't check if CALL_EXPR_FN (t) + is ADDR_EXPR. + + PR tree-optimization/84452 + * tree-vect-patterns.c (vect_recog_pow_pattern): Don't call + expand_simd_clones if targetm.simd_clone.compute_vecsize_and_simdlen + is NULL. + +2018-02-19 Martin Liska + + PR sanitizer/82183 + * passes.def: Put pass_sancov_O0 before pass_lower_switch with -O0. + +2018-02-19 Martin Liska + Richard Sandiford + + PR tree-optimization/82491 + * gimple-fold.c (get_base_constructor): Make earlier bail out + to prevent ubsan. + +2018-02-19 Carl Love + + * config/rs6000/rs6000-builtin.def: Change NEG macro expansions from + BU_ALTIVEC_A to BU_P8V_AV_1 and BU_ALTIVEC_OVERLOAD_1 to + BU_P8V_OVERLOAD_1. + * config/rs6000/rs6000-c.c: Change ALTIVEC_BUILTIN_VEC_NEG to + P8V_BUILTIN_VEC_NEG. + +2018-02-19 Sebastian Perta + + * config/rl78/rl78.md (movdf): New define expand. + +2018-02-19 Martin Liska + + PR other/80589 + * doc/invoke.texi: Fix typo. + * params.def (PARAM_MAX_LOOP_HEADER_INSNS): Likewise. + +2018-02-18 Segher Boessenkool + + * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't + handle rs6000_single_float and rs6000_double_float specially for + e500 family CPUs. + +2018-02-16 Jeff Law + + * config/rx/rx.c (add_pop_cfi_notes): New function.; + (pop_regs): Use it. + +2018-02-16 Jakub Jelinek + + PR ipa/84425 + * ipa-inline.c (inline_small_functions): Fix a typo. + +2018-02-16 Nathan Sidwell + + * doc/extend.texi (Backwards Compatibility): Americanize 'behaviour'. + +2018-02-16 Carl Love + + * config/rs6000/rs6000-builtin.def: Add BU_P8V_VSX_2 macro definition. + Change FLOAT2 expansions from BU_VSX_2 to BU_P8V_VSX_2 and + from BU_VSX_OVERLOAD_2 to BU_P8V_OVERLOAD_2. + * config/rs6000/rs6000-c.c: Changed macro VSX_BUILTIN_VEC_FLOAT2 + expansion to P8V_BUILTIN_VEC_FLOAT2. + +2018-02-16 Vladimir Makarov + + PR rtl-optimization/70023 + * lra-constraints.c (inherit_in_ebb): Take hard reg mode of + src_regno into account. + +2018-02-16 Carl Love + + * config/rs6000/altivec.h: Remove vec_vextract4b and vec_vinsert4b. + * config/rs6000/rs6000-builtin.def: Remove macro expansion for + VEXTRACT4B, VINSERT4B, VINSERT4B_DI and VEXTRACT4B. + * config/rs6000/rs6000.c: Remove case statements for + P9V_BUILTIN_VEXTRACT4B, P9V_BUILTIN_VEC_VEXTRACT4B, + P9V_BUILTIN_VINSERT4B, P9V_BUILTIN_VINSERT4B_DI, + and P9V_BUILTIN_VEC_VINSERT4B. + * config/rs6000/rs6000-c.c (altivec_expand_builtin): Remove entries for + P9V_BUILTIN_VEC_VEXTRACT4B and P9V_BUILTIN_VEC_VINSERT4B. + * config/rs6000/vsx.md: + * doc/extend.texi: Remove vec_vextract4b, non ABI definitions for + vec_insert4b. + +2018-02-16 Carl Love + + * config/rs6000/altivec.h: Add builtin names vec_extract4b + vec_insert4b. + * config/rs6000/rs6000-builtin.def: Add INSERT4B and EXTRACT4B + definitions. + * config/rs6000/rs6000-c.c: Add the definitions for + P9V_BUILTIN_VEC_EXTRACT4B and P9V_BUILTIN_VEC_INSERT4B. + * config/rs6000/rs6000.c (altivec_expand_builtin): Add + P9V_BUILTIN_EXTRACT4B and P9V_BUILTIN_INSERT4B case statements. + * config/rs6000/vsx.md: Add define_insn extract4b. Add define_expand + definition for insert4b and define insn *insert3b_internal. + * doc/extend.texi: Add documentation for vec_extract4b. + +2018-02-16 Nathan Sidwell + + * doc/extend.texi (Backwards Compatibility): Mention friend + injection. Note for-scope is deprecated. + * doc/invoke.texi (-ffriend-injection): Deprecate. + +2018-02-16 Segher Boessenkool + + * combine.c (try_combine): When adjusting LOG_LINKS for the destination + that moved to I2, also allow destinations that are a paradoxical + subreg (instead of a normal reg). + +2018-02-16 Oleg Endo + + PR target/83831 + * config/rx/rx.c (rx_fuse_in_memory_bitop): Convert shift operand + to QImode. + +2018-02-16 Richard Biener + + PR tree-optimization/84037 + PR tree-optimization/84016 + PR target/82862 + * config/i386/i386.c (ix86_builtin_vectorization_cost): + Adjust vec_construct for the fact we need additional higher latency + 128bit inserts for AVX256 and AVX512 vector builds. + (ix86_add_stmt_cost): Scale vector construction cost for + elementwise loads. + +2018-02-16 Richard Biener + + PR tree-optimization/84417 + * tree-ssa.c (non_rewritable_mem_ref_base): Properly constrain + the MEM_REF offset when conversion to BIT_FIELD_REF is desired. + (non_rewritable_lvalue_p): Likewise, use poly-ints. + +2018-02-16 Martin Liska + + PR sanitizer/84307 + * internal-fn.def (ASAN_CHECK): Set proper flags. + (ASAN_MARK): Likewise. + +2018-02-16 Julia Koval + + * config/i386/i386.c (ix86_option_override_internal): Remove PTA_CLWB + from PTA_CANNONLAKE. + +2018-02-16 Jakub Jelinek + + PR target/84272 + * config/aarch64/cortex-a57-fma-steering.c (fma_forest::merge_forest): + Use ++iter rather than iter++ for std::list iterators. + (func_fma_steering::dfs): Likewise. Don't delete nodes right away, + defer deleting them until all nodes in the forest are processed. Do + free even leaf nodes. Change to_process into auto_vec. + + PR bootstrap/84405 + * system.h (BROKEN_VALUE_INITIALIZATION): Define for GCC < 4.3. + * vec.h (vec_default_construct): Use memset instead of placement new + if BROKEN_VALUE_INITIALIZATION is defined. + * hash-table.h (hash_table::empty_slow): Use + memset instead of value initialization if BROKEN_VALUE_INITIALIZATION + is defined. + + PR rtl-optimization/83723 + * lra-int.h (lra_substitute_pseudo): Add DEBUG_P argument. + * lra.c (lra_substitute_pseudo): Likewise. If true, use + gen_rtx_raw_SUBREG instead of gen_rtx_SUBREG. Pass DEBUG_P to + recursive calls. + (lra_substitute_pseudo_within_insn): Adjust lra_substitute_pseudo + callers. + * lra-constraints.c (inherit_reload_reg, split_reg): Likewise. + +2018-02-16 Eric Botcazou + + PR rtl-optimization/81443 + * rtlanal.c (num_sign_bit_copies1) : Do not propagate results + from inner REGs to paradoxical SUBREGs. + +2018-02-16 Richard Biener + + PR tree-optimization/84399 + * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): + For operands we can analyze at their definition make sure we can + analyze them at each use as well. + +2018-02-16 Richard Biener + + PR tree-optimization/84190 + * tree-ssa.c (non_rewritable_mem_ref_base): Do not touch + volatile accesses if the decl isn't volatile. + +2018-02-15 Jason Merrill + + PR c++/84314 - ICE with templates and fastcall attribute. + * attribs.c (build_type_attribute_qual_variant): Don't clobber + TYPE_CANONICAL on an existing type. + +2018-02-15 Jakub Jelinek + + PR tree-optimization/84383 + * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Don't look at + dstoff nor call operand_equal_p if dstbase is NULL. + + PR tree-optimization/84334 + * match.pd ((A +- CST1) +- CST2 -> A + CST3): If A is + also a CONSTANT_CLASS_P, punt. + +2018-02-14 Jim Wilson + + * config/riscv/riscv.c (riscv_first_stack_step): Move locals after + first SMALL_OPERAND check. New local min_second_step. Move assert + to where locals are set. Add TARGET_RVC support. + * config/riscv/riscv.h (C_SxSP_BITS, SWSP_REACH, SDSP_REACH): New. + +2018-02-14 Indu Bhagat + + * doc/invoke.texi: Correct -Wformat-overflow code sample. + +2018-02-14 Martin Sebor + + PR tree-optimization/83698 + * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For + arrays constrain the offset range to their bounds. + (builtin_access::strcat_overlap): Adjust the bounds of overlap offset. + (builtin_access::overlap): Avoid setting the size of overlap if it's + already been set. + (maybe_diag_overlap): Also consider arrays when deciding what values + of offsets to include in diagnostics. + +2018-02-14 Martin Sebor + + PR c/84108 + * attribs.c (diag_attr_exclusions): Consider the exclusion(s) + that correspond to the kind of a declaration. + +2018-02-14 John David Anglin + + PR target/83984 + * config/pa/pa.md: Load address of PIC label using the linkage table + if the label is nonlocal. + +2018-02-14 Kelvin Nilsen + + * config/rs6000/rs6000.c (rs6000_option_override_internal): Issue + warning message if user requests -maltivec=be. + * doc/invoke.texi: Document deprecation of -maltivec=be. + +2018-02-14 Will Schmidt + + PR target/84220 + * config/rs6000/rs6000-c.c: Update definitions for + ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SLDW, + VEC_XXSLDWI and ALTIVEC_BUILTIN_VEC_XXPERMDI builtins. + +2018-02-14 Igor Tsimbalist + + PR target/84239 + * config/i386/cetintrin.h: Remove _rdssp[d|q] and + add _get_ssp intrinsics. Remove argument from + __builtin_ia32_rdssp[d|q]. + * config/i386/i386-builtin-types.def: Add UINT_FTYPE_VOID. + * config/i386/i386-builtin.def: Remove argument from + __builtin_ia32_rdssp[d|q]. + * config/i386/i386.c: Use UINT_FTYPE_VOID. Use + ix86_expand_special_args_builtin for _rdssp[d|q]. + * config/i386/i386.md: Remove argument from rdssp[si|di] insn. + Clear register before usage. + * doc/extend.texi: Remove argument from __builtin_ia32_rdssp[d|q]. + Add documentation for new _get_ssp and _inc_ssp intrinsics. + +2018-02-14 Richard Sandiford + + PR tree-optimization/84357 + * tree-data-ref.c (object_address_invariant_in_loop_p): Check + operand 1 of an ARRAY_REF too. + +2018-02-14 Oleg Endo + + PR target/83831 + * config/rx/rx-protos.h (rx_reg_dead_or_unused_after_insn, + rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New + declarations. + (set_of_reg): New struct. + (rx_find_set_of_reg, rx_find_use_of_reg): New functions. + * config/rx/rx.c (rx_reg_dead_or_unused_after_insn, + rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New + functions. + * config/rx/rx.md (andsi3, iorsi3, xorsi3): Convert to insn_and_split. + Split into bitclr, bitset, bitinvert patterns if appropriate. + (*bitset, *bitinvert, *bitclr): Convert to named insn_and_split and + use rx_fuse_in_memory_bitop. + (*bitset_in_memory, *bitinvert_in_memory, *bitclr_in_memory): Convert + to named insn, correct maximum insn length. + +2018-02-14 Jozef Lawrynowicz + + PR target/79242 + * machmode.def: Define a complex mode for PARTIAL_INT. + * genmodes.c (complex_class): Return MODE_COMPLEX_INT for + MODE_PARTIAL_INT. + * doc/rtl.texi: Document CSPImode. + * config/msp430/msp430.c (msp430_hard_regno_nregs): Add CPSImode + handling. + (msp430_hard_regno_nregs_with_padding): Likewise. + +2018-02-13 Peter Bergner + + PR target/84279 + * config/rs6000/rs6000.c (mem_operand_gpr): Disallow altivec addresses. + +2018-02-13 Segher Boessenkool + + PR rtl-optimization/84169 + * combine.c (try_combine): New variable split_i2i3. Set it to true if + we generated a parallel as new i3 and we split that to new i2 and i3 + instructions. Handle split_i2i3 similar to swap_i2i3: scan the + LOG_LINKs of i3 to see which of those need to link to i2 now. Link + those to i2, not i1. Partially rewrite this scan code. + +2018-02-13 Jakub Jelinek + + PR c/82210 + * stor-layout.c (place_field): For variable length fields, adjust + offset_align afterwards not just based on the field's alignment, + but also on the size. + + PR middle-end/84309 + * match.pd (pow(C,x) -> exp(log(C)*x)): Use exp2s and log2s instead + of exps and logs in the use_exp2 case. + +2018-02-13 Jeff Law + + * config/rl/rl78.c (rl78_attribute_table): Fix terminator and + entry for "vector". + + * config/rl78/rl78.c (rl78_handle_func_attribute): Mark + ARGS as unused. + +2018-02-13 Alexandre Oliva + + PR debug/84342 + PR debug/84319 + * common.opt (gas-loc-support, gas-locview-support): New. + (ginline-points, ginternal-reset-location-views): New. + * doc/invoke.texi: Document them. Use @itemx where intended. + (gvariable-location-views): Adjust. + * target.def (reset_location_view): New. + * doc/tm.texi.in (DWARF2_ASM_VIEW_DEBUG_INFO): New. + (TARGET_RESET_LOCATION_VIEW): New. + * doc/tm.texi: Rebuilt. + * dwarf2out.c (dwarf2out_default_as_loc_support): New. + (dwarf2out_default_as_locview_support): New. + (output_asm_line_debug_info): Use option variables. + (dwarf2out_maybe_output_loclist_view_pair): Likewise. + (output_loc_list): Likewise. + (add_high_low_attributes): Check option variables. + Don't output entry view attribute in strict mode. + (gen_inlined_subroutine_die): Check option variables. + (dwarf2out_inline_entry): Likewise. + (init_sections_and_labels): Likewise. + (dwarf2out_early_finish): Likewise. + (maybe_reset_location_view): New, from... + (dwarf2out_var_location): ... here. Call it. + * debug.h (dwarf2out_default_as_loc_support): Declare. + (dwarf2out_default_as_locview_support): Declare. + * hooks.c (hook_int_rtx_insn_0): New. + * hooks.h (hook_int_rtx_insn_0): Declare. + * toplev.c (process_options): Take -gas-loc-support and + -gas-locview-support from dwarf2out. Enable + -gvariable-location-views by default only with locview + assembler support. Enable -ginternal-reset-location-views by + default only if the target defines the corresponding hook. + Enable -ginline-points by default if location views are + enabled; force it disabled if statement frontiers are + disabled. + * tree-inline.c (expand_call_inline): Check option variables. + * tree-ssa-live.c (remove_unused_scope_block_p): Likewise. + +2018-02-13 Richard Sandiford + + PR tree-optimization/84321 + * tree-vrp.c (intersect_range_with_nonzero_bits): Fix VR_ANTI_RANGE + handling. Also check whether the anti-range contains any values + that satisfy the mask; switch to a VR_RANGE if not. + +2018-02-13 Paolo Bonzini + + PR sanitizer/84340 + * internal-fn.def (ASAN_CHECK, ASAN_MARK): Revert changes to fnspec. + +2018-02-13 Martin Jambor + + PR c++/83990 + * ipa-param-manipulation.c (ipa_modify_call_arguments): Use location + of call statements, also set location of a load to a temporary. + +2018-02-13 Sebastian Perta + + * config/rl78/rl78.c (add_vector_labels): New function. + * config/rl78/rl78.c (rl78_handle_vector_attribute): New function. + * config/rl78/rl78.c (rl78_start_function): Call add_vector_labels. + * config/rl78/rl78.c (rl78_handle_func_attribute): Removed the assert + which checks that no arguments are passed. + * config/rl78/rl78.c (rl78_attribute_table): Add "vector" attribute. + * doc/extend.texi: Documentation for the new attribute. + +2018-02-13 Andreas Schwab + + * config/riscv/linux.h (CPP_SPEC): Define. + +2018-02-13 Jakub Jelinek + + PR target/84335 + * config/i386/i386.c (ix86_init_mmx_sse_builtins): Pass + OPTION_MASK_ISA_AES | OPTION_MASK_ISA_SSE2 instead of + OPTION_MASK_ISA_AES as first argument to def_builtin_const + for AES builtins. Pass OPTION_MASK_ISA_PCLMUL | OPTION_MASK_ISA_SSE2 + instead of OPTION_MASK_ISA_PCLMUL as first argument to + def_builtin_const for __builtin_ia32_pclmulqdq128 builtin. + * config/i386/wmmintrin.h: If __SSE2__ is not defined, enable it + temporarily for AES and PCLMUL builtins. + + PR tree-optimization/84339 + * gimple-fold.c (get_range_strlen): Set *FLEXP to true when handling + ARRAY_REF where first operand is array_at_struct_end_p COMPONENT_REF. + Formatting fixes. + + PR middle-end/84309 + * match.pd (pow(C,x) -> exp(log(C)*x)): Optimize instead into + exp2(log2(C)*x) if C is a power of 2 and c99 runtime is available. + * generic-match-head.c (canonicalize_math_after_vectorization_p): New + inline function. + * gimple-match-head.c (canonicalize_math_after_vectorization_p): New + inline function. + * omp-simd-clone.h: New file. + * omp-simd-clone.c: Include omp-simd-clone.h. + (expand_simd_clones): No longer static. + * tree-vect-patterns.c: Include fold-const-call.h, attribs.h, + cgraph.h and omp-simd-clone.h. + (vect_recog_pow_pattern): Optimize pow(C,x) to exp(log(C)*x). + (vect_recog_widen_shift_pattern): Formatting fix. + (vect_pattern_recog_1): Don't check optab for calls. + + PR target/84336 + * config/i386/sse.md (_vpermi2var3_mask): Force + operands[2] into a REG before using gen_lowpart on it. + +2018-02-12 Jeff Law + + PR target/83760 + * config/sh/sh.c (find_barrier): Consider a sibling call + a barrier as well. + + * cse.c (try_back_substitute_reg): Move any REG_ARGS_SIZE note when + successfully back substituting a reg. + +2018-02-12 Richard Biener + + PR tree-optimization/84037 + * tree-vect-slp.c (vect_analyze_slp_cost): Add visited + parameter, move visited init to caller. + (vect_slp_analyze_operations): Separate cost from validity + check, initialize visited once for all instances. + (vect_schedule_slp): Analyze map to CSE vectorized nodes once + for all instances. + * tree-vect-stmts.c (vect_model_simple_cost): Make early + out an assert. + (vect_model_promotion_demotion_cost): Likewise. + (vectorizable_bswap): Guard cost modeling with !slp_node + instead of !PURE_SLP_STMT to avoid double-counting on hybrid + SLP stmts. + (vectorizable_call): Likewise. + (vectorizable_conversion): Likewise. + (vectorizable_assignment): Likewise. + (vectorizable_shift): Likewise. + (vectorizable_operation): Likewise. + (vectorizable_store): Likewise. + (vectorizable_load): Likewise. + (vectorizable_condition): Likewise. + (vectorizable_comparison): Likewise. + +2018-02-12 Paolo Bonzini + + PR sanitizer/84307 + * internal-fn.def (ASAN_CHECK): Fix fnspec to account for return value. + (ASAN_MARK): Fix fnspec to account for return value, change pointer + argument from 'R' to 'W' so that the pointed-to datum is clobbered. + +2018-02-08 Jan Hubicka + + PR middle-end/83665 + * params.def (inline-min-speedup): Increase from 8 to 15. + (max-inline-insns-auto): Decrease from 40 to 30. + * ipa-split.c (consider_split): Add some buffer for function to + be considered inlining candidate. + * invoke.texi (max-inline-insns-auto, inline-min-speedup): UPdate + default values. + +2018-02-12 Richard Biener + + PR tree-optimization/84037 + * tree-vect-slp.c (vect_build_slp_tree_2): Try swapping the + matched stmts if we cannot swap the non-matched ones. + +2018-02-12 Olga Makhotina + + * config/i386/avx512fintrin.h (_mm_mask_scalef_round_sd, + _mm_maskz_scalef_round_sd, _mm_mask_scalef_round_ss, + _mm_maskz_scalef_round_ss): New intrinsics. + (__builtin_ia32_scalefsd_round, __builtin_ia32_scalefss_round): Fix. + * config/i386/i386-builtin.def (__builtin_ia32_scalefsd_round, + __builtin_ia32_scalefss_round): Remove. + (__builtin_ia32_scalefsd_mask_round, + __builtin_ia32_scalefss_mask_round): New intrinsics. + * config/i386/sse.md (vmscalef): Renamed to ... + (vmscalef): ... this. + ((match_operand:VF_128 2 "" + "")): Changed to ... + ((match_operand:VF_128 2 "" + "")): ... this. + ("vscalef\t{%2, %1, %0| + %0, %1, %2}"): Changed to ... + ("vscalef\t{%2, %1, + %0|%0, %1, + %2}"): ... this. + * config/i386/subst.md (round_scalar_nimm_predicate): New. + +2018-02-12 Olga Makhotina + + * config/i386/avx512fintrin.h (_mm_mask_sqrt_round_sd) + (_mm_maskz_sqrt_round_sd, _mm_mask_sqrt_round_ss) + (_mm_maskz_sqrt_round_ss): New intrinsics. + (__builtin_ia32_sqrtsd_round, __builtin_ia32_sqrtss_round): Remove. + (__builtin_ia32_sqrtsd_mask_round) + (__builtin_ia32_sqrtss_mask_round): New builtins. + * config/i386/i386-builtin.def (__builtin_ia32_sqrtsd_round) + (__builtin_ia32_sqrtss_round): Remove. + (__builtin_ia32_sqrtsd_mask_round) + (__builtin_ia32_sqrtss_mask_round): New builtins. + * config/i386/sse.md (vmsqrt2): Renamed to ... + (vmsqrt2): ... this. + ((match_operand:VF_128 1 "vector_operand" + "xBm,")): Changed to ... + ((match_operand:VF_128 1 "vector_operand" + "xBm,")): ... this. + (vsqrt\t{%1, %2, %0| + %0, %2, %1}): Changed to ... + (vsqrt\t{%1, %2, + %0|%0, %2, + %1}): ... this. + ((set_attr "prefix" "")): Changed to ... + ((set_attr "prefix" "")): ... this. + +2018-02-11 Steven Munroe + + PR target/84266 + * config/rs6000/mmintrin.h (_mm_cmpeq_pi32 [_ARCH_PWR9]): + Cast vec_cmpeq result to correct type. + * config/rs6000/mmintrin.h (_mm_cmpgt_pi32 [_ARCH_PWR9]): + Cast vec_cmpgt result to correct type. + +2018-02-11 Alexandre Oliva + + * final.c (final_scan_insn_1): Renamed from... + (final_scan_insn): ... this. New wrapper, to recover + seen from the outermost call in recursive ones. + * config/sparc/sparc.c (output_return): Drop seen from call. + (output_sibcall): Likewise. + * config/visium/visium.c (output_branch): Likewise. + +2018-02-10 John David Anglin + + * config/pa/pa.c (hppa_profile_hook): Mark SYMBOL_REF for _mcount as + function label. + +2018-02-10 Alan Modra + + PR target/84300 + * config/rs6000/rs6000.md (split_stack_return): Remove (use ..). + Specify LR as an input. + +2018-02-10 Jakub Jelinek + + PR sanitizer/83987 + * omp-low.c (maybe_remove_omp_member_access_dummy_vars, + remove_member_access_dummy_vars): New functions. + (lower_omp_for, lower_omp_taskreg, lower_omp_target, + lower_omp_1, execute_lower_omp): Use them. + + PR rtl-optimization/84308 + * shrink-wrap.c (spread_components): Release todo vector. + +2018-02-09 Vladimir Makarov + + PR rtl-optimization/57193 + * ira-color.c (struct allocno_color_data): Add member + conflict_allocno_hard_prefs. + (update_conflict_allocno_hard_prefs): New. + (bucket_allocno_compare_func): Add a preference based on + conflict_allocno_hard_prefs. + (push_allocno_to_stack): Update conflict_allocno_hard_prefs. + (color_allocnos): Remove a dead code. Initiate + conflict_allocno_hard_prefs. Call update_costs_from_prefs. + +2018-02-09 Jakub Jelinek + + PR target/84226 + * config/rs6000/vsx.md (p9_xxbrq_v16qi): Change input operand + constraint from =wa to wa. Avoid a subreg on the output operand, + instead use a pseudo and subreg it in a move. + (p9_xxbrd_): Changed to ... + (p9_xxbrd_v2di): ... this insn, without VSX_D iterator. + (p9_xxbrd_v2df): New expander. + (p9_xxbrw_): Changed to ... + (p9_xxbrw_v4si): ... this insn, without VSX_W iterator. + (p9_xxbrw_v4sf): New expander. + +2018-02-09 Sebastian Perta + + * config/rx/rx.md (movsicc): Update expander to be matched by GCC. + +2018-02-09 Peter Bergner + + PR target/83926 + * config/rs6000/vsx.md (vsx_mul_v2di): Handle generating a 64-bit + multiply in 32-bit mode. + (vsx_div_v2di): Handle generating a 64-bit signed divide in 32-bit mode. + (vsx_udiv_v2di): Handle generating a 64-bit unsigned divide in 32-bit + mode. + +2018-02-09 Sebastian Perta + + * config/rx/constraints.md (CALL_OP_SYMBOL_REF): Added new constraint + to allow or block "symbol_ref" depending on the value of TARGET_JSR. + * config/rx/rx.md (call_internal): Use CALL_OP_SYMBOL_REF. + * config/rx/rx.md (call_value_internal): Use CALL_OP_SYMBOL_REF. + +2018-02-09 Pierre-Marie de Rodat + + PR lto/84213 + * dwarf2out.c (is_trivial_indirect_ref): New function. + (dwarf2out_late_global_decl): Do not generate a location + attribute for variables that have a non-trivial DECL_VALUE_EXPR + and that are not defined in the current unit. + +2018-02-09 Eric Botcazou + + * optabs.c (prepare_cmp_insn): Try harder to emit a direct comparison + instead of a libcall for UNORDERED. + +2018-02-09 Tamar Christina + + PR target/82641 + * config/arm/arm-c.c (arm_cpu_builtins): Un-define __ARM_FEATURE_LDREX, + __ARM_ARCH_PROFILE, __ARM_ARCH_ISA_THUMB, __ARM_FP and __ARM_NEON_FP. + +2018-02-09 Andreas Krebbel + + PR target/PR84295 + * config/s390/s390.c (s390_set_current_function): Invoke + s390_indirect_branch_settings also if fndecl didn't change. + +2018-02-09 Alexandre Oliva + + * config/rs6000/rs6000.md (blockage): Set length to zero. + +2018-02-09 Eric Botcazou + + * expr.c (optimize_bitfield_assignment_op): Remove obsolete assertion. + +2018-02-09 Jakub Jelinek + + PR sanitizer/84285 + * gcc.c (STATIC_LIBASAN_LIBS, STATIC_LIBTSAN_LIBS, + STATIC_LIBLSAN_LIBS, STATIC_LIBUBSAN_LIBS): Handle -static like + -static-lib*san. + + PR debug/84252 + * var-tracking.c (vt_add_function_parameter): Punt for non-onepart + PARALLEL incoming that failed vt_get_decl_and_offset check. + + PR middle-end/84237 + * output.h (bss_initializer_p): Add NAMED argument, defaulted to false. + * varasm.c (bss_initializer_p): Add NAMED argument, if true, ignore + TREE_READONLY bit. + (get_variable_section): For decls in named .bss* sections pass true as + second argument to bss_initializer_p. + +2018-02-09 Marek Polacek + Jakub Jelinek + + PR c++/83659 + * fold-const.c (fold_indirect_ref_1): Use VECTOR_TYPE_P macro. + Formatting fixes. Verify first that tree_fits_poly_int64_p (op01). + Sync some changes from cxx_fold_indirect_ref. + +2018-02-09 Alexandre Oliva + + * cfgexpand.c (expand_gimple_basic_block): Handle inline entry + markers. + * dwarf2out.c (dwarf2_debug_hooks): Enable inline_entry hook. + (BLOCK_INLINE_ENTRY_LABEL): New. + (dwarf2out_var_location): Disregard inline entry markers. + (inline_entry_data): New struct. + (inline_entry_data_hasher): New hashtable type. + (inline_entry_data_hasher::hash): New. + (inline_entry_data_hasher::equal): New. + (inline_entry_data_table): New variable. + (add_high_low_attributes): Add DW_AT_entry_pc and + DW_AT_GNU_entry_view attributes if a pending entry is found + in inline_entry_data_table. Add old entry_pc attribute only + if debug nonbinding markers are disabled. + (gen_inlined_subroutine_die): Set BLOCK_DIE if nonbinding + markers are enabled. + (block_within_block_p, dwarf2out_inline_entry): New. + (dwarf2out_finish): Check that no entries remained in + inline_entry_data_table. + * final.c (reemit_insn_block_notes): Handle inline entry notes. + (final_scan_insn, notice_source_line): Likewise. + (rest_of_clean_state): Skip inline entry markers. + * gimple-pretty-print.c (dump_gimple_debug): Handle inline entry + markers. + * gimple.c (gimple_build_debug_inline_entry): New. + * gimple.h (enum gimple_debug_subcode): Add + GIMPLE_DEBUG_INLINE_ENTRY. + (gimple_build_debug_inline_entry): Declare. + (gimple_debug_inline_entry_p): New. + (gimple_debug_nonbind_marker_p): Adjust. + * insn-notes.def (INLINE_ENTRY): New. + * print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle + inline entry marker notes. + (print_insn): Likewise. + * rtl.h (NOTE_MARKER_P): Add INLINE_ENTRY support. + (INSN_DEBUG_MARKER_KIND): Likewise. + (GEN_RTX_DEBUG_MARKER_INLINE_ENTRY_PAT): New. + * tree-inline.c (expand_call_inline): Build and insert + debug_inline_entry stmt. + * tree-ssa-live.c (remove_unused_scope_block_p): Preserve + inline entry blocks early, if nonbind markers are enabled. + (dump_scope_block): Dump fragment info. + * var-tracking.c (reemit_marker_as_note): Handle inline entry note. + * doc/gimple.texi (gimple_debug_inline_entry_p): New. + (gimple_build_debug_inline_entry): New. + * doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers): + Enable/disable inline entry points too. + * doc/rtl.texi (NOTE_INSN_INLINE_ENTRY): New. + (DEBUG_INSN): Describe inline entry markers. + + * common.opt (gvariable-location-views): New. + (gvariable-location-views=incompat5): New. + * config.in: Rebuilt. + * configure: Rebuilt. + * configure.ac: Test assembler for view support. + * dwarf2asm.c (dw2_asm_output_symname_uleb128): New. + * dwarf2asm.h (dw2_asm_output_symname_uleb128): Declare. + * dwarf2out.c (var_loc_view): New typedef. + (struct dw_loc_list_struct): Add vl_symbol, vbegin, vend. + (dwarf2out_locviews_in_attribute): New. + (dwarf2out_locviews_in_loclist): New. + (dw_val_equal_p): Compare val_view_list of dw_val_class_view_lists. + (enum dw_line_info_opcode): Add LI_adv_address. + (struct dw_line_info_table): Add view. + (RESET_NEXT_VIEW, RESETTING_VIEW_P): New macros. + (DWARF2_ASM_VIEW_DEBUG_INFO): Define default. + (zero_view_p): New variable. + (ZERO_VIEW_P): New macro. + (output_asm_line_debug_info): New. + (struct var_loc_node): Add view. + (add_AT_view_list, AT_loc_list): New. + (add_var_loc_to_decl): Add view param. Test it against last. + (new_loc_list): Add view params. Record them. + (AT_loc_list_ptr): Handle loc and view lists. + (view_list_to_loc_list_val_node): New. + (print_dw_val): Handle dw_val_class_view_list. + (size_of_die): Likewise. + (value_format): Likewise. + (loc_list_has_views): New. + (gen_llsym): Set vl_symbol too. + (maybe_gen_llsym, skip_loc_list_entry): New. + (dwarf2out_maybe_output_loclist_view_pair): New. + (output_loc_list): Output view list or entries too. + (output_view_list_offset): New. + (output_die): Handle dw_val_class_view_list. + (output_dwarf_version): New. + (output_compilation_unit_header): Use it. + (output_skeleton_debug_sections): Likewise. + (output_rnglists, output_line_info): Likewise. + (output_pubnames, output_aranges): Update version comments. + (output_one_line_info_table): Output view numbers in asm comments. + (dw_loc_list): Determine current endview, pass it to new_loc_list. + Call maybe_gen_llsym. + (loc_list_from_tree_1): Adjust. + (add_AT_location_description): Create view list attribute if + needed, check it's absent otherwise. + (convert_cfa_to_fb_loc_list): Adjust. + (maybe_emit_file): Call output_asm_line_debug_info for test. + (dwarf2out_var_location): Reset views as needed. Precompute + add_var_loc_to_decl args. Call get_attr_min_length only if we have the + attribute. Set view. + (new_line_info_table): Reset next view. + (set_cur_line_info_table): Call output_asm_line_debug_info for test. + (dwarf2out_source_line): Likewise. Output view resets and labels to + the assembler, or select appropriate line info opcodes. + (prune_unused_types_walk_attribs): Handle dw_val_class_view_list. + (optimize_string_length): Catch it. Adjust. + (resolve_addr): Copy vl_symbol along with ll_symbol. Handle + dw_val_class_view_list, and remove it if no longer needed. + (hash_loc_list): Hash view numbers. + (loc_list_hasher::equal): Compare them. + (optimize_location_lists): Check whether a view list symbol is + needed, and whether the locview attribute is present, and + whether they match. Remove the locview attribute if no longer + needed. + (index_location_lists): Call skip_loc_list_entry for test. + (dwarf2out_finish): Call output_asm_line_debug_info for test. + Use output_dwarf_version. + * dwarf2out.h (enum dw_val_class): Add dw_val_class_view_list. + (struct dw_val_node): Add val_view_list. + * final.c (SEEN_NEXT_VIEW): New. + (set_next_view_needed): New. + (clear_next_view_needed): New. + (maybe_output_next_view): New. + (final_start_function): Rename to... + (final_start_function_1): ... this. Take pointer to FIRST, + add SEEN parameter. Emit param bindings in the initial view. + (final_start_function): Reintroduce SEEN-less interface. + (final): Rename to... + (final_1): ... this. Take SEEN parameter. Output final pending + next view at the end. + (final): Reintroduce seen-less interface. + (final_scan_insn): Output pending next view before switching + sections or ending a block. Mark the next view as needed when + outputting variable locations. Notify debug backend of section + changes, and of location view changes. + (rest_of_handle_final): Adjust. + * toplev.c (process_options): Autodetect value for debug variable + location views option. Warn on incompat5 without -gdwarf-5. + * doc/invoke.texi (gvariable-location-views): New. + (gvariable-location-views=incompat5): New. + (gno-variable-location-views): New. + +2018-02-08 David Malcolm + + PR tree-optimization/84136 + * tree-cfg.c (find_taken_edge_computed_goto): Remove assertion + that the result of find_edge is non-NULL. + +2018-02-08 Sergey Shalnov + + PR target/83008 + * config/i386/x86-tune-costs.h (skylake_cost): Fix cost of + storing integer register in SImode. Fix cost of 256 and 512 + byte aligned SSE register store. + +2018-02-08 Sergey Shalnov + + * config/i386/i386.c (ix86_multiplication_cost): Fix + multiplication cost for TARGET_AVX512DQ. + +2018-02-08 Marek Polacek + + PR tree-optimization/84238 + * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Verify the result of + get_range_strlen. + +2018-02-08 Richard Sandiford + + PR tree-optimization/84265 + * tree-vect-stmts.c (vectorizable_store): Don't treat + VMAT_CONTIGUOUS accesses as grouped. + (vectorizable_load): Likewise. + +2018-02-08 Richard Sandiford + + PR tree-optimization/81635 + * wide-int.h (wi::round_down_for_mask, wi::round_up_for_mask): Declare. + * wide-int.cc (wi::round_down_for_mask, wi::round_up_for_mask) + (test_round_for_mask): New functions. + (wide_int_cc_tests): Call test_round_for_mask. + * tree-vrp.h (intersect_range_with_nonzero_bits): Declare. + * tree-vrp.c (intersect_range_with_nonzero_bits): New function. + * tree-data-ref.c (split_constant_offset_1): Use it to refine the + range returned by get_range_info. + +2018-02-08 Jan Hubicka + + PR ipa/81360 + * cgraph.h (symtab_node::output_to_lto_symbol_table_p): Declare + * symtab.c: Include builtins.h + (symtab_node::output_to_lto_symbol_table_p): Move here + from lto-streamer-out.c:output_symbol_p. + * lto-streamer-out.c (write_symbol): Turn early exit to assert. + (output_symbol_p): Move all logic to symtab.c + (produce_symtab): Update. + +2018-02-08 Andreas Krebbel + + * config/s390/s390-opts.h (enum indirect_branch): Define. + * config/s390/s390-protos.h (s390_return_addr_from_memory) + (s390_indirect_branch_via_thunk) + (s390_indirect_branch_via_inline_thunk): Add function prototypes. + (enum s390_indirect_branch_type): Define. + * config/s390/s390.c (struct s390_frame_layout, struct + machine_function): Remove. + (indirect_branch_prez10thunk_mask, indirect_branch_z10thunk_mask) + (indirect_branch_table_label_no, indirect_branch_table_name): + Define variables. + (INDIRECT_BRANCH_NUM_OPTIONS): Define macro. + (enum s390_indirect_branch_option): Define. + (s390_return_addr_from_memory): New function. + (s390_handle_string_attribute): New function. + (s390_attribute_table): Add new attribute handler. + (s390_execute_label): Handle UNSPEC_EXECUTE_JUMP patterns. + (s390_indirect_branch_via_thunk): New function. + (s390_indirect_branch_via_inline_thunk): New function. + (s390_function_ok_for_sibcall): When jumping via thunk disallow + sibling call optimization for non z10 compiles. + (s390_emit_call): Force indirect branch target to be a single + register. Add r1 clobber for non-z10 compiles. + (s390_emit_epilogue): Emit return jump via return_use expander. + (s390_reorg): Handle JUMP_INSNs as execute targets. + (s390_option_override_internal): Perform validity checks for the + new command line options. + (s390_indirect_branch_attrvalue): New function. + (s390_indirect_branch_settings): New function. + (s390_set_current_function): Invoke s390_indirect_branch_settings. + (s390_output_indirect_thunk_function): New function. + (s390_code_end): Implement target hook. + (s390_case_values_threshold): Implement target hook. + (TARGET_ASM_CODE_END, TARGET_CASE_VALUES_THRESHOLD): Define target + macros. + * config/s390/s390.h (struct s390_frame_layout) + (struct machine_function): Move here from s390.c. + (TARGET_INDIRECT_BRANCH_NOBP_RET) + (TARGET_INDIRECT_BRANCH_NOBP_JUMP) + (TARGET_INDIRECT_BRANCH_NOBP_JUMP_THUNK) + (TARGET_INDIRECT_BRANCH_NOBP_JUMP_INLINE_THUNK) + (TARGET_INDIRECT_BRANCH_NOBP_CALL) + (TARGET_DEFAULT_INDIRECT_BRANCH_TABLE) + (TARGET_INDIRECT_BRANCH_THUNK_NAME_EXRL) + (TARGET_INDIRECT_BRANCH_THUNK_NAME_EX) + (TARGET_INDIRECT_BRANCH_TABLE): Define macros. + * config/s390/s390.md (UNSPEC_EXECUTE_JUMP) + (INDIRECT_BRANCH_THUNK_REGNUM): Define constants. + (mnemonic attribute): Add values which aren't recognized + automatically. + ("*cjump_long", "*icjump_long", "*basr", "*basr_r"): Disable + pattern for branch conversion. Fix mnemonic attribute. + ("*c", "*sibcall_br", "*sibcall_value_br", "*return"): Emit + indirect branch via thunk if requested. + ("indirect_jump", ""): Expand patterns for branch conversion. + ("*indirect_jump"): Disable for branch conversion using out of + line thunks. + ("indirect_jump_via_thunk_z10") + ("indirect_jump_via_thunk") + ("indirect_jump_via_inlinethunk_z10") + ("indirect_jump_via_inlinethunk", "*casesi_jump") + ("casesi_jump_via_thunk_z10", "casesi_jump_via_thunk") + ("casesi_jump_via_inlinethunk_z10") + ("casesi_jump_via_inlinethunk", "*basr_via_thunk_z10") + ("*basr_via_thunk", "*basr_r_via_thunk_z10") + ("*basr_r_via_thunk", "return_prez10"): New pattern. + ("*indirect2_jump"): Disable for branch conversion. + ("casesi_jump"): Turn into expander and expand patterns for branch + conversion. + ("return_use"): New expander. + ("*return"): Emit return via thunk and rename it to ... + ("*return"): ... this one. + * config/s390/s390.opt: Add new options and and enum for the + option values. + +2018-02-08 Richard Sandiford + + * lra-constraints.c (match_reload): Unconditionally use + gen_lowpart_SUBREG, rather than selecting between that + and equivalent gen_rtx_SUBREG code. + +2018-02-08 Richard Biener + + PR tree-optimization/84233 + * tree-ssa-phiprop.c (propagate_with_phi): Use separate + changed flag instead of boguously re-using phi_inserted. + +2018-02-08 Martin Jambor + + * hsa-gen.c (get_symbol_for_decl): Set program allocation for + static local variables. + +2018-02-08 Richard Biener + + PR tree-optimization/84278 + * tree-vect-stmts.c (vectorizable_store): When looking for + smaller vector types to perform grouped strided loads/stores + make sure the mode is supported by the target. + (vectorizable_load): Likewise. + +2018-02-08 Wilco Dijkstra + + * config/aarch64/aarch64.c (aarch64_components_for_bb): + Increase LDP/STP opportunities by adding adjacent callee-saves. + +2018-02-08 Wilco Dijkstra + + PR rtl-optimization/84068 + PR rtl-optimization/83459 + * haifa-sched.c (rank_for_schedule): Fix SCHED_PRESSURE_MODEL sorting. + +2018-02-08 Aldy Hernandez + + PR tree-optimization/84224 + * gimple-ssa-warn-alloca.c (pass_walloca::execute): Remove assert. + * calls.c (gimple_alloca_call_p): Only return TRUE when we have + non-zero arguments. + +2018-02-07 Iain Sandoe + + PR target/84113 + * config/rs6000/altivec.md (*restore_world): Remove LR use. + * config/rs6000/predicates.md (restore_world_operation): Adjust op + count, remove one USE. + +2018-02-07 Michael Meissner + + * doc/install.texi (Configuration): Document the + --with-long-double-format={ibm,ieee} PowerPC configuration + options. + + PR target/84154 + * config/rs6000/rs6000.md (fix_trunc2): + Convert from define_expand to be define_insn_and_split. Rework + float/double/_Float128 conversions to QI/HI/SImode to work with + both ISA 2.07 (power8) or ISA 3.0 (power9). Fix regression where + conversions to QI/HImode types did a store and then a load to + truncate the value. For conversions to VSX registers, don't split + the insn, instead emit the code directly. Use the code iterator + any_fix to combine signed and unsigned conversions. + (fix_truncsi2_p8): Likewise. + (fixuns_trunc2): Likewise. + (fix_trunc2): Likewise. + (fix_trunc2): Likewise. + (fix_di2_hw): Likewise. + (fixuns_di2_hw): Likewise. + (fix_si2_hw): Likewise. + (fixuns_si2_hw): Likewise. + (fix_2_hw): Likewise. + (fix_trunc2): Likewise. + (fctiwz__smallint): Rename fctiwz__smallint to + fix_truncsi2_p8. + (fix_trunc2_internal): Delete, no longer used. + (fixuns_trunc2_internal): Likewise. + (fix__mem): Likewise. + (fctiwz__mem): Likewise. + (fix__mem): Likewise. + (fix_trunc2_mem): On ISA 3.0, prevent + the register allocator from doing a direct move to the GPRs to do + a store, and instead use the ISA 3.0 store byte/half-word from + vector register instruction. For IEEE 128-bit floating point, + also optimize stores of 32-bit ints. + (fix_trunc2_mem): Likewise. + +2018-02-07 Alan Hayward + + * genextract.c (push_pathstr_operand): New function to support + [a-zA-Z]. + (walk_rtx): Call push_pathstr_operand. + (print_path): Support [a-zA-Z]. + +2018-02-07 Richard Biener + + PR tree-optimization/84037 + * tree-vectorizer.h (struct _loop_vec_info): Add ivexpr_map member. + (cse_and_gimplify_to_preheader): Declare. + (vect_get_place_in_interleaving_chain): Likewise. + * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize + ivexpr_map. + (_loop_vec_info::~_loop_vec_info): Delete it. + (cse_and_gimplify_to_preheader): New function. + * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Export. + * tree-vect-stmts.c (vectorizable_store): CSE base and steps. + (vectorizable_load): Likewise. For grouped stores always base + the IV on the first element. + * tree-vect-loop-manip.c (vect_loop_versioning): Unshare versioning + condition before gimplifying. + +2018-02-07 Jakub Jelinek + + * tree-eh.c (operation_could_trap_helper_p): Ignore honor_trapv for + *DIV_EXPR and *MOD_EXPR. + +2018-02-07 H.J. Lu + + PR target/84248 + * config/i386/i386.c (ix86_option_override_internal): Mask out + the CF_SET bit when checking -fcf-protection. + +2018-02-07 Tom de Vries + + PR libgomp/84217 + * omp-expand.c (expand_oacc_collapse_init): Ensure diff_type is large + enough. + +2018-02-07 Richard Biener + + PR tree-optimization/84204 + * tree-chrec.c (chrec_fold_plus_1): Remove size limiting in + this place. + + PR tree-optimization/84205 + * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Also + special-case isl_ast_op_zdiv_r. + + PR tree-optimization/84223 + * graphite-scop-detection.c (gather_bbs::before_dom_children): + Only add conditions from within the region. + (gather_bbs::after_dom_children): Adjust. + +2018-02-07 Georg-Johann Lay + + PR target/84209 + * config/avr/avr.h (GENERAL_REGNO_P, GENERAL_REG_P): New macros. + * config/avr/avr.md: Only post-reload split REG-REG moves if + either register is GENERAL_REG_P. + +2018-02-07 Jakub Jelinek + + PR tree-optimization/84235 + * tree-ssa-scopedtables.c + (avail_exprs_stack::simplify_binary_operation): Fir MINUS_EXPR, punt + if the subtraction is performed in floating point type where NaNs are + honored. For *DIV_EXPR, punt for ALL_FRACT_MODE_Ps where we can't + build 1. Formatting fix. + +2018-02-06 Jakub Jelinek + + PR target/84146 + * config/i386/i386.c (rest_of_insert_endbranch): Only skip + NOTE_INSN_CALL_ARG_LOCATION after a call, not anything else, + and skip it regardless of bb boundaries. Use CALL_P macro, + don't test INSN_P (insn) together with CALL_P or JUMP_P check + unnecessarily, formatting fix. + +2018-02-06 Michael Collison + + * config/arm/thumb2.md: + (*thumb2_mov_negscc): Split only if TARGET_THUMB2 && !arm_restrict_it. + (*thumb_mov_notscc): Ditto. + +2018-02-06 Michael Meissner + + PR target/84154 + * config/rs6000/rs6000.md (su code attribute): Use "u" for + unsigned_fix, not "s". + +2018-02-06 Rainer Orth + + * configure.ac (gcc_fn_eh_frame_ro): New function. + (gcc_cv_as_cfi_directive): Check both 32 and 64-bit assembler for + correct .eh_frame permissions. + * configure: Regenerate. + +2018-02-06 Andrew Jenner + + * doc/invoke.texi: Add section for the PowerPC SPE backend. Remove + irrelevant options. + +2018-02-06 Bill Schmidt + + * config/rs6000/rs6000.c (rs6000_option_override_internal): + Display warning message for -mno-speculate-indirect-jumps. + +2018-02-06 Andrew Jenner + + * config/powerpcspe/powerpcspe.opt: (msimple-fpu, mfpu) Add + Undocumented. + * config/powerpcspe/sysv4.opt (mbit-align): Likewise. + +2018-02-06 Aldy Hernandez + + PR tree-optimization/84225 + * tree-eh.c (find_trapping_overflow): Only call + operation_no_trapping_overflow when ANY_INTEGRAL_TYPE_P. + +2018-02-06 Igor Tsimbalist + + PR target/84145 + * config/i386/i386.c: Reimplement the check of possible options + -mibt/-mshstk conbination. Change error messages. + * doc/invoke.texi: Fix a typo: remove extra '='. + +2018-02-06 Marek Polacek + + PR tree-optimization/84228 + * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Skip debug statements. + +2018-02-06 Tamar Christina + + PR target/82641 + * config/arm/arm.c (arm_print_asm_arch_directives): Record already + emitted arch directives. + * config/arm/arm-c.c (arm_cpu_builtins): Undefine __ARM_ARCH and + __ARM_FEATURE_COPROC before changing architectures. + +2018-02-06 Richard Biener + + * config/i386/i386.c (print_reg): Fix typo. + (ix86_loop_unroll_adjust): Do not unroll beyond the original nunroll. + +2018-02-06 Eric Botcazou + + * configure: Regenerate. + +2018-02-05 Martin Sebor + + PR tree-optimization/83369 + * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Use %G to print + inlining context. + +2018-02-05 Martin Liska + + * doc/invoke.texi: Cherry-pick upstream r323995. + +2018-02-05 Richard Sandiford + + * ira.c (ira_init_register_move_cost): Adjust comment. + +2018-02-05 Martin Liska + + PR gcov-profile/84137 + * doc/gcov.texi: Fix typo in documentation. + +2018-02-05 Martin Liska + + PR gcov-profile/83879 + * doc/gcov.texi: Document necessity of --dynamic-list-data when + using dlopen functionality. + +2018-02-05 Olga Makhotina + + * config/i386/avx512dqintrin.h (_mm_mask_range_sd, _mm_maskz_range_sd, + _mm_mask_range_round_sd, _mm_maskz_range_round_sd, _mm_mask_range_ss, + _mm_maskz_range_ss, _mm_mask_range_round_ss, + _mm_maskz_range_round_ss): New intrinsics. + (__builtin_ia32_rangesd128_round) + (__builtin_ia32_rangess128_round): Remove. + (__builtin_ia32_rangesd128_mask_round, + __builtin_ia32_rangess128_mask_round): New builtins. + * config/i386/i386-builtin.def (__builtin_ia32_rangesd128_round, + __builtin_ia32_rangess128_round): Remove. + (__builtin_ia32_rangesd128_mask_round, + __builtin_ia32_rangess128_mask_round): New builtins. + * config/i386/sse.md (ranges): Renamed to ... + (ranges): ... this. + ((match_operand:VF_128 2 "" + "")): Changed to ... + ((match_operand:VF_128 2 "" + "")): ... this. + ("vrange\t{%3, %2, %1, %0| + %0, %1, %2, %3}"): Changed to ... + ("vrange\t{%3, %2, + %1, %0|%0, %1, + %2, %3}"): ... this. + +2018-02-02 Andrew Jenner + + * config/powerpcspe/powerpcspe.opt: Add Undocumented to irrelevant + options. + * config/powerpcspe/powerpcspe-tables.opt (rs6000_cpu_opt_value): + Remove all values except native, 8540 and 8548. + +2018-02-02 H.J. Lu + + * config/i386/i386.c (ix86_output_function_return): Pass + INVALID_REGNUM, instead of -1, as invalid register number to + indirect_thunk_name and output_indirect_thunk. + +2018-02-02 Julia Koval + + * config.gcc: Add -march=icelake. + * config/i386/driver-i386.c (host_detect_local_cpu): Detect icelake. + * config/i386/i386-c.c (ix86_target_macros_internal): Handle icelake. + * config/i386/i386.c (processor_costs): Add m_ICELAKE. + (PTA_ICELAKE, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES, PTA_AVX512VBMI2, + PTA_VPCLMULQDQ, PTA_RDPID, PTA_AVX512BITALG): New. + (processor_target_table): Add icelake. + (ix86_option_override_internal): Handle new PTAs. + (get_builtin_code_for_version): Handle icelake. + (M_INTEL_COREI7_ICELAKE): New. + (fold_builtin_cpu): Handle icelake. + * config/i386/i386.h (TARGET_ICELAKE, PROCESSOR_ICELAKE): New. + * doc/invoke.texi: Add -march=icelake. + +2018-02-02 Julia Koval + + * config/i386/i386.c (ix86_option_override_internal): Change flags type + to wide_int_bitmask. + * wide-int-bitmask.h: New. + +2018-02-02 Igor Tsimbalist + + PR target/84066 + * config/i386/i386.md: Replace Pmode with word_mode in + builtin_setjmp_setup and builtin_longjmp to support x32. + +2018-02-01 Peter Bergner + + PR target/56010 + PR target/83743 + * config/rs6000/driver-rs6000.c: #include "diagnostic.h". + #include "opts.h". + (rs6000_supported_cpu_names): New static variable. + (linux_cpu_translation_table): Likewise. + (elf_platform) : Define new static variable and use it. + Translate kernel AT_PLATFORM name to canonical name if needed. + Error if platform name is unknown. + +2018-02-01 Aldy Hernandez + + PR target/84089 + * config/pa/predicates.md (base14_operand): Handle E_VOIDmode. + +2018-02-01 Jeff Law + + PR target/84128 + * config/i386/i386.c (release_scratch_register_on_entry): Add new + OFFSET and RELEASE_VIA_POP arguments. Use SP+OFFSET to restore + the scratch if RELEASE_VIA_POP is false. + (ix86_adjust_stack_and_probe_stack_clash): Un-constify SIZE. + If we have to save a temporary register, decrement SIZE appropriately. + Pass new arguments to release_scratch_register_on_entry. + (ix86_adjust_stack_and_probe): Likewise. + (ix86_emit_probe_stack_range): Pass new arguments to + release_scratch_register_on_entry. + +2018-02-01 Uros Bizjak + + PR rtl-optimization/84157 + * combine.c (change_zero_ext): Use REG_P predicate in + front of HARD_REGISTER_P predicate. + +2018-02-01 Georg-Johann Lay + + * config/avr/avr.c (avr_option_override): Move disabling of + -fdelete-null-pointer-checks to... + * common/config/avr/avr-common.c (avr_option_optimization_table): + ...here. + +2018-02-01 Richard Sandiford + + PR tree-optimization/81635 + * tree-data-ref.c (split_constant_offset_1): For types that + wrap on overflow, try to use range info to prove that wrapping + cannot occur. + +2018-02-01 Renlin Li + + PR target/83370 + * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle + TAILCALL_ADDR_REGS. + (aarch64_register_move_cost): Likewise. + * config/aarch64/aarch64.h (reg_class): Rename CALLER_SAVE_REGS to + TAILCALL_ADDR_REGS. + (REG_CLASS_NAMES): Likewise. + (REG_CLASS_CONTENTS): Rename CALLER_SAVE_REGS to + TAILCALL_ADDR_REGS. Remove IP registers. + * config/aarch64/aarch64.md (Ucs): Update register constraint. + +2018-02-01 Richard Biener + + * domwalk.h (dom_walker::dom_walker): Add additional constructor + for specifying RPO order and allow NULL for that. + * domwalk.c (dom_walker::dom_walker): Likewise. + (dom_walker::walk): Handle NULL RPO order. + * tree-into-ssa.c (rewrite_dom_walker): Do not walk dom children + in RPO order. + (rewrite_update_dom_walker): Likewise. + (mark_def_dom_walker): Likewise. + +2018-02-01 Richard Sandiford + + * config/aarch64/aarch64-protos.h (aarch64_split_sve_subreg_move) + (aarch64_maybe_expand_sve_subreg_move): Declare. + * config/aarch64/aarch64.md (UNSPEC_REV_SUBREG): New unspec. + * config/aarch64/predicates.md (aarch64_any_register_operand): New + predicate. + * config/aarch64/aarch64-sve.md (mov): Optimize subreg moves + that are semantically a reverse operation. + (*aarch64_sve_mov_subreg_be): New pattern. + * config/aarch64/aarch64.c (aarch64_maybe_expand_sve_subreg_move): + (aarch64_replace_reg_mode, aarch64_split_sve_subreg_move): New + functions. + (aarch64_can_change_mode_class): For big-endian, forbid changes + between two SVE modes if they have different element sizes. + +2018-02-01 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector): Prefer + the TImode handling for big-endian targets. + +2018-02-01 Richard Sandiford + + * config/aarch64/aarch64-sve.md (sve_ld1rq): Replace with... + (*sve_ld1rq): ... this new pattern. Handle all element sizes, + not just bytes. + * config/aarch64/aarch64.c (aarch64_expand_sve_widened_duplicate): + Remove BSWAP handing for big-endian targets and use the form of + LD1RQ appropariate for the mode. + +2018-02-01 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Handle + all CONST_VECTOR_DUPLICATE_P vectors, not just those with a single + duplicated element. + +2018-02-01 Richard Sandiford + + PR tearget/83845 + * config/aarch64/aarch64.c (aarch64_secondary_reload): Tighten + check for operands that need to go through aarch64_sve_reload_be. + +2018-02-01 Jakub Jelinek + + PR tree-optimization/81661 + PR tree-optimization/84117 + * tree-eh.h (rewrite_to_non_trapping_overflow): Declare. + * tree-eh.c: Include gimplify.h. + (find_trapping_overflow, replace_trapping_overflow, + rewrite_to_non_trapping_overflow): New functions. + * tree-vect-loop.c: Include tree-eh.h. + (vect_get_loop_niters): Use rewrite_to_non_trapping_overflow. + * tree-data-ref.c: Include tree-eh.h. + (get_segment_min_max): Use rewrite_to_non_trapping_overflow. + +2018-01-31 Uros Bizjak + + PR rtl-optimization/84123 + * combine.c (change_zero_ext): Check if hard register satisfies + can_change_dest_mode before calling gen_lowpart_SUBREG. + +2018-01-31 Vladimir Makarov + + PR target/82444 + * ira.c (ira_init_register_move_cost): Remove assert. + +2018-01-31 Eric Botcazou + + PR rtl-optimization/84071 + * doc/tm.texi.in (WORD_REGISTER_OPERATIONS): Add explicit case. + * doc/tm.texi: Regenerate. + +2018-01-31 Richard Biener + + PR tree-optimization/84132 + * tree-data-ref.c (analyze_miv_subscript): Properly + check whether evolution_function_is_affine_multivariate_p + before calling gcd_of_steps_may_divide_p. + +2018-01-31 Julia Koval + + PR target/83618 + * config/i386/i386.c (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID. + * config/i386/i386.md (rdpid_rex64) New. + (rdpid): Make 32bit only. + +2018-01-29 Aldy Hernandez + + PR lto/84105 + * tree-pretty-print.c (dump_generic_node): Handle a TYPE_NAME with + an IDENTIFIER_NODE for FUNCTION_TYPE's. + +2018-01-31 Eric Botcazou + + Revert + 2018-01-12 Eric Botcazou + + * config/sparc/sparc.md (vxworks_load_got): Set the GOT register. + +2018-01-31 Eric Botcazou + + PR rtl-optimization/84071 + * combine.c (record_dead_and_set_regs_1): Record the source unmodified + for a paradoxical SUBREG on a WORD_REGISTER_OPERATIONS target. + +2018-01-31 Claudiu Zissulescu + + * config/arc/arc.c (arc_handle_aux_attribute): New function. + (arc_attribute_table): Add 'aux' attribute. + (arc_in_small_data_p): Consider aux like variables. + (arc_is_aux_reg_p): New function. + (arc_asm_output_aligned_decl_local): Ignore 'aux' like variables. + (arc_get_aux_arg): New function. + (prepare_move_operands): Handle aux-register access. + (arc_handle_aux_attribute): New function. + * doc/extend.texi (ARC Variable attributes): Add subsection. + +2018-01-31 Claudiu Zissulescu + + * config/arc/arc-protos.h (arc_is_uncached_mem_p): Function proto. + * config/arc/arc.c (arc_handle_uncached_attribute): New function. + (arc_attribute_table): Add 'uncached' attribute. + (arc_print_operand): Print '.di' flag for uncached memory + accesses. + (arc_in_small_data_p): Do not consider for small data the uncached + types. + (arc_is_uncached_mem_p): New function. + * config/arc/predicates.md (compact_store_memory_operand): Check + for uncached memory accesses. + (nonvol_nonimm_operand): Likewise. + * doc/extend.texi (ARC Type Attribute): New subsection. + +2018-01-31 Jakub Jelinek + + PR c/84100 + * common.opt (falign-functions=, falign-jumps=, falign-labels=, + falign-loops=): Add Optimization flag. + +2018-01-30 Jeff Law + + 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. + +2018-01-30 Rainer Orth + + PR target/40411 + * config/sol2.h (STARTFILE_ARCH_SPEC): Use -std=c*, + -std=iso9899:199409 instead of -pedantic to select values-Xc.o. + +2018-01-30 Vladimir Makarov + + PR target/84112 + * lra-constraints.c (curr_insn_transform): Process AND in the + address. + +2018-01-30 Jakub Jelinek + + PR rtl-optimization/83986 + * sched-deps.c (sched_analyze_insn): For frame related insns, add anti + dependence against last_pending_memory_flush in addition to + pending_jump_insns. + +2018-01-30 Alexandre Oliva + + PR tree-optimization/81611 + * tree-ssa-dom.c (simple_iv_increment_p): Skip intervening + copies. + +2018-01-30 Aaron Sawdey + + PR target/83758 + * config/rs6000/rs6000.c (rs6000_internal_arg_pointer): Only return + a reg rtx. + +2018-01-30 Richard Biener + Jakub Jelinek + + PR tree-optimization/84111 + * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Skip + inner loops added during recursion, as they don't have up-to-date + SSA form. + +2018-01-30 Jan Hubicka + + PR ipa/81360 + * ipa-inline.c (can_inline_edge_p): Break out late tests to... + (can_inline_edge_by_limits_p): ... here. + (can_early_inline_edge_p, check_callers, + update_caller_keys, update_callee_keys, recursive_inlining, + add_new_edges_to_heap, speculation_useful_p, + inline_small_functions, + inline_small_functions, flatten_function, + inline_to_all_callers_1): Update. + +2018-01-30 Jan Hubicka + + * profile-count.c (profile_count::combine_with_ipa_count): Handle + zeros correctly. + +2018-01-30 Richard Biener + + PR tree-optimization/83008 + * tree-vect-slp.c (vect_analyze_slp_cost_1): Properly cost + invariant and constant vector uses in stmts when they need + more than one stmt. + +2018-01-30 Rainer Orth + + PR bootstrap/84017 + * configure.ac (gcc_cv_as_shf_merge): Disable on Solaris 10/x86. + * configure: Regenerate. + +2018-01-30 Richard Sandiford + + * config/aarch64/aarch64-sve.md (*vec_extract_0): New + pattern. + (*vec_extract_v128): Require a nonzero lane number. + Use gen_rtx_REG rather than gen_lowpart. + +2018-01-30 Richard Sandiford + + * lra-constraints.c (match_reload): Use subreg_lowpart_offset + rather than 0 when creating partial subregs. + +2018-01-30 Richard Sandiford + + * vec-perm-indices.c (vec_perm_indices::series_p): Give examples + of usage. + +2018-01-29 Michael Meissner + + PR target/81550 + * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): If DFmode + and SFmode can go in Altivec registers (-mcpu=power7 for DFmode, + -mcpu=power8 for SFmode) don't set the PRE_INCDEC or PRE_MODIFY + flags. This restores the settings used before the 2017-07-24. + Turning off pre increment/decrement/modify allows IVOPTS to + optimize DF/SF loops where the index is an int. + +2018-01-29 Richard Biener + Kelvin Nilsen + + PR bootstrap/80867 + * tree-vect-stmts.c (vectorizable_call): Don't call + targetm.vectorize_builtin_md_vectorized_function if callee is + NULL. + +2018-01-22 Carl Love + + * doc/extend.tex: Fix typo in second arg in + __builtin_bcdadd_{lt|eq|gt|ov} and __builtin_bcdsub_{lt|eq|gt|ov}. + +2018-01-29 Richard Biener + + PR tree-optimization/84086 + * tree-ssanames.c: Include cfgloop.h and tree-scalar-evolution.h. + (flush_ssaname_freelist): When SSA names were released reset + the SCEV hash table. + +2018-01-29 Richard Biener + + PR tree-optimization/84057 + * tree-ssa-loop-ivcanon.c (unloop_loops): Deal with already + removed paths when removing edges. + +2018-01-27 H.J. Lu + + * doc/invoke.texi: Replace -mfunction-return==@var{choice} with + -mfunction-return=@var{choice}. + +2018-01-27 Bernd Edlinger + + PR diagnostic/84034 + * diagnostic-show-locus.c (get_line_width_without_trailing_whitespace): + Handle CR like TAB. + (layout::print_source_line): Likewise. + (test_get_line_width_without_trailing_whitespace): Add test cases. + +2018-01-27 Jakub Jelinek + + PR middle-end/84040 + * sched-deps.c (sched_macro_fuse_insns): Return immediately for + debug insns. + +2018-01-26 Jim Wilson + + * config/riscv/riscv.h (MAX_FIXED_MODE_SIZE): New. + + * config/riscv/elf.h (LIB_SPEC): Don't include -lgloss when nosys.specs + specified. + +2018-01-26 Kyrylo Tkachov + + * config/aarch64/aarch64.md: Add peepholes for CMP + SUB -> SUBS + and CMP + SUB-immediate -> SUBS. + +2018-01-26 Martin Sebor + + PR tree-optimization/83896 + * tree-ssa-strlen.c (get_string_len): Rename... + (get_string_cst_length): ...to this. Return HOST_WIDE_INT. + Avoid assuming length is constant. + (handle_char_store): Use HOST_WIDE_INT for string length. + +2018-01-26 Uros Bizjak + + PR target/81763 + * config/i386/i386.md (*andndi3_doubleword): Add earlyclobber + to (=&r,r,rm) alternative. Add (=r,0,rm) and (=r,r,0) alternatives. + +2018-01-26 Richard Biener + + PR rtl-optimization/84003 + * dse.c (record_store): Only record redundant stores when + the earlier store aliases at least all accesses the later one does. + +2018-01-26 Jakub Jelinek + + PR rtl-optimization/83985 + * dce.c (deletable_insn_p): Return false for separate shrink wrapping + REG_CFA_RESTORE insns. + (delete_unmarked_insns): Don't ignore separate shrink wrapping + REG_CFA_RESTORE insns here. + + PR c/83989 + * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Don't + use SSA_NAME_VAR as base for SSA_NAMEs with non-NULL SSA_NAME_VAR. + +2018-01-26 Claudiu Zissulescu + + * config/arc/arc-arch.h (arc_tune_attr): Add ARC_TUNE_CORE_3. + * config/arc/arc.c (arc_sched_issue_rate): Use ARC_TUNE_... . + (arc_init): Likewise. + (arc_override_options): Likewise. + (arc_file_start): Choose Tag_ARC_CPU_variation based on arc_tune + value. + (hwloop_fail): Use TARGET_DBNZ when we want to check for dbnz insn + support. + * config/arc/arc.h (TARGET_DBNZ): Define. + * config/arc/arc.md (attr tune): Add core_3, use ARC_TUNE_... to + properly set the tune attribute. + (dbnz): Use TARGET_DBNZ guard. + * config/arc/arc.opt (mtune): Add core3 option. + +2018-01-26 Claudiu Zissulescu + + * config/arc/arc.c (arc_delegitimize_address_0): Refactored to + recognize new pic like addresses. + (arc_delegitimize_address): Clean up. + +2018-01-26 Claudiu Zissulescu + + * config/arc/arc-arches.def: Option mrf16 valid for all + architectures. + * config/arc/arc-c.def (__ARC_RF16__): New predefined macro. + * config/arc/arc-cpus.def (em_mini): New cpu with rf16 on. + * config/arc/arc-options.def (FL_RF16): Add mrf16 option. + * config/arc/arc-tables.opt: Regenerate. + * config/arc/arc.c (arc_conditional_register_usage): Handle + reduced register file case. + (arc_file_start): Set must have build attributes. + * config/arc/arc.h (MAX_ARC_PARM_REGS): Conditional define using + mrf16 option value. + * config/arc/arc.opt (mrf16): Add new option. + * config/arc/elf.h (ATTRIBUTE_PCS): Define. + * config/arc/genmultilib.awk: Handle new mrf16 option. + * config/arc/linux.h (ATTRIBUTE_PCS): Define. + * config/arc/t-multilib: Regenerate. + * doc/invoke.texi (ARC Options): Document mrf16 option. + +2018-01-26 Claudiu Zissulescu + + * config/arc/arc-protos.h: Add arc_is_secure_call_p proto. + * config/arc/arc.c (arc_handle_secure_attribute): New function. + (arc_attribute_table): Add 'secure_call' attribute. + (arc_print_operand): Print secure call operand. + (arc_function_ok_for_sibcall): Don't optimize tail calls when + secure. + (arc_is_secure_call_p): New function. * config/arc/arc.md + (call_i): Add support for sjli instruction. + (call_value_i): Likewise. + * config/arc/constraints.md (Csc): New constraint. + +2018-01-26 Claudiu Zissulescu + John Eric Martin + + * config/arc/arc-protos.h: Add arc_is_jli_call_p proto. + * config/arc/arc.c (_arc_jli_section): New struct. + (arc_jli_section): New type. + (rc_jli_sections): New static variable. + (arc_handle_jli_attribute): New function. + (arc_attribute_table): Add jli_always and jli_fixed attribute. + (arc_file_end): New function. + (TARGET_ASM_FILE_END): Define. + (arc_print_operand): Reuse 'S' letter for JLI output instruction. + (arc_add_jli_section): New function. + (jli_call_scan): Likewise. + (arc_reorg): Call jli_call_scan. + (arc_output_addsi): Remove 'S' from printing asm operand. + (arc_is_jli_call_p): New function. + * config/arc/arc.md (movqi_insn): Remove 'S' from printing asm + operand. + (movhi_insn): Likewise. + (movsi_insn): Likewise. + (movsi_set_cc_insn): Likewise. + (loadqi_update): Likewise. + (load_zeroextendqisi_update): Likewise. + (load_signextendqisi_update): Likewise. + (loadhi_update): Likewise. + (load_zeroextendhisi_update): Likewise. + (load_signextendhisi_update): Likewise. + (loadsi_update): Likewise. + (loadsf_update): Likewise. + (movsicc_insn): Likewise. + (bset_insn): Likewise. + (bxor_insn): Likewise. + (bclr_insn): Likewise. + (bmsk_insn): Likewise. + (bicsi3_insn): Likewise. + (cmpsi_cc_c_insn): Likewise. + (movsi_ne): Likewise. + (movsi_cond_exec): Likewise. + (clrsbsi2): Likewise. + (norm_f): Likewise. + (normw): Likewise. + (swap): Likewise. + (divaw): Likewise. + (flag): Likewise. + (sr): Likewise. + (kflag): Likewise. + (ffs): Likewise. + (ffs_f): Likewise. + (fls): Likewise. + (call_i): Remove 'S' asm letter, add jli instruction. + (call_value_i): Likewise. + * config/arc/arc.op (mjli-always): New option. + * config/arc/constraints.md (Cji): New constraint. + * config/arc/fpx.md (addsf3_fpx): Remove 'S' from printing asm + operand. + (subsf3_fpx): Likewise. + (mulsf3_fpx): Likewise. + * config/arc/simdext.md (vendrec_insn): Remove 'S' from printing + asm operand. + * doc/extend.texi (ARC): Document 'jli-always' and 'jli-fixed' + function attrbutes. + * doc/invoke.texi (ARC): Document mjli-always option. + +2018-01-26 Sebastian Perta + + * config/rl78/rl78.c (rl78_addsi3_internal): If operand 2 is const + avoid addition with 0 and use incw and decw where possible. + +2018-01-26 Richard Biener + + PR tree-optimization/81082 + * fold-const.c (fold_plusminus_mult_expr): Do not perform the + association if it requires casting to unsigned. + * match.pd ((A * C) +- (B * C) -> (A+-B)): New patterns derived + from fold_plusminus_mult_expr to catch important cases late when + range info is available. + +2018-01-26 Rainer Orth + + * config/i386/sol2.h (USE_HIDDEN_LINKONCE): Remove. + * configure.ac (hidden_linkonce): New test. + * configure: Regenerate. + * config.in: Regenerate. + +2018-01-26 Julia Koval + + * config/i386/avx512bitalgintrin.h (_mm512_bitshuffle_epi64_mask, + _mm512_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask, + _mm256_mask_bitshuffle_epi64_mask, _mm_bitshuffle_epi64_mask, + _mm_mask_bitshuffle_epi64_mask): Fix type. + * config/i386/i386-builtin-types.def (UHI_FTYPE_V2DI_V2DI_UHI, + USI_FTYPE_V4DI_V4DI_USI): Remove. + * config/i386/i386-builtin.def (__builtin_ia32_vpshufbitqmb512_mask, + __builtin_ia32_vpshufbitqmb256_mask, + __builtin_ia32_vpshufbitqmb128_mask): Fix types. + * config/i386/i386.c (ix86_expand_args_builtin): Remove old types. + * config/i386/sse.md (VI1_AVX512VLBW): Change types. + +2018-01-26 Alan Modra + + PR target/84033 + * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Exclude + UNSPEC_VBPERMQ. Sort other unspecs. + +2018-01-25 David Edelsohn + + * doc/invoke.texi (PowerPC Options): Document 'native' cpu type. + +2018-01-25 Jan Hubicka + + PR middle-end/83055 + * predict.c (drop_profile): Do not push/pop cfun; update also + node->count. + (handle_missing_profiles): Fix logic looking for zero profiles. + +2018-01-25 Jakub Jelinek + + PR middle-end/83977 + * ipa-fnsummary.c (compute_fn_summary): Clear can_change_signature + on functions with #pragma omp declare simd or functions with simd + attribute. + * omp-simd-clone.c (expand_simd_clones): Revert 2018-01-24 change. + * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): + Remove trailing \n from warning_at calls. + +2018-01-25 Tom de Vries + + PR target/84028 + * config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call + for neutered workers. + +2018-01-24 Joseph Myers + + PR target/68467 + * config/m68k/m68k.c (m68k_promote_function_mode): New function. + (TARGET_PROMOTE_FUNCTION_MODE): New macro. + +2018-01-24 Jeff Law + + PR target/83994 + * i386.c (get_probe_interval): Move to earlier point. + (ix86_compute_frame_layout): If -fstack-clash-protection and + the frame is larger than the probe interval, then use pushes + to save registers rather than reg->mem moves. + (ix86_expand_prologue): Remove conditional for int_registers_saved + assertion. + +2018-01-24 Vladimir Makarov + + PR target/84014 + * ira-build.c (setup_min_max_allocno_live_range_point): Set up + min/max for never referenced object. + +2018-01-24 Jakub Jelinek + + PR middle-end/83977 + * tree.c (free_lang_data_in_decl): Don't clear DECL_ABSTRACT_ORIGIN + here. + * omp-low.c (create_omp_child_function): Remove "omp declare simd" + attributes from DECL_ATTRIBUTES (decl) without affecting + DECL_ATTRIBUTES (current_function_decl). + * omp-simd-clone.c (expand_simd_clones): Ignore DECL_ARTIFICIAL + functions with non-NULL DECL_ABSTRACT_ORIGIN. + +2018-01-24 Richard Sandiford + + PR tree-optimization/83979 + * fold-const.c (fold_comparison): Use constant_boolean_node + instead of boolean_{true,false}_node. + +2018-01-24 Jan Hubicka + + * ipa-profile.c (ipa_propagate_frequency_1): Fix logic skipping calls + with zero counts. + +2018-01-24 Bill Schmidt + + * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv): + Simplify the clause that sets the length attribute. + (*call_value_indirect_nonlocal_sysv): Likewise. + (*sibcall_nonlocal_sysv): Clean up code block; simplify the + clause that sets the length attribute. + (*sibcall_value_nonlocal_sysv): Likewise. + +2018-01-24 Tom de Vries + + PR target/83589 + * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG_2): Define to 1. + (nvptx_pc_set, nvptx_condjump_label): New function. Copy from jump.c. + Add strict parameter. + (prevent_branch_around_nothing): Insert dummy insn between branch to + label and label with no ptx insn inbetween. + * config/nvptx/nvptx.md (define_insn "fake_nop"): New insn. + +2018-01-24 Tom de Vries + + PR target/81352 + * config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call + for neutered threads in warp. + * config/nvptx/nvptx.md (define_insn "exit"): New insn. + +2018-01-24 Richard Biener + + PR tree-optimization/83176 + * tree-chrec.c (chrec_fold_plus_1): Handle (signed T){(T) .. } + operands. + +2018-01-24 Richard Biener + + PR tree-optimization/82819 + * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Avoid + code generating pluses that are no-ops in the target precision. + +2018-01-24 Richard Biener + + PR middle-end/84000 + * tree-cfg.c (replace_loop_annotate): Handle annot_expr_parallel_kind. + +2018-01-23 Jan Hubicka + + * cfgcleanup.c (try_crossjump_to_edge): Use combine_with_count + to merge probabilities. + * predict.c (probably_never_executed): Also mark as cold functions + with global 0 profile and guessed local profile. + * profile-count.c (profile_probability::combine_with_count): New + member function. + * profile-count.h (profile_probability::operator*, + profile_probability::operator*=, profile_probability::operator/, + profile_probability::operator/=): Reduce precision to adjusted + and set value to guessed on contradictory divisions. + (profile_probability::combine_with_freq): Remove. + (profile_probability::combine_wiht_count): Declare. + (profile_count::force_nonzero):: Set to adjusted. + (profile_count::probability_in):: Set quality to adjusted. + * tree-ssa-tail-merge.c (replace_block_by): Use + combine_with_count. + +2018-01-23 Andrew Waterman + Jim Wilson + + * config/riscv/riscv.c (riscv_stack_boundary): New. + (riscv_option_override): Set riscv_stack_boundary. Handle + riscv_preferred_stack_boundary_arg. + * config/riscv/riscv.h (MIN_STACK_BOUNDARY, ABI_STACK_BOUNDARY): New. + (BIGGEST_ALIGNMENT): Set to STACK_BOUNDARY. + (STACK_BOUNDARY): Set to riscv_stack_boundary. + (RISCV_STACK_ALIGN): Use STACK_BOUNDARY. + * config/riscv/riscv.opt (mpreferred-stack-boundary): New. + * doc/invoke.tex (RISC-V Options): Add -mpreferred-stack-boundary. + +2018-01-23 H.J. Lu + + PR target/83905 + * config/i386/i386.c (ix86_expand_prologue): Use cost reference + of struct ix86_frame. + (ix86_expand_epilogue): Likewise. Add a local variable for + the reg_save_offset field in struct ix86_frame. + +2018-01-23 Bin Cheng + + PR tree-optimization/82604 + * tree-loop-distribution.c (enum partition_kind): New enum item + PKIND_PARTIAL_MEMSET. + (partition_builtin_p): Support above new enum item. + (generate_code_for_partition): Ditto. + (compute_access_range): Differentiate cases that equality can be + proven at all loops, the innermost loops or no loops. + (classify_builtin_st, classify_builtin_ldst): Adjust call to above + function. Set PKIND_PARTIAL_MEMSET for partition appropriately. + (finalize_partitions, distribute_loop): Don't fuse partition of + PKIND_PARTIAL_MEMSET kind when distributing 3-level loop nest. + (prepare_perfect_loop_nest): Distribute 3-level loop nest only if + parloop is enabled. + +2018-01-23 Martin Liska + + * predict.def (PRED_INDIR_CALL): Set probability to PROB_EVEN in + order to ignore the predictor. + (PRED_POLYMORPHIC_CALL): Likewise. + (PRED_RECURSIVE_CALL): Likewise. + +2018-01-23 Martin Liska + + * tree-profile.c (tree_profiling): Print function header to + aware reader which function we are working on. + * value-prof.c (gimple_find_values_to_profile): Do not print + not interesting value histograms. + +2018-01-23 Martin Liska + + * profile-count.h (enum profile_quality): Add + profile_uninitialized as the first value. Do not number values + as they are zero based. + (profile_count::verify): Update sanity check. + (profile_probability::verify): Likewise. + +2018-01-23 Nathan Sidwell + + * doc/invoke.texi (ffor-scope): Deprecate. + +2018-01-23 David Malcolm + + PR tree-optimization/83510 + * domwalk.c (set_all_edges_as_executable): New function. + (dom_walker::dom_walker): Convert bool param + "skip_unreachable_blocks" to enum reachability. Move setup of + edge flags to set_all_edges_as_executable and only do it when + reachability is REACHABLE_BLOCKS. + * domwalk.h (enum dom_walker::reachability): New enum. + (dom_walker::dom_walker): Convert bool param + "skip_unreachable_blocks" to enum reachability. + (set_all_edges_as_executable): New decl. + * graphite-scop-detection.c (gather_bbs::gather_bbs): Convert + from false for "skip_unreachable_blocks" to ALL_BLOCKS for + "reachability". + * tree-ssa-dom.c (dom_opt_dom_walker::dom_opt_dom_walker): Likewise, + but converting true to REACHABLE_BLOCKS. + * tree-ssa-sccvn.c (sccvn_dom_walker::sccvn_dom_walker): Likewise. + * tree-vrp.c + (check_array_bounds_dom_walker::check_array_bounds_dom_walker): + Likewise, but converting it to REACHABLE_BLOCKS_PRESERVING_FLAGS. + (vrp_dom_walker::vrp_dom_walker): Likewise, but converting it to + REACHABLE_BLOCKS. + (vrp_prop::vrp_finalize): Call set_all_edges_as_executable + if check_all_array_refs will be called. + +2018-01-23 David Malcolm + + * tree.c (selftest::test_location_wrappers): Add more test + coverage. + +2018-01-23 David Malcolm + + * sbitmap.c (selftest::test_set_range): Fix memory leaks. + (selftest::test_bit_in_range): Likewise. + +2018-01-23 Richard Sandiford + + PR testsuite/83888 + * doc/sourcebuild.texi (vect_float): Say that the selector + only describes the situation when -funsafe-math-optimizations is on. + (vect_float_strict): Document. + +2018-01-23 Richard Sandiford + + PR tree-optimization/83965 + * tree-vect-patterns.c (vect_reassociating_reduction_p): New function. + (vect_recog_dot_prod_pattern, vect_recog_sad_pattern): Use it + instead of checking only for a reduction. + (vect_recog_widen_sum_pattern): Likewise. + +2018-01-23 Jan Hubicka + + * predict.c (probably_never_executed): Only use precise profile info. + (compute_function_frequency): Skip after inlining hack since we now + have quality checking. + +2018-01-23 Jan Hubicka + + * profile-count.h (profile_probability::very_unlikely, + profile_probability::unlikely, profile_probability::even): Set + precision to guessed. + +2018-01-23 Richard Biener + + PR tree-optimization/83963 + * graphite-scop-detection.c (scop_detection::harmful_loop_in_region): + Properly terminate dominator walk when crossing the exit edge not + when visiting its source block. + +2018-01-23 Jakub Jelinek + + PR c++/83918 + * tree.c (maybe_wrap_with_location): Use NON_LVALUE_EXPR rather than + VIEW_CONVERT_EXPR to wrap CONST_DECLs. + +2018-01-22 Jakub Jelinek + + PR tree-optimization/83957 + * omp-expand.c (expand_omp_for_generic): Ignore virtual PHIs. Remove + semicolon after for body surrounded by braces. + + PR tree-optimization/83081 + * profile-count.h (profile_probability::split): New method. + * dojump.c (do_jump_1) : + Use profile_probability::split. + (do_compare_rtx_and_jump): Fix adjustment of probabilities + when splitting a single conditional jump into 2. + +2018-01-22 David Malcolm + + PR tree-optimization/69452 + * tree-ssa-loop-im.c (class move_computations_dom_walker): Remove + decl. + +2018-01-22 Sebastian Perta + + * config/rl78/rl78-expand.md (bswaphi2): New define_expand. + * config/rl78/rl78-virt.md (*bswaphi2_virt): New define_insn. + * config/rl78/rl78-real.md (*bswaphi2_real): New define_insn. + +2018-01-22 Sebastian Perta + + * config/rl78/rl78-protos.h (rl78_split_movdi): New function + declaration. + * config/rl78/rl78.md (movdi): New define_expand. + * config/rl78/rl78.c (rl78_split_movdi): New function. + +2018-01-22 Michael Meissner + + PR target/83862 + * config/rs6000/rs6000-protos.h (rs6000_split_signbit): Delete, + no longer used. + * config/rs6000/rs6000.c (rs6000_split_signbit): Likewise. + * config/rs6000/rs6000.md (signbit2): Change code for IEEE + 128-bit to produce an UNSPEC move to get the double word with the + signbit and then a shift directly to do signbit. + (signbit2_dm): Replace old IEEE 128-bit signbit + implementation with a new version that just does either a direct + move or a regular move. Move memory interface to separate insns. + Move insns so they are next to the expander. + (signbit2_dm_mem_be): New combiner insns to combine load + with signbit move. Split big and little endian case. + (signbit2_dm_mem_le): Likewise. + (signbit2_dm_ext): Delete, no longer used. + (signbit2_dm2): Likewise. + +2018-01-22 Sebastian Perta + + * config/rl78/rl78.md (anddi3): New define_expand. + +2018-01-22 Sebastian Perta + + * config/rl78/rl78.md (umindi3): New define_expand. + +2018-01-22 Sebastian Perta + + * config/rl78/rl78.md (smindi3): New define_expand. + +2018-01-22 Sebastian Perta + + * config/rl78/rl78.md (smaxdi3): New define_expand. + +2018-01-22 Carl Love + + * config/rs6000/rs6000-builtin.def (ST_ELEMREV_V1TI, LD_ELEMREV_V1TI, + LVX_V1TI): Add macro expansion. + * config/rs6000/rs6000-c.c (altivec_builtin_types): Add argument + definitions for VSX_BUILTIN_VEC_XST_BE, VSX_BUILTIN_VEC_ST, + VSX_BUILTIN_VEC_XL, LD_ELEMREV_V1TI builtins. + * config/rs6000/rs6000-p8swap.c (insn_is_swappable_p); + Change check to determine if the instruction is a byte reversing + entry. Fix typo in comment. + * config/rs6000/rs6000.c (altivec_expand_builtin): Add case entry + for VSX_BUILTIN_ST_ELEMREV_V1TI and VSX_BUILTIN_LD_ELEMREV_V1TI. + Add def_builtin calls for new builtins. + * config/rs6000/vsx.md (vsx_st_elemrev_v1ti, vsx_ld_elemrev_v1ti): + Add define_insn expansion. + +2018-01-22 Sebastian Perta + + * config/rl78/rl78.md (umaxdi3): New define_expand. + +2018-01-22 Sebastian Perta + + * config/rl78/rl78.c (rl78_note_reg_set): Fixed dead reg check + for non-QImode registers. + +2018-01-22 Richard Biener + + PR tree-optimization/83963 + * graphite-scop-detection.c (scop_detection::get_sese): Delay + including the loop exit block. + (scop_detection::merge_sese): Likewise. + (scop_detection::add_scop): Do it here instead. + +2018-01-22 Kyrylo Tkachov + + * doc/sourcebuild.texi (arm_softfloat): Document. + +2018-01-21 John David Anglin + + PR gcc/77734 + * config/pa/pa.c (pa_function_ok_for_sibcall): Use + targetm.binds_local_p instead of TREE_PUBLIC to check local binding. + Move TARGET_PORTABLE_RUNTIME check after TARGET_64BIT check. + +2018-01-21 Bill Schmidt + David Edelsohn + + PR target/83946 + * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv): + Change "crset eq" to "crset 2". + (*call_value_indirect_nonlocal_sysv): Likewise. + (*call_indirect_aix_nospec): Likewise. + (*call_value_indirect_aix_nospec): Likewise. + (*call_indirect_elfv2_nospec): Likewise. + (*call_value_indirect_elfv2_nospec): Likewise. + (*sibcall_nonlocal_sysv): Change "crset eq" to "crset 2"; + change assembly output from . to $. + (*sibcall_value_nonlocal_sysv): Likewise. + (indirect_jump_nospec): Change assembly output from . to $. + (*tablejump_internal1_nospec): Likewise. + +2018-01-21 Oleg Endo + + PR target/80870 + * config/sh/sh_optimize_sett_clrt.cc: + Use INCLUDE_ALGORITHM and INCLUDE_VECTOR instead of direct includes. + +2018-01-20 Richard Sandiford + + PR tree-optimization/83940 + * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): Set + offset_dt to vect_constant_def rather than vect_unknown_def_type. + (vect_check_load_store_mask): Add a mask_dt_out parameter and + use it to pass back the definition type. + (vect_check_store_rhs): Likewise rhs_dt_out. + (vect_build_gather_load_calls): Add a mask_dt argument and use + it instead of a call to vect_is_simple_use. + (vectorizable_store): Update calls to vect_check_load_store_mask + and vect_check_store_rhs. Use the dt returned by the latter instead + of scatter_src_dt. Use the cached mask_dt and gs_info.offset_dt + instead of calls to vect_is_simple_use. Pass the scalar rather + than the vector operand to vect_is_simple_use when handling + second and subsequent copies of an rhs value. + (vectorizable_load): Update calls to vect_check_load_store_mask + and vect_build_gather_load_calls. Use the cached mask_dt and + gs_info.offset_dt instead of calls to vect_is_simple_use. + +2018-01-20 Jakub Jelinek + + PR middle-end/83945 + * tree-emutls.c: Include gimplify.h. + (lower_emutls_2): New function. + (lower_emutls_1): If ADDR_EXPR is a gimple invariant and walk_tree + with lower_emutls_2 callback finds some TLS decl in it, unshare_expr + it before further processing. + + PR target/83930 + * simplify-rtx.c (simplify_binary_operation_1) : Use + UINTVAL (trueop1) instead of INTVAL (op1). + +2018-01-19 Jakub Jelinek + + PR debug/81570 + PR debug/83728 + * dwarf2cfi.c (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define to + INCOMING_FRAME_SP_OFFSET if not defined. + (scan_trace): Add ENTRY argument. If true and + DEFAULT_INCOMING_FRAME_SP_OFFSET != INCOMING_FRAME_SP_OFFSET, + emit a note to adjust the CFA offset. + (create_cfi_notes): Adjust scan_trace callers. + (create_cie_data): Use DEFAULT_INCOMING_FRAME_SP_OFFSET rather than + INCOMING_FRAME_SP_OFFSET in the CIE. + * config/i386/i386.h (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define. + * config/stormy16/stormy16.h (DEFAULT_INCOMING_FRAME_SP_OFFSET): + Likewise. + * doc/tm.texi.in (DEFAULT_INCOMING_FRAME_SP_OFFSET): Document. + * doc/tm.texi: Regenerated. + +2018-01-19 Andreas Krebbel + + PR rtl-optimization/83147 + * lra-constraints.c (remove_inheritance_pseudos): Use + lra_substitute_pseudo_within_insn. + +2018-01-19 Tom de Vries + Cesar Philippidis + + PR target/83920 + * config/nvptx/nvptx.c (nvptx_single): Fix jit workaround. + +2018-01-19 Cesar Philippidis + + PR target/83790 + * config/nvptx/nvptx.c (output_init_frag): Don't use generic address + spaces for function labels. + +2018-01-19 Martin Liska + + * predict.def (PRED_LOOP_EXIT): Change from 85 to 89. + (PRED_LOOP_EXIT_WITH_RECURSION): Change from 72 to 78. + (PRED_LOOP_EXTRA_EXIT): Change from 83 to 67. + (PRED_OPCODE_POSITIVE): Change from 64 to 59. + (PRED_TREE_OPCODE_POSITIVE): Change from 64 to 59. + (PRED_CONST_RETURN): Change from 69 to 65. + (PRED_NULL_RETURN): Change from 91 to 71. + (PRED_LOOP_IV_COMPARE_GUESS): Change from 98 to 64. + (PRED_LOOP_GUARD): Change from 66 to 73. + +2018-01-19 Martin Liska + + * predict.c (predict_insn_def): Add new assert. + (struct branch_predictor): Change type to signed integer. + (test_prediction_value_range): Amend test to cover + PROB_UNINITIALIZED. + * predict.def (PRED_LOOP_ITERATIONS): Use the new constant. + (PRED_LOOP_ITERATIONS_GUESSED): Likewise. + (PRED_LOOP_ITERATIONS_MAX): Likewise. + (PRED_LOOP_IV_COMPARE): Likewise. + * predict.h (PROB_UNINITIALIZED): Define new constant. + +2018-01-19 Martin Liska + + * predict.c (dump_prediction): Add new format for + analyze_brprob.py script which is enabled with -details + suboption. + * profile-count.h (precise_p): New function. + +2018-01-19 Richard Sandiford + + PR tree-optimization/83922 + * tree-vect-loop.c (vect_verify_full_masking): Return false if + there are no statements that need masking. + (vect_active_double_reduction_p): New function. + (vect_analyze_loop_operations): Use it when handling phis that + are not in the loop header. + +2018-01-19 Richard Sandiford + + PR tree-optimization/83914 + * tree-vect-loop.c (vectorizable_induction): Don't convert + init_expr or apply the peeling adjustment for inductions + that are nested within the vectorized loop. + +2018-01-19 Kyrylo Tkachov + + * config/arm/thumb2.md (*thumb2_negsi2_short): Use RSB mnemonic + instead of NEG. + +2018-01-18 Jakub Jelinek + + PR sanitizer/81715 + PR testsuite/83882 + * function.h (gimplify_parameters): Add gimple_seq * argument. + * function.c: Include gimple.h and options.h. + (gimplify_parameters): Add cleanup argument, add CLOBBER stmts + for the added local temporaries if needed. + * gimplify.c (gimplify_body): Adjust gimplify_parameters caller, + if there are any parameter cleanups, wrap whole body into a + try/finally with the cleanups. + +2018-01-18 Wilco Dijkstra + + PR target/82964 + * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): + Use GET_MODE_CLASS for scalar floating point. + +2018-01-18 Jan Hubicka + + PR ipa/82256 + patch by PaX Team + * cgraphclones.c (cgraph_node::create_version_clone_with_body): + Fix call of call_cgraph_insertion_hooks. + +2018-01-18 Martin Sebor + + * doc/invoke.texi (-Wclass-memaccess): Tweak text. + +2018-01-18 Jan Hubicka + + PR ipa/83619 + * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Update edge + frequencies. + +2018-01-18 Boris Kolpackov + + PR other/70268 + * common.opt: (-ffile-prefix-map): New option. + * opts.c (common_handle_option): Defer it. + * opts-global.c (handle_common_deferred_options): Handle it. + * debug.h (remap_debug_filename, add_debug_prefix_map): Move to... + * file-prefix-map.h: New file. + (remap_debug_filename, add_debug_prefix_map): ...here. + (add_macro_prefix_map, add_file_prefix_map, remap_macro_filename): New. + * final.c (debug_prefix_map, add_debug_prefix_map + remap_debug_filename): Move to... + * file-prefix-map.c: New file. + (file_prefix_map, add_prefix_map, remap_filename) ...here and rename, + generalize, get rid of alloca(), use strrchr() instead of strchr(). + (add_macro_prefix_map, add_debug_prefix_map, add_file_prefix_map): + Implement in terms of add_prefix_map(). + (remap_macro_filename, remap_debug_filename): Implement in term of + remap_filename(). + * Makefile.in (OBJS, PLUGIN_HEADERS): Add new files. + * builtins.c (fold_builtin_FILE): Call remap_macro_filename(). + * dbxout.c: Include file-prefix-map.h. + * varasm.c: Likewise. + * vmsdbgout.c: Likewise. + * xcoffout.c: Likewise. + * dwarf2out.c: Likewise plus omit new options from DW_AT_producer. + * doc/cppopts.texi (-fmacro-prefix-map): Document. + * doc/invoke.texi (-ffile-prefix-map): Document. + (-fdebug-prefix-map): Update description. + +2018-01-18 Martin Liska + + * config/i386/i386.c (indirect_thunk_name): Document that also + lfence is emitted. + (output_indirect_thunk): Document why both instructions + (pause and lfence) are generated. + +2018-01-18 Richard Biener + + PR tree-optimization/83887 + * graphite-scop-detection.c + (scop_detection::get_nearest_dom_with_single_entry): Remove. + (scop_detection::get_nearest_pdom_with_single_exit): Likewise. + (scop_detection::merge_sese): Re-implement with a flood-fill + algorithm that properly finds a SESE region if it exists. + +2018-01-18 Jakub Jelinek + + PR c/61240 + * match.pd ((P + A) - P, P - (P + A), (P + A) - (P + B)): For + pointer_diff optimizations use view_convert instead of convert. + +2018-01-17 Bill Schmidt + + * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv): + Generate different code for -mno-speculate-indirect-jumps. + (*call_value_indirect_nonlocal_sysv): Likewise. + (*call_indirect_aix): Disable for + -mno-speculate-indirect-jumps. + (*call_indirect_aix_nospec): New define_insn. + (*call_value_indirect_aix): Disable for + -mno-speculate-indirect-jumps. + (*call_value_indirect_aix_nospec): New define_insn. + (*sibcall_nonlocal_sysv): Generate different code for + -mno-speculate-indirect-jumps. + (*sibcall_value_nonlocal_sysv): Likewise. + +2018-01-17 Michael Meissner + + * config/rs6000/rs6000.c (rs6000_emit_move): If we load or store a + long double type, set the flags for noting the default long double + type, even if we don't pass or return a long double type. + +2018-01-17 Jan Hubicka + + PR ipa/83051 + * ipa-inline.c (flatten_function): Do not overwrite final inlining + failure. + +2018-01-17 Will Schmidt + + * config/rs6000/rs6000.c (rs6000_gimple_builtin): Add gimple folding + support for merge[hl]. + (fold_mergehl_helper): New helper function. + (tree-vector-builder.h): New #include for tree_vector_builder usage. + * config/rs6000/altivec.md (altivec_vmrghw_direct): Add xxmrghw insn. + (altivec_vmrglw_direct): Add xxmrglw insn. + +2018-01-17 Andrew Waterman + + * config/riscv/riscv.c (riscv_conditional_register_usage): If + UNITS_PER_FP_ARG is 0, set call_used_regs to 1 for all FP regs. + +2018-01-17 David Malcolm + + PR lto/83121 + * ipa-devirt.c (add_type_duplicate): When comparing memory layout, + call the lto_location_cache before reading the + DECL_SOURCE_LOCATION of the types. + +2018-01-17 Wilco Dijkstra + Richard Sandiford + + * config/aarch64/aarch64.md (movti_aarch64): Use Uti constraint. + * config/aarch64/aarch64.c (aarch64_mov128_immediate): New function. + (aarch64_legitimate_constant_p): Just support CONST_DOUBLE + SF/DF/TF mode to avoid creating illegal CONST_WIDE_INT immediates. + * config/aarch64/aarch64-protos.h (aarch64_mov128_immediate): + Add declaration. + * config/aarch64/constraints.md (aarch64_movti_operand): + Limit immediates. + * config/aarch64/predicates.md (Uti): Add new constraint. + +2018-01-17 Carl Love + + * config/rs6000/vsx.md (define_expand xl_len_r, + define_expand stxvl, define_expand *stxvl): Add match_dup argument. + (define_insn): Add, match_dup 1 argument to define_insn stxvll and + lxvll. + (define_expand, define_insn): Move the shift left from the + define_insn to the define_expand for lxvl and stxvl instructions. + * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_2): Change LXVL + and XL_LEN_R definitions to PURE. + +2018-01-17 Uros Bizjak + + * config/i386/i386.c (indirect_thunk_name): Declare regno + as unsigned int. Compare regno with INVALID_REGNUM. + (output_indirect_thunk): Ditto. + (output_indirect_thunk_function): Ditto. + (ix86_code_end): Declare regno as unsigned int. Use INVALID_REGNUM + in the call to output_indirect_thunk_function. + +2018-01-17 Richard Sandiford + + PR middle-end/83884 + * expr.c (expand_expr_real_1): Use the size of GET_MODE (op0) + rather than the size of inner_type to determine the stack slot size + when handling VIEW_CONVERT_EXPRs on strict-alignment targets. + +2018-01-16 Sebastian Peryt + + PR target/83546 + * config/i386/i386.c (ix86_option_override_internal): Add PTA_RDRND + to PTA_SILVERMONT. + +2018-01-16 Michael Meissner + + * config.gcc (powerpc*-linux*-*): Add support for 64-bit little + endian Linux systems to optionally enable multilibs for selecting + the long double type if the user configured an explicit type. + * config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Indicate we + have no long double multilibs if not defined. + * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not + warn if the user used -mabi={ieee,ibm}longdouble and we built + multilibs for long double. + * config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Define as the + appropriate multilib option. + (MULTILIB_DEFAULTS): Add MULTILIB_DEFAULTS_IEEE to the default + multilib options. + * config/rs6000/t-ldouble-linux64le-ibm: New configuration files + for building long double multilibs. + * config/rs6000/t-ldouble-linux64le-ieee: Likewise. + +2018-01-16 John David Anglin + + * config.gcc (hppa*-*-linux*): Change callee copies ABI to caller + copies. + + * config/pa.h (MALLOC_ABI_ALIGNMENT): Set 32-bit alignment default to + 64 bits. + * config/pa/pa32-linux.h (MALLOC_ABI_ALIGNMENT): Set alignment to + 128 bits. + + * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Cleanup type and mode + variables. + + * config/pa/pa.c (pa_function_arg_size): Apply CEIL to GET_MODE_SIZE + return value. + +2018-01-16 Eric Botcazou + + * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For an + ADDR_EXPR, do not count the offset of a COMPONENT_REF twice. + +2018-01-16 Kelvin Nilsen + + * config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Generate + different rtl trees depending on TARGET_64BIT. + (rs6000_gen_lvx): Likewise. + +2018-01-16 Eric Botcazou + + * config/visium/visium.md (nop): Tweak comment. + (hazard_nop): Likewise. + +2018-01-16 Bill Schmidt + + * config/rs6000/rs6000.c (rs6000_opt_vars): Add entry for + -mspeculate-indirect-jumps. + * config/rs6000/rs6000.md (*call_indirect_elfv2): Disable + for -mno-speculate-indirect-jumps. + (*call_indirect_elfv2_nospec): New define_insn. + (*call_value_indirect_elfv2): Disable for + -mno-speculate-indirect-jumps. + (*call_value_indirect_elfv2_nospec): New define_insn. + (indirect_jump): Emit different RTL for + -mno-speculate-indirect-jumps. + (*indirect_jump): Disable for + -mno-speculate-indirect-jumps. + (*indirect_jump_nospec): New define_insn. + (tablejump): Emit different RTL for + -mno-speculate-indirect-jumps. + (tablejumpsi): Disable for -mno-speculate-indirect-jumps. + (tablejumpsi_nospec): New define_expand. + (tablejumpdi): Disable for -mno-speculate-indirect-jumps. + (tablejumpdi_nospec): New define_expand. + (*tablejump_internal1): Disable for + -mno-speculate-indirect-jumps. + (*tablejump_internal1_nospec): New define_insn. + * config/rs6000/rs6000.opt (mspeculate-indirect-jumps): New + option. + +2018-01-16 Artyom Skrobov tyomitch@gmail.com + + * caller-save.c (insert_save): Drop unnecessary parameter. All + callers updated. + +2018-01-16 Jakub Jelinek + Richard Biener + + PR libgomp/83590 + * gimplify.c (gimplify_one_sizepos): For is_gimple_constant (expr) + return early, inline manually is_gimple_sizepos. Make sure if we + call gimplify_expr we don't end up with a gimple constant. + * tree.c (variably_modified_type_p): Don't return true for + is_gimple_constant (_t). Inline manually is_gimple_sizepos. + * gimplify.h (is_gimple_sizepos): Remove. + +2018-01-16 Richard Sandiford + + PR tree-optimization/83857 + * tree-vect-loop.c (vect_analyze_loop_operations): Don't call + vectorizable_live_operation for pure SLP statements. + (vectorizable_live_operation): Handle PHIs. + +2018-01-16 Richard Biener + + PR tree-optimization/83867 + * tree-vect-stmts.c (vect_transform_stmt): Precompute + nested_in_vect_loop_p since the scalar stmt may get invalidated. + +2018-01-16 Jakub Jelinek + + PR c/83844 + * stor-layout.c (handle_warn_if_not_align): Use byte_position and + multiple_of_p instead of unchecked tree_to_uhwi and UHWI check. + If off is not INTEGER_CST, issue a may not be aligned warning + rather than isn't aligned. Use isn%'t rather than isn't. + * fold-const.c (multiple_of_p) : Don't fall through + into MULT_EXPR. + : Improve the case when bottom and one of the + MULT_EXPR operands are INTEGER_CSTs and bottom is multiple of that + operand, in that case check if the other operand is multiple of + bottom divided by the INTEGER_CST operand. + +2018-01-16 Richard Sandiford + + PR target/83858 + * config/pa/pa.h (FUNCTION_ARG_SIZE): Delete. + * config/pa/pa-protos.h (pa_function_arg_size): Declare. + * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Use + pa_function_arg_size instead of FUNCTION_ARG_SIZE. + * config/pa/pa.c (pa_function_arg_advance): Likewise. + (pa_function_arg, pa_arg_partial_bytes): Likewise. + (pa_function_arg_size): New function. + +2018-01-16 Richard Sandiford + + * fold-const.c (fold_ternary_loc): Construct the vec_perm_indices + in a separate statement. + +2018-01-16 Richard Sandiford + + PR tree-optimization/83847 + * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Don't + group gathers and scatters. + +2018-01-16 Jakub Jelinek + + PR rtl-optimization/86620 + * params.def (max-sched-ready-insns): Bump minimum value to 1. + + PR rtl-optimization/83213 + * recog.c (peep2_attempt): Copy over CROSSING_JUMP_P from peepinsn + to last if both are JUMP_INSNs. + + PR tree-optimization/83843 + * gimple-ssa-store-merging.c + (imm_store_chain_info::output_merged_store): Handle bit_not_p on + store_immediate_info for bswap/nop orig_stores. + +2018-01-15 Andrew Waterman + + * config/riscv/riscv.c (riscv_rtx_costs) : Increase cost if + !TARGET_MUL. + : Increase cost if !TARGET_DIV. + +2018-01-15 Segher Boessenkool + + * config/rs6000/rs6000.md (define_attr "type"): Remove delayed_cr. + (define_attr "cr_logical_3op"): New. + (cceq_ior_compare): Adjust. + (cceq_ior_compare_complement): Adjust. + (*cceq_rev_compare): Adjust. + * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust. + (is_cracked_insn): Adjust. + (insn_must_be_first_in_group): Adjust. + * config/rs6000/40x.md: Adjust. + * config/rs6000/440.md: Adjust. + * config/rs6000/476.md: Adjust. + * config/rs6000/601.md: Adjust. + * config/rs6000/603.md: Adjust. + * config/rs6000/6xx.md: Adjust. + * config/rs6000/7450.md: Adjust. + * config/rs6000/7xx.md: Adjust. + * config/rs6000/8540.md: Adjust. + * config/rs6000/cell.md: Adjust. + * config/rs6000/e300c2c3.md: Adjust. + * config/rs6000/e500mc.md: Adjust. + * config/rs6000/e500mc64.md: Adjust. + * config/rs6000/e5500.md: Adjust. + * config/rs6000/e6500.md: Adjust. + * config/rs6000/mpc.md: Adjust. + * config/rs6000/power4.md: Adjust. + * config/rs6000/power5.md: Adjust. + * config/rs6000/power6.md: Adjust. + * config/rs6000/power7.md: Adjust. + * config/rs6000/power8.md: Adjust. + * config/rs6000/power9.md: Adjust. + * config/rs6000/rs64.md: Adjust. + * config/rs6000/titan.md: Adjust. + +2018-01-15 H.J. Lu + + * config/i386/predicates.md (indirect_branch_operand): Rewrite + ix86_indirect_branch_register logic. + +2018-01-15 H.J. Lu + + * config/i386/constraints.md (Bs): Update + ix86_indirect_branch_register check. Don't check + ix86_indirect_branch_register with GOT_memory_operand. + (Bw): Likewise. + * config/i386/predicates.md (GOT_memory_operand): Don't check + ix86_indirect_branch_register here. + (GOT32_symbol_operand): Likewise. + +2018-01-15 H.J. Lu + + * config/i386/predicates.md (constant_call_address_operand): + Rewrite ix86_indirect_branch_register logic. + (sibcall_insn_operand): Likewise. + +2018-01-15 H.J. Lu + + * config/i386/constraints.md (Bs): Replace + ix86_indirect_branch_thunk_register with + ix86_indirect_branch_register. + (Bw): Likewise. + * config/i386/i386.md (indirect_jump): Likewise. + (tablejump): Likewise. + (*sibcall_memory): Likewise. + (*sibcall_value_memory): Likewise. + Peepholes of indirect call and jump via memory: Likewise. + * config/i386/i386.opt: Likewise. + * config/i386/predicates.md (indirect_branch_operand): Likewise. + (GOT_memory_operand): Likewise. + (call_insn_operand): Likewise. + (sibcall_insn_operand): Likewise. + (GOT32_symbol_operand): Likewise. + +2018-01-15 Jakub Jelinek + + PR middle-end/83837 + * omp-expand.c (expand_omp_atomic_pipeline): Use loaded_val + type rather than type addr's type points to. + (expand_omp_atomic_mutex): Likewise. + (expand_omp_atomic): Likewise. + +2018-01-15 H.J. Lu + + PR target/83839 + * config/i386/i386.c (output_indirect_thunk_function): Use + ASM_OUTPUT_LABEL, instead of ASM_OUTPUT_DEF, for TARGET_MACHO + for __x86_return_thunk. + +2018-01-15 Richard Biener + + PR middle-end/83850 + * expmed.c (extract_bit_field_1): Fix typo. + +2018-01-15 Kyrylo Tkachov + + PR target/83687 + * config/arm/iterators.md (VF): New mode iterator. + * config/arm/neon.md (neon_vabd_2): Use the above. + Remove integer-related logic from pattern. + (neon_vabd_3): Likewise. + +2018-01-15 Jakub Jelinek + + PR middle-end/82694 + * common.opt (fstrict-overflow): No longer an alias. + (fwrapv-pointer): New option. + * tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED): Define + also for pointer types based on flag_wrapv_pointer. + * opts.c (common_handle_option) : Set + opts->x_flag_wrap[pv] to !value, clear opts->x_flag_trapv if + opts->x_flag_wrapv got set. + * fold-const.c (fold_comparison, fold_binary_loc): Revert 2017-08-01 + changes, just use TYPE_OVERFLOW_UNDEFINED on pointer type instead of + POINTER_TYPE_OVERFLOW_UNDEFINED. + * match.pd: Likewise in address comparison pattern. + * doc/invoke.texi: Document -fwrapv and -fstrict-overflow. + +2018-01-15 Richard Biener + + PR lto/83804 + * tree.c (free_lang_data_in_type): Always unlink TYPE_DECLs + from TYPE_FIELDS. Free TYPE_BINFO if not used by devirtualization. + Reset type names to their identifier if their TYPE_DECL doesn't + have linkage (and thus is used for ODR and devirt). + (save_debug_info_for_decl): Remove. + (save_debug_info_for_type): Likewise. + (add_tree_to_fld_list): Adjust. + * tree-pretty-print.c (dump_generic_node): Make dumping of + type names more robust. + +2018-01-15 Richard Biener + + * BASE-VER: Bump to 8.0.1. + +2018-01-14 Martin Sebor + + PR other/83508 + * builtins.c (check_access): Avoid warning when the no-warning bit + is set. + +2018-01-14 Cory Fields + + * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Stabilize sort. + * ira-color (allocno_hard_regs_compare): Likewise. + +2018-01-14 Nathan Rossi + + PR target/83013 + * config/microblaze/microblaze.c (microblaze_asm_output_ident): + Use .pushsection/.popsection. + +2018-01-14 Martin Sebor + + PR c++/81327 + * doc/invoke.texi (-Wlass-memaccess): Document suppression by casting. + +2018-01-14 Jakub Jelinek + + * config.gcc (i[34567]86-*-*): Remove one duplicate gfniintrin.h + entry from extra_headers. + (x86_64-*-*): Remove two duplicate gfniintrin.h entries from + extra_headers, make the list bitwise identical to the i?86-*-* one. + +2018-01-14 H.J. Lu + + * config/i386/i386.c (ix86_set_indirect_branch_type): Disallow + -mcmodel=large with -mindirect-branch=thunk, + -mindirect-branch=thunk-extern, -mfunction-return=thunk and + -mfunction-return=thunk-extern. + * doc/invoke.texi: Document -mcmodel=large is incompatible with + -mindirect-branch=thunk, -mindirect-branch=thunk-extern, + -mfunction-return=thunk and -mfunction-return=thunk-extern. + +2018-01-14 H.J. Lu + + * config/i386/i386.c (print_reg): Print the name of the full + integer register without '%'. + (ix86_print_operand): Handle 'V'. + * doc/extend.texi: Document 'V' modifier. + +2018-01-14 H.J. Lu + + * config/i386/constraints.md (Bs): Disallow memory operand for + -mindirect-branch-register. + (Bw): Likewise. + * config/i386/predicates.md (indirect_branch_operand): Likewise. + (GOT_memory_operand): Likewise. + (call_insn_operand): Likewise. + (sibcall_insn_operand): Likewise. + (GOT32_symbol_operand): Likewise. + * config/i386/i386.md (indirect_jump): Call convert_memory_address + for -mindirect-branch-register. + (tablejump): Likewise. + (*sibcall_memory): Likewise. + (*sibcall_value_memory): Likewise. + Disallow peepholes of indirect call and jump via memory for + -mindirect-branch-register. + (*call_pop): Replace m with Bw. + (*call_value_pop): Likewise. + (*sibcall_pop_memory): Replace m with Bs. + * config/i386/i386.opt (mindirect-branch-register): New option. + * doc/invoke.texi: Document -mindirect-branch-register option. + +2018-01-14 H.J. Lu + + * config/i386/i386-protos.h (ix86_output_function_return): New. + * config/i386/i386.c (ix86_set_indirect_branch_type): Also + set function_return_type. + (indirect_thunk_name): Add ret_p to indicate thunk for function + return. + (output_indirect_thunk_function): Pass false to + indirect_thunk_name. + (ix86_output_indirect_branch_via_reg): Likewise. + (ix86_output_indirect_branch_via_push): Likewise. + (output_indirect_thunk_function): Create alias for function + return thunk if regno < 0. + (ix86_output_function_return): New function. + (ix86_handle_fndecl_attribute): Handle function_return. + (ix86_attribute_table): Add function_return. + * config/i386/i386.h (machine_function): Add + function_return_type. + * config/i386/i386.md (simple_return_internal): Use + ix86_output_function_return. + (simple_return_internal_long): Likewise. + * config/i386/i386.opt (mfunction-return=): New option. + (indirect_branch): Mention -mfunction-return=. + * doc/extend.texi: Document function_return function attribute. + * doc/invoke.texi: Document -mfunction-return= option. + +2018-01-14 H.J. Lu + + * config/i386/i386-opts.h (indirect_branch): New. + * config/i386/i386-protos.h (ix86_output_indirect_jmp): Likewise. + * config/i386/i386.c (ix86_using_red_zone): Disallow red-zone + with local indirect jump when converting indirect call and jump. + (ix86_set_indirect_branch_type): New. + (ix86_set_current_function): Call ix86_set_indirect_branch_type. + (indirectlabelno): New. + (indirect_thunk_needed): Likewise. + (indirect_thunk_bnd_needed): Likewise. + (indirect_thunks_used): Likewise. + (indirect_thunks_bnd_used): Likewise. + (INDIRECT_LABEL): Likewise. + (indirect_thunk_name): Likewise. + (output_indirect_thunk): Likewise. + (output_indirect_thunk_function): Likewise. + (ix86_output_indirect_branch_via_reg): Likewise. + (ix86_output_indirect_branch_via_push): Likewise. + (ix86_output_indirect_branch): Likewise. + (ix86_output_indirect_jmp): Likewise. + (ix86_code_end): Call output_indirect_thunk_function if needed. + (ix86_output_call_insn): Call ix86_output_indirect_branch if + needed. + (ix86_handle_fndecl_attribute): Handle indirect_branch. + (ix86_attribute_table): Add indirect_branch. + * config/i386/i386.h (machine_function): Add indirect_branch_type + and has_local_indirect_jump. + * config/i386/i386.md (indirect_jump): Set has_local_indirect_jump + to true. + (tablejump): Likewise. + (*indirect_jump): Use ix86_output_indirect_jmp. + (*tablejump_1): Likewise. + (simple_return_indirect_internal): Likewise. + * config/i386/i386.opt (mindirect-branch=): New option. + (indirect_branch): New. + (keep): Likewise. + (thunk): Likewise. + (thunk-inline): Likewise. + (thunk-extern): Likewise. + * doc/extend.texi: Document indirect_branch function attribute. + * doc/invoke.texi: Document -mindirect-branch= option. + +2018-01-14 Jan Hubicka + + PR ipa/83051 + * ipa-inline.c (edge_badness): Tolerate roundoff errors. + +2018-01-14 Richard Sandiford + + * ipa-inline.c (want_inline_small_function_p): Return false if + inlining has already failed with CIF_FINAL_ERROR. + (update_caller_keys): Call want_inline_small_function_p before + can_inline_edge_p. + (update_callee_keys): Likewise. + +2018-01-10 Kelvin Nilsen + + * config/rs6000/rs6000-p8swap.c (rs6000_sum_of_two_registers_p): + New function. + (rs6000_quadword_masked_address_p): Likewise. + (quad_aligned_load_p): Likewise. + (quad_aligned_store_p): Likewise. + (const_load_sequence_p): Add comment to describe the outer-most loop. + (mimic_memory_attributes_and_flags): New function. + (rs6000_gen_stvx): Likewise. + (replace_swapped_aligned_store): Likewise. + (rs6000_gen_lvx): Likewise. + (replace_swapped_aligned_load): Likewise. + (replace_swapped_load_constant): Capitalize argument name in + comment describing this function. + (rs6000_analyze_swaps): Add a third pass to search for vector loads + and stores that access quad-word aligned addresses and replace + with stvx or lvx instructions when appropriate. + * config/rs6000/rs6000-protos.h (rs6000_sum_of_two_registers_p): + New function prototype. + (rs6000_quadword_masked_address_p): Likewise. + (rs6000_gen_lvx): Likewise. + (rs6000_gen_stvx): Likewise. + * config/rs6000/vsx.md (*vsx_le_perm_load_): For modes + VSX_D (V2DF, V2DI), modify this split to select lvx instruction + when memory address is aligned. + (*vsx_le_perm_load_): For modes VSX_W (V4SF, V4SI), modify + this split to select lvx instruction when memory address is aligned. + (*vsx_le_perm_load_v8hi): Modify this split to select lvx + instruction when memory address is aligned. + (*vsx_le_perm_load_v16qi): Likewise. + (four unnamed splitters): Modify to select the stvx instruction + when memory is aligned. + +2018-01-13 Jan Hubicka + + * predict.c (determine_unlikely_bbs): Handle correctly BBs + which appears in the queue multiple times. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vectorizer.h (vec_lower_bound): New structure. + (_loop_vec_info): Add check_nonzero and lower_bounds. + (LOOP_VINFO_CHECK_NONZERO): New macro. + (LOOP_VINFO_LOWER_BOUNDS): Likewise. + (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Check lower_bounds too. + * tree-data-ref.h (dr_with_seg_len): Add access_size and align + fields. Make seg_len the distance travelled, not including the + access size. + (dr_direction_indicator): Declare. + (dr_zero_step_indicator): Likewise. + (dr_known_forward_stride_p): Likewise. + * tree-data-ref.c: Include stringpool.h, tree-vrp.h and + tree-ssanames.h. + (runtime_alias_check_p): Allow runtime alias checks with + variable strides. + (operator ==): Compare access_size and align. + (prune_runtime_alias_test_list): Rework for new distinction between + the access_size and seg_len. + (create_intersect_range_checks_index): Likewise. Cope with polynomial + segment lengths. + (get_segment_min_max): New function. + (create_intersect_range_checks): Use it. + (dr_step_indicator): New function. + (dr_direction_indicator): Likewise. + (dr_zero_step_indicator): Likewise. + (dr_known_forward_stride_p): Likewise. + * tree-loop-distribution.c (data_ref_segment_size): Return + DR_STEP * (niters - 1). + (compute_alias_check_pairs): Update call to the dr_with_seg_len + constructor. + * tree-vect-data-refs.c (vect_check_nonzero_value): New function. + (vect_preserves_scalar_order_p): New function, split out from... + (vect_analyze_data_ref_dependence): ...here. Check for zero steps. + (vect_vfa_segment_size): Return DR_STEP * (length_factor - 1). + (vect_vfa_access_size): New function. + (vect_vfa_align): Likewise. + (vect_compile_time_alias): Take access_size_a and access_b arguments. + (dump_lower_bound): New function. + (vect_check_lower_bound): Likewise. + (vect_small_gap_p): Likewise. + (vectorizable_with_step_bound_p): Likewise. + (vect_prune_runtime_alias_test_list): Ignore cross-iteration + depencies if the vectorization factor is 1. Convert the checks + for nonzero steps into checks on the bounds of DR_STEP. Try using + a bunds check for variable steps if the minimum required step is + relatively small. Update calls to the dr_with_seg_len + constructor and to vect_compile_time_alias. + * tree-vect-loop-manip.c (vect_create_cond_for_lower_bounds): New + function. + (vect_loop_versioning): Call it. + * tree-vect-loop.c (vect_analyze_loop_2): Clear LOOP_VINFO_LOWER_BOUNDS + when retrying. + (vect_estimate_min_profitable_iters): Account for any bounds checks. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * doc/sourcebuild.texi (vect_scatter_store): Document. + * optabs.def (scatter_store_optab, mask_scatter_store_optab): New + optabs. + * doc/md.texi (scatter_store@var{m}, mask_scatter_store@var{m}): + Document. + * genopinit.c (main): Add supports_vec_scatter_store and + supports_vec_scatter_store_cached to target_optabs. + * gimple.h (gimple_expr_type): Handle IFN_SCATTER_STORE and + IFN_MASK_SCATTER_STORE. + * internal-fn.def (SCATTER_STORE, MASK_SCATTER_STORE): New internal + functions. + * internal-fn.h (internal_store_fn_p): Declare. + (internal_fn_stored_value_index): Likewise. + * internal-fn.c (scatter_store_direct): New macro. + (expand_scatter_store_optab_fn): New function. + (direct_scatter_store_optab_supported_p): New macro. + (internal_store_fn_p): New function. + (internal_gather_scatter_fn_p): Handle IFN_SCATTER_STORE and + IFN_MASK_SCATTER_STORE. + (internal_fn_mask_index): Likewise. + (internal_fn_stored_value_index): New function. + (internal_gather_scatter_fn_supported_p): Adjust operand numbers + for scatter stores. + * optabs-query.h (supports_vec_scatter_store_p): Declare. + * optabs-query.c (supports_vec_scatter_store_p): New function. + * tree-vectorizer.h (vect_get_store_rhs): Declare. + * tree-vect-data-refs.c (vect_analyze_data_ref_access): Return + true for scatter stores. + (vect_gather_scatter_fn_p): Handle scatter stores too. + (vect_check_gather_scatter): Consider using scatter stores if + supports_vec_scatter_store_p. + * tree-vect-patterns.c (vect_try_gather_scatter_pattern): Handle + scatter stores too. + * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use + internal_fn_stored_value_index. + (check_load_store_masking): Handle scatter stores too. + (vect_get_store_rhs): Make public. + (vectorizable_call): Use internal_store_fn_p. + (vectorizable_store): Handle scatter store internal functions. + (vect_transform_stmt): Compare GROUP_STORE_COUNT with GROUP_SIZE + when deciding whether the end of the group has been reached. + * config/aarch64/aarch64.md (UNSPEC_ST1_SCATTER): New unspec. + * config/aarch64/aarch64-sve.md (scatter_store): New expander. + (mask_scatter_store): New insns. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vectorizer.h (vect_gather_scatter_fn_p): Declare. + * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Make public. + * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): New + function. + (vect_use_strided_gather_scatters_p): Take a masked_p argument. + Use vect_truncate_gather_scatter_offset if we can't treat the + operation as a normal gather load or scatter store. + (get_group_load_store_type): Take the gather_scatter_info + as argument. Try using a gather load or scatter store for + single-element groups. + (get_load_store_type): Update calls to get_group_load_store_type + and vect_use_strided_gather_scatters_p. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vectorizer.h (vect_create_data_ref_ptr): Take an extra + optional tree argument. + * tree-vect-data-refs.c (vect_check_gather_scatter): Check for + null target hooks. + (vect_create_data_ref_ptr): Take the iv_step as an optional argument, + but continue to use the current value as a fallback. + (bump_vector_ptr): Use operand_equal_p rather than tree_int_cst_compare + to compare the updates. + * tree-vect-stmts.c (vect_use_strided_gather_scatters_p): New function. + (get_load_store_type): Use it when handling a strided access. + (vect_get_strided_load_store_ops): New function. + (vect_get_data_ptr_increment): Likewise. + (vectorizable_load): Handle strided gather loads. Always pass + a step to vect_create_data_ref_ptr and bump_vector_ptr. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * doc/md.texi (gather_load@var{m}): Document. + (mask_gather_load@var{m}): Likewise. + * genopinit.c (main): Add supports_vec_gather_load and + supports_vec_gather_load_cached to target_optabs. + * optabs-tree.c (init_tree_optimization_optabs): Use + ggc_cleared_alloc to allocate target_optabs. + * optabs.def (gather_load_optab, mask_gather_laod_optab): New optabs. + * internal-fn.def (GATHER_LOAD, MASK_GATHER_LOAD): New internal + functions. + * internal-fn.h (internal_load_fn_p): Declare. + (internal_gather_scatter_fn_p): Likewise. + (internal_fn_mask_index): Likewise. + (internal_gather_scatter_fn_supported_p): Likewise. + * internal-fn.c (gather_load_direct): New macro. + (expand_gather_load_optab_fn): New function. + (direct_gather_load_optab_supported_p): New macro. + (direct_internal_fn_optab): New function. + (internal_load_fn_p): Likewise. + (internal_gather_scatter_fn_p): Likewise. + (internal_fn_mask_index): Likewise. + (internal_gather_scatter_fn_supported_p): Likewise. + * optabs-query.c (supports_at_least_one_mode_p): New function. + (supports_vec_gather_load_p): Likewise. + * optabs-query.h (supports_vec_gather_load_p): Declare. + * tree-vectorizer.h (gather_scatter_info): Add ifn, element_type + and memory_type field. + (NUM_PATTERNS): Bump to 15. + * tree-vect-data-refs.c: Include internal-fn.h. + (vect_gather_scatter_fn_p): New function. + (vect_describe_gather_scatter_call): Likewise. + (vect_check_gather_scatter): Try using internal functions for + gather loads. Recognize existing calls to a gather load function. + (vect_analyze_data_refs): Consider using gather loads if + supports_vec_gather_load_p. + * tree-vect-patterns.c (vect_get_load_store_mask): New function. + (vect_get_gather_scatter_offset_type): Likewise. + (vect_convert_mask_for_vectype): Likewise. + (vect_add_conversion_to_patterm): Likewise. + (vect_try_gather_scatter_pattern): Likewise. + (vect_recog_gather_scatter_pattern): New pattern recognizer. + (vect_vect_recog_func_ptrs): Add it. + * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use + internal_fn_mask_index and internal_gather_scatter_fn_p. + (check_load_store_masking): Take the gather_scatter_info as an + argument and handle gather loads. + (vect_get_gather_scatter_ops): New function. + (vectorizable_call): Check internal_load_fn_p. + (vectorizable_load): Likewise. Handle gather load internal + functions. + (vectorizable_store): Update call to check_load_store_masking. + * config/aarch64/aarch64.md (UNSPEC_LD1_GATHER): New unspec. + * config/aarch64/iterators.md (SVE_S, SVE_D): New mode iterators. + * config/aarch64/predicates.md (aarch64_gather_scale_operand_w) + (aarch64_gather_scale_operand_d): New predicates. + * config/aarch64/aarch64-sve.md (gather_load): New expander. + (mask_gather_load): New insns. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * optabs.def (fold_left_plus_optab): New optab. + * doc/md.texi (fold_left_plus_@var{m}): Document. + * internal-fn.def (IFN_FOLD_LEFT_PLUS): New internal function. + * internal-fn.c (fold_left_direct): Define. + (expand_fold_left_optab_fn): Likewise. + (direct_fold_left_optab_supported_p): Likewise. + * fold-const-call.c (fold_const_fold_left): New function. + (fold_const_call): Use it to fold CFN_FOLD_LEFT_PLUS. + * tree-parloops.c (valid_reduction_p): New function. + (gather_scalar_reductions): Use it. + * tree-vectorizer.h (FOLD_LEFT_REDUCTION): New vect_reduction_type. + (vect_finish_replace_stmt): Declare. + * tree-vect-loop.c (fold_left_reduction_fn): New function. + (needs_fold_left_reduction_p): New function, split out from... + (vect_is_simple_reduction): ...here. Accept reductions that + forbid reassociation, but give them type FOLD_LEFT_REDUCTION. + (vect_force_simple_reduction): Also store the reduction type in + the assignment's STMT_VINFO_REDUC_TYPE. + (vect_model_reduction_cost): Handle FOLD_LEFT_REDUCTION. + (merge_with_identity): New function. + (vect_expand_fold_left): Likewise. + (vectorize_fold_left_reduction): Likewise. + (vectorizable_reduction): Handle FOLD_LEFT_REDUCTION. Leave the + scalar phi in place for it. Check for target support and reject + cases that would reassociate the operation. Defer the transform + phase to vectorize_fold_left_reduction. + * config/aarch64/aarch64.md (UNSPEC_FADDA): New unspec. + * config/aarch64/aarch64-sve.md (fold_left_plus_): New expander. + (*fold_left_plus_, *pred_fold_left_plus_): New insns. + +2018-01-13 Richard Sandiford + + * tree-if-conv.c (predicate_mem_writes): Remove redundant + call to ifc_temp_var. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * target.def (legitimize_address_displacement): Take the original + offset as a poly_int. + * targhooks.h (default_legitimize_address_displacement): Update + accordingly. + * targhooks.c (default_legitimize_address_displacement): Likewise. + * doc/tm.texi: Regenerate. + * lra-constraints.c (base_plus_disp_to_reg): Take the displacement + as an argument, moving assert of ad->disp == ad->disp_term to... + (process_address_1): ...here. Update calls to base_plus_disp_to_reg. + Try calling targetm.legitimize_address_displacement before expanding + the address rather than afterwards, and adjust for the new interface. + * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement): + Match the new hook interface. Handle SVE addresses. + * config/sh/sh.c (sh_legitimize_address_displacement): Make the + new hook interface. + +2018-01-13 Richard Sandiford + + * Makefile.in (OBJS): Add early-remat.o. + * target.def (select_early_remat_modes): New hook. + * doc/tm.texi.in (TARGET_SELECT_EARLY_REMAT_MODES): New hook. + * doc/tm.texi: Regenerate. + * targhooks.h (default_select_early_remat_modes): Declare. + * targhooks.c (default_select_early_remat_modes): New function. + * timevar.def (TV_EARLY_REMAT): New timevar. + * passes.def (pass_early_remat): New pass. + * tree-pass.h (make_pass_early_remat): Declare. + * early-remat.c: New file. + * config/aarch64/aarch64.c (aarch64_select_early_remat_modes): New + function. + (TARGET_SELECT_EARLY_REMAT_MODES): Define. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Replace + vfm1 with a bound_epilog parameter. + (vect_do_peeling): Update calls accordingly, and move the prologue + call earlier in the function. Treat the base bound_epilog as 0 for + fully-masked loops and retain vf - 1 for other loops. Add 1 to + this base when peeling for gaps. + * tree-vect-loop.c (vect_analyze_loop_2): Allow peeling for gaps + with fully-masked loops. + (vect_estimate_min_profitable_iters): Handle the single peeled + iteration in that case. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vect-data-refs.c (vect_analyze_group_access_1): Allow + single-element interleaving even if the size is not a power of 2. + * tree-vect-stmts.c (get_load_store_type): Disallow elementwise + accesses for single-element interleaving if the group size is + not a power of 2. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * doc/md.texi (fold_extract_last_@var{m}): Document. + * doc/sourcebuild.texi (vect_fold_extract_last): Likewise. + * optabs.def (fold_extract_last_optab): New optab. + * internal-fn.def (FOLD_EXTRACT_LAST): New internal function. + * internal-fn.c (fold_extract_direct): New macro. + (expand_fold_extract_optab_fn): Likewise. + (direct_fold_extract_optab_supported_p): Likewise. + * tree-vectorizer.h (EXTRACT_LAST_REDUCTION): New vect_reduction_type. + * tree-vect-loop.c (vect_model_reduction_cost): Handle + EXTRACT_LAST_REDUCTION. + (get_initial_def_for_reduction): Do not create an initial vector + for EXTRACT_LAST_REDUCTION reductions. + (vectorizable_reduction): Leave the scalar phi in place for + EXTRACT_LAST_REDUCTIONs. Try using EXTRACT_LAST_REDUCTION + ahead of INTEGER_INDUC_COND_REDUCTION. Do not check for an + epilogue code for EXTRACT_LAST_REDUCTION and defer the + transform phase to vectorizable_condition. + * tree-vect-stmts.c (vect_finish_stmt_generation_1): New function, + split out from... + (vect_finish_stmt_generation): ...here. + (vect_finish_replace_stmt): New function. + (vectorizable_condition): Handle EXTRACT_LAST_REDUCTION. + * config/aarch64/aarch64-sve.md (fold_extract_last_): New + pattern. + * config/aarch64/aarch64.md (UNSPEC_CLASTB): New unspec. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * doc/md.texi (extract_last_@var{m}): Document. + * optabs.def (extract_last_optab): New optab. + * internal-fn.def (EXTRACT_LAST): New internal function. + * internal-fn.c (cond_unary_direct): New macro. + (expand_cond_unary_optab_fn): Likewise. + (direct_cond_unary_optab_supported_p): Likewise. + * tree-vect-loop.c (vectorizable_live_operation): Allow fully-masked + loops using EXTRACT_LAST. + * config/aarch64/aarch64-sve.md (aarch64_sve_lastb): Rename to... + (extract_last_): ...this optab. + (vec_extract): Update accordingly. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * target.def (empty_mask_is_expensive): New hook. + * doc/tm.texi.in (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): New hook. + * doc/tm.texi: Regenerate. + * targhooks.h (default_empty_mask_is_expensive): Declare. + * targhooks.c (default_empty_mask_is_expensive): New function. + * tree-vectorizer.c (vectorize_loops): Only call optimize_mask_stores + if the target says that empty masks are expensive. + * config/aarch64/aarch64.c (aarch64_empty_mask_is_expensive): + New function. + (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): Redefine. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vectorizer.h (_loop_vec_info::mask_skip_niters): New field. + (LOOP_VINFO_MASK_SKIP_NITERS): New macro. + (vect_use_loop_mask_for_alignment_p): New function. + (vect_prepare_for_masked_peels, vect_gen_while_not): Declare. + * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Add an + niters_skip argument. Make sure that the first niters_skip elements + of the first iteration are inactive. + (vect_set_loop_condition_masked): Handle LOOP_VINFO_MASK_SKIP_NITERS. + Update call to vect_set_loop_masks_directly. + (get_misalign_in_elems): New function, split out from... + (vect_gen_prolog_loop_niters): ...here. + (vect_update_init_of_dr): Take a code argument that specifies whether + the adjustment should be added or subtracted. + (vect_update_init_of_drs): Likewise. + (vect_prepare_for_masked_peels): New function. + (vect_do_peeling): Skip prologue peeling if we're using a mask + instead. Update call to vect_update_inits_of_drs. + * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize + mask_skip_niters. + (vect_analyze_loop_2): Allow fully-masked loops with peeling for + alignment. Do not include the number of peeled iterations in + the minimum threshold in that case. + (vectorizable_induction): Adjust the start value down by + LOOP_VINFO_MASK_SKIP_NITERS iterations. + (vect_transform_loop): Call vect_prepare_for_masked_peels. + Take the number of skipped iterations into account when calculating + the loop bounds. + * tree-vect-stmts.c (vect_gen_while_not): New function. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * doc/sourcebuild.texi (vect_fully_masked): Document. + * params.def (PARAM_MIN_VECT_LOOP_BOUND): Change minimum and + default value to 0. + * tree-vect-loop.c (vect_analyze_loop_costing): New function, + split out from... + (vect_analyze_loop_2): ...here. Don't check the vectorization + factor against the number of loop iterations if the loop is + fully-masked. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-ssa-loop-ivopts.c (USE_ADDRESS): Split into... + (USE_REF_ADDRESS, USE_PTR_ADDRESS): ...these new use types. + (dump_groups): Update accordingly. + (iv_use::mem_type): New member variable. + (address_p): New function. + (record_use): Add a mem_type argument and initialize the new + mem_type field. + (record_group_use): Add a mem_type argument. Use address_p. + Remove obsolete null checks of base_object. Update call to record_use. + (find_interesting_uses_op): Update call to record_group_use. + (find_interesting_uses_cond): Likewise. + (find_interesting_uses_address): Likewise. + (get_mem_type_for_internal_fn): New function. + (find_address_like_use): Likewise. + (find_interesting_uses_stmt): Try find_address_like_use before + calling find_interesting_uses_op. + (addr_offset_valid_p): Use the iv mem_type field as the type + of the addressed memory. + (add_autoinc_candidates): Likewise. + (get_address_cost): Likewise. + (split_small_address_groups_p): Use address_p. + (split_address_groups): Likewise. + (add_iv_candidate_for_use): Likewise. + (autoinc_possible_for_pair): Likewise. + (rewrite_groups): Likewise. + (get_use_type): Check for USE_REF_ADDRESS instead of USE_ADDRESS. + (determine_group_iv_cost): Update after split of USE_ADDRESS. + (get_alias_ptr_type_for_ptr_address): New function. + (rewrite_use_address): Rewrite address uses in calls that were + identified by find_address_like_use. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * expr.c (expand_expr_addr_expr_1): Handle ADDR_EXPRs of + TARGET_MEM_REFs. + * gimple-expr.h (is_gimple_addressable: Likewise. + * gimple-expr.c (is_gimple_address): Likewise. + * internal-fn.c (expand_call_mem_ref): New function. + (expand_mask_load_optab_fn): Use it. + (expand_mask_store_optab_fn): Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * doc/md.texi (cond_add@var{mode}, cond_sub@var{mode}) + (cond_and@var{mode}, cond_ior@var{mode}, cond_xor@var{mode}) + (cond_smin@var{mode}, cond_smax@var{mode}, cond_umin@var{mode}) + (cond_umax@var{mode}): Document. + * optabs.def (cond_add_optab, cond_sub_optab, cond_and_optab) + (cond_ior_optab, cond_xor_optab, cond_smin_optab, cond_smax_optab) + (cond_umin_optab, cond_umax_optab): New optabs. + * internal-fn.def (COND_ADD, COND_SUB, COND_MIN, COND_MAX, COND_AND) + (COND_IOR, COND_XOR): New internal functions. + * internal-fn.h (get_conditional_internal_fn): Declare. + * internal-fn.c (cond_binary_direct): New macro. + (expand_cond_binary_optab_fn): Likewise. + (direct_cond_binary_optab_supported_p): Likewise. + (get_conditional_internal_fn): New function. + * tree-vect-loop.c (vectorizable_reduction): Handle fully-masked loops. + Cope with reduction statements that are vectorized as calls rather + than assignments. + * config/aarch64/aarch64-sve.md (cond_): New insns. + * config/aarch64/iterators.md (UNSPEC_COND_ADD, UNSPEC_COND_SUB) + (UNSPEC_COND_SMAX, UNSPEC_COND_UMAX, UNSPEC_COND_SMIN) + (UNSPEC_COND_UMIN, UNSPEC_COND_AND, UNSPEC_COND_ORR) + (UNSPEC_COND_EOR): New unspecs. + (optab): Add mappings for them. + (SVE_COND_INT_OP, SVE_COND_FP_OP): New int iterators. + (sve_int_op, sve_fp_op): New int attributes. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * optabs.def (while_ult_optab): New optab. + * doc/md.texi (while_ult@var{m}@var{n}): Document. + * internal-fn.def (WHILE_ULT): New internal function. + * internal-fn.h (direct_internal_fn_supported_p): New override + that takes two types as argument. + * internal-fn.c (while_direct): New macro. + (expand_while_optab_fn): New function. + (convert_optab_supported_p): Likewise. + (direct_while_optab_supported_p): New macro. + * wide-int.h (wi::udiv_ceil): New function. + * tree-vectorizer.h (rgroup_masks): New structure. + (vec_loop_masks): New typedef. + (_loop_vec_info): Add masks, mask_compare_type, can_fully_mask_p + and fully_masked_p. + (LOOP_VINFO_CAN_FULLY_MASK_P, LOOP_VINFO_FULLY_MASKED_P) + (LOOP_VINFO_MASKS, LOOP_VINFO_MASK_COMPARE_TYPE): New macros. + (vect_max_vf): New function. + (slpeel_make_loop_iterate_ntimes): Delete. + (vect_set_loop_condition, vect_get_loop_mask_type, vect_gen_while) + (vect_halve_mask_nunits, vect_double_mask_nunits): Declare. + (vect_record_loop_mask, vect_get_loop_mask): Likewise. + * tree-vect-loop-manip.c: Include tree-ssa-loop-niter.h, + internal-fn.h, stor-layout.h and optabs-query.h. + (vect_set_loop_mask): New function. + (add_preheader_seq): Likewise. + (add_header_seq): Likewise. + (interleave_supported_p): Likewise. + (vect_maybe_permute_loop_masks): Likewise. + (vect_set_loop_masks_directly): Likewise. + (vect_set_loop_condition_masked): Likewise. + (vect_set_loop_condition_unmasked): New function, split out from + slpeel_make_loop_iterate_ntimes. + (slpeel_make_loop_iterate_ntimes): Rename to.. + (vect_set_loop_condition): ...this. Use vect_set_loop_condition_masked + for fully-masked loops and vect_set_loop_condition_unmasked otherwise. + (vect_do_peeling): Update call accordingly. + (vect_gen_vector_loop_niters): Use VF as the step for fully-masked + loops. + * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize + mask_compare_type, can_fully_mask_p and fully_masked_p. + (release_vec_loop_masks): New function. + (_loop_vec_info): Use it to free the loop masks. + (can_produce_all_loop_masks_p): New function. + (vect_get_max_nscalars_per_iter): Likewise. + (vect_verify_full_masking): Likewise. + (vect_analyze_loop_2): Save LOOP_VINFO_CAN_FULLY_MASK_P around + retries, and free the mask rgroups before retrying. Check loop-wide + reasons for disallowing fully-masked loops. Make the final decision + about whether use a fully-masked loop or not. + (vect_estimate_min_profitable_iters): Do not assume that peeling + for the number of iterations will be needed for fully-masked loops. + (vectorizable_reduction): Disable fully-masked loops. + (vectorizable_live_operation): Likewise. + (vect_halve_mask_nunits): New function. + (vect_double_mask_nunits): Likewise. + (vect_record_loop_mask): Likewise. + (vect_get_loop_mask): Likewise. + (vect_transform_loop): Handle the case in which the final loop + iteration might handle a partial vector. Call vect_set_loop_condition + instead of slpeel_make_loop_iterate_ntimes. + * tree-vect-stmts.c: Include tree-ssa-loop-niter.h and gimple-fold.h. + (check_load_store_masking): New function. + (prepare_load_store_mask): Likewise. + (vectorizable_store): Handle fully-masked loops. + (vectorizable_load): Likewise. + (supportable_widening_operation): Use vect_halve_mask_nunits for + booleans. + (supportable_narrowing_operation): Likewise vect_double_mask_nunits. + (vect_gen_while): New function. + * config/aarch64/aarch64.md (umax3): New expander. + (aarch64_uqdec): New insn. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * optabs.def (reduc_and_scal_optab, reduc_ior_scal_optab) + (reduc_xor_scal_optab): New optabs. + * doc/md.texi (reduc_and_scal_@var{m}, reduc_ior_scal_@var{m}) + (reduc_xor_scal_@var{m}): Document. + * doc/sourcebuild.texi (vect_logical_reduc): Likewise. + * internal-fn.def (IFN_REDUC_AND, IFN_REDUC_IOR, IFN_REDUC_XOR): New + internal functions. + * fold-const-call.c (fold_const_call): Handle them. + * tree-vect-loop.c (reduction_fn_for_scalar_code): Return the new + internal functions for BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR. + * config/aarch64/aarch64-sve.md (reduc__scal_): + (*reduc__scal_): New patterns. + * config/aarch64/iterators.md (UNSPEC_ANDV, UNSPEC_ORV) + (UNSPEC_XORV): New unspecs. + (optab): Add entries for them. + (BITWISEV): New int iterator. + (bit_reduc_op): New int attributes. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * doc/md.texi (vec_shl_insert_@var{m}): New optab. + * internal-fn.def (VEC_SHL_INSERT): New internal function. + * optabs.def (vec_shl_insert_optab): New optab. + * tree-vectorizer.h (can_duplicate_and_interleave_p): Declare. + (duplicate_and_interleave): Likewise. + * tree-vect-loop.c: Include internal-fn.h. + (neutral_op_for_slp_reduction): New function, split out from + get_initial_defs_for_reduction. + (get_initial_def_for_reduction): Handle option 2 for variable-length + vectors by loading the neutral value into a vector and then shifting + the initial value into element 0. + (get_initial_defs_for_reduction): Replace the code argument with + the neutral value calculated by neutral_op_for_slp_reduction. + Use gimple_build_vector for constant-length vectors. + Use IFN_VEC_SHL_INSERT for variable-length vectors if all + but the first group_size elements have a neutral value. + Use duplicate_and_interleave otherwise. + (vect_create_epilog_for_reduction): Take a neutral_op parameter. + Update call to get_initial_defs_for_reduction. Handle SLP + reductions for variable-length vectors by creating one vector + result for each scalar result, with the elements associated + with other scalar results stubbed out with the neutral value. + (vectorizable_reduction): Call neutral_op_for_slp_reduction. + Require IFN_VEC_SHL_INSERT for double reductions on + variable-length vectors, or SLP reductions that have + a neutral value. Require can_duplicate_and_interleave_p + support for variable-length unchained SLP reductions if there + is no neutral value, such as for MIN/MAX reductions. Also require + the number of vector elements to be a multiple of the number of + SLP statements when doing variable-length unchained SLP reductions. + Update call to vect_create_epilog_for_reduction. + * tree-vect-slp.c (can_duplicate_and_interleave_p): Make public + and remove initial values. + (duplicate_and_interleave): Make public. + * config/aarch64/aarch64.md (UNSPEC_INSR): New unspec. + * config/aarch64/aarch64-sve.md (vec_shl_insert_): New insn. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vect-slp.c: Include gimple-fold.h and internal-fn.h + (can_duplicate_and_interleave_p): New function. + (vect_get_and_check_slp_defs): Take the vector of statements + rather than just the current one. Remove excess parentheses. + Restriction rejectinon of vect_constant_def and vect_external_def + for variable-length vectors to boolean types, or types for which + can_duplicate_and_interleave_p is false. + (vect_build_slp_tree_2): Update call to vect_get_and_check_slp_defs. + (duplicate_and_interleave): New function. + (vect_get_constant_vectors): Use gimple_build_vector for + constant-length vectors and suitable variable-length constant + vectors. Use duplicate_and_interleave for other variable-length + vectors. Don't defer the update when inserting new statements. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vect-loop.c (vect_estimate_min_profitable_iters): Make sure + min_profitable_iters doesn't go negative. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * doc/md.texi (vec_mask_load_lanes@var{m}@var{n}): Document. + (vec_mask_store_lanes@var{m}@var{n}): Likewise. + * optabs.def (vec_mask_load_lanes_optab): New optab. + (vec_mask_store_lanes_optab): Likewise. + * internal-fn.def (MASK_LOAD_LANES): New internal function. + (MASK_STORE_LANES): Likewise. + * internal-fn.c (mask_load_lanes_direct): New macro. + (mask_store_lanes_direct): Likewise. + (expand_mask_load_optab_fn): Handle masked operations. + (expand_mask_load_lanes_optab_fn): New macro. + (expand_mask_store_optab_fn): Handle masked operations. + (expand_mask_store_lanes_optab_fn): New macro. + (direct_mask_load_lanes_optab_supported_p): Likewise. + (direct_mask_store_lanes_optab_supported_p): Likewise. + * tree-vectorizer.h (vect_store_lanes_supported): Take a masked_p + parameter. + (vect_load_lanes_supported): Likewise. + * tree-vect-data-refs.c (strip_conversion): New function. + (can_group_stmts_p): Likewise. + (vect_analyze_data_ref_accesses): Use it instead of checking + for a pair of assignments. + (vect_store_lanes_supported): Take a masked_p parameter. + (vect_load_lanes_supported): Likewise. + * tree-vect-loop.c (vect_analyze_loop_2): Update calls to + vect_store_lanes_supported and vect_load_lanes_supported. + * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. + * tree-vect-stmts.c (get_group_load_store_type): Take a masked_p + parameter. Don't allow gaps for masked accesses. + Use vect_get_store_rhs. Update calls to vect_store_lanes_supported + and vect_load_lanes_supported. + (get_load_store_type): Take a masked_p parameter and update + call to get_group_load_store_type. + (vectorizable_store): Update call to get_load_store_type. + Handle IFN_MASK_STORE_LANES. + (vectorizable_load): Update call to get_load_store_type. + Handle IFN_MASK_LOAD_LANES. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * config/aarch64/aarch64-modes.def: Define x2, x3 and x4 vector + modes for SVE. + * config/aarch64/aarch64-protos.h + (aarch64_sve_struct_memory_operand_p): Declare. + * config/aarch64/iterators.md (SVE_STRUCT): New mode iterator. + (vector_count, insn_length, VSINGLE, vsingle): New mode attributes. + (VPRED, vpred): Handle SVE structure modes. + * config/aarch64/constraints.md (Utx): New constraint. + * config/aarch64/predicates.md (aarch64_sve_struct_memory_operand) + (aarch64_sve_struct_nonimmediate_operand): New predicates. + * config/aarch64/aarch64.md (UNSPEC_LDN, UNSPEC_STN): New unspecs. + * config/aarch64/aarch64-sve.md (mov, *aarch64_sve_mov_le) + (*aarch64_sve_mov_be, pred_mov): New patterns for + structure modes. Split into pieces after RA. + (vec_load_lanes, vec_mask_load_lanes) + (vec_store_lanes, vec_mask_store_lanes): + New patterns. + * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle + SVE structure modes. + (aarch64_classify_address): Likewise. + (sizetochar): Move earlier in file. + (aarch64_print_operand): Handle SVE register lists. + (aarch64_array_mode): New function. + (aarch64_sve_struct_memory_operand_p): Likewise. + (TARGET_ARRAY_MODE): Redefine. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * target.def (array_mode): New target hook. + * doc/tm.texi.in (TARGET_ARRAY_MODE): New hook. + * doc/tm.texi: Regenerate. + * hooks.h (hook_optmode_mode_uhwi_none): Declare. + * hooks.c (hook_optmode_mode_uhwi_none): New function. + * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Use + targetm.array_mode. + * stor-layout.c (mode_for_array): Likewise. Support polynomial + type sizes. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * fold-const.c (fold_binary_loc): Check the argument types + rather than the result type when testing for a vector operation. + +2018-01-13 Richard Sandiford + + * doc/tm.texi.in (DWARF_LAZY_REGISTER_VALUE): Document. + * doc/tm.texi: Regenerate. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * doc/invoke.texi (-msve-vector-bits=): Document new option. + (sve): Document new AArch64 extension. + * doc/md.texi (w): Extend the description of the AArch64 + constraint to include SVE vectors. + (Upl, Upa): Document new AArch64 predicate constraints. + * config/aarch64/aarch64-opts.h (aarch64_sve_vector_bits_enum): New + enum. + * config/aarch64/aarch64.opt (sve_vector_bits): New enum. + (msve-vector-bits=): New option. + * config/aarch64/aarch64-option-extensions.def (fp, simd): Disable + SVE when these are disabled. + (sve): New extension. + * config/aarch64/aarch64-modes.def: Define SVE vector and predicate + modes. Adjust their number of units based on aarch64_sve_vg. + (MAX_BITSIZE_MODE_ANY_MODE): Define. + * config/aarch64/aarch64-protos.h (ADDR_QUERY_ANY): New + aarch64_addr_query_type. + (aarch64_const_vec_all_same_in_range_p, aarch64_sve_pred_mode) + (aarch64_sve_cnt_immediate_p, aarch64_sve_addvl_addpl_immediate_p) + (aarch64_sve_inc_dec_immediate_p, aarch64_add_offset_temporaries) + (aarch64_split_add_offset, aarch64_output_sve_cnt_immediate) + (aarch64_output_sve_addvl_addpl, aarch64_output_sve_inc_dec_immediate) + (aarch64_output_sve_mov_immediate, aarch64_output_ptrue): Declare. + (aarch64_simd_imm_zero_p): Delete. + (aarch64_check_zero_based_sve_index_immediate): Declare. + (aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p) + (aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p) + (aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p) + (aarch64_sve_float_mul_immediate_p): Likewise. + (aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT + rather than an rtx. + (aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): Declare. + (aarch64_expand_mov_immediate): Take a gen_vec_duplicate callback. + (aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move): Declare. + (aarch64_expand_sve_vec_cmp_int, aarch64_expand_sve_vec_cmp_float) + (aarch64_expand_sve_vcond, aarch64_expand_sve_vec_perm): Declare. + (aarch64_regmode_natural_size): Likewise. + * config/aarch64/aarch64.h (AARCH64_FL_SVE): New macro. + (AARCH64_FL_V8_3, AARCH64_FL_RCPC, AARCH64_FL_DOTPROD): Shift + left one place. + (AARCH64_ISA_SVE, TARGET_SVE): New macros. + (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add entries + for VG and the SVE predicate registers. + (V_ALIASES): Add a "z"-prefixed alias. + (FIRST_PSEUDO_REGISTER): Change to P15_REGNUM + 1. + (AARCH64_DWARF_VG, AARCH64_DWARF_P0): New macros. + (PR_REGNUM_P, PR_LO_REGNUM_P): Likewise. + (PR_LO_REGS, PR_HI_REGS, PR_REGS): New reg_classes. + (REG_CLASS_NAMES): Add entries for them. + (REG_CLASS_CONTENTS): Likewise. Update ALL_REGS to include VG + and the predicate registers. + (aarch64_sve_vg): Declare. + (BITS_PER_SVE_VECTOR, BYTES_PER_SVE_VECTOR, BYTES_PER_SVE_PRED) + (SVE_BYTE_MODE, MAX_COMPILE_TIME_VEC_BYTES): New macros. + (REGMODE_NATURAL_SIZE): Define. + * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle + SVE macros. + * config/aarch64/aarch64.c: Include cfgrtl.h. + (simd_immediate_info): Add a constructor for series vectors, + and an associated step field. + (aarch64_sve_vg): New variable. + (aarch64_dbx_register_number): Handle VG and the predicate registers. + (aarch64_vect_struct_mode_p, aarch64_vector_mode_p): Delete. + (VEC_ADVSIMD, VEC_SVE_DATA, VEC_SVE_PRED, VEC_STRUCT, VEC_ANY_SVE) + (VEC_ANY_DATA, VEC_STRUCT): New constants. + (aarch64_advsimd_struct_mode_p, aarch64_sve_pred_mode_p) + (aarch64_classify_vector_mode, aarch64_vector_data_mode_p) + (aarch64_sve_data_mode_p, aarch64_sve_pred_mode) + (aarch64_get_mask_mode): New functions. + (aarch64_hard_regno_nregs): Handle SVE data modes for FP_REGS + and FP_LO_REGS. Handle PR_REGS, PR_LO_REGS and PR_HI_REGS. + (aarch64_hard_regno_mode_ok): Handle VG. Also handle the SVE + predicate modes and predicate registers. Explicitly restrict + GPRs to modes of 16 bytes or smaller. Only allow FP registers + to store a vector mode if it is recognized by + aarch64_classify_vector_mode. + (aarch64_regmode_natural_size): New function. + (aarch64_hard_regno_caller_save_mode): Return the original mode + for predicates. + (aarch64_sve_cnt_immediate_p, aarch64_output_sve_cnt_immediate) + (aarch64_sve_addvl_addpl_immediate_p, aarch64_output_sve_addvl_addpl) + (aarch64_sve_inc_dec_immediate_p, aarch64_output_sve_inc_dec_immediate) + (aarch64_add_offset_1_temporaries, aarch64_offset_temporaries): New + functions. + (aarch64_add_offset): Add a temp2 parameter. Assert that temp1 + does not overlap dest if the function is frame-related. Handle + SVE constants. + (aarch64_split_add_offset): New function. + (aarch64_add_sp, aarch64_sub_sp): Add temp2 parameters and pass + them aarch64_add_offset. + (aarch64_allocate_and_probe_stack_space): Add a temp2 parameter + and update call to aarch64_sub_sp. + (aarch64_add_cfa_expression): New function. + (aarch64_expand_prologue): Pass extra temporary registers to the + functions above. Handle the case in which we need to emit new + DW_CFA_expressions for registers that were originally saved + relative to the stack pointer, but now have to be expressed + relative to the frame pointer. + (aarch64_output_mi_thunk): Pass extra temporary registers to the + functions above. + (aarch64_expand_epilogue): Likewise. Prevent inheritance of + IP0 and IP1 values for SVE frames. + (aarch64_expand_vec_series): New function. + (aarch64_expand_sve_widened_duplicate): Likewise. + (aarch64_expand_sve_const_vector): Likewise. + (aarch64_expand_mov_immediate): Add a gen_vec_duplicate parameter. + Handle SVE constants. Use emit_move_insn to move a force_const_mem + into the register, rather than emitting a SET directly. + (aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move) + (aarch64_get_reg_raw_mode, offset_4bit_signed_scaled_p) + (offset_6bit_unsigned_scaled_p, aarch64_offset_7bit_signed_scaled_p) + (offset_9bit_signed_scaled_p): New functions. + (aarch64_replicate_bitmask_imm): New function. + (aarch64_bitmask_imm): Use it. + (aarch64_cannot_force_const_mem): Reject expressions involving + a CONST_POLY_INT. Update call to aarch64_classify_symbol. + (aarch64_classify_index): Handle SVE indices, by requiring + a plain register index with a scale that matches the element size. + (aarch64_classify_address): Handle SVE addresses. Assert that + the mode of the address is VOIDmode or an integer mode. + Update call to aarch64_classify_symbol. + (aarch64_classify_symbolic_expression): Update call to + aarch64_classify_symbol. + (aarch64_const_vec_all_in_range_p): New function. + (aarch64_print_vector_float_operand): Likewise. + (aarch64_print_operand): Handle 'N' and 'C'. Use "zN" rather than + "vN" for FP registers with SVE modes. Handle (const ...) vectors + and the FP immediates 1.0 and 0.5. + (aarch64_print_address_internal): Handle SVE addresses. + (aarch64_print_operand_address): Use ADDR_QUERY_ANY. + (aarch64_regno_regclass): Handle predicate registers. + (aarch64_secondary_reload): Handle big-endian reloads of SVE + data modes. + (aarch64_class_max_nregs): Handle SVE modes and predicate registers. + (aarch64_rtx_costs): Check for ADDVL and ADDPL instructions. + (aarch64_convert_sve_vector_bits): New function. + (aarch64_override_options): Use it to handle -msve-vector-bits=. + (aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT + rather than an rtx. + (aarch64_legitimate_constant_p): Use aarch64_classify_vector_mode. + Handle SVE vector and predicate modes. Accept VL-based constants + that need only one temporary register, and VL offsets that require + no temporary registers. + (aarch64_conditional_register_usage): Mark the predicate registers + as fixed if SVE isn't available. + (aarch64_vector_mode_supported_p): Use aarch64_classify_vector_mode. + Return true for SVE vector and predicate modes. + (aarch64_simd_container_mode): Take the number of bits as a poly_int64 + rather than an unsigned int. Handle SVE modes. + (aarch64_preferred_simd_mode): Update call accordingly. Handle + SVE modes. + (aarch64_autovectorize_vector_sizes): Add BYTES_PER_SVE_VECTOR + if SVE is enabled. + (aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p) + (aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p) + (aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p) + (aarch64_sve_float_mul_immediate_p): New functions. + (aarch64_sve_valid_immediate): New function. + (aarch64_simd_valid_immediate): Use it as the fallback for SVE vectors. + Explicitly reject structure modes. Check for INDEX constants. + Handle PTRUE and PFALSE constants. + (aarch64_check_zero_based_sve_index_immediate): New function. + (aarch64_simd_imm_zero_p): Delete. + (aarch64_mov_operand_p): Use aarch64_simd_valid_immediate for + vector modes. Accept constants in the range of CNT[BHWD]. + (aarch64_simd_scalar_immediate_valid_for_move): Explicitly + ask for an Advanced SIMD mode. + (aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): New functions. + (aarch64_simd_vector_alignment): Handle SVE predicates. + (aarch64_vectorize_preferred_vector_alignment): New function. + (aarch64_simd_vector_alignment_reachable): Use it instead of + the vector size. + (aarch64_shift_truncation_mask): Use aarch64_vector_data_mode_p. + (aarch64_output_sve_mov_immediate, aarch64_output_ptrue): New + functions. + (MAX_VECT_LEN): Delete. + (expand_vec_perm_d): Add a vec_flags field. + (emit_unspec2, aarch64_expand_sve_vec_perm): New functions. + (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip) + (aarch64_evpc_ext): Don't apply a big-endian lane correction + for SVE modes. + (aarch64_evpc_rev): Rename to... + (aarch64_evpc_rev_local): ...this. Use a predicated operation for SVE. + (aarch64_evpc_rev_global): New function. + (aarch64_evpc_dup): Enforce a 64-byte range for SVE DUP. + (aarch64_evpc_tbl): Use MAX_COMPILE_TIME_VEC_BYTES instead of + MAX_VECT_LEN. + (aarch64_evpc_sve_tbl): New function. + (aarch64_expand_vec_perm_const_1): Update after rename of + aarch64_evpc_rev. Handle SVE permutes too, trying + aarch64_evpc_rev_global and using aarch64_evpc_sve_tbl rather + than aarch64_evpc_tbl. + (aarch64_vectorize_vec_perm_const): Initialize vec_flags. + (aarch64_sve_cmp_operand_p, aarch64_unspec_cond_code) + (aarch64_gen_unspec_cond, aarch64_expand_sve_vec_cmp_int) + (aarch64_emit_unspec_cond, aarch64_emit_unspec_cond_or) + (aarch64_emit_inverted_unspec_cond, aarch64_expand_sve_vec_cmp_float) + (aarch64_expand_sve_vcond): New functions. + (aarch64_modes_tieable_p): Use aarch64_vector_data_mode_p instead + of aarch64_vector_mode_p. + (aarch64_dwarf_poly_indeterminate_value): New function. + (aarch64_compute_pressure_classes): Likewise. + (aarch64_can_change_mode_class): Likewise. + (TARGET_GET_RAW_RESULT_MODE, TARGET_GET_RAW_ARG_MODE): Redefine. + (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): Likewise. + (TARGET_VECTORIZE_GET_MASK_MODE): Likewise. + (TARGET_DWARF_POLY_INDETERMINATE_VALUE): Likewise. + (TARGET_COMPUTE_PRESSURE_CLASSES): Likewise. + (TARGET_CAN_CHANGE_MODE_CLASS): Likewise. + * config/aarch64/constraints.md (Upa, Upl, Uav, Uat, Usv, Usi, Utr) + (Uty, Dm, vsa, vsc, vsd, vsi, vsn, vsl, vsm, vsA, vsM, vsN): New + constraints. + (Dn, Dl, Dr): Accept const as well as const_vector. + (Dz): Likewise. Compare against CONST0_RTX. + * config/aarch64/iterators.md: Refer to "Advanced SIMD" instead + of "vector" where appropriate. + (SVE_ALL, SVE_BH, SVE_BHS, SVE_BHSI, SVE_HSDI, SVE_HSF, SVE_SD) + (SVE_SDI, SVE_I, SVE_F, PRED_ALL, PRED_BHS): New mode iterators. + (UNSPEC_SEL, UNSPEC_ANDF, UNSPEC_IORF, UNSPEC_XORF, UNSPEC_COND_LT) + (UNSPEC_COND_LE, UNSPEC_COND_EQ, UNSPEC_COND_NE, UNSPEC_COND_GE) + (UNSPEC_COND_GT, UNSPEC_COND_LO, UNSPEC_COND_LS, UNSPEC_COND_HS) + (UNSPEC_COND_HI, UNSPEC_COND_UO): New unspecs. + (Vetype, VEL, Vel, VWIDE, Vwide, vw, vwcore, V_INT_EQUIV) + (v_int_equiv): Extend to SVE modes. + (Vesize, V128, v128, Vewtype, V_FP_EQUIV, v_fp_equiv, VPRED): New + mode attributes. + (LOGICAL_OR, SVE_INT_UNARY, SVE_FP_UNARY): New code iterators. + (optab): Handle popcount, smin, smax, umin, umax, abs and sqrt. + (logical_nn, lr, sve_int_op, sve_fp_op): New code attributs. + (LOGICALF, OPTAB_PERMUTE, UNPACK, UNPACK_UNSIGNED, SVE_COND_INT_CMP) + (SVE_COND_FP_CMP): New int iterators. + (perm_hilo): Handle the new unpack unspecs. + (optab, logicalf_op, su, perm_optab, cmp_op, imm_con): New int + attributes. + * config/aarch64/predicates.md (aarch64_sve_cnt_immediate) + (aarch64_sve_addvl_addpl_immediate, aarch64_split_add_offset_immediate) + (aarch64_pluslong_or_poly_operand, aarch64_nonmemory_operand) + (aarch64_equality_operator, aarch64_constant_vector_operand) + (aarch64_sve_ld1r_operand, aarch64_sve_ldr_operand): New predicates. + (aarch64_sve_nonimmediate_operand): Likewise. + (aarch64_sve_general_operand): Likewise. + (aarch64_sve_dup_operand, aarch64_sve_arith_immediate): Likewise. + (aarch64_sve_sub_arith_immediate, aarch64_sve_inc_dec_immediate) + (aarch64_sve_logical_immediate, aarch64_sve_mul_immediate): Likewise. + (aarch64_sve_dup_immediate, aarch64_sve_cmp_vsc_immediate): Likewise. + (aarch64_sve_cmp_vsd_immediate, aarch64_sve_index_immediate): Likewise. + (aarch64_sve_float_arith_immediate): Likewise. + (aarch64_sve_float_arith_with_sub_immediate): Likewise. + (aarch64_sve_float_mul_immediate, aarch64_sve_arith_operand): Likewise. + (aarch64_sve_add_operand, aarch64_sve_logical_operand): Likewise. + (aarch64_sve_lshift_operand, aarch64_sve_rshift_operand): Likewise. + (aarch64_sve_mul_operand, aarch64_sve_cmp_vsc_operand): Likewise. + (aarch64_sve_cmp_vsd_operand, aarch64_sve_index_operand): Likewise. + (aarch64_sve_float_arith_operand): Likewise. + (aarch64_sve_float_arith_with_sub_operand): Likewise. + (aarch64_sve_float_mul_operand): Likewise. + (aarch64_sve_vec_perm_operand): Likewise. + (aarch64_pluslong_operand): Include aarch64_sve_addvl_addpl_immediate. + (aarch64_mov_operand): Accept const_poly_int and const_vector. + (aarch64_simd_lshift_imm, aarch64_simd_rshift_imm): Accept const + as well as const_vector. + (aarch64_simd_imm_zero, aarch64_simd_imm_minus_one): Move earlier + in file. Use CONST0_RTX and CONSTM1_RTX. + (aarch64_simd_or_scalar_imm_zero): Likewise. Add match_codes. + (aarch64_simd_reg_or_zero): Accept const as well as const_vector. + Use aarch64_simd_imm_zero. + * config/aarch64/aarch64-sve.md: New file. + * config/aarch64/aarch64.md: Include it. + (VG_REGNUM, P0_REGNUM, P7_REGNUM, P15_REGNUM): New register numbers. + (UNSPEC_REV, UNSPEC_LD1_SVE, UNSPEC_ST1_SVE, UNSPEC_MERGE_PTRUE) + (UNSPEC_PTEST_PTRUE, UNSPEC_UNPACKSHI, UNSPEC_UNPACKUHI) + (UNSPEC_UNPACKSLO, UNSPEC_UNPACKULO, UNSPEC_PACK) + (UNSPEC_FLOAT_CONVERT, UNSPEC_WHILE_LO): New unspec constants. + (sve): New attribute. + (enabled): Disable instructions with the sve attribute unless + TARGET_SVE. + (movqi, movhi): Pass CONST_POLY_INT operaneds through + aarch64_expand_mov_immediate. + (*mov_aarch64, *movsi_aarch64, *movdi_aarch64): Handle + CNT[BHSD] immediates. + (movti): Split CONST_POLY_INT moves into two halves. + (add3): Accept aarch64_pluslong_or_poly_operand. + Split additions that need a temporary here if the destination + is the stack pointer. + (*add3_aarch64): Handle ADDVL and ADDPL immediates. + (*add3_poly_1): New instruction. + (set_clobber_cc): New expander. + +2018-01-13 Richard Sandiford + + * simplify-rtx.c (simplify_immed_subreg): Add an inner_bytes + parameter and use it instead of GET_MODE_SIZE (innermode). Use + inner_bytes * BITS_PER_UNIT instead of GET_MODE_BITSIZE (innermode). + Use CEIL (inner_bytes, GET_MODE_UNIT_SIZE (innermode)) instead of + GET_MODE_NUNITS (innermode). Also add a first_elem parameter. + Change innermode from fixed_mode_size to machine_mode. + (simplify_subreg): Update call accordingly. Handle a constant-sized + subreg of a variable-length CONST_VECTOR. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-ssa-address.c (mem_ref_valid_without_offset_p): New function. + (add_offset_to_base): New function, split out from... + (create_mem_ref): ...here. When handling a scale other than 1, + check first whether the address is valid without the offset. + Add it into the base if so, leaving the index and scale as-is. + +2018-01-12 Jakub Jelinek + + PR c++/83778 + * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Call + fold_for_warn before checking if arg2 is INTEGER_CST. + +2018-01-12 Segher Boessenkool + + * config/rs6000/predicates.md (load_multiple_operation): Delete. + (store_multiple_operation): Delete. + * config/rs6000/rs6000-cpus.def (601): Remove MASK_STRING. + * config/rs6000/rs6000-protos.h (rs6000_output_load_multiple): Delete. + * config/rs6000/rs6000-string.c (expand_block_move): Delete everything + guarded by TARGET_STRING. + (rs6000_output_load_multiple): Delete. + * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete + OPTION_MASK_STRING / TARGET_STRING handling. + (print_operand) <'N', 'O'>: Add comment that these are unused now. + (const rs6000_opt_masks) <"string">: Change mask to 0. + * config/rs6000/rs6000.h (TARGET_DEFAULT): Remove MASK_STRING. + (MASK_STRING): Delete. + * config/rs6000/rs6000.md (*mov_string): Delete TARGET_STRING + parts. Simplify. + (load_multiple): Delete. + (*ldmsi8): Delete. + (*ldmsi7): Delete. + (*ldmsi6): Delete. + (*ldmsi5): Delete. + (*ldmsi4): Delete. + (*ldmsi3): Delete. + (store_multiple): Delete. + (*stmsi8): Delete. + (*stmsi7): Delete. + (*stmsi6): Delete. + (*stmsi5): Delete. + (*stmsi4): Delete. + (*stmsi3): Delete. + (movmemsi_8reg): Delete. + (corresponding unnamed define_insn): Delete. + (movmemsi_6reg): Delete. + (corresponding unnamed define_insn): Delete. + (movmemsi_4reg): Delete. + (corresponding unnamed define_insn): Delete. + (movmemsi_2reg): Delete. + (corresponding unnamed define_insn): Delete. + (movmemsi_1reg): Delete. + (corresponding unnamed define_insn): Delete. + * config/rs6000/rs6000.opt (mno-string): New. + (mstring): Replace by deprecation warning stub. + * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mstring. + +2018-01-12 Jakub Jelinek + + * regrename.c (regrename_do_replace): If replacing the same + reg multiple times, try to reuse last created gen_raw_REG. + + PR debug/81155 + * bb-reorder.c (pass_partition_blocks::gate): In lto don't partition + main to workaround a bug in GDB. + +2018-01-12 Tom de Vries + + PR target/83737 + * config.gcc (nvptx*-*-*): Set use_gcc_stdint=wrap. + +2018-01-12 Vladimir Makarov + + PR rtl-optimization/80481 + * ira-color.c (get_cap_member): New function. + (allocnos_conflict_by_live_ranges_p): Use it. + (slot_coalesced_allocno_live_ranges_intersect_p): Add assert. + (setup_slot_coalesced_allocno_live_ranges): Ditto. + +2018-01-12 Uros Bizjak + + PR target/83628 + * config/alpha/alpha.md (*saddsi_1): New insn_ans_split pattern. + (*saddl_se_1): Ditto. + (*ssubsi_1): Ditto. + (*ssubl_se_1): Ditto. + +2018-01-12 Richard Sandiford + + * tree-predcom.c (aff_combination_dr_offset): Use wi::to_poly_widest + rather than wi::to_widest for DR_INITs. + * tree-vect-data-refs.c (vect_find_same_alignment_drs): Use + wi::to_poly_offset rather than wi::to_offset for DR_INIT. + (vect_analyze_data_ref_accesses): Require both DR_INITs to be + INTEGER_CSTs. + (vect_analyze_group_access_1): Note that here. + +2018-01-12 Richard Sandiford + + * tree-vectorizer.c (get_vec_alignment_for_array_type): Handle + polynomial type sizes. + +2018-01-12 Richard Sandiford + + * gimplify.c (gimple_add_tmp_var_fn): Allow variables to have a + poly_uint64 size, rather than requiring an unsigned HOST_WIDE_INT size. + (gimple_add_tmp_var): Likewise. + +2018-01-12 Martin Liska + + * gimple.c (gimple_alloc_counts): Use uint64_t instead of int. + (gimple_alloc_sizes): Likewise. + (dump_gimple_statistics): Use PRIu64 in printf format. + * gimple.h: Change uint64_t to int. + +2018-01-12 Martin Liska + + * tree-core.h: Use uint64_t instead of int. + * tree.c (tree_node_counts): Likewise. + (tree_node_sizes): Likewise. + (dump_tree_statistics): Use PRIu64 in printf format. + +2018-01-12 Martin Liska + + * Makefile.in: As qsort_chk is implemented in vec.c, add + vec.o to linkage of gencfn-macros. + * tree.c (build_new_poly_int_cst): Add CXX_MEM_STAT_INFO as it's + passing the info to record_node_allocation_statistics. + (test_vector_cst_patterns): Add CXX_MEM_STAT_INFO to declaration + and pass the info. + * ggc-common.c (struct ggc_usage): Add operator== and use + it in operator< and compare function. + * mem-stats.h (struct mem_usage): Likewise. + * vec.c (struct vec_usage): Remove operator< and compare + function. Can be simply inherited. + +2018-01-12 Martin Jambor + + PR target/81616 + * params.def: New parameter PARAM_AVOID_FMA_MAX_BITS. + * tree-ssa-math-opts.c: Include domwalk.h. + (convert_mult_to_fma_1): New function. + (fma_transformation_info): New type. + (fma_deferring_state): Likewise. + (cancel_fma_deferring): New function. + (result_of_phi): Likewise. + (last_fma_candidate_feeds_initial_phi): Likewise. + (convert_mult_to_fma): Added deferring logic, split actual + transformation to convert_mult_to_fma_1. + (math_opts_dom_walker): New type. + (math_opts_dom_walker::after_dom_children): New method, body moved + here from pass_optimize_widening_mul::execute, added deferring logic + bits. + (pass_optimize_widening_mul::execute): Moved most of code to + math_opts_dom_walker::after_dom_children. + * config/i386/x86-tune.def (X86_TUNE_AVOID_128FMA_CHAINS): New. + * config/i386/i386.c (ix86_option_override_internal): Added + maybe_setting of PARAM_AVOID_FMA_MAX_BITS. + +2018-01-12 Richard Biener + + PR debug/83157 + * dwarf2out.c (gen_variable_die): Do not reset old_die for + inline instance vars. + +2018-01-12 Oleg Endo + + PR target/81819 + * config/rx/rx.c (rx_is_restricted_memory_address): + Handle SUBREG case. + +2018-01-12 Richard Biener + + PR tree-optimization/80846 + * target.def (split_reduction): New target hook. + * targhooks.c (default_split_reduction): New function. + * targhooks.h (default_split_reduction): Declare. + * tree-vect-loop.c (vect_create_epilog_for_reduction): If the + target requests first reduce vectors by combining low and high + parts. + * tree-vect-stmts.c (vect_gen_perm_mask_any): Adjust. + (get_vectype_for_scalar_type_and_size): Export. + * tree-vectorizer.h (get_vectype_for_scalar_type_and_size): Declare. + * doc/tm.texi.in (TARGET_VECTORIZE_SPLIT_REDUCTION): Document. + * doc/tm.texi: Regenerate. + * config/i386/i386.c (ix86_split_reduction): Implement + TARGET_VECTORIZE_SPLIT_REDUCTION. + +2018-01-12 Eric Botcazou + + PR target/83368 + * config/sparc/sparc.h (PIC_OFFSET_TABLE_REGNUM): Set to INVALID_REGNUM + in PIC mode except for TARGET_VXWORKS_RTP. + * config/sparc/sparc.c: Include cfgrtl.h. + (TARGET_INIT_PIC_REG): Define. + (TARGET_USE_PSEUDO_PIC_REG): Likewise. + (sparc_pic_register_p): New predicate. + (sparc_legitimate_address_p): Use it. + (sparc_legitimize_pic_address): Likewise. + (sparc_delegitimize_address): Likewise. + (sparc_mode_dependent_address_p): Likewise. + (gen_load_pcrel_sym): Remove 4th parameter. + (load_got_register): Adjust call to above. Remove obsolete stuff. + (sparc_expand_prologue): Do not call load_got_register here. + (sparc_flat_expand_prologue): Likewise. + (sparc_output_mi_thunk): Set the pic_offset_table_rtx object. + (sparc_use_pseudo_pic_reg): New function. + (sparc_init_pic_reg): Likewise. + * config/sparc/sparc.md (vxworks_load_got): Set the GOT register. + (builtin_setjmp_receiver): Enable only for TARGET_VXWORKS_RTP. + +2018-01-12 Christophe Lyon + + * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes): + Add item for branch_cost. + +2018-01-12 Eric Botcazou + + PR rtl-optimization/83565 + * rtlanal.c (nonzero_bits1): On WORD_REGISTER_OPERATIONS machines, do + not extend the result to a larger mode for rotate operations. + (num_sign_bit_copies1): Likewise. + +2018-01-12 Rainer Orth + + PR target/40411 + * config/sol2.h (STARTFILE_ARCH_SPEC): Don't use with -shared or + -symbolic. + Use values-Xc.o for -pedantic. + Link with values-xpg4.o for C90, values-xpg6.o otherwise. + +2018-01-12 Martin Liska + + PR ipa/83054 + * ipa-devirt.c (final_warning_record::grow_type_warnings): + New function. + (possible_polymorphic_call_targets): Use it. + (ipa_devirt): Likewise. + +2018-01-12 Martin Liska + + * profile-count.h (enum profile_quality): Use 0 as invalid + enum value of profile_quality. + +2018-01-12 Chung-Ju Wu + + * doc/invoke.texi (NDS32 Options): Add -mext-perf, -mext-perf2 and + -mext-string options. + +2018-01-12 Richard Biener + + * lto-streamer-out.c (DFS::DFS_write_tree_body): Process + DECL_DEBUG_EXPR conditional on DECL_HAS_DEBUG_EXPR_P. + * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers): + Likewise. + * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise. + +2018-01-11 Michael Meissner + + * configure.ac (--with-long-double-format): Add support for the + configuration option to change the default long double format on + PowerPC systems. + * config.gcc (powerpc*-linux*-*): Likewise. + * configure: Regenerate. + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If long + double is IEEE, define __KC__ and __KF__ to allow floatn.h to be + used without modification. + +2018-01-11 Bill Schmidt + + * config/rs6000/rs6000-builtin.def (BU_P7_MISC_X): New #define. + (SPEC_BARRIER): New instantiation of BU_P7_MISC_X. + * config/rs6000/rs6000.c (rs6000_expand_builtin): Handle + MISC_BUILTIN_SPEC_BARRIER. + (rs6000_init_builtins): Likewise. + * config/rs6000/rs6000.md (UNSPECV_SPEC_BARRIER): New UNSPECV + enum value. + (speculation_barrier): New define_insn. + * doc/extend.texi: Document __builtin_speculation_barrier. + +2018-01-11 Jakub Jelinek + + PR target/83203 + * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): If one_var + is 0, for V{8,16}S[IF] and V[48]D[IF]mode use gen_vec_set_0. + * config/i386/sse.md (VI8_AVX_AVX512F, VI4F_256_512): New mode + iterators. + (ssescalarmodesuffix): Add 512-bit vectors. Use "d" or "q" for + integral modes instead of "ss" and "sd". + (vec_set_0): New define_insns for 256-bit and 512-bit + vectors with 32-bit and 64-bit elements. + (vecdupssescalarmodesuffix): New mode attribute. + (vec_dup): Use it. + +2018-01-11 H.J. Lu + + PR target/83330 + * config/i386/i386.c (ix86_compute_frame_layout): Align stack + frame if argument is passed on stack. + +2018-01-11 Jakub Jelinek + + PR target/82682 + * ree.c (combine_reaching_defs): Optimize also + reg2=exp; reg1=reg2; reg2=any_extend(reg1); into + reg2=any_extend(exp); reg1=reg2;, formatting fix. + +2018-01-11 Jan Hubicka + + PR middle-end/83189 + * gimple-ssa-isolate-paths.c (isolate_path): Fix profile update. + +2018-01-11 Jan Hubicka + + PR middle-end/83718 + * tree-inline.c (copy_cfg_body): Adjust num&den for scaling + after they are computed. + +2018-01-11 Bin Cheng + + PR tree-optimization/83695 + * gimple-loop-linterchange.cc + (tree_loop_interchange::interchange_loops): Call scev_reset_htab to + reset cached scev information after interchange. + (pass_linterchange::execute): Remove call to scev_reset_htab. + +2018-01-11 Kyrylo Tkachov + + * config/arm/arm_neon.h (vfmlal_lane_low_u32, vfmlal_lane_high_u32, + vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32, vfmlal_laneq_low_u32, + vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32, vfmlal_laneq_high_u32, + vfmlsl_lane_low_u32, vfmlsl_lane_high_u32, vfmlslq_laneq_low_u32, + vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32, vfmlslq_laneq_high_u32, + vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32): Define. + * config/arm/arm_neon_builtins.def (vfmal_lane_low, + vfmal_lane_lowv4hf, vfmal_lane_lowv8hf, vfmal_lane_high, + vfmal_lane_highv4hf, vfmal_lane_highv8hf, vfmsl_lane_low, + vfmsl_lane_lowv4hf, vfmsl_lane_lowv8hf, vfmsl_lane_high, + vfmsl_lane_highv4hf, vfmsl_lane_highv8hf): New sets of builtins. + * config/arm/iterators.md (VFMLSEL2, vfmlsel2): New mode attributes. + (V_lane_reg): Likewise. + * config/arm/neon.md (neon_vfml_lane_): + New define_expand. + (neon_vfml_lane_): Likewise. + (vfmal_lane_low_intrinsic, + vfmal_lane_low_intrinsic, + vfmal_lane_high_intrinsic, + vfmal_lane_high_intrinsic, vfmsl_lane_low_intrinsic, + vfmsl_lane_low_intrinsic, + vfmsl_lane_high_intrinsic, + vfmsl_lane_high_intrinsic): New define_insns. + +2018-01-11 Kyrylo Tkachov + + * config/arm/arm-cpus.in (fp16fml): New feature. + (ALL_SIMD): Add fp16fml. + (armv8.2-a): Add fp16fml as an option. + (armv8.3-a): Likewise. + (armv8.4-a): Add fp16fml as part of fp16. + * config/arm/arm.h (TARGET_FP16FML): Define. + * config/arm/arm-c.c (arm_cpu_builtins): Define __ARM_FEATURE_FP16_FML + when appropriate. + * config/arm/arm-modes.def (V2HF): Define. + * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32, + vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, + vfmlslq_low_u32, vfmlalq_high_u32, vfmlslq_high_u32): Define. + * config/arm/arm_neon_builtins.def (vfmal_low, vfmal_high, + vfmsl_low, vfmsl_high): New set of builtins. + * config/arm/iterators.md (PLUSMINUS): New code iterator. + (vfml_op): New code attribute. + (VFMLHALVES): New int iterator. + (VFML, VFMLSEL): New mode attributes. + (V_reg): Define mapping for V2HF. + (V_hi, V_lo): New mode attributes. + (VF_constraint): Likewise. + (vfml_half, vfml_half_selector): New int attributes. + * config/arm/neon.md (neon_vfml_): New + define_expand. + (vfmal_low_intrinsic, vfmsl_high_intrinsic, + vfmal_high_intrinsic, vfmsl_low_intrinsic): + New define_insn. + * config/arm/t-arm-elf (v8_fps): Add fp16fml. + * config/arm/t-multilib (v8_2_a_simd_variants): Add fp16fml. + * config/arm/unspecs.md (UNSPEC_VFML_LO, UNSPEC_VFML_HI): New unspecs. + * doc/invoke.texi (ARM Options): Document fp16fml. Update armv8.4-a + documentation. + * doc/sourcebuild.texi (arm_fp16fml_neon_ok, arm_fp16fml_neon): + Document new effective target and option set. + +2018-01-11 Kyrylo Tkachov + + * config/arm/arm-cpus.in (armv8_4): New feature. + (ARMv8_4a): New fgroup. + (armv8.4-a): New arch. + * config/arm/arm-tables.opt: Regenerate. + * config/arm/t-aprofile: Add matching rules for -march=armv8.4-a. + * config/arm/t-arm-elf (all_v8_archs): Add armv8.4-a. + * config/arm/t-multilib (v8_4_a_simd_variants): New variable. + Add matching rules for -march=armv8.4-a and extensions. + * doc/invoke.texi (ARM Options): Document -march=armv8.4-a. + +2018-01-11 Oleg Endo + + PR target/81821 + * config/rx/rx.md (BW): New mode attribute. + (sync_lock_test_and_setsi): Add mode suffix to insn output. + +2018-01-11 Richard Biener + + PR tree-optimization/83435 + * graphite.c (canonicalize_loop_form): Ignore fake loop exit edges. + * graphite-scop-detection.c (scop_detection::get_sese): Likewise. + * tree-vrp.c (add_assert_info): Drop TREE_OVERFLOW if they appear. + +2018-01-11 Richard Sandiford + Alan Hayward + David Sherwood + + * config/aarch64/aarch64.c (aarch64_address_info): Add a const_offset + field. + (aarch64_classify_address): Initialize it. Track polynomial offsets. + (aarch64_print_address_internal): Use it to check for a zero offset. + +2018-01-11 Richard Sandiford + Alan Hayward + David Sherwood + + * config/aarch64/aarch64-modes.def (NUM_POLY_INT_COEFFS): Set to 2. + * config/aarch64/aarch64-protos.h (aarch64_initial_elimination_offset): + Return a poly_int64 rather than a HOST_WIDE_INT. + (aarch64_offset_7bit_signed_scaled_p): Take the offset as a poly_int64 + rather than a HOST_WIDE_INT. + * config/aarch64/aarch64.h (aarch64_frame): Protect with + HAVE_POLY_INT_H rather than HOST_WIDE_INT. Change locals_offset, + hard_fp_offset, frame_size, initial_adjust, callee_offset and + final_offset from HOST_WIDE_INT to poly_int64. + * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use + to_constant when getting the number of units in an Advanced SIMD + mode. + (aarch64_builtin_vectorized_function): Check for a constant number + of units. + * config/aarch64/aarch64-simd.md (mov): Handle polynomial + GET_MODE_SIZE. + (aarch64_ld_lane): Use the nunits + attribute instead of GET_MODE_NUNITS. + * config/aarch64/aarch64.c (aarch64_hard_regno_nregs) + (aarch64_class_max_nregs): Use the constant_lowest_bound of the + GET_MODE_SIZE for fixed-size registers. + (aarch64_const_vec_all_same_in_range_p): Use const_vec_duplicate_p. + (aarch64_hard_regno_call_part_clobbered, aarch64_classify_index) + (aarch64_mode_valid_for_sched_fusion_p, aarch64_classify_address) + (aarch64_legitimize_address_displacement, aarch64_secondary_reload) + (aarch64_print_operand, aarch64_print_address_internal) + (aarch64_address_cost, aarch64_rtx_costs, aarch64_register_move_cost) + (aarch64_short_vector_p, aapcs_vfp_sub_candidate) + (aarch64_simd_attr_length_rglist, aarch64_operands_ok_for_ldpstp): + Handle polynomial GET_MODE_SIZE. + (aarch64_hard_regno_caller_save_mode): Likewise. Return modes + wider than SImode without modification. + (tls_symbolic_operand_type): Use strip_offset instead of split_const. + (aarch64_pass_by_reference, aarch64_layout_arg, aarch64_pad_reg_upward) + (aarch64_gimplify_va_arg_expr): Assert that we don't yet handle + passing and returning SVE modes. + (aarch64_function_value, aarch64_layout_arg): Use gen_int_mode + rather than GEN_INT. + (aarch64_emit_probe_stack_range): Take the size as a poly_int64 + rather than a HOST_WIDE_INT, but call sorry if it isn't constant. + (aarch64_allocate_and_probe_stack_space): Likewise. + (aarch64_layout_frame): Cope with polynomial offsets. + (aarch64_save_callee_saves, aarch64_restore_callee_saves): Take the + start_offset as a poly_int64 rather than a HOST_WIDE_INT. Track + polynomial offsets. + (offset_9bit_signed_unscaled_p, offset_12bit_unsigned_scaled_p) + (aarch64_offset_7bit_signed_scaled_p): Take the offset as a + poly_int64 rather than a HOST_WIDE_INT. + (aarch64_get_separate_components, aarch64_process_components) + (aarch64_expand_prologue, aarch64_expand_epilogue) + (aarch64_use_return_insn_p): Handle polynomial frame offsets. + (aarch64_anchor_offset): New function, split out from... + (aarch64_legitimize_address): ...here. + (aarch64_builtin_vectorization_cost): Handle polynomial + TYPE_VECTOR_SUBPARTS. + (aarch64_simd_check_vect_par_cnst_half): Handle polynomial + GET_MODE_NUNITS. + (aarch64_simd_make_constant, aarch64_expand_vector_init): Get the + number of elements from the PARALLEL rather than the mode. + (aarch64_shift_truncation_mask): Use GET_MODE_UNIT_BITSIZE + rather than GET_MODE_BITSIZE. + (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_ext) + (aarch64_evpc_rev, aarch64_evpc_dup, aarch64_evpc_zip) + (aarch64_expand_vec_perm_const_1): Handle polynomial + d->perm.length () and d->perm elements. + (aarch64_evpc_tbl): Likewise. Use nelt rather than GET_MODE_NUNITS. + Apply to_constant to d->perm elements. + (aarch64_simd_valid_immediate, aarch64_vec_fpconst_pow_of_2): Handle + polynomial CONST_VECTOR_NUNITS. + (aarch64_move_pointer): Take amount as a poly_int64 rather + than an int. + (aarch64_progress_pointer): Avoid temporary variable. + * config/aarch64/aarch64.md (aarch64_): Use + the mode attribute instead of GET_MODE. + +2018-01-11 Richard Sandiford + Alan Hayward + David Sherwood + + * config/aarch64/aarch64.c (aarch64_force_temporary): Assert that + x exists before using it. + (aarch64_add_constant_internal): Rename to... + (aarch64_add_offset_1): ...this. Replace regnum with separate + src and dest rtxes. Handle the case in which they're different, + including when the offset is zero. Replace scratchreg with an rtx. + Use 2 additions if there is no spare register into which we can + move a 16-bit constant. + (aarch64_add_constant): Delete. + (aarch64_add_offset): Replace reg with separate src and dest + rtxes. Take a poly_int64 offset instead of a HOST_WIDE_INT. + Use aarch64_add_offset_1. + (aarch64_add_sp, aarch64_sub_sp): Take the scratch register as + an rtx rather than an int. Take the delta as a poly_int64 + rather than a HOST_WIDE_INT. Use aarch64_add_offset. + (aarch64_expand_mov_immediate): Update uses of aarch64_add_offset. + (aarch64_expand_prologue): Update calls to aarch64_sub_sp, + aarch64_allocate_and_probe_stack_space and aarch64_add_offset. + (aarch64_expand_epilogue): Update calls to aarch64_add_offset + and aarch64_add_sp. + (aarch64_output_mi_thunk): Use aarch64_add_offset rather than + aarch64_add_constant. + +2018-01-11 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int): + Use scalar_float_mode. + +2018-01-11 Richard Sandiford + + * config/aarch64/aarch64-simd.md + (aarch64_fmll_low): Avoid GET_MODE_NUNITS. + (aarch64_fmll_high): Likewise. + (aarch64_fmll_lane_lowv2sf): Likewise. + (aarch64_fmll_lane_highv2sf): Likewise. + (aarch64_fmllq_laneq_lowv4sf): Likewise. + (aarch64_fmllq_laneq_highv4sf): Likewise. + (aarch64_fmll_laneq_lowv2sf): Likewise. + (aarch64_fmll_laneq_highv2sf): Likewise. + (aarch64_fmllq_lane_lowv4sf): Likewise. + (aarch64_fmllq_lane_highv4sf): Likewise. + +2018-01-11 Prathamesh Kulkarni + + PR target/83514 + * config/arm/arm.c (arm_declare_function_name): Set arch_to_print if + targ_options->x_arm_arch_string is non NULL. + +2018-01-11 Tamar Christina + + * config/aarch64/aarch64.h + (AARCH64_FL_FOR_ARCH8_4): Add AARCH64_FL_DOTPROD. + +2018-01-11 Sudakshina Das + + PR target/82096 + * expmed.c (emit_store_flag_force): Swap if const op0 + and change VOIDmode to mode of op0. + +2018-01-11 Richard Sandiford + + PR rtl-optimization/83761 + * caller-save.c (replace_reg_with_saved_mem): Pass bits rather + than bytes to mode_for_size. + +2018-01-10 Jan Hubicka + + PR middle-end/83189 + * gfortran.fortran-torture/compile/pr83189.f90: New testcase. + * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Handle zero + profile. + +2018-01-10 Jan Hubicka + + PR middle-end/83575 + * cfgrtl.c (rtl_verify_edges): Only verify fixability of partition + when in layout mode. + (cfg_layout_finalize): Do not verify cfg before we are out of layout. + * cfgcleanup.c (try_optimize_cfg): Only verify flow info when doing + partition fixup. + +2018-01-10 Michael Collison + + * config/aarch64/aarch64-modes.def (V2HF): New VECTOR_MODE. + * config/aarch64/aarch64-option-extension.def: Add + AARCH64_OPT_EXTENSION of 'fp16fml'. + * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): + (__ARM_FEATURE_FP16_FML): Define if TARGET_F16FML is true. + * config/aarch64/predicates.md (aarch64_lane_imm3): New predicate. + * config/aarch64/constraints.md (Ui7): New constraint. + * config/aarch64/iterators.md (VFMLA_W): New mode iterator. + (VFMLA_SEL_W): Ditto. + (f16quad): Ditto. + (f16mac1): Ditto. + (VFMLA16_LOW): New int iterator. + (VFMLA16_HIGH): Ditto. + (UNSPEC_FMLAL): New unspec. + (UNSPEC_FMLSL): Ditto. + (UNSPEC_FMLAL2): Ditto. + (UNSPEC_FMLSL2): Ditto. + (f16mac): New code attribute. + * config/aarch64/aarch64-simd-builtins.def + (aarch64_fmlal_lowv2sf): Ditto. + (aarch64_fmlsl_lowv2sf): Ditto. + (aarch64_fmlalq_lowv4sf): Ditto. + (aarch64_fmlslq_lowv4sf): Ditto. + (aarch64_fmlal_highv2sf): Ditto. + (aarch64_fmlsl_highv2sf): Ditto. + (aarch64_fmlalq_highv4sf): Ditto. + (aarch64_fmlslq_highv4sf): Ditto. + (aarch64_fmlal_lane_lowv2sf): Ditto. + (aarch64_fmlsl_lane_lowv2sf): Ditto. + (aarch64_fmlal_laneq_lowv2sf): Ditto. + (aarch64_fmlsl_laneq_lowv2sf): Ditto. + (aarch64_fmlalq_lane_lowv4sf): Ditto. + (aarch64_fmlsl_lane_lowv4sf): Ditto. + (aarch64_fmlalq_laneq_lowv4sf): Ditto. + (aarch64_fmlsl_laneq_lowv4sf): Ditto. + (aarch64_fmlal_lane_highv2sf): Ditto. + (aarch64_fmlsl_lane_highv2sf): Ditto. + (aarch64_fmlal_laneq_highv2sf): Ditto. + (aarch64_fmlsl_laneq_highv2sf): Ditto. + (aarch64_fmlalq_lane_highv4sf): Ditto. + (aarch64_fmlsl_lane_highv4sf): Ditto. + (aarch64_fmlalq_laneq_highv4sf): Ditto. + (aarch64_fmlsl_laneq_highv4sf): Ditto. + * config/aarch64/aarch64-simd.md: + (aarch64_fmll_low): New pattern. + (aarch64_fmll_high): Ditto. + (aarch64_simd_fmll_low): Ditto. + (aarch64_simd_fmll_high): Ditto. + (aarch64_fmll_lane_lowv2sf): Ditto. + (aarch64_fmll_lane_highv2sf): Ditto. + (aarch64_simd_fmll_lane_lowv2sf): Ditto. + (aarch64_simd_fmll_lane_highv2sf): Ditto. + (aarch64_fmllq_laneq_lowv4sf): Ditto. + (aarch64_fmllq_laneq_highv4sf): Ditto. + (aarch64_simd_fmllq_laneq_lowv4sf): Ditto. + (aarch64_simd_fmllq_laneq_highv4sf): Ditto. + (aarch64_fmll_laneq_lowv2sf): Ditto. + (aarch64_fmll_laneq_highv2sf): Ditto. + (aarch64_simd_fmll_laneq_lowv2sf): Ditto. + (aarch64_simd_fmll_laneq_highv2sf): Ditto. + (aarch64_fmllq_lane_lowv4sf): Ditto. + (aarch64_fmllq_lane_highv4sf): Ditto. + (aarch64_simd_fmllq_lane_lowv4sf): Ditto. + (aarch64_simd_fmllq_lane_highv4sf): Ditto. + * config/aarch64/arm_neon.h (vfmlal_low_u32): New intrinsic. + (vfmlsl_low_u32): Ditto. + (vfmlalq_low_u32): Ditto. + (vfmlslq_low_u32): Ditto. + (vfmlal_high_u32): Ditto. + (vfmlsl_high_u32): Ditto. + (vfmlalq_high_u32): Ditto. + (vfmlslq_high_u32): Ditto. + (vfmlal_lane_low_u32): Ditto. + (vfmlsl_lane_low_u32): Ditto. + (vfmlal_laneq_low_u32): Ditto. + (vfmlsl_laneq_low_u32): Ditto. + (vfmlalq_lane_low_u32): Ditto. + (vfmlslq_lane_low_u32): Ditto. + (vfmlalq_laneq_low_u32): Ditto. + (vfmlslq_laneq_low_u32): Ditto. + (vfmlal_lane_high_u32): Ditto. + (vfmlsl_lane_high_u32): Ditto. + (vfmlal_laneq_high_u32): Ditto. + (vfmlsl_laneq_high_u32): Ditto. + (vfmlalq_lane_high_u32): Ditto. + (vfmlslq_lane_high_u32): Ditto. + (vfmlalq_laneq_high_u32): Ditto. + (vfmlslq_laneq_high_u32): Ditto. + * config/aarch64/aarch64.h (AARCH64_FL_F16SML): New flag. + (AARCH64_FL_FOR_ARCH8_4): New. + (AARCH64_ISA_F16FML): New ISA flag. + (TARGET_F16FML): New feature flag for fp16fml. + (doc/invoke.texi): Document new fp16fml option. + +2018-01-10 Michael Collison + + * config/aarch64/aarch64-builtins.c: + (aarch64_types_ternopu_imm_qualifiers, TYPES_TERNOPUI): New. + * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): + (__ARM_FEATURE_SHA3): Define if TARGET_SHA3 is true. + * config/aarch64/aarch64.h (AARCH64_FL_SHA3): New flags. + (AARCH64_ISA_SHA3): New ISA flag. + (TARGET_SHA3): New feature flag for sha3. + * config/aarch64/iterators.md (sha512_op): New int attribute. + (CRYPTO_SHA512): New int iterator. + (UNSPEC_SHA512H): New unspec. + (UNSPEC_SHA512H2): Ditto. + (UNSPEC_SHA512SU0): Ditto. + (UNSPEC_SHA512SU1): Ditto. + * config/aarch64/aarch64-simd-builtins.def + (aarch64_crypto_sha512hqv2di): New builtin. + (aarch64_crypto_sha512h2qv2di): Ditto. + (aarch64_crypto_sha512su0qv2di): Ditto. + (aarch64_crypto_sha512su1qv2di): Ditto. + (aarch64_eor3qv8hi): Ditto. + (aarch64_rax1qv2di): Ditto. + (aarch64_xarqv2di): Ditto. + (aarch64_bcaxqv8hi): Ditto. + * config/aarch64/aarch64-simd.md: + (aarch64_crypto_sha512hqv2di): New pattern. + (aarch64_crypto_sha512su0qv2di): Ditto. + (aarch64_crypto_sha512su1qv2di): Ditto. + (aarch64_eor3qv8hi): Ditto. + (aarch64_rax1qv2di): Ditto. + (aarch64_xarqv2di): Ditto. + (aarch64_bcaxqv8hi): Ditto. + * config/aarch64/arm_neon.h (vsha512hq_u64): New intrinsic. + (vsha512h2q_u64): Ditto. + (vsha512su0q_u64): Ditto. + (vsha512su1q_u64): Ditto. + (veor3q_u16): Ditto. + (vrax1q_u64): Ditto. + (vxarq_u64): Ditto. + (vbcaxq_u16): Ditto. + * config/arm/types.md (crypto_sha512): New type attribute. + (crypto_sha3): Ditto. + (doc/invoke.texi): Document new sha3 option. + +2018-01-10 Michael Collison + + * config/aarch64/aarch64-builtins.c: + (aarch64_types_quadopu_imm_qualifiers, TYPES_QUADOPUI): New. + * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): + (__ARM_FEATURE_SM3): Define if TARGET_SM4 is true. + (__ARM_FEATURE_SM4): Define if TARGET_SM4 is true. + * config/aarch64/aarch64.h (AARCH64_FL_SM4): New flags. + (AARCH64_ISA_SM4): New ISA flag. + (TARGET_SM4): New feature flag for sm4. + * config/aarch64/aarch64-simd-builtins.def + (aarch64_sm3ss1qv4si): Ditto. + (aarch64_sm3tt1aq4si): Ditto. + (aarch64_sm3tt1bq4si): Ditto. + (aarch64_sm3tt2aq4si): Ditto. + (aarch64_sm3tt2bq4si): Ditto. + (aarch64_sm3partw1qv4si): Ditto. + (aarch64_sm3partw2qv4si): Ditto. + (aarch64_sm4eqv4si): Ditto. + (aarch64_sm4ekeyqv4si): Ditto. + * config/aarch64/aarch64-simd.md: + (aarch64_sm3ss1qv4si): Ditto. + (aarch64_sm3ttqv4si): Ditto. + (aarch64_sm3partwqv4si): Ditto. + (aarch64_sm4eqv4si): Ditto. + (aarch64_sm4ekeyqv4si): Ditto. + * config/aarch64/iterators.md (sm3tt_op): New int iterator. + (sm3part_op): Ditto. + (CRYPTO_SM3TT): Ditto. + (CRYPTO_SM3PART): Ditto. + (UNSPEC_SM3SS1): New unspec. + (UNSPEC_SM3TT1A): Ditto. + (UNSPEC_SM3TT1B): Ditto. + (UNSPEC_SM3TT2A): Ditto. + (UNSPEC_SM3TT2B): Ditto. + (UNSPEC_SM3PARTW1): Ditto. + (UNSPEC_SM3PARTW2): Ditto. + (UNSPEC_SM4E): Ditto. + (UNSPEC_SM4EKEY): Ditto. + * config/aarch64/constraints.md (Ui2): New constraint. + * config/aarch64/predicates.md (aarch64_imm2): New predicate. + * config/arm/types.md (crypto_sm3): New type attribute. + (crypto_sm4): Ditto. + * config/aarch64/arm_neon.h (vsm3ss1q_u32): New intrinsic. + (vsm3tt1aq_u32): Ditto. + (vsm3tt1bq_u32): Ditto. + (vsm3tt2aq_u32): Ditto. + (vsm3tt2bq_u32): Ditto. + (vsm3partw1q_u32): Ditto. + (vsm3partw2q_u32): Ditto. + (vsm4eq_u32): Ditto. + (vsm4ekeyq_u32): Ditto. + (doc/invoke.texi): Document new sm4 option. + +2018-01-10 Michael Collison + + * config/aarch64/aarch64-arches.def (armv8.4-a): New architecture. + * config/aarch64/aarch64.h (AARCH64_ISA_V8_4): New ISA flag. + (AARCH64_FL_FOR_ARCH8_4): New. + (AARCH64_FL_V8_4): New flag. + (doc/invoke.texi): Document new armv8.4-a option. + +2018-01-10 Michael Collison + + * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): + (__ARM_FEATURE_AES): Define if TARGET_AES is true. + (__ARM_FEATURE_SHA2): Define if TARGET_SHA2 is true. + * config/aarch64/aarch64-option-extension.def: Add + AARCH64_OPT_EXTENSION of 'sha2'. + (aes): Add AARCH64_OPT_EXTENSION of 'aes'. + (crypto): Disable sha2 and aes if crypto disabled. + (crypto): Enable aes and sha2 if enabled. + (simd): Disable sha2 and aes if simd disabled. + * config/aarch64/aarch64.h (AARCH64_FL_AES, AARCH64_FL_SHA2): + New flags. + (AARCH64_ISA_AES, AARCH64_ISA_SHA2): New ISA flags. + (TARGET_SHA2): New feature flag for sha2. + (TARGET_AES): New feature flag for aes. + * config/aarch64/aarch64-simd.md: + (aarch64_crypto_aesv16qi): Make pattern + conditional on TARGET_AES. + (aarch64_crypto_aesv16qi): Ditto. + (aarch64_crypto_sha1hsi): Make pattern conditional + on TARGET_SHA2. + (aarch64_crypto_sha1hv4si): Ditto. + (aarch64_be_crypto_sha1hv4si): Ditto. + (aarch64_crypto_sha1su1v4si): Ditto. + (aarch64_crypto_sha1v4si): Ditto. + (aarch64_crypto_sha1su0v4si): Ditto. + (aarch64_crypto_sha256hv4si): Ditto. + (aarch64_crypto_sha256su0v4si): Ditto. + (aarch64_crypto_sha256su1v4si): Ditto. + (doc/invoke.texi): Document new aes and sha2 options. + +2018-01-10 Martin Sebor + + PR tree-optimization/83781 + * gimple-fold.c (get_range_strlen): Avoid treating arrays of pointers + as string arrays. + +2018-01-11 Martin Sebor + Prathamesh Kulkarni + + PR tree-optimization/83501 + PR tree-optimization/81703 + + * tree-ssa-strlen.c (get_string_cst): Rename... + (get_string_len): ...to this. Handle global constants. + (handle_char_store): Adjust. + +2018-01-10 Kito Cheng + Jim Wilson + + * config/riscv/riscv-protos.h (riscv_output_return): New. + * config/riscv/riscv.c (struct machine_function): New naked_p field. + (riscv_attribute_table, riscv_output_return), + (riscv_handle_fndecl_attribute, riscv_naked_function_p), + (riscv_allocate_stack_slots_for_args, riscv_warn_func_return): New. + (riscv_compute_frame_info): Only compute frame->mask if not a naked + function. + (riscv_expand_prologue): Add early return for naked function. + (riscv_expand_epilogue): Likewise. + (riscv_function_ok_for_sibcall): Return false for naked function. + (riscv_set_current_function): New. + (TARGET_SET_CURRENT_FUNCTION, TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS), + (TARGET_ATTRIBUTE_TABLE, TARGET_WARN_FUNC_RETURN): New. + * config/riscv/riscv.md (simple_return): Call riscv_output_return. + * doc/extend.texi (RISC-V Function Attributes): New. + +2018-01-10 Michael Meissner + + * config/rs6000/rs6000.c (is_complex_IBM_long_double): Explicitly + check for 128-bit long double before checking TCmode. + * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Explicitly check for + 128-bit long doubles before checking TFmode or TCmode. + (FLOAT128_IBM_P): Likewise. + +2018-01-10 Martin Sebor + + PR tree-optimization/83671 + * builtins.c (c_strlen): Unconditionally return zero for the empty + string. + Use -Warray-bounds for warnings. + * gimple-fold.c (get_range_strlen): Handle non-constant lengths + for non-constant array indices with COMPONENT_REF, arrays of + arrays, and pointers to arrays. + (gimple_fold_builtin_strlen): Determine and set length range for + non-constant character arrays. + +2018-01-10 Aldy Hernandez + + PR middle-end/81897 + * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Skip + empty blocks. + +2018-01-10 Eric Botcazou + + * dwarf2out.c (dwarf2out_var_location): Do not pass NULL to fprintf. + +2018-01-10 Peter Bergner + + PR target/83399 + * config/rs6000/rs6000.c (print_operand) <'y'>: Use + VECTOR_MEM_ALTIVEC_OR_VSX_P. + * config/rs6000/vsx.md (*vsx_le_perm_load_ for VSX_D): Use + indexed_or_indirect_operand predicate. + (*vsx_le_perm_load_ for VSX_W): Likewise. + (*vsx_le_perm_load_v8hi): Likewise. + (*vsx_le_perm_load_v16qi): Likewise. + (*vsx_le_perm_store_ for VSX_D): Likewise. + (*vsx_le_perm_store_ for VSX_W): Likewise. + (*vsx_le_perm_store_v8hi): Likewise. + (*vsx_le_perm_store_v16qi): Likewise. + (eight unnamed splitters): Likewise. + +2018-01-10 Peter Bergner + + * config/rs6000/x86intrin.h: Change #warning to #error. Update message. + * config/rs6000/emmintrin.h: Likewise. + * config/rs6000/mmintrin.h: Likewise. + * config/rs6000/xmmintrin.h: Likewise. + +2018-01-10 David Malcolm + + PR c++/43486 + * tree-core.h: Document EXPR_LOCATION_WRAPPER_P's usage of + "public_flag". + * tree.c (tree_nop_conversion): Return true for location wrapper + nodes. + (maybe_wrap_with_location): New function. + (selftest::check_strip_nops): New function. + (selftest::test_location_wrappers): New function. + (selftest::tree_c_tests): Call it. + * tree.h (STRIP_ANY_LOCATION_WRAPPER): New macro. + (maybe_wrap_with_location): New decl. + (EXPR_LOCATION_WRAPPER_P): New macro. + (location_wrapper_p): New inline function. + (tree_strip_any_location_wrapper): New inline function. + +2018-01-10 H.J. Lu + + PR target/83735 + * config/i386/i386.c (ix86_compute_frame_layout): Always adjust + stack_realign_offset for the largest alignment of stack slot + actually used. + (ix86_find_max_used_stack_alignment): New function. + (ix86_finalize_stack_frame_flags): Use it. Set + max_used_stack_alignment if we don't realign stack. + * config/i386/i386.h (machine_function): Add + max_used_stack_alignment. + +2018-01-10 Christophe Lyon + + * config/arm/arm.opt (-mbranch-cost): New option. + * config/arm/arm.h (BRANCH_COST): Take arm_branch_cost into + account. + +2018-01-10 Segher Boessenkool + + PR target/83629 + * config/rs6000/rs6000.md (load_toc_v4_PIC_2, load_toc_v4_PIC_3b, + load_toc_v4_PIC_3c): Wrap const term in CONST RTL. + +2018-01-10 Richard Biener + + PR debug/83765 + * dwarf2out.c (gen_subprogram_die): Hoist old_die && declaration + early out so it also covers the case where we have a non-NULL + origin. + +2018-01-10 Richard Sandiford + + PR tree-optimization/83753 + * tree-vect-stmts.c (get_group_load_store_type): Use VMAT_CONTIGUOUS + for non-strided grouped accesses if the number of elements is 1. + +2018-01-10 Jan Hubicka + + PR target/81616 + * i386.c (ix86_vectorize_builtin_gather): Check TARGET_USE_GATHER. + * i386.h (TARGET_USE_GATHER): Define. + * x86-tune.def (X86_TUNE_USE_GATHER): New. + +2018-01-10 Martin Liska + + PR bootstrap/82831 + * basic-block.h (CLEANUP_NO_PARTITIONING): New define. + * bb-reorder.c (pass_reorder_blocks::execute): Do not clean up + partitioning. + * cfgcleanup.c (try_optimize_cfg): Fix up partitioning if + CLEANUP_NO_PARTITIONING is not set. + +2018-01-10 Richard Sandiford + + * doc/rtl.texi: Remove documentation of (const ...) wrappers + for vectors, as a partial revert of r254296. + * rtl.h (const_vec_p): Delete. + (const_vec_duplicate_p): Don't test for vector CONSTs. + (unwrap_const_vec_duplicate, const_vec_series_p): Likewise. + * expmed.c (make_tree): Likewise. + + Revert: + * common.md (E, F): Use CONSTANT_P instead of checking for + CONST_VECTOR. + * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of + checking for CONST_VECTOR. + +2018-01-09 Jan Hubicka + + PR middle-end/83575 + * predict.c (force_edge_cold): Handle in more sane way edges + with no prediction. + +2018-01-09 Carl Love + + * config/rs6002/altivec.md (p8_vmrgow): Add support for V2DI, V2DF, + V4SI, V4SF types. + (p8_vmrgew): Add support for V2DI, V2DF, V4SF types. + * config/rs6000/rs6000-builtin.def: Add definitions for FLOAT2_V2DF, + VMRGEW_V2DI, VMRGEW_V2DF, VMRGEW_V4SF, VMRGOW_V4SI, VMRGOW_V4SF, + VMRGOW_V2DI, VMRGOW_V2DF. Remove definition for VMRGOW. + * config/rs6000/rs6000-c.c (VSX_BUILTIN_VEC_FLOAT2, + P8V_BUILTIN_VEC_VMRGEW, P8V_BUILTIN_VEC_VMRGOW): Add definitions. + * config/rs6000/rs6000-protos.h: Add extern defition for + rs6000_generate_float2_double_code. + * config/rs6000/rs6000.c (rs6000_generate_float2_double_code): Add + function. + * config/rs6000/vsx.md (vsx_xvcdpsp): Add define_insn. + (float2_v2df): Add define_expand. + +2018-01-09 Uros Bizjak + + PR target/83628 + * combine.c (force_int_to_mode) : Use mode instead of + op_mode in the force_to_mode call. + +2018-01-09 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_evpc_trn): Use d.perm.series_p + instead of checking each element individually. + (aarch64_evpc_uzp): Likewise. + (aarch64_evpc_zip): Likewise. + (aarch64_evpc_ext): Likewise. + (aarch64_evpc_rev): Likewise. + (aarch64_evpc_dup): Test the encoding for a single duplicated element, + instead of checking each element individually. Return true without + generating rtl if + (aarch64_vectorize_vec_perm_const): Use all_from_input_p to test + whether all selected elements come from the same input, instead of + checking each element individually. Remove calls to gen_rtx_REG, + start_sequence and end_sequence and instead assert that no rtl is + generated. + +2018-01-09 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Fix + order of HIGH and CONST checks. + +2018-01-09 Richard Sandiford + + * tree-vect-stmts.c (permute_vec_elements): Create a fresh variable + if the destination isn't an SSA_NAME. + +2018-01-09 Richard Biener + + PR tree-optimization/83668 + * graphite.c (canonicalize_loop_closed_ssa): Add edge argument, + move prologue... + (canonicalize_loop_form): ... here, renamed from ... + (canonicalize_loop_closed_ssa_form): ... this and amended to + swap successor edges for loop exit blocks to make us use + the RPO order we need for initial schedule generation. + +2018-01-09 Joseph Myers + + PR tree-optimization/64811 + * match.pd: When optimizing comparisons with Inf, avoid + introducing or losing exceptions from comparisons with NaN. + +2018-01-09 Martin Liska + + PR sanitizer/82517 + * asan.c (shadow_mem_size): Add gcc_assert. + +2018-01-09 Georg-Johann Lay + + Don't save registers in main(). + + PR target/83738 + * doc/invoke.texi (AVR Options) [-mmain-is-OS_task]: Document it. + * config/avr/avr.opt (-mmain-is-OS_task): New target option. + * config/avr/avr.c (avr_set_current_function): Don't error if + naked, OS_task or OS_main are specified at the same time. + (avr_function_ok_for_sibcall): Don't disable sibcalls for OS_task, + OS_main. + (avr_insert_attributes) [-mmain-is-OS_task]
: Add OS_task + attribute. + * common/config/avr/avr-common.c (avr_option_optimization_table): + Switch on -mmain-is-OS_task for optimizing compilations. + +2018-01-09 Richard Biener + + PR tree-optimization/83572 + * graphite.c: Include cfganal.h. + (graphite_transform_loops): Connect infinite loops to exit + and remove fake edges at the end. + +2018-01-09 Jan Hubicka + + * ipa-inline.c (edge_badness): Revert accidental checkin. + +2018-01-09 Jan Hubicka + + PR ipa/80763 + * ipa-comdats.c (set_comdat_group): Only set comdat group of real + symbols; not inline clones. + +2018-01-09 Jakub Jelinek + + PR target/83507 + * modulo-sched.c (schedule_reg_moves): Punt if we'd need to move + hard registers. Formatting fixes. + + PR preprocessor/83722 + * gcc.c (try_generate_repro): Pass + &temp_stderr_files[RETRY_ICE_ATTEMPTS - 1] rather than + &temp_stdout_files[RETRY_ICE_ATTEMPTS - 1] as last argument to + do_report_bug. + +2018-01-08 Monk Chiang + Kito Cheng + + * config/riscv/riscv.c (machine_function::is_leaf): Remove field. + (riscv_leaf_function_p): Delete. + (riscv_function_ok_for_sibcall): Return false when TARGET_SAVE_RESTORE. + +2018-01-08 Aaron Sawdey + + * config/rs6000/rs6000-string.c (do_load_for_compare_from_addr): New + function. + (do_ifelse): New function. + (do_isel): New function. + (do_sub3): New function. + (do_add3): New function. + (do_load_mask_compare): New function. + (do_overlap_load_compare): New function. + (expand_compare_loop): New function. + (expand_block_compare): Call expand_compare_loop() when appropriate. + * config/rs6000/rs6000.opt (-mblock-compare-inline-limit): Change + option description. + (-mblock-compare-inline-loop-limit): New option. + +2018-01-08 Bill Schmidt + + PR target/83677 + * config/rs6000/altivec.md (*altivec_vpermr__internal): + Reverse order of second and third operands in first alternative. + * config/rs6000/rs6000.c (rs6000_expand_vector_set): Reverse order + of first and second elements in UNSPEC_VPERMR vector. + (altivec_expand_vec_perm_le): Likewise. + +2018-01-08 Jeff Law + + PR rtl-optimizatin/81308 + * tree-switch-conversion.c (cfg_altered): New file scoped static. + (process_switch): If group_case_labels makes a change, then set + cfg_altered. + (pass_convert_switch::execute): If a switch is converted, then + set cfg_altered. Return TODO_cfg_cleanup if cfg_altered is true. + + PR rtl-optimization/81308 + * recog.c (split_all_insns): Conditionally cleanup the CFG after + splitting insns. + +2018-01-08 Vidya Praveen + + PR target/83663 - Revert r255946 + * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code + generation for cases where splatting a value is not useful. + * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge + across a vec_duplicate and a paradoxical subreg forming a vector + mode to a vec_concat. + +2018-01-08 Kyrylo Tkachov + + * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping rules for + -march=armv8.3-a variants. + * config/arm/t-multilib: Likewise. + * config/arm/t-arm-elf: Likewise. Handle dotprod extension. + +2018-01-08 Aaron Sawdey + + * config/rs6000/rs6000.md (cceq_ior_compare): Remove * so I can use it + to generate rtl. + (cceq_ior_compare_complement): Give it a name so I can use it, and + change boolean_or_operator predicate to boolean_operator so it can + be used to generate a crand. + (eqne): New code iterator. + (bd/bd_neg): New code_attrs. + (_): New name for ctr_internal[12] now combined into + a single define_insn. + (tf_): A new insn pattern for the conditional form branch + decrement (bdnzt/bdnzf/bdzt/bdzf). + * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Updated + with the new names of the branch decrement patterns, and added the + names of the branch decrement conditional patterns. + +2018-01-08 Richard Biener + + PR tree-optimization/83563 + * graphite.c (canonicalize_loop_closed_ssa_form): Reset the SCEV + cache. + +2018-01-08 Richard Biener + + PR middle-end/83713 + * convert.c (do_narrow): Properly guard TYPE_OVERFLOW_WRAPS checks. + +2018-01-08 Richard Biener + + PR tree-optimization/83685 + * tree-ssa-pre.c (create_expression_by_pieces): Do not insert + references to abnormals. + +2018-01-08 Richard Biener + + PR lto/83719 + * dwarf2out.c (output_indirect_strings): Handle empty + skeleton_debug_str_hash. + (dwarf2out_early_finish): Index strings for -gsplit-dwarf. + +2018-01-08 Claudiu Zissulescu + + * config/arc/arc.c (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Delete. + (emit_store_direct): Likewise. + (arc_trampoline_adjust_address): Likewise. + (arc_asm_trampoline_template): New function. + (arc_initialize_trampoline): Use asm_trampoline_template. + (TARGET_ASM_TRAMPOLINE_TEMPLATE): Define. + * config/arc/arc.h (TRAMPOLINE_SIZE): Adjust to 16. + * config/arc/arc.md (flush_icache): Delete pattern. + +2018-01-08 Claudiu Zissulescu + + * config/arc/arc-c.def (__ARC_UNALIGNED__): New define. + * config/arc/arc.h (STRICT_ALIGNMENT): Control this macro using + munaligned-access. + +2018-01-08 Sebastian Huber + + PR target/83681 + * config/epiphany/epiphany.h (make_pass_mode_switch_use): Guard + by not USED_FOR_TARGET. + (make_pass_resolve_sw_modes): Likewise. + +2018-01-08 Sebastian Huber + + * config/nios2/nios2.h (nios2_section_threshold): Guard by not + USED_FOR_TARGET. + +2018-01-08 Richard Biener + + PR middle-end/83580 + * tree-data-ref.c (split_constant_offset): Remove STRIP_NOPS. + +2018-01-08 Richard Biener + + PR middle-end/83517 + * match.pd ((t * 2) / 2) -> t): Add missing :c. + +2018-01-06 Aldy Hernandez + + PR middle-end/81897 + * tree-ssa-uninit.c (compute_control_dep_chain): Do not bail on + basic blocks with a small number of successors. + (convert_control_dep_chain_into_preds): Improve handling of + forwarder blocks. + (dump_predicates): Split apart into... + (dump_pred_chain): ...here... + (dump_pred_info): ...and here. + (can_one_predicate_be_invalidated_p): Add debugging printfs. + (can_chain_union_be_invalidated_p): Improve check for invalidation + of paths. + (uninit_uses_cannot_happen): Avoid unnecessary if + convert_control_dep_chain_into_preds yielded nothing. + +2018-01-06 Martin Sebor + + PR tree-optimization/83640 + * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Avoid + subtracting negative offset from size. + (builtin_access::overlap): Adjust offset bounds of the access to fall + within the size of the object if possible. + +2018-01-06 Richard Sandiford + + PR rtl-optimization/83699 + * expmed.c (extract_bit_field_1): Restrict the vector usage of + extract_bit_field_as_subreg to cases in which the extracted + value is also a vector. + + * lra-constraints.c (process_alt_operands): Test for the equivalence + substitutions when detecting a possible reload cycle. + +2018-01-06 Jakub Jelinek + + PR debug/83480 + * toplev.c (process_options): Don't enable debug_nonbind_markers_p + by default if flag_selective_schedling{,2}. Formatting fixes. + + PR rtl-optimization/83682 + * rtl.h (const_vec_duplicate_p): Only return true for VEC_DUPLICATE + if it has non-VECTOR_MODE element mode. + (vec_duplicate_p): Likewise. + + PR middle-end/83694 + * cfgexpand.c (expand_debug_expr): Punt if mode1 is VOIDmode + and bitsize might be greater than MAX_BITSIZE_MODE_ANY_INT. + +2018-01-05 Jakub Jelinek + + PR target/83604 + * config/i386/i386-builtin.def + (__builtin_ia32_vgf2p8affineinvqb_v64qi, + __builtin_ia32_vgf2p8affineqb_v64qi, __builtin_ia32_vgf2p8mulb_v64qi): + Require also OPTION_MASK_ISA_AVX512F in addition to + OPTION_MASK_ISA_GFNI. + (__builtin_ia32_vgf2p8affineinvqb_v16qi_mask, + __builtin_ia32_vgf2p8affineqb_v16qi_mask): Require + OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_SSE in addition + to OPTION_MASK_ISA_GFNI. + (__builtin_ia32_vgf2p8mulb_v32qi_mask): Require + OPTION_MASK_ISA_AVX512VL in addition to OPTION_MASK_ISA_GFNI and + OPTION_MASK_ISA_AVX512BW. + (__builtin_ia32_vgf2p8mulb_v16qi_mask): Require + OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_AVX512BW in + addition to OPTION_MASK_ISA_GFNI. + (__builtin_ia32_vgf2p8affineinvqb_v16qi, + __builtin_ia32_vgf2p8affineqb_v16qi, __builtin_ia32_vgf2p8mulb_v16qi): + Require OPTION_MASK_ISA_SSE2 instead of OPTION_MASK_ISA_SSE in addition + to OPTION_MASK_ISA_GFNI. + * config/i386/i386.c (def_builtin): Change to builtin isa/isa2 being + a requirement for all ISAs rather than any of them with a few + exceptions. + (ix86_add_new_builtins): Clear OPTION_MASK_ISA_64BIT from isa before + processing. + (ix86_expand_builtin): Require all ISAs from builtin's isa and isa2 + bitmasks to be enabled with 3 exceptions, instead of requiring any + enabled ISA with lots of exceptions. + * config/i386/sse.md (vgf2p8affineinvqb_, + vgf2p8affineqb_, vgf2p8mulb_): + Change avx512bw in isa attribute to avx512f. + * config/i386/sgxintrin.h: Add license boilerplate. + * config/i386/vaesintrin.h: Likewise. Fix macro spelling __AVX512F + to __AVX512F__ and __AVX512VL to __AVX512VL__. + (_mm256_aesdec_epi128, _mm256_aesdeclast_epi128, _mm256_aesenc_epi128, + _mm256_aesenclast_epi128): Enable temporarily avx if __AVX__ is not + defined. + * config/i386/gfniintrin.h (_mm_gf2p8mul_epi8, + _mm_gf2p8affineinv_epi64_epi8, _mm_gf2p8affine_epi64_epi8): Enable + temporarily sse2 rather than sse if not enabled already. + + PR target/83604 + * config/i386/sse.md (VI248_VLBW): Rename to ... + (VI248_AVX512VL): ... this. Don't guard V32HI with TARGET_AVX512BW. + (vpshrd_, vpshld_, + vpshrdv_, vpshrdv__mask, vpshrdv__maskz, + vpshrdv__maskz_1, vpshldv_, vpshldv__mask, + vpshldv__maskz, vpshldv__maskz_1): Use VI248_AVX512VL + mode iterator instead of VI248_VLBW. + +2018-01-05 Jan Hubicka + + * ipa-fnsummary.c (record_modified_bb_info): Add OP. + (record_modified): Skip clobbers; add debug output. + (param_change_prob): Use sreal frequencies. + +2018-01-05 Richard Sandiford + + * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't + punt for user-aligned variables. + +2018-01-05 Richard Sandiford + + * tree-chrec.c (chrec_contains_symbols): Return true for + POLY_INT_CST. + +2018-01-05 Sudakshina Das + + PR target/82439 + * simplify-rtx.c (simplify_relational_operation_1): Add simplifications + of (x|y) == x for BICS pattern. + +2018-01-05 Jakub Jelinek + + PR tree-optimization/83605 + * gimple-ssa-strength-reduction.c: Include tree-eh.h. + (find_candidates_dom_walker::before_dom_children): Ignore stmts that + can throw. + +2018-01-05 Sebastian Huber + + * config.gcc (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration. + * config/epiphany/rtems.h: New file. + +2018-01-04 Jakub Jelinek + Uros Bizjak + + PR target/83554 + * config/i386/i386.md (*hi3_1 splitter): Use + QIreg_operand instead of register_operand predicate. + * config/i386/i386.c (ix86_rop_should_change_byte_p, + set_rop_modrm_reg_bits, ix86_mitigate_rop): Use -mmitigate-rop in + comments instead of -fmitigate[-_]rop. + +2018-01-04 Rainer Orth + + PR bootstrap/81926 + * cgraphunit.c (symbol_table::compile): Switch to text_section + before calling assembly_start debug hook. + * run-rtl-passes.c (run_rtl_passes): Likewise. + Include output.h. + +2018-01-04 Richard Sandiford + + * tree-vrp.c (extract_range_from_binary_expr_1): Check + range_int_cst_p rather than !symbolic_range_p before calling + extract_range_from_multiplicative_op_1. + +2018-01-04 Jeff Law + + * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Remove + redundant test in assertion. + +2018-01-04 Richard Sandiford + + * doc/rtl.texi: Document machine_mode wrapper classes. + +2018-01-04 Richard Sandiford + + * fold-const.c (fold_ternary_loc): Check tree_fits_uhwi_p before + using tree_to_uhwi. + +2018-01-04 Richard Sandiford + + * tree-ssa-forwprop.c (is_combined_permutation_identity): Allow + the VEC_PERM_EXPR fold to fail. + +2018-01-04 Jakub Jelinek + + PR debug/83585 + * bb-reorder.c (insert_section_boundary_note): Set has_bb_partition + to switched_sections. + +2018-01-04 Richard Sandiford + + PR target/83680 + * config/arm/arm.c (arm_vectorize_vec_perm_const): Fix inverted + test for d.testing. + +2018-01-04 Peter Bergner + + PR target/83387 + * config/rs6000/rs6000.c (rs6000_discover_homogeneous_aggregate): Do not + allow arguments in FP registers if TARGET_HARD_FLOAT is false. + +2018-01-04 Jakub Jelinek + + PR debug/83666 + * cfgexpand.c (expand_debug_expr) : Punt if mode + is BLKmode and bitpos not zero or mode change is needed. + +2018-01-04 Richard Sandiford + + PR target/83675 + * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Require + TARGET_VIS2. + +2018-01-04 Uros Bizjak + + PR target/83628 + * config/alpha/alpha.md (*sadd): Use ASHIFT + instead of MULT rtx. Update all corresponding splitters. + (*saddl_se): Ditto. + (*ssub): Ditto. + (*ssubl_se): Ditto. + (*cmp_sadd_di): Update split patterns. + (*cmp_sadd_si): Ditto. + (*cmp_sadd_sidi): Ditto. + (*cmp_ssub_di): Ditto. + (*cmp_ssub_si): Ditto. + (*cmp_ssub_sidi): Ditto. + * config/alpha/predicates.md (const23_operand): New predicate. + * config/alpha/alpha.c (alpha_rtx_costs) [PLUS, MINUS]: + Look for ASHIFT, not MULT inner operand. + (alpha_split_conditional_move): Update for *sadd change. + +2018-01-04 Martin Liska + + PR gcov-profile/83669 + * gcov.c (output_intermediate_file): Add version to intermediate + gcov file. + * doc/gcov.texi: Document new field 'version' in intermediate + file format. Fix location of '-k' option of gcov command. + +2018-01-04 Martin Liska + + PR ipa/82352 + * ipa-icf.c (sem_function::merge): Do not cross comdat boundary. + +2018-01-04 Jakub Jelinek + + * gimple-ssa-sprintf.c (parse_directive): Cast second dir.len to uhwi. + +2018-01-03 Martin Sebor + + PR tree-optimization/83655 + * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): Avoid + checking calls with invalid arguments. + +2018-01-03 Richard Sandiford + + * tree-vect-stmts.c (vect_get_store_rhs): New function. + (vectorizable_mask_load_store): Delete. + (vectorizable_call): Return false for masked loads and stores. + (vectorizable_store): Handle IFN_MASK_STORE. Use vect_get_store_rhs + instead of gimple_assign_rhs1. + (vectorizable_load): Handle IFN_MASK_LOAD. + (vect_transform_stmt): Don't set is_store for call_vec_info_type. + +2018-01-03 Richard Sandiford + + * tree-vect-stmts.c (vect_build_gather_load_calls): New function, + split out from.., + (vectorizable_mask_load_store): ...here. + (vectorizable_load): ...and here. + +2018-01-03 Richard Sandiford + + * tree-vect-stmts.c (vect_build_all_ones_mask) + (vect_build_zero_merge_argument): New functions, split out from... + (vectorizable_load): ...here. + +2018-01-03 Richard Sandiford + + * tree-vect-stmts.c (vect_check_store_rhs): New function, + split out from... + (vectorizable_mask_load_store): ...here. + (vectorizable_store): ...and here. + +2018-01-03 Richard Sandiford + + * tree-vect-stmts.c (vect_check_load_store_mask): New function, + split out from... + (vectorizable_mask_load_store): ...here. + +2018-01-03 Richard Sandiford + + * tree-vectorizer.h (vec_load_store_type): Moved from tree-vec-stmts.c + (vect_model_store_cost): Take a vec_load_store_type instead of a + vect_def_type. + * tree-vect-stmts.c (vec_load_store_type): Move to tree-vectorizer.h. + (vect_model_store_cost): Take a vec_load_store_type instead of a + vect_def_type. + (vectorizable_mask_load_store): Update accordingly. + (vectorizable_store): Likewise. + * tree-vect-slp.c (vect_analyze_slp_cost_1): Update accordingly. + +2018-01-03 Richard Sandiford + + * tree-vect-loop.c (vect_transform_loop): Stub out scalar + IFN_MASK_LOAD calls here rather than... + * tree-vect-stmts.c (vectorizable_mask_load_store): ...here. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * expmed.c (extract_bit_field_1): For vector extracts, + fall back to extract_bit_field_as_subreg if vec_extract + isn't available. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * lra-spills.c (pseudo_reg_slot_compare): Sort slots by whether + they are variable or constant sized. + (assign_stack_slot_num_and_sort_pseudos): Don't reuse variable-sized + slots for constant-sized data. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): When + handling COND_EXPRs with boolean comparisons, try to find a better + basis for the mask type than the boolean itself. + +2018-01-03 Richard Sandiford + + * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_MODE): Describe how the default + is calculated and how it can be overridden. + * genmodes.c (max_bitsize_mode_any_mode): New variable. + (create_modes): Initialize it from MAX_BITSIZE_MODE_ANY_MODE, + if defined. + (emit_max_int): Use it to set the output MAX_BITSIZE_MODE_ANY_MODE, + if nonzero. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * config/aarch64/aarch64-protos.h (aarch64_output_simd_mov_immediate): + Remove the mode argument. + (aarch64_simd_valid_immediate): Remove the mode and inverse + arguments. + * config/aarch64/iterators.md (bitsize): New iterator. + * config/aarch64/aarch64-simd.md (*aarch64_simd_mov, and3) + (ior3): Update calls to aarch64_output_simd_mov_immediate. + * config/aarch64/constraints.md (Do, Db, Dn): Update calls to + aarch64_simd_valid_immediate. + * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Likewise. + (aarch64_reg_or_bic_imm): Likewise. + * config/aarch64/aarch64.c (simd_immediate_info): Replace mvn + with an insn_type enum and msl with a modifier_type enum. + Replace element_width with a scalar_mode. Change the shift + to unsigned int. Add constructors for scalar_float_mode and + scalar_int_mode elements. + (aarch64_vect_float_const_representable_p): Delete. + (aarch64_can_const_movi_rtx_p) + (aarch64_simd_scalar_immediate_valid_for_move) + (aarch64_simd_make_constant): Update call to + aarch64_simd_valid_immediate. + (aarch64_advsimd_valid_immediate_hs): New function. + (aarch64_advsimd_valid_immediate): Likewise. + (aarch64_simd_valid_immediate): Remove mode and inverse + arguments. Rewrite to use the above. Use const_vec_duplicate_p + to detect duplicated constants and use aarch64_float_const_zero_rtx_p + and aarch64_float_const_representable_p on the result. + (aarch64_output_simd_mov_immediate): Remove mode argument. + Update call to aarch64_simd_valid_immediate and use of + simd_immediate_info. + (aarch64_output_scalar_simd_mov_immediate): Update call + accordingly. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * machmode.h (mode_precision): Prefix with CONST_MODE_PRECISION. + (mode_nunits): Likewise CONST_MODE_NUNITS. + * machmode.def (ADJUST_NUNITS): Document. + * genmodes.c (mode_data::need_nunits_adj): New field. + (blank_mode): Update accordingly. + (adj_nunits): New variable. + (print_maybe_const_decl): Replace CATEGORY with a NEEDS_ADJ + parameter. + (emit_mode_size_inline): Set need_bytesize_adj for all modes + listed in adj_nunits. + (emit_mode_nunits_inline): Set need_nunits_adj for all modes + listed in adj_nunits. Don't emit case statements for such modes. + (emit_insn_modes_h): Emit definitions of CONST_MODE_NUNITS + and CONST_MODE_PRECISION. Make CONST_MODE_SIZE expand to + nothing if adj_nunits is nonnull. + (emit_mode_precision, emit_mode_nunits): Use print_maybe_const_decl. + (emit_mode_unit_size, emit_mode_base_align, emit_mode_ibit) + (emit_mode_fbit): Update use of print_maybe_const_decl. + (emit_move_size): Likewise. Treat the array as non-const + if adj_nunits. + (emit_mode_adjustments): Handle adj_nunits. + +2018-01-03 Richard Sandiford + + * machmode.def (VECTOR_MODES_WITH_PREFIX): Document. + * genmodes.c (VECTOR_MODES_WITH_PREFIX): New macro. + (VECTOR_MODES): Use it. + (make_vector_modes): Take the prefix as an argument. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * mode-classes.def (MODE_VECTOR_BOOL): New mode class. + * machmode.h (INTEGRAL_MODE_P, VECTOR_MODE_P): Return true + for MODE_VECTOR_BOOL. + * machmode.def (VECTOR_BOOL_MODE): Document. + * genmodes.c (VECTOR_BOOL_MODE): New macro. + (make_vector_bool_mode): New function. + (complete_mode, emit_mode_wider, emit_mode_adjustments): Handle + MODE_VECTOR_BOOL. + * lto-streamer-in.c (lto_input_mode_table): Likewise. + * rtx-vector-builder.c (rtx_vector_builder::find_cached_value): + Likewise. + * stor-layout.c (int_mode_for_mode): Likewise. + * tree.c (build_vector_type_for_mode): Likewise. + * varasm.c (output_constant_pool_2): Likewise. + * emit-rtl.c (init_emit_once): Make sure that CONST1_RTX (BImode) and + CONSTM1_RTX (BImode) are the same thing. Initialize const_tiny_rtx + for MODE_VECTOR_BOOL. + * expr.c (expand_expr_real_1): Use VECTOR_MODE_P instead of a list + of mode class checks. + * tree-vect-generic.c (expand_vector_operation): Use VECTOR_MODE_P + instead of a list of mode class checks. + (expand_vector_scalar_condition): Likewise. + (type_for_widest_vector_mode): Handle BImode as an inner mode. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * machmode.h (mode_size): Change from unsigned short to + poly_uint16_pod. + (mode_to_bytes): Return a poly_uint16 rather than an unsigned short. + (GET_MODE_SIZE): Return a constant if ONLY_FIXED_SIZE_MODES, + or if measurement_type is not polynomial. + (fixed_size_mode::includes_p): Check for constant-sized modes. + * genmodes.c (emit_mode_size_inline): Make mode_size_inline + return a poly_uint16 rather than an unsigned short. + (emit_mode_size): Change the type of mode_size from unsigned short + to poly_uint16_pod. Use ZERO_COEFFS for the initializer. + (emit_mode_adjustments): Cope with polynomial vector sizes. + * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value + for GET_MODE_SIZE. + * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value + for GET_MODE_SIZE. + * auto-inc-dec.c (try_merge): Treat GET_MODE_SIZE as polynomial. + * builtins.c (expand_ifn_atomic_compare_exchange_into_call): Likewise. + * caller-save.c (setup_save_areas): Likewise. + (replace_reg_with_saved_mem): Likewise. + * calls.c (emit_library_call_value_1): Likewise. + * combine-stack-adj.c (combine_stack_adjustments_for_block): Likewise. + * combine.c (simplify_set, make_extraction, simplify_shift_const_1) + (gen_lowpart_for_combine): Likewise. + * convert.c (convert_to_integer_1): Likewise. + * cse.c (equiv_constant, cse_insn): Likewise. + * cselib.c (autoinc_split, cselib_hash_rtx): Likewise. + (cselib_subst_to_values): Likewise. + * dce.c (word_dce_process_block): Likewise. + * df-problems.c (df_word_lr_mark_ref): Likewise. + * dwarf2cfi.c (init_one_dwarf_reg_size): Likewise. + * dwarf2out.c (multiple_reg_loc_descriptor, mem_loc_descriptor) + (concat_loc_descriptor, concatn_loc_descriptor, loc_descriptor) + (rtl_for_decl_location): Likewise. + * emit-rtl.c (gen_highpart, widen_memory_access): Likewise. + * expmed.c (extract_bit_field_1, extract_integral_bit_field): Likewise. + * expr.c (emit_group_load_1, clear_storage_hints): Likewise. + (emit_move_complex, emit_move_multi_word, emit_push_insn): Likewise. + (expand_expr_real_1): Likewise. + * function.c (assign_parm_setup_block_p, assign_parm_setup_block) + (pad_below): Likewise. + * gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise. + * gimple-ssa-store-merging.c (rhs_valid_for_store_merging_p): Likewise. + * ira.c (get_subreg_tracking_sizes): Likewise. + * ira-build.c (ira_create_allocno_objects): Likewise. + * ira-color.c (coalesced_pseudo_reg_slot_compare): Likewise. + (ira_sort_regnos_for_alter_reg): Likewise. + * ira-costs.c (record_operand_costs): Likewise. + * lower-subreg.c (interesting_mode_p, simplify_gen_subreg_concatn) + (resolve_simple_move): Likewise. + * lra-constraints.c (get_reload_reg, operands_match_p): Likewise. + (process_addr_reg, simplify_operand_subreg, curr_insn_transform) + (lra_constraints): Likewise. + (CONST_POOL_OK_P): Reject variable-sized modes. + * lra-spills.c (slot, assign_mem_slot, pseudo_reg_slot_compare) + (add_pseudo_to_slot, lra_spill): Likewise. + * omp-low.c (omp_clause_aligned_alignment): Likewise. + * optabs-query.c (get_best_extraction_insn): Likewise. + * optabs-tree.c (expand_vec_cond_expr_p): Likewise. + * optabs.c (expand_vec_perm_var, expand_vec_cond_expr): Likewise. + (expand_mult_highpart, valid_multiword_target_p): Likewise. + * recog.c (offsettable_address_addr_space_p): Likewise. + * regcprop.c (maybe_mode_change): Likewise. + * reginfo.c (choose_hard_reg_mode, record_subregs_of_mode): Likewise. + * regrename.c (build_def_use): Likewise. + * regstat.c (dump_reg_info): Likewise. + * reload.c (complex_word_subreg_p, push_reload, find_dummy_reload) + (find_reloads, find_reloads_subreg_address): Likewise. + * reload1.c (eliminate_regs_1): Likewise. + * rtlanal.c (for_each_inc_dec_find_inc_dec, rtx_cost): Likewise. + * simplify-rtx.c (avoid_constant_pool_reference): Likewise. + (simplify_binary_operation_1, simplify_subreg): Likewise. + * targhooks.c (default_function_arg_padding): Likewise. + (default_hard_regno_nregs, default_class_max_nregs): Likewise. + * tree-cfg.c (verify_gimple_assign_binary): Likewise. + (verify_gimple_assign_ternary): Likewise. + * tree-inline.c (estimate_move_cost): Likewise. + * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. + * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Likewise. + (get_address_cost_ainc): Likewise. + * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. + (vect_supportable_dr_alignment): Likewise. + * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. + (vectorizable_reduction): Likewise. + * tree-vect-stmts.c (vectorizable_assignment, vectorizable_shift) + (vectorizable_operation, vectorizable_load): Likewise. + * tree.c (build_same_sized_truth_vector_type): Likewise. + * valtrack.c (cleanup_auto_inc_dec): Likewise. + * var-tracking.c (emit_note_insn_var_location): Likewise. + * config/arc/arc.h (ASM_OUTPUT_CASE_END): Use as_a . + (ADDR_VEC_ALIGN): Likewise. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * machmode.h (mode_to_bits): Return a poly_uint16 rather than an + unsigned short. + (GET_MODE_BITSIZE): Return a constant if ONLY_FIXED_SIZE_MODES, + or if measurement_type is polynomial. + * calls.c (shift_return_value): Treat GET_MODE_BITSIZE as polynomial. + * combine.c (make_extraction): Likewise. + * dse.c (find_shift_sequence): Likewise. + * dwarf2out.c (mem_loc_descriptor): Likewise. + * expmed.c (store_integral_bit_field, extract_bit_field_1): Likewise. + (extract_bit_field, extract_low_bits): Likewise. + * expr.c (convert_move, convert_modes, emit_move_insn_1): Likewise. + (optimize_bitfield_assignment_op, expand_assignment): Likewise. + (store_expr_with_bounds, store_field, expand_expr_real_1): Likewise. + * fold-const.c (optimize_bit_field_compare, merge_ranges): Likewise. + * gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise. + * reload.c (find_reloads): Likewise. + * reload1.c (alter_reg): Likewise. + * stor-layout.c (bitwise_mode_for_mode, compute_record_mode): Likewise. + * targhooks.c (default_secondary_memory_needed_mode): Likewise. + * tree-if-conv.c (predicate_mem_writes): Likewise. + * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise. + * tree-vect-patterns.c (adjust_bool_pattern): Likewise. + * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise. + * valtrack.c (dead_debug_insert_temp): Likewise. + * varasm.c (mergeable_constant_section): Likewise. + * config/sh/sh.h (LOCAL_ALIGNMENT): Use as_a . + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * expr.c (expand_assignment): Cope with polynomial mode sizes + when assigning to a CONCAT. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * machmode.h (mode_precision): Change from unsigned short to + poly_uint16_pod. + (mode_to_precision): Return a poly_uint16 rather than an unsigned + short. + (GET_MODE_PRECISION): Return a constant if ONLY_FIXED_SIZE_MODES, + or if measurement_type is not polynomial. + (HWI_COMPUTABLE_MODE_P): Turn into a function. Optimize the case + in which the mode is already known to be a scalar_int_mode. + * genmodes.c (emit_mode_precision): Change the type of mode_precision + from unsigned short to poly_uint16_pod. Use ZERO_COEFFS for the + initializer. + * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value + for GET_MODE_PRECISION. + * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value + for GET_MODE_PRECISION. + * combine.c (update_rsp_from_reg_equal): Treat GET_MODE_PRECISION + as polynomial. + (try_combine, find_split_point, combine_simplify_rtx): Likewise. + (expand_field_assignment, make_extraction): Likewise. + (make_compound_operation_int, record_dead_and_set_regs_1): Likewise. + (get_last_value): Likewise. + * convert.c (convert_to_integer_1): Likewise. + * cse.c (cse_insn): Likewise. + * expr.c (expand_expr_real_1): Likewise. + * lra-constraints.c (simplify_operand_subreg): Likewise. + * optabs-query.c (can_atomic_load_p): Likewise. + * optabs.c (expand_atomic_load): Likewise. + (expand_atomic_store): Likewise. + * ree.c (combine_reaching_defs): Likewise. + * rtl.h (partial_subreg_p, paradoxical_subreg_p): Likewise. + * rtlanal.c (nonzero_bits1, lsb_bitfield_op_p): Likewise. + * tree.h (type_has_mode_precision_p): Likewise. + * ubsan.c (instrument_si_overflow): Likewise. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * tree.h (TYPE_VECTOR_SUBPARTS): Turn into a function and handle + polynomial numbers of units. + (SET_TYPE_VECTOR_SUBPARTS): Likewise. + (valid_vector_subparts_p): New function. + (build_vector_type): Remove temporary shim and take the number + of units as a poly_uint64 rather than an int. + (build_opaque_vector_type): Take the number of units as a + poly_uint64 rather than an int. + * tree.c (build_vector_from_ctor): Handle polynomial + TYPE_VECTOR_SUBPARTS. + (type_hash_canon_hash, type_cache_hasher::equal): Likewise. + (uniform_vector_p, vector_type_mode, build_vector): Likewise. + (build_vector_from_val): If the number of units is variable, + use build_vec_duplicate_cst for constant operands and + VEC_DUPLICATE_EXPR otherwise. + (make_vector_type): Remove temporary is_constant (). + (build_vector_type, build_opaque_vector_type): Take the number of + units as a poly_uint64 rather than an int. + (check_vector_cst): Handle polynomial TYPE_VECTOR_SUBPARTS and + VECTOR_CST_NELTS. + * cfgexpand.c (expand_debug_expr): Likewise. + * expr.c (count_type_elements, categorize_ctor_elements_1): Likewise. + (store_constructor, expand_expr_real_1): Likewise. + (const_scalar_mask_from_tree): Likewise. + * fold-const-call.c (fold_const_reduction): Likewise. + * fold-const.c (const_binop, const_unop, fold_convert_const): Likewise. + (operand_equal_p, fold_vec_perm, fold_ternary_loc): Likewise. + (native_encode_vector, vec_cst_ctor_to_array): Likewise. + (fold_relational_const): Likewise. + (native_interpret_vector): Likewise. Change the size from an + int to an unsigned int. + * gimple-fold.c (gimple_fold_stmt_to_constant_1): Handle polynomial + TYPE_VECTOR_SUBPARTS. + (gimple_fold_indirect_ref, gimple_build_vector): Likewise. + (gimple_build_vector_from_val): Use VEC_DUPLICATE_EXPR when + duplicating a non-constant operand into a variable-length vector. + * hsa-brig.c (hsa_op_immed::emit_to_buffer): Handle polynomial + TYPE_VECTOR_SUBPARTS and VECTOR_CST_NELTS. + * ipa-icf.c (sem_variable::equals): Likewise. + * match.pd: Likewise. + * omp-simd-clone.c (simd_clone_subparts): Likewise. + * print-tree.c (print_node): Likewise. + * stor-layout.c (layout_type): Likewise. + * targhooks.c (default_builtin_vectorization_cost): Likewise. + * tree-cfg.c (verify_gimple_comparison): Likewise. + (verify_gimple_assign_binary): Likewise. + (verify_gimple_assign_ternary): Likewise. + (verify_gimple_assign_single): Likewise. + * tree-pretty-print.c (dump_generic_node): Likewise. + * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. + (simplify_bitfield_ref, is_combined_permutation_identity): Likewise. + * tree-vect-data-refs.c (vect_permute_store_chain): Likewise. + (vect_grouped_load_supported, vect_permute_load_chain): Likewise. + (vect_shift_permute_load_chain): Likewise. + * tree-vect-generic.c (nunits_for_known_piecewise_op): Likewise. + (expand_vector_condition, optimize_vector_constructor): Likewise. + (lower_vec_perm, get_compute_type): Likewise. + * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. + (get_initial_defs_for_reduction, vect_transform_loop): Likewise. + * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise. + (vect_recog_mask_conversion_pattern): Likewise. + * tree-vect-slp.c (vect_supported_load_permutation_p): Likewise. + (vect_get_constant_vectors, vect_transform_slp_perm_load): Likewise. + * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. + (get_group_load_store_type, vectorizable_mask_load_store): Likewise. + (vectorizable_bswap, simd_clone_subparts, vectorizable_assignment) + (vectorizable_shift, vectorizable_operation, vectorizable_store) + (vectorizable_load, vect_is_simple_cond, vectorizable_comparison) + (supportable_widening_operation): Likewise. + (supportable_narrowing_operation): Likewise. + * tree-vector-builder.c (tree_vector_builder::binary_encoded_nelts): + Likewise. + * varasm.c (output_constant): Likewise. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vect-data-refs.c (vect_permute_store_chain): Reorganize + so that both the length == 3 and length != 3 cases set up their + own permute vectors. Add comments explaining why we know the + number of elements is constant. + (vect_permute_load_chain): Likewise. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * machmode.h (mode_nunits): Change from unsigned char to + poly_uint16_pod. + (ONLY_FIXED_SIZE_MODES): New macro. + (pod_mode::measurement_type, scalar_int_mode::measurement_type) + (scalar_float_mode::measurement_type, scalar_mode::measurement_type) + (complex_mode::measurement_type, fixed_size_mode::measurement_type): + New typedefs. + (mode_to_nunits): Return a poly_uint16 rather than an unsigned short. + (GET_MODE_NUNITS): Return a constant if ONLY_FIXED_SIZE_MODES, + or if measurement_type is not polynomial. + * genmodes.c (ZERO_COEFFS): New macro. + (emit_mode_nunits_inline): Make mode_nunits_inline return a + poly_uint16. + (emit_mode_nunits): Change the type of mode_nunits to poly_uint16_pod. + Use ZERO_COEFFS when emitting initializers. + * data-streamer.h (bp_pack_poly_value): New function. + (bp_unpack_poly_value): Likewise. + * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value + for GET_MODE_NUNITS. + * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value + for GET_MODE_NUNITS. + * tree.c (make_vector_type): Remove temporary shim and make + the real function take the number of units as a poly_uint64 + rather than an int. + (build_vector_type_for_mode): Handle polynomial nunits. + * dwarf2out.c (loc_descriptor, add_const_value_attribute): Likewise. + * emit-rtl.c (const_vec_series_p_1): Likewise. + (gen_rtx_CONST_VECTOR): Likewise. + * fold-const.c (test_vec_duplicate_folding): Likewise. + * genrecog.c (validate_pattern): Likewise. + * optabs-query.c (can_vec_perm_var_p, can_mult_highpart_p): Likewise. + * optabs-tree.c (expand_vec_cond_expr_p): Likewise. + * optabs.c (expand_vector_broadcast, expand_binop_directly): Likewise. + (shift_amt_for_vec_perm_mask, expand_vec_perm_var): Likewise. + (expand_vec_cond_expr, expand_mult_highpart): Likewise. + * rtlanal.c (subreg_get_info): Likewise. + * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. + (vect_grouped_load_supported): Likewise. + * tree-vect-generic.c (type_for_widest_vector_mode): Likewise. + * tree-vect-loop.c (have_whole_vector_shift): Likewise. + * simplify-rtx.c (simplify_unary_operation_1): Likewise. + (simplify_const_unary_operation, simplify_binary_operation_1) + (simplify_const_binary_operation, simplify_ternary_operation) + (test_vector_ops_duplicate, test_vector_ops): Likewise. + (simplify_immed_subreg): Use GET_MODE_NUNITS on a fixed_size_mode + instead of CONST_VECTOR_NUNITS. + * varasm.c (output_constant_pool_2): Likewise. + * rtx-vector-builder.c (rtx_vector_builder::build): Only include the + explicit-encoded elements in the XVEC for variable-length vectors. + +2018-01-03 Richard Sandiford + + * lra-constraints.c (curr_insn_transform): Use partial_subreg_p. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * coretypes.h (fixed_size_mode): Declare. + (fixed_size_mode_pod): New typedef. + * builtins.h (target_builtins::x_apply_args_mode) + (target_builtins::x_apply_result_mode): Change type to + fixed_size_mode_pod. + * builtins.c (apply_args_size, apply_result_size, result_vector) + (expand_builtin_apply_args_1, expand_builtin_apply) + (expand_builtin_return): Update accordingly. + +2018-01-03 Richard Sandiford + + * cse.c (hash_rtx_cb): Hash only the encoded elements. + * cselib.c (cselib_hash_rtx): Likewise. + * expmed.c (make_tree): Build VECTOR_CSTs directly from the + CONST_VECTOR encoding. + +2018-01-03 Jakub Jelinek + Jeff Law + + PR target/83641 + * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): For + noreturn probe, use gen_pop instead of ix86_emit_restore_reg_using_pop, + only set RTX_FRAME_RELATED_P on both the push and pop if cfa_reg is sp + and add REG_CFA_ADJUST_CFA notes in that case to both insns. + + PR target/83641 + * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Do not + explicitly probe *sp in a noreturn function if there were any callee + register saves or frame pointer is needed. + +2018-01-03 Jakub Jelinek + + PR debug/83621 + * cfgexpand.c (expand_debug_expr): Return NULL if mode is + BLKmode for ternary, binary or unary expressions. + + PR debug/83645 + * var-tracking.c (delete_vta_debug_insn): New inline function. + (delete_vta_debug_insns): Add USE_CFG argument, if true, walk just + insns from get_insns () to NULL instead of each bb separately. + Use delete_vta_debug_insn. No longer static. + (vt_debug_insns_local, variable_tracking_main_1): Adjust + delete_vta_debug_insns callers. + * rtl.h (delete_vta_debug_insns): Declare. + * final.c (rest_of_handle_final): Call delete_vta_debug_insns + instead of variable_tracking_main. + +2018-01-03 Martin Sebor + + PR tree-optimization/83603 + * calls.c (maybe_warn_nonstring_arg): Avoid accessing function + arguments past the endof the argument list in functions declared + without a prototype. + * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): + Avoid checking when arguments are null. + +2018-01-03 Martin Sebor + + PR c/83559 + * doc/extend.texi (attribute const): Fix a typo. + * ipa-pure-const.c ((warn_function_const, warn_function_pure): Avoid + issuing -Wsuggest-attribute for void functions. + +2018-01-03 Martin Sebor + + * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use + offset_int::from instead of wide_int::to_shwi. + (maybe_diag_overlap): Remove assertion. + Use HOST_WIDE_INT_PRINT_DEC instead of %lli. + * gimple-ssa-sprintf.c (format_directive): Same. + (parse_directive): Same. + (sprintf_dom_walker::compute_format_length): Same. + (try_substitute_return_value): Same. + +2018-01-03 Jeff Law + + PR middle-end/83654 + * explow.c (anti_adjust_stack_and_probe_stack_clash): Test a + non-constant residual for zero at runtime and avoid probing in + that case. Reorganize code for trailing problem to mirror handling + of the residual. + +2018-01-03 Prathamesh Kulkarni + + PR tree-optimization/83501 + * tree-ssa-strlen.c (get_string_cst): New. + (handle_char_store): Call get_string_cst. + +2018-01-03 Martin Liska + + PR tree-optimization/83593 + * tree-ssa-strlen.c: Include tree-cfg.h. + (strlen_check_and_optimize_stmt): Add new argument cleanup_eh. + (strlen_dom_walker): Add new member variable m_cleanup_cfg. + (strlen_dom_walker::strlen_dom_walker): Initialize m_cleanup_cfg + to false. + (strlen_dom_walker::before_dom_children): Call + gimple_purge_dead_eh_edges. Dump tranformation with details + dump flags. + (strlen_dom_walker::before_dom_children): Update call by adding + new argument cleanup_eh. + (pass_strlen::execute): Return TODO_cleanup_cfg if needed. + +2018-01-03 Martin Liska + + PR ipa/83549 + * cif-code.def (VARIADIC_THUNK): New enum value. + * ipa-fnsummary.c (compute_fn_summary): Do not inline variadic + thunks. + +2018-01-03 Jan Beulich + + * sse.md (mov_internal): Tighten condition for when to use + vmovdqu for TI and OI modes. + +2018-01-03 Jakub Jelinek + + Update copyright years. + +2018-01-03 Martin Liska + + PR ipa/83594 + * ipa-visibility.c (function_and_variable_visibility): Skip + functions with noipa attribure. + +2018-01-03 Jakub Jelinek + + * gcc.c (process_command): Update copyright notice dates. + * gcov-dump.c (print_version): Ditto. + * gcov.c (print_version): Ditto. + * gcov-tool.c (print_version): Ditto. + * gengtype.c (create_file): Ditto. + * doc/cpp.texi: Bump @copying's copyright year. + * doc/cppinternals.texi: Ditto. + * doc/gcc.texi: Ditto. + * doc/gccint.texi: Ditto. + * doc/gcov.texi: Ditto. + * doc/install.texi: Ditto. + * doc/invoke.texi: Ditto. + +2018-01-03 Richard Sandiford + + * vector-builder.h (vector_builder::m_full_nelts): Change from + unsigned int to poly_uint64. + (vector_builder::full_nelts): Update prototype accordingly. + (vector_builder::new_vector): Likewise. + (vector_builder::encoded_full_vector_p): Handle polynomial full_nelts. + (vector_builder::operator ==): Likewise. + (vector_builder::finalize): Likewise. + * int-vector-builder.h (int_vector_builder::int_vector_builder): + Take the number of elements as a poly_uint64 rather than an + unsigned int. + * vec-perm-indices.h (vec_perm_indices::m_nelts_per_input): Change + from unsigned int to poly_uint64. + (vec_perm_indices::vec_perm_indices): Update prototype accordingly. + (vec_perm_indices::new_vector): Likewise. + (vec_perm_indices::length): Likewise. + (vec_perm_indices::nelts_per_input): Likewise. + (vec_perm_indices::input_nelts): Likewise. + * vec-perm-indices.c (vec_perm_indices::new_vector): Take the + number of elements per input as a poly_uint64 rather than an + unsigned int. Use the original encoding for variable-length + vectors, rather than clamping each individual element. + For the second and subsequent elements in each pattern, + clamp the step and base before clamping their sum. + (vec_perm_indices::series_p): Handle polynomial element counts. + (vec_perm_indices::all_in_range_p): Likewise. + (vec_perm_indices_to_tree): Likewise. + (vec_perm_indices_to_rtx): Likewise. + * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise. + * tree-vector-builder.c (tree_vector_builder::new_unary_operation) + (tree_vector_builder::new_binary_operation): Handle polynomial + element counts. Return false if we need to know the number + of elements at compile time. + * fold-const.c (fold_vec_perm): Punt if the number of elements + isn't known at compile time. + +2018-01-03 Richard Sandiford + + * vec-perm-indices.h (vec_perm_builder): Change element type + from HOST_WIDE_INT to poly_int64. + (vec_perm_indices::element_type): Update accordingly. + (vec_perm_indices::clamp): Handle polynomial element_types. + * vec-perm-indices.c (vec_perm_indices::series_p): Likewise. + (vec_perm_indices::all_in_range_p): Likewise. + (tree_to_vec_perm_builder): Check for poly_int64 trees rather + than shwi trees. + * vector-builder.h (vector_builder::stepped_sequence_p): Handle + polynomial vec_perm_indices element types. + * int-vector-builder.h (int_vector_builder::equal_p): Likewise. + * fold-const.c (fold_vec_perm): Likewise. + * optabs.c (shift_amt_for_vec_perm_mask): Likewise. + * tree-vect-generic.c (lower_vec_perm): Likewise. + * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise. + * config/aarch64/aarch64.c (aarch64_evpc_tbl): Cast d->perm + element type to HOST_WIDE_INT. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * alias.c (addr_side_effect_eval): Take the size as a poly_int64 + rather than an int. Use plus_constant. + (memrefs_conflict_p): Take the sizes as poly_int64s rather than ints. + Take the offset "c" as a poly_int64 rather than a HOST_WIDE_INT. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * calls.c (emit_call_1, expand_call): Change struct_value_size from + a HOST_WIDE_INT to a poly_int64. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * calls.c (load_register_parameters): Cope with polynomial + mode sizes. Require a constant size for BLKmode parameters + that aren't described by a PARALLEL. If BLOCK_REG_PADDING + forces a parameter to be padded at the lsb end in order to + fill a complete number of words, require the parameter size + to be ordered wrt UNITS_PER_WORD. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * reload1.c (spill_stack_slot_width): Change element type + from unsigned int to poly_uint64_pod. + (alter_reg): Treat mode sizes as polynomial. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * reload.c (complex_word_subreg_p): New function. + (reload_inner_reg_of_subreg, push_reload): Use it. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * lra-constraints.c (process_alt_operands): Reject matched + operands whose sizes aren't ordered. + (match_reload): Refer to this check here. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * builtins.c (expand_ifn_atomic_compare_exchange_into_call): Assert + that the mode size is in the set {1, 2, 4, 8, 16}. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * var-tracking.c (adjust_mems): Treat mode sizes as polynomial. + Use plus_constant instead of gen_rtx_PLUS. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * config/cr16/cr16-protos.h (cr16_push_rounding): Declare. + * config/cr16/cr16.h (PUSH_ROUNDING): Move implementation to... + * config/cr16/cr16.c (cr16_push_rounding): ...this new function. + * config/h8300/h8300-protos.h (h8300_push_rounding): Declare. + * config/h8300/h8300.h (PUSH_ROUNDING): Move implementation to... + * config/h8300/h8300.c (h8300_push_rounding): ...this new function. + * config/i386/i386-protos.h (ix86_push_rounding): Declare. + * config/i386/i386.h (PUSH_ROUNDING): Move implementation to... + * config/i386/i386.c (ix86_push_rounding): ...this new function. + * config/m32c/m32c-protos.h (m32c_push_rounding): Take and return + a poly_int64. + * config/m32c/m32c.c (m32c_push_rounding): Likewise. + * config/m68k/m68k-protos.h (m68k_push_rounding): Declare. + * config/m68k/m68k.h (PUSH_ROUNDING): Move implementation to... + * config/m68k/m68k.c (m68k_push_rounding): ...this new function. + * config/pdp11/pdp11-protos.h (pdp11_push_rounding): Declare. + * config/pdp11/pdp11.h (PUSH_ROUNDING): Move implementation to... + * config/pdp11/pdp11.c (pdp11_push_rounding): ...this new function. + * config/stormy16/stormy16-protos.h (xstormy16_push_rounding): Declare. + * config/stormy16/stormy16.h (PUSH_ROUNDING): Move implementation to... + * config/stormy16/stormy16.c (xstormy16_push_rounding): ...this new + function. + * expr.c (emit_move_resolve_push): Treat the input and result + of PUSH_ROUNDING as a poly_int64. + (emit_move_complex_push, emit_single_push_insn_1): Likewise. + (emit_push_insn): Likewise. + * lra-eliminations.c (mark_not_eliminable): Likewise. + * recog.c (push_operand): Likewise. + * reload1.c (elimination_effects): Likewise. + * rtlanal.c (nonzero_bits1): Likewise. + * calls.c (store_one_arg): Likewise. Require the padding to be + known at compile time. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * expr.c (emit_single_push_insn_1): Treat mode sizes as polynomial. + Use plus_constant instead of gen_rtx_PLUS. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * auto-inc-dec.c (set_inc_state): Take the mode size as a poly_int64 + rather than an int. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * expr.c (expand_expr_real_1): Use tree_to_poly_uint64 + instead of int_size_in_bytes when handling VIEW_CONVERT_EXPRs + via stack temporaries. Treat the mode size as polynomial too. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * expr.c (expand_expr_real_2): When handling conversions involving + unions, apply tree_to_poly_uint64 to the TYPE_SIZE rather than + multiplying int_size_in_bytes by BITS_PER_UNIT. Treat GET_MODE_BISIZE + as a poly_uint64 too. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * rtlanal.c (subreg_get_info): Handle polynomial mode sizes. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * combine.c (can_change_dest_mode): Handle polynomial + REGMODE_NATURAL_SIZE. + * expmed.c (store_bit_field_1): Likewise. + * expr.c (store_constructor): Likewise. + * emit-rtl.c (validate_subreg): Operate on polynomial mode sizes + and polynomial REGMODE_NATURAL_SIZE. + (gen_lowpart_common): Likewise. + * reginfo.c (record_subregs_of_mode): Likewise. + * rtlanal.c (read_modify_subreg_p): Likewise. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * internal-fn.c (expand_vector_ubsan_overflow): Handle polynomial + numbers of elements. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * match.pd: Cope with polynomial numbers of vector elements. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * fold-const.c (fold_indirect_ref_1): Handle polynomial offsets + in a POINTER_PLUS_EXPR. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * omp-simd-clone.c (simd_clone_subparts): New function. + (simd_clone_init_simd_arrays): Use it instead of TYPE_VECTOR_SUBPARTS. + (ipa_simd_modify_function_body): Likewise. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vect-generic.c (nunits_for_known_piecewise_op): New function. + (expand_vector_piecewise): Use it instead of TYPE_VECTOR_SUBPARTS. + (expand_vector_addition, add_rshift, expand_vector_divmod): Likewise. + (expand_vector_condition, vector_element): Likewise. + (subparts_gt): New function. + (get_compute_type): Use subparts_gt. + (count_type_subparts): Delete. + (expand_vector_operations_1): Use subparts_gt instead of + count_type_subparts. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vect-data-refs.c (vect_no_alias_p): Replace with... + (vect_compile_time_alias): ...this new function. Do the calculation + on poly_ints rather than trees. + (vect_prune_runtime_alias_test_list): Update call accordingly. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vect-slp.c (vect_build_slp_tree_1): Handle polynomial + numbers of units. + (vect_schedule_slp_instance): Likewise. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vect-slp.c (vect_get_and_check_slp_defs): Reject + constant and extern definitions for variable-length vectors. + (vect_get_constant_vectors): Note that the number of units + is known to be constant. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vect-stmts.c (vectorizable_conversion): Treat the number + of units as polynomial. Choose between WIDE and NARROW based + on multiple_p. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vect-stmts.c (simd_clone_subparts): New function. + (vectorizable_simd_clone_call): Use it instead of TYPE_VECTOR_SUBPARTS. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vect-stmts.c (vectorizable_call): Treat the number of + vectors as polynomial. Use build_index_vector for + IFN_GOMP_SIMD_LANE. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vect-stmts.c (get_load_store_type): Treat the number of + units as polynomial. Reject VMAT_ELEMENTWISE and VMAT_STRIDED_SLP + for variable-length vectors. + (vectorizable_mask_load_store): Treat the number of units as + polynomial, asserting that it is constant if the condition has + already been enforced. + (vectorizable_store, vectorizable_load): Likewise. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vect-loop.c (vectorizable_live_operation): Treat the number + of units as polynomial. Punt if we can't tell at compile time + which vector contains the final result. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vect-loop.c (vectorizable_induction): Treat the number + of units as polynomial. Punt on SLP inductions. Use an integer + VEC_SERIES_EXPR for variable-length integer reductions. Use a + cast of such a series for variable-length floating-point + reductions. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * tree.h (build_index_vector): Declare. + * tree.c (build_index_vector): New function. + * tree-vect-loop.c (get_initial_defs_for_reduction): Treat the number + of units as polynomial, forcibly converting it to a constant if + vectorizable_reduction has already enforced the condition. + (vect_create_epilog_for_reduction): Likewise. Use build_index_vector + to create a {1,2,3,...} vector. + (vectorizable_reduction): Treat the number of units as polynomial. + Choose vectype_in based on the largest scalar element size rather + than the smallest number of units. Enforce the restrictions + relied on above. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vect-data-refs.c (vector_alignment_reachable_p): Treat the + number of units as polynomial. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * target.h (vector_sizes, auto_vector_sizes): New typedefs. + * target.def (autovectorize_vector_sizes): Return the vector sizes + by pointer, using vector_sizes rather than a bitmask. + * targhooks.h (default_autovectorize_vector_sizes): Update accordingly. + * targhooks.c (default_autovectorize_vector_sizes): Likewise. + * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): + Likewise. + * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise. + * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise. + * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. + * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise. + * omp-general.c (omp_max_vf): Likewise. + * omp-low.c (omp_clause_aligned_alignment): Likewise. + * optabs-query.c (can_vec_mask_load_store_p): Likewise. + * tree-vect-loop.c (vect_analyze_loop): Likewise. + * tree-vect-slp.c (vect_slp_bb): Likewise. + * doc/tm.texi: Regenerate. + * tree-vectorizer.h (current_vector_size): Change from an unsigned int + to a poly_uint64. + * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Take + the vector size as a poly_uint64 rather than an unsigned int. + (current_vector_size): Change from an unsigned int to a poly_uint64. + (get_vectype_for_scalar_type): Update accordingly. + * tree.h (build_truth_vector_type): Take the size and number of + units as a poly_uint64 rather than an unsigned int. + (build_vector_type): Add a temporary overload that takes + the number of units as a poly_uint64 rather than an unsigned int. + * tree.c (make_vector_type): Likewise. + (build_truth_vector_type): Take the number of units as a poly_uint64 + rather than an unsigned int. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * target.def (get_mask_mode): Take the number of units and length + as poly_uint64s rather than unsigned ints. + * targhooks.h (default_get_mask_mode): Update accordingly. + * targhooks.c (default_get_mask_mode): Likewise. + * config/i386/i386.c (ix86_get_mask_mode): Likewise. + * doc/tm.texi: Regenerate. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * omp-general.h (omp_max_vf): Return a poly_uint64 instead of an int. + * omp-general.c (omp_max_vf): Likewise. + * omp-expand.c (omp_adjust_chunk_size): Update call to omp_max_vf. + (expand_omp_simd): Handle polynomial safelen. + * omp-low.c (omplow_simd_context): Add a default constructor. + (omplow_simd_context::max_vf): Change from int to poly_uint64. + (lower_rec_simd_input_clauses): Update accordingly. + (lower_rec_input_clauses): Likewise. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vectorizer.h (vect_nunits_for_cost): New function. + * tree-vect-loop.c (vect_model_reduction_cost): Use it. + * tree-vect-slp.c (vect_analyze_slp_cost_1): Likewise. + (vect_analyze_slp_cost): Likewise. + * tree-vect-stmts.c (vect_model_store_cost): Likewise. + (vect_model_load_cost): Likewise. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vect-slp.c (vect_record_max_nunits, vect_build_slp_tree_1) + (vect_build_slp_tree_2, vect_build_slp_tree): Change max_nunits + from an unsigned int * to a poly_uint64_pod *. + (calculate_unrolling_factor): New function. + (vect_analyze_slp_instance): Use it. Track polynomial max_nunits. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * tree-vectorizer.h (_slp_instance::unrolling_factor): Change + from an unsigned int to a poly_uint64. + (_loop_vec_info::slp_unrolling_factor): Likewise. + (_loop_vec_info::vectorization_factor): Change from an int + to a poly_uint64. + (MAX_VECTORIZATION_FACTOR): Bump from 64 to INT_MAX. + (vect_get_num_vectors): New function. + (vect_update_max_nunits, vect_vf_for_cost): Likewise. + (vect_get_num_copies): Use vect_get_num_vectors. + (vect_analyze_data_ref_dependences): Change max_vf from an int * + to an unsigned int *. + (vect_analyze_data_refs): Change min_vf from an int * to a + poly_uint64 *. + (vect_transform_slp_perm_load): Take the vf as a poly_uint64 rather + than an unsigned HOST_WIDE_INT. + * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr) + (vect_analyze_data_ref_dependence): Change max_vf from an int * + to an unsigned int *. + (vect_analyze_data_ref_dependences): Likewise. + (vect_compute_data_ref_alignment): Handle polynomial vf. + (vect_enhance_data_refs_alignment): Likewise. + (vect_prune_runtime_alias_test_list): Likewise. + (vect_shift_permute_load_chain): Likewise. + (vect_supportable_dr_alignment): Likewise. + (dependence_distance_ge_vf): Take the vectorization factor as a + poly_uint64 rather than an unsigned HOST_WIDE_INT. + (vect_analyze_data_refs): Change min_vf from an int * to a + poly_uint64 *. + * tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Take + vfm1 as a poly_uint64 rather than an int. Make the same change + for the returned bound_scalar. + (vect_gen_vector_loop_niters): Handle polynomial vf. + (vect_do_peeling): Likewise. Update call to + vect_gen_scalar_loop_niters and handle polynomial bound_scalars. + (vect_gen_vector_loop_niters_mult_vf): Assert that the vf must + be constant. + * tree-vect-loop.c (vect_determine_vectorization_factor) + (vect_update_vf_for_slp, vect_analyze_loop_2): Handle polynomial vf. + (vect_get_known_peeling_cost): Likewise. + (vect_estimate_min_profitable_iters, vectorizable_reduction): Likewise. + (vect_worthwhile_without_simd_p, vectorizable_induction): Likewise. + (vect_transform_loop): Likewise. Use the lowest possible VF when + updating the upper bounds of the loop. + (vect_min_worthwhile_factor): Make static. Return an unsigned int + rather than an int. + * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Cope with + polynomial unroll factors. + (vect_analyze_slp_cost_1, vect_analyze_slp_instance): Likewise. + (vect_make_slp_decision): Likewise. + (vect_supported_load_permutation_p): Likewise, and polynomial + vf too. + (vect_analyze_slp_cost): Handle polynomial vf. + (vect_slp_analyze_node_operations): Likewise. + (vect_slp_analyze_bb_1): Likewise. + (vect_transform_slp_perm_load): Take the vf as a poly_uint64 rather + than an unsigned HOST_WIDE_INT. + * tree-vect-stmts.c (vectorizable_simd_clone_call, vectorizable_store) + (vectorizable_load): Handle polynomial vf. + * tree-vectorizer.c (simduid_to_vf::vf): Change from an int to + a poly_uint64. + (adjust_simduid_builtins, shrink_simd_arrays): Update accordingly. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * match.pd: Handle bit operations involving three constants + and try to fold one pair. + +2018-01-03 Richard Sandiford + + * tree-vect-loop-manip.c: Include gimple-fold.h. + (slpeel_make_loop_iterate_ntimes): Add step, final_iv and + niters_maybe_zero parameters. Handle other cases besides a step of 1. + (vect_gen_vector_loop_niters): Add a step_vector_ptr parameter. + Add a path that uses a step of VF instead of 1, but disable it + for now. + (vect_do_peeling): Add step_vector, niters_vector_mult_vf_var + and niters_no_overflow parameters. Update calls to + slpeel_make_loop_iterate_ntimes and vect_gen_vector_loop_niters. + Create a new SSA name if the latter choses to use a ste other + than zero, and return it via niters_vector_mult_vf_var. + * tree-vect-loop.c (vect_transform_loop): Update calls to + vect_do_peeling, vect_gen_vector_loop_niters and + slpeel_make_loop_iterate_ntimes. + * tree-vectorizer.h (slpeel_make_loop_iterate_ntimes, vect_do_peeling) + (vect_gen_vector_loop_niters): Update declarations after above changes. + +2018-01-02 Michael Meissner + + * config/rs6000/rs6000.md (floor2): Add support for IEEE + 128-bit round to integer instructions. + (ceil2): Likewise. + (btrunc2): Likewise. + (round2): Likewise. + +2018-01-02 Aaron Sawdey + + * config/rs6000/rs6000-string.c (expand_block_move): Allow the use of + unaligned VSX load/store on P8/P9. + (expand_block_clear): Allow the use of unaligned VSX + load/store on P8/P9. + +2018-01-02 Bill Schmidt + + * config/rs6000/rs6000-p8swap.c (swap_feeds_both_load_and_store): + New function. + (rs6000_analyze_swaps): Mark a web unoptimizable if it contains a + swap associated with both a load and a store. + +2018-01-02 Andrew Waterman + + * config/riscv/linux.h (ICACHE_FLUSH_FUNC): New. + * config/riscv/riscv.md (clear_cache): Use it. + +2018-01-02 Artyom Skrobov + + * web.c: Remove out-of-date comment. + +2018-01-02 Richard Sandiford + + * expr.c (fixup_args_size_notes): Check that any existing + REG_ARGS_SIZE notes are correct, and don't try to re-add them. + (emit_single_push_insn_1): Move stack_pointer_delta adjustment to... + (emit_single_push_insn): ...here. + +2018-01-02 Richard Sandiford + + * rtl.h (CONST_VECTOR_ELT): Redefine to const_vector_elt. + (const_vector_encoded_nelts): New function. + (CONST_VECTOR_NUNITS): Redefine to use GET_MODE_NUNITS. + (const_vector_int_elt, const_vector_elt): Declare. + * emit-rtl.c (const_vector_int_elt_1): New function. + (const_vector_elt): Likewise. + * simplify-rtx.c (simplify_immed_subreg): Avoid taking the address + of CONST_VECTOR_ELT. + +2018-01-02 Richard Sandiford + + * expr.c: Include rtx-vector-builder.h. + (const_vector_mask_from_tree): Use rtx_vector_builder and operate + directly on the tree encoding. + (const_vector_from_tree): Likewise. + * optabs.c: Include rtx-vector-builder.h. + (expand_vec_perm_var): Use rtx_vector_builder and create a repeating + sequence of "u" values. + * vec-perm-indices.c: Include rtx-vector-builder.h. + (vec_perm_indices_to_rtx): Use rtx_vector_builder and operate + directly on the vec_perm_indices encoding. + +2018-01-02 Richard Sandiford + + * doc/rtl.texi (const_vector): Describe new encoding scheme. + * Makefile.in (OBJS): Add rtx-vector-builder.o. + * rtx-vector-builder.h: New file. + * rtx-vector-builder.c: Likewise. + * rtl.h (rtx_def::u2): Add a const_vector field. + (CONST_VECTOR_NPATTERNS): New macro. + (CONST_VECTOR_NELTS_PER_PATTERN): Likewise. + (CONST_VECTOR_DUPLICATE_P): Likewise. + (CONST_VECTOR_STEPPED_P): Likewise. + (CONST_VECTOR_ENCODED_ELT): Likewise. + (const_vec_duplicate_p): Check for a duplicated vector encoding. + (unwrap_const_vec_duplicate): Likewise. + (const_vec_series_p): Check for a non-duplicated vector encoding. + Say that the function only returns true for integer vectors. + * emit-rtl.c: Include rtx-vector-builder.h. + (gen_const_vec_duplicate_1): Delete. + (gen_const_vector): Call gen_const_vec_duplicate instead of + gen_const_vec_duplicate_1. + (const_vec_series_p_1): Operate directly on the CONST_VECTOR encoding. + (gen_const_vec_duplicate): Use rtx_vector_builder. + (gen_const_vec_series): Likewise. + (gen_rtx_CONST_VECTOR): Likewise. + * config/powerpcspe/powerpcspe.c: Include rtx-vector-builder.h. + (swap_const_vector_halves): Take an rtx pointer rather than rtx. + Build a new vector rather than modifying a CONST_VECTOR in-place. + (handle_special_swappables): Update call accordingly. + * config/rs6000/rs6000-p8swap.c: Include rtx-vector-builder.h. + (swap_const_vector_halves): Take an rtx pointer rather than rtx. + Build a new vector rather than modifying a CONST_VECTOR in-place. + (handle_special_swappables): Update call accordingly. + +2018-01-02 Richard Sandiford + + * simplify-rtx.c (simplify_const_binary_operation): Use + CONST_VECTOR_ELT instead of XVECEXP. + +2018-01-02 Richard Sandiford + + * tree-cfg.c (verify_gimple_assign_ternary): Allow the size of + the selector elements to be different from the data elements + if the selector is a VECTOR_CST. + * tree-vect-stmts.c (vect_gen_perm_mask_any): Use a vector of + ssizetype for the selector. + +2018-01-02 Richard Sandiford + + * optabs.c (shift_amt_for_vec_perm_mask): Try using series_p + before testing each element individually. + * tree-vect-generic.c (lower_vec_perm): Likewise. + +2018-01-02 Richard Sandiford + + * selftest.h (selftest::vec_perm_indices_c_tests): Declare. + * selftest-run-tests.c (selftest::run_tests): Call it. + * vector-builder.h (vector_builder::operator ==): New function. + (vector_builder::operator !=): Likewise. + * vec-perm-indices.h (vec_perm_indices::series_p): Declare. + (vec_perm_indices::all_from_input_p): New function. + * vec-perm-indices.c (vec_perm_indices::series_p): Likewise. + (test_vec_perm_12, selftest::vec_perm_indices_c_tests): Likewise. + * fold-const.c (fold_ternary_loc): Use tree_to_vec_perm_builder + instead of reading the VECTOR_CST directly. Detect whether both + vector inputs are the same before constructing the vec_perm_indices, + and update the number of inputs argument accordingly. Use the + utility functions added above. Only construct sel2 if we need to. + +2018-01-02 Richard Sandiford + + * optabs.c (expand_vec_perm_var): Use an explicit encoding for + the broadcast of the low byte. + (expand_mult_highpart): Use an explicit encoding for the permutes. + * optabs-query.c (can_mult_highpart_p): Likewise. + * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise. + * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. + (vectorizable_bswap): Likewise. + * tree-vect-data-refs.c (vect_grouped_store_supported): Use an + explicit encoding for the power-of-2 permutes. + (vect_permute_store_chain): Likewise. + (vect_grouped_load_supported): Likewise. + (vect_permute_load_chain): Likewise. + +2018-01-02 Richard Sandiford + + * vec-perm-indices.h (vec_perm_indices_to_tree): Declare. + * vec-perm-indices.c (vec_perm_indices_to_tree): New function. + * tree-ssa-forwprop.c (simplify_vector_constructor): Use it. + * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise. + * tree-vect-stmts.c (vectorizable_bswap): Likewise. + (vect_gen_perm_mask_any): Likewise. + +2018-01-02 Richard Sandiford + + * int-vector-builder.h: New file. + * vec-perm-indices.h: Include int-vector-builder.h. + (vec_perm_indices): Redefine as an int_vector_builder. + (auto_vec_perm_indices): Delete. + (vec_perm_builder): Redefine as a stand-alone class. + (vec_perm_indices::vec_perm_indices): New function. + (vec_perm_indices::clamp): Likewise. + * vec-perm-indices.c: Include fold-const.h and tree-vector-builder.h. + (vec_perm_indices::new_vector): New function. + (vec_perm_indices::new_expanded_vector): Update for new + vec_perm_indices class. + (vec_perm_indices::rotate_inputs): New function. + (vec_perm_indices::all_in_range_p): Operate directly on the + encoded form, without computing elided elements. + (tree_to_vec_perm_builder): Operate directly on the VECTOR_CST + encoding. Update for new vec_perm_indices class. + * optabs.c (expand_vec_perm_const): Create a vec_perm_indices for + the given vec_perm_builder. + (expand_vec_perm_var): Update vec_perm_builder constructor. + (expand_mult_highpart): Use vec_perm_builder instead of + auto_vec_perm_indices. + * optabs-query.c (can_mult_highpart_p): Use vec_perm_builder and + vec_perm_indices instead of auto_vec_perm_indices. Use a single + or double series encoding as appropriate. + * fold-const.c (fold_ternary_loc): Use vec_perm_builder and + vec_perm_indices instead of auto_vec_perm_indices. + * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. + * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. + (vect_permute_store_chain): Likewise. + (vect_grouped_load_supported): Likewise. + (vect_permute_load_chain): Likewise. + (vect_shift_permute_load_chain): Likewise. + * tree-vect-slp.c (vect_build_slp_tree_1): Likewise. + (vect_transform_slp_perm_load): Likewise. + (vect_schedule_slp_instance): Likewise. + * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. + (vectorizable_mask_load_store): Likewise. + (vectorizable_bswap): Likewise. + (vectorizable_store): Likewise. + (vectorizable_load): Likewise. + * tree-vect-generic.c (lower_vec_perm): Use vec_perm_builder and + vec_perm_indices instead of auto_vec_perm_indices. Use + tree_to_vec_perm_builder to read the vector from a tree. + * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Take a + vec_perm_builder instead of a vec_perm_indices. + (have_whole_vector_shift): Use vec_perm_builder and + vec_perm_indices instead of auto_vec_perm_indices. Leave the + truncation to calc_vec_perm_mask_for_shift. + (vect_create_epilog_for_reduction): Likewise. + * config/aarch64/aarch64.c (expand_vec_perm_d::perm): Change + from auto_vec_perm_indices to vec_perm_indices. + (aarch64_expand_vec_perm_const_1): Use rotate_inputs on d.perm + instead of changing individual elements. + (aarch64_vectorize_vec_perm_const): Use new_vector to install + the vector in d.perm. + * config/arm/arm.c (expand_vec_perm_d::perm): Change + from auto_vec_perm_indices to vec_perm_indices. + (arm_expand_vec_perm_const_1): Use rotate_inputs on d.perm + instead of changing individual elements. + (arm_vectorize_vec_perm_const): Use new_vector to install + the vector in d.perm. + * config/powerpcspe/powerpcspe.c (rs6000_expand_extract_even): + Update vec_perm_builder constructor. + (rs6000_expand_interleave): Likewise. + * config/rs6000/rs6000.c (rs6000_expand_extract_even): Likewise. + (rs6000_expand_interleave): Likewise. + +2018-01-02 Richard Sandiford + + * optabs-query.c (can_vec_perm_var_p): Check whether lowering + to qimode could truncate the indices. + * optabs.c (expand_vec_perm_var): Likewise. + +2018-01-02 Richard Sandiford + + * Makefile.in (OBJS): Add vec-perm-indices.o. + * vec-perm-indices.h: New file. + * vec-perm-indices.c: Likewise. + * target.h (vec_perm_indices): Replace with a forward class + declaration. + (auto_vec_perm_indices): Move to vec-perm-indices.h. + * optabs.h: Include vec-perm-indices.h. + (expand_vec_perm): Delete. + (selector_fits_mode_p, expand_vec_perm_var): Declare. + (expand_vec_perm_const): Declare. + * target.def (vec_perm_const_ok): Replace with... + (vec_perm_const): ...this new hook. + * doc/tm.texi.in (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Replace with... + (TARGET_VECTORIZE_VEC_PERM_CONST): ...this new hook. + * doc/tm.texi: Regenerate. + * optabs.def (vec_perm_const): Delete. + * doc/md.texi (vec_perm_const): Likewise. + (vec_perm): Refer to TARGET_VECTORIZE_VEC_PERM_CONST. + * expr.c (expand_expr_real_2): Use expand_vec_perm_const rather than + expand_vec_perm for constant permutation vectors. Assert that + the mode of variable permutation vectors is the integer equivalent + of the mode that is being permuted. + * optabs-query.h (selector_fits_mode_p): Declare. + * optabs-query.c: Include vec-perm-indices.h. + (selector_fits_mode_p): New function. + (can_vec_perm_const_p): Check whether targetm.vectorize.vec_perm_const + is defined, instead of checking whether the vec_perm_const_optab + exists. Use targetm.vectorize.vec_perm_const instead of + targetm.vectorize.vec_perm_const_ok. Check whether the indices + fit in the vector mode before using a variable permute. + * optabs.c (shift_amt_for_vec_perm_mask): Take a mode and a + vec_perm_indices instead of an rtx. + (expand_vec_perm): Replace with... + (expand_vec_perm_const): ...this new function. Take the selector + as a vec_perm_indices rather than an rtx. Also take the mode of + the selector. Update call to shift_amt_for_vec_perm_mask. + Use targetm.vectorize.vec_perm_const instead of vec_perm_const_optab. + Use vec_perm_indices::new_expanded_vector to expand the original + selector into bytes. Check whether the indices fit in the vector + mode before using a variable permute. + (expand_vec_perm_var): Make global. + (expand_mult_highpart): Use expand_vec_perm_const. + * fold-const.c: Includes vec-perm-indices.h. + * tree-ssa-forwprop.c: Likewise. + * tree-vect-data-refs.c: Likewise. + * tree-vect-generic.c: Likewise. + * tree-vect-loop.c: Likewise. + * tree-vect-slp.c: Likewise. + * tree-vect-stmts.c: Likewise. + * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm_const): + Delete. + * config/aarch64/aarch64-simd.md (vec_perm_const): Delete. + * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const) + (aarch64_vectorize_vec_perm_const_ok): Fuse into... + (aarch64_vectorize_vec_perm_const): ...this new function. + (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete. + (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. + * config/arm/arm-protos.h (arm_expand_vec_perm_const): Delete. + * config/arm/vec-common.md (vec_perm_const): Delete. + * config/arm/arm.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete. + (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. + (arm_expand_vec_perm_const, arm_vectorize_vec_perm_const_ok): Merge + into... + (arm_vectorize_vec_perm_const): ...this new function. Explicitly + check for NEON modes. + * config/i386/i386-protos.h (ix86_expand_vec_perm_const): Delete. + * config/i386/sse.md (VEC_PERM_CONST, vec_perm_const): Delete. + * config/i386/i386.c (ix86_expand_vec_perm_const_1): Update comment. + (ix86_expand_vec_perm_const, ix86_vectorize_vec_perm_const_ok): Merge + into... + (ix86_vectorize_vec_perm_const): ...this new function. Incorporate + the old VEC_PERM_CONST conditions. + * config/ia64/ia64-protos.h (ia64_expand_vec_perm_const): Delete. + * config/ia64/vect.md (vec_perm_const): Delete. + * config/ia64/ia64.c (ia64_expand_vec_perm_const) + (ia64_vectorize_vec_perm_const_ok): Merge into... + (ia64_vectorize_vec_perm_const): ...this new function. + * config/mips/loongson.md (vec_perm_const): Delete. + * config/mips/mips-msa.md (vec_perm_const): Delete. + * config/mips/mips-ps-3d.md (vec_perm_constv2sf): Delete. + * config/mips/mips-protos.h (mips_expand_vec_perm_const): Delete. + * config/mips/mips.c (mips_expand_vec_perm_const) + (mips_vectorize_vec_perm_const_ok): Merge into... + (mips_vectorize_vec_perm_const): ...this new function. + * config/powerpcspe/altivec.md (vec_perm_constv16qi): Delete. + * config/powerpcspe/paired.md (vec_perm_constv2sf): Delete. + * config/powerpcspe/spe.md (vec_perm_constv2si): Delete. + * config/powerpcspe/vsx.md (vec_perm_const): Delete. + * config/powerpcspe/powerpcspe-protos.h (altivec_expand_vec_perm_const) + (rs6000_expand_vec_perm_const): Delete. + * config/powerpcspe/powerpcspe.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): + Delete. + (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. + (altivec_expand_vec_perm_const_le): Take each operand individually. + Operate on constant selectors rather than rtxes. + (altivec_expand_vec_perm_const): Likewise. Update call to + altivec_expand_vec_perm_const_le. + (rs6000_expand_vec_perm_const): Delete. + (rs6000_vectorize_vec_perm_const_ok): Delete. + (rs6000_vectorize_vec_perm_const): New function. + (rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of + an element count and rtx array. + (rs6000_expand_extract_even): Update call accordingly. + (rs6000_expand_interleave): Likewise. + * config/rs6000/altivec.md (vec_perm_constv16qi): Delete. + * config/rs6000/paired.md (vec_perm_constv2sf): Delete. + * config/rs6000/vsx.md (vec_perm_const): Delete. + * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_const) + (rs6000_expand_vec_perm_const): Delete. + * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete. + (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. + (altivec_expand_vec_perm_const_le): Take each operand individually. + Operate on constant selectors rather than rtxes. + (altivec_expand_vec_perm_const): Likewise. Update call to + altivec_expand_vec_perm_const_le. + (rs6000_expand_vec_perm_const): Delete. + (rs6000_vectorize_vec_perm_const_ok): Delete. + (rs6000_vectorize_vec_perm_const): New function. Remove stray + reference to the SPE evmerge intructions. + (rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of + an element count and rtx array. + (rs6000_expand_extract_even): Update call accordingly. + (rs6000_expand_interleave): Likewise. + * config/sparc/sparc.md (vec_perm_constv8qi): Delete in favor of... + * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): ...this + new function. + (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. + +2018-01-02 Richard Sandiford + + * optabs.c (expand_vec_perm_1): Assert that SEL has an integer + vector mode and that that mode matches the mode of the data + being permuted. + (expand_vec_perm): Split handling of non-CONST_VECTOR selectors + out into expand_vec_perm_var. Do all CONST_VECTOR handling here, + directly using expand_vec_perm_1 when forcing selectors into + registers. + (expand_vec_perm_var): New function, split out from expand_vec_perm. + +2018-01-02 Richard Sandiford + + * optabs-query.h (can_vec_perm_p): Delete. + (can_vec_perm_var_p, can_vec_perm_const_p): Declare. + * optabs-query.c (can_vec_perm_p): Split into... + (can_vec_perm_var_p, can_vec_perm_const_p): ...these two functions. + (can_mult_highpart_p): Use can_vec_perm_const_p to test whether a + particular selector is valid. + * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. + * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. + (vect_grouped_load_supported): Likewise. + (vect_shift_permute_load_chain): Likewise. + * tree-vect-slp.c (vect_build_slp_tree_1): Likewise. + (vect_transform_slp_perm_load): Likewise. + * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. + (vectorizable_bswap): Likewise. + (vect_gen_perm_mask_checked): Likewise. + * fold-const.c (fold_ternary_loc): Likewise. Don't take + implementations of variable permutation vectors into account + when deciding which selector to use. + * tree-vect-loop.c (have_whole_vector_shift): Don't check whether + vec_perm_const_optab is supported; instead use can_vec_perm_const_p + with a false third argument. + * tree-vect-generic.c (lower_vec_perm): Use can_vec_perm_const_p + to test whether the constant selector is valid and can_vec_perm_var_p + to test whether a variable selector is valid. + +2018-01-02 Richard Sandiford + + * optabs-query.h (can_vec_perm_p): Take a const vec_perm_indices *. + * optabs-query.c (can_vec_perm_p): Likewise. + * fold-const.c (fold_vec_perm): Take a const vec_perm_indices & + instead of vec_perm_indices. + * tree-vectorizer.h (vect_gen_perm_mask_any): Likewise, + (vect_gen_perm_mask_checked): Likewise, + * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise, + (vect_gen_perm_mask_checked): Likewise, + +2018-01-02 Richard Sandiford + + * optabs-query.h (qimode_for_vec_perm): Declare. + * optabs-query.c (can_vec_perm_p): Split out qimode search to... + (qimode_for_vec_perm): ...this new function. + * optabs.c (expand_vec_perm): Use qimode_for_vec_perm. + +2018-01-02 Aaron Sawdey + + * rtlanal.c (canonicalize_condition): Return 0 if final rtx + does not have a conditional at the top. + +2018-01-02 Richard Biener + + * ipa-inline.c (big_speedup_p): Fix expression. + +2018-01-02 Jan Hubicka + + PR target/81616 + * config/i386/x86-tune-costs.h: Increase cost of integer load costs + for generic 4->6. + +2018-01-02 Jan Hubicka + + PR target/81616 + Generic tuning. + * x86-tune-costs.h (generic_cost): Reduce cost of FDIV 20->17, + cost of sqrt 20->14, DIVSS 18->13, DIVSD 32->17, SQRtSS 30->14 + and SQRTsD 58->18, cond_not_taken_branch_cost. 2->1. Increase + cond_taken_branch_cost 3->4. + +2018-01-01 Jakub Jelinek + + PR tree-optimization/83581 + * tree-loop-distribution.c (pass_loop_distribution::execute): Return + TODO_cleanup_cfg if any changes have been made. + + PR middle-end/83608 + * expr.c (store_expr_with_bounds): Use simplify_gen_subreg instead of + convert_modes if target mode has the right side, but different mode + class. + + PR middle-end/83609 + * expr.c (expand_assignment): Fix up a typo in simplify_gen_subreg + last argument when extracting from CONCAT. If either from_real or + from_imag is NULL, use expansion through memory. If result is not + a CONCAT and simplify_gen_subreg fails, try to simplify_gen_subreg + the parts directly to inner mode, if even that fails, use expansion + through memory. + + PR middle-end/83623 + * expmed.c (expand_shift_1): For 2-byte rotates by BITS_PER_UNIT, + check for bswap in mode rather than HImode and use that in expand_unop + too. + +Copyright (C) 2018 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cif-code.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/cif-code.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cif-code.def 2018-11-29 22:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cif-code.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,7 +1,7 @@ /* This file contains the definitions of the cgraph_inline_failed_t enums used in GCC. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Doug Kwan This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/collect2-aix.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/collect2-aix.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/collect2-aix.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/collect2-aix.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* AIX cross support for collect2. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/collect2-aix.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/collect2-aix.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/collect2-aix.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/collect2-aix.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* AIX cross support for collect2. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/collect2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/collect2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/collect2.c 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/collect2.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Collect static initialization info into data structures that can be traversed by C++ initialization and finalization routines. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Contributed by Chris Smith (csmith@convex.com). Heavily modified by Michael Meissner (meissner@cygnus.com), Per Bothner (bothner@cygnus.com), and John Gilmore (gnu@cygnus.com). @@ -30,6 +30,8 @@ #include "tm.h" #include "filenames.h" #include "file-find.h" +#include "simple-object.h" +#include "lto-section-names.h" /* TARGET_64BIT may be defined to use driver specific functionality. */ #undef TARGET_64BIT @@ -203,8 +205,8 @@ static int shared_obj; /* true if -shared */ static int static_obj; /* true if -static */ -static const char *c_file; /* .c for constructor/destructor list. */ -static const char *o_file; /* .o for constructor/destructor list. */ +static char *c_file; /* .c for constructor/destructor list. */ +static char *o_file; /* .o for constructor/destructor list. */ #ifdef COLLECT_EXPORT_LIST static const char *export_file; /* .x for AIX export list. */ #endif @@ -804,7 +806,9 @@ /* Run the linker again, this time replacing the object files optimized by the LTO with the temporary file generated by the LTO. */ fork_execute ("ld", out_lto_ld_argv, HAVE_GNU_LD && at_file_supplied); - post_ld_pass (true); + /* We assume that temp files were created, and therefore we need to take + that into account (maybe run dsymutil). */ + post_ld_pass (/*temp_file*/true); free (lto_ld_argv); maybe_unlink_list (lto_o_files); @@ -814,10 +818,11 @@ /* Our caller is relying on us to do the link even though there is no LTO back end work to be done. */ fork_execute ("ld", lto_ld_argv, HAVE_GNU_LD && at_file_supplied); - post_ld_pass (false); + /* No LTO objects were found, so no new temp file. */ + post_ld_pass (/*temp_file*/false); } else - post_ld_pass (true); + post_ld_pass (false); /* No LTO objects were found, no temp file. */ } /* Main program. */ @@ -981,13 +986,21 @@ object = CONST_CAST2 (const char **, char **, object_lst); #ifdef DEBUG - debug = 1; + debug = true; #endif - /* Parse command line early for instances of -debug. This allows - the debug flag to be set before functions like find_a_file() - are called. We also look for the -flto or -flto-partition=none flag to know - what LTO mode we are in. */ + save_temps = false; + verbose = false; + +#ifndef DEFAULT_A_OUT_NAME + output_file = "a.out"; +#else + output_file = DEFAULT_A_OUT_NAME; +#endif + + /* Parse command line / environment for flags we want early. + This allows the debug flag to be set before functions like find_a_file() + are called. */ { bool no_partition = false; @@ -995,8 +1008,6 @@ { if (! strcmp (argv[i], "-debug")) debug = true; - else if (! strcmp (argv[i], "-flto-partition=none")) - no_partition = true; else if (!strncmp (argv[i], "-fno-lto", 8)) lto_mode = LTO_MODE_NONE; else if (! strcmp (argv[i], "-plugin")) @@ -1009,8 +1020,17 @@ selected_linker = USE_BFD_LD; else if (strcmp (argv[i], "-fuse-ld=gold") == 0) selected_linker = USE_GOLD_LD; - else if (strcmp (argv[i], "-fuse-ld=lld") == 0) - selected_linker = USE_LLD_LD; + else if (strcmp (argv[i], "-fuse-ld=lld") == 0) + selected_linker = USE_LLD_LD; + else if (strncmp (argv[i], "-o", 2) == 0) + { + /* Parse the output filename if it's given so that we can make + meaningful temp filenames. */ + if (argv[i][2] == '\0') + output_file = argv[i+1]; + else + output_file = &argv[i][2]; + } #ifdef COLLECT_EXPORT_LIST /* These flags are position independent, although their order @@ -1031,34 +1051,41 @@ aixlazy_flag = 1; #endif } - verbose = debug; - find_file_set_debug (debug); - if (use_plugin) - lto_mode = LTO_MODE_NONE; - if (no_partition && lto_mode == LTO_MODE_WHOPR) - lto_mode = LTO_MODE_LTO; - } - -#ifndef DEFAULT_A_OUT_NAME - output_file = "a.out"; -#else - output_file = DEFAULT_A_OUT_NAME; -#endif - obstack_begin (&temporary_obstack, 0); - temporary_firstobj = (char *) obstack_alloc (&temporary_obstack, 0); + obstack_begin (&temporary_obstack, 0); + temporary_firstobj = (char *) obstack_alloc (&temporary_obstack, 0); #ifndef HAVE_LD_DEMANGLE current_demangling_style = auto_demangling; #endif - p = getenv ("COLLECT_GCC_OPTIONS"); - while (p && *p) - { - const char *q = extract_string (&p); - if (*q == '-' && (q[1] == 'm' || q[1] == 'f')) - num_c_args++; + + /* Now pick up any flags we want early from COLLECT_GCC_OPTIONS + The LTO options are passed here as are other options that might + be unsuitable for ld (e.g. -save-temps). */ + p = getenv ("COLLECT_GCC_OPTIONS"); + while (p && *p) + { + const char *q = extract_string (&p); + if (*q == '-' && (q[1] == 'm' || q[1] == 'f')) + num_c_args++; + if (strncmp (q, "-flto-partition=none", 20) == 0) + no_partition = true; + else if (strncmp (q, "-fno-lto", 8) == 0) + lto_mode = LTO_MODE_NONE; + else if (strncmp (q, "-save-temps", 11) == 0) + /* FIXME: Honour =obj. */ + save_temps = true; } - obstack_free (&temporary_obstack, temporary_firstobj); + obstack_free (&temporary_obstack, temporary_firstobj); + + verbose = verbose || debug; + save_temps = save_temps || debug; + find_file_set_debug (debug); + if (use_plugin) + lto_mode = LTO_MODE_NONE; + if (no_partition && lto_mode == LTO_MODE_WHOPR) + lto_mode = LTO_MODE_LTO; + } /* -fno-profile-arcs -fno-test-coverage -fno-branch-probabilities -fno-exceptions -w -fno-whole-program */ @@ -1208,8 +1235,22 @@ *ld1++ = *ld2++ = ld_file_name; /* Make temp file names. */ - c_file = make_temp_file (".c"); - o_file = make_temp_file (".o"); + if (save_temps) + { + c_file = (char *) xmalloc (strlen (output_file) + + sizeof (".cdtor.c") + 1); + strcpy (c_file, output_file); + strcat (c_file, ".cdtor.c"); + o_file = (char *) xmalloc (strlen (output_file) + + sizeof (".cdtor.o") + 1); + strcpy (o_file, output_file); + strcat (o_file, ".cdtor.o"); + } + else + { + c_file = make_temp_file (".cdtor.c"); + o_file = make_temp_file (".cdtor.o"); + } #ifdef COLLECT_EXPORT_LIST export_file = make_temp_file (".x"); #endif @@ -1218,6 +1259,7 @@ ldout = make_temp_file (".ld"); lderrout = make_temp_file (".le"); } + /* Build the command line to compile the ctor/dtor list. */ *c_ptr++ = c_file_name; *c_ptr++ = "-x"; *c_ptr++ = "c"; @@ -1673,10 +1715,8 @@ if (lto_mode != LTO_MODE_NONE) maybe_run_lto_and_relink (ld1_argv, object_lst, object, false); else - post_ld_pass (false); + post_ld_pass (/*temp_file*/false); - maybe_unlink (c_file); - maybe_unlink (o_file); return 0; } } @@ -1745,7 +1785,7 @@ #ifdef COLLECT_EXPORT_LIST maybe_unlink (export_file); #endif - post_ld_pass (false); + post_ld_pass (/*temp_file*/false); maybe_unlink (c_file); maybe_unlink (o_file); @@ -1839,7 +1879,7 @@ else { fork_execute ("ld", ld2_argv, HAVE_GNU_LD && at_file_supplied); - post_ld_pass (false); + post_ld_pass (/*temp_file*/false); } /* Let scan_prog_file do any final mods (OSF/rose needs this for @@ -1864,9 +1904,10 @@ void maybe_unlink (const char *file) { - if (debug) + if (save_temps && file_exists (file)) { - notice ("[Leaving %s]\n", file); + if (verbose) + notice ("[Leaving %s]\n", file); return; } @@ -2296,38 +2337,52 @@ /* Check to make sure the file is an LTO object file. */ +static int +has_lto_section (void *data, const char *name ATTRIBUTE_UNUSED, + off_t offset ATTRIBUTE_UNUSED, + off_t length ATTRIBUTE_UNUSED) +{ + int *found = (int *) data; + + if (strncmp (name, LTO_SECTION_NAME_PREFIX, + sizeof (LTO_SECTION_NAME_PREFIX) - 1) != 0) + { + if (strncmp (name, OFFLOAD_SECTION_NAME_PREFIX, + sizeof (OFFLOAD_SECTION_NAME_PREFIX) - 1) != 0) + return 1; + } + + *found = 1; + + /* Stop iteration. */ + return 0; +} + static bool -maybe_lto_object_file (const char *prog_name) +is_lto_object_file (const char *prog_name) { - FILE *f; - unsigned char buf[4]; - int i; + const char *errmsg; + int err; + int found = 0; + off_t inoff = 0; + int infd = open (prog_name, O_RDONLY | O_BINARY); - static unsigned char elfmagic[4] = { 0x7f, 'E', 'L', 'F' }; - static unsigned char coffmagic[2] = { 0x4c, 0x01 }; - static unsigned char coffmagic_x64[2] = { 0x64, 0x86 }; - static unsigned char machomagic[4][4] = { - { 0xcf, 0xfa, 0xed, 0xfe }, - { 0xce, 0xfa, 0xed, 0xfe }, - { 0xfe, 0xed, 0xfa, 0xcf }, - { 0xfe, 0xed, 0xfa, 0xce } - }; + if (infd == -1) + return false; - f = fopen (prog_name, "rb"); - if (f == NULL) + simple_object_read *inobj = simple_object_start_read (infd, inoff, + LTO_SEGMENT_NAME, + &errmsg, &err); + if (!inobj) return false; - if (fread (buf, sizeof (buf), 1, f) != 1) - buf[0] = 0; - fclose (f); - - if (memcmp (buf, elfmagic, sizeof (elfmagic)) == 0 - || memcmp (buf, coffmagic, sizeof (coffmagic)) == 0 - || memcmp (buf, coffmagic_x64, sizeof (coffmagic_x64)) == 0) + + errmsg = simple_object_find_sections (inobj, has_lto_section, + (void *) &found, &err); + if (! errmsg && found) return true; - for (i = 0; i < 4; i++) - if (memcmp (buf, machomagic[i], sizeof (machomagic[i])) == 0) - return true; + if (errmsg) + fatal_error (0, "%s: %s\n", errmsg, xstrerror (err)); return false; } @@ -2350,7 +2405,6 @@ int err; char *p, buf[1024]; FILE *inf; - int found_lto = 0; if (which_pass == PASS_SECOND) return; @@ -2358,8 +2412,13 @@ /* LTO objects must be in a known format. This check prevents us from accepting an archive containing LTO objects, which gcc cannot currently handle. */ - if (which_pass == PASS_LTOINFO && !maybe_lto_object_file (prog_name)) - return; + if (which_pass == PASS_LTOINFO) + { + if(is_lto_object_file (prog_name)) { + add_lto_object (<o_objects, prog_name); + } + return; + } /* If we do not have an `nm', complain. */ if (nm_file_name == 0) @@ -2414,12 +2473,7 @@ fatal_error (input_location, "can't open nm output: %m"); if (debug) - { - if (which_pass == PASS_LTOINFO) - fprintf (stderr, "\nnm output with LTO info marker symbol.\n"); - else - fprintf (stderr, "\nnm output with constructors/destructors.\n"); - } + fprintf (stderr, "\nnm output with constructors/destructors.\n"); /* Read each line of nm output. */ while (fgets (buf, sizeof buf, inf) != (char *) 0) @@ -2430,30 +2484,6 @@ if (debug) fprintf (stderr, "\t%s\n", buf); - if (which_pass == PASS_LTOINFO) - { - if (found_lto) - continue; - - /* Look for the LTO info marker symbol, and add filename to - the LTO objects list if found. */ - for (p = buf; (ch = *p) != '\0' && ch != '\n'; p++) - if (ch == ' ' && p[1] == '_' && p[2] == '_' - && (strncmp (p + (p[3] == '_' ? 2 : 1), "__gnu_lto_v1", 12) == 0) - && ISSPACE (p[p[3] == '_' ? 14 : 13])) - { - add_lto_object (<o_objects, prog_name); - - /* We need to read all the input, so we can't just - return here. But we can avoid useless work. */ - found_lto = 1; - - break; - } - - continue; - } - /* If it contains a constructor or destructor name, add the name to the appropriate list unless this is a kind of symbol we're not supposed to even consider. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/collect2.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/collect2.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/collect2.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/collect2.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for collect/tlink routines. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/collect-utils.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/collect-utils.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/collect-utils.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/collect-utils.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Utility functions used by tools like collect2 and lto-wrapper. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/collect-utils.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/collect-utils.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/collect-utils.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/collect-utils.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Utility functions used by tools like collect2 and lto-wrapper. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/color-macros.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/color-macros.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/color-macros.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/color-macros.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Terminal color manipulation macros. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/combine.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/combine.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/combine.c 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/combine.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Optimize by combining instructions for GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -1698,9 +1698,13 @@ /* Don't call nonzero_bits if it cannot change anything. */ if (rsp->nonzero_bits != HOST_WIDE_INT_M1U) { - bits = nonzero_bits (src, nonzero_bits_mode); + machine_mode mode = GET_MODE (x); + if (GET_MODE_CLASS (mode) == MODE_INT + && HWI_COMPUTABLE_MODE_P (mode)) + mode = nonzero_bits_mode; + bits = nonzero_bits (src, mode); if (reg_equal && bits) - bits &= nonzero_bits (reg_equal, nonzero_bits_mode); + bits &= nonzero_bits (reg_equal, mode); rsp->nonzero_bits |= bits; } @@ -2349,7 +2353,12 @@ dest = SUBREG_REG (dest); if (REG_P (src) && REG_P (dest) && ((HARD_REGISTER_P (src) - && ! TEST_HARD_REG_BIT (fixed_reg_set, REGNO (src))) + && ! TEST_HARD_REG_BIT (fixed_reg_set, REGNO (src)) +#ifdef LEAF_REGISTERS + && ! LEAF_REGISTERS [REGNO (src)]) +#else + ) +#endif || (HARD_REGISTER_P (dest) && ! TEST_HARD_REG_BIT (fixed_reg_set, REGNO (dest)) && targetm.class_likely_spilled_p (REGNO_REG_CLASS (REGNO (dest)))))) @@ -5978,8 +5987,9 @@ && known_eq (subreg_lowpart_offset (int_mode, int_op0_mode), SUBREG_BYTE (x)) && HWI_COMPUTABLE_MODE_P (int_op0_mode) - && (nonzero_bits (SUBREG_REG (x), int_op0_mode) - & GET_MODE_MASK (int_mode)) == 0) + && ((nonzero_bits (SUBREG_REG (x), int_op0_mode) + & GET_MODE_MASK (int_mode)) == 0) + && !side_effects_p (SUBREG_REG (x))) return CONST0_RTX (int_mode); } @@ -10224,6 +10234,7 @@ /* Given a REG X of mode XMODE, compute which bits in X can be nonzero. We don't care about bits outside of those defined in MODE. + We DO care about all the bits in MODE, even if XMODE is smaller than MODE. For most X this is simply GET_MODE_MASK (GET_MODE (MODE)), but if X is a shift, AND, or zero_extract, we can do better. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/combine-stack-adj.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/combine-stack-adj.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/combine-stack-adj.c 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/combine-stack-adj.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Combine stack adjustments. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/common-target.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/common-target.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/common-target.def 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/common-target.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Target hook definitions for common hooks. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/common-target-def.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/common-target-def.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/common-target-def.h 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/common-target-def.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Default initializers for common target hooks. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/common-target.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/common-target.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/common-target.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/common-target.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Data structure definitions for common hooks. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/common-targhooks.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/common-targhooks.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/common-targhooks.c 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/common-targhooks.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Default common target hook functions. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/common-targhooks.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/common-targhooks.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/common-targhooks.h 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/common-targhooks.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Default common target hook functions. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/aarch64/aarch64-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/aarch64/aarch64-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/aarch64/aarch64-common.c 2018-10-31 16:04:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/aarch64/aarch64-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for AArch64. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/alpha/alpha-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/alpha/alpha-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/alpha/alpha-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/alpha/alpha-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for DEC Alpha. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/arc/arc-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/arc/arc-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/arc/arc-common.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/arc/arc-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for Synopsys DesignWare ARC - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. Claudiu Zissulescu diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/arm/arm-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/arm/arm-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/arm/arm-common.c 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/arm/arm-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for ARM. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/avr/avr-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/avr/avr-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/avr/avr-common.c 2018-02-04 08:44:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/avr/avr-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for ATMEL AVR. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/bfin/bfin-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/bfin/bfin-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/bfin/bfin-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/bfin/bfin-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for Blackfin. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/c6x/c6x-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/c6x/c6x-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/c6x/c6x-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/c6x/c6x-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* TI C6X common hooks. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/cr16/cr16-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/cr16/cr16-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/cr16/cr16-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/cr16/cr16-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for CR16. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/cris/cris-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/cris/cris-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/cris/cris-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/cris/cris-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for CRIS. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/csky/csky-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/csky/csky-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/csky/csky-common.c 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/csky/csky-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for CSKY. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by C-SKY Microsystems and Mentor Graphics. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/default-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/default-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/default-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/default-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Default common target hooks initializer. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/epiphany/epiphany-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/epiphany/epiphany-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/epiphany/epiphany-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/epiphany/epiphany-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for Adapteva Epiphany - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/fr30/fr30-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/fr30/fr30-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/fr30/fr30-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/fr30/fr30-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for FR30. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/frv/frv-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/frv/frv-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/frv/frv-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/frv/frv-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/h8300/h8300-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/h8300/h8300-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/h8300/h8300-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/h8300/h8300-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for Renesas H8/300. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/i386/i386-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/i386/i386-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/i386/i386-common.c 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/i386/i386-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* IA-32 common hooks. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/ia64/ia64-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/ia64/ia64-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/ia64/ia64-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/ia64/ia64-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for IA64. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/iq2000/iq2000-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/iq2000/iq2000-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/iq2000/iq2000-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/iq2000/iq2000-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for Vitesse IQ2000. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/lm32/lm32-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/lm32/lm32-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/lm32/lm32-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/lm32/lm32-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Common hooks for Lattice Mico32. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/m32r/m32r-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/m32r/m32r-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/m32r/m32r-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/m32r/m32r-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for Renesas M32R. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/m68k/m68k-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/m68k/m68k-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/m68k/m68k-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/m68k/m68k-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for Motorola 68000 family. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/mcore/mcore-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/mcore/mcore-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/mcore/mcore-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/mcore/mcore-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for Motorola MCore. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/microblaze/microblaze-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/microblaze/microblaze-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/microblaze/microblaze-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/microblaze/microblaze-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for Xilinx MicroBlaze. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/mips/mips-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/mips/mips-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/mips/mips-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/mips/mips-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for MIPS. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/mmix/mmix-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/mmix/mmix-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/mmix/mmix-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/mmix/mmix-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for MMIX. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/mn10300/mn10300-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/mn10300/mn10300-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/mn10300/mn10300-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/mn10300/mn10300-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for Matsushita MN10300 series. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/msp430/msp430-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/msp430/msp430-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/msp430/msp430-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/msp430/msp430-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for Texas Instruments MSP430. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/nds32/nds32-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/nds32/nds32-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/nds32/nds32-common.c 2018-08-14 22:30:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/nds32/nds32-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/nios2/nios2-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/nios2/nios2-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/nios2/nios2-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/nios2/nios2-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for Altera Nios II. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/nvptx/nvptx-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/nvptx/nvptx-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/nvptx/nvptx-common.c 2018-08-12 11:28:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/nvptx/nvptx-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* NVPTX common hooks. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Bernd Schmidt This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/or1k/or1k-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/or1k/or1k-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/or1k/or1k-common.c 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/or1k/or1k-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for OpenRISC - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/pa/pa-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/pa/pa-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/pa/pa-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/pa/pa-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* HPPA common hooks. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/pdp11/pdp11-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/pdp11/pdp11-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/pdp11/pdp11-common.c 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/pdp11/pdp11-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for pdp11. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/powerpcspe/powerpcspe-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/powerpcspe/powerpcspe-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/powerpcspe/powerpcspe-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/powerpcspe/powerpcspe-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for IBM RS/6000. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/riscv/riscv-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/riscv/riscv-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/riscv/riscv-common.c 2018-05-21 12:22:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/riscv/riscv-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for RISC-V. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/rs6000/rs6000-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/rs6000/rs6000-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/rs6000/rs6000-common.c 2018-05-05 11:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/rs6000/rs6000-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for IBM RS/6000. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/rx/rx-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/rx/rx-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/rx/rx-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/rx/rx-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for Renesas RX. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/s390/s390-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/s390/s390-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/s390/s390-common.c 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/s390/s390-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for IBM S/390 and zSeries. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/sh/sh-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/sh/sh-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/sh/sh-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/sh/sh-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for Renesas / SuperH SH. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/sparc/sparc-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/sparc/sparc-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/sparc/sparc-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/sparc/sparc-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for SPARC. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/spu/spu-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/spu/spu-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/spu/spu-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/spu/spu-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for SPU. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/tilegx/tilegx-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/tilegx/tilegx-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/tilegx/tilegx-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/tilegx/tilegx-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for TILE-Gx. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/tilepro/tilepro-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/tilepro/tilepro-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/tilepro/tilepro-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/tilepro/tilepro-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for TILEPro. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/v850/v850-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/v850/v850-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/v850/v850-common.c 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/v850/v850-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for NEC V850 series. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/vax/vax-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/vax/vax-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/vax/vax-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/vax/vax-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for VAX. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/visium/visium-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/visium/visium-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/visium/visium-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/visium/visium-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for Visium. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by C.Nettleton,J.P.Parkes and P.Garbett. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/xstormy16/xstormy16-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/xstormy16/xstormy16-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/xstormy16/xstormy16-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/xstormy16/xstormy16-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for Xstormy16. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/xtensa/xtensa-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/xtensa/xtensa-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common/config/xtensa/xtensa-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common/config/xtensa/xtensa-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common hooks for Tensilica's Xtensa architecture. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/common.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common.md 2018-01-10 10:13:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common.md 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ ;; Common GCC machine description file, shared by all targets. -;; Copyright (C) 2014-2018 Free Software Foundation, Inc. +;; Copyright (C) 2014-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/common.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/common.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/common.opt 2018-11-29 22:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/common.opt 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the language- and target-independent parts of the compiler. -; Copyright (C) 2003-2018 Free Software Foundation, Inc. +; Copyright (C) 2003-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; @@ -2775,6 +2775,10 @@ Common Report Var(flag_split_loops) Optimization Perform loop splitting. +fversion-loops-for-strides +Common Report Var(flag_version_loops_for_strides) Optimization +Version loops based on whether indices have a stride of one. + funwind-tables Common Report Var(flag_unwind_tables) Optimization Just generate unwind tables for exception handling. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/compare-elim.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/compare-elim.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/compare-elim.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/compare-elim.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Post-reload compare elimination. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/conditions.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/conditions.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/conditions.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/conditions.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for condition code handling in final.c and output routines. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-arches.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-arches.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-arches.def 2018-01-14 10:48:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-arches.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. +/* Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-builtins.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-builtins.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-builtins.c 2018-08-16 06:58:35.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-builtins.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Builtins' description for AArch64 SIMD architecture. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64.c 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Machine description for AArch64 architecture. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. @@ -1141,6 +1141,15 @@ /* The current tuning set. */ struct tune_params aarch64_tune_params = generic_tunings; +/* Table of machine attributes. */ +static const struct attribute_spec aarch64_attribute_table[] = +{ + /* { name, min_len, max_len, decl_req, type_req, fn_type_req, + affects_type_identity, handler, exclude } */ + { "aarch64_vector_pcs", 0, 0, false, true, true, false, NULL, NULL }, + { NULL, 0, 0, false, false, false, false, NULL, NULL } +}; + #define AARCH64_CPU_DEFAULT_FLAGS ((selected_cpu) ? selected_cpu->flags : 0) /* An ISA extension in the co-processor and main instruction set space. */ @@ -1523,6 +1532,39 @@ return false; } +/* Return true if this is a definition of a vectorized simd function. */ + +static bool +aarch64_simd_decl_p (tree fndecl) +{ + tree fntype; + + if (fndecl == NULL) + return false; + fntype = TREE_TYPE (fndecl); + if (fntype == NULL) + return false; + + /* Functions with the aarch64_vector_pcs attribute use the simd ABI. */ + if (lookup_attribute ("aarch64_vector_pcs", TYPE_ATTRIBUTES (fntype)) != NULL) + return true; + + return false; +} + +/* Return the mode a register save/restore should use. DImode for integer + registers, DFmode for FP registers in non-SIMD functions (they only save + the bottom half of a 128 bit register), or TFmode for FP registers in + SIMD functions. */ + +static machine_mode +aarch64_reg_save_mode (tree fndecl, unsigned regno) +{ + return GP_REGNUM_P (regno) + ? E_DImode + : (aarch64_simd_decl_p (fndecl) ? E_TFmode : E_DFmode); +} + /* Implement TARGET_HARD_REGNO_CALL_PART_CLOBBERED. The callee only saves the lower 64 bits of a 128-bit register. Tell the compiler the callee clobbers the top 64 bits when restoring the bottom 64 bits. */ @@ -3349,7 +3391,9 @@ aarch64_function_ok_for_sibcall (tree decl ATTRIBUTE_UNUSED, tree exp ATTRIBUTE_UNUSED) { - /* Currently, always true. */ + if (aarch64_simd_decl_p (cfun->decl) != aarch64_simd_decl_p (decl)) + return false; + return true; } @@ -4210,6 +4254,7 @@ { HOST_WIDE_INT offset = 0; int regno, last_fp_reg = INVALID_REGNUM; + bool simd_function = aarch64_simd_decl_p (cfun->decl); cfun->machine->frame.emit_frame_chain = aarch64_needs_frame_chain (); @@ -4223,6 +4268,17 @@ cfun->machine->frame.wb_candidate1 = INVALID_REGNUM; cfun->machine->frame.wb_candidate2 = INVALID_REGNUM; + /* If this is a non-leaf simd function with calls we assume that + at least one of those calls is to a non-simd function and thus + we must save V8 to V23 in the prologue. */ + + if (simd_function && !crtl->is_leaf) + { + for (regno = V0_REGNUM; regno <= V31_REGNUM; regno++) + if (FP_SIMD_SAVED_REGNUM_P (regno)) + df_set_regs_ever_live (regno, true); + } + /* First mark all the registers that really need to be saved... */ for (regno = R0_REGNUM; regno <= R30_REGNUM; regno++) cfun->machine->frame.reg_offset[regno] = SLOT_NOT_REQUIRED; @@ -4245,7 +4301,8 @@ for (regno = V0_REGNUM; regno <= V31_REGNUM; regno++) if (df_regs_ever_live_p (regno) - && !call_used_regs[regno]) + && (!call_used_regs[regno] + || (simd_function && FP_SIMD_SAVED_REGNUM_P (regno)))) { cfun->machine->frame.reg_offset[regno] = SLOT_REQUIRED; last_fp_reg = regno; @@ -4287,7 +4344,10 @@ { /* If there is an alignment gap between integer and fp callee-saves, allocate the last fp register to it if possible. */ - if (regno == last_fp_reg && has_align_gap && (offset & 8) == 0) + if (regno == last_fp_reg + && has_align_gap + && !simd_function + && (offset & 8) == 0) { cfun->machine->frame.reg_offset[regno] = max_int_offset; break; @@ -4299,7 +4359,7 @@ else if (cfun->machine->frame.wb_candidate2 == INVALID_REGNUM && cfun->machine->frame.wb_candidate1 >= V0_REGNUM) cfun->machine->frame.wb_candidate2 = regno; - offset += UNITS_PER_WORD; + offset += simd_function ? UNITS_PER_VREG : UNITS_PER_WORD; } offset = ROUND_UP (offset, STACK_BOUNDARY / BITS_PER_UNIT); @@ -4442,6 +4502,10 @@ return gen_storewb_pairdf_di (base, base, reg, reg2, GEN_INT (-adjustment), GEN_INT (UNITS_PER_WORD - adjustment)); + case E_TFmode: + return gen_storewb_pairtf_di (base, base, reg, reg2, + GEN_INT (-adjustment), + GEN_INT (UNITS_PER_VREG - adjustment)); default: gcc_unreachable (); } @@ -4454,7 +4518,7 @@ aarch64_push_regs (unsigned regno1, unsigned regno2, HOST_WIDE_INT adjustment) { rtx_insn *insn; - machine_mode mode = (regno1 <= R30_REGNUM) ? E_DImode : E_DFmode; + machine_mode mode = aarch64_reg_save_mode (cfun->decl, regno1); if (regno2 == INVALID_REGNUM) return aarch64_pushwb_single_reg (mode, regno1, adjustment); @@ -4484,6 +4548,9 @@ case E_DFmode: return gen_loadwb_pairdf_di (base, base, reg, reg2, GEN_INT (adjustment), GEN_INT (UNITS_PER_WORD)); + case E_TFmode: + return gen_loadwb_pairtf_di (base, base, reg, reg2, GEN_INT (adjustment), + GEN_INT (UNITS_PER_VREG)); default: gcc_unreachable (); } @@ -4497,7 +4564,7 @@ aarch64_pop_regs (unsigned regno1, unsigned regno2, HOST_WIDE_INT adjustment, rtx *cfi_ops) { - machine_mode mode = (regno1 <= R30_REGNUM) ? E_DImode : E_DFmode; + machine_mode mode = aarch64_reg_save_mode (cfun->decl, regno1); rtx reg1 = gen_rtx_REG (mode, regno1); *cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg1, *cfi_ops); @@ -4532,6 +4599,9 @@ case E_DFmode: return gen_store_pair_dw_dfdf (mem1, reg1, mem2, reg2); + case E_TFmode: + return gen_store_pair_dw_tftf (mem1, reg1, mem2, reg2); + default: gcc_unreachable (); } @@ -4552,6 +4622,9 @@ case E_DFmode: return gen_load_pair_dw_dfdf (reg1, mem1, reg2, mem2); + case E_TFmode: + return gen_load_pair_dw_tftf (reg1, mem1, reg2, mem2); + default: gcc_unreachable (); } @@ -4591,6 +4664,7 @@ { rtx reg, mem; poly_int64 offset; + int offset_diff; if (skip_wb && (regno == cfun->machine->frame.wb_candidate1 @@ -4606,12 +4680,12 @@ offset)); regno2 = aarch64_next_callee_save (regno + 1, limit); + offset_diff = cfun->machine->frame.reg_offset[regno2] + - cfun->machine->frame.reg_offset[regno]; if (regno2 <= limit && !cfun->machine->reg_is_wrapped_separately[regno2] - && ((cfun->machine->frame.reg_offset[regno] + UNITS_PER_WORD) - == cfun->machine->frame.reg_offset[regno2])) - + && known_eq (GET_MODE_SIZE (mode), offset_diff)) { rtx reg2 = gen_rtx_REG (mode, regno2); rtx mem2; @@ -4659,6 +4733,7 @@ continue; rtx reg, mem; + int offset_diff; if (skip_wb && (regno == cfun->machine->frame.wb_candidate1 @@ -4670,11 +4745,12 @@ mem = gen_frame_mem (mode, plus_constant (Pmode, base_rtx, offset)); regno2 = aarch64_next_callee_save (regno + 1, limit); + offset_diff = cfun->machine->frame.reg_offset[regno2] + - cfun->machine->frame.reg_offset[regno]; if (regno2 <= limit && !cfun->machine->reg_is_wrapped_separately[regno2] - && ((cfun->machine->frame.reg_offset[regno] + UNITS_PER_WORD) - == cfun->machine->frame.reg_offset[regno2])) + && known_eq (GET_MODE_SIZE (mode), offset_diff)) { rtx reg2 = gen_rtx_REG (mode, regno2); rtx mem2; @@ -4808,13 +4884,15 @@ bitmap in = DF_LIVE_IN (bb); bitmap gen = &DF_LIVE_BB_INFO (bb)->gen; bitmap kill = &DF_LIVE_BB_INFO (bb)->kill; + bool simd_function = aarch64_simd_decl_p (cfun->decl); sbitmap components = sbitmap_alloc (LAST_SAVED_REGNUM + 1); bitmap_clear (components); /* GPRs are used in a bb if they are in the IN, GEN, or KILL sets. */ for (unsigned regno = 0; regno <= LAST_SAVED_REGNUM; regno++) - if ((!call_used_regs[regno]) + if ((!call_used_regs[regno] + || (simd_function && FP_SIMD_SAVED_REGNUM_P (regno))) && (bitmap_bit_p (in, regno) || bitmap_bit_p (gen, regno) || bitmap_bit_p (kill, regno))) @@ -4885,9 +4963,11 @@ while (regno != last_regno) { - /* AAPCS64 section 5.1.2 requires only the bottom 64 bits to be saved - so DFmode for the vector registers is enough. */ - machine_mode mode = GP_REGNUM_P (regno) ? E_DImode : E_DFmode; + /* AAPCS64 section 5.1.2 requires only the low 64 bits to be saved + so DFmode for the vector registers is enough. For simd functions + we want to save the low 128 bits. */ + machine_mode mode = aarch64_reg_save_mode (cfun->decl, regno); + rtx reg = gen_rtx_REG (mode, regno); poly_int64 offset = cfun->machine->frame.reg_offset[regno]; if (!frame_pointer_needed) @@ -4916,6 +4996,7 @@ mergeable with the current one into a pair. */ if (!satisfies_constraint_Ump (mem) || GP_REGNUM_P (regno) != GP_REGNUM_P (regno2) + || (aarch64_simd_decl_p (cfun->decl) && FP_REGNUM_P (regno)) || maybe_ne ((offset2 - cfun->machine->frame.reg_offset[regno]), GET_MODE_SIZE (mode))) { @@ -5231,6 +5312,28 @@ } } +/* Return 1 if the register is used by the epilogue. We need to say the + return register is used, but only after epilogue generation is complete. + Note that in the case of sibcalls, the values "used by the epilogue" are + considered live at the start of the called function. + + For SIMD functions we need to return 1 for FP registers that are saved and + restored by a function but are not zero in call_used_regs. If we do not do + this optimizations may remove the restore of the register. */ + +int +aarch64_epilogue_uses (int regno) +{ + if (epilogue_completed) + { + if (regno == LR_REGNUM) + return 1; + if (aarch64_simd_decl_p (cfun->decl) && FP_SIMD_SAVED_REGNUM_P (regno)) + return 1; + } + return 0; +} + /* Add a REG_CFA_EXPRESSION note to INSN to say that register REG is saved at BASE + OFFSET. */ @@ -5405,8 +5508,12 @@ aarch64_save_callee_saves (DImode, callee_offset, R0_REGNUM, R30_REGNUM, callee_adjust != 0 || emit_frame_chain); - aarch64_save_callee_saves (DFmode, callee_offset, V0_REGNUM, V31_REGNUM, - callee_adjust != 0 || emit_frame_chain); + if (aarch64_simd_decl_p (cfun->decl)) + aarch64_save_callee_saves (TFmode, callee_offset, V0_REGNUM, V31_REGNUM, + callee_adjust != 0 || emit_frame_chain); + else + aarch64_save_callee_saves (DFmode, callee_offset, V0_REGNUM, V31_REGNUM, + callee_adjust != 0 || emit_frame_chain); /* We may need to probe the final adjustment if it is larger than the guard that is assumed by the called. */ @@ -5432,6 +5539,19 @@ return known_eq (cfun->machine->frame.frame_size, 0); } +/* Return false for non-leaf SIMD functions in order to avoid + shrink-wrapping them. Doing this will lose the necessary + save/restore of FP registers. */ + +bool +aarch64_use_simple_return_insn_p (void) +{ + if (aarch64_simd_decl_p (cfun->decl) && !crtl->is_leaf) + return false; + + return true; +} + /* Generate the epilogue instructions for returning from a function. This is almost exactly the reverse of the prolog sequence, except that we need to insert barriers to avoid scheduling loads that read @@ -5500,8 +5620,12 @@ aarch64_restore_callee_saves (DImode, callee_offset, R0_REGNUM, R30_REGNUM, callee_adjust != 0, &cfi_ops); - aarch64_restore_callee_saves (DFmode, callee_offset, V0_REGNUM, V31_REGNUM, - callee_adjust != 0, &cfi_ops); + if (aarch64_simd_decl_p (cfun->decl)) + aarch64_restore_callee_saves (TFmode, callee_offset, V0_REGNUM, V31_REGNUM, + callee_adjust != 0, &cfi_ops); + else + aarch64_restore_callee_saves (DFmode, callee_offset, V0_REGNUM, V31_REGNUM, + callee_adjust != 0, &cfi_ops); if (need_barrier_p) emit_insn (gen_stack_tie (stack_pointer_rtx, stack_pointer_rtx)); @@ -18422,6 +18546,9 @@ #undef TARGET_ESTIMATED_POLY_VALUE #define TARGET_ESTIMATED_POLY_VALUE aarch64_estimated_poly_value +#undef TARGET_ATTRIBUTE_TABLE +#define TARGET_ATTRIBUTE_TABLE aarch64_attribute_table + #if CHECKING_P #undef TARGET_RUN_TARGET_SELFTESTS #define TARGET_RUN_TARGET_SELFTESTS selftest::aarch64_run_selftests diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-c.c 2018-01-14 10:48:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-c.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target-specific code for C family languages. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-cores.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-cores.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-cores.def 2018-11-23 19:08:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-cores.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. +/* Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. @@ -58,6 +58,12 @@ this order is required to handle variant correctly. */ AARCH64_CORE("thunderxt88p1", thunderxt88p1, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderxt88, 0x43, 0x0a1, 0) AARCH64_CORE("thunderxt88", thunderxt88, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderxt88, 0x43, 0x0a1, -1) + +/* OcteonTX is the official name for T81/T83. */ +AARCH64_CORE("octeontx", octeontx, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx, 0x43, 0x0a0, -1) +AARCH64_CORE("octeontx81", octeontxt81, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx, 0x43, 0x0a2, -1) +AARCH64_CORE("octeontx83", octeontxt83, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx, 0x43, 0x0a3, -1) + AARCH64_CORE("thunderxt81", thunderxt81, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx, 0x43, 0x0a2, -1) AARCH64_CORE("thunderxt83", thunderxt83, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx, 0x43, 0x0a3, -1) @@ -96,10 +102,10 @@ AARCH64_CORE("cortex-a76", cortexa76, cortexa57, 8_2A, AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_F16 | AARCH64_FL_RCPC | AARCH64_FL_DOTPROD, cortexa72, 0x41, 0xd0b, -1) AARCH64_CORE("ares", ares, cortexa57, 8_2A, AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_F16 | AARCH64_FL_RCPC | AARCH64_FL_DOTPROD | AARCH64_FL_PROFILE, cortexa72, 0x41, 0xd0c, -1) -/* ARMv8.4-A Architecture Processors. */ - /* HiSilicon ('H') cores. */ -AARCH64_CORE("tsv110", tsv110, cortexa57, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_CRYPTO | AARCH64_FL_F16 | AARCH64_FL_AES | AARCH64_FL_SHA2, tsv110, 0x48, 0xd01, -1) +AARCH64_CORE("tsv110", tsv110, cortexa57, 8_2A, AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_CRYPTO | AARCH64_FL_F16 | AARCH64_FL_AES | AARCH64_FL_SHA2, tsv110, 0x48, 0xd01, -1) + +/* ARMv8.4-A Architecture Processors. */ /* Qualcomm ('Q') cores. */ AARCH64_CORE("saphira", saphira, saphira, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_CRYPTO | AARCH64_FL_RCPC, saphira, 0x51, 0xC01, -1) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-cost-tables.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-cost-tables.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-cost-tables.h 2018-10-02 07:26:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-cost-tables.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* RTX cost tables for AArch64. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-d.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-d.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-d.c 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-d.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the D front end on the AArch64 architecture. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-elf.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Machine description for AArch64 architecture. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-elf-raw.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-elf-raw.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-elf-raw.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-elf-raw.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Machine description for AArch64 architecture. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-freebsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-freebsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-freebsd.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-freebsd.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for AArch64 running FreeBSD - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-fusion-pairs.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-fusion-pairs.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-fusion-pairs.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-fusion-pairs.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64.h 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Machine description for AArch64 architecture. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. @@ -409,13 +409,7 @@ V_ALIASES(28), V_ALIASES(29), V_ALIASES(30), V_ALIASES(31) \ } -/* Say that the return address register is used by the epilogue, but only after - epilogue generation is complete. Note that in the case of sibcalls, the - values "used by the epilogue" are considered live at the start of the called - function. */ - -#define EPILOGUE_USES(REGNO) \ - (epilogue_completed && (REGNO) == LR_REGNUM) +#define EPILOGUE_USES(REGNO) (aarch64_epilogue_uses (REGNO)) /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, the stack pointer does not matter. This is only true if the function @@ -523,6 +517,8 @@ #define PR_LO_REGNUM_P(REGNO)\ (((unsigned) (REGNO - P0_REGNUM)) <= (P7_REGNUM - P0_REGNUM)) +#define FP_SIMD_SAVED_REGNUM_P(REGNO) \ + (((unsigned) (REGNO - V8_REGNUM)) <= (V23_REGNUM - V8_REGNUM)) /* Register and constant classes. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-ldpstp.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-ldpstp.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-ldpstp.md 2018-06-22 07:37:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-ldpstp.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; AArch64 ldp/stp peephole optimizations. -;; Copyright (C) 2014-2018 Free Software Foundation, Inc. +;; Copyright (C) 2014-2019 Free Software Foundation, Inc. ;; Contributed by ARM Ltd. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-linux.h 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-linux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Machine description for AArch64 architecture. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64.md 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for AArch64 architecture. -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; Contributed by ARM Ltd. ;; ;; This file is part of GCC. @@ -727,7 +727,7 @@ (define_insn "simple_return" [(simple_return)] - "" + "aarch64_use_simple_return_insn_p ()" "ret" [(set_attr "type" "branch")] ) @@ -1387,6 +1387,21 @@ (set_attr "arch" "*,fp")] ) +(define_insn "load_pair_dw_tftf" + [(set (match_operand:TF 0 "register_operand" "=w") + (match_operand:TF 1 "aarch64_mem_pair_operand" "Ump")) + (set (match_operand:TF 2 "register_operand" "=w") + (match_operand:TF 3 "memory_operand" "m"))] + "TARGET_SIMD + && rtx_equal_p (XEXP (operands[3], 0), + plus_constant (Pmode, + XEXP (operands[1], 0), + GET_MODE_SIZE (TFmode)))" + "ldp\\t%q0, %q2, %1" + [(set_attr "type" "neon_ldp_q") + (set_attr "fp" "yes")] +) + ;; Operands 0 and 2 are tied together by the final condition; so we allow ;; fairly lax checking on the second memory operation. (define_insn "store_pair_sw_" @@ -1422,6 +1437,21 @@ (set_attr "arch" "*,fp")] ) +(define_insn "store_pair_dw_tftf" + [(set (match_operand:TF 0 "aarch64_mem_pair_operand" "=Ump") + (match_operand:TF 1 "register_operand" "w")) + (set (match_operand:TF 2 "memory_operand" "=m") + (match_operand:TF 3 "register_operand" "w"))] + "TARGET_SIMD && + rtx_equal_p (XEXP (operands[2], 0), + plus_constant (Pmode, + XEXP (operands[0], 0), + GET_MODE_SIZE (TFmode)))" + "stp\\t%q1, %q3, %0" + [(set_attr "type" "neon_stp_q") + (set_attr "fp" "yes")] +) + ;; Load pair with post-index writeback. This is primarily used in function ;; epilogues. (define_insn "loadwb_pair_" @@ -1454,6 +1484,21 @@ [(set_attr "type" "neon_load1_2reg")] ) +(define_insn "loadwb_pair_" + [(parallel + [(set (match_operand:P 0 "register_operand" "=k") + (plus:P (match_operand:P 1 "register_operand" "0") + (match_operand:P 4 "aarch64_mem_pair_offset" "n"))) + (set (match_operand:TX 2 "register_operand" "=w") + (mem:TX (match_dup 1))) + (set (match_operand:TX 3 "register_operand" "=w") + (mem:TX (plus:P (match_dup 1) + (match_operand:P 5 "const_int_operand" "n"))))])] + "TARGET_SIMD && INTVAL (operands[5]) == GET_MODE_SIZE (mode)" + "ldp\\t%q2, %q3, [%1], %4" + [(set_attr "type" "neon_ldp_q")] +) + ;; Store pair with pre-index writeback. This is primarily used in function ;; prologues. (define_insn "storewb_pair_" @@ -1488,6 +1533,24 @@ [(set_attr "type" "neon_store1_2reg")] ) +(define_insn "storewb_pair_" + [(parallel + [(set (match_operand:P 0 "register_operand" "=&k") + (plus:P (match_operand:P 1 "register_operand" "0") + (match_operand:P 4 "aarch64_mem_pair_offset" "n"))) + (set (mem:TX (plus:P (match_dup 0) + (match_dup 4))) + (match_operand:TX 2 "register_operand" "w")) + (set (mem:TX (plus:P (match_dup 0) + (match_operand:P 5 "const_int_operand" "n"))) + (match_operand:TX 3 "register_operand" "w"))])] + "TARGET_SIMD + && INTVAL (operands[5]) + == INTVAL (operands[4]) + GET_MODE_SIZE (mode)" + "stp\\t%q2, %q3, [%0, %4]!" + [(set_attr "type" "neon_stp_q")] +) + ;; ------------------------------------------------------------------- ;; Sign/Zero extension ;; ------------------------------------------------------------------- diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-modes.def 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-modes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Machine description for AArch64 architecture. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64.opt 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ; Machine description for AArch64 architecture. -; Copyright (C) 2009-2018 Free Software Foundation, Inc. +; Copyright (C) 2009-2019 Free Software Foundation, Inc. ; Contributed by ARM Ltd. ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-option-extensions.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-option-extensions.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-option-extensions.def 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-option-extensions.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-opts.h 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. +/* Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-passes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-passes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-passes.def 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-passes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* AArch64-specific passes declarations. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-protos.h 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Machine description for AArch64 architecture. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. @@ -471,6 +471,7 @@ bool aarch64_symbolic_address_p (rtx); bool aarch64_uimm12_shift (HOST_WIDE_INT); bool aarch64_use_return_insn_p (void); +bool aarch64_use_simple_return_insn_p (void); const char *aarch64_mangle_builtin_type (const_tree); const char *aarch64_output_casesi (rtx *); @@ -556,6 +557,8 @@ /* Check for a legitimate floating point constant for FMOV. */ bool aarch64_float_const_representable_p (rtx); +extern int aarch64_epilogue_uses (int); + #if defined (RTX_CODE) void aarch64_gen_unlikely_cbranch (enum rtx_code, machine_mode cc_mode, rtx label_ref); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-simd-builtins.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-simd-builtins.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-simd-builtins.def 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-simd-builtins.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Machine description for AArch64 architecture. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-simd-builtin-types.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-simd-builtin-types.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-simd-builtin-types.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-simd-builtin-types.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Builtin AdvSIMD types. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-simd.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-simd.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-simd.md 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-simd.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for AArch64 AdvSIMD architecture. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by ARM Ltd. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-speculation.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-speculation.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-speculation.cc 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-speculation.cc 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Speculation tracking and mitigation (e.g. CVE 2017-5753) for AArch64. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-sve.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-sve.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-sve.md 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-sve.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for AArch64 SVE. -;; Copyright (C) 2009-2016 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; Contributed by ARM Ltd. ;; ;; This file is part of GCC. @@ -3021,7 +3021,7 @@ "TARGET_SVE" "@ \t%0., %1/m, %2., %3. - movprfx\t%0, %4\;\t%0., %1/m, %2., %3." + movprfx\t%0, %4\;\t%0., %1/m, %2., %3." [(set_attr "movprfx" "*,yes")] ) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-tune.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-tune.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-tune.md 2018-11-23 19:08:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-tune.md 2019-01-02 08:05:22.000000000 +0000 @@ -1,5 +1,5 @@ ;; -*- buffer-read-only: t -*- ;; Generated automatically by gentune.sh from aarch64-cores.def (define_attr "tune" - "cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,thunderxt81,thunderxt83,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,ares,tsv110,saphira,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55" + "cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,ares,tsv110,saphira,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55" (const (symbol_ref "((enum attr_tune) aarch64_tune)"))) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-tuning-flags.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-tuning-flags.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/aarch64-tuning-flags.def 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/aarch64-tuning-flags.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/arm_acle.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/arm_acle.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/arm_acle.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/arm_acle.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* AArch64 Non-NEON ACLE intrinsics include file. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/arm_fp16.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/arm_fp16.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/arm_fp16.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/arm_fp16.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* ARM FP16 scalar intrinsics include file. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/arm_neon.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/arm_neon.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/arm_neon.h 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/arm_neon.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* ARM NEON intrinsics include file. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/atomics.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/atomics.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/atomics.md 2018-11-22 10:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/atomics.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for AArch64 processor synchronization primitives. -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; Contributed by ARM Ltd. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/biarchilp32.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/biarchilp32.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/biarchilp32.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/biarchilp32.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ /* Make configure files to produce biarch compiler defaulting to ilp32 ABI. This file must be included very first, while the OS specific file later to overwrite otherwise wrong defaults. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/biarchlp64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/biarchlp64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/biarchlp64.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/biarchlp64.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ /* Make configure files to produce biarch compiler defaulting to ilp64 ABI. This file must be included very first, while the OS specific file later to overwrite otherwise wrong defaults. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/constraints.md 2018-09-20 14:06:11.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for AArch64 architecture. -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; Contributed by ARM Ltd. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/cortex-a57-fma-steering.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/cortex-a57-fma-steering.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/cortex-a57-fma-steering.c 2018-02-17 02:18:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/cortex-a57-fma-steering.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* FMA steering optimization pass for Cortex-A57. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/driver-aarch64.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/driver-aarch64.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/driver-aarch64.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/driver-aarch64.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Native CPU detection for aarch64. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/falkor.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/falkor.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/falkor.md 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/falkor.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Falkor pipeline description -;; Copyright (C) 2017-2018 Free Software Foundation, Inc. +;; Copyright (C) 2017-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/falkor-tag-collision-avoidance.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/falkor-tag-collision-avoidance.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/falkor-tag-collision-avoidance.c 2018-10-30 12:11:34.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/falkor-tag-collision-avoidance.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Tag Collision Avoidance pass for Falkor. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/geniterators.sh gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/geniterators.sh --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/geniterators.sh 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/geniterators.sh 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # Contributed by ARM Ltd. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/gentune.sh gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/gentune.sh --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/gentune.sh 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/gentune.sh 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # Contributed by ARM Ltd. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/iterators.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/iterators.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/iterators.md 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/iterators.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for AArch64 architecture. -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; Contributed by ARM Ltd. ;; ;; This file is part of GCC. @@ -1209,10 +1209,10 @@ (define_code_iterator FAC_COMPARISONS [lt le ge gt]) ;; SVE integer unary operations. -(define_code_iterator SVE_INT_UNARY [neg not popcount]) +(define_code_iterator SVE_INT_UNARY [abs neg not popcount]) ;; SVE floating-point unary operations. -(define_code_iterator SVE_FP_UNARY [neg abs sqrt]) +(define_code_iterator SVE_FP_UNARY [abs neg sqrt]) ;; SVE integer binary operations. (define_code_iterator SVE_INT_BINARY [plus minus mult smax umax smin umin @@ -1401,6 +1401,7 @@ (mult "mul") (div "sdiv") (udiv "udiv") + (abs "abs") (neg "neg") (smin "smin") (smax "smax") diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/predicates.md 2018-10-31 16:04:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for AArch64 architecture. -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; Contributed by ARM Ltd. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/rtems.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/rtems.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/rtems.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/rtems.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for RTEMS based AARCH64 system. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/saphira.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/saphira.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/saphira.md 2018-10-31 16:04:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/saphira.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Saphira pipeline description -;; Copyright (C) 2017-2018 Free Software Foundation, Inc. +;; Copyright (C) 2017-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/t-aarch64 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/t-aarch64 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/t-aarch64 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/t-aarch64 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ # Machine description for AArch64 architecture. -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # Contributed by ARM Ltd. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/t-aarch64-freebsd gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/t-aarch64-freebsd --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/t-aarch64-freebsd 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/t-aarch64-freebsd 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ # Machine description for AArch64 architecture. -# Copyright (C) 2016-2018 Free Software Foundation, Inc. +# Copyright (C) 2016-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/t-aarch64-linux gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/t-aarch64-linux --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/t-aarch64-linux 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/t-aarch64-linux 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ # Machine description for AArch64 architecture. -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # Contributed by ARM Ltd. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/thunderx2t99.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/thunderx2t99.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/thunderx2t99.md 2018-05-21 12:22:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/thunderx2t99.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Cavium ThunderX 2 CN99xx pipeline description -;; Copyright (C) 2016-2018 Free Software Foundation, Inc. +;; Copyright (C) 2016-2019 Free Software Foundation, Inc. ;; ;; Contributed by Cavium, Broadcom and Mentor Embedded. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/thunderx.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/thunderx.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/aarch64/thunderx.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/aarch64/thunderx.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Cavium ThunderX pipeline description -;; Copyright (C) 2014-2018 Free Software Foundation, Inc. +;; Copyright (C) 2014-2019 Free Software Foundation, Inc. ;; ;; Written by Andrew Pinski diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/alpha.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/alpha.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/alpha.c 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/alpha.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for code generation on the DEC Alpha. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/alpha.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/alpha.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/alpha.h 2018-08-22 07:31:01.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/alpha.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for DEC Alpha. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/alpha.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/alpha.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/alpha.md 2018-05-28 08:24:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/alpha.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for DEC Alpha for GNU C compiler -;; Copyright (C) 1992-2018 Free Software Foundation, Inc. +;; Copyright (C) 1992-2019 Free Software Foundation, Inc. ;; Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/alpha-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/alpha-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/alpha-modes.def 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/alpha-modes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Alpha extra machine modes. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/alpha.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/alpha.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/alpha.opt 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/alpha.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the DEC Alpha port of the compiler ; -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/alpha-passes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/alpha-passes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/alpha-passes.def 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/alpha-passes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Description of target passes for DEC Alpha - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/alpha-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/alpha-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/alpha-protos.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/alpha-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes for alpha.c functions used in the md file & elsewhere. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/constraints.md 2018-05-28 08:24:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for DEC Alpha. -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/driver-alpha.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/driver-alpha.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/driver-alpha.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/driver-alpha.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the gcc driver. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Arthur Loiret This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/elf.h 2018-06-22 07:37:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/elf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for DEC Alpha w/ELF. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@tamu.edu). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/elf.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/elf.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/elf.opt 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/elf.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Alpha ELF options. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/ev4.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/ev4.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/ev4.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/ev4.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for Alpha EV4. -;; Copyright (C) 2002-2018 Free Software Foundation, Inc. +;; Copyright (C) 2002-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/ev5.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/ev5.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/ev5.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/ev5.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for Alpha EV5. -;; Copyright (C) 2002-2018 Free Software Foundation, Inc. +;; Copyright (C) 2002-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/ev6.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/ev6.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/ev6.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/ev6.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for Alpha EV6. -;; Copyright (C) 2002-2018 Free Software Foundation, Inc. +;; Copyright (C) 2002-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/linux-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/linux-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/linux-elf.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/linux-elf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler for Alpha Linux-based GNU systems using ELF. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Richard Henderson. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/linux.h 2018-08-02 03:04:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/linux.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for Alpha Linux-based GNU systems. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Richard Henderson. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/netbsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/netbsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/netbsd.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/netbsd.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for Alpha NetBSD systems. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/openbsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/openbsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/openbsd.h 2018-06-22 07:37:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/openbsd.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Configuration file for an alpha OpenBSD target. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/predicates.md 2018-05-28 08:24:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for DEC Alpha. -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/sync.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/sync.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/sync.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/sync.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for Alpha synchronization instructions. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/t-alpha gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/t-alpha --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/t-alpha 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/t-alpha 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2016-2018 Free Software Foundation, Inc. +# Copyright (C) 2016-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/t-vms gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/t-vms --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/t-vms 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/t-vms 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/vms.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/vms.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/alpha/vms.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/alpha/vms.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Output variables, constants and external declarations, for GNU compiler. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc600.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc600.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc600.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc600.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ;; DFA scheduling description of the Synopsys DesignWare ARC600 cpu ;; for GNU C compiler -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; Contributor: Joern Rennecke ;; on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc700.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc700.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc700.md 2018-10-31 16:04:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc700.md 2019-01-02 08:05:19.000000000 +0000 @@ -5,7 +5,7 @@ ;; Ramana Radhakrishnan(ramana.radhakrishnan@codito.com) ;; Factoring out and improvement of ARC700 Scheduling by ;; Joern Rennecke (joern.rennecke@embecosm.com) -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-arches.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-arches.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-arches.def 2018-01-26 23:52:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-arches.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* ARC ARCH architectures. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-arch.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-arch.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-arch.h 2018-10-31 16:04:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-arch.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of types that are used to store ARC architecture and device information. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Claudiu Zissulescu (claziss@synopsys.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for code generation on the Synopsys DesignWare ARC cpu. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. Sources derived from work done by Sankhya Technologies (www.sankhya.com) on behalf of Synopsys Inc. @@ -3597,9 +3597,7 @@ insn = frame_insn (insn); /* Add DWARF info. */ - for (regno = start_reg, off = 0; - regno <= end_reg; - regno++, off += UNITS_PER_WORD) + for (regno = start_reg; regno <= end_reg; regno++) { reg = gen_rtx_REG (SImode, regno); add_reg_note (insn, REG_CFA_RESTORE, reg); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-c.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-c.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2016-2018 Free Software Foundation, Inc. +/* Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-c.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-c.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-c.def 2018-01-26 23:52:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-c.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2016-2018 Free Software Foundation, Inc. +/* Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-cpus.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-cpus.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-cpus.def 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-cpus.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* ARC CPU architectures. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arcEM.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arcEM.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arcEM.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arcEM.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ;; DFA scheduling description of the Synopsys DesignWare ARC EM cpu ;; for GNU C compiler -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; Contributor: Claudiu Zissulescu ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc.h 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, Synopsys DesignWare ARC cpu. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -491,6 +491,7 @@ "R0R1_CD_REGS", \ "R0R3_CD_REGS", \ "ARCOMPACT16_REGS", \ + "SIBCALL_REGS", \ "AC16_H_REGS", \ "DOUBLE_REGS", \ "GENERAL_REGS", \ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arcHS4x.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arcHS4x.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arcHS4x.md 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arcHS4x.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ;; DFA scheduling description of the Synopsys DesignWare ARC HS4x cpu ;; for GNU C compiler -;; Copyright (C) 2017 Free Software Foundation, Inc. +;; Copyright (C) 2017-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arcHS.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arcHS.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arcHS.md 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arcHS.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ;; DFA scheduling description of the Synopsys DesignWare ARC HS cpu ;; for GNU C compiler -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; Contributor: Claudiu Zissulescu ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc.md 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description of the Synopsys DesignWare ARC cpu for GNU C compiler -;; Copyright (C) 1994-2018 Free Software Foundation, Inc. +;; Copyright (C) 1994-2019 Free Software Foundation, Inc. ;; Sources derived from work done by Sankhya Technologies (www.sankhya.com) on ;; behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-modes.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-modes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, Synopsys DesignWare ARC cpu. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc.opt 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the Synopsys DesignWare ARC port of the compiler ; -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-options.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-options.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-options.def 2018-06-13 07:08:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-options.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* ARC options. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-opts.h 2018-06-13 07:08:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* GCC option-handling definitions for the Synopsys DesignWare ARC architecture. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-protos.h 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, Synopsys DesignWare ARC cpu. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-simd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-simd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-simd.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-simd.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Synopsys DesignWare ARC SIMD include file. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Written by Saurabh Verma (saurabh.verma@celunite.com) on behalf os Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-tables.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-tables.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/arc-tables.opt 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/arc-tables.opt 2019-01-02 08:05:19.000000000 +0000 @@ -2,7 +2,7 @@ ; Generated by : ./gcc/config/arc/genoptions.awk ; Generated from : ./gcc/config/arc/arc-cpu.def ; -; Copyright (C) 2016-2018 Free Software Foundation, Inc. +; Copyright (C) 2016-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/atomic.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/atomic.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/atomic.md 2018-06-14 13:43:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/atomic.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for ARC atomic instructions. -;; Copyright (C) 2015-2018 Free Software Foundation, Inc. +;; Copyright (C) 2015-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/big.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/big.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/big.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/big.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definition of big endian ARC machine for GNU compiler. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/builtins.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/builtins.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/builtins.def 2018-06-14 13:43:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/builtins.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/constraints.md 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for Synopsys DesignWare ARC. -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/driver-arc.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/driver-arc.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/driver-arc.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/driver-arc.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the gcc driver. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Claudiu Zissulescu This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/elf.h 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Target macros for arc*-elf targets. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/fpx.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/fpx.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/fpx.md 2018-01-26 23:52:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/fpx.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ;; Machine description of the Synopsys DesignWare ARC cpu Floating Point ;; extensions for GNU C compiler -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/genmultilib.awk gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/genmultilib.awk --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/genmultilib.awk 2018-01-26 23:52:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/genmultilib.awk 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2016-2018 Free Software Foundation, Inc. +# Copyright (C) 2016-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/genoptions.awk gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/genoptions.awk --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/genoptions.awk 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/genoptions.awk 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2016-2018 Free Software Foundation, Inc. +# Copyright (C) 2016-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/linux.h 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/linux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Target macros for arc*-*-linux targets. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/predicates.md 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for Synopsys DesignWare ARC. -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/simdext.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/simdext.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/simdext.md 2018-01-26 23:52:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/simdext.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description of the Synopsys DesignWare ARC cpu for GNU C compiler -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/t-arc gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/t-arc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/t-arc 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/t-arc 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ # GCC Makefile fragment for Synopsys DesignWare ARC. # -# Copyright (C) 2016-2018 Free Software Foundation, Inc. +# Copyright (C) 2016-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/t-multilib gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/t-multilib --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/t-multilib 2018-01-26 23:52:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/t-multilib 2019-01-02 08:05:19.000000000 +0000 @@ -3,7 +3,7 @@ # Generated from : ./gcc/config/arc/arc-cpu.def # Used by : tmake_file from Makefile and genmultilib -# Copyright (C) 2016-2018 Free Software Foundation, Inc. +# Copyright (C) 2016-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/t-multilib-linux gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/t-multilib-linux --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arc/t-multilib-linux 2018-05-21 12:22:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arc/t-multilib-linux 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/aarch-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/aarch-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/aarch-common.c 2018-10-02 07:26:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/aarch-common.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ /* Dependency checks for instruction scheduling, shared between ARM and AARCH64. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/aarch-common-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/aarch-common-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/aarch-common-protos.h 2018-10-02 07:26:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/aarch-common-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Functions and structures shared between arm and aarch64. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/aarch-cost-tables.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/aarch-cost-tables.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/aarch-cost-tables.h 2018-11-23 19:08:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/aarch-cost-tables.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* RTX cost tables shared between arm and aarch64. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/aout.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/aout.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/aout.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/aout.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for ARM with a.out - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. Contributed by Richard Earnshaw (rearnsha@armltd.co.uk). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm1020e.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm1020e.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm1020e.md 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm1020e.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM 1020E & ARM 1022E Pipeline Description -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; Contributed by Richard Earnshaw (richard.earnshaw@arm.com) ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm1026ejs.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm1026ejs.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm1026ejs.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm1026ejs.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM 1026EJ-S Pipeline Description -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; Written by CodeSourcery, LLC. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm1136jfs.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm1136jfs.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm1136jfs.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm1136jfs.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM 1136J[F]-S Pipeline Description -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; Written by CodeSourcery, LLC. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm926ejs.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm926ejs.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm926ejs.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm926ejs.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM 926EJ-S Pipeline Description -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; Written by CodeSourcery, LLC. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm_acle_builtins.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm_acle_builtins.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm_acle_builtins.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm_acle_builtins.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* ACLE builtin definitions for ARM. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm_acle.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm_acle.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm_acle.h 2018-06-05 19:11:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm_acle.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* ARM Non-NEON ACLE intrinsics include file. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-builtins.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-builtins.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-builtins.c 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-builtins.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Description of builtins used by the ARM backend. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm.c 2018-11-23 11:26:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Output routines for GCC for ARM. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl) and Martin Simmons (@harleqn.co.uk). More major hacks by Richard Earnshaw (rearnsha@arm.com). @@ -19872,7 +19872,7 @@ "msr%s\tAPSR_nzcvq, %%|lr", conditional); output_asm_insn (instr, & operand); - if (TARGET_HARD_FLOAT && !TARGET_THUMB1) + if (TARGET_HARD_FLOAT) { /* Clear the cumulative exception-status bits (0-4,7) and the condition code bits (28-31) of the FPSCR. We need to diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-c.c 2018-05-21 12:22:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-c.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm_cmse.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm_cmse.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm_cmse.h 2018-06-05 19:11:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm_cmse.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* ARMv8-M Secure Extensions intrinsics include file. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-cpus.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-cpus.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-cpus.in 2018-11-29 22:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-cpus.in 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ # CPU, FPU and architecture specifications for ARM. # -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-d.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-d.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-d.c 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-d.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the D front end on the ARM architecture. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-fixed.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-fixed.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-fixed.md 2018-05-21 12:22:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-fixed.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-flags.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-flags.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-flags.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-flags.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Flags used to identify the presence of processor capabilities. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm_fp16.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm_fp16.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm_fp16.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm_fp16.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* ARM FP16 intrinsics include file. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-generic.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-generic.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-generic.md 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-generic.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Generic ARM Pipeline Description -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm.h 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for ARM. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl) and Martin Simmons (@harleqn.co.uk). More major hacks by Richard Earnshaw (rearnsha@arm.com) @@ -125,7 +125,8 @@ /* Use hardware floating point instructions. */ #define TARGET_HARD_FLOAT (arm_float_abi != ARM_FLOAT_ABI_SOFT \ && bitmap_bit_p (arm_active_target.isa, \ - isa_bit_vfpv2)) + isa_bit_vfpv2) \ + && TARGET_32BIT) #define TARGET_SOFT_FLOAT (!TARGET_HARD_FLOAT) /* User has permitted use of FP instructions, if they exist for this target. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-ldmstm.ml gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-ldmstm.ml --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-ldmstm.ml 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-ldmstm.ml 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ (* Auto-generate ARM ldm/stm patterns - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by CodeSourcery. This file is part of GCC. @@ -335,7 +335,7 @@ "/* ARM ldm/stm instruction patterns. This file was automatically generated"; " using arm-ldmstm.ml. Please do not edit manually."; ""; -" Copyright (C) 2010-2018 Free Software Foundation, Inc."; +" Copyright (C) 2010-2019 Free Software Foundation, Inc."; " Contributed by CodeSourcery."; ""; " This file is part of GCC."; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm.md 2018-11-23 09:38:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;;- Machine description for ARM for GNU compiler -;; Copyright (C) 1991-2018 Free Software Foundation, Inc. +;; Copyright (C) 1991-2019 Free Software Foundation, Inc. ;; Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl) ;; and Martin Simmons (@harleqn.co.uk). ;; More major hacks by Richard Earnshaw (rearnsha@arm.com). @@ -5831,6 +5831,11 @@ case 1: case 2: return \"#\"; + case 3: + /* Cannot load it directly, split to load it via MOV / MOVT. */ + if (!MEM_P (operands[1]) && arm_disable_literal_pool) + return \"#\"; + /* Fall through. */ default: return output_move_double (operands, true, NULL); } @@ -6940,6 +6945,20 @@ operands[1] = force_reg (SFmode, operands[1]); } } + + /* Cannot load it directly, generate a load with clobber so that it can be + loaded via GPR with MOV / MOVT. */ + if (arm_disable_literal_pool + && (REG_P (operands[0]) || SUBREG_P (operands[0])) + && CONST_DOUBLE_P (operands[1]) + && TARGET_HARD_FLOAT + && !vfp3_const_double_rtx (operands[1])) + { + rtx clobreg = gen_reg_rtx (SFmode); + emit_insn (gen_no_literal_pool_sf_immediate (operands[0], operands[1], + clobreg)); + DONE; + } " ) @@ -6967,10 +6986,19 @@ && TARGET_SOFT_FLOAT && (!MEM_P (operands[0]) || register_operand (operands[1], SFmode))" - "@ - mov%?\\t%0, %1 - ldr%?\\t%0, %1\\t%@ float - str%?\\t%1, %0\\t%@ float" +{ + switch (which_alternative) + { + case 0: return \"mov%?\\t%0, %1\"; + case 1: + /* Cannot load it directly, split to load it via MOV / MOVT. */ + if (!MEM_P (operands[1]) && arm_disable_literal_pool) + return \"#\"; + return \"ldr%?\\t%0, %1\\t%@ float\"; + case 2: return \"str%?\\t%1, %0\\t%@ float\"; + default: gcc_unreachable (); + } +} [(set_attr "predicable" "yes") (set_attr "type" "mov_reg,load_4,store_4") (set_attr "arm_pool_range" "*,4096,*") @@ -6979,6 +7007,21 @@ (set_attr "thumb2_neg_pool_range" "*,0,*")] ) +;; Splitter for the above. +(define_split + [(set (match_operand:SF 0 "s_register_operand") + (match_operand:SF 1 "const_double_operand"))] + "arm_disable_literal_pool && TARGET_SOFT_FLOAT" + [(const_int 0)] +{ + long buf; + real_to_target (&buf, CONST_DOUBLE_REAL_VALUE (operands[1]), SFmode); + rtx cst = gen_int_mode (buf, SImode); + emit_move_insn (simplify_gen_subreg (SImode, operands[0], SFmode, 0), cst); + DONE; +} +) + (define_expand "movdf" [(set (match_operand:DF 0 "general_operand" "") (match_operand:DF 1 "general_operand" ""))] @@ -6997,6 +7040,21 @@ operands[1] = force_reg (DFmode, operands[1]); } } + + /* Cannot load it directly, generate a load with clobber so that it can be + loaded via GPR with MOV / MOVT. */ + if (arm_disable_literal_pool + && (REG_P (operands[0]) || SUBREG_P (operands[0])) + && CONSTANT_P (operands[1]) + && TARGET_HARD_FLOAT + && !arm_const_double_rtx (operands[1]) + && !(TARGET_VFP_DOUBLE && vfp3_const_double_rtx (operands[1]))) + { + rtx clobreg = gen_reg_rtx (DFmode); + emit_insn (gen_no_literal_pool_df_immediate (operands[0], operands[1], + clobreg)); + DONE; + } " ) @@ -7056,6 +7114,11 @@ case 1: case 2: return \"#\"; + case 3: + /* Cannot load it directly, split to load it via MOV / MOVT. */ + if (!MEM_P (operands[1]) && arm_disable_literal_pool) + return \"#\"; + /* Fall through. */ default: return output_move_double (operands, true, NULL); } @@ -7067,6 +7130,24 @@ (set_attr "arm_neg_pool_range" "*,*,*,1004,*") (set_attr "thumb2_neg_pool_range" "*,*,*,0,*")] ) + +;; Splitter for the above. +(define_split + [(set (match_operand:DF 0 "s_register_operand") + (match_operand:DF 1 "const_double_operand"))] + "arm_disable_literal_pool && TARGET_SOFT_FLOAT" + [(const_int 0)] +{ + long buf[2]; + int order = BYTES_BIG_ENDIAN ? 1 : 0; + real_to_target (buf, CONST_DOUBLE_REAL_VALUE (operands[1]), DFmode); + unsigned HOST_WIDE_INT ival = zext_hwi (buf[order], 32); + ival |= (zext_hwi (buf[1 - order], 32) << 32); + rtx cst = gen_int_mode (ival, DImode); + emit_move_insn (simplify_gen_subreg (DImode, operands[0], DFmode, 0), cst); + DONE; +} +) ;; load- and store-multiple insns diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-modes.def 2018-01-14 10:48:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-modes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for ARM. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl) and Martin Simmons (@harleqn.co.uk). More major hacks by Richard Earnshaw (rearnsha@arm.com) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm_neon_builtins.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm_neon_builtins.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm_neon_builtins.def 2018-01-14 10:48:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm_neon_builtins.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* NEON builtin definitions for ARM. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm_neon.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm_neon.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm_neon.h 2018-01-14 10:48:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm_neon.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* ARM NEON intrinsics include file. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by CodeSourcery. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm.opt 2018-01-14 10:48:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the ARM port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-opts.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for option handling for ARM. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-protos.h 2018-11-23 09:38:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes for exported functions defined in arm.c and pe.c - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Richard Earnshaw (rearnsha@arm.com) Minor hacks by Nick Clifton (nickc@cygnus.com) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-simd-builtin-types.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-simd-builtin-types.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-simd-builtin-types.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-simd-builtin-types.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Builtin AdvSIMD types. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-tables.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-tables.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-tables.opt 2018-11-29 22:58:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-tables.opt 2019-01-02 08:05:22.000000000 +0000 @@ -2,7 +2,7 @@ ; Generated automatically by parsecpu.awk from arm-cpus.in. ; Do not edit. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-tune.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-tune.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm-tune.md 2018-11-29 22:58:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm-tune.md 2019-01-02 08:05:22.000000000 +0000 @@ -2,7 +2,7 @@ ; Generated automatically by parsecpu.awk from arm-cpus.in. ; Do not edit. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm_vfp_builtins.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm_vfp_builtins.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/arm_vfp_builtins.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/arm_vfp_builtins.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* VFP instruction builtin definitions. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/bpabi.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/bpabi.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/bpabi.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/bpabi.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Configuration file for ARM BPABI targets. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, LLC This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/constraints.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for ARM and Thumb -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; Contributed by ARM Ltd. ;; This file is part of GCC. @@ -31,9 +31,10 @@ ;; 'H' was previously used for FPA. ;; The following multi-letter normal constraints have been used: -;; in ARM/Thumb-2 state: Da, Db, Dc, Dd, Dn, Dl, DL, Do, Dv, Dy, Di, Dt, Dp, Dz +;; in ARM/Thumb-2 state: Da, Db, Dc, Dd, Dn, Dl, DL, Do, Dv, Dy, Di, Dt, Dp, +;; Dz, Tu ;; in Thumb-1 state: Pa, Pb, Pc, Pd, Pe -;; in Thumb-2 state: Pj, PJ, Ps, Pt, Pu, Pv, Pw, Px, Py +;; in Thumb-2 state: Ha, Pj, PJ, Ps, Pt, Pu, Pv, Pw, Px, Py, Pz ;; in all states: Pf ;; The following memory constraints have been used: @@ -234,6 +235,12 @@ (and (match_code "const_double") (match_test "TARGET_32BIT && arm_const_double_rtx (op)"))) +(define_constraint "Ha" + "@internal In ARM / Thumb-2 a float constant iff literal pools are allowed." + (and (match_code "const_double") + (match_test "satisfies_constraint_E (op)") + (match_test "!arm_disable_literal_pool"))) + (define_constraint "Dz" "@internal In ARM/Thumb-2 state a vector of constant zeros." @@ -351,6 +358,12 @@ (match_test "TARGET_32BIT && vfp3_const_double_for_bits (op) > 0"))) +(define_constraint "Tu" + "@internal In ARM / Thumb-2 an integer constant iff literal pools are + allowed." + (and (match_test "CONSTANT_P (op)") + (match_test "!arm_disable_literal_pool"))) + (define_register_constraint "Ts" "(arm_restrict_it) ? LO_REGS : GENERAL_REGS" "For arm_restrict_it the core registers @code{r0}-@code{r7}. GENERAL_REGS otherwise.") diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a15.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a15.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a15.md 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a15.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Cortex-A15 pipeline description -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; ;; Written by Matthew Gretton-Dann diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a15-neon.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a15-neon.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a15-neon.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a15-neon.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Cortex-A15 NEON pipeline description -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a17.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a17.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a17.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a17.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Cortex-A17 pipeline description -;; Copyright (C) 2014-2018 Free Software Foundation, Inc. +;; Copyright (C) 2014-2019 Free Software Foundation, Inc. ;; ;; Contributed by ARM Ltd. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a17-neon.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a17-neon.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a17-neon.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a17-neon.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Cortex-A17 NEON pipeline description -;; Copyright (C) 2014-2018 Free Software Foundation, Inc. +;; Copyright (C) 2014-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a53.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a53.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a53.md 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a53.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Cortex-A53 pipeline description -;; Copyright (C) 2013-2018 Free Software Foundation, Inc. +;; Copyright (C) 2013-2019 Free Software Foundation, Inc. ;; ;; Contributed by ARM Ltd. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a57.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a57.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a57.md 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a57.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Cortex-A57 pipeline description -;; Copyright (C) 2014-2018 Free Software Foundation, Inc. +;; Copyright (C) 2014-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a5.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a5.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a5.md 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a5.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Cortex-A5 pipeline description -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by CodeSourcery. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a7.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a7.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a7.md 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a7.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Cortex-A7 pipeline description -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; ;; Contributed by ARM Ltd. ;; Based on cortex-a5.md which was originally contributed by CodeSourcery. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a8.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a8.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a8.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a8.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Cortex-A8 scheduling description. -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; Contributed by CodeSourcery. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a8-neon.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a8-neon.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a8-neon.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a8-neon.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Cortex-A8 NEON scheduling description. -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; Contributed by CodeSourcery. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a9.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a9.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a9.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a9.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Cortex-A9 pipeline description -;; Copyright (C) 2008-2018 Free Software Foundation, Inc. +;; Copyright (C) 2008-2019 Free Software Foundation, Inc. ;; Originally written by CodeSourcery for VFP. ;; ;; Rewritten by Ramana Radhakrishnan diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a9-neon.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a9-neon.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-a9-neon.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-a9-neon.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Cortex-A9 pipeline description -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; ;; Neon pipeline description contributed by ARM Ltd. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-m4-fpu.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-m4-fpu.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-m4-fpu.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-m4-fpu.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Cortex-M4 FPU pipeline description -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by CodeSourcery. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-m4.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-m4.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-m4.md 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-m4.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Cortex-M4 pipeline description -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by CodeSourcery. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-m7.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-m7.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-m7.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-m7.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Cortex-M7 pipeline description -;; Copyright (C) 2014-2018 Free Software Foundation, Inc. +;; Copyright (C) 2014-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-r4f.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-r4f.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-r4f.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-r4f.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Cortex-R4F VFP pipeline description -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; Written by CodeSourcery. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-r4.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-r4.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/cortex-r4.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/cortex-r4.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Cortex-R4 scheduling description. -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; Contributed by CodeSourcery. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/crypto.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/crypto.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/crypto.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/crypto.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Cryptographic instruction builtin definitions. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/crypto.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/crypto.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/crypto.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/crypto.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARMv8-A crypto patterns. -;; Copyright (C) 2013-2018 Free Software Foundation, Inc. +;; Copyright (C) 2013-2019 Free Software Foundation, Inc. ;; Contributed by ARM Ltd. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/driver-arm.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/driver-arm.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/driver-arm.c 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/driver-arm.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the gcc driver. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/elf.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. For ARM with ELF obj format. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. Contributed by Philip Blundell and Catherine Moore @@ -137,7 +137,7 @@ /* Horrible hack: We want to prevent some libgcc routines being included for some multilibs. The condition should match the one in - libgcc/config/arm/lib1funcs.S. */ + libgcc/config/arm/lib1funcs.S and libgcc/config/arm/t-elf. */ #if __ARM_ARCH_ISA_ARM || __ARM_ARCH_ISA_THUMB != 1 #undef L_fixdfsi #undef L_fixunsdfsi diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/exynos-m1.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/exynos-m1.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/exynos-m1.md 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/exynos-m1.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Samsung Exynos M1 pipeline description -;; Copyright (C) 2014-2018 Free Software Foundation, Inc. +;; Copyright (C) 2014-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/fa526.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/fa526.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/fa526.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/fa526.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Faraday FA526 Pipeline Description -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Written by I-Jui Sung, based on ARM926EJ-S Pipeline Description. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/fa606te.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/fa606te.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/fa606te.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/fa606te.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Faraday FA606TE Pipeline Description -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Written by Mingfeng Wu, based on ARM926EJ-S Pipeline Description. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/fa626te.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/fa626te.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/fa626te.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/fa626te.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Faraday FA626TE Pipeline Description -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Written by I-Jui Sung, based on ARM926EJ-S Pipeline Description. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/fa726te.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/fa726te.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/fa726te.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/fa726te.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Faraday FA726TE Pipeline Description -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Written by I-Jui Sung, based on ARM926EJ-S Pipeline Description. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/fmp626.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/fmp626.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/fmp626.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/fmp626.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Faraday FA626TE Pipeline Description -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Written by Mingfeng Wu, based on ARM926EJ-S Pipeline Description. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/freebsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/freebsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/freebsd.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/freebsd.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, FreeBSD/arm version. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Wasabi Systems, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/fuchsia-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/fuchsia-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/fuchsia-elf.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/fuchsia-elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Configuration file for ARM Fuchsia ELF targets. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Google. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/iterators.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/iterators.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/iterators.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/iterators.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Code and mode itertator and attribute definitions for the ARM backend -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by ARM Ltd. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/iwmmxt2.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/iwmmxt2.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/iwmmxt2.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/iwmmxt2.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Patterns for the Intel Wireless MMX technology architecture. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Written by Marvell, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/iwmmxt.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/iwmmxt.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/iwmmxt.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/iwmmxt.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Patterns for the Intel Wireless MMX technology architecture. -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/ldmstm.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/ldmstm.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/ldmstm.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/ldmstm.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ /* ARM ldm/stm instruction patterns. This file was automatically generated using arm-ldmstm.ml. Please do not edit manually. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by CodeSourcery. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/ldrdstrd.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/ldrdstrd.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/ldrdstrd.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/ldrdstrd.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ;; ARM ldrd/strd peephole optimizations. ;; -;; Copyright (C) 2013-2018 Free Software Foundation, Inc. +;; Copyright (C) 2013-2019 Free Software Foundation, Inc. ;; ;; Written by Greta Yorsh diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/linux-eabi.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/linux-eabi.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/linux-eabi.h 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/linux-eabi.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Configuration file for ARM GNU/Linux EABI targets. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, LLC This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/linux-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/linux-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/linux-elf.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/linux-elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for ARM running Linux-based GNU systems using ELF - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. Contributed by Philip Blundell This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/linux-gas.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/linux-gas.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/linux-gas.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/linux-gas.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. ARM Linux-based GNU systems version. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Russell King . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/marvell-f-iwmmxt.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/marvell-f-iwmmxt.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/marvell-f-iwmmxt.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/marvell-f-iwmmxt.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Marvell WMMX2 pipeline description -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Written by Marvell, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/marvell-pj4.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/marvell-pj4.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/marvell-pj4.md 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/marvell-pj4.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Marvell ARM Processor Pipeline Description -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by Marvell. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/mmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/mmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/mmintrin.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/mmintrin.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/neon.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/neon.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/neon.md 2018-11-23 11:26:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/neon.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM NEON coprocessor Machine Description -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; Written by CodeSourcery. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/netbsd-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/netbsd-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/netbsd-elf.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/netbsd-elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, NetBSD/arm ELF version. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Wasabi Systems, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/parsecpu.awk gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/parsecpu.awk --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/parsecpu.awk 2018-11-09 20:18:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/parsecpu.awk 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ # Manipulate the CPU, FPU and architecture descriptions for ARM. -# Copyright (C) 2017-2018 Free Software Foundation, Inc. +# Copyright (C) 2017-2019 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -62,7 +62,7 @@ print cc "Generated automatically by parsecpu.awk from arm-cpus.in." print cc "Do not edit." print "" - print cc "Copyright (C) 2011-2018 Free Software Foundation, Inc." + print cc "Copyright (C) 2011-2019 Free Software Foundation, Inc." print "" print cc "This file is part of GCC." print "" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/predicates.md 2018-11-23 09:38:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for ARM and Thumb -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; Contributed by ARM Ltd. ;; This file is part of GCC. @@ -473,6 +473,24 @@ (and (match_code "reg,subreg,mem") (match_operand 0 "nonimmediate_soft_df_operand")))) +;; Predicate for thumb2_movsf_vfp. Compared to general_operand, this +;; forbids constant loaded via literal pool iff literal pools are disabled. +(define_predicate "hard_sf_operand" + (and (match_operand 0 "general_operand") + (ior (not (match_code "const_double")) + (not (match_test "arm_disable_literal_pool")) + (match_test "satisfies_constraint_Dv (op)")))) + +;; Predicate for thumb2_movdf_vfp. Compared to soft_df_operand used in +;; movdf_soft_insn, this forbids constant loaded via literal pool iff +;; literal pools are disabled. +(define_predicate "hard_df_operand" + (and (match_operand 0 "soft_df_operand") + (ior (not (match_code "const_double")) + (not (match_test "arm_disable_literal_pool")) + (match_test "satisfies_constraint_Dy (op)") + (match_test "satisfies_constraint_G (op)")))) + (define_special_predicate "load_multiple_operation" (match_code "parallel") { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/README-interworking gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/README-interworking --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/README-interworking 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/README-interworking 2019-01-02 08:05:19.000000000 +0000 @@ -742,7 +742,7 @@ interworking as the --support-old-code switch has taken care if this. -Copyright (C) 1998-2018 Free Software Foundation, Inc. +Copyright (C) 1998-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/rtems.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/rtems.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/rtems.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/rtems.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for RTEMS based ARM systems using EABI. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/semi.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/semi.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/semi.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/semi.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. ARM on semi-hosted platform - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. Contributed by Richard Earnshaw (richard.earnshaw@arm.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/symbian.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/symbian.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/symbian.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/symbian.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Configuration file for Symbian OS on ARM processors. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, LLC This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/sync.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/sync.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/sync.md 2018-11-23 11:26:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/sync.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for ARM processor synchronization primitives. -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Written by Marcus Shawcroft (marcus.shawcroft@arm.com) ;; 64bit Atomics by Dave Gilbert (david.gilbert@linaro.org) ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-aprofile gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-aprofile --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-aprofile 2018-11-13 05:13:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-aprofile 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-arm gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-arm --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-arm 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-arm 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ # Rules common to all arm targets # -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-arm-elf gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-arm-elf --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-arm-elf 2018-11-13 05:13:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-arm-elf 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2018 Free Software Foundation, Inc. +# Copyright (C) 1998-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-fuchsia gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-fuchsia --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-fuchsia 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-fuchsia 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2018 Free Software Foundation, Inc. +# Copyright (C) 2017-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/thumb1.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/thumb1.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/thumb1.md 2018-11-23 09:38:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/thumb1.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Thumb-1 Machine Description -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/thumb2.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/thumb2.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/thumb2.md 2018-02-06 23:40:05.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/thumb2.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM Thumb-2 Machine Description -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; Written by CodeSourcery, LLC. ;; ;; This file is part of GCC. @@ -252,16 +252,26 @@ "TARGET_THUMB2 && !TARGET_IWMMXT && !TARGET_HARD_FLOAT && ( register_operand (operands[0], SImode) || register_operand (operands[1], SImode))" - "@ - mov%?\\t%0, %1 - mov%?\\t%0, %1 - mov%?\\t%0, %1 - mvn%?\\t%0, #%B1 - movw%?\\t%0, %1 - ldr%?\\t%0, %1 - ldr%?\\t%0, %1 - str%?\\t%1, %0 - str%?\\t%1, %0" +{ + switch (which_alternative) + { + case 0: + case 1: + case 2: + return \"mov%?\\t%0, %1\"; + case 3: return \"mvn%?\\t%0, #%B1\"; + case 4: return \"movw%?\\t%0, %1\"; + case 5: + case 6: + /* Cannot load it directly, split to load it via MOV / MOVT. */ + if (!MEM_P (operands[1]) && arm_disable_literal_pool) + return \"#\"; + return \"ldr%?\\t%0, %1\"; + case 7: + case 8: return \"str%?\\t%1, %0\"; + default: gcc_unreachable (); + } +} [(set_attr "type" "mov_reg,mov_imm,mov_imm,mvn_imm,mov_imm,load_4,load_4,store_4,store_4") (set_attr "length" "2,4,2,4,4,4,4,4,4") (set_attr "predicable" "yes") diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-linux-eabi gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-linux-eabi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-linux-eabi 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-linux-eabi 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-multilib gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-multilib --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-multilib 2018-11-13 05:13:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-multilib 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2016-2018 Free Software Foundation, Inc. +# Copyright (C) 2016-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-phoenix gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-phoenix --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-phoenix 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-phoenix 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2016-2018 Free Software Foundation, Inc. +# Copyright (C) 2016-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-rmprofile gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-rmprofile --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-rmprofile 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-rmprofile 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2016-2018 Free Software Foundation, Inc. +# Copyright (C) 2016-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-symbian gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-symbian --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-symbian 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-symbian 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-vxworks gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-vxworks --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/t-vxworks 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/t-vxworks 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/types.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/types.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/types.md 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/types.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ;; Instruction Classification for ARM for GNU compiler. -;; Copyright (C) 1991-2018 Free Software Foundation, Inc. +;; Copyright (C) 1991-2019 Free Software Foundation, Inc. ;; Contributed by ARM Ltd. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/uclinux-eabi.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/uclinux-eabi.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/uclinux-eabi.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/uclinux-eabi.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for ARM EABI ucLinux - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/uclinux-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/uclinux-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/uclinux-elf.h 2018-08-02 03:04:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/uclinux-elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for ARM running ucLinux using ELF - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Philip Blundell This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/unknown-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/unknown-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/unknown-elf.h 2018-08-02 03:04:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/unknown-elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for non-Linux based ARM systems using ELF - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Catherine Moore This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/unspecs.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/unspecs.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/unspecs.md 2018-11-23 09:38:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/unspecs.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Unspec defintions. -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by ARM Ltd. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/vec-common.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/vec-common.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/vec-common.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/vec-common.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Description for shared bits common to IWMMXT and Neon. -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; Written by CodeSourcery. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/vfp11.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/vfp11.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/vfp11.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/vfp11.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM VFP11 pipeline description -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; Written by CodeSourcery. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/vfp.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/vfp.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/vfp.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/vfp.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ARM VFP instruction patterns -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; Written by CodeSourcery. ;; ;; This file is part of GCC. @@ -259,7 +259,7 @@ ;; arm_restrict_it. (define_insn "*thumb2_movsi_vfp" [(set (match_operand:SI 0 "nonimmediate_operand" "=rk,r,l,r,r, l,*hk,m, *m,*t, r,*t,*t, *Uv") - (match_operand:SI 1 "general_operand" "rk,I,Py,K,j,mi,*mi,l,*hk, r,*t,*t,*Uvi,*t"))] + (match_operand:SI 1 "general_operand" "rk,I,Py,K,j,mi,*mi,l,*hk, r,*t,*t,*UvTu,*t"))] "TARGET_THUMB2 && TARGET_HARD_FLOAT && ( s_register_operand (operands[0], SImode) || s_register_operand (operands[1], SImode))" @@ -276,6 +276,9 @@ return \"movw%?\\t%0, %1\"; case 5: case 6: + /* Cannot load it directly, split to load it via MOV / MOVT. */ + if (!MEM_P (operands[1]) && arm_disable_literal_pool) + return \"#\"; return \"ldr%?\\t%0, %1\"; case 7: case 8: @@ -305,7 +308,7 @@ (define_insn "*movdi_vfp" [(set (match_operand:DI 0 "nonimmediate_di_operand" "=r,r,r,r,q,q,m,w,!r,w,w, Uv") - (match_operand:DI 1 "di_operand" "r,rDa,Db,Dc,mi,mi,q,r,w,w,Uvi,w"))] + (match_operand:DI 1 "di_operand" "r,rDa,Db,Dc,mi,mi,q,r,w,w,UvTu,w"))] "TARGET_32BIT && TARGET_HARD_FLOAT && ( register_operand (operands[0], DImode) || register_operand (operands[1], DImode)) @@ -321,6 +324,10 @@ return \"#\"; case 4: case 5: + /* Cannot load it directly, split to load it via MOV / MOVT. */ + if (!MEM_P (operands[1]) && arm_disable_literal_pool) + return \"#\"; + /* Fall through. */ case 6: return output_move_double (operands, true, NULL); case 7: @@ -587,7 +594,7 @@ (define_insn "*thumb2_movsf_vfp" [(set (match_operand:SF 0 "nonimmediate_operand" "=t,?r,t, t ,Uv,r ,m,t,r") - (match_operand:SF 1 "general_operand" " ?r,t,Dv,UvE,t, mE,r,t,r"))] + (match_operand:SF 1 "hard_sf_operand" " ?r,t,Dv,UvHa,t, mHa,r,t,r"))] "TARGET_THUMB2 && TARGET_HARD_FLOAT && ( s_register_operand (operands[0], SFmode) || s_register_operand (operands[1], SFmode))" @@ -676,7 +683,7 @@ (define_insn "*thumb2_movdf_vfp" [(set (match_operand:DF 0 "nonimmediate_soft_df_operand" "=w,?r,w ,w,w ,Uv,r ,m,w,r") - (match_operand:DF 1 "soft_df_operand" " ?r,w,Dy,G,UvF,w, mF,r, w,r"))] + (match_operand:DF 1 "hard_df_operand" " ?r,w,Dy,G,UvHa,w, mHa,r, w,r"))] "TARGET_THUMB2 && TARGET_HARD_FLOAT && ( register_operand (operands[0], DFmode) || register_operand (operands[1], DFmode))" @@ -1983,39 +1990,50 @@ ;; Support for xD (single precision only) variants. ;; fmrrs, fmsrr -;; Split an immediate DF move to two immediate SI moves. +;; Load a DF immediate via GPR (where combinations of MOV and MOVT can be used) +;; and then move it into a VFP register. (define_insn_and_split "no_literal_pool_df_immediate" - [(set (match_operand:DF 0 "s_register_operand" "") - (match_operand:DF 1 "const_double_operand" ""))] - "TARGET_THUMB2 && arm_disable_literal_pool - && !(TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE - && vfp3_const_double_rtx (operands[1]))" + [(set (match_operand:DF 0 "s_register_operand" "=w") + (match_operand:DF 1 "const_double_operand" "F")) + (clobber (match_operand:DF 2 "s_register_operand" "=r"))] + "arm_disable_literal_pool + && TARGET_HARD_FLOAT + && !arm_const_double_rtx (operands[1]) + && !(TARGET_VFP_DOUBLE && vfp3_const_double_rtx (operands[1]))" "#" - "&& !reload_completed" - [(set (subreg:SI (match_dup 1) 0) (match_dup 2)) - (set (subreg:SI (match_dup 1) 4) (match_dup 3)) - (set (match_dup 0) (match_dup 1))] - " + "" + [(const_int 0)] +{ long buf[2]; + int order = BYTES_BIG_ENDIAN ? 1 : 0; real_to_target (buf, CONST_DOUBLE_REAL_VALUE (operands[1]), DFmode); - operands[2] = GEN_INT ((int) buf[0]); - operands[3] = GEN_INT ((int) buf[1]); - operands[1] = gen_reg_rtx (DFmode); - ") + unsigned HOST_WIDE_INT ival = zext_hwi (buf[order], 32); + ival |= (zext_hwi (buf[1 - order], 32) << 32); + rtx cst = gen_int_mode (ival, DImode); + emit_move_insn (simplify_gen_subreg (DImode, operands[2], DFmode, 0), cst); + emit_move_insn (operands[0], operands[2]); + DONE; +} +) -;; Split an immediate SF move to one immediate SI move. +;; Load a SF immediate via GPR (where combinations of MOV and MOVT can be used) +;; and then move it into a VFP register. (define_insn_and_split "no_literal_pool_sf_immediate" - [(set (match_operand:SF 0 "s_register_operand" "") - (match_operand:SF 1 "const_double_operand" ""))] - "TARGET_THUMB2 && arm_disable_literal_pool - && !(TARGET_HARD_FLOAT && vfp3_const_double_rtx (operands[1]))" + [(set (match_operand:SF 0 "s_register_operand" "=t") + (match_operand:SF 1 "const_double_operand" "E")) + (clobber (match_operand:SF 2 "s_register_operand" "=r"))] + "arm_disable_literal_pool + && TARGET_HARD_FLOAT + && !vfp3_const_double_rtx (operands[1])" "#" - "&& !reload_completed" - [(set (subreg:SI (match_dup 1) 0) (match_dup 2)) - (set (match_dup 0) (match_dup 1))] - " + "" + [(const_int 0)] +{ long buf; real_to_target (&buf, CONST_DOUBLE_REAL_VALUE (operands[1]), SFmode); - operands[2] = GEN_INT ((int) buf); - operands[1] = gen_reg_rtx (SFmode); - ") + rtx cst = gen_int_mode (buf, SImode); + emit_move_insn (simplify_gen_subreg (SImode, operands[2], SFmode, 0), cst); + emit_move_insn (operands[0], operands[2]); + DONE; +} +) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/vxworks.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/vxworks.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/vxworks.h 2018-10-04 06:31:23.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/vxworks.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GCC, for ARM with targeting the VXWorks run time environment. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by: Mike Stump Brought up to date by CodeSourcery, LLC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/vxworks.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/vxworks.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/vxworks.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/vxworks.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; ARM VxWorks options. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/xgene1.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/xgene1.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/arm/xgene1.md 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/arm/xgene1.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for AppliedMicro xgene1 core. -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Theobroma Systems Design und Consulting GmbH. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-arch.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-arch.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-arch.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-arch.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of types that are used to store AVR architecture and device information. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Georg-Johann Lay (avr@gjlay.de) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr.c 2018-02-04 08:44:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for insn-output.c for ATMEL AVR micro controllers - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Denis Chertykov (chertykov@gmail.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-c.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-c.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2018 Free Software Foundation, Inc. +/* Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Anatoly Sokolov (aesok@post.ru) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-devices.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-devices.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-devices.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-devices.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2018 Free Software Foundation, Inc. +/* Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Anatoly Sokolov (aesok@post.ru) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-dimode.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-dimode.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-dimode.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-dimode.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ;; Machine description for GNU compiler, ;; for Atmel AVR micro controllers. -;; Copyright (C) 1998-2018 Free Software Foundation, Inc. +;; Copyright (C) 1998-2019 Free Software Foundation, Inc. ;; Contributed by Georg Lay (avr@gjlay.de) ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-fixed.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-fixed.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-fixed.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-fixed.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ;; This file contains instructions that support fixed-point operations ;; for Atmel AVR micro controllers. -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; ;; Contributed by Sean D'Epagnier (sean@depagnier.com) ;; Georg-Johann Lay (avr@gjlay.de) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr.h 2018-02-07 23:57:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for ATMEL AVR at90s8515, ATmega103/103L, ATmega603/603L microcontrollers. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Denis Chertykov (chertykov@gmail.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avrlibc.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avrlibc.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avrlibc.h 2018-08-02 03:04:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avrlibc.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for the GNU compiler collection for Atmel AVR micro controller if configured for AVR-Libc. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Georg-Johann Lay (avr@gjlay.de) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-log.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-log.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-log.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-log.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for log output for Atmel AVR back end. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Georg-Johann Lay (avr@gjlay.de) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-mcus.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-mcus.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-mcus.def 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-mcus.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* AVR MCUs. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr.md 2018-02-07 23:57:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ;; Machine description for GNU compiler, ;; for ATMEL AVR micro controllers. -;; Copyright (C) 1998-2018 Free Software Foundation, Inc. +;; Copyright (C) 1998-2019 Free Software Foundation, Inc. ;; Contributed by Denis Chertykov (chertykov@gmail.com) ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-modes.def 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-modes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr.opt 2018-01-09 22:21:11.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the ATMEL AVR port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-passes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-passes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-passes.def 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-passes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Description of target passes for AVR. - Copyright (C) 2016-2018 Free Software Foundation, Inc. */ + Copyright (C) 2016-2019 Free Software Foundation, Inc. */ /* This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-protos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Prototypes for exported functions defined in avr.c - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Denis Chertykov (chertykov@gmail.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-stdint.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-stdint.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/avr-stdint.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/avr-stdint.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for types on systems using newlib. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/builtins.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/builtins.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/builtins.def 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/builtins.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/constraints.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for ATMEL AVR micro controllers. -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/driver-avr.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/driver-avr.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/driver-avr.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/driver-avr.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the gcc driver. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Georg-Johann Lay This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/elf.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/elf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. +/* Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Georg-Johann Lay (avr@gjlay.de) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/gen-avr-mmcu-specs.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/gen-avr-mmcu-specs.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/gen-avr-mmcu-specs.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/gen-avr-mmcu-specs.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1998-2018 Free Software Foundation, Inc. +/* Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Joern Rennecke This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/gen-avr-mmcu-texi.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/gen-avr-mmcu-texi.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/gen-avr-mmcu-texi.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/gen-avr-mmcu-texi.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Georg-Johann Lay (avr@gjlay.de) This file is part of GCC. @@ -101,7 +101,7 @@ size_t i, n_mcus = 0; const avr_mcu_t *mcu; - printf ("@c Copyright (C) 2012-2018 Free Software Foundation, Inc.\n"); + printf ("@c Copyright (C) 2012-2019 Free Software Foundation, Inc.\n"); printf ("@c This is part of the GCC manual.\n"); printf ("@c For copying conditions, see the file " "gcc/doc/include/fdl.texi.\n\n"); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/genmultilib.awk gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/genmultilib.awk --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/genmultilib.awk 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/genmultilib.awk 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/predicates.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for ATMEL AVR micro controllers. -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/specs.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/specs.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/specs.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/specs.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Specs definitions for Atmel AVR back end. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Georg-Johann Lay (avr@gjlay.de) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/stdfix.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/stdfix.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/stdfix.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/stdfix.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/t-avr gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/t-avr --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/t-avr 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/t-avr 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2018 Free Software Foundation, Inc. +# Copyright (C) 2000-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/t-multilib gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/t-multilib --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/avr/t-multilib 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/avr/t-multilib 2019-01-02 08:05:22.000000000 +0000 @@ -3,7 +3,7 @@ # Generated from : ./gcc/config/avr/avr-mcus.def # Used by : tmake_file from Makefile and genmultilib -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/bfin.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/bfin.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/bfin.c 2018-06-14 13:43:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/bfin.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* The Blackfin code generation auxiliary output file. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Analog Devices. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/bfin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/bfin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/bfin.h 2018-08-02 03:04:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/bfin.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for the Blackfin port. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Analog Devices. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/bfin.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/bfin.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/bfin.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/bfin.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;;- Machine description for Blackfin for GNU compiler -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; Contributed by Analog Devices. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/bfin-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/bfin-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/bfin-modes.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/bfin-modes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for Blackfin. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Analog Devices. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/bfin.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/bfin.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/bfin.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/bfin.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the Blackfin port of the compiler ; -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/bfin-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/bfin-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/bfin-opts.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/bfin-opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for the Blackfin port needed for option handling. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/bfin-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/bfin-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/bfin-protos.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/bfin-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes for Blackfin functions used in the md file & elsewhere. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GNU CC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/constraints.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for Blackfin -;; Copyright (C) 2008-2018 Free Software Foundation, Inc. +;; Copyright (C) 2008-2019 Free Software Foundation, Inc. ;; Contributed by Analog Devices ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/elf.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/linux.h 2018-08-02 03:04:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/linux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/predicates.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for the Blackfin. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; Contributed by Analog Devices. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/print-sysroot-suffix.sh gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/print-sysroot-suffix.sh --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/print-sysroot-suffix.sh 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/print-sysroot-suffix.sh 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # This file is part of GCC. # GCC is free software; you can redistribute it and/or modify diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/rtems.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/rtems.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/rtems.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/rtems.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for rtems targeting a bfin - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Ralf Corsépius (ralf.corsepius@rtems.org). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/sync.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/sync.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/sync.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/sync.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for Blackfin synchronization instructions. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; Contributed by Analog Devices. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/t-bfin-elf gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/t-bfin-elf --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/t-bfin-elf 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/t-bfin-elf 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/t-bfin-linux gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/t-bfin-linux --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/t-bfin-linux 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/t-bfin-linux 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/t-bfin-uclinux gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/t-bfin-uclinux --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/t-bfin-uclinux 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/t-bfin-uclinux 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/uclinux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/uclinux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/bfin/uclinux.h 2018-08-02 03:04:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/bfin/uclinux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x.c 2018-06-14 13:43:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target Code for TI C6X - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Andrew Jenner Contributed by Bernd Schmidt diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target Definitions for TI C6X. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Andrew Jenner Contributed by Bernd Schmidt diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x_intrinsics.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x_intrinsics.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x_intrinsics.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x_intrinsics.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Intrinsics for TI C6X. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by CodeSourcery. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x-isas.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x-isas.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x-isas.def 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x-isas.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* C6X ISA names. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for TI C6X. -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by Andrew Jenner ;; Contributed by Bernd Schmidt ;; Contributed by CodeSourcery. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x-modes.def 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x-modes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for TI C6x. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x-mult.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x-mult.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x-mult.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x-mult.md 2019-01-02 08:05:19.000000000 +0000 @@ -3,7 +3,7 @@ ;; Multiplication patterns for TI C6X. ;; This file is processed by genmult.sh to produce two variants of each ;; pattern, a normal one and a real_mult variant for modulo scheduling. -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by Bernd Schmidt ;; Contributed by CodeSourcery. ;; @@ -424,7 +424,7 @@ ;; Multiplication patterns for TI C6X. ;; This file is processed by genmult.sh to produce two variants of each ;; pattern, a normal one and a real_mult variant for modulo scheduling. -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by Bernd Schmidt ;; Contributed by CodeSourcery. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x-mult.md.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x-mult.md.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x-mult.md.in 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x-mult.md.in 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ ;; Multiplication patterns for TI C6X. ;; This file is processed by genmult.sh to produce two variants of each ;; pattern, a normal one and a real_mult variant for modulo scheduling. -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by Bernd Schmidt ;; Contributed by CodeSourcery. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ; Option definitions for TI C6X. -; Copyright (C) 2010-2018 Free Software Foundation, Inc. +; Copyright (C) 2010-2019 Free Software Foundation, Inc. ; Contributed by Bernd Schmidt ; Contributed by CodeSourcery. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x-opts.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x-opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for option handling for TI C6X. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x-protos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes for exported functions defined in c6x.c. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by CodeSourcery. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x-sched.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x-sched.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x-sched.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x-sched.md 2019-01-02 08:05:19.000000000 +0000 @@ -4,7 +4,7 @@ ;; Definitions for side 1, cross n ;; Scheduling description for TI C6X. -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by Bernd Schmidt ;; Contributed by CodeSourcery. ;; @@ -237,7 +237,7 @@ ;; Definitions for side 2, cross n ;; Scheduling description for TI C6X. -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by Bernd Schmidt ;; Contributed by CodeSourcery. ;; @@ -470,7 +470,7 @@ ;; Definitions for side 1, cross y ;; Scheduling description for TI C6X. -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by Bernd Schmidt ;; Contributed by CodeSourcery. ;; @@ -703,7 +703,7 @@ ;; Definitions for side 2, cross y ;; Scheduling description for TI C6X. -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by Bernd Schmidt ;; Contributed by CodeSourcery. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x-sched.md.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x-sched.md.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x-sched.md.in 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x-sched.md.in 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for TI C6X. -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by Bernd Schmidt ;; Contributed by CodeSourcery. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x-tables.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x-tables.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/c6x-tables.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/c6x-tables.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ ; -*- buffer-read-only: t -*- ; Generated automatically by genopt.sh from c6x-isas.def. ; -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/constraints.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for TI C6X. -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by Andrew Jenner ;; Contributed by Bernd Schmidt ;; Contributed by CodeSourcery. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/elf-common.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/elf-common.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/elf-common.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/elf-common.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* ELF definitions for TI C6X - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Andrew Jenner Contributed by Bernd Schmidt diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/elf.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* ELF definitions for TI C6X - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Andrew Jenner Contributed by Bernd Schmidt diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/genmult.sh gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/genmult.sh --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/genmult.sh 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/genmult.sh 2019-01-02 08:05:19.000000000 +0000 @@ -2,7 +2,7 @@ # Generate c6x-mult.md from c6x-mult.md.in # The input file is passed as an argument. -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/genopt.sh gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/genopt.sh --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/genopt.sh 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/genopt.sh 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ #!/bin/sh # Generate c6x-tables.opt from the lists in *.def. -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -22,7 +22,7 @@ ; -*- buffer-read-only: t -*- ; Generated automatically by genopt.sh from c6x-isas.def. ; -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/gensched.sh gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/gensched.sh --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/gensched.sh 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/gensched.sh 2019-01-02 08:05:19.000000000 +0000 @@ -2,7 +2,7 @@ # Generate c6x-sched.md from c6x-sched.md.in # The input file is passed as an argument. -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/predicates.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Predicates for TI C6X - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Andrew Jenner Contributed by Bernd Schmidt diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/sync.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/sync.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/sync.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/sync.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for C6X synchronization instructions. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/t-c6x gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/t-c6x --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/t-c6x 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/t-c6x 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ # Target Makefile Fragment for TI C6X. -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # Contributed by CodeSourcery. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/t-c6x-elf gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/t-c6x-elf --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/t-c6x-elf 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/t-c6x-elf 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ # Target Makefile Fragment for TI C6X using ELF. -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # Contributed by CodeSourcery. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/uclinux-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/uclinux-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/c6x/uclinux-elf.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/c6x/uclinux-elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for TI C6X running ucLinux using ELF - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Andrew Jenner Contributed by Bernd Schmidt diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cr16/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cr16/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cr16/constraints.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cr16/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicates of machine description for CR16. -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by KPIT Cummins Infosystems Limited. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cr16/cr16.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cr16/cr16.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cr16/cr16.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cr16/cr16.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Output routines for CR16 processor. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by KPIT Cummins Infosystems Limited. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cr16/cr16.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cr16/cr16.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cr16/cr16.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cr16/cr16.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for CR16. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by KPIT Cummins Infosystems Limited. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cr16/cr16.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cr16/cr16.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cr16/cr16.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cr16/cr16.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for CR16. -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by KPIT Cummins Infosystems Limited. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cr16/cr16.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cr16/cr16.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cr16/cr16.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cr16/cr16.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ; Options for the National Semiconductor CR16 port of the compiler. -; Copyright (C) 2012-2018 Free Software Foundation, Inc. +; Copyright (C) 2012-2019 Free Software Foundation, Inc. ; Contributed by KPIT Cummins Infosystems Limited. ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cr16/cr16-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cr16/cr16-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cr16/cr16-protos.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cr16/cr16-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes for exported functions defined in cr16.c - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by KPIT Cummins Infosystems Limited. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cr16/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cr16/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cr16/predicates.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cr16/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicates of machine description for CR16. -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by KPIT Cummins Infosystems Limited. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cr16/t-cr16 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cr16/t-cr16 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cr16/t-cr16 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cr16/t-cr16 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ # CR16 Target Makefile -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by KPIT Cummins Infosystems Limited. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/constraints.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for CRIS. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/cris.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/cris.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/cris.c 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/cris.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for GCC. Part of the machine description for CRIS. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Axis Communications. Written by Hans-Peter Nilsson. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/cris.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/cris.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/cris.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/cris.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for GCC. Part of the machine description for CRIS. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Axis Communications. Written by Hans-Peter Nilsson. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/cris.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/cris.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/cris.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/cris.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for CRIS cpu cores. -;; Copyright (C) 1998-2018 Free Software Foundation, Inc. +;; Copyright (C) 1998-2019 Free Software Foundation, Inc. ;; Contributed by Axis Communications. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/cris.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/cris.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/cris.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/cris.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the CRIS port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/cris-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/cris-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/cris-protos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/cris-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for GCC. Part of the machine description for CRIS. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Axis Communications. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/elf.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/elf.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/elf.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/elf.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; ELF-specific options for the CRIS port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/linux.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/linux.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for GCC. Part of the machine description for CRIS. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Axis Communications. Written by Hans-Peter Nilsson. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/linux.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/linux.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/linux.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/linux.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; GNU/Linux-specific options for the CRIS port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/predicates.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Operand and operator predicates for the GCC CRIS port. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/sync.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/sync.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/sync.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/sync.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for CRIS atomic memory sequences. -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/t-cris gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/t-cris --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/t-cris 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/t-cris 2019-01-02 08:05:18.000000000 +0000 @@ -3,7 +3,7 @@ # # The Makefile fragment to include when compiling gcc et al for CRIS. # -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/t-elfmulti gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/t-elfmulti --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/cris/t-elfmulti 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/cris/t-elfmulti 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/constraints.md 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraints for C-SKY. -;; Copyright (C) 2018 Free Software Foundation, Inc. +;; Copyright (C) 2018-2019 Free Software Foundation, Inc. ;; Contributed by C-SKY Microsystems and Mentor Graphics. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky.c 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* GCC backend functions for C-SKY targets. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by C-SKY Microsystems and Mentor Graphics. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_cores.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_cores.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_cores.def 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_cores.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Architecture and core descriptions for the C-SKY back end. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by C-SKY Microsystems and Mentor Graphics. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky-elf.h 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky-elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations for bare-metal C-SKY targets. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by C-SKY Microsystems and Mentor Graphics. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_genopt.sh gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_genopt.sh --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_genopt.sh 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_genopt.sh 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ #!/bin/sh # Generate csky_tables.opt from the lists in *.def. -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # Contributed by C-SKY Microsystems and Mentor Graphics. # # This file is part of GCC. @@ -23,7 +23,7 @@ ; -*- buffer-read-only: t -*- ; Generated automatically by csky_genopt.sh from csky_cores.def. -; Copyright (C) 2018 Free Software Foundation, Inc. +; Copyright (C) 2018-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky.h 2018-11-13 05:13:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations for the C-SKY back end. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by C-SKY Microsystems and Mentor Graphics. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_insn_dsp.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_insn_dsp.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_insn_dsp.md 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_insn_dsp.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; C-SKY DSP instruction descriptions. -;; Copyright (C) 2018 Free Software Foundation, Inc. +;; Copyright (C) 2018-2019 Free Software Foundation, Inc. ;; Contributed by C-SKY Microsystems and Mentor Graphics. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_insn_fpu.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_insn_fpu.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_insn_fpu.md 2018-11-13 05:13:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_insn_fpu.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; C-SKY FPU instruction descriptions. -;; Copyright (C) 2018 Free Software Foundation, Inc. +;; Copyright (C) 2018-2019 Free Software Foundation, Inc. ;; Contributed by C-SKY Microsystems and Mentor Graphics. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_isa.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_isa.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_isa.def 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_isa.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* ISA feature descriptions for the C-SKY back end. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by C-SKY Microsystems and Mentor Graphics. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_isa.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_isa.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_isa.h 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_isa.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* ISA feature enumerations for C-SKY targets. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by C-SKY Microsystems and Mentor Graphics. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky-linux-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky-linux-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky-linux-elf.h 2018-11-20 10:31:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky-linux-elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations for C-SKY targets running Linux. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by C-SKY Microsystems and Mentor Graphics. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky.md 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for C-SKY processors. -;; Copyright (C) 2018 Free Software Foundation, Inc. +;; Copyright (C) 2018-2019 Free Software Foundation, Inc. ;; Contributed by C-SKY Microsystems and Mentor Graphics. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky.opt 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Command-line options for the C-SKY back end. -;; Copyright (C) 2018 Free Software Foundation, Inc. +;; Copyright (C) 2018-2019 Free Software Foundation, Inc. ;; Contributed by C-SKY Microsystems and Mentor Graphics. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_opts.h 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Processor and arch enumerations for C-SKY targets. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by C-SKY Microsystems and Mentor Graphics. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_pipeline_ck801.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_pipeline_ck801.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_pipeline_ck801.md 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_pipeline_ck801.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduler information for C-SKY CK801 processors. -;; Copyright (C) 2018 Free Software Foundation, Inc. +;; Copyright (C) 2018-2019 Free Software Foundation, Inc. ;; Contributed by C-SKY Microsystems and Mentor Graphics. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_pipeline_ck802.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_pipeline_ck802.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_pipeline_ck802.md 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_pipeline_ck802.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Instruction scheduling information for C-SKY CK802 processors. -;; Copyright (C) 2018 Free Software Foundation, Inc. +;; Copyright (C) 2018-2019 Free Software Foundation, Inc. ;; Contributed by C-SKY Microsystems and Mentor Graphics. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_pipeline_ck803.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_pipeline_ck803.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_pipeline_ck803.md 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_pipeline_ck803.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduler information for C-SKY CK803 processors. -;; Copyright (C) 2018 Free Software Foundation, Inc. +;; Copyright (C) 2018-2019 Free Software Foundation, Inc. ;; Contributed by C-SKY Microsystems and Mentor Graphics. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_pipeline_ck810.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_pipeline_ck810.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_pipeline_ck810.md 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_pipeline_ck810.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Instruction scheduling information for C-SKY CK810 processors. -;; Copyright (C) 2018 Free Software Foundation, Inc. +;; Copyright (C) 2018-2019 Free Software Foundation, Inc. ;; Contributed by C-SKY Microsystems and Mentor Graphics. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky-protos.h 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototype declarations for the C-SKY back end. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by C-SKY Microsystems and Mentor Graphics. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_tables.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_tables.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/csky_tables.opt 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/csky_tables.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ ; -*- buffer-read-only: t -*- ; Generated automatically by csky_genopt.sh from csky_cores.def. -; Copyright (C) 2018 Free Software Foundation, Inc. +; Copyright (C) 2018-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/predicates.md 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicates for C-SKY. -;; Copyright (C) 2018 Free Software Foundation, Inc. +;; Copyright (C) 2018-2019 Free Software Foundation, Inc. ;; Contributed by C-SKY Microsystems and Mentor Graphics. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/print-sysroot-suffix.sh gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/print-sysroot-suffix.sh --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/print-sysroot-suffix.sh 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/print-sysroot-suffix.sh 2019-01-02 08:05:19.000000000 +0000 @@ -2,7 +2,7 @@ # Script to generate SYSROOT_SUFFIX_SPEC equivalent to MULTILIB_OSDIRNAMES # Arguments are MULTILIB_OSDIRNAMES, MULTILIB_OPTIONS and MULTILIB_MATCHES. -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # Contributed by C-SKY Microsystems and Mentor Graphics. # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/t-csky gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/t-csky --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/t-csky 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/t-csky 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ # Make rules for all C-SKY targets. # -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # Contributed by C-SKY Microsystems and Mentor Graphics. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/t-csky-elf gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/t-csky-elf --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/t-csky-elf 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/t-csky-elf 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ # Multilib configuration for csky*-elf. # -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # Contributed by C-SKY Microsystems and Mentor Graphics. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/t-csky-linux gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/t-csky-linux --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/t-csky-linux 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/t-csky-linux 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ # Multilib configuration for csky*-linux-*. # -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # Contributed by C-SKY Microsystems and Mentor Graphics. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/t-sysroot-suffix gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/t-sysroot-suffix --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/csky/t-sysroot-suffix 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/csky/t-sysroot-suffix 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ # Makefile fragment for C-SKY sysroot suffix. # -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # Contributed by C-SKY Microsystems and Mentor Graphics. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin10.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin10.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin10.h 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin10.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target definitions for Darwin (Mac OS X) systems. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Jack Howarth . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin12.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin12.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin12.h 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin12.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target definitions for Darwin (Mac OS X) systems. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Jack Howarth . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin9.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin9.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin9.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin9.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target definitions for Darwin (Mac OS X) systems. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Apple Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin.c 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Functions for generic Darwin as target machine for GNU C compiler. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. Contributed by Apple Computer Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin-c.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin-c.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Darwin support needed only by C/C++ frontends. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Apple Computer Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin-driver.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin-driver.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin-driver.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin-driver.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Additional functions for the GCC driver on Darwin native. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Apple Computer Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin-f.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin-f.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin-f.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin-f.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Darwin support needed only by Fortran frontends. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Daniel Franke. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin.h 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target definitions for Darwin (Mac OS X) systems. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. Contributed by Apple Computer Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin.opt 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Processor-independent options for Darwin. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin-ppc-ldouble-patch.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin-ppc-ldouble-patch.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin-ppc-ldouble-patch.def 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin-ppc-ldouble-patch.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin-protos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin-sections.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin-sections.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/darwin-sections.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/darwin-sections.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/dbxcoff.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/dbxcoff.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/dbxcoff.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/dbxcoff.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions needed when using stabs embedded in COFF sections. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/dbxelf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/dbxelf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/dbxelf.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/dbxelf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions needed when using stabs embedded in ELF sections. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/dbx.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/dbx.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/dbx.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/dbx.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Prefer DBX (stabs) debugging information. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/default-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/default-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/default-c.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/default-c.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Default C-family target hooks initializer. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/default-d.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/default-d.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/default-d.c 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/default-d.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Default D language target hooks initializer. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/dragonfly.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/dragonfly.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/dragonfly.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/dragonfly.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Base configuration file for all DragonFly targets. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by John Marino This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/dragonfly.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/dragonfly.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/dragonfly.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/dragonfly.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; DragonFly BSD options. -; Copyright (C) 2014-2018 Free Software Foundation, Inc. +; Copyright (C) 2014-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/dragonfly-stdint.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/dragonfly-stdint.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/dragonfly-stdint.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/dragonfly-stdint.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for types for DragonFly systems. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by John Marino This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/elfos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/elfos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/elfos.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/elfos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* elfos.h -- operating system specific defines to be used when targeting GCC for some generic ELF system - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. Based on svr4.h contributed by Ron Guilmette (rfg@netcom.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/constraints.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for Adaptiva epiphany -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; Contributed by Embecosm on behalf of Adapteva, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/epiphany.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/epiphany.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/epiphany.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/epiphany.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for code generation on the EPIPHANY cpu. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/epiphany.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/epiphany.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/epiphany.h 2018-01-09 03:04:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/epiphany.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, Argonaut EPIPHANY cpu. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/epiphany_intrinsics.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/epiphany_intrinsics.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/epiphany_intrinsics.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/epiphany_intrinsics.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Epiphany intrinsic functions - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/epiphany.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/epiphany.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/epiphany.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/epiphany.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description of the Adaptiva epiphany cpu for GNU C compiler -;; Copyright (C) 1994-2018 Free Software Foundation, Inc. +;; Copyright (C) 1994-2019 Free Software Foundation, Inc. ;; Contributed by Embecosm on behalf of Adapteva, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/epiphany-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/epiphany-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/epiphany-modes.def 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/epiphany-modes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, Adapteva Epiphany cpu. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/epiphany.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/epiphany.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/epiphany.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/epiphany.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the Adapteva EPIPHANY port of the compiler ; -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; Contributed by Embecosm on behalf of Adapteva, Inc. ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/epiphany-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/epiphany-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/epiphany-protos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/epiphany-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, EPIPHANY cpu. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/epiphany-sched.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/epiphany-sched.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/epiphany-sched.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/epiphany-sched.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; DFA scheduling description for EPIPHANY -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; Contributed by Embecosm on behalf of Adapteva, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/mode-switch-use.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/mode-switch-use.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/mode-switch-use.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/mode-switch-use.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Insert USEs in instructions that require mode switching. This should probably be merged into mode-switching.c . - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/predicates.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for code generation on the EPIPHANY cpu. -;; Copyright (C) 1994-2018 Free Software Foundation, Inc. +;; Copyright (C) 1994-2019 Free Software Foundation, Inc. ;; Contributed by Embecosm on behalf of Adapteva, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/resolve-sw-modes.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/resolve-sw-modes.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/resolve-sw-modes.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/resolve-sw-modes.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Mode switching cleanup pass for the EPIPHANY cpu. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/rtems.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/rtems.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/rtems.h 2018-01-05 23:36:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/rtems.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for RTEMS based EPIPHANY systems. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/t-epiphany gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/t-epiphany --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/epiphany/t-epiphany 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/epiphany/t-epiphany 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # Contributed by Embecosm on behalf of Adapteva, Inc. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/flat.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/flat.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/flat.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/flat.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Defines to be used for targets that support flat executables. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/fr30/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/fr30/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/fr30/constraints.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/fr30/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for the FR30. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/fr30/fr30.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/fr30/fr30.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/fr30/fr30.c 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/fr30/fr30.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* FR30 specific functions. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Cygnus Solutions. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/fr30/fr30.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/fr30/fr30.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/fr30/fr30.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/fr30/fr30.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,7 +1,7 @@ /*{{{ Comment. */ /* Definitions of FR30 target. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Cygnus Solutions. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/fr30/fr30.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/fr30/fr30.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/fr30/fr30.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/fr30/fr30.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; FR30 machine description. -;; Copyright (C) 1998-2018 Free Software Foundation, Inc. +;; Copyright (C) 1998-2019 Free Software Foundation, Inc. ;; Contributed by Cygnus Solutions. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/fr30/fr30.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/fr30/fr30.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/fr30/fr30.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/fr30/fr30.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the FR30 port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/fr30/fr30-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/fr30/fr30-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/fr30/fr30-protos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/fr30/fr30-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes for fr30.c functions used in the md file & elsewhere. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/fr30/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/fr30/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/fr30/predicates.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/fr30/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for FR30. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/freebsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/freebsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/freebsd.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/freebsd.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Base configuration file for all FreeBSD targets. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/freebsd-nthr.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/freebsd-nthr.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/freebsd-nthr.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/freebsd-nthr.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* FreeBSD configuration setting for FreeBSD systems. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Loren J. Rittle This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/freebsd.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/freebsd.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/freebsd.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/freebsd.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; FreeBSD options. -; Copyright (C) 2010-2018 Free Software Foundation, Inc. +; Copyright (C) 2010-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/freebsd-spec.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/freebsd-spec.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/freebsd-spec.h 2018-05-31 09:39:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/freebsd-spec.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Base configuration file for all FreeBSD targets. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/freebsd-stdint.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/freebsd-stdint.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/freebsd-stdint.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/freebsd-stdint.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for types for FreeBSD systems. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Gerald Pfeifer . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/constraints.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for FRV. -;; Copyright (C) 2001-2018 Free Software Foundation, Inc. +;; Copyright (C) 2001-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/frv-asm.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/frv-asm.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/frv-asm.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/frv-asm.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Assembler Support. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Red Hat, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/frv.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/frv.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/frv.c 2018-08-12 11:28:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/frv.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Red Hat, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/frv.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/frv.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/frv.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/frv.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target macros for the FRV port of GCC. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Red Hat Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/frv.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/frv.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/frv.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/frv.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Frv Machine Description -;; Copyright (C) 1999-2018 Free Software Foundation, Inc. +;; Copyright (C) 1999-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/frv-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/frv-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/frv-modes.def 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/frv-modes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler for FRV. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/frv.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/frv.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/frv.opt 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/frv.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the FR-V port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/frv-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/frv-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/frv-opts.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/frv-opts.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Frv option-handling defitions. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/frv-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/frv-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/frv-protos.h 2018-06-22 07:37:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/frv-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Frv prototypes. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Red Hat, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/linux.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/linux.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target macros for the FRV Linux port of GCC. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Red Hat Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/predicates.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for Frv. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/t-frv gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/t-frv --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/t-frv 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/t-frv 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/t-linux gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/t-linux --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/frv/t-linux 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/frv/t-linux 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ft32/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ft32/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ft32/constraints.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ft32/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for FT32 -;; Copyright (C) 2015-2018 Free Software Foundation, Inc. +;; Copyright (C) 2015-2019 Free Software Foundation, Inc. ;; Contributed by FTDI ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ft32/ft32.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ft32/ft32.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ft32/ft32.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ft32/ft32.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target Code for ft32 - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by FTDI This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ft32/ft32.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ft32/ft32.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ft32/ft32.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ft32/ft32.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target Definitions for ft32. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by FTDI This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ft32/ft32.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ft32/ft32.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ft32/ft32.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ft32/ft32.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for FT32 -;; Copyright (C) 2015-2018 Free Software Foundation, Inc. +;; Copyright (C) 2015-2019 Free Software Foundation, Inc. ;; Contributed by FTDI ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ft32/ft32.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ft32/ft32.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ft32/ft32.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ft32/ft32.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the FT32 port of the compiler. -; Copyright (C) 2015-2018 Free Software Foundation, Inc. +; Copyright (C) 2015-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ft32/ft32-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ft32/ft32-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ft32/ft32-protos.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ft32/ft32-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes for ft32.c functions used in the md file & elsewhere. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ft32/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ft32/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ft32/predicates.md 2018-10-16 07:05:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ft32/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for FT32 -;; Copyright (C) 2015-2018 Free Software Foundation, Inc. +;; Copyright (C) 2015-2019 Free Software Foundation, Inc. ;; Contributed by FTDI ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ft32/t-ft32 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ft32/t-ft32 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ft32/t-ft32 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ft32/t-ft32 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ # Target Makefile Fragment for ft32 -# Copyright (C) 2015-2018 Free Software Foundation, Inc. +# Copyright (C) 2015-2019 Free Software Foundation, Inc. # Contributed by FTDI # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/fuchsia.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/fuchsia.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/fuchsia.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/fuchsia.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Base configuration file for all Fuchsia targets. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Google. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/fused-madd.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/fused-madd.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/fused-madd.opt 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/fused-madd.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; -mfused-madd option (some targets only). ; -; Copyright (C) 2010-2018 Free Software Foundation, Inc. +; Copyright (C) 2010-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/glibc-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/glibc-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/glibc-c.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/glibc-c.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* C-family target hooks initializer for targets possibly using glibc. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/glibc-d.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/glibc-d.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/glibc-d.c 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/glibc-d.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Glibc support needed only by D front-end. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/glibc-stdint.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/glibc-stdint.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/glibc-stdint.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/glibc-stdint.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for types on systems using GNU libc or uClibc. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/gnu.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/gnu.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/gnu.h 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/gnu.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ /* Configuration common to all targets running the GNU system. */ /* -Copyright (C) 1994-2018 Free Software Foundation, Inc. +Copyright (C) 1994-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/gnu-user.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/gnu-user.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/gnu-user.h 2018-11-28 13:52:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/gnu-user.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ /* Definitions for systems using, at least optionally, a GNU (glibc-based) userspace or other userspace with libc derived from glibc (e.g. uClibc) or for which similar specs are appropriate. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. Contributed by Eric Youngdale. Modified for stabs-in-ELF by H.J. Lu (hjl@lucon.org). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/gnu-user.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/gnu-user.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/gnu-user.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/gnu-user.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for systems using gnu-user.h. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/g.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/g.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/g.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/g.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; -G option (small data, some targets only). -; Copyright (C) 2003-2018 Free Software Foundation, Inc. +; Copyright (C) 2003-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/constraints.md 2018-11-29 22:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for Renesas H8/300. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/elf.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. Renesas H8/300 version generating elf - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Steve Chamberlain (sac@cygnus.com), Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/genmova.sh gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/genmova.sh --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/genmova.sh 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/genmova.sh 2019-01-02 08:05:19.000000000 +0000 @@ -2,7 +2,7 @@ # Generate mova.md, a file containing patterns that can be implemented # using the h8sx mova instruction. -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -22,7 +22,7 @@ echo ";; -*- buffer-read-only: t -*-" echo ";; Generated automatically from genmova.sh" -echo ";; Copyright (C) 2004-2018 Free Software Foundation, Inc." +echo ";; Copyright (C) 2004-2019 Free Software Foundation, Inc." echo ";;" echo ";; This file is part of GCC." echo ";;" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/h8300.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/h8300.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/h8300.c 2018-10-24 09:05:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/h8300.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for insn-output.c for Renesas H8/300. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Contributed by Steve Chamberlain (sac@cygnus.com), Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/h8300.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/h8300.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/h8300.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/h8300.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. Renesas H8/300 (generic) - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Contributed by Steve Chamberlain (sac@cygnus.com), Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/h8300.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/h8300.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/h8300.md 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/h8300.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for Renesas H8/300 -;; Copyright (C) 1992-2018 Free Software Foundation, Inc. +;; Copyright (C) 1992-2019 Free Software Foundation, Inc. ;; Contributed by Steve Chamberlain (sac@cygnus.com), ;; Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/h8300.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/h8300.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/h8300.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/h8300.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the Renesas H8/300 port of the compiler ; -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/h8300-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/h8300-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/h8300-protos.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/h8300-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. Renesas H8/300 version - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Steve Chamberlain (sac@cygnus.com), Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/linux.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/linux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. Renesas H8/300 (linux variant) - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Yoshinori Sato This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/mova.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/mova.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/mova.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/mova.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ;; -*- buffer-read-only: t -*- ;; Generated automatically from genmova.sh -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/predicates.md 2018-11-29 22:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for Renesas H8/300. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/t-h8300 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/t-h8300 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/t-h8300 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/t-h8300 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1993-2018 Free Software Foundation, Inc. +# Copyright (C) 1993-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/t-linux gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/t-linux --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/h8300/t-linux 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/h8300/t-linux 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2015-2018 Free Software Foundation, Inc. +# Copyright (C) 2015-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/host-darwin.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/host-darwin.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/host-darwin.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/host-darwin.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Darwin host-specific hook definitions. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/host-darwin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/host-darwin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/host-darwin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/host-darwin.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Darwin host-specific hook definitions. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/host-hpux.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/host-hpux.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/host-hpux.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/host-hpux.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* HP-UX host-specific hook definitions. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/host-linux.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/host-linux.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/host-linux.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/host-linux.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Linux host-specific hook definitions. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/host-netbsd.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/host-netbsd.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/host-netbsd.c 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/host-netbsd.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* NetBSD host-specific hook definitions. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/host-openbsd.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/host-openbsd.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/host-openbsd.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/host-openbsd.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* OpenBSD host-specific hook definitions. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/host-solaris.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/host-solaris.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/host-solaris.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/host-solaris.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Solaris host-specific hook definitions. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/hpux11.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/hpux11.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/hpux11.opt 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/hpux11.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; HP-UX 11 options. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/adxintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/adxintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/adxintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/adxintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/ammintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/ammintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/ammintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/ammintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/athlon.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/athlon.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/athlon.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/athlon.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2002-2018 Free Software Foundation, Inc. +;; Copyright (C) 2002-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/atom.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/atom.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/atom.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/atom.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Atom Scheduling -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/att.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/att.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/att.h 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/att.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for AT&T assembler syntax for the Intel 80386. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx2intrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx2intrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx2intrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx2intrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. +/* Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx5124fmapsintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx5124fmapsintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx5124fmapsintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx5124fmapsintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx5124vnniwintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx5124vnniwintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx5124vnniwintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx5124vnniwintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512bitalgintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512bitalgintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512bitalgintrin.h 2018-07-13 06:43:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512bitalgintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2018 Free Software Foundation, Inc. +/* Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512bwintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512bwintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512bwintrin.h 2018-07-13 06:43:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512bwintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512cdintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512cdintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512cdintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512cdintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512dqintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512dqintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512dqintrin.h 2018-02-05 18:29:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512dqintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512erintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512erintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512erintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512erintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512fintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512fintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512fintrin.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512fintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512ifmaintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512ifmaintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512ifmaintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512ifmaintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512ifmavlintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512ifmavlintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512ifmavlintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512ifmavlintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512pfintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512pfintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512pfintrin.h 2018-10-23 14:46:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512pfintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vbmi2intrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vbmi2intrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vbmi2intrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vbmi2intrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vbmi2vlintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vbmi2vlintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vbmi2vlintrin.h 2018-07-13 06:43:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vbmi2vlintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vbmiintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vbmiintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vbmiintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vbmiintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vbmivlintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vbmivlintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vbmivlintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vbmivlintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vlbwintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vlbwintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vlbwintrin.h 2018-10-23 14:46:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vlbwintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vldqintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vldqintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vldqintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vldqintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vlintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vlintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vlintrin.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vlintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vnniintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vnniintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vnniintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vnniintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vnnivlintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vnnivlintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vnnivlintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vnnivlintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vpopcntdqintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vpopcntdqintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vpopcntdqintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vpopcntdqintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2018 Free Software Foundation, Inc. +/* Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vpopcntdqvlintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vpopcntdqvlintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avx512vpopcntdqvlintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avx512vpopcntdqvlintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2018 Free Software Foundation, Inc. +/* Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avxintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avxintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avxintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avxintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avxmath.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avxmath.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/avxmath.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/avxmath.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2018 Free Software Foundation, Inc. +/* Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/bdver1.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/bdver1.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/bdver1.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/bdver1.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/bdver3.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/bdver3.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/bdver3.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/bdver3.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/biarch64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/biarch64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/biarch64.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/biarch64.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,7 +1,7 @@ /* Make configure files to produce biarch compiler defaulting to 64bit mode. This file must be included very first, while the OS specific file later to overwrite otherwise wrong defaults. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Bo Thorsen . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/biarchx32.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/biarchx32.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/biarchx32.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/biarchx32.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,7 +1,7 @@ /* Make configure files to produce biarch compiler defaulting to x32 mode. This file must be included very first, while the OS specific file later to overwrite otherwise wrong defaults. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/bmi2intrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/bmi2intrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/bmi2intrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/bmi2intrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. +/* Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/bmiintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/bmiintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/bmiintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/bmiintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2018 Free Software Foundation, Inc. +/* Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/bmmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/bmmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/bmmintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/bmmintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/bsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/bsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/bsd.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/bsd.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,7 +1,7 @@ /* Definitions for BSD assembler syntax for Intel 386 (actually AT&T syntax for insns and operands, adapted to BSD conventions for symbol names and debugging.) - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/btver2.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/btver2.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/btver2.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/btver2.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cet.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cet.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cet.c 2018-04-23 08:51:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cet.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Functions for CET/x86. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cet.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cet.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cet.h 2018-04-23 08:51:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cet.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* ELF program property for Intel CET. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cetintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cetintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cetintrin.h 2018-02-15 00:59:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cetintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cldemoteintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cldemoteintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cldemoteintrin.h 2018-06-04 16:10:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cldemoteintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Free Software Foundation, Inc. +/* Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/clflushoptintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/clflushoptintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/clflushoptintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/clflushoptintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/clwbintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/clwbintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/clwbintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/clwbintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/clzerointrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/clzerointrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/clzerointrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/clzerointrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/constraints.md 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for IA-32 and x86-64. -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/core2.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/core2.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/core2.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/core2.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling for Core 2 and derived processors. -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cpuid.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cpuid.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cpuid.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cpuid.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2007-2018 Free Software Foundation, Inc. + * Copyright (C) 2007-2019 Free Software Foundation, Inc. * * This file is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cross-stdarg.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cross-stdarg.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cross-stdarg.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cross-stdarg.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/crtdll.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/crtdll.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/crtdll.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/crtdll.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,7 +1,7 @@ /* Operating system specific defines to be used when targeting GCC for hosting on Windows32, using GNU tools and the Windows32 API Library. This variant uses CRTDLL.DLL instead of MSVCRTDLL.DLL. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cygming.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cygming.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cygming.h 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cygming.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Operating system specific defines to be used when targeting GCC for hosting on Windows32, using a Unix style C library and tools. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cygming.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cygming.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cygming.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cygming.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Cygwin- and MinGW-specific options. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cygwin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cygwin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cygwin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cygwin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Operating system specific defines to be used when targeting GCC for hosting on Windows32, using a Unix style C library and tools. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cygwin.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cygwin.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cygwin.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cygwin.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Cygwin-specific options. -; Copyright (C) 2013-2018 Free Software Foundation, Inc. +; Copyright (C) 2013-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cygwin-stdint.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cygwin-stdint.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cygwin-stdint.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cygwin-stdint.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for types on systems using Cygwin. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cygwin-w64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cygwin-w64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/cygwin-w64.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/cygwin-w64.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,7 +1,7 @@ /* Operating system specific defines to be used when targeting GCC for hosting on Windows 32/64 via Cygwin runtime, using GNU tools and the Windows API Library. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/darwin64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/darwin64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/darwin64.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/darwin64.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target definitions for x86_64 running Darwin. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Apple Computer Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/darwin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/darwin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/darwin.h 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/darwin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target definitions for x86 running Darwin. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Apple Computer Inc. This file is part of GCC. @@ -219,6 +219,11 @@ } \ } while (0) +/* Darwin x86 assemblers support the .ident directive. */ + +#undef TARGET_ASM_OUTPUT_IDENT +#define TARGET_ASM_OUTPUT_IDENT default_asm_output_ident_directive + /* Darwin profiling -- call mcount. */ #undef FUNCTION_PROFILER #define FUNCTION_PROFILER(FILE, LABELNO) \ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/djgpp.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/djgpp.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/djgpp.c 2018-08-02 03:04:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/djgpp.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for DJGPP. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/djgpp.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/djgpp.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/djgpp.h 2018-08-02 03:04:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/djgpp.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Configuration for an i386 running MS-DOS with DJGPP. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/djgpp.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/djgpp.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/djgpp.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/djgpp.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; DJGPP-specific options. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/djgpp-stdint.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/djgpp-stdint.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/djgpp-stdint.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/djgpp-stdint.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for types on systems using DJGPP. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/dragonfly.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/dragonfly.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/dragonfly.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/dragonfly.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for Intel 386 running DragonFly with ELF format - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by John Marino This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/driver-i386.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/driver-i386.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/driver-i386.c 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/driver-i386.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the gcc driver. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -832,8 +832,12 @@ cpu = "skylake"; break; case 0x55: - /* Skylake with AVX-512. */ - cpu = "skylake-avx512"; + if (has_avx512vnni) + /* Cascade Lake. */ + cpu = "cascadelake"; + else + /* Skylake with AVX-512. */ + cpu = "skylake-avx512"; break; case 0x57: /* Knights Landing. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/driver-mingw32.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/driver-mingw32.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/driver-mingw32.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/driver-mingw32.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Host OS specific configuration for the gcc driver. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/emmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/emmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/emmintrin.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/emmintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2018 Free Software Foundation, Inc. +/* Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/f16cintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/f16cintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/f16cintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/f16cintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. +/* Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/fma4intrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/fma4intrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/fma4intrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/fma4intrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/fmaintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/fmaintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/fmaintrin.h 2018-10-22 12:08:01.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/fmaintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. +/* Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/freebsd64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/freebsd64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/freebsd64.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/freebsd64.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for AMD x86-64 running FreeBSD with ELF format - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by David O'Brien This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/freebsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/freebsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/freebsd.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/freebsd.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for Intel 386 running FreeBSD with ELF format - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Eric Youngdale. Modified for stabs-in-ELF by H.J. Lu. Adapted from GNU/Linux version by John Polstra. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/fxsrintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/fxsrintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/fxsrintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/fxsrintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/gas.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/gas.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/gas.h 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/gas.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for Intel 386 using GAS. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/geode.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/geode.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/geode.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/geode.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Geode Scheduling -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/gfniintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/gfniintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/gfniintrin.h 2018-01-05 23:36:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/gfniintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2018 Free Software Foundation, Inc. +/* Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/glm.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/glm.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/glm.md 2018-05-12 14:22:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/glm.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Goldmont(GLM) Scheduling -;; Copyright (C) 2018 Free Software Foundation, Inc. +;; Copyright (C) 2018-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/gmm_malloc.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/gmm_malloc.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/gmm_malloc.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/gmm_malloc.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2018 Free Software Foundation, Inc. +/* Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/gnu.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/gnu.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/gnu.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/gnu.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,7 +1,7 @@ /* Configuration for an i386 running GNU with ELF as the target machine. */ /* -Copyright (C) 1994-2018 Free Software Foundation, Inc. +Copyright (C) 1994-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/gnu-user64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/gnu-user64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/gnu-user64.h 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/gnu-user64.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for AMD x86-64 using GNU userspace. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka , based on linux.h. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/gnu-user-common.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/gnu-user-common.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/gnu-user-common.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/gnu-user-common.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Common definitions for Intel 386 and AMD x86-64 systems using - GNU userspace. Copyright (C) 2012-2018 Free Software Foundation, Inc. + GNU userspace. Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Ilya Enkovich. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/gnu-user.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/gnu-user.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/gnu-user.h 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/gnu-user.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for Intel 386 systems using GNU userspace. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. Contributed by Eric Youngdale. Modified for stabs-in-ELF by H.J. Lu. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/haswell.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/haswell.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/haswell.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/haswell.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling for Haswell and derived processors. -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/host-cygwin.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/host-cygwin.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/host-cygwin.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/host-cygwin.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Cygwin host-specific hook definitions. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/host-i386-darwin.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/host-i386-darwin.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/host-i386-darwin.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/host-i386-darwin.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* i386-darwin host-specific hook definitions. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/host-mingw32.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/host-mingw32.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/host-mingw32.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/host-mingw32.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* mingw32 host-specific hook definitions. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386-builtin.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386-builtin.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386-builtin.def 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386-builtin.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Builtin functions for ia32. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386-builtin-types.awk gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386-builtin-types.awk --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386-builtin-types.awk 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386-builtin-types.awk 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386-builtin-types.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386-builtin-types.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386-builtin-types.def 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386-builtin-types.def 2018-12-19 03:57:00.000000000 +0000 @@ -1068,7 +1068,14 @@ DEF_FUNCTION_TYPE (VOID, PDOUBLE, QI, V16SI, V8DF, INT) DEF_FUNCTION_TYPE (VOID, PINT, HI, V8DI, V16SI, INT) DEF_FUNCTION_TYPE (VOID, PLONGLONG, QI, V16SI, V8DI, INT) - +DEF_FUNCTION_TYPE (VOID, PFLOAT, QI, V4DI, V8SF, INT) +DEF_FUNCTION_TYPE (VOID, PDOUBLE, QI, V8SI, V4DF, INT) +DEF_FUNCTION_TYPE (VOID, PINT, QI, V4DI, V8SI, INT) +DEF_FUNCTION_TYPE (VOID, PLONGLONG, QI, V8SI, V4DI, INT) +DEF_FUNCTION_TYPE (VOID, PFLOAT, QI, V2DI, V4SF, INT) +DEF_FUNCTION_TYPE (VOID, PDOUBLE, QI, V4SI, V2DF, INT) +DEF_FUNCTION_TYPE (VOID, PINT, QI, V2DI, V4SI, INT) +DEF_FUNCTION_TYPE (VOID, PLONGLONG, QI, V4SI, V2DI, INT) DEF_FUNCTION_TYPE (V16SF, V16SF, PCVOID, V16SI, HI, INT) DEF_FUNCTION_TYPE (V8DF, V8DF, PCVOID, V8SI, QI, INT) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386.c 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for code generation on IA-32. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -2640,6 +2640,9 @@ if (!lookup_attribute ("nocf_check", TYPE_ATTRIBUTES (TREE_TYPE (cfun->decl))) + && (!flag_manual_endbr + || lookup_attribute ("cf_check", + DECL_ATTRIBUTES (cfun->decl))) && !cgraph_node::get (cfun->decl)->only_called_directly_p ()) { /* Queue ENDBR insertion to x86_function_profiler. */ @@ -23590,33 +23593,117 @@ cmp = gen_rtx_SUBREG (mode, cmp, 0); } - if (vector_all_ones_operand (op_true, mode) - && rtx_equal_p (op_false, CONST0_RTX (mode)) - && !maskcmp) + if (maskcmp) + { + rtx (*gen) (rtx, rtx) = NULL; + if ((op_true == CONST0_RTX (mode) + && vector_all_ones_operand (op_false, mode)) + || (op_false == CONST0_RTX (mode) + && vector_all_ones_operand (op_true, mode))) + switch (mode) + { + case E_V64QImode: + if (TARGET_AVX512BW) + gen = gen_avx512bw_cvtmask2bv64qi; + break; + case E_V32QImode: + if (TARGET_AVX512VL && TARGET_AVX512BW) + gen = gen_avx512vl_cvtmask2bv32qi; + break; + case E_V16QImode: + if (TARGET_AVX512VL && TARGET_AVX512BW) + gen = gen_avx512vl_cvtmask2bv16qi; + break; + case E_V32HImode: + if (TARGET_AVX512BW) + gen = gen_avx512bw_cvtmask2wv32hi; + break; + case E_V16HImode: + if (TARGET_AVX512VL && TARGET_AVX512BW) + gen = gen_avx512vl_cvtmask2wv16hi; + break; + case E_V8HImode: + if (TARGET_AVX512VL && TARGET_AVX512BW) + gen = gen_avx512vl_cvtmask2wv8hi; + break; + case E_V16SImode: + if (TARGET_AVX512DQ) + gen = gen_avx512f_cvtmask2dv16si; + break; + case E_V8SImode: + if (TARGET_AVX512VL && TARGET_AVX512DQ) + gen = gen_avx512vl_cvtmask2dv8si; + break; + case E_V4SImode: + if (TARGET_AVX512VL && TARGET_AVX512DQ) + gen = gen_avx512vl_cvtmask2dv4si; + break; + case E_V8DImode: + if (TARGET_AVX512DQ) + gen = gen_avx512f_cvtmask2qv8di; + break; + case E_V4DImode: + if (TARGET_AVX512VL && TARGET_AVX512DQ) + gen = gen_avx512vl_cvtmask2qv4di; + break; + case E_V2DImode: + if (TARGET_AVX512VL && TARGET_AVX512DQ) + gen = gen_avx512vl_cvtmask2qv2di; + break; + default: + break; + } + if (gen && SCALAR_INT_MODE_P (cmpmode)) + { + cmp = force_reg (cmpmode, cmp); + if (op_true == CONST0_RTX (mode)) + { + rtx (*gen_not) (rtx, rtx); + switch (cmpmode) + { + case E_QImode: gen_not = gen_knotqi; break; + case E_HImode: gen_not = gen_knothi; break; + case E_SImode: gen_not = gen_knotsi; break; + case E_DImode: gen_not = gen_knotdi; break; + default: gcc_unreachable (); + } + rtx n = gen_reg_rtx (cmpmode); + emit_insn (gen_not (n, cmp)); + cmp = n; + } + emit_insn (gen (dest, cmp)); + return; + } + } + else if (vector_all_ones_operand (op_true, mode) + && op_false == CONST0_RTX (mode)) { emit_insn (gen_rtx_SET (dest, cmp)); + return; } - else if (op_false == CONST0_RTX (mode) && !maskcmp) + else if (op_false == CONST0_RTX (mode)) { op_true = force_reg (mode, op_true); x = gen_rtx_AND (mode, cmp, op_true); emit_insn (gen_rtx_SET (dest, x)); + return; } - else if (op_true == CONST0_RTX (mode) && !maskcmp) + else if (op_true == CONST0_RTX (mode)) { op_false = force_reg (mode, op_false); x = gen_rtx_NOT (mode, cmp); x = gen_rtx_AND (mode, x, op_false); emit_insn (gen_rtx_SET (dest, x)); + return; } - else if (INTEGRAL_MODE_P (mode) && op_true == CONSTM1_RTX (mode) - && !maskcmp) + else if (INTEGRAL_MODE_P (mode) && op_true == CONSTM1_RTX (mode)) { op_false = force_reg (mode, op_false); x = gen_rtx_IOR (mode, cmp, op_false); emit_insn (gen_rtx_SET (dest, x)); + return; } - else if (TARGET_XOP && !maskcmp) + else if (TARGET_XOP) { op_true = force_reg (mode, op_true); @@ -23626,127 +23713,126 @@ emit_insn (gen_rtx_SET (dest, gen_rtx_IF_THEN_ELSE (mode, cmp, op_true, op_false))); + return; } - else - { - rtx (*gen) (rtx, rtx, rtx, rtx) = NULL; - rtx d = dest; - - if (!vector_operand (op_true, mode)) - op_true = force_reg (mode, op_true); - op_false = force_reg (mode, op_false); - - switch (mode) - { - case E_V4SFmode: - if (TARGET_SSE4_1) - gen = gen_sse4_1_blendvps; - break; - case E_V2DFmode: - if (TARGET_SSE4_1) - gen = gen_sse4_1_blendvpd; - break; - case E_SFmode: - if (TARGET_SSE4_1) - { - gen = gen_sse4_1_blendvss; - op_true = force_reg (mode, op_true); - } - break; - case E_DFmode: - if (TARGET_SSE4_1) - { - gen = gen_sse4_1_blendvsd; - op_true = force_reg (mode, op_true); - } - break; - case E_V16QImode: - case E_V8HImode: - case E_V4SImode: - case E_V2DImode: - if (TARGET_SSE4_1) - { - gen = gen_sse4_1_pblendvb; - if (mode != V16QImode) - d = gen_reg_rtx (V16QImode); - op_false = gen_lowpart (V16QImode, op_false); - op_true = gen_lowpart (V16QImode, op_true); - cmp = gen_lowpart (V16QImode, cmp); - } - break; - case E_V8SFmode: - if (TARGET_AVX) - gen = gen_avx_blendvps256; - break; - case E_V4DFmode: - if (TARGET_AVX) - gen = gen_avx_blendvpd256; - break; - case E_V32QImode: - case E_V16HImode: - case E_V8SImode: - case E_V4DImode: - if (TARGET_AVX2) - { - gen = gen_avx2_pblendvb; - if (mode != V32QImode) - d = gen_reg_rtx (V32QImode); - op_false = gen_lowpart (V32QImode, op_false); - op_true = gen_lowpart (V32QImode, op_true); - cmp = gen_lowpart (V32QImode, cmp); - } - break; + rtx (*gen) (rtx, rtx, rtx, rtx) = NULL; + rtx d = dest; - case E_V64QImode: - gen = gen_avx512bw_blendmv64qi; - break; - case E_V32HImode: - gen = gen_avx512bw_blendmv32hi; - break; - case E_V16SImode: - gen = gen_avx512f_blendmv16si; - break; - case E_V8DImode: - gen = gen_avx512f_blendmv8di; - break; - case E_V8DFmode: - gen = gen_avx512f_blendmv8df; - break; - case E_V16SFmode: - gen = gen_avx512f_blendmv16sf; - break; + if (!vector_operand (op_true, mode)) + op_true = force_reg (mode, op_true); - default: - break; - } + op_false = force_reg (mode, op_false); - if (gen != NULL) + switch (mode) + { + case E_V4SFmode: + if (TARGET_SSE4_1) + gen = gen_sse4_1_blendvps; + break; + case E_V2DFmode: + if (TARGET_SSE4_1) + gen = gen_sse4_1_blendvpd; + break; + case E_SFmode: + if (TARGET_SSE4_1) { - emit_insn (gen (d, op_false, op_true, cmp)); - if (d != dest) - emit_move_insn (dest, gen_lowpart (GET_MODE (dest), d)); + gen = gen_sse4_1_blendvss; + op_true = force_reg (mode, op_true); } - else + break; + case E_DFmode: + if (TARGET_SSE4_1) { + gen = gen_sse4_1_blendvsd; op_true = force_reg (mode, op_true); + } + break; + case E_V16QImode: + case E_V8HImode: + case E_V4SImode: + case E_V2DImode: + if (TARGET_SSE4_1) + { + gen = gen_sse4_1_pblendvb; + if (mode != V16QImode) + d = gen_reg_rtx (V16QImode); + op_false = gen_lowpart (V16QImode, op_false); + op_true = gen_lowpart (V16QImode, op_true); + cmp = gen_lowpart (V16QImode, cmp); + } + break; + case E_V8SFmode: + if (TARGET_AVX) + gen = gen_avx_blendvps256; + break; + case E_V4DFmode: + if (TARGET_AVX) + gen = gen_avx_blendvpd256; + break; + case E_V32QImode: + case E_V16HImode: + case E_V8SImode: + case E_V4DImode: + if (TARGET_AVX2) + { + gen = gen_avx2_pblendvb; + if (mode != V32QImode) + d = gen_reg_rtx (V32QImode); + op_false = gen_lowpart (V32QImode, op_false); + op_true = gen_lowpart (V32QImode, op_true); + cmp = gen_lowpart (V32QImode, cmp); + } + break; - t2 = gen_reg_rtx (mode); - if (optimize) - t3 = gen_reg_rtx (mode); - else - t3 = dest; + case E_V64QImode: + gen = gen_avx512bw_blendmv64qi; + break; + case E_V32HImode: + gen = gen_avx512bw_blendmv32hi; + break; + case E_V16SImode: + gen = gen_avx512f_blendmv16si; + break; + case E_V8DImode: + gen = gen_avx512f_blendmv8di; + break; + case E_V8DFmode: + gen = gen_avx512f_blendmv8df; + break; + case E_V16SFmode: + gen = gen_avx512f_blendmv16sf; + break; + + default: + break; + } + + if (gen != NULL) + { + emit_insn (gen (d, op_false, op_true, cmp)); + if (d != dest) + emit_move_insn (dest, gen_lowpart (GET_MODE (dest), d)); + } + else + { + op_true = force_reg (mode, op_true); - x = gen_rtx_AND (mode, op_true, cmp); - emit_insn (gen_rtx_SET (t2, x)); + t2 = gen_reg_rtx (mode); + if (optimize) + t3 = gen_reg_rtx (mode); + else + t3 = dest; - x = gen_rtx_NOT (mode, cmp); - x = gen_rtx_AND (mode, x, op_false); - emit_insn (gen_rtx_SET (t3, x)); + x = gen_rtx_AND (mode, op_true, cmp); + emit_insn (gen_rtx_SET (t2, x)); - x = gen_rtx_IOR (mode, t3, t2); - emit_insn (gen_rtx_SET (dest, x)); - } + x = gen_rtx_NOT (mode, cmp); + x = gen_rtx_AND (mode, x, op_false); + emit_insn (gen_rtx_SET (t3, x)); + + x = gen_rtx_IOR (mode, t3, t2); + emit_insn (gen_rtx_SET (dest, x)); } } @@ -24040,6 +24126,104 @@ } } + rtx optrue = op_true ? op_true : CONSTM1_RTX (data_mode); + rtx opfalse = op_false ? op_false : CONST0_RTX (data_mode); + if (*negate) + std::swap (optrue, opfalse); + + /* Transform x > y ? 0 : -1 (i.e. x <= y ? -1 : 0 or x <= y) when + not using integer masks into min (x, y) == x ? -1 : 0 (i.e. + min (x, y) == x). While we add one instruction (the minimum), + we remove the need for two instructions in the negation, as the + result is done this way. + When using masks, do it for SI/DImode element types, as it is shorter + than the two subtractions. */ + if ((code != EQ + && GET_MODE_SIZE (mode) != 64 + && vector_all_ones_operand (opfalse, data_mode) + && optrue == CONST0_RTX (data_mode)) + || (code == GTU + && GET_MODE_SIZE (GET_MODE_INNER (mode)) >= 4 + /* Don't do it if not using integer masks and we'd end up with + the right values in the registers though. */ + && (GET_MODE_SIZE (mode) == 64 + || !vector_all_ones_operand (optrue, data_mode) + || opfalse != CONST0_RTX (data_mode)))) + { + rtx (*gen) (rtx, rtx, rtx) = NULL; + + switch (mode) + { + case E_V16SImode: + gen = (code == GTU) ? gen_uminv16si3 : gen_sminv16si3; + break; + case E_V8DImode: + gen = (code == GTU) ? gen_uminv8di3 : gen_sminv8di3; + cop0 = force_reg (mode, cop0); + cop1 = force_reg (mode, cop1); + break; + case E_V32QImode: + if (TARGET_AVX2) + gen = (code == GTU) ? gen_uminv32qi3 : gen_sminv32qi3; + break; + case E_V16HImode: + if (TARGET_AVX2) + gen = (code == GTU) ? gen_uminv16hi3 : gen_sminv16hi3; + break; + case E_V8SImode: + if (TARGET_AVX2) + gen = (code == GTU) ? gen_uminv8si3 : gen_sminv8si3; + break; + case E_V4DImode: + if (TARGET_AVX512VL) + { + gen = (code == GTU) ? gen_uminv4di3 : gen_sminv4di3; + cop0 = force_reg (mode, cop0); + cop1 = force_reg (mode, cop1); + } + break; + case E_V16QImode: + if (code == GTU && TARGET_SSE2) + gen = gen_uminv16qi3; + else if (code == GT && TARGET_SSE4_1) + gen = gen_sminv16qi3; + break; + case E_V8HImode: + if (code == GTU && TARGET_SSE4_1) + gen = gen_uminv8hi3; + else if (code == GT && TARGET_SSE2) + gen = gen_sminv8hi3; + break; + case E_V4SImode: + if (TARGET_SSE4_1) + gen = (code == GTU) ? gen_uminv4si3 : gen_sminv4si3; + break; + case E_V2DImode: + if (TARGET_AVX512VL) + { + gen = (code == GTU) ? gen_uminv2di3 : gen_sminv2di3; + cop0 = force_reg (mode, cop0); + cop1 = force_reg (mode, cop1); + } + break; + default: + break; + } + + if (gen) + { + rtx tem = gen_reg_rtx (mode); + if (!vector_operand (cop0, mode)) + cop0 = force_reg (mode, cop0); + if (!vector_operand (cop1, mode)) + cop1 = force_reg (mode, cop1); + *negate = !*negate; + emit_insn (gen (tem, cop0, cop1)); + cop1 = tem; + code = EQ; + } + } + /* Unsigned parallel compare is not supported by the hardware. Play some tricks to turn this into a signed comparison against 0. */ @@ -30069,6 +30253,14 @@ IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI, IX86_BUILTIN_SCATTERALTDIV16SI, + IX86_BUILTIN_SCATTERALTSIV4DF, + IX86_BUILTIN_SCATTERALTDIV8SF, + IX86_BUILTIN_SCATTERALTSIV4DI, + IX86_BUILTIN_SCATTERALTDIV8SI, + IX86_BUILTIN_SCATTERALTSIV2DF, + IX86_BUILTIN_SCATTERALTDIV4SF, + IX86_BUILTIN_SCATTERALTSIV2DI, + IX86_BUILTIN_SCATTERALTDIV4SI, IX86_BUILTIN_SCATTERDIV16SF, IX86_BUILTIN_SCATTERDIV16SI, IX86_BUILTIN_SCATTERDIV8DF, @@ -30876,7 +31068,7 @@ V4DF_FTYPE_V4DF_PCDOUBLE_V8SI_V4DF_INT, IX86_BUILTIN_GATHERALTSIV4DF); - def_builtin_pure (OPTION_MASK_ISA_AVX2, "__builtin_ia32_gatheraltdiv4sf256 ", + def_builtin_pure (OPTION_MASK_ISA_AVX2, "__builtin_ia32_gatheraltdiv8sf ", V8SF_FTYPE_V8SF_PCFLOAT_V4DI_V8SF_INT, IX86_BUILTIN_GATHERALTDIV8SF); @@ -30884,7 +31076,7 @@ V4DI_FTYPE_V4DI_PCINT64_V8SI_V4DI_INT, IX86_BUILTIN_GATHERALTSIV4DI); - def_builtin_pure (OPTION_MASK_ISA_AVX2, "__builtin_ia32_gatheraltdiv4si256 ", + def_builtin_pure (OPTION_MASK_ISA_AVX2, "__builtin_ia32_gatheraltdiv8si ", V8SI_FTYPE_V8SI_PCINT_V4DI_V8SI_INT, IX86_BUILTIN_GATHERALTDIV8SI); @@ -30921,19 +31113,19 @@ V8DI_FTYPE_V8DI_PCVOID_V8DI_QI_INT, IX86_BUILTIN_GATHER3DIV8DI); - def_builtin_pure (OPTION_MASK_ISA_AVX512F, "__builtin_ia32_gatheraltsiv8df ", + def_builtin_pure (OPTION_MASK_ISA_AVX512F, "__builtin_ia32_gather3altsiv8df ", V8DF_FTYPE_V8DF_PCDOUBLE_V16SI_QI_INT, IX86_BUILTIN_GATHER3ALTSIV8DF); - def_builtin_pure (OPTION_MASK_ISA_AVX512F, "__builtin_ia32_gatheraltdiv8sf ", + def_builtin_pure (OPTION_MASK_ISA_AVX512F, "__builtin_ia32_gather3altdiv16sf ", V16SF_FTYPE_V16SF_PCFLOAT_V8DI_HI_INT, IX86_BUILTIN_GATHER3ALTDIV16SF); - def_builtin_pure (OPTION_MASK_ISA_AVX512F, "__builtin_ia32_gatheraltsiv8di ", + def_builtin_pure (OPTION_MASK_ISA_AVX512F, "__builtin_ia32_gather3altsiv8di ", V8DI_FTYPE_V8DI_PCINT64_V16SI_QI_INT, IX86_BUILTIN_GATHER3ALTSIV8DI); - def_builtin_pure (OPTION_MASK_ISA_AVX512F, "__builtin_ia32_gatheraltdiv8si ", + def_builtin_pure (OPTION_MASK_ISA_AVX512F, "__builtin_ia32_gather3altdiv16si ", V16SI_FTYPE_V16SI_PCINT_V8DI_HI_INT, IX86_BUILTIN_GATHER3ALTDIV16SI); @@ -31113,11 +31305,12 @@ def_builtin (OPTION_MASK_ISA_AVX512VL, "__builtin_ia32_scatterdiv2di", VOID_FTYPE_PVOID_QI_V2DI_V2DI_INT, IX86_BUILTIN_SCATTERDIV2DI); + def_builtin (OPTION_MASK_ISA_AVX512F, "__builtin_ia32_scatteraltsiv8df ", VOID_FTYPE_PDOUBLE_QI_V16SI_V8DF_INT, IX86_BUILTIN_SCATTERALTSIV8DF); - def_builtin (OPTION_MASK_ISA_AVX512F, "__builtin_ia32_scatteraltdiv8sf ", + def_builtin (OPTION_MASK_ISA_AVX512F, "__builtin_ia32_scatteraltdiv16sf ", VOID_FTYPE_PFLOAT_HI_V8DI_V16SF_INT, IX86_BUILTIN_SCATTERALTDIV16SF); @@ -31125,10 +31318,42 @@ VOID_FTYPE_PLONGLONG_QI_V16SI_V8DI_INT, IX86_BUILTIN_SCATTERALTSIV8DI); - def_builtin (OPTION_MASK_ISA_AVX512F, "__builtin_ia32_scatteraltdiv8si ", + def_builtin (OPTION_MASK_ISA_AVX512F, "__builtin_ia32_scatteraltdiv16si ", VOID_FTYPE_PINT_HI_V8DI_V16SI_INT, IX86_BUILTIN_SCATTERALTDIV16SI); + def_builtin (OPTION_MASK_ISA_AVX512VL, "__builtin_ia32_scatteraltsiv4df ", + VOID_FTYPE_PDOUBLE_QI_V8SI_V4DF_INT, + IX86_BUILTIN_SCATTERALTSIV4DF); + + def_builtin (OPTION_MASK_ISA_AVX512VL, "__builtin_ia32_scatteraltdiv8sf ", + VOID_FTYPE_PFLOAT_QI_V4DI_V8SF_INT, + IX86_BUILTIN_SCATTERALTDIV8SF); + + def_builtin (OPTION_MASK_ISA_AVX512VL, "__builtin_ia32_scatteraltsiv4di ", + VOID_FTYPE_PLONGLONG_QI_V8SI_V4DI_INT, + IX86_BUILTIN_SCATTERALTSIV4DI); + + def_builtin (OPTION_MASK_ISA_AVX512VL, "__builtin_ia32_scatteraltdiv8si ", + VOID_FTYPE_PINT_QI_V4DI_V8SI_INT, + IX86_BUILTIN_SCATTERALTDIV8SI); + + def_builtin (OPTION_MASK_ISA_AVX512VL, "__builtin_ia32_scatteraltsiv2df ", + VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT, + IX86_BUILTIN_SCATTERALTSIV2DF); + + def_builtin (OPTION_MASK_ISA_AVX512VL, "__builtin_ia32_scatteraltdiv4sf ", + VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT, + IX86_BUILTIN_SCATTERALTDIV4SF); + + def_builtin (OPTION_MASK_ISA_AVX512VL, "__builtin_ia32_scatteraltsiv2di ", + VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT, + IX86_BUILTIN_SCATTERALTSIV2DI); + + def_builtin (OPTION_MASK_ISA_AVX512VL, "__builtin_ia32_scatteraltdiv4si ", + VOID_FTYPE_PINT_QI_V2DI_V4SI_INT, + IX86_BUILTIN_SCATTERALTDIV4SI); + /* AVX512PF */ def_builtin (OPTION_MASK_ISA_AVX512PF, "__builtin_ia32_gatherpfdpd", VOID_FTYPE_QI_V8SI_PCVOID_INT_INT, @@ -32390,7 +32615,8 @@ M_INTEL_COREI7_CANNONLAKE, M_INTEL_COREI7_ICELAKE_CLIENT, M_INTEL_COREI7_ICELAKE_SERVER, - M_AMDFAM17H_ZNVER2 + M_AMDFAM17H_ZNVER2, + M_INTEL_COREI7_CASCADELAKE }; static struct _arch_names_table @@ -32417,6 +32643,7 @@ {"cannonlake", M_INTEL_COREI7_CANNONLAKE}, {"icelake-client", M_INTEL_COREI7_ICELAKE_CLIENT}, {"icelake-server", M_INTEL_COREI7_ICELAKE_SERVER}, + {"cascadelake", M_INTEL_COREI7_CASCADELAKE}, {"bonnell", M_INTEL_BONNELL}, {"silvermont", M_INTEL_SILVERMONT}, {"goldmont", M_INTEL_GOLDMONT}, @@ -37524,6 +37751,30 @@ case IX86_BUILTIN_SCATTERALTDIV16SI: icode = CODE_FOR_avx512f_scatterdiv16si; goto scatter_gen; + case IX86_BUILTIN_SCATTERALTSIV4DF: + icode = CODE_FOR_avx512vl_scattersiv4df; + goto scatter_gen; + case IX86_BUILTIN_SCATTERALTDIV8SF: + icode = CODE_FOR_avx512vl_scatterdiv8sf; + goto scatter_gen; + case IX86_BUILTIN_SCATTERALTSIV4DI: + icode = CODE_FOR_avx512vl_scattersiv4di; + goto scatter_gen; + case IX86_BUILTIN_SCATTERALTDIV8SI: + icode = CODE_FOR_avx512vl_scatterdiv8si; + goto scatter_gen; + case IX86_BUILTIN_SCATTERALTSIV2DF: + icode = CODE_FOR_avx512vl_scattersiv2df; + goto scatter_gen; + case IX86_BUILTIN_SCATTERALTDIV4SF: + icode = CODE_FOR_avx512vl_scatterdiv4sf; + goto scatter_gen; + case IX86_BUILTIN_SCATTERALTSIV2DI: + icode = CODE_FOR_avx512vl_scattersiv2di; + goto scatter_gen; + case IX86_BUILTIN_SCATTERALTDIV4SI: + icode = CODE_FOR_avx512vl_scatterdiv4si; + goto scatter_gen; case IX86_BUILTIN_GATHERPFDPS: icode = CODE_FOR_avx512pf_gatherpfv16sisf; goto vec_prefetch_gen; @@ -37605,13 +37856,7 @@ op0 = copy_to_mode_reg (GET_MODE (op0), op0); emit_insn (gen (half, op0)); op0 = half; - if (GET_MODE (op3) != VOIDmode) - { - if (!nonimmediate_operand (op3, GET_MODE (op3))) - op3 = copy_to_mode_reg (GET_MODE (op3), op3); - emit_insn (gen (half, op3)); - op3 = half; - } + op3 = lowpart_subreg (QImode, op3, HImode); break; case IX86_BUILTIN_GATHER3ALTDIV8SF: case IX86_BUILTIN_GATHER3ALTDIV8SI: @@ -37626,8 +37871,9 @@ op0 = copy_to_mode_reg (GET_MODE (op0), op0); emit_insn (gen (half, op0)); op0 = half; - if (GET_MODE (op3) != VOIDmode) + if (VECTOR_MODE_P (GET_MODE (op3))) { + half = gen_reg_rtx (mode0); if (!nonimmediate_operand (op3, GET_MODE (op3))) op3 = copy_to_mode_reg (GET_MODE (op3), op3); emit_insn (gen (half, op3)); @@ -37813,6 +38059,36 @@ emit_insn (gen (half, op3)); op3 = half; break; + case IX86_BUILTIN_SCATTERALTSIV4DF: + case IX86_BUILTIN_SCATTERALTSIV4DI: + half = gen_reg_rtx (V4SImode); + if (!nonimmediate_operand (op2, V8SImode)) + op2 = copy_to_mode_reg (V8SImode, op2); + emit_insn (gen_vec_extract_lo_v8si (half, op2)); + op2 = half; + break; + case IX86_BUILTIN_SCATTERALTDIV8SF: + case IX86_BUILTIN_SCATTERALTDIV8SI: + half = gen_reg_rtx (mode3); + if (mode3 == V4SFmode) + gen = gen_vec_extract_lo_v8sf; + else + gen = gen_vec_extract_lo_v8si; + if (!nonimmediate_operand (op3, GET_MODE (op3))) + op3 = copy_to_mode_reg (GET_MODE (op3), op3); + emit_insn (gen (half, op3)); + op3 = half; + break; + case IX86_BUILTIN_SCATTERALTSIV2DF: + case IX86_BUILTIN_SCATTERALTSIV2DI: + if (!nonimmediate_operand (op2, V4SImode)) + op2 = copy_to_mode_reg (V4SImode, op2); + break; + case IX86_BUILTIN_SCATTERALTDIV4SF: + case IX86_BUILTIN_SCATTERALTDIV4SI: + if (!nonimmediate_operand (op3, GET_MODE (op3))) + op3 = copy_to_mode_reg (GET_MODE (op3), op3); + break; default: break; } @@ -38928,6 +39204,54 @@ case E_V16SImode: code = si ? IX86_BUILTIN_SCATTERSIV16SI : IX86_BUILTIN_SCATTERALTDIV16SI; break; + case E_V4DFmode: + if (TARGET_AVX512VL) + code = si ? IX86_BUILTIN_SCATTERALTSIV4DF : IX86_BUILTIN_SCATTERDIV4DF; + else + return NULL_TREE; + break; + case E_V4DImode: + if (TARGET_AVX512VL) + code = si ? IX86_BUILTIN_SCATTERALTSIV4DI : IX86_BUILTIN_SCATTERDIV4DI; + else + return NULL_TREE; + break; + case E_V8SFmode: + if (TARGET_AVX512VL) + code = si ? IX86_BUILTIN_SCATTERSIV8SF : IX86_BUILTIN_SCATTERALTDIV8SF; + else + return NULL_TREE; + break; + case E_V8SImode: + if (TARGET_AVX512VL) + code = si ? IX86_BUILTIN_SCATTERSIV8SI : IX86_BUILTIN_SCATTERALTDIV8SI; + else + return NULL_TREE; + break; + case E_V2DFmode: + if (TARGET_AVX512VL) + code = si ? IX86_BUILTIN_SCATTERALTSIV2DF : IX86_BUILTIN_SCATTERDIV2DF; + else + return NULL_TREE; + break; + case E_V2DImode: + if (TARGET_AVX512VL) + code = si ? IX86_BUILTIN_SCATTERALTSIV2DI : IX86_BUILTIN_SCATTERDIV2DI; + else + return NULL_TREE; + break; + case E_V4SFmode: + if (TARGET_AVX512VL) + code = si ? IX86_BUILTIN_SCATTERSIV4SF : IX86_BUILTIN_SCATTERALTDIV4SF; + else + return NULL_TREE; + break; + case E_V4SImode: + if (TARGET_AVX512VL) + code = si ? IX86_BUILTIN_SCATTERSIV4SI : IX86_BUILTIN_SCATTERALTDIV4SI; + else + return NULL_TREE; + break; default: return NULL_TREE; } @@ -44056,6 +44380,251 @@ JUMP_LABEL (insn) = label; } +/* Output code to perform an sinh XFmode calculation. */ + +void ix86_emit_i387_sinh (rtx op0, rtx op1) +{ + rtx e1 = gen_reg_rtx (XFmode); + rtx e2 = gen_reg_rtx (XFmode); + rtx scratch = gen_reg_rtx (HImode); + rtx flags = gen_rtx_REG (CCNOmode, FLAGS_REG); + rtx half = const_double_from_real_value (dconsthalf, XFmode); + rtx cst1, tmp; + rtx_code_label *jump_label = gen_label_rtx (); + rtx_insn *insn; + + /* scratch = fxam (op1) */ + emit_insn (gen_fxamxf2_i387 (scratch, op1)); + + /* e1 = expm1 (|op1|) */ + emit_insn (gen_absxf2 (e2, op1)); + emit_insn (gen_expm1xf2 (e1, e2)); + + /* e2 = e1 / (e1 + 1.0) + e1 */ + cst1 = force_reg (XFmode, CONST1_RTX (XFmode)); + emit_insn (gen_addxf3 (e2, e1, cst1)); + emit_insn (gen_divxf3 (e2, e1, e2)); + emit_insn (gen_addxf3 (e2, e2, e1)); + + /* flags = signbit (op1) */ + emit_insn (gen_testqi_ext_1_ccno (scratch, GEN_INT (0x02))); + + /* if (flags) then e2 = -e2 */ + tmp = gen_rtx_IF_THEN_ELSE (VOIDmode, + gen_rtx_EQ (VOIDmode, flags, const0_rtx), + gen_rtx_LABEL_REF (VOIDmode, jump_label), + pc_rtx); + insn = emit_jump_insn (gen_rtx_SET (pc_rtx, tmp)); + predict_jump (REG_BR_PROB_BASE * 50 / 100); + JUMP_LABEL (insn) = jump_label; + + emit_insn (gen_negxf2 (e2, e2)); + + emit_label (jump_label); + LABEL_NUSES (jump_label) = 1; + + /* op0 = 0.5 * e2 */ + half = force_reg (XFmode, half); + emit_insn (gen_mulxf3 (op0, e2, half)); +} + +/* Output code to perform an cosh XFmode calculation. */ + +void ix86_emit_i387_cosh (rtx op0, rtx op1) +{ + rtx e1 = gen_reg_rtx (XFmode); + rtx e2 = gen_reg_rtx (XFmode); + rtx half = const_double_from_real_value (dconsthalf, XFmode); + rtx cst1; + + /* e1 = exp (op1) */ + emit_insn (gen_expxf2 (e1, op1)); + + /* e2 = e1 + 1.0 / e1 */ + cst1 = force_reg (XFmode, CONST1_RTX (XFmode)); + emit_insn (gen_divxf3 (e2, cst1, e1)); + emit_insn (gen_addxf3 (e2, e1, e2)); + + /* op0 = 0.5 * e2 */ + half = force_reg (XFmode, half); + emit_insn (gen_mulxf3 (op0, e2, half)); +} + +/* Output code to perform an tanh XFmode calculation. */ + +void ix86_emit_i387_tanh (rtx op0, rtx op1) +{ + rtx e1 = gen_reg_rtx (XFmode); + rtx e2 = gen_reg_rtx (XFmode); + rtx scratch = gen_reg_rtx (HImode); + rtx flags = gen_rtx_REG (CCNOmode, FLAGS_REG); + rtx cst2, tmp; + rtx_code_label *jump_label = gen_label_rtx (); + rtx_insn *insn; + + /* scratch = fxam (op1) */ + emit_insn (gen_fxamxf2_i387 (scratch, op1)); + + /* e1 = expm1 (-|2 * op1|) */ + emit_insn (gen_addxf3 (e2, op1, op1)); + emit_insn (gen_absxf2 (e2, e2)); + emit_insn (gen_negxf2 (e2, e2)); + emit_insn (gen_expm1xf2 (e1, e2)); + + /* e2 = e1 / (e1 + 2.0) */ + cst2 = force_reg (XFmode, CONST2_RTX (XFmode)); + emit_insn (gen_addxf3 (e2, e1, cst2)); + emit_insn (gen_divxf3 (e2, e1, e2)); + + /* flags = signbit (op1) */ + emit_insn (gen_testqi_ext_1_ccno (scratch, GEN_INT (0x02))); + + /* if (!flags) then e2 = -e2 */ + tmp = gen_rtx_IF_THEN_ELSE (VOIDmode, + gen_rtx_NE (VOIDmode, flags, const0_rtx), + gen_rtx_LABEL_REF (VOIDmode, jump_label), + pc_rtx); + insn = emit_jump_insn (gen_rtx_SET (pc_rtx, tmp)); + predict_jump (REG_BR_PROB_BASE * 50 / 100); + JUMP_LABEL (insn) = jump_label; + + emit_insn (gen_negxf2 (e2, e2)); + + emit_label (jump_label); + LABEL_NUSES (jump_label) = 1; + + emit_move_insn (op0, e2); +} + +/* Output code to perform an asinh XFmode calculation. */ + +void ix86_emit_i387_asinh (rtx op0, rtx op1) +{ + rtx e1 = gen_reg_rtx (XFmode); + rtx e2 = gen_reg_rtx (XFmode); + rtx scratch = gen_reg_rtx (HImode); + rtx flags = gen_rtx_REG (CCNOmode, FLAGS_REG); + rtx cst1, tmp; + rtx_code_label *jump_label = gen_label_rtx (); + rtx_insn *insn; + + /* e2 = sqrt (op1^2 + 1.0) + 1.0 */ + emit_insn (gen_mulxf3 (e1, op1, op1)); + cst1 = force_reg (XFmode, CONST1_RTX (XFmode)); + emit_insn (gen_addxf3 (e2, e1, cst1)); + emit_insn (gen_sqrtxf2 (e2, e2)); + emit_insn (gen_addxf3 (e2, e2, cst1)); + + /* e1 = e1 / e2 */ + emit_insn (gen_divxf3 (e1, e1, e2)); + + /* scratch = fxam (op1) */ + emit_insn (gen_fxamxf2_i387 (scratch, op1)); + + /* e1 = e1 + |op1| */ + emit_insn (gen_absxf2 (e2, op1)); + emit_insn (gen_addxf3 (e1, e1, e2)); + + /* e2 = log1p (e1) */ + ix86_emit_i387_log1p (e2, e1); + + /* flags = signbit (op1) */ + emit_insn (gen_testqi_ext_1_ccno (scratch, GEN_INT (0x02))); + + /* if (flags) then e2 = -e2 */ + tmp = gen_rtx_IF_THEN_ELSE (VOIDmode, + gen_rtx_EQ (VOIDmode, flags, const0_rtx), + gen_rtx_LABEL_REF (VOIDmode, jump_label), + pc_rtx); + insn = emit_jump_insn (gen_rtx_SET (pc_rtx, tmp)); + predict_jump (REG_BR_PROB_BASE * 50 / 100); + JUMP_LABEL (insn) = jump_label; + + emit_insn (gen_negxf2 (e2, e2)); + + emit_label (jump_label); + LABEL_NUSES (jump_label) = 1; + + emit_move_insn (op0, e2); +} + +/* Output code to perform an acosh XFmode calculation. */ + +void ix86_emit_i387_acosh (rtx op0, rtx op1) +{ + rtx e1 = gen_reg_rtx (XFmode); + rtx e2 = gen_reg_rtx (XFmode); + rtx cst1 = force_reg (XFmode, CONST1_RTX (XFmode)); + + /* e2 = sqrt (op1 + 1.0) */ + emit_insn (gen_addxf3 (e2, op1, cst1)); + emit_insn (gen_sqrtxf2 (e2, e2)); + + /* e1 = sqrt (op1 - 1.0) */ + emit_insn (gen_subxf3 (e1, op1, cst1)); + emit_insn (gen_sqrtxf2 (e1, e1)); + + /* e1 = e1 * e2 */ + emit_insn (gen_mulxf3 (e1, e1, e2)); + + /* e1 = e1 + op1 */ + emit_insn (gen_addxf3 (e1, e1, op1)); + + /* op0 = log (e1) */ + emit_insn (gen_logxf2 (op0, e1)); +} + +/* Output code to perform an atanh XFmode calculation. */ + +void ix86_emit_i387_atanh (rtx op0, rtx op1) +{ + rtx e1 = gen_reg_rtx (XFmode); + rtx e2 = gen_reg_rtx (XFmode); + rtx scratch = gen_reg_rtx (HImode); + rtx flags = gen_rtx_REG (CCNOmode, FLAGS_REG); + rtx half = const_double_from_real_value (dconsthalf, XFmode); + rtx cst1, tmp; + rtx_code_label *jump_label = gen_label_rtx (); + rtx_insn *insn; + + /* scratch = fxam (op1) */ + emit_insn (gen_fxamxf2_i387 (scratch, op1)); + + /* e2 = |op1| */ + emit_insn (gen_absxf2 (e2, op1)); + + /* e1 = -(e2 + e2) / (e2 + 1.0) */ + cst1 = force_reg (XFmode, CONST1_RTX (XFmode)); + emit_insn (gen_addxf3 (e1, e2, cst1)); + emit_insn (gen_addxf3 (e2, e2, e2)); + emit_insn (gen_negxf2 (e2, e2)); + emit_insn (gen_divxf3 (e1, e2, e1)); + + /* e2 = log1p (e1) */ + ix86_emit_i387_log1p (e2, e1); + + /* flags = signbit (op1) */ + emit_insn (gen_testqi_ext_1_ccno (scratch, GEN_INT (0x02))); + + /* if (!flags) then e2 = -e2 */ + tmp = gen_rtx_IF_THEN_ELSE (VOIDmode, + gen_rtx_NE (VOIDmode, flags, const0_rtx), + gen_rtx_LABEL_REF (VOIDmode, jump_label), + pc_rtx); + insn = emit_jump_insn (gen_rtx_SET (pc_rtx, tmp)); + predict_jump (REG_BR_PROB_BASE * 50 / 100); + JUMP_LABEL (insn) = jump_label; + + emit_insn (gen_negxf2 (e2, e2)); + + emit_label (jump_label); + LABEL_NUSES (jump_label) = 1; + + /* op0 = 0.5 * e2 */ + half = force_reg (XFmode, half); + emit_insn (gen_mulxf3 (op0, e2, half)); +} + /* Output code to perform a log1p XFmode calculation. */ void ix86_emit_i387_log1p (rtx op0, rtx op1) @@ -45261,6 +45830,9 @@ ix86_handle_fentry_name, NULL }, { "fentry_section", 1, 1, true, false, false, false, ix86_handle_fentry_name, NULL }, + { "cf_check", 0, 0, true, false, false, false, + ix86_handle_fndecl_attribute, NULL }, + /* End element. */ { NULL, 0, 0, false, false, false, false, NULL, NULL } }; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386-c.c 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386-c.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for macro/preprocessor support on the ia-32. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386-d.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386-d.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386-d.c 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386-d.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the D front end on the x86 architecture. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386elf.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386elf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target definitions for GCC for Intel 80386 using ELF - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. Derived from sysv4.h written by Ron Guilmette (rfg@netcom.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386.h 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GCC for IA-32. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -2041,6 +2041,12 @@ #define REGISTER_NAMES HI_REGISTER_NAMES +#define QI_REGISTER_NAMES \ +{"al", "dl", "cl", "bl", "sil", "dil", "bpl", "spl"} + +#define QI_HIGH_REGISTER_NAMES \ +{"ah", "dh", "ch", "bh"} + /* Table of additional register names to use in user input. */ #define ADDITIONAL_REGISTER_NAMES \ @@ -2050,6 +2056,7 @@ { "rax", AX_REG }, { "rdx", DX_REG }, { "rcx", CX_REG }, { "rbx", BX_REG }, \ { "rsi", SI_REG }, { "rdi", DI_REG }, { "rbp", BP_REG }, { "rsp", SP_REG }, \ { "al", AX_REG }, { "dl", DX_REG }, { "cl", CX_REG }, { "bl", BX_REG }, \ + { "sil", SI_REG }, { "dil", DI_REG }, { "bpl", BP_REG }, { "spl", SP_REG }, \ { "ah", AX_REG }, { "dh", DX_REG }, { "ch", CX_REG }, { "bh", BX_REG }, \ { "ymm0", XMM0_REG }, { "ymm1", XMM1_REG }, { "ymm2", XMM2_REG }, { "ymm3", XMM3_REG }, \ { "ymm4", XMM4_REG }, { "ymm5", XMM5_REG }, { "ymm6", XMM6_REG }, { "ymm7", XMM7_REG }, \ @@ -2069,20 +2076,6 @@ { "zmm28", XMM28_REG }, { "zmm29", XMM29_REG }, { "zmm30", XMM30_REG }, { "zmm31", XMM31_REG } \ } -/* Note we are omitting these since currently I don't know how -to get gcc to use these, since they want the same but different -number as al, and ax. -*/ - -#define QI_REGISTER_NAMES \ -{"al", "dl", "cl", "bl", "sil", "dil", "bpl", "spl",} - -/* These parallel the array above, and can be used to access bits 8:15 - of regs 0 through 3. */ - -#define QI_HIGH_REGISTER_NAMES \ -{"ah", "dh", "ch", "bh", } - /* How to renumber registers for dbx and gdb. */ #define DBX_REGISTER_NUMBER(N) \ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386.md 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for IA-32 and x86-64. -;; Copyright (C) 1988-2018 Free Software Foundation, Inc. +;; Copyright (C) 1988-2019 Free Software Foundation, Inc. ;; Mostly by William Schelter. ;; x86_64 support added by Jan Hubicka ;; @@ -1244,20 +1244,20 @@ (compare:CC (match_operand:SWI48 0 "nonimmediate_operand") (match_operand:SWI48 1 "")))]) -(define_mode_iterator SWI1248_AVX512BWDQ2_64 - [(QI "TARGET_AVX512DQ") (HI "TARGET_AVX512DQ") +(define_mode_iterator SWI1248_AVX512BWDQ_64 + [(QI "TARGET_AVX512DQ") HI (SI "TARGET_AVX512BW") (DI "TARGET_AVX512BW && TARGET_64BIT")]) (define_insn "*cmp_ccz_1" [(set (reg FLAGS_REG) - (compare (match_operand:SWI1248_AVX512BWDQ2_64 0 + (compare (match_operand:SWI1248_AVX512BWDQ_64 0 "nonimmediate_operand" ",?m,$k") - (match_operand:SWI1248_AVX512BWDQ2_64 1 "const0_operand")))] - "ix86_match_ccmode (insn, CCZmode)" + (match_operand:SWI1248_AVX512BWDQ_64 1 "const0_operand")))] + "TARGET_AVX512F && ix86_match_ccmode (insn, CCZmode)" "@ test{}\t%0, %0 cmp{}\t{%1, %0|%0, %1} - ktest\t%0, %0" + kortest\t%0, %0" [(set_attr "type" "test,icmp,msklog") (set_attr "length_immediate" "0,1,*") (set_attr "prefix" "*,*,vex") @@ -15048,6 +15048,32 @@ } }) +(define_expand "hypot3" + [(use (match_operand:MODEF 0 "register_operand")) + (use (match_operand:MODEF 1 "general_operand")) + (use (match_operand:MODEF 2 "general_operand"))] + "TARGET_USE_FANCY_MATH_387 + && (!(SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH) + || TARGET_MIX_SSE_I387) + && flag_finite_math_only + && flag_unsafe_math_optimizations" +{ + rtx op0 = gen_reg_rtx (XFmode); + rtx op1 = gen_reg_rtx (XFmode); + rtx op2 = gen_reg_rtx (XFmode); + + emit_insn (gen_extendxf2 (op2, operands[2])); + emit_insn (gen_extendxf2 (op1, operands[1])); + + emit_insn (gen_mulxf3 (op1, op1, op1)); + emit_insn (gen_mulxf3 (op2, op2, op2)); + emit_insn (gen_addxf3 (op0, op2, op1)); + emit_insn (gen_sqrtxf2 (op0, op0)); + + emit_insn (gen_truncxf2 (operands[0], op0)); + DONE; +}) + (define_insn "x86_fnstsw_1" [(set (match_operand:HI 0 "register_operand" "=a") (unspec:HI [(reg:CCFP FPSR_REG)] UNSPEC_FNSTSW))] @@ -15456,6 +15482,172 @@ emit_insn (gen_truncxf2 (operands[0], op0)); DONE; }) + +(define_expand "sinhxf2" + [(use (match_operand:XF 0 "register_operand")) + (use (match_operand:XF 1 "register_operand"))] + "TARGET_USE_FANCY_MATH_387 + && flag_finite_math_only + && flag_unsafe_math_optimizations" +{ + ix86_emit_i387_sinh (operands[0], operands[1]); + DONE; +}) + +(define_expand "sinh2" + [(use (match_operand:MODEF 0 "register_operand")) + (use (match_operand:MODEF 1 "general_operand"))] + "TARGET_USE_FANCY_MATH_387 + && (!(SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH) + || TARGET_MIX_SSE_I387) + && flag_finite_math_only + && flag_unsafe_math_optimizations" +{ + rtx op0 = gen_reg_rtx (XFmode); + rtx op1 = gen_reg_rtx (XFmode); + + emit_insn (gen_extendxf2 (op1, operands[1])); + emit_insn (gen_sinhxf2 (op0, op1)); + emit_insn (gen_truncxf2 (operands[0], op0)); + DONE; +}) + +(define_expand "coshxf2" + [(use (match_operand:XF 0 "register_operand")) + (use (match_operand:XF 1 "register_operand"))] + "TARGET_USE_FANCY_MATH_387 + && flag_unsafe_math_optimizations" +{ + ix86_emit_i387_cosh (operands[0], operands[1]); + DONE; +}) + +(define_expand "cosh2" + [(use (match_operand:MODEF 0 "register_operand")) + (use (match_operand:MODEF 1 "general_operand"))] + "TARGET_USE_FANCY_MATH_387 + && (!(SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH) + || TARGET_MIX_SSE_I387) + && flag_unsafe_math_optimizations" +{ + rtx op0 = gen_reg_rtx (XFmode); + rtx op1 = gen_reg_rtx (XFmode); + + emit_insn (gen_extendxf2 (op1, operands[1])); + emit_insn (gen_coshxf2 (op0, op1)); + emit_insn (gen_truncxf2 (operands[0], op0)); + DONE; +}) + +(define_expand "tanhxf2" + [(use (match_operand:XF 0 "register_operand")) + (use (match_operand:XF 1 "register_operand"))] + "TARGET_USE_FANCY_MATH_387 + && flag_unsafe_math_optimizations" +{ + ix86_emit_i387_tanh (operands[0], operands[1]); + DONE; +}) + +(define_expand "tanh2" + [(use (match_operand:MODEF 0 "register_operand")) + (use (match_operand:MODEF 1 "general_operand"))] + "TARGET_USE_FANCY_MATH_387 + && (!(SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH) + || TARGET_MIX_SSE_I387) + && flag_unsafe_math_optimizations" +{ + rtx op0 = gen_reg_rtx (XFmode); + rtx op1 = gen_reg_rtx (XFmode); + + emit_insn (gen_extendxf2 (op1, operands[1])); + emit_insn (gen_tanhxf2 (op0, op1)); + emit_insn (gen_truncxf2 (operands[0], op0)); + DONE; +}) + +(define_expand "asinhxf2" + [(use (match_operand:XF 0 "register_operand")) + (use (match_operand:XF 1 "register_operand"))] + "TARGET_USE_FANCY_MATH_387 + && flag_finite_math_only + && flag_unsafe_math_optimizations" +{ + ix86_emit_i387_asinh (operands[0], operands[1]); + DONE; +}) + +(define_expand "asinh2" + [(use (match_operand:MODEF 0 "register_operand")) + (use (match_operand:MODEF 1 "general_operand"))] + "TARGET_USE_FANCY_MATH_387 + && (!(SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH) + || TARGET_MIX_SSE_I387) + && flag_finite_math_only + && flag_unsafe_math_optimizations" +{ + rtx op0 = gen_reg_rtx (XFmode); + rtx op1 = gen_reg_rtx (XFmode); + + emit_insn (gen_extendxf2 (op1, operands[1])); + emit_insn (gen_asinhxf2 (op0, op1)); + emit_insn (gen_truncxf2 (operands[0], op0)); + DONE; +}) + +(define_expand "acoshxf2" + [(use (match_operand:XF 0 "register_operand")) + (use (match_operand:XF 1 "register_operand"))] + "TARGET_USE_FANCY_MATH_387 + && flag_unsafe_math_optimizations" +{ + ix86_emit_i387_acosh (operands[0], operands[1]); + DONE; +}) + +(define_expand "acosh2" + [(use (match_operand:MODEF 0 "register_operand")) + (use (match_operand:MODEF 1 "general_operand"))] + "TARGET_USE_FANCY_MATH_387 + && (!(SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH) + || TARGET_MIX_SSE_I387) + && flag_unsafe_math_optimizations" +{ + rtx op0 = gen_reg_rtx (XFmode); + rtx op1 = gen_reg_rtx (XFmode); + + emit_insn (gen_extendxf2 (op1, operands[1])); + emit_insn (gen_acoshxf2 (op0, op1)); + emit_insn (gen_truncxf2 (operands[0], op0)); + DONE; +}) + +(define_expand "atanhxf2" + [(use (match_operand:XF 0 "register_operand")) + (use (match_operand:XF 1 "register_operand"))] + "TARGET_USE_FANCY_MATH_387 + && flag_unsafe_math_optimizations" +{ + ix86_emit_i387_atanh (operands[0], operands[1]); + DONE; +}) + +(define_expand "atanh2" + [(use (match_operand:MODEF 0 "register_operand")) + (use (match_operand:MODEF 1 "general_operand"))] + "TARGET_USE_FANCY_MATH_387 + && (!(SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH) + || TARGET_MIX_SSE_I387) + && flag_unsafe_math_optimizations" +{ + rtx op0 = gen_reg_rtx (XFmode); + rtx op1 = gen_reg_rtx (XFmode); + + emit_insn (gen_extendxf2 (op1, operands[1])); + emit_insn (gen_atanhxf2 (op0, op1)); + emit_insn (gen_truncxf2 (operands[0], op0)); + DONE; +}) (define_insn "fyl2xxf3_i387" [(set (match_operand:XF 0 "register_operand" "=f") diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386-modes.def 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386-modes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GCC for IA-32. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386.opt 2018-11-29 23:30:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the IA-32 and AMD64 ports of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; @@ -1028,6 +1028,11 @@ Turn on CET instrumentation for switch statements that use a jump table and an indirect jump. +mmanual-endbr +Target Report Var(flag_manual_endbr) Init(0) +Insert ENDBR instruction at function entry only via cf_check attribute +for CET instrumentation. + mforce-indirect-call Target Report Var(flag_force_indirect_call) Init(0) Make all function calls indirect. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386-opts.h 2018-11-29 23:30:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386-opts.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for option handling for IA-32. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386-passes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386-passes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386-passes.def 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386-passes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Description of target passes for IA-32 - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/i386-protos.h 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/i386-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GCC for IA-32. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -170,6 +170,12 @@ extern void x86_emit_floatuns (rtx [2]); extern void ix86_emit_fp_unordered_jump (rtx); +extern void ix86_emit_i387_sinh (rtx, rtx); +extern void ix86_emit_i387_cosh (rtx, rtx); +extern void ix86_emit_i387_tanh (rtx, rtx); +extern void ix86_emit_i387_asinh (rtx, rtx); +extern void ix86_emit_i387_acosh (rtx, rtx); +extern void ix86_emit_i387_atanh (rtx, rtx); extern void ix86_emit_i387_log1p (rtx, rtx); extern void ix86_emit_i387_round (rtx, rtx); extern void ix86_emit_swdivsf (rtx, rtx, rtx, machine_mode); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/ia32intrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/ia32intrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/ia32intrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/ia32intrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2018 Free Software Foundation, Inc. +/* Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/iamcu.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/iamcu.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/iamcu.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/iamcu.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for Intel MCU psABI. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/immintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/immintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/immintrin.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/immintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/intelmic-mkoffload.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/intelmic-mkoffload.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/intelmic-mkoffload.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/intelmic-mkoffload.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Offload image generation tool for Intel MIC devices. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Ilya Verbin . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/intelmic-offload.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/intelmic-offload.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/intelmic-offload.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/intelmic-offload.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Support for Intel MIC offloading. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/k6.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/k6.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/k6.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/k6.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; AMD K6/K6-2 Scheduling -;; Copyright (C) 2002-2018 Free Software Foundation, Inc. +;; Copyright (C) 2002-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/kfreebsd-gnu64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/kfreebsd-gnu64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/kfreebsd-gnu64.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/kfreebsd-gnu64.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for AMD x86-64 running kFreeBSD-based GNU systems with ELF format - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Robert Millan. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/kfreebsd-gnu.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/kfreebsd-gnu.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/kfreebsd-gnu.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/kfreebsd-gnu.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for Intel 386 running kFreeBSD-based GNU systems with ELF format - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Robert Millan. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/kopensolaris-gnu.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/kopensolaris-gnu.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/kopensolaris-gnu.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/kopensolaris-gnu.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for Intel 386 running kOpenSolaris-based GNU systems with ELF format - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Robert Millan. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/linux64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/linux64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/linux64.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/linux64.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for AMD x86-64 running Linux-based GNU systems with ELF format. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka , based on linux.h. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/linux-common.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/linux-common.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/linux-common.h 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/linux-common.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for Intel 386 running Linux-based GNU systems with ELF format. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Ilya Enkovich. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/linux.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/linux.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for Intel 386 running Linux-based GNU systems with ELF format. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. Contributed by Eric Youngdale. Modified for stabs-in-ELF by H.J. Lu. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/lwpintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/lwpintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/lwpintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/lwpintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/lynx.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/lynx.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/lynx.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/lynx.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for LynxOS on i386. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/lzcntintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/lzcntintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/lzcntintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/lzcntintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2018 Free Software Foundation, Inc. +/* Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mingw32.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mingw32.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mingw32.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mingw32.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Operating system specific defines to be used when targeting GCC for hosting on Windows32, using GNU tools and the Windows32 API Library. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mingw.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mingw.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mingw.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mingw.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; MinGW-specific options. -; Copyright (C) 2008-2018 Free Software Foundation, Inc. +; Copyright (C) 2008-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mingw-pthread.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mingw-pthread.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mingw-pthread.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mingw-pthread.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Defines that pthread library shall be enabled by default for target. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mingw-stdint.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mingw-stdint.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mingw-stdint.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mingw-stdint.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for types on systems using mingw. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mingw-w64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mingw-w64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mingw-w64.h 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mingw-w64.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,7 +1,7 @@ /* Operating system specific defines to be used when targeting GCC for hosting on Windows 32/64 via mingw-w64 runtime, using GNU tools and the Windows API Library. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mingw-w64.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mingw-w64.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mingw-w64.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mingw-w64.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; MinGW-w64-specific options. -; Copyright (C) 2009-2018 Free Software Foundation, Inc. +; Copyright (C) 2009-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mm3dnow.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mm3dnow.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mm3dnow.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mm3dnow.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2018 Free Software Foundation, Inc. +/* Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mmintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mmintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mmx.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mmx.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mmx.md 2018-11-29 22:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mmx.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for MMX and 3dNOW! instructions -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/movdirintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/movdirintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/movdirintrin.h 2018-09-18 08:44:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/movdirintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Free Software Foundation, Inc. +/* Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/msformat-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/msformat-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/msformat-c.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/msformat-c.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Check calls to formatted I/O functions (-Wformat). - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mwaitxintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mwaitxintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/mwaitxintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/mwaitxintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/netbsd64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/netbsd64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/netbsd64.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/netbsd64.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GCC, for x86-64/ELF NetBSD systems. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Wasabi Systems, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/netbsd-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/netbsd-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/netbsd-elf.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/netbsd-elf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GCC, for i386/ELF NetBSD systems. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by matthew green This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/nmmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/nmmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/nmmintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/nmmintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/nto.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/nto.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/nto.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/nto.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for Intel 386 running QNX/Neutrino. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/nto.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/nto.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/nto.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/nto.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; QNX options. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/openbsdelf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/openbsdelf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/openbsdelf.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/openbsdelf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Configuration for an OpenBSD i386 target. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/pentium.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/pentium.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/pentium.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/pentium.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Pentium Scheduling -;; Copyright (C) 2002-2018 Free Software Foundation, Inc. +;; Copyright (C) 2002-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/pkuintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/pkuintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/pkuintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/pkuintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/pmmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/pmmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/pmmintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/pmmintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2018 Free Software Foundation, Inc. +/* Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/pmm_malloc.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/pmm_malloc.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/pmm_malloc.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/pmm_malloc.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2018 Free Software Foundation, Inc. +/* Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/popcntintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/popcntintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/popcntintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/popcntintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2018 Free Software Foundation, Inc. +/* Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/ppro.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/ppro.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/ppro.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/ppro.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling for the Intel P6 family of processors -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/predicates.md 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for IA-32 and x86-64. -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/prfchwintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/prfchwintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/prfchwintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/prfchwintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/rdos64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/rdos64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/rdos64.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/rdos64.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for RDOS on x86_64. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/rdos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/rdos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/rdos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/rdos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for RDOS on i386. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/rdseedintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/rdseedintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/rdseedintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/rdseedintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/rtemself.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/rtemself.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/rtemself.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/rtemself.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for rtems targeting an ix86 using ELF. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/rtmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/rtmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/rtmintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/rtmintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/sgxintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/sgxintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/sgxintrin.h 2018-03-16 04:25:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/sgxintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2018 Free Software Foundation, Inc. +/* Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/shaintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/shaintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/shaintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/shaintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/slm.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/slm.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/slm.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/slm.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Slivermont(SLM) Scheduling -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/smmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/smmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/smmintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/smmintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/sol2.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/sol2.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/sol2.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/sol2.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target definitions for GCC for Intel 80386 running Solaris 2 - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. Contributed by Fred Fish (fnf@cygnus.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/ssemath.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/ssemath.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/ssemath.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/ssemath.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2018 Free Software Foundation, Inc. +/* Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/sse.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/sse.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/sse.md 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/sse.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for SSE instructions -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; @@ -95,6 +95,7 @@ UNSPEC_RCP14 UNSPEC_RSQRT14 UNSPEC_FIXUPIMM + UNSPEC_SFIXUPIMM UNSPEC_SCALEF UNSPEC_VTERNLOG UNSPEC_GETEXP @@ -8872,7 +8873,7 @@ [(match_operand:VF_128 1 "register_operand" "v") (match_operand: 2 "" "") (match_operand:SI 3 "const_0_to_255_operand")] - UNSPEC_FIXUPIMM))] + UNSPEC_SFIXUPIMM))] "TARGET_AVX512F" "vfixupimm\t{%3, %2, %1, %0|%0, %1, %2, %3}"; [(set_attr "prefix" "evex") @@ -12434,22 +12435,59 @@ }) (define_expand "vec_pack_trunc_qi" - [(set (match_operand:HI 0 ("register_operand")) - (ior:HI (ashift:HI (zero_extend:HI (match_operand:QI 2 ("register_operand"))) + [(set (match_operand:HI 0 "register_operand") + (ior:HI (ashift:HI (zero_extend:HI (match_operand:QI 2 "register_operand")) (const_int 8)) - (zero_extend:HI (match_operand:QI 1 ("register_operand")))))] + (zero_extend:HI (match_operand:QI 1 "register_operand"))))] "TARGET_AVX512F") (define_expand "vec_pack_trunc_" - [(set (match_operand: 0 ("register_operand")) - (ior: (ashift: (zero_extend: (match_operand:SWI24 2 ("register_operand"))) - (match_dup 3)) - (zero_extend: (match_operand:SWI24 1 ("register_operand")))))] + [(set (match_operand: 0 "register_operand") + (ior: + (ashift: + (zero_extend: + (match_operand:SWI24 2 "register_operand")) + (match_dup 3)) + (zero_extend: + (match_operand:SWI24 1 "register_operand"))))] "TARGET_AVX512BW" { operands[3] = GEN_INT (GET_MODE_BITSIZE (mode)); }) +(define_expand "vec_pack_sbool_trunc_qi" + [(match_operand:QI 0 "register_operand") + (match_operand:QI 1 "register_operand") + (match_operand:QI 2 "register_operand") + (match_operand:QI 3 "const_int_operand")] + "TARGET_AVX512F" +{ + HOST_WIDE_INT nunits = INTVAL (operands[3]); + rtx mask, tem1, tem2; + if (nunits != 8 && nunits != 4) + FAIL; + mask = gen_reg_rtx (QImode); + emit_move_insn (mask, GEN_INT ((1 << (nunits / 2)) - 1)); + tem1 = gen_reg_rtx (QImode); + emit_insn (gen_kandqi (tem1, operands[1], mask)); + if (TARGET_AVX512DQ) + { + tem2 = gen_reg_rtx (QImode); + emit_insn (gen_kashiftqi (tem2, operands[2], + GEN_INT (nunits / 2))); + } + else + { + tem2 = gen_reg_rtx (HImode); + emit_insn (gen_kashifthi (tem2, lowpart_subreg (HImode, operands[2], + QImode), + GEN_INT (nunits / 2))); + tem2 = lowpart_subreg (QImode, tem2, HImode); + } + emit_insn (gen_kiorqi (operands[0], tem1, tem2)); + DONE; +}) + (define_insn "_packsswb" [(set (match_operand:VI1_AVX512 0 "register_operand" "=x,x,v") (vec_concat:VI1_AVX512 @@ -14602,6 +14640,18 @@ "TARGET_SSE2" "ix86_expand_sse_unpack (operands[0], operands[1], true, false); DONE;") +(define_expand "vec_unpacks_sbool_lo_qi" + [(match_operand:QI 0 "register_operand") + (match_operand:QI 1 "register_operand") + (match_operand:QI 2 "const_int_operand")] + "TARGET_AVX512F" +{ + if (INTVAL (operands[2]) != 8 && INTVAL (operands[2]) != 4) + FAIL; + emit_move_insn (operands[0], operands[1]); + DONE; +}) + (define_expand "vec_unpacks_lo_hi" [(set (subreg:HI (match_operand:QI 0 "register_operand") 0) (match_operand:HI 1 "register_operand"))] @@ -14623,6 +14673,29 @@ "TARGET_SSE2" "ix86_expand_sse_unpack (operands[0], operands[1], true, true); DONE;") +(define_expand "vec_unpacks_sbool_hi_qi" + [(match_operand:QI 0 "register_operand") + (match_operand:QI 1 "register_operand") + (match_operand:QI 2 "const_int_operand")] + "TARGET_AVX512F" +{ + HOST_WIDE_INT nunits = INTVAL (operands[2]); + if (nunits != 8 && nunits != 4) + FAIL; + if (TARGET_AVX512DQ) + emit_insn (gen_klshiftrtqi (operands[0], operands[1], + GEN_INT (nunits / 2))); + else + { + rtx tem = gen_reg_rtx (HImode); + emit_insn (gen_klshiftrthi (tem, lowpart_subreg (HImode, operands[1], + QImode), + GEN_INT (nunits / 2))); + emit_move_insn (operands[0], lowpart_subreg (QImode, tem, HImode)); + } + DONE; +}) + (define_expand "vec_unpacks_hi_hi" [(parallel [(set (subreg:HI (match_operand:QI 0 "register_operand") 0) @@ -17196,9 +17269,11 @@ switch (INTVAL (operands[4])) { case 3: - return "vgatherpf0ps\t{%5%{%0%}|%5%{%0%}}"; + /* %X5 so that we don't emit any *WORD PTR for -masm=intel, as + gas changed what it requires incompatibly. */ + return "vgatherpf0ps\t{%5%{%0%}|%X5%{%0%}}"; case 2: - return "vgatherpf1ps\t{%5%{%0%}|%5%{%0%}}"; + return "vgatherpf1ps\t{%5%{%0%}|%X5%{%0%}}"; default: gcc_unreachable (); } @@ -17241,9 +17316,11 @@ switch (INTVAL (operands[4])) { case 3: - return "vgatherpf0pd\t{%5%{%0%}|%5%{%0%}}"; + /* %X5 so that we don't emit any *WORD PTR for -masm=intel, as + gas changed what it requires incompatibly. */ + return "vgatherpf0pd\t{%5%{%0%}|%X5%{%0%}}"; case 2: - return "vgatherpf1pd\t{%5%{%0%}|%5%{%0%}}"; + return "vgatherpf1pd\t{%5%{%0%}|%X5%{%0%}}"; default: gcc_unreachable (); } @@ -17287,10 +17364,12 @@ { case 3: case 7: - return "vscatterpf0ps\t{%5%{%0%}|%5%{%0%}}"; + /* %X5 so that we don't emit any *WORD PTR for -masm=intel, as + gas changed what it requires incompatibly. */ + return "vscatterpf0ps\t{%5%{%0%}|%X5%{%0%}}"; case 2: case 6: - return "vscatterpf1ps\t{%5%{%0%}|%5%{%0%}}"; + return "vscatterpf1ps\t{%5%{%0%}|%X5%{%0%}}"; default: gcc_unreachable (); } @@ -17334,10 +17413,12 @@ { case 3: case 7: - return "vscatterpf0pd\t{%5%{%0%}|%5%{%0%}}"; + /* %X5 so that we don't emit any *WORD PTR for -masm=intel, as + gas changed what it requires incompatibly. */ + return "vscatterpf0pd\t{%5%{%0%}|%X5%{%0%}}"; case 2: case 6: - return "vscatterpf1pd\t{%5%{%0%}|%5%{%0%}}"; + return "vscatterpf1pd\t{%5%{%0%}|%X5%{%0%}}"; default: gcc_unreachable (); } @@ -20217,12 +20298,6 @@ (set_attr "prefix" "vex") (set_attr "mode" "")]) -;; Memory operand override for -masm=intel of the v*gatherq* patterns. -(define_mode_attr gatherq_mode - [(V4SI "q") (V2DI "x") (V4SF "q") (V2DF "x") - (V8SI "x") (V4DI "t") (V8SF "x") (V4DF "t") - (V16SI "t") (V8DI "g") (V16SF "t") (V8DF "g")]) - (define_expand "_gathersi" [(parallel [(set (match_operand:VI48F 0 "register_operand") (unspec:VI48F @@ -20256,7 +20331,9 @@ UNSPEC_GATHER)) (clobber (match_scratch: 2 "=&Yk"))] "TARGET_AVX512F" - "vgatherd\t{%6, %0%{%2%}|%0%{%2%}, %6}" +;; %X6 so that we don't emit any *WORD PTR for -masm=intel, as +;; gas changed what it requires incompatibly. + "vgatherd\t{%6, %0%{%2%}|%0%{%2%}, %X6}" [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "mode" "")]) @@ -20275,7 +20352,9 @@ UNSPEC_GATHER)) (clobber (match_scratch: 1 "=&Yk"))] "TARGET_AVX512F" - "vgatherd\t{%5, %0%{%1%}|%0%{%1%}, %5}" +;; %X5 so that we don't emit any *WORD PTR for -masm=intel, as +;; gas changed what it requires incompatibly. + "vgatherd\t{%5, %0%{%1%}|%0%{%1%}, %X5}" [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "mode" "")]) @@ -20314,9 +20393,9 @@ UNSPEC_GATHER)) (clobber (match_scratch:QI 2 "=&Yk"))] "TARGET_AVX512F" -{ - return "vgatherq\t{%6, %1%{%2%}|%1%{%2%}, %6}"; -} +;; %X6 so that we don't emit any *WORD PTR for -masm=intel, as +;; gas changed what it requires incompatibly. + "vgatherq\t{%6, %1%{%2%}|%1%{%2%}, %X6}" [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "mode" "")]) @@ -20336,14 +20415,16 @@ (clobber (match_scratch:QI 1 "=&Yk"))] "TARGET_AVX512F" { + /* %X5 so that we don't emit any *WORD PTR for -masm=intel, as + gas changed what it requires incompatibly. */ if (mode != mode) { if ( != 64) - return "vgatherq\t{%5, %x0%{%1%}|%x0%{%1%}, %5}"; + return "vgatherq\t{%5, %x0%{%1%}|%x0%{%1%}, %X5}"; else - return "vgatherq\t{%5, %t0%{%1%}|%t0%{%1%}, %t5}"; + return "vgatherq\t{%5, %t0%{%1%}|%t0%{%1%}, %X5}"; } - return "vgatherq\t{%5, %0%{%1%}|%0%{%1%}, %5}"; + return "vgatherq\t{%5, %0%{%1%}|%0%{%1%}, %X5}"; } [(set_attr "type" "ssemov") (set_attr "prefix" "evex") @@ -20380,7 +20461,9 @@ UNSPEC_SCATTER)) (clobber (match_scratch: 1 "=&Yk"))] "TARGET_AVX512F" - "vscatterd\t{%3, %5%{%1%}|%5%{%1%}, %3}" +;; %X5 so that we don't emit any *WORD PTR for -masm=intel, as +;; gas changed what it requires incompatibly. + "vscatterd\t{%3, %5%{%1%}|%X5%{%1%}, %3}" [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "mode" "")]) @@ -20416,11 +20499,9 @@ UNSPEC_SCATTER)) (clobber (match_scratch:QI 1 "=&Yk"))] "TARGET_AVX512F" -{ - if (GET_MODE_SIZE (GET_MODE_INNER (mode)) == 8) - return "vscatterq\t{%3, %5%{%1%}|%5%{%1%}, %3}"; - return "vscatterq\t{%3, %5%{%1%}|%t5%{%1%}, %3}"; -} +;; %X5 so that we don't emit any *WORD PTR for -masm=intel, as +;; gas changed what it requires incompatibly. + "vscatterq\t{%3, %5%{%1%}|%X5%{%1%}, %3}" [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "mode" "")]) @@ -21586,7 +21667,7 @@ [(set (match_operand:VI1_AVX512VL_F 0 "register_operand" "=v") (unspec:VI1_AVX512VL_F [(match_operand:VI1_AVX512VL_F 1 "register_operand" "v") - (match_operand:VI1_AVX512VL_F 2 "vector_operand" "v")] + (match_operand:VI1_AVX512VL_F 2 "vector_operand" "vm")] UNSPEC_VAESDEC))] "TARGET_VAES" "vaesdec\t{%2, %1, %0|%0, %1, %2}" @@ -21596,7 +21677,7 @@ [(set (match_operand:VI1_AVX512VL_F 0 "register_operand" "=v") (unspec:VI1_AVX512VL_F [(match_operand:VI1_AVX512VL_F 1 "register_operand" "v") - (match_operand:VI1_AVX512VL_F 2 "vector_operand" "v")] + (match_operand:VI1_AVX512VL_F 2 "vector_operand" "vm")] UNSPEC_VAESDECLAST))] "TARGET_VAES" "vaesdeclast\t{%2, %1, %0|%0, %1, %2}" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/stringop.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/stringop.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/stringop.def 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/stringop.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for stringop strategy for IA-32. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/subst.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/subst.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/subst.md 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/subst.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for AVX512F instructions -;; Copyright (C) 2013-2018 Free Software Foundation, Inc. +;; Copyright (C) 2013-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/sync.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/sync.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/sync.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/sync.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for i386 synchronization instructions. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/sysv4.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/sysv4.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/sysv4.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/sysv4.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target definitions for GCC for Intel 80386 running System V.4 - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. Written by Ron Guilmette (rfg@netcom.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/tbmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/tbmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/tbmintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/tbmintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2018 Free Software Foundation, Inc. +/* Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/t-cet gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/t-cet --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/t-cet 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/t-cet 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2018 Free Software Foundation, Inc. +# Copyright (C) 2017-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/t-cygming gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/t-cygming --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/t-cygming 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/t-cygming 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/t-i386 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/t-i386 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/t-i386 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/t-i386 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/t-linux64 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/t-linux64 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/t-linux64 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/t-linux64 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/tmmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/tmmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/tmmintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/tmmintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/t-rtems gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/t-rtems --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/t-rtems 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/t-rtems 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/t-sol2 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/t-sol2 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/t-sol2 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/t-sol2 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/unix.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/unix.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/unix.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/unix.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for Unix assembler syntax for the Intel 80386. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/vaesintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/vaesintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/vaesintrin.h 2018-06-13 07:08:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/vaesintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2018 Free Software Foundation, Inc. +/* Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/vpclmulqdqintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/vpclmulqdqintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/vpclmulqdqintrin.h 2018-06-13 07:08:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/vpclmulqdqintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -53,9 +53,9 @@ #pragma GCC pop_options #endif /* __DISABLE_VPCLMULQDQF__ */ -#if !defined(__VPCLMULQDQ__) || !defined(__AVX512VL__) +#if !defined(__VPCLMULQDQ__) || !defined(__AVX__) #pragma GCC push_options -#pragma GCC target("vpclmulqdq,avx512vl") +#pragma GCC target("vpclmulqdq,avx") #define __DISABLE_VPCLMULQDQ__ #endif /* __VPCLMULQDQ__ */ @@ -78,6 +78,4 @@ #pragma GCC pop_options #endif /* __DISABLE_VPCLMULQDQ__ */ - #endif /* _VPCLMULQDQINTRIN_H_INCLUDED */ - diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/vxworksae.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/vxworksae.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/vxworksae.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/vxworksae.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* IA32 VxWorks AE target definitions for GNU compiler. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, LLC. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/vxworks.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/vxworks.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/vxworks.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/vxworks.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* IA32 VxWorks target definitions for GNU compiler. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Updated by CodeSourcery, LLC. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/waitpkgintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/waitpkgintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/waitpkgintrin.h 2018-06-04 16:10:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/waitpkgintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Free Software Foundation, Inc. +/* Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/winnt.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/winnt.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/winnt.c 2018-06-14 13:43:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/winnt.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Subroutines for insn-output.c for Windows NT. Contributed by Douglas Rupp (drupp@cs.washington.edu) - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/winnt-cxx.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/winnt-cxx.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/winnt-cxx.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/winnt-cxx.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Target support for C++ classes on Windows. Contributed by Danny Smith (dannysmith@users.sourceforge.net) - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/winnt-stubs.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/winnt-stubs.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/winnt-stubs.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/winnt-stubs.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Dummy subroutines for language-specific support on Windows. Contributed by Danny Smith (dannysmith@users.sourceforge.net) - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/wmmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/wmmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/wmmintrin.h 2018-02-13 10:57:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/wmmintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/x86-64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/x86-64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/x86-64.h 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/x86-64.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* OS independent definitions for AMD x86-64. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Bo Thorsen . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/x86intrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/x86intrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/x86intrin.h 2018-06-04 16:10:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/x86intrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/x86-tune-costs.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/x86-tune-costs.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/x86-tune-costs.h 2018-11-05 08:45:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/x86-tune-costs.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Costs of operations of individual x86 CPUs. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/x86-tune.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/x86-tune.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/x86-tune.def 2018-11-05 08:45:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/x86-tune.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of x86 tunable features. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -379,9 +379,13 @@ /* X86_TUNE_INTER_UNIT_MOVES_TO_VEC: Enable moves in from integer to SSE registers. If disabled, the moves will be done by storing - the value to memory and reloading. */ + the value to memory and reloading. + Enable this flag for generic - the only relevant architecture preferring + no inter-unit moves is Buldozer. While this makes small regression on SPECfp + scores (sub 0.3%), disabling inter-unit moves penalizes noticeably hand + written vectorized code which use i.e. _mm_set_epi16. */ DEF_TUNE (X86_TUNE_INTER_UNIT_MOVES_TO_VEC, "inter_unit_moves_to_vec", - ~(m_ATHLON_K8 | m_AMDFAM10 | m_BDVER | m_BTVER | m_GENERIC)) + ~(m_ATHLON_K8 | m_AMDFAM10 | m_BDVER | m_BTVER)) /* X86_TUNE_INTER_UNIT_MOVES_TO_VEC: Enable moves in from SSE to integer registers. If disabled, the moves will be done by storing diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/x86-tune-sched-atom.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/x86-tune-sched-atom.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/x86-tune-sched-atom.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/x86-tune-sched-atom.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Scheduler hooks for IA-32 which implement atom+ specific logic. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/x86-tune-sched-bd.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/x86-tune-sched-bd.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/x86-tune-sched-bd.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/x86-tune-sched-bd.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Scheduler hooks for IA-32 which implement bdver1-4 specific logic. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/x86-tune-sched.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/x86-tune-sched.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/x86-tune-sched.c 2018-11-05 08:45:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/x86-tune-sched.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Scheduler hooks for IA-32 which implement CPU specific logic. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/x86-tune-sched-core.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/x86-tune-sched-core.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/x86-tune-sched-core.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/x86-tune-sched-core.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Scheduler hooks for IA-32 which implement bdver1-4 specific logic. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xm-cygwin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xm-cygwin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xm-cygwin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xm-cygwin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Configuration for GCC for hosting on Windows NT. using a unix style C library. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xm-djgpp.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xm-djgpp.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xm-djgpp.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xm-djgpp.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Configuration for GCC for Intel 80386 running DJGPP. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/x-mingw32 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/x-mingw32 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/x-mingw32 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/x-mingw32 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xm-mingw32.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xm-mingw32.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xm-mingw32.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xm-mingw32.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Configuration for GCC for hosting on Windows32. using GNU tools and the Windows32 API Library. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xmmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xmmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xmmintrin.h 2018-08-16 06:58:35.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xmmintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xopintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xopintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xopintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xopintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xsavecintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xsavecintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xsavecintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xsavecintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xsaveintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xsaveintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xsaveintrin.h 2018-05-12 14:22:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xsaveintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xsaveoptintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xsaveoptintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xsaveoptintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xsaveoptintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xsavesintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xsavesintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xsavesintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xsavesintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xtestintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xtestintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/xtestintrin.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/xtestintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/znver1.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/znver1.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/i386/znver1.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/i386/znver1.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/constraints.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for IA-64 -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/div.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/div.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/div.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/div.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/elf.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions for embedded ia64-elf target. -Copyright (C) 2000-2018 Free Software Foundation, Inc. +Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/freebsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/freebsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/freebsd.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/freebsd.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for Intel IA-64 running FreeBSD using the ELF format - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by David E. O'Brien and BSDi. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/hpux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/hpux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/hpux.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/hpux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine GNU compiler. IA-64 version. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Steve Ellcey and Reva Cuthbertson diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/ia64.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/ia64.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/ia64.c 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/ia64.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by James E. Wilson and David Mosberger . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/ia64-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/ia64-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/ia64-c.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/ia64-c.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of C specific functions for GNU compiler. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Steve Ellcey This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/ia64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/ia64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/ia64.h 2018-03-06 16:37:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/ia64.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine GNU compiler. IA-64 version. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by James E. Wilson and David Mosberger . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/ia64.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/ia64.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/ia64.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/ia64.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; IA-64 Machine description template -;; Copyright (C) 1999-2018 Free Software Foundation, Inc. +;; Copyright (C) 1999-2019 Free Software Foundation, Inc. ;; Contributed by James E. Wilson and ;; David Mosberger . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/ia64-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/ia64-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/ia64-modes.def 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/ia64-modes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine GNU compiler. IA-64 version. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by James E. Wilson and David Mosberger . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/ia64.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/ia64.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/ia64.opt 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/ia64.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/ia64-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/ia64-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/ia64-opts.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/ia64-opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for option handling for IA-64. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/ia64-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/ia64-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/ia64-protos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/ia64-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler for IA-64. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/itanium2.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/itanium2.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/itanium2.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/itanium2.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Itanium2 DFA descriptions for insn scheduling and bundling. -;; Copyright (C) 2002-2018 Free Software Foundation, Inc. +;; Copyright (C) 2002-2019 Free Software Foundation, Inc. ;; Contributed by Vladimir Makarov . ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/linux.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/linux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions for ia64-linux target. -Copyright (C) 2000-2018 Free Software Foundation, Inc. +Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/predicates.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for IA-64. -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/sync.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/sync.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/sync.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/sync.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for IA-64 synchronization instructions. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/sysv4.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/sysv4.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/sysv4.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/sysv4.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Override definitions in elfos.h to be correct for IA64. -Copyright (C) 2000-2018 Free Software Foundation, Inc. +Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/t-hpux gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/t-hpux --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/t-hpux 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/t-hpux 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/t-ia64 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/t-ia64 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/t-ia64 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/t-ia64 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2018 Free Software Foundation, Inc. +# Copyright (C) 2000-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/vect.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/vect.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/vect.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/vect.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; IA-64 machine description for vector operations. -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/vms.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/vms.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/vms.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/vms.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine GNU compiler. IA64-VMS version. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Douglas B Rupp (rupp@gnat.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/vms.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/vms.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/ia64/vms.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/ia64/vms.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; IA64 VMS options. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/initfini-array.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/initfini-array.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/initfini-array.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/initfini-array.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions for ELF systems with .init_array/.fini_array section support. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/iq2000/abi gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/iq2000/abi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/iq2000/abi 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/iq2000/abi 2019-01-02 08:05:19.000000000 +0000 @@ -232,7 +232,7 @@ receive the return value. -Copyright (C) 2003-2018 Free Software Foundation, Inc. +Copyright (C) 2003-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/iq2000/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/iq2000/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/iq2000/constraints.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/iq2000/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraints for Vitesse IQ2000 processors -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/iq2000/iq2000.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/iq2000/iq2000.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/iq2000/iq2000.c 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/iq2000/iq2000.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for code generation on Vitesse IQ2000 processors - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/iq2000/iq2000.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/iq2000/iq2000.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/iq2000/iq2000.h 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/iq2000/iq2000.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. Vitesse IQ2000 processors - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/iq2000/iq2000.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/iq2000/iq2000.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/iq2000/iq2000.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/iq2000/iq2000.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; iq2000.md Machine Description for Vitesse IQ2000 processors -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/iq2000/iq2000.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/iq2000/iq2000.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/iq2000/iq2000.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/iq2000/iq2000.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the Vitesse IQ2000 port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/iq2000/iq2000-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/iq2000/iq2000-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/iq2000/iq2000-opts.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/iq2000/iq2000-opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for option handling for Vitesse IQ2000 processors. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/iq2000/iq2000-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/iq2000/iq2000-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/iq2000/iq2000-protos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/iq2000/iq2000-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler for iq2000. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/iq2000/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/iq2000/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/iq2000/predicates.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/iq2000/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for Vitesse IQ2000. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/kfreebsd-gnu.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/kfreebsd-gnu.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/kfreebsd-gnu.h 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/kfreebsd-gnu.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for kFreeBSD-based GNU systems with ELF format - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Robert Millan. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/kopensolaris-gnu.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/kopensolaris-gnu.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/kopensolaris-gnu.h 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/kopensolaris-gnu.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for kOpenSolaris-based GNU systems with ELF format - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Robert Millan. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/linux-android.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/linux-android.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/linux-android.h 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/linux-android.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Configuration file for Linux Android targets. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Doug Kwan (dougkwan@google.com) Rewritten by CodeSourcery, Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/linux-android.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/linux-android.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/linux-android.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/linux-android.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Android specific options. -; Copyright (C) 2008-2018 Free Software Foundation, Inc. +; Copyright (C) 2008-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/linux.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/linux.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/linux.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/linux.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Functions for Linux Android as target machine for GNU C compiler. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/linux.h 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/linux.h 2019-01-02 08:05:18.000000000 +0000 @@ -2,7 +2,7 @@ MMU, using ELF at the compiler level but possibly FLT for final linked executables and shared libraries in some no-MMU cases, and possibly with a choice of libc implementations. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. Contributed by Eric Youngdale. Modified for stabs-in-ELF by H.J. Lu (hjl@lucon.org). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/linux.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/linux.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/linux.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/linux.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Processor-independent options for GNU/Linux. ; -; Copyright (C) 2006-2018 Free Software Foundation, Inc. +; Copyright (C) 2006-2019 Free Software Foundation, Inc. ; Contributed by CodeSourcery. ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/linux-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/linux-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/linux-protos.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/linux-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lm32/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lm32/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lm32/constraints.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lm32/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,7 +1,7 @@ ;; Constraint definitions for Lattice Mico32 architecture. ;; Contributed by Jon Beniston ;; -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lm32/lm32.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lm32/lm32.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lm32/lm32.c 2018-11-28 13:52:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lm32/lm32.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,7 +1,7 @@ /* Subroutines used for code generation on the Lattice Mico32 architecture. Contributed by Jon Beniston - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lm32/lm32.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lm32/lm32.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lm32/lm32.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lm32/lm32.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,7 +1,7 @@ /* Definitions of target machine for GNU compiler, Lattice Mico32 architecture. Contributed by Jon Beniston - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lm32/lm32.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lm32/lm32.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lm32/lm32.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lm32/lm32.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,7 +1,7 @@ ;; Machine description of the Lattice Mico32 architecture for GNU C compiler. ;; Contributed by Jon Beniston -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lm32/lm32.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lm32/lm32.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lm32/lm32.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lm32/lm32.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,7 +1,7 @@ ; Options for the Lattice Mico32 port of the compiler. ; Contributed by Jon Beniston ; -; Copyright (C) 2009-2018 Free Software Foundation, Inc. +; Copyright (C) 2009-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lm32/lm32-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lm32/lm32-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lm32/lm32-protos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lm32/lm32-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,7 +1,7 @@ /* Prototypes of target machine functions, Lattice Mico32 architecture. Contributed by Jon Beniston - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lm32/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lm32/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lm32/predicates.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lm32/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,7 +1,7 @@ ;; Predicate definitions for Lattice Mico32 architecture. ;; Contributed by Jon Beniston ;; -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lm32/rtems.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lm32/rtems.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lm32/rtems.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lm32/rtems.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for rtems targeting a lm32 using ELF. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lm32/uclinux-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lm32/uclinux-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lm32/uclinux-elf.h 2018-08-02 03:04:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lm32/uclinux-elf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for LM32 running Linux-based GNU systems using ELF - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. Contributed by Philip Blundell This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lynx.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lynx.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lynx.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lynx.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target independent definitions for LynxOS. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lynx.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lynx.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/lynx.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/lynx.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Processor-independent options for LynxOS. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/addsub.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/addsub.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/addsub.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/addsub.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Descriptions for R8C/M16C/M32C -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/bitops.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/bitops.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/bitops.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/bitops.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Descriptions for R8C/M16C/M32C -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/blkmov.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/blkmov.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/blkmov.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/blkmov.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Descriptions for R8C/M16C/M32C -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/cond.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/cond.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/cond.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/cond.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Descriptions for R8C/M16C/M32C -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/constraints.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; m32c constraints -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/jump.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/jump.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/jump.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/jump.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Descriptions for R8C/M16C/M32C -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/m32c.abi gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/m32c.abi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/m32c.abi 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/m32c.abi 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ Target Definitions for R8C/M16C/M32C - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/m32c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/m32c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/m32c.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/m32c.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target Code for R8C/M16C/M32C - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/m32c.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/m32c.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/m32c.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/m32c.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target Definitions for R8C/M16C/M32C - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/m32c.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/m32c.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/m32c.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/m32c.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Descriptions for R8C/M16C/M32C -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/m32c-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/m32c-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/m32c-modes.def 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/m32c-modes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target-Specific Modes for R8C/M16C/M32C - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/m32c.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/m32c.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/m32c.opt 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/m32c.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ; Target Options for R8C/M16C/M32C -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; Contributed by Red Hat. ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/m32c-pragma.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/m32c-pragma.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/m32c-pragma.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/m32c-pragma.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* M32C Pragma support - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Red Hat, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/m32c-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/m32c-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/m32c-protos.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/m32c-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target Prototypes for R8C/M16C/M32C - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/minmax.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/minmax.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/minmax.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/minmax.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Descriptions for R8C/M16C/M32C -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/mov.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/mov.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/mov.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/mov.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Descriptions for R8C/M16C/M32C -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/muldiv.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/muldiv.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/muldiv.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/muldiv.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Descriptions for R8C/M16C/M32C -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/predicates.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Descriptions for R8C/M16C/M32C -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/prologue.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/prologue.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/prologue.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/prologue.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Descriptions for R8C/M16C/M32C -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/rtems.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/rtems.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/rtems.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/rtems.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for rtems targeting a M32C using ELF. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/shift.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/shift.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/shift.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/shift.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Descriptions for R8C/M16C/M32C -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/t-m32c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/t-m32c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32c/t-m32c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32c/t-m32c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ # Target Makefile Fragment for R8C/M16C/M32C -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # Contributed by Red Hat. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/constraints.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for Renesas M32R cpu for GNU C compiler -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/linux.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/linux.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for Renesas M32R running Linux-based GNU systems using ELF. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/little.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/little.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/little.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/little.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for Renesas little endian M32R cpu. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/m32r.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/m32r.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/m32r.c 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/m32r.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for code generation on the Renesas M32R cpu. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/m32r.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/m32r.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/m32r.h 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/m32r.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, Renesas M32R cpu. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/m32r.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/m32r.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/m32r.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/m32r.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description of the Renesas M32R cpu for GNU C compiler -;; Copyright (C) 1996-2018 Free Software Foundation, Inc. +;; Copyright (C) 1996-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/m32r.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/m32r.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/m32r.opt 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/m32r.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the Renesas M32R port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/m32r-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/m32r-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/m32r-opts.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/m32r-opts.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for option handling for Renesas M32R cpu. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/m32r-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/m32r-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/m32r-protos.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/m32r-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes for m32r.c functions used in the md file & elsewhere. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/predicates.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for Renesas M32R. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/t-linux gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/t-linux --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/t-linux 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/t-linux 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/t-m32r gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/t-m32r --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m32r/t-m32r 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m32r/t-m32r 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/cf.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/cf.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/cf.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/cf.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; ColdFire V1, V2, V3 and V4/V4e DFA description. -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; Contributed by CodeSourcery Inc., www.codesourcery.com ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/constraints.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for m68k -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/genopt.sh gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/genopt.sh --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/genopt.sh 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/genopt.sh 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ #!/bin/sh # Generate m68k-tables.opt from the lists in *.def. -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -23,7 +23,7 @@ ; Generated automatically by genopt.sh from m68k-devices.def, ; m68k-isas.def and m68k-microarchs.def. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/ieee.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/ieee.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/ieee.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/ieee.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Extra IEEE options for the Motorola 68000 port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/linux.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/linux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions for Motorola 68k running Linux-based GNU systems with ELF format. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68020-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68020-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68020-elf.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68020-elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. "naked" 68020, elf object files and debugging, version. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k.c 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for insn-output.c for Motorola 68000 family. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k-devices.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k-devices.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k-devices.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k-devices.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* m68k device names -*- C -*- - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Written by CodeSourcery This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68kelf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68kelf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68kelf.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68kelf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ /* m68kelf support, derived from m68kv4.h */ /* Target definitions for GNU compiler for mc680x0 running System V.4 - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. Written by Ron Guilmette (rfg@netcom.com) and Fred Fish (fnf@cygnus.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68kemb.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68kemb.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68kemb.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68kemb.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. "embedded" 68XXX. This is meant to be included after m68k.h. - Copyright (C) 1994-2018 Free Software Foundation, Inc. */ + Copyright (C) 1994-2019 Free Software Foundation, Inc. */ /* Override the SVR4 ABI for this target. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k.h 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GCC for Motorola 680x0/ColdFire. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k-isas.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k-isas.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k-isas.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k-isas.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* m68k ISA names. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k.md 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;;- Machine description for GNU compiler, Motorola 68000 Version -;; Copyright (C) 1987-2018 Free Software Foundation, Inc. +;; Copyright (C) 1987-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k-microarchs.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k-microarchs.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k-microarchs.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k-microarchs.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* m68k microarchitecture names. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k-modes.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k-modes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* M68k extra machine modes. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k-none.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k-none.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k-none.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k-none.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. "naked" 68020. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the Motorola 68000 port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k-opts.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k-opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for option handling for Motorola 680x0/ColdFire. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k-protos.h 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. Sun 68000/68020 version. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k-tables.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k-tables.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/m68k-tables.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/m68k-tables.opt 2019-01-02 08:05:19.000000000 +0000 @@ -2,7 +2,7 @@ ; Generated automatically by genopt.sh from m68k-devices.def, ; m68k-isas.def and m68k-microarchs.def. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/netbsd-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/netbsd-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/netbsd-elf.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/netbsd-elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ /* Definitions of target machine for GNU compiler, for m68k (including m68010) NetBSD platforms using the ELF object format. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Wasabi Systems. Inc. This file is derived from , , diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/openbsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/openbsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/openbsd.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/openbsd.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Configuration file for an m68k OpenBSD target. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/predicates.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for Motorola 68000. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/print-sysroot-suffix.sh gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/print-sysroot-suffix.sh --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/print-sysroot-suffix.sh 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/print-sysroot-suffix.sh 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # This file is part of GCC. # GCC is free software; you can redistribute it and/or modify diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/rtemself.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/rtemself.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/rtemself.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/rtemself.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions for rtems targeting a Motorola m68k using elf. Copyright (C) 1999, 2000, 2002 National Research Council of Canada. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Charles-Antoine Gauthier (charles.gauthier@nrc.ca). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/sync.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/sync.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/sync.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/sync.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for m68k synchronization instructions. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/t-linux gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/t-linux --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/t-linux 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/t-linux 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/t-mlibs gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/t-mlibs --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/t-mlibs 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/t-mlibs 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ # multilibs -*- mode:Makefile -*- # -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/t-uclinux gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/t-uclinux --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/t-uclinux 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/t-uclinux 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/uclinux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/uclinux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/uclinux.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/uclinux.h 2019-01-02 08:05:19.000000000 +0000 @@ -2,7 +2,7 @@ using ELF objects with special linker post-processing to produce FLAT executables. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/uclinux.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/uclinux.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/m68k/uclinux.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/m68k/uclinux.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; m68k/ColdFire uClinux options. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mcore/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mcore/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mcore/constraints.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mcore/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for the Motorola MCore -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mcore/mcore.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mcore/mcore.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mcore/mcore.c 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mcore/mcore.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Output routines for Motorola MCore processor - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mcore/mcore-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mcore/mcore-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mcore/mcore-elf.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mcore/mcore-elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of MCore target. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Cygnus Solutions. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mcore/mcore.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mcore/mcore.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mcore/mcore.h 2018-11-13 05:13:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mcore/mcore.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for Motorola M*CORE Processor. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mcore/mcore.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mcore/mcore.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mcore/mcore.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mcore/mcore.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description the Motorola MCore -;; Copyright (C) 1993-2018 Free Software Foundation, Inc. +;; Copyright (C) 1993-2019 Free Software Foundation, Inc. ;; Contributed by Motorola. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mcore/mcore.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mcore/mcore.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mcore/mcore.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mcore/mcore.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the Motorola MCore port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mcore/mcore-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mcore/mcore-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mcore/mcore-protos.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mcore/mcore-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes for exported functions defined in mcore.c - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Nick Clifton (nickc@redhat.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mcore/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mcore/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mcore/predicates.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mcore/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for Motorola MCore. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mcore/t-mcore gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mcore/t-mcore --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mcore/t-mcore 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mcore/t-mcore 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2018 Free Software Foundation, Inc. +# Copyright (C) 2000-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/constraints.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for Xilinx MicroBlaze processors. -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by Michael Eager . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/linux.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/linux.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for MicroBlaze running Linux. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/microblaze.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/microblaze.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/microblaze.c 2018-11-28 13:52:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/microblaze.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for code generation on Xilinx MicroBlaze. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Michael Eager . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/microblaze-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/microblaze-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/microblaze-c.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/microblaze-c.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for the C front end for Xilinx MicroBlaze. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Michael Eager . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/microblaze.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/microblaze.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/microblaze.h 2018-04-30 13:48:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/microblaze.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler for Xilinx MicroBlaze. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Michael Eager . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/microblaze.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/microblaze.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/microblaze.md 2018-04-30 13:48:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/microblaze.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; microblaze.md -- Machine description for Xilinx MicroBlaze processors. -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; Contributed by Michael Eager . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/microblaze.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/microblaze.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/microblaze.opt 2018-04-30 13:48:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/microblaze.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the MicroBlaze port of the compiler ; -; Copyright (C) 2009-2018 Free Software Foundation, Inc. +; Copyright (C) 2009-2019 Free Software Foundation, Inc. ; ; Contributed by Michael Eager . ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/microblaze-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/microblaze-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/microblaze-protos.h 2018-04-30 13:48:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/microblaze-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for Xilinx MicroBlaze. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/predicates.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for Xilinx MicroBlaze -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; ;; Contributed by Michael Eager . ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/rtems.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/rtems.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/rtems.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/rtems.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for rtems targeting a microblaze using ELF. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/sync.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/sync.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/microblaze/sync.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/microblaze/sync.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for Xilinx MicroBlaze synchronization instructions. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/10000.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/10000.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/10000.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/10000.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; DFA-based pipeline description for the VR1x000. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/20kc.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/20kc.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/20kc.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/20kc.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/24k.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/24k.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/24k.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/24k.md 2019-01-02 08:05:19.000000000 +0000 @@ -8,7 +8,7 @@ ;; References: ;; "MIPS32 24K Processor Core Family Software User's Manual, Rev 3.04." ;; -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/3000.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/3000.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/3000.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/3000.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; R3000 and TX39 pipeline description. -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/4000.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/4000.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/4000.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/4000.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; R4000 pipeline description. -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/4100.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/4100.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/4100.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/4100.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; VR4100 and VR4120 pipeline description. -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/4130.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/4130.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/4130.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/4130.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/4300.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/4300.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/4300.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/4300.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; VR4300 pipeline description. -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/4600.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/4600.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/4600.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/4600.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; R4600, R4650, and R4700 pipeline description. -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/4k.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/4k.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/4k.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/4k.md 2019-01-02 08:05:19.000000000 +0000 @@ -10,7 +10,7 @@ ;; 4km - pipelined multiplier and block address translator (BAT) ;; 4kp - non-pipelined multiplier and block address translator (BAT) ;; -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/5000.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/5000.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/5000.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/5000.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; VR5000 pipeline description. -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/5400.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/5400.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/5400.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/5400.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2002-2018 Free Software Foundation, Inc. +;; Copyright (C) 2002-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/5500.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/5500.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/5500.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/5500.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2002-2018 Free Software Foundation, Inc. +;; Copyright (C) 2002-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/5k.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/5k.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/5k.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/5k.md 2019-01-02 08:05:19.000000000 +0000 @@ -10,7 +10,7 @@ ;; 5kf - Separate floating point pipe which can dual-issue with the ;; integer pipe. ;; -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/6000.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/6000.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/6000.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/6000.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; R6000 pipeline description. -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/7000.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/7000.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/7000.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/7000.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; DFA-based pipeline description for the RM7000. -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/74k.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/74k.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/74k.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/74k.md 2019-01-02 08:05:19.000000000 +0000 @@ -5,7 +5,7 @@ ;; "MIPS32 74K Microarchitecure Specification Rev. 01.02 Jun 15, 2006" ;; "MIPS32 74Kf Processor Core Datasheet Jun 2, 2006" ;; -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/9000.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/9000.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/9000.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/9000.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; DFA-based pipeline description for the RM9000. -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/constraints.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for MIPS. -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/driver-native.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/driver-native.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/driver-native.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/driver-native.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the gcc driver. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/elf.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target macros for mips*-elf targets. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/elfoabi.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/elfoabi.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/elfoabi.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/elfoabi.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Target macros for mips*-elf targets that selected between o32 and o64 based on the target architecture. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/elforion.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/elforion.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/elforion.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/elforion.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. MIPS ORION version. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/frame-header-opt.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/frame-header-opt.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/frame-header-opt.c 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/frame-header-opt.c 2019-01-02 08:05:19.000000000 +0000 @@ -4,7 +4,7 @@ targets, if a frame header is required, it is allocated by the callee. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/generic.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/generic.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/generic.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/generic.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Generic DFA-based pipeline description for MIPS targets -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/genopt.sh gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/genopt.sh --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/genopt.sh 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/genopt.sh 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ #!/bin/sh # Generate mips-tables.opt from the list of CPUs in mips-cpus.def. -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -22,7 +22,7 @@ ; -*- buffer-read-only: t -*- ; Generated automatically by genopt.sh from mips-cpus.def. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/gnu-user.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/gnu-user.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/gnu-user.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/gnu-user.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for MIPS systems using GNU userspace. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/gs264e.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/gs264e.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/gs264e.md 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/gs264e.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ;; Pipeline model for Loongson gs264e cores. -;; Copyright (C) 2018 Free Software Foundation, Inc. +;; Copyright (C) 2018-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/gs464e.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/gs464e.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/gs464e.md 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/gs464e.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ;; Pipeline model for Loongson gs464e cores. -;; Copyright (C) 2018 Free Software Foundation, Inc. +;; Copyright (C) 2018-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/gs464.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/gs464.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/gs464.md 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/gs464.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ;; Pipeline model for Loongson gs464 cores. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/i6400.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/i6400.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/i6400.md 2018-06-13 07:08:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/i6400.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ;; DFA-based pipeline description for I6400. ;; -;; Copyright (C) 2015-2018 Free Software Foundation, Inc. +;; Copyright (C) 2015-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/linux-common.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/linux-common.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/linux-common.h 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/linux-common.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for MIPS running Linux-based GNU systems with ELF format. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/linux.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/linux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for MIPS running Linux-based GNU systems with ELF format. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/loongson2ef.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/loongson2ef.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/loongson2ef.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/loongson2ef.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ;; Pipeline model for ST Microelectronics Loongson-2E/2F cores. -;; Copyright (C) 2008-2018 Free Software Foundation, Inc. +;; Copyright (C) 2008-2019 Free Software Foundation, Inc. ;; Contributed by CodeSourcery. ;; ;; GCC is free software; you can redistribute it and/or modify diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/loongson.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/loongson.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/loongson.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/loongson.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Intrinsics for Loongson MultiMedia extension Instructions operations. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by CodeSourcery. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/loongson-mmiintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/loongson-mmiintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/loongson-mmiintrin.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/loongson-mmiintrin.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Intrinsics for Loongson MultiMedia extension Instructions operations. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by CodeSourcery. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/loongson-mmi.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/loongson-mmi.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/loongson-mmi.md 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/loongson-mmi.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for Loongson MultiMedia extensions Instructions (MMI). -;; Copyright (C) 2008-2018 Free Software Foundation, Inc. +;; Copyright (C) 2008-2019 Free Software Foundation, Inc. ;; Contributed by CodeSourcery. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/m5100.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/m5100.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/m5100.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/m5100.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ;; DFA-based pipeline description for MIPS32 models M5100. ;; -;; Copyright (C) 2015-2018 Free Software Foundation, Inc. +;; Copyright (C) 2015-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/micromips.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/micromips.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/micromips.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/micromips.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2013-2018 Free Software Foundation, Inc. +;; Copyright (C) 2013-2019 Free Software Foundation, Inc. ;; ;; micromips.md Machine Description for the microMIPS instruction set ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips.c 2018-11-28 13:52:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for MIPS code generation. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. Contributed by A. Lichnewsky, lich@inria.inria.fr. Changes by Michael Meissner, meissner@osf.org. 64-bit r4000 support by Ian Lance Taylor, ian@cygnus.com, and diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-cpus.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-cpus.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-cpus.def 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-cpus.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* MIPS CPU names. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-d.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-d.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-d.c 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-d.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the D front end on the MIPS architecture. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-dsp.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-dsp.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-dsp.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-dsp.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-dspr2.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-dspr2.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-dspr2.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-dspr2.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-fixed.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-fixed.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-fixed.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-fixed.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-ftypes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-ftypes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-ftypes.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-ftypes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of prototypes for MIPS built-in functions. -*- C -*- - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips.h 2018-11-28 13:52:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. MIPS version. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. Contributed by A. Lichnewsky (lich@inria.inria.fr). Changed by Michael Meissner (meissner@osf.org). 64-bit r4000 support by Ian Lance Taylor (ian@cygnus.com) and diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips.md 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Mips.md Machine Description for MIPS based processors -;; Copyright (C) 1989-2018 Free Software Foundation, Inc. +;; Copyright (C) 1989-2019 Free Software Foundation, Inc. ;; Contributed by A. Lichnewsky, lich@inria.inria.fr ;; Changes by Michael Meissner, meissner@osf.org ;; 64-bit r4000 support by Ian Lance Taylor, ian@cygnus.com, and diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-modes.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-modes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* MIPS extra machine modes. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-msa.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-msa.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-msa.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-msa.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ ;; Machine Description for MIPS MSA ASE ;; Based on the MIPS MSA spec Revision 1.11 8/4/2014 ;; -;; Copyright (C) 2015-2018 Free Software Foundation, Inc. +;; Copyright (C) 2015-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips.opt 2018-11-28 13:52:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the MIPS port of the compiler ; -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-opts.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for option handling for MIPS. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-protos.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes of target machine for GNU compiler. MIPS version. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. Contributed by A. Lichnewsky (lich@inria.inria.fr). Changed by Michael Meissner (meissner@osf.org). 64-bit r4000 support by Ian Lance Taylor (ian@cygnus.com) and diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-ps-3d.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-ps-3d.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-ps-3d.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-ps-3d.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; MIPS Paired-Single Floating and MIPS-3D Instructions. -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-tables.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-tables.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mips-tables.opt 2018-11-09 12:59:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mips-tables.opt 2019-01-02 08:05:22.000000000 +0000 @@ -1,7 +1,7 @@ ; -*- buffer-read-only: t -*- ; Generated automatically by genopt.sh from mips-cpus.def. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/msa.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/msa.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/msa.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/msa.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* MIPS MSA intrinsics include file. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Imagination Technologies Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mti-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mti-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mti-elf.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mti-elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target macros for mips*-mti-elf targets. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mti-linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mti-linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/mti-linux.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/mti-linux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target macros for mips*-mti-linux* targets. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/n32-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/n32-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/n32-elf.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/n32-elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. n32 for embedded systems. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/netbsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/netbsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/netbsd.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/netbsd.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for MIPS NetBSD systems. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/octeon.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/octeon.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/octeon.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/octeon.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Octeon pipeline description. -;; Copyright (C) 2008-2018 Free Software Foundation, Inc. +;; Copyright (C) 2008-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/p5600.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/p5600.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/p5600.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/p5600.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ;; DFA-based pipeline description for P5600. ;; -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/p6600.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/p6600.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/p6600.md 2018-06-14 13:43:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/p6600.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ;; DFA-based pipeline description for P6600. ;; -;; Copyright (C) 2018 Free Software Foundation, Inc. +;; Copyright (C) 2018-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/predicates.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for MIPS. -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/r3900.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/r3900.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/r3900.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/r3900.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ /* Definitions of MIPS sub target machine for GNU compiler. Toshiba r3900. You should include mips.h after this. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. Contributed by Gavin Koch (gavin@cygnus.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/rtems.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/rtems.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/rtems.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/rtems.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for rtems targeting a MIPS using ELF. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/sb1.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/sb1.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/sb1.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/sb1.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/sde.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/sde.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/sde.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/sde.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. MIPS SDE version. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/sdemtk.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/sdemtk.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/sdemtk.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/sdemtk.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. MIPS SDE version, for use with the SDE C library rather than newlib. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/sde.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/sde.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/sde.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/sde.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; MIPS SDE options. ; -; Copyright (C) 2010-2018 Free Software Foundation, Inc. +; Copyright (C) 2010-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/sr71k.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/sr71k.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/sr71k.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/sr71k.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2002-2018 Free Software Foundation, Inc. +;; Copyright (C) 2002-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/st.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/st.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/st.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/st.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* ST 2e / 2f GNU/Linux Configuration. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/sync.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/sync.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/sync.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/sync.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ;; Machine Description for MIPS based processor synchronization ;; instructions. -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-elf gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-elf --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-elf 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-elf 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-img-elf gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-img-elf --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-img-elf 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-img-elf 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-img-linux gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-img-linux --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-img-linux 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-img-linux 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-isa3264 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-isa3264 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-isa3264 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-isa3264 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-linux64 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-linux64 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-linux64 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-linux64 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-mips gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-mips --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-mips 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-mips 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-mti-elf gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-mti-elf --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-mti-elf 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-mti-elf 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-mti-linux gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-mti-linux --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-mti-linux 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-mti-linux 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-r3900 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-r3900 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-r3900 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-r3900 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2018 Free Software Foundation, Inc. +# Copyright (C) 1998-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-rtems gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-rtems --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-rtems 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-rtems 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ # Custom multilibs for RTEMS # -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-sb1 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-sb1 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-sb1 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-sb1 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-sde gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-sde --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-sde 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-sde 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-sdemtk gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-sdemtk --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-sdemtk 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-sdemtk 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-sr71k gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-sr71k --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-sr71k 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-sr71k 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-st gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-st --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-st 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-st 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-vr gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-vr --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-vr 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-vr 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-vxworks gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-vxworks --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/t-vxworks 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/t-vxworks 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/vr.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/vr.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/vr.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/vr.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. NEC VR Series Processors - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Red Hat, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/vxworks.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/vxworks.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/vxworks.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/vxworks.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 Free Software Foundation, Inc. +/* Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/xlp.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/xlp.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/xlp.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/xlp.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; DFA-based pipeline description for the XLP. -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; ;; xlp.md Machine Description for the Broadcom XLP Microprocessor ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/xlr.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/xlr.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mips/xlr.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mips/xlr.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; DFA-based pipeline description for the XLR. -;; Copyright (C) 2008-2018 Free Software Foundation, Inc. +;; Copyright (C) 2008-2019 Free Software Foundation, Inc. ;; ;; xlr.md Machine Description for the RMI XLR Microprocessor ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mmix/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mmix/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mmix/constraints.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mmix/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; MMIX constraints -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mmix/mmix.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mmix/mmix.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mmix/mmix.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mmix/mmix.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for MMIX. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Hans-Peter Nilsson (hp@bitrange.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mmix/mmix.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mmix/mmix.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mmix/mmix.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mmix/mmix.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for MMIX. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Hans-Peter Nilsson (hp@bitrange.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mmix/mmix.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mmix/mmix.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mmix/mmix.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mmix/mmix.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for MMIX -;; Copyright (C) 2000-2018 Free Software Foundation, Inc. +;; Copyright (C) 2000-2019 Free Software Foundation, Inc. ;; Contributed by Hans-Peter Nilsson (hp@bitrange.com) ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mmix/mmix-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mmix/mmix-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mmix/mmix-modes.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mmix/mmix-modes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for MMIX. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Hans-Peter Nilsson (hp@bitrange.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mmix/mmix.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mmix/mmix.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mmix/mmix.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mmix/mmix.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the MMIX port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mmix/mmix-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mmix/mmix-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mmix/mmix-protos.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mmix/mmix-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes for exported functions defined in mmix.c - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Hans-Peter Nilsson (hp@bitrange.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mmix/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mmix/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mmix/predicates.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mmix/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Operand and operator predicates for the GCC MMIX port. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mmix/t-mmix gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mmix/t-mmix --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mmix/t-mmix 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mmix/t-mmix 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/constraints.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for the MN10300. -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/linux.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/linux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of taret machine for GNU compiler. Matsushita AM33/2.0 - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Alexandre Oliva This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/mn10300.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/mn10300.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/mn10300.c 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/mn10300.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for insn-output.c for Matsushita MN10300 series - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Jeff Law (law@cygnus.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/mn10300.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/mn10300.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/mn10300.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/mn10300.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler. Matsushita MN10300 series - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Jeff Law (law@cygnus.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/mn10300.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/mn10300.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/mn10300.md 2018-11-20 10:31:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/mn10300.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for Matsushita MN10300 -;; Copyright (C) 1996-2018 Free Software Foundation, Inc. +;; Copyright (C) 1996-2019 Free Software Foundation, Inc. ;; Contributed by Jeff Law (law@cygnus.com). ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/mn10300-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/mn10300-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/mn10300-modes.def 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/mn10300-modes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for MN10300. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Red Hat Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/mn10300.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/mn10300.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/mn10300.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/mn10300.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the Matsushita MN10300 port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/mn10300-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/mn10300-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/mn10300-opts.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/mn10300-opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for option handling for Matsushita MN10300 series. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/mn10300-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/mn10300-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/mn10300-protos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/mn10300-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. Matsushita MN10300 series - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Jeff Law (law@cygnus.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/predicates.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for Matsushita MN10300. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/t-mn10300 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/t-mn10300 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/mn10300/t-mn10300 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/mn10300/t-mn10300 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/constraints.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for Moxie -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; Contributed by Anthony Green ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/moxiebox.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/moxiebox.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/moxiebox.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/moxiebox.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for the moxiebox. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Anthony Green (green@moxielogic.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/moxie.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/moxie.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/moxie.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/moxie.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target Code for moxie - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Anthony Green. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/moxie.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/moxie.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/moxie.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/moxie.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target Definitions for moxie. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Anthony Green. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/moxie.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/moxie.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/moxie.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/moxie.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for Moxie -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; Contributed by Anthony Green ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/moxie.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/moxie.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/moxie.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/moxie.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the moxie compiler port. -; Copyright (C) 2012-2018 Free Software Foundation, Inc. +; Copyright (C) 2012-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/moxie-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/moxie-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/moxie-protos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/moxie-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes for moxie.c functions used in the md file & elsewhere. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/predicates.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for Moxie -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; Contributed by Anthony Green ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/rtems.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/rtems.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/rtems.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/rtems.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for rtems targeting the Moxie core. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Anthony Green (green@moxielogic.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/t-moxie gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/t-moxie --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/t-moxie 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/t-moxie 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ # Target Makefile Fragment for moxie -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # Contributed by Anthony Green. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/uclinux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/uclinux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/moxie/uclinux.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/moxie/uclinux.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2018 Free Software Foundation, Inc. +/* Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/constraints.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Description for TI MSP43* processors -;; Copyright (C) 2013-2018 Free Software Foundation, Inc. +;; Copyright (C) 2013-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/driver-msp430.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/driver-msp430.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/driver-msp430.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/driver-msp430.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the gcc driver. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Georg-Johann Lay This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/msp430.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/msp430.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/msp430.c 2018-11-20 10:31:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/msp430.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for code generation on TI MSP430 processors. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. @@ -1946,6 +1946,13 @@ TREE_USED (* node) = 1; DECL_PRESERVE_P (* node) = 1; } + if (is_critical_func (* node)) + { + warning (OPT_Wattributes, + "critical attribute has no effect on interrupt functions"); + DECL_ATTRIBUTES (*node) = remove_attribute (ATTR_CRIT, + DECL_ATTRIBUTES (* node)); + } } else if (TREE_NAME_EQ (name, ATTR_REENT)) { @@ -1960,6 +1967,8 @@ message = "naked functions cannot be critical"; else if (is_reentrant_func (* node)) message = "reentrant functions cannot be critical"; + else if (is_interrupt_func ( *node)) + message = "critical attribute has no effect on interrupt functions"; } else if (TREE_NAME_EQ (name, ATTR_NAKED)) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/msp430-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/msp430-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/msp430-c.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/msp430-c.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* MSP430 C-specific support - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Red Hat, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/msp430.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/msp430.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/msp430.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/msp430.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* GCC backend definitions for the TI MSP430 Processor - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. @@ -159,6 +159,11 @@ #define PTR_SIZE (TARGET_LARGE ? 4 : 2) #define POINTERS_EXTEND_UNSIGNED 1 +/* TARGET_VTABLE_ENTRY_ALIGN defaults to POINTER_SIZE, which is 20 for + TARGET_LARGE. Pointer alignment is always 16 for MSP430, so set explicitly + here. */ +#define TARGET_VTABLE_ENTRY_ALIGN 16 + #define ADDR_SPACE_NEAR 1 #define ADDR_SPACE_FAR 2 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/msp430.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/msp430.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/msp430.md 2018-05-31 09:39:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/msp430.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Description for TI MSP43* processors -;; Copyright (C) 2013-2018 Free Software Foundation, Inc. +;; Copyright (C) 2013-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/msp430-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/msp430-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/msp430-opts.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/msp430-opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* GCC option-handling definitions for the TI MSP430 - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/msp430-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/msp430-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/msp430-protos.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/msp430-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Exported function prototypes from the TI MSP430 backend. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/predicates.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Description for TI MSP43* processors -;; Copyright (C) 2013-2018 Free Software Foundation, Inc. +;; Copyright (C) 2013-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/t-msp430 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/t-msp430 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/msp430/t-msp430 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/msp430/t-msp430 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ # Makefile fragment for building GCC for the TI MSP430 target. -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by Red Hat. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/constants.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/constants.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/constants.md 2018-06-04 16:10:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/constants.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constant defintions of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/constraints.md 2018-05-21 12:22:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/elf.h 2018-06-04 16:10:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/elf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2014 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/iterators.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/iterators.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/iterators.md 2018-05-14 15:08:33.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/iterators.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ;; Code and mode itertator and attribute definitions ;; of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/linux.h 2018-06-04 16:10:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/linux.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2014 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32.c 2018-10-02 07:26:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for code generation of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-cost.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-cost.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-cost.c 2018-05-21 12:22:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-cost.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for calculate rtx costs of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-doubleword.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-doubleword.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-doubleword.md 2018-05-21 12:22:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-doubleword.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; DImode/DFmode patterns description of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-dspext.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-dspext.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-dspext.md 2018-05-21 12:22:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-dspext.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-e8.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-e8.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-e8.md 2018-04-08 18:27:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-e8.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Pipeline descriptions of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-fp-as-gp.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-fp-as-gp.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-fp-as-gp.c 2018-06-04 16:10:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-fp-as-gp.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* The fp-as-gp pass of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-fpu.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-fpu.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-fpu.md 2018-05-21 12:22:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-fpu.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-graywolf.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-graywolf.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-graywolf.md 2018-05-14 15:08:33.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-graywolf.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Pipeline descriptions of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2013 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32.h 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-intrinsic.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-intrinsic.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-intrinsic.c 2018-05-14 15:08:33.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-intrinsic.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Intrinsic functions of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32_intrinsic.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32_intrinsic.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32_intrinsic.h 2018-05-14 15:08:33.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32_intrinsic.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Intrinsic definitions of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-intrinsic.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-intrinsic.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-intrinsic.md 2018-05-28 08:24:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-intrinsic.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Intrinsic patterns description of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-isr.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-isr.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-isr.c 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-isr.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for ISR of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32_isr.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32_isr.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32_isr.h 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32_isr.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Intrinsic definitions of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32.md 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-md-auxiliary.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-md-auxiliary.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-md-auxiliary.c 2018-05-21 12:22:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-md-auxiliary.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Auxiliary functions for output asm template or expand rtl pattern of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-memory-manipulation.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-memory-manipulation.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-memory-manipulation.c 2018-05-28 08:24:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-memory-manipulation.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Auxiliary functions for expand movmem, setmem, cmpmem, load_multiple and store_multiple pattern of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-modes.def 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-modes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Extra machine modes of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-multiple.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-multiple.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-multiple.md 2018-05-28 08:24:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-multiple.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Load/Store Multiple patterns description of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation.for NDS32. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-n10.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-n10.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-n10.md 2018-05-14 15:08:33.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-n10.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Pipeline descriptions of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-n13.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-n13.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-n13.md 2018-05-14 15:08:33.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-n13.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Pipeline descriptions of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-n7.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-n7.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-n7.md 2018-04-08 18:27:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-n7.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Pipeline descriptions of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-n8.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-n8.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-n8.md 2018-04-08 18:27:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-n8.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Pipeline descriptions of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-n9-2r1w.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-n9-2r1w.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-n9-2r1w.md 2018-04-08 18:27:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-n9-2r1w.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Pipeline descriptions of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-n9-3r2w.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-n9-3r2w.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-n9-3r2w.md 2018-04-08 18:27:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-n9-3r2w.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Pipeline descriptions of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32.opt 2018-08-14 22:30:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ; Options of Andes NDS32 cpu for GNU compiler -; Copyright (C) 2012-2018 Free Software Foundation, Inc. +; Copyright (C) 2012-2019 Free Software Foundation, Inc. ; Contributed by Andes Technology Corporation. ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-opts.h 2018-06-04 16:10:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-opts.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for option handling of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-peephole2.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-peephole2.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-peephole2.md 2018-06-04 16:10:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-peephole2.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; define_peephole2 optimization patterns of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-pipelines-auxiliary.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-pipelines-auxiliary.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-pipelines-auxiliary.c 2018-05-14 15:08:33.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-pipelines-auxiliary.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Auxiliary functions for pipeline descriptions pattern of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-predicates.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-predicates.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-predicates.c 2018-08-14 22:30:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-predicates.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Predicate functions of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-protos.h 2018-08-14 22:30:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes for exported functions of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-relax-opt.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-relax-opt.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-relax-opt.c 2018-06-22 07:37:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-relax-opt.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* relax-opt pass of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-utils.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-utils.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/nds32-utils.c 2018-05-14 15:08:33.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/nds32-utils.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Auxiliary functions for pipeline descriptions pattern of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/pipelines.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/pipelines.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/pipelines.md 2018-05-14 15:08:33.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/pipelines.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Pipeline descriptions of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/predicates.md 2018-05-21 12:22:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions of Andes NDS32 cpu for GNU compiler -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andes Technology Corporation. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/t-elf gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/t-elf --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/t-elf 2018-06-04 16:10:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/t-elf 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ # The multilib settings of Andes NDS32 cpu for GNU compiler -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by Andes Technology Corporation. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/t-linux gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/t-linux --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/t-linux 2018-06-04 16:10:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/t-linux 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ # The multilib settings of Andes NDS32 cpu for GNU compiler -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by Andes Technology Corporation. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/t-mlibs gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/t-mlibs --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/t-mlibs 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/t-mlibs 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ # The multilib settings of Andes NDS32 cpu for GNU compiler -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by Andes Technology Corporation. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/t-nds32 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/t-nds32 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nds32/t-nds32 2018-04-08 18:27:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nds32/t-nds32 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ # General rules that all nds32/ targets must have. -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by Andes Technology Corporation. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/netbsd.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/netbsd.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/netbsd.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/netbsd.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Functions for generic NetBSD as target machine for GNU C compiler. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/netbsd-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/netbsd-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/netbsd-elf.h 2018-11-10 08:05:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/netbsd-elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Common configuration file for NetBSD ELF targets. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Wasabi Systems, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/netbsd-elf.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/netbsd-elf.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/netbsd-elf.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/netbsd-elf.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; NetBSD ELF-only options. -; Copyright (C) 2010-2018 Free Software Foundation, Inc. +; Copyright (C) 2010-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/netbsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/netbsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/netbsd.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/netbsd.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Base configuration file for all NetBSD targets. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/netbsd.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/netbsd.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/netbsd.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/netbsd.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; NetBSD options. -; Copyright (C) 2010-2018 Free Software Foundation, Inc. +; Copyright (C) 2010-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/netbsd-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/netbsd-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/netbsd-protos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/netbsd-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/netbsd-stdint.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/netbsd-stdint.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/netbsd-stdint.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/netbsd-stdint.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for types for NetBSD systems. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/newlib-stdint.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/newlib-stdint.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/newlib-stdint.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/newlib-stdint.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for types on systems using newlib. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/constraints.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for Altera Nios II. -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Chung-Lin Tang ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/elf.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/elf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of ELF target support for Altera Nios II. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Jonah Graham (jgraham@altera.com), Will Reece (wreece@altera.com), and Jeff DaSilva (jdasilva@altera.com). Contributed by Mentor Graphics, Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/elf.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/elf.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/elf.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/elf.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ; Options for the Altera Nios II port of the compiler. -; Copyright (C) 2012-2018 Free Software Foundation, Inc. +; Copyright (C) 2012-2019 Free Software Foundation, Inc. ; Contributed by Altera and Mentor Graphics, Inc. ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/ldstwm.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/ldstwm.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/ldstwm.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/ldstwm.md 2019-01-02 08:05:18.000000000 +0000 @@ -2,7 +2,7 @@ This file was automatically generated using nios2-ldstwm.sml. Please do not edit manually. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Mentor Graphics. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/linux.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/linux.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target support for Altera Nios II systems running GNU/Linux with ELF format. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Mentor Graphics, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/nios2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/nios2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/nios2.c 2018-11-05 08:45:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/nios2.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target machine subroutines for Altera Nios II. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Jonah Graham (jgraham@altera.com), Will Reece (wreece@altera.com), and Jeff DaSilva (jdasilva@altera.com). Contributed by Mentor Graphics, Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/nios2.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/nios2.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/nios2.h 2018-01-09 03:04:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/nios2.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for Altera Nios II. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Jonah Graham (jgraham@altera.com), Will Reece (wreece@altera.com), and Jeff DaSilva (jdasilva@altera.com). Contributed by Mentor Graphics, Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/nios2-ldstwm.sml gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/nios2-ldstwm.sml --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/nios2-ldstwm.sml 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/nios2-ldstwm.sml 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ (* Auto-generate Nios II R2 CDX ldwm/stwm/push.n/pop.n patterns - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Mentor Graphics. This file is part of GCC. @@ -233,7 +233,7 @@ " This file was automatically generated using nios2-ldstwm.sml.\n" ^ " Please do not edit manually.\n" ^ "\n" ^ - " Copyright (C) 2014-2018 Free Software Foundation, Inc.\n" ^ + " Copyright (C) 2014-2019 Free Software Foundation, Inc.\n" ^ " Contributed by Mentor Graphics.\n" ^ "\n" ^ " This file is part of GCC.\n" ^ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/nios2.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/nios2.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/nios2.md 2018-03-16 04:25:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/nios2.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Description for Altera Nios II. -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Jonah Graham (jgraham@altera.com) and ;; Will Reece (wreece@altera.com). ;; Contributed by Mentor Graphics, Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/nios2.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/nios2.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/nios2.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/nios2.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ; Options for the Altera Nios II port of the compiler. -; Copyright (C) 2012-2018 Free Software Foundation, Inc. +; Copyright (C) 2012-2019 Free Software Foundation, Inc. ; Contributed by Altera and Mentor Graphics, Inc. ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/nios2-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/nios2-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/nios2-opts.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/nios2-opts.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for option handling for Nios II. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/nios2-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/nios2-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/nios2-protos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/nios2-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutine declarations for Altera Nios II target support. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Jonah Graham (jgraham@altera.com). Contributed by Mentor Graphics, Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/predicates.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for Altera Nios II. -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Chung-Lin Tang ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/rtems.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/rtems.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/rtems.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/rtems.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for rtems targeting a NIOS2 using ELF. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Chris Johns (chrisj@rtems.org). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/sync.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/sync.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/sync.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/sync.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Description for Altera Nios II synchronization primitives. -;; Copyright (C) 2014-2018 Free Software Foundation, Inc. +;; Copyright (C) 2014-2019 Free Software Foundation, Inc. ;; Contributed by Mentor Graphics, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/t-nios2 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/t-nios2 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nios2/t-nios2 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nios2/t-nios2 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ # Target Makefile Fragment for Altera Nios II. -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. # Contributed by Altera and Mentor Graphics, Inc. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nvptx/mkoffload.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nvptx/mkoffload.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nvptx/mkoffload.c 2018-05-02 07:13:07.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nvptx/mkoffload.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Offload image generation tool for PTX. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Nathan Sidwell and Bernd Schmidt . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nvptx/nvptx.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nvptx/nvptx.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nvptx/nvptx.c 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nvptx/nvptx.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target code for NVPTX. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Bernd Schmidt This file is part of GCC. @@ -81,6 +81,16 @@ #define WORKAROUND_PTXJIT_BUG_2 1 #define WORKAROUND_PTXJIT_BUG_3 1 +#define PTX_WARP_SIZE 32 +#define PTX_VECTOR_LENGTH 32 +#define PTX_WORKER_LENGTH 32 +#define PTX_DEFAULT_RUNTIME_DIM 0 /* Defer to runtime. */ + +/* The PTX concept CTA (Concurrent Thread Array) maps on the CUDA concept thread + block, which has had a maximum number of threads of 1024 since CUDA version + 2.x. */ +#define PTX_CTA_SIZE 1024 + /* The various PTX memory areas an object might reside in. */ enum nvptx_data_area { @@ -122,14 +132,15 @@ static GTY((cache)) hash_table *declared_fndecls_htab; static GTY((cache)) hash_table *needed_fndecls_htab; -/* Buffer needed to broadcast across workers. This is used for both - worker-neutering and worker broadcasting. It is shared by all - functions emitted. The buffer is placed in shared memory. It'd be - nice if PTX supported common blocks, because then this could be - shared across TUs (taking the largest size). */ -static unsigned worker_bcast_size; -static unsigned worker_bcast_align; -static GTY(()) rtx worker_bcast_sym; +/* Buffer needed to broadcast across workers and vectors. This is + used for both worker-neutering and worker broadcasting, and + vector-neutering and boardcasting when vector_length > 32. It is + shared by all functions emitted. The buffer is placed in shared + memory. It'd be nice if PTX supported common blocks, because then + this could be shared across TUs (taking the largest size). */ +static unsigned oacc_bcast_size; +static unsigned oacc_bcast_align; +static GTY(()) rtx oacc_bcast_sym; /* Buffer needed for worker reductions. This has to be distinct from the worker broadcast array, as both may be live concurrently. */ @@ -202,9 +213,9 @@ declared_libfuncs_htab = hash_table::create_ggc (17); - worker_bcast_sym = gen_rtx_SYMBOL_REF (Pmode, "__worker_bcast"); - SET_SYMBOL_DATA_AREA (worker_bcast_sym, DATA_AREA_SHARED); - worker_bcast_align = GET_MODE_ALIGNMENT (SImode) / BITS_PER_UNIT; + oacc_bcast_sym = gen_rtx_SYMBOL_REF (Pmode, "__oacc_bcast"); + SET_SYMBOL_DATA_AREA (oacc_bcast_sym, DATA_AREA_SHARED); + oacc_bcast_align = GET_MODE_ALIGNMENT (SImode) / BITS_PER_UNIT; worker_red_sym = gen_rtx_SYMBOL_REF (Pmode, "__worker_red"); SET_SYMBOL_DATA_AREA (worker_red_sym, DATA_AREA_SHARED); @@ -1742,14 +1753,14 @@ across the vectors of a single warp. */ static rtx -nvptx_gen_vcast (rtx reg) +nvptx_gen_warp_bcast (rtx reg) { return nvptx_gen_shuffle (reg, reg, const0_rtx, SHUFFLE_IDX); } /* Structure used when generating a worker-level spill or fill. */ -struct wcast_data_t +struct broadcast_data_t { rtx base; /* Register holding base addr of buffer. */ rtx ptr; /* Iteration var, if needed. */ @@ -1773,7 +1784,8 @@ how many loop iterations will be executed (0 for not a loop). */ static rtx -nvptx_gen_wcast (rtx reg, propagate_mask pm, unsigned rep, wcast_data_t *data) +nvptx_gen_shared_bcast (rtx reg, propagate_mask pm, unsigned rep, + broadcast_data_t *data, bool vector) { rtx res; machine_mode mode = GET_MODE (reg); @@ -1787,7 +1799,7 @@ start_sequence (); if (pm & PM_read) emit_insn (gen_sel_truesi (tmp, reg, GEN_INT (1), const0_rtx)); - emit_insn (nvptx_gen_wcast (tmp, pm, rep, data)); + emit_insn (nvptx_gen_shared_bcast (tmp, pm, rep, data, vector)); if (pm & PM_write) emit_insn (gen_rtx_SET (reg, gen_rtx_NE (BImode, tmp, const0_rtx))); res = get_insns (); @@ -1803,10 +1815,10 @@ { unsigned align = GET_MODE_ALIGNMENT (mode) / BITS_PER_UNIT; - if (align > worker_bcast_align) - worker_bcast_align = align; - data->offset = (data->offset + align - 1) & ~(align - 1); + oacc_bcast_align = MAX (oacc_bcast_align, align); + data->offset = ROUND_UP (data->offset, align); addr = data->base; + gcc_assert (data->base != NULL); if (data->offset) addr = gen_rtx_PLUS (Pmode, addr, GEN_INT (data->offset)); } @@ -1926,8 +1938,7 @@ { val >>= part * BITS_PER_UNIT; part = init_frag.size - init_frag.offset; - if (part > size) - part = size; + part = MIN (part, size); unsigned HOST_WIDE_INT partial = val << (init_frag.offset * BITS_PER_UNIT); @@ -1990,8 +2001,7 @@ if (init_frag.offset) { unsigned part = init_frag.size - init_frag.offset; - if (part > size) - part = (unsigned) size; + part = MIN (part, (unsigned)size); size -= part; nvptx_assemble_value (0, part); } @@ -3797,11 +3807,11 @@ regions and (b) only propagating stack entries that are used. The latter might be quite hard to determine. */ -typedef rtx (*propagator_fn) (rtx, propagate_mask, unsigned, void *); +typedef rtx (*propagator_fn) (rtx, propagate_mask, unsigned, void *, bool); static bool nvptx_propagate (bool is_call, basic_block block, rtx_insn *insn, - propagate_mask rw, propagator_fn fn, void *data) + propagate_mask rw, propagator_fn fn, void *data, bool vector) { bitmap live = DF_LIVE_IN (block); bitmap_iterator iterator; @@ -3836,7 +3846,7 @@ emit_insn (gen_rtx_SET (idx, GEN_INT (fs))); /* Allow worker function to initialize anything needed. */ - rtx init = fn (tmp, PM_loop_begin, fs, data); + rtx init = fn (tmp, PM_loop_begin, fs, data, vector); if (init) emit_insn (init); emit_label (label); @@ -3845,7 +3855,7 @@ } if (rw & PM_read) emit_insn (gen_rtx_SET (tmp, gen_rtx_MEM (DImode, ptr))); - emit_insn (fn (tmp, rw, fs, data)); + emit_insn (fn (tmp, rw, fs, data, vector)); if (rw & PM_write) emit_insn (gen_rtx_SET (gen_rtx_MEM (DImode, ptr), tmp)); if (fs) @@ -3853,7 +3863,7 @@ emit_insn (gen_rtx_SET (pred, gen_rtx_NE (BImode, idx, const0_rtx))); emit_insn (gen_adddi3 (ptr, ptr, GEN_INT (GET_MODE_SIZE (DImode)))); emit_insn (gen_br_true_uni (pred, label)); - rtx fini = fn (tmp, PM_loop_end, fs, data); + rtx fini = fn (tmp, PM_loop_end, fs, data, vector); if (fini) emit_insn (fini); emit_insn (gen_rtx_CLOBBER (GET_MODE (idx), idx)); @@ -3873,7 +3883,7 @@ if (REGNO (reg) >= FIRST_PSEUDO_REGISTER) { - rtx bcast = fn (reg, rw, 0, data); + rtx bcast = fn (reg, rw, 0, data, vector); insn = emit_insn_after (bcast, insn); empty = false; @@ -3882,16 +3892,17 @@ return empty; } -/* Worker for nvptx_vpropagate. */ +/* Worker for nvptx_warp_propagate. */ static rtx -vprop_gen (rtx reg, propagate_mask pm, - unsigned ARG_UNUSED (count), void *ARG_UNUSED (data)) +warp_prop_gen (rtx reg, propagate_mask pm, + unsigned ARG_UNUSED (count), void *ARG_UNUSED (data), + bool ARG_UNUSED (vector)) { if (!(pm & PM_read_write)) return 0; - return nvptx_gen_vcast (reg); + return nvptx_gen_warp_bcast (reg); } /* Propagate state that is live at start of BLOCK across the vectors @@ -3899,26 +3910,27 @@ IS_CALL and return as for nvptx_propagate. */ static bool -nvptx_vpropagate (bool is_call, basic_block block, rtx_insn *insn) +nvptx_warp_propagate (bool is_call, basic_block block, rtx_insn *insn) { - return nvptx_propagate (is_call, block, insn, PM_read_write, vprop_gen, 0); + return nvptx_propagate (is_call, block, insn, PM_read_write, + warp_prop_gen, 0, false); } -/* Worker for nvptx_wpropagate. */ +/* Worker for nvptx_shared_propagate. */ static rtx -wprop_gen (rtx reg, propagate_mask pm, unsigned rep, void *data_) +shared_prop_gen (rtx reg, propagate_mask pm, unsigned rep, void *data_, + bool vector) { - wcast_data_t *data = (wcast_data_t *)data_; + broadcast_data_t *data = (broadcast_data_t *)data_; if (pm & PM_loop_begin) { /* Starting a loop, initialize pointer. */ unsigned align = GET_MODE_ALIGNMENT (GET_MODE (reg)) / BITS_PER_UNIT; - if (align > worker_bcast_align) - worker_bcast_align = align; - data->offset = (data->offset + align - 1) & ~(align - 1); + oacc_bcast_align = MAX (oacc_bcast_align, align); + data->offset = ROUND_UP (data->offset, align); data->ptr = gen_reg_rtx (Pmode); @@ -3931,7 +3943,7 @@ return clobber; } else - return nvptx_gen_wcast (reg, pm, rep, data); + return nvptx_gen_shared_bcast (reg, pm, rep, data, vector); } /* Spill or fill live state that is live at start of BLOCK. PRE_P @@ -3940,25 +3952,26 @@ INSN. IS_CALL and return as for nvptx_propagate. */ static bool -nvptx_wpropagate (bool pre_p, bool is_call, basic_block block, rtx_insn *insn) +nvptx_shared_propagate (bool pre_p, bool is_call, basic_block block, + rtx_insn *insn, bool vector) { - wcast_data_t data; + broadcast_data_t data; data.base = gen_reg_rtx (Pmode); data.offset = 0; data.ptr = NULL_RTX; bool empty = nvptx_propagate (is_call, block, insn, - pre_p ? PM_read : PM_write, wprop_gen, &data); + pre_p ? PM_read : PM_write, shared_prop_gen, + &data, vector); gcc_assert (empty == !data.offset); if (data.offset) { /* Stuff was emitted, initialize the base pointer now. */ - rtx init = gen_rtx_SET (data.base, worker_bcast_sym); + rtx init = gen_rtx_SET (data.base, oacc_bcast_sym); emit_insn_after (init, insn); - if (worker_bcast_size < data.offset) - worker_bcast_size = data.offset; + oacc_bcast_size = MAX (oacc_bcast_size, data.offset); } return empty; } @@ -3967,9 +3980,9 @@ markers for before and after synchronizations. */ static rtx -nvptx_wsync (bool after) +nvptx_cta_sync (bool after) { - return gen_nvptx_barsync (GEN_INT (after)); + return gen_nvptx_barsync (GEN_INT (after), GEN_INT (0)); } #if WORKAROUND_PTXJIT_BUG @@ -4224,7 +4237,7 @@ pred = gen_reg_rtx (BImode); cfun->machine->axis_predicate[mode - GOMP_DIM_WORKER] = pred; } - + rtx br; if (mode == GOMP_DIM_VECTOR) br = gen_br_true (pred, label); @@ -4322,31 +4335,32 @@ emit_insn_before (gen_rtx_SET (tmp, pvar), label); emit_insn_before (gen_rtx_SET (pvar, tmp), tail); #endif - emit_insn_before (nvptx_gen_vcast (pvar), tail); + emit_insn_before (nvptx_gen_warp_bcast (pvar), tail); } else { /* Includes worker mode, do spill & fill. By construction we should never have worker mode only. */ - wcast_data_t data; + broadcast_data_t data; - data.base = worker_bcast_sym; + data.base = oacc_bcast_sym; data.ptr = 0; - if (worker_bcast_size < GET_MODE_SIZE (SImode)) - worker_bcast_size = GET_MODE_SIZE (SImode); + oacc_bcast_size = MAX (oacc_bcast_size, GET_MODE_SIZE (SImode)); data.offset = 0; - emit_insn_before (nvptx_gen_wcast (pvar, PM_read, 0, &data), + emit_insn_before (nvptx_gen_shared_bcast (pvar, PM_read, 0, &data, + false), before); /* Barrier so other workers can see the write. */ - emit_insn_before (nvptx_wsync (false), tail); + emit_insn_before (nvptx_cta_sync (false), tail); data.offset = 0; - emit_insn_before (nvptx_gen_wcast (pvar, PM_write, 0, &data), tail); + emit_insn_before (nvptx_gen_shared_bcast (pvar, PM_write, 0, &data, + false), tail); /* This barrier is needed to avoid worker zero clobbering the broadcast buffer before all the other workers have had a chance to read this instance of it. */ - emit_insn_before (nvptx_wsync (true), tail); + emit_insn_before (nvptx_cta_sync (false), tail); } extract_insn (tail); @@ -4463,19 +4477,21 @@ if (par->mask & GOMP_DIM_MASK (GOMP_DIM_WORKER)) { - nvptx_wpropagate (false, is_call, par->forked_block, par->forked_insn); - bool empty = nvptx_wpropagate (true, is_call, - par->forked_block, par->fork_insn); + nvptx_shared_propagate (false, is_call, par->forked_block, + par->forked_insn, false); + bool empty = nvptx_shared_propagate (true, is_call, + par->forked_block, par->fork_insn, + false); if (!empty || !is_call) { /* Insert begin and end synchronizations. */ - emit_insn_before (nvptx_wsync (false), par->forked_insn); - emit_insn_before (nvptx_wsync (true), par->join_insn); + emit_insn_before (nvptx_cta_sync (false), par->forked_insn); + emit_insn_before (nvptx_cta_sync (false), par->join_insn); } } else if (par->mask & GOMP_DIM_MASK (GOMP_DIM_VECTOR)) - nvptx_vpropagate (is_call, par->forked_block, par->forked_insn); + nvptx_warp_propagate (is_call, par->forked_block, par->forked_insn); /* Now do siblings. */ if (par->next) @@ -4554,7 +4570,7 @@ } if (skip_mask) - nvptx_skip_par (skip_mask, par); + nvptx_skip_par (skip_mask, par); if (par->next) nvptx_neuter_pars (par->next, modes, outer); @@ -4939,10 +4955,11 @@ fputs ("// END PREAMBLE\n", asm_out_file); } -/* Emit a declaration for a worker-level buffer in .shared memory. */ +/* Emit a declaration for a worker and vector-level buffer in .shared + memory. */ static void -write_worker_buffer (FILE *file, rtx sym, unsigned align, unsigned size) +write_shared_buffer (FILE *file, rtx sym, unsigned align, unsigned size) { const char *name = XSTR (sym, 0); @@ -4963,12 +4980,12 @@ nvptx_record_fndecl (decl); fputs (func_decls.str().c_str(), asm_out_file); - if (worker_bcast_size) - write_worker_buffer (asm_out_file, worker_bcast_sym, - worker_bcast_align, worker_bcast_size); + if (oacc_bcast_size) + write_shared_buffer (asm_out_file, oacc_bcast_sym, + oacc_bcast_align, oacc_bcast_size); if (worker_red_size) - write_worker_buffer (asm_out_file, worker_red_sym, + write_shared_buffer (asm_out_file, worker_red_sym, worker_red_align, worker_red_size); if (need_softstack_decl) @@ -5019,20 +5036,18 @@ /* Worker reduction address expander. */ static rtx -nvptx_expand_worker_addr (tree exp, rtx target, +nvptx_expand_shared_addr (tree exp, rtx target, machine_mode ARG_UNUSED (mode), int ignore) { if (ignore) return target; unsigned align = TREE_INT_CST_LOW (CALL_EXPR_ARG (exp, 2)); - if (align > worker_red_align) - worker_red_align = align; + worker_red_align = MAX (worker_red_align, align); unsigned offset = TREE_INT_CST_LOW (CALL_EXPR_ARG (exp, 0)); unsigned size = TREE_INT_CST_LOW (CALL_EXPR_ARG (exp, 1)); - if (size + offset > worker_red_size) - worker_red_size = size + offset; + worker_red_size = MAX (worker_red_size, size + offset); rtx addr = worker_red_sym; if (offset) @@ -5155,7 +5170,7 @@ return nvptx_expand_shuffle (exp, target, mode, ignore); case NVPTX_BUILTIN_WORKER_ADDR: - return nvptx_expand_worker_addr (exp, target, mode, ignore); + return nvptx_expand_shared_addr (exp, target, mode, ignore); case NVPTX_BUILTIN_CMP_SWAP: case NVPTX_BUILTIN_CMP_SWAPLL: @@ -5164,18 +5179,13 @@ default: gcc_unreachable (); } } - -/* Define dimension sizes for known hardware. */ -#define PTX_VECTOR_LENGTH 32 -#define PTX_WORKER_LENGTH 32 -#define PTX_DEFAULT_RUNTIME_DIM 0 /* Defer to runtime. */ /* Implement TARGET_SIMT_VF target hook: number of threads in a warp. */ static int nvptx_simt_vf () { - return PTX_VECTOR_LENGTH; + return PTX_WARP_SIZE; } /* Validate compute dimensions of an OpenACC offload or routine, fill @@ -5187,13 +5197,75 @@ nvptx_goacc_validate_dims (tree decl, int dims[], int fn_level) { bool changed = false; + bool oacc_default_dims_p = false; + bool oacc_min_dims_p = false; + bool offload_region_p = false; + bool routine_p = false; + bool routine_seq_p = false; + + if (decl == NULL_TREE) + { + if (fn_level == -1) + oacc_default_dims_p = true; + else if (fn_level == -2) + oacc_min_dims_p = true; + else + gcc_unreachable (); + } + else if (fn_level == -1) + offload_region_p = true; + else if (0 <= fn_level && fn_level <= GOMP_DIM_MAX) + { + routine_p = true; + routine_seq_p = fn_level == GOMP_DIM_MAX; + } + else + gcc_unreachable (); + + if (routine_p) + { + /* OpenACC routines in C arrive here with the following attributes + (omitting the 'omp declare target'): + seq : __attribute__((oacc function (0 1, 0 1, 0 1))) + vector: __attribute__((oacc function (0 1, 0 1, 1 0))) + worker: __attribute__((oacc function (0 1, 1 0, 1 0))) + gang : __attribute__((oacc function (1 0, 1 0, 1 0))) + + If we take f.i. the oacc function attribute of the worker routine + (0 1, 1 0, 1 0), then: + - the slice (0, 1, 1) is interpreted by oacc_fn_attrib_level as + meaning: worker routine, that is: + - can't contain gang loop (0), + - can contain worker loop (1), + - can contain vector loop (1). + - the slice (1, 0, 0) is interpreted by oacc_validate_dims as the + dimensions: gang: 1, worker: 0, vector: 0. + + OTOH, routines in Fortran arrive here with these attributes: + seq : __attribute__((oacc function (0 0, 0 0, 0 0))) + vector: __attribute__((oacc function (0 0, 0 0, 1 0))) + worker: __attribute__((oacc function (0 0, 1 0, 1 0))) + gang : __attribute__((oacc function (1 0, 1 0, 1 0))) + that is, the same as for C but with the dimensions set to 0. + + This is due to a bug in the Fortran front-end: PR72741. Work around + this bug by forcing the dimensions to be the same in Fortran as for C, + to be able to handle C and Fortran routines uniformly in this + function. */ + dims[GOMP_DIM_VECTOR] = fn_level > GOMP_DIM_VECTOR ? 1 : 0; + dims[GOMP_DIM_WORKER] = fn_level > GOMP_DIM_WORKER ? 1 : 0; + dims[GOMP_DIM_GANG] = fn_level > GOMP_DIM_GANG ? 1 : 0; + changed = true; + } /* The vector size must be 32, unless this is a SEQ routine. */ - if (fn_level <= GOMP_DIM_VECTOR && fn_level >= -1 + if ((offload_region_p || oacc_default_dims_p + || (routine_p && !routine_seq_p)) && dims[GOMP_DIM_VECTOR] >= 0 && dims[GOMP_DIM_VECTOR] != PTX_VECTOR_LENGTH) { - if (fn_level < 0 && dims[GOMP_DIM_VECTOR] >= 0) + if ((offload_region_p || oacc_default_dims_p) + && dims[GOMP_DIM_VECTOR] >= 0) warning_at (decl ? DECL_SOURCE_LOCATION (decl) : UNKNOWN_LOCATION, 0, dims[GOMP_DIM_VECTOR] ? G_("using vector_length (%d), ignoring %d") @@ -5213,7 +5285,7 @@ changed = true; } - if (!decl) + if (oacc_default_dims_p || oacc_min_dims_p) { dims[GOMP_DIM_VECTOR] = PTX_VECTOR_LENGTH; if (dims[GOMP_DIM_WORKER] < 0) @@ -5267,7 +5339,7 @@ data at that location. */ static tree -nvptx_get_worker_red_addr (tree type, tree offset) +nvptx_get_shared_red_addr (tree type, tree offset) { machine_mode mode = TYPE_MODE (type); tree fndecl = nvptx_builtin_decl (NVPTX_BUILTIN_WORKER_ADDR, true); @@ -5609,7 +5681,7 @@ { /* Store incoming value to worker reduction buffer. */ tree offset = gimple_call_arg (call, 5); - tree call = nvptx_get_worker_red_addr (TREE_TYPE (var), offset); + tree call = nvptx_get_shared_red_addr (TREE_TYPE (var), offset); tree ptr = make_ssa_name (TREE_TYPE (call)); gimplify_assign (ptr, call, &seq); @@ -5751,7 +5823,7 @@ { /* Get reduction buffer address. */ tree offset = gimple_call_arg (call, 5); - tree call = nvptx_get_worker_red_addr (TREE_TYPE (var), offset); + tree call = nvptx_get_shared_red_addr (TREE_TYPE (var), offset); tree ptr = make_ssa_name (TREE_TYPE (call)); gimplify_assign (ptr, call, &seq); @@ -5795,7 +5867,7 @@ { /* Read the worker reduction buffer. */ tree offset = gimple_call_arg (call, 5); - tree call = nvptx_get_worker_red_addr(TREE_TYPE (var), offset); + tree call = nvptx_get_shared_red_addr(TREE_TYPE (var), offset); tree ptr = make_ssa_name (TREE_TYPE (call)); gimplify_assign (ptr, call, &seq); @@ -5918,6 +5990,17 @@ return false; } +static GTY(()) tree nvptx_previous_fndecl; + +static void +nvptx_set_current_function (tree fndecl) +{ + if (!fndecl || fndecl == nvptx_previous_fndecl) + return; + + nvptx_previous_fndecl = fndecl; +} + #undef TARGET_OPTION_OVERRIDE #define TARGET_OPTION_OVERRIDE nvptx_option_override @@ -6054,6 +6137,9 @@ #undef TARGET_HAVE_SPECULATION_SAFE_VALUE #define TARGET_HAVE_SPECULATION_SAFE_VALUE speculation_safe_value_not_needed +#undef TARGET_SET_CURRENT_FUNCTION +#define TARGET_SET_CURRENT_FUNCTION nvptx_set_current_function + struct gcc_target targetm = TARGET_INITIALIZER; #include "gt-nvptx.h" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nvptx/nvptx.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nvptx/nvptx.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nvptx/nvptx.h 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nvptx/nvptx.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target Definitions for NVPTX. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Bernd Schmidt This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nvptx/nvptx.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nvptx/nvptx.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nvptx/nvptx.md 2018-09-18 08:44:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nvptx/nvptx.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for NVPTX. -;; Copyright (C) 2014-2018 Free Software Foundation, Inc. +;; Copyright (C) 2014-2019 Free Software Foundation, Inc. ;; Contributed by Bernd Schmidt ;; ;; This file is part of GCC. @@ -1454,10 +1454,16 @@ [(set_attr "atomic" "true")]) (define_insn "nvptx_barsync" - [(unspec_volatile [(match_operand:SI 0 "const_int_operand" "")] + [(unspec_volatile [(match_operand:SI 0 "nvptx_nonmemory_operand" "Ri") + (match_operand:SI 1 "const_int_operand")] UNSPECV_BARSYNC)] "" - "\\tbar.sync\\t%0;" + { + if (INTVAL (operands[1]) == 0) + return "\\tbar.sync\\t%0;"; + else + return "\\tbar.sync\\t%0, %1;"; + } [(set_attr "predicable" "false")]) (define_expand "memory_barrier" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nvptx/nvptx.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nvptx/nvptx.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nvptx/nvptx.opt 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nvptx/nvptx.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ; Options for the NVPTX port -; Copyright (C) 2014-2018 Free Software Foundation, Inc. +; Copyright (C) 2014-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nvptx/nvptx-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nvptx/nvptx-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nvptx/nvptx-opts.h 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nvptx/nvptx-opts.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for the NVPTX port needed for option handling. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nvptx/nvptx-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nvptx/nvptx-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nvptx/nvptx-protos.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nvptx/nvptx-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes for exported functions defined in nvptx.c. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Bernd Schmidt This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nvptx/offload.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nvptx/offload.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/nvptx/offload.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/nvptx/offload.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Support for Nvidia PTX offloading. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/openbsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/openbsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/openbsd.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/openbsd.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Base configuration file for all OpenBSD targets. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/openbsd-libpthread.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/openbsd-libpthread.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/openbsd-libpthread.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/openbsd-libpthread.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* LIB_SPEC appropriate for OpenBSD. Include -lpthread if -pthread is specified on the command line. */ -/* Copyright (C) 2004-2018 Free Software Foundation, Inc. +/* Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/openbsd.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/openbsd.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/openbsd.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/openbsd.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; OpenBSD options. -; Copyright (C) 2010-2018 Free Software Foundation, Inc. +; Copyright (C) 2010-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/constraints.md 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for OpenRISC -;; Copyright (C) 2018 Free Software Foundation, Inc. +;; Copyright (C) 2018-2019 Free Software Foundation, Inc. ;; Contributed by Stafford Horne ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/elf.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target Newlib Definitions for OpenRISC. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Stafford Horne. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/elf.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/elf.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/elf.opt 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/elf.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; OpenRISC command line options for newlib binaries -; Copyright (C) 2010-2018 Free Software Foundation, Inc. +; Copyright (C) 2010-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/linux.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/linux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Linux Definitions for OpenRISC. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Stafford Horne. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/or1k.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/or1k.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/or1k.c 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/or1k.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target Code for OpenRISC - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Stafford Horne based on other ports. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/or1k.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/or1k.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/or1k.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/or1k.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target Definitions for OpenRISC. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Stafford Horne. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/or1k.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/or1k.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/or1k.md 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/or1k.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for OpenRISC -;; Copyright (C) 2018 Free Software Foundation, Inc. +;; Copyright (C) 2018-2019 Free Software Foundation, Inc. ;; Contributed by Stafford Horne ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/or1k.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/or1k.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/or1k.opt 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/or1k.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; OpenRISC command line options -; Copyright (C) 2010-2018 Free Software Foundation, Inc. +; Copyright (C) 2010-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/or1k-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/or1k-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/or1k-protos.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/or1k-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes for OpenRISC functions used in the md file & elsewhere. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/predicates.md 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for OpenRISC -;; Copyright (C) 2018 Free Software Foundation, Inc. +;; Copyright (C) 2018-2019 Free Software Foundation, Inc. ;; Contributed by Stafford Horne ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/rtems.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/rtems.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/rtems.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/rtems.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target Newlib Definitions for OpenRISC. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel.sherrill@OARcorp.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/t-or1k gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/t-or1k --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/or1k/t-or1k 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/or1k/t-or1k 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ # Target Makefile Fragment for OpenRISC -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # Contributed by Stafford Horne. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/constraints.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for pa -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/elf.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for ELF assembler support. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa32-linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa32-linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa32-linux.h 2018-08-02 03:04:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa32-linux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for PA_RISC with ELF-32 format - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa32-openbsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa32-openbsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa32-openbsd.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa32-openbsd.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for PA_RISC with ELF-32 format - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa32-regs.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa32-regs.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa32-regs.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa32-regs.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-64.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-64.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for HPs using the 64bit runtime model. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa64-hpux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa64-hpux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa64-hpux.h 2018-08-02 03:04:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa64-hpux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for HPs running HPUX using the 64bit runtime model. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa64-hpux.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa64-hpux.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa64-hpux.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa64-hpux.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the HP PA-RISC port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa64-linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa64-linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa64-linux.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa64-linux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for PA_RISC with ELF format on 64-bit Linux - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa64-regs.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa64-regs.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa64-regs.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa64-regs.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Configuration for GCC-compiler for PA-RISC. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa.c 2018-09-20 14:06:11.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for insn-output.c for HPPA. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Contributed by Tim Moore (moore@cs.utah.edu), based on sparc.c This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-d.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-d.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-d.c 2018-12-10 19:27:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-d.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the D front end on the HPPA architecture. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa.h 2018-12-10 19:27:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for the HP Spectrum. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) of Cygnus Support and Tim Moore (moore@defmacro.cs.utah.edu) of the Center for Software Science at the University of Utah. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux1010.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux1010.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux1010.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux1010.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for HP PA-RISC - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux1010.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux1010.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux1010.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux1010.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the HP PA-RISC port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux10.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux10.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux10.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux10.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for HP PA-RISC - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. Contributed by Tim Moore (moore@defmacro.cs.utah.edu) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux10.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux10.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux10.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux10.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options specific to HP-UX 10. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux1111.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux1111.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux1111.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux1111.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for HP PA-RISC - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux1111.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux1111.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux1111.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux1111.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the HP PA-RISC port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux1131.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux1131.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux1131.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux1131.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for HP PA-RISC - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux1131.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux1131.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux1131.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux1131.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the HP PA-RISC port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux11.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux11.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux11.h 2018-08-02 03:04:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux11.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for HP PA-RISC - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for HP-UX. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-hpux.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-hpux.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the HP PA-RISC port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-linux.h 2018-05-28 08:24:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-linux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for PA_RISC with ELF format - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa.md 2018-09-20 14:06:11.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;;- Machine description for HP PA-RISC architecture for GCC compiler -;; Copyright (C) 1992-2018 Free Software Foundation, Inc. +;; Copyright (C) 1992-2019 Free Software Foundation, Inc. ;; Contributed by the Center for Software Science at the University ;; of Utah. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-modes.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-modes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for the HP Spectrum. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) of Cygnus Support and Tim Moore (moore@defmacro.cs.utah.edu) of the Center for Software Science at the University of Utah. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-openbsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-openbsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-openbsd.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-openbsd.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for PA_RISC with ELF format - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the HP PA-RISC port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-opts.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for option handling for HP PA. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/pa-protos.h 2018-12-10 19:27:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/pa-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes for pa.c functions used in the md file & elsewhere. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/predicates.md 2018-02-04 08:44:05.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for HP PA-RISC. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/som.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/som.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pa/som.h 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pa/som.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for SOM assembler support. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pdp11/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pdp11/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pdp11/constraints.md 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pdp11/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;;- Constraint definitions for the pdp11 for GNU C compiler -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at). ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pdp11/pdp11.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pdp11/pdp11.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pdp11/pdp11.c 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pdp11/pdp11.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for gcc2 for pdp11. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pdp11/pdp11.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pdp11/pdp11.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pdp11/pdp11.h 2018-11-26 09:16:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pdp11/pdp11.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for the pdp-11 - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pdp11/pdp11.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pdp11/pdp11.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pdp11/pdp11.md 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pdp11/pdp11.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;;- Machine description for the pdp11 for GNU C compiler -;; Copyright (C) 1994-2018 Free Software Foundation, Inc. +;; Copyright (C) 1994-2019 Free Software Foundation, Inc. ;; Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at). ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pdp11/pdp11-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pdp11/pdp11-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pdp11/pdp11-modes.def 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pdp11/pdp11-modes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for the pdp-11 - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pdp11/pdp11.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pdp11/pdp11.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pdp11/pdp11.opt 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pdp11/pdp11.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the PDP11 port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pdp11/pdp11-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pdp11/pdp11-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pdp11/pdp11-protos.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pdp11/pdp11-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for the pdp-11 - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pdp11/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pdp11/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pdp11/predicates.md 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pdp11/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;;- Predicate definitions for the pdp11 for GNU C compiler -;; Copyright (C) 1994-2018 Free Software Foundation, Inc. +;; Copyright (C) 1994-2019 Free Software Foundation, Inc. ;; Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at). ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pdp11/t-pdp11 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pdp11/t-pdp11 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/pdp11/t-pdp11 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/pdp11/t-pdp11 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1995-2018 Free Software Foundation, Inc. +# Copyright (C) 1995-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/phoenix.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/phoenix.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/phoenix.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/phoenix.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Base configuration file for all Phoenix-RTOS targets. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/print-sysroot-suffix.sh gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/print-sysroot-suffix.sh --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/print-sysroot-suffix.sh 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/print-sysroot-suffix.sh 2019-01-02 08:05:18.000000000 +0000 @@ -3,7 +3,7 @@ # Arguments are MULTILIB_OSDIRNAMES, MULTILIB_OPTIONS, MULTILIB_MATCHES, # and MULTILIB_REUSE. -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/constraints.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for RISC-V target. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Andrew Waterman (andrew@sifive.com). ;; Based on MIPS target for GNU compiler. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/elf.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target macros for riscv*-elf targets. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/freebsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/freebsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/freebsd.h 2018-04-07 12:10:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/freebsd.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for RISC-V FreeBSD systems with ELF format. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/generic.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/generic.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/generic.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/generic.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Generic DFA-based pipeline description for RISC-V targets. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Andrew Waterman (andrew@sifive.com). ;; Based on MIPS target for GNU compiler. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/linux.h 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/linux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for RISC-V GNU/Linux systems with ELF format. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/multilib-generator gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/multilib-generator --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/multilib-generator 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/multilib-generator 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ #!/usr/bin/env python # RISC-V multilib list generator. -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # Contributed by Andrew Waterman (andrew@sifive.com). # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/peephole.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/peephole.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/peephole.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/peephole.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Peephole optimizations for RISC-V for GNU compiler. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Andrew Waterman (andrew@sifive.com). ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/pic.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/pic.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/pic.md 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/pic.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; PIC codegen for RISC-V for GNU compiler. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Andrew Waterman (andrew@sifive.com). ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/predicates.md 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate description for RISC-V target. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Andrew Waterman (andrew@sifive.com). ;; Based on MIPS target for GNU compiler. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv-builtins.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv-builtins.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv-builtins.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv-builtins.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for expanding RISC-V builtins. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Andrew Waterman (andrew@sifive.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv.c 2018-11-28 13:52:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for code generation for RISC-V. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Andrew Waterman (andrew@sifive.com). Based on MIPS target for GNU compiler. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv-c.c 2018-10-04 06:31:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv-c.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* RISC-V-specific code for C family languages. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Andrew Waterman (andrew@sifive.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv-d.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv-d.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv-d.c 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv-d.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the D front end on the RISC-V architecture. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv-ftypes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv-ftypes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv-ftypes.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv-ftypes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of prototypes for RISC-V built-in functions. -*- C -*- - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Andrew Waterman (andrew@sifive.com). Based on MIPS target for GNU compiler. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv.h 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definition of RISC-V target for GNU compiler. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Andrew Waterman (andrew@sifive.com). Based on MIPS target for GNU compiler. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv.md 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for RISC-V for GNU compiler. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Andrew Waterman (andrew@sifive.com). ;; Based on MIPS target for GNU compiler. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv-modes.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv-modes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Extra machine modes for RISC-V target. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Andrew Waterman (andrew@sifive.com). Based on MIPS target for GNU compiler. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv.opt 2018-05-21 12:22:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the RISC-V port of the compiler ; -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv-opts.h 2018-05-21 12:22:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv-opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definition of RISC-V target for GNU compiler. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Andrew Waterman (andrew@sifive.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/riscv-protos.h 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/riscv-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definition of RISC-V target for GNU compiler. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Andrew Waterman (andrew@sifive.com). Based on MIPS target for GNU compiler. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/rtems.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/rtems.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/rtems.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/rtems.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for RISC-V RTEMS systems with ELF format. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/sync.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/sync.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/sync.md 2018-04-03 12:21:08.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/sync.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for RISC-V atomic operations. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Andrew Waterman (andrew@sifive.com). ;; Based on MIPS target for GNU compiler. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/withmultilib.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/withmultilib.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/riscv/withmultilib.h 2018-05-12 14:22:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/riscv/withmultilib.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* MULTILIB_DEFAULTS definitions for --with-multilib-list. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/constraints.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Description for Renesas RL78 processors -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/predicates.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Description for Renesas RL78 processors -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for code generation on Renesas RL78 processors. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78-c.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78-c.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* RL78 C-specific support - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Red Hat, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78-expand.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78-expand.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78-expand.md 2018-01-23 00:38:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78-expand.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Description for Renesas RL78 processors -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* GCC backend definitions for the Renesas RL78 processor. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78.md 2018-02-20 06:32:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Description for Renesas RL78 processors -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ; Command line options for the Renesas RL78 port of GCC. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; Contributed by Red Hat. ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78-opts.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78-opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* GCC option-handling definitions for the Renesas RL78 processor. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78-protos.h 2018-01-23 00:38:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes for Renesas RL78 processors - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78-real.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78-real.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78-real.md 2018-01-23 00:38:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78-real.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Description for Renesas RL78 processors -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78-virt.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78-virt.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/rl78-virt.md 2018-01-23 00:38:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/rl78-virt.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Description for Renesas RL78 processors -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/t-rl78 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/t-rl78 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rl78/t-rl78 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rl78/t-rl78 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ # Makefile fragment for building GCC for the Renesas RL78 target. -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # Contributed by Red Hat. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rpath.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rpath.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rpath.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rpath.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; -rpath option to the driver. -; Copyright (C) 2010-2018 Free Software Foundation, Inc. +; Copyright (C) 2010-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/40x.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/40x.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/40x.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/40x.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for IBM PowerPC 403 and PowerPC 405 processors. -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/440.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/440.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/440.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/440.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for IBM PowerPC 440 processor. -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/476.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/476.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/476.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/476.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Enable IBM PowerPC 476 support. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Peter Bergner (bergner@vnet.ibm.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/476.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/476.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/476.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/476.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for IBM PowerPC 476 processor. -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; Contributed by Peter Bergner (bergner@vnet.ibm.com). ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/476.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/476.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/476.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/476.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; IBM PowerPC 476 options. ; -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; Contributed by Peter Bergner (bergner@vnet.ibm.com) ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/601.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/601.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/601.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/601.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for PowerPC 601 processor. -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/603.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/603.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/603.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/603.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for PowerPC 603 processor. -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/6xx.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/6xx.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/6xx.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/6xx.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ;; Scheduling description for PowerPC 604, PowerPC 604e, PowerPC 620, ;; and PowerPC 630 processors. -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/7450.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/7450.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/7450.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/7450.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for Motorola PowerPC 7450 processor. -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/7xx.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/7xx.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/7xx.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/7xx.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for Motorola PowerPC 750 and PowerPC 7400 processors. -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/8540.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/8540.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/8540.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/8540.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Pipeline description for Motorola PowerPC 8540 processor. -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/a2.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/a2.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/a2.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/a2.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for PowerPC A2 processors. -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; Contributed by Ben Elliston (bje@au.ibm.com) ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/aix61.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/aix61.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/aix61.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/aix61.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for IBM RS/6000 POWER running AIX V6.1. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by David Edelsohn (edelsohn@gnu.org). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/aix64.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/aix64.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/aix64.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/aix64.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the 64-bit flavor of AIX. ; -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; Contributed by Aldy Hernandez . ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/aix71.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/aix71.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/aix71.h 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/aix71.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for IBM RS/6000 POWER running AIX V7.1. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by David Edelsohn (edelsohn@gnu.org). This file is part of GCC. @@ -77,7 +77,7 @@ mcpu=power4: -mpwr4; \ mcpu=power3: -m620; \ mcpu=powerpc: -mppc; \ - mcpu=rs64a: -mppc; \ + mcpu=rs64: -mppc; \ mcpu=603: -m603; \ mcpu=603e: -m603; \ mcpu=604: -m604; \ @@ -88,8 +88,7 @@ !mcpu*: %{mvsx: -mpwr6; \ maltivec: -m970; \ maix64|mpowerpc64: -mppc64; \ - : %(asm_default)}; \ - :%eMissing -mcpu option in ASM_SPEC_CPU?\n} \ + : %(asm_default)}} \ -many" #undef ASM_DEFAULT_SPEC diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/aix72.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/aix72.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/aix72.h 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/aix72.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for IBM RS/6000 POWER running AIX V7.2. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by David Edelsohn (edelsohn@gnu.org). This file is part of GCC. @@ -77,7 +77,7 @@ mcpu=power4: -mpwr4; \ mcpu=power3: -m620; \ mcpu=powerpc: -mppc; \ - mcpu=rs64a: -mppc; \ + mcpu=rs64: -mppc; \ mcpu=603: -m603; \ mcpu=603e: -m603; \ mcpu=604: -m604; \ @@ -88,8 +88,7 @@ !mcpu*: %{mvsx: -mpwr6; \ maltivec: -m970; \ maix64|mpowerpc64: -mppc64; \ - : %(asm_default)}; \ - :%eMissing -mcpu option in ASM_SPEC_CPU?\n} \ + : %(asm_default)}} \ -many" #undef ASM_DEFAULT_SPEC diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/aix.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/aix.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/aix.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/aix.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for IBM RS/6000 POWER running AIX. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/aix-stdint.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/aix-stdint.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/aix-stdint.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/aix-stdint.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for types on systems using AIX. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/altivec.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/altivec.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/altivec.h 2018-03-14 19:37:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/altivec.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* PowerPC AltiVec include file. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Aldy Hernandez (aldyh@redhat.com). Rewritten by Paolo Bonzini (bonzini@gnu.org). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/altivec.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/altivec.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/altivec.md 2018-10-02 07:26:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/altivec.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; AltiVec patterns. -;; Copyright (C) 2002-2018 Free Software Foundation, Inc. +;; Copyright (C) 2002-2019 Free Software Foundation, Inc. ;; Contributed by Aldy Hernandez (aldy@quesejoda.com) ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/amo.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/amo.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/amo.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/amo.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Power ISA 3.0 atomic memory operation include file. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Michael Meissner . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/biarch64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/biarch64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/biarch64.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/biarch64.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for 32/64 bit powerpc. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/bmi2intrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/bmi2intrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/bmi2intrin.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/bmi2intrin.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. +/* Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/bmiintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/bmiintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/bmiintrin.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/bmiintrin.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2018 Free Software Foundation, Inc. +/* Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/cell.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/cell.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/cell.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/cell.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for cell processor. -;; Copyright (C) 2001-2018 Free Software Foundation, Inc. +;; Copyright (C) 2001-2019 Free Software Foundation, Inc. ;; Contributed by Sony Computer Entertainment, Inc., diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/constraints.md 2018-11-29 22:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for RS6000 -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/crypto.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/crypto.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/crypto.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/crypto.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Cryptographic instructions added in ISA 2.07 -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Michael Meissner (meissner@linux.vnet.ibm.com) ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/darwin64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/darwin64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/darwin64.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/darwin64.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target definitions for PowerPC running Darwin (Mac OS X). - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Apple Computer Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/darwin7.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/darwin7.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/darwin7.h 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/darwin7.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target definitions for Darwin 7.x (Mac OS X) systems. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/darwin8.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/darwin8.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/darwin8.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/darwin8.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target definitions for Darwin 8.0 and above (Mac OS X) systems. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/darwin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/darwin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/darwin.h 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/darwin.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target definitions for PowerPC running Darwin (Mac OS X). - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Apple Computer Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/darwin.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/darwin.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/darwin.md 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/darwin.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Machine description patterns for PowerPC running Darwin (Mac OS X). - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Apple Computer Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/darwin.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/darwin.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/darwin.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/darwin.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Darwin options for PPC port. ; -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; Contributed by Aldy Hernandez . ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/default64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/default64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/default64.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/default64.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for 64 bit powerpc linux defaulting to -m64. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/dfp.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/dfp.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/dfp.md 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/dfp.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Decimal Floating Point (DFP) patterns. -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; Contributed by Ben Elliston (bje@au.ibm.com) and Peter Bergner ;; (bergner@vnet.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/driver-rs6000.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/driver-rs6000.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/driver-rs6000.c 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/driver-rs6000.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the gcc driver. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -449,7 +449,7 @@ { "power8", "-mpwr8" }, { "power9", "-mpwr9" }, { "powerpc", "-mppc" }, - { "rs64a", "-mppc" }, + { "rs64", "-mppc" }, { "603", "-m603" }, { "603e", "-m603" }, { "604", "-m604" }, @@ -477,8 +477,9 @@ { "power9", "-mpower9" }, { "a2", "-ma2" }, { "powerpc", "-mppc" }, + { "powerpc64", "-mppc64" }, { "powerpc64le", "%{mpower9-vector:-mpower9;:-mpower8}" }, - { "rs64a", "-mppc64" }, + { "rs64", "-mppc64" }, { "401", "-mppc" }, { "403", "-m403" }, { "405", "-m405" }, @@ -519,6 +520,7 @@ { "e500mc64", "-me500mc64" }, { "e5500", "-me5500" }, { "e6500", "-me6500" }, + { "titan", "-mtitan" }, { NULL, "\ %{mpower9-vector: -mpower9; \ mpower8-vector|mcrypto|mdirect-move|mhtm: -mpower8; \ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/e300c2c3.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/e300c2c3.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/e300c2c3.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/e300c2c3.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Pipeline description for Motorola PowerPC e300c3 core. -;; Copyright (C) 2008-2018 Free Software Foundation, Inc. +;; Copyright (C) 2008-2019 Free Software Foundation, Inc. ;; Contributed by Edmar Wienskoski (edmar@freescale.com) ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/e500mc64.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/e500mc64.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/e500mc64.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/e500mc64.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Pipeline description for Freescale PowerPC e500mc64 core. -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; Contributed by Edmar Wienskoski (edmar@freescale.com) ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/e500mc.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/e500mc.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/e500mc.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/e500mc.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Pipeline description for Motorola PowerPC e500mc core. -;; Copyright (C) 2008-2018 Free Software Foundation, Inc. +;; Copyright (C) 2008-2019 Free Software Foundation, Inc. ;; Contributed by Edmar Wienskoski (edmar@freescale.com) ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/e5500.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/e5500.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/e5500.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/e5500.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Pipeline description for Freescale PowerPC e5500 core. -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Edmar Wienskoski (edmar@freescale.com) ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/e6500.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/e6500.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/e6500.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/e6500.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Pipeline description for Freescale PowerPC e6500 core. -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Edmar Wienskoski (edmar@freescale.com) ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/eabialtivec.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/eabialtivec.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/eabialtivec.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/eabialtivec.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Core target definitions for GNU compiler for PowerPC targeted systems with AltiVec support. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Aldy Hernandez (aldyh@redhat.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/eabi.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/eabi.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/eabi.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/eabi.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Core target definitions for GNU compiler for IBM RS/6000 PowerPC targeted to embedded ELF systems. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. Contributed by Cygnus Support. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/eabisim.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/eabisim.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/eabisim.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/eabisim.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Support for GCC on simulated PowerPC systems targeted to embedded ELF systems. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. Contributed by Cygnus Support. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/emmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/emmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/emmintrin.h 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/emmintrin.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2018 Free Software Foundation, Inc. +/* Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/freebsd64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/freebsd64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/freebsd64.h 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/freebsd64.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for 64-bit PowerPC running FreeBSD using the ELF format - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/freebsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/freebsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/freebsd.h 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/freebsd.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for PowerPC running FreeBSD using the ELF format - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by David E. O'Brien and BSDi. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/genopt.sh gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/genopt.sh --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/genopt.sh 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/genopt.sh 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ #!/bin/sh # Generate rs6000-tables.opt from the list of CPUs in rs6000-cpus.def. -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -22,7 +22,7 @@ ; -*- buffer-read-only: t -*- ; Generated automatically by genopt.sh from rs6000-cpus.def. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/host-darwin.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/host-darwin.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/host-darwin.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/host-darwin.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Darwin/powerpc host-specific hook definitions. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/host-ppc64-darwin.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/host-ppc64-darwin.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/host-ppc64-darwin.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/host-ppc64-darwin.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* ppc64-darwin host-specific hook definitions. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/htmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/htmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/htmintrin.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/htmintrin.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Hardware Transactional Memory (HTM) intrinsics. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Peter Bergner . This file is free software; you can redistribute it and/or modify it under diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/htm.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/htm.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/htm.md 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/htm.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Hardware Transactional Memory (HTM) patterns. -;; Copyright (C) 2013-2018 Free Software Foundation, Inc. +;; Copyright (C) 2013-2019 Free Software Foundation, Inc. ;; Contributed by Peter Bergner . ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/htmxlintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/htmxlintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/htmxlintrin.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/htmxlintrin.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* XL compiler Hardware Transactional Memory (HTM) execution intrinsics. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Peter Bergner . This file is free software; you can redistribute it and/or modify it under diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/linux64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/linux64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/linux64.h 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/linux64.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for 64 bit PowerPC linux. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/linux64.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/linux64.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/linux64.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/linux64.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for 64-bit PowerPC Linux. ; -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; Contributed by Aldy Hernandez . ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/linuxaltivec.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/linuxaltivec.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/linuxaltivec.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/linuxaltivec.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for AltiVec enhanced PowerPC machines running GNU/Linux. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Aldy Hernandez (aldyh@redhat.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/linux.h 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/linux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for PowerPC machines running Linux. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Michael Meissner (meissner@cygnus.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/lynx.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/lynx.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/lynx.h 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/lynx.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for Rs6000 running LynxOS. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. Contributed by David Henkel-Wallace, Cygnus Support (gumby@cygnus.com) Rewritten by Adam Nemet, LynuxWorks Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/mmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/mmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/mmintrin.h 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/mmintrin.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/mm_malloc.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/mm_malloc.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/mm_malloc.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/mm_malloc.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2018 Free Software Foundation, Inc. +/* Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/mpc.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/mpc.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/mpc.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/mpc.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for Motorola PowerPC processor cores. -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/netbsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/netbsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/netbsd.h 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/netbsd.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for PowerPC NetBSD systems. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Wasabi Systems, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/option-defaults.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/option-defaults.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/option-defaults.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/option-defaults.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of default options for config/rs6000 configurations. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/pmmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/pmmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/pmmintrin.h 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/pmmintrin.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2018 Free Software Foundation, Inc. +/* Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/power4.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/power4.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/power4.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/power4.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for IBM Power4 and PowerPC 970 processors. -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/power5.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/power5.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/power5.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/power5.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for IBM POWER5 processor. -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/power6.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/power6.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/power6.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/power6.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for IBM POWER6 processor. -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; Contributed by Peter Steinmetz (steinmtz@us.ibm.com) ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/power7.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/power7.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/power7.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/power7.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for IBM POWER7 processor. -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; ;; Contributed by Pat Haugen (pthaugen@us.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/power8.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/power8.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/power8.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/power8.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for IBM POWER8 processor. -;; Copyright (C) 2013-2018 Free Software Foundation, Inc. +;; Copyright (C) 2013-2019 Free Software Foundation, Inc. ;; ;; Contributed by Pat Haugen (pthaugen@us.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/power9.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/power9.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/power9.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/power9.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for IBM POWER9 processor. -;; Copyright (C) 2016-2018 Free Software Foundation, Inc. +;; Copyright (C) 2016-2019 Free Software Foundation, Inc. ;; ;; Contributed by Pat Haugen (pthaugen@us.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/ppc-asm.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/ppc-asm.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/ppc-asm.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/ppc-asm.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* PowerPC asm definitions for GNU C. -Copyright (C) 2002-2018 Free Software Foundation, Inc. +Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/ppc-auxv.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/ppc-auxv.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/ppc-auxv.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/ppc-auxv.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ /* PowerPC support for accessing the AUXV AT_PLATFORM, AT_HWCAP and AT_HWCAP2 values from the Thread Control Block (TCB). - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Peter Bergner . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/ppu_intrinsics.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/ppu_intrinsics.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/ppu_intrinsics.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/ppu_intrinsics.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* PPU intrinsics as defined by the C/C++ Language extension for Cell BEA. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/predicates.md 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for POWER and PowerPC. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-builtin.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-builtin.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-builtin.def 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-builtin.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Builtin functions for rs6000/powerpc. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Michael Meissner (meissner@linux.vnet.ibm.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000.c 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for code generation on IBM RS/6000. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) This file is part of GCC. @@ -25952,8 +25952,7 @@ if (info->vrsave_mask & ALTIVEC_REG_BIT (i)) { if (!epiloguep || call_used_regs [i]) - clobs[nclobs++] = gen_rtx_CLOBBER (VOIDmode, - gen_rtx_REG (V4SImode, i)); + clobs[nclobs++] = gen_hard_reg_clobber (V4SImode, i); else { rtx reg = gen_rtx_REG (V4SImode, i); @@ -26277,8 +26276,7 @@ if (!(sel & SAVRES_SAVE) && (sel & SAVRES_LR)) RTVEC_ELT (p, offset++) = ret_rtx; - RTVEC_ELT (p, offset++) - = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (Pmode, LR_REGNO)); + RTVEC_ELT (p, offset++) = gen_hard_reg_clobber (Pmode, LR_REGNO); sym = rs6000_savres_routine_sym (info, sel); RTVEC_ELT (p, offset++) = gen_rtx_USE (VOIDmode, sym); @@ -26287,8 +26285,7 @@ if ((sel & SAVRES_REG) == SAVRES_VR) { /* Vector regs are saved/restored using [reg+reg] addressing. */ - RTVEC_ELT (p, offset++) - = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (Pmode, use_reg)); + RTVEC_ELT (p, offset++) = gen_hard_reg_clobber (Pmode, use_reg); RTVEC_ELT (p, offset++) = gen_rtx_USE (VOIDmode, gen_rtx_REG (Pmode, 0)); } @@ -26966,9 +26963,7 @@ sz += LAST_ALTIVEC_REGNO - info->first_altivec_reg_save + 1; p = rtvec_alloc (sz); j = 0; - RTVEC_ELT (p, j++) = gen_rtx_CLOBBER (VOIDmode, - gen_rtx_REG (SImode, - LR_REGNO)); + RTVEC_ELT (p, j++) = gen_hard_reg_clobber (SImode, LR_REGNO); RTVEC_ELT (p, j++) = gen_rtx_USE (VOIDmode, gen_rtx_SYMBOL_REF (Pmode, "*save_world")); @@ -28131,8 +28126,7 @@ = gen_rtx_USE (VOIDmode, gen_rtx_SYMBOL_REF (Pmode, alloc_rname)); /* The instruction pattern requires a clobber here; it is shared with the restVEC helper. */ - RTVEC_ELT (p, j++) - = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (Pmode, 11)); + RTVEC_ELT (p, j++) = gen_hard_reg_clobber (Pmode, 11); { /* CR register traditionally saved as CR2. */ @@ -28178,14 +28172,10 @@ && save_reg_p (info->first_fp_reg_save + i)) cfa_restores = alloc_reg_note (REG_CFA_RESTORE, reg, cfa_restores); } - RTVEC_ELT (p, j++) - = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (Pmode, 0)); - RTVEC_ELT (p, j++) - = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (SImode, 12)); - RTVEC_ELT (p, j++) - = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (SImode, 7)); - RTVEC_ELT (p, j++) - = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (SImode, 8)); + RTVEC_ELT (p, j++) = gen_hard_reg_clobber (Pmode, 0); + RTVEC_ELT (p, j++) = gen_hard_reg_clobber (SImode, 12); + RTVEC_ELT (p, j++) = gen_hard_reg_clobber (SImode, 7); + RTVEC_ELT (p, j++) = gen_hard_reg_clobber (SImode, 8); RTVEC_ELT (p, j++) = gen_rtx_USE (VOIDmode, gen_rtx_REG (SImode, 10)); insn = emit_jump_insn (gen_rtx_PARALLEL (VOIDmode, p)); @@ -28833,8 +28823,7 @@ int elt = 0; RTVEC_ELT (p, elt++) = ret_rtx; if (lr) - RTVEC_ELT (p, elt++) - = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (Pmode, LR_REGNO)); + RTVEC_ELT (p, elt++) = gen_hard_reg_clobber (Pmode, LR_REGNO); /* We have to restore more than two FP registers, so branch to the restore function. It will return to our caller. */ @@ -37884,7 +37873,7 @@ if (toc_restore) call[n_call++] = toc_restore; - call[n_call++] = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (Pmode, LR_REGNO)); + call[n_call++] = gen_hard_reg_clobber (Pmode, LR_REGNO); insn = gen_rtx_PARALLEL (VOIDmode, gen_rtvec_v (n_call, call)); insn = emit_call_insn (insn); @@ -37978,9 +37967,8 @@ if (value != NULL_RTX) call[0] = gen_rtx_SET (value, call[0]); - unsigned int mask = CALL_V4_SET_FP_ARGS | CALL_V4_CLEAR_FP_ARGS; - call[1] = gen_rtx_USE (VOIDmode, GEN_INT (INTVAL (cookie) & mask)); - call[2] = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (Pmode, LR_REGNO)); + call[1] = gen_rtx_USE (VOIDmode, cookie); + call[2] = gen_hard_reg_clobber (Pmode, LR_REGNO); insn = gen_rtx_PARALLEL (VOIDmode, gen_rtvec_v (3, call)); insn = emit_call_insn (insn); @@ -38043,8 +38031,7 @@ if (value != NULL_RTX) call[0] = gen_rtx_SET (value, call[0]); - unsigned int mask = CALL_V4_SET_FP_ARGS | CALL_V4_CLEAR_FP_ARGS; - call[1] = gen_rtx_USE (VOIDmode, GEN_INT (INTVAL (cookie) & mask)); + call[1] = gen_rtx_USE (VOIDmode, cookie); call[2] = simple_return_rtx; insn = gen_rtx_PARALLEL (VOIDmode, gen_rtvec_v (3, call)); @@ -38119,7 +38106,7 @@ if (sibcall) call[2] = simple_return_rtx; else - call[2] = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (Pmode, LR_REGNO)); + call[2] = gen_hard_reg_clobber (Pmode, LR_REGNO); insn = gen_rtx_PARALLEL (VOIDmode, gen_rtvec_v (3, call)); insn = emit_call_insn (insn); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-c.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-c.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the C front end on the PowerPC architecture. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Zack Weinberg and Paolo Bonzini diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-cpus.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-cpus.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-cpus.def 2018-11-20 10:31:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-cpus.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* IBM RS/6000 CPU names.. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-d.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-d.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-d.c 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-d.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the D front end on the PowerPC architecture. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000.h 2018-11-29 22:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for IBM RS/6000. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) This file is part of GCC. @@ -87,9 +87,10 @@ mcpu=power4: -mpower4; \ mcpu=power3: -mppc64; \ mcpu=powerpc: -mppc; \ + mcpu=powerpc64: -mppc64; \ mcpu=a2: -ma2; \ mcpu=cell: -mcell; \ - mcpu=rs64a: -mppc64; \ + mcpu=rs64: -mppc64; \ mcpu=401: -mppc; \ mcpu=403: -m403; \ mcpu=405: -m405; \ @@ -130,11 +131,12 @@ mcpu=e500mc64: -me500mc64; \ mcpu=e5500: -me5500; \ mcpu=e6500: -me6500; \ + mcpu=titan: -mtitan; \ !mcpu*: %{mpower9-vector: -mpower9; \ mpower8-vector|mcrypto|mdirect-move|mhtm: -mpower8; \ mvsx: -mpower7; \ mpowerpc64: -mppc64;: %(asm_default)}; \ - :%eMissing -mcpu option in ASM_SPEC_CPU?\n} \ + :%eMissing -mcpu option in ASM_CPU_SPEC?\n} \ %{mvsx: -mvsx -maltivec; maltivec: -maltivec} \ -many" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-linux.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-linux.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-linux.c 2018-05-05 11:58:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-linux.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Functions for Linux on PowerPC. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000.md 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for IBM RISC System 6000 (POWER) for GNU C compiler -;; Copyright (C) 1990-2018 Free Software Foundation, Inc. +;; Copyright (C) 1990-2019 Free Software Foundation, Inc. ;; Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-modes.def 2018-06-22 07:37:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-modes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for IBM RS/6000. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-modes.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-modes.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-modes.h 2018-06-22 07:37:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-modes.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions 128-bit floating point precisions used by PowerPC. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Michael Meissner (meissner@linux.ibm.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000.opt 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the rs6000 port of the compiler ; -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; Contributed by Aldy Hernandez . ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-opts.h 2018-10-02 07:26:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine needed for option handling for GNU compiler, for IBM RS/6000. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Michael Meissner (meissner@linux.vnet.ibm.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-p8swap.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-p8swap.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-p8swap.c 2018-08-02 03:04:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-p8swap.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Subroutines used to remove unnecessary doubleword swaps for p8 little-endian VSX code. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-passes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-passes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-passes.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-passes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Description of target passes for rs6000 - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-protos.h 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for IBM RS/6000. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-string.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-string.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-string.c 2018-11-29 22:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-string.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Subroutines used to expand string and block move, clear, compare and other operations for PowerPC. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-tables.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-tables.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs6000-tables.opt 2018-11-20 10:31:16.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs6000-tables.opt 2019-01-02 08:05:22.000000000 +0000 @@ -1,7 +1,7 @@ ; -*- buffer-read-only: t -*- ; Generated automatically by genopt.sh from rs6000-cpus.def. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs64.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs64.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rs64.md 2018-01-17 05:41:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rs64.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for IBM RS64 processors. -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rtems.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rtems.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/rtems.h 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/rtems.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for rtems targeting a PowerPC using elf. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/secureplt.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/secureplt.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/secureplt.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/secureplt.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Default to -msecure-plt. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/si2vmx.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/si2vmx.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/si2vmx.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/si2vmx.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Cell BEA specific SPU intrinsics to PPU/VMX intrinsics - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/smmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/smmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/smmintrin.h 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/smmintrin.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Free Software Foundation, Inc. +/* Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/spu2vmx.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/spu2vmx.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/spu2vmx.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/spu2vmx.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Cell SPU 2 VMX intrinsics header - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/sync.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/sync.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/sync.md 2018-10-02 07:26:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/sync.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for PowerPC synchronization instructions. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; Contributed by Geoffrey Keating. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/sysv4.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/sysv4.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/sysv4.h 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/sysv4.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target definitions for GNU compiler for PowerPC running System V.4 - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. Contributed by Cygnus Support. This file is part of GCC. @@ -761,6 +761,10 @@ #define MUSL_DYNAMIC_LINKER \ "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" +#ifndef GNU_USER_DYNAMIC_LINKER +#define GNU_USER_DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER +#endif + #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ %{rdynamic:-export-dynamic} \ -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/sysv4le.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/sysv4le.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/sysv4le.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/sysv4le.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Target definitions for GCC for a little endian PowerPC running System V.4 - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. Contributed by Cygnus Support. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/sysv4.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/sysv4.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/sysv4.opt 2018-04-11 21:23:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/sysv4.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; SYSV4 options for PPC port. ; -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; Contributed by Aldy Hernandez . ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-aix52 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-aix52 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-aix52 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-aix52 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-fprules gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-fprules --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-fprules 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-fprules 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-freebsd64 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-freebsd64 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-freebsd64 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-freebsd64 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ #rs6000/t-freebsd64 -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/titan.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/titan.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/titan.md 2018-05-05 11:58:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/titan.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Pipeline description for the AppliedMicro Titan core. -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by Theobroma Systems Design und Consulting GmbH ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-linux64 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-linux64 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-linux64 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-linux64 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ #rs6000/t-linux64 -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-lynx gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-lynx --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-lynx 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-lynx 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/tmmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/tmmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/tmmintrin.h 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/tmmintrin.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2018 Free Software Foundation, Inc. +/* Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -228,7 +228,7 @@ __v4si __C = { 0 }, __D = { 0 }; __C = vec_sum4s ((__v8hi) __A, __C); __D = vec_sum4s ((__v8hi) __B, __D); - __C = (__v4si) vec_packs (__D, __C); + __C = (__v4si) vec_packs (__C, __D); return (__m128i) __C; } @@ -264,8 +264,8 @@ { 0, 1, 2, 3, 8, 9, 10, 11, 16, 17, 18, 19, 24, 25, 26, 27 }; const __v16qu __Q = { 4, 5, 6, 7, 12, 13, 14, 15, 20, 21, 22, 23, 28, 29, 30, 31 }; - __v4si __C = vec_perm ((__v4si) __B, (__v4si) __A, __P); - __v4si __D = vec_perm ((__v4si) __B, (__v4si) __A, __Q); + __v4si __C = vec_perm ((__v4si) __A, (__v4si) __B, __P); + __v4si __D = vec_perm ((__v4si) __A, (__v4si) __B, __Q); return (__m128i) vec_sub (__C, __D); } @@ -332,7 +332,7 @@ _mm_shuffle_epi8 (__m128i __A, __m128i __B) { const __v16qi __zero = { 0 }; - __vector __bool char __select = vec_cmplt ((__v16qi) __A, __zero); + __vector __bool char __select = vec_cmplt ((__v16qi) __B, __zero); __v16qi __C = vec_perm ((__v16qi) __A, (__v16qi) __A, (__v16qu) __B); return (__m128i) vec_sel (__C, __zero, __select); } @@ -344,7 +344,7 @@ const __v16qi __zero = { 0 }; __v16qi __C = (__v16qi) (__v2du) { __A, __A }; __v16qi __D = (__v16qi) (__v2du) { __B, __B }; - __vector __bool char __select = vec_cmplt ((__v16qi) __C, __zero); + __vector __bool char __select = vec_cmplt ((__v16qi) __D, __zero); __C = vec_perm ((__v16qi) __C, (__v16qi) __C, (__v16qu) __D); __C = vec_sel (__C, __zero, __select); return (__m64) ((__v2du) (__C))[0]; @@ -423,11 +423,11 @@ __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_maddubs_epi16 (__m128i __A, __m128i __B) { - __v8hi __C = vec_unpackh ((__v16qi) __A); - __v8hi __D = vec_unpackl ((__v16qi) __A); __v8hi __unsigned = vec_splats ((signed short) 0x00ff); - __v8hi __E = vec_and (vec_unpackh ((__v16qi) __B), __unsigned); - __v8hi __F = vec_and (vec_unpackl ((__v16qi) __B), __unsigned); + __v8hi __C = vec_and (vec_unpackh ((__v16qi) __A), __unsigned); + __v8hi __D = vec_and (vec_unpackl ((__v16qi) __A), __unsigned); + __v8hi __E = vec_unpackh ((__v16qi) __B); + __v8hi __F = vec_unpackl ((__v16qi) __B); __C = vec_mul (__C, __E); __D = vec_mul (__D, __F); const __v16qu __odds = @@ -445,10 +445,10 @@ { __v8hi __C = (__v8hi) (__v2du) { __A, __A }; __C = vec_unpackl ((__v16qi) __C); + const __v8hi __unsigned = vec_splats ((signed short) 0x00ff); + __C = vec_and (__C, __unsigned); __v8hi __D = (__v8hi) (__v2du) { __B, __B }; __D = vec_unpackl ((__v16qi) __D); - const __v8hi __unsigned = vec_splats ((signed short) 0x00ff); - __D = vec_and (__D, __unsigned); __D = vec_mul (__C, __D); const __v16qu __odds = { 0, 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21, 24, 25, 28, 29 }; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-netbsd gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-netbsd --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-netbsd 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-netbsd 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ # Support for NetBSD PowerPC ELF targets (SVR4 ABI). # -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-ppccomm gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-ppccomm --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-ppccomm 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-ppccomm 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ # Common support for PowerPC ELF targets (both EABI and SVR4). # -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-ppcendian gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-ppcendian --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-ppcendian 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-ppcendian 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ # Multilibs for powerpc embedded ELF targets with altivec. # -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-ppcgas gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-ppcgas --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-ppcgas 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-ppcgas 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ # Multilibs for powerpc embedded ELF targets. # -# Copyright (C) 1995-2018 Free Software Foundation, Inc. +# Copyright (C) 1995-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-rs6000 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-rs6000 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-rs6000 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-rs6000 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ # General rules that all rs6000/ targets must have. # -# Copyright (C) 1995-2018 Free Software Foundation, Inc. +# Copyright (C) 1995-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-rtems gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-rtems --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-rtems 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-rtems 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ # Multilibs for powerpc RTEMS targets. # -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-vxworks gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-vxworks --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/t-vxworks 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/t-vxworks 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ # Multilibs for VxWorks. # -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/vector.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/vector.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/vector.md 2018-03-24 08:21:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/vector.md 2019-01-02 08:05:19.000000000 +0000 @@ -3,7 +3,7 @@ ;; expander, and the actual vector instructions will be in altivec.md and ;; vsx.md -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; Contributed by Michael Meissner ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/vec_types.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/vec_types.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/vec_types.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/vec_types.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Cell single token vector types - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/vsx.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/vsx.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/vsx.md 2018-11-05 08:45:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/vsx.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; VSX patterns. -;; Copyright (C) 2009-2018 Free Software Foundation, Inc. +;; Copyright (C) 2009-2019 Free Software Foundation, Inc. ;; Contributed by Michael Meissner ;; This file is part of GCC. @@ -183,6 +183,18 @@ (TF "??r") (TI "r")]) +;; A mode attribute used for 128-bit constant values. +(define_mode_attr nW [(V16QI "W") + (V8HI "W") + (V4SI "W") + (V4SF "W") + (V2DI "W") + (V2DF "W") + (V1TI "W") + (KF "W") + (TF "W") + (TI "n")]) + ;; Same size integer type for floating point data (define_mode_attr VSi [(V4SF "v4si") (V2DF "v2di") @@ -1193,17 +1205,17 @@ ;; VSX store VSX load VSX move VSX->GPR GPR->VSX LQ (GPR) ;; STQ (GPR) GPR load GPR store GPR move XXSPLTIB VSPLTISW -;; VSX 0/-1 GPR 0/-1 VMX const GPR const LVX (VMX) STVX (VMX) +;; VSX 0/-1 VMX const GPR const LVX (VMX) STVX (VMX) (define_insn "vsx_mov_64bit" [(set (match_operand:VSX_M 0 "nonimmediate_operand" "=ZwO, , , r, we, ?wQ, ?&r, ??r, ??Y, , wo, v, - ?, *r, v, ??r, wZ, v") + ?, v, , wZ, v") (match_operand:VSX_M 1 "input_operand" ", ZwO, , we, r, r, wQ, Y, r, r, wE, jwM, - ?jwM, jwM, W, W, v, wZ"))] + ?jwM, W, , v, wZ"))] "TARGET_POWERPC64 && VECTOR_MEM_VSX_P (mode) && (register_operand (operands[0], mode) @@ -1214,25 +1226,25 @@ [(set_attr "type" "vecstore, vecload, vecsimple, mffgpr, mftgpr, load, store, load, store, *, vecsimple, vecsimple, - vecsimple, *, *, *, vecstore, vecload") + vecsimple, *, *, vecstore, vecload") (set_attr "length" "4, 4, 4, 8, 4, 8, 8, 8, 8, 8, 4, 4, - 4, 8, 20, 20, 4, 4")]) + 4, 20, 8, 4, 4")]) ;; VSX store VSX load VSX move GPR load GPR store GPR move -;; XXSPLTIB VSPLTISW VSX 0/-1 GPR 0/-1 VMX const GPR const +;; XXSPLTIB VSPLTISW VSX 0/-1 VMX const GPR const ;; LVX (VMX) STVX (VMX) (define_insn "*vsx_mov_32bit" [(set (match_operand:VSX_M 0 "nonimmediate_operand" "=ZwO, , , ??r, ??Y, , - wo, v, ?, *r, v, ??r, + wo, v, ?, v, , wZ, v") (match_operand:VSX_M 1 "input_operand" ", ZwO, , Y, r, r, - wE, jwM, ?jwM, jwM, W, W, + wE, jwM, ?jwM, W, , v, wZ"))] "!TARGET_POWERPC64 && VECTOR_MEM_VSX_P (mode) @@ -1243,12 +1255,12 @@ } [(set_attr "type" "vecstore, vecload, vecsimple, load, store, *, - vecsimple, vecsimple, vecsimple, *, *, *, + vecsimple, vecsimple, vecsimple, *, *, vecstore, vecload") (set_attr "length" "4, 4, 4, 16, 16, 16, - 4, 4, 4, 16, 20, 32, + 4, 4, 4, 20, 16, 4, 4")]) ;; Explicit load/store expanders for the builtin functions @@ -3245,7 +3257,7 @@ (match_operand:VSX_D 1 "memory_operand" "m,m") (parallel [(match_operand:QI 2 "const_0_to_1_operand" "n,n")]))) (clobber (match_scratch:P 3 "=&b,&b"))] - "VECTOR_MEM_VSX_P (mode)" + "TARGET_POWERPC64 && VECTOR_MEM_VSX_P (mode)" "#" "&& reload_completed" [(set (match_dup 0) (match_dup 4))] diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/vxworksae.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/vxworksae.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/vxworksae.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/vxworksae.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. PowerPC VxworksAE version. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, LLC. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/vxworks.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/vxworks.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/vxworks.h 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/vxworks.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. Vxworks PowerPC version. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, LLC. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/vxworksmils.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/vxworksmils.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/vxworksmils.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/vxworksmils.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ /* PowerPC VxWorks MILS target definitions for GNU compiler. Overrides on top of the canonical VxWorks definitions. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/x86intrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/x86intrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/x86intrin.h 2018-01-14 10:48:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/x86intrin.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/xcoff.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/xcoff.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/xcoff.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/xcoff.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for some generic XCOFF file format - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/xmmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/xmmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rs6000/xmmintrin.h 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rs6000/xmmintrin.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rtems.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rtems.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rtems.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rtems.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Configuration common to all targets running RTEMS. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rtems.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rtems.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rtems.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rtems.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; RTEMS options. -; Copyright (C) 2010-2018 Free Software Foundation, Inc. +; Copyright (C) 2010-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/constraints.md 2018-02-10 19:55:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for Renesas RX. -;; Copyright (C) 2008-2018 Free Software Foundation, Inc. +;; Copyright (C) 2008-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/predicates.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for Renesas RX. -;; Copyright (C) 2008-2018 Free Software Foundation, Inc. +;; Copyright (C) 2008-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/rx.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/rx.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/rx.c 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/rx.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for code generation on Renesas RX processors. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/rx.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/rx.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/rx.h 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/rx.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* GCC backend definitions for the Renesas RX processor. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/rx.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/rx.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/rx.md 2018-02-15 00:59:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/rx.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine Description for Renesas RX processors -;; Copyright (C) 2008-2018 Free Software Foundation, Inc. +;; Copyright (C) 2008-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/rx-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/rx-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/rx-modes.def 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/rx-modes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target specific machine modes for the RX. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/rx.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/rx.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/rx.opt 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/rx.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ; Command line options for the Renesas RX port of GCC. -; Copyright (C) 2008-2018 Free Software Foundation, Inc. +; Copyright (C) 2008-2019 Free Software Foundation, Inc. ; Contributed by Red Hat. ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/rx-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/rx-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/rx-opts.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/rx-opts.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* GCC option-handling definitions for the Renesas RX processor. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/rx-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/rx-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/rx-protos.h 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/rx-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Exported function prototypes from the Renesas RX backend. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/t-rx gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/t-rx --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/rx/t-rx 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/rx/t-rx 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ # Makefile fragment for building GCC for the Renesas RX target. -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # Contributed by Red Hat. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/2064.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/2064.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/2064.md 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/2064.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for z900 (cpu 2064). -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; Contributed by Hartmut Penner (hpenner@de.ibm.com) and ;; Ulrich Weigand (uweigand@de.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/2084.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/2084.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/2084.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/2084.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for z990 (cpu 2084). -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; Contributed by Hartmut Penner (hpenner@de.ibm.com) and ;; Ulrich Weigand (uweigand@de.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/2097.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/2097.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/2097.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/2097.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for z10 (cpu 2097). -;; Copyright (C) 2008-2018 Free Software Foundation, Inc. +;; Copyright (C) 2008-2019 Free Software Foundation, Inc. ;; Contributed by Wolfgang Gellerich (gellerich@de.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/2817.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/2817.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/2817.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/2817.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for z196 (cpu 2817). -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; Contributed by Christian Borntraeger (Christian.Borntraeger@de.ibm.com) ;; Andreas Krebbel (Andreas.Krebbel@de.ibm.com) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/2827.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/2827.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/2827.md 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/2827.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for zEC12 (cpu 2827). -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com) ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/2964.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/2964.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/2964.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/2964.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for z13. -;; Copyright (C) 2016-2018 Free Software Foundation, Inc. +;; Copyright (C) 2016-2019 Free Software Foundation, Inc. ;; Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com) ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/constraints.md 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraints definitions belonging to the gcc backend for IBM S/390. -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; Written by Wolfgang Gellerich, using code and information found in ;; files s390.md, s390.h, and s390.c. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/driver-native.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/driver-native.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/driver-native.c 2018-10-04 06:31:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/driver-native.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the gcc driver. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/htmintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/htmintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/htmintrin.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/htmintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* GNU compiler hardware transactional execution intrinsics - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/htmxlintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/htmxlintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/htmxlintrin.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/htmxlintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* XL compiler hardware transactional execution intrinsics - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/linux.h 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/linux.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for Linux for S/390. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Hartmut Penner (hpenner@de.ibm.com) and Ulrich Weigand (uweigand@de.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/predicates.md 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for S/390 and zSeries. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; Contributed by Hartmut Penner (hpenner@de.ibm.com) and ;; Ulrich Weigand (uweigand@de.ibm.com). ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390-builtins.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390-builtins.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390-builtins.def 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390-builtins.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Builtin definitions for IBM S/390 and zSeries - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390-builtins.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390-builtins.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390-builtins.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390-builtins.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Common data structures used for builtin handling on S/390. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390-builtin-types.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390-builtin-types.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390-builtin-types.def 2018-06-05 19:11:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390-builtin-types.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Builtin type definitions for IBM S/390 and zSeries - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390.c 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for code generation on IBM S/390 and zSeries - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Hartmut Penner (hpenner@de.ibm.com) and Ulrich Weigand (uweigand@de.ibm.com) and Andreas Krebbel (Andreas.Krebbel@de.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390-c.c 2018-08-22 07:31:01.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390-c.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Language specific subroutines used for code generation on IBM S/390 and zSeries - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390-d.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390-d.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390-d.c 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390-d.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the D front end on the IBM S/390 and zSeries architectures. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390.h 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for IBM S/390 - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Hartmut Penner (hpenner@de.ibm.com) and Ulrich Weigand (uweigand@de.ibm.com). Andreas Krebbel (Andreas.Krebbel@de.ibm.com) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390intrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390intrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390intrin.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390intrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* S/390 System z specific intrinsics - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390.md 2018-11-22 10:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;;- Machine description for GNU compiler -- S/390 / zSeries version. -;; Copyright (C) 1999-2018 Free Software Foundation, Inc. +;; Copyright (C) 1999-2019 Free Software Foundation, Inc. ;; Contributed by Hartmut Penner (hpenner@de.ibm.com) and ;; Ulrich Weigand (uweigand@de.ibm.com) and ;; Andreas Krebbel (Andreas.Krebbel@de.ibm.com) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390-modes.def 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390-modes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for IBM S/390 - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Hartmut Penner (hpenner@de.ibm.com) and Ulrich Weigand (uweigand@de.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390.opt 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the S/390 / zSeries port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390-opts.h 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390-opts.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for option handling for IBM S/390. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390-passes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390-passes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390-passes.def 2018-09-18 08:44:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390-passes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Description of target passes for S/390. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390-protos.h 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for IBM S/390. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Hartmut Penner (hpenner@de.ibm.com) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390x.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390x.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/s390x.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/s390x.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for IBM zSeries 64-bit - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Hartmut Penner (hpenner@de.ibm.com) and Ulrich Weigand (uweigand@de.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/subst.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/subst.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/subst.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/subst.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ;;- Machine description for GNU compiler -- S/390 / zSeries version. ;; Subst patterns. -;; Copyright (C) 2016-2018 Free Software Foundation, Inc. +;; Copyright (C) 2016-2019 Free Software Foundation, Inc. ;; Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com) ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/tpf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/tpf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/tpf.h 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/tpf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for target OS TPF for GNU compiler, for IBM S/390 hardware - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by P.J. Darcy (darcypj@us.ibm.com), Hartmut Penner (hpenner@de.ibm.com), and Ulrich Weigand (uweigand@de.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/tpf.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/tpf.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/tpf.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/tpf.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; S390 TPF-OS specific machine patterns -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/tpf.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/tpf.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/tpf.opt 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/tpf.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the TPF-OS port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/t-s390 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/t-s390 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/t-s390 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/t-s390 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2015-2018 Free Software Foundation, Inc. +# Copyright (C) 2015-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/vecintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/vecintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/vecintrin.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/vecintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* GNU compiler vector extension intrinsics - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/vector.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/vector.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/vector.md 2018-11-22 10:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/vector.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;;- Instruction patterns for the System z vector facility -;; Copyright (C) 2015-2018 Free Software Foundation, Inc. +;; Copyright (C) 2015-2019 Free Software Foundation, Inc. ;; Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com) ;; This file is part of GCC. @@ -1960,6 +1960,58 @@ operands[6] = gen_reg_rtx (V16QImode); }) +; +; BFP <-> integer conversions +; + +; signed integer to floating point + +; op2: inexact exception not suppressed (IEEE 754 2008) +; op3: according to current rounding mode + +(define_insn "floatv2div2df2" + [(set (match_operand:V2DF 0 "register_operand" "=v") + (float:V2DF (match_operand:V2DI 1 "register_operand" "v")))] + "TARGET_VX" + "vcdgb\t%v0,%v1,0,0" + [(set_attr "op_type" "VRR")]) + +; unsigned integer to floating point + +; op2: inexact exception not suppressed (IEEE 754 2008) +; op3: according to current rounding mode + +(define_insn "floatunsv2div2df2" + [(set (match_operand:V2DF 0 "register_operand" "=v") + (unsigned_float:V2DF (match_operand:V2DI 1 "register_operand" "v")))] + "TARGET_VX" + "vcdlgb\t%v0,%v1,0,0" + [(set_attr "op_type" "VRR")]) + +; floating point to signed integer + +; op2: inexact exception not suppressed (IEEE 754 2008) +; op3: rounding mode 5 (round towards 0 C11 6.3.1.4) + +(define_insn "fix_truncv2dfv2di2" + [(set (match_operand:V2DI 0 "register_operand" "=v") + (fix:V2DI (match_operand:V2DF 1 "register_operand" "v")))] + "TARGET_VX" + "vcgdb\t%v0,%v1,0,5" + [(set_attr "op_type" "VRR")]) + +; floating point to unsigned integer + +; op2: inexact exception not suppressed (IEEE 754 2008) +; op3: rounding mode 5 (round towards 0 C11 6.3.1.4) + +(define_insn "fixuns_truncv2dfv2di2" + [(set (match_operand:V2DI 0 "register_operand" "=v") + (unsigned_fix:V2DI (match_operand:V2DF 1 "register_operand" "v")))] + "TARGET_VX" + "vclgdb\t%v0,%v1,0,5" + [(set_attr "op_type" "VRR")]) + ; reduc_smin ; reduc_smax ; reduc_umin diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/vx-builtins.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/vx-builtins.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/s390/vx-builtins.md 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/s390/vx-builtins.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;;- Instruction patterns for the System z vector facility builtins. -;; Copyright (C) 2015-2018 Free Software Foundation, Inc. +;; Copyright (C) 2015-2019 Free Software Foundation, Inc. ;; Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com) ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/constraints.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for Renesas / SuperH SH. -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/divcost-analysis gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/divcost-analysis --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/divcost-analysis 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/divcost-analysis 2019-01-02 08:05:18.000000000 +0000 @@ -81,7 +81,7 @@ ; 2 cycles worse than SFUNC_STATIC -Copyright (C) 2006-2018 Free Software Foundation, Inc. +Copyright (C) 2006-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/divtab.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/divtab.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/divtab.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/divtab.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2018 Free Software Foundation, Inc. +/* Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/divtab-sh4-300.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/divtab-sh4-300.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/divtab-sh4-300.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/divtab-sh4-300.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2018 Free Software Foundation, Inc. +/* Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/divtab-sh4.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/divtab-sh4.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/divtab-sh4.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/divtab-sh4.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2018 Free Software Foundation, Inc. +/* Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/elf.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/elf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for gcc for Renesas / SuperH SH using ELF. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Ian Lance Taylor . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/embed-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/embed-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/embed-elf.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/embed-elf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler for Renesas / SuperH SH non-Linux embedded targets. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by J"orn Rennecke This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/iterators.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/iterators.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/iterators.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/iterators.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Iterator definitions for GCC SH machine description files. -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/linux.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/linux.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for SH running Linux-based GNU systems using ELF - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Kazumoto Kojima This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/little.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/little.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/little.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/little.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Definition of little endian SH machine for GNU compiler. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/netbsd-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/netbsd-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/netbsd-elf.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/netbsd-elf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for SH running NetBSD using ELF - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Wasabi Systems, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/newlib.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/newlib.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/newlib.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/newlib.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for gcc for Super-H using sh-superh-elf. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GNU CC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/predicates.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for Renesas / SuperH SH. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/rtemself.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/rtemself.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/rtemself.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/rtemself.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for rtems targeting a SH using elf. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/rtems.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/rtems.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/rtems.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/rtems.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for rtems targeting a SH using COFF. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh1.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh1.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh1.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh1.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; DFA scheduling description for Renesas / SuperH SH. -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh4-300.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh4-300.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh4-300.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh4-300.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; DFA scheduling description for ST40-300. -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh4a.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh4a.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh4a.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh4a.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for Renesas SH4a -;; Copyright (C) 2003-2018 Free Software Foundation, Inc. +;; Copyright (C) 2003-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh4.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh4.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh4.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh4.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; DFA scheduling description for SH4. -;; Copyright (C) 2004-2018 Free Software Foundation, Inc. +;; Copyright (C) 2004-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh.c 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Output routines for GCC for Renesas / SuperH SH. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. Contributed by Steve Chamberlain (sac@cygnus.com). Improved by Jim Wilson (wilson@cygnus.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh-c.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh-c.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Pragma handling for GCC for Renesas / SuperH SH. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. Contributed by Joern Rennecke . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler for Renesas / SuperH SH. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. Contributed by Steve Chamberlain (sac@cygnus.com). Improved by Jim Wilson (wilson@cygnus.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;;- Machine description for Renesas / SuperH SH. -;; Copyright (C) 1993-2018 Free Software Foundation, Inc. +;; Copyright (C) 1993-2019 Free Software Foundation, Inc. ;; Contributed by Steve Chamberlain (sac@cygnus.com). ;; Improved by Jim Wilson (wilson@cygnus.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh-mem.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh-mem.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh-mem.cc 2018-11-28 13:52:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh-mem.cc 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper routines for memory move and comparison insns. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh-modes.def 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh-modes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* SH extra machine modes. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the SH port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh_optimize_sett_clrt.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh_optimize_sett_clrt.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh_optimize_sett_clrt.cc 2018-01-23 00:38:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh_optimize_sett_clrt.cc 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* An SH specific RTL pass that tries to optimize clrt and sett insns. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh-protos.h 2018-06-14 13:43:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler for Renesas / SuperH SH. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. Contributed by Steve Chamberlain (sac@cygnus.com). Improved by Jim Wilson (wilson@cygnus.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh_treg_combine.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh_treg_combine.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sh_treg_combine.cc 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sh_treg_combine.cc 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* An SH specific RTL pass that tries to combine comparisons and redundant condition code register stores across multiple basic blocks. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/superh.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/superh.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/superh.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/superh.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for gcc for Super-H using sh-superh-elf. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GNU CC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sync.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sync.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/sync.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/sync.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for SH synchronization instructions. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/t-sh gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/t-sh --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/t-sh 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/t-sh 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1993-2018 Free Software Foundation, Inc. +# Copyright (C) 1993-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/vxworks.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/vxworks.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sh/vxworks.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sh/vxworks.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GCC, for SuperH with targeting the VXWorks run time environment. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, LLC. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sol2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sol2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sol2.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sol2.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* General Solaris system support. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, LLC. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sol2-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sol2-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sol2-c.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sol2-c.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Solaris support needed only by C/C++ frontends. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, LLC. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sol2-cxx.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sol2-cxx.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sol2-cxx.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sol2-cxx.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* C++ specific Solaris system support. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sol2-d.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sol2-d.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sol2-d.c 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sol2-d.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Solaris support needed only by D front-end. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sol2.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sol2.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sol2.h 2018-12-10 19:27:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sol2.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Operating system specific defines to be used when targeting GCC for any Solaris 2 system. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sol2.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sol2.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sol2.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sol2.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the Solaris 2 port of the compiler ; -; Copyright (C) 2010-2018 Free Software Foundation, Inc. +; Copyright (C) 2010-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sol2-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sol2-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sol2-protos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sol2-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Operating system specific prototypes to be used when targeting GCC for any Solaris 2 system. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sol2-stubs.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sol2-stubs.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sol2-stubs.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sol2-stubs.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Stubs for C++ specific Solaris system support. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/biarch64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/biarch64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/biarch64.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/biarch64.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GCC, for Sun SPARC. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by David E. O'Brien . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/constraints.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for SPARC. -;; Copyright (C) 2008-2018 Free Software Foundation, Inc. +;; Copyright (C) 2008-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/cypress.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/cypress.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/cypress.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/cypress.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for SPARC Cypress. -;; Copyright (C) 2002-2018 Free Software Foundation, Inc. +;; Copyright (C) 2002-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/default64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/default64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/default64.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/default64.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,7 +1,7 @@ /* Definitions of target machine for GCC, for bi-arch SPARC, defaulting to 64-bit code generation. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/driver-sparc.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/driver-sparc.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/driver-sparc.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/driver-sparc.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the gcc driver. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/freebsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/freebsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/freebsd.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/freebsd.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for Sun SPARC64 running FreeBSD using the ELF format - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by David E. O'Brien and BSDi. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/hypersparc.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/hypersparc.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/hypersparc.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/hypersparc.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for HyperSPARC. -;; Copyright (C) 2002-2018 Free Software Foundation, Inc. +;; Copyright (C) 2002-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/leon.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/leon.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/leon.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/leon.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for LEON. -;; Copyright (C) 2010-2018 Free Software Foundation, Inc. +;; Copyright (C) 2010-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/linux64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/linux64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/linux64.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/linux64.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for 64-bit SPARC running Linux-based GNU systems with ELF. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by David S. Miller (davem@caip.rutgers.edu) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/linux.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/linux.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for SPARC running Linux-based GNU systems with ELF. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Eddie C. Dost (ecd@skynet.be) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/long-double-switch.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/long-double-switch.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/long-double-switch.opt 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/long-double-switch.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the SPARC port of the compiler ; -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/m8.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/m8.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/m8.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/m8.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for the SPARC M8. -;; Copyright (C) 2017-2018 Free Software Foundation, Inc. +;; Copyright (C) 2017-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/netbsd-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/netbsd-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/netbsd-elf.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/netbsd-elf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GCC, for ELF on NetBSD/sparc and NetBSD/sparc64. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Matthew Green (mrg@eterna.com.au). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/niagara2.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/niagara2.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/niagara2.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/niagara2.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for Niagara-2 and Niagara-3. -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/niagara4.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/niagara4.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/niagara4.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/niagara4.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for Niagara-4 -;; Copyright (C) 2012-2018 Free Software Foundation, Inc. +;; Copyright (C) 2012-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/niagara7.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/niagara7.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/niagara7.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/niagara7.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for Niagara-7 -;; Copyright (C) 2016-2018 Free Software Foundation, Inc. +;; Copyright (C) 2016-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/niagara.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/niagara.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/niagara.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/niagara.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for Niagara. -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/openbsd1-64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/openbsd1-64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/openbsd1-64.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/openbsd1-64.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Configuration file for sparc64 OpenBSD target. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/openbsd64.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/openbsd64.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/openbsd64.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/openbsd64.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Configuration file for sparc64 OpenBSD target. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/predicates.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for SPARC. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/rtemself.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/rtemself.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/rtemself.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/rtemself.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for rtems targeting a SPARC using ELF. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sol2.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sol2.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sol2.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sol2.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GCC, for SPARC running Solaris 2 - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Contributed by Ron Guilmette (rfg@netcom.com). Additional changes by David V. Henkel-Wallace (gumby@cygnus.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sp64-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sp64-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sp64-elf.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sp64-elf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GCC, for SPARC64, ELF. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. Contributed by Doug Evans, dje@cygnus.com. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc.c 2018-11-29 23:30:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for insn-output.c for SPARC. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) 64-bit SPARC-V9 support by Michael Tiemann, Jim Wilson, and Doug Evans, at Cygnus Support. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc-c.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc-c.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for macro/preprocessor support on SPARC. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc-d.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc-d.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc-d.c 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc-d.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for the D front end on the SPARC architecture. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc.h 2018-11-05 08:45:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for Sun SPARC. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com). 64-bit SPARC-V9 support by Michael Tiemann, Jim Wilson, and Doug Evans, at Cygnus Support. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparclet.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparclet.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparclet.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparclet.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for SPARClet. -;; Copyright (C) 2002-2018 Free Software Foundation, Inc. +;; Copyright (C) 2002-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc.md 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for SPARC. -;; Copyright (C) 1987-2018 Free Software Foundation, Inc. +;; Copyright (C) 1987-2019 Free Software Foundation, Inc. ;; Contributed by Michael Tiemann (tiemann@cygnus.com) ;; 64-bit SPARC-V9 support by Michael Tiemann, Jim Wilson, and Doug Evans, ;; at Cygnus Support. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc-modes.def 2018-11-29 23:30:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc-modes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GCC, for Sun SPARC. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com). 64-bit SPARC V9 support by Michael Tiemann, Jim Wilson, and Doug Evans, at Cygnus Support. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc.opt 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the SPARC port of the compiler ; -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc-opts.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc-opts.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for option handling for SPARC. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc-passes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc-passes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc-passes.def 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc-passes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Description of target passes for SPARC. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sparc-protos.h 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sparc-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes of target machine for SPARC. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com). 64-bit SPARC-V9 support by Michael Tiemann, Jim Wilson, and Doug Evans, at Cygnus Support. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sp-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sp-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sp-elf.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sp-elf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GCC, for SPARC running in an embedded environment using the ELF file format. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/supersparc.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/supersparc.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/supersparc.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/supersparc.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for SuperSPARC. -;; Copyright (C) 2002-2018 Free Software Foundation, Inc. +;; Copyright (C) 2002-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sync.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sync.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sync.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sync.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for SPARC synchronization instructions. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sysv4.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sysv4.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/sysv4.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/sysv4.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target definitions for GNU compiler for SPARC running System V.4 - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. Contributed by Ron Guilmette (rfg@monkeys.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/t-elf gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/t-elf --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/t-elf 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/t-elf 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/t-leon gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/t-leon --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/t-leon 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/t-leon 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/t-leon3 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/t-leon3 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/t-leon3 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/t-leon3 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/t-linux64 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/t-linux64 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/t-linux64 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/t-linux64 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2018 Free Software Foundation, Inc. +# Copyright (C) 1998-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/t-rtems gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/t-rtems --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/t-rtems 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/t-rtems 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/t-rtems-64 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/t-rtems-64 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/t-rtems-64 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/t-rtems-64 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/tso.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/tso.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/tso.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/tso.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Include fragment for Sparc TSO operating systems. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/t-sparc gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/t-sparc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/t-sparc 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/t-sparc 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ # General rules that all sparc/ targets must have. # -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/ultra1_2.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/ultra1_2.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/ultra1_2.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/ultra1_2.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for UltraSPARC-I/II. -;; Copyright (C) 2002-2018 Free Software Foundation, Inc. +;; Copyright (C) 2002-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/ultra3.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/ultra3.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/ultra3.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/ultra3.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for UltraSPARC-III. -;; Copyright (C) 2002-2018 Free Software Foundation, Inc. +;; Copyright (C) 2002-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/visintrin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/visintrin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/visintrin.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/visintrin.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. +/* Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/vxworks.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/vxworks.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/sparc/vxworks.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/sparc/vxworks.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for SPARC targeting the VxWorks run time environment. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/constraints.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for SPU -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; ;; This file is free software; you can redistribute it and/or modify it under ;; the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/predicates.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for CELL SPU -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; ;; This file is free software; you can redistribute it and/or modify it under ;; the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu-builtins.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu-builtins.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu-builtins.def 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu-builtins.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of builtin functions for the Synergistic Processing Unit (SPU). */ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu-builtins.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu-builtins.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu-builtins.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu-builtins.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; This file is free software; you can redistribute it and/or modify it under ;; the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu.c 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu_cache.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu_cache.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu_cache.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu_cache.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu-c.c 2018-08-22 07:31:01.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu-c.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu-elf.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu-elf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu.h 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu_internals.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu_internals.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu_internals.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu_internals.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of Synergistic Processing Unit (SPU). */ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu_intrinsics.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu_intrinsics.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu_intrinsics.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu_intrinsics.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of Synergistic Processing Unit (SPU). */ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu.md 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; This file is free software; you can redistribute it and/or modify it under ;; the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu_mfcio.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu_mfcio.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu_mfcio.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu_mfcio.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu-modes.def 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu-modes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu.opt 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ; Options for the SPU port of the compiler -; Copyright (C) 2006-2018 Free Software Foundation, Inc. +; Copyright (C) 2006-2019 Free Software Foundation, Inc. ; This file is free software; you can redistribute it and/or modify it under ; the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/spu-protos.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/spu-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/t-spu-elf gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/t-spu-elf --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/t-spu-elf 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/t-spu-elf 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/vec_types.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/vec_types.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/vec_types.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/vec_types.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/vmx2spu.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/vmx2spu.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/spu/vmx2spu.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/spu/vmx2spu.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/stormy16/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/stormy16/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/stormy16/constraints.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/stormy16/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for XSTORMY16. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/stormy16/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/stormy16/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/stormy16/predicates.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/stormy16/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for XSTORMY16. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/stormy16/stormy16.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/stormy16/stormy16.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/stormy16/stormy16.c 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/stormy16/stormy16.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Xstormy16 target functions. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Red Hat, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/stormy16/stormy16.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/stormy16/stormy16.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/stormy16/stormy16.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/stormy16/stormy16.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Xstormy16 cpu description. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Red Hat, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/stormy16/stormy16.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/stormy16/stormy16.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/stormy16/stormy16.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/stormy16/stormy16.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; XSTORMY16 Machine description template -;; Copyright (C) 1997-2018 Free Software Foundation, Inc. +;; Copyright (C) 1997-2019 Free Software Foundation, Inc. ;; Contributed by Red Hat, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/stormy16/stormy16.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/stormy16/stormy16.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/stormy16/stormy16.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/stormy16/stormy16.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the XSTORMY16 port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/stormy16/stormy16-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/stormy16/stormy16-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/stormy16/stormy16-protos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/stormy16/stormy16-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes for exported functions defined in xstormy16.c - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Red Hat, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/stormy16/stormy-abi gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/stormy16/stormy-abi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/stormy16/stormy-abi 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/stormy16/stormy-abi 2019-01-02 08:05:18.000000000 +0000 @@ -167,7 +167,7 @@ overflow. -Copyright (C) 2001-2018 Free Software Foundation, Inc. +Copyright (C) 2001-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-darwin gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-darwin --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-darwin 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-darwin 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-glibc gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-glibc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-glibc 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-glibc 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/constraints.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for Tilera TILE-Gx. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Walter Lee (walt@tilera.com) ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/linux.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/linux.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for TILE-Gx running Linux-based GNU systems with ELF. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/mul-tables.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/mul-tables.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/mul-tables.c 2018-01-04 13:44:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/mul-tables.c 2019-01-02 08:05:22.000000000 +0000 @@ -1,5 +1,5 @@ /* Constant multiply table for TILE-Gx. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/predicates.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for Tilera TILE-Gx. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Walter Lee (walt@tilera.com) ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/sync.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/sync.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/sync.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/sync.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ;; GCC machine description for Tilera TILE-Gx synchronization ;; instructions. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Walter Lee (walt@tilera.com) ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx-builtins.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx-builtins.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx-builtins.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx-builtins.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Enum for builtin intrinsics for TILE-Gx. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for code generation on the Tilera TILE-Gx. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx-c.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx-c.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of C specific functions for TILE-Gx. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx-generic.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx-generic.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx-generic.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx-generic.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for Tilera TILE-Gx chip. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Walter Lee (walt@tilera.com) ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler for TILE-Gx. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for Tilera TILE-Gx chip for GCC. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Walter Lee (walt@tilera.com) ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx-modes.def 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx-modes.def 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* TILE-Gx extra machine modes. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx-multiply.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx-multiply.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx-multiply.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx-multiply.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Header for constant multiple table for TILE-Gx. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ; Options for the TILE-Gx port of the compiler. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; Contributed by Walter Lee (walt@tilera.com) ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx-opts.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx-opts.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for option handling for TILE-Gx. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilegx/tilegx-protos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilegx/tilegx-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes of target machine for TILE-Gx. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/constraints.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for Tilera TILEPro chip. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Walter Lee (walt@tilera.com) ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/gen-mul-tables.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/gen-mul-tables.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/gen-mul-tables.cc 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/gen-mul-tables.cc 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Multiply table generator for tile. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. @@ -1230,7 +1230,7 @@ #else printf ("/* Constant multiply table for TILE-Gx.\n"); #endif - printf (" Copyright (C) 2011-2018 Free Software Foundation, Inc.\n"); + printf (" Copyright (C) 2011-2019 Free Software Foundation, Inc.\n"); printf (" Contributed by Walter Lee (walt@tilera.com)\n"); printf ("\n"); printf (" This file is part of GCC.\n"); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/linux.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/linux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for TILEPro running Linux-based GNU systems with ELF. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/mul-tables.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/mul-tables.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/mul-tables.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/mul-tables.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Constant multiply table for TILEPro. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/predicates.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for Tilera TILEPro chip. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Walter Lee (walt@tilera.com) ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro-builtins.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro-builtins.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro-builtins.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro-builtins.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Enum for builtin intrinsics for TILEPro. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used for code generation on the Tilera TILEPro. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro-c.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro-c.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of C specific functions for TILEPro. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro-generic.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro-generic.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro-generic.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro-generic.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for Tilera TILEPro chip. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Walter Lee (walt@tilera.com) ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler for TILEPro. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for Tilera TILEPro chip for GCC. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; Contributed by Walter Lee (walt@tilera.com) ;; ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro-modes.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro-modes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* TILEPro extra machine modes. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro-multiply.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro-multiply.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro-multiply.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro-multiply.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Header for constant multiple table for TILEPro. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ; Options for the TILEPro port of the compiler. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; Contributed by Walter Lee (walt@tilera.com) ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/tilepro/tilepro-protos.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/tilepro/tilepro-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes of target machine for TILEPro. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-libunwind gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-libunwind --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-libunwind 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-libunwind 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-linux gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-linux --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-linux 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-linux 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-lynx gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-lynx --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-lynx 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-lynx 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-netbsd gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-netbsd --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-netbsd 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-netbsd 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2018 Free Software Foundation, Inc. +# Copyright (C) 2017-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-pnt16-warn gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-pnt16-warn --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-pnt16-warn 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-pnt16-warn 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ # -Werror overrides for targets with 16 bit pointers -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-sol2 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-sol2 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-sol2 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-sol2 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-vxworks gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-vxworks --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-vxworks 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-vxworks 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-winnt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-winnt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/t-winnt 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/t-winnt 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/usegas.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/usegas.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/usegas.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/usegas.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2018 Free Software Foundation, Inc. +/* Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/constraints.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for V850. -;; Copyright (C) 2011-2018 Free Software Foundation, Inc. +;; Copyright (C) 2011-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/predicates.md 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for NEC V850. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/rtems.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/rtems.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/rtems.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/rtems.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for rtems targeting a v850 using ELF. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/t-v850 gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/t-v850 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/t-v850 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/t-v850 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/v850.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/v850.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/v850.c 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/v850.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for insn-output.c for NEC V850 series - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Jeff Law (law@cygnus.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/v850-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/v850-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/v850-c.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/v850-c.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* v850 specific, C compiler specific functions. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Jeff Law (law@cygnus.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/v850.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/v850.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/v850.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/v850.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. NEC V850 series - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Jeff Law (law@cygnus.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/v850.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/v850.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/v850.md 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/v850.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for NEC V850 -;; Copyright (C) 1996-2018 Free Software Foundation, Inc. +;; Copyright (C) 1996-2019 Free Software Foundation, Inc. ;; Contributed by Jeff Law (law@cygnus.com). ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/v850-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/v850-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/v850-modes.def 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/v850-modes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. NEC V850 series - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by NEC EL This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/v850.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/v850.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/v850.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/v850.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the NEC V850 port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/v850-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/v850-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/v850-opts.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/v850-opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for option handling for NEC V850 series. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/v850-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/v850-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/v850/v850-protos.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/v850/v850-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes for v850.c functions used in the md file & elsewhere. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/builtins.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/builtins.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/builtins.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/builtins.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; builtin definitions for DEC VAX. -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/constraints.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraints for the DEC VAX port. -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/elf.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Target definitions for GNU compiler for VAX using ELF - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Matt Thomas This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/elf.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/elf.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/elf.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/elf.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; VAX ELF options. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/linux.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/linux.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for VAX running Linux-based GNU systems with ELF format. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/netbsd-elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/netbsd-elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/netbsd-elf.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/netbsd-elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for NetBSD/vax ELF systems. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/openbsd1.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/openbsd1.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/openbsd1.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/openbsd1.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Configuration fragment for a VAX OpenBSD target. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/openbsd.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/openbsd.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/openbsd.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/openbsd.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Configuration fragment for a VAX OpenBSD target. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/predicates.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for DEC VAX. -;; Copyright (C) 2007-2018 Free Software Foundation, Inc. +;; Copyright (C) 2007-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/vax.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/vax.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/vax.c 2018-06-22 07:37:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/vax.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for insn-output.c for VAX. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/vax.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/vax.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/vax.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/vax.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. VAX version. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/vax.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/vax.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/vax.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/vax.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for GNU compiler, VAX Version -;; Copyright (C) 1987-2018 Free Software Foundation, Inc. +;; Copyright (C) 1987-2019 Free Software Foundation, Inc. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/vax-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/vax-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/vax-modes.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/vax-modes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* VAX extra machine modes. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/vax.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/vax.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/vax.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/vax.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the VAX port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/vax-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/vax-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vax/vax-protos.h 2018-06-22 07:37:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vax/vax-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. VAX version. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/constraints.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/constraints.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for Visium. -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/elf.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/elf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* ELF-specific defines for Visium. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/gr5.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/gr5.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/gr5.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/gr5.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for GR5. -;; Copyright (C) 2013-2018 Free Software Foundation, Inc. +;; Copyright (C) 2013-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/gr6.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/gr6.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/gr6.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/gr6.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Scheduling description for GR6. -;; Copyright (C) 2013-2018 Free Software Foundation, Inc. +;; Copyright (C) 2013-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/predicates.md 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/predicates.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for Visium. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/t-visium gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/t-visium --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/t-visium 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/t-visium 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ # Multilibs for Visium. -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/visium.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/visium.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/visium.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/visium.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Output routines for Visium. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by C.Nettleton, J.P.Parkes and P.Garbett. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/visium.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/visium.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/visium.h 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/visium.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for Visium. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by C.Nettleton, J.P.Parkes and P.Garbett. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/visium.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/visium.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/visium.md 2018-11-20 10:31:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/visium.md 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ;; Machine description for Visium. -;; Copyright (C) 2002-2018 Free Software Foundation, Inc. +;; Copyright (C) 2002-2019 Free Software Foundation, Inc. ;; Contributed by C.Nettleton, J.P.Parkes and P.Garbett. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/visium-modes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/visium-modes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/visium-modes.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/visium-modes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Machine description for Visium. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/visium.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/visium.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/visium.opt 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/visium.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ ; Options for Visium. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/visium-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/visium-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/visium-opts.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/visium-opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for option handling for Visium. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/visium-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/visium-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/visium/visium-protos.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/visium/visium-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes of target machine for Visium. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by C.Nettleton,J.P.Parkes and P.Garbett. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/make-crtlmap.awk gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/make-crtlmap.awk --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/make-crtlmap.awk 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/make-crtlmap.awk 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ # Generate the VMS crtl map -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. BEGIN { is_first = 1; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/t-vms gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/t-vms --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/t-vms 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/t-vms 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/t-vmsnative gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/t-vmsnative --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/t-vmsnative 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/t-vmsnative 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms-ar.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms-ar.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms-ar.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms-ar.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* VMS archive wrapper. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by AdaCore. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine GNU compiler. 32bit VMS version. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Douglas B Rupp (rupp@gnat.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms-c.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms-c.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* VMS specific, C compiler specific functions. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Tristan Gingold (gingold@adacore.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms-f.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms-f.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms-f.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms-f.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* VMS support needed only by Fortran frontends. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine GNU compiler. VMS common version. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Douglas B Rupp (rupp@gnat.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms-ld.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms-ld.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms-ld.c 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms-ld.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* VMS linker wrapper. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by AdaCore This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms.opt 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2009-2018 Free Software Foundation, Inc. +; Copyright (C) 2009-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms-opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms-opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms-opts.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms-opts.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for option handling for OpenVMS. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms-protos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms-protos.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GCC for VMS. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms-stdint.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms-stdint.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/vms-stdint.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/vms-stdint.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for types on VMS systems. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/xm-vms.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/xm-vms.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/xm-vms.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/xm-vms.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Configuration for GCC for hosting on VMS using a Unix style C library. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/x-vms gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/x-vms --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vms/x-vms 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vms/x-vms 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vx-common.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vx-common.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vx-common.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vx-common.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Target-independent configuration for VxWorks and VxWorks AE. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, LLC. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vxworksae.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vxworksae.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vxworksae.h 2018-12-10 19:27:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vxworksae.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Common VxWorks AE target definitions for GNU compiler. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, LLC. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vxworks.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vxworks.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vxworks.c 2018-11-20 10:31:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vxworks.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Common VxWorks target definitions for GNU compiler. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vxworks-dummy.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vxworks-dummy.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vxworks-dummy.h 2018-10-02 07:26:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vxworks-dummy.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Dummy definitions of VxWorks-related macros - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vxworks.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vxworks.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vxworks.h 2018-11-20 10:31:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vxworks.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Common VxWorks target definitions for GNU compiler. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Wind River Systems. Rewritten by CodeSourcery, LLC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vxworks.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vxworks.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vxworks.opt 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vxworks.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Processor-independent options for VxWorks. ; -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; Contributed by CodeSourcery, LLC. ; ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vxworks-stdint.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vxworks-stdint.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/vxworks-stdint.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/vxworks-stdint.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for types on systems using VxWorks. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/winnt-c.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/winnt-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/winnt-c.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/winnt-c.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Default C-family target hooks initializer. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/constraints.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/constraints.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/constraints.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/constraints.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Constraint definitions for Xtensa. -;; Copyright (C) 2006-2018 Free Software Foundation, Inc. +;; Copyright (C) 2006-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/elf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/elf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/elf.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/elf.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Xtensa/Elf configuration. Derived from the configuration for GCC for Intel i386 running Linux. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/elf.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/elf.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/elf.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/elf.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Xtensa ELF (bare metal) options. -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/linux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/linux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/linux.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/linux.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Xtensa Linux configuration. Derived from the configuration for GCC for Intel i386 running Linux. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/predicates.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/predicates.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/predicates.md 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/predicates.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; Predicate definitions for Xtensa. -;; Copyright (C) 2005-2018 Free Software Foundation, Inc. +;; Copyright (C) 2005-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/t-xtensa gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/t-xtensa --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/t-xtensa 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/t-xtensa 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/uclinux.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/uclinux.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/uclinux.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/uclinux.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Xtensa uClinux configuration. Derived from the configuration for GCC for Intel i386 running Linux. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/uclinux.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/uclinux.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/uclinux.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/uclinux.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Xtensa uClinux options. -; Copyright (C) 2015-2018 Free Software Foundation, Inc. +; Copyright (C) 2015-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/xtensa.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/xtensa.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/xtensa.c 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/xtensa.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for insn-output.c for Tensilica's Xtensa architecture. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. This file is part of GCC. @@ -331,6 +331,9 @@ #undef TARGET_ASAN_SHADOW_OFFSET #define TARGET_ASAN_SHADOW_OFFSET xtensa_asan_shadow_offset +#undef TARGET_HAVE_SPECULATION_SAFE_VALUE +#define TARGET_HAVE_SPECULATION_SAFE_VALUE speculation_safe_value_not_needed + struct gcc_target targetm = TARGET_INITIALIZER; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/xtensa.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/xtensa.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/xtensa.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/xtensa.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of Tensilica's Xtensa target machine for GNU compiler. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/xtensa.md gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/xtensa.md --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/xtensa.md 2018-06-22 07:37:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/xtensa.md 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ ;; GCC machine description for Tensilica's Xtensa architecture. -;; Copyright (C) 2001-2018 Free Software Foundation, Inc. +;; Copyright (C) 2001-2019 Free Software Foundation, Inc. ;; Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. ;; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/xtensa.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/xtensa.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/xtensa.opt 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/xtensa.opt 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ ; Options for the Tensilica Xtensa port of the compiler. -; Copyright (C) 2005-2018 Free Software Foundation, Inc. +; Copyright (C) 2005-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/xtensa-protos.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/xtensa-protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config/xtensa/xtensa-protos.h 2018-01-04 13:44:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config/xtensa/xtensa-protos.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes of target machine for GNU compiler for Xtensa. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config.build gcc-snapshot-20190102/=unpacked-tar1=/gcc/config.build --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config.build 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config.build 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ # GCC build-specific configuration file. -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config.gcc gcc-snapshot-20190102/=unpacked-tar1=/gcc/config.gcc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config.gcc 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config.gcc 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ # GCC target-specific configuration file. -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. #This file is part of GCC. @@ -1012,6 +1012,7 @@ tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}" tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-freebsd.h" tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd" + tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1" ;; aarch64*-*-linux*) tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h" @@ -1435,6 +1436,8 @@ tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \ glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \ pa/pa64-linux.h" + tmake_file="${tmake_file} pa/t-pa pa/t-linux" + d_target_objs="${d_target_objs} pa-d.o" gas=yes gnu_ld=yes ;; hppa*-*-linux*) @@ -1449,6 +1452,8 @@ tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \ pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h" extra_options="${extra_options} openbsd.opt" + tmake_file="pa/t-pa" + d_target_objs="${d_target_objs} pa-d.o" gas=yes gnu_ld=yes ;; @@ -1469,7 +1474,8 @@ esac use_gcc_stdint=provide tm_file="${tm_file} hpux-stdint.h" - tmake_file="t-slibgcc" + tmake_file="pa/t-pa t-slibgcc" + d_target_objs="${d_target_objs} pa-d.o" case ${enable_threads} in "") if test x$have_pthread_h = xyes ; then @@ -1511,7 +1517,8 @@ esac extra_options="${extra_options} pa/pa-hpux.opt \ pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt" - tmake_file="t-slibgcc" + tmake_file="pa/t-pa t-slibgcc" + d_target_objs="${d_target_objs} pa-d.o" case x${enable_threads} in x | xyes | xposix ) thread_file=posix @@ -1549,7 +1556,8 @@ extra_options="${extra_options} pa/pa-hpux1131.opt" ;; esac - tmake_file="t-slibgcc" + tmake_file="pa/t-pa t-slibgcc" + d_target_objs="${d_target_objs} pa-d.o" case x${enable_threads} in x | xyes | xposix ) thread_file=posix @@ -2734,7 +2742,6 @@ use_collect2=yes thread_file='aix' use_gcc_stdint=wrap - extra_headers=altivec.h default_use_cxa_atexit=yes ;; rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*) @@ -2744,7 +2751,6 @@ use_collect2=yes thread_file='aix' use_gcc_stdint=wrap - extra_headers="altivec.h amo.h" default_use_cxa_atexit=yes ;; rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*) @@ -2754,7 +2760,6 @@ use_collect2=yes thread_file='aix' use_gcc_stdint=wrap - extra_headers="altivec.h amo.h" default_use_cxa_atexit=yes ;; rl78-*-elf*) @@ -3978,6 +3983,7 @@ # Add extra multilibs if test "x$with_multilib_list" != x; then + ml= arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'` if test "x${arm_multilibs}" != xdefault ; then for arm_multilib in ${arm_multilibs}; do @@ -3985,6 +3991,15 @@ aprofile|rmprofile) tmake_profile_file="arm/t-multilib" ;; + @*) + ml=`echo "X$arm_multilib" | sed '1s,^X@,,'` + if test -f "${srcdir}/config/arm/${ml}"; then + tmake_file="${tmake_file} arm/${ml}" + else + echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2 + exit 1 + fi + ;; *) echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2 exit 1 @@ -4005,6 +4020,9 @@ || test "x$with_mode" != x ; then echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2 exit 1 + elif test "x$ml" != x ; then + echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2 + exit 1 fi # But pass the default value for float-abi # through to the multilib selector diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/config.host gcc-snapshot-20190102/=unpacked-tar1=/gcc/config.host --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/config.host 2018-12-11 09:06:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/config.host 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ # GCC host-specific configuration file. -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/configure gcc-snapshot-20190102/=unpacked-tar1=/gcc/configure --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/configure 2018-12-08 19:29:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/configure 2019-01-02 08:05:22.000000000 +0000 @@ -27724,6 +27724,10 @@ && $gcc_cv_objdump -h conftest.o 2> /dev/null \ | grep debug_line > /dev/null 2>&1; then gcc_cv_as_dwarf2_debug_line=yes + elif test x$gcc_cv_otool != x \ + && $gcc_cv_otool -l conftest.o 2> /dev/null \ + | grep debug_line > /dev/null 2>&1; then + gcc_cv_as_dwarf2_debug_line=yes fi else echo "configure: failed program was" >&5 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/configure.ac gcc-snapshot-20190102/=unpacked-tar1=/gcc/configure.ac --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/configure.ac 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/configure.ac 2019-01-02 08:05:17.000000000 +0000 @@ -1,7 +1,7 @@ # configure.ac for GCC # Process this file with autoconf to generate a configuration script. -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. #This file is part of GCC. @@ -4926,6 +4926,10 @@ && $gcc_cv_objdump -h conftest.o 2> /dev/null \ | grep debug_line > /dev/null 2>&1; then gcc_cv_as_dwarf2_debug_line=yes + elif test x$gcc_cv_otool != x \ + && $gcc_cv_otool -l conftest.o 2> /dev/null \ + | grep debug_line > /dev/null 2>&1; then + gcc_cv_as_dwarf2_debug_line=yes fi]) # The .debug_line file table must be in the exact order that diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/context.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/context.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/context.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/context.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* context.c - Holder for global state - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/context.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/context.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/context.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/context.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* context.h - Holder for global state - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/convert.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/convert.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/convert.c 2018-04-23 08:51:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/convert.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Utility routines for data type conversion for GCC. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -36,6 +36,7 @@ #include "stringpool.h" #include "attribs.h" #include "asan.h" +#include "selftest.h" #define maybe_fold_build1_loc(FOLD_P, LOC, CODE, TYPE, EXPR) \ ((FOLD_P) ? fold_build1_loc (LOC, CODE, TYPE, EXPR) \ @@ -98,6 +99,25 @@ } } +/* Subroutine of the various convert_to_*_maybe_fold routines. + + If a location wrapper has been folded to a constant (presumably of + a different type), re-wrap the new constant with a location wrapper. */ + +tree +preserve_any_location_wrapper (tree result, tree orig_expr) +{ + if (CONSTANT_CLASS_P (result) && location_wrapper_p (orig_expr)) + { + if (result == TREE_OPERAND (orig_expr, 0)) + return orig_expr; + else + return maybe_wrap_with_location (result, EXPR_LOCATION (orig_expr)); + } + + return result; +} + /* A wrapper around convert_to_pointer_1 that always folds the expression. */ @@ -108,12 +128,15 @@ } /* A wrapper around convert_to_pointer_1 that only folds the - expression if DOFOLD, or if it is CONSTANT_CLASS_P. */ + expression if DOFOLD, or if it is CONSTANT_CLASS_OR_WRAPPER_P. */ tree convert_to_pointer_maybe_fold (tree type, tree expr, bool dofold) { - return convert_to_pointer_1 (type, expr, dofold || CONSTANT_CLASS_P (expr)); + tree result + = convert_to_pointer_1 (type, expr, + dofold || CONSTANT_CLASS_OR_WRAPPER_P (expr)); + return preserve_any_location_wrapper (result, expr); } /* Convert EXPR to some floating-point type TYPE. @@ -408,12 +431,15 @@ } /* A wrapper around convert_to_real_1 that only folds the - expression if DOFOLD, or if it is CONSTANT_CLASS_P. */ + expression if DOFOLD, or if it is CONSTANT_CLASS_OR_WRAPPER_P. */ tree convert_to_real_maybe_fold (tree type, tree expr, bool dofold) { - return convert_to_real_1 (type, expr, dofold || CONSTANT_CLASS_P (expr)); + tree result + = convert_to_real_1 (type, expr, + dofold || CONSTANT_CLASS_OR_WRAPPER_P (expr)); + return preserve_any_location_wrapper (result, expr); } /* Try to narrow EX_FORM ARG0 ARG1 in narrowed arg types producing a @@ -679,7 +705,8 @@ { case POINTER_TYPE: case REFERENCE_TYPE: - if (integer_zerop (expr) && !TREE_OVERFLOW (expr)) + if (integer_zerop (expr) + && !TREE_OVERFLOW (tree_strip_any_location_wrapper (expr))) return build_int_cst (type, 0); /* Convert to an unsigned integer of the correct width first, and from @@ -959,7 +986,7 @@ /* When parsing long initializers, we might end up with a lot of casts. Shortcut this. */ - if (TREE_CODE (expr) == INTEGER_CST) + if (TREE_CODE (tree_strip_any_location_wrapper (expr)) == INTEGER_CST) return fold_convert (type, expr); return build1 (CONVERT_EXPR, type, expr); @@ -1017,12 +1044,15 @@ } /* A wrapper around convert_to_complex_1 that only folds the - expression if DOFOLD, or if it is CONSTANT_CLASS_P. */ + expression if DOFOLD, or if it is CONSTANT_CLASS_OR_WRAPPER_P. */ tree convert_to_integer_maybe_fold (tree type, tree expr, bool dofold) { - return convert_to_integer_1 (type, expr, dofold || CONSTANT_CLASS_P (expr)); + tree result + = convert_to_integer_1 (type, expr, + dofold || CONSTANT_CLASS_OR_WRAPPER_P (expr)); + return preserve_any_location_wrapper (result, expr); } /* Convert EXPR to the complex type TYPE in the usual ways. If FOLD_P is @@ -1101,12 +1131,15 @@ } /* A wrapper around convert_to_complex_1 that only folds the - expression if DOFOLD, or if it is CONSTANT_CLASS_P. */ + expression if DOFOLD, or if it is CONSTANT_CLASS_OR_WRAPPER_P. */ tree convert_to_complex_maybe_fold (tree type, tree expr, bool dofold) { - return convert_to_complex_1 (type, expr, dofold || CONSTANT_CLASS_P (expr)); + tree result + = convert_to_complex_1 (type, expr, + dofold || CONSTANT_CLASS_OR_WRAPPER_P (expr)); + return preserve_any_location_wrapper (result, expr); } /* Convert EXPR to the vector type TYPE in the usual ways. */ @@ -1171,3 +1204,85 @@ return error_mark_node; } } + +#if CHECKING_P + +namespace selftest { + +/* Selftests for conversions. */ + +static void +test_convert_to_integer_maybe_fold (tree orig_type, tree new_type) +{ + /* Calling convert_to_integer_maybe_fold on an INTEGER_CST. */ + + tree orig_cst = build_int_cst (orig_type, 42); + + /* Verify that convert_to_integer_maybe_fold on a constant returns a new + constant of the new type, unless the types are the same, in which + case verify it's a no-op. */ + { + tree result = convert_to_integer_maybe_fold (new_type, + orig_cst, false); + if (orig_type != new_type) + { + ASSERT_EQ (TREE_TYPE (result), new_type); + ASSERT_EQ (TREE_CODE (result), INTEGER_CST); + } + else + ASSERT_EQ (result, orig_cst); + } + + /* Calling convert_to_integer_maybe_fold on a location wrapper around + an INTEGER_CST. + + Verify that convert_to_integer_maybe_fold on a location wrapper + around a constant returns a new location wrapper around an equivalent + constant, both of the new type, unless the types are the same, + in which case the original wrapper should be returned. */ + { + const location_t loc = BUILTINS_LOCATION; + tree wrapped_orig_cst = maybe_wrap_with_location (orig_cst, loc); + tree result + = convert_to_integer_maybe_fold (new_type, wrapped_orig_cst, false); + ASSERT_EQ (TREE_TYPE (result), new_type); + ASSERT_EQ (EXPR_LOCATION (result), loc); + ASSERT_TRUE (location_wrapper_p (result)); + ASSERT_EQ (TREE_TYPE (TREE_OPERAND (result, 0)), new_type); + ASSERT_EQ (TREE_CODE (TREE_OPERAND (result, 0)), INTEGER_CST); + + if (orig_type == new_type) + ASSERT_EQ (result, wrapped_orig_cst); + } +} + +/* Verify that convert_to_integer_maybe_fold preserves locations. */ + +static void +test_convert_to_integer_maybe_fold () +{ + /* char -> long. */ + test_convert_to_integer_maybe_fold (char_type_node, long_integer_type_node); + + /* char -> char. */ + test_convert_to_integer_maybe_fold (char_type_node, char_type_node); + + /* long -> char. */ + test_convert_to_integer_maybe_fold (char_type_node, long_integer_type_node); + + /* long -> long. */ + test_convert_to_integer_maybe_fold (long_integer_type_node, + long_integer_type_node); +} + +/* Run all of the selftests within this file. */ + +void +convert_c_tests () +{ + test_convert_to_integer_maybe_fold (); +} + +} // namespace selftest + +#endif /* CHECKING_P */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/convert.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/convert.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/convert.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/convert.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definition of functions in convert.c. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -40,4 +40,6 @@ extern inline tree convert_to_complex_nofold (tree t, tree x) { return convert_to_complex_maybe_fold (t, x, false); } +extern tree preserve_any_location_wrapper (tree result, tree orig_expr); + #endif /* GCC_CONVERT_H */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/coretypes.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/coretypes.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/coretypes.h 2018-10-19 09:35:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/coretypes.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* GCC core type declarations. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/coverage.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/coverage.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/coverage.c 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/coverage.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Read and write coverage files, and associated functionality. - Copyright (C) 1990-2018 Free Software Foundation, Inc. + Copyright (C) 1990-2019 Free Software Foundation, Inc. Contributed by James E. Wilson, UC Berkeley/Cygnus Support; based on some ideas from Dain Samples of UC Berkeley. Further mangling by Bob Manson, Cygnus Support. @@ -74,6 +74,7 @@ unsigned lineno_checksum; unsigned cfg_checksum; gcov_type *counts; + unsigned n_counts; /* hash_table support. */ static inline hashval_t hash (const counts_entry *); @@ -260,6 +261,7 @@ entry->lineno_checksum = lineno_checksum; entry->cfg_checksum = cfg_checksum; entry->counts = XCNEWVEC (gcov_type, n_counts); + entry->n_counts = n_counts; } else if (entry->lineno_checksum != lineno_checksum || entry->cfg_checksum != cfg_checksum) @@ -295,7 +297,7 @@ gcov_type * get_coverage_counts (unsigned counter, unsigned cfg_checksum, - unsigned lineno_checksum) + unsigned lineno_checksum, unsigned int n_counts) { counts_entry *entry, elt; @@ -327,7 +329,7 @@ else { gcc_assert (coverage_node_map_initialized_p ()); - elt.ident = cgraph_node::get (cfun->decl)->profile_id; + elt.ident = cgraph_node::get (current_function_decl)->profile_id; } elt.ctr = counter; entry = counts_hash->find (&elt); @@ -344,17 +346,27 @@ return NULL; } - if (entry->cfg_checksum != cfg_checksum) + if (entry->cfg_checksum != cfg_checksum || entry->n_counts != n_counts) { static int warned = 0; bool warning_printed = false; - warning_printed = - warning_at (DECL_SOURCE_LOCATION (current_function_decl), - OPT_Wcoverage_mismatch, - "the control flow of function %qD does not match " - "its profile data (counter %qs)", current_function_decl, - ctr_names[counter]); + if (entry->n_counts != n_counts) + warning_printed = + warning_at (DECL_SOURCE_LOCATION (current_function_decl), + OPT_Wcoverage_mismatch, + "number of counters in profile data for function %qD " + "does not match " + "its profile data (counter %qs, expected %i and have %i)", + current_function_decl, + ctr_names[counter], entry->n_counts, n_counts); + else + warning_printed = + warning_at (DECL_SOURCE_LOCATION (current_function_decl), + OPT_Wcoverage_mismatch, + "the control flow of function %qD does not match " + "its profile data (counter %qs)", current_function_decl, + ctr_names[counter]); if (warning_printed && dump_enabled_p ()) { dump_user_location_t loc diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/coverage.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/coverage.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/coverage.h 2018-10-02 07:26:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/coverage.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* coverage.h - Defines data exported from coverage.c - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -52,7 +52,8 @@ /* Get all the counters for the current function. */ extern gcov_type *get_coverage_counts (unsigned /*counter*/, unsigned /*cfg_checksum*/, - unsigned /*lineno_checksum*/); + unsigned /*lineno_checksum*/, + unsigned /*n_counts*/); extern tree get_gcov_type (void); extern bool coverage_node_map_initialized_p (void); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/call.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/call.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/call.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/call.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Functions related to invoking -*- C++ -*- methods and overloaded functions. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) and modified by Brendan Kehoe (brendan@cygnus.com). @@ -166,8 +166,8 @@ /*c_cast_p=*/false, (COMPLAIN)) static tree convert_like_real (conversion *, tree, tree, int, bool, bool, tsubst_flags_t); -static void op_error (location_t, enum tree_code, enum tree_code, tree, - tree, tree, bool); +static void op_error (const op_location_t &, enum tree_code, enum tree_code, + tree, tree, tree, bool); static struct z_candidate *build_user_type_conversion_1 (tree, tree, int, tsubst_flags_t); static void print_z_candidate (location_t, const char *, struct z_candidate *); @@ -4713,7 +4713,8 @@ } static void -op_error (location_t loc, enum tree_code code, enum tree_code code2, +op_error (const op_location_t &loc, + enum tree_code code, enum tree_code code2, tree arg1, tree arg2, tree arg3, bool match) { bool assop = code == MODIFY_EXPR; @@ -4767,8 +4768,12 @@ default: if (arg2) if (flag_diagnostics_show_caret) - error_at (loc, op_error_string (G_("%"), 2, match), - opname, TREE_TYPE (arg1), TREE_TYPE (arg2)); + { + binary_op_rich_location richloc (loc, arg1, arg2, true); + error_at (&richloc, + op_error_string (G_("%"), 2, match), + opname, TREE_TYPE (arg1), TREE_TYPE (arg2)); + } else error_at (loc, op_error_string (G_("% in %<%E %s %E%>"), 2, match), @@ -4867,7 +4872,8 @@ arguments to the conditional expression. */ static tree -build_conditional_expr_1 (location_t loc, tree arg1, tree arg2, tree arg3, +build_conditional_expr_1 (const op_location_t &loc, + tree arg1, tree arg2, tree arg3, tsubst_flags_t complain) { tree arg2_type; @@ -5347,9 +5353,12 @@ if (TREE_CODE (arg2_type) == ENUMERAL_TYPE && TREE_CODE (arg3_type) == ENUMERAL_TYPE) { - if (TREE_CODE (orig_arg2) == CONST_DECL - && TREE_CODE (orig_arg3) == CONST_DECL - && DECL_CONTEXT (orig_arg2) == DECL_CONTEXT (orig_arg3)) + tree stripped_orig_arg2 = tree_strip_any_location_wrapper (orig_arg2); + tree stripped_orig_arg3 = tree_strip_any_location_wrapper (orig_arg3); + if (TREE_CODE (stripped_orig_arg2) == CONST_DECL + && TREE_CODE (stripped_orig_arg3) == CONST_DECL + && (DECL_CONTEXT (stripped_orig_arg2) + == DECL_CONTEXT (stripped_orig_arg3))) /* Two enumerators from the same enumeration can have different types when the enumeration is still being defined. */; else if (complain & tf_warning) @@ -5458,7 +5467,8 @@ /* Wrapper for above. */ tree -build_conditional_expr (location_t loc, tree arg1, tree arg2, tree arg3, +build_conditional_expr (const op_location_t &loc, + tree arg1, tree arg2, tree arg3, tsubst_flags_t complain) { tree ret; @@ -5647,8 +5657,9 @@ } static tree -build_new_op_1 (location_t loc, enum tree_code code, int flags, tree arg1, - tree arg2, tree arg3, tree *overload, tsubst_flags_t complain) +build_new_op_1 (const op_location_t &loc, enum tree_code code, int flags, + tree arg1, tree arg2, tree arg3, tree *overload, + tsubst_flags_t complain) { struct z_candidate *candidates = 0, *cand; vec *arglist; @@ -6127,7 +6138,7 @@ /* Wrapper for above. */ tree -build_new_op (location_t loc, enum tree_code code, int flags, +build_new_op (const op_location_t &loc, enum tree_code code, int flags, tree arg1, tree arg2, tree arg3, tree *overload, tsubst_flags_t complain) { @@ -7618,6 +7629,9 @@ } maybe_warn_parm_abi (type, cp_expr_loc_or_loc (val, input_location)); } + + warn_for_address_or_pointer_of_packed_member (false, type, val); + return val; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cfns.gperf gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cfns.gperf --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cfns.gperf 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cfns.gperf 2019-01-02 08:05:16.000000000 +0000 @@ -2,7 +2,7 @@ %define class-name libc_name %struct-type %{ -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cfns.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cfns.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cfns.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cfns.h 2019-01-02 08:05:16.000000000 +0000 @@ -30,7 +30,7 @@ #line 4 "cfns.gperf" -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/ChangeLog 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/ChangeLog 2019-01-02 08:05:16.000000000 +0000 @@ -1,5198 +1,8 @@ -2018-12-13 Marek Polacek - - PR c++/88216 - ICE with class type in non-type template parameter. - * mangle.c (write_expression): Handle TARGET_EXPR and - VIEW_CONVERT_EXPR. - * pt.c (convert_nontype_argument): Don't call - get_template_parm_object for value-dependent expressions. - -2018-12-13 Nathan Sidwell - - PR c++/87531 - * class.c (finish_struct): Set DECL_CONTEXT of template assign op. - * name-lookup.c (get_class_binding_direct): Don't strip using-decl - of overload here. - * parser.c (cp_parser_postfix_expression): Cope with using decl in - overload set. - * semantics.c (finish_id_expr): Likewise. - -2018-12-12 Paolo Carlini - - * decl.c (grokdeclarator): Fix location of error message about - static data member definition. - -2018-12-12 Jakub Jelinek - - PR c++/88446 - * cp-tree.h (maybe_constant_value): Add manifestly_const_eval - argument. - * constexpr.c (struct constexpr_call): Rename pretend_const_required - member to manifestly_const_eval. - (struct constexpr_ctx): Likewise. - (constexpr_call_hasher::equal): Adjust users. - (cxx_eval_builtin_function_call): Likewise. Formatting fix. - (cxx_eval_call_expression): Adjust users. - (cxx_eval_outermost_constant_expr, maybe_constant_init_1, - maybe_constant_init): Rename pretend_const_required argument to - manifestly_const_eval, adjust function comments. - (maybe_constant_value): Add manifestly_const_eval argument. If true, - don't cache and call cxx_eval_outermost_constant_expr with true as - manifestly_const_eval. - * decl.c (compute_array_index_type_loc): Call maybe_constant_value - with true as manifestly_const_eval. - - PR c++/88449 - * constexpr.c (struct constexpr_call): Add pretend_const_required - member. - (constexpr_call_hasher::equal): Return false if pretend_const_required - members differ. - (cxx_eval_call_expression): Adjust new_call initialization. Hash in - ctx->pretend_const_required. - -2018-12-11 Jakub Jelinek - - PR c++/87861 - * class.c (build_vtbl_initializer): For TARGET_VTABLE_USES_DESCRIPTORS - bump index for each added word. - * constexpr.c (find_array_ctor_elt): Add forward declaration. - (cxx_eval_call_expression): Handle TARGET_VTABLE_USES_DESCRIPTORS - vtable calls. - (cxx_eval_constant_expression) : Divide token - by TARGET_VTABLE_USES_DESCRIPTORS if non-zero. - -2018-12-11 Marek Polacek - - PR c++/86608 - reading constexpr volatile variable. - * constexpr.c (potential_constant_expression_1): Check want_rval - instead of checking if we have a decl. - * decl2.c (decl_maybe_constant_var_p): Don't consider volatile - constexpr variables as maybe constant. - -2018-12-11 Paolo Carlini - - * decl.c (grokvardecl): Add location_t parameter and use it - in build_lang_decl_loc and build_decl calls. - (grokdeclarator): Move up loc declaration and use it in the - grokvardecl call too. - -2018-12-09 Cesar Philippidis - - * parser.c (cp_parser_oacc_kernels_parallel): Adjust EXPR_LOCATION - on the combined acc loop. - -2018-12-07 Paolo Carlini - - * decl2.c (grokbitfield): Use DECL_SOURCE_LOCATION in error messages - about bit-fields with function type, warn_if_not_aligned type, and - static bit-fields; avoid DECL_NAME for unnamed declarations. - -2018-12-07 Jakub Jelinek - - PR c++/86669 - * call.c (make_temporary_var_for_ref_to_temp): Call pushdecl even for - automatic vars. - - PR c++/87506 - * constexpr.c (adjust_temp_type): Handle EMPTY_CLASS_EXPR. - -2018-12-06 Paolo Carlini - - * class.c (check_bitfield_decl): In error message about non-integral - type print the type itself too. - * decl.c (grokdeclarator): Do not ICE on unnamed bit-fields declared - friends; when calling build_decl for a FIELD_DECL possibly pass the - declarator->id_loc. - -2018-12-06 Alexandre Oliva - - PR c++/86747 - * pt.c (tsubst_friend_class): Enter tsubsted class context. - - PR c++/86397 - * except.c (build_noexcept_spec): Resolve nondependent - expressions. - -2018-12-06 Jason Merrill - - PR c++/88136 - -Wdeprecated-copy false positives - * class.c (classtype_has_depr_implicit_copy): Rename from - classtype_has_user_copy_or_dtor. - * method.c (lazily_declare_fn): Adjust. - * decl2.c (cp_warn_deprecated_use): Refer to -Wdeprecated-copy-dtor - if deprecation is due to a destructor. - -2018-12-06 Marek Polacek - - PR c++/88373 - wrong parse error with ~. - * parser.c (cp_parser_template_name): Check tag_type for - none_type. - -2018-12-06 Segher Boessenkool - - * cp-tree.h (finish_asm_stmt): Update declaration. - * parser.c (cp_parser_asm_definition): Detect the inline keyword - after asm. Pass a flag for it to finish_asm_stmt. - * pt.c (tsubst_expr): Pass the ASM_INLINE_P flag to finish_asm_stmt. - * semantics.c (finish_asm_stmt): Add inline_p parameter. Use it to - set ASM_INLINE_P. - -2018-12-06 Segher Boessenkool - - PR inline-asm/55681 - * parser.c (cp_parser_asm_definition): Update grammar. Allow any - combination of volatile and goto, in any order, without repetitions. - -2018-12-06 David Malcolm - - PR c++/85110 - * call.c (conversion_null_warnings): Try to use the location of - the expression for the warnings. Add notes showing the parameter - of the function decl, where available. - (get_fndecl_argument_location): For implicitly-declared functions, - use the fndecl location rather than that of the param. - (maybe_inform_about_fndecl_for_bogus_argument_init): New function. - (convert_like_real): Use it in various places to avoid repetition. - (complain_about_bad_argument): Likewise. - * cp-tree.h (maybe_inform_about_fndecl_for_bogus_argument_init): - New declaration. - * decl2.c (check_default_args): Put all diagnostics for the fndecl - into a diagnostic group. Use the location of the parameter when - complaining about parameters with missing default arguments in - preference to that of the fndecl. Attempt to record the location - of the first parameter with a default argument and emit a note - for the first parameter that's missing one. - * typeck.c (convert_arguments): When complaining about parameters - with incomplete types, attempt to use the location of the - argument. Where available, add a note showing the pertinent - parameter in the fndecl. - (convert_for_assignment): When complaining about bad conversions - at function calls, use the location of the unstripped argument. - (convert_for_initialization): When checking for bogus references, - add an auto_diagnostic_group, and update the note to use the - location of the pertinent parameter, rather than just the callee. - -2018-12-06 Paolo Carlini - - * decl2.c (grokbitfield): Use DECL_SOURCE_LOCATION in error message; - print the type too; fix thinko in INDIRECT_TYPE_P use. - -2018-12-05 Alexandre Oliva - - PR c++/85569 - * constexpr.c (adjust_temp_type): Test for type equality with - same_type_p. - (constexpr_call_hasher::equal): Likewise. - -2018-12-04 Paolo Carlini - - PR c++/84636 - * decl.c (grokdeclarator): Avoid crashing on an anonymous bit-field - with function type. - -2018-12-04 Marek Polacek - - PR c++/88184 - ICE when treating name as template-name. - * pt.c (lookup_template_function): Always build the TEMPLATE_ID_EXPR - with unknown_type_node. - -2018-12-04 Julian Brown - - * parser.c (cp_parser_oacc_wait_list): Fix error message and avoid - duplicate diagnostic. - -2018-12-04 Jakub Jelinek - - PR c++/88103 - * typeck.c (build_class_member_access_expr): If unary_complex_lvalue - turned xvalue_p into non-xvalue_p, call move on it. - -2018-12-02 Jakub Jelinek - - PR c++/88258 - * parser.c (cp_parser_skip_to_closing_parenthesis_1, - cp_parser_skip_to_end_of_statement, - cp_parser_skip_to_end_of_block_or_statement, - cp_parser_skip_to_closing_brace, - cp_parser_skip_to_closing_square_bracket, - cp_parser_skip_balanced_tokens): Don't treat CPP_PRAGMA_EOL specially - if in_pragma is false. - -2018-12-01 Marek Polacek - - Implement P0634R3, Down with typename! - * parser.c (CP_PARSER_FLAGS_TYPENAME_OPTIONAL): New enumerator. - (cp_parser_type_name): Remove declaration. - (cp_parser_postfix_expression): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL - to cp_parser_type_id. - (cp_parser_new_type_id): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to - cp_parser_type_specifier_seq. - (cp_parser_lambda_declarator_opt): Pass - CP_PARSER_FLAGS_TYPENAME_OPTIONAL to - cp_parser_parameter_declaration_clause. - (cp_parser_condition): Pass CP_PARSER_FLAGS_NONE to - cp_parser_declarator. - (cp_parser_simple_declaration): Pass CP_PARSER_FLAGS_NONE to - cp_parser_init_declarator. - (cp_parser_conversion_type_id): Pass CP_PARSER_FLAGS_NONE to - cp_parser_type_specifier_seq. - (cp_parser_default_type_template_argument): Pass - CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_type_id. - (cp_parser_template_parameter): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL - to cp_parser_parameter_declaration. - (cp_parser_explicit_instantiation): Pass CP_PARSER_FLAGS_NONE to - cp_parser_declarator. - (cp_parser_simple_type_specifier): Adjust call to cp_parser_type_name - to relay if we should treat the typename keyword as optional. Maybe - call cp_parser_make_typename_type is parsing a template-id and it's - not a TYPE_DECL. - (cp_parser_type_name): Remove unused function. - (cp_parser_enum_specifier): Pass to CP_PARSER_FLAGS_NONE - cp_parser_type_specifier_seq. - (cp_parser_alias_declaration): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL - to cp_parser_type_id. - (cp_parser_init_declarator): New parameter. Pass it down to - cp_parser_declarator. - (cp_parser_declarator): New parameter. Pass CP_PARSER_FLAGS_NONE to - cp_parser_declarator. Pass the new parameter to - cp_parser_direct_declarator. - (cp_parser_direct_declarator): New parameter. Pass it to - cp_parser_parameter_declaration_clause and cp_parser_declarator. - (cp_parser_declarator_id): - (cp_parser_type_id_1): New parameter. Pass it to - cp_parser_type_specifier_seq. Adjust call to cp_parser_declarator. - (cp_parser_type_id): New parameter. Pass it to cp_parser_type_id_1. - (cp_parser_template_type_arg): Pass CP_PARSER_FLAGS_NONE to - cp_parser_type_id_1. - (cp_parser_trailing_type_id): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL - to cp_parser_type_id_1. - (cp_parser_type_specifier_seq): New parameter. - (function_being_declared_is_template_p): - (cp_parser_parameter_declaration_clause): New parameter. Pass it to - cp_parser_parameter_declaration_list. - (cp_parser_parameter_declaration_list): New parameter. Pass it to - cp_parser_parameter_declaration. - (cp_parser_parameter_declaration): New parameter. Pass it to - cp_parser_decl_specifier_seq. Pass CP_PARSER_FLAGS_NONE to - cp_parser_declarator. - (cp_parser_member_declaration): Adjust call to - cp_parser_decl_specifier_seq to also include - CP_PARSER_FLAGS_TYPENAME_OPTIONAL. Pass - CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_declarator. - (cp_parser_exception_declaration): Pass CP_PARSER_FLAGS_NONE to - cp_parser_type_specifier_seq and cp_parser_declarator. - (cp_parser_requirement_parameter_list): Pass CP_PARSER_FLAGS_NONE to - cp_parser_parameter_declaration_clause. - (cp_parser_constructor_declarator_p): Resolve the TYPENAME_TYPE. - (cp_parser_single_declaration): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL - to cp_parser_decl_specifier_seq and cp_parser_init_declarator. - (cp_parser_cache_defarg): Pass CP_PARSER_FLAGS_NONE to - cp_parser_declarator and cp_parser_parameter_declaration_list. - (cp_parser_objc_method_tail_params_opt): Pass CP_PARSER_FLAGS_NONE to - cp_parser_parameter_declaration. - (cp_parser_objc_class_ivars): Pass CP_PARSER_FLAGS_NONE to - cp_parser_declarator. - (cp_parser_objc_try_catch_finally_statement): Pass CP_PARSER_FLAGS_NONE - to cp_parser_parameter_declaration - (cp_parser_objc_struct_declaration): Pass CP_PARSER_FLAGS_NONE to - cp_parser_declarator. - (cp_parser_omp_for_loop_init): Pass CP_PARSER_FLAGS_NONE to - cp_parser_declarator and cp_parser_type_specifier_seq. - -2018-11-30 David Malcolm - - * typeck2.c: Include "gcc-rich-location.h". - (cxx_incomplete_type_diagnostic): When complaining about possibly - missing parens, add a fix-it hint if the member function takes no - additional params. - -2018-11-30 James Norris - - * parser.c (cp_parser_oacc_enter_exit_data): Use existing local - variable. - -2018-11-29 Paolo Carlini - - * decl.c (compute_array_index_type_loc): New, like the current - compute_array_index_type but takes a location_t too. - (compute_array_index_type): Forward to the latter. - (create_array_type_for_decl): Use compute_array_index_type_loc. - -2018-11-29 David Malcolm - - PR c++/88121 - * cp-name-hint.h (suggest_alternative_in_scoped_enum): New decl. - * error.c (dump_scope): Ensure that we print any scope for values - of unscoped enums. Print the scope of values of scoped enums. - (qualified_name_lookup_error): Offer suggestions for failures - within scoped enums by calling suggest_alternative_in_scoped_enum. - * name-lookup.c (class namespace_hints): Update comment to mention - scoped enums. - (namespace_hints::namespace_hints): Call - maybe_add_candidate_for_scoped_enum. - (namespace_hints::maybe_add_candidate_for_scoped_enum): New member - (suggest_alternatives_for): Update comment to mention scoped - enums. - (suggest_alternative_in_scoped_enum): New function. - -2018-11-28 Marek Polacek - - Implement P1094R2, Nested inline namespaces. - * parser.c (cp_parser_namespace_definition): Parse the optional inline - keyword in a nested-namespace-definition. Adjust push_namespace call. - Formatting fix. - -2018-11-28 Nathan Sidwell - - PR c++/87531 - * class.c (finish_struct): In a template, add artificial using - decl for operator=. - -2018-11-28 Jan Hubicka - - * except.c (do_allocate_exception): Annotate __cxa_allocate_exception - as COLD. - -2018-11-28 Marek Polacek - - PR c++/88222 - ICE with bit-field with invalid type. - * decl.c (grokdeclarator): Check if declarator is null. - -2018-11-28 Jakub Jelinek - - PR c++/87476 - * typeck2.c (digest_init_r): Re-add handing of signed/unsigned char - strings and add it to the initialization of wide array from non-wide - string diagnostics too. - -2018-11-27 Jakub Jelinek - - PR c++/88187 - * decl.c (grokdeclarator): Don't diagnose deduction guide errors - if !funcdecl_p. - - PR c++/88181 - * class.c (fixup_attribute_variants): Also propagate TYPE_PACKED - to variants. - -2018-11-26 Marek Polacek - - PR c++/88120 - ICE when calling save_expr in a template. - * typeck.c (cp_build_binary_op): Call cp_save_expr instead of - save_expr. - -2018-11-22 Jakub Jelinek - - PR c++/87386 - * parser.c (cp_parser_operator): Use str.get_value () instead of just - str in USERDEF_LITERAL_VALUE and USERDEF_LITERAL_SUFFIX_ID arguments. - -2018-11-21 Jakub Jelinek - - PR c++/88122 - * method.c (maybe_explain_implicit_delete): If - FUNCTION_FIRST_USER_PARMTYPE (decl) is NULL, set const_p to false - instead of ICEing. - - PR c++/87386 - * parser.c (cp_parser_primary_expression): Use - id_expression.get_location () instead of id_expr_token->location. - Adjust the range from id_expr_token->location to - id_expressio.get_finish (). - (cp_parser_operator_function_id): Pass location of the operator - token down to cp_parser_operator. - (cp_parser_operator): Add start_loc argument, always construct a - location with caret at start_loc and range from start_loc to the - finish of the last token. - - PR c++/87393 - * parser.c (cp_parser_linkage_specification): Remove useless - dereference of the consume_open method result. - -2018-11-20 Martin Sebor - - * cp-tree.h (cp_check_const_attributes): Declare. - * decl2.c (cp_check_const_attributes): Declare extern. - * parser.c (cp_parser_has_attribute_expression): New function. - (cp_parser_unary_expression): Handle RID_HAS_ATTRIBUTE_EXPRESSION. - (cp_parser_gnu_attribute_list): Add argument. - -2018-11-20 Jakub Jelinek - - PR c++/88110 - * constexpr.c (cxx_eval_constant_expression) : Punt - if get_base_address of ADDR_EXPR operand is not a DECL_P. - -2018-11-19 Marek Polacek - - PR c++/87781 - detect invalid elaborated-type-specifier. - * parser.c (cp_parser_elaborated_type_specifier): Ensure that - typename follows a nested-name-specifier. - -2018-11-18 Paolo Carlini - - * decl2.c (grokfield): Remove obsolete _vptr check; fix - explicit template argument list error location. - -2018-11-16 Kamlesh Kumar - - DR 1207 - PR c++/52869 - * parser.c (cp_parser_noexcept_specification_opt): Call - inject_this_parameter. - -2018-11-16 Jason Merrill - - Implement P0479R5, [[likely]] and [[unlikely]]. - * tree.c (handle_likeliness_attribute): New. - (std_attribute_table): Add likely/unlikely. - * cp-gimplify.c (lookup_hotness_attribute, remove_hotness_attribute) - (process_stmt_hotness_attribute, first_stmt): New. - (genericize_if_stmt): Check for duplicate predictions. - * parser.c (cp_parser_statement): Call - process_stmt_hotness_attribute. - (cp_parser_label_for_labeled_statement): Apply attributes to case. - * decl.c (finish_case_label): Give label in template type void. - * pt.c (tsubst_expr) [CASE_LABEL_EXPR]: Copy attributes. - [PREDICT_EXPR]: Handle. - -2018-11-16 Nathan Sidwell - - Remove ovl_used, it is no longer needed - * cp-tree.h (OVL_USED_P): Delete. - (lookup_keep): Delete. - * friend.c (add_friend): Don't call it. - * parser.c (lookup_literal_operator): Likewise. - (cp_parser_primary_expression): Likewise. - * semantics.c (perform_koenig_lookup): Likewise. - * pt.c (tsubst_copy ): Don't assert OVL_USED_P. - * tree.c (ovl_copy): Delete. - (ovl_insert): Remove OVL_USED_P checks. - (ovl_iterator::reveal_node): Likewise. - (ovl_iterator::remove__node): Likewise. - (ovl_used, lookup_keep): Delete. - - PR c++/87269 - * parser.c (lookup_literal_operator): Mark overload for keeping - when inside template. Refactor. - -2018-11-15 Nathan Sidwell - - PR c++/86246 - PR c++/87989 - * typeck.c (finish_class_member_access_expr): Conversion operator - to dependent type is dependent. - -2018-11-15 Paolo Carlini - - * constexpr.c (ensure_literal_type_for_constexpr_object): Use - DECL_SOURCE_LOCATION in error_at calls. - -2018-11-15 Nathan Sidwell - - DR 2336 - * cp-tree.h (enum special_function_kind): Add sfk_virtual_destructor. - * method.c (type_has_trivial_fn): Add it. - (SFK_DTOR_P): Likewise. - (synthesized_method_base_walk): Don't check access of vbases of - abstract classes when sfk_virtual_destructor. - (synthesized_method_walk): Skip vbases of abstract classes except - when sfk_virtual_destructor. - (get_defaulted_eh_spec): Set sfk_virtual_destructor as needed. - - * cp-tree.h (enum special_function_kind): Reorder and comment. - * method.c (SFK_CTOR_P, SFK_DTOR_P, SFK_ASSIGN_P, SFK_COPY_P) - (SFK_MOVE_P): New predicates. - (walk_field_subobs, synthesized_method_base_walk): Drop - copy_arg_p, move_p, assign_p args. Use new SFK predicates. Order - parameters consistently. - (synthesized_method_walk): Drop ctor_p, copy_arg_p, move_p, - assign_p calculations. Use new SFK predicates. Adjust calls to - worker functions. - -2018-11-14 Paolo Carlini - - * parser.c (make_id_declarator): Add location_t parameter. - (cp_parser_lambda_declarator_opt): Adjust call. - (cp_parser_decomposition_declaration): Likewise. - (cp_parser_alias_declaration): Likewise. - (cp_parser_direct_declarator): Likewise. - (cp_parser_member_declaration): Likewise. - (cp_parser_objc_class_ivars): Likewise. - * decl.c (grokdeclarator): Use declarator->id_loc in two error - messages. - -2018-11-14 Jakub Jelinek - - P1236R1 - Signed integers are two's complement - * constexpr.c (cxx_eval_check_shift_p): Disable the signed LSHIFT_EXPR - checks for c++2a. - -2018-11-13 David Malcolm - - * call.c: Replace "source_location" with "location_t". - * cp-tree.h: Likewise. - * cvt.c: Likewise. - * name-lookup.c: Likewise. - * parser.c: Likewise. - * typeck.c: Likewise. - -2018-11-12 Jason Merrill - - Implement P0315R4, Lambdas in unevaluated contexts. - * decl2.c (min_vis_expr_r): Handle LAMBDA_EXPR. - * mangle.c (write_expression): Handle LAMBDA_EXPR. - * parser.c (cp_parser_lambda_expression): Allow lambdas in - unevaluated context. Start the tentative firewall sooner. - (cp_parser_lambda_body): Use cp_evaluated. - * pt.c (iterative_hash_template_arg): Handle LAMBDA_EXPR. - (tsubst_function_decl): Substitute a lambda even if it isn't - dependent. - (tsubst_lambda_expr): Use cp_evaluated. Always complain. - (tsubst_copy_and_build) [LAMBDA_EXPR]: Do nothing if tf_partial. - * semantics.c (begin_class_definition): Allow in template parm list. - * tree.c (strip_typedefs_expr): Pass through LAMBDA_EXPR. - (cp_tree_equal): Handle LAMBDA_EXPR. - - * pt.c (fn_type_unification): If we have a full set of explicit - arguments, go straight to substitution. - - * decl2.c (min_vis_expr_r, expr_visibility): New. - (min_vis_r): Call expr_visibility. - (constrain_visibility_for_template): Likewise. - - Implement P0722R3, destroying operator delete. - * call.c (std_destroying_delete_t_p, destroying_delete_p): New. - (aligned_deallocation_fn_p, usual_deallocation_fn_p): Use - destroying_delete_p. - (build_op_delete_call): Handle destroying delete. - * decl2.c (coerce_delete_type): Handle destroying delete. - * init.c (build_delete): Don't call dtor with destroying delete. - * optimize.c (build_delete_destructor_body): Likewise. - - Implement P0780R2, pack expansion in lambda init-capture. - * parser.c (cp_parser_lambda_introducer): Parse pack init-capture. - * pt.c (tsubst_pack_expansion): Handle init-capture packs. - (lookup_init_capture_pack): New. - (tsubst_expr) [DECL_EXPR]: Use it. - (tsubst_lambda_expr): Remember field pack expansions for - init-captures. - - * cp-tree.h (struct cp_evaluated): New. - * init.c (get_nsdmi): Use it. - * parser.c (cp_parser_enclosed_template_argument_list): Use it. - * pt.c (coerce_template_parms, tsubst_aggr_type): Use it. - -2018-11-09 Jakub Jelinek - - * parser.c (cp_parser_omp_clause_final, cp_parser_omp_clause_if): Use - cp_parser_assignment_expression instead of cp_parser_condition. - (cp_parser_omp_clause_num_threads, cp_parser_omp_clause_num_tasks, - cp_parser_omp_clause_grainsize, cp_parser_omp_clause_priority, - cp_parser_omp_clause_num_teams, cp_parser_omp_clause_thread_limit, - cp_parser_omp_clause_linear, cp_parser_omp_clause_device): Use - cp_parser_assignment_expression instead of cp_parser_expression. - (cp_parser_omp_clause_hint): Likewise. Formatting fix. - - * parser.c (cp_parser_omp_clause_reduction): Call sorry_at on - reduction clause with inscan modifier. - - * parser.c (cp_parser_omp_requires): Call sorry_at on requires - clauses other than atomic_default_mem_order. - -2018-11-09 Martin Sebor - - PR middle-end/81824 - * pt.c (warn_spec_missing_attributes): Move code to attribs.c. - Call decls_mismatched_attributes. - -2018-11-08 Jakub Jelinek - - * constexpr.c (potential_constant_expression_1): Handle OMP_DEPOBJ. - * cp-gimplify.c (cp_genericize_r): Handle - OMP_CLAUSE_{IN,TASK}_REDUCTION. - (cxx_omp_predetermined_sharing_1): Don't return - OMP_CLAUSE_DEFAULT_SHARED for const qualified decls with no mutable - member. Return OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for this pointer. - * cp-objcp-common.c (cp_common_init_ts): Handle OMP_DEPOBJ. - * cp-tree.def (OMP_DEPOBJ): New tree code. - * cp-tree.h (OMP_ATOMIC_DEPENDENT_P): Return true also for first - argument being OMP_CLAUSE. - (OMP_DEPOBJ_DEPOBJ, OMP_DEPOBJ_CLAUSES): Define. - (cp_convert_omp_range_for, cp_finish_omp_range_for): Declare. - (finish_omp_atomic): Add LOC, CLAUSES and MO arguments. Remove - SEQ_CST argument. - (finish_omp_for_block): Declare. - (finish_omp_flush): Add MO argument. - (finish_omp_depobj): Declare. - * cxx-pretty-print.c (cxx_pretty_printer::statement): Handle - OMP_DEPOBJ. - * dump.c (cp_dump_tree): Likewise. - * lex.c (cxx_init): Likewise. - * parser.c: Include memmodel.h. - (cp_parser_for): Pass false as new is_omp argument to - cp_parser_range_for. - (cp_parser_range_for): Add IS_OMP argument, return before finalizing - if it is true. - (cp_parser_omp_clause_name): Handle nontemporal, in_reduction and - task_reduction clauses. - (cp_parser_omp_var_list_no_open): Handle - OMP_CLAUSE_{IN,TASK}_REDUCTION. For OMP_CLAUSE_DEPEND, parse clause - operands as either an array section, or lvalue assignment expression. - (cp_parser_omp_clause_if): Handle cancel and simd modifiers. - (cp_parser_omp_clause_defaultmap): Parse new kinds of defaultmap - clause. - (cp_parser_omp_clause_reduction): Add IS_OMP and KIND arguments. - Parse reduction modifiers. Pass KIND to c_parser_omp_variable_list. - (cp_parser_omp_clause_lastprivate, cp_parser_omp_iterators): New - functions. - (cp_parser_omp_clause_depend): Parse iterator modifier and handle - iterators. Parse mutexinoutset and depobj kinds. - (cp_parser_oacc_all_clauses): Adjust cp_parser_omp_clause_reduction - callers. - (cp_parser_omp_all_clauses): Likewise. Handle - PRAGMA_OMP_CLAUSE_NONTEMPORAL and - PRAGMA_OMP_CLAUSE_{IN,TASK}_REDUCTION. Call - cp_parser_omp_clause_lastprivate for OpenMP lastprivate clause. - (cp_parser_omp_atomic): Pass pragma_tok->location as - LOC to finish_omp_atomic. Parse hint and memory order clauses. - Handle default memory order from requires directive if any. Adjust - finish_omp_atomic caller. - (cp_parser_omp_critical): Allow comma in between (name) and hint - clause. - (cp_parser_omp_depobj): New function. - (cp_parser_omp_flush): Parse flush with memory-order-clause. - (cp_parser_omp_for_cond): Allow NE_EXPR even in OpenMP loops. - (cp_convert_omp_range_for, cp_finish_omp_range_for): New functions. - (cp_parser_omp_for_loop): Parse C++11 range for loops among omp - loops. Handle OMP_CLAUSE_IN_REDUCTION like OMP_CLAUSE_REDUCTION. - (OMP_SIMD_CLAUSE_MASK): Add if and nontemporal clauses. - (cp_parser_omp_simd, cp_parser_omp_for): Call keep_next_level before - begin_omp_structured_block and call finish_omp_for_block on - finish_omp_structured_block result. - (cp_parser_omp_master): Add p_name, mask and cclauses arguments. - Allow to be called while parsing combined parallel master. - Parse combined master taskloop{, simd}. - (cp_parser_omp_parallel): Parse combined - parallel master{, taskloop{, simd}} constructs. - (cp_parser_omp_single): Use SET_EXPR_LOCATION. - (OMP_TASK_CLAUSE_MASK): Add in_reduction clause. - (OMP_TASKWAIT_CLAUSE_MASK): Define. - (cp_parser_omp_taskwait): Handle taskwait with depend clauses. - (OMP_TASKGROUP_CLAUSE_MASK): Define. - (cp_parser_omp_taskgroup): Parse taskgroup clauses, adjust - c_finish_omp_taskgroup caller. - (cp_parser_omp_distribute): Call keep_next_level before - begin_omp_structured_block and call finish_omp_for_block on - finish_omp_structured_block result. - (cp_parser_omp_teams): Force a BIND_EXPR with BLOCK around teams - body. - (cp_parser_omp_target_data): Allow target data with only - use_device_ptr clauses. - (cp_parser_omp_target): Set OMP_REQUIRES_TARGET_USED bit in - omp_requires_mask. - (cp_parser_omp_requires): New function. - (OMP_TASKLOOP_CLAUSE_MASK): Add reduction and in_reduction clauses. - (cp_parser_omp_taskloop): Add forward declaration. Disallow - in_reduction clause when combined with parallel master. Call - keep_next_level before begin_omp_structured_block and call - finish_omp_for_block on finish_omp_structured_block result. - (cp_parser_omp_construct): Adjust cp_parser_omp_master caller. - (cp_parser_pragma): Handle PRAGMA_OMP_DEPOBJ and PRAGMA_OMP_REQUIRES. - * pt.c (tsubst_omp_clause_decl): Add iterators_cache argument. - Adjust recursive calls. Handle iterators. - (tsubst_omp_clauses): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION and - OMP_CLAUSE_NONTEMPORAL. Adjust tsubst_omp_clause_decl callers. - (tsubst_decomp_names): - (tsubst_omp_for_iterator): Change orig_declv into a reference. - Handle range for loops. Move orig_declv handling after declv/initv - handling. - (tsubst_expr): Force a BIND_EXPR with BLOCK around teams body. - Adjust finish_omp_atomic caller. Call keep_next_level before - begin_omp_structured_block. Call cp_finish_omp_range_for for range - for loops and use {begin,finish}_omp_structured_block instead of - {push,pop}_stmt_list if there are any range for loops. Call - finish_omp_for_block on finish_omp_structured_block result. - Handle OMP_DEPOBJ. Handle taskwait with depend clauses. For - OMP_ATOMIC call tsubst_omp_clauses on clauses if any, adjust - finish_omp_atomic caller. Use OMP_ATOMIC_MEMORY_ORDER rather - than OMP_ATOMIC_SEQ_CST. Handle clauses on OMP_TASKGROUP. - (dependent_omp_for_p): Always return true for range for loops if - processing_template_decl. Return true if class type iterator - does not have INTEGER_CST increment. - * semantics.c: Include memmodel.h. - (handle_omp_array_sections_1): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION - like OMP_CLAUSE_REDUCTION. - (handle_omp_array_sections): Likewise. Call save_expr on array - reductions before calling build_index_type. Handle depend clauses - with iterators. - (finish_omp_reduction_clause): Call save_expr for whole array - reduction sizes. Don't mark OMP_CLAUSE_DECL addressable if it has - reference type. Do mark decl_placeholder addressable if needed. - Use error_at with OMP_CLAUSE_LOCATION (c) as first argument instead - of error. - (cp_omp_finish_iterators): New function. - (finish_omp_clauses): Don't diagnose nonmonotonic clause with static, - runtime or auto schedule kinds. Diagnose nogroup clause used with - reduction clause(s). Handle depend clause with - OMP_CLAUSE_DEPEND_DEPOBJ. Diagnose bit-fields. Require - omp_depend_t type for OMP_CLAUSE_DEPEND_DEPOBJ kinds and - some different type for other kinds. Use cp_build_addr_expr - and cp_build_indirect_ref instead of cxx_mark_addressable. - Handle depend clauses with iterators. Only handle static data members - in the special case that const qualified vars may be specified in - firstprivate clause. Complain if const qualified vars without mutable - members are mentioned in data-sharing clauses other than firstprivate - or shared. Use error_at with OMP_CLAUSE_LOCATION (c) as first - argument instead of error. Diagnose more than one nontemporal clause - refering to the same variable. Use error_at rather than error for - priority and hint clause diagnostics. Fix pasto for hint clause. - Diagnose hint expression that doesn't fold into INTEGER_CST. - Diagnose if clause with modifier other than cancel. Handle - OMP_CLAUSE_{IN,TASK}_REDUCTION like OMP_CLAUSE_REDUCTION. Allow any - lvalue as OMP_CLAUSE_DEPEND operand (besides array section), adjust - diagnostics. - (handle_omp_for_class_iterator): Don't create a new TREE_LIST if one - has been created already for range for, just fill TREE_PURPOSE and - TREE_VALUE. Call cp_fully_fold on incr. - (finish_omp_for): Don't check cond/incr if cond is global_namespace. - Pass to c_omp_check_loop_iv_exprs orig_declv if non-NULL. Don't - use IS_EMPTY_STMT on NULL pre_body. Adjust c_finish_omp_for caller. - (finish_omp_for_block): New function. - (finish_omp_atomic): Add LOC argument, pass it through - to c_finish_omp_atomic and set it as location of OMP_ATOMIC* trees. - Remove SEQ_CST argument. Add CLAUSES and MO arguments. Adjust - c_finish_omp_atomic caller. Stick clauses if any into first argument - of wrapping OMP_ATOMIC. - (finish_omp_depobj): New function. - (finish_omp_flush): Add MO argument, if not - MEMMODEL_LAST, emit __atomic_thread_fence call with the given value. - (finish_omp_cancel): Diagnose if clause with modifier other than - cancel. - -2018-11-07 Nathan Sidwell - - PR c++/87904 - * cp-tree.h (struct tree_overload): Fix comment. - * tree.c (ovl_iterator::reveal_node): Propagate OVL_DEDUP_P. - -2018-11-04 Jason Merrill - - Implement UDL changes from P0732R2. - * cp-tree.h (struct releasing_vec): Move from mangle.c. - Add get_ref method. - * parser.c (cp_parser_userdef_string_literal): Use it. Handle - passing the string to a single template parameter of class type. - (cp_parser_template_declaration_after_parameters): Allow it. - Pedwarn about the character pack template that was proposed but not - accepted for C++14, and don't suggest it. - - Implement P0732R2, class types in non-type template parameters. - * error.c (dump_simple_decl): Look through a template parm object. - * mangle.c (write_template_arg): Likewise. - (mangle_template_parm_object): New. - * pt.c (template_parm_object_p, get_template_parm_object): New. - (invalid_tparm_referent_p): Factor from convert_nontype_argument. - (convert_nontype_argument, invalid_nontype_parm_type_p): Handle - class-type template arguments. - * tree.c (lvalue_kind): Likewise. - - * cvt.c (ocp_convert): Don't wrap a CONSTRUCTOR in a NOP_EXPR. - * constexpr.c (initialized_type): Fix AGGR_INIT_EXPR handling. - (cxx_eval_vec_init_1): Correct type of AGGR_INIT_EXPR. - (cxx_eval_outermost_constant_expr): Make sure a CONSTRUCTOR has the - right type. Don't wrap a CONSTRUCTOR if one was passed in. - * tree.c (build_aggr_init_expr): Check for void. - - PR c++/60503 - wrong lambda attribute syntax. - * parser.c (cp_parser_lambda_declarator_opt): Fix attribute - handling. - -2018-11-02 Nathan Sidwell - - * decl.c (duplicate_decls): Refactor checks. - -2018-11-01 Marek Polacek - - Implement P0846R0, ADL and function templates. - * decl.c (grokfndecl): Allow FUNCTION_DECL in assert. - * lex.c (unqualified_fn_lookup_error): Handle TEMPLATE_ID_EXPR. - * parser.c (cp_parser_postfix_expression): Do ADL for a template-name. - (cp_parser_template_id): Give errors if parsing the template argument - list didn't go well. Allow FUNCTION_DECL in assert. - (cp_parser_template_name): Consider a name to refer to a template if - it is an unqualified-id followed by a <. Don't return the identifier - if the decl is a function and dependent. - * pt.c (tsubst_copy) : Remove assert. - -2018-11-01 Nathan Sidwell - - * cp-tree.h (struct lang_function): Delete x_local_names field. - (struct lang_decl_base): Rename u2sel to spare. - (struct lang_decl_min): Remove lang_decl_u2 union. Keep access - field. - (LANG_DECL_U2_CHECK): Delete. - (DECL_DISCRIMINATOR_P): Require function scope. - (DECL_DISCRIMINATOR): Adjust. - (DECL_DISCRIMINATOR_SET_P): Delete. - (DECL_CAPTURED_VARIABLE, DECL_ACCESS, THUnK_VIRTUAL_OFFSET): Adjust. - (local_classes): Don't declare. - (determine_local_discriminator): Declare. - * decl.c (push_local_name): Delete. - (local_entities, determina_local_discrminator): New. - (duplicate_decls): Copy DECL_ACCESS. Fix formatting. - (cp_finish_decl): Use determine_local_discriminator. - (save_function_data): Drop x_local_names. - (finish_function): Drop local_names. - * decl2.c (finish_anon_union): Use determine_local_disciminator. - * mangle.c (write_unnamed_type_name): Use - discriminator_for_local_entity. - (local_class_index): Delete. - (discriminator_for_local_entity): Reimplement. - (write_local_name): Adjust discriminator code. - * name-lookup.c (do_pushtag): Call determine_local_discrimiator. - * semantics.c (finish_omp_threadprivate): Drop DECL_DISCRIMINATOR - handling. - * class.c (local_classes): Delete. - (init_class_processing): Don't init it. - -2018-11-01 Martin Liska - Jason Merrill - - PR c++/64266 - PR bootstrap/70422 - PR ipa/81277 - * cp-tree.h (DECL_FNAME_P): New macro. - * decl.c (cp_make_fname_decl): Set DECL_DECLARED_CONSTEXPR_P, - DECL_VALUE_EXPR, DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. - (cp_finish_decl): - * lambda.c (is_capture_proxy): Use DECL_FNAME_P. - * pt.c (tsubst_expr): Handle DECL_PRETTY_FUNCTION_P. - -2018-10-31 Nathan Sidwell - - * cp-tree.h (OVL_DEDUP_P): New. - * name-lookup.c (name_lookup::add_overload): Check OVL_DEDUP_P. - (get_class_binding_direct): Likwise. - * tree.c (ovl_make): Propagate OVL_DEDUP_P. - (ovl_copy): Copy it. - (ovl_insert): Do not keep using-decls ordered. - (lookup_maybe_add): Adjust comment. - -2018-10-30 Marek Polacek - - Implement P0892R2, explicit(bool). - * call.c (add_template_candidate_real): Return if the declaration is - explicit and we're only looking for non-converting constructor. - * cp-tree.h (lang_decl_fn): Add has_dependent_explicit_spec_p bit. - (DECL_HAS_DEPENDENT_EXPLICIT_SPEC_P): New macro. - (cp_decl_specifier_seq): Add explicit_specifier field. - (build_explicit_specifier, store_explicit_specifier): Declare. - * decl.c (grokdeclarator): Call store_explicit_specifier. - (build_explicit_specifier): New function. - * parser.c (cp_parser_function_specifier_opt) : - Parse C++20 explicit(bool). - * pt.c (store_explicit_specifier, lookup_explicit_specifier): New. - (tsubst_function_decl): Handle explicit(dependent-expr). - -2018-10-30 Paolo Carlini - - * decl.c (grokdeclarator): Use declarator->id_loc in diagnostic - about flexible array members. - -2018-10-29 David Malcolm - - * cp-name-hint.h: New file. - * cp-tree.h (expr_to_string): New decl. - (suggest_alternatives_for): Move to cp-name-hint.h, changing - return type from bool to name_hint. - (suggest_alternative_in_explicit_scope): Likewise. - * error.c: Define INCLUDE_UNIQUE_PTR. Include "cp-name-hint.h". - (expr_to_string): Make non-static. - (qualified_name_lookup_error): For the non-"::" case, take - responsibity for issuing any suggestion from - suggest_alternative_in_explicit_scope, as it changes from - returning a bool to returning a name_hint. Replace fallback call - to suggest_alternatives_for to a call to - suggest_alternatives_in_other_namespaces, capturing the fact that - we don't have enough location information to issue a fix-it hint - for this case. Update the error to support emitting a fix-it hint - where appropriate. For the "::" case, take responsibility for - issuing any suggestion from suggest_alternatives_for, supporting - emitting a fix-it hint. - * lex.c: Define INCLUDE_UNIQUE_PTR. Include "gcc-rich-location.h" - and "cp-name-hint.h". - (unqualified_name_lookup_error): Take responsibility for issuing - any suggestion from suggest_alternatives_for, supporting emitting - a fix-it hint. - * name-lookup.c (class namespace_limit_reached): New subclass of - deferred_diagnostic. - (class show_candidate_location): Likewise. - (class suggest_alternatives): Likewise. - (class namespace_hints): New class. - (suggest_alternatives_for): Convert return type from bool to - name_hint, replacing all direct diagnostic emission by setting - suggestions on the return value, or creating deferred diagnostics. - Specifically, split out initial traversal of namespaces into - namespace_hints' ctor, and maybe_decorate_with_limit, and move the - rest of the implementation to - namespace_hints::convert_candidates_to_name_hint and - suggest_alternatives_for_1. - (namespace_hints::namespace_hints): New ctor, adapted from - suggest_alternatives_for's initial namespace traversal, storing - location and name, and converting locals "candidates", "limited" - and "limit" into members. - (namespace_hints::convert_candidates_to_name_hint): New member - function. - (namespace_hints::maybe_decorate_with_limit): New member function. - (suggest_alternatives_for_1): New function, based on second half - of old implementation of suggest_alternatives_for, converting from - immediate emission of suggestions to using name_hint. - (suggest_alternatives_in_other_namespaces): New function. - (maybe_suggest_missing_std_header): Convert from immediate - emission of suggestions to using name_hint, moving emission - implementation to... - (class missing_std_header): New subclass of deferred_diagnostic. - (maybe_suggest_missing_header): Convert return type from bool to - name_hint. - (suggest_alternative_in_explicit_scope): Convert from immediate - emission of suggestions to using name_hint. - * parser.c: Replace include of "c-family/name-hint.h" with - "cp-name-hint.h". - (cp_parser_diagnose_invalid_type_name): Update - "is there a suggestion" logic for change to - name_hint::operator bool. Take responsibility for emitting - fix-it hints from suggest_alternative_in_explicit_scope. - (cp_parser_namespace_name): Take responsibility for emitting - fix-it hints from suggest_alternative_in_explicit_scope. Don't - emit the "expected namespace-name" error if we've already emitted - an "is not a namespace-name" error. - -2018-10-29 David Malcolm - - PR c++/56856 - * call.c (build_over_call): Eliminate the "arglocs" array, and the - call to maybe_constant_value when building "fargs". - -2018-10-29 Paolo Carlini - - * decl.c (create_array_type_for_decl): Add location_t parameter - and use it. - (grokdeclarator): Adjust call. - -2018-10-29 Marek Polacek - - PR c++/87594 - constexpr rejects-valid with range-based for. - * constexpr.c (potential_constant_expression_1): If the condition - can't be evaluated, return true. - -2018-10-29 Joseph Myers - Julian Brown - - PR c++/66053 - * semantics.c (handle_omp_array_sections_1): Allow array - sections with "this" pointer for OpenACC. - -2018-10-25 Jason Merrill - - * parser.c (cp_parser_sizeof_operand): Remove redundant use of - grokdeclarator. - -2018-10-24 Jakub Jelinek - - PR c++/86288 - * parser.c (cp_parser_std_attribute): Canonicalize attr_ns, and when - :: is not present and attr_ns non-NULL, canonicalize also attr_id. - (cp_parser_attribute_spec): Fix comment typo. - -2018-10-24 Martin Sebor - - PR c++/84851 - * call.c (maybe_warn_class_memaccess): Tighten up. - -2018-10-17 David Malcolm - - * Make-lang.in (selftest-c++): New. - (CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++) - (selftest-c++-gdb, selftest-c++-valgrind): Move here from - gcc/Makefile.in. - -2018-10-17 Paolo Carlini - - PR c++/84705 - * tree.c (build_cplus_new): Avoid duplicate diagnostic about - incomplete type, early return error_mark_node if the second - argument is error_mark_node. - -2018-10-12 Nathan Sidwell - - * parser.h (struct cp_parser): Drop implicit_extern_c. - * parser.c (cp_debug_parser): Drop implicit_extern_c. - (cp_parser_new): Likewise. - (cp_parser_translation_unit): Handle implicit extern c here. Call - cp_parser_toplevel_declaration. - (cp_parser_toplevel_declaration): New, broken out of ... - (cp_parser_declaration_seq_opt): ... here. Call it. Drop - implicit extern C handling. - -2018-10-11 Will Wray - - PR c++/87364 - * cxx-pretty-print.c (pp_cxx_enumeration_constant): New function. - (cxx_pretty_printer::constant): Use it. - -2018-10-11 David Malcolm - - PR c++/84993 - * call.c (enforce_access): Move diagnostics to... - (complain_about_access): ...this new function. - * cp-tree.h (class access_failure_info): Rename split out field - "m_field_decl" into "m_decl" and "m_diag_decl". - (access_failure_info::record_access_failure): Add tree param. - (access_failure_info::was_inaccessible_p): New accessor. - (access_failure_info::get_decl): New accessor. - (access_failure_info::get_diag_decl): New accessor. - (access_failure_info::get_any_accessor): New member function. - (access_failure_info::add_fixit_hint): New static member function. - (complain_about_access): New decl. - * typeck.c (access_failure_info::record_access_failure): Update - for change to fields. - (access_failure_info::maybe_suggest_accessor): Split out into... - (access_failure_info::get_any_accessor): ...this new function... - (access_failure_info::add_fixit_hint): ...and this new function. - (finish_class_member_access_expr): Split out "has no member named" - error-handling into... - (complain_about_unrecognized_member): ...this new function, and - check that the guessed name is accessible along the access path. - Only provide a spell-correction fix-it hint if it is; otherwise, - attempt to issue an accessor fix-it hint. - -2018-10-11 Nathan Sidwell - - * parser.c (cp_parser_translation_unit): Return void. Don't fail - at first extra }, simplify logic. - (c_parse_file): Call finish_translation_unit here. - -2018-10-11 Jakub Jelinek - - PR c++/87582 - * typeck.c (maybe_warn_about_returning_address_of_local): If - whats_returned is a structured binding identifier and the structured - binding is a reference, recurse on its initializer. - - PR c++/87547 - * rtti.c (get_tinfo_decl_dynamic): Use unlowered_expr_type instead - of TREE_TYPE. - -2018-10-10 Marek Polacek - - PR c++/87567 - constexpr rejects call to non-constexpr function. - * constexpr.c (potential_constant_expression_1) : Return - true if the condition is always false. - : Likewise. - -2018-10-09 Paolo Carlini - - PR c++/84423 - * pt.c (convert_template_argument): Immediately return error_mark_node - if the second argument is erroneous. - * parser.c (cp_parser_type_id): Add location_t * parameter. - (cp_parser_type_id_1): Likewise. - (cp_parser_alias_declaration): Adjust cp_parser_type_id call, - obtain the location of the type and save it. - (cp_parser_template_type_arg): Adjust. - (cp_parser_trailing_type_id): Likewise. - * decl.c (grokdeclarator): Improve error message for 'auto' in - alias declaration. - -2018-10-08 Paolo Carlini - - PR c++/71128 - * pt.c (do_decl_instantiation): Per 12.6.8/5, a concept cannot be - explicitly instantiated. - -2018-10-05 David Malcolm - - PR c++/56856 - * call.c (build_over_call): Build a vec of locations of the - arguments before the call to maybe_constant_value, and pass to - check_function_arguments. - * cp-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Define as - c_get_substring_location. - * parser.c (cp_parser_string_literal): Capture string - concatenation locations. - -2018-10-04 Nathan Sidwell - - * lang-specs.h: Use string contatenation, not line splicing. - -2018-10-03 Jason Merrill - - Implement P0840, language support for empty objects. - * tree.c (handle_no_unique_addr_attribute): New. - (cxx_attribute_table): Add [[no_unique_address]]. - * class.c (field_poverlapping_p): New. - (layout_class_type): Check it. Adjust DECL_SIZE of potentially - overlapping fields. - (layout_empty_base_or_field): Rename from layout_empty_base, handle - FIELD_DECL as well. - (build_base_field, record_subobject_offsets): Adjust. - -2018-10-03 Martin Liska - - PR gcov-profile/86109 - * parser.c (cp_parser_lambda_declarator_opt): - Set DECL_LAMBDA_FUNCTION for lambdas. - -2018-10-02 Richard Biener - - * name-lookup.c (check_local_shadow): Do not test DECL_FROM_INLINE. - -2018-09-28 Eric Botcazou - Pierre-Marie de Rodat - - * method.c (use_thunk): Adjust call to cgraph_node::create_thunk. - -2018-09-28 Richard Biener - - * error.c (cp_print_error_function): Simplify by eliding - the BLOCK_ABSTRACT_ORIGIN chasing. - -2018-09-27 Paolo Carlini - - PR c++/84940 - * semantics.c (finish_unary_op_expr): Check return value of - build_x_unary_op for error_mark_node. - -2018-09-25 Jakub Jelinek - - PR c++/87398 - * constexpr.c (cxx_eval_constant_expression) : Only - look through COMPONENT_REFs with DECL_FIELD_IS_BASE FIELD_DECLs. - -2018-09-25 Martin Liska - - * name-lookup.c (namespace_scope_ht_size): Remove - unused function. - * parser.c (cp_lexer_next_token_is_not_keyword): Likewise. - -2018-09-24 Paolo Carlini - - PR c++/85070 - * method.c (lazily_declare_fn): During error-recovery add_method - may return false. - -2018-09-21 Marek Polacek - - PR c++/87372 - __func__ constexpr evaluation. - * constexpr.c (maybe_constant_init_1): Pass false for strict down to - cxx_eval_outermost_constant_expr. - -2018-09-20 Marek Polacek - - PR c++/87109 - wrong ctor with maybe-rvalue semantics. - * call.c (build_user_type_conversion_1): Refine the maybe-rvalue - check to only return if we're converting the return value to a base - class. - -2018-09-20 Allan Sandfeld Jensen - - * g++spec.c (lang_specific_driver): Handle -r like -nostdlib. - -2018-09-20 Jason Merrill - - PR c++/87075 - ICE with constexpr array initialization. - * constexpr.c (cxx_eval_vec_init_1): Handle trivial initialization. - -2018-09-19 Marek Polacek - - Add -Wclass-conversion. - * decl.c (grok_op_properties): Change a warning from -Wconversion to - -Wclass-conversion. Make it print the types. - -2018-09-19 Paolo Carlini - - PR c++/87324 - * parser.c (cp_parser_initializer_list): Assign error_mark_node - to the index upon error. - -2018-09-19 Marek Polacek - - PR c++/87357 - missing -Wconversion warning - * decl.c (grok_op_properties): Remove diagnostic parts mentioning - a conversion to a reference to void. Use - same_type_ignoring_top_level_qualifiers_p rather than comparing types - directly. - -2018-09-18 Marek Polacek - - P1064R0 - Allowing Virtual Function Calls in Constant Expressions - * call.c (build_over_call): No longer check if we're outside a template - function. - * class.c (build_vtbl_initializer): Build vtable's constructor with - indexes. - * constexpr.c (cxx_eval_constant_expression): Don't ignore _vptr's - initializer. Handle OBJ_TYPE_REF. - (potential_constant_expression_1): Handle OBJ_TYPE_REF. - * decl.c (maybe_commonize_var): Bail out for any DECL_ARTIFICIAL. - (initialize_artificial_var): Mark the variable as constexpr. - (grokdeclarator): Change error to pedwarn. Only warn when - pedantic and not C++2a. - -2018-09-18 Paolo Carlini - - PR c++/85065 - * cp-tree.h (NON_ERROR): New. - * pt.c (auto_hash::hash): Use it. - (do_auto_deduction): Likewise. - -2018-09-18 Nathan Sidwell - - PR c++/86881 - * name-lookup.c (check_local_shadow): Ignore auto types. - -2018-09-17 David Malcolm - - * error.c (range_label_for_type_mismatch::get_text): Update for - new param. - -2018-09-13 Bernd Edlinger - - * typeck2.c (digest_init_r): Fix overlength strings. - -2018-09-13 Ville Voutilainen - - PR c++/87093 - * method.c (constructible_expr): We're in an unevaluated context - in all cases, not just for class targets. - -2018-09-12 David Malcolm - - PR c++/85110 - * call.c (struct conversion_info): Add "loc" field. - (arg_conversion_rejection): Add "loc" param, using it to - initialize the new field. - (bad_arg_conversion_rejection): Likewise. - (explicit_conversion_rejection): Initialize the new field to - UNKNOWN_LOCATION. - (template_conversion_rejection): Likewise. - (add_function_candidate): Pass on the argument location to the new - param of arg_conversion_rejection. - (add_conv_candidate): Likewise. - (build_builtin_candidate): Likewise. - (build_user_type_conversion_1): Likewise. - (single_z_candidate): New function. - (maybe_get_bad_conversion_for_unmatched_call): New function. - (complain_about_bad_argument): New function, based on part of - convert_for_assignment. - (build_new_method_call_1): Split out handling of the "no viable - candidates" case into... - (complain_about_no_candidates_for_method_call): ...this new - function, and use the new functions above to special-case the - handling of a single non-viable candidate due to a bad argument. - * cp-tree.h (complain_about_bad_argument): New decl. - * typeck.c (convert_for_assignment): Split out one error-handling - case into complain_about_bad_argument. - -2018-09-09 Cesar Philippidis - Julian Brown - - PR middle-end/86336 - * semantics.c (finish_omp_clauses): Treat C++ references the same in - OpenACC as OpenMP. - -2018-08-28 Martin Liska - - * constexpr.c (cxx_eval_call_expression): Add quotes - to -fconstexpr-depth=. - -2018-09-10 Marek Polacek - - * class.c (build_vtbl_ref): Remove. - (build_vtbl_ref_1): Rename to build_vtbl_ref. - (build_vfn_ref): Call build_vtbl_ref instead of build_vtbl_ref_1. - -2018-09-08 Marek Polacek - - PR c++/87150 - wrong ctor with maybe-rvalue semantics. - * call.c (struct conversion): Update commentary. - (standard_conversion): Set rvaluedness_matches_p if LOOKUP_PREFER_RVALUE - for ck_base. - -2018-09-08 Jason Merrill - - PR c++/86678 - constexpr function with non-constant after return. - * constexpr.c (potential_constant_expression_1): Add jump_target. - (breaks): Check for BREAK_STMT. - (continues): Check for CONTINUE_STMT. - -2018-09-08 Marek Polacek - - * cxx-pretty-print.c (cxx_pretty_printer::statement) : Handle RANGE_FOR_INIT_STMT. - -2018-09-07 Marek Polacek - - PR c++/87152 - range-based for loops with initializer broken in templates. - * constexpr.c (potential_constant_expression_1) : - Recur into RANGE_FOR_INIT_STMT. - * cp-tree.def: Add RANGE_FOR_INIT_STMT to RANGE_FOR_STMT. - * cp-tree.h (RANGE_FOR_INIT_STMT): Define. - * dump.c (cp_dump_tree) : Also dump - RANGE_FOR_INIT_STMT. - * pt.c (tsubst_expr) : Recur into - RANGE_FOR_INIT_STMT. - * semantics.c (begin_range_for_stmt): Adjust call to build_stmt. - Do put the init statement in RANGE_FOR_INIT_STMT. - (finish_range_for_decl): Pop it for templates. - -2018-09-06 Bernd Edlinger - - * decl.c (check_initializer): Call cp_complete_array_type. - -2018-09-05 Marek Polacek - - PR c++/87109, wrong overload with ref-qualifiers. - * call.c (build_user_type_conversion_1): Use NULL instead of 0. Bail - out if performing the maybe-rvalue overload resolution and a conversion - function is getting called. - - PR c++/86982, -Wreturn-local-addr and std::move and std::forward. - * typeck.c (maybe_warn_about_returning_address_of_local): Handle calls - to std::move or std::forward. - (is_std_forward_p): New function. - -2018-09-05 Pádraig Brady - - PR c++/87185 - * lambda.c (prune_lambda_captures): Protect against const_vars.get - returning NULL. - -2018-09-04 Marek Polacek - - * cp-tree.h (treat_lvalue_as_rvalue_p): Declare. - * except.c (build_throw): Use it. Use CP_TYPE_VOLATILE_P. - * typeck.c (treat_lvalue_as_rvalue_p): No longer static. Add PARM_OK - parameter. - (maybe_warn_pessimizing_move): Adjust treat_lvalue_as_rvalue_p call. - (check_return_expr): Likewise. - -2018-09-03 Paolo Carlini - - PR c++/84980 - * constraint.cc (finish_shorthand_constraint): Early return if the - constraint is erroneous. - -2018-09-02 Bernd Edlinger - - * decl.c (eval_check_narrowing): Remove. - (check_initializer): Move call to braced_list_to_string from here ... - * typeck2.c (store_init_value): ... to here. - (digest_init_r): Remove handing of signed/unsigned char strings. - -2018-08-31 Nathan Sidwell - - PR c++/87155 - PR c++/84707 - * name-lookup.c (name_lookup::search_namespace): Don't look at - inlines when searching for NULL names. - - * decl.c (decls_match): Remove SYSTEM_IMPLICIT_EXTERN_C matching - of return types and parms. - * parser.c (cp_parser_parameter_declaration_clause): Likewise, - '()' always means '(void)'. - -2018-08-29 Jakub Jelinek - - PR c++/87095 - * decl.c (begin_destructor_body): If current_class_type has - virtual bases and the primary base is nearly empty virtual base, - voidify clearing of vptr and make it conditional on in-charge - argument. - -2018-08-29 Paolo Carlini - - PR c++/85265 - * parser.c (cp_parser_introduction_list): If cp_parser_identifier - returns error_mark_node early exit the loop. - (cp_parser_template_introduction): Improve error-recovery, remove - error call about empty introduction-list. - -2018-08-29 David Malcolm - - PR c++/85110 - * call.c (print_conversion_rejection): Add "fn" param and use it - for "no known conversion" messages to underline the pertinent - param. - (print_z_candidate): Supply "fn" to the new param above. - -2018-08-29 Jakub Jelinek - - PR c++/87122 - * pt.c (tsubst_expr) : If - processing_template_decl and decl is structured binding decl, call - cp_finish_decomp. - -2018-08-28 Paolo Carlini - - PR c++/86546 - * decl.c (finish_case_label): If the type is erroneous early - return error_mark_node. - -2018-08-27 David Malcolm - - PR c++/63392 - * parser.c (cp_parser_diagnose_invalid_type_name): Add fix-it - hint. - -2018-08-27 Jakub Jelinek - - PR c++/86993 - * cp-tree.h (cxx_readonly_error): Add location_t argument. - * typeck2.c (cxx_readonly_error): Add LOC argument, pass it to - ERROR_FOR_ASSIGNMENT macro and readonly_error. Add LOC argument - to ERROR_FOR_ASSIGNMENT macro, use error_at instead of error and - pass LOC to it. Formatting fixes. - * typeck.c (cp_build_unary_op): Pass location to cxx_readonly_error. - (cp_build_modify_expr): Pass loc to cxx_readonly_error. - * semantics.c (finish_asm_stmt): Pass input_location to - cxx_readonly_error. - -2018-08-27 David Malcolm - - PR c++/87091 - * decl.c (grokdeclarator): Update for conversion of show_caret_p - to a tri-state. - * error.c (cp_printer): Likewise. - * name-lookup.c (maybe_suggest_missing_std_header): Update call to - maybe_add_include_fixit to suggest overriding the location, as it - is for a note. - * parser.c (cp_parser_string_literal): Update for conversion of - show_caret_p to a tri-state. - (cp_parser_elaborated_type_specifier): Likewise. - (set_and_check_decl_spec_loc): Likewise. - * pt.c (listify): Update call to maybe_add_include_fixit to not - override the location, as it is for an error. - * rtti.c (typeid_ok_p): Likewise. - -2018-08-27 Martin Liska - - * call.c (build_call_a): Use new function - fndecl_built_in_p and remove check for FUNCTION_DECL if - possible. - (build_cxx_call): Likewise. - * constexpr.c (constexpr_fn_retval): Likewise. - (cxx_eval_builtin_function_call): Likewise. - (cxx_eval_call_expression): Likewise. - (potential_constant_expression_1): Likewise. - * cp-gimplify.c (cp_gimplify_expr): Likewise. - (cp_fold): Likewise. - * decl.c (decls_match): Likewise. - (validate_constexpr_redeclaration): Likewise. - (duplicate_decls): Likewise. - (make_rtl_for_nonlocal_decl): Likewise. - * name-lookup.c (consider_binding_level): Likewise. - (cp_emit_debug_info_for_using): Likewise. - * semantics.c (finish_call_expr): Likewise. - * tree.c (builtin_valid_in_constant_expr_p): Likewise. - -2018-08-26 Marek Polacek - - PR c++/87080 - * typeck.c (maybe_warn_pessimizing_move): Do nothing in a template. - - PR c++/87029, Implement -Wredundant-move. - * typeck.c (treat_lvalue_as_rvalue_p): New function. - (maybe_warn_pessimizing_move): Call convert_from_reference. - Warn about redundant moves. - -2018-08-24 Marek Polacek - - PR c++/67012 - PR c++/86942 - * decl.c (grokdeclarator): Disallow functions with trailing return - type with decltype(auto) as its type. Also check the function if - it's inner declarator doesn't exist - -2018-08-21 Marek Polacek - - PR c++/86499 - * parser.c (cp_parser_lambda_introducer): Give error if a non-local - lambda has a capture-default. - -2018-08-21 Paolo Carlini - - * decl.c (check_static_variable_definition): Change to return void. - -2018-08-21 Marek Polacek - - PR c++/86981, Implement -Wpessimizing-move. - * typeck.c (decl_in_std_namespace_p): New. - (is_std_move_p): New. - (maybe_warn_pessimizing_move): New. - (can_do_nrvo_p): New, factored out of ... - (check_return_expr): ... here. Warn about potentially harmful - std::move in a return statement. - - PR c++/65043 - * call.c (standard_conversion): Set check_narrowing. - * typeck2.c (check_narrowing): Use CP_INTEGRAL_TYPE_P rather - than comparing with INTEGER_TYPE. - - * cp-tree.h: Fix typo. - -2018-08-20 David Malcolm - - PR other/84889 - * call.c (build_user_type_conversion_1): Add auto_diagnostic_group - instance(s). - (print_error_for_call_failure): Likewise. - (build_op_call_1): Likewise. - (build_conditional_expr_1): Likewise. - (build_new_op_1): Likewise. - (build_op_delete_call): Likewise. - (convert_like_real): Likewise. - (build_over_call): Likewise. - (build_new_method_call_1): Likewise. - (joust): Likewise. - * class.c (check_tag): Likewise. - (finish_struct_anon_r): Likewise. - (one_inherited_ctor): Likewise. - (finalize_literal_type_property): Likewise. - (explain_non_literal_class): Likewise. - (find_flexarrays): Likewise. - (resolve_address_of_overloaded_function): Likewise. - * constexpr.c (ensure_literal_type_for_constexpr_object): Likewise. - (is_valid_constexpr_fn): Likewise. - (cx_check_missing_mem_inits): Likewise. - * cp-gimplify.c (cp_genericize_r): Likewise. - * cvt.c (maybe_warn_nodiscard): Likewise. - * decl.c (warn_extern_redeclared_static): Likewise. - (check_redeclaration_exception_specification): Likewise. - (check_no_redeclaration_friend_default_args): Likewise. - (duplicate_decls): Likewise. - (redeclaration_error_message): Likewise. - (warn_misplaced_attr_for_class_type): Likewise. - * decl2.c (finish_static_data_member_decl): Likewise. - (no_linkage_error): Likewise. - (cp_warn_deprecated_use): Likewise. - * error.c (qualified_name_lookup_error): Likewise. - * friend.c (make_friend_class): Likewise. - (do_friend): Likewise. - * init.c (perform_member_init): Likewise. - (build_new_1): Likewise. - (build_vec_delete_1): Likewise. - (build_delete): Likewise. - * lex.c (unqualified_name_lookup_error): Likewise. - * name-lookup.c (check_extern_c_conflict): Likewise. - (inform_shadowed): New function. - (check_local_shadow): Add auto_diagnostic_group instances, - replacing goto "inform_shadowed" label with call to subroutine. - (set_local_extern_decl_linkage): Add auto_diagnostic_group - instance(s). - * parser.c (cp_parser_diagnose_invalid_type_name): Likewise. - (cp_parser_namespace_name): Likewise. - * pt.c (check_specialization_namespace): Likewise. - (check_template_variable): Likewise. - (warn_spec_missing_attributes): Likewise. - (check_explicit_specialization): Likewise. - (process_partial_specialization): Likewise. - (lookup_template_class_1): Likewise. - (finish_template_variable): Likewise. - (do_auto_deduction): Likewise. - * search.c (check_final_overrider): Likewise. - (look_for_overrides_r): Likewise. - * tree.c (maybe_warn_parm_abi): Likewise. - * typeck.c (cxx_sizeof_expr): Likewise. - (cp_build_function_call_vec): Likewise. - (cp_build_binary_op): Likewise. - (convert_for_assignment): Likewise. - (maybe_warn_about_returning_address_of_local): Likewise. - * typeck2.c (abstract_virtuals_error_sfinae): Likewise. - (check_narrowing): Likewise. - -2018-08-17 David Malcolm - - * typeck.c (string_conv_p): Extract location from EXP and use it - in preference to input_location when issuing warnings. - -2018-08-15 David Malcolm - - * call.c: Include "gcc-rich-location.h". - (convert_like_real): Add range label for "invalid conversion" - diagnostic. - (perform_implicit_conversion_flags): Add type label to the - "could not convert" error. - * error.c: Include "gcc-rich-location.h". - (range_label_for_type_mismatch::get_text): New function. - * typeck.c (convert_for_assignment): Add type label to - the "cannot convert" error if a location is available. - -2018-08-15 Paolo Carlini - - * decl.c (check_previous_goto_1): When decl_jump_unsafe returns 2 - emit an error instead of a permerror. - -2018-08-13 Marek Polacek - - PR c++/57891 - * call.c (struct conversion): Add check_narrowing_const_only. - (build_converted_constant_expr): Set check_narrowing and - check_narrowing_const_only. Give error if expr is error node. - (convert_like_real): Pass it to check_narrowing. - * cp-tree.h (check_narrowing): Add a default parameter. - * decl.c (compute_array_index_type): Use input_location instead of - location_of. - * pt.c (convert_nontype_argument): Return NULL_TREE if tf_error. - * typeck2.c (check_narrowing): Don't warn for instantiation-dependent - expressions. Call maybe_constant_value instead of - fold_non_dependent_expr. Don't mention { } in diagnostic. Only check - narrowing for constants if CONST_ONLY. - -2018-08-13 Martin Sebor - - PR tree-optimization/71625 - * decl.c (check_initializer): Call braced_list_to_string. - (eval_check_narrowing): New function. - * gcc/cp/typeck2.c (digest_init_r): Accept strings literals - as initilizers for all narrow character types. - -2018-08-13 Marek Polacek - - P0806R2 - Deprecate implicit capture of this via [=] - * lambda.c (add_default_capture): Formatting fixes. Warn about - deprecated implicit capture of this via [=]. - - PR c++/86915 - * decl.c (create_array_type_for_decl): Handle null name. - -2018-08-10 Jason Merrill - - PR c++/86728 - C variadic generic lambda. - * parser.c (cp_parser_parameter_declaration): Don't turn 'auto' into - a pack if it's followed by a declarator-id. - -2018-08-08 Jakub Jelinek - - P0595R1 - is_constant_evaluated - * cp-tree.h (enum cp_built_in_function): New. - (maybe_constant_init): Add pretend_const_required argument. - * typeck2.c (store_init_value): Pass true as new argument to - maybe_constant_init. - * constexpr.c (constexpr_fn_retval): Check also DECL_BUILT_IN_CLASS - for BUILT_IN_UNREACHABLE. - (struct constexpr_ctx): Add pretend_const_required field. - (cxx_eval_builtin_function_call): Use DECL_IS_BUILTIN_CONSTANT_P - macro. Handle CP_BUILT_IN_IS_CONSTANT_EVALUATED. Check also - DECL_BUILT_IN_CLASS for BUILT_IN_UNREACHABLE. - (cxx_eval_outermost_constant_expr): Add pretend_const_required - argument, initialize pretend_const_required field in ctx. If the - result is TREE_CONSTANT and non_constant_p, retry with - pretend_const_required false if it was true. - (is_sub_constant_expr): Initialize pretend_const_required_field in - ctx. - (cxx_constant_value): Pass true as pretend_const_required to - cxx_eval_outermost_constant_expr. - (maybe_constant_value): Pass false as pretend_const_required to - cxx_eval_outermost_constant_expr. - (fold_non_dependent_expr): Likewise. - (maybe_constant_init_1): Add pretend_const_required argument, pass it - down to cxx_eval_outermost_constant_expr. Pass !allow_non_constant - instead of false as strict to cxx_eval_outermost_constant_expr. - (maybe_constant_init): Add pretend_const_required argument, pass it - down to maybe_constant_init_1. - (cxx_constant_init): Pass true as pretend_const_required to - maybe_constant_init_1. - * cp-gimplify.c (cp_gimplify_expr): Handle CALL_EXPRs to - CP_BUILT_IN_IS_CONSTANT_EVALUATED. - (cp_fold): Don't fold CP_BUILT_IN_IS_CONSTANT_EVALUATED calls. - * decl.c: Include langhooks.h. - (cxx_init_decl_processing): Register __builtin_is_constant_evaluated - built-in. - * tree.c (builtin_valid_in_constant_expr_p): Return true for - CP_BUILT_IN_IS_CONSTANT_EVALUATED. - * pt.c (declare_integer_pack): Initialize DECL_FUNCTION_CODE. - - PR c++/86836 - * pt.c (tsubst_expr): For structured bindings, call tsubst_decomp_names - before tsubst_init, not after it. - - PR c++/86738 - * constexpr.c (cxx_eval_binary_expression): For arithmetics involving - NULL pointer set *non_constant_p to true. - (cxx_eval_component_reference): For dereferencing of a NULL pointer, - set *non_constant_p to true and return t. - -2018-08-07 Paolo Carlini - - PR c++/59480, DR 136 - * decl.c (check_no_redeclaration_friend_default_args): New. - (duplicate_decls): Use the latter; also check that a friend - declaration specifying default arguments is a definition. - -2018-08-07 Ville Voutilainen - - PR c++/79133 - * name-lookup.c (check_local_shadow): Reject captures and parameters - with the same name. - -2018-08-06 Marek Polacek - - PR c++/86767 - * constexpr.c (cxx_eval_statement_list): Handle continue. - -2018-08-03 David Malcolm - Jonathan Wakely - - * decl.c: Include "gcc-rich-location.h". - (add_return_star_this_fixit): New function. - (finish_function): When warning about missing return statements in - functions returning non-void, add a "return *this;" fix-it hint for - assignment operators. - -2018-08-03 Jason Merrill - - PR c++/86706 - * class.c (build_base_path): Use currently_open_class. - -2018-08-02 David Malcolm - - * error.c (cxx_print_error_function): Duplicate "file" before - passing it to pp_set_prefix. - (cp_print_error_function): Use pp_take_prefix when saving the - existing prefix. - -2018-08-02 Richard Biener - - PR c++/86763 - * class.c (layout_class_type): Copy TYPE_TYPELESS_STORAGE - to the CLASSTYPE_AS_BASE. - -2018-08-01 Martin Sebor - - PR tree-optimization/86650 - * error.c (cp_printer): Move usage of EXPR_LOCATION (t) and - TREE_BLOCK (t) from within percent_K_format to this callsite. - -2018-08-01 Paolo Carlini - - PR c++/86661 - * class.c (note_name_declared_in_class): Use location_of in permerror - instead of DECL_SOURCE_LOCATION (for OVERLOADs). - -2018-07-31 Tom de Vries - - PR debug/86687 - * optimize.c (update_cloned_parm): Copy DECL_BY_REFERENCE. - -2018-07-31 Jakub Jelinek - - P1008R1 - prohibit aggregates with user-declared constructors - * class.c (check_bases_and_members): For C++2a set - CLASSTYPE_NON_AGGREGATE based on TYPE_HAS_USER_CONSTRUCTOR rather than - type_has_user_provided_or_explicit_constructor. - -2018-07-31 Martin Liska - - PR c++/86653 - * parser.c (cp_parser_condition): Initialize non_constant_p - to false. - -2018-07-28 David Malcolm - - * error.c (cp_printer): In the leading comment, move "%H" and "%I" - into alphabetical order, and add missing "%G" and "%K". Within - the switch statement, move cases 'G', 'H', 'I' and 'K' so that the - cases are in alphabetical order. - -2018-07-25 Jakub Jelinek - - * cp-tree.h (enum cp_tree_index): Add - CPTI_{ABI_TAG,ALIGNED,BEGIN,END,GET,TUPLE_{ELEMENT,SIZE}}_IDENTIFIER - and CPTI_{GNU,TYPE,VALUE,FUN,CLOSURE}_IDENTIFIER. - (abi_tag_identifier, aligned_identifier, begin_identifier, - end_identifier, get__identifier, gnu_identifier, - tuple_element_identifier, tuple_size_identifier, type_identifier, - value_identifier, fun_identifier, closure_identifier): Define. - * decl.c (initialize_predefined_identifiers): Initialize the above - identifiers. - (get_tuple_size): Use tuple_size_identifier instead of - get_identifier ("tuple_size") and value_identifier instead of - get_identifier ("value"). - (get_tuple_element_type): Use tuple_element_identifier instead of - get_identifier ("tuple_element") and type_identifier instead of - get_identifier ("type"). - (get_tuple_decomp_init): Use get__identifier instead of - get_identifier ("get"). - * lambda.c (maybe_add_lambda_conv_op): Use fun_identifier instead of - get_identifier ("_FUN"). - * parser.c (cp_parser_lambda_declarator_opt): Use closure_identifier - instead of get_identifier ("__closure"). - (cp_parser_std_attribute): Use gnu_identifier instead of - get_identifier ("gnu"). - (cp_parser_std_attribute_spec): Likewise. Use aligned_identifier - instead of get_identifier ("aligned"). - * class.c (check_abi_tags, inherit_targ_abi_tags): Use - abi_tag_identifier instead of get_identifier ("abi_tag"). - - PR c++/85515 - * cp-tree.h (enum cp_tree_index): Add - CPTI_FOR_{RANGE,BEGIN,END}{,_}_IDENTIFIER. - (for_range__identifier, for_begin__identifier, for_end__identifier, - for_range_identifier, for_begin_identifier, for_end_identifier): - Define. - * decl.c (initialize_predefined_identifiers): Initialize - for_{range,begin,end}{,_}_identifier. - * parser.c (build_range_temp): Use for_range__identifier instead of - get_identifier ("__for_range"). - (cp_convert_range_for): Use for_begin__identifier and - for_end__identifier instead of get_identifier ("__for_begin") and - get_identifier ("__for_end"). - * semantics.c (finish_for_stmt): Rename "__for_{range,begin,end} " - local symbols to "__for_{range,begin,end}". - -2018-07-23 Jakub Jelinek - - PR c++/86569 - * cp-gimplify.c (cp_fold): Don't fold comparisons into other kind - of expressions other than INTEGER_CST regardless of TREE_NO_WARNING - or warn_nonnull_compare. - -2018-07-19 Paolo Carlini - - Revert fix for c++/59480 (and testsuite followup) - - 2019-07-18 Paolo Carlini - - PR c++/59480, DR 136 - * decl.c (check_no_redeclaration_friend_default_args): New. - (duplicate_decls): Use the latter; also check that a friend - declaration specifying default arguments is a definition. - -2018-07-18 Jakub Jelinek - - PR c++/86550 - * parser.c (cp_parser_decl_specifier_seq): Diagnose invalid type - specifier if CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR. - -2018-07-18 Marek Polacek - - PR c++/86190 - bogus -Wsign-conversion warning - * typeck.c (cp_build_binary_op): Fix formatting. Add a warning - sentinel. - -2018-07-18 Paolo Carlini - - PR c++/59480, DR 136 - * decl.c (check_no_redeclaration_friend_default_args): New. - (duplicate_decls): Use the latter; also check that a friend - declaration specifying default arguments is a definition. - -2018-07-18 Paolo Carlini - - * class.c (note_name_declared_in_class): Prefer permerror + inform - to a pair of permerrors; use DECL_SOURCE_LOCATION. - -2018-07-18 Richard Biener - - PR debug/86523 - * decl2.c (c_parse_final_cleanups): Call write_out_vars before - start_static_storage_duration_function sets current_function_decl. - -2018-07-17 Jason Merrill - - PR c++/86480 - nested variadic lambda and constexpr if. - * pt.c (find_parameter_packs_r) [IF_STMT]: Don't walk into - IF_STMT_EXTRA_ARGS. - * tree.c (cp_walk_subtrees) [DECLTYPE_TYPE]: Set - cp_unevaluated_operand. - [ALIGNOF_EXPR] [SIZEOF_EXPR] [NOEXCEPT_EXPR]: Likewise. - -2018-07-16 Paolo Carlini - - * class.c (resolve_address_of_overloaded_function): Don't emit an - inform if the matching permerror returns false. - * pt.c (check_specialization_namespace): Likewise. - -2018-07-16 Jakub Jelinek - - PR c++/3698 - PR c++/86208 - * cp-gimplify.c (cp_genericize_r): When using extern_decl_map, or - in TREE_USED flag from stmt to h->to. - -2018-07-13 Nathan Sidwell - - PR c++/86374 - * pt.c (lookup_template_class_1): Use tsubst_aggr_type for - contexts that are classes. - * parser.c (cp_parser_template_id): Combine entering_scope decl & - initializer. - -2018-07-12 Jakub Jelinek - - * decl2.c (cplus_decl_attributes): Don't diagnose vars without mappable - type here, instead add "omp declare target implicit" attribute. Add - that attribute instead of "omp declare target" also when - processing_template_decl. - * decl.c (cp_finish_decl): Diagnose vars without mappable type here, - and before calling cp_omp_mappable_type call complete_type. - -2018-07-10 Jakub Jelinek - - PR sanitizer/86406 - * cp-gimplify.c (cp_maybe_instrument_return): Skip trailing - DEBUG_BEGIN_STMTs. - - PR c++/86443 - * semantics.c (handle_omp_for_class_iterator): Remove lastp argument, - instead of setting *lastp turn orig_declv elt into a TREE_LIST. - (finish_omp_for): Adjust handle_omp_for_class_iterator caller. - * pt.c (tsubst_omp_for_iterator): Allow OMP_FOR_ORIG_DECLS to contain - TREE_LIST for both the original class iterator and the "last" helper - var. - -2018-07-09 Paolo Carlini - - * decl.c (grokdeclarator): Use rich_location::add_range in three - more places; include gcc-rich-location.h. - -2018-07-07 Aldy Hernandez - - * decl.c (build_enumerator): Change overflow type to overflow_type. - * init.c (build_new_1): Same. - -2018-07-05 Nathan Sidwell - - * cp/decl.c (decls_match): Check SYSTEM_IMPLICIT_EXTERN_C not - NO_IMPLICIT_EXTERN_C. - * cp/parser.c (cp_parser_parameter_declaration_clause): Likewise. - -2018-07-04 Ville Voutilainen - - PR c++/86398 - * method.c (is_trivially_xible): Return false - if is_xible_helper returns a NULL_TREE. - -2018-07-03 Paolo Carlini - - * decl.c (min_location): New. - (smallest_type_quals_location): Use the latter. - (check_concept_fn): Use DECL_SOURCE_LOCATION. - (grokdeclarator): Use accurate locations in a number of error - messages involving ds_thread, ds_storage_class, ds_virtual, - ds_constexpr, ds_typedef and ds_friend; exploit min_location. - -2018-07-03 Marek Polacek - - PR c++/86201 - * typeck.c (cp_build_binary_op): Check c_inhibit_evaluation_warnings. - -2018-07-03 Jason Merrill - - PR c++/86378 - functional cast in noexcept-specifier. - * tree.c (strip_typedefs_expr) [TREE_LIST]: Fix iteration. - -2018-07-02 Paolo Carlini - - * parser.c (set_and_check_decl_spec_loc): Use rich_location::add_range - in error message about __thread and thread_local at the same time. - -2018-06-29 Marek Polacek - - PR c++/86184 - * tree.c (cp_save_expr): Don't call save_expr for TARGET_EXPRs. - -2018-06-28 David Malcolm - - * parser.c (cp_parser_error_1): After issuing a conflict marker - error, consume tokens until the end of the source line. - -2018-06-28 Jason Merrill - - PR c++/86342 - -Wdeprecated-copy and system headers. - * decl2.c (cp_warn_deprecated_use): Don't warn about declarations - in system headers. - -2018-06-27 David Malcolm - - PR c++/86329 - * name-lookup.c (consider_binding_level): Filter out names that - match anon_aggrname_p. - -2018-06-27 Jason Merrill - - * name-lookup.c (do_pushtag): If we skip a class level, also skip - its template level. - -2018-06-26 Jason Merrill - - PR c++/86320 - memory-hog with std::array of pair - * typeck2.c (process_init_constructor_array): Only compute a - constant initializer once. - - PR c++/80290 - memory-hog with std::pair. - * pt.c (fn_type_unification): Add convs parameter. - (check_non_deducible_conversion): Remember conversion. - (check_non_deducible_conversions): New. Do checks here. - (type_unification_real): Not here. Remove flags parm. - * call.c (add_function_candidate): Make convs a parameter. - Don't recalculate the conversion if it's already set. - (add_template_candidate_real): Allocate convs here. - (good_conversion, conv_flags): New. - -2018-06-26 Jakub Jelinek - - PR c++/86291 - * parser.c (cp_parser_omp_for_loop_init): Change for_block argument - type from vec * to vec *&. - -2018-06-23 Paolo Carlini - - * decl.c (bad_specifiers): Add const location_t* parameter and - use locations in error messages about 'inline' and 'virtual'. - (mark_inline_variable): Add location_t parameter and use it in - error_at and pedwarn messages. - (grokdeclarator): Use declspecs->locations[ds_constexpr], - declspecs->locations[ds_concept], declspecs->locations[ds_virtual], - declspecs->locations[ds_inline] in many error messages; adjust - bad_specifiers and mark_inline_variable calls. - (grokvardecl): Use declspecs->locations[ds_concept] in error message. - -2018-06-22 Jason Merrill - - PR c++/86219 - ICE with erroneous initializer in template. - * constexpr.c (fold_non_dependent_expr): Add complain parm. - * call.c, expr.c, init.c, pt.c, semantics.c, typeck.c, typeck2.c: - Pass it. - * call.c (build_cxx_call): Don't mess with builtins in a template. - * typeck2.c (store_init_value): If fold_non_dependent_expr didn't - produce a constant value, go back to the uninstantiated form. - - Avoid taking the address of something just because it's in parens. - * constexpr.c (same_type_ignoring_tlq_and_bounds_p): New. - (cxx_fold_indirect_ref): Use it. - (cxx_eval_constant_expression) [VIEW_CONVERT_EXPR]: Use it. - * cp-tree.h (REF_PARENTHESIZED_P): Allow VIEW_CONVERT_EXPR. - * semantics.c (force_paren_expr): Use VIEW_CONVERT_EXPR instead of - static_cast to reference type. - (maybe_undo_parenthesized_ref): Handle VIEW_CONVERT_EXPR. - -2018-06-21 Jason Merrill - - * pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Use TEMPLATE_PARM_DESCENDANTS. - - * name-lookup.c (do_push_to_top_level): Don't allocate - current_lang_base. - (do_pop_from_top_level): Release current_lang_base. - - Let -fmem-report see callers of cxx_make_type. - * lex.c (cxx_make_type): Add MEM_STAT_DECL. - (make_class_type): Likewise. - (cxx_make_type_hook): New. - * cp-objcp-common.h (LANG_HOOKS_MAKE_TYPE): Use cxx_make_type_hook. - -2018-06-20 Nathan Sidwell - - PR c++/85634 - * friend.c (add_friend): Keep lookup sets of tempate sets. - -2018-06-20 Paolo Carlini - - * decl.c (grokfndecl): Add const cp_decl_specifier_seq* parameter; - tidy handling of a null location_t argument; use proper location - information in a few additional error messages. - (grokdeclarator): Update calls. - -2018-06-20 Chung-Lin Tang - Thomas Schwinge - Cesar Philippidis - - * parser.c (cp_parser_omp_clause_name): Add support for finalize - and if_present. Make present_or_{copy,copyin,copyout,create} aliases - to their non-present_or_* counterparts. Make 'self' an alias to - PRAGMA_OACC_CLAUSE_HOST. - (cp_parser_oacc_data_clause): Update GOMP mappings for - PRAGMA_OACC_CLAUSE_{COPY,COPYIN,COPYOUT,CREATE,DELETE}. Remove - PRAGMA_OACC_CLAUSE_{SELF,PRESENT_OR_*}. - (cp_parser_oacc_all_clauses): Handle finalize and if_present clauses. - Remove support for present_or_* clauses. - (OACC_KERNELS_CLAUSE_MASK): Remove PRESENT_OR_* clauses. - (OACC_PARALLEL_CLAUSE_MASK): Likewise. - (OACC_DECLARE_CLAUSE_MASK): Likewise. - (OACC_DATA_CLAUSE_MASK): Likewise. - (OACC_ENTER_DATA_CLAUSE_MASK): Remove PRESENT_OR_* clauses. - (OACC_EXIT_DATA_CLAUSE_MASK): Add FINALIZE clause. - (OACC_UPDATE_CLAUSE_MASK): Remove SELF, add IF_PRESENT. - (cp_parser_oacc_declare): Remove PRESENT_OR_* clauses. - * pt.c (tsubst_omp_clauses): Handle IF_PRESENT and FINALIZE. - * semantics.c (finish_omp_clauses): Handle IF_PRESENT and FINALIZE. - -2018-06-20 Marek Polacek - - PR c++/86240 - * constexpr.c (cxx_eval_constant_expression): Handle ABSU_EXPR. - (fold_simple_1): Likewise. - * error.c (dump_expr): Likewise. - -2018-06-20 Nathan Sidwell - - PR c++/85634 - * cp-tree.h (lookup_keep): Drop KEEP parm. - (lookup_list_keep): Delete. - (maybe_get_fns): Declare. - * parser.c (cp_parser_primary_expression): Call lookup_keep here. - (cp_parser_template_id): Not here ... - * decl.c (cp_finish_decl): ... nor here ... - * init.c (build_raw_new_expr): ... nor here ... - * pt.c (process_template_parm): ... nor here ... - * semantics.c (perform_koenig_lookup): Call lookup_keep. - (finish_call_expr): Not here. - * tree.c (ovl_cache): Delete. - (ovl_make, ovl_copy): No cache. - (lookup_keep): Always keep. - (lookup_list_keep): Delete. - (maybe_get_fns): New, broken out of ... - (get_fns): ... here. Call it. - (built_min_nt_loc, build_min, build_min_non_dep): Drop lookup_keep. - (build_min_nt_call_vec): Likewise. - -2018-06-19 Jason Merrill - - * cp-tree.h (CONSTRUCTOR_NO_IMPLICIT_ZERO): Remove. - * constexpr.c: Use CONSTRUCTOR_NO_CLEARING instead. - - PR c++/86182 - ICE with anonymous union passed to template. - * pt.c (tsubst_expr) [DECL_EXPR]: Handle an anonymous union type - used to declare a named variable. - -2018-06-18 Jason Merrill - - * tree.c (cp_expr_location): New. - * cp-tree.h (cp_expr_loc_or_loc): New. - * call.c, cvt.c, constexpr.c, constraint.cc, cp-gimplify.c, decl.c, - error.c, init.c, lex.c, parser.c, pt.c, semantics.c, typeck.c, - typeck2.c: Use it instead of EXPR_LOC_OR_LOC. - - * parser.c (cp_parser_lambda_expression): Use a range for - LAMBDA_EXPR_LOCATION. - - PR c++/86200 - ICE with unexpanded pack in lambda parameter. - * pt.c (find_parameter_packs_r) [LAMBDA_EXPR]: Also look into the - function type. - - PR c++/81060 - ICE with unexpanded parameter pack. - * pt.c (check_for_bare_parameter_packs): Add loc parameter. - * decl.c (grokdeclarator): Call it for qualifying_scope. - - PR c++/86171 - ICE with recursive alias instantiation. - * pt.c (tsubst_decl): Handle recursive alias instantiation. - -2018-06-18 Paolo Carlini - - * decl.c (duplicate_decls): Consistently use DECL_SOURCE_LOCATION - in errors about redefined default arguments; tidy. - -2018-06-16 Kugan Vivekanandarajah - - * constexpr.c (potential_constant_expression_1): Handle ABSU_EXPR. - * cp-gimplify.c (cp_fold): Likewise. - -2018-06-15 Jason Merrill - - PR c++/86147 - wrong capture for template argument. - * expr.c (mark_use): Look through NOP_EXPR. - - * name-lookup.c (do_pushtag): Don't look through complete types, but - don't add to them either. Get context from current_binding_level. - * pt.c (tsubst_default_argument): Use push_to/pop_from_top_level. - - * decl.c (start_enum): Do compare dependent underlying type. - - PR c++/82882 - ICE with lambda in template default argument. - * lambda.c (record_null_lambda_scope): New. - * pt.c (tsubst_lambda_expr): Use it. - * name-lookup.c (do_pushtag): Don't give a lambda DECL_CONTEXT of a - function that isn't open. - - * tree.c (maybe_warn_parm_abi): Inform the location of the class. - -2018-06-14 Marek Polacek - - PR c++/86063 - * decl2.c (cp_check_const_attributes): Skip trees that are not - TREE_LISTs. - -2018-06-14 Jakub Jelinek - - P0624R2 - Default constructible and assignable stateless lambdas - * method.c (synthesized_method_walk): For C++2a don't mark - sfk_constructor or sfk_copy_assignment as deleted if lambda has - no lambda-captures. - -2018-06-14 Paolo Carlini - - * decl.c (duplicate_decls): Use DECL_SOURCE_LOCATION in - OPT_Wshadow warning_at. - (grokfndecl): Consistently use the location_t argument in - literal operator diagnostic messages. - (grokdeclarator): Use declspecs->locations[ds_storage_class] - in error_at call. - * decl2.c (finish_static_data_member_decl): Use DECL_SOURCE_LOCATION - in permerror call. - -2018-06-13 Jason Merrill - - PR c++/86099 - ICE with trivial copy and non-trivial default ctor. - * constexpr.c (instantiate_cx_fn_r): Don't synthesize trivial - constructors. - - PR c++/86094 - wrong code with defaulted move ctor. - * class.c (classtype_has_non_deleted_move_ctor): New. - * tree.c (maybe_warn_parm_abi, type_has_nontrivial_copy_init): - Handle v12 breakage. - -2018-06-12 Jason Merrill - - PR c++/86098 - ICE with template placeholder for TTP. - * typeck.c (structural_comptypes) [TEMPLATE_TYPE_PARM]: Check - CLASS_PLACEHOLDER_TEMPLATE. - -2018-06-12 Paolo Carlini - - * decl2.c (coerce_new_type, coerce_delete_type): Add location_t - parameter and adjust error_at calls. - * decl.c (grok_op_properties): Adjust calls. - * cp-tree.h (oerce_new_type, coerce_delete_type): Adjust decls. - -2018-06-12 Marek Polacek - - Core issue 1331 - const mismatch with defaulted copy constructor - * class.c (check_bases_and_members): When checking a defaulted - function, mark it as deleted rather than giving an error. - -2018-06-11 Jason Merrill - - PR c++/85792 -Wctor-dtor-privacy and inherited constructor. - * class.c (maybe_warn_about_overly_private_class): Handle inherited - constructors. - - PR c++/85963 - -Wunused-but-set with ?: in template. - * pt.c (tsubst_copy_and_build) [COND_EXPR]: Call mark_rvalue_use. - -2018-06-11 Paolo Carlini - - * decl.c (grok_op_properties): Consistently use the location - of the decl; remove special casing of POSTINCREMENT_EXPR and - POSTDECREMENT_EXPR wrt default arguments. - -2018-06-05 Jason Merrill - - * constexpr.c (cxx_eval_binary_expression): Special case comparison - of pointers to members of the same union. - -2018-06-11 Jason Merrill - - PR c++/86094 - wrong code with defaulted move ctor. - * tree.c (type_has_nontrivial_copy_init): Fix move ctor handling. - -2018-06-10 Paolo Carlini - - * decl.c (grokfndecl): Use the location_t argument in two more places. - -2018-06-06 Marek Polacek - - PR c++/85977 - * pt.c (unify): If ELTTYPE has no deducible template parms, skip - deduction from the list elements. - (type_unification_real): Check convertibility of list elements. - -2018-06-06 Jason Merrill - - PR c++/86060 - ICE on range for with -std=c++98. - * parser.c (cp_parser_init_statement): Don't clobber *decl after - pedwarn. - - PR c++/85710 - ICE with -Wmemset-elt-size. - * semantics.c (finish_call_expr): Call warn_for_memset here. - * parser.c (cp_parser_postfix_expression): Not here. - (literal_integer_zerop): No longer static. - * pt.c (build_non_dependent_expr): Don't wrap CONST_DECL. - -2018-06-05 Marek Polacek - - PR c++/85976 - * tree.c (cp_tree_equal): Handle USING_DECL. - -2018-06-05 Jason Merrill - - PR c++/85731 - wrong error with qualified-id in template. - * semantics.c (finish_qualified_id_expr): build_qualified_name - for unbound names in the current class. - -2018-06-04 Jason Merrill - - PR c++/61806 - missed SFINAE with partial specialization. - * cp-tree.h (deferring_access_check_sentinel): Add deferring_kind - parameter to constructor. - * pt.c (instantiate_class_template_1): Enable access checking - before call to most_specialized_partial_spec. - - PR c++/85765 - SFINAE and non-type default template arg. - * pt.c (type_unification_real): Do full semantic processing if - substituting a partial args list replaces all template parms. - -2018-06-03 Jason Merrill - - PR c++/85739 - ICE with pointer to member template parm. - * cvt.c (perform_qualification_conversions): Use cp_fold_convert. - -2018-06-02 Jason Merrill - - PR c++/85761 - ICE with ill-formed use of const outer variable. - * expr.c (mark_use): Handle location wrappers. - -2018-06-01 Jason Merrill - - PR c++/85764 - bogus 'this' not captured error. - * lambda.c (resolvable_dummy_lambda): Use nonlambda_method_basetype. - (nonlambda_method_basetype): Handle NSDMI. - - CWG 1581: When are constexpr member functions defined? - * constexpr.c (instantiate_cx_fn_r, instantiate_constexpr_fns): New. - (cxx_eval_outermost_constant_expr): Call instantiate_constexpr_fns. - - PR c++/58281 - explicit instantiation of constexpr - * pt.c (mark_decl_instantiated): Clear DECL_EXTERNAL. - - * pt.c (instantiate_decl): Any defaulted function is defined. - -2018-05-30 Jonathan Wakely - - PR c++/77777 - * call.c (resolve_args): Use location of expression, not current input - location. - -2018-05-30 Ville Voutilainen - - Do not warn about zero-as-null when NULL is used. - * call.c (conversion_null_warnings): Check for pointer - types converted from zero constants. - (convert_like_real): Add a warning sentinel at the end. - * tree.c (maybe_warn_zero_as_null_pointer_constant): Also - check null_node_p. - -2018-05-30 Jason Merrill - - PR c++/85807 - ICE with call in template NSDMI. - * init.c (get_nsdmi): Use push_to/pop_from_top_level. - * tree.c (bot_manip): Don't set_flags_from_callee in a template. - - PR c++/85873 - constant initializer_list array not in .rodata. - * tree.c (build_target_expr): Set TREE_READONLY. - * call.c (set_up_extended_ref_temp): Set TREE_READONLY. - - * parser.c (cp_parser_check_condition_declarator): Handle - cp_error_declarator. - -2018-05-30 Jonathan Wakely - - * typeck.c (cxx_sizeof_or_alignof_type): Return size_one_node instead - of using it in dead store. - -2018-05-29 Jason Merrill - - PR c++/67445 - returning temporary initializer_list. - PR c++/67711 - assigning from temporary initializer_list. - PR c++/48562 - new initializer_list. - * typeck.c (maybe_warn_about_returning_address_of_local): Also warn - about returning local initializer_list. - * cp-tree.h (AUTO_TEMP_NAME, TEMP_NAME_P): Remove. - * call.c (build_over_call): Warn about assignment from temporary - init_list. - * init.c (build_new_1): Warn about 'new std::initializer_list'. - (find_list_begin, maybe_warn_list_ctor): New. - (perform_member_init): Use maybe_warn_list_ctor. - -2018-05-29 Marek Polacek - - PR c++/85883 - * init.c (build_new): Handle deducing a class with new - with more than one argument. - -2018-05-29 Jakub Jelinek - - PR c++/85952 - * init.c (build_aggr_init): For structured binding initialized from - array call mark_rvalue_use on the initializer. - -2018-05-28 Bernd Edlinger - - * decl2.c (start_static_storage_duration_function): Use - splay_tree_delete_pointers. - -2018-05-25 Jason Merrill - - PR c++/85815 - reference to member of enclosing template. - * search.c (lookup_base): Use currently_open_class. - (lookup_member): Use it regardless of -fconcepts. - * parser.c (cp_parser_postfix_dot_deref_expression): Check it. - - CWG 616, 1213 - value category of subobject references. - * tree.c (lvalue_kind): Fix handling of ARRAY_REF of pointer. - -2018-05-24 Jason Merrill - - PR c++/85842 - -Wreturn-type, constexpr if and generic lambda. - * pt.c (tsubst_lambda_expr): Copy current_function_returns_* to - generic lambda. - -2018-05-24 Ville Voutilainen - - Pedwarn on a non-standard position of a C++ attribute. - * parser.c (cp_parser_namespace_definition): Pedwarn about attributes - after the namespace name. - -2018-05-24 Paolo Carlini - - * cp-tree.h (INDIRECT_TYPE_P): New. - * call.c (build_trivial_dtor_call, maybe_warn_class_memaccess, - joust): Use it instead of POINTER_TYPE_P. - * class.c (update_vtable_entry_for_fn, find_flexarrays, - * fixed_type_or_null, resolves_to_fixed_type_p): Likewise. - * constexpr.c (cxx_eval_binary_expression, cxx_fold_indirect_ref, - * cxx_eval_increment_expression, potential_constant_expression_1): - Likewise. - * cp-gimplify.c (cp_gimplify_expr, cp_genericize_r): Likewise. - * cp-objcp-common.c (cxx_get_alias_set): Likewise. - * cp-ubsan.c (cp_ubsan_maybe_instrument_member_call, - cp_ubsan_maybe_instrument_downcast): Likewise. - * cvt.c (cp_convert_to_pointer, ocp_convert, - cp_get_fndecl_from_callee, maybe_warn_nodiscard, convert): Likewise. - * cxx-pretty-print.c (cxx_pretty_printer::abstract_declarator, - pp_cxx_offsetof_expression_1): Likewise. - * decl.c (grokparms, static_fn_type): Likewise. - * decl2.c (grokbitfield): Likewise. - * error.c (dump_expr): Likewise. - * except.c (initialize_handler_parm, check_noexcept_r): Likewise. - * init.c (warn_placement_new_too_small): Likewise. - * lambda.c (build_capture_proxy, add_capture): Likewise. - * parser.c (cp_parser_omp_for_loop): Likewise. - * pt.c (convert_nontype_argument, fn_type_unification, - uses_deducible_template_parms, check_cv_quals_for_unify, - dependent_type_p_r): Likewise. - * search.c (check_final_overrider): Likewise. - * semantics.c (handle_omp_array_sections, finish_omp_clauses, - finish_omp_for): Likewise. - * tree.c (cp_build_qualified_type_real): Likewise. - * typeck.c (build_class_member_access_expr, - finish_class_member_access_expr, build_x_indirect_ref, - cp_build_indirect_ref_1, cp_build_binary_op, build_const_cast_1): - Likewise. - -2018-05-24 Jason Merrill - - PR c++/85864 - literal template and default template arg. - * pt.c (instantiation_dependent_r): Handle NONTYPE_ARGUMENT_PACK. - -2018-05-24 Marek Polacek - - PR c++/85847 - * init.c (build_new_1): Use fold_non_dependent_expr. Use a dedicated - variable for its result. Fix a condition. - (build_new): Use fold_non_dependent_expr. Tweak a condition. - -2018-05-23 Jason Merrill - - Fix cast to rvalue reference from prvalue. - * cvt.c (diagnose_ref_binding): Handle rvalue reference. - * rtti.c (build_dynamic_cast_1): Don't try to build a reference to - non-class type. Handle xvalue argument. - * typeck.c (build_reinterpret_cast_1): Allow cast from prvalue to - rvalue reference. - * semantics.c (finish_compound_literal): Do direct-initialization, - not cast, to initialize a reference. - - CWG 616, 1213 - value category of subobject references. - * tree.c (lvalue_kind): A reference to a subobject of a prvalue is - an xvalue. - * typeck2.c (build_m_component_ref): Likewise. - * typeck.c (cp_build_addr_expr_1, lvalue_or_else): Remove diagnostic - distinction between temporary and xvalue. - -2018-05-23 Marek Polacek - - Implement P0614R1, Range-based for statements with initializer. - * parser.c (cp_parser_range_based_for_with_init_p): New. - (cp_parser_init_statement): Use it. Parse the optional init-statement - for a range-based for loop. - (cp_parser_skip_to_closing_parenthesis_1): Handle balancing ?:. - -2018-05-22 Jason Merrill - - PR c++/81420 - not extending temporary lifetime. - * call.c (extend_ref_init_temps_1): Handle ARRAY_REF. - * class.c (build_base_path): Avoid redundant move of an rvalue. - - PR c++/85866 - error with .* in default template arg. - * pt.c (tsubst_copy_and_build): Handle partial instantiation. - -2018-05-21 Paolo Carlini - - * parser.c (cp_parser_parameter_declaration_list): Remove - bool* parameter. - (cp_parser_parameter_declaration_clause): Adjust. - (cp_parser_cache_defarg): Likewise. - -2018-05-21 Paolo Carlini - - PR c++/84588 - * parser.c (cp_parser_maybe_commit_to_declaration, - cp_parser_check_condition_declarator): New. - (cp_parser_simple_declaration): Use the first above. - (cp_parser_condition): Use both the above; enforce - [stmt.stmt]/2 about the declarator not specifying - a function or an array; improve error-recovery. - -2018-05-20 Jason Merrill - - PR libstdc++/85843 - warning in logic_error copy constructor. - * class.c (type_has_user_nondefault_constructor): Check for a - user-provided ctor, not user-declared. - -2018-05-19 Jason Merrill - - * pt.c (tsubst_pack_expansion): Sorry rather than abort - on __integer_pack as subexpression of pattern. - -2018-05-18 Jason Merrill - - PR c++/58407 - deprecated implicit copy ops. - * call.c (build_over_call): Warn about deprecated trivial fns. - * class.c (classtype_has_user_copy_or_dtor): New. - (type_build_ctor_call): Check TREE_DEPRECATED. - (type_build_dtor_call): Likewise. - * decl2.c (cp_warn_deprecated_use): Move from tree.c. - Add checks. Return bool. Handle -Wdeprecated-copy. - (mark_used): Use it. - * decl.c (grokdeclarator): Remove redundant checks. - * typeck2.c (build_functional_cast): Likewise. - * method.c (lazily_declare_fn): Mark deprecated copy ops. - * init.c (build_aggr_init): Only set TREE_USED if there are - side-effects. - -2018-05-18 Cesar Philippidis - - PR c++/85782 - * cp-gimplify.c (cp_genericize_r): Call genericize_omp_for_stmt for - OACC_LOOPs. - -2018-05-18 Richard Sandiford - - * constexpr.c (cxx_eval_constant_expression): Remove FMA_EXPR handling. - (potential_constant_expression_1): Likewise. - -2018-05-16 Marek Polacek - - PR c++/85363 - * call.c (set_flags_from_callee): Handle AGGR_INIT_EXPRs too. - * tree.c (bot_manip): Call set_flags_from_callee for - AGGR_INIT_EXPRs too. - -2018-05-15 Jason Merrill - - * cp-tree.h (cp_expr): Remove copy constructor. - * mangle.c (struct releasing_vec): Declare copy constructor. - - * constexpr.c (cxx_eval_vec_init_1): Pass tf_none if ctx->quiet. - - PR c++/64372 - CWG 1560, gratuitous lvalue-rvalue conversion in ?: - * call.c (build_conditional_expr_1): Don't force_rvalue when one arm - is a throw-expression. - -2018-05-15 Paolo Carlini - - * cp-tree.h (DECL_MAYBE_IN_CHARGE_CDTOR_P): New. - (FOR_EACH_CLONE): Update. - * decl.c (grokdeclarator): Use it. - * decl2.c (vague_linkage_p): Likewise. - * mangle.c (mangle_decl): Likewise. - * method.c (lazily_declare_fn): Likewise. - * optimize.c (can_alias_cdtor, maybe_clone_body): Likewise. - * repo.c (repo_emit_p): Likewise. - * tree.c (decl_linkage): Likewise. - -2018-05-14 Jason Merrill - - Handle TYPE_HAS_LATE_RETURN_TYPE like ref-qualifier and eh spec. - * tree.c (build_cp_fntype_variant): New. - (build_ref_qualified_type, build_exception_variant) - (strip_typedefs, cxx_copy_lang_qualifiers): Use it. - (cxx_type_hash_eq, cp_check_qualified_type): Check - TYPE_HAS_LATE_RETURN_TYPE. - (cp_build_type_attribute_variant): Check cxx_type_hash_eq. - (cp_build_qualified_type_real): No need to preserve C++ qualifiers. - * class.c (build_clone): Use cxx_copy_lang_qualifiers. - (adjust_clone_args): Likewise. - * decl.c (grokfndecl): Add late_return_type_p parameter. Use - build_cp_fntype_variant. - (grokdeclarator): Pass late_return_type_p to grokfndecl. - (check_function_type): Use cxx_copy_lang_qualifiers. - (static_fn_type): Use cxx_copy_lang_qualifiers. - * decl2.c (build_memfn_type, maybe_retrofit_in_chrg) - (cp_reconstruct_complex_type, coerce_new_type, coerce_delete_type) - (change_return_type): Use cxx_copy_lang_qualifiers. - * mangle.c (write_type): Use cxx_copy_lang_qualifiers. - * parser.c (cp_parser_lambda_declarator_opt): Represent an explicit - return type on the declarator like a normal trailing return type. - * pt.c (tsubst_function_type): Use build_cp_fntype_variant. - (copy_default_args_to_explicit_spec): Use cxx_copy_lang_qualifiers. - * typeck.c (merge_types): Use build_cp_fntype_variant. - -2018-05-14 Paolo Carlini - - * cp-tree.h (TYPE_REF_P): New. - (TYPE_OBJ_P, TYPE_REF_OBJ_P, TYPE_REFFN_P): Update. - * call.c (build_list_conv, build_aggr_conv, standard_conversion, - direct_reference_binding, reference_binding, implicit_conversion, - add_builtin_candidate, build_user_type_conversion_1, build_op_call_1, - build_new_op_1, build_x_va_arg, conv_binds_ref_to_prvalue, - build_over_call, perform_implicit_conversion_flags, - extend_ref_init_temps, type_has_extended_temps): Use it. - * class.c (one_inheriting_sig, check_field_decls, - check_bases_and_members, find_flexarrays, finish_struct, - fixed_type_or_null): Likewise. - * constexpr.c (literal_type_p, cxx_bind_parameters_in_call, - non_const_var_error, cxx_eval_constant_expression, - potential_constant_expression_1): Likewise. - * cp-gimplify.c (omp_var_to_track, omp_cxx_notice_variable, - cp_genericize_r, cxx_omp_privatize_by_reference, - cxx_omp_const_qual_no_mutable, cxx_omp_finish_clause, - cp_fold_maybe_rvalue): Likewise. - * cp-ubsan.c (cp_ubsan_maybe_instrument_downcast): Likewise. - * cvt.c (build_up_reference, convert_to_reference, - convert_from_reference, convert_to_void, noexcept_conv_p, - fnptr_conv_p): Likewise. - * decl.c (poplevel, check_for_uninitialized_const_var, - check_initializer, initialize_local_var, cp_finish_decl, - get_tuple_decomp_init, cp_finish_decomp, grokdeclarator, copy_fn_p, - move_signature_fn_p, grok_op_properties, finish_function): Likewise. - * decl2.c (grok_array_decl, cp_reconstruct_complex_type, - decl_maybe_constant_var_p): Likewise. - * error.c (dump_type_prefix, dump_expr): Likewise. - * except.c (initialize_handler_parm, complete_ptr_ref_or_void_ptr_p, - is_admissible_throw_operand_or_catch_parameter): Likewise. - * expr.c (mark_use): Likewise. - * init.c (build_zero_init_1, build_value_init_noctor, - perform_member_init, diagnose_uninitialized_cst_or_ref_member_1, - build_new, build_delete): Likewise. - * lambda.c (build_lambda_object): Likewise. - * mangle.c (write_expression, write_template_arg): Likewise. - * method.c (forward_parm, do_build_copy_constructor, - do_build_copy_assign, build_stub_object, constructible_expr, - walk_field_subobs): Likewise. - * parser.c (cp_parser_omp_for_loop_init, - cp_parser_omp_declare_reduction_exprs, - cp_parser_omp_declare_reduction): Likewise. - * pt.c (convert_nontype_argument_function, convert_nontype_argument, - convert_template_argument, tsubst_pack_expansion, - tsubst_function_decl, tsubst_decl, tsubst, tsubst_copy_and_build, - maybe_adjust_types_for_deduction, check_cv_quals_for_unify, unify, - more_specialized_fn, invalid_nontype_parm_type_p, dependent_type_p_r, - value_dependent_expression_p, build_deduction_guide): Likewise. - * semantics.c (finish_handler_parms, finish_non_static_data_member, - finish_compound_literal, omp_privatize_field, - handle_omp_array_sections_1, handle_omp_array_sections, - cp_check_omp_declare_reduction, finish_omp_reduction_clause, - finish_omp_declare_simd_methods, cp_finish_omp_clause_depend_sink, - finish_omp_clauses, finish_decltype_type, capture_decltype, - finish_builtin_launder): Likewise. - * tree.c (lvalue_kind, cp_build_reference_type, move, - cp_build_qualified_type_real, stabilize_expr, stabilize_init): Likewise. - * typeck.c (cxx_safe_arg_type_equiv_p, build_class_member_access_expr, - cp_build_indirect_ref_1, convert_arguments, warn_for_null_address, - cp_build_addr_expr_1, maybe_warn_about_useless_cast, - build_static_cast_1, build_static_cast, build_reinterpret_cast_1, - build_const_cast_1, cp_build_c_cast, cp_build_modify_expr, - convert_for_initialization, - maybe_warn_about_returning_address_of_local, check_return_expr, - cp_type_quals, casts_away_constness, non_reference): Likewise. - * typeck2.c (cxx_readonly_error, store_init_value, - process_init_constructor_record, build_x_arrow, build_functional_cast, - add_exception_specifier): Likewise. - -2018-05-14 Jason Merrill - - * pt.c (tsubst) [ARRAY_TYPE]: Check valid_array_size_p. - (tsubst_copy_and_build) [NEW_EXPR]: Clear in_decl. - -2018-05-11 Jakub Jelinek - - PR c/85696 - * cp-tree.h (cxx_omp_predetermined_sharing_1): New prototype. - * cp-gimplify.c (cxx_omp_predetermined_sharing): New wrapper around - cxx_omp_predetermined_sharing_1. Rename old function to ... - (cxx_omp_predetermined_sharing_1): ... this. - * semantics.c (finish_omp_clauses): Use cxx_omp_predetermined_sharing_1 - instead of cxx_omp_predetermined_sharing. - -2018-05-10 Jason Merrill - - * decl.c (cp_finish_decl): Don't instantiate auto variable. - (check_static_variable_definition): Allow auto. - * constexpr.c (ensure_literal_type_for_constexpr_object): Likewise. - - * cp-tree.h (DECL_CONSTRUCTOR_P): Use DECL_CXX_CONSTRUCTOR_P. - (DECL_DESTRUCTOR_P): Use DECL_CXX_DESTRUCTOR_P. - - Core issue 2310 - conversion to base of incomplete type. - * class.c (build_base_path): Check COMPLETE_TYPE_P for source type. - - CWG 2267 - list-initialization of reference temporary - * call.c (reference_binding): List-initializing a reference - temporary is copy-list-initialization. - - * parser.c (cp_parser_class_head): Use num_template_headers_for_class. - - * pt.c (instantiate_decl): Make sure we aren't trying to do a nested - instantiation in template context. - - * class.c (vbase_has_user_provided_move_assign): Use - user_provided_p. - - * lambda.c (lambda_expr_this_capture): Improve logic. - - * decl.c (make_typename_type): s/parameters/arguments/. - * parser.c (cp_parser_nested_name_specifier_opt): Likewise. - * pt.c (make_pack_expansion): Correct error message. - -2018-05-10 Jakub Jelinek - - PR c++/85662 - * cp-gimplify.c (cp_fold): Use fold_offsetof rather than - fold_offsetof_1, pass TREE_TYPE (x) as TYPE to it and drop the - fold_convert. - -2018-05-10 Eric Botcazou - - PR c++/85400 - * decl2.c (adjust_var_decl_tls_model): New static function. - (comdat_linkage): Call it on a variable. - (maybe_make_one_only): Likewise. - -2018-05-09 Paolo Carlini - - PR c++/85713 - Revert: - 2018-05-08 Paolo Carlini - - PR c++/84588 - * parser.c (cp_parser_parameter_declaration_list): When the - entire parameter-declaration-list is erroneous maybe call - abort_fully_implicit_template. - -2018-05-08 Jason Merrill - - PR c++/85706 - class deduction under decltype - * pt.c (for_each_template_parm_r): Handle DECLTYPE_TYPE. Clear - *walk_subtrees whether or not we walked into the operand. - (type_uses_auto): Only look at deduced contexts. - -2018-05-08 Paolo Carlini - - PR c++/84588 - * parser.c (cp_parser_parameter_declaration_list): When the - entire parameter-declaration-list is erroneous maybe call - abort_fully_implicit_template. - -2018-05-08 Marek Polacek - - PR c++/85695 - * semantics.c (finish_if_stmt_cond): See through typedefs. - -2018-05-07 Jason Merrill - - PR c++/85646 - lambda visibility. - * decl2.c (determine_visibility): Don't mess with template arguments - from the containing scope. - (vague_linkage_p): Check DECL_ABSTRACT_P before looking at a 'tor - thunk. - -2018-05-07 Nathan Sidwell - - Remove fno-for-scope - * cp-tree.h (DECL_ERROR_REPORTED, DECL_DEAD_FOR_LOCAL) - (DECL_HAS_SHADOWED_FOR_VAR_P, DECL_SHADOWED_FOR_VAR) - (SET_DECL_SHADOWED_FOR_VAR): Delete. - (decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert) - (check_for_out_of_scope_variable, init_shadowed_var_for_decl): - Don't declare. - * name-lookup.h (struct cp_binding_level): Remove - dead_vars_from_for field. - * cp-lang.c (cp_init_ts): Delete. - (LANG_HOOKS_INIT_TS): Override to cp_common_init_ts. - * cp-objcp-common.c (shadowed_var_for_decl): Delete. - (decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert) - (init_shadowed_var_for_decl): Delete. - * decl.c (poplevel): Remove shadowed for var handling. - (cxx_init_decl_processing): Remove -ffor-scope deprecation. - * name-lookup.c (find_local_binding): Remove shadowed for var - handling. - (check_local_shadow): Likewise. - (check_for_out_of_scope_variable): Delete. - * parser.c (cp_parser_primary_expression): Remove shadowed for var - handling. - * pt.c (tsubst_decl): Remove DECL_DEAD_FOR_LOCAL setting. - * semantics.c (begin_for_scope): Always have a scope. - (begin_for_stmt, finish_for_stmt): Remove ARM-for scope handling. - (begin_range_for_stmt, finish_id_expression): Likewise. - -2018-05-07 Jason Merrill - - PR c++/85618 - ICE with initialized VLA. - * tree.c (vla_type_p): New. - * typeck2.c (store_init_value, split_nonconstant_init_1): Check it - rather than array_of_runtime_bound_p. - -2018-05-05 Paolo Carlini - - * cvt.c (ocp_convert): Early handle the special case of a - null_ptr_cst_p expr converted to a NULLPTR_TYPE_P type. - -2018-05-03 Jason Merrill - - PR c++/85600 - virtual delete failure. - * init.c (build_delete): Always save_expr when deleting. - -2018-05-03 Nathan Sidwell - - * decl.c (cxx_init_decl_processing): Remove flag_friend_injection. - * name-lookup.c (do_pushdecl): Likewise. - -2018-05-02 Paolo Carlini - Jason Merrill - - PR c++/68374 - * name-lookup.c (check_local_shadow): Don't handle static old - declarations in the block handling locals shadowing locals. - -2018-05-01 Jason Merrill - - PR c++/85587 - error with scoped enum in template. - * semantics.c (finish_qualified_id_expr): Don't return an - unqualified IDENTIFIER_NODE. - -2018-04-30 Jason Merrill - - PR c++/85580 - extern "C" and local variables - * name-lookup.c (check_extern_c_conflict): Ignore local decls. - - PR c++/84701 - unsigned typeof. - * decl.c (grokdeclarator): Overhaul diagnostics for invalid use - of long/short/signed/unsigned. - - PR c++/85305 - pack in lambda init-capture. - * parser.c (cp_parser_initializer): Add subexpression_p parm; don't - check_for_bare_parameter_packs in a subexpression. - (cp_parser_lambda_introducer): Use it. - - PR c++/61982 - dead stores to destroyed objects. - * call.c (build_trivial_dtor_call): New, assigns a clobber. - (build_over_call, build_special_member_call): Use it. - * cp-tree.h: Declare it. - * init.c (build_delete): Remove trivial path. - - * init.c (build_dtor_call): Use build_special_member_call. - (build_delete): Remove redundant uses of save_addr. - - * decl.c (build_clobber_this): Use build_clobber. - -2018-04-27 Jakub Jelinek - - PR c++/85553 - * init.c (build_zero_init_1): For zero initialization of - NULLPTR_TYPE_P type use build_int_cst directly. - -2018-04-27 David Malcolm - - PR c++/85515 - * name-lookup.c (consider_binding_level): Skip compiler-generated - variables. - * search.c (lookup_field_fuzzy_info::fuzzy_lookup_field): Flatten - nested if statements into a series of rejection tests. Reject - lambda-ignored entities as suggestions. - -2018-04-27 Jason Merrill - - * cvt.c (cp_fold_convert): Use convert_ptrmem. - * typeck.c (convert_ptrmem): Add a NOP even if no adjustment. - -2018-04-27 Paolo Carlini - - PR c++/84691 - * decl.c (grokdeclarator): Clear friendp upon definition in local - class definition error. - -2018-04-27 Jason Merrill - - PR c++/85545 - ICE with noexcept PMF conversion. - * cvt.c (cp_fold_convert): Pass PMF CONSTRUCTORs to - build_ptrmemfunc. - * typeck.c (build_ptrmemfunc): Don't build a NOP_EXPR for zero - adjustment. - (build_ptrmemfunc_access_expr): Special-case CONSTRUCTORs. - -2018-04-27 Nathan Sidwell - - * typeck.c (convert_ptrmem): Move local var decls to initialization. - - * cp-tree.h (TEMPLATE_INFO): Fix comments. - (TI_PENDING_TEMPLATE_FLAG): Check TEMPLATE_INFO. - (NON_DEFAULT_TEMPLATE_ARG_COUNT): Wrap line. - (dump, print_other_binding_stacks): Remove declarations. - * name-lookup.c (print_other_binding_stack): Make static. - * pt.c (build_template_decl): Make static. - -2018-04-26 Jason Merrill - - PR c++/85545 - ICE with noexcept PMF conversion. - * cvt.c (cp_fold_convert): Handle PMF CONSTRUCTORs directly. - -2018-04-25 Nathan Sidwell - - PR c++/85437 - PR c++/49171 - * cp-tree.h (REINTERPRET_CAST_P): New. - * constexpr.c (cxx_eval_constant_expression) : - Reject REINTERPET_CAST_P conversions. Use cplus_expand_constant - for non-trivial PTRMEM_CST cases. - * typeck.c (build_nop_reinterpret): New. - (build_reinterpret_cast_1): Use it. Set REINTERPRET_CAST_P on - NOP_EXPRs returned by cp_convert. - -2018-04-23 Jason Merrill - - PR c++/69560 - wrong alignof(double) on x86. - CWG 1879 - Inadequate definition of alignment requirement. - * cp-tree.h (ALIGNOF_EXPR_STD_P): New. - * typeck.c (cxx_sizeof_or_alignof_type): Add std_alignof parm. - (cxx_sizeof_expr, cxx_sizeof_nowarn, cxx_alignas_expr) - (cxx_alignof_expr): Pass it. - * parser.c (cp_parser_unary_expression): Pass it. - * pt.c (tsubst_copy): Copy it. - (tsubst_copy_and_build): Pass it. - * decl.c (fold_sizeof_expr): Pass it. - -2018-04-23 Jakub Jelinek - Jason Merrill - - PR c++/85470 - wrong error with static data member. - * decl.c (check_initializer): Check DECL_INITIALIZED_IN_CLASS_P. - * typeck2.c (store_init_value): Likewise. - -2018-04-20 Jakub Jelinek - - PR c++/85462 - * cp-tree.h (tinst_level): Remove in_system_header_p member, - change refcount member from unsigned char to unsigned short, - add refcount_infinity static data member, adjust comments. - * pt.c (tinst_level::refcount_infinity): Define. - (inc_refcount_use): Remove assert, don't increment if refcount - is already refcount_infinity, adjust comment. - (dec_refcount_use): Remove assert, don't decrement if refcount - is refcount_infinity, adjust comment. - (push_tinst_level_loc): Formatting fix. - -2018-04-19 Paolo Carlini - - PR c++/84611 - * pt.c (lookup_template_class_1): Check pushtag return value for - error_mark_node. - -2018-04-19 Alexandre Oliva - - PR c++/80290 - * cp-tree.h (tinst_level::free): Fix whitespace. - -2018-04-18 Paolo Carlini - - PR c++/84630 - * pt.c (tsubst_lambda_expr): Check begin_lambda_type return value - for error_mark_node. - -2018-04-18 Jakub Jelinek - - PR c++/84463 - * typeck.c (cp_build_addr_expr_1): Move handling of offsetof-like - tricks from here to ... - * cp-gimplify.c (cp_fold) : ... here. Only use it - if INDIRECT_REF's operand is INTEGER_CST cast to pointer type. - -2018-04-18 Alexandre Oliva - - PR c++/80290 - * cp-tree.h (struct tinst_level): Split decl into tldcl and - targs. Add private split_list_p, tree_list_p, and not_list_p - inline const predicates; to_list private member function - declaration; free public member function declaration; list_p, - get_node and maybe_get_node accessors, and refcount data - member. Narrow errors to unsigned short. - * error.c (print_instantiation_full_context): Use new - accessors. - (print_instantiation_partial_context_line): Likewise. Drop - const from tinst_level-typed parameter. - * mangle.c (mangle_decl_string): Likewise. - * pt.c (freelist): New template class. - (tree_list_freelist_head): New var. - (tree_list_freelist): New fn, along with specializations. - (tinst_level_freelist_head): New var. - (pending_template_freelist_head): Likewise. - (tinst_level_freelist, pending_template_freelist): New fns. - (tinst_level::to_list, tinst_level::free): Define. - (inc_refcount_use, dec_refcount_use): New fns for tinst_level. - (set_refcount_ptr): New template fn. - (add_pending_template): Adjust for refcounting, freelists and - new accessors. - (neglectable_inst_p): Take a NULL d as a non-DECL. - (limit_bad_template_recursion): Use new accessors. - (push_tinst_level): New overload to create the list. - (push_tinst_level_loc): Make it static, split decl into two - args, adjust tests and initialization to cope with split - lists, use freelist, adjust for refcounting. - (push_tinst_level_loc): New wrapper with the old interface. - (pop_tinst_level): Adjust for refcounting. - (record_last_problematic_instantiation): Likewise. - (reopen_tinst_level): Likewise. Use new accessors. - (instantiate_alias_template): Adjust for split list. - (fn_type_unification): Likewise. - (get_partial_spec_bindings): Likewise. - (instantiate_pending_templates): Use new accessors. Adjust - for refcount. Release pending_template to freelist. - (instantiating_current_function_p): Use new accessors. - -2018-04-16 Alexandre Oliva - - PR c++/85039 - * parser.c (cp_parser_builtin_offset): Reject type definitions. - * mangle.c (nested_anon_class_index): Avoid crash returning -1 - if we've seen errors. - -2018-04-12 David Malcolm - - PR c++/85385 - * name-lookup.c (macro_use_before_def::maybe_make): New function, - checking that the use is indeed before the definition. - (macro_use_before_def::macro_use_before_def): Make private. - (macro_use_before_def::~macro_use_before_def): Make private. Move - check for UNKNOWN_LOCATION to macro_use_before_def::maybe_make. - (lookup_name_fuzzy): Call macro_use_before_def::maybe_make rather - than using new directly. - -2018-04-12 Jason Merrill - - PR c++/85356 - ICE with pointer to member function. - * pt.c (maybe_instantiate_noexcept): Do instantiate in templates if - flag_noexcept_type. Build the new spec within the function context. - * except.c (build_noexcept_spec): Do get constant value in templates - if flag_noexcept_type. - * decl.c (check_redeclaration_exception_specification): Don't - instantiate noexcept on a dependent declaration. - -2018-04-12 Marek Polacek - - PR c++/85258 - * constexpr.c (reduced_constant_expression_p): Return false for null - trees. - -2018-04-11 Marek Polacek - - PR c++/85032 - * constexpr.c (potential_constant_expression_1): Consider conversions - from classes to literal types potentially constant. - -2018-04-10 Paolo Carlini - - PR c++/70808 - * init.c (build_zero_init_1): Handle NULLPTR_TYPE_P being true of - the type like TYPE_PTR_OR_PTRMEM_P. - -2018-04-10 Jason Merrill - - PR debug/65821 - wrong location for main(). - * call.c (clear_location_r, convert_default_arg): Revert. - * tree.c (break_out_target_exprs): Add clear_location parm. - (struct bot_data): New. - (bot_manip): Clear location if requested. - * init.c (get_nsdmi): Pass clear_location. - -2018-04-10 David Malcolm - - PR c++/85110 - * call.c (get_fndecl_argument_location): Make non-static. - * cp-tree.h (get_fndecl_argument_location): New decl. - * typeck.c (convert_for_assignment): When complaining due to - conversions for an argument, show the location of the parameter - within the decl. - -2018-04-10 Jakub Jelinek - - PR c++/85312 - P0962 cleanup - * parser.c (cp_parser_perform_range_for_lookup): Remove unreachable - diagnostics. - -2018-04-10 Jason Merrill - - PR debug/65821 - wrong location for main(). - * call.c (clear_location_r): New. - (convert_default_arg): Use it. - * tree.c (bot_manip): Remove builtin_LINE/FILE handling. - - PR c++/85285 - ICE with flexible array after substitution. - * pt.c (instantiate_class_template_1): Check for flexible array in - union. - -2018-04-09 Paolo Carlini - - PR c++/85227 - * decl.c (cp_finish_decomp): In a template, if the type is incomplete - issue a pedwarn and defer trying to do bindings. - -2018-04-09 Jason Merrill - - PR c++/85279 - dump_expr doesn't understand decltype. - * error.c (dump_expr): Handle DECLTYPE_TYPE. - - PR c++/85262 - ICE with redundant qualification on constructor. - * call.c (build_new_method_call_1): Move make_args_non_dependent - after A::A() handling. - - PR c++/85277 - ICE with invalid offsetof. - * semantics.c (finish_offsetof): Avoid passing non-DECL to %qD. - Adjust -Winvalid-offsetof diagnostic to say conditionally supported. - - PR c++/85264 - ICE with excess template-parameter-list. - * parser.c (cp_parser_check_template_parameters): Add template_id_p - parameter. Don't allow an extra template header if true. - (cp_parser_class_head): Pass template_id_p. - (cp_parser_elaborated_type_specifier): Likewise. - (cp_parser_alias_declaration): Likewise. - (cp_parser_check_declarator_template_parameters): Likewise. - -2018-04-09 Jakub Jelinek - - PR c++/85194 - * parser.c (cp_parser_simple_declaration): For structured bindings, - if *maybe_range_for_decl is NULL after parsing it, set it to - error_mark_node. - -2018-04-09 Jason Merrill - - PR c++/85256 - ICE capturing pointer to VLA. - * lambda.c (add_capture): Distinguish between variable-size and - variably-modified types. - -2018-04-06 Jason Merrill - - PR c++/85214 - ICE with alias, generic lambda, constexpr if. - * pt.c (extract_locals_r): Remember local typedefs. - -2018-04-06 David Malcolm - - PR c++/84269 - * name-lookup.c (struct std_name_hint): Move out of - get_std_name_hint; add field "min_dialect". - (get_std_name_hint): Add min_dialect values to all initializers. - Add , , , , , - , , , , , , - , , , and . - Add fstream, ifstream, and ofstream to . - Add istringstream, ostringstream, and stringstream to . - Add basic_string to . - Add tuple_element and tuple_size to . - Add declval to . - Fix ordering of and . - Return a std_name_hint, rather than a const char *. - (get_cxx_dialect_name): New function. - (maybe_suggest_missing_std_header): Detect names that aren't yet - available in the current dialect, and instead of suggesting a - missing #include, warn about the dialect. - -2018-04-06 Jakub Jelinek - - PR c++/85210 - * pt.c (tsubst_decomp_names): Return error_mark_node and assert - errorcount is set if tsubst doesn't return a VAR_DECL. - -2018-04-06 David Malcolm - - PR c++/85021 - * name-lookup.c (using_directives_contain_std_p): New function. - (has_using_namespace_std_directive_p): New function. - (suggest_alternatives_for): Simplify if/else logic using early - returns. If no candidates were found, and there's a - "using namespace std;" directive, call - maybe_suggest_missing_std_header. - (maybe_suggest_missing_header): Split later part of the function - into.. - (maybe_suggest_missing_std_header): New. - -2018-04-06 Jason Merrill - - PR c++/85242 - ICE with class definition in template parm. - * cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): False if - processing_template_parmlist. - - PR c++/85240 - LTO ICE with using of undeduced auto fn. - * cp-gimplify.c (cp_genericize_r): Discard using of undeduced auto. - -2018-04-05 Jakub Jelinek - - PR c++/85209 - * pt.c (tsubst_decomp_names): Don't fail or ICE if DECL_CHAIN (decl3) - is not prev, if prev == decl. - - PR c++/85208 - * decl.c (start_decl): For DECL_DECOMPOSITION_P decls, don't call - maybe_apply_pragma_weak here... - (cp_maybe_mangle_decomp): ... but call it here instead. - -2018-04-05 Jason Merrill - - PR c++/85136 - ICE with designated init in template. - * decl.c (maybe_deduce_size_from_array_init): Handle dependent - designated initializer. - (check_array_designated_initializer): Update ce->index with the - constant value. - - PR c++/83808 - ICE with VLA initialization. - * typeck2.c (process_init_constructor_array): Don't require a VLA - initializer to have VLA type. - -2018-04-05 Paolo Carlini - - PR c++/80956 - * call.c (convert_like_real): Fail gracefully for a broken - std::initializer_list, missing a definition. - - * name-lookup.c (do_pushtag): Tweak message, use %< and %>. - -2018-04-05 Paolo Carlini - - PR c++/84792 - * decl.c (grokdeclarator): Fix diagnostic about typedef name used - as nested-name-specifier, keep type and TREE_TYPE (decl) in sync. - -2018-04-05 Jason Merrill - - PR c++/82152 - ICE with class deduction and inherited ctor. - * pt.c (do_class_deduction): Ignore inherited ctors. - - PR c++/84665 - ICE with array of empty class. - * decl2.c (cp_check_const_attributes): Use fold_non_dependent_expr. - - PR c++/85228 - ICE with lambda in enumerator in template. - * pt.c (bt_instantiate_type_proc): Don't assume - CLASSTYPE_TEMPLATE_INFO is non-null. - -2018-04-05 Ville Voutilainen - - Implement P0969 - * decl.c (find_decomp_class_base): Check accessibility instead - of declared access, adjust diagnostic. - -2018-04-05 Ville Voutilainen - - Implement P0961 - * decl.c (get_tuple_decomp_init): Check the templatedness - of a member get. - -2018-04-05 Jason Merrill - - PR c++/85200 - ICE with constexpr if in generic lambda. - * pt.c (extract_locals_r): Don't record the local specs of variables - declared within the pattern. - -2018-04-05 Alexandre Oliva - - PR c++/84979 - * pt.c (check_auto_in_tmpl_args): New. - (tsubst_qualified_id): Use it to reject template args - referencing auto for non-type templates. - * parser.c (cp_parser_template_id): Likewise. - * cp-tree.h (check_auto_in_tmpl_args): Declare. - * typeck2.c (build_functional_cast): Report correct location - for invalid use of auto. - -2018-04-04 Jason Merrill - - PR c++/85215 - ICE with copy-init from conversion. - * call.c (merge_conversion_sequences): Fix type of direct binding - sequence. - - PR c++/84938 - ICE with division by ~-1. - * call.c (set_up_extended_ref_temp): Call cp_fully_fold. - - PR c++/84936 - ICE with unexpanded pack in mem-initializer. - * parser.c (cp_parser_mem_initializer_list): Call - check_for_bare_parameter_packs. - -2018-04-04 Jakub Jelinek - - PR inline-asm/85172 - * constexpr.c (cxx_eval_builtin_function_call): For calls to - builtin_valid_in_constant_expr_p functions, don't call - cxx_eval_constant_expression if argument is not - potential_constant_expression. - - PR c++/85146 - * cp-tree.h (calculate_bases, calculate_direct_bases): Add complain - argument. - * semantics.c (calculate_bases): Add complain argument. Use - complete_type_or_maybe_complain instead of just complete_type and - return an empty vector if it fails. Move make_tree_vector () call - after early return. Formatting fixes. - (calculate_direct_bases): Likewise. Call release_tree_vector at the - end. - (dfs_calculate_bases_post, calculate_bases_helper): Formatting fixes. - * pt.c (tsubst_pack_expansion): Adjust calculate_bases and - calculate_direct_bases callers, formatting fixes. - -2018-04-04 Jason Merrill - - PR c++/85006 - -fconcepts ICE with A return type - * pt.c (tsubst_pack_expansion): Allow unsubstituted auto pack. - - PR c++/85200 - ICE with constexpr if in generic lambda. - * tree.c (cp_walk_subtrees): Walk into DECL_EXPR in templates. - - PR c++/84221 - bogus -Wunused with attribute and template. - * decl2.c (is_late_template_attribute): Handle unused and used - normally on non-TYPE_DECL. - - PR c++/85135 - ICE with omitted template arguments. - * decl.c (grokdeclarator): Catch deduced class type in trailing - return type. - - PR c++/85133 - ICE with missing concept initializer. - * decl.c (cp_finish_decl): If a concept initializer is missing, use - true. - - PR c++/85118 - wrong error with generic lambda and std::bind. - * call.c (add_template_conv_candidate): Disable if there are any - call operators. - - PR c++/85141 - ICE with compound assignment and static member fn. - * typeck.c (cp_build_modify_expr): Call decay_conversion for RHS of - compound assignment. - - PR c++/85148 - ICE with 'this' in array NSDMI. - * tree.c (replace_placeholders_r): Use handled_component_p. - -2018-04-04 Ville Voutilainen - - PR c++/65923 - * decl.c (grokfndecl): Handle standard UDL diagnostics here.. - * parser.c (cp_parser_unqualified_id): ..not here. - -2018-04-04 Alexandre Oliva - - PR c++/84943 - * typeck.c (cp_build_addr_expr_1): Mark FUNCTION_DECL as - used. - * decl2.c (mark_used): Return without effects if tf_conv. - -2018-04-03 Jason Merrill - - PR c++/85092 - C++17 ICE with unused list constructor. - * call.c (conv_binds_ref_to_prvalue): Also count ck_identity - from a TARGET_EXPR. - - PR c++/85113 - ICE with constexpr and __builtin_constant_p. - * constexpr.c (cxx_eval_builtin_function_call): Only defer - __builtin_constant_p if ctx->quiet. - -2018-04-03 Paolo Carlini - - PR c++/84768 - * pt.c (rewrite_template_parm): If the first argument is - error_mark_node return it immediately. - (build_deduction_guide): Check the return value of the - latter for error_mark_node. - (do_class_deduction): Check the return value of the latter. - -2018-04-03 Jason Merrill - - * semantics.c (finish_if_stmt_cond): Use - instantiation_dependent_expression_p. - - PR c++/85149 - generic lambda and constexpr if. - * pt.c (build_extra_args, add_extra_args): Split from - tsubst_pack_expansion. - (tsubst_expr) [IF_STMT]: Use them. - * cp-tree.h (IF_STMT_EXTRA_ARGS): New. - - * typeck.c (merge_types): Limit matching attribute shortcut to - the default case. - -2018-04-03 Jakub Jelinek - - PR c++/85147 - * pt.c (fixed_parameter_pack_p_1): Punt if parm is error_mark_node. - - PR c++/85140 - * name-lookup.c (handle_namespace_attrs): Return early if attributes - is error_mark_node. - - PR c++/85134 - * decl.c (cp_finish_decl): If ensure_literal_type_for_constexpr_object - fails, after clearing DECL_DECLARED_CONSTEXPR_P don't return early, - instead for static data members clear init and set DECL_EXTERNAL. - -2018-04-02 Jason Merrill - - PR c++/64095 - auto... parameter pack. - * parser.c (cp_parser_parameter_declaration): Handle turning autos - into packs here. - (cp_parser_parameter_declaration_list): Not here. - -2018-03-31 Alexandre Oliva - - PR c++/85027 - * class.c (instantiate_type): Peel off SAVE_EXPR before - BASELINK. - -2018-03-30 Jason Merrill - - * typeck2.c (process_init_constructor_record): Use - init_list_type_node for the CONSTRUCTOR around an anonymous union - designated initializer. - -2018-03-30 Jakub Jelinek - - PR c++/84791 - * semantics.c (finish_omp_reduction_clause): If - OMP_CLAUSE_REDUCTION_PLACEHOLDER is error_mark_node, return true - even if processing_template_decl. - -2018-03-29 David Malcolm - - PR c++/84269 - * name-lookup.c (get_std_name_hint): Add names from , - , and . - -2018-03-29 Jason Merrill - - PR c++/85093 - too many template args with pack expansion. - * pt.c (coerce_template_parms): Keep pack expansion args that will - need to be empty. - -2018-03-29 Jason Merrill - - * pt.c (build_non_dependent_expr): Propagate expr location. - -2018-03-27 Jason Merrill - - PR c++/85060 - wrong-code with call to base member in template. - * search.c (any_dependent_bases_p): Check uses_template_parms - rather than processing_template_decl. - -2018-03-29 David Malcolm - - PR c++/85110 - * typeck.c (convert_for_assignment): When complaining due to - conversions for an argument, attempt to use the location of the - argument. - -2018-03-28 Paolo Carlini - - PR c++/85028 - * pt.c (tsubst_default_argument): Early return if the type of the - parameter is erroneous. - -2018-03-28 Alexandre Oliva - - PR c++/84973 - * decl2.c (note_vague_linkage_fn): Don't defer uninstantiated - templates. - - PR c++/84968 - * tree.c (strip_typedefs_expr): Reject STATEMENT_LISTs. - -2018-03-27 Paolo Carlini - - PR c++/85067 - * method.c (defaulted_late_check): Partially revert r253321 changes, - do not early return upon error. - -2018-03-27 Jakub Jelinek - - PR c++/85077 - * cp-gimplify.c (cp_fold) : For ctors with vector - type call fold to generate VECTOR_CSTs when possible. - - PR c++/85076 - * tree.c (cp_build_reference_type): If to_type is error_mark_node, - return it right away. - -2018-03-27 Volker Reichelt - - * search.c (check_final_overrider): Use inform instead of error - for the diagnostics of the overridden functions. Tweak wording. - -2018-03-27 Jakub Jelinek - - PR c++/85068 - * class.c (update_vtable_entry_for_fn): Don't ICE if base_binfo - is NULL. Assert if thunk_binfo is NULL then errorcount is non-zero. - -2018-03-27 Paolo Carlini - Jason Merrill - - PR c++/84632 - * init.c (build_aggr_init): When initializing from array, - reject anything but CONSTRUCTORs and TARGET_EXPRs. - (build_vec_init): Handle separately ARRAY_TYPEs. - -2018-03-26 Jason Merrill - - PR c++/85062 - ICE with alignas in wrong place. - * decl.c (grokdeclarator): Ignore attributes on type-specifiers - here. - - PR c++/85049 - ICE with __integer_pack. - * pt.c (unify_pack_expansion): Don't try to deduce generated packs. - * cp-tree.h (TEMPLATE_PARM_P): New. - -2018-03-23 Jason Merrill - - PR c++/78489 - wrong SFINAE behavior. - - PR c++/84489 - * pt.c (type_unification_real): Don't defer substitution failure. - -2018-03-23 Jakub Jelinek - - PR c++/85015 - * decl.c (compute_array_index_type): Set osize to mark_rvalue_use - result. - - PR c++/84942 - * pt.c (tsubst_copy_and_build) : Replace - cp_build_unary_op call with gcc_unreachable (). - -2018-03-23 Marek Polacek - - PR c++/85045 - * cxx-pretty-print.c (cxx_pretty_printer::multiplicative_expression): - Handle EXACT_DIV_EXPR and RDIV_EXPR. Tweak condition. - (cxx_pretty_printer::expression): Handle EXACT_DIV_EXPR and RDIV_EXPR. - -2018-03-23 Ville Voutilainen - - Implement P0962 - * parser.c (cp_parser_perform_range_for_lookup): Change - the condition for deciding whether to use members. - -2018-03-23 Marek Polacek - - PR c++/85033 - * semantics.c (finish_offsetof): Don't allow CONST_DECLs. - -2018-03-23 Alexandre Oliva - - PR c++/71251 - * parser.c (cp_parser_alias_declaration): Call - parser_check_template_parameters. - - PR c++/84789 - * pt.c (resolve_typename_type): Drop assert that stopped - simplification to template-independent types. Add assert to - verify the initial scope is template dependent. - * parser.c (cp_parser_parse_and_diagnose_invalid_type_name): - Reparse the id expression as a type-name, not a declarator. - - PR c++/84729 - * init.c (build_vec_init): Error at parenthesized array init. - - PR c++/84610 - PR c++/84642 - PR c++/84942 - * cp-tree.h (temp_override): New template class, generalizing - a cleanup that was only used... - * parser.c (cp_parser_parameter_declaration_clause): - ... here for auto_is_implicit_function_template_parm_p. - (cp_parser_gnu_attributes_opt): Use it here as well. - (cp_parser_std_attribute): Likewise. - -2018-03-22 Marek Polacek - - PR c++/84854 - * semantics.c (finish_if_stmt_cond): Check if the type of the condition - is boolean. - -2018-03-21 Jason Merrill - - PR c++/81311 - wrong C++17 overload resolution. - * call.c (build_user_type_conversion_1): Remove C++17 code. - (conv_binds_ref_to_prvalue): New. - (build_over_call): Handle C++17 copy elision. - (build_special_member_call): Only do C++17 copy elision here if the - argument is already the right type. - -2018-03-21 Alexandre Oliva - - PR c++/71965 - * init.c (build_vec_init): Silence error, former sorry, - without tf_error. - - PR c++/84610 - PR c++/84642 - * parser.c (abort_fully_implicit_template_p): New. - (cp_parser_skip_to_end_of_statement): Use it. - (cp_parser_skip_to_end_of_block_or_statement): Likewise. - (finish_fully_implicit_template_p): Clear - implicit_template_parms and implicit_template_scope. - -2018-03-21 Paolo Carlini - - PR c++/84972 - * decl.c (maybe_deduce_size_from_array_init): Set TREE_TYPE to - error_mark_node when check_array_designated_initializer fails. - -2018-03-21 Jakub Jelinek - - PR c++/84961 - * cp-tree.h (genericize_compound_lvalue): Declare. - * typeck.c (genericize_compound_lvalue): New function. - (unary_complex_lvalue, cp_build_modify_expr): Use it. - * semantics.c (finish_asm_stmt): Replace MODIFY_EXPR, PREINCREMENT_EXPR - and PREDECREMENT_EXPR in output and "m" constrained input operands with - COMPOUND_EXPR. Call cxx_mark_addressable on the rightmost - COMPOUND_EXPR operand. - -2018-03-21 Nathan Sidwell - - PR c++/85008 - * tree.c (decl_linkage): Use DECL_CLONED_FUNCTION_P. - * decl2.c (vague_linkage_p): Likewise. - -2018-03-21 David Malcolm - - PR c++/84994 - * constexpr.c (constexpr_fn_retval): Make non-"static". - * cp-tree.h (constexpr_fn_retval): New decl. - * search.c (direct_accessor_p): Update leading comment. - (reference_accessor_p): Likewise. - (field_accessor_p): Replace check that function body is a - RETURN_EXPR with a call to constexpr_fn_retval. Fix - indentation of "field_type" decl. - -2018-03-21 Nathan Sidwell - - PR c++/84804 - * name-lookup.c (do_pushtag): Permit lambdas to be pushed into - complete classes. - -2018-03-21 Martin Sebor - - PR c++/84850 - * call.c (first_non_public_field): New template and function. - (first_non_trivial_field): New function. - (maybe_warn_class_memaccess): Call them. - -2018-03-21 David Malcolm - - PR c++/84892 - * search.c (field_accessor_p): Use class_of_this_parm rather than - type_of_this_parm, to check that "this" is a "const T *", rather - than a "T *const". - -2018-03-21 Nathan Sidwell - - * class.c (finish_struct_anon_r): Refactor, deprecate anything - other than public non-static data members. - * parser.c (cp_parser_init_declarator): Deprecate attributes after - parenthesized initializer. - - PR c++/84836 - * name-lookup.c (update_binding): Correct logic for local binding - update. - -2018-03-21 Marek Polacek - - PR c++/71638, ICE with NSDMI and reference. - * constexpr.c (cxx_eval_bare_aggregate): Update constructor's flags - even when we replace an element. - -2018-03-20 Marek Polacek - - PR c++/84978, ICE with NRVO. - * constexpr.c (cxx_eval_constant_expression): Handle the case when - a RESULT_DECL isn't in the hash map. - -2018-03-20 Jason Merrill - - PR c++/84978, ICE with NRVO. - * cvt.c (cp_get_fndecl_from_callee): Add fold parameter. - (cp_get_callee_fndecl_nofold): New. - * cp-gimplify.c (cp_genericize_r): Use it instead. - * call.c (check_self_delegation): Likewise. - -2018-03-20 Nathan Sidwell - - PR c++/84962 - * name-lookup.c (pushdecl_class_level): Push anon-struct's - member_vec, if there is one. - - PR c++/84970 - * cp-tree.h (lookup_list_keep): Declare. - * tree.c (lookup_list_keep): New, broken out of ... - (build_min): ... here. Call it. - * decl.c (cp_finish_decl): Call lookup_list_keep. - -2018-03-19 Jason Merrill - - PR c++/84937 - ICE with class deduction and auto. - * pt.c (rewrite_template_parm): Fix auto handling. - -2018-03-19 Marek Polacek - - PR c++/84925 - * pt.c (enclosing_instantiation_of): Check if fn is null. - - PR c++/84927 - * constexpr.c (cxx_eval_bare_aggregate): Update constructor's flags - as we evaluate the elements. - (cxx_eval_constant_expression): Verify constructor's flags - unconditionally. - -2018-03-19 Jason Merrill - - PR c++/71834 - template-id with too few arguments. - * pt.c (coerce_template_parms): Check fixed_parameter_pack_p. - -2018-03-19 Nathan Sidwell - - PR c++/84835 - * lambda.c (maybe_add_lambda_conv_op): Force C++ linkage. - * pt.c (build_template_decl): Propagate language linkage. - - PR c++/84812 - * name-lookup.c (set_local_extern_decl_linkage): Defend against - ambiguous lookups. - -2018-03-16 Jakub Jelinek - - PR c/84910 - * parser.c (cp_parser_lambda_introducer): Remove trailing space from - diagnostics. - * method.c (synthesize_method): Likewise. - * pt.c (convert_nontype_argument): Likewise. - -2018-03-16 Jason Merrill - - PR c++/84720 - ICE with rvalue ref non-type argument. - * pt.c (invalid_nontype_parm_type_p): Prohibit rvalue reference. - (convert_nontype_argument): Revert earlier change. - - PR c++/80227 - SFINAE and negative array size. - * decl.c (compute_array_index_type): Use - build_converted_constant_expr and valid_constant_size_p. - - PR c++/84906 - silent wrong code with ambiguous conversion. - * call.c (build_user_type_conversion_1): Set need_temporary_p on - ambiguous conversion. - (convert_like_real): Check it. - - PR c++/83937 - wrong C++17 handling of init-list ctor argument. - * call.c (build_special_member_call): Don't convert an init-list - argument directly to the class type. - -2018-03-16 Jakub Jelinek - - PR c++/79937 - PR c++/82410 - * cp-tree.h (CONSTRUCTOR_PLACEHOLDER_BOUNDARY): Define. - (find_placeholder): Declare. - * tree.c (struct replace_placeholders_t): Add exp member. - (replace_placeholders_r): Don't walk into ctors with - CONSTRUCTOR_PLACEHOLDER_BOUNDARY flag set, unless they are equal to - d->exp. Replace PLACEHOLDER_EXPR with unshare_expr (x) rather than x. - (replace_placeholders): Initialize data.exp. - (find_placeholders_r, find_placeholders): New functions. - * typeck2.c (process_init_constructor_record, - process_init_constructor_union): Set CONSTRUCTOR_PLACEHOLDER_BOUNDARY - if adding NSDMI on which find_placeholder returns true. - * call.c (build_over_call): Don't call replace_placeholders here. - * cp-gimplify.c (cp_genericize_r): Set TARGET_EXPR_NO_ELIDE on - TARGET_EXPRs with CONSTRUCTOR_PLACEHOLDER_BOUNDARY set on - TARGET_EXPR_INITIAL. - (cp_fold): Copy over CONSTRUCTOR_PLACEHOLDER_BOUNDARY bit to new - ctor. - -2018-03-16 Jason Merrill - - PR c++/83911 - ICE with multiversioned constructor. - * cp-gimplify.c (cp_genericize_r): Replace versioned function with - dispatchere here. - * call.c (build_over_call): Not here. - -2018-03-16 Jakub Jelinek - - PR c++/84874 - * decl.c (reshape_init_class): Don't assert d->cur->index == field - if d->cur->index is a FIELD_DECL, instead set field to d->cur->index. - -2018-03-15 Jakub Jelinek - - PR c++/84222 - * cp-tree.h (cp_warn_deprecated_use): Declare. - * tree.c (cp_warn_deprecated_use): New function. - * typeck2.c (build_functional_cast): Use it. - * decl.c (grokparms): Likewise. - (grokdeclarator): Likewise. Temporarily push nested class scope - around grokparms call for out of class member definitions. - -2018-03-14 Jason Merrill - - PR c++/84820 - no error for invalid qualified-id. - * parser.c (cp_parser_make_indirect_declarator): Don't wrap - cp_error_declarator. - - PR c++/84801 - ICE with unexpanded pack in lambda. - * pt.c (check_for_bare_parameter_packs): Don't return early for a - lambda in non-template context. - - PR c++/81236 - auto variable and auto function - * pt.c (tsubst_baselink): Update the type of the BASELINK after - mark_used. - -2018-03-14 Jason Merrill - - PR c++/83916 - ICE with template template parameters. - * pt.c (convert_template_argument): Don't substitute into type of - non-type parameter if we don't have enough arg levels. - (unify): Likewise. - -2018-03-14 Marek Polacek - - PR c++/84596 - * semantics.c (finish_static_assert): Check - instantiation_dependent_expression_p instead of - {type,value}_dependent_expression_p. - -2018-03-13 Paolo Carlini - Jason Merrill - - PR c++/82336 - link error with list-init default argument. - * decl.c (check_default_argument): Unshare an initializer list. - -2018-03-13 Jakub Jelinek - - PR c++/84843 - * decl.c (duplicate_decls): For redefinition of built-in, use error - and return error_mark_node. For redeclaration, return error_mark_node - rather than olddecl if !flag_permissive. - -2018-03-13 Jason Merrill - - PR c++/82565 - ICE with concepts and generic lambda. - * pt.c (instantiate_decl): Clear fn_context for lambdas. - -2018-03-13 Jason Merrill - - PR c++/84720 - ICE with rvalue ref non-type argument. - * pt.c (convert_nontype_argument): Handle rvalue references. - - PR c++/84839 - ICE with decltype of parameter pack. - * pt.c (tsubst_pack_expansion): Set cp_unevaluated_operand while - instantiating dummy parms. - - * parser.c (cp_parser_simple_type_specifier): Pedwarn about auto - parameter even without -Wpedantic. - - PR c++/84798 - ICE with auto in abstract function declarator. - * parser.c (cp_parser_parameter_declaration_clause): Check - parser->default_arg_ok_p. - -2018-03-13 Jakub Jelinek - - PR c++/84808 - * constexpr.c (find_array_ctor_elt): Don't use elt reference after - first potential CONSTRUCTOR_ELTS reallocation. Convert dindex to - sizetype. Formatting fixes. - -2018-03-12 Jason Merrill - - PR c++/84355 - ICE with deduction for member class template. - * pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Always substitute into - CLASS_PLACEHOLDER_TEMPLATE. - - PR c++/84802 - ICE capturing uninstantiated class. - * lambda.c (build_capture_proxy): Call complete_type. - -2018-03-09 Jason Merrill - - PR c++/84770 - ICE with typedef and parameter pack. - * pt.c (verify_unstripped_args_1): Split out from - verify_unstripped_args. - - PR c++/84785 - ICE with alias template and default targs. - * pt.c (type_unification_real): Set processing_template_decl if - saw_undeduced == 1. - - PR c++/84752 - ICE with capture of constexpr array. - * call.c (standard_conversion): Set rvaluedness_matches_p on the - identity conversion under ck_lvalue. - -2018-03-09 Jason Merrill - Paolo Carlini - - PR c++/71169 - PR c++/71832 - * pt.c (any_erroneous_template_args_p): New. - * cp-tree.h (any_erroneous_template_args_p): Declare it. - * parser.c (cp_parser_class_specifier_1): Use it. - -2018-03-09 Jason Merrill - - PR c++/84726 - unnecessary capture of constant vars. - * cp-tree.h (LAMBDA_CAPTURE_EXPLICIT_P) - (LAMBDA_EXPR_CAPTURE_OPTIMIZED): New. - * expr.c (mark_use): Set LAMBDA_EXPR_CAPTURE_OPTIMIZED. - * lambda.c (is_constant_capture_proxy) - (current_lambda_expr, var_to_maybe_prune, mark_const_cap_r) - (prune_lambda_captures): New. - (finish_lambda_function): Call prune_lambda_captures. - -2018-03-09 Jason Merrill - Jakub Jelinek - - PR c++/84076 - * call.c (convert_arg_to_ellipsis): Instead of cp_build_addr_expr - build ADDR_EXPR with REFERENCE_TYPE. - (build_over_call): For purposes of check_function_arguments, if - argarray[j] is ADDR_EXPR with REFERENCE_TYPE created above, use - its operand rather than the argument itself. - -2018-03-09 Jakub Jelinek - - PR c++/84724 - * decl.c (duplicate_decls): Don't override __* prefixed builtins - except for __[^b]*_chk, instead issue permerror and for -fpermissive - also a note and return olddecl. - -2018-03-09 Nathan Sidwell - - PR c++/84733 - * name-lookup.c (do_pushdecl_with_scope): Only clear - current_function_decl when pushing a non-class (i.e. namespace) - scope. - -2018-03-08 Jason Merrill - Jakub Jelinek - - PR c++/80598 - * call.c (build_over_call): In templates set TREE_USED (first_fn) when - not calling mark_used for the benefit of -Wunused-function warning. - -2018-03-06 Jason Merrill - - * lambda.c (is_capture_proxy_with_ref): Remove. - * constexpr.c, expr.c, cp-tree.h, semantics.c: Adjust. - -2018-03-06 Marek Polacek - - PR c++/84684 - * constexpr.c (cxx_bind_parameters_in_call): Unshare evaluated - arguments. - -2018-03-06 Alexandre Oliva - - PR c++/84231 - * tree.c (lvalue_kind): Use presence/absence of REFERENCE_TYPE - only while processing template decls. - * typeck.c (build_x_conditional_expr): Move wrapping of - reference type around type... - * call.c (build_conditional_expr_1): ... here. Rename - is_lvalue to is_glvalue. - * parser.c (cp_parser_fold_expression): Catch REFERENCE_REF_P - INDIRECT_REF of COND_EXPR too. - - PR c++/84593 - * init.c (build_zero_init_1): Zero-initialize references. - - PR c++/84492 - * semantics.c (finish_stmt_expr_expr): Reject unresolved - overloads used as stmt expr values. - -2018-03-05 Jason Merrill - - PR c++/84708 - ICE with lambda in local class NSDMI. - * lambda.c (lambda_expr_this_capture): Handle local class NSDMI - context. - -2018-03-05 Jakub Jelinek - - PR c++/84684 - * constexpr.c (constexpr_call_hasher::equal): Return false if - lhs->hash != rhs->hash. Change return 1 to return true and - return 0 to return false. - -2018-03-05 Nathan Sidwell - - PR c++/84702 - * pt.c (process_template_arg): Mark lookup_keep on a default arg. - -2018-03-05 Marek Polacek - - PR c++/84707 - * decl.c (duplicate_decls): Check DECL_NAME before accessing - UDLIT_OPER_P. - -2018-03-05 Nathan Sidwell - - PR c++/84694 - * friend.c (do_friend): Restore check for identifier_p inside - TEMPLATE_ID_EXPR. - -2018-03-05 Paolo Carlini - - PR c++/84618 - * parser.c (cp_parser_lambda_introducer): Reject any capture not - involving a VAR_DECL or a PARM_DECL. - -2018-03-05 Pádraig Brady - Jason Merrill - Nathan Sidwell - - PR c++/84497 - * decl2.c (get_tls_init_fn): Check TYPE_HAS_TRIVIAL_DFLT too. - -2018-03-03 Jason Merrill - - PR c++/84686 - missing volatile loads. - * cvt.c (convert_to_void): Call maybe_undo_parenthesized_ref. - -2018-03-03 Paolo Carlini - - PR c++/71464 - * optimize.c (maybe_thunk_body): Bail out immediately if either - fns[0] or fns[1] is null. - -2018-03-02 Marek Polacek - - PR c++/84578 - * constexpr.c (get_array_or_vector_nelts): New. - (cxx_eval_array_reference): Use it. - (cxx_eval_vec_init_1): Likewise. - (cxx_eval_store_expression): Likewise. - -2018-03-02 Jason Merrill - - * semantics.c (force_paren_expr): Remove redundant test. - -2018-03-02 Marek Polacek - - PR c++/84663 - * decl.c (cp_complete_array_type): Check error_mark_node. - - PR c++/84664 - * typeck.c (cp_perform_integral_promotions): Check the result of - mark_rvalue_use. - -2018-03-02 Jakub Jelinek - - PR c++/84662 - * pt.c (tsubst_copy_and_build) : Use - RETURN instead of return. - : Likewise. - : If op0 is error_mark_node, just return - it instead of wrapping it into CONVERT_EXPR. - -2018-03-02 Jason Merrill - - Fix MIPS16 ICE. - * pt.c (type_dependent_expression_p): Check DECL_LANG_SPECIFIC. - -2018-03-02 Marek Polacek - - PR c++/84590 - * cp-gimplify.c (cp_fully_fold): Unwrap TARGET_EXPR or a CONSTRUCTOR - wrapped in VIEW_CONVERT_EXPR. - -2018-03-01 Martin Sebor - - PR c++/84294 - * decl.c (check_redeclaration_no_default_args): Merge attributes - specified on redeclarations of the same function template. - Remove dead code. - -2018-03-01 Marek Polacek - Jason Merrill - - PR c++/84582 - * semantics.c (force_paren_expr): Create a PAREN_EXPR when in - a template. - (maybe_undo_parenthesized_ref): Unwrap PAREN_EXPR. - * typeck2.c (store_init_value): Call fold_non_dependent_expr instead - of instantiate_non_dependent_expr. - * tree.c (lvalue_kind): Handle PAREN_EXPR like NON_DEPENDENT_EXPR. - -2018-03-01 Nathan Sidwell - - PR c++/84434 - * name-lookup.c (member_vec_dedup): Remove manually peeled - iteration. Ignore dependent ctor inheritance. - -2018-03-01 Jason Merrill - - PR c++/71569 - decltype of template. - * parser.c (cp_parser_decltype_expr): Handle missing template args. - -2018-03-01 Marek Polacek - - PR c++/84596 - * constexpr.c (require_rvalue_constant_expression): New function. - * cp-tree.h: Declare it. - * semantics.c (finish_static_assert): Use it instead of - require_potential_rvalue_constant_expression. - -2018-03-01 Jason Merrill - Alexandre Oliva - - PR c++/71569 - ICE with redundant args on member variable template. - * decl.c (start_decl): Handle partial specialization of member - variable template. - * pt.c (determine_specialization): Allow partial specialization - of member variable template without specializing enclosing class. - (process_partial_specialization): Improve error message. - -2018-02-28 Jason Merrill - - PR c++/71784 - ICE with ref-qualifier and explicit specialization. - * pt.c (determine_specialization): Check ref-qualifier. - -2018-02-28 Jakub Jelinek - - PR c++/84609 - * parser.c (cp_parser_attributes_opt): Formatting fix. - (cp_parser_skip_balanced_tokens, cp_parser_skip_gnu_attributes_opt, - cp_parser_skip_std_attribute_spec_seq, cp_parser_skip_attributes_opt): - New functions. - (cp_parser_member_declaration): Use cp_parser_skip_attributes_opt - instead of tentative parse to peek over optional attribute tokens - to check for CPP_COLON after them. - - PR c++/83871 - PR c++/83503 - * pt.c (INCLUDE_STRING): Remove define. - (warn_spec_missing_attributes): Use pretty_printer instead of - std::string. Fix up inform call so that the list of attributes - is in %s argument. - -2018-02-28 Martin Sebor - - PR testsuite/84617 - * decl.c (duplicate_decls): Fully merge attributes const, pure, - and malloc. - -2018-02-28 Nathan Sidwell - - PR c++/84602 - * name-lookup.h (search_anon_aggr): Add defaulted WANT_TYPE arg. - * name-lookup.c (fields_linear_search): Look in an anon-aggr - regardless of want_type. - (search_anon_aggr): Just use get_class_binding_direct. - -2018-02-28 Jakub Jelinek - - * decl.c (cp_finish_decomp): Don't adjust eltscnt when calling - inform_n. - -2018-02-27 Martin Sebor - - * pt.c: Avoid including directly. - -2018-02-27 Martin Sebor - - PR c++/83871 - PR c++/83503 - * cp-tree.h (warn_spec_missing_attributes): New function. - ((check_explicit_specialization): Add an argument. Call the above - function. - * decl.c (duplicate_decls): Avoid applying primary function template's - attributes to its explicit specializations. - cp/pt.c (warn_spec_missing_attributes): Define. - -2018-02-27 Håkon Sandsmark - - PR c++/71546 - lambda init-capture with qualified-id. - * parser.c (cp_parser_lambda_introducer): Clear scope after - each lambda capture. - -2018-02-27 Nathan Sidwell - - PR c++/84426 - * name-lookup.h (get_member_slot): Rename ... - (find_member_slot): ... here. - (add_member_slot): New. - * name-lookup.c (member_vec_linear_search): No need to check for - NULL slot. - (get_member_slot): Rename ... - (find_member_slot): ... here. Don't add slot for incomplete class. - (add_member_slot): New. - * class.c (add_method): Adjust get_member_slot rename. Bail out - if push_class_level_binding fails. Create slot and grok - properties once we're committed to insertion. - -2018-02-27 Jason Merrill - - PR c++/84489 - dependent default template argument - * pt.c (type_unification_real): Handle early substitution failure. - -2018-02-26 Jason Merrill - - PR c++/84560 - ICE capturing multi-dimensional VLA. - * tree.c (array_of_runtime_bound_p): False if the element is - variably-modified. - - PR c++/84441 - ICE with base initialized from ?: - * call.c (unsafe_copy_elision_p): Handle COND_EXPR. - - PR c++/84520 - ICE with generic lambda in NSDMI. - * lambda.c (lambda_expr_this_capture): Don't look for fake NSDMI - 'this' in a generic lambda instantiation. - - PR c++/84559 - ICE with constexpr VLA. - * constexpr.c (ensure_literal_type_for_constexpr_object): Check - for constexpr variable with VLA type. - -2018-02-26 Jakub Jelinek - - PR c++/84558 - * constexpr.c (cxx_eval_vec_init_1): For reuse, treat NULL eltinit like - a valid constant initializer. Formatting fixes. - -2018-02-26 Paolo Carlini - - PR c++/84540 - * pt.c (tsubst_attributes): Handle correctly tsubst_attribute - returning NULL_TREE. - (apply_late_template_attributes): Likewise. - -2018-02-26 Jakub Jelinek - - PR c++/84557 - * parser.c (cp_parser_omp_var_list_no_open): Only call - cp_parser_lookup_name_simple on names satisfying identifier_p. - (cp_parser_oacc_routine): Likewise. - -2018-02-26 Jason Merrill - - PR c++/84551 - ICE with concepts and -g. - * parser.c (add_debug_begin_stmt): Do nothing in a concept. - -2018-02-26 Marek Polacek - - PR c++/84325 - * tree.c (replace_placeholders_r): Only check TREE_CONSTANT on - non-types. - -2018-02-26 Jason Merrill - - PR c++/84447 - ICE with deleted inherited ctor with default arg. - * call.c (build_over_call): Handle deleted functions in one place. - -2018-02-26 Paolo Carlini - - PR c++/84533 - * decl.c (redeclaration_error_message): Don't try to use - DECL_DECLARED_CONSTEXPR_P on CONST_DECLs. - -2018-02-26 Paolo Carlini - - * lambda.c (build_capture_proxy): Define static. - * cp-tree.h (build_capture_proxy): Remove. - -2018-02-26 Marek Polacek - - PR c++/84537 - * name-lookup.c (suggest_alternative_in_explicit_scope): Return false - if name is error node. - -2018-02-25 Jason Merrill - - PR c++/84015 - ICE with class deduction and auto template parm. - * pt.c (rewrite_template_parm): Use tf_partial in first tsubst. - -2018-02-24 Marek Polacek - - PR c++/83692 - * constexpr.c (maybe_constant_init_1): New function. - (maybe_constant_init): Make it a wrapper around maybe_constant_init_1. - (cxx_constant_init): New function. - * cp-tree.h (cxx_constant_init): Declare. - * typeck2.c (store_init_value): Call cxx_constant_init instead of - cxx_constant_value. Move the maybe_constant_init call under an 'else'. - -2018-02-22 Jason Merrill - - PR c++/70468 - ICE with constructor delegation via typedef. - * pt.c (tsubst_initializer_list): Check for other mem-initializers - with constructor delegation. - -2018-02-22 Jason Merrill - - PR c++/84424 - ICE with constexpr and __builtin_shuffle. - * constexpr.c (reduced_constant_expression_p): Handle CONSTRUCTOR of - VECTOR_TYPE. - -2018-02-22 Marek Polacek - - PR c++/84493 - * parser.c (cp_parser_braced_list): Use require_open instead of - consume_open. - -2018-02-21 Jason Merrill - - PR c++/84454 - ICE with pack expansion in signature. - * error.c (find_typenames_r): Also stop on EXPR_PACK_EXPANSION. - -2018-02-20 Siddhesh Poyarekar - - * cp-objcp-common.c (cxx_block_may_fallthru): Add case for - IF_STMT. - -2018-02-20 Paolo Carlini - - PR c++/84446 - * parser.c (cp_parser_init_declarator): Don't call start_lambda_scope - on error_mark_node. - -2018-02-20 Jakub Jelinek - - PR c++/84445 - * class.c (fixed_type_or_null) : Only test - TREE_HAS_CONSTRUCTOR if instance is not an internal function call. - - PR c++/84449 - * tree.c (bot_manip): If build_cplus_new or break_out_target_exprs - returns error_mark_node, return it immediately. - (break_out_target_exprs): If cp_walk_tree with bot_manip returns - error_mark_node, return error_mark_node. - - PR c++/84455 - * pt.c (tsubst_lambda_expr): If not nested, increment temporarily - function_depth to avoid GC during finish_lambda_function. - -2018-02-19 Jason Merrill - - PR c++/84429 - ICE capturing VLA. - * lambda.c (build_capture_proxy): Handle reference refs. - -2018-02-19 Jakub Jelinek - - PR c++/84448 - * parser.c (cp_parser_binary_expression): For no_toplevel_fold_p, if - either operand is error_mark_node, set current.lhs to that instead of - creating a binary op with error_mark_node operands. - - PR c++/84430 - * constexpr.c (potential_constant_expression_1): Handle OMP_SIMD. - -2018-02-19 Paolo Carlini - - PR c++/84348 - * decl.c (grokdeclarator): Early return error_mark_node upon - ill-formed friend declaration. - -2018-02-16 Marek Polacek - Jakub Jelinek - - PR c++/84192 - * constexpr.c (cxx_eval_constant_expression) : Don't - set *jump_target to anything if jump_target is NULL. - -2018-02-16 Jason Merrill - - PR c++/84151 - unnecessary volatile load with static member. - * call.c (build_new_method_call_1): Avoid loading from a volatile - lvalue used as the object argument for a static member function. - - PR c++/81853 - using-directive and constexpr. - * constexpr.c (cxx_eval_constant_expression): Handle USING_STMT. - - PR c++/84420 - ICE with structured binding in lambda. - * lambda.c (is_capture_proxy): Check DECL_DECOMPOSITION_P. - - PR c++/83835 - C++17 error with constructor ctors. - * call.c (build_special_member_call): Set TARGET_EXPR_DIRECT_INIT_P. - - PR c++/82664 - ICE with reference to function template parm. - * pt.c (convert_nontype_argument_function): Avoid obfuscationg - NOP_EXPRs. - - PR c++/82764 - C++17 ICE with empty base - * class.c (build_base_field_1): Set DECL_SIZE to zero for empty base. - -2018-02-16 Jason Merrill - - PR c++/84421 - type-dependent if constexpr - * semantics.c (finish_if_stmt_cond): Check type_dependent_expression_p. - -2018-02-16 Nathan Sidwell - - Deprecate -ffriend-injection. - * decl.c (cxx_init_decl_processing): Emit warning on option. - * name-lookup.c (do_pushdecl): Emit warning if we push a visible - friend. - -2018-02-16 Paolo Carlini - - PR c++/82468 - * decl.c (check_special_function_return_type): Reject template - template parameter in deduction guide. - -2018-02-16 Nathan Sidwell - - PR c++/84375 - * name-lookup.c (do_pushdecl): Bail out on bad local friend injection. - -2018-02-15 Jason Merrill - - PR c++/83227 - C++17 ICE with init-list derived-to-base conversion. - * call.c (convert_like_real): Don't use the copy-list-initialization - shortcut for ck_base. - - PR c++/84045 - ICE with typedef and noexcept. - * except.c (build_noexcept_spec): Use strip_typedefs_expr. - - PR c++/84376 - ICE with omitted template arguments. - * pt.c (dguide_name_p): Check for IDENTIFIER_NODE. - - PR c++/84368 - wrong error with local variable in variadic lambda. - * pt.c (tsubst_pack_expansion): Fix handling of non-packs in - local_specializations. - -2018-02-15 Paolo Carlini - - PR c++/84330 - * constraint.cc (tsubst_constraint_info): Handle an error_mark_node - as first argument. - -2018-02-14 Paolo Carlini - - PR c++/84350 - * pt.c (do_auto_deduction): Don't check the TREE_TYPE of a null - init, early return. - -2018-02-14 Nathan Sidwell - - * decl2.c (mark_vtable_entries): Set input_location to decl's. - (c_parse_final_cleanups): Restore input_location after emitting - vtables. - -2018-02-14 Paolo Carlini - - * cp-tree.h (do_auto_deduction (tree, tree, tree)): Remove. - (do_auto_deduction (tree, tree, tree, tsubst_flags_t, - auto_deduction_context, tree, int): Add defaults. - * pt.c (do_auto_deduction (tree, tree, tree)): Remove definition. - (tsubst_omp_for_iterator): Adjust do_auto_deduction call, forward - tsubst_flags_t argument. - * init.c (build_new): Likewise. - -2018-02-13 Jakub Jelinek - - PR c++/84364 - * typeck.c (check_return_expr): Don't emit -Weffc++ warning - about return other than *this in assignment operators if - retval is type dependent expression. - -2018-02-13 Paolo Carlini - - PR c++/84333 - * call.c (build_conditional_expr_1): Use cp_save_expr instead of - save_expr for the G++ extension. - -2018-02-13 Jason Merrill - - PR c++/84080 - ICE with return type deduction and specialization. - * pt.c (determine_specialization): Check uses_template_parms. - - Fix more variadic capture issues. - * pt.c (find_parameter_packs_r): Also look at explicit captures. - (check_for_bare_parameter_packs): Check current_class_type for - lambda context. - (extract_locals_r): Handle seeing a full instantiation of a pack. - (tsubst_pack_expansion): Likewise. Force lambda capture. - * parser.c (cp_parser_lambda_introducer): Don't - check_for_bare_parameter_packs. - - PR c++/84338 - wrong variadic sizeof. - * pt.c (argument_pack_select_arg): Like the macro, but look through - a pack expansion. - (tsubst, tsubst_copy, dependent_template_arg_p): Use it. - (extract_fnparm_pack): Do make_pack_expansion. - (extract_locals_r): Do strip a pack expansion. - * cp-tree.h (ARGUMENT_PACK_SELECT_ARG): Remove. - -2018-02-12 Jakub Jelinek - - PR c++/84341 - * parser.c (cp_parser_binary_expression): Use build_min instead of - build2_loc to build the no_toplevel_fold_p toplevel binary expression. - -2018-02-12 Nathan Sidwell - - PR c++/84263 - * parser.c (cp_parser_decltype): Push and pop - deferring_access_checks. Reorganize to avoid goto. - -2018-02-12 Richard Biener - - PR c++/84281 - * constexpr.c (cxx_eval_vec_init_1): Use a RANGE_EXPR to compact - uniform constructors and delay allocating them fully. - -2018-02-09 Jason Merrill - - PR c++/84036 - ICE with variadic capture. - Handle variadic capture proxies more like non-variadic. - * lambda.c (build_capture_proxy): Remove workaround. - * pt.c (find_parameter_packs_r): The proxy is a pack. - (instantiate_class_template_1): Remove dead lambda code. - (extract_fnparm_pack): Don't make_pack_expansion. - (extract_locals_r): Don't strip a pack expansion. - (tsubst_pack_expansion): Handle proxy packs. Use - PACK_EXPANSION_EXTRA_ARGS less. - (tsubst_decl) [FIELD_DECL]: Don't register_specialization. - (tsubst_copy) [FIELD_DECL]: Don't retrieve*_specialization. - [VAR_DECL]: Handle ARGUMENT_PACK_SELECT. - (tsubst_expr) [DECL_EXPR]: Handle proxy packs. - (tsubst_copy_and_build) [VAR_DECL]: Handle proxy packs normally. - -2018-02-10 Jakub Jelinek - - PR sanitizer/83987 - * tree.c (cp_free_lang_data): Revert 2018-01-23 change. - -2018-02-09 Jason Merrill - - PR c++/81917 - ICE with void_t and partial specialization. - * pt.c (instantiate_class_template_1): Set TYPE_BEING_DEFINED before - calling most_specialized_partial_spec. - -2018-02-09 Nathan Sidwell - - PR c/84293 - * typeck.c (cp_build_indirect_ref_1, build_reinterpret_cast_1): - Pass expr location to strict_aliasing_warning. - -2018-02-09 Jason Merrill - - PR c++/84296 - ICE with qualified-id in template. - PR c++/83714 - * pt.c (unknown_base_ref_p): New. - (instantiation_dependent_scope_ref_p): Use it instead of - any_dependent_bases_p. - -2018-02-09 Marek Polacek - Jakub Jelinek - - PR c++/83659 - * constexpr.c (cxx_fold_indirect_ref): Sync some changes from - fold_indirect_ref_1, including poly_*int64. Verify first that - tree_fits_poly_int64_p (op01). Formatting fixes. - -2018-02-08 Paolo Carlini - - * constexpr.c (cxx_eval_component_reference): Use INDIRECT_REF_P. - * lambda.c (build_capture_proxy): Likewise. - * search.c (field_access_p): Likewise. - * semantics.c (omp_clause_decl, omp_privatize_field, - finish_omp_clauses): Likewise. - -2018-02-08 Paolo Carlini - - PR c++/83806 - * typeck.c (decay_conversion): Use mark_rvalue_use for the special - case of nullptr too. - -2018-02-08 Nathan Sidwell - - * class.c (finish_struct): Fix std:initializer_list diagnostic - formatting. - -2018-02-08 Paolo Carlini - - PR c++/83204 - * pt.c (tsubst_copy_and_build): Use force_paren_expr for INDIRECT_REF. - -2018-02-07 Jakub Jelinek - - PR c++/84082 - * parser.c (cp_parser_dot_deref_incomplete): New function. - (cp_parser_postfix_dot_deref_expression): Use it. - -2018-02-07 David Malcolm - - PR c++/81610 - PR c++/80567 - * name-lookup.c (suggest_rid_p): New function. - (lookup_name_fuzzy): Replace enum-rid-filtering logic with call to - suggest_rid_p. - -2018-02-07 Jason Merrill - - PR c++/84182 - ICE with captured lambda - PR c++/84181 - * pt.c (extract_locals_r, extract_local_specs): New. - (tsubst_pack_expansion): Use them. - -2018-02-07 Martin Liska - - PR c++/84059. - * class.c (add_method): Append argument value. - * cp-tree.h (maybe_version_functions): Add new argument. - * decl.c (decls_match): Call it if a declaration does not - have DECL_FUNCTION_VERSIONED. - (maybe_version_functions): record argument is added. - -2018-02-05 Marek Polacek - - * class.c: Remove unused global variables. - (build_primary_vtable): Don't gather statistics. - (print_class_statistics): Remove. - * cp-tree.h (print_class_statistics): Remove. - * tree.c (cxx_print_statistics): Don't call print_class_statistics. - -2018-02-02 Paolo Carlini - - * class.c (is_really_empty_class): Use DECL_UNNAMED_BIT_FIELD. - * constexpr.c (cx_check_missing_mem_inits): Likewise. - * decl.c (next_initializable_field, find_decomp_class_base, - cp_finish_decomp): Likewise. - * typeck2.c (process_init_constructor_record): Likewise. - -2018-02-02 Jason Merrill - - PR c++/84181 - ICE with lambda parm in template argument. - * tree.c (strip_typedefs_expr): Use cp_tree_operand_length. - -2018-02-01 Jason Merrill - - PR c++/84160 - ICE with nested variadic capture. - * lambda.c (is_capture_proxy_with_ref): New. - (insert_capture_proxy): Don't set DECL_CAPTURED_VARIABLE from a - COMPONENT_REF. - * expr.c (mark_use): Use is_capture_proxy_with_ref. - * constexpr.c (potential_constant_expression_1): Likewise. - * semantics.c (process_outer_var_ref): Likewise. - -2018-02-01 Marek Polacek - - PR c++/84125 - * typeck.c (build_address): Relax the assert when - processing_template_decl. - -2018-02-01 Jason Merrill - - PR c++/84126 - ICE with variadic generic lambda - PR c++/84036 - PR c++/82249 - * pt.c (tsubst_pack_expansion): Handle function parameter_packs in - PACK_EXPANSION_EXTRA_ARGS. - -2018-02-01 Paolo Carlini - - PR c++/83796 - * call.c (convert_like_real): If w're initializing from {} explicitly - call abstract_virtuals_error_sfinae. - -2018-01-31 Jason Merrill - Jakub Jelinek - - PR c++/83993 - * constexpr.c (cxx_eval_outermost_constant_expr): Build NOP_EXPR - around non-constant ADDR_EXPRs rather than clearing TREE_CONSTANT - on ADDR_EXPR. - -2018-01-31 Jakub Jelinek - - PR c++/83993 - * constexpr.c (diag_array_subscript): Emit different diagnostics - if TYPE_DOMAIN (arraytype) is NULL. - (cxx_eval_array_reference, cxx_eval_store_expression): For arrays - with NULL TYPE_DOMAIN use size_zero_node as nelts. - -2018-01-31 Paolo Carlini - - PR c++/84092 - * semantics.c (finish_qualified_id_expr): When handling an - UNBOUND_CLASS_TEMPLATE only adjust qualifying_class and expr. - -2018-01-31 Marek Polacek - - PR c++/84138 - * cp-gimplify.c (cp_fold): Check if X is an error node before - calling useless_type_conversion_p. - -2018-01-30 Jason Merrill - - PR c++/84091 - ICE with local class in lambda in template. - * decl2.c (determine_visibility): Look for outer containing template - instantiation. - - PR c++/84098 - ICE with lambda in template NSDMI. - * pt.c (instantiate_class_template_1): Ignore more lambdas. - -2018-01-29 Jason Merrill - - PR c++/68810 - wrong location for reinterpret_cast error. - * cvt.c (cp_convert_to_pointer): Always build a CONVERT_EXPR when - !dofold. - -2018-01-29 Marek Polacek - - PR c++/83996 - * constexpr.c (cxx_fold_indirect_ref): Compute ((foo *)&fooarray)[1] - => fooarray[1] in offset_int. - -2018-01-29 Jason Merrill - - PR c++/83942 - wrong unused warning with static_cast. - * cvt.c (ocp_convert): Call mark_rvalue_use. - -2018-01-26 Jason Merrill - - PR c++/83956 - wrong dtor error with anonymous union - * method.c (walk_field_subobs): Variant members only affect - deletedness. - (maybe_explain_implicit_delete): Pass &deleted_p for diagnostic. - - PR c++/84036 - ICE with variadic capture. - PR c++/82249 - * pt.c (tsubst_pack_expansion): When optimizing a simple - substitution, pull a single pack expansion out of its pack. - - PR c++/82514 - ICE with local class in generic lambda. - * pt.c (regenerated_lambda_fn_p): Remove. - (enclosing_instantiation_of): Don't use it. - (tsubst_function_decl): Call enclosing_instantiation_of. - - * pt.c (lookup_template_class_1): Add sanity check. - * name-lookup.c (do_pushtag): Don't add closures to local_classes. - -2018-01-25 Jakub Jelinek - - PR c++/84031 - * decl.c (find_decomp_class_base): Ignore unnamed bitfields. Ignore - recursive calls that return ret. - (cp_finish_decomp): Ignore unnamed bitfields. - -2018-01-23 Jason Merrill - - PR c++/82249 - wrong mismatched pack length error. - * pt.c (extract_fnparm_pack, tsubst_pack_expansion): Handle - unsubstituted function parameter pack. - -2018-01-23 Paolo Carlini - - PR c++/83921 - * decl.c (check_for_uninitialized_const_var): Not static; add - bool and tsubst_flags_t parameters; adjust to be used both in - constexpr context and not. - * constexpr.c (potential_constant_expression_1): Use the above. - * cp-tree.h (check_for_uninitialized_const_var): Declare. - -2018-01-23 Jason Merrill - - PR c++/83947 - ICE with auto declarations. - * pt.c (do_auto_deduction): Don't deduce from an auto decl. - * decl.c (undeduced_auto_decl): Limit to vars and fns. - -2018-01-23 David Malcolm - - PR c++/83974 - * pt.c (tsubst_copy_and_build) : Remove early bailout - for pointer to member function types. - -2018-01-23 Jakub Jelinek - - PR sanitizer/83987 - * tree.c (cp_free_lang_data): Change DECL_VALUE_EXPR of - DECL_OMP_PRIVATIZED_MEMBER vars to error_mark_node. - -2018-01-23 Nathan Sidwell - - PR c++/83988 - * pt.c (tsubst_baselink): Remove optype assert. - * ptree.c (cxx_print_xnode): Print BASELINK_OPTYPE. - -2018-01-23 Jakub Jelinek - - PR c++/83958 - * decl.c (cp_finish_decomp): Diagnose if reference structure binding - refers to incomplete type. - -2018-01-23 Nathan Sidwell - - Deprecate ARM-era for scope handling - * decl.c (poplevel): Flag_new_for_scope is a boolean-like. - (cxx_init_decl_processing): Deprecate flag_new_for_scope being - cleared. - * name-lookup.c (check_for_out_of_scope_variable): Deprecate and - cleanup handling. - * semantics.c (begin_for_scope): Flag_new_for_scope is - boolean-like. - (finish_for_stmt, begin_range_for_stmt): Likewise. - -2018-01-22 Jason Merrill - - PR c++/83720 - * decl2.c (determine_visibility): Fix template_decl handling - instead of blocking it. - - PR c++/83720 - ICE with lambda and LTO. - * decl2.c (determine_visibility): Clear template_decl for - function-scope decls. Propagate anonymous linkage from containing - function. - -2018-01-22 Marek Polacek - - PR c++/81933 - * typeck2.c (split_nonconstant_init_1): Return false if we didn't - split out anything. - -2018-01-22 Ville Voutilainen - - PR c++/83895 - * decl.c (grokdeclarator): Don't diagnose extra parens - on typedefs. - -2018-01-19 Jakub Jelinek - - PR c++/81167 - * call.c (joust): Use TREE_TYPE (source) if source is - a POINTER_TYPE_P rather than if ! DECL_CONSTRUCTOR_P (w->fn). - - PR c++/83919 - * typeck.c (convert_for_assignment): Suppress warn_ignored_qualifiers - for direct enum init. - * decl.c (reshape_init): Likewise. - -2018-01-19 Marek Polacek - - * constexpr.c (fold_simple): Simplify. - -2018-01-18 Jason Merrill - - PR c++/83714 - * search.c (any_dependent_bases_p): Handle null TREE_BINFO. - * pt.c (instantiation_dependent_scope_ref_p): True if - any_dependent_bases_p. - -2018-01-18 Paolo Carlini - - * cp-tree.h: Fix comment typo (DECL_NON_TRIVIALLY_INITIALIZED_P - vs DECL_NONTRIVIALLY_INITIALIZED_P). - -2018-01-18 Jason Merrill - - PR c++/82461 - constexpr list-initialized member - * constexpr.c (potential_constant_expression_1): Check - TARGET_EXPR_DIRECT_INIT_P. - -2018-01-18 Paolo Carlini - - PR c++/81013 - * decl.c (xref_basetypes): Early return upon error about derived - union. - -2018-01-18 Nathan Sidwell - - PR c++/83160 - * cp-tree.h (mark_use): Declare. - * expr.c (mark_use): Make extern. - * call.c (direct_reference_binding): Set inner conv's - rvaluedness_matches_p, if it is an identity. - (convert_like_real): Mark lvalue or rvalue use for identity as - rvaledness_matches_p demands. - -2018-01-18 Jakub Jelinek - - PR c++/83824 - * parser.c (attr_chainon): New function. - (cp_parser_label_for_labeled_statement, cp_parser_decl_specifier_seq, - cp_parser_namespace_definition, cp_parser_init_declarator, - cp_parser_type_specifier_seq, cp_parser_parameter_declaration, - cp_parser_gnu_attributes_opt): Use it. - (cp_parser_member_declaration, cp_parser_objc_class_ivars, - cp_parser_objc_struct_declaration): Likewise. Don't reset - prefix_attributes if attributes is error_mark_node. - -2018-01-17 Paolo Carlini - - PR c++/78344 - * decl.c (grokdeclarator): Do not append the error_mark_node - due to an erroneous optional attribute-specifier-seq. - -2018-01-17 Jakub Jelinek - - PR c++/83897 - * cp-gimplify.c (cp_maybe_instrument_return): Handle - CLEANUP_POINT_EXPR. - -2018-01-17 Paolo Carlini - - PR c++/81054 - * constexpr.c (ensure_literal_type_for_constexpr_object): Return - error_mark_node when we give an error. - * decl.c (cp_finish_decl): Use the latter. - -2018-01-17 Nathan Sidwell - - PR c++/83287 - * init.c (build_raw_new_expr): Scan list for lookups to keep. - -2018-01-17 David Malcolm - - PR c++/83814 - * expr.c (fold_for_warn): Move from c-common.c, reducing to just - the C++ part. If processing a template, call - fold_non_dependent_expr rather than fully folding. - -2018-01-17 Jason Merrill - - PR c++/81067 - redundant NULL warning. - * call.c (convert_like_real): Restore null_node handling. - -2018-01-17 Jason Merrill - - PR c++/81843 - ICE with variadic member template. - PR c++/72801 - * pt.c (unify_pack_expansion): Don't try to deduce enclosing - template args. - -2018-01-17 David Malcolm - - PR c++/83799 - * pt.c (type_dependent_expression_p): Strip any location wrapper - before testing tree codes. - (selftest::test_type_dependent_expression_p): New function. - (selftest::cp_pt_c_tests): Call it. - -2018-01-17 Nathan Sidwell - - PR c++/83739 - * pt.c (tsubst_expr) : Rebuild a range_for if - this not a final instantiation. - -2018-01-16 Jason Merrill - - PR c++/83714 - ICE checking return in template. - * typeck.c (check_return_expr): Call build_non_dependent_expr. - -2018-01-16 Jakub Jelinek - - PR c++/83817 - * pt.c (tsubst_copy_and_build) : If function - is AGGR_INIT_EXPR rather than CALL_EXPR, set AGGR_INIT_FROM_THUNK_P - instead of CALL_FROM_THUNK_P. - - PR c++/83825 - * name-lookup.c (member_vec_dedup): Return early if len is 0. - (resort_type_member_vec, set_class_bindings, - insert_late_enum_def_bindings): Use vec qsort method instead of - calling qsort directly. - -2018-01-15 Martin Sebor - - PR c++/83588 - * class.c (find_flexarrays): Make a record of multiple flexible array - members. - -2018-01-12 Jason Merrill - - PR c++/83186 - ICE with static_cast of list-initialized temporary. - * typeck.c (build_static_cast): Use build_non_dependent_expr. - -2018-01-12 Nathan Sidwell - - * cp-tree.h (mark_rvalue_use): Add parm name. - * expr.c (mark_lvalue_use, mark_lvalue_use_nonread): Move next to - mark_rvalue_use. - * call.c (convert_like_real): Fix formatting. - -2018-01-11 Jason Merrill - - PR c++/82728 - wrong -Wunused-but-set-variable - PR c++/82799 - PR c++/83690 - * call.c (perform_implicit_conversion_flags): Call mark_rvalue_use. - * decl.c (case_conversion): Likewise. - * semantics.c (finish_static_assert): Call - perform_implicit_conversion_flags. - -2018-01-11 Nathan Sidwell - - * method.c (enum mangling_flags): Delete long-dead enum. - -2018-01-10 Paolo Carlini - - * parser.c (cp_parser_std_attribute_spec): When - token_pair::require_open / require_close return false simply - return error_mark_node, avoid duplicate cp_parser_error about - expected '(' / ')', respectively. - -2018-01-10 David Malcolm - - PR c++/43486 - * call.c (null_ptr_cst_p): Strip location wrappers when - converting from '0' to a pointer type in C++11 onwards. - (conversion_null_warnings): Replace comparison with null_node with - call to null_node_p. - (build_over_call): Likewise. - * cp-gimplify.c (cp_fold): Remove the early bailout when - processing_template_decl. - * cp-lang.c (selftest::run_cp_tests): Call - selftest::cp_pt_c_tests and selftest::cp_tree_c_tests. - * cp-tree.h (cp_expr::maybe_add_location_wrapper): New method. - (selftest::run_cp_tests): Move decl to bottom of file. - (null_node_p): New inline function. - (selftest::cp_pt_c_tests): New decl. - (selftest::cp_tree_c_tests): New decl. - * cvt.c (build_expr_type_conversion): Replace comparison with - null_node with call to null_node_p. - * error.c (args_to_string): Likewise. - * except.c (build_throw): Likewise. - * mangle.c (write_expression): Skip location wrapper nodes. - * parser.c (literal_integer_zerop): New function. - (cp_parser_postfix_expression): Call maybe_add_location_wrapper on - the result for RID_TYPEID. Pass true for new "wrap_locations_p" - param of cp_parser_parenthesized_expression_list. When calling - warn_for_memset, replace integer_zerop calls with - literal_integer_zerop, eliminating the double logical negation - cast to bool. Eliminate the special-casing for CONST_DECL in - favor of the fold_for_warn within warn_for_memset. - (cp_parser_parenthesized_expression_list): Add "wrap_locations_p" - param, defaulting to false. Convert "expr" to a cp_expr, and call - maybe_add_location_wrapper on it when wrap_locations_p is true. - (cp_parser_unary_expression): Call maybe_add_location_wrapper on - the result for RID_ALIGNOF and RID_SIZEOF. - (cp_parser_builtin_offsetof): Likewise. - * pt.c: Include "selftest.h". - (tsubst_copy): Handle location wrappers. - (tsubst_copy_and_build): Likewise. - (build_non_dependent_expr): Likewise. - (selftest::test_build_non_dependent_expr): New function. - (selftest::cp_pt_c_tests): New function. - * tree.c: Include "selftest.h". - (lvalue_kind): Handle VIEW_CONVERT_EXPR location wrapper nodes. - (selftest::test_lvalue_kind): New function. - (selftest::cp_tree_c_tests): New function. - * typeck.c (string_conv_p): Strip any location wrapper from "exp". - (cp_build_binary_op): Replace comparison with null_node with call - to null_node_p. - (build_address): Use location of operand when building address - expression. - -2018-01-10 Marek Polacek - - PR c++/82541 - * call.c (build_conditional_expr_1): Check complain before warning. - * pt.c (tsubst_copy_and_build) : Suppress - -Wduplicated-branches. - -2018-01-10 Jakub Jelinek - - PR c++/81327 - * call.c (maybe_warn_class_memaccess): Add forward declaration. - Change last argument from tree * to const vec *, adjust - args uses and check number of operands too. Don't strip away any - nops. Use maybe_constant_value when looking for INTEGER_CST args. - Deal with src argument not having pointer type. Check - tree_fits_uhwi_p before calling tree_to_uhwi. Remove useless - test. - (build_over_call): Call maybe_warn_class_memaccess here on the - original arguments. - (build_cxx_call): Rather than here on converted arguments. - -2018-01-10 Paolo Carlini - - PR c++/81055 - * init.c (build_vec_init): Avoid building an INIT_EXPR with - error_mark_node as second argument. - -2018-01-09 Jakub Jelinek - - PR c++/83734 - * constexpr.c (cxx_eval_statement_list): Ignore DEBUG_BEGIN_STMTs - in STATEMENT_LIST. Remove unneeded assert. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * constexpr.c (cxx_eval_array_reference): Handle polynomial - VECTOR_CST_NELTS. - (cxx_fold_indirect_ref): Handle polynomial TYPE_VECTOR_SUBPARTS. - * call.c (build_conditional_expr_1): Likewise. - * decl.c (cp_finish_decomp): Likewise. - * mangle.c (write_type): Likewise. - * typeck.c (structural_comptypes): Likewise. - (cp_build_binary_op): Likewise. - * typeck2.c (process_init_constructor_array): Likewise. - -2018-01-03 Jakub Jelinek - - PR c++/83555 - * typeck.c (build_static_cast_1): For static casts to reference types, - call build_base_path with flag_delete_null_pointer_checks as nonnull - instead of always false. When -fsanitize=null, call - ubsan_maybe_instrument_reference on the NULL reference INTEGER_CST. - * cp-gimplify.c (cp_genericize_r): Don't walk subtrees of UBSAN_NULL - call if the first argument is INTEGER_CST with REFERENCE_TYPE. - -2018-01-03 Nathan Sidwell - - PR c++/83667 - * method.c (make_alias_for): Copy DECL_CONTEXT. - -2018-01-03 Marek Polacek - - PR c++/83592 - * decl.c (grokdeclarator): Don't warn about MVP in typename context. - -2018-01-03 Jakub Jelinek - - PR preprocessor/83602 - * name-lookup.c (lookup_name_fuzzy): Don't use macro_use_before_def - for builtin macros. - - PR c++/83634 - * cp-gimplify.c (cp_fold) : If the operand folds to - error_mark_node, return error_mark_node. +2019-01-01 Jakub Jelinek Update copyright years. - -2018-01-02 Jakub Jelinek - - PR c++/83556 - * tree.c (replace_placeholders_r): Pass NULL as last argument to - cp_walk_tree instead of d->pset. If non-TREE_CONSTANT and - non-PLACEHOLDER_EXPR tree has been seen already, set *walk_subtrees - to false and return. - (replace_placeholders): Pass NULL instead of &pset as last argument - to cp_walk_tree. - -2018-01-02 Nathan Sidwell - - * constexpr.c (cxx_bind_parameters_in_call): Remove unneeded local - lval var. -Copyright (C) 2018 Free Software Foundation, Inc. +Copyright (C) 2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/ChangeLog-2018 gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/ChangeLog-2018 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/ChangeLog-2018 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/ChangeLog-2018 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,5477 @@ +2018-12-27 Martin Liska + + PR c++/88263 + * decl2.c (get_local_tls_init_fn): Add location_t argument and + use it. + (get_tls_init_fn): Call it with location of variable for which + we'll need to create tls_init function. + (handle_tls_init): Likewise. + +2018-12-21 Jakub Jelinek + + PR c++/86524 + PR c++/88446 + * cp-tree.h (cp_fold_maybe_rvalue, cp_fold_rvalue): Declare. + (fold_non_dependent_expr): Add manifestly_const_eval argument. + * constexpr.c (cxx_eval_builtin_function_call): Evaluate + __builtin_constant_p if ctx->manifestly_const_eval even in constexpr + functions. Don't reuse dummy{1,2} vars between different arguments. + Use cp_fold_rvalue instead of cp_fully_fold. Fix comment typo. + (fold_non_dependent_expr): Add manifestly_const_eval argument, pass + it through to cxx_eval_outermost_constant_expr and + maybe_constant_value. + * cp-gimplify.c (cp_fold_maybe_rvalue, cp_fold_rvalue): No longer + static. + * semantics.c (finish_static_assert): Call fold_non_dependent_expr + with true as manifestly_const_eval. + +2018-12-20 Marek Polacek + + PR c++/88196 - ICE with class non-type template parameter. + * pt.c (convert_nontype_argument): If the expr is a PTRMEM_CST, also + check if the type we're converting it to is TYPE_PTRMEM_P. + +2018-12-20 H.J. Lu + + PR c/51628 + * call.c (convert_for_arg_passing): Call + warn_for_address_or_pointer_of_packed_member. + * typeck.c (convert_for_assignment): Likewise. + +2018-12-20 Jakub Jelinek + + PR c++/88180 + * parser.c (cp_parser_class_specifier_1): If + cp_parser_check_type_definition fails, skip default arguments, NSDMIs, + etc. like for erroneous template args. + + * cp-tree.h (cp_fully_fold_init): Declare. + * cp-gimplify.c (cp_fully_fold_init): New function. + * typeck2.c (split_nonconstant_init, store_init_value): Use it + instead of cp_fully_fold. + +2018-12-19 Segher Boessenkool + + * parser.c (cp_parser_asm_definition): Do not allow any asm qualifiers + on top-level asm. + +2018-12-19 Segher Boessenkool + + * parser.c (cp_parser_asm_definition) : Give + a more specific error message (instead of just falling through). + +2018-12-19 Segher Boessenkool + + * parser.c (cp_parser_asm_definition): Rewrite the loop to work without + "done" boolean variable. + * parser.c (cp_parser_asm_definition): Keep track of the location each + asm qualifier is first seen; use that to give nicer "duplicate asm + qualifier" messages. + +2018-12-19 Segher Boessenkool + + * parser.c (cp_parser_asm_definition): Rewrite the loop to work without + "done" boolean variable. + +2018-12-19 David Malcolm + + PR c++/88375 + * typeck.c (convert_for_assignment): Capture location of rhs + before stripping, and if available. Use the location when + complaining about bad conversions, labelling it with the + rhstype if the location was present. + * typeck2.c (digest_init_r): Capture location of init before + stripping. + +2018-12-19 David Malcolm + + PR c++/87504 + * call.c (op_error): Convert 1st param from location_t to + const op_location_t &. Use binary_op_rich_location for binary + ops. + (build_conditional_expr_1): Convert 1st param from location_t to + const op_location_t &. + (build_conditional_expr): Likewise. + (build_new_op_1): Likewise. + (build_new_op): Likewise. + * cp-tree.h (build_conditional_expr): Likewise. + (build_new_op): Likewise. + (build_x_binary_op): Likewise. + (cp_build_binary_op): Likewise. + * parser.c (cp_parser_primary_expression): Build a location + for id-expression nodes. + (cp_parser_binary_expression): Use an op_location_t when + calling build_x_binary_op. + (cp_parser_operator): Build a location for user-defined literals. + * typeck.c (build_x_binary_op): Convert 1st param from location_t + to const op_location_t &. + (cp_build_binary_op): Likewise. Use binary_op_rich_location. + +2018-12-19 David Malcolm + + PR c++/43064 + PR c++/43486 + * call.c (build_conditional_expr_1): Strip location wrappers when + checking for CONST_DECL. + (conversion_null_warnings): Use location of "expr" if available. + * class.c (fixed_type_or_null): Handle location wrappers. + * constexpr.c (potential_constant_expression_1): Likewise. + * cvt.c (ignore_overflows): Strip location wrappers when + checking for INTEGER_CST, and re-wrap the result if present. + (ocp_convert): Call fold_for_warn before checking for INTEGER_CST. + * decl.c (reshape_init_r): Strip any location wrapper. + (undeduced_auto_decl): Likewise. + * expr.c (mark_discarded_use): Likewise for expr. + * init.c (build_aggr_init): Likewise before checking init for + DECL_P. + (warn_placement_new_too_small): Call fold_for_warn on adj before + checking for CONSTANT_CLASS_P, and on nelts. Strip any location + wrapper from op0 and on oper before checking for VAR_P. + * parser.c (cp_parser_primary_expression): Call + maybe_add_location_wrapper on numeric and string literals. + (cp_parser_postfix_expression): Strip any location wrapper when + checking for DECL_IS_BUILTIN_CONSTANT_P. + (cp_parser_unary_expression): Ensure that folding of NEGATE_EXPR + around a constant happens in the presence of location wrappers and + returns a wrapped result. + (cp_parser_has_attribute_expression): Strip any location wrapper + from "oper". + (cp_parser_binary_expression): Strip any location wrapper when + checking for DECL_P on the lhs. + (cp_parser_decltype): Strip any location wrapper from result of + cp_parser_decltype_expr. + (cp_parser_mem_initializer): Add location wrappers to the + parenthesized expression list. + (cp_parser_template_parameter_list): Don't create wrapper nodes + within a template-parameter-list. + (cp_parser_template_argument_list): Don't create wrapper nodes + within a template-argument-list. + (cp_parser_parameter_declaration): Strip location wrappers from + default arguments. + (cp_parser_gnu_attribute_list): Don't create wrapper nodes. + (cp_parser_std_attribute_spec_seq): Likewise. + (cp_parser_omp_all_clauses): Don't create wrapper nodes within + OpenMP clauses. + (cp_parser_omp_for_loop): Likewise. + (cp_parser_omp_declare_reduction_exprs): Likewise. + * pt.c (convert_nontype_argument_function): Strip location + wrappers from fn_no_ptr before checking for FUNCTION_DECL. + (tsubst_default_argument): Move note about which callsite led to + instantiation to after the check_default_argument call. + (do_auto_deduction): Likewise from init before checking for + DECL_P. + * semantics.c (force_paren_expr): Likewise from expr before + checking for DECL_P. + (finish_parenthesized_expr): Likewise from expr before + checking for STRING_CST. + (perform_koenig_lookup): Likewise from fn. + (finish_call_expr): Likewise. + (finish_id_expression): Rename to... + (finish_id_expression_1): ...this, calling + maybe_add_location_wrapper on the result. + (capture_decltype): Use lookup_name_real rather than value_member + when looking up decl within the capture-list. + * tree.c (cp_stabilize_reference): Strip any location wrapper. + (builtin_valid_in_constant_expr_p): Likewise. + (strip_typedefs_expr): Strip any location wrapper before checking + for decls or constants. + (is_overloaded_fn): Likewise. + (maybe_get_fns): Likewise. + (selftest::test_lvalue_kind): Verify lvalue_p. + * typeck.c (cxx_sizeof_expr): Strip any location wrapper. + (cxx_alignof_expr): Likewise. + (is_bitfield_expr_with_lowered_type): Handle location wrappers. + (cp_build_array_ref): Call maybe_constant_value on "idx". + (cp_build_binary_op): Strip location wrapper from first_arg before + checking for PARM_DECL. Likewise for op1 before checking for + INTEGER_CST in two places. Likewise for orig_op0 and orig_op1 + when checking for STRING_CST. + (cp_build_addr_expr_1): Likewise for arg when checking for + FUNCTION_DECL. + (cp_build_modify_expr): Likewise for newrhs when checking for + STRING_CST. + (convert_for_assignment): Don't strip location wrappers when + stripping NON_LVALUE_EXPR. + (maybe_warn_about_returning_address_of_local): Strip location + wrapper from whats_returned before checking for DECL_P. + (can_do_nrvo_p): Strip location wrapper from retval. + (treat_lvalue_as_rvalue_p): Likewise. + (check_return_expr): Likewise. + * typeck2.c (cxx_incomplete_type_diagnostic): Strip location + wrapper from value before checking for VAR_P or PARM_DECL. + (digest_init_r): Strip location wrapper from init. When + copying "init", also copy the wrapped node. + +2018-12-19 Jakub Jelinek + + PR c++/87934 + * constexpr.c (cxx_eval_constant_expression) : Do + re-process TREE_CONSTANT CONSTRUCTORs if they aren't reduced constant + expressions. + +2018-12-19 Alexandre Oliva + + PR c++/87012 + * pt.c (convert_template_argument): Canonicalize type after + tsubst/deduce. + + PR c++/88146 + * method.c (do_build_copy_constructor): Guard cvquals init and + loop over fields to run for non-inherited ctors only. + (synthesize_method): Retain location of inherited ctor. + +2018-12-17 Jakub Jelinek + + PR c++/88410 + * cp-gimplify.c (cp_fold) : For offsetof-like folding, + call maybe_constant_value on val to see if it is INTEGER_CST. + +2018-12-17 Jonathan Wakely + + PR c++/52321 + * typeck.c (build_static_cast): Print a note when the destination + type or the operand is a pointer/reference to incomplete class type. + +2018-12-16 Jakub Jelinek + + PR c++/88482 + * except.c (verify_library_fn): New function. + (declare_library_fn): Use it. Initialize TM even if the non-TM + library function has been user declared. + (do_end_catch): Don't set TREE_NOTHROW on error_mark_node. + (expand_start_catch_block): Don't call initialize_handler_parm + for error_mark_node. + (build_throw): Use verify_library_fn. Initialize TM even if the + non-TM library function has been user declared. Don't crash if + any library fn is error_mark_node. + +2018-12-14 Jason Merrill + + * pt.c (tsubst_expr) [DECL_EXPR]: Ignore class-scope bindings when + looking up a capture proxy. + +2018-12-15 Paolo Carlini + + PR c++/84644 + * decl.c (check_tag_decl): A decltype with no declarator + doesn't declare anything. + +2018-12-14 Alexandre Oliva + + PR c++/87814 + * pt.c (tsubst_exception_specification): Handle + DEFERRED_NOEXCEPT with !defer_ok. + +2018-12-14 Jason Merrill + + PR c++/86823 + * parser.c (cp_parser_template_id): Rearrange deferred access + checks into the firewall. + +2018-12-14 Jakub Jelinek + + PR c++/82294 + PR c++/87436 + * init.c (build_vec_init): Change num_initialized_elts type from int + to HOST_WIDE_INT. Build a RANGE_EXPR if e needs to be repeated more + than once. + +2018-12-13 Marek Polacek + + PR c++/88216 - ICE with class type in non-type template parameter. + * mangle.c (write_expression): Handle TARGET_EXPR and + VIEW_CONVERT_EXPR. + * pt.c (convert_nontype_argument): Don't call + get_template_parm_object for value-dependent expressions. + +2018-12-13 Nathan Sidwell + + PR c++/87531 + * class.c (finish_struct): Set DECL_CONTEXT of template assign op. + * name-lookup.c (get_class_binding_direct): Don't strip using-decl + of overload here. + * parser.c (cp_parser_postfix_expression): Cope with using decl in + overload set. + * semantics.c (finish_id_expr): Likewise. + +2018-12-12 Paolo Carlini + + * decl.c (grokdeclarator): Fix location of error message about + static data member definition. + +2018-12-12 Jakub Jelinek + + PR c++/88446 + * cp-tree.h (maybe_constant_value): Add manifestly_const_eval + argument. + * constexpr.c (struct constexpr_call): Rename pretend_const_required + member to manifestly_const_eval. + (struct constexpr_ctx): Likewise. + (constexpr_call_hasher::equal): Adjust users. + (cxx_eval_builtin_function_call): Likewise. Formatting fix. + (cxx_eval_call_expression): Adjust users. + (cxx_eval_outermost_constant_expr, maybe_constant_init_1, + maybe_constant_init): Rename pretend_const_required argument to + manifestly_const_eval, adjust function comments. + (maybe_constant_value): Add manifestly_const_eval argument. If true, + don't cache and call cxx_eval_outermost_constant_expr with true as + manifestly_const_eval. + * decl.c (compute_array_index_type_loc): Call maybe_constant_value + with true as manifestly_const_eval. + + PR c++/88449 + * constexpr.c (struct constexpr_call): Add pretend_const_required + member. + (constexpr_call_hasher::equal): Return false if pretend_const_required + members differ. + (cxx_eval_call_expression): Adjust new_call initialization. Hash in + ctx->pretend_const_required. + +2018-12-11 Jakub Jelinek + + PR c++/87861 + * class.c (build_vtbl_initializer): For TARGET_VTABLE_USES_DESCRIPTORS + bump index for each added word. + * constexpr.c (find_array_ctor_elt): Add forward declaration. + (cxx_eval_call_expression): Handle TARGET_VTABLE_USES_DESCRIPTORS + vtable calls. + (cxx_eval_constant_expression) : Divide token + by TARGET_VTABLE_USES_DESCRIPTORS if non-zero. + +2018-12-11 Marek Polacek + + PR c++/86608 - reading constexpr volatile variable. + * constexpr.c (potential_constant_expression_1): Check want_rval + instead of checking if we have a decl. + * decl2.c (decl_maybe_constant_var_p): Don't consider volatile + constexpr variables as maybe constant. + +2018-12-11 Paolo Carlini + + * decl.c (grokvardecl): Add location_t parameter and use it + in build_lang_decl_loc and build_decl calls. + (grokdeclarator): Move up loc declaration and use it in the + grokvardecl call too. + +2018-12-09 Cesar Philippidis + + * parser.c (cp_parser_oacc_kernels_parallel): Adjust EXPR_LOCATION + on the combined acc loop. + +2018-12-07 Paolo Carlini + + * decl2.c (grokbitfield): Use DECL_SOURCE_LOCATION in error messages + about bit-fields with function type, warn_if_not_aligned type, and + static bit-fields; avoid DECL_NAME for unnamed declarations. + +2018-12-07 Jakub Jelinek + + PR c++/86669 + * call.c (make_temporary_var_for_ref_to_temp): Call pushdecl even for + automatic vars. + + PR c++/87506 + * constexpr.c (adjust_temp_type): Handle EMPTY_CLASS_EXPR. + +2018-12-06 Paolo Carlini + + * class.c (check_bitfield_decl): In error message about non-integral + type print the type itself too. + * decl.c (grokdeclarator): Do not ICE on unnamed bit-fields declared + friends; when calling build_decl for a FIELD_DECL possibly pass the + declarator->id_loc. + +2018-12-06 Alexandre Oliva + + PR c++/86747 + * pt.c (tsubst_friend_class): Enter tsubsted class context. + + PR c++/86397 + * except.c (build_noexcept_spec): Resolve nondependent + expressions. + +2018-12-06 Jason Merrill + + PR c++/88136 - -Wdeprecated-copy false positives + * class.c (classtype_has_depr_implicit_copy): Rename from + classtype_has_user_copy_or_dtor. + * method.c (lazily_declare_fn): Adjust. + * decl2.c (cp_warn_deprecated_use): Refer to -Wdeprecated-copy-dtor + if deprecation is due to a destructor. + +2018-12-06 Marek Polacek + + PR c++/88373 - wrong parse error with ~. + * parser.c (cp_parser_template_name): Check tag_type for + none_type. + +2018-12-06 Segher Boessenkool + + * cp-tree.h (finish_asm_stmt): Update declaration. + * parser.c (cp_parser_asm_definition): Detect the inline keyword + after asm. Pass a flag for it to finish_asm_stmt. + * pt.c (tsubst_expr): Pass the ASM_INLINE_P flag to finish_asm_stmt. + * semantics.c (finish_asm_stmt): Add inline_p parameter. Use it to + set ASM_INLINE_P. + +2018-12-06 Segher Boessenkool + + PR inline-asm/55681 + * parser.c (cp_parser_asm_definition): Update grammar. Allow any + combination of volatile and goto, in any order, without repetitions. + +2018-12-06 David Malcolm + + PR c++/85110 + * call.c (conversion_null_warnings): Try to use the location of + the expression for the warnings. Add notes showing the parameter + of the function decl, where available. + (get_fndecl_argument_location): For implicitly-declared functions, + use the fndecl location rather than that of the param. + (maybe_inform_about_fndecl_for_bogus_argument_init): New function. + (convert_like_real): Use it in various places to avoid repetition. + (complain_about_bad_argument): Likewise. + * cp-tree.h (maybe_inform_about_fndecl_for_bogus_argument_init): + New declaration. + * decl2.c (check_default_args): Put all diagnostics for the fndecl + into a diagnostic group. Use the location of the parameter when + complaining about parameters with missing default arguments in + preference to that of the fndecl. Attempt to record the location + of the first parameter with a default argument and emit a note + for the first parameter that's missing one. + * typeck.c (convert_arguments): When complaining about parameters + with incomplete types, attempt to use the location of the + argument. Where available, add a note showing the pertinent + parameter in the fndecl. + (convert_for_assignment): When complaining about bad conversions + at function calls, use the location of the unstripped argument. + (convert_for_initialization): When checking for bogus references, + add an auto_diagnostic_group, and update the note to use the + location of the pertinent parameter, rather than just the callee. + +2018-12-06 Paolo Carlini + + * decl2.c (grokbitfield): Use DECL_SOURCE_LOCATION in error message; + print the type too; fix thinko in INDIRECT_TYPE_P use. + +2018-12-05 Alexandre Oliva + + PR c++/85569 + * constexpr.c (adjust_temp_type): Test for type equality with + same_type_p. + (constexpr_call_hasher::equal): Likewise. + +2018-12-04 Paolo Carlini + + PR c++/84636 + * decl.c (grokdeclarator): Avoid crashing on an anonymous bit-field + with function type. + +2018-12-04 Marek Polacek + + PR c++/88184 - ICE when treating name as template-name. + * pt.c (lookup_template_function): Always build the TEMPLATE_ID_EXPR + with unknown_type_node. + +2018-12-04 Julian Brown + + * parser.c (cp_parser_oacc_wait_list): Fix error message and avoid + duplicate diagnostic. + +2018-12-04 Jakub Jelinek + + PR c++/88103 + * typeck.c (build_class_member_access_expr): If unary_complex_lvalue + turned xvalue_p into non-xvalue_p, call move on it. + +2018-12-02 Jakub Jelinek + + PR c++/88258 + * parser.c (cp_parser_skip_to_closing_parenthesis_1, + cp_parser_skip_to_end_of_statement, + cp_parser_skip_to_end_of_block_or_statement, + cp_parser_skip_to_closing_brace, + cp_parser_skip_to_closing_square_bracket, + cp_parser_skip_balanced_tokens): Don't treat CPP_PRAGMA_EOL specially + if in_pragma is false. + +2018-12-01 Marek Polacek + + Implement P0634R3, Down with typename! + * parser.c (CP_PARSER_FLAGS_TYPENAME_OPTIONAL): New enumerator. + (cp_parser_type_name): Remove declaration. + (cp_parser_postfix_expression): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL + to cp_parser_type_id. + (cp_parser_new_type_id): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to + cp_parser_type_specifier_seq. + (cp_parser_lambda_declarator_opt): Pass + CP_PARSER_FLAGS_TYPENAME_OPTIONAL to + cp_parser_parameter_declaration_clause. + (cp_parser_condition): Pass CP_PARSER_FLAGS_NONE to + cp_parser_declarator. + (cp_parser_simple_declaration): Pass CP_PARSER_FLAGS_NONE to + cp_parser_init_declarator. + (cp_parser_conversion_type_id): Pass CP_PARSER_FLAGS_NONE to + cp_parser_type_specifier_seq. + (cp_parser_default_type_template_argument): Pass + CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_type_id. + (cp_parser_template_parameter): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL + to cp_parser_parameter_declaration. + (cp_parser_explicit_instantiation): Pass CP_PARSER_FLAGS_NONE to + cp_parser_declarator. + (cp_parser_simple_type_specifier): Adjust call to cp_parser_type_name + to relay if we should treat the typename keyword as optional. Maybe + call cp_parser_make_typename_type is parsing a template-id and it's + not a TYPE_DECL. + (cp_parser_type_name): Remove unused function. + (cp_parser_enum_specifier): Pass to CP_PARSER_FLAGS_NONE + cp_parser_type_specifier_seq. + (cp_parser_alias_declaration): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL + to cp_parser_type_id. + (cp_parser_init_declarator): New parameter. Pass it down to + cp_parser_declarator. + (cp_parser_declarator): New parameter. Pass CP_PARSER_FLAGS_NONE to + cp_parser_declarator. Pass the new parameter to + cp_parser_direct_declarator. + (cp_parser_direct_declarator): New parameter. Pass it to + cp_parser_parameter_declaration_clause and cp_parser_declarator. + (cp_parser_declarator_id): + (cp_parser_type_id_1): New parameter. Pass it to + cp_parser_type_specifier_seq. Adjust call to cp_parser_declarator. + (cp_parser_type_id): New parameter. Pass it to cp_parser_type_id_1. + (cp_parser_template_type_arg): Pass CP_PARSER_FLAGS_NONE to + cp_parser_type_id_1. + (cp_parser_trailing_type_id): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL + to cp_parser_type_id_1. + (cp_parser_type_specifier_seq): New parameter. + (function_being_declared_is_template_p): + (cp_parser_parameter_declaration_clause): New parameter. Pass it to + cp_parser_parameter_declaration_list. + (cp_parser_parameter_declaration_list): New parameter. Pass it to + cp_parser_parameter_declaration. + (cp_parser_parameter_declaration): New parameter. Pass it to + cp_parser_decl_specifier_seq. Pass CP_PARSER_FLAGS_NONE to + cp_parser_declarator. + (cp_parser_member_declaration): Adjust call to + cp_parser_decl_specifier_seq to also include + CP_PARSER_FLAGS_TYPENAME_OPTIONAL. Pass + CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_declarator. + (cp_parser_exception_declaration): Pass CP_PARSER_FLAGS_NONE to + cp_parser_type_specifier_seq and cp_parser_declarator. + (cp_parser_requirement_parameter_list): Pass CP_PARSER_FLAGS_NONE to + cp_parser_parameter_declaration_clause. + (cp_parser_constructor_declarator_p): Resolve the TYPENAME_TYPE. + (cp_parser_single_declaration): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL + to cp_parser_decl_specifier_seq and cp_parser_init_declarator. + (cp_parser_cache_defarg): Pass CP_PARSER_FLAGS_NONE to + cp_parser_declarator and cp_parser_parameter_declaration_list. + (cp_parser_objc_method_tail_params_opt): Pass CP_PARSER_FLAGS_NONE to + cp_parser_parameter_declaration. + (cp_parser_objc_class_ivars): Pass CP_PARSER_FLAGS_NONE to + cp_parser_declarator. + (cp_parser_objc_try_catch_finally_statement): Pass CP_PARSER_FLAGS_NONE + to cp_parser_parameter_declaration + (cp_parser_objc_struct_declaration): Pass CP_PARSER_FLAGS_NONE to + cp_parser_declarator. + (cp_parser_omp_for_loop_init): Pass CP_PARSER_FLAGS_NONE to + cp_parser_declarator and cp_parser_type_specifier_seq. + +2018-11-30 David Malcolm + + * typeck2.c: Include "gcc-rich-location.h". + (cxx_incomplete_type_diagnostic): When complaining about possibly + missing parens, add a fix-it hint if the member function takes no + additional params. + +2018-11-30 James Norris + + * parser.c (cp_parser_oacc_enter_exit_data): Use existing local + variable. + +2018-11-29 Paolo Carlini + + * decl.c (compute_array_index_type_loc): New, like the current + compute_array_index_type but takes a location_t too. + (compute_array_index_type): Forward to the latter. + (create_array_type_for_decl): Use compute_array_index_type_loc. + +2018-11-29 David Malcolm + + PR c++/88121 + * cp-name-hint.h (suggest_alternative_in_scoped_enum): New decl. + * error.c (dump_scope): Ensure that we print any scope for values + of unscoped enums. Print the scope of values of scoped enums. + (qualified_name_lookup_error): Offer suggestions for failures + within scoped enums by calling suggest_alternative_in_scoped_enum. + * name-lookup.c (class namespace_hints): Update comment to mention + scoped enums. + (namespace_hints::namespace_hints): Call + maybe_add_candidate_for_scoped_enum. + (namespace_hints::maybe_add_candidate_for_scoped_enum): New member + (suggest_alternatives_for): Update comment to mention scoped + enums. + (suggest_alternative_in_scoped_enum): New function. + +2018-11-28 Marek Polacek + + Implement P1094R2, Nested inline namespaces. + * parser.c (cp_parser_namespace_definition): Parse the optional inline + keyword in a nested-namespace-definition. Adjust push_namespace call. + Formatting fix. + +2018-11-28 Nathan Sidwell + + PR c++/87531 + * class.c (finish_struct): In a template, add artificial using + decl for operator=. + +2018-11-28 Jan Hubicka + + * except.c (do_allocate_exception): Annotate __cxa_allocate_exception + as COLD. + +2018-11-28 Marek Polacek + + PR c++/88222 - ICE with bit-field with invalid type. + * decl.c (grokdeclarator): Check if declarator is null. + +2018-11-28 Jakub Jelinek + + PR c++/87476 + * typeck2.c (digest_init_r): Re-add handing of signed/unsigned char + strings and add it to the initialization of wide array from non-wide + string diagnostics too. + +2018-11-27 Jakub Jelinek + + PR c++/88187 + * decl.c (grokdeclarator): Don't diagnose deduction guide errors + if !funcdecl_p. + + PR c++/88181 + * class.c (fixup_attribute_variants): Also propagate TYPE_PACKED + to variants. + +2018-11-26 Marek Polacek + + PR c++/88120 - ICE when calling save_expr in a template. + * typeck.c (cp_build_binary_op): Call cp_save_expr instead of + save_expr. + +2018-11-22 Jakub Jelinek + + PR c++/87386 + * parser.c (cp_parser_operator): Use str.get_value () instead of just + str in USERDEF_LITERAL_VALUE and USERDEF_LITERAL_SUFFIX_ID arguments. + +2018-11-21 Jakub Jelinek + + PR c++/88122 + * method.c (maybe_explain_implicit_delete): If + FUNCTION_FIRST_USER_PARMTYPE (decl) is NULL, set const_p to false + instead of ICEing. + + PR c++/87386 + * parser.c (cp_parser_primary_expression): Use + id_expression.get_location () instead of id_expr_token->location. + Adjust the range from id_expr_token->location to + id_expressio.get_finish (). + (cp_parser_operator_function_id): Pass location of the operator + token down to cp_parser_operator. + (cp_parser_operator): Add start_loc argument, always construct a + location with caret at start_loc and range from start_loc to the + finish of the last token. + + PR c++/87393 + * parser.c (cp_parser_linkage_specification): Remove useless + dereference of the consume_open method result. + +2018-11-20 Martin Sebor + + * cp-tree.h (cp_check_const_attributes): Declare. + * decl2.c (cp_check_const_attributes): Declare extern. + * parser.c (cp_parser_has_attribute_expression): New function. + (cp_parser_unary_expression): Handle RID_HAS_ATTRIBUTE_EXPRESSION. + (cp_parser_gnu_attribute_list): Add argument. + +2018-11-20 Jakub Jelinek + + PR c++/88110 + * constexpr.c (cxx_eval_constant_expression) : Punt + if get_base_address of ADDR_EXPR operand is not a DECL_P. + +2018-11-19 Marek Polacek + + PR c++/87781 - detect invalid elaborated-type-specifier. + * parser.c (cp_parser_elaborated_type_specifier): Ensure that + typename follows a nested-name-specifier. + +2018-11-18 Paolo Carlini + + * decl2.c (grokfield): Remove obsolete _vptr check; fix + explicit template argument list error location. + +2018-11-16 Kamlesh Kumar + + DR 1207 + PR c++/52869 + * parser.c (cp_parser_noexcept_specification_opt): Call + inject_this_parameter. + +2018-11-16 Jason Merrill + + Implement P0479R5, [[likely]] and [[unlikely]]. + * tree.c (handle_likeliness_attribute): New. + (std_attribute_table): Add likely/unlikely. + * cp-gimplify.c (lookup_hotness_attribute, remove_hotness_attribute) + (process_stmt_hotness_attribute, first_stmt): New. + (genericize_if_stmt): Check for duplicate predictions. + * parser.c (cp_parser_statement): Call + process_stmt_hotness_attribute. + (cp_parser_label_for_labeled_statement): Apply attributes to case. + * decl.c (finish_case_label): Give label in template type void. + * pt.c (tsubst_expr) [CASE_LABEL_EXPR]: Copy attributes. + [PREDICT_EXPR]: Handle. + +2018-11-16 Nathan Sidwell + + Remove ovl_used, it is no longer needed + * cp-tree.h (OVL_USED_P): Delete. + (lookup_keep): Delete. + * friend.c (add_friend): Don't call it. + * parser.c (lookup_literal_operator): Likewise. + (cp_parser_primary_expression): Likewise. + * semantics.c (perform_koenig_lookup): Likewise. + * pt.c (tsubst_copy ): Don't assert OVL_USED_P. + * tree.c (ovl_copy): Delete. + (ovl_insert): Remove OVL_USED_P checks. + (ovl_iterator::reveal_node): Likewise. + (ovl_iterator::remove__node): Likewise. + (ovl_used, lookup_keep): Delete. + + PR c++/87269 + * parser.c (lookup_literal_operator): Mark overload for keeping + when inside template. Refactor. + +2018-11-15 Nathan Sidwell + + PR c++/86246 + PR c++/87989 + * typeck.c (finish_class_member_access_expr): Conversion operator + to dependent type is dependent. + +2018-11-15 Paolo Carlini + + * constexpr.c (ensure_literal_type_for_constexpr_object): Use + DECL_SOURCE_LOCATION in error_at calls. + +2018-11-15 Nathan Sidwell + + DR 2336 + * cp-tree.h (enum special_function_kind): Add sfk_virtual_destructor. + * method.c (type_has_trivial_fn): Add it. + (SFK_DTOR_P): Likewise. + (synthesized_method_base_walk): Don't check access of vbases of + abstract classes when sfk_virtual_destructor. + (synthesized_method_walk): Skip vbases of abstract classes except + when sfk_virtual_destructor. + (get_defaulted_eh_spec): Set sfk_virtual_destructor as needed. + + * cp-tree.h (enum special_function_kind): Reorder and comment. + * method.c (SFK_CTOR_P, SFK_DTOR_P, SFK_ASSIGN_P, SFK_COPY_P) + (SFK_MOVE_P): New predicates. + (walk_field_subobs, synthesized_method_base_walk): Drop + copy_arg_p, move_p, assign_p args. Use new SFK predicates. Order + parameters consistently. + (synthesized_method_walk): Drop ctor_p, copy_arg_p, move_p, + assign_p calculations. Use new SFK predicates. Adjust calls to + worker functions. + +2018-11-14 Paolo Carlini + + * parser.c (make_id_declarator): Add location_t parameter. + (cp_parser_lambda_declarator_opt): Adjust call. + (cp_parser_decomposition_declaration): Likewise. + (cp_parser_alias_declaration): Likewise. + (cp_parser_direct_declarator): Likewise. + (cp_parser_member_declaration): Likewise. + (cp_parser_objc_class_ivars): Likewise. + * decl.c (grokdeclarator): Use declarator->id_loc in two error + messages. + +2018-11-14 Jakub Jelinek + + P1236R1 - Signed integers are two's complement + * constexpr.c (cxx_eval_check_shift_p): Disable the signed LSHIFT_EXPR + checks for c++2a. + +2018-11-13 David Malcolm + + * call.c: Replace "source_location" with "location_t". + * cp-tree.h: Likewise. + * cvt.c: Likewise. + * name-lookup.c: Likewise. + * parser.c: Likewise. + * typeck.c: Likewise. + +2018-11-12 Jason Merrill + + Implement P0315R4, Lambdas in unevaluated contexts. + * decl2.c (min_vis_expr_r): Handle LAMBDA_EXPR. + * mangle.c (write_expression): Handle LAMBDA_EXPR. + * parser.c (cp_parser_lambda_expression): Allow lambdas in + unevaluated context. Start the tentative firewall sooner. + (cp_parser_lambda_body): Use cp_evaluated. + * pt.c (iterative_hash_template_arg): Handle LAMBDA_EXPR. + (tsubst_function_decl): Substitute a lambda even if it isn't + dependent. + (tsubst_lambda_expr): Use cp_evaluated. Always complain. + (tsubst_copy_and_build) [LAMBDA_EXPR]: Do nothing if tf_partial. + * semantics.c (begin_class_definition): Allow in template parm list. + * tree.c (strip_typedefs_expr): Pass through LAMBDA_EXPR. + (cp_tree_equal): Handle LAMBDA_EXPR. + + * pt.c (fn_type_unification): If we have a full set of explicit + arguments, go straight to substitution. + + * decl2.c (min_vis_expr_r, expr_visibility): New. + (min_vis_r): Call expr_visibility. + (constrain_visibility_for_template): Likewise. + + Implement P0722R3, destroying operator delete. + * call.c (std_destroying_delete_t_p, destroying_delete_p): New. + (aligned_deallocation_fn_p, usual_deallocation_fn_p): Use + destroying_delete_p. + (build_op_delete_call): Handle destroying delete. + * decl2.c (coerce_delete_type): Handle destroying delete. + * init.c (build_delete): Don't call dtor with destroying delete. + * optimize.c (build_delete_destructor_body): Likewise. + + Implement P0780R2, pack expansion in lambda init-capture. + * parser.c (cp_parser_lambda_introducer): Parse pack init-capture. + * pt.c (tsubst_pack_expansion): Handle init-capture packs. + (lookup_init_capture_pack): New. + (tsubst_expr) [DECL_EXPR]: Use it. + (tsubst_lambda_expr): Remember field pack expansions for + init-captures. + + * cp-tree.h (struct cp_evaluated): New. + * init.c (get_nsdmi): Use it. + * parser.c (cp_parser_enclosed_template_argument_list): Use it. + * pt.c (coerce_template_parms, tsubst_aggr_type): Use it. + +2018-11-09 Jakub Jelinek + + * parser.c (cp_parser_omp_clause_final, cp_parser_omp_clause_if): Use + cp_parser_assignment_expression instead of cp_parser_condition. + (cp_parser_omp_clause_num_threads, cp_parser_omp_clause_num_tasks, + cp_parser_omp_clause_grainsize, cp_parser_omp_clause_priority, + cp_parser_omp_clause_num_teams, cp_parser_omp_clause_thread_limit, + cp_parser_omp_clause_linear, cp_parser_omp_clause_device): Use + cp_parser_assignment_expression instead of cp_parser_expression. + (cp_parser_omp_clause_hint): Likewise. Formatting fix. + + * parser.c (cp_parser_omp_clause_reduction): Call sorry_at on + reduction clause with inscan modifier. + + * parser.c (cp_parser_omp_requires): Call sorry_at on requires + clauses other than atomic_default_mem_order. + +2018-11-09 Martin Sebor + + PR middle-end/81824 + * pt.c (warn_spec_missing_attributes): Move code to attribs.c. + Call decls_mismatched_attributes. + +2018-11-08 Jakub Jelinek + + * constexpr.c (potential_constant_expression_1): Handle OMP_DEPOBJ. + * cp-gimplify.c (cp_genericize_r): Handle + OMP_CLAUSE_{IN,TASK}_REDUCTION. + (cxx_omp_predetermined_sharing_1): Don't return + OMP_CLAUSE_DEFAULT_SHARED for const qualified decls with no mutable + member. Return OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for this pointer. + * cp-objcp-common.c (cp_common_init_ts): Handle OMP_DEPOBJ. + * cp-tree.def (OMP_DEPOBJ): New tree code. + * cp-tree.h (OMP_ATOMIC_DEPENDENT_P): Return true also for first + argument being OMP_CLAUSE. + (OMP_DEPOBJ_DEPOBJ, OMP_DEPOBJ_CLAUSES): Define. + (cp_convert_omp_range_for, cp_finish_omp_range_for): Declare. + (finish_omp_atomic): Add LOC, CLAUSES and MO arguments. Remove + SEQ_CST argument. + (finish_omp_for_block): Declare. + (finish_omp_flush): Add MO argument. + (finish_omp_depobj): Declare. + * cxx-pretty-print.c (cxx_pretty_printer::statement): Handle + OMP_DEPOBJ. + * dump.c (cp_dump_tree): Likewise. + * lex.c (cxx_init): Likewise. + * parser.c: Include memmodel.h. + (cp_parser_for): Pass false as new is_omp argument to + cp_parser_range_for. + (cp_parser_range_for): Add IS_OMP argument, return before finalizing + if it is true. + (cp_parser_omp_clause_name): Handle nontemporal, in_reduction and + task_reduction clauses. + (cp_parser_omp_var_list_no_open): Handle + OMP_CLAUSE_{IN,TASK}_REDUCTION. For OMP_CLAUSE_DEPEND, parse clause + operands as either an array section, or lvalue assignment expression. + (cp_parser_omp_clause_if): Handle cancel and simd modifiers. + (cp_parser_omp_clause_defaultmap): Parse new kinds of defaultmap + clause. + (cp_parser_omp_clause_reduction): Add IS_OMP and KIND arguments. + Parse reduction modifiers. Pass KIND to c_parser_omp_variable_list. + (cp_parser_omp_clause_lastprivate, cp_parser_omp_iterators): New + functions. + (cp_parser_omp_clause_depend): Parse iterator modifier and handle + iterators. Parse mutexinoutset and depobj kinds. + (cp_parser_oacc_all_clauses): Adjust cp_parser_omp_clause_reduction + callers. + (cp_parser_omp_all_clauses): Likewise. Handle + PRAGMA_OMP_CLAUSE_NONTEMPORAL and + PRAGMA_OMP_CLAUSE_{IN,TASK}_REDUCTION. Call + cp_parser_omp_clause_lastprivate for OpenMP lastprivate clause. + (cp_parser_omp_atomic): Pass pragma_tok->location as + LOC to finish_omp_atomic. Parse hint and memory order clauses. + Handle default memory order from requires directive if any. Adjust + finish_omp_atomic caller. + (cp_parser_omp_critical): Allow comma in between (name) and hint + clause. + (cp_parser_omp_depobj): New function. + (cp_parser_omp_flush): Parse flush with memory-order-clause. + (cp_parser_omp_for_cond): Allow NE_EXPR even in OpenMP loops. + (cp_convert_omp_range_for, cp_finish_omp_range_for): New functions. + (cp_parser_omp_for_loop): Parse C++11 range for loops among omp + loops. Handle OMP_CLAUSE_IN_REDUCTION like OMP_CLAUSE_REDUCTION. + (OMP_SIMD_CLAUSE_MASK): Add if and nontemporal clauses. + (cp_parser_omp_simd, cp_parser_omp_for): Call keep_next_level before + begin_omp_structured_block and call finish_omp_for_block on + finish_omp_structured_block result. + (cp_parser_omp_master): Add p_name, mask and cclauses arguments. + Allow to be called while parsing combined parallel master. + Parse combined master taskloop{, simd}. + (cp_parser_omp_parallel): Parse combined + parallel master{, taskloop{, simd}} constructs. + (cp_parser_omp_single): Use SET_EXPR_LOCATION. + (OMP_TASK_CLAUSE_MASK): Add in_reduction clause. + (OMP_TASKWAIT_CLAUSE_MASK): Define. + (cp_parser_omp_taskwait): Handle taskwait with depend clauses. + (OMP_TASKGROUP_CLAUSE_MASK): Define. + (cp_parser_omp_taskgroup): Parse taskgroup clauses, adjust + c_finish_omp_taskgroup caller. + (cp_parser_omp_distribute): Call keep_next_level before + begin_omp_structured_block and call finish_omp_for_block on + finish_omp_structured_block result. + (cp_parser_omp_teams): Force a BIND_EXPR with BLOCK around teams + body. + (cp_parser_omp_target_data): Allow target data with only + use_device_ptr clauses. + (cp_parser_omp_target): Set OMP_REQUIRES_TARGET_USED bit in + omp_requires_mask. + (cp_parser_omp_requires): New function. + (OMP_TASKLOOP_CLAUSE_MASK): Add reduction and in_reduction clauses. + (cp_parser_omp_taskloop): Add forward declaration. Disallow + in_reduction clause when combined with parallel master. Call + keep_next_level before begin_omp_structured_block and call + finish_omp_for_block on finish_omp_structured_block result. + (cp_parser_omp_construct): Adjust cp_parser_omp_master caller. + (cp_parser_pragma): Handle PRAGMA_OMP_DEPOBJ and PRAGMA_OMP_REQUIRES. + * pt.c (tsubst_omp_clause_decl): Add iterators_cache argument. + Adjust recursive calls. Handle iterators. + (tsubst_omp_clauses): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION and + OMP_CLAUSE_NONTEMPORAL. Adjust tsubst_omp_clause_decl callers. + (tsubst_decomp_names): + (tsubst_omp_for_iterator): Change orig_declv into a reference. + Handle range for loops. Move orig_declv handling after declv/initv + handling. + (tsubst_expr): Force a BIND_EXPR with BLOCK around teams body. + Adjust finish_omp_atomic caller. Call keep_next_level before + begin_omp_structured_block. Call cp_finish_omp_range_for for range + for loops and use {begin,finish}_omp_structured_block instead of + {push,pop}_stmt_list if there are any range for loops. Call + finish_omp_for_block on finish_omp_structured_block result. + Handle OMP_DEPOBJ. Handle taskwait with depend clauses. For + OMP_ATOMIC call tsubst_omp_clauses on clauses if any, adjust + finish_omp_atomic caller. Use OMP_ATOMIC_MEMORY_ORDER rather + than OMP_ATOMIC_SEQ_CST. Handle clauses on OMP_TASKGROUP. + (dependent_omp_for_p): Always return true for range for loops if + processing_template_decl. Return true if class type iterator + does not have INTEGER_CST increment. + * semantics.c: Include memmodel.h. + (handle_omp_array_sections_1): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION + like OMP_CLAUSE_REDUCTION. + (handle_omp_array_sections): Likewise. Call save_expr on array + reductions before calling build_index_type. Handle depend clauses + with iterators. + (finish_omp_reduction_clause): Call save_expr for whole array + reduction sizes. Don't mark OMP_CLAUSE_DECL addressable if it has + reference type. Do mark decl_placeholder addressable if needed. + Use error_at with OMP_CLAUSE_LOCATION (c) as first argument instead + of error. + (cp_omp_finish_iterators): New function. + (finish_omp_clauses): Don't diagnose nonmonotonic clause with static, + runtime or auto schedule kinds. Diagnose nogroup clause used with + reduction clause(s). Handle depend clause with + OMP_CLAUSE_DEPEND_DEPOBJ. Diagnose bit-fields. Require + omp_depend_t type for OMP_CLAUSE_DEPEND_DEPOBJ kinds and + some different type for other kinds. Use cp_build_addr_expr + and cp_build_indirect_ref instead of cxx_mark_addressable. + Handle depend clauses with iterators. Only handle static data members + in the special case that const qualified vars may be specified in + firstprivate clause. Complain if const qualified vars without mutable + members are mentioned in data-sharing clauses other than firstprivate + or shared. Use error_at with OMP_CLAUSE_LOCATION (c) as first + argument instead of error. Diagnose more than one nontemporal clause + refering to the same variable. Use error_at rather than error for + priority and hint clause diagnostics. Fix pasto for hint clause. + Diagnose hint expression that doesn't fold into INTEGER_CST. + Diagnose if clause with modifier other than cancel. Handle + OMP_CLAUSE_{IN,TASK}_REDUCTION like OMP_CLAUSE_REDUCTION. Allow any + lvalue as OMP_CLAUSE_DEPEND operand (besides array section), adjust + diagnostics. + (handle_omp_for_class_iterator): Don't create a new TREE_LIST if one + has been created already for range for, just fill TREE_PURPOSE and + TREE_VALUE. Call cp_fully_fold on incr. + (finish_omp_for): Don't check cond/incr if cond is global_namespace. + Pass to c_omp_check_loop_iv_exprs orig_declv if non-NULL. Don't + use IS_EMPTY_STMT on NULL pre_body. Adjust c_finish_omp_for caller. + (finish_omp_for_block): New function. + (finish_omp_atomic): Add LOC argument, pass it through + to c_finish_omp_atomic and set it as location of OMP_ATOMIC* trees. + Remove SEQ_CST argument. Add CLAUSES and MO arguments. Adjust + c_finish_omp_atomic caller. Stick clauses if any into first argument + of wrapping OMP_ATOMIC. + (finish_omp_depobj): New function. + (finish_omp_flush): Add MO argument, if not + MEMMODEL_LAST, emit __atomic_thread_fence call with the given value. + (finish_omp_cancel): Diagnose if clause with modifier other than + cancel. + +2018-11-07 Nathan Sidwell + + PR c++/87904 + * cp-tree.h (struct tree_overload): Fix comment. + * tree.c (ovl_iterator::reveal_node): Propagate OVL_DEDUP_P. + +2018-11-04 Jason Merrill + + Implement UDL changes from P0732R2. + * cp-tree.h (struct releasing_vec): Move from mangle.c. + Add get_ref method. + * parser.c (cp_parser_userdef_string_literal): Use it. Handle + passing the string to a single template parameter of class type. + (cp_parser_template_declaration_after_parameters): Allow it. + Pedwarn about the character pack template that was proposed but not + accepted for C++14, and don't suggest it. + + Implement P0732R2, class types in non-type template parameters. + * error.c (dump_simple_decl): Look through a template parm object. + * mangle.c (write_template_arg): Likewise. + (mangle_template_parm_object): New. + * pt.c (template_parm_object_p, get_template_parm_object): New. + (invalid_tparm_referent_p): Factor from convert_nontype_argument. + (convert_nontype_argument, invalid_nontype_parm_type_p): Handle + class-type template arguments. + * tree.c (lvalue_kind): Likewise. + + * cvt.c (ocp_convert): Don't wrap a CONSTRUCTOR in a NOP_EXPR. + * constexpr.c (initialized_type): Fix AGGR_INIT_EXPR handling. + (cxx_eval_vec_init_1): Correct type of AGGR_INIT_EXPR. + (cxx_eval_outermost_constant_expr): Make sure a CONSTRUCTOR has the + right type. Don't wrap a CONSTRUCTOR if one was passed in. + * tree.c (build_aggr_init_expr): Check for void. + + PR c++/60503 - wrong lambda attribute syntax. + * parser.c (cp_parser_lambda_declarator_opt): Fix attribute + handling. + +2018-11-02 Nathan Sidwell + + * decl.c (duplicate_decls): Refactor checks. + +2018-11-01 Marek Polacek + + Implement P0846R0, ADL and function templates. + * decl.c (grokfndecl): Allow FUNCTION_DECL in assert. + * lex.c (unqualified_fn_lookup_error): Handle TEMPLATE_ID_EXPR. + * parser.c (cp_parser_postfix_expression): Do ADL for a template-name. + (cp_parser_template_id): Give errors if parsing the template argument + list didn't go well. Allow FUNCTION_DECL in assert. + (cp_parser_template_name): Consider a name to refer to a template if + it is an unqualified-id followed by a <. Don't return the identifier + if the decl is a function and dependent. + * pt.c (tsubst_copy) : Remove assert. + +2018-11-01 Nathan Sidwell + + * cp-tree.h (struct lang_function): Delete x_local_names field. + (struct lang_decl_base): Rename u2sel to spare. + (struct lang_decl_min): Remove lang_decl_u2 union. Keep access + field. + (LANG_DECL_U2_CHECK): Delete. + (DECL_DISCRIMINATOR_P): Require function scope. + (DECL_DISCRIMINATOR): Adjust. + (DECL_DISCRIMINATOR_SET_P): Delete. + (DECL_CAPTURED_VARIABLE, DECL_ACCESS, THUnK_VIRTUAL_OFFSET): Adjust. + (local_classes): Don't declare. + (determine_local_discriminator): Declare. + * decl.c (push_local_name): Delete. + (local_entities, determina_local_discrminator): New. + (duplicate_decls): Copy DECL_ACCESS. Fix formatting. + (cp_finish_decl): Use determine_local_discriminator. + (save_function_data): Drop x_local_names. + (finish_function): Drop local_names. + * decl2.c (finish_anon_union): Use determine_local_disciminator. + * mangle.c (write_unnamed_type_name): Use + discriminator_for_local_entity. + (local_class_index): Delete. + (discriminator_for_local_entity): Reimplement. + (write_local_name): Adjust discriminator code. + * name-lookup.c (do_pushtag): Call determine_local_discrimiator. + * semantics.c (finish_omp_threadprivate): Drop DECL_DISCRIMINATOR + handling. + * class.c (local_classes): Delete. + (init_class_processing): Don't init it. + +2018-11-01 Martin Liska + Jason Merrill + + PR c++/64266 + PR bootstrap/70422 + PR ipa/81277 + * cp-tree.h (DECL_FNAME_P): New macro. + * decl.c (cp_make_fname_decl): Set DECL_DECLARED_CONSTEXPR_P, + DECL_VALUE_EXPR, DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. + (cp_finish_decl): + * lambda.c (is_capture_proxy): Use DECL_FNAME_P. + * pt.c (tsubst_expr): Handle DECL_PRETTY_FUNCTION_P. + +2018-10-31 Nathan Sidwell + + * cp-tree.h (OVL_DEDUP_P): New. + * name-lookup.c (name_lookup::add_overload): Check OVL_DEDUP_P. + (get_class_binding_direct): Likwise. + * tree.c (ovl_make): Propagate OVL_DEDUP_P. + (ovl_copy): Copy it. + (ovl_insert): Do not keep using-decls ordered. + (lookup_maybe_add): Adjust comment. + +2018-10-30 Marek Polacek + + Implement P0892R2, explicit(bool). + * call.c (add_template_candidate_real): Return if the declaration is + explicit and we're only looking for non-converting constructor. + * cp-tree.h (lang_decl_fn): Add has_dependent_explicit_spec_p bit. + (DECL_HAS_DEPENDENT_EXPLICIT_SPEC_P): New macro. + (cp_decl_specifier_seq): Add explicit_specifier field. + (build_explicit_specifier, store_explicit_specifier): Declare. + * decl.c (grokdeclarator): Call store_explicit_specifier. + (build_explicit_specifier): New function. + * parser.c (cp_parser_function_specifier_opt) : + Parse C++20 explicit(bool). + * pt.c (store_explicit_specifier, lookup_explicit_specifier): New. + (tsubst_function_decl): Handle explicit(dependent-expr). + +2018-10-30 Paolo Carlini + + * decl.c (grokdeclarator): Use declarator->id_loc in diagnostic + about flexible array members. + +2018-10-29 David Malcolm + + * cp-name-hint.h: New file. + * cp-tree.h (expr_to_string): New decl. + (suggest_alternatives_for): Move to cp-name-hint.h, changing + return type from bool to name_hint. + (suggest_alternative_in_explicit_scope): Likewise. + * error.c: Define INCLUDE_UNIQUE_PTR. Include "cp-name-hint.h". + (expr_to_string): Make non-static. + (qualified_name_lookup_error): For the non-"::" case, take + responsibity for issuing any suggestion from + suggest_alternative_in_explicit_scope, as it changes from + returning a bool to returning a name_hint. Replace fallback call + to suggest_alternatives_for to a call to + suggest_alternatives_in_other_namespaces, capturing the fact that + we don't have enough location information to issue a fix-it hint + for this case. Update the error to support emitting a fix-it hint + where appropriate. For the "::" case, take responsibility for + issuing any suggestion from suggest_alternatives_for, supporting + emitting a fix-it hint. + * lex.c: Define INCLUDE_UNIQUE_PTR. Include "gcc-rich-location.h" + and "cp-name-hint.h". + (unqualified_name_lookup_error): Take responsibility for issuing + any suggestion from suggest_alternatives_for, supporting emitting + a fix-it hint. + * name-lookup.c (class namespace_limit_reached): New subclass of + deferred_diagnostic. + (class show_candidate_location): Likewise. + (class suggest_alternatives): Likewise. + (class namespace_hints): New class. + (suggest_alternatives_for): Convert return type from bool to + name_hint, replacing all direct diagnostic emission by setting + suggestions on the return value, or creating deferred diagnostics. + Specifically, split out initial traversal of namespaces into + namespace_hints' ctor, and maybe_decorate_with_limit, and move the + rest of the implementation to + namespace_hints::convert_candidates_to_name_hint and + suggest_alternatives_for_1. + (namespace_hints::namespace_hints): New ctor, adapted from + suggest_alternatives_for's initial namespace traversal, storing + location and name, and converting locals "candidates", "limited" + and "limit" into members. + (namespace_hints::convert_candidates_to_name_hint): New member + function. + (namespace_hints::maybe_decorate_with_limit): New member function. + (suggest_alternatives_for_1): New function, based on second half + of old implementation of suggest_alternatives_for, converting from + immediate emission of suggestions to using name_hint. + (suggest_alternatives_in_other_namespaces): New function. + (maybe_suggest_missing_std_header): Convert from immediate + emission of suggestions to using name_hint, moving emission + implementation to... + (class missing_std_header): New subclass of deferred_diagnostic. + (maybe_suggest_missing_header): Convert return type from bool to + name_hint. + (suggest_alternative_in_explicit_scope): Convert from immediate + emission of suggestions to using name_hint. + * parser.c: Replace include of "c-family/name-hint.h" with + "cp-name-hint.h". + (cp_parser_diagnose_invalid_type_name): Update + "is there a suggestion" logic for change to + name_hint::operator bool. Take responsibility for emitting + fix-it hints from suggest_alternative_in_explicit_scope. + (cp_parser_namespace_name): Take responsibility for emitting + fix-it hints from suggest_alternative_in_explicit_scope. Don't + emit the "expected namespace-name" error if we've already emitted + an "is not a namespace-name" error. + +2018-10-29 David Malcolm + + PR c++/56856 + * call.c (build_over_call): Eliminate the "arglocs" array, and the + call to maybe_constant_value when building "fargs". + +2018-10-29 Paolo Carlini + + * decl.c (create_array_type_for_decl): Add location_t parameter + and use it. + (grokdeclarator): Adjust call. + +2018-10-29 Marek Polacek + + PR c++/87594 - constexpr rejects-valid with range-based for. + * constexpr.c (potential_constant_expression_1): If the condition + can't be evaluated, return true. + +2018-10-29 Joseph Myers + Julian Brown + + PR c++/66053 + * semantics.c (handle_omp_array_sections_1): Allow array + sections with "this" pointer for OpenACC. + +2018-10-25 Jason Merrill + + * parser.c (cp_parser_sizeof_operand): Remove redundant use of + grokdeclarator. + +2018-10-24 Jakub Jelinek + + PR c++/86288 + * parser.c (cp_parser_std_attribute): Canonicalize attr_ns, and when + :: is not present and attr_ns non-NULL, canonicalize also attr_id. + (cp_parser_attribute_spec): Fix comment typo. + +2018-10-24 Martin Sebor + + PR c++/84851 + * call.c (maybe_warn_class_memaccess): Tighten up. + +2018-10-17 David Malcolm + + * Make-lang.in (selftest-c++): New. + (CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++) + (selftest-c++-gdb, selftest-c++-valgrind): Move here from + gcc/Makefile.in. + +2018-10-17 Paolo Carlini + + PR c++/84705 + * tree.c (build_cplus_new): Avoid duplicate diagnostic about + incomplete type, early return error_mark_node if the second + argument is error_mark_node. + +2018-10-12 Nathan Sidwell + + * parser.h (struct cp_parser): Drop implicit_extern_c. + * parser.c (cp_debug_parser): Drop implicit_extern_c. + (cp_parser_new): Likewise. + (cp_parser_translation_unit): Handle implicit extern c here. Call + cp_parser_toplevel_declaration. + (cp_parser_toplevel_declaration): New, broken out of ... + (cp_parser_declaration_seq_opt): ... here. Call it. Drop + implicit extern C handling. + +2018-10-11 Will Wray + + PR c++/87364 + * cxx-pretty-print.c (pp_cxx_enumeration_constant): New function. + (cxx_pretty_printer::constant): Use it. + +2018-10-11 David Malcolm + + PR c++/84993 + * call.c (enforce_access): Move diagnostics to... + (complain_about_access): ...this new function. + * cp-tree.h (class access_failure_info): Rename split out field + "m_field_decl" into "m_decl" and "m_diag_decl". + (access_failure_info::record_access_failure): Add tree param. + (access_failure_info::was_inaccessible_p): New accessor. + (access_failure_info::get_decl): New accessor. + (access_failure_info::get_diag_decl): New accessor. + (access_failure_info::get_any_accessor): New member function. + (access_failure_info::add_fixit_hint): New static member function. + (complain_about_access): New decl. + * typeck.c (access_failure_info::record_access_failure): Update + for change to fields. + (access_failure_info::maybe_suggest_accessor): Split out into... + (access_failure_info::get_any_accessor): ...this new function... + (access_failure_info::add_fixit_hint): ...and this new function. + (finish_class_member_access_expr): Split out "has no member named" + error-handling into... + (complain_about_unrecognized_member): ...this new function, and + check that the guessed name is accessible along the access path. + Only provide a spell-correction fix-it hint if it is; otherwise, + attempt to issue an accessor fix-it hint. + +2018-10-11 Nathan Sidwell + + * parser.c (cp_parser_translation_unit): Return void. Don't fail + at first extra }, simplify logic. + (c_parse_file): Call finish_translation_unit here. + +2018-10-11 Jakub Jelinek + + PR c++/87582 + * typeck.c (maybe_warn_about_returning_address_of_local): If + whats_returned is a structured binding identifier and the structured + binding is a reference, recurse on its initializer. + + PR c++/87547 + * rtti.c (get_tinfo_decl_dynamic): Use unlowered_expr_type instead + of TREE_TYPE. + +2018-10-10 Marek Polacek + + PR c++/87567 - constexpr rejects call to non-constexpr function. + * constexpr.c (potential_constant_expression_1) : Return + true if the condition is always false. + : Likewise. + +2018-10-09 Paolo Carlini + + PR c++/84423 + * pt.c (convert_template_argument): Immediately return error_mark_node + if the second argument is erroneous. + * parser.c (cp_parser_type_id): Add location_t * parameter. + (cp_parser_type_id_1): Likewise. + (cp_parser_alias_declaration): Adjust cp_parser_type_id call, + obtain the location of the type and save it. + (cp_parser_template_type_arg): Adjust. + (cp_parser_trailing_type_id): Likewise. + * decl.c (grokdeclarator): Improve error message for 'auto' in + alias declaration. + +2018-10-08 Paolo Carlini + + PR c++/71128 + * pt.c (do_decl_instantiation): Per 12.6.8/5, a concept cannot be + explicitly instantiated. + +2018-10-05 David Malcolm + + PR c++/56856 + * call.c (build_over_call): Build a vec of locations of the + arguments before the call to maybe_constant_value, and pass to + check_function_arguments. + * cp-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Define as + c_get_substring_location. + * parser.c (cp_parser_string_literal): Capture string + concatenation locations. + +2018-10-04 Nathan Sidwell + + * lang-specs.h: Use string contatenation, not line splicing. + +2018-10-03 Jason Merrill + + Implement P0840, language support for empty objects. + * tree.c (handle_no_unique_addr_attribute): New. + (cxx_attribute_table): Add [[no_unique_address]]. + * class.c (field_poverlapping_p): New. + (layout_class_type): Check it. Adjust DECL_SIZE of potentially + overlapping fields. + (layout_empty_base_or_field): Rename from layout_empty_base, handle + FIELD_DECL as well. + (build_base_field, record_subobject_offsets): Adjust. + +2018-10-03 Martin Liska + + PR gcov-profile/86109 + * parser.c (cp_parser_lambda_declarator_opt): + Set DECL_LAMBDA_FUNCTION for lambdas. + +2018-10-02 Richard Biener + + * name-lookup.c (check_local_shadow): Do not test DECL_FROM_INLINE. + +2018-09-28 Eric Botcazou + Pierre-Marie de Rodat + + * method.c (use_thunk): Adjust call to cgraph_node::create_thunk. + +2018-09-28 Richard Biener + + * error.c (cp_print_error_function): Simplify by eliding + the BLOCK_ABSTRACT_ORIGIN chasing. + +2018-09-27 Paolo Carlini + + PR c++/84940 + * semantics.c (finish_unary_op_expr): Check return value of + build_x_unary_op for error_mark_node. + +2018-09-25 Jakub Jelinek + + PR c++/87398 + * constexpr.c (cxx_eval_constant_expression) : Only + look through COMPONENT_REFs with DECL_FIELD_IS_BASE FIELD_DECLs. + +2018-09-25 Martin Liska + + * name-lookup.c (namespace_scope_ht_size): Remove + unused function. + * parser.c (cp_lexer_next_token_is_not_keyword): Likewise. + +2018-09-24 Paolo Carlini + + PR c++/85070 + * method.c (lazily_declare_fn): During error-recovery add_method + may return false. + +2018-09-21 Marek Polacek + + PR c++/87372 - __func__ constexpr evaluation. + * constexpr.c (maybe_constant_init_1): Pass false for strict down to + cxx_eval_outermost_constant_expr. + +2018-09-20 Marek Polacek + + PR c++/87109 - wrong ctor with maybe-rvalue semantics. + * call.c (build_user_type_conversion_1): Refine the maybe-rvalue + check to only return if we're converting the return value to a base + class. + +2018-09-20 Allan Sandfeld Jensen + + * g++spec.c (lang_specific_driver): Handle -r like -nostdlib. + +2018-09-20 Jason Merrill + + PR c++/87075 - ICE with constexpr array initialization. + * constexpr.c (cxx_eval_vec_init_1): Handle trivial initialization. + +2018-09-19 Marek Polacek + + Add -Wclass-conversion. + * decl.c (grok_op_properties): Change a warning from -Wconversion to + -Wclass-conversion. Make it print the types. + +2018-09-19 Paolo Carlini + + PR c++/87324 + * parser.c (cp_parser_initializer_list): Assign error_mark_node + to the index upon error. + +2018-09-19 Marek Polacek + + PR c++/87357 - missing -Wconversion warning + * decl.c (grok_op_properties): Remove diagnostic parts mentioning + a conversion to a reference to void. Use + same_type_ignoring_top_level_qualifiers_p rather than comparing types + directly. + +2018-09-18 Marek Polacek + + P1064R0 - Allowing Virtual Function Calls in Constant Expressions + * call.c (build_over_call): No longer check if we're outside a template + function. + * class.c (build_vtbl_initializer): Build vtable's constructor with + indexes. + * constexpr.c (cxx_eval_constant_expression): Don't ignore _vptr's + initializer. Handle OBJ_TYPE_REF. + (potential_constant_expression_1): Handle OBJ_TYPE_REF. + * decl.c (maybe_commonize_var): Bail out for any DECL_ARTIFICIAL. + (initialize_artificial_var): Mark the variable as constexpr. + (grokdeclarator): Change error to pedwarn. Only warn when + pedantic and not C++2a. + +2018-09-18 Paolo Carlini + + PR c++/85065 + * cp-tree.h (NON_ERROR): New. + * pt.c (auto_hash::hash): Use it. + (do_auto_deduction): Likewise. + +2018-09-18 Nathan Sidwell + + PR c++/86881 + * name-lookup.c (check_local_shadow): Ignore auto types. + +2018-09-17 David Malcolm + + * error.c (range_label_for_type_mismatch::get_text): Update for + new param. + +2018-09-13 Bernd Edlinger + + * typeck2.c (digest_init_r): Fix overlength strings. + +2018-09-13 Ville Voutilainen + + PR c++/87093 + * method.c (constructible_expr): We're in an unevaluated context + in all cases, not just for class targets. + +2018-09-12 David Malcolm + + PR c++/85110 + * call.c (struct conversion_info): Add "loc" field. + (arg_conversion_rejection): Add "loc" param, using it to + initialize the new field. + (bad_arg_conversion_rejection): Likewise. + (explicit_conversion_rejection): Initialize the new field to + UNKNOWN_LOCATION. + (template_conversion_rejection): Likewise. + (add_function_candidate): Pass on the argument location to the new + param of arg_conversion_rejection. + (add_conv_candidate): Likewise. + (build_builtin_candidate): Likewise. + (build_user_type_conversion_1): Likewise. + (single_z_candidate): New function. + (maybe_get_bad_conversion_for_unmatched_call): New function. + (complain_about_bad_argument): New function, based on part of + convert_for_assignment. + (build_new_method_call_1): Split out handling of the "no viable + candidates" case into... + (complain_about_no_candidates_for_method_call): ...this new + function, and use the new functions above to special-case the + handling of a single non-viable candidate due to a bad argument. + * cp-tree.h (complain_about_bad_argument): New decl. + * typeck.c (convert_for_assignment): Split out one error-handling + case into complain_about_bad_argument. + +2018-09-09 Cesar Philippidis + Julian Brown + + PR middle-end/86336 + * semantics.c (finish_omp_clauses): Treat C++ references the same in + OpenACC as OpenMP. + +2018-08-28 Martin Liska + + * constexpr.c (cxx_eval_call_expression): Add quotes + to -fconstexpr-depth=. + +2018-09-10 Marek Polacek + + * class.c (build_vtbl_ref): Remove. + (build_vtbl_ref_1): Rename to build_vtbl_ref. + (build_vfn_ref): Call build_vtbl_ref instead of build_vtbl_ref_1. + +2018-09-08 Marek Polacek + + PR c++/87150 - wrong ctor with maybe-rvalue semantics. + * call.c (struct conversion): Update commentary. + (standard_conversion): Set rvaluedness_matches_p if LOOKUP_PREFER_RVALUE + for ck_base. + +2018-09-08 Jason Merrill + + PR c++/86678 - constexpr function with non-constant after return. + * constexpr.c (potential_constant_expression_1): Add jump_target. + (breaks): Check for BREAK_STMT. + (continues): Check for CONTINUE_STMT. + +2018-09-08 Marek Polacek + + * cxx-pretty-print.c (cxx_pretty_printer::statement) : Handle RANGE_FOR_INIT_STMT. + +2018-09-07 Marek Polacek + + PR c++/87152 - range-based for loops with initializer broken in templates. + * constexpr.c (potential_constant_expression_1) : + Recur into RANGE_FOR_INIT_STMT. + * cp-tree.def: Add RANGE_FOR_INIT_STMT to RANGE_FOR_STMT. + * cp-tree.h (RANGE_FOR_INIT_STMT): Define. + * dump.c (cp_dump_tree) : Also dump + RANGE_FOR_INIT_STMT. + * pt.c (tsubst_expr) : Recur into + RANGE_FOR_INIT_STMT. + * semantics.c (begin_range_for_stmt): Adjust call to build_stmt. + Do put the init statement in RANGE_FOR_INIT_STMT. + (finish_range_for_decl): Pop it for templates. + +2018-09-06 Bernd Edlinger + + * decl.c (check_initializer): Call cp_complete_array_type. + +2018-09-05 Marek Polacek + + PR c++/87109, wrong overload with ref-qualifiers. + * call.c (build_user_type_conversion_1): Use NULL instead of 0. Bail + out if performing the maybe-rvalue overload resolution and a conversion + function is getting called. + + PR c++/86982, -Wreturn-local-addr and std::move and std::forward. + * typeck.c (maybe_warn_about_returning_address_of_local): Handle calls + to std::move or std::forward. + (is_std_forward_p): New function. + +2018-09-05 Pádraig Brady + + PR c++/87185 + * lambda.c (prune_lambda_captures): Protect against const_vars.get + returning NULL. + +2018-09-04 Marek Polacek + + * cp-tree.h (treat_lvalue_as_rvalue_p): Declare. + * except.c (build_throw): Use it. Use CP_TYPE_VOLATILE_P. + * typeck.c (treat_lvalue_as_rvalue_p): No longer static. Add PARM_OK + parameter. + (maybe_warn_pessimizing_move): Adjust treat_lvalue_as_rvalue_p call. + (check_return_expr): Likewise. + +2018-09-03 Paolo Carlini + + PR c++/84980 + * constraint.cc (finish_shorthand_constraint): Early return if the + constraint is erroneous. + +2018-09-02 Bernd Edlinger + + * decl.c (eval_check_narrowing): Remove. + (check_initializer): Move call to braced_list_to_string from here ... + * typeck2.c (store_init_value): ... to here. + (digest_init_r): Remove handing of signed/unsigned char strings. + +2018-08-31 Nathan Sidwell + + PR c++/87155 + PR c++/84707 + * name-lookup.c (name_lookup::search_namespace): Don't look at + inlines when searching for NULL names. + + * decl.c (decls_match): Remove SYSTEM_IMPLICIT_EXTERN_C matching + of return types and parms. + * parser.c (cp_parser_parameter_declaration_clause): Likewise, + '()' always means '(void)'. + +2018-08-29 Jakub Jelinek + + PR c++/87095 + * decl.c (begin_destructor_body): If current_class_type has + virtual bases and the primary base is nearly empty virtual base, + voidify clearing of vptr and make it conditional on in-charge + argument. + +2018-08-29 Paolo Carlini + + PR c++/85265 + * parser.c (cp_parser_introduction_list): If cp_parser_identifier + returns error_mark_node early exit the loop. + (cp_parser_template_introduction): Improve error-recovery, remove + error call about empty introduction-list. + +2018-08-29 David Malcolm + + PR c++/85110 + * call.c (print_conversion_rejection): Add "fn" param and use it + for "no known conversion" messages to underline the pertinent + param. + (print_z_candidate): Supply "fn" to the new param above. + +2018-08-29 Jakub Jelinek + + PR c++/87122 + * pt.c (tsubst_expr) : If + processing_template_decl and decl is structured binding decl, call + cp_finish_decomp. + +2018-08-28 Paolo Carlini + + PR c++/86546 + * decl.c (finish_case_label): If the type is erroneous early + return error_mark_node. + +2018-08-27 David Malcolm + + PR c++/63392 + * parser.c (cp_parser_diagnose_invalid_type_name): Add fix-it + hint. + +2018-08-27 Jakub Jelinek + + PR c++/86993 + * cp-tree.h (cxx_readonly_error): Add location_t argument. + * typeck2.c (cxx_readonly_error): Add LOC argument, pass it to + ERROR_FOR_ASSIGNMENT macro and readonly_error. Add LOC argument + to ERROR_FOR_ASSIGNMENT macro, use error_at instead of error and + pass LOC to it. Formatting fixes. + * typeck.c (cp_build_unary_op): Pass location to cxx_readonly_error. + (cp_build_modify_expr): Pass loc to cxx_readonly_error. + * semantics.c (finish_asm_stmt): Pass input_location to + cxx_readonly_error. + +2018-08-27 David Malcolm + + PR c++/87091 + * decl.c (grokdeclarator): Update for conversion of show_caret_p + to a tri-state. + * error.c (cp_printer): Likewise. + * name-lookup.c (maybe_suggest_missing_std_header): Update call to + maybe_add_include_fixit to suggest overriding the location, as it + is for a note. + * parser.c (cp_parser_string_literal): Update for conversion of + show_caret_p to a tri-state. + (cp_parser_elaborated_type_specifier): Likewise. + (set_and_check_decl_spec_loc): Likewise. + * pt.c (listify): Update call to maybe_add_include_fixit to not + override the location, as it is for an error. + * rtti.c (typeid_ok_p): Likewise. + +2018-08-27 Martin Liska + + * call.c (build_call_a): Use new function + fndecl_built_in_p and remove check for FUNCTION_DECL if + possible. + (build_cxx_call): Likewise. + * constexpr.c (constexpr_fn_retval): Likewise. + (cxx_eval_builtin_function_call): Likewise. + (cxx_eval_call_expression): Likewise. + (potential_constant_expression_1): Likewise. + * cp-gimplify.c (cp_gimplify_expr): Likewise. + (cp_fold): Likewise. + * decl.c (decls_match): Likewise. + (validate_constexpr_redeclaration): Likewise. + (duplicate_decls): Likewise. + (make_rtl_for_nonlocal_decl): Likewise. + * name-lookup.c (consider_binding_level): Likewise. + (cp_emit_debug_info_for_using): Likewise. + * semantics.c (finish_call_expr): Likewise. + * tree.c (builtin_valid_in_constant_expr_p): Likewise. + +2018-08-26 Marek Polacek + + PR c++/87080 + * typeck.c (maybe_warn_pessimizing_move): Do nothing in a template. + + PR c++/87029, Implement -Wredundant-move. + * typeck.c (treat_lvalue_as_rvalue_p): New function. + (maybe_warn_pessimizing_move): Call convert_from_reference. + Warn about redundant moves. + +2018-08-24 Marek Polacek + + PR c++/67012 + PR c++/86942 + * decl.c (grokdeclarator): Disallow functions with trailing return + type with decltype(auto) as its type. Also check the function if + it's inner declarator doesn't exist + +2018-08-21 Marek Polacek + + PR c++/86499 + * parser.c (cp_parser_lambda_introducer): Give error if a non-local + lambda has a capture-default. + +2018-08-21 Paolo Carlini + + * decl.c (check_static_variable_definition): Change to return void. + +2018-08-21 Marek Polacek + + PR c++/86981, Implement -Wpessimizing-move. + * typeck.c (decl_in_std_namespace_p): New. + (is_std_move_p): New. + (maybe_warn_pessimizing_move): New. + (can_do_nrvo_p): New, factored out of ... + (check_return_expr): ... here. Warn about potentially harmful + std::move in a return statement. + + PR c++/65043 + * call.c (standard_conversion): Set check_narrowing. + * typeck2.c (check_narrowing): Use CP_INTEGRAL_TYPE_P rather + than comparing with INTEGER_TYPE. + + * cp-tree.h: Fix typo. + +2018-08-20 David Malcolm + + PR other/84889 + * call.c (build_user_type_conversion_1): Add auto_diagnostic_group + instance(s). + (print_error_for_call_failure): Likewise. + (build_op_call_1): Likewise. + (build_conditional_expr_1): Likewise. + (build_new_op_1): Likewise. + (build_op_delete_call): Likewise. + (convert_like_real): Likewise. + (build_over_call): Likewise. + (build_new_method_call_1): Likewise. + (joust): Likewise. + * class.c (check_tag): Likewise. + (finish_struct_anon_r): Likewise. + (one_inherited_ctor): Likewise. + (finalize_literal_type_property): Likewise. + (explain_non_literal_class): Likewise. + (find_flexarrays): Likewise. + (resolve_address_of_overloaded_function): Likewise. + * constexpr.c (ensure_literal_type_for_constexpr_object): Likewise. + (is_valid_constexpr_fn): Likewise. + (cx_check_missing_mem_inits): Likewise. + * cp-gimplify.c (cp_genericize_r): Likewise. + * cvt.c (maybe_warn_nodiscard): Likewise. + * decl.c (warn_extern_redeclared_static): Likewise. + (check_redeclaration_exception_specification): Likewise. + (check_no_redeclaration_friend_default_args): Likewise. + (duplicate_decls): Likewise. + (redeclaration_error_message): Likewise. + (warn_misplaced_attr_for_class_type): Likewise. + * decl2.c (finish_static_data_member_decl): Likewise. + (no_linkage_error): Likewise. + (cp_warn_deprecated_use): Likewise. + * error.c (qualified_name_lookup_error): Likewise. + * friend.c (make_friend_class): Likewise. + (do_friend): Likewise. + * init.c (perform_member_init): Likewise. + (build_new_1): Likewise. + (build_vec_delete_1): Likewise. + (build_delete): Likewise. + * lex.c (unqualified_name_lookup_error): Likewise. + * name-lookup.c (check_extern_c_conflict): Likewise. + (inform_shadowed): New function. + (check_local_shadow): Add auto_diagnostic_group instances, + replacing goto "inform_shadowed" label with call to subroutine. + (set_local_extern_decl_linkage): Add auto_diagnostic_group + instance(s). + * parser.c (cp_parser_diagnose_invalid_type_name): Likewise. + (cp_parser_namespace_name): Likewise. + * pt.c (check_specialization_namespace): Likewise. + (check_template_variable): Likewise. + (warn_spec_missing_attributes): Likewise. + (check_explicit_specialization): Likewise. + (process_partial_specialization): Likewise. + (lookup_template_class_1): Likewise. + (finish_template_variable): Likewise. + (do_auto_deduction): Likewise. + * search.c (check_final_overrider): Likewise. + (look_for_overrides_r): Likewise. + * tree.c (maybe_warn_parm_abi): Likewise. + * typeck.c (cxx_sizeof_expr): Likewise. + (cp_build_function_call_vec): Likewise. + (cp_build_binary_op): Likewise. + (convert_for_assignment): Likewise. + (maybe_warn_about_returning_address_of_local): Likewise. + * typeck2.c (abstract_virtuals_error_sfinae): Likewise. + (check_narrowing): Likewise. + +2018-08-17 David Malcolm + + * typeck.c (string_conv_p): Extract location from EXP and use it + in preference to input_location when issuing warnings. + +2018-08-15 David Malcolm + + * call.c: Include "gcc-rich-location.h". + (convert_like_real): Add range label for "invalid conversion" + diagnostic. + (perform_implicit_conversion_flags): Add type label to the + "could not convert" error. + * error.c: Include "gcc-rich-location.h". + (range_label_for_type_mismatch::get_text): New function. + * typeck.c (convert_for_assignment): Add type label to + the "cannot convert" error if a location is available. + +2018-08-15 Paolo Carlini + + * decl.c (check_previous_goto_1): When decl_jump_unsafe returns 2 + emit an error instead of a permerror. + +2018-08-13 Marek Polacek + + PR c++/57891 + * call.c (struct conversion): Add check_narrowing_const_only. + (build_converted_constant_expr): Set check_narrowing and + check_narrowing_const_only. Give error if expr is error node. + (convert_like_real): Pass it to check_narrowing. + * cp-tree.h (check_narrowing): Add a default parameter. + * decl.c (compute_array_index_type): Use input_location instead of + location_of. + * pt.c (convert_nontype_argument): Return NULL_TREE if tf_error. + * typeck2.c (check_narrowing): Don't warn for instantiation-dependent + expressions. Call maybe_constant_value instead of + fold_non_dependent_expr. Don't mention { } in diagnostic. Only check + narrowing for constants if CONST_ONLY. + +2018-08-13 Martin Sebor + + PR tree-optimization/71625 + * decl.c (check_initializer): Call braced_list_to_string. + (eval_check_narrowing): New function. + * gcc/cp/typeck2.c (digest_init_r): Accept strings literals + as initilizers for all narrow character types. + +2018-08-13 Marek Polacek + + P0806R2 - Deprecate implicit capture of this via [=] + * lambda.c (add_default_capture): Formatting fixes. Warn about + deprecated implicit capture of this via [=]. + + PR c++/86915 + * decl.c (create_array_type_for_decl): Handle null name. + +2018-08-10 Jason Merrill + + PR c++/86728 - C variadic generic lambda. + * parser.c (cp_parser_parameter_declaration): Don't turn 'auto' into + a pack if it's followed by a declarator-id. + +2018-08-08 Jakub Jelinek + + P0595R1 - is_constant_evaluated + * cp-tree.h (enum cp_built_in_function): New. + (maybe_constant_init): Add pretend_const_required argument. + * typeck2.c (store_init_value): Pass true as new argument to + maybe_constant_init. + * constexpr.c (constexpr_fn_retval): Check also DECL_BUILT_IN_CLASS + for BUILT_IN_UNREACHABLE. + (struct constexpr_ctx): Add pretend_const_required field. + (cxx_eval_builtin_function_call): Use DECL_IS_BUILTIN_CONSTANT_P + macro. Handle CP_BUILT_IN_IS_CONSTANT_EVALUATED. Check also + DECL_BUILT_IN_CLASS for BUILT_IN_UNREACHABLE. + (cxx_eval_outermost_constant_expr): Add pretend_const_required + argument, initialize pretend_const_required field in ctx. If the + result is TREE_CONSTANT and non_constant_p, retry with + pretend_const_required false if it was true. + (is_sub_constant_expr): Initialize pretend_const_required_field in + ctx. + (cxx_constant_value): Pass true as pretend_const_required to + cxx_eval_outermost_constant_expr. + (maybe_constant_value): Pass false as pretend_const_required to + cxx_eval_outermost_constant_expr. + (fold_non_dependent_expr): Likewise. + (maybe_constant_init_1): Add pretend_const_required argument, pass it + down to cxx_eval_outermost_constant_expr. Pass !allow_non_constant + instead of false as strict to cxx_eval_outermost_constant_expr. + (maybe_constant_init): Add pretend_const_required argument, pass it + down to maybe_constant_init_1. + (cxx_constant_init): Pass true as pretend_const_required to + maybe_constant_init_1. + * cp-gimplify.c (cp_gimplify_expr): Handle CALL_EXPRs to + CP_BUILT_IN_IS_CONSTANT_EVALUATED. + (cp_fold): Don't fold CP_BUILT_IN_IS_CONSTANT_EVALUATED calls. + * decl.c: Include langhooks.h. + (cxx_init_decl_processing): Register __builtin_is_constant_evaluated + built-in. + * tree.c (builtin_valid_in_constant_expr_p): Return true for + CP_BUILT_IN_IS_CONSTANT_EVALUATED. + * pt.c (declare_integer_pack): Initialize DECL_FUNCTION_CODE. + + PR c++/86836 + * pt.c (tsubst_expr): For structured bindings, call tsubst_decomp_names + before tsubst_init, not after it. + + PR c++/86738 + * constexpr.c (cxx_eval_binary_expression): For arithmetics involving + NULL pointer set *non_constant_p to true. + (cxx_eval_component_reference): For dereferencing of a NULL pointer, + set *non_constant_p to true and return t. + +2018-08-07 Paolo Carlini + + PR c++/59480, DR 136 + * decl.c (check_no_redeclaration_friend_default_args): New. + (duplicate_decls): Use the latter; also check that a friend + declaration specifying default arguments is a definition. + +2018-08-07 Ville Voutilainen + + PR c++/79133 + * name-lookup.c (check_local_shadow): Reject captures and parameters + with the same name. + +2018-08-06 Marek Polacek + + PR c++/86767 + * constexpr.c (cxx_eval_statement_list): Handle continue. + +2018-08-03 David Malcolm + Jonathan Wakely + + * decl.c: Include "gcc-rich-location.h". + (add_return_star_this_fixit): New function. + (finish_function): When warning about missing return statements in + functions returning non-void, add a "return *this;" fix-it hint for + assignment operators. + +2018-08-03 Jason Merrill + + PR c++/86706 + * class.c (build_base_path): Use currently_open_class. + +2018-08-02 David Malcolm + + * error.c (cxx_print_error_function): Duplicate "file" before + passing it to pp_set_prefix. + (cp_print_error_function): Use pp_take_prefix when saving the + existing prefix. + +2018-08-02 Richard Biener + + PR c++/86763 + * class.c (layout_class_type): Copy TYPE_TYPELESS_STORAGE + to the CLASSTYPE_AS_BASE. + +2018-08-01 Martin Sebor + + PR tree-optimization/86650 + * error.c (cp_printer): Move usage of EXPR_LOCATION (t) and + TREE_BLOCK (t) from within percent_K_format to this callsite. + +2018-08-01 Paolo Carlini + + PR c++/86661 + * class.c (note_name_declared_in_class): Use location_of in permerror + instead of DECL_SOURCE_LOCATION (for OVERLOADs). + +2018-07-31 Tom de Vries + + PR debug/86687 + * optimize.c (update_cloned_parm): Copy DECL_BY_REFERENCE. + +2018-07-31 Jakub Jelinek + + P1008R1 - prohibit aggregates with user-declared constructors + * class.c (check_bases_and_members): For C++2a set + CLASSTYPE_NON_AGGREGATE based on TYPE_HAS_USER_CONSTRUCTOR rather than + type_has_user_provided_or_explicit_constructor. + +2018-07-31 Martin Liska + + PR c++/86653 + * parser.c (cp_parser_condition): Initialize non_constant_p + to false. + +2018-07-28 David Malcolm + + * error.c (cp_printer): In the leading comment, move "%H" and "%I" + into alphabetical order, and add missing "%G" and "%K". Within + the switch statement, move cases 'G', 'H', 'I' and 'K' so that the + cases are in alphabetical order. + +2018-07-25 Jakub Jelinek + + * cp-tree.h (enum cp_tree_index): Add + CPTI_{ABI_TAG,ALIGNED,BEGIN,END,GET,TUPLE_{ELEMENT,SIZE}}_IDENTIFIER + and CPTI_{GNU,TYPE,VALUE,FUN,CLOSURE}_IDENTIFIER. + (abi_tag_identifier, aligned_identifier, begin_identifier, + end_identifier, get__identifier, gnu_identifier, + tuple_element_identifier, tuple_size_identifier, type_identifier, + value_identifier, fun_identifier, closure_identifier): Define. + * decl.c (initialize_predefined_identifiers): Initialize the above + identifiers. + (get_tuple_size): Use tuple_size_identifier instead of + get_identifier ("tuple_size") and value_identifier instead of + get_identifier ("value"). + (get_tuple_element_type): Use tuple_element_identifier instead of + get_identifier ("tuple_element") and type_identifier instead of + get_identifier ("type"). + (get_tuple_decomp_init): Use get__identifier instead of + get_identifier ("get"). + * lambda.c (maybe_add_lambda_conv_op): Use fun_identifier instead of + get_identifier ("_FUN"). + * parser.c (cp_parser_lambda_declarator_opt): Use closure_identifier + instead of get_identifier ("__closure"). + (cp_parser_std_attribute): Use gnu_identifier instead of + get_identifier ("gnu"). + (cp_parser_std_attribute_spec): Likewise. Use aligned_identifier + instead of get_identifier ("aligned"). + * class.c (check_abi_tags, inherit_targ_abi_tags): Use + abi_tag_identifier instead of get_identifier ("abi_tag"). + + PR c++/85515 + * cp-tree.h (enum cp_tree_index): Add + CPTI_FOR_{RANGE,BEGIN,END}{,_}_IDENTIFIER. + (for_range__identifier, for_begin__identifier, for_end__identifier, + for_range_identifier, for_begin_identifier, for_end_identifier): + Define. + * decl.c (initialize_predefined_identifiers): Initialize + for_{range,begin,end}{,_}_identifier. + * parser.c (build_range_temp): Use for_range__identifier instead of + get_identifier ("__for_range"). + (cp_convert_range_for): Use for_begin__identifier and + for_end__identifier instead of get_identifier ("__for_begin") and + get_identifier ("__for_end"). + * semantics.c (finish_for_stmt): Rename "__for_{range,begin,end} " + local symbols to "__for_{range,begin,end}". + +2018-07-23 Jakub Jelinek + + PR c++/86569 + * cp-gimplify.c (cp_fold): Don't fold comparisons into other kind + of expressions other than INTEGER_CST regardless of TREE_NO_WARNING + or warn_nonnull_compare. + +2018-07-19 Paolo Carlini + + Revert fix for c++/59480 (and testsuite followup) + + 2019-07-18 Paolo Carlini + + PR c++/59480, DR 136 + * decl.c (check_no_redeclaration_friend_default_args): New. + (duplicate_decls): Use the latter; also check that a friend + declaration specifying default arguments is a definition. + +2018-07-18 Jakub Jelinek + + PR c++/86550 + * parser.c (cp_parser_decl_specifier_seq): Diagnose invalid type + specifier if CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR. + +2018-07-18 Marek Polacek + + PR c++/86190 - bogus -Wsign-conversion warning + * typeck.c (cp_build_binary_op): Fix formatting. Add a warning + sentinel. + +2018-07-18 Paolo Carlini + + PR c++/59480, DR 136 + * decl.c (check_no_redeclaration_friend_default_args): New. + (duplicate_decls): Use the latter; also check that a friend + declaration specifying default arguments is a definition. + +2018-07-18 Paolo Carlini + + * class.c (note_name_declared_in_class): Prefer permerror + inform + to a pair of permerrors; use DECL_SOURCE_LOCATION. + +2018-07-18 Richard Biener + + PR debug/86523 + * decl2.c (c_parse_final_cleanups): Call write_out_vars before + start_static_storage_duration_function sets current_function_decl. + +2018-07-17 Jason Merrill + + PR c++/86480 - nested variadic lambda and constexpr if. + * pt.c (find_parameter_packs_r) [IF_STMT]: Don't walk into + IF_STMT_EXTRA_ARGS. + * tree.c (cp_walk_subtrees) [DECLTYPE_TYPE]: Set + cp_unevaluated_operand. + [ALIGNOF_EXPR] [SIZEOF_EXPR] [NOEXCEPT_EXPR]: Likewise. + +2018-07-16 Paolo Carlini + + * class.c (resolve_address_of_overloaded_function): Don't emit an + inform if the matching permerror returns false. + * pt.c (check_specialization_namespace): Likewise. + +2018-07-16 Jakub Jelinek + + PR c++/3698 + PR c++/86208 + * cp-gimplify.c (cp_genericize_r): When using extern_decl_map, or + in TREE_USED flag from stmt to h->to. + +2018-07-13 Nathan Sidwell + + PR c++/86374 + * pt.c (lookup_template_class_1): Use tsubst_aggr_type for + contexts that are classes. + * parser.c (cp_parser_template_id): Combine entering_scope decl & + initializer. + +2018-07-12 Jakub Jelinek + + * decl2.c (cplus_decl_attributes): Don't diagnose vars without mappable + type here, instead add "omp declare target implicit" attribute. Add + that attribute instead of "omp declare target" also when + processing_template_decl. + * decl.c (cp_finish_decl): Diagnose vars without mappable type here, + and before calling cp_omp_mappable_type call complete_type. + +2018-07-10 Jakub Jelinek + + PR sanitizer/86406 + * cp-gimplify.c (cp_maybe_instrument_return): Skip trailing + DEBUG_BEGIN_STMTs. + + PR c++/86443 + * semantics.c (handle_omp_for_class_iterator): Remove lastp argument, + instead of setting *lastp turn orig_declv elt into a TREE_LIST. + (finish_omp_for): Adjust handle_omp_for_class_iterator caller. + * pt.c (tsubst_omp_for_iterator): Allow OMP_FOR_ORIG_DECLS to contain + TREE_LIST for both the original class iterator and the "last" helper + var. + +2018-07-09 Paolo Carlini + + * decl.c (grokdeclarator): Use rich_location::add_range in three + more places; include gcc-rich-location.h. + +2018-07-07 Aldy Hernandez + + * decl.c (build_enumerator): Change overflow type to overflow_type. + * init.c (build_new_1): Same. + +2018-07-05 Nathan Sidwell + + * cp/decl.c (decls_match): Check SYSTEM_IMPLICIT_EXTERN_C not + NO_IMPLICIT_EXTERN_C. + * cp/parser.c (cp_parser_parameter_declaration_clause): Likewise. + +2018-07-04 Ville Voutilainen + + PR c++/86398 + * method.c (is_trivially_xible): Return false + if is_xible_helper returns a NULL_TREE. + +2018-07-03 Paolo Carlini + + * decl.c (min_location): New. + (smallest_type_quals_location): Use the latter. + (check_concept_fn): Use DECL_SOURCE_LOCATION. + (grokdeclarator): Use accurate locations in a number of error + messages involving ds_thread, ds_storage_class, ds_virtual, + ds_constexpr, ds_typedef and ds_friend; exploit min_location. + +2018-07-03 Marek Polacek + + PR c++/86201 + * typeck.c (cp_build_binary_op): Check c_inhibit_evaluation_warnings. + +2018-07-03 Jason Merrill + + PR c++/86378 - functional cast in noexcept-specifier. + * tree.c (strip_typedefs_expr) [TREE_LIST]: Fix iteration. + +2018-07-02 Paolo Carlini + + * parser.c (set_and_check_decl_spec_loc): Use rich_location::add_range + in error message about __thread and thread_local at the same time. + +2018-06-29 Marek Polacek + + PR c++/86184 + * tree.c (cp_save_expr): Don't call save_expr for TARGET_EXPRs. + +2018-06-28 David Malcolm + + * parser.c (cp_parser_error_1): After issuing a conflict marker + error, consume tokens until the end of the source line. + +2018-06-28 Jason Merrill + + PR c++/86342 - -Wdeprecated-copy and system headers. + * decl2.c (cp_warn_deprecated_use): Don't warn about declarations + in system headers. + +2018-06-27 David Malcolm + + PR c++/86329 + * name-lookup.c (consider_binding_level): Filter out names that + match anon_aggrname_p. + +2018-06-27 Jason Merrill + + * name-lookup.c (do_pushtag): If we skip a class level, also skip + its template level. + +2018-06-26 Jason Merrill + + PR c++/86320 - memory-hog with std::array of pair + * typeck2.c (process_init_constructor_array): Only compute a + constant initializer once. + + PR c++/80290 - memory-hog with std::pair. + * pt.c (fn_type_unification): Add convs parameter. + (check_non_deducible_conversion): Remember conversion. + (check_non_deducible_conversions): New. Do checks here. + (type_unification_real): Not here. Remove flags parm. + * call.c (add_function_candidate): Make convs a parameter. + Don't recalculate the conversion if it's already set. + (add_template_candidate_real): Allocate convs here. + (good_conversion, conv_flags): New. + +2018-06-26 Jakub Jelinek + + PR c++/86291 + * parser.c (cp_parser_omp_for_loop_init): Change for_block argument + type from vec * to vec *&. + +2018-06-23 Paolo Carlini + + * decl.c (bad_specifiers): Add const location_t* parameter and + use locations in error messages about 'inline' and 'virtual'. + (mark_inline_variable): Add location_t parameter and use it in + error_at and pedwarn messages. + (grokdeclarator): Use declspecs->locations[ds_constexpr], + declspecs->locations[ds_concept], declspecs->locations[ds_virtual], + declspecs->locations[ds_inline] in many error messages; adjust + bad_specifiers and mark_inline_variable calls. + (grokvardecl): Use declspecs->locations[ds_concept] in error message. + +2018-06-22 Jason Merrill + + PR c++/86219 - ICE with erroneous initializer in template. + * constexpr.c (fold_non_dependent_expr): Add complain parm. + * call.c, expr.c, init.c, pt.c, semantics.c, typeck.c, typeck2.c: + Pass it. + * call.c (build_cxx_call): Don't mess with builtins in a template. + * typeck2.c (store_init_value): If fold_non_dependent_expr didn't + produce a constant value, go back to the uninstantiated form. + + Avoid taking the address of something just because it's in parens. + * constexpr.c (same_type_ignoring_tlq_and_bounds_p): New. + (cxx_fold_indirect_ref): Use it. + (cxx_eval_constant_expression) [VIEW_CONVERT_EXPR]: Use it. + * cp-tree.h (REF_PARENTHESIZED_P): Allow VIEW_CONVERT_EXPR. + * semantics.c (force_paren_expr): Use VIEW_CONVERT_EXPR instead of + static_cast to reference type. + (maybe_undo_parenthesized_ref): Handle VIEW_CONVERT_EXPR. + +2018-06-21 Jason Merrill + + * pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Use TEMPLATE_PARM_DESCENDANTS. + + * name-lookup.c (do_push_to_top_level): Don't allocate + current_lang_base. + (do_pop_from_top_level): Release current_lang_base. + + Let -fmem-report see callers of cxx_make_type. + * lex.c (cxx_make_type): Add MEM_STAT_DECL. + (make_class_type): Likewise. + (cxx_make_type_hook): New. + * cp-objcp-common.h (LANG_HOOKS_MAKE_TYPE): Use cxx_make_type_hook. + +2018-06-20 Nathan Sidwell + + PR c++/85634 + * friend.c (add_friend): Keep lookup sets of tempate sets. + +2018-06-20 Paolo Carlini + + * decl.c (grokfndecl): Add const cp_decl_specifier_seq* parameter; + tidy handling of a null location_t argument; use proper location + information in a few additional error messages. + (grokdeclarator): Update calls. + +2018-06-20 Chung-Lin Tang + Thomas Schwinge + Cesar Philippidis + + * parser.c (cp_parser_omp_clause_name): Add support for finalize + and if_present. Make present_or_{copy,copyin,copyout,create} aliases + to their non-present_or_* counterparts. Make 'self' an alias to + PRAGMA_OACC_CLAUSE_HOST. + (cp_parser_oacc_data_clause): Update GOMP mappings for + PRAGMA_OACC_CLAUSE_{COPY,COPYIN,COPYOUT,CREATE,DELETE}. Remove + PRAGMA_OACC_CLAUSE_{SELF,PRESENT_OR_*}. + (cp_parser_oacc_all_clauses): Handle finalize and if_present clauses. + Remove support for present_or_* clauses. + (OACC_KERNELS_CLAUSE_MASK): Remove PRESENT_OR_* clauses. + (OACC_PARALLEL_CLAUSE_MASK): Likewise. + (OACC_DECLARE_CLAUSE_MASK): Likewise. + (OACC_DATA_CLAUSE_MASK): Likewise. + (OACC_ENTER_DATA_CLAUSE_MASK): Remove PRESENT_OR_* clauses. + (OACC_EXIT_DATA_CLAUSE_MASK): Add FINALIZE clause. + (OACC_UPDATE_CLAUSE_MASK): Remove SELF, add IF_PRESENT. + (cp_parser_oacc_declare): Remove PRESENT_OR_* clauses. + * pt.c (tsubst_omp_clauses): Handle IF_PRESENT and FINALIZE. + * semantics.c (finish_omp_clauses): Handle IF_PRESENT and FINALIZE. + +2018-06-20 Marek Polacek + + PR c++/86240 + * constexpr.c (cxx_eval_constant_expression): Handle ABSU_EXPR. + (fold_simple_1): Likewise. + * error.c (dump_expr): Likewise. + +2018-06-20 Nathan Sidwell + + PR c++/85634 + * cp-tree.h (lookup_keep): Drop KEEP parm. + (lookup_list_keep): Delete. + (maybe_get_fns): Declare. + * parser.c (cp_parser_primary_expression): Call lookup_keep here. + (cp_parser_template_id): Not here ... + * decl.c (cp_finish_decl): ... nor here ... + * init.c (build_raw_new_expr): ... nor here ... + * pt.c (process_template_parm): ... nor here ... + * semantics.c (perform_koenig_lookup): Call lookup_keep. + (finish_call_expr): Not here. + * tree.c (ovl_cache): Delete. + (ovl_make, ovl_copy): No cache. + (lookup_keep): Always keep. + (lookup_list_keep): Delete. + (maybe_get_fns): New, broken out of ... + (get_fns): ... here. Call it. + (built_min_nt_loc, build_min, build_min_non_dep): Drop lookup_keep. + (build_min_nt_call_vec): Likewise. + +2018-06-19 Jason Merrill + + * cp-tree.h (CONSTRUCTOR_NO_IMPLICIT_ZERO): Remove. + * constexpr.c: Use CONSTRUCTOR_NO_CLEARING instead. + + PR c++/86182 - ICE with anonymous union passed to template. + * pt.c (tsubst_expr) [DECL_EXPR]: Handle an anonymous union type + used to declare a named variable. + +2018-06-18 Jason Merrill + + * tree.c (cp_expr_location): New. + * cp-tree.h (cp_expr_loc_or_loc): New. + * call.c, cvt.c, constexpr.c, constraint.cc, cp-gimplify.c, decl.c, + error.c, init.c, lex.c, parser.c, pt.c, semantics.c, typeck.c, + typeck2.c: Use it instead of EXPR_LOC_OR_LOC. + + * parser.c (cp_parser_lambda_expression): Use a range for + LAMBDA_EXPR_LOCATION. + + PR c++/86200 - ICE with unexpanded pack in lambda parameter. + * pt.c (find_parameter_packs_r) [LAMBDA_EXPR]: Also look into the + function type. + + PR c++/81060 - ICE with unexpanded parameter pack. + * pt.c (check_for_bare_parameter_packs): Add loc parameter. + * decl.c (grokdeclarator): Call it for qualifying_scope. + + PR c++/86171 - ICE with recursive alias instantiation. + * pt.c (tsubst_decl): Handle recursive alias instantiation. + +2018-06-18 Paolo Carlini + + * decl.c (duplicate_decls): Consistently use DECL_SOURCE_LOCATION + in errors about redefined default arguments; tidy. + +2018-06-16 Kugan Vivekanandarajah + + * constexpr.c (potential_constant_expression_1): Handle ABSU_EXPR. + * cp-gimplify.c (cp_fold): Likewise. + +2018-06-15 Jason Merrill + + PR c++/86147 - wrong capture for template argument. + * expr.c (mark_use): Look through NOP_EXPR. + + * name-lookup.c (do_pushtag): Don't look through complete types, but + don't add to them either. Get context from current_binding_level. + * pt.c (tsubst_default_argument): Use push_to/pop_from_top_level. + + * decl.c (start_enum): Do compare dependent underlying type. + + PR c++/82882 - ICE with lambda in template default argument. + * lambda.c (record_null_lambda_scope): New. + * pt.c (tsubst_lambda_expr): Use it. + * name-lookup.c (do_pushtag): Don't give a lambda DECL_CONTEXT of a + function that isn't open. + + * tree.c (maybe_warn_parm_abi): Inform the location of the class. + +2018-06-14 Marek Polacek + + PR c++/86063 + * decl2.c (cp_check_const_attributes): Skip trees that are not + TREE_LISTs. + +2018-06-14 Jakub Jelinek + + P0624R2 - Default constructible and assignable stateless lambdas + * method.c (synthesized_method_walk): For C++2a don't mark + sfk_constructor or sfk_copy_assignment as deleted if lambda has + no lambda-captures. + +2018-06-14 Paolo Carlini + + * decl.c (duplicate_decls): Use DECL_SOURCE_LOCATION in + OPT_Wshadow warning_at. + (grokfndecl): Consistently use the location_t argument in + literal operator diagnostic messages. + (grokdeclarator): Use declspecs->locations[ds_storage_class] + in error_at call. + * decl2.c (finish_static_data_member_decl): Use DECL_SOURCE_LOCATION + in permerror call. + +2018-06-13 Jason Merrill + + PR c++/86099 - ICE with trivial copy and non-trivial default ctor. + * constexpr.c (instantiate_cx_fn_r): Don't synthesize trivial + constructors. + + PR c++/86094 - wrong code with defaulted move ctor. + * class.c (classtype_has_non_deleted_move_ctor): New. + * tree.c (maybe_warn_parm_abi, type_has_nontrivial_copy_init): + Handle v12 breakage. + +2018-06-12 Jason Merrill + + PR c++/86098 - ICE with template placeholder for TTP. + * typeck.c (structural_comptypes) [TEMPLATE_TYPE_PARM]: Check + CLASS_PLACEHOLDER_TEMPLATE. + +2018-06-12 Paolo Carlini + + * decl2.c (coerce_new_type, coerce_delete_type): Add location_t + parameter and adjust error_at calls. + * decl.c (grok_op_properties): Adjust calls. + * cp-tree.h (oerce_new_type, coerce_delete_type): Adjust decls. + +2018-06-12 Marek Polacek + + Core issue 1331 - const mismatch with defaulted copy constructor + * class.c (check_bases_and_members): When checking a defaulted + function, mark it as deleted rather than giving an error. + +2018-06-11 Jason Merrill + + PR c++/85792 -Wctor-dtor-privacy and inherited constructor. + * class.c (maybe_warn_about_overly_private_class): Handle inherited + constructors. + + PR c++/85963 - -Wunused-but-set with ?: in template. + * pt.c (tsubst_copy_and_build) [COND_EXPR]: Call mark_rvalue_use. + +2018-06-11 Paolo Carlini + + * decl.c (grok_op_properties): Consistently use the location + of the decl; remove special casing of POSTINCREMENT_EXPR and + POSTDECREMENT_EXPR wrt default arguments. + +2018-06-05 Jason Merrill + + * constexpr.c (cxx_eval_binary_expression): Special case comparison + of pointers to members of the same union. + +2018-06-11 Jason Merrill + + PR c++/86094 - wrong code with defaulted move ctor. + * tree.c (type_has_nontrivial_copy_init): Fix move ctor handling. + +2018-06-10 Paolo Carlini + + * decl.c (grokfndecl): Use the location_t argument in two more places. + +2018-06-06 Marek Polacek + + PR c++/85977 + * pt.c (unify): If ELTTYPE has no deducible template parms, skip + deduction from the list elements. + (type_unification_real): Check convertibility of list elements. + +2018-06-06 Jason Merrill + + PR c++/86060 - ICE on range for with -std=c++98. + * parser.c (cp_parser_init_statement): Don't clobber *decl after + pedwarn. + + PR c++/85710 - ICE with -Wmemset-elt-size. + * semantics.c (finish_call_expr): Call warn_for_memset here. + * parser.c (cp_parser_postfix_expression): Not here. + (literal_integer_zerop): No longer static. + * pt.c (build_non_dependent_expr): Don't wrap CONST_DECL. + +2018-06-05 Marek Polacek + + PR c++/85976 + * tree.c (cp_tree_equal): Handle USING_DECL. + +2018-06-05 Jason Merrill + + PR c++/85731 - wrong error with qualified-id in template. + * semantics.c (finish_qualified_id_expr): build_qualified_name + for unbound names in the current class. + +2018-06-04 Jason Merrill + + PR c++/61806 - missed SFINAE with partial specialization. + * cp-tree.h (deferring_access_check_sentinel): Add deferring_kind + parameter to constructor. + * pt.c (instantiate_class_template_1): Enable access checking + before call to most_specialized_partial_spec. + + PR c++/85765 - SFINAE and non-type default template arg. + * pt.c (type_unification_real): Do full semantic processing if + substituting a partial args list replaces all template parms. + +2018-06-03 Jason Merrill + + PR c++/85739 - ICE with pointer to member template parm. + * cvt.c (perform_qualification_conversions): Use cp_fold_convert. + +2018-06-02 Jason Merrill + + PR c++/85761 - ICE with ill-formed use of const outer variable. + * expr.c (mark_use): Handle location wrappers. + +2018-06-01 Jason Merrill + + PR c++/85764 - bogus 'this' not captured error. + * lambda.c (resolvable_dummy_lambda): Use nonlambda_method_basetype. + (nonlambda_method_basetype): Handle NSDMI. + + CWG 1581: When are constexpr member functions defined? + * constexpr.c (instantiate_cx_fn_r, instantiate_constexpr_fns): New. + (cxx_eval_outermost_constant_expr): Call instantiate_constexpr_fns. + + PR c++/58281 - explicit instantiation of constexpr + * pt.c (mark_decl_instantiated): Clear DECL_EXTERNAL. + + * pt.c (instantiate_decl): Any defaulted function is defined. + +2018-05-30 Jonathan Wakely + + PR c++/77777 + * call.c (resolve_args): Use location of expression, not current input + location. + +2018-05-30 Ville Voutilainen + + Do not warn about zero-as-null when NULL is used. + * call.c (conversion_null_warnings): Check for pointer + types converted from zero constants. + (convert_like_real): Add a warning sentinel at the end. + * tree.c (maybe_warn_zero_as_null_pointer_constant): Also + check null_node_p. + +2018-05-30 Jason Merrill + + PR c++/85807 - ICE with call in template NSDMI. + * init.c (get_nsdmi): Use push_to/pop_from_top_level. + * tree.c (bot_manip): Don't set_flags_from_callee in a template. + + PR c++/85873 - constant initializer_list array not in .rodata. + * tree.c (build_target_expr): Set TREE_READONLY. + * call.c (set_up_extended_ref_temp): Set TREE_READONLY. + + * parser.c (cp_parser_check_condition_declarator): Handle + cp_error_declarator. + +2018-05-30 Jonathan Wakely + + * typeck.c (cxx_sizeof_or_alignof_type): Return size_one_node instead + of using it in dead store. + +2018-05-29 Jason Merrill + + PR c++/67445 - returning temporary initializer_list. + PR c++/67711 - assigning from temporary initializer_list. + PR c++/48562 - new initializer_list. + * typeck.c (maybe_warn_about_returning_address_of_local): Also warn + about returning local initializer_list. + * cp-tree.h (AUTO_TEMP_NAME, TEMP_NAME_P): Remove. + * call.c (build_over_call): Warn about assignment from temporary + init_list. + * init.c (build_new_1): Warn about 'new std::initializer_list'. + (find_list_begin, maybe_warn_list_ctor): New. + (perform_member_init): Use maybe_warn_list_ctor. + +2018-05-29 Marek Polacek + + PR c++/85883 + * init.c (build_new): Handle deducing a class with new + with more than one argument. + +2018-05-29 Jakub Jelinek + + PR c++/85952 + * init.c (build_aggr_init): For structured binding initialized from + array call mark_rvalue_use on the initializer. + +2018-05-28 Bernd Edlinger + + * decl2.c (start_static_storage_duration_function): Use + splay_tree_delete_pointers. + +2018-05-25 Jason Merrill + + PR c++/85815 - reference to member of enclosing template. + * search.c (lookup_base): Use currently_open_class. + (lookup_member): Use it regardless of -fconcepts. + * parser.c (cp_parser_postfix_dot_deref_expression): Check it. + + CWG 616, 1213 - value category of subobject references. + * tree.c (lvalue_kind): Fix handling of ARRAY_REF of pointer. + +2018-05-24 Jason Merrill + + PR c++/85842 - -Wreturn-type, constexpr if and generic lambda. + * pt.c (tsubst_lambda_expr): Copy current_function_returns_* to + generic lambda. + +2018-05-24 Ville Voutilainen + + Pedwarn on a non-standard position of a C++ attribute. + * parser.c (cp_parser_namespace_definition): Pedwarn about attributes + after the namespace name. + +2018-05-24 Paolo Carlini + + * cp-tree.h (INDIRECT_TYPE_P): New. + * call.c (build_trivial_dtor_call, maybe_warn_class_memaccess, + joust): Use it instead of POINTER_TYPE_P. + * class.c (update_vtable_entry_for_fn, find_flexarrays, + * fixed_type_or_null, resolves_to_fixed_type_p): Likewise. + * constexpr.c (cxx_eval_binary_expression, cxx_fold_indirect_ref, + * cxx_eval_increment_expression, potential_constant_expression_1): + Likewise. + * cp-gimplify.c (cp_gimplify_expr, cp_genericize_r): Likewise. + * cp-objcp-common.c (cxx_get_alias_set): Likewise. + * cp-ubsan.c (cp_ubsan_maybe_instrument_member_call, + cp_ubsan_maybe_instrument_downcast): Likewise. + * cvt.c (cp_convert_to_pointer, ocp_convert, + cp_get_fndecl_from_callee, maybe_warn_nodiscard, convert): Likewise. + * cxx-pretty-print.c (cxx_pretty_printer::abstract_declarator, + pp_cxx_offsetof_expression_1): Likewise. + * decl.c (grokparms, static_fn_type): Likewise. + * decl2.c (grokbitfield): Likewise. + * error.c (dump_expr): Likewise. + * except.c (initialize_handler_parm, check_noexcept_r): Likewise. + * init.c (warn_placement_new_too_small): Likewise. + * lambda.c (build_capture_proxy, add_capture): Likewise. + * parser.c (cp_parser_omp_for_loop): Likewise. + * pt.c (convert_nontype_argument, fn_type_unification, + uses_deducible_template_parms, check_cv_quals_for_unify, + dependent_type_p_r): Likewise. + * search.c (check_final_overrider): Likewise. + * semantics.c (handle_omp_array_sections, finish_omp_clauses, + finish_omp_for): Likewise. + * tree.c (cp_build_qualified_type_real): Likewise. + * typeck.c (build_class_member_access_expr, + finish_class_member_access_expr, build_x_indirect_ref, + cp_build_indirect_ref_1, cp_build_binary_op, build_const_cast_1): + Likewise. + +2018-05-24 Jason Merrill + + PR c++/85864 - literal template and default template arg. + * pt.c (instantiation_dependent_r): Handle NONTYPE_ARGUMENT_PACK. + +2018-05-24 Marek Polacek + + PR c++/85847 + * init.c (build_new_1): Use fold_non_dependent_expr. Use a dedicated + variable for its result. Fix a condition. + (build_new): Use fold_non_dependent_expr. Tweak a condition. + +2018-05-23 Jason Merrill + + Fix cast to rvalue reference from prvalue. + * cvt.c (diagnose_ref_binding): Handle rvalue reference. + * rtti.c (build_dynamic_cast_1): Don't try to build a reference to + non-class type. Handle xvalue argument. + * typeck.c (build_reinterpret_cast_1): Allow cast from prvalue to + rvalue reference. + * semantics.c (finish_compound_literal): Do direct-initialization, + not cast, to initialize a reference. + + CWG 616, 1213 - value category of subobject references. + * tree.c (lvalue_kind): A reference to a subobject of a prvalue is + an xvalue. + * typeck2.c (build_m_component_ref): Likewise. + * typeck.c (cp_build_addr_expr_1, lvalue_or_else): Remove diagnostic + distinction between temporary and xvalue. + +2018-05-23 Marek Polacek + + Implement P0614R1, Range-based for statements with initializer. + * parser.c (cp_parser_range_based_for_with_init_p): New. + (cp_parser_init_statement): Use it. Parse the optional init-statement + for a range-based for loop. + (cp_parser_skip_to_closing_parenthesis_1): Handle balancing ?:. + +2018-05-22 Jason Merrill + + PR c++/81420 - not extending temporary lifetime. + * call.c (extend_ref_init_temps_1): Handle ARRAY_REF. + * class.c (build_base_path): Avoid redundant move of an rvalue. + + PR c++/85866 - error with .* in default template arg. + * pt.c (tsubst_copy_and_build): Handle partial instantiation. + +2018-05-21 Paolo Carlini + + * parser.c (cp_parser_parameter_declaration_list): Remove + bool* parameter. + (cp_parser_parameter_declaration_clause): Adjust. + (cp_parser_cache_defarg): Likewise. + +2018-05-21 Paolo Carlini + + PR c++/84588 + * parser.c (cp_parser_maybe_commit_to_declaration, + cp_parser_check_condition_declarator): New. + (cp_parser_simple_declaration): Use the first above. + (cp_parser_condition): Use both the above; enforce + [stmt.stmt]/2 about the declarator not specifying + a function or an array; improve error-recovery. + +2018-05-20 Jason Merrill + + PR libstdc++/85843 - warning in logic_error copy constructor. + * class.c (type_has_user_nondefault_constructor): Check for a + user-provided ctor, not user-declared. + +2018-05-19 Jason Merrill + + * pt.c (tsubst_pack_expansion): Sorry rather than abort + on __integer_pack as subexpression of pattern. + +2018-05-18 Jason Merrill + + PR c++/58407 - deprecated implicit copy ops. + * call.c (build_over_call): Warn about deprecated trivial fns. + * class.c (classtype_has_user_copy_or_dtor): New. + (type_build_ctor_call): Check TREE_DEPRECATED. + (type_build_dtor_call): Likewise. + * decl2.c (cp_warn_deprecated_use): Move from tree.c. + Add checks. Return bool. Handle -Wdeprecated-copy. + (mark_used): Use it. + * decl.c (grokdeclarator): Remove redundant checks. + * typeck2.c (build_functional_cast): Likewise. + * method.c (lazily_declare_fn): Mark deprecated copy ops. + * init.c (build_aggr_init): Only set TREE_USED if there are + side-effects. + +2018-05-18 Cesar Philippidis + + PR c++/85782 + * cp-gimplify.c (cp_genericize_r): Call genericize_omp_for_stmt for + OACC_LOOPs. + +2018-05-18 Richard Sandiford + + * constexpr.c (cxx_eval_constant_expression): Remove FMA_EXPR handling. + (potential_constant_expression_1): Likewise. + +2018-05-16 Marek Polacek + + PR c++/85363 + * call.c (set_flags_from_callee): Handle AGGR_INIT_EXPRs too. + * tree.c (bot_manip): Call set_flags_from_callee for + AGGR_INIT_EXPRs too. + +2018-05-15 Jason Merrill + + * cp-tree.h (cp_expr): Remove copy constructor. + * mangle.c (struct releasing_vec): Declare copy constructor. + + * constexpr.c (cxx_eval_vec_init_1): Pass tf_none if ctx->quiet. + + PR c++/64372 - CWG 1560, gratuitous lvalue-rvalue conversion in ?: + * call.c (build_conditional_expr_1): Don't force_rvalue when one arm + is a throw-expression. + +2018-05-15 Paolo Carlini + + * cp-tree.h (DECL_MAYBE_IN_CHARGE_CDTOR_P): New. + (FOR_EACH_CLONE): Update. + * decl.c (grokdeclarator): Use it. + * decl2.c (vague_linkage_p): Likewise. + * mangle.c (mangle_decl): Likewise. + * method.c (lazily_declare_fn): Likewise. + * optimize.c (can_alias_cdtor, maybe_clone_body): Likewise. + * repo.c (repo_emit_p): Likewise. + * tree.c (decl_linkage): Likewise. + +2018-05-14 Jason Merrill + + Handle TYPE_HAS_LATE_RETURN_TYPE like ref-qualifier and eh spec. + * tree.c (build_cp_fntype_variant): New. + (build_ref_qualified_type, build_exception_variant) + (strip_typedefs, cxx_copy_lang_qualifiers): Use it. + (cxx_type_hash_eq, cp_check_qualified_type): Check + TYPE_HAS_LATE_RETURN_TYPE. + (cp_build_type_attribute_variant): Check cxx_type_hash_eq. + (cp_build_qualified_type_real): No need to preserve C++ qualifiers. + * class.c (build_clone): Use cxx_copy_lang_qualifiers. + (adjust_clone_args): Likewise. + * decl.c (grokfndecl): Add late_return_type_p parameter. Use + build_cp_fntype_variant. + (grokdeclarator): Pass late_return_type_p to grokfndecl. + (check_function_type): Use cxx_copy_lang_qualifiers. + (static_fn_type): Use cxx_copy_lang_qualifiers. + * decl2.c (build_memfn_type, maybe_retrofit_in_chrg) + (cp_reconstruct_complex_type, coerce_new_type, coerce_delete_type) + (change_return_type): Use cxx_copy_lang_qualifiers. + * mangle.c (write_type): Use cxx_copy_lang_qualifiers. + * parser.c (cp_parser_lambda_declarator_opt): Represent an explicit + return type on the declarator like a normal trailing return type. + * pt.c (tsubst_function_type): Use build_cp_fntype_variant. + (copy_default_args_to_explicit_spec): Use cxx_copy_lang_qualifiers. + * typeck.c (merge_types): Use build_cp_fntype_variant. + +2018-05-14 Paolo Carlini + + * cp-tree.h (TYPE_REF_P): New. + (TYPE_OBJ_P, TYPE_REF_OBJ_P, TYPE_REFFN_P): Update. + * call.c (build_list_conv, build_aggr_conv, standard_conversion, + direct_reference_binding, reference_binding, implicit_conversion, + add_builtin_candidate, build_user_type_conversion_1, build_op_call_1, + build_new_op_1, build_x_va_arg, conv_binds_ref_to_prvalue, + build_over_call, perform_implicit_conversion_flags, + extend_ref_init_temps, type_has_extended_temps): Use it. + * class.c (one_inheriting_sig, check_field_decls, + check_bases_and_members, find_flexarrays, finish_struct, + fixed_type_or_null): Likewise. + * constexpr.c (literal_type_p, cxx_bind_parameters_in_call, + non_const_var_error, cxx_eval_constant_expression, + potential_constant_expression_1): Likewise. + * cp-gimplify.c (omp_var_to_track, omp_cxx_notice_variable, + cp_genericize_r, cxx_omp_privatize_by_reference, + cxx_omp_const_qual_no_mutable, cxx_omp_finish_clause, + cp_fold_maybe_rvalue): Likewise. + * cp-ubsan.c (cp_ubsan_maybe_instrument_downcast): Likewise. + * cvt.c (build_up_reference, convert_to_reference, + convert_from_reference, convert_to_void, noexcept_conv_p, + fnptr_conv_p): Likewise. + * decl.c (poplevel, check_for_uninitialized_const_var, + check_initializer, initialize_local_var, cp_finish_decl, + get_tuple_decomp_init, cp_finish_decomp, grokdeclarator, copy_fn_p, + move_signature_fn_p, grok_op_properties, finish_function): Likewise. + * decl2.c (grok_array_decl, cp_reconstruct_complex_type, + decl_maybe_constant_var_p): Likewise. + * error.c (dump_type_prefix, dump_expr): Likewise. + * except.c (initialize_handler_parm, complete_ptr_ref_or_void_ptr_p, + is_admissible_throw_operand_or_catch_parameter): Likewise. + * expr.c (mark_use): Likewise. + * init.c (build_zero_init_1, build_value_init_noctor, + perform_member_init, diagnose_uninitialized_cst_or_ref_member_1, + build_new, build_delete): Likewise. + * lambda.c (build_lambda_object): Likewise. + * mangle.c (write_expression, write_template_arg): Likewise. + * method.c (forward_parm, do_build_copy_constructor, + do_build_copy_assign, build_stub_object, constructible_expr, + walk_field_subobs): Likewise. + * parser.c (cp_parser_omp_for_loop_init, + cp_parser_omp_declare_reduction_exprs, + cp_parser_omp_declare_reduction): Likewise. + * pt.c (convert_nontype_argument_function, convert_nontype_argument, + convert_template_argument, tsubst_pack_expansion, + tsubst_function_decl, tsubst_decl, tsubst, tsubst_copy_and_build, + maybe_adjust_types_for_deduction, check_cv_quals_for_unify, unify, + more_specialized_fn, invalid_nontype_parm_type_p, dependent_type_p_r, + value_dependent_expression_p, build_deduction_guide): Likewise. + * semantics.c (finish_handler_parms, finish_non_static_data_member, + finish_compound_literal, omp_privatize_field, + handle_omp_array_sections_1, handle_omp_array_sections, + cp_check_omp_declare_reduction, finish_omp_reduction_clause, + finish_omp_declare_simd_methods, cp_finish_omp_clause_depend_sink, + finish_omp_clauses, finish_decltype_type, capture_decltype, + finish_builtin_launder): Likewise. + * tree.c (lvalue_kind, cp_build_reference_type, move, + cp_build_qualified_type_real, stabilize_expr, stabilize_init): Likewise. + * typeck.c (cxx_safe_arg_type_equiv_p, build_class_member_access_expr, + cp_build_indirect_ref_1, convert_arguments, warn_for_null_address, + cp_build_addr_expr_1, maybe_warn_about_useless_cast, + build_static_cast_1, build_static_cast, build_reinterpret_cast_1, + build_const_cast_1, cp_build_c_cast, cp_build_modify_expr, + convert_for_initialization, + maybe_warn_about_returning_address_of_local, check_return_expr, + cp_type_quals, casts_away_constness, non_reference): Likewise. + * typeck2.c (cxx_readonly_error, store_init_value, + process_init_constructor_record, build_x_arrow, build_functional_cast, + add_exception_specifier): Likewise. + +2018-05-14 Jason Merrill + + * pt.c (tsubst) [ARRAY_TYPE]: Check valid_array_size_p. + (tsubst_copy_and_build) [NEW_EXPR]: Clear in_decl. + +2018-05-11 Jakub Jelinek + + PR c/85696 + * cp-tree.h (cxx_omp_predetermined_sharing_1): New prototype. + * cp-gimplify.c (cxx_omp_predetermined_sharing): New wrapper around + cxx_omp_predetermined_sharing_1. Rename old function to ... + (cxx_omp_predetermined_sharing_1): ... this. + * semantics.c (finish_omp_clauses): Use cxx_omp_predetermined_sharing_1 + instead of cxx_omp_predetermined_sharing. + +2018-05-10 Jason Merrill + + * decl.c (cp_finish_decl): Don't instantiate auto variable. + (check_static_variable_definition): Allow auto. + * constexpr.c (ensure_literal_type_for_constexpr_object): Likewise. + + * cp-tree.h (DECL_CONSTRUCTOR_P): Use DECL_CXX_CONSTRUCTOR_P. + (DECL_DESTRUCTOR_P): Use DECL_CXX_DESTRUCTOR_P. + + Core issue 2310 - conversion to base of incomplete type. + * class.c (build_base_path): Check COMPLETE_TYPE_P for source type. + + CWG 2267 - list-initialization of reference temporary + * call.c (reference_binding): List-initializing a reference + temporary is copy-list-initialization. + + * parser.c (cp_parser_class_head): Use num_template_headers_for_class. + + * pt.c (instantiate_decl): Make sure we aren't trying to do a nested + instantiation in template context. + + * class.c (vbase_has_user_provided_move_assign): Use + user_provided_p. + + * lambda.c (lambda_expr_this_capture): Improve logic. + + * decl.c (make_typename_type): s/parameters/arguments/. + * parser.c (cp_parser_nested_name_specifier_opt): Likewise. + * pt.c (make_pack_expansion): Correct error message. + +2018-05-10 Jakub Jelinek + + PR c++/85662 + * cp-gimplify.c (cp_fold): Use fold_offsetof rather than + fold_offsetof_1, pass TREE_TYPE (x) as TYPE to it and drop the + fold_convert. + +2018-05-10 Eric Botcazou + + PR c++/85400 + * decl2.c (adjust_var_decl_tls_model): New static function. + (comdat_linkage): Call it on a variable. + (maybe_make_one_only): Likewise. + +2018-05-09 Paolo Carlini + + PR c++/85713 + Revert: + 2018-05-08 Paolo Carlini + + PR c++/84588 + * parser.c (cp_parser_parameter_declaration_list): When the + entire parameter-declaration-list is erroneous maybe call + abort_fully_implicit_template. + +2018-05-08 Jason Merrill + + PR c++/85706 - class deduction under decltype + * pt.c (for_each_template_parm_r): Handle DECLTYPE_TYPE. Clear + *walk_subtrees whether or not we walked into the operand. + (type_uses_auto): Only look at deduced contexts. + +2018-05-08 Paolo Carlini + + PR c++/84588 + * parser.c (cp_parser_parameter_declaration_list): When the + entire parameter-declaration-list is erroneous maybe call + abort_fully_implicit_template. + +2018-05-08 Marek Polacek + + PR c++/85695 + * semantics.c (finish_if_stmt_cond): See through typedefs. + +2018-05-07 Jason Merrill + + PR c++/85646 - lambda visibility. + * decl2.c (determine_visibility): Don't mess with template arguments + from the containing scope. + (vague_linkage_p): Check DECL_ABSTRACT_P before looking at a 'tor + thunk. + +2018-05-07 Nathan Sidwell + + Remove fno-for-scope + * cp-tree.h (DECL_ERROR_REPORTED, DECL_DEAD_FOR_LOCAL) + (DECL_HAS_SHADOWED_FOR_VAR_P, DECL_SHADOWED_FOR_VAR) + (SET_DECL_SHADOWED_FOR_VAR): Delete. + (decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert) + (check_for_out_of_scope_variable, init_shadowed_var_for_decl): + Don't declare. + * name-lookup.h (struct cp_binding_level): Remove + dead_vars_from_for field. + * cp-lang.c (cp_init_ts): Delete. + (LANG_HOOKS_INIT_TS): Override to cp_common_init_ts. + * cp-objcp-common.c (shadowed_var_for_decl): Delete. + (decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert) + (init_shadowed_var_for_decl): Delete. + * decl.c (poplevel): Remove shadowed for var handling. + (cxx_init_decl_processing): Remove -ffor-scope deprecation. + * name-lookup.c (find_local_binding): Remove shadowed for var + handling. + (check_local_shadow): Likewise. + (check_for_out_of_scope_variable): Delete. + * parser.c (cp_parser_primary_expression): Remove shadowed for var + handling. + * pt.c (tsubst_decl): Remove DECL_DEAD_FOR_LOCAL setting. + * semantics.c (begin_for_scope): Always have a scope. + (begin_for_stmt, finish_for_stmt): Remove ARM-for scope handling. + (begin_range_for_stmt, finish_id_expression): Likewise. + +2018-05-07 Jason Merrill + + PR c++/85618 - ICE with initialized VLA. + * tree.c (vla_type_p): New. + * typeck2.c (store_init_value, split_nonconstant_init_1): Check it + rather than array_of_runtime_bound_p. + +2018-05-05 Paolo Carlini + + * cvt.c (ocp_convert): Early handle the special case of a + null_ptr_cst_p expr converted to a NULLPTR_TYPE_P type. + +2018-05-03 Jason Merrill + + PR c++/85600 - virtual delete failure. + * init.c (build_delete): Always save_expr when deleting. + +2018-05-03 Nathan Sidwell + + * decl.c (cxx_init_decl_processing): Remove flag_friend_injection. + * name-lookup.c (do_pushdecl): Likewise. + +2018-05-02 Paolo Carlini + Jason Merrill + + PR c++/68374 + * name-lookup.c (check_local_shadow): Don't handle static old + declarations in the block handling locals shadowing locals. + +2018-05-01 Jason Merrill + + PR c++/85587 - error with scoped enum in template. + * semantics.c (finish_qualified_id_expr): Don't return an + unqualified IDENTIFIER_NODE. + +2018-04-30 Jason Merrill + + PR c++/85580 - extern "C" and local variables + * name-lookup.c (check_extern_c_conflict): Ignore local decls. + + PR c++/84701 - unsigned typeof. + * decl.c (grokdeclarator): Overhaul diagnostics for invalid use + of long/short/signed/unsigned. + + PR c++/85305 - pack in lambda init-capture. + * parser.c (cp_parser_initializer): Add subexpression_p parm; don't + check_for_bare_parameter_packs in a subexpression. + (cp_parser_lambda_introducer): Use it. + + PR c++/61982 - dead stores to destroyed objects. + * call.c (build_trivial_dtor_call): New, assigns a clobber. + (build_over_call, build_special_member_call): Use it. + * cp-tree.h: Declare it. + * init.c (build_delete): Remove trivial path. + + * init.c (build_dtor_call): Use build_special_member_call. + (build_delete): Remove redundant uses of save_addr. + + * decl.c (build_clobber_this): Use build_clobber. + +2018-04-27 Jakub Jelinek + + PR c++/85553 + * init.c (build_zero_init_1): For zero initialization of + NULLPTR_TYPE_P type use build_int_cst directly. + +2018-04-27 David Malcolm + + PR c++/85515 + * name-lookup.c (consider_binding_level): Skip compiler-generated + variables. + * search.c (lookup_field_fuzzy_info::fuzzy_lookup_field): Flatten + nested if statements into a series of rejection tests. Reject + lambda-ignored entities as suggestions. + +2018-04-27 Jason Merrill + + * cvt.c (cp_fold_convert): Use convert_ptrmem. + * typeck.c (convert_ptrmem): Add a NOP even if no adjustment. + +2018-04-27 Paolo Carlini + + PR c++/84691 + * decl.c (grokdeclarator): Clear friendp upon definition in local + class definition error. + +2018-04-27 Jason Merrill + + PR c++/85545 - ICE with noexcept PMF conversion. + * cvt.c (cp_fold_convert): Pass PMF CONSTRUCTORs to + build_ptrmemfunc. + * typeck.c (build_ptrmemfunc): Don't build a NOP_EXPR for zero + adjustment. + (build_ptrmemfunc_access_expr): Special-case CONSTRUCTORs. + +2018-04-27 Nathan Sidwell + + * typeck.c (convert_ptrmem): Move local var decls to initialization. + + * cp-tree.h (TEMPLATE_INFO): Fix comments. + (TI_PENDING_TEMPLATE_FLAG): Check TEMPLATE_INFO. + (NON_DEFAULT_TEMPLATE_ARG_COUNT): Wrap line. + (dump, print_other_binding_stacks): Remove declarations. + * name-lookup.c (print_other_binding_stack): Make static. + * pt.c (build_template_decl): Make static. + +2018-04-26 Jason Merrill + + PR c++/85545 - ICE with noexcept PMF conversion. + * cvt.c (cp_fold_convert): Handle PMF CONSTRUCTORs directly. + +2018-04-25 Nathan Sidwell + + PR c++/85437 + PR c++/49171 + * cp-tree.h (REINTERPRET_CAST_P): New. + * constexpr.c (cxx_eval_constant_expression) : + Reject REINTERPET_CAST_P conversions. Use cplus_expand_constant + for non-trivial PTRMEM_CST cases. + * typeck.c (build_nop_reinterpret): New. + (build_reinterpret_cast_1): Use it. Set REINTERPRET_CAST_P on + NOP_EXPRs returned by cp_convert. + +2018-04-23 Jason Merrill + + PR c++/69560 - wrong alignof(double) on x86. + CWG 1879 - Inadequate definition of alignment requirement. + * cp-tree.h (ALIGNOF_EXPR_STD_P): New. + * typeck.c (cxx_sizeof_or_alignof_type): Add std_alignof parm. + (cxx_sizeof_expr, cxx_sizeof_nowarn, cxx_alignas_expr) + (cxx_alignof_expr): Pass it. + * parser.c (cp_parser_unary_expression): Pass it. + * pt.c (tsubst_copy): Copy it. + (tsubst_copy_and_build): Pass it. + * decl.c (fold_sizeof_expr): Pass it. + +2018-04-23 Jakub Jelinek + Jason Merrill + + PR c++/85470 - wrong error with static data member. + * decl.c (check_initializer): Check DECL_INITIALIZED_IN_CLASS_P. + * typeck2.c (store_init_value): Likewise. + +2018-04-20 Jakub Jelinek + + PR c++/85462 + * cp-tree.h (tinst_level): Remove in_system_header_p member, + change refcount member from unsigned char to unsigned short, + add refcount_infinity static data member, adjust comments. + * pt.c (tinst_level::refcount_infinity): Define. + (inc_refcount_use): Remove assert, don't increment if refcount + is already refcount_infinity, adjust comment. + (dec_refcount_use): Remove assert, don't decrement if refcount + is refcount_infinity, adjust comment. + (push_tinst_level_loc): Formatting fix. + +2018-04-19 Paolo Carlini + + PR c++/84611 + * pt.c (lookup_template_class_1): Check pushtag return value for + error_mark_node. + +2018-04-19 Alexandre Oliva + + PR c++/80290 + * cp-tree.h (tinst_level::free): Fix whitespace. + +2018-04-18 Paolo Carlini + + PR c++/84630 + * pt.c (tsubst_lambda_expr): Check begin_lambda_type return value + for error_mark_node. + +2018-04-18 Jakub Jelinek + + PR c++/84463 + * typeck.c (cp_build_addr_expr_1): Move handling of offsetof-like + tricks from here to ... + * cp-gimplify.c (cp_fold) : ... here. Only use it + if INDIRECT_REF's operand is INTEGER_CST cast to pointer type. + +2018-04-18 Alexandre Oliva + + PR c++/80290 + * cp-tree.h (struct tinst_level): Split decl into tldcl and + targs. Add private split_list_p, tree_list_p, and not_list_p + inline const predicates; to_list private member function + declaration; free public member function declaration; list_p, + get_node and maybe_get_node accessors, and refcount data + member. Narrow errors to unsigned short. + * error.c (print_instantiation_full_context): Use new + accessors. + (print_instantiation_partial_context_line): Likewise. Drop + const from tinst_level-typed parameter. + * mangle.c (mangle_decl_string): Likewise. + * pt.c (freelist): New template class. + (tree_list_freelist_head): New var. + (tree_list_freelist): New fn, along with specializations. + (tinst_level_freelist_head): New var. + (pending_template_freelist_head): Likewise. + (tinst_level_freelist, pending_template_freelist): New fns. + (tinst_level::to_list, tinst_level::free): Define. + (inc_refcount_use, dec_refcount_use): New fns for tinst_level. + (set_refcount_ptr): New template fn. + (add_pending_template): Adjust for refcounting, freelists and + new accessors. + (neglectable_inst_p): Take a NULL d as a non-DECL. + (limit_bad_template_recursion): Use new accessors. + (push_tinst_level): New overload to create the list. + (push_tinst_level_loc): Make it static, split decl into two + args, adjust tests and initialization to cope with split + lists, use freelist, adjust for refcounting. + (push_tinst_level_loc): New wrapper with the old interface. + (pop_tinst_level): Adjust for refcounting. + (record_last_problematic_instantiation): Likewise. + (reopen_tinst_level): Likewise. Use new accessors. + (instantiate_alias_template): Adjust for split list. + (fn_type_unification): Likewise. + (get_partial_spec_bindings): Likewise. + (instantiate_pending_templates): Use new accessors. Adjust + for refcount. Release pending_template to freelist. + (instantiating_current_function_p): Use new accessors. + +2018-04-16 Alexandre Oliva + + PR c++/85039 + * parser.c (cp_parser_builtin_offset): Reject type definitions. + * mangle.c (nested_anon_class_index): Avoid crash returning -1 + if we've seen errors. + +2018-04-12 David Malcolm + + PR c++/85385 + * name-lookup.c (macro_use_before_def::maybe_make): New function, + checking that the use is indeed before the definition. + (macro_use_before_def::macro_use_before_def): Make private. + (macro_use_before_def::~macro_use_before_def): Make private. Move + check for UNKNOWN_LOCATION to macro_use_before_def::maybe_make. + (lookup_name_fuzzy): Call macro_use_before_def::maybe_make rather + than using new directly. + +2018-04-12 Jason Merrill + + PR c++/85356 - ICE with pointer to member function. + * pt.c (maybe_instantiate_noexcept): Do instantiate in templates if + flag_noexcept_type. Build the new spec within the function context. + * except.c (build_noexcept_spec): Do get constant value in templates + if flag_noexcept_type. + * decl.c (check_redeclaration_exception_specification): Don't + instantiate noexcept on a dependent declaration. + +2018-04-12 Marek Polacek + + PR c++/85258 + * constexpr.c (reduced_constant_expression_p): Return false for null + trees. + +2018-04-11 Marek Polacek + + PR c++/85032 + * constexpr.c (potential_constant_expression_1): Consider conversions + from classes to literal types potentially constant. + +2018-04-10 Paolo Carlini + + PR c++/70808 + * init.c (build_zero_init_1): Handle NULLPTR_TYPE_P being true of + the type like TYPE_PTR_OR_PTRMEM_P. + +2018-04-10 Jason Merrill + + PR debug/65821 - wrong location for main(). + * call.c (clear_location_r, convert_default_arg): Revert. + * tree.c (break_out_target_exprs): Add clear_location parm. + (struct bot_data): New. + (bot_manip): Clear location if requested. + * init.c (get_nsdmi): Pass clear_location. + +2018-04-10 David Malcolm + + PR c++/85110 + * call.c (get_fndecl_argument_location): Make non-static. + * cp-tree.h (get_fndecl_argument_location): New decl. + * typeck.c (convert_for_assignment): When complaining due to + conversions for an argument, show the location of the parameter + within the decl. + +2018-04-10 Jakub Jelinek + + PR c++/85312 - P0962 cleanup + * parser.c (cp_parser_perform_range_for_lookup): Remove unreachable + diagnostics. + +2018-04-10 Jason Merrill + + PR debug/65821 - wrong location for main(). + * call.c (clear_location_r): New. + (convert_default_arg): Use it. + * tree.c (bot_manip): Remove builtin_LINE/FILE handling. + + PR c++/85285 - ICE with flexible array after substitution. + * pt.c (instantiate_class_template_1): Check for flexible array in + union. + +2018-04-09 Paolo Carlini + + PR c++/85227 + * decl.c (cp_finish_decomp): In a template, if the type is incomplete + issue a pedwarn and defer trying to do bindings. + +2018-04-09 Jason Merrill + + PR c++/85279 - dump_expr doesn't understand decltype. + * error.c (dump_expr): Handle DECLTYPE_TYPE. + + PR c++/85262 - ICE with redundant qualification on constructor. + * call.c (build_new_method_call_1): Move make_args_non_dependent + after A::A() handling. + + PR c++/85277 - ICE with invalid offsetof. + * semantics.c (finish_offsetof): Avoid passing non-DECL to %qD. + Adjust -Winvalid-offsetof diagnostic to say conditionally supported. + + PR c++/85264 - ICE with excess template-parameter-list. + * parser.c (cp_parser_check_template_parameters): Add template_id_p + parameter. Don't allow an extra template header if true. + (cp_parser_class_head): Pass template_id_p. + (cp_parser_elaborated_type_specifier): Likewise. + (cp_parser_alias_declaration): Likewise. + (cp_parser_check_declarator_template_parameters): Likewise. + +2018-04-09 Jakub Jelinek + + PR c++/85194 + * parser.c (cp_parser_simple_declaration): For structured bindings, + if *maybe_range_for_decl is NULL after parsing it, set it to + error_mark_node. + +2018-04-09 Jason Merrill + + PR c++/85256 - ICE capturing pointer to VLA. + * lambda.c (add_capture): Distinguish between variable-size and + variably-modified types. + +2018-04-06 Jason Merrill + + PR c++/85214 - ICE with alias, generic lambda, constexpr if. + * pt.c (extract_locals_r): Remember local typedefs. + +2018-04-06 David Malcolm + + PR c++/84269 + * name-lookup.c (struct std_name_hint): Move out of + get_std_name_hint; add field "min_dialect". + (get_std_name_hint): Add min_dialect values to all initializers. + Add , , , , , + , , , , , , + , , , and . + Add fstream, ifstream, and ofstream to . + Add istringstream, ostringstream, and stringstream to . + Add basic_string to . + Add tuple_element and tuple_size to . + Add declval to . + Fix ordering of and . + Return a std_name_hint, rather than a const char *. + (get_cxx_dialect_name): New function. + (maybe_suggest_missing_std_header): Detect names that aren't yet + available in the current dialect, and instead of suggesting a + missing #include, warn about the dialect. + +2018-04-06 Jakub Jelinek + + PR c++/85210 + * pt.c (tsubst_decomp_names): Return error_mark_node and assert + errorcount is set if tsubst doesn't return a VAR_DECL. + +2018-04-06 David Malcolm + + PR c++/85021 + * name-lookup.c (using_directives_contain_std_p): New function. + (has_using_namespace_std_directive_p): New function. + (suggest_alternatives_for): Simplify if/else logic using early + returns. If no candidates were found, and there's a + "using namespace std;" directive, call + maybe_suggest_missing_std_header. + (maybe_suggest_missing_header): Split later part of the function + into.. + (maybe_suggest_missing_std_header): New. + +2018-04-06 Jason Merrill + + PR c++/85242 - ICE with class definition in template parm. + * cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): False if + processing_template_parmlist. + + PR c++/85240 - LTO ICE with using of undeduced auto fn. + * cp-gimplify.c (cp_genericize_r): Discard using of undeduced auto. + +2018-04-05 Jakub Jelinek + + PR c++/85209 + * pt.c (tsubst_decomp_names): Don't fail or ICE if DECL_CHAIN (decl3) + is not prev, if prev == decl. + + PR c++/85208 + * decl.c (start_decl): For DECL_DECOMPOSITION_P decls, don't call + maybe_apply_pragma_weak here... + (cp_maybe_mangle_decomp): ... but call it here instead. + +2018-04-05 Jason Merrill + + PR c++/85136 - ICE with designated init in template. + * decl.c (maybe_deduce_size_from_array_init): Handle dependent + designated initializer. + (check_array_designated_initializer): Update ce->index with the + constant value. + + PR c++/83808 - ICE with VLA initialization. + * typeck2.c (process_init_constructor_array): Don't require a VLA + initializer to have VLA type. + +2018-04-05 Paolo Carlini + + PR c++/80956 + * call.c (convert_like_real): Fail gracefully for a broken + std::initializer_list, missing a definition. + + * name-lookup.c (do_pushtag): Tweak message, use %< and %>. + +2018-04-05 Paolo Carlini + + PR c++/84792 + * decl.c (grokdeclarator): Fix diagnostic about typedef name used + as nested-name-specifier, keep type and TREE_TYPE (decl) in sync. + +2018-04-05 Jason Merrill + + PR c++/82152 - ICE with class deduction and inherited ctor. + * pt.c (do_class_deduction): Ignore inherited ctors. + + PR c++/84665 - ICE with array of empty class. + * decl2.c (cp_check_const_attributes): Use fold_non_dependent_expr. + + PR c++/85228 - ICE with lambda in enumerator in template. + * pt.c (bt_instantiate_type_proc): Don't assume + CLASSTYPE_TEMPLATE_INFO is non-null. + +2018-04-05 Ville Voutilainen + + Implement P0969 + * decl.c (find_decomp_class_base): Check accessibility instead + of declared access, adjust diagnostic. + +2018-04-05 Ville Voutilainen + + Implement P0961 + * decl.c (get_tuple_decomp_init): Check the templatedness + of a member get. + +2018-04-05 Jason Merrill + + PR c++/85200 - ICE with constexpr if in generic lambda. + * pt.c (extract_locals_r): Don't record the local specs of variables + declared within the pattern. + +2018-04-05 Alexandre Oliva + + PR c++/84979 + * pt.c (check_auto_in_tmpl_args): New. + (tsubst_qualified_id): Use it to reject template args + referencing auto for non-type templates. + * parser.c (cp_parser_template_id): Likewise. + * cp-tree.h (check_auto_in_tmpl_args): Declare. + * typeck2.c (build_functional_cast): Report correct location + for invalid use of auto. + +2018-04-04 Jason Merrill + + PR c++/85215 - ICE with copy-init from conversion. + * call.c (merge_conversion_sequences): Fix type of direct binding + sequence. + + PR c++/84938 - ICE with division by ~-1. + * call.c (set_up_extended_ref_temp): Call cp_fully_fold. + + PR c++/84936 - ICE with unexpanded pack in mem-initializer. + * parser.c (cp_parser_mem_initializer_list): Call + check_for_bare_parameter_packs. + +2018-04-04 Jakub Jelinek + + PR inline-asm/85172 + * constexpr.c (cxx_eval_builtin_function_call): For calls to + builtin_valid_in_constant_expr_p functions, don't call + cxx_eval_constant_expression if argument is not + potential_constant_expression. + + PR c++/85146 + * cp-tree.h (calculate_bases, calculate_direct_bases): Add complain + argument. + * semantics.c (calculate_bases): Add complain argument. Use + complete_type_or_maybe_complain instead of just complete_type and + return an empty vector if it fails. Move make_tree_vector () call + after early return. Formatting fixes. + (calculate_direct_bases): Likewise. Call release_tree_vector at the + end. + (dfs_calculate_bases_post, calculate_bases_helper): Formatting fixes. + * pt.c (tsubst_pack_expansion): Adjust calculate_bases and + calculate_direct_bases callers, formatting fixes. + +2018-04-04 Jason Merrill + + PR c++/85006 - -fconcepts ICE with A return type + * pt.c (tsubst_pack_expansion): Allow unsubstituted auto pack. + + PR c++/85200 - ICE with constexpr if in generic lambda. + * tree.c (cp_walk_subtrees): Walk into DECL_EXPR in templates. + + PR c++/84221 - bogus -Wunused with attribute and template. + * decl2.c (is_late_template_attribute): Handle unused and used + normally on non-TYPE_DECL. + + PR c++/85135 - ICE with omitted template arguments. + * decl.c (grokdeclarator): Catch deduced class type in trailing + return type. + + PR c++/85133 - ICE with missing concept initializer. + * decl.c (cp_finish_decl): If a concept initializer is missing, use + true. + + PR c++/85118 - wrong error with generic lambda and std::bind. + * call.c (add_template_conv_candidate): Disable if there are any + call operators. + + PR c++/85141 - ICE with compound assignment and static member fn. + * typeck.c (cp_build_modify_expr): Call decay_conversion for RHS of + compound assignment. + + PR c++/85148 - ICE with 'this' in array NSDMI. + * tree.c (replace_placeholders_r): Use handled_component_p. + +2018-04-04 Ville Voutilainen + + PR c++/65923 + * decl.c (grokfndecl): Handle standard UDL diagnostics here.. + * parser.c (cp_parser_unqualified_id): ..not here. + +2018-04-04 Alexandre Oliva + + PR c++/84943 + * typeck.c (cp_build_addr_expr_1): Mark FUNCTION_DECL as + used. + * decl2.c (mark_used): Return without effects if tf_conv. + +2018-04-03 Jason Merrill + + PR c++/85092 - C++17 ICE with unused list constructor. + * call.c (conv_binds_ref_to_prvalue): Also count ck_identity + from a TARGET_EXPR. + + PR c++/85113 - ICE with constexpr and __builtin_constant_p. + * constexpr.c (cxx_eval_builtin_function_call): Only defer + __builtin_constant_p if ctx->quiet. + +2018-04-03 Paolo Carlini + + PR c++/84768 + * pt.c (rewrite_template_parm): If the first argument is + error_mark_node return it immediately. + (build_deduction_guide): Check the return value of the + latter for error_mark_node. + (do_class_deduction): Check the return value of the latter. + +2018-04-03 Jason Merrill + + * semantics.c (finish_if_stmt_cond): Use + instantiation_dependent_expression_p. + + PR c++/85149 - generic lambda and constexpr if. + * pt.c (build_extra_args, add_extra_args): Split from + tsubst_pack_expansion. + (tsubst_expr) [IF_STMT]: Use them. + * cp-tree.h (IF_STMT_EXTRA_ARGS): New. + + * typeck.c (merge_types): Limit matching attribute shortcut to + the default case. + +2018-04-03 Jakub Jelinek + + PR c++/85147 + * pt.c (fixed_parameter_pack_p_1): Punt if parm is error_mark_node. + + PR c++/85140 + * name-lookup.c (handle_namespace_attrs): Return early if attributes + is error_mark_node. + + PR c++/85134 + * decl.c (cp_finish_decl): If ensure_literal_type_for_constexpr_object + fails, after clearing DECL_DECLARED_CONSTEXPR_P don't return early, + instead for static data members clear init and set DECL_EXTERNAL. + +2018-04-02 Jason Merrill + + PR c++/64095 - auto... parameter pack. + * parser.c (cp_parser_parameter_declaration): Handle turning autos + into packs here. + (cp_parser_parameter_declaration_list): Not here. + +2018-03-31 Alexandre Oliva + + PR c++/85027 + * class.c (instantiate_type): Peel off SAVE_EXPR before + BASELINK. + +2018-03-30 Jason Merrill + + * typeck2.c (process_init_constructor_record): Use + init_list_type_node for the CONSTRUCTOR around an anonymous union + designated initializer. + +2018-03-30 Jakub Jelinek + + PR c++/84791 + * semantics.c (finish_omp_reduction_clause): If + OMP_CLAUSE_REDUCTION_PLACEHOLDER is error_mark_node, return true + even if processing_template_decl. + +2018-03-29 David Malcolm + + PR c++/84269 + * name-lookup.c (get_std_name_hint): Add names from , + , and . + +2018-03-29 Jason Merrill + + PR c++/85093 - too many template args with pack expansion. + * pt.c (coerce_template_parms): Keep pack expansion args that will + need to be empty. + +2018-03-29 Jason Merrill + + * pt.c (build_non_dependent_expr): Propagate expr location. + +2018-03-27 Jason Merrill + + PR c++/85060 - wrong-code with call to base member in template. + * search.c (any_dependent_bases_p): Check uses_template_parms + rather than processing_template_decl. + +2018-03-29 David Malcolm + + PR c++/85110 + * typeck.c (convert_for_assignment): When complaining due to + conversions for an argument, attempt to use the location of the + argument. + +2018-03-28 Paolo Carlini + + PR c++/85028 + * pt.c (tsubst_default_argument): Early return if the type of the + parameter is erroneous. + +2018-03-28 Alexandre Oliva + + PR c++/84973 + * decl2.c (note_vague_linkage_fn): Don't defer uninstantiated + templates. + + PR c++/84968 + * tree.c (strip_typedefs_expr): Reject STATEMENT_LISTs. + +2018-03-27 Paolo Carlini + + PR c++/85067 + * method.c (defaulted_late_check): Partially revert r253321 changes, + do not early return upon error. + +2018-03-27 Jakub Jelinek + + PR c++/85077 + * cp-gimplify.c (cp_fold) : For ctors with vector + type call fold to generate VECTOR_CSTs when possible. + + PR c++/85076 + * tree.c (cp_build_reference_type): If to_type is error_mark_node, + return it right away. + +2018-03-27 Volker Reichelt + + * search.c (check_final_overrider): Use inform instead of error + for the diagnostics of the overridden functions. Tweak wording. + +2018-03-27 Jakub Jelinek + + PR c++/85068 + * class.c (update_vtable_entry_for_fn): Don't ICE if base_binfo + is NULL. Assert if thunk_binfo is NULL then errorcount is non-zero. + +2018-03-27 Paolo Carlini + Jason Merrill + + PR c++/84632 + * init.c (build_aggr_init): When initializing from array, + reject anything but CONSTRUCTORs and TARGET_EXPRs. + (build_vec_init): Handle separately ARRAY_TYPEs. + +2018-03-26 Jason Merrill + + PR c++/85062 - ICE with alignas in wrong place. + * decl.c (grokdeclarator): Ignore attributes on type-specifiers + here. + + PR c++/85049 - ICE with __integer_pack. + * pt.c (unify_pack_expansion): Don't try to deduce generated packs. + * cp-tree.h (TEMPLATE_PARM_P): New. + +2018-03-23 Jason Merrill + + PR c++/78489 - wrong SFINAE behavior. + + PR c++/84489 + * pt.c (type_unification_real): Don't defer substitution failure. + +2018-03-23 Jakub Jelinek + + PR c++/85015 + * decl.c (compute_array_index_type): Set osize to mark_rvalue_use + result. + + PR c++/84942 + * pt.c (tsubst_copy_and_build) : Replace + cp_build_unary_op call with gcc_unreachable (). + +2018-03-23 Marek Polacek + + PR c++/85045 + * cxx-pretty-print.c (cxx_pretty_printer::multiplicative_expression): + Handle EXACT_DIV_EXPR and RDIV_EXPR. Tweak condition. + (cxx_pretty_printer::expression): Handle EXACT_DIV_EXPR and RDIV_EXPR. + +2018-03-23 Ville Voutilainen + + Implement P0962 + * parser.c (cp_parser_perform_range_for_lookup): Change + the condition for deciding whether to use members. + +2018-03-23 Marek Polacek + + PR c++/85033 + * semantics.c (finish_offsetof): Don't allow CONST_DECLs. + +2018-03-23 Alexandre Oliva + + PR c++/71251 + * parser.c (cp_parser_alias_declaration): Call + parser_check_template_parameters. + + PR c++/84789 + * pt.c (resolve_typename_type): Drop assert that stopped + simplification to template-independent types. Add assert to + verify the initial scope is template dependent. + * parser.c (cp_parser_parse_and_diagnose_invalid_type_name): + Reparse the id expression as a type-name, not a declarator. + + PR c++/84729 + * init.c (build_vec_init): Error at parenthesized array init. + + PR c++/84610 + PR c++/84642 + PR c++/84942 + * cp-tree.h (temp_override): New template class, generalizing + a cleanup that was only used... + * parser.c (cp_parser_parameter_declaration_clause): + ... here for auto_is_implicit_function_template_parm_p. + (cp_parser_gnu_attributes_opt): Use it here as well. + (cp_parser_std_attribute): Likewise. + +2018-03-22 Marek Polacek + + PR c++/84854 + * semantics.c (finish_if_stmt_cond): Check if the type of the condition + is boolean. + +2018-03-21 Jason Merrill + + PR c++/81311 - wrong C++17 overload resolution. + * call.c (build_user_type_conversion_1): Remove C++17 code. + (conv_binds_ref_to_prvalue): New. + (build_over_call): Handle C++17 copy elision. + (build_special_member_call): Only do C++17 copy elision here if the + argument is already the right type. + +2018-03-21 Alexandre Oliva + + PR c++/71965 + * init.c (build_vec_init): Silence error, former sorry, + without tf_error. + + PR c++/84610 + PR c++/84642 + * parser.c (abort_fully_implicit_template_p): New. + (cp_parser_skip_to_end_of_statement): Use it. + (cp_parser_skip_to_end_of_block_or_statement): Likewise. + (finish_fully_implicit_template_p): Clear + implicit_template_parms and implicit_template_scope. + +2018-03-21 Paolo Carlini + + PR c++/84972 + * decl.c (maybe_deduce_size_from_array_init): Set TREE_TYPE to + error_mark_node when check_array_designated_initializer fails. + +2018-03-21 Jakub Jelinek + + PR c++/84961 + * cp-tree.h (genericize_compound_lvalue): Declare. + * typeck.c (genericize_compound_lvalue): New function. + (unary_complex_lvalue, cp_build_modify_expr): Use it. + * semantics.c (finish_asm_stmt): Replace MODIFY_EXPR, PREINCREMENT_EXPR + and PREDECREMENT_EXPR in output and "m" constrained input operands with + COMPOUND_EXPR. Call cxx_mark_addressable on the rightmost + COMPOUND_EXPR operand. + +2018-03-21 Nathan Sidwell + + PR c++/85008 + * tree.c (decl_linkage): Use DECL_CLONED_FUNCTION_P. + * decl2.c (vague_linkage_p): Likewise. + +2018-03-21 David Malcolm + + PR c++/84994 + * constexpr.c (constexpr_fn_retval): Make non-"static". + * cp-tree.h (constexpr_fn_retval): New decl. + * search.c (direct_accessor_p): Update leading comment. + (reference_accessor_p): Likewise. + (field_accessor_p): Replace check that function body is a + RETURN_EXPR with a call to constexpr_fn_retval. Fix + indentation of "field_type" decl. + +2018-03-21 Nathan Sidwell + + PR c++/84804 + * name-lookup.c (do_pushtag): Permit lambdas to be pushed into + complete classes. + +2018-03-21 Martin Sebor + + PR c++/84850 + * call.c (first_non_public_field): New template and function. + (first_non_trivial_field): New function. + (maybe_warn_class_memaccess): Call them. + +2018-03-21 David Malcolm + + PR c++/84892 + * search.c (field_accessor_p): Use class_of_this_parm rather than + type_of_this_parm, to check that "this" is a "const T *", rather + than a "T *const". + +2018-03-21 Nathan Sidwell + + * class.c (finish_struct_anon_r): Refactor, deprecate anything + other than public non-static data members. + * parser.c (cp_parser_init_declarator): Deprecate attributes after + parenthesized initializer. + + PR c++/84836 + * name-lookup.c (update_binding): Correct logic for local binding + update. + +2018-03-21 Marek Polacek + + PR c++/71638, ICE with NSDMI and reference. + * constexpr.c (cxx_eval_bare_aggregate): Update constructor's flags + even when we replace an element. + +2018-03-20 Marek Polacek + + PR c++/84978, ICE with NRVO. + * constexpr.c (cxx_eval_constant_expression): Handle the case when + a RESULT_DECL isn't in the hash map. + +2018-03-20 Jason Merrill + + PR c++/84978, ICE with NRVO. + * cvt.c (cp_get_fndecl_from_callee): Add fold parameter. + (cp_get_callee_fndecl_nofold): New. + * cp-gimplify.c (cp_genericize_r): Use it instead. + * call.c (check_self_delegation): Likewise. + +2018-03-20 Nathan Sidwell + + PR c++/84962 + * name-lookup.c (pushdecl_class_level): Push anon-struct's + member_vec, if there is one. + + PR c++/84970 + * cp-tree.h (lookup_list_keep): Declare. + * tree.c (lookup_list_keep): New, broken out of ... + (build_min): ... here. Call it. + * decl.c (cp_finish_decl): Call lookup_list_keep. + +2018-03-19 Jason Merrill + + PR c++/84937 - ICE with class deduction and auto. + * pt.c (rewrite_template_parm): Fix auto handling. + +2018-03-19 Marek Polacek + + PR c++/84925 + * pt.c (enclosing_instantiation_of): Check if fn is null. + + PR c++/84927 + * constexpr.c (cxx_eval_bare_aggregate): Update constructor's flags + as we evaluate the elements. + (cxx_eval_constant_expression): Verify constructor's flags + unconditionally. + +2018-03-19 Jason Merrill + + PR c++/71834 - template-id with too few arguments. + * pt.c (coerce_template_parms): Check fixed_parameter_pack_p. + +2018-03-19 Nathan Sidwell + + PR c++/84835 + * lambda.c (maybe_add_lambda_conv_op): Force C++ linkage. + * pt.c (build_template_decl): Propagate language linkage. + + PR c++/84812 + * name-lookup.c (set_local_extern_decl_linkage): Defend against + ambiguous lookups. + +2018-03-16 Jakub Jelinek + + PR c/84910 + * parser.c (cp_parser_lambda_introducer): Remove trailing space from + diagnostics. + * method.c (synthesize_method): Likewise. + * pt.c (convert_nontype_argument): Likewise. + +2018-03-16 Jason Merrill + + PR c++/84720 - ICE with rvalue ref non-type argument. + * pt.c (invalid_nontype_parm_type_p): Prohibit rvalue reference. + (convert_nontype_argument): Revert earlier change. + + PR c++/80227 - SFINAE and negative array size. + * decl.c (compute_array_index_type): Use + build_converted_constant_expr and valid_constant_size_p. + + PR c++/84906 - silent wrong code with ambiguous conversion. + * call.c (build_user_type_conversion_1): Set need_temporary_p on + ambiguous conversion. + (convert_like_real): Check it. + + PR c++/83937 - wrong C++17 handling of init-list ctor argument. + * call.c (build_special_member_call): Don't convert an init-list + argument directly to the class type. + +2018-03-16 Jakub Jelinek + + PR c++/79937 + PR c++/82410 + * cp-tree.h (CONSTRUCTOR_PLACEHOLDER_BOUNDARY): Define. + (find_placeholder): Declare. + * tree.c (struct replace_placeholders_t): Add exp member. + (replace_placeholders_r): Don't walk into ctors with + CONSTRUCTOR_PLACEHOLDER_BOUNDARY flag set, unless they are equal to + d->exp. Replace PLACEHOLDER_EXPR with unshare_expr (x) rather than x. + (replace_placeholders): Initialize data.exp. + (find_placeholders_r, find_placeholders): New functions. + * typeck2.c (process_init_constructor_record, + process_init_constructor_union): Set CONSTRUCTOR_PLACEHOLDER_BOUNDARY + if adding NSDMI on which find_placeholder returns true. + * call.c (build_over_call): Don't call replace_placeholders here. + * cp-gimplify.c (cp_genericize_r): Set TARGET_EXPR_NO_ELIDE on + TARGET_EXPRs with CONSTRUCTOR_PLACEHOLDER_BOUNDARY set on + TARGET_EXPR_INITIAL. + (cp_fold): Copy over CONSTRUCTOR_PLACEHOLDER_BOUNDARY bit to new + ctor. + +2018-03-16 Jason Merrill + + PR c++/83911 - ICE with multiversioned constructor. + * cp-gimplify.c (cp_genericize_r): Replace versioned function with + dispatchere here. + * call.c (build_over_call): Not here. + +2018-03-16 Jakub Jelinek + + PR c++/84874 + * decl.c (reshape_init_class): Don't assert d->cur->index == field + if d->cur->index is a FIELD_DECL, instead set field to d->cur->index. + +2018-03-15 Jakub Jelinek + + PR c++/84222 + * cp-tree.h (cp_warn_deprecated_use): Declare. + * tree.c (cp_warn_deprecated_use): New function. + * typeck2.c (build_functional_cast): Use it. + * decl.c (grokparms): Likewise. + (grokdeclarator): Likewise. Temporarily push nested class scope + around grokparms call for out of class member definitions. + +2018-03-14 Jason Merrill + + PR c++/84820 - no error for invalid qualified-id. + * parser.c (cp_parser_make_indirect_declarator): Don't wrap + cp_error_declarator. + + PR c++/84801 - ICE with unexpanded pack in lambda. + * pt.c (check_for_bare_parameter_packs): Don't return early for a + lambda in non-template context. + + PR c++/81236 - auto variable and auto function + * pt.c (tsubst_baselink): Update the type of the BASELINK after + mark_used. + +2018-03-14 Jason Merrill + + PR c++/83916 - ICE with template template parameters. + * pt.c (convert_template_argument): Don't substitute into type of + non-type parameter if we don't have enough arg levels. + (unify): Likewise. + +2018-03-14 Marek Polacek + + PR c++/84596 + * semantics.c (finish_static_assert): Check + instantiation_dependent_expression_p instead of + {type,value}_dependent_expression_p. + +2018-03-13 Paolo Carlini + Jason Merrill + + PR c++/82336 - link error with list-init default argument. + * decl.c (check_default_argument): Unshare an initializer list. + +2018-03-13 Jakub Jelinek + + PR c++/84843 + * decl.c (duplicate_decls): For redefinition of built-in, use error + and return error_mark_node. For redeclaration, return error_mark_node + rather than olddecl if !flag_permissive. + +2018-03-13 Jason Merrill + + PR c++/82565 - ICE with concepts and generic lambda. + * pt.c (instantiate_decl): Clear fn_context for lambdas. + +2018-03-13 Jason Merrill + + PR c++/84720 - ICE with rvalue ref non-type argument. + * pt.c (convert_nontype_argument): Handle rvalue references. + + PR c++/84839 - ICE with decltype of parameter pack. + * pt.c (tsubst_pack_expansion): Set cp_unevaluated_operand while + instantiating dummy parms. + + * parser.c (cp_parser_simple_type_specifier): Pedwarn about auto + parameter even without -Wpedantic. + + PR c++/84798 - ICE with auto in abstract function declarator. + * parser.c (cp_parser_parameter_declaration_clause): Check + parser->default_arg_ok_p. + +2018-03-13 Jakub Jelinek + + PR c++/84808 + * constexpr.c (find_array_ctor_elt): Don't use elt reference after + first potential CONSTRUCTOR_ELTS reallocation. Convert dindex to + sizetype. Formatting fixes. + +2018-03-12 Jason Merrill + + PR c++/84355 - ICE with deduction for member class template. + * pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Always substitute into + CLASS_PLACEHOLDER_TEMPLATE. + + PR c++/84802 - ICE capturing uninstantiated class. + * lambda.c (build_capture_proxy): Call complete_type. + +2018-03-09 Jason Merrill + + PR c++/84770 - ICE with typedef and parameter pack. + * pt.c (verify_unstripped_args_1): Split out from + verify_unstripped_args. + + PR c++/84785 - ICE with alias template and default targs. + * pt.c (type_unification_real): Set processing_template_decl if + saw_undeduced == 1. + + PR c++/84752 - ICE with capture of constexpr array. + * call.c (standard_conversion): Set rvaluedness_matches_p on the + identity conversion under ck_lvalue. + +2018-03-09 Jason Merrill + Paolo Carlini + + PR c++/71169 + PR c++/71832 + * pt.c (any_erroneous_template_args_p): New. + * cp-tree.h (any_erroneous_template_args_p): Declare it. + * parser.c (cp_parser_class_specifier_1): Use it. + +2018-03-09 Jason Merrill + + PR c++/84726 - unnecessary capture of constant vars. + * cp-tree.h (LAMBDA_CAPTURE_EXPLICIT_P) + (LAMBDA_EXPR_CAPTURE_OPTIMIZED): New. + * expr.c (mark_use): Set LAMBDA_EXPR_CAPTURE_OPTIMIZED. + * lambda.c (is_constant_capture_proxy) + (current_lambda_expr, var_to_maybe_prune, mark_const_cap_r) + (prune_lambda_captures): New. + (finish_lambda_function): Call prune_lambda_captures. + +2018-03-09 Jason Merrill + Jakub Jelinek + + PR c++/84076 + * call.c (convert_arg_to_ellipsis): Instead of cp_build_addr_expr + build ADDR_EXPR with REFERENCE_TYPE. + (build_over_call): For purposes of check_function_arguments, if + argarray[j] is ADDR_EXPR with REFERENCE_TYPE created above, use + its operand rather than the argument itself. + +2018-03-09 Jakub Jelinek + + PR c++/84724 + * decl.c (duplicate_decls): Don't override __* prefixed builtins + except for __[^b]*_chk, instead issue permerror and for -fpermissive + also a note and return olddecl. + +2018-03-09 Nathan Sidwell + + PR c++/84733 + * name-lookup.c (do_pushdecl_with_scope): Only clear + current_function_decl when pushing a non-class (i.e. namespace) + scope. + +2018-03-08 Jason Merrill + Jakub Jelinek + + PR c++/80598 + * call.c (build_over_call): In templates set TREE_USED (first_fn) when + not calling mark_used for the benefit of -Wunused-function warning. + +2018-03-06 Jason Merrill + + * lambda.c (is_capture_proxy_with_ref): Remove. + * constexpr.c, expr.c, cp-tree.h, semantics.c: Adjust. + +2018-03-06 Marek Polacek + + PR c++/84684 + * constexpr.c (cxx_bind_parameters_in_call): Unshare evaluated + arguments. + +2018-03-06 Alexandre Oliva + + PR c++/84231 + * tree.c (lvalue_kind): Use presence/absence of REFERENCE_TYPE + only while processing template decls. + * typeck.c (build_x_conditional_expr): Move wrapping of + reference type around type... + * call.c (build_conditional_expr_1): ... here. Rename + is_lvalue to is_glvalue. + * parser.c (cp_parser_fold_expression): Catch REFERENCE_REF_P + INDIRECT_REF of COND_EXPR too. + + PR c++/84593 + * init.c (build_zero_init_1): Zero-initialize references. + + PR c++/84492 + * semantics.c (finish_stmt_expr_expr): Reject unresolved + overloads used as stmt expr values. + +2018-03-05 Jason Merrill + + PR c++/84708 - ICE with lambda in local class NSDMI. + * lambda.c (lambda_expr_this_capture): Handle local class NSDMI + context. + +2018-03-05 Jakub Jelinek + + PR c++/84684 + * constexpr.c (constexpr_call_hasher::equal): Return false if + lhs->hash != rhs->hash. Change return 1 to return true and + return 0 to return false. + +2018-03-05 Nathan Sidwell + + PR c++/84702 + * pt.c (process_template_arg): Mark lookup_keep on a default arg. + +2018-03-05 Marek Polacek + + PR c++/84707 + * decl.c (duplicate_decls): Check DECL_NAME before accessing + UDLIT_OPER_P. + +2018-03-05 Nathan Sidwell + + PR c++/84694 + * friend.c (do_friend): Restore check for identifier_p inside + TEMPLATE_ID_EXPR. + +2018-03-05 Paolo Carlini + + PR c++/84618 + * parser.c (cp_parser_lambda_introducer): Reject any capture not + involving a VAR_DECL or a PARM_DECL. + +2018-03-05 Pádraig Brady + Jason Merrill + Nathan Sidwell + + PR c++/84497 + * decl2.c (get_tls_init_fn): Check TYPE_HAS_TRIVIAL_DFLT too. + +2018-03-03 Jason Merrill + + PR c++/84686 - missing volatile loads. + * cvt.c (convert_to_void): Call maybe_undo_parenthesized_ref. + +2018-03-03 Paolo Carlini + + PR c++/71464 + * optimize.c (maybe_thunk_body): Bail out immediately if either + fns[0] or fns[1] is null. + +2018-03-02 Marek Polacek + + PR c++/84578 + * constexpr.c (get_array_or_vector_nelts): New. + (cxx_eval_array_reference): Use it. + (cxx_eval_vec_init_1): Likewise. + (cxx_eval_store_expression): Likewise. + +2018-03-02 Jason Merrill + + * semantics.c (force_paren_expr): Remove redundant test. + +2018-03-02 Marek Polacek + + PR c++/84663 + * decl.c (cp_complete_array_type): Check error_mark_node. + + PR c++/84664 + * typeck.c (cp_perform_integral_promotions): Check the result of + mark_rvalue_use. + +2018-03-02 Jakub Jelinek + + PR c++/84662 + * pt.c (tsubst_copy_and_build) : Use + RETURN instead of return. + : Likewise. + : If op0 is error_mark_node, just return + it instead of wrapping it into CONVERT_EXPR. + +2018-03-02 Jason Merrill + + Fix MIPS16 ICE. + * pt.c (type_dependent_expression_p): Check DECL_LANG_SPECIFIC. + +2018-03-02 Marek Polacek + + PR c++/84590 + * cp-gimplify.c (cp_fully_fold): Unwrap TARGET_EXPR or a CONSTRUCTOR + wrapped in VIEW_CONVERT_EXPR. + +2018-03-01 Martin Sebor + + PR c++/84294 + * decl.c (check_redeclaration_no_default_args): Merge attributes + specified on redeclarations of the same function template. + Remove dead code. + +2018-03-01 Marek Polacek + Jason Merrill + + PR c++/84582 + * semantics.c (force_paren_expr): Create a PAREN_EXPR when in + a template. + (maybe_undo_parenthesized_ref): Unwrap PAREN_EXPR. + * typeck2.c (store_init_value): Call fold_non_dependent_expr instead + of instantiate_non_dependent_expr. + * tree.c (lvalue_kind): Handle PAREN_EXPR like NON_DEPENDENT_EXPR. + +2018-03-01 Nathan Sidwell + + PR c++/84434 + * name-lookup.c (member_vec_dedup): Remove manually peeled + iteration. Ignore dependent ctor inheritance. + +2018-03-01 Jason Merrill + + PR c++/71569 - decltype of template. + * parser.c (cp_parser_decltype_expr): Handle missing template args. + +2018-03-01 Marek Polacek + + PR c++/84596 + * constexpr.c (require_rvalue_constant_expression): New function. + * cp-tree.h: Declare it. + * semantics.c (finish_static_assert): Use it instead of + require_potential_rvalue_constant_expression. + +2018-03-01 Jason Merrill + Alexandre Oliva + + PR c++/71569 - ICE with redundant args on member variable template. + * decl.c (start_decl): Handle partial specialization of member + variable template. + * pt.c (determine_specialization): Allow partial specialization + of member variable template without specializing enclosing class. + (process_partial_specialization): Improve error message. + +2018-02-28 Jason Merrill + + PR c++/71784 - ICE with ref-qualifier and explicit specialization. + * pt.c (determine_specialization): Check ref-qualifier. + +2018-02-28 Jakub Jelinek + + PR c++/84609 + * parser.c (cp_parser_attributes_opt): Formatting fix. + (cp_parser_skip_balanced_tokens, cp_parser_skip_gnu_attributes_opt, + cp_parser_skip_std_attribute_spec_seq, cp_parser_skip_attributes_opt): + New functions. + (cp_parser_member_declaration): Use cp_parser_skip_attributes_opt + instead of tentative parse to peek over optional attribute tokens + to check for CPP_COLON after them. + + PR c++/83871 + PR c++/83503 + * pt.c (INCLUDE_STRING): Remove define. + (warn_spec_missing_attributes): Use pretty_printer instead of + std::string. Fix up inform call so that the list of attributes + is in %s argument. + +2018-02-28 Martin Sebor + + PR testsuite/84617 + * decl.c (duplicate_decls): Fully merge attributes const, pure, + and malloc. + +2018-02-28 Nathan Sidwell + + PR c++/84602 + * name-lookup.h (search_anon_aggr): Add defaulted WANT_TYPE arg. + * name-lookup.c (fields_linear_search): Look in an anon-aggr + regardless of want_type. + (search_anon_aggr): Just use get_class_binding_direct. + +2018-02-28 Jakub Jelinek + + * decl.c (cp_finish_decomp): Don't adjust eltscnt when calling + inform_n. + +2018-02-27 Martin Sebor + + * pt.c: Avoid including directly. + +2018-02-27 Martin Sebor + + PR c++/83871 + PR c++/83503 + * cp-tree.h (warn_spec_missing_attributes): New function. + ((check_explicit_specialization): Add an argument. Call the above + function. + * decl.c (duplicate_decls): Avoid applying primary function template's + attributes to its explicit specializations. + cp/pt.c (warn_spec_missing_attributes): Define. + +2018-02-27 Håkon Sandsmark + + PR c++/71546 - lambda init-capture with qualified-id. + * parser.c (cp_parser_lambda_introducer): Clear scope after + each lambda capture. + +2018-02-27 Nathan Sidwell + + PR c++/84426 + * name-lookup.h (get_member_slot): Rename ... + (find_member_slot): ... here. + (add_member_slot): New. + * name-lookup.c (member_vec_linear_search): No need to check for + NULL slot. + (get_member_slot): Rename ... + (find_member_slot): ... here. Don't add slot for incomplete class. + (add_member_slot): New. + * class.c (add_method): Adjust get_member_slot rename. Bail out + if push_class_level_binding fails. Create slot and grok + properties once we're committed to insertion. + +2018-02-27 Jason Merrill + + PR c++/84489 - dependent default template argument + * pt.c (type_unification_real): Handle early substitution failure. + +2018-02-26 Jason Merrill + + PR c++/84560 - ICE capturing multi-dimensional VLA. + * tree.c (array_of_runtime_bound_p): False if the element is + variably-modified. + + PR c++/84441 - ICE with base initialized from ?: + * call.c (unsafe_copy_elision_p): Handle COND_EXPR. + + PR c++/84520 - ICE with generic lambda in NSDMI. + * lambda.c (lambda_expr_this_capture): Don't look for fake NSDMI + 'this' in a generic lambda instantiation. + + PR c++/84559 - ICE with constexpr VLA. + * constexpr.c (ensure_literal_type_for_constexpr_object): Check + for constexpr variable with VLA type. + +2018-02-26 Jakub Jelinek + + PR c++/84558 + * constexpr.c (cxx_eval_vec_init_1): For reuse, treat NULL eltinit like + a valid constant initializer. Formatting fixes. + +2018-02-26 Paolo Carlini + + PR c++/84540 + * pt.c (tsubst_attributes): Handle correctly tsubst_attribute + returning NULL_TREE. + (apply_late_template_attributes): Likewise. + +2018-02-26 Jakub Jelinek + + PR c++/84557 + * parser.c (cp_parser_omp_var_list_no_open): Only call + cp_parser_lookup_name_simple on names satisfying identifier_p. + (cp_parser_oacc_routine): Likewise. + +2018-02-26 Jason Merrill + + PR c++/84551 - ICE with concepts and -g. + * parser.c (add_debug_begin_stmt): Do nothing in a concept. + +2018-02-26 Marek Polacek + + PR c++/84325 + * tree.c (replace_placeholders_r): Only check TREE_CONSTANT on + non-types. + +2018-02-26 Jason Merrill + + PR c++/84447 - ICE with deleted inherited ctor with default arg. + * call.c (build_over_call): Handle deleted functions in one place. + +2018-02-26 Paolo Carlini + + PR c++/84533 + * decl.c (redeclaration_error_message): Don't try to use + DECL_DECLARED_CONSTEXPR_P on CONST_DECLs. + +2018-02-26 Paolo Carlini + + * lambda.c (build_capture_proxy): Define static. + * cp-tree.h (build_capture_proxy): Remove. + +2018-02-26 Marek Polacek + + PR c++/84537 + * name-lookup.c (suggest_alternative_in_explicit_scope): Return false + if name is error node. + +2018-02-25 Jason Merrill + + PR c++/84015 - ICE with class deduction and auto template parm. + * pt.c (rewrite_template_parm): Use tf_partial in first tsubst. + +2018-02-24 Marek Polacek + + PR c++/83692 + * constexpr.c (maybe_constant_init_1): New function. + (maybe_constant_init): Make it a wrapper around maybe_constant_init_1. + (cxx_constant_init): New function. + * cp-tree.h (cxx_constant_init): Declare. + * typeck2.c (store_init_value): Call cxx_constant_init instead of + cxx_constant_value. Move the maybe_constant_init call under an 'else'. + +2018-02-22 Jason Merrill + + PR c++/70468 - ICE with constructor delegation via typedef. + * pt.c (tsubst_initializer_list): Check for other mem-initializers + with constructor delegation. + +2018-02-22 Jason Merrill + + PR c++/84424 - ICE with constexpr and __builtin_shuffle. + * constexpr.c (reduced_constant_expression_p): Handle CONSTRUCTOR of + VECTOR_TYPE. + +2018-02-22 Marek Polacek + + PR c++/84493 + * parser.c (cp_parser_braced_list): Use require_open instead of + consume_open. + +2018-02-21 Jason Merrill + + PR c++/84454 - ICE with pack expansion in signature. + * error.c (find_typenames_r): Also stop on EXPR_PACK_EXPANSION. + +2018-02-20 Siddhesh Poyarekar + + * cp-objcp-common.c (cxx_block_may_fallthru): Add case for + IF_STMT. + +2018-02-20 Paolo Carlini + + PR c++/84446 + * parser.c (cp_parser_init_declarator): Don't call start_lambda_scope + on error_mark_node. + +2018-02-20 Jakub Jelinek + + PR c++/84445 + * class.c (fixed_type_or_null) : Only test + TREE_HAS_CONSTRUCTOR if instance is not an internal function call. + + PR c++/84449 + * tree.c (bot_manip): If build_cplus_new or break_out_target_exprs + returns error_mark_node, return it immediately. + (break_out_target_exprs): If cp_walk_tree with bot_manip returns + error_mark_node, return error_mark_node. + + PR c++/84455 + * pt.c (tsubst_lambda_expr): If not nested, increment temporarily + function_depth to avoid GC during finish_lambda_function. + +2018-02-19 Jason Merrill + + PR c++/84429 - ICE capturing VLA. + * lambda.c (build_capture_proxy): Handle reference refs. + +2018-02-19 Jakub Jelinek + + PR c++/84448 + * parser.c (cp_parser_binary_expression): For no_toplevel_fold_p, if + either operand is error_mark_node, set current.lhs to that instead of + creating a binary op with error_mark_node operands. + + PR c++/84430 + * constexpr.c (potential_constant_expression_1): Handle OMP_SIMD. + +2018-02-19 Paolo Carlini + + PR c++/84348 + * decl.c (grokdeclarator): Early return error_mark_node upon + ill-formed friend declaration. + +2018-02-16 Marek Polacek + Jakub Jelinek + + PR c++/84192 + * constexpr.c (cxx_eval_constant_expression) : Don't + set *jump_target to anything if jump_target is NULL. + +2018-02-16 Jason Merrill + + PR c++/84151 - unnecessary volatile load with static member. + * call.c (build_new_method_call_1): Avoid loading from a volatile + lvalue used as the object argument for a static member function. + + PR c++/81853 - using-directive and constexpr. + * constexpr.c (cxx_eval_constant_expression): Handle USING_STMT. + + PR c++/84420 - ICE with structured binding in lambda. + * lambda.c (is_capture_proxy): Check DECL_DECOMPOSITION_P. + + PR c++/83835 - C++17 error with constructor ctors. + * call.c (build_special_member_call): Set TARGET_EXPR_DIRECT_INIT_P. + + PR c++/82664 - ICE with reference to function template parm. + * pt.c (convert_nontype_argument_function): Avoid obfuscationg + NOP_EXPRs. + + PR c++/82764 - C++17 ICE with empty base + * class.c (build_base_field_1): Set DECL_SIZE to zero for empty base. + +2018-02-16 Jason Merrill + + PR c++/84421 - type-dependent if constexpr + * semantics.c (finish_if_stmt_cond): Check type_dependent_expression_p. + +2018-02-16 Nathan Sidwell + + Deprecate -ffriend-injection. + * decl.c (cxx_init_decl_processing): Emit warning on option. + * name-lookup.c (do_pushdecl): Emit warning if we push a visible + friend. + +2018-02-16 Paolo Carlini + + PR c++/82468 + * decl.c (check_special_function_return_type): Reject template + template parameter in deduction guide. + +2018-02-16 Nathan Sidwell + + PR c++/84375 + * name-lookup.c (do_pushdecl): Bail out on bad local friend injection. + +2018-02-15 Jason Merrill + + PR c++/83227 - C++17 ICE with init-list derived-to-base conversion. + * call.c (convert_like_real): Don't use the copy-list-initialization + shortcut for ck_base. + + PR c++/84045 - ICE with typedef and noexcept. + * except.c (build_noexcept_spec): Use strip_typedefs_expr. + + PR c++/84376 - ICE with omitted template arguments. + * pt.c (dguide_name_p): Check for IDENTIFIER_NODE. + + PR c++/84368 - wrong error with local variable in variadic lambda. + * pt.c (tsubst_pack_expansion): Fix handling of non-packs in + local_specializations. + +2018-02-15 Paolo Carlini + + PR c++/84330 + * constraint.cc (tsubst_constraint_info): Handle an error_mark_node + as first argument. + +2018-02-14 Paolo Carlini + + PR c++/84350 + * pt.c (do_auto_deduction): Don't check the TREE_TYPE of a null + init, early return. + +2018-02-14 Nathan Sidwell + + * decl2.c (mark_vtable_entries): Set input_location to decl's. + (c_parse_final_cleanups): Restore input_location after emitting + vtables. + +2018-02-14 Paolo Carlini + + * cp-tree.h (do_auto_deduction (tree, tree, tree)): Remove. + (do_auto_deduction (tree, tree, tree, tsubst_flags_t, + auto_deduction_context, tree, int): Add defaults. + * pt.c (do_auto_deduction (tree, tree, tree)): Remove definition. + (tsubst_omp_for_iterator): Adjust do_auto_deduction call, forward + tsubst_flags_t argument. + * init.c (build_new): Likewise. + +2018-02-13 Jakub Jelinek + + PR c++/84364 + * typeck.c (check_return_expr): Don't emit -Weffc++ warning + about return other than *this in assignment operators if + retval is type dependent expression. + +2018-02-13 Paolo Carlini + + PR c++/84333 + * call.c (build_conditional_expr_1): Use cp_save_expr instead of + save_expr for the G++ extension. + +2018-02-13 Jason Merrill + + PR c++/84080 - ICE with return type deduction and specialization. + * pt.c (determine_specialization): Check uses_template_parms. + + Fix more variadic capture issues. + * pt.c (find_parameter_packs_r): Also look at explicit captures. + (check_for_bare_parameter_packs): Check current_class_type for + lambda context. + (extract_locals_r): Handle seeing a full instantiation of a pack. + (tsubst_pack_expansion): Likewise. Force lambda capture. + * parser.c (cp_parser_lambda_introducer): Don't + check_for_bare_parameter_packs. + + PR c++/84338 - wrong variadic sizeof. + * pt.c (argument_pack_select_arg): Like the macro, but look through + a pack expansion. + (tsubst, tsubst_copy, dependent_template_arg_p): Use it. + (extract_fnparm_pack): Do make_pack_expansion. + (extract_locals_r): Do strip a pack expansion. + * cp-tree.h (ARGUMENT_PACK_SELECT_ARG): Remove. + +2018-02-12 Jakub Jelinek + + PR c++/84341 + * parser.c (cp_parser_binary_expression): Use build_min instead of + build2_loc to build the no_toplevel_fold_p toplevel binary expression. + +2018-02-12 Nathan Sidwell + + PR c++/84263 + * parser.c (cp_parser_decltype): Push and pop + deferring_access_checks. Reorganize to avoid goto. + +2018-02-12 Richard Biener + + PR c++/84281 + * constexpr.c (cxx_eval_vec_init_1): Use a RANGE_EXPR to compact + uniform constructors and delay allocating them fully. + +2018-02-09 Jason Merrill + + PR c++/84036 - ICE with variadic capture. + Handle variadic capture proxies more like non-variadic. + * lambda.c (build_capture_proxy): Remove workaround. + * pt.c (find_parameter_packs_r): The proxy is a pack. + (instantiate_class_template_1): Remove dead lambda code. + (extract_fnparm_pack): Don't make_pack_expansion. + (extract_locals_r): Don't strip a pack expansion. + (tsubst_pack_expansion): Handle proxy packs. Use + PACK_EXPANSION_EXTRA_ARGS less. + (tsubst_decl) [FIELD_DECL]: Don't register_specialization. + (tsubst_copy) [FIELD_DECL]: Don't retrieve*_specialization. + [VAR_DECL]: Handle ARGUMENT_PACK_SELECT. + (tsubst_expr) [DECL_EXPR]: Handle proxy packs. + (tsubst_copy_and_build) [VAR_DECL]: Handle proxy packs normally. + +2018-02-10 Jakub Jelinek + + PR sanitizer/83987 + * tree.c (cp_free_lang_data): Revert 2018-01-23 change. + +2018-02-09 Jason Merrill + + PR c++/81917 - ICE with void_t and partial specialization. + * pt.c (instantiate_class_template_1): Set TYPE_BEING_DEFINED before + calling most_specialized_partial_spec. + +2018-02-09 Nathan Sidwell + + PR c/84293 + * typeck.c (cp_build_indirect_ref_1, build_reinterpret_cast_1): + Pass expr location to strict_aliasing_warning. + +2018-02-09 Jason Merrill + + PR c++/84296 - ICE with qualified-id in template. + PR c++/83714 + * pt.c (unknown_base_ref_p): New. + (instantiation_dependent_scope_ref_p): Use it instead of + any_dependent_bases_p. + +2018-02-09 Marek Polacek + Jakub Jelinek + + PR c++/83659 + * constexpr.c (cxx_fold_indirect_ref): Sync some changes from + fold_indirect_ref_1, including poly_*int64. Verify first that + tree_fits_poly_int64_p (op01). Formatting fixes. + +2018-02-08 Paolo Carlini + + * constexpr.c (cxx_eval_component_reference): Use INDIRECT_REF_P. + * lambda.c (build_capture_proxy): Likewise. + * search.c (field_access_p): Likewise. + * semantics.c (omp_clause_decl, omp_privatize_field, + finish_omp_clauses): Likewise. + +2018-02-08 Paolo Carlini + + PR c++/83806 + * typeck.c (decay_conversion): Use mark_rvalue_use for the special + case of nullptr too. + +2018-02-08 Nathan Sidwell + + * class.c (finish_struct): Fix std:initializer_list diagnostic + formatting. + +2018-02-08 Paolo Carlini + + PR c++/83204 + * pt.c (tsubst_copy_and_build): Use force_paren_expr for INDIRECT_REF. + +2018-02-07 Jakub Jelinek + + PR c++/84082 + * parser.c (cp_parser_dot_deref_incomplete): New function. + (cp_parser_postfix_dot_deref_expression): Use it. + +2018-02-07 David Malcolm + + PR c++/81610 + PR c++/80567 + * name-lookup.c (suggest_rid_p): New function. + (lookup_name_fuzzy): Replace enum-rid-filtering logic with call to + suggest_rid_p. + +2018-02-07 Jason Merrill + + PR c++/84182 - ICE with captured lambda + PR c++/84181 + * pt.c (extract_locals_r, extract_local_specs): New. + (tsubst_pack_expansion): Use them. + +2018-02-07 Martin Liska + + PR c++/84059. + * class.c (add_method): Append argument value. + * cp-tree.h (maybe_version_functions): Add new argument. + * decl.c (decls_match): Call it if a declaration does not + have DECL_FUNCTION_VERSIONED. + (maybe_version_functions): record argument is added. + +2018-02-05 Marek Polacek + + * class.c: Remove unused global variables. + (build_primary_vtable): Don't gather statistics. + (print_class_statistics): Remove. + * cp-tree.h (print_class_statistics): Remove. + * tree.c (cxx_print_statistics): Don't call print_class_statistics. + +2018-02-02 Paolo Carlini + + * class.c (is_really_empty_class): Use DECL_UNNAMED_BIT_FIELD. + * constexpr.c (cx_check_missing_mem_inits): Likewise. + * decl.c (next_initializable_field, find_decomp_class_base, + cp_finish_decomp): Likewise. + * typeck2.c (process_init_constructor_record): Likewise. + +2018-02-02 Jason Merrill + + PR c++/84181 - ICE with lambda parm in template argument. + * tree.c (strip_typedefs_expr): Use cp_tree_operand_length. + +2018-02-01 Jason Merrill + + PR c++/84160 - ICE with nested variadic capture. + * lambda.c (is_capture_proxy_with_ref): New. + (insert_capture_proxy): Don't set DECL_CAPTURED_VARIABLE from a + COMPONENT_REF. + * expr.c (mark_use): Use is_capture_proxy_with_ref. + * constexpr.c (potential_constant_expression_1): Likewise. + * semantics.c (process_outer_var_ref): Likewise. + +2018-02-01 Marek Polacek + + PR c++/84125 + * typeck.c (build_address): Relax the assert when + processing_template_decl. + +2018-02-01 Jason Merrill + + PR c++/84126 - ICE with variadic generic lambda + PR c++/84036 + PR c++/82249 + * pt.c (tsubst_pack_expansion): Handle function parameter_packs in + PACK_EXPANSION_EXTRA_ARGS. + +2018-02-01 Paolo Carlini + + PR c++/83796 + * call.c (convert_like_real): If w're initializing from {} explicitly + call abstract_virtuals_error_sfinae. + +2018-01-31 Jason Merrill + Jakub Jelinek + + PR c++/83993 + * constexpr.c (cxx_eval_outermost_constant_expr): Build NOP_EXPR + around non-constant ADDR_EXPRs rather than clearing TREE_CONSTANT + on ADDR_EXPR. + +2018-01-31 Jakub Jelinek + + PR c++/83993 + * constexpr.c (diag_array_subscript): Emit different diagnostics + if TYPE_DOMAIN (arraytype) is NULL. + (cxx_eval_array_reference, cxx_eval_store_expression): For arrays + with NULL TYPE_DOMAIN use size_zero_node as nelts. + +2018-01-31 Paolo Carlini + + PR c++/84092 + * semantics.c (finish_qualified_id_expr): When handling an + UNBOUND_CLASS_TEMPLATE only adjust qualifying_class and expr. + +2018-01-31 Marek Polacek + + PR c++/84138 + * cp-gimplify.c (cp_fold): Check if X is an error node before + calling useless_type_conversion_p. + +2018-01-30 Jason Merrill + + PR c++/84091 - ICE with local class in lambda in template. + * decl2.c (determine_visibility): Look for outer containing template + instantiation. + + PR c++/84098 - ICE with lambda in template NSDMI. + * pt.c (instantiate_class_template_1): Ignore more lambdas. + +2018-01-29 Jason Merrill + + PR c++/68810 - wrong location for reinterpret_cast error. + * cvt.c (cp_convert_to_pointer): Always build a CONVERT_EXPR when + !dofold. + +2018-01-29 Marek Polacek + + PR c++/83996 + * constexpr.c (cxx_fold_indirect_ref): Compute ((foo *)&fooarray)[1] + => fooarray[1] in offset_int. + +2018-01-29 Jason Merrill + + PR c++/83942 - wrong unused warning with static_cast. + * cvt.c (ocp_convert): Call mark_rvalue_use. + +2018-01-26 Jason Merrill + + PR c++/83956 - wrong dtor error with anonymous union + * method.c (walk_field_subobs): Variant members only affect + deletedness. + (maybe_explain_implicit_delete): Pass &deleted_p for diagnostic. + + PR c++/84036 - ICE with variadic capture. + PR c++/82249 + * pt.c (tsubst_pack_expansion): When optimizing a simple + substitution, pull a single pack expansion out of its pack. + + PR c++/82514 - ICE with local class in generic lambda. + * pt.c (regenerated_lambda_fn_p): Remove. + (enclosing_instantiation_of): Don't use it. + (tsubst_function_decl): Call enclosing_instantiation_of. + + * pt.c (lookup_template_class_1): Add sanity check. + * name-lookup.c (do_pushtag): Don't add closures to local_classes. + +2018-01-25 Jakub Jelinek + + PR c++/84031 + * decl.c (find_decomp_class_base): Ignore unnamed bitfields. Ignore + recursive calls that return ret. + (cp_finish_decomp): Ignore unnamed bitfields. + +2018-01-23 Jason Merrill + + PR c++/82249 - wrong mismatched pack length error. + * pt.c (extract_fnparm_pack, tsubst_pack_expansion): Handle + unsubstituted function parameter pack. + +2018-01-23 Paolo Carlini + + PR c++/83921 + * decl.c (check_for_uninitialized_const_var): Not static; add + bool and tsubst_flags_t parameters; adjust to be used both in + constexpr context and not. + * constexpr.c (potential_constant_expression_1): Use the above. + * cp-tree.h (check_for_uninitialized_const_var): Declare. + +2018-01-23 Jason Merrill + + PR c++/83947 - ICE with auto declarations. + * pt.c (do_auto_deduction): Don't deduce from an auto decl. + * decl.c (undeduced_auto_decl): Limit to vars and fns. + +2018-01-23 David Malcolm + + PR c++/83974 + * pt.c (tsubst_copy_and_build) : Remove early bailout + for pointer to member function types. + +2018-01-23 Jakub Jelinek + + PR sanitizer/83987 + * tree.c (cp_free_lang_data): Change DECL_VALUE_EXPR of + DECL_OMP_PRIVATIZED_MEMBER vars to error_mark_node. + +2018-01-23 Nathan Sidwell + + PR c++/83988 + * pt.c (tsubst_baselink): Remove optype assert. + * ptree.c (cxx_print_xnode): Print BASELINK_OPTYPE. + +2018-01-23 Jakub Jelinek + + PR c++/83958 + * decl.c (cp_finish_decomp): Diagnose if reference structure binding + refers to incomplete type. + +2018-01-23 Nathan Sidwell + + Deprecate ARM-era for scope handling + * decl.c (poplevel): Flag_new_for_scope is a boolean-like. + (cxx_init_decl_processing): Deprecate flag_new_for_scope being + cleared. + * name-lookup.c (check_for_out_of_scope_variable): Deprecate and + cleanup handling. + * semantics.c (begin_for_scope): Flag_new_for_scope is + boolean-like. + (finish_for_stmt, begin_range_for_stmt): Likewise. + +2018-01-22 Jason Merrill + + PR c++/83720 + * decl2.c (determine_visibility): Fix template_decl handling + instead of blocking it. + + PR c++/83720 - ICE with lambda and LTO. + * decl2.c (determine_visibility): Clear template_decl for + function-scope decls. Propagate anonymous linkage from containing + function. + +2018-01-22 Marek Polacek + + PR c++/81933 + * typeck2.c (split_nonconstant_init_1): Return false if we didn't + split out anything. + +2018-01-22 Ville Voutilainen + + PR c++/83895 + * decl.c (grokdeclarator): Don't diagnose extra parens + on typedefs. + +2018-01-19 Jakub Jelinek + + PR c++/81167 + * call.c (joust): Use TREE_TYPE (source) if source is + a POINTER_TYPE_P rather than if ! DECL_CONSTRUCTOR_P (w->fn). + + PR c++/83919 + * typeck.c (convert_for_assignment): Suppress warn_ignored_qualifiers + for direct enum init. + * decl.c (reshape_init): Likewise. + +2018-01-19 Marek Polacek + + * constexpr.c (fold_simple): Simplify. + +2018-01-18 Jason Merrill + + PR c++/83714 + * search.c (any_dependent_bases_p): Handle null TREE_BINFO. + * pt.c (instantiation_dependent_scope_ref_p): True if + any_dependent_bases_p. + +2018-01-18 Paolo Carlini + + * cp-tree.h: Fix comment typo (DECL_NON_TRIVIALLY_INITIALIZED_P + vs DECL_NONTRIVIALLY_INITIALIZED_P). + +2018-01-18 Jason Merrill + + PR c++/82461 - constexpr list-initialized member + * constexpr.c (potential_constant_expression_1): Check + TARGET_EXPR_DIRECT_INIT_P. + +2018-01-18 Paolo Carlini + + PR c++/81013 + * decl.c (xref_basetypes): Early return upon error about derived + union. + +2018-01-18 Nathan Sidwell + + PR c++/83160 + * cp-tree.h (mark_use): Declare. + * expr.c (mark_use): Make extern. + * call.c (direct_reference_binding): Set inner conv's + rvaluedness_matches_p, if it is an identity. + (convert_like_real): Mark lvalue or rvalue use for identity as + rvaledness_matches_p demands. + +2018-01-18 Jakub Jelinek + + PR c++/83824 + * parser.c (attr_chainon): New function. + (cp_parser_label_for_labeled_statement, cp_parser_decl_specifier_seq, + cp_parser_namespace_definition, cp_parser_init_declarator, + cp_parser_type_specifier_seq, cp_parser_parameter_declaration, + cp_parser_gnu_attributes_opt): Use it. + (cp_parser_member_declaration, cp_parser_objc_class_ivars, + cp_parser_objc_struct_declaration): Likewise. Don't reset + prefix_attributes if attributes is error_mark_node. + +2018-01-17 Paolo Carlini + + PR c++/78344 + * decl.c (grokdeclarator): Do not append the error_mark_node + due to an erroneous optional attribute-specifier-seq. + +2018-01-17 Jakub Jelinek + + PR c++/83897 + * cp-gimplify.c (cp_maybe_instrument_return): Handle + CLEANUP_POINT_EXPR. + +2018-01-17 Paolo Carlini + + PR c++/81054 + * constexpr.c (ensure_literal_type_for_constexpr_object): Return + error_mark_node when we give an error. + * decl.c (cp_finish_decl): Use the latter. + +2018-01-17 Nathan Sidwell + + PR c++/83287 + * init.c (build_raw_new_expr): Scan list for lookups to keep. + +2018-01-17 David Malcolm + + PR c++/83814 + * expr.c (fold_for_warn): Move from c-common.c, reducing to just + the C++ part. If processing a template, call + fold_non_dependent_expr rather than fully folding. + +2018-01-17 Jason Merrill + + PR c++/81067 - redundant NULL warning. + * call.c (convert_like_real): Restore null_node handling. + +2018-01-17 Jason Merrill + + PR c++/81843 - ICE with variadic member template. + PR c++/72801 + * pt.c (unify_pack_expansion): Don't try to deduce enclosing + template args. + +2018-01-17 David Malcolm + + PR c++/83799 + * pt.c (type_dependent_expression_p): Strip any location wrapper + before testing tree codes. + (selftest::test_type_dependent_expression_p): New function. + (selftest::cp_pt_c_tests): Call it. + +2018-01-17 Nathan Sidwell + + PR c++/83739 + * pt.c (tsubst_expr) : Rebuild a range_for if + this not a final instantiation. + +2018-01-16 Jason Merrill + + PR c++/83714 - ICE checking return in template. + * typeck.c (check_return_expr): Call build_non_dependent_expr. + +2018-01-16 Jakub Jelinek + + PR c++/83817 + * pt.c (tsubst_copy_and_build) : If function + is AGGR_INIT_EXPR rather than CALL_EXPR, set AGGR_INIT_FROM_THUNK_P + instead of CALL_FROM_THUNK_P. + + PR c++/83825 + * name-lookup.c (member_vec_dedup): Return early if len is 0. + (resort_type_member_vec, set_class_bindings, + insert_late_enum_def_bindings): Use vec qsort method instead of + calling qsort directly. + +2018-01-15 Martin Sebor + + PR c++/83588 + * class.c (find_flexarrays): Make a record of multiple flexible array + members. + +2018-01-12 Jason Merrill + + PR c++/83186 - ICE with static_cast of list-initialized temporary. + * typeck.c (build_static_cast): Use build_non_dependent_expr. + +2018-01-12 Nathan Sidwell + + * cp-tree.h (mark_rvalue_use): Add parm name. + * expr.c (mark_lvalue_use, mark_lvalue_use_nonread): Move next to + mark_rvalue_use. + * call.c (convert_like_real): Fix formatting. + +2018-01-11 Jason Merrill + + PR c++/82728 - wrong -Wunused-but-set-variable + PR c++/82799 + PR c++/83690 + * call.c (perform_implicit_conversion_flags): Call mark_rvalue_use. + * decl.c (case_conversion): Likewise. + * semantics.c (finish_static_assert): Call + perform_implicit_conversion_flags. + +2018-01-11 Nathan Sidwell + + * method.c (enum mangling_flags): Delete long-dead enum. + +2018-01-10 Paolo Carlini + + * parser.c (cp_parser_std_attribute_spec): When + token_pair::require_open / require_close return false simply + return error_mark_node, avoid duplicate cp_parser_error about + expected '(' / ')', respectively. + +2018-01-10 David Malcolm + + PR c++/43486 + * call.c (null_ptr_cst_p): Strip location wrappers when + converting from '0' to a pointer type in C++11 onwards. + (conversion_null_warnings): Replace comparison with null_node with + call to null_node_p. + (build_over_call): Likewise. + * cp-gimplify.c (cp_fold): Remove the early bailout when + processing_template_decl. + * cp-lang.c (selftest::run_cp_tests): Call + selftest::cp_pt_c_tests and selftest::cp_tree_c_tests. + * cp-tree.h (cp_expr::maybe_add_location_wrapper): New method. + (selftest::run_cp_tests): Move decl to bottom of file. + (null_node_p): New inline function. + (selftest::cp_pt_c_tests): New decl. + (selftest::cp_tree_c_tests): New decl. + * cvt.c (build_expr_type_conversion): Replace comparison with + null_node with call to null_node_p. + * error.c (args_to_string): Likewise. + * except.c (build_throw): Likewise. + * mangle.c (write_expression): Skip location wrapper nodes. + * parser.c (literal_integer_zerop): New function. + (cp_parser_postfix_expression): Call maybe_add_location_wrapper on + the result for RID_TYPEID. Pass true for new "wrap_locations_p" + param of cp_parser_parenthesized_expression_list. When calling + warn_for_memset, replace integer_zerop calls with + literal_integer_zerop, eliminating the double logical negation + cast to bool. Eliminate the special-casing for CONST_DECL in + favor of the fold_for_warn within warn_for_memset. + (cp_parser_parenthesized_expression_list): Add "wrap_locations_p" + param, defaulting to false. Convert "expr" to a cp_expr, and call + maybe_add_location_wrapper on it when wrap_locations_p is true. + (cp_parser_unary_expression): Call maybe_add_location_wrapper on + the result for RID_ALIGNOF and RID_SIZEOF. + (cp_parser_builtin_offsetof): Likewise. + * pt.c: Include "selftest.h". + (tsubst_copy): Handle location wrappers. + (tsubst_copy_and_build): Likewise. + (build_non_dependent_expr): Likewise. + (selftest::test_build_non_dependent_expr): New function. + (selftest::cp_pt_c_tests): New function. + * tree.c: Include "selftest.h". + (lvalue_kind): Handle VIEW_CONVERT_EXPR location wrapper nodes. + (selftest::test_lvalue_kind): New function. + (selftest::cp_tree_c_tests): New function. + * typeck.c (string_conv_p): Strip any location wrapper from "exp". + (cp_build_binary_op): Replace comparison with null_node with call + to null_node_p. + (build_address): Use location of operand when building address + expression. + +2018-01-10 Marek Polacek + + PR c++/82541 + * call.c (build_conditional_expr_1): Check complain before warning. + * pt.c (tsubst_copy_and_build) : Suppress + -Wduplicated-branches. + +2018-01-10 Jakub Jelinek + + PR c++/81327 + * call.c (maybe_warn_class_memaccess): Add forward declaration. + Change last argument from tree * to const vec *, adjust + args uses and check number of operands too. Don't strip away any + nops. Use maybe_constant_value when looking for INTEGER_CST args. + Deal with src argument not having pointer type. Check + tree_fits_uhwi_p before calling tree_to_uhwi. Remove useless + test. + (build_over_call): Call maybe_warn_class_memaccess here on the + original arguments. + (build_cxx_call): Rather than here on converted arguments. + +2018-01-10 Paolo Carlini + + PR c++/81055 + * init.c (build_vec_init): Avoid building an INIT_EXPR with + error_mark_node as second argument. + +2018-01-09 Jakub Jelinek + + PR c++/83734 + * constexpr.c (cxx_eval_statement_list): Ignore DEBUG_BEGIN_STMTs + in STATEMENT_LIST. Remove unneeded assert. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * constexpr.c (cxx_eval_array_reference): Handle polynomial + VECTOR_CST_NELTS. + (cxx_fold_indirect_ref): Handle polynomial TYPE_VECTOR_SUBPARTS. + * call.c (build_conditional_expr_1): Likewise. + * decl.c (cp_finish_decomp): Likewise. + * mangle.c (write_type): Likewise. + * typeck.c (structural_comptypes): Likewise. + (cp_build_binary_op): Likewise. + * typeck2.c (process_init_constructor_array): Likewise. + +2018-01-03 Jakub Jelinek + + PR c++/83555 + * typeck.c (build_static_cast_1): For static casts to reference types, + call build_base_path with flag_delete_null_pointer_checks as nonnull + instead of always false. When -fsanitize=null, call + ubsan_maybe_instrument_reference on the NULL reference INTEGER_CST. + * cp-gimplify.c (cp_genericize_r): Don't walk subtrees of UBSAN_NULL + call if the first argument is INTEGER_CST with REFERENCE_TYPE. + +2018-01-03 Nathan Sidwell + + PR c++/83667 + * method.c (make_alias_for): Copy DECL_CONTEXT. + +2018-01-03 Marek Polacek + + PR c++/83592 + * decl.c (grokdeclarator): Don't warn about MVP in typename context. + +2018-01-03 Jakub Jelinek + + PR preprocessor/83602 + * name-lookup.c (lookup_name_fuzzy): Don't use macro_use_before_def + for builtin macros. + + PR c++/83634 + * cp-gimplify.c (cp_fold) : If the operand folds to + error_mark_node, return error_mark_node. + + Update copyright years. + +2018-01-02 Jakub Jelinek + + PR c++/83556 + * tree.c (replace_placeholders_r): Pass NULL as last argument to + cp_walk_tree instead of d->pset. If non-TREE_CONSTANT and + non-PLACEHOLDER_EXPR tree has been seen already, set *walk_subtrees + to false and return. + (replace_placeholders): Pass NULL instead of &pset as last argument + to cp_walk_tree. + +2018-01-02 Nathan Sidwell + + * constexpr.c (cxx_bind_parameters_in_call): Remove unneeded local + lval var. + +Copyright (C) 2018 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/class.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/class.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/class.c 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/class.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Functions related to building classes and their related objects. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. @@ -7388,6 +7388,14 @@ } return NULL_TREE; + case VIEW_CONVERT_EXPR: + if (location_wrapper_p (instance)) + return RECUR (TREE_OPERAND (instance, 0)); + else + /* TODO: Recursion may be correct for some non-location-wrapper + uses of VIEW_CONVERT_EXPR. */ + return NULL_TREE; + default: return NULL_TREE; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/config-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/config-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/config-lang.in 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/config-lang.in 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Top level configure fragment for GNU C++. -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2019 Free Software Foundation, Inc. #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/constexpr.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/constexpr.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/constexpr.c 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/constexpr.c 2019-01-02 08:05:16.000000000 +0000 @@ -2,7 +2,7 @@ constexpr functions. These routines are used both during actual parsing and during the instantiation of template functions. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -1197,7 +1197,7 @@ /* If we aren't requiring a constant expression, defer __builtin_constant_p in a constexpr function until we have values for the parameters. */ if (bi_const_p - && ctx->quiet + && !ctx->manifestly_const_eval && current_function_decl && DECL_DECLARED_CONSTEXPR_P (current_function_decl)) { @@ -1222,7 +1222,6 @@ return constant false for a non-constant argument. */ constexpr_ctx new_ctx = *ctx; new_ctx.quiet = true; - bool dummy1 = false, dummy2 = false; for (i = 0; i < nargs; ++i) { args[i] = CALL_EXPR_ARG (t, i); @@ -1231,12 +1230,16 @@ of the builtin, verify it here. */ if (!builtin_valid_in_constant_expr_p (fun) || potential_constant_expression (args[i])) - args[i] = cxx_eval_constant_expression (&new_ctx, args[i], false, - &dummy1, &dummy2); + { + bool dummy1 = false, dummy2 = false; + args[i] = cxx_eval_constant_expression (&new_ctx, args[i], false, + &dummy1, &dummy2); + } + if (bi_const_p) - /* For __built_in_constant_p, fold all expressions with constant values + /* For __builtin_constant_p, fold all expressions with constant values even if they aren't C++ constant-expressions. */ - args[i] = cp_fully_fold (args[i]); + args[i] = cp_fold_rvalue (args[i]); } bool save_ffbcp = force_folding_builtin_constant_p; @@ -4681,7 +4684,7 @@ break; case CONSTRUCTOR: - if (TREE_CONSTANT (t)) + if (TREE_CONSTANT (t) && reduced_constant_expression_p (t)) { /* Don't re-process a constant CONSTRUCTOR, but do fold it to VECTOR_CST if applicable. */ @@ -5340,6 +5343,7 @@ (t, complain) followed by maybe_constant_value but is more efficient, because it calls instantiation_dependent_expression_p and potential_constant_expression at most once. + The manifestly_const_eval argument is passed to maybe_constant_value. Callers should generally pass their active complain, or if they are in a non-template, diagnosing context, they can use the default of @@ -5350,7 +5354,8 @@ tree fold_non_dependent_expr (tree t, - tsubst_flags_t complain /* = tf_warning_or_error */) + tsubst_flags_t complain /* = tf_warning_or_error */, + bool manifestly_const_eval /* = false */) { if (t == NULL_TREE) return NULL_TREE; @@ -5380,7 +5385,8 @@ return t; } - tree r = cxx_eval_outermost_constant_expr (t, true, true, false, + tree r = cxx_eval_outermost_constant_expr (t, true, true, + manifestly_const_eval, NULL_TREE); /* cp_tree_equal looks through NOPs, so allow them. */ gcc_checking_assert (r == t @@ -5398,7 +5404,7 @@ return t; } - return maybe_constant_value (t); + return maybe_constant_value (t, NULL_TREE, manifestly_const_eval); } /* Like maybe_constant_value, but returns a CONSTRUCTOR directly, rather @@ -5762,13 +5768,18 @@ may change to something more specific to type-punning (DR 1312). */ { tree from = TREE_OPERAND (t, 0); - if (INDIRECT_TYPE_P (TREE_TYPE (t)) - && TREE_CODE (from) == INTEGER_CST - && !integer_zerop (from)) + if (location_wrapper_p (t)) + return (RECUR (from, want_rval)); + if (INDIRECT_TYPE_P (TREE_TYPE (t))) { - if (flags & tf_error) - error_at (loc, "reinterpret_cast from integer to pointer"); - return false; + STRIP_ANY_LOCATION_WRAPPER (from); + if (TREE_CODE (from) == INTEGER_CST + && !integer_zerop (from)) + { + if (flags & tf_error) + error_at (loc, "reinterpret_cast from integer to pointer"); + return false; + } } return (RECUR (from, TREE_CODE (t) != VIEW_CONVERT_EXPR)); } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/constraint.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/constraint.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/constraint.cc 2018-09-08 14:39:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/constraint.cc 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Processing rules for constraints. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Andrew Sutton (andrew.n.sutton@gmail.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cp-gimplify.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cp-gimplify.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cp-gimplify.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cp-gimplify.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* C++-specific tree lowering bits; see also c-gimplify.c and tree-gimple.c. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Jason Merrill This file is part of GCC. @@ -2118,7 +2118,7 @@ /* Fold expression X which is used as an rvalue if RVAL is true. */ -static tree +tree cp_fold_maybe_rvalue (tree x, bool rval) { while (true) @@ -2141,7 +2141,7 @@ /* Fold expression X which is used as an rvalue. */ -static tree +tree cp_fold_rvalue (tree x) { return cp_fold_maybe_rvalue (x, true); @@ -2171,6 +2171,20 @@ return cp_fold_rvalue (x); } +/* Likewise, but also fold recursively, which cp_fully_fold doesn't perform + in some cases. */ + +tree +cp_fully_fold_init (tree x) +{ + if (processing_template_decl) + return x; + x = cp_fully_fold (x); + hash_set pset; + cp_walk_tree (&x, cp_fold_r, &pset, NULL); + return x; +} + /* c-common interface to cp_fold. If IN_INIT, this is in a static initializer and certain changes are made to the folding done. Or should be (FIXME). We never touch maybe_const, as it is only used for the C front-end @@ -2317,6 +2331,7 @@ { val = TREE_OPERAND (val, 0); STRIP_NOPS (val); + val = maybe_constant_value (val); if (TREE_CODE (val) == INTEGER_CST) return fold_offsetof (op0, TREE_TYPE (x)); } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cp-lang.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cp-lang.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cp-lang.c 2018-10-15 11:36:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cp-lang.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Language-dependent hooks for C++. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Alexandre Oliva This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cp-name-hint.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cp-name-hint.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cp-name-hint.h 2018-11-29 22:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cp-name-hint.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations for working with name_hint instances in the C++ frontend. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by David Malcolm This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cp-objcp-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cp-objcp-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cp-objcp-common.c 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cp-objcp-common.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Some code common to C++ and ObjC++ front ends. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Ziemowit Laski This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cp-objcp-common.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cp-objcp-common.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cp-objcp-common.h 2018-06-22 07:37:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cp-objcp-common.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Language hooks common to C++ and ObjC++ front ends. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Ziemowit Laski This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cp-tree.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cp-tree.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cp-tree.def 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cp-tree.def 2019-01-02 08:05:16.000000000 +0000 @@ -1,7 +1,7 @@ /* This file contains the definitions and documentation for the additional tree codes used in the GNU C++ compiler (see tree.def for the standard codes). - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cp-tree.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cp-tree.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cp-tree.h 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cp-tree.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for C++ parsing and type checking. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. @@ -6097,7 +6097,8 @@ extern bool check_dtor_name (tree, tree); int magic_varargs_p (tree); -extern tree build_conditional_expr (location_t, tree, tree, tree, +extern tree build_conditional_expr (const op_location_t &, + tree, tree, tree, tsubst_flags_t); extern tree build_addr_func (tree, tsubst_flags_t); extern void set_flags_from_callee (tree); @@ -6122,7 +6123,8 @@ extern tree build_special_member_call (tree, tree, vec **, tree, int, tsubst_flags_t); -extern tree build_new_op (location_t, enum tree_code, +extern tree build_new_op (const op_location_t &, + enum tree_code, int, tree, tree, tree, tree *, tsubst_flags_t); extern tree build_op_call (tree, vec **, @@ -7339,7 +7341,7 @@ ATTRIBUTE_SENTINEL; extern tree cp_build_function_call_vec (tree, vec **, tsubst_flags_t); -extern tree build_x_binary_op (location_t, +extern tree build_x_binary_op (const op_location_t &, enum tree_code, tree, enum tree_code, tree, enum tree_code, tree *, @@ -7406,7 +7408,7 @@ extern tree merge_types (tree, tree); extern tree strip_array_domain (tree); extern tree check_return_expr (tree, bool *); -extern tree cp_build_binary_op (location_t, +extern tree cp_build_binary_op (const op_location_t &, enum tree_code, tree, tree, tsubst_flags_t); extern tree build_x_vec_perm_expr (location_t, @@ -7541,7 +7543,10 @@ extern bool cxx_omp_privatize_by_reference (const_tree); extern bool cxx_omp_disregard_value_expr (tree, bool); extern void cp_fold_function (tree); +extern tree cp_fold_maybe_rvalue (tree, bool); +extern tree cp_fold_rvalue (tree); extern tree cp_fully_fold (tree); +extern tree cp_fully_fold_init (tree); extern void clear_fold_cache (void); extern tree lookup_hotness_attribute (tree); extern tree process_stmt_hotness_attribute (tree); @@ -7665,7 +7670,9 @@ extern tree cxx_constant_init (tree, tree = NULL_TREE); extern tree maybe_constant_value (tree, tree = NULL_TREE, bool = false); extern tree maybe_constant_init (tree, tree = NULL_TREE, bool = false); -extern tree fold_non_dependent_expr (tree, tsubst_flags_t = tf_warning_or_error); +extern tree fold_non_dependent_expr (tree, + tsubst_flags_t = tf_warning_or_error, + bool = false); extern tree fold_simple (tree); extern bool is_sub_constant_expr (tree); extern bool reduced_constant_expression_p (tree); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cp-ubsan.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cp-ubsan.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cp-ubsan.c 2018-05-28 08:24:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cp-ubsan.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* UndefinedBehaviorSanitizer, undefined behavior detector. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cvt.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cvt.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cvt.c 2018-11-14 18:47:09.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cvt.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Language-level data type conversion for GNU C++. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. @@ -582,15 +582,20 @@ static tree ignore_overflows (tree expr, tree orig) { - if (TREE_CODE (expr) == INTEGER_CST - && TREE_CODE (orig) == INTEGER_CST - && TREE_OVERFLOW (expr) != TREE_OVERFLOW (orig)) + tree stripped_expr = tree_strip_any_location_wrapper (expr); + tree stripped_orig = tree_strip_any_location_wrapper (orig); + + if (TREE_CODE (stripped_expr) == INTEGER_CST + && TREE_CODE (stripped_orig) == INTEGER_CST + && TREE_OVERFLOW (stripped_expr) != TREE_OVERFLOW (stripped_orig)) { - gcc_assert (!TREE_OVERFLOW (orig)); + gcc_assert (!TREE_OVERFLOW (stripped_orig)); /* Ensure constant sharing. */ - expr = wide_int_to_tree (TREE_TYPE (expr), wi::to_wide (expr)); + stripped_expr = wide_int_to_tree (TREE_TYPE (stripped_expr), + wi::to_wide (stripped_expr)); } - return expr; + + return preserve_any_location_wrapper (stripped_expr, expr); } /* Fold away simple conversions, but make sure TREE_OVERFLOW is set @@ -800,10 +805,11 @@ the original value is within the range of the enumeration values. Otherwise, the resulting enumeration value is unspecified. */ + tree val = fold_for_warn (e); if ((complain & tf_warning) - && TREE_CODE (e) == INTEGER_CST + && TREE_CODE (val) == INTEGER_CST && ENUM_UNDERLYING_TYPE (type) - && !int_fits_type_p (e, ENUM_UNDERLYING_TYPE (type))) + && !int_fits_type_p (val, ENUM_UNDERLYING_TYPE (type))) warning_at (loc, OPT_Wconversion, "the result of the conversion is unspecified because " "%qE is outside the range of type %qT", diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cxx-pretty-print.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cxx-pretty-print.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cxx-pretty-print.c 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cxx-pretty-print.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of subroutines for the GNU C++ pretty-printer. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Gabriel Dos Reis This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cxx-pretty-print.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cxx-pretty-print.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/cxx-pretty-print.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/cxx-pretty-print.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Interface for the GNU C++ pretty-printer. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Gabriel Dos Reis This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/decl2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/decl2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/decl2.c 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/decl2.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Process declarations and variables for C++ compiler. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. @@ -3331,15 +3331,15 @@ translation unit. */ static tree -get_local_tls_init_fn (void) +get_local_tls_init_fn (location_t loc) { tree sname = get_identifier ("__tls_init"); tree fn = get_global_binding (sname); if (!fn) { - fn = build_lang_decl (FUNCTION_DECL, sname, - build_function_type (void_type_node, - void_list_node)); + fn = build_lang_decl_loc (loc, FUNCTION_DECL, sname, + build_function_type (void_type_node, + void_list_node)); SET_DECL_LANGUAGE (fn, lang_c); TREE_PUBLIC (fn) = false; DECL_ARTIFICIAL (fn) = true; @@ -3369,7 +3369,7 @@ /* If the variable is internal, or if we can't generate aliases, call the local init function directly. */ if (!TREE_PUBLIC (var) || !TARGET_SUPPORTS_ALIASES) - return get_local_tls_init_fn (); + return get_local_tls_init_fn (DECL_SOURCE_LOCATION (var)); tree sname = mangle_tls_init_fn (var); tree fn = get_global_binding (sname); @@ -4435,7 +4435,7 @@ set_decl_tls_model (guard, decl_default_tls_model (guard)); pushdecl_top_level_and_finish (guard, NULL_TREE); - tree fn = get_local_tls_init_fn (); + tree fn = get_local_tls_init_fn (loc); start_preparsed_function (fn, NULL_TREE, SF_PRE_PARSED); tree body = begin_function_body (); tree if_stmt = begin_if_stmt (); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/decl.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/decl.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/decl.c 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/decl.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Process declarations and variables for C++ compiler. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. @@ -4803,15 +4803,20 @@ declared_type = declspecs->type; else if (declspecs->type == error_mark_node) error_p = true; - if (declared_type == NULL_TREE && ! saw_friend && !error_p) - permerror (input_location, "declaration does not declare anything"); - else if (declared_type != NULL_TREE && type_uses_auto (declared_type)) + + if (type_uses_auto (declared_type)) { error_at (declspecs->locations[ds_type_spec], "% can only be specified for variables " "or function declarations"); return error_mark_node; } + + if (declared_type && !OVERLOAD_TYPE_P (declared_type)) + declared_type = NULL_TREE; + + if (!declared_type && !saw_friend && !error_p) + permerror (input_location, "declaration does not declare anything"); /* Check for an anonymous union. */ else if (declared_type && RECORD_OR_UNION_CODE_P (TREE_CODE (declared_type)) && TYPE_UNNAMED_P (declared_type)) @@ -6005,14 +6010,16 @@ && has_designator_problem (d, complain)) return error_mark_node; + tree stripped_init = tree_strip_any_location_wrapper (init); + if (TREE_CODE (type) == COMPLEX_TYPE) { /* A complex type can be initialized from one or two initializers, but braces are not elided. */ d->cur++; - if (BRACE_ENCLOSED_INITIALIZER_P (init)) + if (BRACE_ENCLOSED_INITIALIZER_P (stripped_init)) { - if (CONSTRUCTOR_NELTS (init) > 2) + if (CONSTRUCTOR_NELTS (stripped_init) > 2) { if (complain & tf_error) error ("too many initializers for %qT", type); @@ -6042,16 +6049,16 @@ We need to check for BRACE_ENCLOSED_INITIALIZER_P here because of g++.old-deja/g++.mike/p7626.C: a pointer-to-member constant is a CONSTRUCTOR (with a record type). */ - if (TREE_CODE (init) == CONSTRUCTOR + if (TREE_CODE (stripped_init) == CONSTRUCTOR /* Don't complain about a capture-init. */ - && !CONSTRUCTOR_IS_DIRECT_INIT (init) - && BRACE_ENCLOSED_INITIALIZER_P (init)) /* p7626.C */ + && !CONSTRUCTOR_IS_DIRECT_INIT (stripped_init) + && BRACE_ENCLOSED_INITIALIZER_P (stripped_init)) /* p7626.C */ { if (SCALAR_TYPE_P (type)) { if (cxx_dialect < cxx11 /* Isn't value-initialization. */ - || CONSTRUCTOR_NELTS (init) > 0) + || CONSTRUCTOR_NELTS (stripped_init) > 0) { if (complain & tf_error) error ("braces around scalar initializer for type %qT", @@ -6111,20 +6118,22 @@ && char_type_p (TYPE_MAIN_VARIANT (TREE_TYPE (type)))) { tree str_init = init; + tree stripped_str_init = stripped_init; /* Strip one level of braces if and only if they enclose a single element (as allowed by [dcl.init.string]). */ if (!first_initializer_p - && TREE_CODE (str_init) == CONSTRUCTOR - && CONSTRUCTOR_NELTS (str_init) == 1) + && TREE_CODE (stripped_str_init) == CONSTRUCTOR + && CONSTRUCTOR_NELTS (stripped_str_init) == 1) { - str_init = (*CONSTRUCTOR_ELTS (str_init))[0].value; + str_init = (*CONSTRUCTOR_ELTS (stripped_str_init))[0].value; + stripped_str_init = tree_strip_any_location_wrapper (str_init); } /* If it's a string literal, then it's the initializer for the array as a whole. Otherwise, continue with normal initialization for array types (one value per array element). */ - if (TREE_CODE (str_init) == STRING_CST) + if (TREE_CODE (stripped_str_init) == STRING_CST) { if (has_designator_problem (d, complain)) return error_mark_node; @@ -6139,24 +6148,24 @@ which reshape_init exists). */ if (!first_initializer_p) { - if (TREE_CODE (init) == CONSTRUCTOR) + if (TREE_CODE (stripped_init) == CONSTRUCTOR) { if (TREE_TYPE (init) && TYPE_PTRMEMFUNC_P (TREE_TYPE (init))) /* There is no need to reshape pointer-to-member function initializers, as they are always constructed correctly by the front end. */ ; - else if (COMPOUND_LITERAL_P (init)) + else if (COMPOUND_LITERAL_P (stripped_init)) /* For a nested compound literal, there is no need to reshape since brace elision is not allowed. Even if we decided to allow it, we should add a call to reshape_init in finish_compound_literal, before calling digest_init, so changing this code would still not be necessary. */ - gcc_assert (!BRACE_ENCLOSED_INITIALIZER_P (init)); + gcc_assert (!BRACE_ENCLOSED_INITIALIZER_P (stripped_init)); else { ++d->cur; - gcc_assert (BRACE_ENCLOSED_INITIALIZER_P (init)); + gcc_assert (BRACE_ENCLOSED_INITIALIZER_P (stripped_init)); return reshape_init (type, init, complain); } } @@ -16588,6 +16597,7 @@ { if (cxx_dialect < cxx11) return false; + STRIP_ANY_LOCATION_WRAPPER (decl); return ((VAR_OR_FUNCTION_DECL_P (decl) || TREE_CODE (decl) == TEMPLATE_DECL) && type_uses_auto (TREE_TYPE (decl))); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/decl.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/decl.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/decl.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/decl.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Variables and structures for declaration processing. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/dump.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/dump.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/dump.c 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/dump.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Tree-dumping functionality for intermediate representation. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Written by Mark Mitchell This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/error.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/error.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/error.c 2018-11-29 22:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/error.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Call-backs for C++ error reporting. This code is non-reentrant. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/except.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/except.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/except.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/except.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Handle exceptional things in C++. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. Contributed by Michael Tiemann Rewritten by Mike Stump , based upon an initial re-implementation courtesy Tad Hunt. @@ -132,6 +132,49 @@ 1, integer_zero_node); } +/* Check that user declared function FN is a function and has return + type RTYPE and argument types ARG{1,2,3}TYPE. */ + +static bool +verify_library_fn (tree fn, const char *name, tree rtype, + tree arg1type, tree arg2type, tree arg3type) +{ + if (TREE_CODE (fn) != FUNCTION_DECL + || TREE_CODE (TREE_TYPE (fn)) != FUNCTION_TYPE) + { + bad: + error_at (DECL_SOURCE_LOCATION (fn), "%qs declared incorrectly", name); + return false; + } + tree fntype = TREE_TYPE (fn); + if (!same_type_p (TREE_TYPE (fntype), rtype)) + goto bad; + tree targs = TYPE_ARG_TYPES (fntype); + tree args[3] = { arg1type, arg2type, arg3type }; + for (int i = 0; i < 3 && args[i]; i++) + { + if (targs == NULL_TREE) + goto bad; + if (!same_type_p (TREE_VALUE (targs), args[i])) + { + if (i == 0) + goto bad; + /* Be less strict for second and following arguments, __cxa_throw + needs to be more permissive. */ + if (TYPE_PTROBV_P (TREE_VALUE (targs)) && TYPE_PTROBV_P (args[i])) + /* Both object pointers. */; + else if (TYPE_PTRFN_P (TREE_VALUE (targs)) && TYPE_PTRFN_P (args[i])) + /* Both function pointers. */; + else + goto bad; + } + targs = TREE_CHAIN (targs); + } + if (targs != void_list_node) + goto bad; + return true; +} + /* Find or declare a function NAME, returning RTYPE, taking a single parameter PTYPE, with an empty exception specification. ECF are the library fn flags. If TM_ECF is non-zero, also find or create a @@ -148,21 +191,39 @@ { tree ident = get_identifier (name); tree res = get_global_binding (ident); + tree fntype = NULL_TREE; + tree except = NULL_TREE; if (!res) { - tree type = build_function_type_list (rtype, ptype, NULL_TREE); - tree except = ecf & ECF_NOTHROW ? empty_except_spec : NULL_TREE; - res = push_library_fn (ident, type, except, ecf); - if (tm_ecf && flag_tm) + fntype = build_function_type_list (rtype, ptype, NULL_TREE); + if (ecf & ECF_NOTHROW) + except = empty_except_spec; + res = push_library_fn (ident, fntype, except, ecf); + } + else if (!verify_library_fn (res, name, rtype, ptype, NULL_TREE, NULL_TREE)) + return error_mark_node; + + if (tm_ecf && flag_tm) + { + char *tm_name = concat ("_ITM_", name + 2, NULL_TREE); + tree tm_ident = get_identifier (tm_name); + tree tm_fn = get_global_binding (tm_ident); + if (!tm_fn) { - char *tm_name = concat ("_ITM_", name + 2, NULL_TREE); - tree tm_ident = get_identifier (tm_name); - free (tm_name); - tree tm_fn = get_global_binding (tm_ident); - if (!tm_fn) - tm_fn = push_library_fn (tm_ident, type, except, ecf | tm_ecf); - record_tm_replacement (res, tm_fn); + if (!fntype) + { + fntype = build_function_type_list (rtype, ptype, NULL_TREE); + if (ecf & ECF_NOTHROW) + except = empty_except_spec; + } + tm_fn = push_library_fn (tm_ident, fntype, except, ecf | tm_ecf); } + else if (!verify_library_fn (tm_fn, tm_name, rtype, ptype, + NULL_TREE, NULL_TREE)) + tm_fn = error_mark_node; + free (tm_name); + if (tm_fn != error_mark_node) + record_tm_replacement (res, tm_fn); } return res; } @@ -236,7 +297,8 @@ tree cleanup = cp_build_function_call_vec (end_catch_fn, NULL, tf_warning_or_error); - TREE_NOTHROW (cleanup) = dtor_nothrow (type); + if (cleanup != error_mark_node) + TREE_NOTHROW (cleanup) = dtor_nothrow (type); return cleanup; } @@ -400,7 +462,8 @@ && TYPE_NEEDS_CONSTRUCTING (TREE_TYPE (decl))) { exp = do_get_exception_ptr (); - initialize_handler_parm (decl, exp); + if (exp != error_mark_node) + initialize_handler_parm (decl, exp); finish_expr_stmt (init); } @@ -608,23 +671,44 @@ if (!throw_fn) { - tree name = get_identifier ("__cxa_throw"); - throw_fn = get_global_binding (name); + const char *name = "__cxa_throw"; + tree ident = get_identifier (name); + tree fntype = NULL_TREE; + throw_fn = get_global_binding (ident); if (!throw_fn) { /* Declare void __cxa_throw (void*, void*, void (*)(void*)). */ /* ??? Second argument is supposed to be "std::type_info*". */ - tmp = build_function_type_list (void_type_node, - ptr_type_node, ptr_type_node, - cleanup_type, NULL_TREE); - throw_fn = push_throw_library_fn (name, tmp); + fntype = build_function_type_list (void_type_node, + ptr_type_node, ptr_type_node, + cleanup_type, NULL_TREE); + throw_fn = push_throw_library_fn (ident, fntype); + } + else if (!verify_library_fn (throw_fn, name, void_type_node, + ptr_type_node, ptr_type_node, + cleanup_type)) + throw_fn = error_mark_node; - if (flag_tm) + if (flag_tm && throw_fn != error_mark_node) + { + const char *itm_name = "_ITM_cxa_throw"; + tree itm_ident = get_identifier (itm_name); + tree itm_fn = get_global_binding (itm_ident); + if (!itm_fn) + { + if (!fntype) + fntype + = build_function_type_list (void_type_node, + ptr_type_node, ptr_type_node, + cleanup_type, NULL_TREE); + itm_fn = push_throw_library_fn (itm_ident, fntype); + } + else if (!verify_library_fn (itm_fn, itm_name, void_type_node, + ptr_type_node, ptr_type_node, + cleanup_type)) + itm_fn = error_mark_node; + if (itm_fn != error_mark_node) { - tree itm_name = get_identifier ("_ITM_cxa_throw"); - tree itm_fn = get_global_binding (itm_name); - if (!itm_fn) - itm_fn = push_throw_library_fn (itm_name, tmp); apply_tm_attr (itm_fn, get_identifier ("transaction_pure")); record_tm_replacement (throw_fn, itm_fn); } @@ -658,6 +742,8 @@ /* Allocate the space for the exception. */ allocate_expr = do_allocate_exception (temp_type); + if (allocate_expr == error_mark_node) + return error_mark_node; allocate_expr = get_target_expr (allocate_expr); ptr = TARGET_EXPR_SLOT (allocate_expr); TARGET_EXPR_CLEANUP (allocate_expr) = do_free_exception (ptr); @@ -760,14 +846,21 @@ /* Rethrow current exception. */ if (!rethrow_fn) { - tree name = get_identifier ("__cxa_rethrow"); - rethrow_fn = get_global_binding (name); + const char *name = "__cxa_rethrow"; + tree ident = get_identifier (name); + rethrow_fn = get_global_binding (ident); if (!rethrow_fn) - /* Declare void __cxa_rethrow (void). */ - rethrow_fn = push_throw_library_fn - (name, build_function_type_list (void_type_node, NULL_TREE)); + { + /* Declare void __cxa_rethrow (void). */ + tree fntype + = build_function_type_list (void_type_node, NULL_TREE); + rethrow_fn = push_throw_library_fn (ident, fntype); + } + else if (!verify_library_fn (rethrow_fn, name, void_type_node, + NULL_TREE, NULL_TREE, NULL_TREE)) + rethrow_fn = error_mark_node; - if (flag_tm) + if (flag_tm && rethrow_fn != error_mark_node) apply_tm_attr (rethrow_fn, get_identifier ("transaction_pure")); } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/expr.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/expr.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/expr.c 2018-06-25 06:51:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/expr.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Convert language-specific tree expression to rtl instructions, for GNU compiler. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -263,6 +263,8 @@ if (expr == NULL_TREE) return expr; + STRIP_ANY_LOCATION_WRAPPER (expr); + switch (TREE_CODE (expr)) { case COND_EXPR: diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/friend.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/friend.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/friend.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/friend.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Help friends in C++. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/g++spec.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/g++spec.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/g++spec.c 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/g++spec.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific flags and argument handling of the C++ front end. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/init.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/init.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/init.c 2018-11-13 05:13:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/init.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Handle initialization things in C++. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. @@ -1756,7 +1756,8 @@ { from_array = 1; init = mark_rvalue_use (init); - if (init && DECL_P (init) + if (init + && DECL_P (tree_strip_any_location_wrapper (init)) && !(flags & LOOKUP_ONLYCONVERTING)) { /* Wrap the initializer in a CONSTRUCTOR so that build_vec_init @@ -2604,6 +2605,7 @@ Otherwise, use the size of the entire array as an optimistic estimate (this may lead to false negatives). */ tree adj = TREE_OPERAND (oper, 1); + adj = fold_for_warn (adj); if (CONSTANT_CLASS_P (adj)) adjust += wi::to_offset (convert (ssizetype, adj)); else @@ -2667,11 +2669,13 @@ tree op0 = oper; while (TREE_CODE (op0 = TREE_OPERAND (op0, 0)) == COMPONENT_REF); + STRIP_ANY_LOCATION_WRAPPER (op0); if (VAR_P (op0)) var_decl = op0; oper = TREE_OPERAND (oper, 1); } + STRIP_ANY_LOCATION_WRAPPER (oper); tree opertype = TREE_TYPE (oper); if ((addr_expr || !INDIRECT_TYPE_P (opertype)) && (VAR_P (oper) @@ -2762,6 +2766,9 @@ others. */ offset_int bytes_need; + if (nelts) + nelts = fold_for_warn (nelts); + if (CONSTANT_CLASS_P (size)) bytes_need = wi::to_offset (size); else if (nelts && CONSTANT_CLASS_P (nelts)) @@ -4104,7 +4111,7 @@ tree compound_stmt; int destroy_temps; tree try_block = NULL_TREE; - int num_initialized_elts = 0; + HOST_WIDE_INT num_initialized_elts = 0; bool is_global; tree obase = base; bool xvalue = false; @@ -4539,10 +4546,13 @@ if (e) { - int max = tree_to_shwi (maxindex)+1; - for (; num_initialized_elts < max; ++num_initialized_elts) + HOST_WIDE_INT last = tree_to_shwi (maxindex); + if (num_initialized_elts <= last) { tree field = size_int (num_initialized_elts); + if (num_initialized_elts != last) + field = build2 (RANGE_EXPR, sizetype, field, + size_int (last)); CONSTRUCTOR_APPEND_ELT (const_vec, field, e); } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/lambda.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/lambda.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/lambda.c 2018-11-01 16:06:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/lambda.c 2019-01-02 08:05:16.000000000 +0000 @@ -3,7 +3,7 @@ building RTL. These routines are used both during actual parsing and during the instantiation of template functions. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/lang-specs.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/lang-specs.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/lang-specs.h 2018-10-15 11:36:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/lang-specs.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for specs for C++. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/lex.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/lex.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/lex.c 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/lex.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Separate lexical analyzer for GNU C++. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/logic.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/logic.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/logic.cc 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/logic.cc 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Derivation and subsumption rules for constraints. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Andrew Sutton (andrew.n.sutton@gmail.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/Make-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/Make-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/Make-lang.in 2018-10-19 09:35:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/Make-lang.in 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Top level -*- makefile -*- fragment for GNU C++. -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2019 Free Software Foundation, Inc. #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/mangle.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/mangle.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/mangle.c 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/mangle.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Name mangling for the 3.0 -*- C++ -*- ABI. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Written by Alex Samuel This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/method.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/method.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/method.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/method.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Handle the hair of processing (but not expanding) inline functions. Also manage function and variable name overloading. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. @@ -675,12 +675,9 @@ } else { - tree fields = TYPE_FIELDS (current_class_type); tree member_init_list = NULL_TREE; - int cvquals = cp_type_quals (TREE_TYPE (parm)); int i; tree binfo, base_binfo; - tree init; vec *vbases; /* Initialize all the base-classes with the parameter converted @@ -704,53 +701,58 @@ inh, member_init_list); } - for (; fields; fields = DECL_CHAIN (fields)) + if (!inh) { - tree field = fields; - tree expr_type; + int cvquals = cp_type_quals (TREE_TYPE (parm)); - if (TREE_CODE (field) != FIELD_DECL) - continue; - if (inh) - continue; - - expr_type = TREE_TYPE (field); - if (DECL_NAME (field)) + for (tree fields = TYPE_FIELDS (current_class_type); + fields; fields = DECL_CHAIN (fields)) { - if (VFIELD_NAME_P (DECL_NAME (field))) - continue; - } - else if (ANON_AGGR_TYPE_P (expr_type) && TYPE_FIELDS (expr_type)) - /* Just use the field; anonymous types can't have - nontrivial copy ctors or assignment ops or this - function would be deleted. */; - else - continue; + tree field = fields; + tree expr_type; - /* Compute the type of "init->field". If the copy-constructor - parameter is, for example, "const S&", and the type of - the field is "T", then the type will usually be "const - T". (There are no cv-qualified variants of reference - types.) */ - if (!TYPE_REF_P (expr_type)) - { - int quals = cvquals; + if (TREE_CODE (field) != FIELD_DECL) + continue; - if (DECL_MUTABLE_P (field)) - quals &= ~TYPE_QUAL_CONST; - quals |= cp_type_quals (expr_type); - expr_type = cp_build_qualified_type (expr_type, quals); - } + expr_type = TREE_TYPE (field); + if (DECL_NAME (field)) + { + if (VFIELD_NAME_P (DECL_NAME (field))) + continue; + } + else if (ANON_AGGR_TYPE_P (expr_type) && TYPE_FIELDS (expr_type)) + /* Just use the field; anonymous types can't have + nontrivial copy ctors or assignment ops or this + function would be deleted. */; + else + continue; - init = build3 (COMPONENT_REF, expr_type, parm, field, NULL_TREE); - if (move_p && !TYPE_REF_P (expr_type) - /* 'move' breaks bit-fields, and has no effect for scalars. */ - && !scalarish_type_p (expr_type)) - init = move (init); - init = build_tree_list (NULL_TREE, init); + /* Compute the type of "init->field". If the copy-constructor + parameter is, for example, "const S&", and the type of + the field is "T", then the type will usually be "const + T". (There are no cv-qualified variants of reference + types.) */ + if (!TYPE_REF_P (expr_type)) + { + int quals = cvquals; + + if (DECL_MUTABLE_P (field)) + quals &= ~TYPE_QUAL_CONST; + quals |= cp_type_quals (expr_type); + expr_type = cp_build_qualified_type (expr_type, quals); + } + + tree init = build3 (COMPONENT_REF, expr_type, parm, field, NULL_TREE); + if (move_p && !TYPE_REF_P (expr_type) + /* 'move' breaks bit-fields, and has no effect for scalars. */ + && !scalarish_type_p (expr_type)) + init = move (init); + init = build_tree_list (NULL_TREE, init); - member_init_list = tree_cons (field, init, member_init_list); + member_init_list = tree_cons (field, init, member_init_list); + } } + finish_mem_initializers (member_init_list); } } @@ -891,8 +893,9 @@ /* Reset the source location, we might have been previously deferred, and thus have saved where we were first needed. */ - DECL_SOURCE_LOCATION (fndecl) - = DECL_SOURCE_LOCATION (TYPE_NAME (DECL_CONTEXT (fndecl))); + if (!DECL_INHERITED_CTOR (fndecl)) + DECL_SOURCE_LOCATION (fndecl) + = DECL_SOURCE_LOCATION (TYPE_NAME (DECL_CONTEXT (fndecl))); /* If we've been asked to synthesize a clone, just synthesize the cloned function instead. Doing so will automatically fill in the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/name-lookup.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/name-lookup.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/name-lookup.c 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/name-lookup.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for C++ name lookup routines. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Gabriel Dos Reis This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/name-lookup.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/name-lookup.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/name-lookup.h 2018-06-17 03:58:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/name-lookup.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations for C++ name lookup routines. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Gabriel Dos Reis This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/NEWS gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/NEWS --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/NEWS 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/NEWS 2019-01-02 08:05:16.000000000 +0000 @@ -401,7 +401,7 @@ the exception handling work. -Copyright (C) 1997-2018 Free Software Foundation, Inc. +Copyright (C) 1997-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/operators.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/operators.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/operators.def 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/operators.def 2019-01-02 08:05:16.000000000 +0000 @@ -5,7 +5,7 @@ non-overloadable operators (like the `?:' ternary operator). Written by Mark Mitchell - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/optimize.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/optimize.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/optimize.c 2018-11-13 05:13:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/optimize.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Perform optimizations on tree structure. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Written by Mark Michell (mark@codesourcery.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/parser.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/parser.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/parser.c 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/parser.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* -*- C++ -*- Parser. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Written by Mark Mitchell . This file is part of GCC. @@ -5232,7 +5232,8 @@ if (!cast_p) cp_parser_non_integral_constant_expression (parser, NIC_FLOAT); } - return cp_expr (token->u.value, token->location); + return (cp_expr (token->u.value, token->location) + .maybe_add_location_wrapper ()); case CPP_CHAR_USERDEF: case CPP_CHAR16_USERDEF: @@ -5254,9 +5255,10 @@ /* ??? Should wide strings be allowed when parser->translate_strings_p is false (i.e. in attributes)? If not, we can kill the third argument to cp_parser_string_literal. */ - return cp_parser_string_literal (parser, - parser->translate_strings_p, - true); + return (cp_parser_string_literal (parser, + parser->translate_strings_p, + true) + .maybe_add_location_wrapper ()); case CPP_OPEN_PAREN: /* If we see `( { ' then we are looking at the beginning of @@ -5708,8 +5710,21 @@ id_expression.get_location ())); if (error_msg) cp_parser_error (parser, error_msg); - decl.set_location (id_expression.get_location ()); - decl.set_range (id_expr_token->location, id_expression.get_finish ()); + /* Build a location for an id-expression of the form: + ::ns::id + ~~~~~~^~ + or: + id + ^~ + i.e. from the start of the first token to the end of the final + token, with the caret at the start of the unqualified-id. */ + location_t caret_loc = get_pure_location (id_expression.get_location ()); + location_t start_loc = get_start (id_expr_token->location); + location_t finish_loc = get_finish (id_expression.get_location ()); + location_t combined_loc + = make_location (caret_loc, start_loc, finish_loc); + + decl.set_location (combined_loc); return decl; } @@ -7169,8 +7184,10 @@ is_member_access = false; + tree stripped_expression + = tree_strip_any_location_wrapper (postfix_expression); is_builtin_constant_p - = DECL_IS_BUILTIN_CONSTANT_P (postfix_expression); + = DECL_IS_BUILTIN_CONSTANT_P (stripped_expression); if (is_builtin_constant_p) { /* The whole point of __builtin_constant_p is to allow @@ -8363,18 +8380,22 @@ case NEGATE_EXPR: /* Immediately fold negation of a constant, unless the constant is 0 (since -0 == 0) or it would overflow. */ - if (unary_operator == NEGATE_EXPR && op_ttype == CPP_NUMBER - && CONSTANT_CLASS_P (cast_expression) - && !integer_zerop (cast_expression) - && !TREE_OVERFLOW (cast_expression)) - { - tree folded = fold_build1 (unary_operator, - TREE_TYPE (cast_expression), - cast_expression); - if (CONSTANT_CLASS_P (folded) && !TREE_OVERFLOW (folded)) + if (unary_operator == NEGATE_EXPR && op_ttype == CPP_NUMBER) + { + tree stripped_expr + = tree_strip_any_location_wrapper (cast_expression); + if (CONSTANT_CLASS_P (stripped_expr) + && !integer_zerop (stripped_expr) + && !TREE_OVERFLOW (stripped_expr)) { - expression = cp_expr (folded, loc); - break; + tree folded = fold_build1 (unary_operator, + TREE_TYPE (stripped_expr), + stripped_expr); + if (CONSTANT_CLASS_P (folded) && !TREE_OVERFLOW (folded)) + { + expression = maybe_wrap_with_location (folded, loc); + break; + } } } /* Fall through. */ @@ -8489,6 +8510,8 @@ if (!oper || oper == error_mark_node) oper = cp_parser_unary_expression (parser); + STRIP_ANY_LOCATION_WRAPPER (oper); + /* Go back to evaluating expressions. */ --cp_unevaluated_operand; --c_inhibit_evaluation_warnings; @@ -9508,7 +9531,7 @@ || (TREE_CODE (TREE_TYPE (TREE_OPERAND (current.lhs, 0))) != BOOLEAN_TYPE)))) /* Avoid warning for !!b == y where b is boolean. */ - && (!DECL_P (current.lhs) + && (!DECL_P (tree_strip_any_location_wrapper (current.lhs)) || TREE_TYPE (current.lhs) == NULL_TREE || TREE_CODE (TREE_TYPE (current.lhs)) != BOOLEAN_TYPE)) warn_logical_not_parentheses (current.loc, current.tree_type, @@ -9546,7 +9569,8 @@ } else { - current.lhs = build_x_binary_op (combined_loc, current.tree_type, + op_location_t op_loc (current.loc, combined_loc); + current.lhs = build_x_binary_op (op_loc, current.tree_type, current.lhs, current.lhs_type, rhs, rhs_type, &overload, complain_flags (decltype_p)); @@ -14546,6 +14570,7 @@ ++c_inhibit_evaluation_warnings; expr = cp_parser_decltype_expr (parser, id_expression_or_member_access_p); + STRIP_ANY_LOCATION_WRAPPER (expr); /* Go back to evaluating expressions. */ --cp_unevaluated_operand; @@ -14923,7 +14948,9 @@ vec = cp_parser_parenthesized_expression_list (parser, non_attr, /*cast_p=*/false, /*allow_expansion_p=*/true, - /*non_constant_p=*/NULL); + /*non_constant_p=*/NULL, + /*close_paren_loc=*/NULL, + /*wrap_locations_p=*/true); if (vec == NULL) return error_mark_node; expression_list = build_tree_list_vec (vec); @@ -15378,8 +15405,16 @@ const char *name = IDENTIFIER_POINTER (id); id = cp_literal_operator_id (name); } - start_loc = make_location (start_loc, start_loc, get_finish (end_loc)); - return cp_expr (id, start_loc); + /* Generate a location of the form: + "" _suffix_identifier + ^~~~~~~~~~~~~~~~~~~~~ + with caret == start at the start token, finish at the end of the + suffix identifier. */ + location_t finish_loc + = get_finish (cp_lexer_previous_token (parser->lexer)->location); + location_t combined_loc + = make_location (start_loc, start_loc, finish_loc); + return cp_expr (id, combined_loc); } default: @@ -15464,6 +15499,11 @@ { tree parameter_list = NULL_TREE; + /* Don't create wrapper nodes within a template-parameter-list, + since we don't want to have different types based on the + spelling location of constants and decls within them. */ + auto_suppress_location_wrappers sentinel; + begin_template_parm_list (); /* The loop below parses the template parms. We first need to know @@ -16187,16 +16227,18 @@ is_declaration, tag_type, &is_identifier); + + /* Push any access checks inside the firewall we're about to create. */ + vec *checks = get_deferred_access_checks (); + pop_deferring_access_checks (); if (templ == error_mark_node || is_identifier) - { - pop_deferring_access_checks (); - return templ; - } + return templ; /* Since we're going to preserve any side-effects from this parse, set up a firewall to protect our callers from cp_parser_commit_to_tentative_parse in the template arguments. */ tentative_firewall firewall (parser); + reopen_deferring_access_checks (checks); /* If we find the sequence `[:' after a template-name, it's probably a digraph-typo for `< ::'. Substitute the tokens and check if we can @@ -16634,6 +16676,9 @@ bool saved_ice_p; bool saved_non_ice_p; + /* Don't create location wrapper nodes within a template-argument-list. */ + auto_suppress_location_wrappers sentinel; + saved_in_template_argument_list_p = parser->in_template_argument_list_p; parser->in_template_argument_list_p = true; /* Even if the template-id appears in an integral @@ -19635,12 +19680,9 @@ tree clobbers = NULL_TREE; tree labels = NULL_TREE; tree asm_stmt; - bool volatile_p = false; bool extended_p = false; bool invalid_inputs_p = false; bool invalid_outputs_p = false; - bool inline_p = false; - bool goto_p = false; required_token missing = RT_NONE; /* Look for the `asm' keyword. */ @@ -19653,47 +19695,66 @@ cp_function_chain->invalid_constexpr = true; } - /* See if the next token is `volatile'. */ - if (cp_parser_allow_gnu_extensions_p (parser)) - for (bool done = false; !done ; ) - switch (cp_lexer_peek_token (parser->lexer)->keyword) - { - case RID_VOLATILE: - if (!volatile_p) - { - /* Remember that we saw the `volatile' keyword. */ - volatile_p = true; - /* Consume the token. */ - cp_lexer_consume_token (parser->lexer); - } - else - done = true; - break; - case RID_INLINE: - if (!inline_p && parser->in_function_body) - { - /* Remember that we saw the `inline' keyword. */ - inline_p = true; - /* Consume the token. */ - cp_lexer_consume_token (parser->lexer); - } - else - done = true; - break; - case RID_GOTO: - if (!goto_p && parser->in_function_body) - { - /* Remember that we saw the `goto' keyword. */ - goto_p = true; - /* Consume the token. */ - cp_lexer_consume_token (parser->lexer); - } - else - done = true; - break; - default: - done = true; - } + /* Handle the asm-qualifier-list. */ + location_t volatile_loc = UNKNOWN_LOCATION; + location_t inline_loc = UNKNOWN_LOCATION; + location_t goto_loc = UNKNOWN_LOCATION; + + if (cp_parser_allow_gnu_extensions_p (parser) && parser->in_function_body) + for (;;) + { + cp_token *token = cp_lexer_peek_token (parser->lexer); + location_t loc = token->location; + switch (cp_lexer_peek_token (parser->lexer)->keyword) + { + case RID_VOLATILE: + if (volatile_loc) + { + error_at (loc, "duplicate asm qualifier %qT", token->u.value); + inform (volatile_loc, "first seen here"); + } + else + volatile_loc = loc; + cp_lexer_consume_token (parser->lexer); + continue; + + case RID_INLINE: + if (inline_loc) + { + error_at (loc, "duplicate asm qualifier %qT", token->u.value); + inform (inline_loc, "first seen here"); + } + else + inline_loc = loc; + cp_lexer_consume_token (parser->lexer); + continue; + + case RID_GOTO: + if (goto_loc) + { + error_at (loc, "duplicate asm qualifier %qT", token->u.value); + inform (goto_loc, "first seen here"); + } + else + goto_loc = loc; + cp_lexer_consume_token (parser->lexer); + continue; + + case RID_CONST: + case RID_RESTRICT: + error_at (loc, "%qT is not an asm qualifier", token->u.value); + cp_lexer_consume_token (parser->lexer); + continue; + + default: + break; + } + break; + } + + bool volatile_p = (volatile_loc != UNKNOWN_LOCATION); + bool inline_p = (inline_loc != UNKNOWN_LOCATION); + bool goto_p = (goto_loc != UNKNOWN_LOCATION); /* Look for the opening `('. */ if (!cp_parser_require (parser, CPP_OPEN_PAREN, RT_OPEN_PAREN)) @@ -19786,8 +19847,7 @@ CPP_CLOSE_PAREN)) clobbers = cp_parser_asm_clobber_list (parser); } - else if (goto_p - && cp_lexer_next_token_is (parser->lexer, CPP_SCOPE)) + else if (goto_p && cp_lexer_next_token_is (parser->lexer, CPP_SCOPE)) /* The labels are coming next. */ labels_p = true; @@ -22311,6 +22371,9 @@ else default_argument = NULL_TREE; + if (default_argument) + STRIP_ANY_LOCATION_WRAPPER (default_argument); + /* Generate a location for the parameter, ranging from the start of the initial token to the end of the final token (using input_location for the latter, set up by cp_lexer_set_source_position_from_token when @@ -23104,7 +23167,7 @@ cp_ensure_no_oacc_routine (parser); /* Issue an error message if type-definitions are forbidden here. */ - cp_parser_check_type_definition (parser); + bool type_definition_ok_p = cp_parser_check_type_definition (parser); /* Remember that we are defining one more class. */ ++parser->num_classes_being_defined; /* Inside the class, surrounding template-parameter-lists do not @@ -23299,7 +23362,7 @@ cp_default_arg_entry *e; tree save_ccp, save_ccr; - if (any_erroneous_template_args_p (type)) + if (!type_definition_ok_p || any_erroneous_template_args_p (type)) { /* Skip default arguments, NSDMIs, etc, in order to improve error recovery (c++/71169, c++/71832). */ @@ -25659,6 +25722,10 @@ tree attribute_list = NULL_TREE; bool save_translate_strings_p = parser->translate_strings_p; + /* Don't create wrapper nodes within attributes: the + handlers don't know how to handle them. */ + auto_suppress_location_wrappers sentinel; + parser->translate_strings_p = false; while (true) { @@ -26104,6 +26171,10 @@ tree attr_specs = NULL_TREE; tree attr_last = NULL_TREE; + /* Don't create wrapper nodes within attributes: the + handlers don't know how to handle them. */ + auto_suppress_location_wrappers sentinel; + while (true) { tree attr_spec = cp_parser_std_attribute_spec (parser); @@ -34878,6 +34949,9 @@ bool first = true; cp_token *token = NULL; + /* Don't create location wrapper nodes within OpenMP clauses. */ + auto_suppress_location_wrappers sentinel; + while (cp_lexer_next_token_is_not (parser->lexer, CPP_PRAGMA_EOL)) { pragma_omp_clause c_kind; @@ -36595,6 +36669,10 @@ } loc = cp_lexer_consume_token (parser->lexer)->location; + /* Don't create location wrapper nodes within an OpenMP "for" + statement. */ + auto_suppress_location_wrappers sentinel; + matching_parens parens; if (!parens.require_open (parser)) return NULL; @@ -39166,6 +39244,8 @@ else { cp_parser_parse_tentatively (parser); + /* Don't create location wrapper nodes here. */ + auto_suppress_location_wrappers sentinel; tree fn_name = cp_parser_id_expression (parser, /*template_p=*/false, /*check_dependency_p=*/true, /*template_p=*/NULL, diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/parser.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/parser.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/parser.h 2018-10-15 11:36:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/parser.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Data structures and function exported by the C++ Parser. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/pt.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/pt.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/pt.c 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/pt.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Handle parameterized types (templates) for GNU -*- C++ -*-. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Written by Ken Raeburn (raeburn@cygnus.com) while at Watchmaker Computing. Rewritten by Jason Merrill (jason@cygnus.com). @@ -6196,6 +6196,7 @@ -- the address of an object or function with external [C++11: or internal] linkage. */ + STRIP_ANY_LOCATION_WRAPPER (fn_no_ptr); if (TREE_CODE (fn_no_ptr) != FUNCTION_DECL) { if (complain & tf_error) @@ -6774,7 +6775,7 @@ to a null value, but otherwise still need to be of a specific form. */ if (cxx_dialect >= cxx11) { - if (TREE_CODE (expr) == PTRMEM_CST) + if (TREE_CODE (expr) == PTRMEM_CST && TYPE_PTRMEM_P (type)) /* A PTRMEM_CST is already constant, and a valid template argument for a parameter of pointer to member type, we just want to leave it in that form rather than lower it to a @@ -8019,6 +8020,9 @@ if (invalid_nontype_parm_type_p (t, complain)) return error_mark_node; + if (t != TREE_TYPE (parm)) + t = canonicalize_type_argument (t, complain); + if (!type_dependent_expression_p (orig_arg) && !uses_template_parms (t)) /* We used to call digest_init here. However, digest_init @@ -12753,14 +12757,14 @@ finish_lambda_scope (); + /* Make sure the default argument is reasonable. */ + arg = check_default_argument (type, arg, complain); + if (errorcount+sorrycount > errs && (complain & tf_warning_or_error)) inform (input_location, " when instantiating default argument for call to %qD", fn); - /* Make sure the default argument is reasonable. */ - arg = check_default_argument (type, arg, complain); - pop_access_scope (fn); pop_from_top_level (); @@ -14151,9 +14155,17 @@ } } else - new_specs = tsubst_copy_and_build - (expr, args, complain, in_decl, /*function_p=*/false, - /*integral_constant_expression_p=*/true); + { + if (DEFERRED_NOEXCEPT_SPEC_P (specs)) + { + args = add_to_template_args (DEFERRED_NOEXCEPT_ARGS (expr), + args); + expr = DEFERRED_NOEXCEPT_PATTERN (expr); + } + new_specs = tsubst_copy_and_build + (expr, args, complain, in_decl, /*function_p=*/false, + /*integral_constant_expression_p=*/true); + } new_specs = build_noexcept_spec (new_specs, complain); } else if (specs) @@ -16903,8 +16915,9 @@ tree inst; if (!DECL_PACK_P (decl)) { - inst = lookup_name_real (DECL_NAME (decl), 0, 0, - /*block_p=*/true, 0, LOOKUP_HIDDEN); + inst = lookup_name_real (DECL_NAME (decl), /*prefer_type*/0, + /*nonclass*/1, /*block_p=*/true, + /*ns_only*/0, LOOKUP_HIDDEN); gcc_assert (inst != decl && is_capture_proxy (inst)); } else if (is_normal_capture_proxy (decl)) @@ -27212,7 +27225,8 @@ complain); else if (AUTO_IS_DECLTYPE (auto_node)) { - bool id = (DECL_P (init) + tree stripped_init = tree_strip_any_location_wrapper (init); + bool id = (DECL_P (stripped_init) || ((TREE_CODE (init) == COMPONENT_REF || TREE_CODE (init) == SCOPE_REF) && !REF_PARENTHESIZED_P (init))); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/ptree.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/ptree.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/ptree.c 2018-01-23 21:29:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/ptree.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Prints out trees in human readable form. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/repo.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/repo.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/repo.c 2018-05-21 12:22:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/repo.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Code to maintain a C++ template repository. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. Contributed by Jason Merrill (jason@cygnus.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/rtti.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/rtti.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/rtti.c 2018-10-15 11:36:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/rtti.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* RunTime Type Identification - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. Mostly written by Jason Merrill (jason@cygnus.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/search.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/search.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/search.c 2018-08-22 07:30:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/search.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Breadth-first and depth-first routines for searching multiple-inheritance lattice for GNU C++. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/semantics.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/semantics.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/semantics.c 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/semantics.c 2019-01-02 08:05:16.000000000 +0000 @@ -3,7 +3,7 @@ building RTL. These routines are used both during actual parsing and during the instantiation of template functions. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Written by Mark Mitchell (mmitchell@usa.net) based on code found formerly in parse.y and pt.c. @@ -1742,7 +1742,8 @@ if (cp_unevaluated_operand) return expr; - if (!DECL_P (expr) && TREE_CODE (expr) != COMPONENT_REF + if (!DECL_P (tree_strip_any_location_wrapper (expr)) + && TREE_CODE (expr) != COMPONENT_REF && TREE_CODE (expr) != SCOPE_REF) return expr; @@ -1805,8 +1806,9 @@ enclosed in parentheses. */ PTRMEM_OK_P (expr) = 0; - if (TREE_CODE (expr) == STRING_CST) - PAREN_STRING_LITERAL_P (expr) = 1; + tree stripped_expr = tree_strip_any_location_wrapper (expr); + if (TREE_CODE (stripped_expr) == STRING_CST) + PAREN_STRING_LITERAL_P (stripped_expr) = 1; expr = cp_expr (force_paren_expr (expr), expr.get_location ()); @@ -2299,19 +2301,22 @@ return false; } -/* Perform Koenig lookup. FN is the postfix-expression representing +/* Perform Koenig lookup. FN_EXPR is the postfix-expression representing the function (or functions) to call; ARGS are the arguments to the call. Returns the functions to be considered by overload resolution. */ cp_expr -perform_koenig_lookup (cp_expr fn, vec *args, +perform_koenig_lookup (cp_expr fn_expr, vec *args, tsubst_flags_t complain) { tree identifier = NULL_TREE; tree functions = NULL_TREE; tree tmpl_args = NULL_TREE; bool template_id = false; - location_t loc = fn.get_location (); + location_t loc = fn_expr.get_location (); + tree fn = fn_expr.get_value (); + + STRIP_ANY_LOCATION_WRAPPER (fn); if (TREE_CODE (fn) == TEMPLATE_ID_EXPR) { @@ -2351,7 +2356,7 @@ if (fn && template_id && fn != error_mark_node) fn = build2 (TEMPLATE_ID_EXPR, unknown_type_node, fn, tmpl_args); - return fn; + return cp_expr (fn, loc); } /* Generate an expression for `FN (ARGS)'. This may change the @@ -2382,6 +2387,8 @@ it so that we can tell this is a call to a known function. */ fn = maybe_undo_parenthesized_ref (fn); + STRIP_ANY_LOCATION_WRAPPER (fn); + orig_fn = fn; if (processing_template_decl) @@ -3523,20 +3530,20 @@ the use of "this" explicit. Upon return, *IDK will be filled in appropriately. */ -cp_expr -finish_id_expression (tree id_expression, - tree decl, - tree scope, - cp_id_kind *idk, - bool integral_constant_expression_p, - bool allow_non_integral_constant_expression_p, - bool *non_integral_constant_expression_p, - bool template_p, - bool done, - bool address_p, - bool template_arg_p, - const char **error_msg, - location_t location) +static cp_expr +finish_id_expression_1 (tree id_expression, + tree decl, + tree scope, + cp_id_kind *idk, + bool integral_constant_expression_p, + bool allow_non_integral_constant_expression_p, + bool *non_integral_constant_expression_p, + bool template_p, + bool done, + bool address_p, + bool template_arg_p, + const char **error_msg, + location_t location) { decl = strip_using_decl (decl); @@ -3841,6 +3848,34 @@ return cp_expr (decl, location); } +/* As per finish_id_expression_1, but adding a wrapper node + around the result if needed to express LOCATION. */ + +cp_expr +finish_id_expression (tree id_expression, + tree decl, + tree scope, + cp_id_kind *idk, + bool integral_constant_expression_p, + bool allow_non_integral_constant_expression_p, + bool *non_integral_constant_expression_p, + bool template_p, + bool done, + bool address_p, + bool template_arg_p, + const char **error_msg, + location_t location) +{ + cp_expr result + = finish_id_expression_1 (id_expression, decl, scope, idk, + integral_constant_expression_p, + allow_non_integral_constant_expression_p, + non_integral_constant_expression_p, + template_p, done, address_p, template_arg_p, + error_msg, location); + return result.maybe_add_location_wrapper (); +} + /* Implement the __typeof keyword: Return the type of EXPR, suitable for use as a type-specifier. */ @@ -9190,7 +9225,8 @@ /* Fold the expression and convert it to a boolean value. */ condition = perform_implicit_conversion_flags (boolean_type_node, condition, complain, LOOKUP_NORMAL); - condition = fold_non_dependent_expr (condition, complain); + condition = fold_non_dependent_expr (condition, complain, + /*manifestly_const_eval=*/true); if (TREE_CODE (condition) == INTEGER_CST && !integer_zerop (condition)) /* Do nothing; the condition is satisfied. */ @@ -9766,12 +9802,12 @@ capture_decltype (tree decl) { tree lam = CLASSTYPE_LAMBDA_EXPR (DECL_CONTEXT (current_function_decl)); - /* FIXME do lookup instead of list walk? */ - tree cap = value_member (decl, LAMBDA_EXPR_CAPTURE_LIST (lam)); + tree cap = lookup_name_real (DECL_NAME (decl), /*type*/0, /*nonclass*/1, + /*block_p=*/true, /*ns*/0, LOOKUP_HIDDEN); tree type; - if (cap) - type = TREE_TYPE (TREE_PURPOSE (cap)); + if (cap && is_capture_proxy (cap)) + type = TREE_TYPE (cap); else switch (LAMBDA_EXPR_DEFAULT_CAPTURE_MODE (lam)) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/tree.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/tree.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/tree.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/tree.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Language-dependent node constructors for parse phase of GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. @@ -377,6 +377,7 @@ tree cp_stabilize_reference (tree ref) { + STRIP_ANY_LOCATION_WRAPPER (ref); switch (TREE_CODE (ref)) { case NON_DEPENDENT_EXPR: @@ -421,6 +422,7 @@ bool builtin_valid_in_constant_expr_p (const_tree decl) { + STRIP_ANY_LOCATION_WRAPPER (decl); if (TREE_CODE (decl) != FUNCTION_DECL) /* Not a function. */ return false; @@ -1715,6 +1717,8 @@ if (t == NULL_TREE || t == error_mark_node) return t; + STRIP_ANY_LOCATION_WRAPPER (t); + if (DECL_P (t) || CONSTANT_CLASS_P (t)) return t; @@ -2369,6 +2373,8 @@ int is_overloaded_fn (tree x) { + STRIP_ANY_LOCATION_WRAPPER (x); + /* A baselink is also considered an overloaded function. */ if (TREE_CODE (x) == OFFSET_REF || TREE_CODE (x) == COMPONENT_REF) @@ -2417,6 +2423,8 @@ tree maybe_get_fns (tree from) { + STRIP_ANY_LOCATION_WRAPPER (from); + /* A baselink is also considered an overloaded function. */ if (TREE_CODE (from) == OFFSET_REF || TREE_CODE (from) == COMPONENT_REF) @@ -5527,6 +5535,14 @@ ASSERT_EQ (clk_rvalueref, lvalue_kind (rvalue_ref_of_parm)); tree rvalue_ref_of_wrapped_parm = move (wrapped_parm); ASSERT_EQ (clk_rvalueref, lvalue_kind (rvalue_ref_of_wrapped_parm)); + + /* Verify lvalue_p. */ + ASSERT_FALSE (lvalue_p (int_cst)); + ASSERT_FALSE (lvalue_p (wrapped_int_cst)); + ASSERT_TRUE (lvalue_p (parm)); + ASSERT_TRUE (lvalue_p (wrapped_parm)); + ASSERT_FALSE (lvalue_p (rvalue_ref_of_parm)); + ASSERT_FALSE (lvalue_p (rvalue_ref_of_wrapped_parm)); } /* Run all of the selftests within this file. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/typeck2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/typeck2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/typeck2.c 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/typeck2.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Report error messages, build initializers, and perform some front-end optimizations for C++ compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. @@ -460,14 +460,19 @@ if (TREE_CODE (type) == ERROR_MARK) return; - if (value != 0 && (VAR_P (value) - || TREE_CODE (value) == PARM_DECL - || TREE_CODE (value) == FIELD_DECL)) - { - complained = emit_diagnostic (diag_kind, DECL_SOURCE_LOCATION (value), 0, - "%qD has incomplete type", value); - is_decl = true; - } + if (value) + { + STRIP_ANY_LOCATION_WRAPPER (value); + + if (VAR_P (value) + || TREE_CODE (value) == PARM_DECL + || TREE_CODE (value) == FIELD_DECL) + { + complained = emit_diagnostic (diag_kind, DECL_SOURCE_LOCATION (value), 0, + "%qD has incomplete type", value); + is_decl = true; + } + } retry: /* We must print an error message. Be clever about what it says. */ @@ -750,7 +755,7 @@ init = TARGET_EXPR_INITIAL (init); if (TREE_CODE (init) == CONSTRUCTOR) { - init = cp_fully_fold (init); + init = cp_fully_fold_init (init); code = push_stmt_list (); if (split_nonconstant_init_1 (dest, init)) init = NULL_TREE; @@ -858,7 +863,7 @@ if (!const_init) value = oldval; } - value = cp_fully_fold (value); + value = cp_fully_fold_init (value); /* Handle aggregate NSDMI in non-constant initializers, too. */ value = replace_placeholders (value, decl); @@ -1045,12 +1050,16 @@ complain)) return error_mark_node; + location_t loc = cp_expr_loc_or_loc (init, input_location); + + tree stripped_init = init; + /* Strip NON_LVALUE_EXPRs since we aren't using as an lvalue (g++.old-deja/g++.law/casts2.C). */ if (TREE_CODE (init) == NON_LVALUE_EXPR) - init = TREE_OPERAND (init, 0); + stripped_init = TREE_OPERAND (init, 0); - location_t loc = cp_expr_loc_or_loc (init, input_location); + stripped_init = tree_strip_any_location_wrapper (stripped_init); /* Initialization of an array of chars from a string constant. The initializer can be optionally enclosed in braces, but reshape_init has already removed @@ -1065,7 +1074,7 @@ tree typ1 = TYPE_MAIN_VARIANT (TREE_TYPE (type)); if (char_type_p (typ1) /*&& init */ - && TREE_CODE (init) == STRING_CST) + && TREE_CODE (stripped_init) == STRING_CST) { tree char_type = TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (init))); @@ -1113,6 +1122,14 @@ { init = copy_node (init); TREE_TYPE (init) = type; + /* If we have a location wrapper, then also copy the wrapped + node, and update the copy's type. */ + if (location_wrapper_p (init)) + { + stripped_init = copy_node (stripped_init); + TREE_OPERAND (init, 0) = stripped_init; + TREE_TYPE (stripped_init) = type; + } } if (TYPE_DOMAIN (type) && TREE_CONSTANT (TYPE_SIZE (type))) { @@ -1123,12 +1140,13 @@ because it's ok to ignore the terminating null char that is counted in the length of the constant, but in C++ this would be invalid. */ - if (size < TREE_STRING_LENGTH (init)) + if (size < TREE_STRING_LENGTH (stripped_init)) { permerror (loc, "initializer-string for array " "of chars is too long"); - init = build_string (size, TREE_STRING_POINTER (init)); + init = build_string (size, + TREE_STRING_POINTER (stripped_init)); TREE_TYPE (init) = type; } } @@ -1137,7 +1155,7 @@ } /* Handle scalar types (including conversions) and references. */ - if ((code != COMPLEX_TYPE || BRACE_ENCLOSED_INITIALIZER_P (init)) + if ((code != COMPLEX_TYPE || BRACE_ENCLOSED_INITIALIZER_P (stripped_init)) && (SCALAR_TYPE_P (type) || code == REFERENCE_TYPE)) { if (nested) @@ -1162,23 +1180,23 @@ the object is initialized from that element." */ if (flag_checking && cxx_dialect >= cxx11 - && BRACE_ENCLOSED_INITIALIZER_P (init) - && CONSTRUCTOR_NELTS (init) == 1 + && BRACE_ENCLOSED_INITIALIZER_P (stripped_init) + && CONSTRUCTOR_NELTS (stripped_init) == 1 && ((CLASS_TYPE_P (type) && !CLASSTYPE_NON_AGGREGATE (type)) || VECTOR_TYPE_P (type))) { - tree elt = CONSTRUCTOR_ELT (init, 0)->value; + tree elt = CONSTRUCTOR_ELT (stripped_init, 0)->value; if (reference_related_p (type, TREE_TYPE (elt))) /* We should have fixed this in reshape_init. */ gcc_unreachable (); } - if (BRACE_ENCLOSED_INITIALIZER_P (init) + if (BRACE_ENCLOSED_INITIALIZER_P (stripped_init) && !TYPE_NON_AGGREGATE_CLASS (type)) - return process_init_constructor (type, init, nested, complain); + return process_init_constructor (type, stripped_init, nested, complain); else { - if (COMPOUND_LITERAL_P (init) && code == ARRAY_TYPE) + if (COMPOUND_LITERAL_P (stripped_init) && code == ARRAY_TYPE) { if (complain & tf_error) error_at (loc, "cannot initialize aggregate of type %qT with " @@ -1188,12 +1206,12 @@ } if (code == ARRAY_TYPE - && !BRACE_ENCLOSED_INITIALIZER_P (init)) + && !BRACE_ENCLOSED_INITIALIZER_P (stripped_init)) { /* Allow the result of build_array_copy and of build_value_init_noctor. */ - if ((TREE_CODE (init) == VEC_INIT_EXPR - || TREE_CODE (init) == CONSTRUCTOR) + if ((TREE_CODE (stripped_init) == VEC_INIT_EXPR + || TREE_CODE (stripped_init) == CONSTRUCTOR) && (same_type_ignoring_top_level_qualifiers_p (type, TREE_TYPE (init)))) return init; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/typeck.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/typeck.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/typeck.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/typeck.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Build expressions with type checking for C++ compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. @@ -1682,6 +1682,8 @@ return e; } + STRIP_ANY_LOCATION_WRAPPER (e); + /* To get the size of a static data member declared as an array of unknown bound, we need to instantiate it. */ if (VAR_P (e) @@ -1754,6 +1756,8 @@ return e; } + STRIP_ANY_LOCATION_WRAPPER (e); + e = mark_type_use (e); if (VAR_P (e)) @@ -1944,6 +1948,12 @@ (CONST_CAST_TREE (exp))); return NULL_TREE; + case VIEW_CONVERT_EXPR: + if (location_wrapper_p (exp)) + return is_bitfield_expr_with_lowered_type (TREE_OPERAND (exp, 0)); + else + return NULL_TREE; + CASE_CONVERT: if (TYPE_MAIN_VARIANT (TREE_TYPE (TREE_OPERAND (exp, 0))) == TYPE_MAIN_VARIANT (TREE_TYPE (exp))) @@ -3415,6 +3425,8 @@ pointer arithmetic.) */ idx = cp_perform_integral_promotions (idx, complain); + idx = maybe_constant_value (idx); + /* An array that is indexed by a non-constant cannot be stored in a register; we must be able to do address arithmetic on its address. @@ -4116,7 +4128,7 @@ ARG2_CODE as ERROR_MARK. */ tree -build_x_binary_op (location_t loc, enum tree_code code, tree arg1, +build_x_binary_op (const op_location_t &loc, enum tree_code code, tree arg1, enum tree_code arg1_code, tree arg2, enum tree_code arg2_code, tree *overload_p, tsubst_flags_t complain) @@ -4305,7 +4317,7 @@ multiple inheritance, and deal with pointer to member functions. */ tree -cp_build_binary_op (location_t location, +cp_build_binary_op (const op_location_t &location, enum tree_code code, tree orig_op0, tree orig_op1, tsubst_flags_t complain) { @@ -4561,20 +4573,23 @@ type0 = TREE_TYPE (type0); if (!TYPE_P (type1)) type1 = TREE_TYPE (type1); - if (INDIRECT_TYPE_P (type0) && same_type_p (TREE_TYPE (type0), type1) - && !(TREE_CODE (first_arg) == PARM_DECL - && DECL_ARRAY_PARAMETER_P (first_arg) - && warn_sizeof_array_argument) - && (complain & tf_warning)) + if (INDIRECT_TYPE_P (type0) && same_type_p (TREE_TYPE (type0), type1)) { - auto_diagnostic_group d; - if (warning_at (location, OPT_Wsizeof_pointer_div, - "division % does " - "not compute the number of array elements", - type0, type1)) - if (DECL_P (first_arg)) - inform (DECL_SOURCE_LOCATION (first_arg), - "first % operand was declared here"); + STRIP_ANY_LOCATION_WRAPPER (first_arg); + if (!(TREE_CODE (first_arg) == PARM_DECL + && DECL_ARRAY_PARAMETER_P (first_arg) + && warn_sizeof_array_argument) + && (complain & tf_warning)) + { + auto_diagnostic_group d; + if (warning_at (location, OPT_Wsizeof_pointer_div, + "division % does " + "not compute the number of array elements", + type0, type1)) + if (DECL_P (first_arg)) + inform (DECL_SOURCE_LOCATION (first_arg), + "first % operand was declared here"); + } } } @@ -4596,15 +4611,18 @@ if (!(tcode0 == INTEGER_TYPE && tcode1 == INTEGER_TYPE)) resultcode = RDIV_EXPR; else - /* When dividing two signed integers, we have to promote to int. - unless we divide by a constant != -1. Note that default - conversion will have been performed on the operands at this - point, so we have to dig out the original type to find out if - it was unsigned. */ - shorten = ((TREE_CODE (op0) == NOP_EXPR - && TYPE_UNSIGNED (TREE_TYPE (TREE_OPERAND (op0, 0)))) - || (TREE_CODE (op1) == INTEGER_CST - && ! integer_all_onesp (op1))); + { + /* When dividing two signed integers, we have to promote to int. + unless we divide by a constant != -1. Note that default + conversion will have been performed on the operands at this + point, so we have to dig out the original type to find out if + it was unsigned. */ + tree stripped_op1 = tree_strip_any_location_wrapper (op1); + shorten = ((TREE_CODE (op0) == NOP_EXPR + && TYPE_UNSIGNED (TREE_TYPE (TREE_OPERAND (op0, 0)))) + || (TREE_CODE (stripped_op1) == INTEGER_CST + && ! integer_all_onesp (stripped_op1))); + } common = 1; } @@ -4638,10 +4656,11 @@ on some targets, since the modulo instruction is undefined if the quotient can't be represented in the computation mode. We shorten only if unsigned or if dividing by something we know != -1. */ + tree stripped_op1 = tree_strip_any_location_wrapper (op1); shorten = ((TREE_CODE (op0) == NOP_EXPR && TYPE_UNSIGNED (TREE_TYPE (TREE_OPERAND (op0, 0)))) - || (TREE_CODE (op1) == INTEGER_CST - && ! integer_all_onesp (op1))); + || (TREE_CODE (stripped_op1) == INTEGER_CST + && ! integer_all_onesp (stripped_op1))); common = 1; } break; @@ -4842,13 +4861,17 @@ && (FLOAT_TYPE_P (type0) || FLOAT_TYPE_P (type1))) warning (OPT_Wfloat_equal, "comparing floating point with == or != is unsafe"); - if ((complain & tf_warning) - && ((TREE_CODE (orig_op0) == STRING_CST + if (complain & tf_warning) + { + tree stripped_orig_op0 = tree_strip_any_location_wrapper (orig_op0); + tree stripped_orig_op1 = tree_strip_any_location_wrapper (orig_op1); + if ((TREE_CODE (stripped_orig_op0) == STRING_CST && !integer_zerop (cp_fully_fold (op1))) - || (TREE_CODE (orig_op1) == STRING_CST - && !integer_zerop (cp_fully_fold (op0))))) - warning (OPT_Waddress, "comparison with string literal results " - "in unspecified behavior"); + || (TREE_CODE (stripped_orig_op1) == STRING_CST + && !integer_zerop (cp_fully_fold (op0)))) + warning (OPT_Waddress, "comparison with string literal results " + "in unspecified behavior"); + } build_type = boolean_type_node; if ((code0 == INTEGER_TYPE || code0 == REAL_TYPE @@ -5291,9 +5314,13 @@ if (!result_type) { if (complain & tf_error) - error_at (location, - "invalid operands of types %qT and %qT to binary %qO", - TREE_TYPE (orig_op0), TREE_TYPE (orig_op1), code); + { + binary_op_rich_location richloc (location, + orig_op0, orig_op1, true); + error_at (&richloc, + "invalid operands of types %qT and %qT to binary %qO", + TREE_TYPE (orig_op0), TREE_TYPE (orig_op1), code); + } return error_mark_node; } @@ -6080,8 +6107,9 @@ so we can just form an ADDR_EXPR with the correct type. */ if (processing_template_decl || TREE_CODE (arg) != COMPONENT_REF) { - if (TREE_CODE (arg) == FUNCTION_DECL - && !mark_used (arg, complain) && !(complain & tf_error)) + tree stripped_arg = tree_strip_any_location_wrapper (arg); + if (TREE_CODE (stripped_arg) == FUNCTION_DECL + && !mark_used (stripped_arg, complain) && !(complain & tf_error)) return error_mark_node; val = build_address (arg); if (TREE_CODE (arg) == OFFSET_REF) @@ -7348,8 +7376,21 @@ } if (complain & tf_error) - error ("invalid static_cast from type %qT to type %qT", - TREE_TYPE (expr), type); + { + error ("invalid static_cast from type %qT to type %qT", + TREE_TYPE (expr), type); + if ((TYPE_PTR_P (type) || TYPE_REF_P (type)) + && CLASS_TYPE_P (TREE_TYPE (type)) + && !COMPLETE_TYPE_P (TREE_TYPE (type))) + inform (DECL_SOURCE_LOCATION (TYPE_MAIN_DECL (TREE_TYPE (type))), + "class type %qT is incomplete", TREE_TYPE (type)); + tree expr_type = TREE_TYPE (expr); + if (TYPE_PTR_P (expr_type)) + expr_type = TREE_TYPE (expr_type); + if (CLASS_TYPE_P (expr_type) && !COMPLETE_TYPE_P (expr_type)) + inform (DECL_SOURCE_LOCATION (TYPE_MAIN_DECL (expr_type)), + "class type %qT is incomplete", expr_type); + } return error_mark_node; } @@ -8291,7 +8332,8 @@ /* C++11 8.5/17: "If the destination type is an array of characters, an array of char16_t, an array of char32_t, or an array of wchar_t, and the initializer is a string literal...". */ - else if (TREE_CODE (newrhs) == STRING_CST + else if ((TREE_CODE (tree_strip_any_location_wrapper (newrhs)) + == STRING_CST) && char_type_p (TREE_TYPE (TYPE_MAIN_VARIANT (lhstype))) && modifycode == INIT_EXPR) { @@ -8810,9 +8852,11 @@ enum tree_code coder; location_t rhs_loc = EXPR_LOC_OR_LOC (rhs, input_location); - - /* Strip NON_LVALUE_EXPRs since we aren't using as an lvalue. */ - if (TREE_CODE (rhs) == NON_LVALUE_EXPR) + bool has_loc = EXPR_LOCATION (rhs) != UNKNOWN_LOCATION; + /* Strip NON_LVALUE_EXPRs since we aren't using as an lvalue, + but preserve location wrappers. */ + if (TREE_CODE (rhs) == NON_LVALUE_EXPR + && !location_wrapper_p (rhs)) rhs = TREE_OPERAND (rhs, 0); /* Handle [dcl.init.list] direct-list-initialization from @@ -8849,7 +8893,7 @@ if (coder == VOID_TYPE) { if (complain & tf_error) - error ("void value not ignored as it ought to be"); + error_at (rhs_loc, "void value not ignored as it ought to be"); return error_mark_node; } @@ -8921,35 +8965,43 @@ rhstype, type, fndecl, parmnum); else - switch (errtype) - { + { + range_label_for_type_mismatch label (rhstype, type); + gcc_rich_location richloc (rhs_loc, has_loc ? &label : NULL); + switch (errtype) + { case ICR_DEFAULT_ARGUMENT: - error ("cannot convert %qH to %qI in default argument", - rhstype, type); + error_at (&richloc, + "cannot convert %qH to %qI in default argument", + rhstype, type); break; case ICR_ARGPASS: - error ("cannot convert %qH to %qI in argument passing", - rhstype, type); + error_at (&richloc, + "cannot convert %qH to %qI in argument passing", + rhstype, type); break; case ICR_CONVERTING: - error ("cannot convert %qH to %qI", - rhstype, type); + error_at (&richloc, "cannot convert %qH to %qI", + rhstype, type); break; case ICR_INIT: - error ("cannot convert %qH to %qI in initialization", - rhstype, type); + error_at (&richloc, + "cannot convert %qH to %qI in initialization", + rhstype, type); break; case ICR_RETURN: - error ("cannot convert %qH to %qI in return", - rhstype, type); + error_at (&richloc, "cannot convert %qH to %qI in return", + rhstype, type); break; case ICR_ASSIGN: - error ("cannot convert %qH to %qI in assignment", - rhstype, type); + error_at (&richloc, + "cannot convert %qH to %qI in assignment", + rhstype, type); break; default: gcc_unreachable(); } + } if (TYPE_PTR_P (rhstype) && TYPE_PTR_P (type) && CLASS_TYPE_P (TREE_TYPE (rhstype)) @@ -9016,13 +9068,13 @@ && TREE_CODE (TREE_TYPE (rhs)) != BOOLEAN_TYPE && (complain & tf_warning)) { - location_t loc = cp_expr_loc_or_loc (rhs, input_location); - - warning_at (loc, OPT_Wparentheses, + warning_at (rhs_loc, OPT_Wparentheses, "suggest parentheses around assignment used as truth value"); TREE_NO_WARNING (rhs) = 1; } + warn_for_address_or_pointer_of_packed_member (false, type, rhs); + return perform_implicit_conversion_flags (strip_top_quals (type), rhs, complain, flags); } @@ -9186,6 +9238,8 @@ return true; } + STRIP_ANY_LOCATION_WRAPPER (whats_returned); + if (DECL_P (whats_returned) && DECL_NAME (whats_returned) && DECL_FUNCTION_SCOPE_P (whats_returned) @@ -9287,6 +9341,8 @@ static bool can_do_nrvo_p (tree retval, tree functype) { + if (retval) + STRIP_ANY_LOCATION_WRAPPER (retval); tree result = DECL_RESULT (current_function_decl); return (retval != NULL_TREE && !processing_template_decl @@ -9313,6 +9369,7 @@ bool treat_lvalue_as_rvalue_p (tree retval, bool parm_ok) { + STRIP_ANY_LOCATION_WRAPPER (retval); return ((cxx_dialect != cxx98) && ((VAR_P (retval) && !DECL_HAS_VALUE_EXPR_P (retval)) || (parm_ok && TREE_CODE (retval) == PARM_DECL)) @@ -9606,6 +9663,8 @@ this restriction, anyway. (jason 2000-11-19) See finish_function and finalize_nrv for the rest of this optimization. */ + if (retval) + STRIP_ANY_LOCATION_WRAPPER (retval); bool named_return_value_okay_p = can_do_nrvo_p (retval, functype); if (fn_returns_value_p && flag_elide_constructors) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/type-utils.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/type-utils.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/type-utils.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/type-utils.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Utilities for querying and manipulating type trees. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/vtable-class-hierarchy.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/vtable-class-hierarchy.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cp/vtable-class-hierarchy.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cp/vtable-class-hierarchy.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cppbuiltin.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cppbuiltin.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cppbuiltin.c 2018-08-20 09:40:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cppbuiltin.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Define builtin-in macros for all front ends that perform preprocessing - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cppbuiltin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cppbuiltin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cppbuiltin.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cppbuiltin.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Define builtin-in macros for all front ends that perform preprocessing - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cppdefault.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cppdefault.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cppdefault.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cppdefault.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* CPP Library. - Copyright (C) 1986-2018 Free Software Foundation, Inc. + Copyright (C) 1986-2019 Free Software Foundation, Inc. Contributed by Per Bothner, 1994-95. Based on CCCP program by Paul Rubin, June 1986 Adapted to ANSI C, Richard Stallman, Jan 1987 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cppdefault.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cppdefault.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cppdefault.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cppdefault.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* CPP Library. - Copyright (C) 1986-2018 Free Software Foundation, Inc. + Copyright (C) 1986-2019 Free Software Foundation, Inc. Contributed by Per Bothner, 1994-95. Based on CCCP program by Paul Rubin, June 1986 Adapted to ANSI C, Richard Stallman, Jan 1987 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cprop.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cprop.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cprop.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cprop.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Global constant/copy propagation for RTL. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cse.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cse.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cse.c 2018-08-12 11:28:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cse.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common subexpression elimination for GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cselib.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/cselib.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cselib.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cselib.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common subexpression elimination library for GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -2616,10 +2616,10 @@ preserves the upper bits that di:SI=zero_extend(flags:CCNO<=0). */ scalar_int_mode mode; if (dest != orig - && sets[i].src_elt && cselib_record_sets_hook && REG_P (dest) && HARD_REGISTER_P (dest) + && sets[i].src_elt && is_a (GET_MODE (dest), &mode) && n_sets + n_strict_low_parts < MAX_SETS) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/cselib.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/cselib.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/cselib.h 2018-08-12 11:28:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/cselib.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common subexpression elimination for GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/ChangeLog 2018-11-26 09:16:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/ChangeLog 2019-01-02 08:05:15.000000000 +0000 @@ -1,643 +1,10 @@ -2018-11-24 Iain Buclaw - - PR d/87866 - * d-incpath.cc (add_globalpaths): Use lrealpath to get canonical name. - (add_filepaths): Likewise. - -2018-11-17 Iain Buclaw - - PR d/87824 - * d-target.cc (Target::alignsize): Return min_align_of_type. - -2018-11-05 Iain Buclaw - - PR d/87865 - * d-system.h: New file. - -2018-11-01 Jakub Jelinek - - PR d/87824 - * lang.opt (Wpsabi): New option. - -2018-10-31 Iain Buclaw - - PR d/87825 - * Make-lang.in (d/idgen) Link with BUILD_LINKERFLAGS. - (d/impcvgen): Likewise. - -2018-10-26 Eugene Wissner - - * Make-lang.in (selftest-d): New. - * d-diagnostic.cc (vwarning): Fix warning emitting. - -2018-10-22 Iain Buclaw - - * d-spec.cc (lang_specific_driver): Always link against phobos if any - input file is given. - -2018-10-21 Iain Buclaw - - * d-lang.cc (d_get_alias_set): Always return zero. - -2018-10-21 Iain Buclaw - - * intrinsics.cc (maybe_set_intrinsic): Don't set built-in flag on - unsupported pow() overloads. - -2018-10-20 Iain Buclaw - - * expr.cc (ExprVisitor::binop_assignment): Call stabilize_reference on - LHS construct if it has side effects. - -2018-10-20 Iain Buclaw - - * intrinsics.cc (clear_intrinsic_flag): Remove function. - (maybe_expand_intrinsic): Remove clear_intrinsic_flag call. - -2018-10-20 Iain Buclaw - - * intrinsics.cc (expand_intrinsic_copysign): Use mathfn_built_in to - determine correct built-in to call. - (expand_intrinsic_pow): Likewise. - -2018-10-20 Iain Buclaw - - * intrinsics.cc (expand_intrinsic_sqrt): Remove implicit int to double - conversion. - (expand_intrinsic_pow): Likewise. - -2018-10-20 Iain Buclaw - - * d-codegen.cc (get_frame_for_symbol): Use error_at. - (build_frame_type): Likewise. - (get_framedecl): Likewise. - * d-lang.cc (d_parse_file): Likewise. - * decl.cc (DeclVisitor::visit(StructDeclaration)): Likewise. - (DeclVisitor::finish_vtable): Likewise. - (DeclVisitor::visit(ClassDeclaration)): Likewise. - (DeclVisitor::visit(InterfaceDeclaration)): Likewise. - (DeclVisitor::visit(EnumDeclaration)): Likewise. - (DeclVisitor::visit(VarDeclaration)): Likewise. - * toir.cc (IRVisitor::check_goto): Likewise. - (IRVisitor::check_previous_goto): Likewise. - (IRVisitor::visit(ThrowStatement)): Likewise. - -2018-10-20 Iain Buclaw - - * d-codegen.cc (get_array_length): Use quoted format flag in message. - (d_build_call): Likewise. - * d-lang.cc (d_handle_option): Likewise. - * decl.cc (DeclVisitor::finish_vtable): Likewise. - * expr.cc (ExprVisitor::visit(ArrayLengthExp)): Likewise. - (ExprVisitor::visit(DeleteExp)): Likewise. - (ExprVisitor::visit(RemoveExp)): Likewise. - (ExprVisitor::visit(RemoveExp)): Likewise. - (ExprVisitor::visit(CallExp)): Likewise. - (ExprVisitor::visit(DotVarExp)): Likewise. - (ExprVisitor::visit(VarExp)): Likewise. - (ExprVisitor::visit(ScopeExp)): Likewise. - (ExprVisitor::visit(TypeExp)): Likewise. - (build_expr): Likewise. - -2018-10-20 Iain Buclaw - - * d-diagnostic.cc (d_diagnostic_report_diagnostic): Skip translation - by instead calling diagnostic_set_info_translated. - -2018-10-20 Iain Buclaw - - * d-tree.h (bool_type_node): Rename to d_bool_type. - (byte_type_node): Rename to d_byte_type. - (ubyte_type_node): Rename to d_ubyte_type. - (short_type_node): Rename to d_short_type. - (ushort_type_node): Rename to d_ushort_type. - (int_type_node): Rename to d_int_type. - (uint_type_node): Rename to d_uint_type. - (long_type_node): Rename to d_long_type. - (ulong_type_node): Rename to d_ulong_type. - (cent_type_node): Rename to d_cent_type. - (ucent_type_node): Rename to d_ucent_type. - -2018-10-20 Iain Buclaw - - * expr.cc (ExprVisitor::visit(PowExp)): Remove function. - -2018-10-19 Iain Buclaw - - * d-attribs.c: Rename to d-attribs.cc. - * d-spec.c: Rename to d-spec.cc. - -2018-10-19 Iain Buclaw - - * d-lang.cc (d_gimplify_expr): Don't handle TREE_THIS_VOLATILE. - -2018-10-19 Iain Buclaw - - * d-diagnostic.cc (vwarning): Update to use Diagnostic enum. - (vdeprecation): Likewise. - (vdeprecationSupplemental): Likewise. - * d-lang.cc (d_init_options): Explicitly set warnings and deprecations - as DIAGNOSTICoff. - (d_handle_option): Update to use Diagnostic enum. - (d_post_options): Likewise. - -2018-10-18 Iain Buclaw - - * d-diagnostic.cc (expand_format): Rename to expand_d_format. - Updated all callers. - -2018-10-17 Iain Buclaw - - * d-codegen.cc (get_linemap): Rename function to make_location_t. - Updated all callers. - * d-tree.h (get_linemap): Rename declaration to make_location_t. - -2018-10-17 Iain Buclaw - - * expr.cc (ExprVisitor::binary_op): Use POINTER_DIFF_EXPR. - -2018-10-17 Iain Buclaw - - * intrinsics.cc (expand_intrinsic_bsf): Assert that built-in function - code is not END_BUILTINS. - (expand_intrinsic_bsr): Likewise. - (expand_intrinsic_bswap): Likewise. - (expand_intrinsic_popcnt): Likewise. - -2018-10-17 Iain Buclaw - - * config-lang.in (gtfiles): Add modules.cc. - * modules.cc: Include gt-d-modules.h. - (module_info): Mark with GTY. - (static_ctor_list): Likewise. - (static_dtor_list): Likewise. - -2018-10-17 Iain Buclaw - - * d-spec.c (lang_specific_driver): Use strrchr and strcmp to check - input file suffix. - -2018-10-17 Iain Buclaw - - * d-spec.c (phobos_action): New enum. - (library): Rename to phobos_library. - (lang_specific_driver): Update to use phobos_library. - (lang_specific_pre_link): Likewise. - -2018-10-16 Iain Buclaw - - * d-frontend.cc (Port::writelongLE): Remove function. - (Port::writelongBE): Remove function. - -2018-10-16 Iain Buclaw - - * d-convert.cc (convert): Remove goto maybe_fold. - -2018-10-16 Iain Buclaw - - * d-codegen.cc (warn_for_null_address): New function. - (build_boolop): Warn about comparing address of decl to null. - * d-convert.cc (decl_with_nonnull_addr_p): New function. - (d_truthvalue_conversion): Warn about evaluating address as boolean. - * d-tree.h (decl_with_nonnull_addr_p): Add declaration. - * lang.opt (Waddress): New option. - -2018-10-16 Iain Buclaw - - * d-codegen.cc (d_array_length): Assert that argument type is a - dynamic array. - (d_array_ptr): Likewise. - (d_array_value): Likewise. - (delegate_method): Assert that argument type is a delegate. - (delegate_object): Likewise. - -2018-10-16 Iain Buclaw - - * d-attribs.c (handle_malloc_attribute): Use gcc_assert instead of - gcc_unreachable. - (handle_pure_attribute): Likewise. - (handle_nothrow_attribute): Likewise. - -2018-10-16 Iain Buclaw - - * Make-lang.in: Rename compiler proper to d21. - * config-lang.in (compilers): Rename compiler to d21. - * d-spec.c (lang_specific_driver): Update comments. - * lang-specs.h: Rename compiler to d21. - -2018-10-16 Iain Buclaw - - * lang.opt: Add missing periods to the ends of sentences. - -2018-10-16 Iain Buclaw - - * d-lang.cc (d_handle_option): Remove handling of -fdeps. - (d_parse_file): Don't generate module dependencies. - * lang.opt (fdeps, fdeps=): Remove options. - (fintfc, fintfc-dir=, fintfc-file=): Remove options. - (ftransition=safe): Remove option. - -2018-10-16 Iain Buclaw - - * d-lang.cc (d_init_ts): Remove handling of IASM_EXPR. - (d_gimplify_expr): Likewise. - * d-tree.def (IASM_EXPR): Remove tree code. - -2018-10-15 Iain Buclaw - - * d-attrib.c (attr_noreturn_exclusions): Attribute not mutually - exclusive with self. - * typeinfo.cc (TypeInfoVisitor::layout_interfaces): Assert that - base class vtable is found in interface. - -2018-10-08 Iain Buclaw - - * decl.cc (DeclVisitor): Add using Visitor::visit. - * expr.cc (ExprVisitor): Likewise. - * imports.cc (ImportVisitor): Likewise. - * toir.cc (IRVisitor): Likewise. - * typeinfo.cc (TypeInfoVisitor): Likewise. - (TypeInfoDeclVisitor): Likewise. - (SpeculativeTypeVisitor): Likewise. - * types.cc (TypeVisitor): Likewise. - -2018-10-01 Iain Buclaw - - * d-frontend.cc: Include compiler.h, errors.h, expression.h. - (genCmain): Rename function to Compiler::genCmain. - (Compiler::paintAsType): New function. - (Compiler::loadModule): New function. - (getTypeInfoType): Call error function directly. - * d-lang.cc (deps_write): Use hash_set for dependency tracking. - (d_parse_file): Call Compiler::loadModule. - * d-target.cc: Remove include identifier.h, module.h. - (Target::paintAsType): Remove function. - (Target::loadModule): Remove function. - (Target::getTargetInfo): New function. - -2018-10-01 Eugene Wissner - - * decl.cc (finish_thunk): Adjust call to cgraph_node::create_thunk. - -2018-09-25 Eugene Wissner - - * d-codegen.cc (d_assert_call): Don't make STRING_CSTs larger than they - are. - * expr.cc (ExprVisitor::visit(StringExp)): Likewise. - * typeinfo.cc (TypeInfoVisitor::layout_string): Likewise. - -2018-09-24 Iain Buclaw - - * d-builtins.cc: Include expression.h, identifier.h. - * d-codegen.cc: Include identifier.h. - * d-convert.cc: Include declaration.h. - * d-frontend.cc: Include identifier.h. - * d-lang.cc: Include declaration.h, expression.h, identifier.h. - (d_parse_file): Call moduleToBuffer to get string dump of contents. - * d-target.cc: Include declaration.h, expression.h, identifier.h. - * expr.cc: Include identifier.h. - * imports.cc: Include identifier.h. - * intrinsics.cc: Include identifier.h. - * modules.cc: Include identifier.h. - * toir.cc: Include expression.h, identifier.h. - * typeinfo.cc: Include expression.h, identifier.h. - * types.cc: Include expression.h, identifier.h. - -2018-09-17 Iain Buclaw - - * Make-lang.in (D_INCLUDES): Rename dfrontend to dmd. - (d/%.o): Likewise. - (d/%.dmdgen.o): Likewise. - * verstr.h: Update to 2.076.1 - -2018-09-10 Iain Buclaw - - * intrinsics.cc (maybe_expand_intrinsic): Handle INTRINSIC_EXP. - * intrinsics.def (EXP): Add CTFE intrinsic. - -2018-09-07 Iain Buclaw - - * d-lang.cc: Include errors.h, mars.h. - * decl.cc: Include errors.h. - * typeinfo.cc: Include globals.h, errors.h. - -2018-09-05 Eugene Wissner - - * d-frontend.cc (eval_builtin): Replace DECL_BUILT_IN with - fndecl_built_in_p. - -2018-08-29 Iain Buclaw - - * d-target.cc (Target::prefixName): Remove function. - (Target::cppParameterType): New function. - -2018-08-25 Iain Buclaw - - * Make-lang.in (D_FRONTEND_OBJS): Add iasm.o, iasmgcc.o - * lang.opt (fproperty): Remove option. - * d-lang.cc (d_handle_option): Remove case for OPT_fproperty. - * toir.cc (IRVisitor::visit(ExtAsmStatement)): Rename override to - GccAsmStatement. - -2018-07-23 Eugene Wissner - - * d-lang.cc (d_handle_option): Change function argument to HOST_WIDE_INT. - * lang.opt (Walloca-larger-than=, Wno-alloca-larger-than): New options. - * opt.texi (Walloca-larger-than=, Wno-alloca-larger-than): Likewise. - -2018-07-21 Iain Buclaw - - * decl.cc (get_symbol_decl): Set all generated static symbols as - DECL_EXTERNAL. Move logic for determining TREE_STATIC ... - (start_function): ... here. - (d_finish_decl): Update TLS model after finishing variable linkage. - -2018-07-14 Iain Buclaw - - * Make-lang.in (d.tags): Rename dfrontend to dmd. - * d-attribs.c: Rename dfrontend includes to dmd. - * d-builtins.cc: Likewise. - * d-codegen.cc: Likewise. - * d-convert.cc: Likewise. - * d-diagnostic.cc: Likewise. - * d-frontend.cc: Likewise. - * d-incpath.cc: Likewise. - * d-lang.cc: Likewise. - * d-longdouble.cc: Likewise. - * d-target.cc: Likewise. - * decl.cc: Likewise. - * expr.cc: Likewise. - * imports.cc: Likewise. - * intrinsics.cc: Likewise. - * modules.cc: Likewise. - * runtime.cc: Likewise. - * toir.cc: Likewise. - * typeinfo.cc: Likewise. - * types.cc: Likewise. - -2018-07-14 Iain Buclaw - - * types.cc (same_type_p): Check type codes match before checking - equivalence. - -2018-07-09 Iain Buclaw - - * Makefile.in (d/verstr.h): Remove recipe. - (d.mostlyclean): Remove cleanup of verstr.h. - * verstr.h: New file. - -2018-07-06 Iain Buclaw - - * d-codegen.cc (lower_struct_comparison): Evaluate side effects of - empty struct. - (build_struct_comparison): Likewise. - -2018-07-06 Iain Buclaw - - * typeinfo.cc (TypeInfoVisitor::layout_interfaces): Only generate an - interface vtable for classes. - (TypeInfoVisitor::visit(TypeInfoClassDeclaration)): Likewise. - -2018-07-05 Iain Buclaw - - * d-lang.cc (deps_write): Ignore __main module. - (d_handle_option): Handle -fmain option. - (d_parse_file): Generate D main function if requested. - * lang.opt (fmain): New option. - -2018-07-04 Iain Buclaw - - * d-builtins.cc (d_build_builtins_module): Export __builtin_clonglong - and __builtin_culonglong to gcc builtins module. - -2018-07-04 Eugene Wissner - - * d-spec.c: Include opt-suggestions.h containing option_proposer used by - gcc.h. - -2018-07-01 Iain Buclaw - - * decl.cc (get_symbol_decl): Implicitly convert return type of 'void' - main to 'int' for both C and D entry functions. - * toir.cc (IRVisitor::visit(ReturnStatement)): Likewise. - -2018-06-30 Iain Buclaw - - * expr.cc (ExprVisitor::visit(FuncExp)): Don't error about nested - delegate literals. - -2018-06-29 Iain Buclaw - - * d-frontend.cc (eval_builtin): Allow both gcc and frontend builtins. - * intrinsics.cc (call_builtin_fn): Use convert. - (expand_intrinsic_sqrt): Use fold_convert. - (expand_intrinsic_copysign): New function. - (expand_intrinsic_pow): New function. - (maybe_expand_intrinsic): Handle many math intrinsics. - * intrinsics.def (EXPM1, EXP2, LOG, LOG2, LOG10, ROUND, FLOORF), - (FLOOR, FLOORL, CEILF, CEIL, CEILL, TRUNC, FMIN, FMAX, COPYSIGN), - (POW, FMA): Add math intrinsics. - -2018-06-27 Iain Buclaw - - * d-codegen.cc (find_aggregate_field): Move to decl.cc - (build_class_instance): Move to decl.cc, make static. - * d-tree.h (build_class_instance): Remove declaration. - * decl.cc (DeclVisitor::finish_vtable): New function. - -2018-06-26 Iain Buclaw - - * types.cc (TypeVisitor::visit(TypeClass)): Handle get_symbol_decl - returning an error_mark_node. - -2018-06-22 Iain Buclaw - - * decl.cc (DeclVisitor::visit(FuncDeclaration)): Move function - unnesting to... - (get_symbol_decl): ... here. - -2018-06-22 Iain Buclaw - - * d-lang.cc (d_post_options): Set global showColumns parameter. - -2018-06-22 Iain Buclaw - - * d-diagnostic.cc (expand_format): Handle whitespace format specifier. - (d_diagnostic_report_diagnostic): Change signature, updated all - callers. Handle writing messages verbatim. - (vmessage): New function. - * d-lang.cc (d_parse_file): Use message to emit verbose diagnostics. - * decl.cc (DeclVisitor::visit(FuncDeclaration)): Likewise. - (get_symbol_decl): Likewise. - -2018-06-22 Iain Buclaw - - * d-builtins.cc (build_frontend_type): Use Type::merge2 to merge - generated front-end types. - * d-codegen.cc (declaration_type): Likewise. - (type_passed_as): Likewise. - * d-convert.cc (convert_expr): Use ClassDeclaration::isCPPclass. - * d-lang.cc (d_build_eh_runtime_type): Likewise. - * toir.cc (IRVisitor::visit): Use ClassDecalration::isCPPclass. - * typeinfo.cc (TypeInfoVisitor::visit): Use Type::merge2 to merge - generated front-end types. - * types.cc (layout_aggregate_type): Use ClassDeclaration::isCPPclass. - -2018-05-28 Iain Buclaw - - * expr.cc (ExprVisitor::visit(StringExp)): Copy string literal from - the frontend to a null terminated string. - -2018-05-21 Iain Buclaw - - * expr.cc (ExprVisitor::binary_op): Don't do complex conversions if - already handling excess precision. - -2018-04-02 Iain Buclaw - - * d-lang.cc (doing_semantic_analysis_p): New variable. - (d_parse_file): Set when in semantic pass. - * d-tree.h (doing_semantic_analysis_p): Add declaration. - * intrinsics.cc (maybe_expand_intrinsic): Test for - doing_semantic_analysis_p. - -2018-03-18 Iain Buclaw - - * d-codegen.cc (stabilize_expr): Move modify expression rewrite... - * expr.cc (ExprVisitor::binop_assignment): ... here. - -2018-03-11 Iain Buclaw - - * expr.cc (ExprVisitor::visit(StringExp)): Include null terminator - in length when calling build_String. Generate static array string - literals as array constructors. - -2018-03-04 Iain Buclaw - - * d-lang.cc (d_handle_option): Rename OPT_fintfc cases to OPT_H. - * gdc.texi (Code Generation): Rename -fintfc options to -H. - * lang-specs.h: Add H, Hd, and Hf options. - * lang.opt (H, Hd, Hf): New options. - (fintfc, fintfc-dir=, fintfc-file=): Deprecate and alias new options. - -2018-03-04 Iain Buclaw - - * lang.opt (fdeps, fdeps=): Deprecate options. - * gdc.texi (Code Generation): Remove deprecated fdeps options. - -2018-02-25 Iain Buclaw - - * Make-lang.in (D_FRONTEND_OBJS): Remove inline.o and inlinecost.o. - -2018-02-24 Iain Buclaw - - * d-frontend.cc (CTFloat::fabs): Assign result to real_t directly. - (CTFloat::ldexp): Likewise. - * d-longdouble.cc (longdouble::from_int): Remove function. - (longdouble::from_uint): Likewise. - (longdouble::to_int): Update Signature. - (longdouble::to_uint): Likewise. - (longdouble::operator): Likewise. - (longdouble::add): New function, move operator overload headers. - (longdouble::sub, longdouble::mul, longdouble::div): Likewise. - (longdouble::mod, longdouble::neg): Likewise. - (longdouble::cmp, longdouble::equals): Likewise. - * d-target.cc (Target::_init): Construct assignment into real_t - directly. - -2018-02-19 Iain Buclaw - - * Make-lang.in (DMD_WARN_CXXFLAGS): Only filter out - -Wmissing-format-attribute from WARN_CXXFLAGS. - -2018-02-18 Iain Buclaw - - * d-builtins.cc (build_frontend_type): Set alignment of structs in - frontend. - -2018-02-17 Iain Buclaw - - * d-incpath.cc (add_environment_paths): Remove function. - * gdc.texi (Environment Variables): Remove section. - -2018-02-10 Iain Buclaw - - * expr.cc (ExprVisitor::AssertExp): Use builtin expect to mark assert - condition as being likely true. - -2018-02-11 Iain Buclaw - - * lang.opt (fd-vgc, fd-verbose, fd-vtls): Remove options. - (femit-moduleinfo, femit-templates): Likewise. - (fmake-deps, fmake-mdeps): Likewise. - (fin, fout, fXf): Likewise. - -2018-01-28 Iain Buclaw - - * gdc.texi (Runtime Options): Remove deprecated -fproperty option. - -2018-01-27 Iain Buclaw - - * d-lang.cc (d_gimplify_expr): Gimplify all CALL_EXPR_ARGS_ORDERED - call arguments, not just non-constant. - -2018-01-27 Iain Buclaw - - * decl.cc (DeclVisitor::visit(VarDeclaration)): Don't reuse existing - temporary for TARGET_EXPR. - (declare_local_var): Push all variables to current binding level. - -2018-01-27 Iain Buclaw - - * toir.cc (build_function_body): Set input_location. - -2018-01-23 Iain Buclaw - - * d-codegen.cc (build_frame_type): Don't add chain field for - functions without context pointer. - (build_closure): Don't set chain field for functions without context - pointer. - -2018-01-21 Iain Buclaw - - * decl.cc (DeclVisitor::visit(StructDeclaration)): Mark compiler - generated symbols as DECL_ONE_ONLY instead of DECL_COMDAT. - (DeclVisitor::visit(ClassDeclaration)): Likewise. - (DeclVisitor::visit(InterfaceDeclaration)): Likewise. - (DeclVisitor::visit(EnumDeclaration)): Likewise. - (get_symbol_decl): Mark template instantiations as DECL_ONE_ONLY - instead of DECL_COMDAT. Don't call mark_needed. - (declare_extern_var): Don't call mark_needed. - (d_finish_decl): Remove zero initializer for common symbols. - (finish_thunk): Don't call d_comdat_linkage on generic thunk. - (d_comdat_linkage): Don't set DECL_DECLARED_INLINE on functions. - * typeinfo.cc (TypeInfoDeclVisitor::visit(TypeInfoDeclaration)): Mark - built-in typeinfo symbols as DECL_ONE_ONLY instead of DECL_COMDAT. - -2018-01-21 Iain Buclaw - - * d-lang.cc (d_init): Disable flag_weak if not supported. - * decl.cc (d_comdat_linkage): Use flag_weak to guard setting - DECL_ONE_ONLY on decls. - (d_linkonce_linkage): New function. - * gdc.texi (Runtime Options): Document -fweak. - * lang.opt (fweak): Declare. - -2018-01-21 Iain Buclaw - - * decls.cc (get_symbol_decl): Use attribute to mark naked functions. - -2018-01-08 Eugene Wissner - - * d-builtins.cc (d_eval_constant_expression): Handle polynomial - VECTOR_CST_NELTS. - (build_frontend_type): Handle polynomial TYPE_VECTOR_SUBPARTS. - -2018-01-08 Iain Buclaw +2019-01-01 Jakub Jelinek Update copyright years. + + * gdc.texi: Bump @copyrights-d year. -Copyright (C) 2018 Free Software Foundation, Inc. +Copyright (C) 2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/ChangeLog-2018 gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/ChangeLog-2018 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/ChangeLog-2018 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/ChangeLog-2018 2019-01-02 08:05:15.000000000 +0000 @@ -0,0 +1,644 @@ +2018-11-24 Iain Buclaw + + PR d/87866 + * d-incpath.cc (add_globalpaths): Use lrealpath to get canonical name. + (add_filepaths): Likewise. + +2018-11-17 Iain Buclaw + + PR d/87824 + * d-target.cc (Target::alignsize): Return min_align_of_type. + +2018-11-05 Iain Buclaw + + PR d/87865 + * d-system.h: New file. + +2018-11-01 Jakub Jelinek + + PR d/87824 + * lang.opt (Wpsabi): New option. + +2018-10-31 Iain Buclaw + + PR d/87825 + * Make-lang.in (d/idgen) Link with BUILD_LINKERFLAGS. + (d/impcvgen): Likewise. + +2018-10-26 Eugene Wissner + + * Make-lang.in (selftest-d): New. + * d-diagnostic.cc (vwarning): Fix warning emitting. + +2018-10-22 Iain Buclaw + + * d-spec.cc (lang_specific_driver): Always link against phobos if any + input file is given. + +2018-10-21 Iain Buclaw + + * d-lang.cc (d_get_alias_set): Always return zero. + +2018-10-21 Iain Buclaw + + * intrinsics.cc (maybe_set_intrinsic): Don't set built-in flag on + unsupported pow() overloads. + +2018-10-20 Iain Buclaw + + * expr.cc (ExprVisitor::binop_assignment): Call stabilize_reference on + LHS construct if it has side effects. + +2018-10-20 Iain Buclaw + + * intrinsics.cc (clear_intrinsic_flag): Remove function. + (maybe_expand_intrinsic): Remove clear_intrinsic_flag call. + +2018-10-20 Iain Buclaw + + * intrinsics.cc (expand_intrinsic_copysign): Use mathfn_built_in to + determine correct built-in to call. + (expand_intrinsic_pow): Likewise. + +2018-10-20 Iain Buclaw + + * intrinsics.cc (expand_intrinsic_sqrt): Remove implicit int to double + conversion. + (expand_intrinsic_pow): Likewise. + +2018-10-20 Iain Buclaw + + * d-codegen.cc (get_frame_for_symbol): Use error_at. + (build_frame_type): Likewise. + (get_framedecl): Likewise. + * d-lang.cc (d_parse_file): Likewise. + * decl.cc (DeclVisitor::visit(StructDeclaration)): Likewise. + (DeclVisitor::finish_vtable): Likewise. + (DeclVisitor::visit(ClassDeclaration)): Likewise. + (DeclVisitor::visit(InterfaceDeclaration)): Likewise. + (DeclVisitor::visit(EnumDeclaration)): Likewise. + (DeclVisitor::visit(VarDeclaration)): Likewise. + * toir.cc (IRVisitor::check_goto): Likewise. + (IRVisitor::check_previous_goto): Likewise. + (IRVisitor::visit(ThrowStatement)): Likewise. + +2018-10-20 Iain Buclaw + + * d-codegen.cc (get_array_length): Use quoted format flag in message. + (d_build_call): Likewise. + * d-lang.cc (d_handle_option): Likewise. + * decl.cc (DeclVisitor::finish_vtable): Likewise. + * expr.cc (ExprVisitor::visit(ArrayLengthExp)): Likewise. + (ExprVisitor::visit(DeleteExp)): Likewise. + (ExprVisitor::visit(RemoveExp)): Likewise. + (ExprVisitor::visit(RemoveExp)): Likewise. + (ExprVisitor::visit(CallExp)): Likewise. + (ExprVisitor::visit(DotVarExp)): Likewise. + (ExprVisitor::visit(VarExp)): Likewise. + (ExprVisitor::visit(ScopeExp)): Likewise. + (ExprVisitor::visit(TypeExp)): Likewise. + (build_expr): Likewise. + +2018-10-20 Iain Buclaw + + * d-diagnostic.cc (d_diagnostic_report_diagnostic): Skip translation + by instead calling diagnostic_set_info_translated. + +2018-10-20 Iain Buclaw + + * d-tree.h (bool_type_node): Rename to d_bool_type. + (byte_type_node): Rename to d_byte_type. + (ubyte_type_node): Rename to d_ubyte_type. + (short_type_node): Rename to d_short_type. + (ushort_type_node): Rename to d_ushort_type. + (int_type_node): Rename to d_int_type. + (uint_type_node): Rename to d_uint_type. + (long_type_node): Rename to d_long_type. + (ulong_type_node): Rename to d_ulong_type. + (cent_type_node): Rename to d_cent_type. + (ucent_type_node): Rename to d_ucent_type. + +2018-10-20 Iain Buclaw + + * expr.cc (ExprVisitor::visit(PowExp)): Remove function. + +2018-10-19 Iain Buclaw + + * d-attribs.c: Rename to d-attribs.cc. + * d-spec.c: Rename to d-spec.cc. + +2018-10-19 Iain Buclaw + + * d-lang.cc (d_gimplify_expr): Don't handle TREE_THIS_VOLATILE. + +2018-10-19 Iain Buclaw + + * d-diagnostic.cc (vwarning): Update to use Diagnostic enum. + (vdeprecation): Likewise. + (vdeprecationSupplemental): Likewise. + * d-lang.cc (d_init_options): Explicitly set warnings and deprecations + as DIAGNOSTICoff. + (d_handle_option): Update to use Diagnostic enum. + (d_post_options): Likewise. + +2018-10-18 Iain Buclaw + + * d-diagnostic.cc (expand_format): Rename to expand_d_format. + Updated all callers. + +2018-10-17 Iain Buclaw + + * d-codegen.cc (get_linemap): Rename function to make_location_t. + Updated all callers. + * d-tree.h (get_linemap): Rename declaration to make_location_t. + +2018-10-17 Iain Buclaw + + * expr.cc (ExprVisitor::binary_op): Use POINTER_DIFF_EXPR. + +2018-10-17 Iain Buclaw + + * intrinsics.cc (expand_intrinsic_bsf): Assert that built-in function + code is not END_BUILTINS. + (expand_intrinsic_bsr): Likewise. + (expand_intrinsic_bswap): Likewise. + (expand_intrinsic_popcnt): Likewise. + +2018-10-17 Iain Buclaw + + * config-lang.in (gtfiles): Add modules.cc. + * modules.cc: Include gt-d-modules.h. + (module_info): Mark with GTY. + (static_ctor_list): Likewise. + (static_dtor_list): Likewise. + +2018-10-17 Iain Buclaw + + * d-spec.c (lang_specific_driver): Use strrchr and strcmp to check + input file suffix. + +2018-10-17 Iain Buclaw + + * d-spec.c (phobos_action): New enum. + (library): Rename to phobos_library. + (lang_specific_driver): Update to use phobos_library. + (lang_specific_pre_link): Likewise. + +2018-10-16 Iain Buclaw + + * d-frontend.cc (Port::writelongLE): Remove function. + (Port::writelongBE): Remove function. + +2018-10-16 Iain Buclaw + + * d-convert.cc (convert): Remove goto maybe_fold. + +2018-10-16 Iain Buclaw + + * d-codegen.cc (warn_for_null_address): New function. + (build_boolop): Warn about comparing address of decl to null. + * d-convert.cc (decl_with_nonnull_addr_p): New function. + (d_truthvalue_conversion): Warn about evaluating address as boolean. + * d-tree.h (decl_with_nonnull_addr_p): Add declaration. + * lang.opt (Waddress): New option. + +2018-10-16 Iain Buclaw + + * d-codegen.cc (d_array_length): Assert that argument type is a + dynamic array. + (d_array_ptr): Likewise. + (d_array_value): Likewise. + (delegate_method): Assert that argument type is a delegate. + (delegate_object): Likewise. + +2018-10-16 Iain Buclaw + + * d-attribs.c (handle_malloc_attribute): Use gcc_assert instead of + gcc_unreachable. + (handle_pure_attribute): Likewise. + (handle_nothrow_attribute): Likewise. + +2018-10-16 Iain Buclaw + + * Make-lang.in: Rename compiler proper to d21. + * config-lang.in (compilers): Rename compiler to d21. + * d-spec.c (lang_specific_driver): Update comments. + * lang-specs.h: Rename compiler to d21. + +2018-10-16 Iain Buclaw + + * lang.opt: Add missing periods to the ends of sentences. + +2018-10-16 Iain Buclaw + + * d-lang.cc (d_handle_option): Remove handling of -fdeps. + (d_parse_file): Don't generate module dependencies. + * lang.opt (fdeps, fdeps=): Remove options. + (fintfc, fintfc-dir=, fintfc-file=): Remove options. + (ftransition=safe): Remove option. + +2018-10-16 Iain Buclaw + + * d-lang.cc (d_init_ts): Remove handling of IASM_EXPR. + (d_gimplify_expr): Likewise. + * d-tree.def (IASM_EXPR): Remove tree code. + +2018-10-15 Iain Buclaw + + * d-attrib.c (attr_noreturn_exclusions): Attribute not mutually + exclusive with self. + * typeinfo.cc (TypeInfoVisitor::layout_interfaces): Assert that + base class vtable is found in interface. + +2018-10-08 Iain Buclaw + + * decl.cc (DeclVisitor): Add using Visitor::visit. + * expr.cc (ExprVisitor): Likewise. + * imports.cc (ImportVisitor): Likewise. + * toir.cc (IRVisitor): Likewise. + * typeinfo.cc (TypeInfoVisitor): Likewise. + (TypeInfoDeclVisitor): Likewise. + (SpeculativeTypeVisitor): Likewise. + * types.cc (TypeVisitor): Likewise. + +2018-10-01 Iain Buclaw + + * d-frontend.cc: Include compiler.h, errors.h, expression.h. + (genCmain): Rename function to Compiler::genCmain. + (Compiler::paintAsType): New function. + (Compiler::loadModule): New function. + (getTypeInfoType): Call error function directly. + * d-lang.cc (deps_write): Use hash_set for dependency tracking. + (d_parse_file): Call Compiler::loadModule. + * d-target.cc: Remove include identifier.h, module.h. + (Target::paintAsType): Remove function. + (Target::loadModule): Remove function. + (Target::getTargetInfo): New function. + +2018-10-01 Eugene Wissner + + * decl.cc (finish_thunk): Adjust call to cgraph_node::create_thunk. + +2018-09-25 Eugene Wissner + + * d-codegen.cc (d_assert_call): Don't make STRING_CSTs larger than they + are. + * expr.cc (ExprVisitor::visit(StringExp)): Likewise. + * typeinfo.cc (TypeInfoVisitor::layout_string): Likewise. + +2018-09-24 Iain Buclaw + + * d-builtins.cc: Include expression.h, identifier.h. + * d-codegen.cc: Include identifier.h. + * d-convert.cc: Include declaration.h. + * d-frontend.cc: Include identifier.h. + * d-lang.cc: Include declaration.h, expression.h, identifier.h. + (d_parse_file): Call moduleToBuffer to get string dump of contents. + * d-target.cc: Include declaration.h, expression.h, identifier.h. + * expr.cc: Include identifier.h. + * imports.cc: Include identifier.h. + * intrinsics.cc: Include identifier.h. + * modules.cc: Include identifier.h. + * toir.cc: Include expression.h, identifier.h. + * typeinfo.cc: Include expression.h, identifier.h. + * types.cc: Include expression.h, identifier.h. + +2018-09-17 Iain Buclaw + + * Make-lang.in (D_INCLUDES): Rename dfrontend to dmd. + (d/%.o): Likewise. + (d/%.dmdgen.o): Likewise. + * verstr.h: Update to 2.076.1 + +2018-09-10 Iain Buclaw + + * intrinsics.cc (maybe_expand_intrinsic): Handle INTRINSIC_EXP. + * intrinsics.def (EXP): Add CTFE intrinsic. + +2018-09-07 Iain Buclaw + + * d-lang.cc: Include errors.h, mars.h. + * decl.cc: Include errors.h. + * typeinfo.cc: Include globals.h, errors.h. + +2018-09-05 Eugene Wissner + + * d-frontend.cc (eval_builtin): Replace DECL_BUILT_IN with + fndecl_built_in_p. + +2018-08-29 Iain Buclaw + + * d-target.cc (Target::prefixName): Remove function. + (Target::cppParameterType): New function. + +2018-08-25 Iain Buclaw + + * Make-lang.in (D_FRONTEND_OBJS): Add iasm.o, iasmgcc.o + * lang.opt (fproperty): Remove option. + * d-lang.cc (d_handle_option): Remove case for OPT_fproperty. + * toir.cc (IRVisitor::visit(ExtAsmStatement)): Rename override to + GccAsmStatement. + +2018-07-23 Eugene Wissner + + * d-lang.cc (d_handle_option): Change function argument to HOST_WIDE_INT. + * lang.opt (Walloca-larger-than=, Wno-alloca-larger-than): New options. + * opt.texi (Walloca-larger-than=, Wno-alloca-larger-than): Likewise. + +2018-07-21 Iain Buclaw + + * decl.cc (get_symbol_decl): Set all generated static symbols as + DECL_EXTERNAL. Move logic for determining TREE_STATIC ... + (start_function): ... here. + (d_finish_decl): Update TLS model after finishing variable linkage. + +2018-07-14 Iain Buclaw + + * Make-lang.in (d.tags): Rename dfrontend to dmd. + * d-attribs.c: Rename dfrontend includes to dmd. + * d-builtins.cc: Likewise. + * d-codegen.cc: Likewise. + * d-convert.cc: Likewise. + * d-diagnostic.cc: Likewise. + * d-frontend.cc: Likewise. + * d-incpath.cc: Likewise. + * d-lang.cc: Likewise. + * d-longdouble.cc: Likewise. + * d-target.cc: Likewise. + * decl.cc: Likewise. + * expr.cc: Likewise. + * imports.cc: Likewise. + * intrinsics.cc: Likewise. + * modules.cc: Likewise. + * runtime.cc: Likewise. + * toir.cc: Likewise. + * typeinfo.cc: Likewise. + * types.cc: Likewise. + +2018-07-14 Iain Buclaw + + * types.cc (same_type_p): Check type codes match before checking + equivalence. + +2018-07-09 Iain Buclaw + + * Makefile.in (d/verstr.h): Remove recipe. + (d.mostlyclean): Remove cleanup of verstr.h. + * verstr.h: New file. + +2018-07-06 Iain Buclaw + + * d-codegen.cc (lower_struct_comparison): Evaluate side effects of + empty struct. + (build_struct_comparison): Likewise. + +2018-07-06 Iain Buclaw + + * typeinfo.cc (TypeInfoVisitor::layout_interfaces): Only generate an + interface vtable for classes. + (TypeInfoVisitor::visit(TypeInfoClassDeclaration)): Likewise. + +2018-07-05 Iain Buclaw + + * d-lang.cc (deps_write): Ignore __main module. + (d_handle_option): Handle -fmain option. + (d_parse_file): Generate D main function if requested. + * lang.opt (fmain): New option. + +2018-07-04 Iain Buclaw + + * d-builtins.cc (d_build_builtins_module): Export __builtin_clonglong + and __builtin_culonglong to gcc builtins module. + +2018-07-04 Eugene Wissner + + * d-spec.c: Include opt-suggestions.h containing option_proposer used by + gcc.h. + +2018-07-01 Iain Buclaw + + * decl.cc (get_symbol_decl): Implicitly convert return type of 'void' + main to 'int' for both C and D entry functions. + * toir.cc (IRVisitor::visit(ReturnStatement)): Likewise. + +2018-06-30 Iain Buclaw + + * expr.cc (ExprVisitor::visit(FuncExp)): Don't error about nested + delegate literals. + +2018-06-29 Iain Buclaw + + * d-frontend.cc (eval_builtin): Allow both gcc and frontend builtins. + * intrinsics.cc (call_builtin_fn): Use convert. + (expand_intrinsic_sqrt): Use fold_convert. + (expand_intrinsic_copysign): New function. + (expand_intrinsic_pow): New function. + (maybe_expand_intrinsic): Handle many math intrinsics. + * intrinsics.def (EXPM1, EXP2, LOG, LOG2, LOG10, ROUND, FLOORF), + (FLOOR, FLOORL, CEILF, CEIL, CEILL, TRUNC, FMIN, FMAX, COPYSIGN), + (POW, FMA): Add math intrinsics. + +2018-06-27 Iain Buclaw + + * d-codegen.cc (find_aggregate_field): Move to decl.cc + (build_class_instance): Move to decl.cc, make static. + * d-tree.h (build_class_instance): Remove declaration. + * decl.cc (DeclVisitor::finish_vtable): New function. + +2018-06-26 Iain Buclaw + + * types.cc (TypeVisitor::visit(TypeClass)): Handle get_symbol_decl + returning an error_mark_node. + +2018-06-22 Iain Buclaw + + * decl.cc (DeclVisitor::visit(FuncDeclaration)): Move function + unnesting to... + (get_symbol_decl): ... here. + +2018-06-22 Iain Buclaw + + * d-lang.cc (d_post_options): Set global showColumns parameter. + +2018-06-22 Iain Buclaw + + * d-diagnostic.cc (expand_format): Handle whitespace format specifier. + (d_diagnostic_report_diagnostic): Change signature, updated all + callers. Handle writing messages verbatim. + (vmessage): New function. + * d-lang.cc (d_parse_file): Use message to emit verbose diagnostics. + * decl.cc (DeclVisitor::visit(FuncDeclaration)): Likewise. + (get_symbol_decl): Likewise. + +2018-06-22 Iain Buclaw + + * d-builtins.cc (build_frontend_type): Use Type::merge2 to merge + generated front-end types. + * d-codegen.cc (declaration_type): Likewise. + (type_passed_as): Likewise. + * d-convert.cc (convert_expr): Use ClassDeclaration::isCPPclass. + * d-lang.cc (d_build_eh_runtime_type): Likewise. + * toir.cc (IRVisitor::visit): Use ClassDecalration::isCPPclass. + * typeinfo.cc (TypeInfoVisitor::visit): Use Type::merge2 to merge + generated front-end types. + * types.cc (layout_aggregate_type): Use ClassDeclaration::isCPPclass. + +2018-05-28 Iain Buclaw + + * expr.cc (ExprVisitor::visit(StringExp)): Copy string literal from + the frontend to a null terminated string. + +2018-05-21 Iain Buclaw + + * expr.cc (ExprVisitor::binary_op): Don't do complex conversions if + already handling excess precision. + +2018-04-02 Iain Buclaw + + * d-lang.cc (doing_semantic_analysis_p): New variable. + (d_parse_file): Set when in semantic pass. + * d-tree.h (doing_semantic_analysis_p): Add declaration. + * intrinsics.cc (maybe_expand_intrinsic): Test for + doing_semantic_analysis_p. + +2018-03-18 Iain Buclaw + + * d-codegen.cc (stabilize_expr): Move modify expression rewrite... + * expr.cc (ExprVisitor::binop_assignment): ... here. + +2018-03-11 Iain Buclaw + + * expr.cc (ExprVisitor::visit(StringExp)): Include null terminator + in length when calling build_String. Generate static array string + literals as array constructors. + +2018-03-04 Iain Buclaw + + * d-lang.cc (d_handle_option): Rename OPT_fintfc cases to OPT_H. + * gdc.texi (Code Generation): Rename -fintfc options to -H. + * lang-specs.h: Add H, Hd, and Hf options. + * lang.opt (H, Hd, Hf): New options. + (fintfc, fintfc-dir=, fintfc-file=): Deprecate and alias new options. + +2018-03-04 Iain Buclaw + + * lang.opt (fdeps, fdeps=): Deprecate options. + * gdc.texi (Code Generation): Remove deprecated fdeps options. + +2018-02-25 Iain Buclaw + + * Make-lang.in (D_FRONTEND_OBJS): Remove inline.o and inlinecost.o. + +2018-02-24 Iain Buclaw + + * d-frontend.cc (CTFloat::fabs): Assign result to real_t directly. + (CTFloat::ldexp): Likewise. + * d-longdouble.cc (longdouble::from_int): Remove function. + (longdouble::from_uint): Likewise. + (longdouble::to_int): Update Signature. + (longdouble::to_uint): Likewise. + (longdouble::operator): Likewise. + (longdouble::add): New function, move operator overload headers. + (longdouble::sub, longdouble::mul, longdouble::div): Likewise. + (longdouble::mod, longdouble::neg): Likewise. + (longdouble::cmp, longdouble::equals): Likewise. + * d-target.cc (Target::_init): Construct assignment into real_t + directly. + +2018-02-19 Iain Buclaw + + * Make-lang.in (DMD_WARN_CXXFLAGS): Only filter out + -Wmissing-format-attribute from WARN_CXXFLAGS. + +2018-02-18 Iain Buclaw + + * d-builtins.cc (build_frontend_type): Set alignment of structs in + frontend. + +2018-02-17 Iain Buclaw + + * d-incpath.cc (add_environment_paths): Remove function. + * gdc.texi (Environment Variables): Remove section. + +2018-02-10 Iain Buclaw + + * expr.cc (ExprVisitor::AssertExp): Use builtin expect to mark assert + condition as being likely true. + +2018-02-11 Iain Buclaw + + * lang.opt (fd-vgc, fd-verbose, fd-vtls): Remove options. + (femit-moduleinfo, femit-templates): Likewise. + (fmake-deps, fmake-mdeps): Likewise. + (fin, fout, fXf): Likewise. + +2018-01-28 Iain Buclaw + + * gdc.texi (Runtime Options): Remove deprecated -fproperty option. + +2018-01-27 Iain Buclaw + + * d-lang.cc (d_gimplify_expr): Gimplify all CALL_EXPR_ARGS_ORDERED + call arguments, not just non-constant. + +2018-01-27 Iain Buclaw + + * decl.cc (DeclVisitor::visit(VarDeclaration)): Don't reuse existing + temporary for TARGET_EXPR. + (declare_local_var): Push all variables to current binding level. + +2018-01-27 Iain Buclaw + + * toir.cc (build_function_body): Set input_location. + +2018-01-23 Iain Buclaw + + * d-codegen.cc (build_frame_type): Don't add chain field for + functions without context pointer. + (build_closure): Don't set chain field for functions without context + pointer. + +2018-01-21 Iain Buclaw + + * decl.cc (DeclVisitor::visit(StructDeclaration)): Mark compiler + generated symbols as DECL_ONE_ONLY instead of DECL_COMDAT. + (DeclVisitor::visit(ClassDeclaration)): Likewise. + (DeclVisitor::visit(InterfaceDeclaration)): Likewise. + (DeclVisitor::visit(EnumDeclaration)): Likewise. + (get_symbol_decl): Mark template instantiations as DECL_ONE_ONLY + instead of DECL_COMDAT. Don't call mark_needed. + (declare_extern_var): Don't call mark_needed. + (d_finish_decl): Remove zero initializer for common symbols. + (finish_thunk): Don't call d_comdat_linkage on generic thunk. + (d_comdat_linkage): Don't set DECL_DECLARED_INLINE on functions. + * typeinfo.cc (TypeInfoDeclVisitor::visit(TypeInfoDeclaration)): Mark + built-in typeinfo symbols as DECL_ONE_ONLY instead of DECL_COMDAT. + +2018-01-21 Iain Buclaw + + * d-lang.cc (d_init): Disable flag_weak if not supported. + * decl.cc (d_comdat_linkage): Use flag_weak to guard setting + DECL_ONE_ONLY on decls. + (d_linkonce_linkage): New function. + * gdc.texi (Runtime Options): Document -fweak. + * lang.opt (fweak): Declare. + +2018-01-21 Iain Buclaw + + * decls.cc (get_symbol_decl): Use attribute to mark naked functions. + +2018-01-08 Eugene Wissner + + * d-builtins.cc (d_eval_constant_expression): Handle polynomial + VECTOR_CST_NELTS. + (build_frontend_type): Handle polynomial TYPE_VECTOR_SUBPARTS. + +2018-01-08 Iain Buclaw + + Update copyright years. + +Copyright (C) 2018 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/config-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/config-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/config-lang.in 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/config-lang.in 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # config-lang.in -- Top level configure fragment for gcc D frontend. -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # GCC is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-attribs.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-attribs.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-attribs.cc 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-attribs.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* d-attribs.c -- D attributes handling. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-builtins.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-builtins.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-builtins.cc 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-builtins.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* d-builtins.cc -- GCC builtins support for D. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-codegen.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-codegen.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-codegen.cc 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-codegen.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* d-codegen.cc -- Code generation and routines for manipulation of GCC trees. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-convert.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-convert.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-convert.cc 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-convert.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* d-convert.cc -- Data type conversion routines. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-diagnostic.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-diagnostic.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-diagnostic.cc 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-diagnostic.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* d-diagnostics.cc -- D frontend interface to gcc diagnostics. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/decl.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/decl.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/decl.cc 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/decl.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* decl.cc -- Lower D frontend declarations to GCC trees. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-frontend.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-frontend.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-frontend.cc 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-frontend.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* d-frontend.cc -- D frontend interface to the gcc back-end. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-incpath.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-incpath.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-incpath.cc 2018-11-26 09:16:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-incpath.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* d-incpath.cc -- Set up combined import paths for the D frontend. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-lang.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-lang.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-lang.cc 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-lang.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* d-lang.cc -- Language-dependent hooks for D. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-longdouble.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-longdouble.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-longdouble.cc 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-longdouble.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* d-longdouble.cc -- Software floating-point emulation for the frontend. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/dmd/dclass.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/dmd/dclass.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/dmd/dclass.c 2018-11-05 08:45:35.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/dmd/dclass.c 2018-12-18 00:25:19.000000000 +0000 @@ -805,7 +805,7 @@ if (fd && !fd->errors) { //printf("Creating default this(){} for class %s\n", toChars()); - TypeFunction *btf = (TypeFunction *)fd->type; + TypeFunction *btf = fd->type->toTypeFunction(); TypeFunction *tf = new TypeFunction(NULL, NULL, 0, LINKd, fd->storage_class); tf->mod = btf->mod; tf->purity = btf->purity; @@ -1152,7 +1152,7 @@ bool ClassDeclaration::isFuncHidden(FuncDeclaration *fd) { - //printf("ClassDeclaration::isFuncHidden(class = %s, fd = %s)\n", toChars(), fd->toChars()); + //printf("ClassDeclaration::isFuncHidden(class = %s, fd = %s)\n", toChars(), fd->toPrettyChars()); Dsymbol *s = search(Loc(), fd->ident, IgnoreAmbiguous | IgnoreErrors); if (!s) { @@ -1749,6 +1749,7 @@ //printf("\tX base %s\n", b->sym->toChars()); if (this == b->sym) { + //printf("\tfound at offset %d\n", b->offset); if (poffset) { // don't return incorrect offsets https://issues.dlang.org/show_bug.cgi?id=16980 @@ -1882,8 +1883,7 @@ assert(ifd); // Find corresponding function in this class - tf = (ifd->type->ty == Tfunction) ? (TypeFunction *)(ifd->type) : NULL; - assert(tf); // should always be non-null + tf = ifd->type->toTypeFunction(); fd = cd->findFunc(ifd->ident, tf); if (fd && !fd->isAbstract()) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/dmd/dstruct.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/dmd/dstruct.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/dmd/dstruct.c 2018-11-05 08:45:35.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/dmd/dstruct.c 2018-12-18 00:25:19.000000000 +0000 @@ -46,7 +46,7 @@ if (!tftostring) { tftostring = new TypeFunction(NULL, Type::tstring, 0, LINKd); - tftostring = (TypeFunction *)tftostring->merge(); + tftostring = tftostring->merge()->toTypeFunction(); } fd = fd->overloadExactMatch(tftostring); @@ -92,6 +92,7 @@ } void visit(TypeStruct *t) { + //printf("semanticTypeInfo::visit(TypeStruct = %s)\n", t->toChars()); StructDeclaration *sd = t->sym; /* Step 1: create TypeInfoDeclaration diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/dmd/func.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/dmd/func.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/dmd/func.c 2018-11-05 08:45:35.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/dmd/func.c 2018-12-18 00:25:19.000000000 +0000 @@ -411,8 +411,8 @@ */ static void initInferAttributes(FuncDeclaration *fd) { - assert(fd->type->ty == Tfunction); - TypeFunction *tf = (TypeFunction *)fd->type; + //printf("initInferAttributes() for %s\n", toPrettyChars()); + TypeFunction *tf = fd->type->toTypeFunction(); if (tf->purity == PUREimpure) // purity not specified fd->flags |= FUNCFLAGpurityInprocess; @@ -495,7 +495,7 @@ fld->tok = TOKfunction; else assert(0); - linkage = ((TypeFunction *)treq->nextOf())->linkage; + linkage = treq->nextOf()->toTypeFunction()->linkage; } else linkage = sc->linkage; @@ -505,11 +505,21 @@ if (!originalType) originalType = type->syntaxCopy(); + if (type->ty != Tfunction) + { + if (type->ty != Terror) + { + error("%s must be a function instead of %s", toChars(), type->toChars()); + type = Type::terror; + } + errors = true; + return; + } if (!type->deco) { sc = sc->push(); sc->stc |= storage_class & (STCdisable | STCdeprecated); // forward to function type - TypeFunction *tf = (TypeFunction *)type; + TypeFunction *tf = type->toTypeFunction(); if (sc->func) { @@ -678,8 +688,8 @@ { // Merge back function attributes into 'originalType'. // It's used for mangling, ddoc, and json output. - TypeFunction *tfo = (TypeFunction *)originalType; - TypeFunction *tfx = (TypeFunction *)type; + TypeFunction *tfo = originalType->toTypeFunction(); + TypeFunction *tfx = type->toTypeFunction(); tfo->mod = tfx->mod; tfo->isscope = tfx->isscope; tfo->isscopeinferred = tfx->isscopeinferred; @@ -1132,8 +1142,7 @@ error("override only applies to class member functions"); // Reflect this->type to f because it could be changed by findVtblIndex - assert(type->ty == Tfunction); - f = (TypeFunction *)type; + f = type->toTypeFunction(); /* Do not allow template instances to add virtual functions * to a class. @@ -2560,8 +2569,7 @@ if (sc && vresult->semanticRun == PASSinit) { - assert(type->ty == Tfunction); - TypeFunction *tf = (TypeFunction *)type; + TypeFunction *tf = type->toTypeFunction(); if (tf->isref) vresult->storage_class |= STCref; vresult->type = tret; @@ -3135,7 +3143,7 @@ return 0; m->anyf = f; - TypeFunction *tf = (TypeFunction *)f->type; + TypeFunction *tf = f->type->toTypeFunction(); //printf("tf = %s\n", tf->toChars()); MATCH match; @@ -3205,7 +3213,7 @@ else // no match { hasOverloads = true; - TypeFunction *tf = (TypeFunction *)this->type; + TypeFunction *tf = this->type->toTypeFunction(); assert(tthis); assert(!MODimplicitConv(tthis->mod, tf->mod)); // modifier mismatch { @@ -3270,8 +3278,8 @@ * as g() is. */ - TypeFunction *tf = (TypeFunction *)type; - TypeFunction *tg = (TypeFunction *)g->type; + TypeFunction *tf = type->toTypeFunction(); + TypeFunction *tg = g->type->toTypeFunction(); size_t nfparams = Parameter::dim(tf->parameters); /* If both functions have a 'this' pointer, and the mods are not @@ -3524,7 +3532,7 @@ assert(fd); bool hasOverloads = fd->overnext != NULL; - TypeFunction *tf = (TypeFunction *)fd->type; + TypeFunction *tf = fd->type->toTypeFunction(); if (tthis && !MODimplicitConv(tthis->mod, tf->mod)) // modifier mismatch { OutBuffer thisBuf, funcBuf; @@ -3562,8 +3570,8 @@ } else if (m.nextf) { - TypeFunction *tf1 = (TypeFunction *)m.lastf->type; - TypeFunction *tf2 = (TypeFunction *)m.nextf->type; + TypeFunction *tf1 = m.lastf->type->toTypeFunction(); + TypeFunction *tf2 = m.nextf->type->toTypeFunction(); const char *lastprms = parametersTypeToChars(tf1->parameters, tf1->varargs); const char *nextprms = parametersTypeToChars(tf2->parameters, tf2->varargs); ::error(loc, "%s.%s called with argument types %s matches both:\n" @@ -3679,7 +3687,7 @@ const char *FuncDeclaration::toFullSignature() { OutBuffer buf; - functionToBufferWithIdent((TypeFunction *)type, &buf, toChars()); + functionToBufferWithIdent(type->toTypeFunction(), &buf, toChars()); return buf.extractString(); } @@ -3776,8 +3784,7 @@ PURE FuncDeclaration::isPure() { //printf("FuncDeclaration::isPure() '%s'\n", toChars()); - assert(type->ty == Tfunction); - TypeFunction *tf = (TypeFunction *)type; + TypeFunction *tf = type->toTypeFunction(); if (flags & FUNCFLAGpurityInprocess) setImpure(); if (tf->purity == PUREfwdref) @@ -3829,10 +3836,9 @@ bool FuncDeclaration::isSafe() { - assert(type->ty == Tfunction); if (flags & FUNCFLAGsafetyInprocess) setUnsafe(); - return ((TypeFunction *)type)->trust == TRUSTsafe; + return type->toTypeFunction()->trust == TRUSTsafe; } bool FuncDeclaration::isSafeBypassingInference() @@ -3842,10 +3848,9 @@ bool FuncDeclaration::isTrusted() { - assert(type->ty == Tfunction); if (flags & FUNCFLAGsafetyInprocess) setUnsafe(); - return ((TypeFunction *)type)->trust == TRUSTtrusted; + return type->toTypeFunction()->trust == TRUSTtrusted; } /************************************** @@ -3858,7 +3863,7 @@ if (flags & FUNCFLAGsafetyInprocess) { flags &= ~FUNCFLAGsafetyInprocess; - ((TypeFunction *)type)->trust = TRUSTsystem; + type->toTypeFunction()->trust = TRUSTsystem; if (fes) fes->func->setUnsafe(); } @@ -3869,10 +3874,9 @@ bool FuncDeclaration::isNogc() { - assert(type->ty == Tfunction); if (flags & FUNCFLAGnogcInprocess) setGC(); - return ((TypeFunction *)type)->isnogc; + return type->toTypeFunction()->isnogc; } bool FuncDeclaration::isNogcBypassingInference() @@ -3891,7 +3895,7 @@ if (flags & FUNCFLAGnogcInprocess) { flags &= ~FUNCFLAGnogcInprocess; - ((TypeFunction *)type)->isnogc = false; + type->toTypeFunction()->isnogc = false; if (fes) fes->func->setGC(); } @@ -4000,8 +4004,7 @@ bool FuncDeclaration::isolateReturn() { - assert(type->ty == Tfunction); - TypeFunction *tf = (TypeFunction *)type; + TypeFunction *tf = type->toTypeFunction(); assert(tf->next); Type *treti = tf->next; @@ -4022,8 +4025,7 @@ if (!isPureBypassingInference() || isNested()) return false; - assert(type->ty == Tfunction); - TypeFunction *tf = (TypeFunction *)type; + TypeFunction *tf = type->toTypeFunction(); //printf("parametersIntersect(%s) t = %s\n", tf->toChars(), t->toChars()); @@ -4229,7 +4231,7 @@ */ void FuncDeclaration::checkDmain() { - TypeFunction *tf = (TypeFunction *)type; + TypeFunction *tf = type->toTypeFunction(); const size_t nparams = Parameter::dim(tf->parameters); bool argerr = false; if (nparams == 1) @@ -4608,8 +4610,7 @@ if (type) { - assert(type->ty == Tfunction); - TypeFunction *fdtype = (TypeFunction *)type; + TypeFunction *fdtype = type->toTypeFunction(); fparameters = fdtype->parameters; fvarargs = fdtype->varargs; } @@ -4752,7 +4753,7 @@ // This is required so the code generator does not try to cast the // modified returns back to the original type. if (inferRetType && type->nextOf() != tret) - ((TypeFunction *)type)->next = tret; + type->toTypeFunction()->next = tret; } const char *FuncLiteralDeclaration::kind() const @@ -4820,8 +4821,7 @@ if (errors) return; - TypeFunction *tf = (TypeFunction *)type; - assert(tf && tf->ty == Tfunction); + TypeFunction *tf = type->toTypeFunction(); /* See if it's the default constructor * But, template constructor should not become a default constructor. @@ -5502,10 +5502,9 @@ type = new TypeFunction(parameters, tret, varargs, LINKd, storage_class); type = type->semantic(loc, sc); - assert(type->ty == Tfunction); // Check that there is at least one argument of type size_t - TypeFunction *tf = (TypeFunction *)type; + TypeFunction *tf = type->toTypeFunction(); if (Parameter::dim(tf->parameters) < 1) { error("at least one argument of type size_t expected"); @@ -5581,10 +5580,9 @@ type = new TypeFunction(parameters, Type::tvoid, 0, LINKd, storage_class); type = type->semantic(loc, sc); - assert(type->ty == Tfunction); // Check that there is only one argument of type void* - TypeFunction *tf = (TypeFunction *)type; + TypeFunction *tf = type->toTypeFunction(); if (Parameter::dim(tf->parameters) != 1) { error("one argument of type void* expected"); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/dmd/MERGE gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/dmd/MERGE --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/dmd/MERGE 2018-12-10 19:27:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/dmd/MERGE 2018-12-18 00:25:19.000000000 +0000 @@ -1,4 +1,4 @@ -e2fe2687b817a201528abaa3aa882333e04db01b +237ca3fbe8f9ac4b64e26ce912c20439ee4fc63a The first line of this file holds the git revision number of the last merge done from the dlang/dmd repository. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/dmd/mtype.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/dmd/mtype.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/dmd/mtype.c 2018-12-10 19:27:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/dmd/mtype.c 2018-12-18 00:25:19.000000000 +0000 @@ -2345,6 +2345,12 @@ return NULL; } +TypeFunction *Type::toTypeFunction() +{ + if (ty != Tfunction) + assert(0); + return (TypeFunction *)this; +} /*************************************** * Resolve 'this' type to either type, symbol, or expression. @@ -4808,14 +4814,14 @@ Parameters *fparams = new Parameters(); fparams->push(new Parameter(STCin, this, NULL, NULL)); fd_aaLen = FuncDeclaration::genCfunc(fparams, Type::tsize_t, Id::aaLen); - TypeFunction *tf = (TypeFunction *)fd_aaLen->type; + TypeFunction *tf = fd_aaLen->type->toTypeFunction(); tf->purity = PUREconst; tf->isnothrow = true; tf->isnogc = false; } Expression *ev = new VarExp(e->loc, fd_aaLen, false); e = new CallExp(e->loc, ev, e); - e->type = ((TypeFunction *)fd_aaLen->type)->next; + e->type = fd_aaLen->type->toTypeFunction()->next; } else e = Type::dotExp(sc, e, ident, flag); @@ -5425,7 +5431,7 @@ * This can produce redundant copies if inferring return type, * as semantic() will get called again on this. */ - TypeFunction *tf = (TypeFunction *)copy(); + TypeFunction *tf = copy()->toTypeFunction(); if (parameters) { tf->parameters = parameters->copy(); @@ -6283,7 +6289,7 @@ Type *TypeFunction::addStorageClass(StorageClass stc) { //printf("addStorageClass(%llx) %d\n", stc, (stc & STCscope) != 0); - TypeFunction *t = (TypeFunction *)Type::addStorageClass(stc); + TypeFunction *t = Type::addStorageClass(stc)->toTypeFunction(); if ((stc & STCpure && !t->purity) || (stc & STCnothrow && !t->isnothrow) || (stc & STCnogc && !t->isnogc) || @@ -9181,7 +9187,7 @@ if (tel->ty == Tdelegate) { TypeDelegate *td = (TypeDelegate *)tel; - TypeFunction *tf = (TypeFunction *)td->next; + TypeFunction *tf = td->next->toTypeFunction(); if (!tf->varargs && Parameter::dim(tf->parameters) == 0) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/dmd/mtype.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/dmd/mtype.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/dmd/mtype.h 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/dmd/mtype.h 2018-12-18 00:25:19.000000000 +0000 @@ -335,6 +335,7 @@ virtual bool needsDestruction(); virtual bool needsNested(); void checkComplexTransition(Loc loc); + TypeFunction *toTypeFunction(); static void error(Loc loc, const char *format, ...); static void warning(Loc loc, const char *format, ...); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/dmd/root/dsystem.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/dmd/root/dsystem.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/dmd/root/dsystem.h 2018-11-05 08:45:35.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/dmd/root/dsystem.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* dsystem.h -- Get common system includes from the host. - * Copyright (C) 2018 Free Software Foundation, Inc. + * Copyright (C) 2018-2019 Free Software Foundation, Inc. * * GCC is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-spec.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-spec.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-spec.cc 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-spec.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* d-spec.c -- Specific flags and argument handling of the D front end. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-system.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-system.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-system.h 2018-11-05 08:45:35.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-system.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* d-system.h -- DMD frontend inclusion of gcc header files. - * Copyright (C) 2018 Free Software Foundation, Inc. + * Copyright (C) 2018-2019 Free Software Foundation, Inc. * * GCC is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-target.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-target.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-target.cc 2018-11-20 10:31:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-target.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* d-target.cc -- Target interface for the D front end. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-target.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-target.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-target.def 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-target.def 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* d-target.def -- Target hook definitions for the D front end. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-target-def.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-target-def.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-target-def.h 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-target-def.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* d-target-def.h -- Default initializers for D target hooks. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-target.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-target.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-target.h 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-target.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* d-target.h -- Data structure definitions for target-specific D behavior. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-tree.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-tree.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-tree.def 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-tree.def 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* d-tree.def -- Definitions and documentation for additional tree codes used in the D compiler (see tree.def for standard codes). - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-tree.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-tree.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/d-tree.h 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/d-tree.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* d-tree.h -- Definitions and declarations for code generation. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/expr.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/expr.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/expr.cc 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/expr.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* expr.cc -- Lower D frontend expressions to GCC trees. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/gdc.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/gdc.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/gdc.texi 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/gdc.texi 2019-01-02 08:05:15.000000000 +0000 @@ -12,7 +12,7 @@ @include gcc-common.texi @c Copyright years for this manual. -@set copyrights-d 2006-2018 +@set copyrights-d 2006-2019 @copying @c man begin COPYRIGHT diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/imports.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/imports.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/imports.cc 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/imports.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* imports.cc -- Build imported modules/declarations. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/intrinsics.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/intrinsics.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/intrinsics.cc 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/intrinsics.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* intrinsics.cc -- D language compiler intrinsics. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/intrinsics.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/intrinsics.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/intrinsics.def 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/intrinsics.def 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* intrinsics.def -- Definitions for D compiler intrinsics. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/lang.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/lang.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/lang.opt 2018-11-01 16:06:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/lang.opt 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ ; lang.opt -- Options for the D front end. -; Copyright (C) 2006-2018 Free Software Foundation, Inc. +; Copyright (C) 2006-2019 Free Software Foundation, Inc. ; ; GCC is free software; you can redistribute it and/or modify it under ; the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/lang-specs.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/lang-specs.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/lang-specs.h 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/lang-specs.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* lang-specs.h -- GCC driver specs for D frontend. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/longdouble.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/longdouble.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/longdouble.h 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/longdouble.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* longdouble.h -- Definitions of floating-point access for the frontend. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/Make-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/Make-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/Make-lang.in 2018-11-01 16:06:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/Make-lang.in 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Make-lang.in -- Top level -*- makefile -*- fragment for the D frontend. -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # GCC is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/modules.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/modules.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/modules.cc 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/modules.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* modules.cc -- D module initialization and termination. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/runtime.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/runtime.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/runtime.cc 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/runtime.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* runtime.cc -- D runtime functions called by generated code. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/runtime.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/runtime.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/runtime.def 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/runtime.def 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* runtime.def -- Definitions for D runtime functions. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/toir.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/toir.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/toir.cc 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/toir.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* toir.cc -- Lower D frontend statements to GCC trees. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/typeinfo.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/typeinfo.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/typeinfo.cc 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/typeinfo.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* typeinfo.cc -- D runtime type identification. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/types.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/types.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/d/types.cc 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/d/types.cc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* types.cc -- Lower D frontend types to GCC trees. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/data-streamer.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/data-streamer.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/data-streamer.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/data-streamer.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Generic streaming support for basic data types. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/data-streamer.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/data-streamer.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/data-streamer.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/data-streamer.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Generic streaming support for various data types. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/data-streamer-in.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/data-streamer-in.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/data-streamer-in.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/data-streamer-in.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ /* Routines for restoring various data types from a file stream. This deals with various data types like strings, integers, enums, etc. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/data-streamer-out.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/data-streamer-out.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/data-streamer-out.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/data-streamer-out.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,7 +1,7 @@ /* Routines for saving various data types to a file stream. This deals with various data types like strings, integers, enums, etc. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/DATESTAMP gcc-snapshot-20190102/=unpacked-tar1=/gcc/DATESTAMP --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/DATESTAMP 2018-12-14 05:16:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/DATESTAMP 2019-01-02 08:05:16.000000000 +0000 @@ -1 +1 @@ -20181214 +20190102 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dbgcnt.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/dbgcnt.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dbgcnt.c 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dbgcnt.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Debug counter for debugging support - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dbgcnt.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/dbgcnt.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dbgcnt.def 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dbgcnt.def 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* This file contains the list of the debug counter for GCC. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dbgcnt.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/dbgcnt.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dbgcnt.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dbgcnt.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Debug counter for debugging support - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dbxout.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/dbxout.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dbxout.c 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dbxout.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Output dbx-format symbol table information from GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dbxout.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/dbxout.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dbxout.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dbxout.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* dbxout.h - Various declarations for functions found in dbxout.c - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dce.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/dce.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dce.c 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dce.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* RTL dead code elimination. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dce.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/dce.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dce.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dce.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* RTL dead code elimination. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ddg.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ddg.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ddg.c 2018-04-04 17:11:16.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ddg.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* DDG - Data Dependence Graph implementation. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Ayal Zaks and Mustafa Hagog This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ddg.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ddg.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ddg.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ddg.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* DDG - Data Dependence Graph - interface. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Ayal Zaks and Mustafa Hagog This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/debug.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/debug.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/debug.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/debug.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Do-nothing debug hooks for GCC. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/debug.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/debug.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/debug.h 2018-08-02 03:04:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/debug.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Debug hooks for GCC. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/defaults.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/defaults.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/defaults.h 2018-08-02 03:04:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/defaults.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of various defaults for tm.h macros. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Contributed by Ron Guilmette (rfg@monkeys.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/df-core.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/df-core.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/df-core.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/df-core.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Allocation for dataflow support routines. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Originally contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz, mhayes@redhat.com) Major rewrite contributed by Danny Berlin (dberlin@dberlin.org) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/df.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/df.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/df.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/df.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Form lists of pseudo register references for autoinc optimization for GNU compiler. This is part of flow optimization. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Originally contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz, mhayes@redhat.com) Major rewrite contributed by Danny Berlin (dberlin@dberlin.org) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dfp.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/dfp.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dfp.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dfp.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Decimal floating point support. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dfp.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/dfp.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dfp.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dfp.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Decimal floating point support functions for GNU compiler. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/df-problems.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/df-problems.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/df-problems.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/df-problems.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Standard problems for dataflow support routines. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Originally contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz, mhayes@redhat.com) Major rewrite contributed by Danny Berlin (dberlin@dberlin.org) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/df-scan.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/df-scan.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/df-scan.c 2018-08-12 11:28:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/df-scan.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Scanning of rtl for dataflow analysis. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Originally contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz, mhayes@redhat.com) Major rewrite contributed by Danny Berlin (dberlin@dberlin.org) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/diagnostic.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/diagnostic.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/diagnostic.c 2018-12-04 09:51:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/diagnostic.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Language-independent diagnostic subroutines for the GNU Compiler Collection - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Gabriel Dos Reis This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/diagnostic-color.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/diagnostic-color.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/diagnostic-color.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/diagnostic-color.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Output colorization. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/diagnostic-color.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/diagnostic-color.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/diagnostic-color.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/diagnostic-color.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Manuel Lopez-Ibanez This file is part of GCC. @@ -19,7 +19,7 @@ /* Based on code from: */ /* grep.c - main driver file for grep. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/diagnostic-core.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/diagnostic-core.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/diagnostic-core.h 2018-12-04 09:51:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/diagnostic-core.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,7 +1,7 @@ /* Declarations of core diagnostic functionality for code that does not need to deal with diagnostic contexts or diagnostic info structures. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/diagnostic.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/diagnostic.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/diagnostic.def 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/diagnostic.def 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2018 Free Software Foundation, Inc. +/* Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/diagnostic-format-json.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/diagnostic-format-json.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/diagnostic-format-json.cc 2018-11-20 10:31:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/diagnostic-format-json.cc 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* JSON output for diagnostics - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/diagnostic.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/diagnostic.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/diagnostic.h 2018-11-28 13:52:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/diagnostic.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Various declarations for language-independent diagnostics subroutines. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Gabriel Dos Reis This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/diagnostic-show-locus.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/diagnostic-show-locus.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/diagnostic-show-locus.c 2018-11-28 13:52:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/diagnostic-show-locus.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Diagnostic subroutines for printing source-code - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Gabriel Dos Reis This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/avr-mmcu.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/avr-mmcu.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/avr-mmcu.texi 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/avr-mmcu.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2012-2018 Free Software Foundation, Inc. +@c Copyright (C) 2012-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc/doc/include/fdl.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/bugreport.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/bugreport.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/bugreport.texi 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/bugreport.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/cfg.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/cfg.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/cfg.texi 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/cfg.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ @c -*-texinfo-*- -@c Copyright (C) 2001-2018 Free Software Foundation, Inc. +@c Copyright (C) 2001-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/collect2.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/collect2.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/collect2.texi 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/collect2.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/compat.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/compat.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/compat.texi 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/compat.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2002-2018 Free Software Foundation, Inc. +@c Copyright (C) 2002-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/configfiles.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/configfiles.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/configfiles.texi 2018-03-06 16:36:58.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/configfiles.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/configterms.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/configterms.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/configterms.texi 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/configterms.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2001-2018 Free Software Foundation, Inc. +@c Copyright (C) 2001-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/contrib.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/contrib.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/contrib.texi 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/contrib.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/contribute.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/contribute.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/contribute.texi 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/contribute.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/cppdiropts.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/cppdiropts.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/cppdiropts.texi 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/cppdiropts.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1999-2018 Free Software Foundation, Inc. +@c Copyright (C) 1999-2019 Free Software Foundation, Inc. @c This is part of the CPP and GCC manuals. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/cppenv.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/cppenv.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/cppenv.texi 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/cppenv.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1999-2018 Free Software Foundation, Inc. +@c Copyright (C) 1999-2019 Free Software Foundation, Inc. @c This is part of the CPP and GCC manuals. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/cppinternals.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/cppinternals.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/cppinternals.texi 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/cppinternals.texi 2019-01-02 08:05:15.000000000 +0000 @@ -18,7 +18,7 @@ @ifinfo This file documents the internals of the GNU C Preprocessor. -Copyright (C) 2000-2018 Free Software Foundation, Inc. +Copyright (C) 2000-2019 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -47,7 +47,7 @@ @page @vskip 0pt plus 1filll @c man begin COPYRIGHT -Copyright @copyright{} 2000-2018 Free Software Foundation, Inc. +Copyright @copyright{} 2000-2019 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/cppopts.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/cppopts.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/cppopts.texi 2018-04-10 16:02:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/cppopts.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1999-2018 Free Software Foundation, Inc. +@c Copyright (C) 1999-2019 Free Software Foundation, Inc. @c This is part of the CPP and GCC manuals. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/cpp.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/cpp.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/cpp.texi 2018-11-20 10:31:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/cpp.texi 2019-01-02 08:05:15.000000000 +0000 @@ -10,7 +10,7 @@ @copying @c man begin COPYRIGHT -Copyright @copyright{} 1987-2018 Free Software Foundation, Inc. +Copyright @copyright{} 1987-2019 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/cppwarnopts.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/cppwarnopts.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/cppwarnopts.texi 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/cppwarnopts.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1999-2018 Free Software Foundation, Inc. +@c Copyright (C) 1999-2019 Free Software Foundation, Inc. @c This is part of the CPP and GCC manuals. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/extend.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/extend.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/extend.texi 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/extend.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -c Copyright (C) 1988-2018 Free Software Foundation, Inc. +c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. @@ -2522,7 +2522,7 @@ one or two integer arguments supplied to the attribute. The allocated size is either the value of the single function argument specified or the product of the two function arguments specified. Argument numbering starts at -one. +one for ordinary functions, and at two for C++ non-static member functions. For instance, @@ -2594,25 +2594,45 @@ @item const @cindex @code{const} function attribute @cindex functions that have no side effects -Many functions do not examine any values except their arguments, and -have no effects except to return a value. Calls to such functions lend -themselves to optimization such as common subexpression elimination. -The presence of the @code{const} attribute on a function declaration -allows GCC to emit more efficient code for some calls to the function. +Calls to functions whose return value is not affected by changes to +the observable state of the program and that have no observable effects +on such state other than to return a value may lend themselves to +optimizations such as common subexpression elimination. Declaring such +functions with the @code{const} attribute allows GCC to avoid emitting +some calls in repeated invocations of the function with the same argument +values. + +For example, + +@smallexample +int square (int) __attribute__ ((const)); +@end smallexample + +@noindent +tells GCC that subsequent calls to function @code{square} with the same +argument value can be replaced by the result of the first call regardless +of the statements in between. + +The @code{const} attribute prohibits a function from reading objects +that affect its return value between successive invocations. However, +functions declared with the attribute can safely read objects that do +not change their return value, such as non-volatile constants. The @code{const} attribute imposes greater restrictions on a function's -definition than the similar @code{pure} attribute below because it -additionally prohibits the function from reading memory except for -constant global variables. Decorating the same function with -both the @code{const} and the @code{pure} attribute is diagnosed. +definition than the similar @code{pure} attribute. Declaring the same +function with both the @code{const} and the @code{pure} attribute is +diagnosed. Because a const function cannot have any observable side +effects it does not make sense for it to return @code{void}. Declaring +such a function is diagnosed. @cindex pointer arguments Note that a function that has pointer arguments and examines the data -pointed to must @emph{not} be declared @code{const}. Likewise, a -function that calls a non-@code{const} function usually must not be -@code{const}. Because a @code{const} function cannot have any side -effects it does not make sense for such a function to return @code{void}. -Declaring such a function is diagnosed. +pointed to must @emph{not} be declared @code{const} if the pointed-to +data might change between successive invocations of the function. In +general, since a function cannot distinguish data that might change +from data that cannot, const functions should never take pointer or, +in C++, reference arguments. Likewise, a function that calls a non-const +function usually must not be const itself. @item constructor @itemx destructor @@ -3377,34 +3397,52 @@ @item pure @cindex @code{pure} function attribute @cindex functions that have no side effects -Many functions have no effects except the return value and their -return value depends only on the parameters and/or global variables. -Calls to such functions can be subject -to common subexpression elimination and loop optimization just as an -arithmetic operator would be. These functions should be declared -with the attribute @code{pure}. For example, + +Calls to functions that have no observable effects on the state of +the program other than to return a value may lend themselves to optimizations +such as common subexpression elimination. Declaring such functions with +the @code{pure} attribute allows GCC to avoid emitting some calls in repeated +invocations of the function with the same argument values. + +The @code{pure} attribute prohibits a function from modifying the state +of the program that is observable by means other than inspecting +the function's return value. However, functions declared with the @code{pure} +attribute can safely read any non-volatile objects, and modify the value of +objects in a way that does not affect their return value or the observable +state of the program. + +For example, @smallexample -int square (int) __attribute__ ((pure)); +int hash (char *) __attribute__ ((pure)); @end smallexample @noindent -says that the hypothetical function @code{square} is safe to call -fewer times than the program says. +tells GCC that subsequent calls to the function @code{hash} with the same +string can be replaced by the result of the first call provided the state +of the program observable by @code{hash}, including the contents of the array +itself, does not change in between. Even though @code{hash} takes a non-const +pointer argument it must not modify the array it points to, or any other object +whose value the rest of the program may depend on. However, the caller may +safely change the contents of the array between successive calls to +the function (doing so disables the optimization). The restriction also +applies to member objects referenced by the @code{this} pointer in C++ +non-static member functions. Some common examples of pure functions are @code{strlen} or @code{memcmp}. Interesting non-pure functions are functions with infinite loops or those depending on volatile memory or other system resource, that may change between -two consecutive calls (such as @code{feof} in a multithreading environment). +consecutive calls (such as the standard C @code{feof} function in +a multithreading environment). The @code{pure} attribute imposes similar but looser restrictions on a function's definition than the @code{const} attribute: @code{pure} -allows the function to read any non-volatile memory, not just -constant global variables. Decorating the same function with -both the @code{pure} and the @code{const} attribute is diagnosed. -Because a @code{pure} function cannot have any side effects it does not -make sense for such a function to return @code{void}. Declaring such -a function is diagnosed. +allows the function to read any non-volatile memory, even if it changes +in between successive invocations of the function. Declaring the same +function with both the @code{pure} and the @code{const} attribute is +diagnosed. Because a pure function cannot have any observable side +effects it does not make sense for such a function to return @code{void}. +Declaring such a function is diagnosed. @item returns_nonnull @cindex @code{returns_nonnull} function attribute @@ -4940,8 +4978,12 @@ @cindex @code{critical} function attribute, MSP430 Critical functions disable interrupts upon entry and restore the previous interrupt state upon exit. Critical functions cannot also -have the @code{naked} or @code{reentrant} attributes. They can have -the @code{interrupt} attribute. +have the @code{naked}, @code{reentrant} or @code{interrupt} attributes. + +The MSP430 hardware ensures that interrupts are disabled on entry to +@code{interrupt} functions, and restores the previous interrupt state +on exit. The @code{critical} attribute is therefore redundant on +@code{interrupt} functions. @item interrupt @cindex @code{interrupt} function attribute, MSP430 @@ -6095,6 +6137,13 @@ @} @end smallexample +@item cf_check +@cindex @code{cf_check} function attribute, x86 + +The @code{cf_check} attribute on a function is used to inform the +compiler that ENDBR instruction should be placed at the function +entry when @option{-fcf-protection=branch} is enabled. + @item indirect_return @cindex @code{indirect_return} function attribute, x86 @@ -6298,6 +6347,34 @@ The @code{warn_if_not_aligned} attribute can also be used for types (@pxref{Common Type Attributes}.) +@item alloc_size (@var{position}) +@itemx alloc_size (@var{position-1}, @var{position-2}) +@cindex @code{alloc_size} variable attribute +The @code{alloc_size} variable attribute may be applied to the declaration +of a pointer to a function that returns a pointer and takes at least one +argument of an integer type. It indicates that the returned pointer points +to an object whose size is given by the function argument at @var{position-1}, +or by the product of the arguments at @var{position-1} and @var{position-2}. +Meaningful sizes are positive values less than @code{PTRDIFF_MAX}. Other +sizes are disagnosed when detected. GCC uses this information to improve +the results of @code{__builtin_object_size}. + +For instance, the following declarations + +@smallexample +typedef __attribute__ ((alloc_size (1, 2))) void* + (*calloc_ptr) (size_t, size_t); +typedef __attribute__ ((alloc_size (1))) void* + (*malloc_ptr) (size_t); +@end smallexample + +@noindent +specify that @code{calloc_ptr} is a pointer of a function that, like +the standard C function @code{calloc}, returns an object whose size +is given by the product of arguments 1 and 2, and similarly, that +@code{malloc_ptr}, like the standard C function @code{malloc}, +returns an object whose size is given by argument 1 to the function. + @item cleanup (@var{cleanup_function}) @cindex @code{cleanup} variable attribute The @code{cleanup} attribute runs a function when the variable goes @@ -7283,6 +7360,34 @@ This warning can be disabled by @option{-Wno-if-not-aligned}. +@item alloc_size (@var{position}) +@itemx alloc_size (@var{position-1}, @var{position-2}) +@cindex @code{alloc_size} type attribute +The @code{alloc_size} type attribute may be applied to the definition +of a type of a function that returns a pointer and takes at least one +argument of an integer type. It indicates that the returned pointer +points to an object whose size is given by the function argument at +@var{position-1}, or by the product of the arguments at @var{position-1} +and @var{position-2}. Meaningful sizes are positive values less than +@code{PTRDIFF_MAX}. Other sizes are disagnosed when detected. GCC uses +this information to improve the results of @code{__builtin_object_size}. + +For instance, the following declarations + +@smallexample +typedef __attribute__ ((alloc_size (1, 2))) void* + calloc_type (size_t, size_t); +typedef __attribute__ ((alloc_size (1))) void* + malloc_type (size_t); +@end smallexample + +@noindent +specify that @code{calloc_type} is a type of a function that, like +the standard C function @code{calloc}, returns an object whose size +is given by the product of arguments 1 and 2, and that +@code{malloc_type}, like the standard C function @code{malloc}, +returns an object whose size is given by argument 1 to the function. + @item copy @itemx copy (@var{expression}) @cindex @code{copy} type attribute @@ -11148,7 +11253,10 @@ @deftypefn {Built-in Function} {size_t} __builtin_object_size (const void * @var{ptr}, int @var{type}) is a built-in construct that returns a constant number of bytes from @var{ptr} to the end of the object @var{ptr} pointer points to -(if known at compile time). @code{__builtin_object_size} never evaluates +(if known at compile time). To determine the sizes of dynamically allocated +objects the function relies on the allocation functions called to obtain +the storage to be declared with the @code{alloc_size} attribute (@xref{Common +Function Attributes}). @code{__builtin_object_size} never evaluates its arguments for side effects. If there are any side effects in them, it returns @code{(size_t) -1} for @var{type} 0 or 1 and @code{(size_t) 0} for @var{type} 2 or 3. If there are multiple objects @var{ptr} can @@ -11273,6 +11381,7 @@ @findex __builtin_islessequal @findex __builtin_islessgreater @findex __builtin_isunordered +@findex __builtin_object_size @findex __builtin_powi @findex __builtin_powif @findex __builtin_powil @@ -12516,6 +12625,10 @@ and GCC does not issue a warning. @end deftypefn +@deftypefn {Built-in Function}{size_t} __builtin_object_size (const void * @var{ptr}, int @var{type}) +Returns the size of an object pointed to by @var{ptr}. @xref{Object Size Checking} for a detailed description of the function. +@end deftypefn + @deftypefn {Built-in Function} double __builtin_huge_val (void) Returns a positive infinity, if supported by the floating-point format, else @code{DBL_MAX}. This function is suitable for implementing the @@ -16507,7 +16620,30 @@ @item GCC allows using a @code{typedef} name as the type specifier for a -vector type. +vector type, but only under the following circumstances: + +@itemize @bullet + +@item +When using @code{__vector} instead of @code{vector}; for example, + +@smallexample +typedef signed short int16; +__vector int16 data; +@end smallexample + +@item +When using @code{vector} in keyword-and-predefine mode; for example, + +@smallexample +typedef signed short int16; +vector int16 data; +@end smallexample + +Note that keyword-and-predefine mode is enabled by disabling GNU +extensions (e.g., by using @code{-std=c11}) and including +@code{}. +@end itemize @item For C, overloaded functions are implemented with macros so the following @@ -20659,6 +20795,9 @@ @item icelake-server Intel Core i7 Ice Lake Server CPU. +@item cascadelake +Intel Core i7 Cascadelake CPU. + @item bonnell Intel Atom Bonnell CPU. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/fragments.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/fragments.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/fragments.texi 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/fragments.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/frontends.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/frontends.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/frontends.texi 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/frontends.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/gccint.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/gccint.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/gccint.texi 2018-10-22 12:07:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/gccint.texi 2019-01-02 08:05:15.000000000 +0000 @@ -26,7 +26,7 @@ @c %**end of header @copying -Copyright @copyright{} 1988-2018 Free Software Foundation, Inc. +Copyright @copyright{} 1988-2019 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/gcc.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/gcc.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/gcc.texi 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/gcc.texi 2019-01-02 08:05:15.000000000 +0000 @@ -40,7 +40,7 @@ @c %**end of header @copying -Copyright @copyright{} 1988-2018 Free Software Foundation, Inc. +Copyright @copyright{} 1988-2019 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/gcov-dump.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/gcov-dump.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/gcov-dump.texi 2018-10-02 07:26:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/gcov-dump.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,10 +1,10 @@ -@c Copyright (C) 2017-2018 Free Software Foundation, Inc. +@c Copyright (C) 2017-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. @ignore @c man begin COPYRIGHT -Copyright @copyright{} 2017-2018 Free Software Foundation, Inc. +Copyright @copyright{} 2017-2019 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/gcov.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/gcov.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/gcov.texi 2018-10-29 14:45:49.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/gcov.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,10 +1,10 @@ -@c Copyright (C) 1996-2018 Free Software Foundation, Inc. +@c Copyright (C) 1996-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. @ignore @c man begin COPYRIGHT -Copyright @copyright{} 1996-2018 Free Software Foundation, Inc. +Copyright @copyright{} 1996-2019 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/gcov-tool.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/gcov-tool.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/gcov-tool.texi 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/gcov-tool.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,10 +1,10 @@ -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. @ignore @c man begin COPYRIGHT -Copyright @copyright{} 2014-2018 Free Software Foundation, Inc. +Copyright @copyright{} 2014-2019 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/generic.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/generic.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/generic.texi 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/generic.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2004-2018 Free Software Foundation, Inc. +@c Copyright (C) 2004-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/gimple.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/gimple.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/gimple.texi 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/gimple.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2008-2018 Free Software Foundation, Inc. +@c Copyright (C) 2008-2019 Free Software Foundation, Inc. @c Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/gty.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/gty.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/gty.texi 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/gty.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2002-2018 Free Software Foundation, Inc. +@c Copyright (C) 2002-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/headerdirs.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/headerdirs.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/headerdirs.texi 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/headerdirs.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/hostconfig.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/hostconfig.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/hostconfig.texi 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/hostconfig.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gccint.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/implement-c.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/implement-c.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/implement-c.texi 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/implement-c.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2001-2018 Free Software Foundation, Inc. +@c Copyright (C) 2001-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/implement-cxx.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/implement-cxx.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/implement-cxx.texi 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/implement-cxx.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2009-2018 Free Software Foundation, Inc. +@c Copyright (C) 2009-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/include/gcc-common.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/include/gcc-common.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/include/gcc-common.texi 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/include/gcc-common.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2001-2018 Free Software Foundation, Inc. +@c Copyright (C) 2001-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/install-old.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/install-old.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/install-old.texi 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/install-old.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file install.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/install.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/install.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/install.texi 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/install.texi 2019-01-02 08:05:15.000000000 +0000 @@ -44,7 +44,7 @@ @settitle Installing GCC: GNU Free Documentation License @end ifset -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com @c IMPORTANT: whenever you modify this file, run `install.texi2html' to @@ -69,7 +69,7 @@ @c Part 2 Summary Description and Copyright @copying -Copyright @copyright{} 1988-2018 Free Software Foundation, Inc. +Copyright @copyright{} 1988-2019 Free Software Foundation, Inc. @sp 1 Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -1078,18 +1078,41 @@ @table @code @item arm*-*-* -@var{list} is a comma separated list of @code{aprofile} and @code{rmprofile} -to build multilibs for A or R and M architecture profiles respectively. Note -that, due to some limitation of the current multilib framework, using the -combined @code{aprofile,rmprofile} multilibs selects in some cases a less -optimal multilib than when using the multilib profile for the architecture -targetted. The special value @code{default} is also accepted and is equivalent -to omitting the option, ie. only the default run-time library will be enabled. +@var{list} is a comma separated list of @code{aprofile} and +@code{rmprofile} to build multilibs for A or R and M architecture +profiles respectively. Note that, due to some limitation of the current +multilib framework, using the combined @code{aprofile,rmprofile} +multilibs selects in some cases a less optimal multilib than when using +the multilib profile for the architecture targetted. The special value +@code{default} is also accepted and is equivalent to omitting the +option, i.e., only the default run-time library will be enabled. + +@var{list} may instead contain @code{@@name}, to use the multilib +configuration Makefile fragment @file{name} in @file{gcc/config/arm} in +the source tree (it is part of the corresponding sources, after all). +It is recommended, but not required, that files used for this purpose to +be named starting with @file{t-ml-}, to make their intended purpose +self-evident, in line with GCC conventions. Such files enable custom, +user-chosen multilib lists to be configured. Whether multiple such +files can be used together depends on the contents of the supplied +files. See @file{gcc/config/arm/t-multilib} and its supplementary +@file{gcc/config/arm/t-*profile} files for an example of what such +Makefile fragments might look like for this version of GCC. The macros +expected to be defined in these fragments are not stable across GCC +releases, so make sure they define the @code{MULTILIB}-related macros +expected by the version of GCC you are building. +@ifnothtml +@xref{Target Fragment,, Target Makefile Fragments, gccint, GNU Compiler +Collection (GCC) Internals}. +@end ifnothtml +@ifhtml +See ``Target Makefile Fragments'' in the internals manual. +@end ifhtml The table below gives the combination of ISAs, architectures, FPUs and -floating-point ABIs for which multilibs are built for each accepted value. -The union of these options is considered when specifying both @code{aprofile} -and @code{rmprofile}. +floating-point ABIs for which multilibs are built for each predefined +profile. The union of these options is considered when specifying both +@code{aprofile} and @code{rmprofile}. @multitable @columnfractions .15 .28 .30 @item Option @tab aprofile @tab rmprofile diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/install.texi2html gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/install.texi2html --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/install.texi2html 2018-05-02 07:13:06.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/install.texi2html 2019-01-02 08:05:15.000000000 +0000 @@ -5,7 +5,7 @@ # $SOURCEDIR and $DESTDIR, resp., refer to the directory containing # the texinfo source and the directory to put the HTML version in. # -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # Originally by Gerald Pfeifer , June 2001. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/interface.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/interface.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/interface.texi 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/interface.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/invoke.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/invoke.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/invoke.texi 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/invoke.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. @@ -8,7 +8,7 @@ @c man end @c man begin COPYRIGHT -Copyright @copyright{} 1988-2018 Free Software Foundation, Inc. +Copyright @copyright{} 1988-2019 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -281,7 +281,8 @@ @xref{Warning Options,,Options to Request or Suppress Warnings}. @gccoptlist{-fsyntax-only -fmax-errors=@var{n} -Wpedantic @gol -pedantic-errors @gol --w -Wextra -Wall -Waddress -Waggregate-return -Waligned-new @gol +-w -Wextra -Wall -Waddress -Waddress-of-packed-member @gol +-Waggregate-return -Waligned-new @gol -Walloc-zero -Walloc-size-larger-than=@var{byte-size} @gol -Walloca -Walloca-larger-than=@var{byte-size} @gol -Wno-aggressive-loop-optimizations -Warray-bounds -Warray-bounds=@var{n} @gol @@ -310,7 +311,7 @@ -Wformat-y2k -Wframe-address @gol -Wframe-larger-than=@var{byte-size} -Wno-free-nonheap-object @gol -Wjump-misses-init @gol --Wif-not-aligned @gol +-Whsa -Wif-not-aligned @gol -Wignored-qualifiers -Wignored-attributes -Wincompatible-pointer-types @gol -Wimplicit -Wimplicit-fallthrough -Wimplicit-fallthrough=@var{n} @gol -Wimplicit-function-declaration -Wimplicit-int @gol @@ -358,7 +359,7 @@ -Wuseless-cast -Wvariadic-macros -Wvector-operation-performance @gol -Wvla -Wvla-larger-than=@var{byte-size} -Wvolatile-register-var @gol -Wwrite-strings @gol --Wzero-as-null-pointer-constant -Whsa} +-Wzero-as-null-pointer-constant} @item C and Objective-C-only Warning Options @gccoptlist{-Wbad-function-cast -Wmissing-declarations @gol @@ -1263,7 +1264,7 @@ -msse4a -m3dnow -m3dnowa -mpopcnt -mabm -mbmi -mtbm -mfma4 -mxop @gol -mlzcnt -mbmi2 -mfxsr -mxsave -mxsaveopt -mrtm -mlwp @gol -mmwaitx -mclzero -mpku -mthreads -mgfni -mvaes -mwaitpkg @gol --mshstk -mforce-indirect-call -mavx512vbmi2 @gol +-mshstk -mmanual-endbr -mforce-indirect-call -mavx512vbmi2 @gol -mvpclmulqdq -mavx512bitalg -mmovdiri -mmovdir64b -mavx512vpopcntdq @gol -mcldemote -mms-bitfields -mno-align-stringops -minline-all-stringops @gol -minline-stringops-dynamically -mstringop-strategy=@var{alg} @gol @@ -6981,6 +6982,13 @@ programmer intended to use @code{strcmp}. This warning is enabled by @option{-Wall}. +@item -Waddress-of-packed-member +@opindex Waddress-of-packed-member +@opindex Wno-address-of-packed-member +Warn when the address of packed member of struct or union is taken, +which usually results in an unaligned pointer value. This is +enabled by default. + @item -Wlogical-op @opindex Wlogical-op @opindex Wno-logical-op @@ -8220,7 +8228,8 @@ -ftree-partial-pre @gol -ftree-slp-vectorize @gol -funswitch-loops @gol --fvect-cost-model} +-fvect-cost-model @gol +-fversion-loops-for-strides} @item -O0 @opindex O0 @@ -10772,6 +10781,30 @@ Enabled by @option{-fprofile-use} and @option{-fauto-profile}. +@item -fversion-loops-for-strides +@opindex fversion-loops-for-strides +If a loop iterates over an array with a variable stride, create another +version of the loop that assumes the stride is always one. For example: + +@smallexample +for (int i = 0; i < n; ++i) + x[i * stride] = @dots{}; +@end smallexample + +becomes: + +@smallexample +if (stride == 1) + for (int i = 0; i < n; ++i) + x[i] = @dots{}; +else + for (int i = 0; i < n; ++i) + x[i * stride] = @dots{}; +@end smallexample + +This is particularly useful for assumed-shape arrays in Fortran where +(for example) it allows better vectorization assuming contiguous accesses. + @item -ffunction-sections @itemx -fdata-sections @opindex ffunction-sections @@ -11981,6 +12014,15 @@ Number of lookahead cycles the model looks into; at ' ' only enable instruction sorting heuristic. +@item loop-versioning-max-inner-insns +The maximum number of instructions that an inner loop can have +before the loop versioning pass considers it too big to copy. + +@item loop-versioning-max-outer-insns +The maximum number of instructions that an outer loop can have +before the loop versioning pass considers it too big to copy, +discounting any instructions in inner loops that directly benefit +from versioning. @end table @end table @@ -15596,6 +15638,7 @@ @samp{cortex-a57}, @samp{cortex-a72}, @samp{cortex-a73}, @samp{cortex-a75}, @samp{cortex-a76}, @samp{ares}, @samp{exynos-m1}, @samp{emag}, @samp{falkor}, @samp{qdf24xx}, @samp{saphira}, @samp{phecda}, @samp{xgene1}, @samp{vulcan}, +@samp{octeontx}, @samp{octeontx81}, @samp{octeontx83}, @samp{thunderx}, @samp{thunderxt88}, @samp{thunderxt88p1}, @samp{thunderxt81}, @samp{tsv110}, @samp{thunderxt83}, @samp{thunderx2t99}, @samp{cortex-a57.cortex-a53}, @samp{cortex-a72.cortex-a53}, @@ -27968,6 +28011,13 @@ when using Intel Processor Trace where it generates more precise timing information for function calls. +@item -mmanual-endbr +@opindex mmanual-endbr +Insert ENDBR instruction at function entry only via the @code{cf_check} +function attribute. This is useful when used with the option +@option{-fcf-protection=branch} to control ENDBR insertion at the +function entry. + @item -mcall-ms2sysv-xlogues @opindex mcall-ms2sysv-xlogues @opindex mno-call-ms2sysv-xlogues diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/languages.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/languages.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/languages.texi 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/languages.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2002-2018 Free Software Foundation, Inc. +@c Copyright (C) 2002-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/libgcc.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/libgcc.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/libgcc.texi 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/libgcc.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2003-2018 Free Software Foundation, Inc. +@c Copyright (C) 2003-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. @c Contributed by Aldy Hernandez diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/loop.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/loop.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/loop.texi 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/loop.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2006-2018 Free Software Foundation, Inc. +@c Copyright (C) 2006-2019 Free Software Foundation, Inc. @c Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/lto.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/lto.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/lto.texi 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/lto.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2010-2018 Free Software Foundation, Inc. +@c Copyright (C) 2010-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. @c Contributed by Jan Hubicka and diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/makefile.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/makefile.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/makefile.texi 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/makefile.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2001-2018 Free Software Foundation, Inc. +@c Copyright (C) 2001-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/match-and-simplify.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/match-and-simplify.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/match-and-simplify.texi 2018-05-14 15:08:33.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/match-and-simplify.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/md.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/md.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/md.texi 2018-11-28 13:52:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/md.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. @@ -5428,6 +5428,16 @@ of size S@. Operand 0 is the resulting vector in which 2*N elements of size N/2 are concatenated after narrowing them down using truncation. +@cindex @code{vec_pack_sbool_trunc_@var{m}} instruction pattern +@item @samp{vec_pack_sbool_trunc_@var{m}} +Narrow and merge the elements of two vectors. Operands 1 and 2 are vectors +of the same type having N boolean elements. Operand 0 is the resulting +vector in which 2*N elements are concatenated. The last operand (operand 3) +is the number of elements in the output vector 2*N as a @code{CONST_INT}. +This instruction pattern is used when all the vector input and output +operands have the same scalar mode @var{m} and thus using +@code{vec_pack_trunc_@var{m}} would be ambiguous. + @cindex @code{vec_pack_ssat_@var{m}} instruction pattern @cindex @code{vec_pack_usat_@var{m}} instruction pattern @item @samp{vec_pack_ssat_@var{m}}, @samp{vec_pack_usat_@var{m}} @@ -5470,6 +5480,17 @@ Widen (promote) the high/low elements of the vector using zero extension and place the resulting N/2 values of size 2*S in the output vector (operand 0). +@cindex @code{vec_unpacks_sbool_hi_@var{m}} instruction pattern +@cindex @code{vec_unpacks_sbool_lo_@var{m}} instruction pattern +@item @samp{vec_unpacks_sbool_hi_@var{m}}, @samp{vec_unpacks_sbool_lo_@var{m}} +Extract the high/low part of a vector of boolean elements that have scalar +mode @var{m}. The input vector (operand 1) has N elements, the output +vector (operand 0) has N/2 elements. The last operand (operand 2) is the +number of elements of the input vector N as a @code{CONST_INT}. These +patterns are used if both the input and output vectors have the same scalar +mode @var{m} and thus using @code{vec_unpacks_hi_@var{m}} or +@code{vec_unpacks_lo_@var{m}} would be ambiguous. + @cindex @code{vec_unpacks_float_hi_@var{m}} instruction pattern @cindex @code{vec_unpacks_float_lo_@var{m}} instruction pattern @cindex @code{vec_unpacku_float_hi_@var{m}} instruction pattern diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/objc.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/objc.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/objc.texi 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/objc.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/optinfo.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/optinfo.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/optinfo.texi 2018-07-09 11:23:03.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/optinfo.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2013-2018 Free Software Foundation, Inc. +@c Copyright (C) 2013-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/options.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/options.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/options.texi 2018-10-25 11:18:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/options.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2003-2018 Free Software Foundation, Inc. +@c Copyright (C) 2003-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/passes.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/passes.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/passes.texi 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/passes.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ @c markers: BUG TODO -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/plugins.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/plugins.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/plugins.texi 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/plugins.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2009-2018 Free Software Foundation, Inc. +@c Copyright (C) 2009-2019 Free Software Foundation, Inc. @c Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/portability.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/portability.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/portability.texi 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/portability.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/rtl.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/rtl.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/rtl.texi 2018-11-13 05:13:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/rtl.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/service.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/service.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/service.texi 2018-10-02 07:26:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/service.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/sourcebuild.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/sourcebuild.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/sourcebuild.texi 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/sourcebuild.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2002-2018 Free Software Foundation, Inc. +@c Copyright (C) 2002-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. @@ -2644,7 +2644,8 @@ @subsubsection Scan optimization dump files These commands are available for @var{kind} of @code{tree}, @code{ltrans-tree}, -@code{offload-tree}, @code{rtl}, @code{ipa}, and @code{wpa-ipa}. +@code{offload-tree}, @code{rtl}, @code{offload-rtl}, @code{ipa}, and +@code{wpa-ipa}. @table @code @item scan-@var{kind}-dump @var{regex} @var{suffix} [@{ target/xfail @var{selector} @}] @@ -2667,7 +2668,7 @@ suffix @var{suffix}. @end table -@subsubsection Verify that an output files exists or not +@subsubsection Check for output files @table @code @item output-exists [@{ target/xfail @var{selector} @}] @@ -2675,13 +2676,12 @@ @item output-exists-not [@{ target/xfail @var{selector} @}] Passes if compiler output file does not exist. -@end table - -@subsubsection Check for LTO tests -@table @code @item scan-symbol @var{regexp} [@{ target/xfail @var{selector} @}] Passes if the pattern is present in the final executable. + +@item scan-symbol-not @var{regexp} [@{ target/xfail @var{selector} @}] +Passes if the pattern is absent from the final executable. @end table @subsubsection Checks for @command{gcov} tests diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/standards.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/standards.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/standards.texi 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/standards.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2000-2018 Free Software Foundation, Inc. +@c Copyright (C) 2000-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/tm.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/tm.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/tm.texi 2018-11-20 10:31:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/tm.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. @@ -9422,6 +9422,15 @@ the jump-table. @end defmac +@deftypefn {Target Hook} void TARGET_ASM_POST_CFI_STARTPROC (FILE *@var{}, @var{tree}) +This target hook is used to emit assembly strings required by the target +after the .cfi_startproc directive. The first argument is the file stream to +write the strings to and the second argument is the function's declaration. The +expected use is to add more .cfi_* directives. + +The default is to not output any assembly strings. +@end deftypefn + @deftypefn {Target Hook} void TARGET_ASM_EMIT_UNWIND_LABEL (FILE *@var{stream}, tree @var{decl}, int @var{for_eh}, int @var{empty}) This target hook emits a label at the beginning of each FDE@. It should be defined on targets where FDEs need special labels, and it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/tm.texi.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/tm.texi.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/tm.texi.in 2018-11-09 20:18:11.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/tm.texi.in 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. @@ -6429,6 +6429,8 @@ the jump-table. @end defmac +@hook TARGET_ASM_POST_CFI_STARTPROC + @hook TARGET_ASM_EMIT_UNWIND_LABEL @hook TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/tree-ssa.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/tree-ssa.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/tree-ssa.texi 2018-04-10 16:02:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/tree-ssa.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2004-2018 Free Software Foundation, Inc. +@c Copyright (C) 2004-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/trouble.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/trouble.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/trouble.texi 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/trouble.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 1988-2018 Free Software Foundation, Inc. +@c Copyright (C) 1988-2019 Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/ux.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/ux.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/doc/ux.texi 2018-11-20 10:31:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/doc/ux.texi 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -@c Copyright (C) 2018 Free Software Foundation, Inc. +@c Copyright (C) 2018-2019 Free Software Foundation, Inc. @c Free Software Foundation, Inc. @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dojump.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/dojump.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dojump.c 2018-10-04 06:31:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dojump.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Convert tree expression to rtl instructions, for GNU compiler. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dojump.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/dojump.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dojump.h 2018-10-04 06:31:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dojump.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Export function prototypes from dojump.c. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dominance.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/dominance.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dominance.c 2018-05-31 09:39:23.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dominance.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Calculate (post)dominators in slightly super-linear time. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Michael Matz (matz@ifh.de). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dominance.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/dominance.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dominance.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dominance.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Calculate (post)dominators header file. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/domwalk.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/domwalk.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/domwalk.c 2018-02-04 08:44:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/domwalk.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic dominator tree walker - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/domwalk.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/domwalk.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/domwalk.h 2018-02-04 08:44:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/domwalk.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic dominator tree walker - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/double-int.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/double-int.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/double-int.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/double-int.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Operations with long integers. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/double-int.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/double-int.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/double-int.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/double-int.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Operations with long integers. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dse.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/dse.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dse.c 2018-11-13 05:13:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dse.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* RTL dead store elimination. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Sandiford and Kenneth Zadeck diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dump-context.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/dump-context.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dump-context.h 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dump-context.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Support code for handling the various dump_* calls in dumpfile.h - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dumpfile.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/dumpfile.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dumpfile.c 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dumpfile.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Dump infrastructure for optimizations and intermediate representation. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dumpfile.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/dumpfile.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dumpfile.h 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dumpfile.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for the shared dumpfile. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dwarf2asm.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/dwarf2asm.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dwarf2asm.c 2018-05-28 10:00:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dwarf2asm.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Dwarf2 assembler output helper routines. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dwarf2asm.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/dwarf2asm.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dwarf2asm.h 2018-02-10 19:55:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dwarf2asm.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Dwarf2 assembler output helper routines. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dwarf2cfi.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/dwarf2cfi.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dwarf2cfi.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dwarf2cfi.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Dwarf2 Call Frame Information helper routines. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dwarf2out.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/dwarf2out.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dwarf2out.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dwarf2out.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Output Dwarf2 format symbol table information from GCC. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Contributed by Gary Funck (gary@intrepid.com). Derived from DWARF 1 implementation of Ron Guilmette (rfg@monkeys.com). Extensively modified by Jason Merrill (jason@cygnus.com). @@ -969,6 +969,8 @@ fprintf (asm_out_file, "\t.cfi_startproc\n"); + targetm.asm_out.post_cfi_startproc (asm_out_file, current_function_decl); + /* .cfi_personality and .cfi_lsda are only relevant to DWARF2 eh unwinders. */ if (targetm_common.except_unwind_info (&global_options) != UI_DWARF2) @@ -4616,12 +4618,13 @@ static struct indirect_string_node * find_AT_string_in_table (const char *str, - hash_table *table) + hash_table *table, + enum insert_option insert = INSERT) { struct indirect_string_node *node; indirect_string_node **slot - = table->find_slot_with_hash (str, htab_hash_string (str), INSERT); + = table->find_slot_with_hash (str, htab_hash_string (str), insert); if (*slot == NULL) { node = ggc_cleared_alloc (); @@ -4638,12 +4641,12 @@ /* Add STR to the indirect string hash table. */ static struct indirect_string_node * -find_AT_string (const char *str) +find_AT_string (const char *str, enum insert_option insert = INSERT) { if (! debug_str_hash) debug_str_hash = hash_table::create_ggc (10); - return find_AT_string_in_table (str, debug_str_hash); + return find_AT_string_in_table (str, debug_str_hash, insert); } /* Add a string attribute value to a DIE. */ @@ -24537,6 +24540,7 @@ /* Return whether DECL is a FIELD_DECL that represents the variant part of a structure. */ + static bool is_variant_part (tree decl) { @@ -24550,17 +24554,8 @@ static tree analyze_discr_in_predicate (tree operand, tree struct_type) { - bool continue_stripping = true; - while (continue_stripping) - switch (TREE_CODE (operand)) - { - CASE_CONVERT: - operand = TREE_OPERAND (operand, 0); - break; - default: - continue_stripping = false; - break; - } + while (CONVERT_EXPR_P (operand)) + operand = TREE_OPERAND (operand, 0); /* Match field access to members of struct_type only. */ if (TREE_CODE (operand) == COMPONENT_REF @@ -24780,6 +24775,19 @@ new_node->dw_discr_range = true; } + else if ((candidate_discr + = analyze_discr_in_predicate (match_expr, struct_type)) + && TREE_TYPE (candidate_discr) == boolean_type_node) + { + /* We are matching: for a boolean discriminant. + This sub-expression matches boolean_true_node. */ + new_node = ggc_cleared_alloc (); + if (!get_discr_value (boolean_true_node, + &new_node->dw_discr_lower_bound)) + goto abort; + new_node->dw_discr_range = false; + } + else /* Unsupported sub-expression: we cannot determine the set of matching discriminant values. Abort everything. */ @@ -28088,7 +28096,19 @@ break; case DW_MACRO_define_strp: case DW_MACRO_undef_strp: - node = find_AT_string (ref->info); + /* NB: dwarf2out_finish performs: + 1. save_macinfo_strings + 2. hash table traverse of index_string + 3. output_macinfo -> output_macinfo_op + 4. output_indirect_strings + -> hash table traverse of output_index_string + + When output_macinfo_op is called, all index strings have been + added to hash table by save_macinfo_strings and we can't pass + INSERT to find_slot_with_hash which may expand hash table, even + if no insertion is needed, and change hash table traverse order + between index_string and output_index_string. */ + node = find_AT_string (ref->info, NO_INSERT); gcc_assert (node && (node->form == DW_FORM_strp || node->form == dwarf_FORM (DW_FORM_strx))); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/dwarf2out.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/dwarf2out.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/dwarf2out.h 2018-03-10 10:43:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/dwarf2out.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* dwarf2out.h - Various declarations for functions found in dwarf2out.c - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/early-remat.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/early-remat.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/early-remat.c 2018-06-08 18:00:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/early-remat.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Early (pre-RA) rematerialization - Copyright (C) 2017 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/edit-context.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/edit-context.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/edit-context.c 2018-10-02 07:26:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/edit-context.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Determining the results of applying fix-it hints. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/edit-context.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/edit-context.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/edit-context.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/edit-context.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Determining the results of applying fix-it hints. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/emit-rtl.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/emit-rtl.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/emit-rtl.c 2018-09-08 14:39:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/emit-rtl.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Emit RTL for the GCC expander. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/emit-rtl.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/emit-rtl.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/emit-rtl.h 2018-09-08 14:39:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/emit-rtl.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Exported functions from emit-rtl.c - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/errors.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/errors.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/errors.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/errors.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Basic error reporting routines. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/errors.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/errors.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/errors.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/errors.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Basic error reporting routines. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/et-forest.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/et-forest.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/et-forest.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/et-forest.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* ET-trees data structure implementation. Contributed by Pavel Nejedly - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/et-forest.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/et-forest.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/et-forest.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/et-forest.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Et-forest data structure implementation. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/except.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/except.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/except.c 2018-08-12 11:28:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/except.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Implements exception handling. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. Contributed by Mike Stump . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/except.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/except.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/except.h 2018-04-13 21:46:54.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/except.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Exception Handling interface routines. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Mike Stump . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/exec-tool.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/exec-tool.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/exec-tool.in 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/exec-tool.in 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # This file is part of GCC. # GCC is free software; you can redistribute it and/or modify diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/explow.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/explow.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/explow.c 2018-11-22 10:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/explow.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for manipulating rtx's in semantically interesting ways. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/explow.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/explow.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/explow.h 2018-11-22 10:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/explow.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Export function prototypes from explow.c. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/expmed.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/expmed.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/expmed.c 2018-10-02 07:26:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/expmed.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Medium-level subroutines: convert bit-field store and extract and shifts, multiplies and divides to rtl instructions. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/expmed.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/expmed.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/expmed.h 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/expmed.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Target-dependent costs for expmed.c. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/expr.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/expr.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/expr.c 2018-11-28 13:52:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/expr.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Convert tree expression to rtl instructions, for GNU compiler. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -1220,7 +1220,7 @@ data.run (); - if (retmode) + if (retmode != RETURN_BEGIN) return data.finish_retmode (retmode); else return to; @@ -1388,7 +1388,7 @@ store_by_pieces_d data (to, constfun, constfundata, len, align); data.run (); - if (retmode) + if (retmode != RETURN_BEGIN) return data.finish_retmode (retmode); else return to; @@ -5609,13 +5609,13 @@ dest_mem = target; + memop_ret retmode = exp_len > str_copy_len ? RETURN_END : RETURN_BEGIN; dest_mem = store_by_pieces (dest_mem, str_copy_len, builtin_strncpy_read_str, CONST_CAST (char *, TREE_STRING_POINTER (str)), MEM_ALIGN (target), false, - (exp_len > str_copy_len ? RETURN_END : - RETURN_BEGIN)); + retmode); if (exp_len > str_copy_len) clear_storage (adjust_address (dest_mem, BLKmode, 0), GEN_INT (exp_len - str_copy_len), @@ -5945,10 +5945,11 @@ static bool categorize_ctor_elements_1 (const_tree ctor, HOST_WIDE_INT *p_nz_elts, + HOST_WIDE_INT *p_unique_nz_elts, HOST_WIDE_INT *p_init_elts, bool *p_complete) { unsigned HOST_WIDE_INT idx; - HOST_WIDE_INT nz_elts, init_elts, num_fields; + HOST_WIDE_INT nz_elts, unique_nz_elts, init_elts, num_fields; tree value, purpose, elt_type; /* Whether CTOR is a valid constant initializer, in accordance with what @@ -5958,6 +5959,7 @@ bool const_p = const_from_elts_p ? true : TREE_STATIC (ctor); nz_elts = 0; + unique_nz_elts = 0; init_elts = 0; num_fields = 0; elt_type = NULL_TREE; @@ -5982,12 +5984,13 @@ { case CONSTRUCTOR: { - HOST_WIDE_INT nz = 0, ic = 0; + HOST_WIDE_INT nz = 0, unz = 0, ic = 0; - bool const_elt_p = categorize_ctor_elements_1 (value, &nz, &ic, - p_complete); + bool const_elt_p = categorize_ctor_elements_1 (value, &nz, &unz, + &ic, p_complete); nz_elts += mult * nz; + unique_nz_elts += unz; init_elts += mult * ic; if (const_from_elts_p && const_p) @@ -5999,21 +6002,31 @@ case REAL_CST: case FIXED_CST: if (!initializer_zerop (value)) - nz_elts += mult; + { + nz_elts += mult; + unique_nz_elts++; + } init_elts += mult; break; case STRING_CST: nz_elts += mult * TREE_STRING_LENGTH (value); + unique_nz_elts += TREE_STRING_LENGTH (value); init_elts += mult * TREE_STRING_LENGTH (value); break; case COMPLEX_CST: if (!initializer_zerop (TREE_REALPART (value))) - nz_elts += mult; + { + nz_elts += mult; + unique_nz_elts++; + } if (!initializer_zerop (TREE_IMAGPART (value))) - nz_elts += mult; - init_elts += mult; + { + nz_elts += mult; + unique_nz_elts++; + } + init_elts += 2 * mult; break; case VECTOR_CST: @@ -6025,7 +6038,10 @@ { tree v = VECTOR_CST_ELT (value, i); if (!initializer_zerop (v)) - nz_elts += mult; + { + nz_elts += mult; + unique_nz_elts++; + } init_elts += mult; } } @@ -6035,6 +6051,7 @@ { HOST_WIDE_INT tc = count_type_elements (elt_type, false); nz_elts += mult * tc; + unique_nz_elts += tc; init_elts += mult * tc; if (const_from_elts_p && const_p) @@ -6054,6 +6071,7 @@ *p_complete = false; *p_nz_elts += nz_elts; + *p_unique_nz_elts += unique_nz_elts; *p_init_elts += init_elts; return const_p; @@ -6062,6 +6080,11 @@ /* Examine CTOR to discover: * how many scalar fields are set to nonzero values, and place it in *P_NZ_ELTS; + * the same, but counting RANGE_EXPRs as multiplier of 1 instead of + high - low + 1 (this can be useful for callers to determine ctors + that could be cheaply initialized with - perhaps nested - loops + compared to copied from huge read-only data), + and place it in *P_UNIQUE_NZ_ELTS; * how many scalar fields in total are in CTOR, and place it in *P_ELT_COUNT. * whether the constructor is complete -- in the sense that every @@ -6073,13 +6096,16 @@ bool categorize_ctor_elements (const_tree ctor, HOST_WIDE_INT *p_nz_elts, + HOST_WIDE_INT *p_unique_nz_elts, HOST_WIDE_INT *p_init_elts, bool *p_complete) { *p_nz_elts = 0; + *p_unique_nz_elts = 0; *p_init_elts = 0; *p_complete = true; - return categorize_ctor_elements_1 (ctor, p_nz_elts, p_init_elts, p_complete); + return categorize_ctor_elements_1 (ctor, p_nz_elts, p_unique_nz_elts, + p_init_elts, p_complete); } /* TYPE is initialized by a constructor with NUM_ELTS elements, the last @@ -6110,17 +6136,18 @@ return count_type_elements (type, true) == num_elts; } -/* Return 1 if EXP contains mostly (3/4) zeros. */ +/* Return 1 if EXP contains mostly (3/4) zeros. */ static int mostly_zeros_p (const_tree exp) { if (TREE_CODE (exp) == CONSTRUCTOR) { - HOST_WIDE_INT nz_elts, init_elts; + HOST_WIDE_INT nz_elts, unz_elts, init_elts; bool complete_p; - categorize_ctor_elements (exp, &nz_elts, &init_elts, &complete_p); + categorize_ctor_elements (exp, &nz_elts, &unz_elts, &init_elts, + &complete_p); return !complete_p || nz_elts < init_elts / 4; } @@ -6134,10 +6161,11 @@ { if (TREE_CODE (exp) == CONSTRUCTOR) { - HOST_WIDE_INT nz_elts, init_elts; + HOST_WIDE_INT nz_elts, unz_elts, init_elts; bool complete_p; - categorize_ctor_elements (exp, &nz_elts, &init_elts, &complete_p); + categorize_ctor_elements (exp, &nz_elts, &unz_elts, &init_elts, + &complete_p); return nz_elts == 0; } @@ -8747,8 +8775,8 @@ != INTEGER_CST check. Handle it. */ if (GET_MODE (op0) == VOIDmode && GET_MODE (op1) == VOIDmode) { - op0 = convert_modes (innermode, mode, op0, true); - op1 = convert_modes (innermode, mode, op1, false); + op0 = convert_modes (mode, innermode, op0, true); + op1 = convert_modes (mode, innermode, op1, false); return REDUCE_BIT_FIELD (expand_mult (mode, op0, op1, target, unsignedp)); } @@ -8770,7 +8798,7 @@ if (TREE_CODE (treeop0) != INTEGER_CST) { if (find_widening_optab_handler (this_optab, mode, innermode) - != CODE_FOR_nothing) + != CODE_FOR_nothing) { expand_operands (treeop0, treeop1, NULL_RTX, &op0, &op1, EXPAND_NORMAL); @@ -8779,9 +8807,9 @@ if (GET_MODE (op0) == VOIDmode && GET_MODE (op1) == VOIDmode) { widen_mult_const: - op0 = convert_modes (innermode, mode, op0, zextend_p); + op0 = convert_modes (mode, innermode, op0, zextend_p); op1 - = convert_modes (innermode, mode, op1, + = convert_modes (mode, innermode, op1, TYPE_UNSIGNED (TREE_TYPE (treeop1))); return REDUCE_BIT_FIELD (expand_mult (mode, op0, op1, target, @@ -8792,21 +8820,19 @@ return REDUCE_BIT_FIELD (temp); } if (find_widening_optab_handler (other_optab, mode, innermode) - != CODE_FOR_nothing + != CODE_FOR_nothing && innermode == word_mode) { rtx htem, hipart; op0 = expand_normal (treeop0); - if (TREE_CODE (treeop1) == INTEGER_CST) - op1 = convert_modes (word_mode, mode, - expand_normal (treeop1), - TYPE_UNSIGNED (TREE_TYPE (treeop1))); - else - op1 = expand_normal (treeop1); - /* op0 and op1 might still be constant, despite the above + op1 = expand_normal (treeop1); + /* op0 and op1 might be constants, despite the above != INTEGER_CST check. Handle it. */ if (GET_MODE (op0) == VOIDmode && GET_MODE (op1) == VOIDmode) goto widen_mult_const; + if (TREE_CODE (treeop1) == INTEGER_CST) + op1 = convert_modes (mode, word_mode, op1, + TYPE_UNSIGNED (TREE_TYPE (treeop1))); temp = expand_binop (mode, other_optab, op0, op1, target, unsignedp, OPTAB_LIB_WIDEN); hipart = gen_highpart (word_mode, temp); @@ -9465,12 +9491,34 @@ gcc_assert (target); return target; - case VEC_PACK_TRUNC_EXPR: case VEC_PACK_SAT_EXPR: case VEC_PACK_FIX_TRUNC_EXPR: mode = TYPE_MODE (TREE_TYPE (treeop0)); goto binop; + case VEC_PACK_TRUNC_EXPR: + if (VECTOR_BOOLEAN_TYPE_P (type) + && VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (treeop0)) + && mode == TYPE_MODE (TREE_TYPE (treeop0)) + && SCALAR_INT_MODE_P (mode)) + { + struct expand_operand eops[4]; + machine_mode imode = TYPE_MODE (TREE_TYPE (treeop0)); + expand_operands (treeop0, treeop1, + subtarget, &op0, &op1, EXPAND_NORMAL); + this_optab = vec_pack_sbool_trunc_optab; + enum insn_code icode = optab_handler (this_optab, imode); + create_output_operand (&eops[0], target, mode); + create_convert_operand_from (&eops[1], op0, imode, false); + create_convert_operand_from (&eops[2], op1, imode, false); + temp = GEN_INT (TYPE_VECTOR_SUBPARTS (type).to_constant ()); + create_input_operand (&eops[3], temp, imode); + expand_insn (icode, 4, eops); + return eops[0].value; + } + mode = TYPE_MODE (TREE_TYPE (treeop0)); + goto binop; + case VEC_PACK_FLOAT_EXPR: mode = TYPE_MODE (TREE_TYPE (treeop0)); expand_operands (treeop0, treeop1, diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/expr.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/expr.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/expr.h 2018-11-28 13:52:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/expr.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for code generation pass of GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -309,7 +309,8 @@ extern unsigned HOST_WIDE_INT highest_pow2_factor (const_tree); extern bool categorize_ctor_elements (const_tree, HOST_WIDE_INT *, - HOST_WIDE_INT *, bool *); + HOST_WIDE_INT *, HOST_WIDE_INT *, + bool *); extern void expand_operands (tree, tree, rtx, rtx*, rtx*, enum expand_modifier); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fibonacci_heap.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fibonacci_heap.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fibonacci_heap.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fibonacci_heap.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Fibonacci heap for GNU compiler. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Martin Liska This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fibonacci_heap.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fibonacci_heap.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fibonacci_heap.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fibonacci_heap.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Fibonacci heap for GNU compiler. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Daniel Berlin (dan@cgsoftware.com). Re-implemented in C++ by Martin Liska diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/file-find.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/file-find.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/file-find.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/file-find.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Utility functions for finding files relative to GCC binaries. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/file-find.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/file-find.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/file-find.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/file-find.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Prototypes and data structures used for implementing functions for finding files relative to GCC binaries. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/file-prefix-map.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/file-prefix-map.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/file-prefix-map.c 2018-01-23 00:38:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/file-prefix-map.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of file prefix remapping support (-f*-prefix-map options). - Copyright (C) 2017 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/file-prefix-map.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/file-prefix-map.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/file-prefix-map.h 2018-01-23 00:38:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/file-prefix-map.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations for file prefix remapping support (-f*-prefix-map options). - Copyright (C) 2017 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/final.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/final.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/final.c 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/final.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Convert RTL to assembler code and output it, for GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -2430,10 +2430,9 @@ case NOTE_INSN_INLINE_ENTRY: gcc_checking_assert (cfun->debug_nonbind_markers); - if (!DECL_IGNORED_P (current_function_decl)) + if (!DECL_IGNORED_P (current_function_decl) + && notice_source_line (insn, NULL)) { - if (!notice_source_line (insn, NULL)) - break; (*debug_hooks->inline_entry) (LOCATION_BLOCK (NOTE_MARKER_LOCATION (insn))); goto output_source_line; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fixed-value.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fixed-value.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fixed-value.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fixed-value.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Fixed-point arithmetic support. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fixed-value.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fixed-value.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fixed-value.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fixed-value.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Fixed-point arithmetic support. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/flags.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/flags.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/flags.h 2018-07-21 17:29:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/flags.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Compilation switch flag definitions for GCC. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/flag-types.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/flag-types.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/flag-types.h 2018-11-29 22:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/flag-types.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Compilation switch flag type definitions for GCC. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fold-const.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fold-const.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fold-const.c 2018-12-04 09:51:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fold-const.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Fold a constant sub-tree into a single node for C-compiler - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -1911,19 +1911,23 @@ /* And some specific cases even faster than that. */ if (code == PLUS_EXPR) { - if (integer_zerop (arg0) && !TREE_OVERFLOW (arg0)) + if (integer_zerop (arg0) + && !TREE_OVERFLOW (tree_strip_any_location_wrapper (arg0))) return arg1; - if (integer_zerop (arg1) && !TREE_OVERFLOW (arg1)) + if (integer_zerop (arg1) + && !TREE_OVERFLOW (tree_strip_any_location_wrapper (arg1))) return arg0; } else if (code == MINUS_EXPR) { - if (integer_zerop (arg1) && !TREE_OVERFLOW (arg1)) + if (integer_zerop (arg1) + && !TREE_OVERFLOW (tree_strip_any_location_wrapper (arg1))) return arg0; } else if (code == MULT_EXPR) { - if (integer_onep (arg0) && !TREE_OVERFLOW (arg0)) + if (integer_onep (arg0) + && !TREE_OVERFLOW (tree_strip_any_location_wrapper (arg0))) return arg1; } @@ -2938,6 +2942,9 @@ int operand_equal_p (const_tree arg0, const_tree arg1, unsigned int flags) { + STRIP_ANY_LOCATION_WRAPPER (arg0); + STRIP_ANY_LOCATION_WRAPPER (arg1); + /* When checking, verify at the outermost operand_equal_p call that if operand_equal_p returns non-zero then ARG0 and ARG1 has the same hash value. */ @@ -13681,6 +13688,8 @@ if (t == error_mark_node) return false; + STRIP_ANY_LOCATION_WRAPPER (t); + tree_code code = TREE_CODE (t); switch (TREE_CODE_CLASS (code)) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fold-const-call.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fold-const-call.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fold-const-call.c 2018-05-21 12:22:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fold-const-call.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Constant folding for calls to built-in and internal functions. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fold-const-call.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fold-const-call.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fold-const-call.h 2018-05-21 12:22:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fold-const-call.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Fold calls to built-in and internal functions with constant arguments. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fold-const.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fold-const.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fold-const.h 2018-09-18 08:44:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fold-const.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Fold a constant sub-tree into a single node for C-compiler - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/arith.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/arith.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/arith.c 2018-10-15 11:36:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/arith.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Compiler arithmetic - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/arith.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/arith.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/arith.h 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/arith.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Compiler arithmetic header. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Steven Bosscher This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/array.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/array.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/array.c 2018-06-14 13:43:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/array.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Array things - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. @@ -1246,7 +1246,9 @@ { c = gfc_constructor_first (head); for (; c; c = gfc_constructor_next (c)) - gfc_convert_type (c->expr, &ts, 1); + if (!gfc_convert_type (c->expr, &ts, 1) + && c->expr->ts.type != BT_UNKNOWN) + return MATCH_ERROR; } } else diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/bbt.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/bbt.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/bbt.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/bbt.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Balanced binary trees using treaps. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/ChangeLog 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/ChangeLog 2019-01-02 08:05:17.000000000 +0000 @@ -1,5463 +1,11 @@ -2018-12-12 Jakub Jelinek +2019-01-01 Thomas Koenig - PR fortran/88463 - * trans-openmp.c (gfc_omp_predetermined_sharing): Handle TREE_READONLY - VAR_DECLs with DECL_EXTERNAL like those with TREE_STATIC. + PR fortran/82743 + * primary.c (gfc_convert_to_structure_constructor): If a character + in a constructor is too long, add a warning with + -Wcharacter-truncation. -2018-12-11 Steven G. Kargl - - PR fortran/88155 - * primary.c (gfc_match_structure_constructor): Set the locus of - an expression to avoid a NULL pointer dereference. - -2018-12-11 Steven G. Kargl - - PR fortran/88249 - * gfortran.h: Update prototype for gfc_resolve_filepos(). - * io.c (gfc_resolve_filepos): Check for UNIT number if ERR= is present. - Use passed in locus for error message. - * resolve.c (gfc_resolve_code): Pass locus in gfc_resolve_filepos() - call. - -2018-12-10 Steven G. Kargl - - PR fortran/97922 - * io.c (gfc_match_open): Additional checks on ASYNCHRONOUS. - -2018-12-10 Steven G. Kargl - - PR fortran/88269 - * io.c (io_constraint): Update macro. If locus line buffer is NULL, - use gfc_current_locus in error messages. - (check_io_constraints): Catch missing IO UNIT in write and read - statements. io_constraint macro is incompatible here. - -2018-12-09 Steven G. Kargl - - PR fortran/88205 - * io.c (gfc_match_open): Move NEWUNIT checks to after STATUS checks. - -2018-12-09 Steven G. Kargl - - PR fortran/88206 - * match.c (gfc_match_type_spec): REAL can be an intrinsic function. - -2018-12-09 Fritz Reese - - PR fortran/88228 - * resolve.c (resolve_operator): Do not call resolve_function. - Break like other cases. - -2018-12-09 Cesar Philippidis - - * trans-openmp.c (gfc_trans_oacc_combined_directive): Set the - location of combined acc loops. - -2018-12-09 Thomas Schwinge - - * openmp.c (resolve_oacc_loop_blocks): Remove checking of OpenACC - loop clauses. - - PR fortran/88420 - * openmp.c (resolve_oacc_loop_blocks): Remove "Clause SEQ - conflicts with INDEPENDENT" diagnostic. - -2018-12-08 Steven G. Kargl - - PR fortran/88048 - * resolve.c (check_data_variable): Named constant cannot be a - data object. - -2018-12-08 Steven G. Kargl - - PR fortran/87945 - * decl.c (var_element): Inquiry parameters cannit be data objects. - -2018-12-08 Steven G. Kargl - - PR fortran/88025 - * expr.c (gfc_apply_init): Remove asserts that cannot trigger. - Check for a NULL pointer. - -2018-12-08 Steven G. Kargl - - PR fortran/88357 - * class.c (insert_component_ref): Check for NULL pointer and - previous error message issued. - * parse.c (parse_associate): Check for NULL pointer. - * resolve.c (resolve_assoc_var): Check for NULL pointer. - -2018-12-07 Jakub Jelinek - - PR fortran/88377 - * trans-openmp.c (gfc_omp_clause_default_ctor, - gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op, - gfc_omp_clause_linear_ctor, gfc_omp_clause_dtor): Only consider - GFC_DECL_GET_SCALAR_ALLOCATABLE vars as scalar allocatables if they - have pointer type. - -2018-12-03 Fritz Reese - Mark Eggleston - - PR fortran/87919 - * options.c (SET_FLAG, SET_BITFLAG, SET_BITFLAG2): New macros. - (set_dec_flags): Set/unset DEC and std flags according to value. - (post_dec_flags, set_init_local_zero): New functions. - (gfc_init_options): Use set_init_local_zero and post_dec_flags. - (gfc_handle_options) : Use - SET_BITFLAG. - : Use set_init_local_zero. - : Pass value to set_dec_flags. - : Remove. - -2018-11-30 Thomas Schwinge - - * gfortran.h (struct gfc_omp_clauses): Remove "wait". Adjust all - users. - - * openmp.c (gfc_match_omp_clauses): Support multiple OpenACC wait - clauses. - -2018-11-27 Martin Liska - - * decl.c (gfc_match_gcc_builtin): New function. - * gfortran.h (struct vect_builtin_tuple): New. - (gfc_adjust_builtins): Likewise. - * lang-specs.h (TARGET_F951_OPTIONS): New. - (F951_OPTIONS): Use it. - * lang.opt: Add new option -fpre-include. - * match.h (gfc_match_gcc_builtin): Declare new function. - * parse.c (decode_gcc_attribute): Handle builtin. - (parse_progunit): Call gfc_adjust_builtins. - * scanner.c (gfc_new_file): Load pre-included header file - when provided. - * trans-intrinsic.c (add_simd_flag_for_built_in): New. - (gfc_adjust_builtins): Likewise. - -2018-11-24 Paul Thomas - - PR fortran/88143 - * resolve.c (resolve_variable): Check for associate names with - NULL target. - -2018-11-23 Jakub Jelinek - - * lang.opt (fpad-source): New option. - * scanner.c (load_line): Don't pad fixed form lines if - !flag_pad_source. - * invoke.texi (-fno-pad-source): Document. - -2018-11-21 Jakub Jelinek - - * invoke.texi (-fdec-include): Document. - -2018-11-21 Jakub Jelinek - Mark Eggleston - - * lang.opt (fdec-include): New option. - * options.c (set_dec_flags): Set also flag_dec_include. - * scanner.c (include_line): Change return type from bool to int. - In fixed form allow spaces in between include keyword letters. - For -fdec-include, allow in fixed form 0 in column 6. With - -fdec-include return -1 if the parsed line is not full include - statement and it could be successfully completed on continuation - lines. - (include_stmt): New function. - (load_file): Adjust include_line caller. If it returns -1, keep - trying include_stmt until it stops returning -1 whenever adding - further line of input. - -2018-11-18 Thomas Koenig - - PR fortran/88073 - * frontend-passes.c (combine_array_constructor): Do not do - anything if in a WHERE statement. - -2018-11-18 Thomas Koenig - - PR fortran/70260 - * expr.c (gfc_check_assign): Reject assigning to an external - symbol. - (gfc_check_pointer_assign): Add suppress_type_test - argument. Insert line after if. A non-proc pointer can not point - to a constant. Only check types if suppress_type_test is false. - * gfortran.h (gfc_check_pointer_assign): Add optional - suppress_type_test argument. - * resolve.c (gfc_resolve_code): Move up gfc_check_pointer_assign - and give it the extra argument. - (resolve_fl_procedure): Set error on value for a function with - an inizializer. - -2018-11-15 David Malcolm - - PR other/19165 - * error.c (gfc_diagnostic_finalizer): Add diagnostic_t param. - -2018-11-13 David Malcolm - - * cpp.c: Replace "source_location" with "location_t". - * gfortran.h: Likewise. - -2018-11-08 Jakub Jelinek - - * trans-openmp.c (gfc_trans_omp_clauses): Use - OMP_CLAUSE_DEFAULTMAP_SET_KIND. - (gfc_trans_omp_atomic): Set OMP_ATOMIC_MEMORY_ORDER - rather than OMP_ATOMIC_SEQ_CST. - (gfc_trans_omp_taskgroup): Build OMP_TASKGROUP using - make_node instead of build1_loc. - * types.def (BT_FN_VOID_BOOL, BT_FN_VOID_SIZE_SIZE_PTR, - BT_FN_UINT_UINT_PTR_PTR, BT_FN_UINT_OMPFN_PTR_UINT_UINT, - BT_FN_BOOL_UINT_LONGPTR_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, - BT_FN_BOOL_UINT_ULLPTR_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR, - BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, - BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR): New. - (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): Formatting fix. - -2018-11-02 Thomas Koenig - - PR fortran/46020 - * decl.c (verify_bind_c_sym): Remove unnecessary space - in error message. - -2018-11-01 Thomas Koenig - - PR fortran/87782 - * frontend-passes.c (constant_string_length): If there is a - substring with a length which cannot be reduced to a constant, - return NULL. - -2018-11-01 Paul Thomas - - PR fortran/40196 - * dependency.c (are_identical_variables): Return false if the - inquiry refs are not the same. - (gfc_ref_needs_temporary_p): Break on an inquiry ref. - * dump_parse_tree.c (show_ref): Show the inquiry ref type. - * expr.c (gfc_free_ref_list): Break on an inquiry ref. - (gfc_copy_ref): Copy the inquiry ref types. - (find_inquiry_ref): New function. - (simplify_const_ref, simplify_ref_chain): Call it. Add new arg - to simplify_ref_chain. - (gfc_simplify_expr): Use the new arg in call to - simplify_ref_chain. - (gfc_get_full_arrayspec_from_expr, gfc_is_coarray): Break on - inquiry ref. - (gfc_traverse_expr): Return true for inquiry ref. - * frontend-passes.c (gfc_expr_walker): Break on inquiry ref. - * gfortran.h : Add enums and union member in gfc_ref to - implement inquiry refs. - * intrinsic.c : Fix white nois. - * match.c (gfc_match_assignment): A constant lavlue is an - error. - * module.c : Add DECL_MIO_NAME for inquiry_type and the mstring - for inquiry_types. - (mio_ref): Handle inquiry refs. - * primary.c (is_inquiry_ref): New function. - (gfc_match_varspec): Handle inquiry refs calling new function. - (gfc_variable_attr): Detect inquiry ref for disambiguation - with components. - (caf_variable_attr): Treat inquiry and substring refs in the - same way. - * resolve.c (find_array_spec): ditto. - (gfc_resolve_substring_charlen): If there is neither a charlen - ref not an inquiry ref, return. - (resolve_ref): Handle inqiry refs as appropriate. - (resolve_allocate_expr): Entities with an inquiry ref cannot be - allocated. - * simplify.c (simplify_bound, simplify_cobound): Punt on - inquiry refs. - * trans-array.c (get_array_ctor_var_strlen): Break on inquiry - ref. - *trans-expr.c (conv_inquiry): New function. - (gfc_conv_variable): Retain the last typespec to pass to - conv_inquiry on detecting an inquiry ref. - -2018-11-01 Thomas Koenig - - PR fortran/46020 - * decl.c (verify_bind_c_sym): Improve error message. - -2018-11-01 Thomas Koenig - - PR fortran/54613 - * gfortran.texi (File format of unformatted sequential files): - Replace random comma with period. - * intrinsic.texi (Intrinsic Procedures): Add FINDLOC to menu. - (FINDLOC): Document. - (MAXLOC): Add refrence to FINDLOC. - (MINLOC): Likewise. - -2018-10-31 Nathan Sidwell - - * cpp.c (gfc_cpp_init): Adjust cpp_force_token_locations call. - -2018-10-31 Martin Liska - - * trans-decl.c (struct module_hasher): Call htab_hash_string - for s->name and not for s. - -2018-10-30 Thomas Koenig - - PR fortran/85896 - * simplify.c (simplify_min_max): Do not convert the type of the - return expression. - -2017-10-28 Thomas Koenig - - PR fortran/54613 - * gfortran.h (gfc_isym_id): Add GFC_ISYM_FINDLOC. - (gfc_check_f): Add f6fl field. - (gfc_simplify_f): Add f6 field. - (gfc_resolve_f): Likewise. - (gfc_type_letter): Add optional logical_equas_int flag. - * check.c (intrinsic_type_check): New function. - (gfc_check_findloc): New function. - * intrinsics.c (gfc_type_letter): If logical_equals_int is - set, act accordingly. - (add_sym_5ml): Reformat comment. - (add_sym_6fl): New function. - (add_functions): Add findloc. - (check_arglist): Add sixth argument, handle it. - (resolve_intrinsic): Likewise. - (check_specific): Handle findloc. - * intrinsic.h (gfc_check_findloc): Add prototype. - (gfc_simplify_findloc): Likewise. - (gfc_resolve_findloc): Likewise. - (MAX_INTRINSIC_ARGS): Adjust. - * iresolve.c (gfc_resolve_findloc): New function. - * simplify.c (gfc_simplify_minmaxloc): Make static. - (simplify_findloc_to_scalar): New function. - (simplify_findloc_nodim): New function. - (simplify_findloc_to_array): New function. - (gfc_simplify_findloc): New function. - (gfc_conv_intrinsic_findloc): New function. - (gfc_conv_intrinsic_function): Handle GFC_ISYM_FINDLOC. - (gfc_is_intrinsic_libcall): Likewise. - -2018-10-27 Thomas Koenig - - PR fortran/86907 - * frontend-passes.c (check_locus_code): Add information that - warning about missing location information points to an - inconsisten internal state. - (check_locus_expr): Likewise. - -2018-10-25 Jakub Jelinek - - PR fortran/87725 - * openmp.c (gfc_match_omp_clauses): Parse simd, monotonic and - nonmonotonic modifiers regardless of if they have been parsed - already or if the opposite one has. Fix up check whether - comma after modifier should be parsed. - (resolve_omp_clauses): Diagnose schedule modifier restrictions. - -2018-10-23 Paul Thomas - - PR fortran/85603 - * frontend-passes.c (get_len_call): New function to generate a - call to intrinsic LEN. - (create_var): Use this to make length expressions for variable - rhs string lengths. - Clean up some white space issues. - -2018-10-21 Paul Thomas - - PR fortran/71880 - * trans-expr.c (gfc_trans_pointer_assignment): Set the string - length for array valued deferred length lhs. - -2018-10-18 Tobias Burnus - - PR fortran/87625 - * trans-array.c (gfc_is_reallocatable_lhs): Detect allocatable - polymorphic arrays. - -2018-10-18 Paul Thomas - - PR fortran/58618 - * trans-stmt.c (trans_associate_var): All strings that return - as pointer types can be assigned directly to the associate - name so remove 'attr' and the condition that uses it. - -2018-10-18 Paul Thomas - - PR fortran/58618 - * trans-decl.c (gfc_get_symbol_decl): Deal correctly with the - initialization with NULL() of a deferred length pointer. - -2018-10-17 Tobias Burnus - - PR fortran/87632 - * resolve.c (resolve_select_type): Use correct variable. - -2018-10-17 David Malcolm - - * Make-lang.in (selftest-fortran): New. - -2018-10-17 Paul Thomas - - PR fortran/56386 - PR fortran/58906 - PR fortran/77385 - PR fortran/80260 - PR fortran/82077 - * resolve.c (resolve_variable): Fix up expressions with array - associate names, where the parser did not detect that this is - array and there was no array part_ref in the expression. - -2018-10-16 Tobias Burnus - - PR fortran/67125 - * trans-array.c (gfc_array_init_size, gfc_array_allocate): - Rename argument e3_is_array_constr to e3_has_nodescriptor - and update comments. - * trans-stmt.c (gfc_trans_allocate): Also fix lower bound - to 1 for nonalloc/nonpointer func results/vars besides - array constructors. - -2018-10-16 Tobias Burnus - - PR fortran/87556 - * trans-stmt.c (form_team, change_team, sync_team): - Don't ignore argse.pre/argse.post. - -2018-10-15 Paul Thomas - Tobias Burnus - - PR fortran/87566 - * resolve.c (resolve_assoc_var): Add missing array spec for - class associate names. - (resolve_select_type): Handle case where last typed component - of the selector has a different type to the expression. - * trans-expr.c (gfc_find_and_cut_at_last_class_ref): Replace - call to gfc_expr_to_initialize with call to gfc_copy_expr. - (gfc_conv_class_to_class): Guard assignment to 'len' field - against case where zero constant is supplied. - -2018-10-12 Tobias Burnus - - PR fortran/87597 - * expr.c (gfc_simplify_expr): Avoid simplifying - the 'array' argument to lbound/ubound/lcobound/ - ucobound. - -2018-10-12 Tobias Burnus - - PR fortran/58787 - * decl.c (get_proc_name): Return with error before - creating sym_tree. - -2018-10-11 Tobias Burnus - - Revert: - 2018-10-09 Tobias Burnus - - PR fortran/83522 - * resolve.c (resolve_ref): Reject nonscalar - substring references. - -2018-10-09 David Malcolm - - * cpp.c (gfc_cpp_init_0): Update for renamings. - (cb_cpp_error): Rename to... - (cb_cpp_diagnostic): ...this, converting level and reason to - enums. - -2018-10-09 Tobias Burnus - - PR fortran/83522 - * resolve.c (resolve_ref): Reject nonscalar - substring references. - -2018-10-09 Paul Thomas - - PR fortran/87151 - * trans-array.c (gfc_get_array_span): Deal with deferred char - array components having a TYPE_MAX_VALUE of zero. - (gfc_array_init_size): Use the hidden string length component - to build the descriptor dtype. - (gfc_array_allocate): Remove the erroneous replacement of the - charlen backend decl with a temporary. - (gfc_conv_expr_descriptor): Use the ss_info string length in - the case of deferred character components. - (gfc_alloc_allocatable_for_assignment): Actually compare the - string lengths for deferred characters. Make sure that kind > 1 - is handled correctly. Set the span field of the descriptor. - * trans-intrinsic.c (gfc_conv_intrinsic_len): Remove the stupid - comment. - - PR fortran/80931 - * trans-array.c (gfc_array_allocate): Set the span field for - variable length character arrays. - -2018-10-08 Cesar Philippidis - - * expr.c (gfc_check_pointer_assign): Demote "Assignment to - contiguous pointer from non-contiguous target" to a warning. - -2018-10-08 Paul Thomas - - PR fortran/86372 - * trans-stmt.c (trans_associate_var): Character associate names - with variable string length do not have to be deferred length - for the string length to be set, if variable. - -2018-10-06 Thomas Koenig - - PR fortran/86111 - * gfortran.h (enum arith): Add ARITH_WRONGCONCAT. - * arith.h (gfc_arith_error): Issue error for ARITH_WRONGCONCAT. - (gfc_arith_concat): If the types of op1 and op2 are not - character of if their kinds do not match, issue ARITH_WRONGCONCAT. - -2018-10-06 Paul Thomas - - PR fortran/83999 - * resolve.c (resolve_fl_procedure): Include class functions in - the test that elemental function results be scalar. - -2018-10-06 Thomas Koenig - - PR fortran/84640 - * simplify.c (gfc_simplify_cshift): Extend size of hs_ex and ss_ex - by one. Set extents one past the array boundaries to zero to avoid - warning with instrumented compiler. - (gfc_simplify_eoshift): Likewise, only for ss_ex. - -2018-10-05 Paul Thomas - - PR fortran/87487 - * trans-decl.c (gfc_get_symbol_decl): Make sure that deferred - character length pointer initializer has the right type to fix - problem with deferred_character_24.f90 on big endian. - -2018-10-03 Jeff Law - - * trans-types.c (get_typenode_from_name): Moved into gcc/tree.c. - -2018-10-01 Paul Thomas - - PR fortran/65677 - * trans-expr.c (gfc_trans_assignment_1): Set the 'identical' - flag in the call to gfc_check_dependency. - -2018-09-30 Paul Thomas - - PR fortran/87359 - * trans-array.c (gfc_is_reallocatable_lhs): Correct the problem - introduced by r264358, which prevented components of associate - names from being reallocated on assignment. - -2018-09-30 Paul Thomas - - PR fortran/70752 - PR fortran/72709 - * trans-array.c (gfc_conv_scalarized_array_ref): If this is a - deferred type and the info->descriptor is present, use the - info->descriptor - (gfc_conv_array_ref): Is the se expr is a descriptor type, pass - it as 'decl' rather than the symbol backend_decl. - (gfc_array_allocate): If the se string_length is a component - reference, fix it and use it for the expression string length - if the latter is not a variable type. If it is a variable do - an assignment. Make use of component ref string lengths to set - the descriptor 'span'. - (gfc_conv_expr_descriptor): For pointer assignment, do not set - the span field if gfc_get_array_span returns zero. - * trans.c (get_array_span): If the upper bound a character type - is zero, use the descriptor span if available. - -2018-09-30 Paul Thomas - - PR fortran/70149 - * trans-decl.c (gfc_get_symbol_decl): A deferred character - length pointer that is initialized needs the string length to - be initialized as well. - -2018-09-29 Paul Thomas - - PR fortran/65677 - * trans-expr.c (gfc_trans_assignment_1): If there is dependency - fix the rse stringlength. - -2018-09-25 Martin Liska - - PR fortran/87394 - * decl.c (add_hidden_procptr_result): Simplify condition - as we are in branch witch 'case1 || case2'. - -2018-09-25 Martin Liska - - * trans.c (remove_suffix): Remove - unused function. - -2018-09-24 Thomas Koenig - - PR fortran/87397 - * gfc_conv_procedure_call: Do not add clobber on INTENT(OUT) - for variables in an associate statement. - -2018-09-24 Bernhard Reuther-Fischer - Cesar Philippidis - - * openmp.c (resolve_oacc_loop_blocks): - -2018-09-23 Thomas Koenig - - PR fortran/87397 - * gfc_conv_procedure_call: Do not add clobber on INTENT(OUT) - for variables having the dimension attribute. - -2018-09-23 Janne Blomqvist - - * trans-expr.c (gfc_caf_get_image_index): Do array index - calculations in gfc_array_index_type. - * trans-intrinsic.c (conv_intrinsic_event_query): Likewise. - * trans-stmt.c (gfc_trans_lock_unlock): Likewise. - (gfc_trans_event_post_wait): Likewise. - -2018-09-23 Thomas Koenig - - PR fortran/87395 - * gfc_conv_procedure_call: Reformat comments slightly. Do not add - clobber on INTENT(OUT) for saved variables. - -2018-09-22 Thomas Koenig - - PR fortran/41453 - * trans.h (gfc_conv_expr_reference): Add optional argument - add_clobber to prototype. - (gfc_conv_procedure_call): Set add_clobber argument to - gfc_conv_procedure_reference to true for scalar, INTENT(OUT), - non-pointer, non-allocatable, non-dummy variables whose type - is neither BT_CHARACTER, BT_DERIVED or BT_CLASS, but only if - the procedure is not elemental. - * trans-expr.c (gfc_conv_procedure_reference): Add clobber - statement before call if add_clobber is set. - -2018-09-22 Paul Thomas - - PR fortran/85603 - * trans-array.c (gfc_alloc_allocatable_for_assignment): Test - the charlen backend_decl before using the VAR_P macro. - -2018-09-21 Paul Thomas - - PR fortran/77325 - * trans-array.c (gfc_alloc_allocatable_for_assignment): If the - rhs has a charlen expression, convert that and use it. - * trans-expr.c (gfc_trans_assignment_1): The rse.pre for the - assignment of deferred character array vars to a realocatable - lhs should not be added to the exterior block since vector - indices, for example, generate temporaries indexed within the - loop. - -2018-09-21 Paul Thomas - - PR fortran/87359 - * trans-stmt.c (gfc_trans_allocate): Don't deallocate alloc - components if must_finalize is set for expr3. - -2018-09-21 Andrew Stubbs - Kwok Cheung Yeung - - * trans-expr.c (gfc_trans_structure_assign): Ensure that the first - argument of a call to _gfortran_caf_register is of size_type_node. - * trans-intrinsic.c (conv_intrinsic_event_query): Convert computed - index to a size_type_node type. - * trans-stmt.c (gfc_trans_event_post_wait): Likewise. - -2018-09-20 Allan Sandfeld Jensen - - * gfortranspec.c (lang_specific_driver): Handle -r like -nostdlib. - -2018-09-20 Janus Weil - - * gfortran.h (gfc_str_startswith): New macro. - * decl.c (variable_decl, gfc_match_end): Use it. - * iresolve.c (is_trig_resolved): Ditto. - * module.c (load_omp_udrs, read_module): Ditto. - * options.c (gfc_handle_runtime_check_option): Ditto. - * primary.c (match_arg_list_function): Ditto. - * trans-decl.c (gfc_get_symbol_decl): Ditto. - * trans-expr.c (gfc_conv_procedure_call): Ditto. - * interface.c (dtio_op): Replace strncmp by strcmp. - * resolve.c (resolve_actual_arglist, resolve_function): Ditto. - * trans-expr.c (conv_arglist_function): Ditto. - * trans-intrinsic.c (gfc_conv_ieee_arithmetic_function): Replace macro - STARTS_WITH by gfc_str_startswith. - -2018-09-20 Cesar Philippidis - - * dump-parse-tree.c (show_omp_clauses): Add missing omp list_types - and reorder the switch cases to match the enum in gfortran.h. - -2018-09-19 Paul Thomas - - PR fortran/84109 - * trans-expr.c (gfc_trans_assignment_1): The rse.pre for the - assignment of deferred character intrinsic elemental function - results to a realocatable lhs must not be added to the exterior - block if they are array valued but must go to the loop body. - -2018-09-18 Thomas Koenig - - PR fortran/29550 - * gfortran.h (gfc_expr): Add external_blas flag. - * frontend-passes.c (matrix_case): Add case A2TB2T. - (optimize_namespace): Handle flag_external_blas by - calling call_external_blas. - (get_array_inq_function): Add argument okind. If - it is nonzero, use it as the kind of argument - to be used. - (inline_limit_check): Remove m_case argument, add - limit argument instead. Remove assert about m_case. - Set the limit for inlining from the limit argument. - (matmul_lhs_realloc): Handle case A2TB2T. - (inline_matmul_assign): Handle inline limit for other cases with - two rank-two matrices. Remove no-op calls to inline_limit_check. - (call_external_blas): New function. - * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Do not add - argument to external BLAS if external_blas is already set. - -2018-09-18 Paul Thomas - - PR fortran/87239 - * trans-expr.c (gfc_trans_assignment_1): The rse.pre for the - assignment of deferred character elemental function results to - a realocatable lhs must not be added to the exterior block but - must go to the loop body. - -2018-09-18 Paul Thomas - - PR fortran/87336 - * trans-array.c (gfc_get_array_span): Try to get the element - length of incomplete types. Return NULL_TREE otherwise. - (gfc_conv_expr_descriptor): Only set the 'span' field if the - above does not return NULL_TREE. Set 'span' field if possible - for all new descriptors. - -2018-09-17 Paul Thomas - - PR fortran/64120 - * trans-decl.c (gfc_get_symbol_decl): Flag allocatable, scalar - characters with a variable length expression for deferred init. - (gfc_trans_deferred_vars): Perform the assignment for these - symbols by calling gfc_conv_string_length. - -2018-09-17 Paul Thomas - - PR fortran/85954 - * resolve.c (resolve_assoc_var): If the target expression is a - deferred charlen dummy and the associate name shares the - charlen, generate a new one. Make sure that new charlens are in - the namespace list so that they get cleaned up. - * trans-array.c (gfc_is_reallocatable_lhs): Associate names are - not reallocatable. - * trans-decl.c (gfc_get_symbol_decl): Put deferred character - length dummy and result arrays on the deferred initialization - list so that the variable length arrays can be correctly dealt - with. - * trans-expr.c (gfc_conv_string_length): Return if 'expr' is - NULL rather than ICEing.. - -2018-09-16 Janus Weil - - PR fortran/86484 - PR fortran/84543 - * match.c (gfc_match_assignment): For a polymorphic assignment, - make sure that the vtab for the rhs type is generated. - -2018-09-16 Thomas Koenig - - PR fortran/37802 - * frontend-passes.c (B_ERROR): New macro for matmul bounds - checking error messages. - (C_ERROR): Likewise. - (inline_matmul_assign): Reorganize bounds checking, use B_ERROR - and C_ERROR macros. - -2018-09-13 Bernd Edlinger - - * trans-array.c (gfc_conv_array_initializer): Remove excess precision - from overlength string initializers. - -2018-09-12 Paul Thomas - - PR fortran/87284 - * trans-expr.c (gfc_trans_class_init_assign): Access to - to array elements of the dynamic type requires that the array - reference be added to the class expression and not the _data - component, unlike scalar expressions. - -2018-09-11 Janus Weil - - PR fortran/87172 - * resolve.c (resolve_fl_derived): If a type has the 'use_assoc' - attribute, then it was declared in another module, so there should be - no error that it has not been declared. - -2018-09-11 Paul Thomas - - PR fortran/87277 - * expr.c (is_subref_array): Add the check of dimensionality for - class, dummy, pointer arrays. - -2018-09-11 Janus Weil - - PR fortran/86830 - * expr.c (gfc_is_simply_contiguous): Handle type-bound procedure calls - with non-polymorphic objects. - -2018-09-10 Janus Weil - - PR fortran/85395 - * decl.c (match_binding_attributes): Use correct default accessibility - for procedure pointer components. - -2018-09-03 Jerry DeLisle - - * simplify.c (gfc_simplify_modulo): Re-arrange code to test whether - 'P' is zero and issue an error if it is. - -2018-08-31 Paul Thomas - - PR fortran/86328 - PR fortran/86760 - * trans-array.c (gfc_conv_scalarized_array_ref): Do not fix - info->descriptor but pass it directly to gfc_build_array_ref. - (gfc_conv_array_ref): Likewise for se->expr. - * trans.c (gfc_build_array_ref): If 'decl' is a COMPONENT_REF - obtain the span field directly from it. - -2017-08-28 Paul Thomas - - PR fortran/80477 - * trans-expr.c (gfc_conv_procedure_call): Allocatable class - scalar results being passed to a derived type formal argument - are finalized if possible. Otherwise, rely on existing code for - deallocation. Make the deallocation of allocatable result - components conditional on finalization not taking place. Make - the freeing of data components after finalization conditional - on the data being NULL. - (gfc_trans_arrayfunc_assign): Change the gcc_assert to a - condition to return NULL_TREE. - (gfc_trans_assignment_1): If the assignment is class to class - and the rhs expression must be finalized but the assignment - is not marked as a polymorphic assignment, use the vptr copy - function instead of gfc_trans_scalar_assign. - - PR fortran/86481 - * trans-expr.c (gfc_conv_expr_reference): Do not add the post - block to the pre block if the expression is to be finalized. - * trans-stmt.c (gfc_trans_allocate): If the expr3 must be - finalized, load the post block into a finalization block and - add it right at the end of the allocation block. - -2018-08-27 David Malcolm - - PR 87091 - * error.c (gfc_format_decoder): Update for conversion of - show_caret_p to a tri-state. - -2018-08-25 Janus Weil - - PR fortran/86545 - * resolve.c (resolve_transfer): Correctly determine typespec for - generic function calls, in order to throw a proper error. - -2018-08-24 Thomas Koenig - - PR fortran/86837 - * frontend-passes.c (var_in_expr_callback): New function. - (var_in_expr): New function. - (traverse_io_block): Use var_in_expr instead of - gfc_check_dependency for checking if the variable depends on the - previous interators. - -2018-08-23 Janne Blomqvist - - * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Delete - HONOR_SIGNED_ZEROS checks. - -2018-08-23 Paul Thomas - - PR fortran/86863 - * resolve.c (resolve_typebound_call): If the TBP is not marked - as a subroutine, check the specific symbol. - -2018-08-22 Thomas Koenig - - * gfortran.texi: Mention that asynchronous I/O does - not work on systems which lack condition variables, such - as AIX. - -2018-08-22 Janus Weil - - PR fortran/86935 - * match.c (gfc_match_associate): Improve diagnostics for the ASSOCIATE - statement. - -2018-08-22 Andrew Benson - - * module.c (load_generic_interfaces): Move call to find_symbol() - so that only occurs if actually needed. - -2018-08-22 Janus Weil - - PR fortran/86888 - * decl.c (gfc_match_data_decl): Allow allocatable components of - indirectly recursive type. - * resolve.c (resolve_component): Remove two errors messages ... - (resolve_fl_derived): ... and replace them by a new one. - -2018-08-21 Janne Blomqvist - - * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Use - MAX_EXPR/MIN_EXPR unconditionally for real arguments. - * gfortran.texi (Compiler Characteristics): Document MAX/MIN - behavior wrt NaN. - -2018-08-21 Nicolas Koenig - Thomas Koenig - - PR fortran/25829 - * gfortran.texi: Add description of asynchronous I/O. - * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables - as volatile. - * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to - st_wait_async and change argument spec from ".X" to ".w". - (gfc_trans_wait): Pass ID argument via reference. - -2018-08-16 Nathan Sidwell - - * cpp.c (dump_macro): Use cpp_user_macro_p. - -2018-08-14 Janus Weil - - PR fortran/86116 - * interface.c (compare_type): Remove a CLASS/TYPE check. - (compare_type_characteristics): New function that behaves like the old - 'compare_type'. - (gfc_check_dummy_characteristics, gfc_check_result_characteristics): - Call 'compare_type_characteristics' instead of 'compare_type'. - -2018-08-12 Paul Thomas - - PR fortran/66679 - * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Class array - elements are returned as references to the data element. Get - the class expression by stripping back the references. Use this - for the element size. - -2018-08-12 Paul Thomas - - PR fortran/86906 - * resolve.c (resolve_fl_variable_derived): Check if the derived - type is use associated before checking for the host association - error. - -2018-08-10 Janus Weil - - PR fortran/57160 - * invoke.texi (frontend-optimize): Mention short-circuiting. - * options.c (gfc_post_options): Disable -ffrontend-optimize with -Og. - * resolve.c (resolve_operator): Warn about short-circuiting only with - -ffrontend-optimize. - * trans-expr.c (gfc_conv_expr_op): Use short-circuiting operators only - with -ffrontend-optimize. Without that flag, make sure that both - operands are evaluated. - -2018-08-08 Nathan Sidwell - - * cpp.c (cb_file_change): Use linemap_included_from. - -2018-08-07 Cesar Philippidis - - * trans-stmt.h: Remove stale reference to trans-openacc.c. - -2018-08-04 Janus Weil - - PR fortran/45521 - * interface.c (gfc_compare_interfaces): Apply additional - distinguishability criteria of F08 to operator interfaces. - -2018-07-31 Andre Vieira - - Revert 'AsyncI/O patch committed' - 2018-07-25 Nicolas Koenig - Thomas Koenig - - PR fortran/25829 - * gfortran.texi: Add description of asynchronous I/O. - * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables - as volatile. - * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to - st_wait_async and change argument spec from ".X" to ".w". - (gfc_trans_wait): Pass ID argument via reference. - -2018-07-25 Nicolas Koenig - Thomas Koenig - - PR fortran/25829 - * gfortran.texi: Add description of asynchronous I/O. - * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables - as volatile. - * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to - st_wait_async and change argument spec from ".X" to ".w". - (gfc_trans_wait): Pass ID argument via reference. - -2018-07-20 Martin Sebor - - PR middle-end/82063 - * gfortran.h (gfc_handle_option): Change function argument - to HOST_WIDE_INT. - * options.c (gfc_handle_option): Same. - -2018-07-20 Andrew Benson - - * gfortran.h (gfc_symbol): Add pointer to next derived type. - (gfc_dt_list, gfc_get_dt_list): Remove. - (gfc_namespace): Replace gfc_dt_list with gfc_symbol. - * parse.c (resolve_all_program_units): Replace gfc_free_dt_list() with - simple nullification of gfc_derived_types. - * resolve.c (resolve_global_procedure): Replace gfc_dt_list with - gfc_symbol. - (add_dt_to_dt_list): Change derived type linked list insertion to - utilize dt_next pointers in gfc_symbol. - * symbol.c (gfc_new_symbol, gfc_free_dt_list, gfc_symbol_done2) - (get_iso_c_binding_dt, generate_isocbinding_symbol): Remove - gfc_free_dt_list as gfc_dt_list is obsoleted. Change derived type - linked list search/insertion to utilize dt_next pointers in gfc_symbol. - * trans-types.c (gfc_get_derived_type): Change derived type linked - list search to utilize dt_next pointers in gfc_symbol. - -2018-07-19 Kyrylo Tkachov - - * trans-intrinsic.c: (gfc_conv_intrinsic_minmax): Emit MIN_MAX_EXPR - or IFN_FMIN/FMAX sequence to calculate the min/max when possible. - -2018-07-18 Janus Weil - Thomas Koenig - - PR fortran/85599 - * dump-parse-tree.c (show_attr): Add handling of implicit_pure. - * frontend-passes.c (do_warn_function_elimination): Do not warn for - pure functions. - * gfortran.h: Add prototypes for gfc_pure_function and - gfc_implicit_pure_function. - * gfortran.texi: Add chapter on evaluation of logical expressions. - * invoke.texi: Mention that -Wfunction-elimination is implied - by -Wextra. - * lang.opt: Make -Wextra imply -Wfunction-elimination. - * resolve.c (pure_function): Rename to gfc_pure_function. - (gfc_implicit_pure_function): New function. - (check_pure_function): Use it here. - (impure_function_callback): New function. - (resolve_operator): Call it via gfc_expr_walker. - -2018-07-16 Fritz Reese - - PR fortran/83184 - * decl.c (match_old_style_init): Initialize locus of variable expr when - creating a data variable. - (match_clist_expr): Verify array is explicit shape/size before - attempting to allocate constant array constructor. - -2018-07-16 Fritz Reese - - PR fortran/86417 - * module.c (mio_component): Set component->loc when loading from module. - -2018-07-10 Jakub Jelinek - - PR fortran/86421 - * module.c (omp_declare_simd_clauses): Add LINEAR with _REF, _VAL and - _UVAL suffixes. - (mio_omp_declare_simd): Save and restore ref, val and uval modifiers - on linear clauses. Initialize n->where to gfc_current_locus. - -2018-07-05 Paul Thomas - - PR fortran/86408 - * resolve.c.c (resolve_contained_fntype): Reference to C418 is - in F2008 and not F2003. - (resolve_function): Ditto in error message. Also, exclude - deferred character length results from the error. - -2018-07-05 Fritz Reese - - PR fortran/83183 - PR fortran/86325 - * expr.c (class_allocatable, class_pointer, comp_allocatable, - comp_pointer): New helpers. - (component_initializer): Generate EXPR_NULL for allocatable or pointer - components. Do not generate initializers for components within BT_CLASS. - Do not assign to comp->initializer. - (gfc_generate_initializer): Use new helpers; move code to generate - EXPR_NULL for class allocatable components into component_initializer(). - -2018-07-04 Jerry DeLisle - - PR fortran/82009 - * trans-decl.c (gfc_process_block_locals): Delete assert and set - saved_local_decls = NULL_TREE. - -2018-07-02 Richard Biener - - PR lto/86321 - * trans-types.c (gfc_get_array_type_bounds): Unshare TYPE_FIELDs - for the distinct type copy. - -2018-07-02 Paul Thomas - - PR fortran/82969 - PR fortran/86242 - * trans-array.c (structure_alloc_comps): Do not explicitly copy - procedure pointer components. - -2018-07-02 Paul Thomas - - PR fortran/45305 - * expr.c : Add a prototype for scalarize_intrinsic_call. - (gfc_simplify_expr): Use scalarize_intrinsic_call for elemental - intrinsic function calls. - (scalarize_intrinsic_call): Add 'init_flag' argument. Check if - the expression or any of the actual argument expressions are - NULL. Before calling gfc_check_init_expr, check 'init_flag'. - Only simplify the scalarized expressions if there are no errors - on the stack. - (gfc_check_init_expr): Set 'init_flag' true in the call to - scalarize_intrinsic_call. - -2018-06-28 Fritz Reese - - PR fortran/82865 - * decl.c (gfc_match_type): Refactor and check for PDT declarations. - -2018-06-28 Martin Liska - - * gfortranspec.c: Include opt-suggestions.h. - -2018-06-25 Fritz Reese - - PR fortran/82972 - PR fortran/83088 - PR fortran/85851 - * expr.c (component_initializer): Assign init expr to c->initializer. - (generate_isocbinding_initializer): New. - (gfc_generate_initializer): Call generate_isocbinding_initializer to - generate initializers for c_ptr and c_funptr with -finit-derived. - -2018-06-23 Jerry DeLisle - - PR fortran/85983 - * interface.c (check_dtio_interface1): Delete assert. - -2018-06-22 Paul Thomas - Rainer Orth - - PR fortran/86281 - * resolve.c (resolve_contained_fntype): Check for the charlen - before testing the length. - -2018-06-21 Paul Thomas - - PR fortran/49630 - * resolve.c (resolve_contained_fntype): Change standard ref. - from F95 to F2003: C418. Correct a spelling error in a comment. - It is an error for an abstract interface to have an assumed - character length result. - * trans-expr.c (gfc_conv_procedure_call): Likewise change the - standard reference. - -2018-06-21 Paul Thomas - - PR fortran/83118 - * resolve.c (resolve_ordinary_assign): Force the creation of a - vtable for assignment of non-polymorphic expressions to an - unlimited polymorphic object. - * trans-array.c (gfc_alloc_allocatable_for_assignment): Use the - size of the rhs type for such assignments. Set the dtype, _len - and vptrs appropriately. - * trans-expr.c (gfc_trans_assignment): Force the use of the - _copy function for these assignments. - -2018-06-20 Chung-Lin Tang - Thomas Schwinge - Cesar Philippidis - - * gfortran.h (gfc_omp_clauses): Add unsigned if_present, finalize - bitfields. - * openmp.c (enum omp_mask2): Remove OMP_CLAUSE_PRESENT_OR_*. Add - OMP_CLAUSE_{IF_PRESENT,FINALIZE}. - (gfc_match_omp_clauses): Update handling of copy, copyin, copyout, - create, deviceptr, present_of_*. Add support for finalize and - if_present. - (OACC_PARALLEL_CLAUSES): Remove PRESENT_OR_* clauses. - (OACC_KERNELS_CLAUSES): Likewise. - (OACC_DATA_CLAUSES): Likewise. - (OACC_DECLARE_CLAUSES): Likewise. - (OACC_UPDATE_CLAUSES): Add IF_PRESENT clause. - (OACC_ENTER_DATA_CLAUSES): Remove PRESENT_OR_* clauses. - (OACC_EXIT_DATA_CLAUSES): Add FINALIZE clause. - (gfc_match_oacc_declare): Update to OpenACC 2.5 semantics. - * trans-openmp.c (gfc_trans_omp_clauses): Add support for IF_PRESENT - and FINALIZE. - -2018-06-18 Eric Botcazou - - * trans-decl.c (gfc_get_fake_result_decl): Revert latest change. - -2018-06-17 Eric Botcazou - - * trans-decl.c (nonlocal_dummy_decl_pset): Delete. - (nonlocal_dummy_decls): Likewise. - (gfc_nonlocal_dummy_array_decl): Likewise. - (gfc_get_symbol_decl): Do not call gfc_nonlocal_dummy_array_decl. - (gfc_get_fake_result_decl): Do not generate a new DECL if simply - reusing the result of a recursive call. - (gfc_generate_function_code): Do not create, insert and destroy - nonlocal_dummy_decls. - -2018-06-13 Steven G. Kargl - - PR fortran/86110 - * array.c (gfc_resolve_character_array_constructor): Avoid NULL - pointer dereference. - -2018-06-13 Cesar Philippidis - - PR fortran/85703 - * parse.c (decode_oacc_directive): Set gfc_matching_function - to false. - (decode_omp_directive): Likewise. - -2018-06-13 Cesar Philippidis - - PR fortran/85702 - * openmp.c (gfc_match_oacc_wait): Use %C to report error location. - -2018-06-12 David Malcolm - - PR other/69968 - * misc.c (gfc_closest_fuzzy_match): Update for renaming of - levenshtein_distance to get_edit_distance. - -2018-06-12 Steven G. Kargl - - PR fortran/44491 - * expr.c (gfc_check_assign): Select non-NULL locus. - -2018-06-11 Janus Weil - - PR fortran/45521 - * interface.c (compare_ptr_alloc): New function. - (generic_correspondence): Call it. - -2018-06-10 Thomas Koenig - - * gfortran.h (gfc_expr): Add no_bounds_check field. - * frontend-passes.c (get_array_inq_function): Set no_bounds_check - on function and function argument. - (inline_matmul_assign): Set no_bounds_check on zero expression - and on lhs of zero expression. - Also handle A1B2 case if realloc on assigment is active. - * trans-array.c (gfc_conv_array_ref): Don't do range checking - if expr has no_bounds_check set. - (gfc_conv_expr_descriptor): Set no_bounds_check on ss if expr - has it set. - * trans-expr.c (gfc_trans_assignment_1): Set no_bounds_check - on lss and lss if the corresponding expressions have it set. - -2018-06-10 Dominique d'Humieres - - PR fortran/79854 - * trans-const.c: Remove include "diagnostic-core.h". - (gfc_conv_constant_to_tree): Replace fatal_error with gcc_unreachable. - -2018-06-10 Janus Weil - - PR fortran/85088 - * decl.c (match_attr_spec): Synchronize the DECL_* enum values with the - INTENT_* values from the enum 'sym_intent'. Call 'match_intent_spec' - and remove a TODO note. - * gfortran.h: Add a comment to sym_intent. - -2018-06-09 Steven G. Kargl - - PR fortran/38351 - * resolve.c (resolve_operator): Provide better error message for - derived type entity used in an binary intrinsic numeric operator. - -2018-06-09 Steven G. Kargl - - PR fortran/85138 - PR fortran/85996 - PR fortran/86051 - * decl.c (gfc_match_char_spec): Use private namespace in attempt to - reduce a charlen to a constant. - -2018-06-09 Steven G. Kargl - - PR fortran/78278 - * data.c (gfc_assign_data_value): Re-arrange code to allow for - an error for double initialization of CHARACTER entities. - -2018-06-09 Steven G. Kargl - - PR fortran/63514 - * symbol.c (gfc_add_volatile): Enforce F2008:C1282 and F2018:C1588. - -2018-06-08 Thomas Koenig - - PR fortran/85631 - * trans.h (gfc_ss): Add field no_bounds_check. - * trans-array.c (gfc_conv_ss_startstride): If flag_realloc_lhs and - ss->no_bounds_check is set, do not use runtime checks. - * trans-expr.c (gfc_trans_assignment_1): Set lss->no_bounds_check - for reallocatable lhs. - -2018-06-08 Steven G. Kargl - - PR fortran/86059 - * array.c (match_array_cons_element): NULL() cannot be in an - array constructor. - -2018-06-08 Steven G. Kargl - - PR fortran/78571 - * data.c (create_character_initializer): Return early if type is - incompatible with CHARACTER. - -2018-06-07 Steven G. Kargl - - PR fortran/86045 - * simplify.c (gfc_simplify_mod): Re-arrange code to test whether - 'P' is zero and issue an error if it is. - -2018-06-06 Thomas Koenig - - PR fortran/85641 - * frontend-passes.c (is_fe_temp): Add prototype. - (realloc_string_callback): Early return for frontend-generated - temporary. - -2018-06-05 Cesar Philippidis - - PR fortran/85701 - - * openmp.c (gfc_resolve_oacc_declare): Error on functions and - subroutine data clause arguments. - -2018-06-04 Steven G. Kargl - - PR fortran/85981 - * resolve.c (resolve_allocate_deallocate): Check errmsg is default - character kind. - -2018-06-03 Paul Thomas - - PR fortran/36497 - * decl.c (variable_decl): Use gfc_add_type for cray pointees. - -2018-06-01 Steven G. Kargl - - PR fortran/63570 - * check.c (gfc_check_random_init): New function. Check arguments of - RANDOM_INIT. - * gfortran.h (GFC_ISYM_RANDOM_INIT): New enum token. - * intrinsic.c (add_subroutines): Add RANDOM_INIT to list of - subroutines. - (gfc_check_intrinsic_standard): Introduce Fortran 2018 check. - * intrinsic.h: Add prototypes for gfc_check_random_init and - gfc_resolve_random_init - * intrinsic.texi: Document new intrinsic subprogram. - * iresolve.c (gfc_resolve_random_init): Resolve routine name. - * trans-decl.c: Declare gfor_fndecl_random_init - * trans-intrinsic.c (conv_intrinsic_random_init): New function. - Translate call to RANDOM_INIT. - (gfc_conv_intrinsic_subroutine): Call it. - * trans.h: Declare gfor_fndecl_random_init - -2018-05-27 Steven G. Kargl - - * decl.c (match_data_constant): Fortran 2018 allows pointer - initialization in a data statement. - -2018-05-25 Janus Weil - - PR fortran/85839 - * match.c (gfc_match_block_data): Call gfc_notify_std to warn about - an obsolescent feature in Fortran 2018. - (gfc_match_equivalence): Ditto. - * resolve.c (resolve_common_blocks): Ditto. - (gfc_resolve_forall): Ditto. - * symbol.c (gfc_define_st_label): Ditto. - -2018-05-24 Steven G. Kargl - - PR fortran/85543 - * resolve.c (update_current_proc_array_outer_dependency): Avoid NULL - pointer dereference. - -2018-05-24 Steven G. Kargl - - PR fortran/85780 - * resolve.c (resolve_fl_procedure): Avoid NULL dereference. - -2018-05-24 Steven G. Kargl - - PR fortran/85779 - * decl.c (gfc_match_derived_decl): Fix NULL point dereference. - -2018-05-24 Steven G. Kargl - - PR fortran/85895 - * resolve.c (resolve_sync): Resolve expression before checking for - an error. - -2018-05-22 Janus Weil - - PR fortran/85841 - * libgfortran.h: Remove the macros GFC_STD_F2008_TS and - GFC_STD_OPT_F08TS. - * error.c (notify_std_msg): Remove GFC_STD_F2008_TS. - * options.c (set_default_std_flags): Ditto. - (gfc_handle_option): Make -std=f2008ts an alias for -std=f2018. - * array.c (gfc_match_array_spec): Replace GFC_STD_F2008_TS by - GFC_STD_F2018. - * check.c (gfc_check_atomic, gfc_check_event_query, - gfc_check_c_f_pointer, gfc_check_c_f_procpointer, gfc_check_c_funloc, - gfc_check_c_loc, gfc_check_num_images, gfc_check_this_image): Ditto. - * decl.c (gfc_verify_c_interop_param, gfc_match_decl_type_spec): Ditto. - * intrinsic.c (add_functions, add_subroutines, - gfc_check_intrinsic_standard): Ditto. - * iso-c-binding.def: Ditto. - * iso-fortran-env.def: Ditto. - * match.c (gfc_match_event_post, gfc_match_event_wait, - gfc_match_fail_image, gfc_match_form_team, gfc_match_change_team, - gfc_match_end_team, gfc_match_sync_team): Ditto. - * gfortran.texi: Remove mention of -std=f2008ts. - Move TSs into F2018 section. - * invoke.texi: Update documentation of -std=f2008ts. - -2018-05-21 Janus Weil - - PR fortran/85841 - * libgfortran.h: New macros GFC_STD_OPT_*. - * error.c (notify_std_msg): New function. - (gfc_notify_std): Adjust such that it can handle combinations of - GFC_STD_* flags in the 'std' argument, not just a single one. - * match.c (match_arithmetic_if, gfc_match_if): Reject arithmetic if - in Fortran 2018. - (gfc_match_stopcode): Use GFC_STD_OPT_* macros. - * options.c (set_default_std_flags): Warn for F2018 deleted features - by default. - (gfc_handle_option): F2018 deleted features are allowed in earlier - standards. - * symbol.c (gfc_define_st_label, gfc_reference_st_label): Reject - nonblock do constructs in Fortran 2018. - -2018-05-20 Paul Thomas - - PR fortran/80657 - * resolve.c (flag_fn_result_spec): Use the 'sym' argument to - test for self refs to the function result in the character len - expression. If a self reference is found, emit an error and - return true. - (resolve_fntype): Use the function symbol in the calls to the - above. - -2018-05-20 Paul Thomas - - PR fortran/49636 - * trans-array.c (gfc_get_array_span): Renamed from - 'get_array_span'. - (gfc_conv_expr_descriptor): Change references to above. - * trans-array.h : Add prototype for 'gfc_get_array_span'. - * trans-intrinsic.c (gfc_conv_associated): Add pre and post - blocks for 'arg1'. - * trans-stmt.c (trans_associate_var): If the associate name is - a subref array pointer, use gfc_get_array_span for the span. - -2018-05-20 Paul Thomas - - PR fortran/82275 - * match.c (gfc_match_type_spec): Go through the array ref and - decrement 'rank' for every dimension that is an element. - -2018-05-19 Paul Thomas - - PR fortran/82923 - PR fortran/66694 - PR fortran/82617 - * trans-array.c (gfc_alloc_allocatable_for_assignment): Set the - charlen backend_decl of the rhs expr to ss->info->string_length - so that the value in the current scope is used. - -2018-05-13 Steven G. Kargl - - PR fortran/63529 - * gfortran.texi: Clarify documentation for Cray pointer and - assumed-sized array. - -2018-05-13 Paul Thomas - - PR fortran/85742 - * trans-types.c (gfc_get_dtype_rank_type): Reorder evaluation - of 'size'. If the element type is a pointer use the size of the - TREE_TYPE of the type, unless it is VOID_TYPE. In this latter - case, set the size to zero. - -2018-05-13 Steven G. Kargl - - * gfortran.h: Remove prototype. - * symbol.c (gfc_new_undo_checkpoint): Remove unused function. - -2018-05-11 Steven G. Kargl - - PR fortran/85542 - * expr.c (check_inquiry): Avoid NULL pointer dereference. - -2018-05-10 Steven G. Kargl - - PR fortran/85687 - * check.c (gfc_check_rank): Check that the argument is a data object. - -2018-05-10 Steven G. Kargl - - PR fortran/85521 - * array.c (gfc_resolve_character_array_constructor): Substrings - with upper bound smaller than lower bound are zero length strings. - -2018-05-10 Steven G. Kargl - - PR fortran/70870 - * data.c (gfc_assign_data_value): Check that a data object does - not also have default initialization. - -2018-05-10 Marek Polacek - - PR fortran/85735 - * options.c (gfc_post_options): Set main_input_filename. - -2018-05-10 Thomas Koenig - - PR fortran/54613 - * intrinsic.texi: Document BACK for MINLOC and MAXLOC. - -2018-05-10 Paul Thomas - - PR fortran/68846 - PR fortran/70864 - * resolve.c (get_temp_from_expr): The temporary must not have - dummy or intent attributes. - -2018-05-08 Thomas Koenig - - PR fortran/54613 - * check.c (gfc_check_minmaxloc): Remove error for BACK not being - implemented. Use gfc_logical_4_kind for BACK. - * simplify.c (min_max_choose): Add optional argument back_val. - Handle it. - (simplify_minmaxloc_to_scalar): Add argument back_val. Pass - back_val to min_max_choose. - (simplify_minmaxloc_to_nodim): Likewise. - (simplify_minmaxloc_to_array): Likewise. - (gfc_simplify_minmaxloc): Add argument back, handle it. - Pass back_val to specific simplification functions. - (gfc_simplify_minloc): Remove ATTRIBUTE_UNUSED from argument back, - pass it on to gfc_simplify_minmaxloc. - (gfc_simplify_maxloc): Likewise. - * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Adjust - comment. If BACK is true, use greater or equal (or lesser or - equal) insteal of greater (or lesser). Mark the condition of - having found a value which exceeds the limit as unlikely. - -2018-05-07 Jeff Law - - * scanner.c (preprocessor_line): Call linemap_add after a line - directive that changes the current filename. - -2018-05-06 Andre Vehreschild - - PR fortran/85507 - * dependency.c (gfc_dep_resolver): Revert looking at coarray dimension - introduced by r259385. - * trans-intrinsic.c (conv_caf_send): Always report a dependency for - same variables in coarray assignments. - -2018-05-02 Tom de Vries - - PR libgomp/82428 - * f95-lang.c (DEF_GOACC_BUILTIN_ONLY): Define. - -2018-04-24 Steven G. Kargl - - PR fortran/85520 - * decl.c (gfc_match_char_spec): Check for negative length and set to 0. - -2018-04-14 Andre Vehreschild - - PR fortran/81773 - PR fortran/83606 - * dependency.c (gfc_dep_resolver): Coarray indexes are to be ignored - during dependency computation. They define no data dependency. - * trans-array.c (conv_array_index_offset): The stride can not be set - here, prevent fail. - * trans-intrinsic.c (conv_caf_send): Add creation of temporary array - for caf_get's result and copying to the array with vectorial - indexing. - -2018-04-14 Thomas Koenig - - PR fortran/85387 - * frontend-passes.c (traverse_io_block): Check for start, end or - stride being defined by an outer implied DO loop. - -2018-04-12 Thomas Koenig - - PR fortran/83064 - PR testsuite/85346 - * trans-stmt.c (gfc_trans_forall_loop): Use annot_expr_ivdep_kind - for annotation and remove dependence on -ftree-parallelize-loops. - -2018-04-10 Jakub Jelinek - - PR fortran/85313 - * openmp.c (resolve_omp_do): Remove bogus if (j < i) break;. - (resolve_oacc_nested_loops): Likewise. Formatting fix. - -2018-04-09 Thomas Koenig - - PR fortran/83064 - * trans-stmt.c (gfc_trans_forall_loop): Remove annotation for - parallell processing of DO CONCURRENT -ftree-parallelize-loops - is set. - -2018-04-09 Thomas Koenig - - PR fortran/51260 - * resolve.c (resolve_variable): Simplify cases where access to a - parameter array results in a single constant. - -2018-04-02 Thomas Koenig - - PR fortran/85102 - * decl.c (variable_decl): If upper or lower bounds simplify - to a constant, use that. - -2018-03-30 Paul Thomas - - PR fortran/84931 - * simplify.c (gfc_convert_constant): Handle case of array - constructors within an array that has no iterator and improve - the conciseness of this section of code. - -2017-03-30 Thomas Koenig - - PR fortran/85111 - * array.c (gfc_resolve_character_array_constructor): Early - exit for zero-size arrays. - * simplify.c (simplify_transformation_to_array): Exit early - if the result size is zero. - (simplify_minmaxloc_to_array): Likewise. - -2018-03-28 Mikael Morin - - PR fortran/69497 - * symbol.c (gfc_symbol_done_2): Start freeing namespaces - from the root. - (gfc_free_namespace): Restore assert (revert r258839). - -2018-03-28 Jakub Jelinek - - * gfortran.h (gfc_dt): Rename default_exp field to dec_ext. - * ioparm.def (IOPARM_dt_default_exp): Rename to ... - (IOPARM_dt_dec_ext): ... this. - * trans-io.c (build_dt): Adjust for default_exp renaming to - dec_ext and IOPARM_dt_default_exp renaming to IOPARM_dt_dec_ext. - * io.c (match_io): Likewise. - -2018-03-27 Thomas Koenig - - PR fortran/85084 - * frontend-passes.c (gfc_run_passes): Do not run front-end - optimizations if a previous error occurred. - -2018-03-27 Thomas Koenig - Harald Anlauf - - PR fortran/85083 - * primary.c (gfc_convert_to_structure_constructor): Check - conformance of argument types in structure constructor. - -2018-03-26 Thomas Koenig - - PR fortran/66709 - * io.c: Include constructor.h. - (resolve_tag_format): For a constant character array, concatenate - into a single character expression. - -2018-03-25 Seth Johnson - Dominique d'Humieres - - PR fortran/84924 - * check.c (gfc_check_c_f_pointer): Allow scalar noninteroperable - scalar derived type with -std=f2003 and -std=f2008. - -2018-03-24 Jerry DeLisle - Dominique d'Humieres - - PR fortran/69497 - * symbol.c (gfc_free_namespace): Delete the assert and only if - refs count is equals zero, free the namespace. Otherwise, - something is halfway and other errors will resound. - -2018-03-24 Thomas Koenig - - PR fortran/70068 - * expr.c (find_substring_ref): Change types of start, end - and length variables to gfc_charlen_t. Set length to zero - for empty substring. - -2018-03-24 Steven G. Kargl - - PR fortran/42651 - * decl.c (check_function_name): Improved error message - (gfc_match_volatile, gfc_match_asynchronous) Use check_function_name. - -2018-03-22 Steven G. Kargl - - PR fortran/84922 - * decl.c (get_proc_name): If the MODULE prefix appears in interface - body, then it must appear on the contained subroutine or function. - While here, fix nearby mis-indented code. - -2018-03-21 Thomas Koenig - Harald Anlauf - - PR fortran/84957 - * trans-types.c (gfc_sym_type): Do not dereference NULL pointer. - -2018-03-21 Janne Blomqvist - - PR fortran/84615 - * trans-expr.c (gfc_conv_procedure_call): Convert charlen to - gfc_charlen_type_node when calling procedure. - -2018-03-20 Steven G. Kargl - - PR fortran/85001 - * interface.c (symbol_rank): Remove bogus null pointer check that - crept in when translating a ternary operator into an if-else - constructor. - -2018-03-19 Thomas Koenig - - PR fortran/84931 - * simplify.c (gfc_convert_constant): Correctly handle iterators - for type conversion. - -2018-03-18 Steven G. Kargl - - PR fortran/77414 - * decl.c (get_proc_name): Check for a subroutine re-defined in - the contain portion of a subroutine. Change language of existing - error message to better describe the issue. While here fix whitespace - issues. - -2018-03-18 Steven G. Kargl - - PR fortran/65453 - * decl.c (get_proc_name): Catch clash between a procedure statement - and a contained subprogram - -2018-03-16 Steven G. Kargl - - PR fortran/69395 - * decl.c (merge_array_spec): Correct the error condition. - -2018-03-15 Steven G. Kargl - - PR fortran/78741 - * decl.c (get_proc_name): Check for clash of entry name with - subroutine name. - -2018-03-15 Steven G. Kargl - - PR fortran/69395 - * decl.c (merge_array_spec): Limit the merging to maximum allowed - dimensions, and issue error message if limit is exceeded. - -2018-03-13 Steven G. Kargl - - * check.c (gfc_check_kill_sub): Remove check for INTEGER(4) or (8). - * intrinsic.c (add_functions): Remove reference to gfc_resolve_kill. - (add_subroutines): Remove reference to gfc_resolve_kill_sub. - * intrinsic.texi: Update documentation. - * iresolve.c (gfc_resolve_kill, gfc_resolve_kill_sub): Remove. - * trans-decl.c (gfc_build_intrinsic_function_decls): Add - gfor_fndecl_kill and gfor_fndecl_kill_sub - * trans-intrinsic.c (conv_intrinsic_kill, conv_intrinsic_kill_sub): new - functions. - (gfc_conv_intrinsic_function): Use conv_intrinsic_kill. - (gfc_conv_intrinsic_subroutine): Use conv_intrinsic_kill_sub. - * trans.h: Declare gfor_fndecl_kill and gfor_fndecl_kill_sub. - -2018-03-11 Paul Thomas - - PR fortran/84546 - * trans-array.c (structure_alloc_comps): Make sure that the - vptr is copied and that the unlimited polymorphic _len is used - to compute the size to be allocated. - * trans-expr.c (gfc_get_class_array_ref): If unlimited, use the - unlimited polymorphic _len for the offset to the element. - (gfc_copy_class_to_class): Set the new 'unlimited' argument. - * trans.h : Add the boolean 'unlimited' to the prototype. - -2018-03-11 Steven G. Kargl - - PR fortran/83939 - * resolve.c (resolve_fl_procedure): Enforce F2018:C15100. - -2018-03-11 Steven G. Kargl - - * check.c (gfc_check_kill): Check pid and sig are scalar. - (gfc_check_kill_sub): Restrict kind to 4 and 8. - * intrinsic.c (add_function): Sort keyword list. Add pid and sig - keywords for KILL. Remove redundant *back="back" in favor of the - original *bck="back". - (add_subroutines): Sort keyword list. Add pid and sig keywords - for KILL. - * intrinsic.texi: Fix documentation to consistently use pid and sig. - * iresolve.c (gfc_resolve_kill): Kind can only be 4 or 8. Choose the - correct function. - (gfc_resolve_rename_sub): Add comment. - -2018-03-11 Thomas Koenig - - PR fortran/66128 - * simplify.c (simplify_transformation): Return default result for - empty array argument. - (gfc_simplify_all): Remove special-case handling for zerosize. - (gfc_simplify_any): Likewise. - (gfc_simplify_count): Likewise. - (gfc_simplify_iall): Likewise. - (gfc_simplify_iany): Likewise. - (gfc_simplify_iparity): Likewise. - (gfc_simplify_minval): Likewise. - (gfc_simplify_maxval): Likewise. - (gfc_simplify_norm2): Likewise. - (gfc_simplify_product): Likewise. - (gfc_simplify_sum): Likewise. - -2018-03-10 Steven G. Kargl - - PR fortran/84734 - * arith.c (check_result, eval_intrinsic): If result overflows, pass - the expression up the chain instead of a NULL pointer. - -2018-03-07 Steven G. Kargl - - PR fortran/64124 - PR fortran/70409 - * decl.c (gfc_match_char_spec): Try to reduce a charlen to a constant. - -2017-03-06 Thomas Koenig - - PR fortran/84697 - PR fortran/66128 - * expr.c (simplify_parameter_variable): If p is a size zero array - and not an ARRAY_EXPR insert an empty array constructor and - return. - * gfortran.h: Add prototype for gfc_is_size_zero_array. - * simplify.c (is_size_zero_array): Make non-static and rename into - (gfc_is_size_zero_array): Check for parameter arrays of zero - size by comparing shape and absence of constructor. - (gfc_simplify_all): Use gfc_is_size_zero_array instead of - is_size_zero_array. - (gfc_simplify_count): Likewise. - (gfc_simplify_iall): Likewise. - (gfc_simplify_iany): Likewise. - (gfc_simplify_iparity): Likewise. - (gfc_simplify_minval): Likewise. - (gfc_simplify_maxval): Likewise. - (gfc_simplify_product): Likewise. - (gfc_simplify_sum): Likewise. - -2018-03-06 Steven G. Kargl - - PR fortran/56667 - * primary.c (match_sym_complex_part): Give the matcher for an implied - do-loop a chance to run. - -2018-03-03 Harald Anlauf - - PR fortran/71085 - * trans-expr.c (gfc_apply_interface_mapping_to_expr): Do not - dereference NULL pointer. - -2018-03-03 Steven G. Kargl - - PR fortran/66128 - * simplify.c (is_size_zero_array): New function to check for size - zero array. - (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count, - gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity, - gfc_simplify_minval, gfc_simplify_maxval, gfc_simplify_norm2, - gfc_simplify_product, gfc_simplify_sum): Use it, and implement - requirements from F2018. - -2018-03-03 Steven G. Kargl - - PR fortran/51434 - * simplify.c (gfc_simplify_transfer): Resolve mold. - -2018-03-03 Paul Thomas - - PR fortran/80965 - * resolve.c (build_loc_call): Change symtree name from 'loc' to - '_loc'. - -2018-03-01 Paul Thomas - - PR fortran/84219 - * target-memory.c (gfc_interpret_derived): Assert that BT_VOID - components are caf tokens. - (gfc_target_interpret_expr): Treat BT_VOID expressions as - integers. - -2018-03-01 Paul Thomas - - PR fortran/84538 - * class.c (class_array_ref_detected): Remove the condition that - there be no reference after the array reference. - (find_intrinsic_vtab): Remove excess whitespace. - * trans-array.c (gfc_conv_scalarized_array_ref): Rename 'tmp' - as 'base and call build_class_array_ref earlier. - -2018-02-28 Paul Thomas - - PR fortran/83901 - * trans-stmt.c (trans_associate_var): Make sure that the se - expression is a pointer type before converting it to the symbol - backend_decl type. - -2018-02-25 Steven G. Kargl - - PR fortran/83633 - * decl.c (variable_decl): Check that an explicit-shape-array with - nonconstant bounds is allowed. - -2018-02-25 Paul Thomas - - PR fortran/84523 - * trans-intrinsic.c (gfc_conv_allocated): If the argument se - has a pre block, add it to the expression pre block. - -2018-02-25 Thomas Koenig - - PR fortran/78238 - * gfortran.h (gfc_integer_4_kind): Define. - * resolve.c (resolve_select_type): Make sure that the - kind of c->high is gfc_integer_4_kind. - -2018-02-24 Steven G. Kargl - - PR fortran/30792 - * decl.c (gfc_match_data): Check for invalid substring in - data-implied-do - -2018-02-23 Steven G. Kargl - - * intrinsic.texi: Arguments to MATMUL cannot both be rank one. - -2018-02-23 Steven G. Kargl - - PR fortran/84511 - * trans-io.c (transfer_expr): Deal with C_LOC in transfer statement. - -2018-02-23 Steven G. Kargl - - PR fortran/84346 - * interface.c (compare_actual_formal): Issue error if keyword is - used in a statement function. - -2018-02-23 Jerry DeLisle - - PR fortran/84506 - * trans-io.c (set_parameter_value_inquire): Adjust range check of - negative unit values for kind=8 units to the kind=4 negative limit. - -2018-02-23 Paul Thomas - - PR fortran/83149 - * trans-types.c (gfc_sym_type): Test sym->ns->proc_name before - accessing its components. - -2018-02-23 Paul Thomas - - PR fortran/83149 - * trans-decl.c (gfc_finish_var_decl): Test sym->ns->proc_name - before accessing its components. - -2018-02-23 Paul Thomas - - PR fortran/83148 - * trans-const.c : Clean up some whitespace issues. - * trans-expr.c (gfc_conv_initializer): If an iso_c_binding - derived type has a kind value of zero, set it to the default - integer kind. - -2018-02-23 Janne Blomqvist - - PR fortran/84519 - * trans-decl.c (gfc_build_builtin_function_decls): Add bool - argument to stop and error stop decls. - * trans-stmt.c (gfc_trans_stop): Add false value to argument - lists. - -2018-02-22 Janne Blomqvist - - PR 78534 - PR 84509 - * trans-decl.c (gfc_build_builtin_function_decls): Pass - gfc_int8_type node to pause_numeric, size_type_node to - pause_string. - * trans-stmt.c (gfc_trans_pause): Likewise. - -2018-02-22 Janne Blomqvist - - * gfortran.texi: Update Coarray API description. - * trans-decl.c (gfc_build_builtin_function_decls): Use size_t for - character lengths, int for exit codes. - (generate_coarray_sym_init): Use size_t for character length. - * trans-intrinsic.c (conv_co_collective): Likewise. - * trans-stmt.c (gfc_trans_lock_unlock): Likewise. - (gfc_trans_event_post_wait): Likewise. - (gfc_trans_sync): Likewise. - (gfc_trans_stop): Use size_t for character lengths, int for exit - codes. - -2018-02-20 Thomas Koenig - - PR fortran/48890 - PR fortran/83823 - * primary.c (gfc_convert_to_structure_constructor): - For a constant string constructor, make sure the length - is correct. - -2018-02-19 Paul Thomas - - PR fortran/83344 - PR fortran/83975 - * resolve.c (resolve_assoc_var): Rearrange the logic for the - determination of the character length of associate names. If - the associate name is missing a length expression or the length - expression is not a constant and the target is not a variable, - make the associate name allocatable and deferred length. - * trans-decl.c (gfc_get_symbol_decl): Null the character length - backend_decl for deferred length associate names that are not - variables. Set 'length' to gfc_index_zero_node for character - associate names, whose character length is a PARM_DECL. - -2018-02-19 Thomas Koenig - - PR fortran/35339 - * frontend-passes.c (traverse_io_block): Remove workaround for - PR 80945. - -2018-02-19 Andre Vehreschild - - * gfortran.texi: Document additional src/dst_type. Fix some typos. - * trans-decl.c (gfc_build_builtin_function_decls): Declare the new - argument of _caf_*_by_ref () with * e { get, send, sendget }. - * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Add the type of the - data referenced when generating a call to caf_get_by_ref (). - (conv_caf_send): Same but for caf_send_by_ref () and - caf_sendget_by_ref (). - -2018-02-18 Jerry DeLisle - - PR fortran/84389 - * io.c (check_format): Allow FMT_COLON. - -2018-02-18 Paul Thomas - - PR fortran/80945 - * trans-array.c (gfc_conv_expr_descriptor): Set parmtype from - the typenode in the case of deferred length characters. - -2018-02-17 Thomas Koenig - - PR fortran/84270 - * frontend-passes (scalarized_expr): If the expression - is an assumed size array, leave in the last reference - and pass AR_SECTION instead of AR_FULL to gfc_resolve - in order to avoid an error. - -2018-02-17 Paul Thomas - - PR fortran/84115 - * resolve.c (resolve_assoc_var): If a non-constant target expr. - has no string length expression, make the associate variable - into a deferred length, allocatable symbol. - * trans-decl.c (gfc_is_reallocatable_lhs): Add and use a ptr to - the symbol. - * trans-stmt.c (trans_associate_var): Null and free scalar - associate names that are allocatable. After assignment, remove - the allocatable attribute to prevent reallocation. - -2018-02-16 Jakub Jelinek - - PR fortran/84418 - * trans-openmp.c (gfc_trans_omp_clauses): For OMP_CLAUSE_LINEAR_REF - kind set OMP_CLAUSE_LINEAR_STEP to TYPE_SIZE_UNIT times last_step. - -2018-02-16 Dominique d'Humieres - - PR fortran/84354 - * decl.c (gfc_get_pdt_instance): Replace '%qs' with %qs. - -2018-02-15 Janus Weil - - PR fortran/84409 - * interface.c (check_dtio_arg_TKR_intent): Add a check for character - length. - -2018-02-14 Janus Weil - - PR fortran/84385 - * match.c (gfc_match_select_type): Fix check for selector in - SELECT TYPE statement. - -2018-02-13 Janus Weil - - PR fortran/84313 - * symbol.c (check_conflict): Reject procedure pointers in common blocks. - -2018-02-13 Alastair McKinstry - Janne Blomqvist - - * module.c (dump_module): Use lbasename to ensure that module - files are reproducible. - -2018-02-12 Janus Weil - - PR fortran/84273 - * resolve.c (resolve_component): Fix checks of passed argument in - procedure-pointer components. - -2018-02-11 Francois-Xavier Coudert - - PR fortran/35299 - * resolve.c (resolve_formal_arglist): Update error message. - -2018-02-11 Andre Vehreschild - - * gfortran.texi: Fix typos in documentation of caf_register (). - * trans-array.c (structure_alloc_comps): Only register a component of - a derived typed corray, not of an ultimate component coarray. - -2018-02-11 Steven G. Kargl - - PR fortran/54223 - PR fortran/84276 - * interface.c (compare_actual_formal): Add in_statement_function - bool parameter. Skip check of INTENT attribute for statement - functions. Arguments to a statement function cannot be optional, - issue error for missing argument. - (gfc_procedure_use, gfc_ppc_use, gfc_arglist_matches_symbol): Use - in_statement_function. - -2018-02-11 Paul Thomas - - PR fortran/84074 - * trans-expr.c (gfc_conv_derived_to_class): Set the use_offset - flag. If the is a vector subscript or the expression is not a - variable, make the descriptor one-based. - -2018-02-10 Paul Thomas - - PR fortran/84141 - PR fortran/84155 - * trans-array.c (gfc_array_init_size): Revert the change made - in revision 257356 setting the dtype. - * trans-types.c (gfc_get_dtype): Do not use the cached dtype. - Call gfc_get_dtype_rank_type every time. - - PR fortran/56691 - * trans-array.c (gfc_conv_expr_descriptor): If the source array - is a descriptor type, use its offset, removing the condition - that is be a class expression. - -2018-02-07 Steven G. Kargl - - PR fortran/82994 - * match.c (gfc_match_deallocate): Check for NULL pointer. - -2018-02-07 Thomas Koenig - - PR fortran/68560 - * trans-intrinsic.c (gfc_conv_intrinsic_shape): New function. - (gfc_conv_intrinsic_function): Call it. - -2018-02-07 Steven G. Kargl - - PR fortran/82049 - * match.c (gfc_match_type_spec): If the charlen is non-NULL, then - try to resolve it. While here return early if possible. - -2018-02-04 Paul Thomas - - PR fortran/84115 - * trans-decl.c (gfc_get_symbol_decl): Do not finish the decl of - 'length' if the symbol charlen backend_decl is an indirect ref. - -2018-02-03 Paul Thomas - - PR fortran/84141 - PR fortran/84155 - * trans-array.c (gfc_array_init_size): Instead of gfc_get_dtype - use gfc_get_dtype_rank_type. - -2018-02-01 Janne Blomqvist - - PR 83975 - PR 83344 - * resolve.c (resolve_assoc_var): Generate an error if - target length unknown. - -2018-02-01 Janne Blomqvist - - PR fortran/83705 - * simplify.c (gfc_simplify_repeat): Increase limit for deferring - to runtime, print a warning message. - -2018-01-31 Jakub Jelinek - - PR fortran/84116 - * openmp.c (gfc_match_omp_clauses): If all the linear - gfc_match_omp_variable_list calls failed, don't gfc_free_omp_namelist - nor set *head = NULL. Formatting fixes. - -2018-01-31 Paul Thomas - - PR fortran/84088 - * trans-expr.c (gfc_conv_procedure_call): If the parm expr is - an address expression passed to an assumed rank dummy, convert - to an indirect reference. - -2018-01-31 Thomas Koenig - - * dump-parse-tree.c (write_proc): Use sym_name (which may - be sym->binding_label) instead of sym->name. - -2018-01-31 Janne Blomqvist - - * trans-const.c (gfc_conv_string_init): Use gfc_charlen_t instead - of int for slen. - -2018-01-31 Janne Blomqvist - - PR fortran/78534 - * trans-expr.c (fill_with_spaces): Use memset instead of - generating loop. - (gfc_trans_string_copy): Improve opportunity to use builtins with - constant lengths. - -2018-01-30 Jakub Jelinek - - PR debug/84131 - * trans-array.c (gfc_get_descriptor_offsets_for_info): Set *data_off - to DATA_FIELD's offset rather than OFFSET_FIELD's offset. - -2018-01-30 Thomas Koenig - - PR fortran/84134 - * array.c (gfc_ref_dimen_size): Whitespace fixes. If stride is - zero, return false. - -2018-01-30 Thomas Koenig - - PR fortran/84133 - * frontend-passes (matmul_to_var_expr): Return early if - in association list. - (inline_matmul_assign): Likewise. - -2017-01-29 Thomas Koenig - - PR fortran/84073 - * resolve.c (resolve_component): Ensure BIND(C) character - components have length one. - (resolve_symbol): Likewise for variables. - -2018-01-27 Jakub Jelinek - - PR fortran/84065 - * decl.c (add_init_expr_to_sym): Ignore initializers for too large - lengths. - -2018-01-26 Damian Rouson - Alessandro Fanfarillo - Soren Rasmussen - - Partial support for Fortran 2018 teams features. - - * array.c (gfc_match_array_ref): add team attribute in coarray - transfers. - * check.c (gfc_check_get_team, gfc_check_team_number): add new - functions for get_team and team_number. - * dump-parse-tree.c (show_code_node): add new statements: form team, - change team, end team, and sync team. - * expr.c (gfc_find_team_co): add new function. - * gfortran.h: add new statements. - * intrinsic.c (add_functions): add get_team and team_number functions. - * intrinsic.h: add get_team and team_number prototypes for check, - simplify, and resolve. - * iresolve.c (gfc_resolve_get_team, gfc_resolve_team_number): add new - functions. - * iso-fortran-env.def: add the team_type derived type. - * match.c (gfc_match_if, gfc_match_form_team, gfc_match_team_number) - (gfc_match_end_team, gfc_match_sync_team, gfc_match_change_team): - add change team, end team, form team, sync team match and functions. - * match.h: add new prototypes for change team, end team, form team, - and sync team. - * parse.c (decode_statement): add cases for change team, end team, - form team, and sync team. - * resolve.c: add cases for exec form team, change team, end team, and - sync team. - * simplify.c (gfc_simplify_get_team): add new function for get team. - * st.c (gfc_free_statement): add cases exec for change team, end team, - form team, sync team. - * trans-decl.c (gfor_fndecl_caf_form_team) - (gfor_fndecl_caf_change_team, gfor_fndecl_caf_end_team) - (gfor_fndecl_caf_sync_team, gfor_fndecl_caf_get_team) - (gfor_fndecl_caf_team_number): add functions and definitions. - * trans-intrinsic.c (conv_caf_send, conv_intrinsic_team_number): add - new function and team_type argument support. - * trans-stmt.c (gfc_trans_form_team, gfc_trans_change_team) - (gfc_trans_end_team, gfc_trans_sync_team): add new functions. - * trans-stmt.h: add new prototypes. - * trans-types.c (gfc_get_derived_type): check condition for team_type. - * trans.c (trans_code): new exec cases for form team, change team, end - team, and sync team. - * trans.h: add new prototypes. - -2018-01-26 Steven G. Kargl - - PR fortran/83998 - * simplify.c (compute_dot_product): Initialize result to INTEGER(1) 0 - or .false. The summation does the correct type conversion. - (gfc_simplify_dot_product): Special case zero-sized arrays. - -2018-25-01 Paul Thomas - - PR fortran/37577 - * array.c (gfc_match_array_ref): If standard earlier than F2008 - it is an error if the reference dimension is greater than 7. - libgfortran.h : Increase GFC_MAX_DIMENSIONS to 15. Change the - dtype masks and shifts accordingly. - * trans-array.c (gfc_conv_descriptor_dtype): Use the dtype - type node to check the field. - (gfc_conv_descriptor_dtype): Access the rank field of dtype. - (duplicate_allocatable_coarray): Access the rank field of the - dtype descriptor rather than the dtype itself. - * trans-expr.c (get_scalar_to_descriptor_type): Store the type - of 'scalar' on entry and use its TREE_TYPE if it is ARRAY_TYPE - (ie. a character). - (gfc_conv_procedure_call): Pass TREE_OPERAND (tmp,0) to - get_scalar_to_descriptor_type if the actual expression is a - constant. - (gfc_trans_structure_assign): Assign the rank directly to the - dtype rank field. - * trans-intrinsic.c (gfc_conv_intrinsic_rank): Cast the result - to default integer kind. - (gfc_conv_intrinsic_sizeof): Obtain the element size from the - 'elem_len' field of the dtype. - * trans-io.c (gfc_build_io_library_fndecls): Replace - gfc_int4_type_node with dtype_type_node where necessary. - (transfer_namelist_element): Use gfc_get_dtype_rank_type for - scalars. - * trans-types.c : Provide 'get_dtype_type_node' to acces the - dtype_type_node and, if necessary, build it. - The maximum size of an array element is now determined by the - maximum value of size_t. - Update the description of the array descriptor, including the - type def for the dtype_type. - (gfc_get_dtype_rank_type): Build a constructor for the dtype. - Distinguish RECORD_TYPEs that are BT_DERIVED or BT_CLASS. - (gfc_get_array_descriptor_base): Change the type of the dtype - field to dtype_type_node. - (gfc_get_array_descr_info): Get the offset to the rank field of - the dtype. - * trans-types.h : Add a prototype for 'get_dtype_type_node ()'. - * trans.h : Define the indices of the dtype fields. - -2018-23-01 Paul Thomas - - PR fortran/83866 - * decl.c (gfc_match_derived_decl): If eos not matched, recover - and emit error about garbage after declaration. - -2018-23-01 Paul Thomas - - PR fortran/83898 - * trans-stmt.c (trans_associate_var): Do not set cst_array_ctor - for characters. - -2018-01-22 Janne Blomqvist - - PR 78534 - PR 83704 - * arith.c (gfc_arith_concat): Use size_t for string length. - (gfc_compare_string): Likewise. - (gfc_compare_with_Cstring): Likewise. - * array.c (gfc_resolve_character_array_constructor): Use - HOST_WIDE_INT, gfc_mpz_get_hwi. - * check.c (gfc_check_fe_runtime_error): Use size_t. - * data.c (create_character_initializer): Use HOST_WIDE_INT, - gfc_extract_hwi. - * decl.c (gfc_set_constant_character_len): Use gfc_charlen_t. - (add_init_expr_to_sym): Use HOST_WIDE_INT. - * expr.c (gfc_build_init_expr): Use HOST_WIDE_INT, - gfc_extract_hwi. - (gfc_apply_init): Likewise. - * match.h (gfc_set_constant_character_len): Update prototype. - * primary.c (match_string_constant): Use size_t. - * resolve.c (resolve_ordinary_assign): Use HOST_WIDE_INT, - gfc_mpz_get_hwi. - * simplify.c (init_result_expr): Likewise. - (gfc_simplify_len_trim): Use size_t. - * target-memory.c (gfc_encode_character): Use size_t. - (gfc_target_encode_expr): Use HOST_WIDE_INT, gfc_mpz_get_hwi. - (interpret_array): Use size_t. - (gfc_interpret_character): Likewise. - * target-memory.h (gfc_encode_character): Update prototype. - (gfc_interpret_character): Likewise. - (gfc_target_interpret_expr): Likewise. - * trans-const.c (gfc_build_string_const): Use size_t for length - argument. - (gfc_build_wide_string_const): Likewise. - * trans-const.h (gfc_build_string_const): Likewise. - (gfc_build_wide_string_const): Likewise. - -2018-01-20 Steven G. Kargl - - PR fortran/83900 - * simplify.c (gfc_simplify_matmul): Set return type correctly. - -2018-01-19 Steven G. Kargl - - PR fortran/83900 - * simplify.c (gfc_simplify_matmul): Delete bogus assertion. - -2018-01-17 Harald Anlauf - - PR fortran/83864 - * expr.c (add_init_expr_to_sym): Do not dereference NULL pointer. - -2018-01-17 Harald Anlauf - - PR fortran/83874 - * decl.c (add_init_expr_to_sym): Do not dereference NULL pointer. - -2018-01-15 Louis Krupp - - PR fortran/82257 - * interface.c (compare_rank): Don't try to retrieve CLASS_DATA - from symbol marked unlimited polymorphic. - * resolve.c (resolve_structure_cons): Likewise. - * misc.c (gfc_typename): Don't dereference derived->components - if it's NULL. - -2018-01-15 Thomas Koenig - - PR fortran/54613 - * gfortran.h (gfc_check_f): Rename f4ml to f5ml. - (gfc_logical_4_kind): New macro - * intrinsic.h (gfc_simplify_minloc): Add a gfc_expr *argument. - (gfc_simplify_maxloc): Likewise. - (gfc_resolve_maxloc): Likewise. - (gfc_resolve_minloc): Likewise. - * check.c (gfc_check_minloc_maxloc): Add checking for "back" - argument; also raise error if it is used (for now). Add it - if it isn't present. - * intrinsic.c (add_sym_4ml): Rename to - (add_sym_5ml), adjust for extra argument. - (add_functions): Add "back" constant. Adjust maxloc and minloc - for back argument. - * iresolve.c (gfc_resolve_maxloc): Add back argument. If back is - not of gfc_logical_4_kind, convert. - (gfc_resolve_minloc): Likewise. - * simplify.c (gfc_simplify_minloc): Add back argument. - (gfc_simplify_maxloc): Likewise. - * trans-intinsic.c (gfc_conv_intrinsic_minmaxloc): Rename last - argument to %VAL to ensure passing by value. - (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_minmaxloc - also for library calls. - -2018-01-13 Jerry DeLisle - - PR fortran/82007 - * resolve.c (resolve_transfer): Delete code looking for 'DT' - format specifiers in format strings. Set formatted to true if a - format string or format label is present. - * trans-io.c (get_dtio_proc): Likewise. (transfer_expr): Fix - whitespace. - -2018-01-13 Thomas Koenig - - PR fortran/83744 - * dump-parse-tree.c (get_c_type_name): Remove extra line. - Change for loop to use declaration in for loop. Handle BT_LOGICAL - and BT_CHARACTER. - (write_decl): Add where argument. Fix indentation. Replace - assert with error message. Add typename to warning - in comment. - (write_type): Adjust locus to call of write_decl. - (write_variable): Likewise. - (write_proc): Likewise. Replace assert with error message. - -2018-01-13 Paul Thomas - - PR fortran/52162 - * trans-expr.c (gfc_trans_scalar_assign): Flag is_alloc_lhs if - the rhs expression is neither an elemental nor a conversion - function. - - PR fortran/83622 - * trans-array.c (is_pointer_array): Remove unconditional return - of false for -fopenmp. - -2018-01-13 Thomas Koenig - - - PR fortran/83803 - * dump-parse-tree.c (write_proc): Always emit closing parenthesis - for functions. - -2018-01-10 Steven G. Kargl - - PR fortran/82367 - * resolve.c (resolve_allocate_expr): Check for NULL pointer. - -2018-01-10 Steven G. Kargl - - PR fortran/83093 - * resolve.c (resolve_charlen): Check the type of cl->length - after resolution. - -2018-01-10 Janne Blomqvist - - PR fortran/83740 - * trans-array.c (gfc_trans_array_ctor_element): Fix formatting. - -2018-01-10 Janne Blomqvist - - PR fortran/83740 - * trans-array.c (gfc_trans_array_ctor_element): Convert RHS to the - LHS type when assigning. - -2018-01-09 Steven G. Kargl - - PR fortran/83742 - * expr.c (gfc_is_simply_contiguous): Check for NULL pointer. - -2018-01-08 Steven G. Kargl - - * match.c (gfc_match_allocate): Check for NULL pointer. - -2018-01-08 Steven G. Kargl - - * expr.c (gfc_check_pointer_assign): Fix typo in comment. - -2018-01-08 Paul Thomas - - PR fortran/83611 - * decl.c (gfc_get_pdt_instance): If parameterized arrays have - an initializer, convert the kind parameters and add to the - component if the instance. - * trans-array.c (structure_alloc_comps): Add 'is_pdt_type' and - use it with case COPY_ALLOC_COMP. Call 'duplicate_allocatable' - for parameterized arrays. Clean up typos in comments. Convert - parameterized array initializers and copy into the array. - * trans-expr.c (gfc_trans_scalar_assign): Do a deep copy for - parameterized types. - *trans-stmt.c (trans_associate_var): Deallocate associate vars - as necessary, when they are PDT function results for example. - - PR fortran/83731 - * trans-array.c (structure_alloc_comps): Only compare len parms - when they are declared explicitly. - -2018-01-06 Janne Blomqvist - - PR fortran/50892 - * trans-expr.c (gfc_trans_pointer_assignment): fold_convert rhs to - lhs type. - -2018-01-05 Janne Blomqvist - - PR fortran/78534 - PR fortran/66310 - * array.c (got_charlen): Use gfc_charlen_int_kind. - * class.c (gfc_find_derived_vtab): Use gfc_size_kind instead of - hardcoded kind. - (find_intrinsic_vtab): Likewise. - * decl.c (match_char_length): Use gfc_charlen_int_kind. - (add_init_expr_to_sym): Use gfc_charlen_t and gfc_charlen_int_kind. - (gfc_match_implicit): Use gfc_charlen_int_kind. - * dump-parse-tree.c (show_char_const): Use gfc_charlen_t and size_t. - (show_expr): Use HOST_WIDE_INT_PRINT_DEC. - * expr.c (gfc_get_character_expr): Length parameter of type - gfc_charlen_t. - (gfc_get_int_expr): Value argument of type HOST_WIDE_INT. - (gfc_extract_hwi): New function. - (simplify_const_ref): Make string_len of type gfc_charlen_t. - (gfc_simplify_expr): Use HOST_WIDE_INT for substring refs. - * frontend-passes.c (optimize_trim): Use gfc_charlen_int_kind. - * gfortran.h (gfc_mpz_get_hwi): New prototype. - (gfc_mpz_set_hwi): Likewise. - (gfc_charlen_t): New typedef. - (gfc_expr): Use gfc_charlen_t for character lengths. - (gfc_size_kind): New extern variable. - (gfc_extract_hwi): New prototype. - (gfc_get_character_expr): Use gfc_charlen_t for character length. - (gfc_get_int_expr): Use HOST_WIDE_INT type for value argument. - * gfortran.texi: Update description of hidden string length argument. - * iresolve.c (check_charlen_present): Use gfc_charlen_int_kind. - (gfc_resolve_char_achar): Likewise. - (gfc_resolve_repeat): Pass string length directly without - temporary, use gfc_charlen_int_kind. - (gfc_resolve_transfer): Use gfc_charlen_int_kind. - * match.c (select_intrinsic_set_tmp): Use HOST_WIDE_INT for charlen. - * misc.c (gfc_mpz_get_hwi): New function. - (gfc_mpz_set_hwi): New function. - * module.c (atom_int): Change type from int to HOST_WIDE_INT. - (parse_integer): Don't complain about large integers. - (write_atom): Use HOST_WIDE_INT for integers. - (mio_integer): Handle integer type mismatch. - (mio_hwi): New function. - (mio_intrinsic_op): Use HOST_WIDE_INT. - (mio_array_ref): Likewise. - (mio_expr): Likewise. - * primary.c (match_substring): Use gfc_charlen_int_kind. - * resolve.c (resolve_substring_charlen): Use gfc_charlen_int_kind. - (resolve_character_operator): Likewise. - (resolve_assoc_var): Likewise. - (resolve_select_type): Use HOST_WIDE_INT for charlen, use snprintf. - (resolve_charlen): Use mpz_sgn to determine sign. - * simplify.c (gfc_simplify_repeat): Use HOST_WIDE_INT/gfc_charlen_t - instead of long. - * symbol.c (generate_isocbinding_symbol): Use gfc_charlen_int_kind. - * target-memory.c (size_character): Length argument of type - gfc_charlen_t. - (gfc_encode_character): Likewise. - (gfc_interpret_character): Use gfc_charlen_t. - * target-memory.h (gfc_encode_character): Modify prototype. - * trans-array.c (gfc_trans_array_ctor_element): Use existing type. - (get_array_ctor_var_strlen): Use gfc_conv_mpz_to_tree_type. - (trans_array_constructor): Use existing type. - (get_array_charlen): Likewise. - * trans-const.c (gfc_conv_mpz_to_tree_type): New function. - * trans-const.h (gfc_conv_mpz_to_tree_type): New prototype. - * trans-decl.c (gfc_trans_deferred_vars): Use existing type. - (add_argument_checking): Likewise. - * trans-expr.c (gfc_class_len_or_zero_get): Build const of type - gfc_charlen_type_node. - (gfc_conv_intrinsic_to_class): Use gfc_charlen_int_kind instead of - 4, fold_convert to correct type. - (gfc_conv_class_to_class): Build const of type size_type_node for - size. - (gfc_copy_class_to_class): Likewise. - (gfc_conv_string_length): Use same type in expression. - (gfc_conv_substring): Likewise, use HOST_WIDE_INT for charlen. - (gfc_conv_string_tmp): Make sure len is of the right type. - (gfc_conv_concat_op): Use same type in expression. - (gfc_conv_procedure_call): Likewise. - (fill_with_spaces): Comment out memset() block due to spurious - -Wstringop-overflow warnings. - (gfc_trans_string_copy): Use gfc_charlen_type_node. - (alloc_scalar_allocatable_for_subcomponent_assignment): - fold_convert to right type. - (gfc_trans_subcomponent_assign): Likewise. - (trans_class_vptr_len_assignment): Build const of correct type. - (gfc_trans_pointer_assignment): Likewise. - (alloc_scalar_allocatable_for_assignment): fold_convert to right - type in expr. - (trans_class_assignment): Build const of correct type. - * trans-intrinsic.c (gfc_conv_associated): Likewise. - (gfc_conv_intrinsic_repeat): Do calculation in sizetype. - * trans-io.c (gfc_build_io_library_fndecls): Use - gfc_charlen_type_node for character lengths. - (set_string): Convert to right type in assignment. - * trans-stmt.c (gfc_trans_label_assign): Build const of - gfc_charlen_type_node. - (trans_associate_var): Likewise. - (gfc_trans_character_select): Likewise. - (gfc_trans_allocate): Likewise, don't typecast strlen result. - (gfc_trans_deallocate): Don't typecast strlen result. - * trans-types.c (gfc_size_kind): New variable. - (gfc_init_types): Determine gfc_charlen_int_kind and gfc_size_kind - from size_type_node. - * trans-types.h: Fix comment. - -2018-01-04 Thomas Koenig - - PR fortran/83683 - PR fortran/45689 - * check.c (gfc_check_eoshift): Check for string length and - for conformance of boundary. - * intrinsic.c (add_functions): Add gfc_simplify_eoshift. - * intrinsic.h: Add prototype for gfc_simplify_eoshift. - * simplify.c (gfc_simplify_eoshift): New function. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * trans-types.c (gfc_type_for_mode): Handle MODE_VECTOR_BOOL. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * trans-types.c (gfc_type_for_mode): Check valid_vector_subparts_p. - -2018-01-03 Thomas Koenig - - PR fortran/83664 - * check.c (gfc_check_eoshift): Error for missing boundary if array - is not one of the standard types. - -2018-01-03 Jakub Jelinek - - Update copyright years. - - * gfortranspec.c (lang_specific_driver): Update copyright notice - dates. - * gfc-internals.texi: Bump @copying's copyright year. - * gfortran.texi: Ditto. - * intrinsic.texi: Ditto. - * invoke.texi: Ditto. - -2017-01-02 Thomas Koenig - - PR fortran/45689 - * intrinsic.c (add_function): Add gfc_simplify_maxloc and - gfc_simplify_minloc to maxloc and minloc, respectively. - * intrinsic.h: Add prototypes for gfc_simplify_minloc - and gfc_simplify_maxloc. - * simplify.c (min_max_chose): Adjust prototype. Modify function - to have a return value which indicates if the extremum was found. - (is_constant_array_expr): Fix typo in comment. - (simplify_minmaxloc_to_scalar): New function. - (simplify_minmaxloc_nodim): New function. - (new_array): New function. - (simplify_minmaxloc_to_array): New function. - (gfc_simplify_minmaxloc): New function. - (simplify_minloc): New function. - (simplify_maxloc): New function. - -2018-01-02 Thomas Koenig - - PR fortran/45689 - PR fortran/83650 - * simplify.c (gfc_simplify_cshift): Re-implement to allow full - range of arguments. - -2018-01-01 Paul Thomas - - PR fortran/83076 - * resolve.c (resolve_fl_derived0): Add caf_token fields for - allocatable and pointer scalars, when -fcoarray selected. - * trans-types.c (gfc_copy_dt_decls_ifequal): Copy the token - field as well as the backend_decl. - (gfc_get_derived_type): Flag GFC_FCOARRAY_LIB for module - derived types that are not vtypes. Components with caf_token - attribute are pvoid types. For a component requiring it, find - the caf_token field and have the component token field point to - its backend_decl. - - PR fortran/83319 - *trans-types.c (gfc_get_array_descriptor_base): Add the token - field to the descriptor even when codimen not set. - -Copyright (C) 2018 Free Software Foundation, Inc. - -Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. - - PR fortran/87945 - * decl.c (var_element): Inquiry parameters cannit be data objects. - -2018-12-08 Steven G. Kargl - - PR fortran/88025 - * expr.c (gfc_apply_init): Remove asserts that cannot trigger. - Check for a NULL pointer. - -2018-12-08 Steven G. Kargl - - PR fortran/88357 - * class.c (insert_component_ref): Check for NULL pointer and - previous error message issued. - * parse.c (parse_associate): Check for NULL pointer. - * resolve.c (resolve_assoc_var): Check for NULL pointer. - -2018-12-07 Jakub Jelinek - - PR fortran/88377 - * trans-openmp.c (gfc_omp_clause_default_ctor, - gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op, - gfc_omp_clause_linear_ctor, gfc_omp_clause_dtor): Only consider - GFC_DECL_GET_SCALAR_ALLOCATABLE vars as scalar allocatables if they - have pointer type. - -2018-12-03 Fritz Reese - Mark Eggleston - - PR fortran/87919 - * options.c (SET_FLAG, SET_BITFLAG, SET_BITFLAG2): New macros. - (set_dec_flags): Set/unset DEC and std flags according to value. - (post_dec_flags, set_init_local_zero): New functions. - (gfc_init_options): Use set_init_local_zero and post_dec_flags. - (gfc_handle_options) : Use - SET_BITFLAG. - : Use set_init_local_zero. - : Pass value to set_dec_flags. - : Remove. - -2018-11-30 Thomas Schwinge - - * gfortran.h (struct gfc_omp_clauses): Remove "wait". Adjust all - users. - - * openmp.c (gfc_match_omp_clauses): Support multiple OpenACC wait - clauses. - -2018-11-27 Martin Liska - - * decl.c (gfc_match_gcc_builtin): New function. - * gfortran.h (struct vect_builtin_tuple): New. - (gfc_adjust_builtins): Likewise. - * lang-specs.h (TARGET_F951_OPTIONS): New. - (F951_OPTIONS): Use it. - * lang.opt: Add new option -fpre-include. - * match.h (gfc_match_gcc_builtin): Declare new function. - * parse.c (decode_gcc_attribute): Handle builtin. - (parse_progunit): Call gfc_adjust_builtins. - * scanner.c (gfc_new_file): Load pre-included header file - when provided. - * trans-intrinsic.c (add_simd_flag_for_built_in): New. - (gfc_adjust_builtins): Likewise. - -2018-11-24 Paul Thomas - - PR fortran/88143 - * resolve.c (resolve_variable): Check for associate names with - NULL target. - -2018-11-23 Jakub Jelinek - - * lang.opt (fpad-source): New option. - * scanner.c (load_line): Don't pad fixed form lines if - !flag_pad_source. - * invoke.texi (-fno-pad-source): Document. - -2018-11-21 Jakub Jelinek - - * invoke.texi (-fdec-include): Document. - -2018-11-21 Jakub Jelinek - Mark Eggleston - - * lang.opt (fdec-include): New option. - * options.c (set_dec_flags): Set also flag_dec_include. - * scanner.c (include_line): Change return type from bool to int. - In fixed form allow spaces in between include keyword letters. - For -fdec-include, allow in fixed form 0 in column 6. With - -fdec-include return -1 if the parsed line is not full include - statement and it could be successfully completed on continuation - lines. - (include_stmt): New function. - (load_file): Adjust include_line caller. If it returns -1, keep - trying include_stmt until it stops returning -1 whenever adding - further line of input. - -2018-11-18 Thomas Koenig - - PR fortran/88073 - * frontend-passes.c (combine_array_constructor): Do not do - anything if in a WHERE statement. - -2018-11-18 Thomas Koenig - - PR fortran/70260 - * expr.c (gfc_check_assign): Reject assigning to an external - symbol. - (gfc_check_pointer_assign): Add suppress_type_test - argument. Insert line after if. A non-proc pointer can not point - to a constant. Only check types if suppress_type_test is false. - * gfortran.h (gfc_check_pointer_assign): Add optional - suppress_type_test argument. - * resolve.c (gfc_resolve_code): Move up gfc_check_pointer_assign - and give it the extra argument. - (resolve_fl_procedure): Set error on value for a function with - an inizializer. - -2018-11-15 David Malcolm - - PR other/19165 - * error.c (gfc_diagnostic_finalizer): Add diagnostic_t param. - -2018-11-13 David Malcolm - - * cpp.c: Replace "source_location" with "location_t". - * gfortran.h: Likewise. - -2018-11-08 Jakub Jelinek - - * trans-openmp.c (gfc_trans_omp_clauses): Use - OMP_CLAUSE_DEFAULTMAP_SET_KIND. - (gfc_trans_omp_atomic): Set OMP_ATOMIC_MEMORY_ORDER - rather than OMP_ATOMIC_SEQ_CST. - (gfc_trans_omp_taskgroup): Build OMP_TASKGROUP using - make_node instead of build1_loc. - * types.def (BT_FN_VOID_BOOL, BT_FN_VOID_SIZE_SIZE_PTR, - BT_FN_UINT_UINT_PTR_PTR, BT_FN_UINT_OMPFN_PTR_UINT_UINT, - BT_FN_BOOL_UINT_LONGPTR_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, - BT_FN_BOOL_UINT_ULLPTR_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR, - BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, - BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR): New. - (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): Formatting fix. - -2018-11-02 Thomas Koenig - - PR fortran/46020 - * decl.c (verify_bind_c_sym): Remove unnecessary space - in error message. - -2018-11-01 Thomas Koenig - - PR fortran/87782 - * frontend-passes.c (constant_string_length): If there is a - substring with a length which cannot be reduced to a constant, - return NULL. - -2018-11-01 Paul Thomas - - PR fortran/40196 - * dependency.c (are_identical_variables): Return false if the - inquiry refs are not the same. - (gfc_ref_needs_temporary_p): Break on an inquiry ref. - * dump_parse_tree.c (show_ref): Show the inquiry ref type. - * expr.c (gfc_free_ref_list): Break on an inquiry ref. - (gfc_copy_ref): Copy the inquiry ref types. - (find_inquiry_ref): New function. - (simplify_const_ref, simplify_ref_chain): Call it. Add new arg - to simplify_ref_chain. - (gfc_simplify_expr): Use the new arg in call to - simplify_ref_chain. - (gfc_get_full_arrayspec_from_expr, gfc_is_coarray): Break on - inquiry ref. - (gfc_traverse_expr): Return true for inquiry ref. - * frontend-passes.c (gfc_expr_walker): Break on inquiry ref. - * gfortran.h : Add enums and union member in gfc_ref to - implement inquiry refs. - * intrinsic.c : Fix white nois. - * match.c (gfc_match_assignment): A constant lavlue is an - error. - * module.c : Add DECL_MIO_NAME for inquiry_type and the mstring - for inquiry_types. - (mio_ref): Handle inquiry refs. - * primary.c (is_inquiry_ref): New function. - (gfc_match_varspec): Handle inquiry refs calling new function. - (gfc_variable_attr): Detect inquiry ref for disambiguation - with components. - (caf_variable_attr): Treat inquiry and substring refs in the - same way. - * resolve.c (find_array_spec): ditto. - (gfc_resolve_substring_charlen): If there is neither a charlen - ref not an inquiry ref, return. - (resolve_ref): Handle inqiry refs as appropriate. - (resolve_allocate_expr): Entities with an inquiry ref cannot be - allocated. - * simplify.c (simplify_bound, simplify_cobound): Punt on - inquiry refs. - * trans-array.c (get_array_ctor_var_strlen): Break on inquiry - ref. - *trans-expr.c (conv_inquiry): New function. - (gfc_conv_variable): Retain the last typespec to pass to - conv_inquiry on detecting an inquiry ref. - -2018-11-01 Thomas Koenig - - PR fortran/46020 - * decl.c (verify_bind_c_sym): Improve error message. - -2018-11-01 Thomas Koenig - - PR fortran/54613 - * gfortran.texi (File format of unformatted sequential files): - Replace random comma with period. - * intrinsic.texi (Intrinsic Procedures): Add FINDLOC to menu. - (FINDLOC): Document. - (MAXLOC): Add refrence to FINDLOC. - (MINLOC): Likewise. - -2018-10-31 Nathan Sidwell - - * cpp.c (gfc_cpp_init): Adjust cpp_force_token_locations call. - -2018-10-31 Martin Liska - - * trans-decl.c (struct module_hasher): Call htab_hash_string - for s->name and not for s. - -2018-10-30 Thomas Koenig - - PR fortran/85896 - * simplify.c (simplify_min_max): Do not convert the type of the - return expression. - -2017-10-28 Thomas Koenig - - PR fortran/54613 - * gfortran.h (gfc_isym_id): Add GFC_ISYM_FINDLOC. - (gfc_check_f): Add f6fl field. - (gfc_simplify_f): Add f6 field. - (gfc_resolve_f): Likewise. - (gfc_type_letter): Add optional logical_equas_int flag. - * check.c (intrinsic_type_check): New function. - (gfc_check_findloc): New function. - * intrinsics.c (gfc_type_letter): If logical_equals_int is - set, act accordingly. - (add_sym_5ml): Reformat comment. - (add_sym_6fl): New function. - (add_functions): Add findloc. - (check_arglist): Add sixth argument, handle it. - (resolve_intrinsic): Likewise. - (check_specific): Handle findloc. - * intrinsic.h (gfc_check_findloc): Add prototype. - (gfc_simplify_findloc): Likewise. - (gfc_resolve_findloc): Likewise. - (MAX_INTRINSIC_ARGS): Adjust. - * iresolve.c (gfc_resolve_findloc): New function. - * simplify.c (gfc_simplify_minmaxloc): Make static. - (simplify_findloc_to_scalar): New function. - (simplify_findloc_nodim): New function. - (simplify_findloc_to_array): New function. - (gfc_simplify_findloc): New function. - (gfc_conv_intrinsic_findloc): New function. - (gfc_conv_intrinsic_function): Handle GFC_ISYM_FINDLOC. - (gfc_is_intrinsic_libcall): Likewise. - -2018-10-27 Thomas Koenig - - PR fortran/86907 - * frontend-passes.c (check_locus_code): Add information that - warning about missing location information points to an - inconsisten internal state. - (check_locus_expr): Likewise. - -2018-10-25 Jakub Jelinek - - PR fortran/87725 - * openmp.c (gfc_match_omp_clauses): Parse simd, monotonic and - nonmonotonic modifiers regardless of if they have been parsed - already or if the opposite one has. Fix up check whether - comma after modifier should be parsed. - (resolve_omp_clauses): Diagnose schedule modifier restrictions. - -2018-10-23 Paul Thomas - - PR fortran/85603 - * frontend-passes.c (get_len_call): New function to generate a - call to intrinsic LEN. - (create_var): Use this to make length expressions for variable - rhs string lengths. - Clean up some white space issues. - -2018-10-21 Paul Thomas - - PR fortran/71880 - * trans-expr.c (gfc_trans_pointer_assignment): Set the string - length for array valued deferred length lhs. - -2018-10-18 Tobias Burnus - - PR fortran/87625 - * trans-array.c (gfc_is_reallocatable_lhs): Detect allocatable - polymorphic arrays. - -2018-10-18 Paul Thomas - - PR fortran/58618 - * trans-stmt.c (trans_associate_var): All strings that return - as pointer types can be assigned directly to the associate - name so remove 'attr' and the condition that uses it. - -2018-10-18 Paul Thomas - - PR fortran/58618 - * trans-decl.c (gfc_get_symbol_decl): Deal correctly with the - initialization with NULL() of a deferred length pointer. - -2018-10-17 Tobias Burnus - - PR fortran/87632 - * resolve.c (resolve_select_type): Use correct variable. - -2018-10-17 David Malcolm - - * Make-lang.in (selftest-fortran): New. - -2018-10-17 Paul Thomas - - PR fortran/56386 - PR fortran/58906 - PR fortran/77385 - PR fortran/80260 - PR fortran/82077 - * resolve.c (resolve_variable): Fix up expressions with array - associate names, where the parser did not detect that this is - array and there was no array part_ref in the expression. - -2018-10-16 Tobias Burnus - - PR fortran/67125 - * trans-array.c (gfc_array_init_size, gfc_array_allocate): - Rename argument e3_is_array_constr to e3_has_nodescriptor - and update comments. - * trans-stmt.c (gfc_trans_allocate): Also fix lower bound - to 1 for nonalloc/nonpointer func results/vars besides - array constructors. - -2018-10-16 Tobias Burnus - - PR fortran/87556 - * trans-stmt.c (form_team, change_team, sync_team): - Don't ignore argse.pre/argse.post. - -2018-10-15 Paul Thomas - Tobias Burnus - - PR fortran/87566 - * resolve.c (resolve_assoc_var): Add missing array spec for - class associate names. - (resolve_select_type): Handle case where last typed component - of the selector has a different type to the expression. - * trans-expr.c (gfc_find_and_cut_at_last_class_ref): Replace - call to gfc_expr_to_initialize with call to gfc_copy_expr. - (gfc_conv_class_to_class): Guard assignment to 'len' field - against case where zero constant is supplied. - -2018-10-12 Tobias Burnus - - PR fortran/87597 - * expr.c (gfc_simplify_expr): Avoid simplifying - the 'array' argument to lbound/ubound/lcobound/ - ucobound. - -2018-10-12 Tobias Burnus - - PR fortran/58787 - * decl.c (get_proc_name): Return with error before - creating sym_tree. - -2018-10-11 Tobias Burnus - - Revert: - 2018-10-09 Tobias Burnus - - PR fortran/83522 - * resolve.c (resolve_ref): Reject nonscalar - substring references. - -2018-10-09 David Malcolm - - * cpp.c (gfc_cpp_init_0): Update for renamings. - (cb_cpp_error): Rename to... - (cb_cpp_diagnostic): ...this, converting level and reason to - enums. - -2018-10-09 Tobias Burnus - - PR fortran/83522 - * resolve.c (resolve_ref): Reject nonscalar - substring references. - -2018-10-09 Paul Thomas - - PR fortran/87151 - * trans-array.c (gfc_get_array_span): Deal with deferred char - array components having a TYPE_MAX_VALUE of zero. - (gfc_array_init_size): Use the hidden string length component - to build the descriptor dtype. - (gfc_array_allocate): Remove the erroneous replacement of the - charlen backend decl with a temporary. - (gfc_conv_expr_descriptor): Use the ss_info string length in - the case of deferred character components. - (gfc_alloc_allocatable_for_assignment): Actually compare the - string lengths for deferred characters. Make sure that kind > 1 - is handled correctly. Set the span field of the descriptor. - * trans-intrinsic.c (gfc_conv_intrinsic_len): Remove the stupid - comment. - - PR fortran/80931 - * trans-array.c (gfc_array_allocate): Set the span field for - variable length character arrays. - -2018-10-08 Cesar Philippidis - - * expr.c (gfc_check_pointer_assign): Demote "Assignment to - contiguous pointer from non-contiguous target" to a warning. - -2018-10-08 Paul Thomas - - PR fortran/86372 - * trans-stmt.c (trans_associate_var): Character associate names - with variable string length do not have to be deferred length - for the string length to be set, if variable. - -2018-10-06 Thomas Koenig - - PR fortran/86111 - * gfortran.h (enum arith): Add ARITH_WRONGCONCAT. - * arith.h (gfc_arith_error): Issue error for ARITH_WRONGCONCAT. - (gfc_arith_concat): If the types of op1 and op2 are not - character of if their kinds do not match, issue ARITH_WRONGCONCAT. - -2018-10-06 Paul Thomas - - PR fortran/83999 - * resolve.c (resolve_fl_procedure): Include class functions in - the test that elemental function results be scalar. - -2018-10-06 Thomas Koenig - - PR fortran/84640 - * simplify.c (gfc_simplify_cshift): Extend size of hs_ex and ss_ex - by one. Set extents one past the array boundaries to zero to avoid - warning with instrumented compiler. - (gfc_simplify_eoshift): Likewise, only for ss_ex. - -2018-10-05 Paul Thomas - - PR fortran/87487 - * trans-decl.c (gfc_get_symbol_decl): Make sure that deferred - character length pointer initializer has the right type to fix - problem with deferred_character_24.f90 on big endian. - -2018-10-03 Jeff Law - - * trans-types.c (get_typenode_from_name): Moved into gcc/tree.c. - -2018-10-01 Paul Thomas - - PR fortran/65677 - * trans-expr.c (gfc_trans_assignment_1): Set the 'identical' - flag in the call to gfc_check_dependency. - -2018-09-30 Paul Thomas - - PR fortran/87359 - * trans-array.c (gfc_is_reallocatable_lhs): Correct the problem - introduced by r264358, which prevented components of associate - names from being reallocated on assignment. - -2018-09-30 Paul Thomas - - PR fortran/70752 - PR fortran/72709 - * trans-array.c (gfc_conv_scalarized_array_ref): If this is a - deferred type and the info->descriptor is present, use the - info->descriptor - (gfc_conv_array_ref): Is the se expr is a descriptor type, pass - it as 'decl' rather than the symbol backend_decl. - (gfc_array_allocate): If the se string_length is a component - reference, fix it and use it for the expression string length - if the latter is not a variable type. If it is a variable do - an assignment. Make use of component ref string lengths to set - the descriptor 'span'. - (gfc_conv_expr_descriptor): For pointer assignment, do not set - the span field if gfc_get_array_span returns zero. - * trans.c (get_array_span): If the upper bound a character type - is zero, use the descriptor span if available. - -2018-09-30 Paul Thomas - - PR fortran/70149 - * trans-decl.c (gfc_get_symbol_decl): A deferred character - length pointer that is initialized needs the string length to - be initialized as well. - -2018-09-29 Paul Thomas - - PR fortran/65677 - * trans-expr.c (gfc_trans_assignment_1): If there is dependency - fix the rse stringlength. - -2018-09-25 Martin Liska - - PR fortran/87394 - * decl.c (add_hidden_procptr_result): Simplify condition - as we are in branch witch 'case1 || case2'. - -2018-09-25 Martin Liska - - * trans.c (remove_suffix): Remove - unused function. - -2018-09-24 Thomas Koenig - - PR fortran/87397 - * gfc_conv_procedure_call: Do not add clobber on INTENT(OUT) - for variables in an associate statement. - -2018-09-24 Bernhard Reuther-Fischer - Cesar Philippidis - - * openmp.c (resolve_oacc_loop_blocks): - -2018-09-23 Thomas Koenig - - PR fortran/87397 - * gfc_conv_procedure_call: Do not add clobber on INTENT(OUT) - for variables having the dimension attribute. - -2018-09-23 Janne Blomqvist - - * trans-expr.c (gfc_caf_get_image_index): Do array index - calculations in gfc_array_index_type. - * trans-intrinsic.c (conv_intrinsic_event_query): Likewise. - * trans-stmt.c (gfc_trans_lock_unlock): Likewise. - (gfc_trans_event_post_wait): Likewise. - -2018-09-23 Thomas Koenig - - PR fortran/87395 - * gfc_conv_procedure_call: Reformat comments slightly. Do not add - clobber on INTENT(OUT) for saved variables. - -2018-09-22 Thomas Koenig - - PR fortran/41453 - * trans.h (gfc_conv_expr_reference): Add optional argument - add_clobber to prototype. - (gfc_conv_procedure_call): Set add_clobber argument to - gfc_conv_procedure_reference to true for scalar, INTENT(OUT), - non-pointer, non-allocatable, non-dummy variables whose type - is neither BT_CHARACTER, BT_DERIVED or BT_CLASS, but only if - the procedure is not elemental. - * trans-expr.c (gfc_conv_procedure_reference): Add clobber - statement before call if add_clobber is set. - -2018-09-22 Paul Thomas - - PR fortran/85603 - * trans-array.c (gfc_alloc_allocatable_for_assignment): Test - the charlen backend_decl before using the VAR_P macro. - -2018-09-21 Paul Thomas - - PR fortran/77325 - * trans-array.c (gfc_alloc_allocatable_for_assignment): If the - rhs has a charlen expression, convert that and use it. - * trans-expr.c (gfc_trans_assignment_1): The rse.pre for the - assignment of deferred character array vars to a realocatable - lhs should not be added to the exterior block since vector - indices, for example, generate temporaries indexed within the - loop. - -2018-09-21 Paul Thomas - - PR fortran/87359 - * trans-stmt.c (gfc_trans_allocate): Don't deallocate alloc - components if must_finalize is set for expr3. - -2018-09-21 Andrew Stubbs - Kwok Cheung Yeung - - * trans-expr.c (gfc_trans_structure_assign): Ensure that the first - argument of a call to _gfortran_caf_register is of size_type_node. - * trans-intrinsic.c (conv_intrinsic_event_query): Convert computed - index to a size_type_node type. - * trans-stmt.c (gfc_trans_event_post_wait): Likewise. - -2018-09-20 Allan Sandfeld Jensen - - * gfortranspec.c (lang_specific_driver): Handle -r like -nostdlib. - -2018-09-20 Janus Weil - - * gfortran.h (gfc_str_startswith): New macro. - * decl.c (variable_decl, gfc_match_end): Use it. - * iresolve.c (is_trig_resolved): Ditto. - * module.c (load_omp_udrs, read_module): Ditto. - * options.c (gfc_handle_runtime_check_option): Ditto. - * primary.c (match_arg_list_function): Ditto. - * trans-decl.c (gfc_get_symbol_decl): Ditto. - * trans-expr.c (gfc_conv_procedure_call): Ditto. - * interface.c (dtio_op): Replace strncmp by strcmp. - * resolve.c (resolve_actual_arglist, resolve_function): Ditto. - * trans-expr.c (conv_arglist_function): Ditto. - * trans-intrinsic.c (gfc_conv_ieee_arithmetic_function): Replace macro - STARTS_WITH by gfc_str_startswith. - -2018-09-20 Cesar Philippidis - - * dump-parse-tree.c (show_omp_clauses): Add missing omp list_types - and reorder the switch cases to match the enum in gfortran.h. - -2018-09-19 Paul Thomas - - PR fortran/84109 - * trans-expr.c (gfc_trans_assignment_1): The rse.pre for the - assignment of deferred character intrinsic elemental function - results to a realocatable lhs must not be added to the exterior - block if they are array valued but must go to the loop body. - -2018-09-18 Thomas Koenig - - PR fortran/29550 - * gfortran.h (gfc_expr): Add external_blas flag. - * frontend-passes.c (matrix_case): Add case A2TB2T. - (optimize_namespace): Handle flag_external_blas by - calling call_external_blas. - (get_array_inq_function): Add argument okind. If - it is nonzero, use it as the kind of argument - to be used. - (inline_limit_check): Remove m_case argument, add - limit argument instead. Remove assert about m_case. - Set the limit for inlining from the limit argument. - (matmul_lhs_realloc): Handle case A2TB2T. - (inline_matmul_assign): Handle inline limit for other cases with - two rank-two matrices. Remove no-op calls to inline_limit_check. - (call_external_blas): New function. - * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Do not add - argument to external BLAS if external_blas is already set. - -2018-09-18 Paul Thomas - - PR fortran/87239 - * trans-expr.c (gfc_trans_assignment_1): The rse.pre for the - assignment of deferred character elemental function results to - a realocatable lhs must not be added to the exterior block but - must go to the loop body. - -2018-09-18 Paul Thomas - - PR fortran/87336 - * trans-array.c (gfc_get_array_span): Try to get the element - length of incomplete types. Return NULL_TREE otherwise. - (gfc_conv_expr_descriptor): Only set the 'span' field if the - above does not return NULL_TREE. Set 'span' field if possible - for all new descriptors. - -2018-09-17 Paul Thomas - - PR fortran/64120 - * trans-decl.c (gfc_get_symbol_decl): Flag allocatable, scalar - characters with a variable length expression for deferred init. - (gfc_trans_deferred_vars): Perform the assignment for these - symbols by calling gfc_conv_string_length. - -2018-09-17 Paul Thomas - - PR fortran/85954 - * resolve.c (resolve_assoc_var): If the target expression is a - deferred charlen dummy and the associate name shares the - charlen, generate a new one. Make sure that new charlens are in - the namespace list so that they get cleaned up. - * trans-array.c (gfc_is_reallocatable_lhs): Associate names are - not reallocatable. - * trans-decl.c (gfc_get_symbol_decl): Put deferred character - length dummy and result arrays on the deferred initialization - list so that the variable length arrays can be correctly dealt - with. - * trans-expr.c (gfc_conv_string_length): Return if 'expr' is - NULL rather than ICEing.. - -2018-09-16 Janus Weil - - PR fortran/86484 - PR fortran/84543 - * match.c (gfc_match_assignment): For a polymorphic assignment, - make sure that the vtab for the rhs type is generated. - -2018-09-16 Thomas Koenig - - PR fortran/37802 - * frontend-passes.c (B_ERROR): New macro for matmul bounds - checking error messages. - (C_ERROR): Likewise. - (inline_matmul_assign): Reorganize bounds checking, use B_ERROR - and C_ERROR macros. - -2018-09-13 Bernd Edlinger - - * trans-array.c (gfc_conv_array_initializer): Remove excess precision - from overlength string initializers. - -2018-09-12 Paul Thomas - - PR fortran/87284 - * trans-expr.c (gfc_trans_class_init_assign): Access to - to array elements of the dynamic type requires that the array - reference be added to the class expression and not the _data - component, unlike scalar expressions. - -2018-09-11 Janus Weil - - PR fortran/87172 - * resolve.c (resolve_fl_derived): If a type has the 'use_assoc' - attribute, then it was declared in another module, so there should be - no error that it has not been declared. - -2018-09-11 Paul Thomas - - PR fortran/87277 - * expr.c (is_subref_array): Add the check of dimensionality for - class, dummy, pointer arrays. - -2018-09-11 Janus Weil - - PR fortran/86830 - * expr.c (gfc_is_simply_contiguous): Handle type-bound procedure calls - with non-polymorphic objects. - -2018-09-10 Janus Weil - - PR fortran/85395 - * decl.c (match_binding_attributes): Use correct default accessibility - for procedure pointer components. - -2018-09-03 Jerry DeLisle - - * simplify.c (gfc_simplify_modulo): Re-arrange code to test whether - 'P' is zero and issue an error if it is. - -2018-08-31 Paul Thomas - - PR fortran/86328 - PR fortran/86760 - * trans-array.c (gfc_conv_scalarized_array_ref): Do not fix - info->descriptor but pass it directly to gfc_build_array_ref. - (gfc_conv_array_ref): Likewise for se->expr. - * trans.c (gfc_build_array_ref): If 'decl' is a COMPONENT_REF - obtain the span field directly from it. - -2017-08-28 Paul Thomas - - PR fortran/80477 - * trans-expr.c (gfc_conv_procedure_call): Allocatable class - scalar results being passed to a derived type formal argument - are finalized if possible. Otherwise, rely on existing code for - deallocation. Make the deallocation of allocatable result - components conditional on finalization not taking place. Make - the freeing of data components after finalization conditional - on the data being NULL. - (gfc_trans_arrayfunc_assign): Change the gcc_assert to a - condition to return NULL_TREE. - (gfc_trans_assignment_1): If the assignment is class to class - and the rhs expression must be finalized but the assignment - is not marked as a polymorphic assignment, use the vptr copy - function instead of gfc_trans_scalar_assign. - - PR fortran/86481 - * trans-expr.c (gfc_conv_expr_reference): Do not add the post - block to the pre block if the expression is to be finalized. - * trans-stmt.c (gfc_trans_allocate): If the expr3 must be - finalized, load the post block into a finalization block and - add it right at the end of the allocation block. - -2018-08-27 David Malcolm - - PR 87091 - * error.c (gfc_format_decoder): Update for conversion of - show_caret_p to a tri-state. - -2018-08-25 Janus Weil - - PR fortran/86545 - * resolve.c (resolve_transfer): Correctly determine typespec for - generic function calls, in order to throw a proper error. - -2018-08-24 Thomas Koenig - - PR fortran/86837 - * frontend-passes.c (var_in_expr_callback): New function. - (var_in_expr): New function. - (traverse_io_block): Use var_in_expr instead of - gfc_check_dependency for checking if the variable depends on the - previous interators. - -2018-08-23 Janne Blomqvist - - * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Delete - HONOR_SIGNED_ZEROS checks. - -2018-08-23 Paul Thomas - - PR fortran/86863 - * resolve.c (resolve_typebound_call): If the TBP is not marked - as a subroutine, check the specific symbol. - -2018-08-22 Thomas Koenig - - * gfortran.texi: Mention that asynchronous I/O does - not work on systems which lack condition variables, such - as AIX. - -2018-08-22 Janus Weil - - PR fortran/86935 - * match.c (gfc_match_associate): Improve diagnostics for the ASSOCIATE - statement. - -2018-08-22 Andrew Benson - - * module.c (load_generic_interfaces): Move call to find_symbol() - so that only occurs if actually needed. - -2018-08-22 Janus Weil - - PR fortran/86888 - * decl.c (gfc_match_data_decl): Allow allocatable components of - indirectly recursive type. - * resolve.c (resolve_component): Remove two errors messages ... - (resolve_fl_derived): ... and replace them by a new one. - -2018-08-21 Janne Blomqvist - - * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Use - MAX_EXPR/MIN_EXPR unconditionally for real arguments. - * gfortran.texi (Compiler Characteristics): Document MAX/MIN - behavior wrt NaN. - -2018-08-21 Nicolas Koenig - Thomas Koenig - - PR fortran/25829 - * gfortran.texi: Add description of asynchronous I/O. - * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables - as volatile. - * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to - st_wait_async and change argument spec from ".X" to ".w". - (gfc_trans_wait): Pass ID argument via reference. - -2018-08-16 Nathan Sidwell - - * cpp.c (dump_macro): Use cpp_user_macro_p. - -2018-08-14 Janus Weil - - PR fortran/86116 - * interface.c (compare_type): Remove a CLASS/TYPE check. - (compare_type_characteristics): New function that behaves like the old - 'compare_type'. - (gfc_check_dummy_characteristics, gfc_check_result_characteristics): - Call 'compare_type_characteristics' instead of 'compare_type'. - -2018-08-12 Paul Thomas - - PR fortran/66679 - * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Class array - elements are returned as references to the data element. Get - the class expression by stripping back the references. Use this - for the element size. - -2018-08-12 Paul Thomas - - PR fortran/86906 - * resolve.c (resolve_fl_variable_derived): Check if the derived - type is use associated before checking for the host association - error. - -2018-08-10 Janus Weil - - PR fortran/57160 - * invoke.texi (frontend-optimize): Mention short-circuiting. - * options.c (gfc_post_options): Disable -ffrontend-optimize with -Og. - * resolve.c (resolve_operator): Warn about short-circuiting only with - -ffrontend-optimize. - * trans-expr.c (gfc_conv_expr_op): Use short-circuiting operators only - with -ffrontend-optimize. Without that flag, make sure that both - operands are evaluated. - -2018-08-08 Nathan Sidwell - - * cpp.c (cb_file_change): Use linemap_included_from. - -2018-08-07 Cesar Philippidis - - * trans-stmt.h: Remove stale reference to trans-openacc.c. - -2018-08-04 Janus Weil - - PR fortran/45521 - * interface.c (gfc_compare_interfaces): Apply additional - distinguishability criteria of F08 to operator interfaces. - -2018-07-31 Andre Vieira - - Revert 'AsyncI/O patch committed' - 2018-07-25 Nicolas Koenig - Thomas Koenig - - PR fortran/25829 - * gfortran.texi: Add description of asynchronous I/O. - * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables - as volatile. - * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to - st_wait_async and change argument spec from ".X" to ".w". - (gfc_trans_wait): Pass ID argument via reference. - -2018-07-25 Nicolas Koenig - Thomas Koenig - - PR fortran/25829 - * gfortran.texi: Add description of asynchronous I/O. - * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables - as volatile. - * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to - st_wait_async and change argument spec from ".X" to ".w". - (gfc_trans_wait): Pass ID argument via reference. - -2018-07-20 Martin Sebor - - PR middle-end/82063 - * gfortran.h (gfc_handle_option): Change function argument - to HOST_WIDE_INT. - * options.c (gfc_handle_option): Same. - -2018-07-20 Andrew Benson - - * gfortran.h (gfc_symbol): Add pointer to next derived type. - (gfc_dt_list, gfc_get_dt_list): Remove. - (gfc_namespace): Replace gfc_dt_list with gfc_symbol. - * parse.c (resolve_all_program_units): Replace gfc_free_dt_list() with - simple nullification of gfc_derived_types. - * resolve.c (resolve_global_procedure): Replace gfc_dt_list with - gfc_symbol. - (add_dt_to_dt_list): Change derived type linked list insertion to - utilize dt_next pointers in gfc_symbol. - * symbol.c (gfc_new_symbol, gfc_free_dt_list, gfc_symbol_done2) - (get_iso_c_binding_dt, generate_isocbinding_symbol): Remove - gfc_free_dt_list as gfc_dt_list is obsoleted. Change derived type - linked list search/insertion to utilize dt_next pointers in gfc_symbol. - * trans-types.c (gfc_get_derived_type): Change derived type linked - list search to utilize dt_next pointers in gfc_symbol. - -2018-07-19 Kyrylo Tkachov - - * trans-intrinsic.c: (gfc_conv_intrinsic_minmax): Emit MIN_MAX_EXPR - or IFN_FMIN/FMAX sequence to calculate the min/max when possible. - -2018-07-18 Janus Weil - Thomas Koenig - - PR fortran/85599 - * dump-parse-tree.c (show_attr): Add handling of implicit_pure. - * frontend-passes.c (do_warn_function_elimination): Do not warn for - pure functions. - * gfortran.h: Add prototypes for gfc_pure_function and - gfc_implicit_pure_function. - * gfortran.texi: Add chapter on evaluation of logical expressions. - * invoke.texi: Mention that -Wfunction-elimination is implied - by -Wextra. - * lang.opt: Make -Wextra imply -Wfunction-elimination. - * resolve.c (pure_function): Rename to gfc_pure_function. - (gfc_implicit_pure_function): New function. - (check_pure_function): Use it here. - (impure_function_callback): New function. - (resolve_operator): Call it via gfc_expr_walker. - -2018-07-16 Fritz Reese - - PR fortran/83184 - * decl.c (match_old_style_init): Initialize locus of variable expr when - creating a data variable. - (match_clist_expr): Verify array is explicit shape/size before - attempting to allocate constant array constructor. - -2018-07-16 Fritz Reese - - PR fortran/86417 - * module.c (mio_component): Set component->loc when loading from module. - -2018-07-10 Jakub Jelinek - - PR fortran/86421 - * module.c (omp_declare_simd_clauses): Add LINEAR with _REF, _VAL and - _UVAL suffixes. - (mio_omp_declare_simd): Save and restore ref, val and uval modifiers - on linear clauses. Initialize n->where to gfc_current_locus. - -2018-07-05 Paul Thomas - - PR fortran/86408 - * resolve.c.c (resolve_contained_fntype): Reference to C418 is - in F2008 and not F2003. - (resolve_function): Ditto in error message. Also, exclude - deferred character length results from the error. - -2018-07-05 Fritz Reese - - PR fortran/83183 - PR fortran/86325 - * expr.c (class_allocatable, class_pointer, comp_allocatable, - comp_pointer): New helpers. - (component_initializer): Generate EXPR_NULL for allocatable or pointer - components. Do not generate initializers for components within BT_CLASS. - Do not assign to comp->initializer. - (gfc_generate_initializer): Use new helpers; move code to generate - EXPR_NULL for class allocatable components into component_initializer(). - -2018-07-04 Jerry DeLisle - - PR fortran/82009 - * trans-decl.c (gfc_process_block_locals): Delete assert and set - saved_local_decls = NULL_TREE. - -2018-07-02 Richard Biener - - PR lto/86321 - * trans-types.c (gfc_get_array_type_bounds): Unshare TYPE_FIELDs - for the distinct type copy. - -2018-07-02 Paul Thomas - - PR fortran/82969 - PR fortran/86242 - * trans-array.c (structure_alloc_comps): Do not explicitly copy - procedure pointer components. - -2018-07-02 Paul Thomas - - PR fortran/45305 - * expr.c : Add a prototype for scalarize_intrinsic_call. - (gfc_simplify_expr): Use scalarize_intrinsic_call for elemental - intrinsic function calls. - (scalarize_intrinsic_call): Add 'init_flag' argument. Check if - the expression or any of the actual argument expressions are - NULL. Before calling gfc_check_init_expr, check 'init_flag'. - Only simplify the scalarized expressions if there are no errors - on the stack. - (gfc_check_init_expr): Set 'init_flag' true in the call to - scalarize_intrinsic_call. - -2018-06-28 Fritz Reese - - PR fortran/82865 - * decl.c (gfc_match_type): Refactor and check for PDT declarations. - -2018-06-28 Martin Liska - - * gfortranspec.c: Include opt-suggestions.h. - -2018-06-25 Fritz Reese - - PR fortran/82972 - PR fortran/83088 - PR fortran/85851 - * expr.c (component_initializer): Assign init expr to c->initializer. - (generate_isocbinding_initializer): New. - (gfc_generate_initializer): Call generate_isocbinding_initializer to - generate initializers for c_ptr and c_funptr with -finit-derived. - -2018-06-23 Jerry DeLisle - - PR fortran/85983 - * interface.c (check_dtio_interface1): Delete assert. - -2018-06-22 Paul Thomas - Rainer Orth - - PR fortran/86281 - * resolve.c (resolve_contained_fntype): Check for the charlen - before testing the length. - -2018-06-21 Paul Thomas - - PR fortran/49630 - * resolve.c (resolve_contained_fntype): Change standard ref. - from F95 to F2003: C418. Correct a spelling error in a comment. - It is an error for an abstract interface to have an assumed - character length result. - * trans-expr.c (gfc_conv_procedure_call): Likewise change the - standard reference. - -2018-06-21 Paul Thomas - - PR fortran/83118 - * resolve.c (resolve_ordinary_assign): Force the creation of a - vtable for assignment of non-polymorphic expressions to an - unlimited polymorphic object. - * trans-array.c (gfc_alloc_allocatable_for_assignment): Use the - size of the rhs type for such assignments. Set the dtype, _len - and vptrs appropriately. - * trans-expr.c (gfc_trans_assignment): Force the use of the - _copy function for these assignments. - -2018-06-20 Chung-Lin Tang - Thomas Schwinge - Cesar Philippidis - - * gfortran.h (gfc_omp_clauses): Add unsigned if_present, finalize - bitfields. - * openmp.c (enum omp_mask2): Remove OMP_CLAUSE_PRESENT_OR_*. Add - OMP_CLAUSE_{IF_PRESENT,FINALIZE}. - (gfc_match_omp_clauses): Update handling of copy, copyin, copyout, - create, deviceptr, present_of_*. Add support for finalize and - if_present. - (OACC_PARALLEL_CLAUSES): Remove PRESENT_OR_* clauses. - (OACC_KERNELS_CLAUSES): Likewise. - (OACC_DATA_CLAUSES): Likewise. - (OACC_DECLARE_CLAUSES): Likewise. - (OACC_UPDATE_CLAUSES): Add IF_PRESENT clause. - (OACC_ENTER_DATA_CLAUSES): Remove PRESENT_OR_* clauses. - (OACC_EXIT_DATA_CLAUSES): Add FINALIZE clause. - (gfc_match_oacc_declare): Update to OpenACC 2.5 semantics. - * trans-openmp.c (gfc_trans_omp_clauses): Add support for IF_PRESENT - and FINALIZE. - -2018-06-18 Eric Botcazou - - * trans-decl.c (gfc_get_fake_result_decl): Revert latest change. - -2018-06-17 Eric Botcazou - - * trans-decl.c (nonlocal_dummy_decl_pset): Delete. - (nonlocal_dummy_decls): Likewise. - (gfc_nonlocal_dummy_array_decl): Likewise. - (gfc_get_symbol_decl): Do not call gfc_nonlocal_dummy_array_decl. - (gfc_get_fake_result_decl): Do not generate a new DECL if simply - reusing the result of a recursive call. - (gfc_generate_function_code): Do not create, insert and destroy - nonlocal_dummy_decls. - -2018-06-13 Steven G. Kargl - - PR fortran/86110 - * array.c (gfc_resolve_character_array_constructor): Avoid NULL - pointer dereference. - -2018-06-13 Cesar Philippidis - - PR fortran/85703 - * parse.c (decode_oacc_directive): Set gfc_matching_function - to false. - (decode_omp_directive): Likewise. - -2018-06-13 Cesar Philippidis - - PR fortran/85702 - * openmp.c (gfc_match_oacc_wait): Use %C to report error location. - -2018-06-12 David Malcolm - - PR other/69968 - * misc.c (gfc_closest_fuzzy_match): Update for renaming of - levenshtein_distance to get_edit_distance. - -2018-06-12 Steven G. Kargl - - PR fortran/44491 - * expr.c (gfc_check_assign): Select non-NULL locus. - -2018-06-11 Janus Weil - - PR fortran/45521 - * interface.c (compare_ptr_alloc): New function. - (generic_correspondence): Call it. - -2018-06-10 Thomas Koenig - - * gfortran.h (gfc_expr): Add no_bounds_check field. - * frontend-passes.c (get_array_inq_function): Set no_bounds_check - on function and function argument. - (inline_matmul_assign): Set no_bounds_check on zero expression - and on lhs of zero expression. - Also handle A1B2 case if realloc on assigment is active. - * trans-array.c (gfc_conv_array_ref): Don't do range checking - if expr has no_bounds_check set. - (gfc_conv_expr_descriptor): Set no_bounds_check on ss if expr - has it set. - * trans-expr.c (gfc_trans_assignment_1): Set no_bounds_check - on lss and lss if the corresponding expressions have it set. - -2018-06-10 Dominique d'Humieres - - PR fortran/79854 - * trans-const.c: Remove include "diagnostic-core.h". - (gfc_conv_constant_to_tree): Replace fatal_error with gcc_unreachable. - -2018-06-10 Janus Weil - - PR fortran/85088 - * decl.c (match_attr_spec): Synchronize the DECL_* enum values with the - INTENT_* values from the enum 'sym_intent'. Call 'match_intent_spec' - and remove a TODO note. - * gfortran.h: Add a comment to sym_intent. - -2018-06-09 Steven G. Kargl - - PR fortran/38351 - * resolve.c (resolve_operator): Provide better error message for - derived type entity used in an binary intrinsic numeric operator. - -2018-06-09 Steven G. Kargl - - PR fortran/85138 - PR fortran/85996 - PR fortran/86051 - * decl.c (gfc_match_char_spec): Use private namespace in attempt to - reduce a charlen to a constant. - -2018-06-09 Steven G. Kargl - - PR fortran/78278 - * data.c (gfc_assign_data_value): Re-arrange code to allow for - an error for double initialization of CHARACTER entities. - -2018-06-09 Steven G. Kargl - - PR fortran/63514 - * symbol.c (gfc_add_volatile): Enforce F2008:C1282 and F2018:C1588. - -2018-06-08 Thomas Koenig - - PR fortran/85631 - * trans.h (gfc_ss): Add field no_bounds_check. - * trans-array.c (gfc_conv_ss_startstride): If flag_realloc_lhs and - ss->no_bounds_check is set, do not use runtime checks. - * trans-expr.c (gfc_trans_assignment_1): Set lss->no_bounds_check - for reallocatable lhs. - -2018-06-08 Steven G. Kargl - - PR fortran/86059 - * array.c (match_array_cons_element): NULL() cannot be in an - array constructor. - -2018-06-08 Steven G. Kargl - - PR fortran/78571 - * data.c (create_character_initializer): Return early if type is - incompatible with CHARACTER. - -2018-06-07 Steven G. Kargl - - PR fortran/86045 - * simplify.c (gfc_simplify_mod): Re-arrange code to test whether - 'P' is zero and issue an error if it is. - -2018-06-06 Thomas Koenig - - PR fortran/85641 - * frontend-passes.c (is_fe_temp): Add prototype. - (realloc_string_callback): Early return for frontend-generated - temporary. - -2018-06-05 Cesar Philippidis - - PR fortran/85701 - - * openmp.c (gfc_resolve_oacc_declare): Error on functions and - subroutine data clause arguments. - -2018-06-04 Steven G. Kargl - - PR fortran/85981 - * resolve.c (resolve_allocate_deallocate): Check errmsg is default - character kind. - -2018-06-03 Paul Thomas - - PR fortran/36497 - * decl.c (variable_decl): Use gfc_add_type for cray pointees. - -2018-06-01 Steven G. Kargl - - PR fortran/63570 - * check.c (gfc_check_random_init): New function. Check arguments of - RANDOM_INIT. - * gfortran.h (GFC_ISYM_RANDOM_INIT): New enum token. - * intrinsic.c (add_subroutines): Add RANDOM_INIT to list of - subroutines. - (gfc_check_intrinsic_standard): Introduce Fortran 2018 check. - * intrinsic.h: Add prototypes for gfc_check_random_init and - gfc_resolve_random_init - * intrinsic.texi: Document new intrinsic subprogram. - * iresolve.c (gfc_resolve_random_init): Resolve routine name. - * trans-decl.c: Declare gfor_fndecl_random_init - * trans-intrinsic.c (conv_intrinsic_random_init): New function. - Translate call to RANDOM_INIT. - (gfc_conv_intrinsic_subroutine): Call it. - * trans.h: Declare gfor_fndecl_random_init - -2018-05-27 Steven G. Kargl - - * decl.c (match_data_constant): Fortran 2018 allows pointer - initialization in a data statement. - -2018-05-25 Janus Weil - - PR fortran/85839 - * match.c (gfc_match_block_data): Call gfc_notify_std to warn about - an obsolescent feature in Fortran 2018. - (gfc_match_equivalence): Ditto. - * resolve.c (resolve_common_blocks): Ditto. - (gfc_resolve_forall): Ditto. - * symbol.c (gfc_define_st_label): Ditto. - -2018-05-24 Steven G. Kargl - - PR fortran/85543 - * resolve.c (update_current_proc_array_outer_dependency): Avoid NULL - pointer dereference. - -2018-05-24 Steven G. Kargl - - PR fortran/85780 - * resolve.c (resolve_fl_procedure): Avoid NULL dereference. - -2018-05-24 Steven G. Kargl - - PR fortran/85779 - * decl.c (gfc_match_derived_decl): Fix NULL point dereference. - -2018-05-24 Steven G. Kargl - - PR fortran/85895 - * resolve.c (resolve_sync): Resolve expression before checking for - an error. - -2018-05-22 Janus Weil - - PR fortran/85841 - * libgfortran.h: Remove the macros GFC_STD_F2008_TS and - GFC_STD_OPT_F08TS. - * error.c (notify_std_msg): Remove GFC_STD_F2008_TS. - * options.c (set_default_std_flags): Ditto. - (gfc_handle_option): Make -std=f2008ts an alias for -std=f2018. - * array.c (gfc_match_array_spec): Replace GFC_STD_F2008_TS by - GFC_STD_F2018. - * check.c (gfc_check_atomic, gfc_check_event_query, - gfc_check_c_f_pointer, gfc_check_c_f_procpointer, gfc_check_c_funloc, - gfc_check_c_loc, gfc_check_num_images, gfc_check_this_image): Ditto. - * decl.c (gfc_verify_c_interop_param, gfc_match_decl_type_spec): Ditto. - * intrinsic.c (add_functions, add_subroutines, - gfc_check_intrinsic_standard): Ditto. - * iso-c-binding.def: Ditto. - * iso-fortran-env.def: Ditto. - * match.c (gfc_match_event_post, gfc_match_event_wait, - gfc_match_fail_image, gfc_match_form_team, gfc_match_change_team, - gfc_match_end_team, gfc_match_sync_team): Ditto. - * gfortran.texi: Remove mention of -std=f2008ts. - Move TSs into F2018 section. - * invoke.texi: Update documentation of -std=f2008ts. - -2018-05-21 Janus Weil - - PR fortran/85841 - * libgfortran.h: New macros GFC_STD_OPT_*. - * error.c (notify_std_msg): New function. - (gfc_notify_std): Adjust such that it can handle combinations of - GFC_STD_* flags in the 'std' argument, not just a single one. - * match.c (match_arithmetic_if, gfc_match_if): Reject arithmetic if - in Fortran 2018. - (gfc_match_stopcode): Use GFC_STD_OPT_* macros. - * options.c (set_default_std_flags): Warn for F2018 deleted features - by default. - (gfc_handle_option): F2018 deleted features are allowed in earlier - standards. - * symbol.c (gfc_define_st_label, gfc_reference_st_label): Reject - nonblock do constructs in Fortran 2018. - -2018-05-20 Paul Thomas - - PR fortran/80657 - * resolve.c (flag_fn_result_spec): Use the 'sym' argument to - test for self refs to the function result in the character len - expression. If a self reference is found, emit an error and - return true. - (resolve_fntype): Use the function symbol in the calls to the - above. - -2018-05-20 Paul Thomas - - PR fortran/49636 - * trans-array.c (gfc_get_array_span): Renamed from - 'get_array_span'. - (gfc_conv_expr_descriptor): Change references to above. - * trans-array.h : Add prototype for 'gfc_get_array_span'. - * trans-intrinsic.c (gfc_conv_associated): Add pre and post - blocks for 'arg1'. - * trans-stmt.c (trans_associate_var): If the associate name is - a subref array pointer, use gfc_get_array_span for the span. - -2018-05-20 Paul Thomas - - PR fortran/82275 - * match.c (gfc_match_type_spec): Go through the array ref and - decrement 'rank' for every dimension that is an element. - -2018-05-19 Paul Thomas - - PR fortran/82923 - PR fortran/66694 - PR fortran/82617 - * trans-array.c (gfc_alloc_allocatable_for_assignment): Set the - charlen backend_decl of the rhs expr to ss->info->string_length - so that the value in the current scope is used. - -2018-05-13 Steven G. Kargl - - PR fortran/63529 - * gfortran.texi: Clarify documentation for Cray pointer and - assumed-sized array. - -2018-05-13 Paul Thomas - - PR fortran/85742 - * trans-types.c (gfc_get_dtype_rank_type): Reorder evaluation - of 'size'. If the element type is a pointer use the size of the - TREE_TYPE of the type, unless it is VOID_TYPE. In this latter - case, set the size to zero. - -2018-05-13 Steven G. Kargl - - * gfortran.h: Remove prototype. - * symbol.c (gfc_new_undo_checkpoint): Remove unused function. - -2018-05-11 Steven G. Kargl - - PR fortran/85542 - * expr.c (check_inquiry): Avoid NULL pointer dereference. - -2018-05-10 Steven G. Kargl - - PR fortran/85687 - * check.c (gfc_check_rank): Check that the argument is a data object. - -2018-05-10 Steven G. Kargl - - PR fortran/85521 - * array.c (gfc_resolve_character_array_constructor): Substrings - with upper bound smaller than lower bound are zero length strings. - -2018-05-10 Steven G. Kargl - - PR fortran/70870 - * data.c (gfc_assign_data_value): Check that a data object does - not also have default initialization. - -2018-05-10 Marek Polacek - - PR fortran/85735 - * options.c (gfc_post_options): Set main_input_filename. - -2018-05-10 Thomas Koenig - - PR fortran/54613 - * intrinsic.texi: Document BACK for MINLOC and MAXLOC. - -2018-05-10 Paul Thomas - - PR fortran/68846 - PR fortran/70864 - * resolve.c (get_temp_from_expr): The temporary must not have - dummy or intent attributes. - -2018-05-08 Thomas Koenig - - PR fortran/54613 - * check.c (gfc_check_minmaxloc): Remove error for BACK not being - implemented. Use gfc_logical_4_kind for BACK. - * simplify.c (min_max_choose): Add optional argument back_val. - Handle it. - (simplify_minmaxloc_to_scalar): Add argument back_val. Pass - back_val to min_max_choose. - (simplify_minmaxloc_to_nodim): Likewise. - (simplify_minmaxloc_to_array): Likewise. - (gfc_simplify_minmaxloc): Add argument back, handle it. - Pass back_val to specific simplification functions. - (gfc_simplify_minloc): Remove ATTRIBUTE_UNUSED from argument back, - pass it on to gfc_simplify_minmaxloc. - (gfc_simplify_maxloc): Likewise. - * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Adjust - comment. If BACK is true, use greater or equal (or lesser or - equal) insteal of greater (or lesser). Mark the condition of - having found a value which exceeds the limit as unlikely. - -2018-05-07 Jeff Law - - * scanner.c (preprocessor_line): Call linemap_add after a line - directive that changes the current filename. - -2018-05-06 Andre Vehreschild - - PR fortran/85507 - * dependency.c (gfc_dep_resolver): Revert looking at coarray dimension - introduced by r259385. - * trans-intrinsic.c (conv_caf_send): Always report a dependency for - same variables in coarray assignments. - -2018-05-02 Tom de Vries - - PR libgomp/82428 - * f95-lang.c (DEF_GOACC_BUILTIN_ONLY): Define. - -2018-04-24 Steven G. Kargl - - PR fortran/85520 - * decl.c (gfc_match_char_spec): Check for negative length and set to 0. - -2018-04-14 Andre Vehreschild - - PR fortran/81773 - PR fortran/83606 - * dependency.c (gfc_dep_resolver): Coarray indexes are to be ignored - during dependency computation. They define no data dependency. - * trans-array.c (conv_array_index_offset): The stride can not be set - here, prevent fail. - * trans-intrinsic.c (conv_caf_send): Add creation of temporary array - for caf_get's result and copying to the array with vectorial - indexing. - -2018-04-14 Thomas Koenig - - PR fortran/85387 - * frontend-passes.c (traverse_io_block): Check for start, end or - stride being defined by an outer implied DO loop. - -2018-04-12 Thomas Koenig - - PR fortran/83064 - PR testsuite/85346 - * trans-stmt.c (gfc_trans_forall_loop): Use annot_expr_ivdep_kind - for annotation and remove dependence on -ftree-parallelize-loops. - -2018-04-10 Jakub Jelinek - - PR fortran/85313 - * openmp.c (resolve_omp_do): Remove bogus if (j < i) break;. - (resolve_oacc_nested_loops): Likewise. Formatting fix. - -2018-04-09 Thomas Koenig - - PR fortran/83064 - * trans-stmt.c (gfc_trans_forall_loop): Remove annotation for - parallell processing of DO CONCURRENT -ftree-parallelize-loops - is set. - -2018-04-09 Thomas Koenig - - PR fortran/51260 - * resolve.c (resolve_variable): Simplify cases where access to a - parameter array results in a single constant. - -2018-04-02 Thomas Koenig - - PR fortran/85102 - * decl.c (variable_decl): If upper or lower bounds simplify - to a constant, use that. - -2018-03-30 Paul Thomas - - PR fortran/84931 - * simplify.c (gfc_convert_constant): Handle case of array - constructors within an array that has no iterator and improve - the conciseness of this section of code. - -2017-03-30 Thomas Koenig - - PR fortran/85111 - * array.c (gfc_resolve_character_array_constructor): Early - exit for zero-size arrays. - * simplify.c (simplify_transformation_to_array): Exit early - if the result size is zero. - (simplify_minmaxloc_to_array): Likewise. - -2018-03-28 Mikael Morin - - PR fortran/69497 - * symbol.c (gfc_symbol_done_2): Start freeing namespaces - from the root. - (gfc_free_namespace): Restore assert (revert r258839). - -2018-03-28 Jakub Jelinek - - * gfortran.h (gfc_dt): Rename default_exp field to dec_ext. - * ioparm.def (IOPARM_dt_default_exp): Rename to ... - (IOPARM_dt_dec_ext): ... this. - * trans-io.c (build_dt): Adjust for default_exp renaming to - dec_ext and IOPARM_dt_default_exp renaming to IOPARM_dt_dec_ext. - * io.c (match_io): Likewise. - -2018-03-27 Thomas Koenig - - PR fortran/85084 - * frontend-passes.c (gfc_run_passes): Do not run front-end - optimizations if a previous error occurred. - -2018-03-27 Thomas Koenig - Harald Anlauf - - PR fortran/85083 - * primary.c (gfc_convert_to_structure_constructor): Check - conformance of argument types in structure constructor. - -2018-03-26 Thomas Koenig - - PR fortran/66709 - * io.c: Include constructor.h. - (resolve_tag_format): For a constant character array, concatenate - into a single character expression. - -2018-03-25 Seth Johnson - Dominique d'Humieres - - PR fortran/84924 - * check.c (gfc_check_c_f_pointer): Allow scalar noninteroperable - scalar derived type with -std=f2003 and -std=f2008. - -2018-03-24 Jerry DeLisle - Dominique d'Humieres - - PR fortran/69497 - * symbol.c (gfc_free_namespace): Delete the assert and only if - refs count is equals zero, free the namespace. Otherwise, - something is halfway and other errors will resound. - -2018-03-24 Thomas Koenig - - PR fortran/70068 - * expr.c (find_substring_ref): Change types of start, end - and length variables to gfc_charlen_t. Set length to zero - for empty substring. - -2018-03-24 Steven G. Kargl - - PR fortran/42651 - * decl.c (check_function_name): Improved error message - (gfc_match_volatile, gfc_match_asynchronous) Use check_function_name. - -2018-03-22 Steven G. Kargl - - PR fortran/84922 - * decl.c (get_proc_name): If the MODULE prefix appears in interface - body, then it must appear on the contained subroutine or function. - While here, fix nearby mis-indented code. - -2018-03-21 Thomas Koenig - Harald Anlauf - - PR fortran/84957 - * trans-types.c (gfc_sym_type): Do not dereference NULL pointer. - -2018-03-21 Janne Blomqvist - - PR fortran/84615 - * trans-expr.c (gfc_conv_procedure_call): Convert charlen to - gfc_charlen_type_node when calling procedure. - -2018-03-20 Steven G. Kargl - - PR fortran/85001 - * interface.c (symbol_rank): Remove bogus null pointer check that - crept in when translating a ternary operator into an if-else - constructor. - -2018-03-19 Thomas Koenig - - PR fortran/84931 - * simplify.c (gfc_convert_constant): Correctly handle iterators - for type conversion. - -2018-03-18 Steven G. Kargl - - PR fortran/77414 - * decl.c (get_proc_name): Check for a subroutine re-defined in - the contain portion of a subroutine. Change language of existing - error message to better describe the issue. While here fix whitespace - issues. - -2018-03-18 Steven G. Kargl - - PR fortran/65453 - * decl.c (get_proc_name): Catch clash between a procedure statement - and a contained subprogram - -2018-03-16 Steven G. Kargl - - PR fortran/69395 - * decl.c (merge_array_spec): Correct the error condition. - -2018-03-15 Steven G. Kargl - - PR fortran/78741 - * decl.c (get_proc_name): Check for clash of entry name with - subroutine name. - -2018-03-15 Steven G. Kargl - - PR fortran/69395 - * decl.c (merge_array_spec): Limit the merging to maximum allowed - dimensions, and issue error message if limit is exceeded. - -2018-03-13 Steven G. Kargl - - * check.c (gfc_check_kill_sub): Remove check for INTEGER(4) or (8). - * intrinsic.c (add_functions): Remove reference to gfc_resolve_kill. - (add_subroutines): Remove reference to gfc_resolve_kill_sub. - * intrinsic.texi: Update documentation. - * iresolve.c (gfc_resolve_kill, gfc_resolve_kill_sub): Remove. - * trans-decl.c (gfc_build_intrinsic_function_decls): Add - gfor_fndecl_kill and gfor_fndecl_kill_sub - * trans-intrinsic.c (conv_intrinsic_kill, conv_intrinsic_kill_sub): new - functions. - (gfc_conv_intrinsic_function): Use conv_intrinsic_kill. - (gfc_conv_intrinsic_subroutine): Use conv_intrinsic_kill_sub. - * trans.h: Declare gfor_fndecl_kill and gfor_fndecl_kill_sub. - -2018-03-11 Paul Thomas - - PR fortran/84546 - * trans-array.c (structure_alloc_comps): Make sure that the - vptr is copied and that the unlimited polymorphic _len is used - to compute the size to be allocated. - * trans-expr.c (gfc_get_class_array_ref): If unlimited, use the - unlimited polymorphic _len for the offset to the element. - (gfc_copy_class_to_class): Set the new 'unlimited' argument. - * trans.h : Add the boolean 'unlimited' to the prototype. - -2018-03-11 Steven G. Kargl - - PR fortran/83939 - * resolve.c (resolve_fl_procedure): Enforce F2018:C15100. - -2018-03-11 Steven G. Kargl - - * check.c (gfc_check_kill): Check pid and sig are scalar. - (gfc_check_kill_sub): Restrict kind to 4 and 8. - * intrinsic.c (add_function): Sort keyword list. Add pid and sig - keywords for KILL. Remove redundant *back="back" in favor of the - original *bck="back". - (add_subroutines): Sort keyword list. Add pid and sig keywords - for KILL. - * intrinsic.texi: Fix documentation to consistently use pid and sig. - * iresolve.c (gfc_resolve_kill): Kind can only be 4 or 8. Choose the - correct function. - (gfc_resolve_rename_sub): Add comment. - -2018-03-11 Thomas Koenig - - PR fortran/66128 - * simplify.c (simplify_transformation): Return default result for - empty array argument. - (gfc_simplify_all): Remove special-case handling for zerosize. - (gfc_simplify_any): Likewise. - (gfc_simplify_count): Likewise. - (gfc_simplify_iall): Likewise. - (gfc_simplify_iany): Likewise. - (gfc_simplify_iparity): Likewise. - (gfc_simplify_minval): Likewise. - (gfc_simplify_maxval): Likewise. - (gfc_simplify_norm2): Likewise. - (gfc_simplify_product): Likewise. - (gfc_simplify_sum): Likewise. - -2018-03-10 Steven G. Kargl - - PR fortran/84734 - * arith.c (check_result, eval_intrinsic): If result overflows, pass - the expression up the chain instead of a NULL pointer. - -2018-03-07 Steven G. Kargl - - PR fortran/64124 - PR fortran/70409 - * decl.c (gfc_match_char_spec): Try to reduce a charlen to a constant. - -2017-03-06 Thomas Koenig - - PR fortran/84697 - PR fortran/66128 - * expr.c (simplify_parameter_variable): If p is a size zero array - and not an ARRAY_EXPR insert an empty array constructor and - return. - * gfortran.h: Add prototype for gfc_is_size_zero_array. - * simplify.c (is_size_zero_array): Make non-static and rename into - (gfc_is_size_zero_array): Check for parameter arrays of zero - size by comparing shape and absence of constructor. - (gfc_simplify_all): Use gfc_is_size_zero_array instead of - is_size_zero_array. - (gfc_simplify_count): Likewise. - (gfc_simplify_iall): Likewise. - (gfc_simplify_iany): Likewise. - (gfc_simplify_iparity): Likewise. - (gfc_simplify_minval): Likewise. - (gfc_simplify_maxval): Likewise. - (gfc_simplify_product): Likewise. - (gfc_simplify_sum): Likewise. - -2018-03-06 Steven G. Kargl - - PR fortran/56667 - * primary.c (match_sym_complex_part): Give the matcher for an implied - do-loop a chance to run. - -2018-03-03 Harald Anlauf - - PR fortran/71085 - * trans-expr.c (gfc_apply_interface_mapping_to_expr): Do not - dereference NULL pointer. - -2018-03-03 Steven G. Kargl - - PR fortran/66128 - * simplify.c (is_size_zero_array): New function to check for size - zero array. - (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count, - gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity, - gfc_simplify_minval, gfc_simplify_maxval, gfc_simplify_norm2, - gfc_simplify_product, gfc_simplify_sum): Use it, and implement - requirements from F2018. - -2018-03-03 Steven G. Kargl - - PR fortran/51434 - * simplify.c (gfc_simplify_transfer): Resolve mold. - -2018-03-03 Paul Thomas - - PR fortran/80965 - * resolve.c (build_loc_call): Change symtree name from 'loc' to - '_loc'. - -2018-03-01 Paul Thomas - - PR fortran/84219 - * target-memory.c (gfc_interpret_derived): Assert that BT_VOID - components are caf tokens. - (gfc_target_interpret_expr): Treat BT_VOID expressions as - integers. - -2018-03-01 Paul Thomas - - PR fortran/84538 - * class.c (class_array_ref_detected): Remove the condition that - there be no reference after the array reference. - (find_intrinsic_vtab): Remove excess whitespace. - * trans-array.c (gfc_conv_scalarized_array_ref): Rename 'tmp' - as 'base and call build_class_array_ref earlier. - -2018-02-28 Paul Thomas - - PR fortran/83901 - * trans-stmt.c (trans_associate_var): Make sure that the se - expression is a pointer type before converting it to the symbol - backend_decl type. - -2018-02-25 Steven G. Kargl - - PR fortran/83633 - * decl.c (variable_decl): Check that an explicit-shape-array with - nonconstant bounds is allowed. - -2018-02-25 Paul Thomas - - PR fortran/84523 - * trans-intrinsic.c (gfc_conv_allocated): If the argument se - has a pre block, add it to the expression pre block. - -2018-02-25 Thomas Koenig - - PR fortran/78238 - * gfortran.h (gfc_integer_4_kind): Define. - * resolve.c (resolve_select_type): Make sure that the - kind of c->high is gfc_integer_4_kind. - -2018-02-24 Steven G. Kargl - - PR fortran/30792 - * decl.c (gfc_match_data): Check for invalid substring in - data-implied-do - -2018-02-23 Steven G. Kargl - - * intrinsic.texi: Arguments to MATMUL cannot both be rank one. - -2018-02-23 Steven G. Kargl - - PR fortran/84511 - * trans-io.c (transfer_expr): Deal with C_LOC in transfer statement. - -2018-02-23 Steven G. Kargl - - PR fortran/84346 - * interface.c (compare_actual_formal): Issue error if keyword is - used in a statement function. - -2018-02-23 Jerry DeLisle - - PR fortran/84506 - * trans-io.c (set_parameter_value_inquire): Adjust range check of - negative unit values for kind=8 units to the kind=4 negative limit. - -2018-02-23 Paul Thomas - - PR fortran/83149 - * trans-types.c (gfc_sym_type): Test sym->ns->proc_name before - accessing its components. - -2018-02-23 Paul Thomas - - PR fortran/83149 - * trans-decl.c (gfc_finish_var_decl): Test sym->ns->proc_name - before accessing its components. - -2018-02-23 Paul Thomas - - PR fortran/83148 - * trans-const.c : Clean up some whitespace issues. - * trans-expr.c (gfc_conv_initializer): If an iso_c_binding - derived type has a kind value of zero, set it to the default - integer kind. - -2018-02-23 Janne Blomqvist - - PR fortran/84519 - * trans-decl.c (gfc_build_builtin_function_decls): Add bool - argument to stop and error stop decls. - * trans-stmt.c (gfc_trans_stop): Add false value to argument - lists. - -2018-02-22 Janne Blomqvist - - PR 78534 - PR 84509 - * trans-decl.c (gfc_build_builtin_function_decls): Pass - gfc_int8_type node to pause_numeric, size_type_node to - pause_string. - * trans-stmt.c (gfc_trans_pause): Likewise. - -2018-02-22 Janne Blomqvist - - * gfortran.texi: Update Coarray API description. - * trans-decl.c (gfc_build_builtin_function_decls): Use size_t for - character lengths, int for exit codes. - (generate_coarray_sym_init): Use size_t for character length. - * trans-intrinsic.c (conv_co_collective): Likewise. - * trans-stmt.c (gfc_trans_lock_unlock): Likewise. - (gfc_trans_event_post_wait): Likewise. - (gfc_trans_sync): Likewise. - (gfc_trans_stop): Use size_t for character lengths, int for exit - codes. - -2018-02-20 Thomas Koenig - - PR fortran/48890 - PR fortran/83823 - * primary.c (gfc_convert_to_structure_constructor): - For a constant string constructor, make sure the length - is correct. - -2018-02-19 Paul Thomas - - PR fortran/83344 - PR fortran/83975 - * resolve.c (resolve_assoc_var): Rearrange the logic for the - determination of the character length of associate names. If - the associate name is missing a length expression or the length - expression is not a constant and the target is not a variable, - make the associate name allocatable and deferred length. - * trans-decl.c (gfc_get_symbol_decl): Null the character length - backend_decl for deferred length associate names that are not - variables. Set 'length' to gfc_index_zero_node for character - associate names, whose character length is a PARM_DECL. - -2018-02-19 Thomas Koenig - - PR fortran/35339 - * frontend-passes.c (traverse_io_block): Remove workaround for - PR 80945. - -2018-02-19 Andre Vehreschild - - * gfortran.texi: Document additional src/dst_type. Fix some typos. - * trans-decl.c (gfc_build_builtin_function_decls): Declare the new - argument of _caf_*_by_ref () with * e { get, send, sendget }. - * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Add the type of the - data referenced when generating a call to caf_get_by_ref (). - (conv_caf_send): Same but for caf_send_by_ref () and - caf_sendget_by_ref (). - -2018-02-18 Jerry DeLisle - - PR fortran/84389 - * io.c (check_format): Allow FMT_COLON. - -2018-02-18 Paul Thomas - - PR fortran/80945 - * trans-array.c (gfc_conv_expr_descriptor): Set parmtype from - the typenode in the case of deferred length characters. - -2018-02-17 Thomas Koenig - - PR fortran/84270 - * frontend-passes (scalarized_expr): If the expression - is an assumed size array, leave in the last reference - and pass AR_SECTION instead of AR_FULL to gfc_resolve - in order to avoid an error. - -2018-02-17 Paul Thomas - - PR fortran/84115 - * resolve.c (resolve_assoc_var): If a non-constant target expr. - has no string length expression, make the associate variable - into a deferred length, allocatable symbol. - * trans-decl.c (gfc_is_reallocatable_lhs): Add and use a ptr to - the symbol. - * trans-stmt.c (trans_associate_var): Null and free scalar - associate names that are allocatable. After assignment, remove - the allocatable attribute to prevent reallocation. - -2018-02-16 Jakub Jelinek - - PR fortran/84418 - * trans-openmp.c (gfc_trans_omp_clauses): For OMP_CLAUSE_LINEAR_REF - kind set OMP_CLAUSE_LINEAR_STEP to TYPE_SIZE_UNIT times last_step. - -2018-02-16 Dominique d'Humieres - - PR fortran/84354 - * decl.c (gfc_get_pdt_instance): Replace '%qs' with %qs. - -2018-02-15 Janus Weil - - PR fortran/84409 - * interface.c (check_dtio_arg_TKR_intent): Add a check for character - length. - -2018-02-14 Janus Weil - - PR fortran/84385 - * match.c (gfc_match_select_type): Fix check for selector in - SELECT TYPE statement. - -2018-02-13 Janus Weil - - PR fortran/84313 - * symbol.c (check_conflict): Reject procedure pointers in common blocks. - -2018-02-13 Alastair McKinstry - Janne Blomqvist - - * module.c (dump_module): Use lbasename to ensure that module - files are reproducible. - -2018-02-12 Janus Weil - - PR fortran/84273 - * resolve.c (resolve_component): Fix checks of passed argument in - procedure-pointer components. - -2018-02-11 Francois-Xavier Coudert - - PR fortran/35299 - * resolve.c (resolve_formal_arglist): Update error message. - -2018-02-11 Andre Vehreschild - - * gfortran.texi: Fix typos in documentation of caf_register (). - * trans-array.c (structure_alloc_comps): Only register a component of - a derived typed corray, not of an ultimate component coarray. - -2018-02-11 Steven G. Kargl - - PR fortran/54223 - PR fortran/84276 - * interface.c (compare_actual_formal): Add in_statement_function - bool parameter. Skip check of INTENT attribute for statement - functions. Arguments to a statement function cannot be optional, - issue error for missing argument. - (gfc_procedure_use, gfc_ppc_use, gfc_arglist_matches_symbol): Use - in_statement_function. - -2018-02-11 Paul Thomas - - PR fortran/84074 - * trans-expr.c (gfc_conv_derived_to_class): Set the use_offset - flag. If the is a vector subscript or the expression is not a - variable, make the descriptor one-based. - -2018-02-10 Paul Thomas - - PR fortran/84141 - PR fortran/84155 - * trans-array.c (gfc_array_init_size): Revert the change made - in revision 257356 setting the dtype. - * trans-types.c (gfc_get_dtype): Do not use the cached dtype. - Call gfc_get_dtype_rank_type every time. - - PR fortran/56691 - * trans-array.c (gfc_conv_expr_descriptor): If the source array - is a descriptor type, use its offset, removing the condition - that is be a class expression. - -2018-02-07 Steven G. Kargl - - PR fortran/82994 - * match.c (gfc_match_deallocate): Check for NULL pointer. - -2018-02-07 Thomas Koenig - - PR fortran/68560 - * trans-intrinsic.c (gfc_conv_intrinsic_shape): New function. - (gfc_conv_intrinsic_function): Call it. - -2018-02-07 Steven G. Kargl - - PR fortran/82049 - * match.c (gfc_match_type_spec): If the charlen is non-NULL, then - try to resolve it. While here return early if possible. - -2018-02-04 Paul Thomas - - PR fortran/84115 - * trans-decl.c (gfc_get_symbol_decl): Do not finish the decl of - 'length' if the symbol charlen backend_decl is an indirect ref. - -2018-02-03 Paul Thomas - - PR fortran/84141 - PR fortran/84155 - * trans-array.c (gfc_array_init_size): Instead of gfc_get_dtype - use gfc_get_dtype_rank_type. - -2018-02-01 Janne Blomqvist - - PR 83975 - PR 83344 - * resolve.c (resolve_assoc_var): Generate an error if - target length unknown. - -2018-02-01 Janne Blomqvist - - PR fortran/83705 - * simplify.c (gfc_simplify_repeat): Increase limit for deferring - to runtime, print a warning message. - -2018-01-31 Jakub Jelinek - - PR fortran/84116 - * openmp.c (gfc_match_omp_clauses): If all the linear - gfc_match_omp_variable_list calls failed, don't gfc_free_omp_namelist - nor set *head = NULL. Formatting fixes. - -2018-01-31 Paul Thomas - - PR fortran/84088 - * trans-expr.c (gfc_conv_procedure_call): If the parm expr is - an address expression passed to an assumed rank dummy, convert - to an indirect reference. - -2018-01-31 Thomas Koenig - - * dump-parse-tree.c (write_proc): Use sym_name (which may - be sym->binding_label) instead of sym->name. - -2018-01-31 Janne Blomqvist - - * trans-const.c (gfc_conv_string_init): Use gfc_charlen_t instead - of int for slen. - -2018-01-31 Janne Blomqvist - - PR fortran/78534 - * trans-expr.c (fill_with_spaces): Use memset instead of - generating loop. - (gfc_trans_string_copy): Improve opportunity to use builtins with - constant lengths. - -2018-01-30 Jakub Jelinek - - PR debug/84131 - * trans-array.c (gfc_get_descriptor_offsets_for_info): Set *data_off - to DATA_FIELD's offset rather than OFFSET_FIELD's offset. - -2018-01-30 Thomas Koenig - - PR fortran/84134 - * array.c (gfc_ref_dimen_size): Whitespace fixes. If stride is - zero, return false. - -2018-01-30 Thomas Koenig - - PR fortran/84133 - * frontend-passes (matmul_to_var_expr): Return early if - in association list. - (inline_matmul_assign): Likewise. - -2017-01-29 Thomas Koenig - - PR fortran/84073 - * resolve.c (resolve_component): Ensure BIND(C) character - components have length one. - (resolve_symbol): Likewise for variables. - -2018-01-27 Jakub Jelinek - - PR fortran/84065 - * decl.c (add_init_expr_to_sym): Ignore initializers for too large - lengths. - -2018-01-26 Damian Rouson - Alessandro Fanfarillo - Soren Rasmussen - - Partial support for Fortran 2018 teams features. - - * array.c (gfc_match_array_ref): add team attribute in coarray - transfers. - * check.c (gfc_check_get_team, gfc_check_team_number): add new - functions for get_team and team_number. - * dump-parse-tree.c (show_code_node): add new statements: form team, - change team, end team, and sync team. - * expr.c (gfc_find_team_co): add new function. - * gfortran.h: add new statements. - * intrinsic.c (add_functions): add get_team and team_number functions. - * intrinsic.h: add get_team and team_number prototypes for check, - simplify, and resolve. - * iresolve.c (gfc_resolve_get_team, gfc_resolve_team_number): add new - functions. - * iso-fortran-env.def: add the team_type derived type. - * match.c (gfc_match_if, gfc_match_form_team, gfc_match_team_number) - (gfc_match_end_team, gfc_match_sync_team, gfc_match_change_team): - add change team, end team, form team, sync team match and functions. - * match.h: add new prototypes for change team, end team, form team, - and sync team. - * parse.c (decode_statement): add cases for change team, end team, - form team, and sync team. - * resolve.c: add cases for exec form team, change team, end team, and - sync team. - * simplify.c (gfc_simplify_get_team): add new function for get team. - * st.c (gfc_free_statement): add cases exec for change team, end team, - form team, sync team. - * trans-decl.c (gfor_fndecl_caf_form_team) - (gfor_fndecl_caf_change_team, gfor_fndecl_caf_end_team) - (gfor_fndecl_caf_sync_team, gfor_fndecl_caf_get_team) - (gfor_fndecl_caf_team_number): add functions and definitions. - * trans-intrinsic.c (conv_caf_send, conv_intrinsic_team_number): add - new function and team_type argument support. - * trans-stmt.c (gfc_trans_form_team, gfc_trans_change_team) - (gfc_trans_end_team, gfc_trans_sync_team): add new functions. - * trans-stmt.h: add new prototypes. - * trans-types.c (gfc_get_derived_type): check condition for team_type. - * trans.c (trans_code): new exec cases for form team, change team, end - team, and sync team. - * trans.h: add new prototypes. - -2018-01-26 Steven G. Kargl - - PR fortran/83998 - * simplify.c (compute_dot_product): Initialize result to INTEGER(1) 0 - or .false. The summation does the correct type conversion. - (gfc_simplify_dot_product): Special case zero-sized arrays. - -2018-25-01 Paul Thomas - - PR fortran/37577 - * array.c (gfc_match_array_ref): If standard earlier than F2008 - it is an error if the reference dimension is greater than 7. - libgfortran.h : Increase GFC_MAX_DIMENSIONS to 15. Change the - dtype masks and shifts accordingly. - * trans-array.c (gfc_conv_descriptor_dtype): Use the dtype - type node to check the field. - (gfc_conv_descriptor_dtype): Access the rank field of dtype. - (duplicate_allocatable_coarray): Access the rank field of the - dtype descriptor rather than the dtype itself. - * trans-expr.c (get_scalar_to_descriptor_type): Store the type - of 'scalar' on entry and use its TREE_TYPE if it is ARRAY_TYPE - (ie. a character). - (gfc_conv_procedure_call): Pass TREE_OPERAND (tmp,0) to - get_scalar_to_descriptor_type if the actual expression is a - constant. - (gfc_trans_structure_assign): Assign the rank directly to the - dtype rank field. - * trans-intrinsic.c (gfc_conv_intrinsic_rank): Cast the result - to default integer kind. - (gfc_conv_intrinsic_sizeof): Obtain the element size from the - 'elem_len' field of the dtype. - * trans-io.c (gfc_build_io_library_fndecls): Replace - gfc_int4_type_node with dtype_type_node where necessary. - (transfer_namelist_element): Use gfc_get_dtype_rank_type for - scalars. - * trans-types.c : Provide 'get_dtype_type_node' to acces the - dtype_type_node and, if necessary, build it. - The maximum size of an array element is now determined by the - maximum value of size_t. - Update the description of the array descriptor, including the - type def for the dtype_type. - (gfc_get_dtype_rank_type): Build a constructor for the dtype. - Distinguish RECORD_TYPEs that are BT_DERIVED or BT_CLASS. - (gfc_get_array_descriptor_base): Change the type of the dtype - field to dtype_type_node. - (gfc_get_array_descr_info): Get the offset to the rank field of - the dtype. - * trans-types.h : Add a prototype for 'get_dtype_type_node ()'. - * trans.h : Define the indices of the dtype fields. - -2018-23-01 Paul Thomas - - PR fortran/83866 - * decl.c (gfc_match_derived_decl): If eos not matched, recover - and emit error about garbage after declaration. - -2018-23-01 Paul Thomas - - PR fortran/83898 - * trans-stmt.c (trans_associate_var): Do not set cst_array_ctor - for characters. - -2018-01-22 Janne Blomqvist - - PR 78534 - PR 83704 - * arith.c (gfc_arith_concat): Use size_t for string length. - (gfc_compare_string): Likewise. - (gfc_compare_with_Cstring): Likewise. - * array.c (gfc_resolve_character_array_constructor): Use - HOST_WIDE_INT, gfc_mpz_get_hwi. - * check.c (gfc_check_fe_runtime_error): Use size_t. - * data.c (create_character_initializer): Use HOST_WIDE_INT, - gfc_extract_hwi. - * decl.c (gfc_set_constant_character_len): Use gfc_charlen_t. - (add_init_expr_to_sym): Use HOST_WIDE_INT. - * expr.c (gfc_build_init_expr): Use HOST_WIDE_INT, - gfc_extract_hwi. - (gfc_apply_init): Likewise. - * match.h (gfc_set_constant_character_len): Update prototype. - * primary.c (match_string_constant): Use size_t. - * resolve.c (resolve_ordinary_assign): Use HOST_WIDE_INT, - gfc_mpz_get_hwi. - * simplify.c (init_result_expr): Likewise. - (gfc_simplify_len_trim): Use size_t. - * target-memory.c (gfc_encode_character): Use size_t. - (gfc_target_encode_expr): Use HOST_WIDE_INT, gfc_mpz_get_hwi. - (interpret_array): Use size_t. - (gfc_interpret_character): Likewise. - * target-memory.h (gfc_encode_character): Update prototype. - (gfc_interpret_character): Likewise. - (gfc_target_interpret_expr): Likewise. - * trans-const.c (gfc_build_string_const): Use size_t for length - argument. - (gfc_build_wide_string_const): Likewise. - * trans-const.h (gfc_build_string_const): Likewise. - (gfc_build_wide_string_const): Likewise. - -2018-01-20 Steven G. Kargl - - PR fortran/83900 - * simplify.c (gfc_simplify_matmul): Set return type correctly. - -2018-01-19 Steven G. Kargl - - PR fortran/83900 - * simplify.c (gfc_simplify_matmul): Delete bogus assertion. - -2018-01-17 Harald Anlauf - - PR fortran/83864 - * expr.c (add_init_expr_to_sym): Do not dereference NULL pointer. - -2018-01-17 Harald Anlauf - - PR fortran/83874 - * decl.c (add_init_expr_to_sym): Do not dereference NULL pointer. - -2018-01-15 Louis Krupp - - PR fortran/82257 - * interface.c (compare_rank): Don't try to retrieve CLASS_DATA - from symbol marked unlimited polymorphic. - * resolve.c (resolve_structure_cons): Likewise. - * misc.c (gfc_typename): Don't dereference derived->components - if it's NULL. - -2018-01-15 Thomas Koenig - - PR fortran/54613 - * gfortran.h (gfc_check_f): Rename f4ml to f5ml. - (gfc_logical_4_kind): New macro - * intrinsic.h (gfc_simplify_minloc): Add a gfc_expr *argument. - (gfc_simplify_maxloc): Likewise. - (gfc_resolve_maxloc): Likewise. - (gfc_resolve_minloc): Likewise. - * check.c (gfc_check_minloc_maxloc): Add checking for "back" - argument; also raise error if it is used (for now). Add it - if it isn't present. - * intrinsic.c (add_sym_4ml): Rename to - (add_sym_5ml), adjust for extra argument. - (add_functions): Add "back" constant. Adjust maxloc and minloc - for back argument. - * iresolve.c (gfc_resolve_maxloc): Add back argument. If back is - not of gfc_logical_4_kind, convert. - (gfc_resolve_minloc): Likewise. - * simplify.c (gfc_simplify_minloc): Add back argument. - (gfc_simplify_maxloc): Likewise. - * trans-intinsic.c (gfc_conv_intrinsic_minmaxloc): Rename last - argument to %VAL to ensure passing by value. - (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_minmaxloc - also for library calls. - -2018-01-13 Jerry DeLisle - - PR fortran/82007 - * resolve.c (resolve_transfer): Delete code looking for 'DT' - format specifiers in format strings. Set formatted to true if a - format string or format label is present. - * trans-io.c (get_dtio_proc): Likewise. (transfer_expr): Fix - whitespace. - -2018-01-13 Thomas Koenig - - PR fortran/83744 - * dump-parse-tree.c (get_c_type_name): Remove extra line. - Change for loop to use declaration in for loop. Handle BT_LOGICAL - and BT_CHARACTER. - (write_decl): Add where argument. Fix indentation. Replace - assert with error message. Add typename to warning - in comment. - (write_type): Adjust locus to call of write_decl. - (write_variable): Likewise. - (write_proc): Likewise. Replace assert with error message. - -2018-01-13 Paul Thomas - - PR fortran/52162 - * trans-expr.c (gfc_trans_scalar_assign): Flag is_alloc_lhs if - the rhs expression is neither an elemental nor a conversion - function. - - PR fortran/83622 - * trans-array.c (is_pointer_array): Remove unconditional return - of false for -fopenmp. - -2018-01-13 Thomas Koenig - - - PR fortran/83803 - * dump-parse-tree.c (write_proc): Always emit closing parenthesis - for functions. - -2018-01-10 Steven G. Kargl - - PR fortran/82367 - * resolve.c (resolve_allocate_expr): Check for NULL pointer. - -2018-01-10 Steven G. Kargl - - PR fortran/83093 - * resolve.c (resolve_charlen): Check the type of cl->length - after resolution. - -2018-01-10 Janne Blomqvist - - PR fortran/83740 - * trans-array.c (gfc_trans_array_ctor_element): Fix formatting. - -2018-01-10 Janne Blomqvist - - PR fortran/83740 - * trans-array.c (gfc_trans_array_ctor_element): Convert RHS to the - LHS type when assigning. - -2018-01-09 Steven G. Kargl - - PR fortran/83742 - * expr.c (gfc_is_simply_contiguous): Check for NULL pointer. - -2018-01-08 Steven G. Kargl - - * match.c (gfc_match_allocate): Check for NULL pointer. - -2018-01-08 Steven G. Kargl - - * expr.c (gfc_check_pointer_assign): Fix typo in comment. - -2018-01-08 Paul Thomas - - PR fortran/83611 - * decl.c (gfc_get_pdt_instance): If parameterized arrays have - an initializer, convert the kind parameters and add to the - component if the instance. - * trans-array.c (structure_alloc_comps): Add 'is_pdt_type' and - use it with case COPY_ALLOC_COMP. Call 'duplicate_allocatable' - for parameterized arrays. Clean up typos in comments. Convert - parameterized array initializers and copy into the array. - * trans-expr.c (gfc_trans_scalar_assign): Do a deep copy for - parameterized types. - *trans-stmt.c (trans_associate_var): Deallocate associate vars - as necessary, when they are PDT function results for example. - - PR fortran/83731 - * trans-array.c (structure_alloc_comps): Only compare len parms - when they are declared explicitly. - -2018-01-06 Janne Blomqvist - - PR fortran/50892 - * trans-expr.c (gfc_trans_pointer_assignment): fold_convert rhs to - lhs type. - -2018-01-05 Janne Blomqvist - - PR fortran/78534 - PR fortran/66310 - * array.c (got_charlen): Use gfc_charlen_int_kind. - * class.c (gfc_find_derived_vtab): Use gfc_size_kind instead of - hardcoded kind. - (find_intrinsic_vtab): Likewise. - * decl.c (match_char_length): Use gfc_charlen_int_kind. - (add_init_expr_to_sym): Use gfc_charlen_t and gfc_charlen_int_kind. - (gfc_match_implicit): Use gfc_charlen_int_kind. - * dump-parse-tree.c (show_char_const): Use gfc_charlen_t and size_t. - (show_expr): Use HOST_WIDE_INT_PRINT_DEC. - * expr.c (gfc_get_character_expr): Length parameter of type - gfc_charlen_t. - (gfc_get_int_expr): Value argument of type HOST_WIDE_INT. - (gfc_extract_hwi): New function. - (simplify_const_ref): Make string_len of type gfc_charlen_t. - (gfc_simplify_expr): Use HOST_WIDE_INT for substring refs. - * frontend-passes.c (optimize_trim): Use gfc_charlen_int_kind. - * gfortran.h (gfc_mpz_get_hwi): New prototype. - (gfc_mpz_set_hwi): Likewise. - (gfc_charlen_t): New typedef. - (gfc_expr): Use gfc_charlen_t for character lengths. - (gfc_size_kind): New extern variable. - (gfc_extract_hwi): New prototype. - (gfc_get_character_expr): Use gfc_charlen_t for character length. - (gfc_get_int_expr): Use HOST_WIDE_INT type for value argument. - * gfortran.texi: Update description of hidden string length argument. - * iresolve.c (check_charlen_present): Use gfc_charlen_int_kind. - (gfc_resolve_char_achar): Likewise. - (gfc_resolve_repeat): Pass string length directly without - temporary, use gfc_charlen_int_kind. - (gfc_resolve_transfer): Use gfc_charlen_int_kind. - * match.c (select_intrinsic_set_tmp): Use HOST_WIDE_INT for charlen. - * misc.c (gfc_mpz_get_hwi): New function. - (gfc_mpz_set_hwi): New function. - * module.c (atom_int): Change type from int to HOST_WIDE_INT. - (parse_integer): Don't complain about large integers. - (write_atom): Use HOST_WIDE_INT for integers. - (mio_integer): Handle integer type mismatch. - (mio_hwi): New function. - (mio_intrinsic_op): Use HOST_WIDE_INT. - (mio_array_ref): Likewise. - (mio_expr): Likewise. - * primary.c (match_substring): Use gfc_charlen_int_kind. - * resolve.c (resolve_substring_charlen): Use gfc_charlen_int_kind. - (resolve_character_operator): Likewise. - (resolve_assoc_var): Likewise. - (resolve_select_type): Use HOST_WIDE_INT for charlen, use snprintf. - (resolve_charlen): Use mpz_sgn to determine sign. - * simplify.c (gfc_simplify_repeat): Use HOST_WIDE_INT/gfc_charlen_t - instead of long. - * symbol.c (generate_isocbinding_symbol): Use gfc_charlen_int_kind. - * target-memory.c (size_character): Length argument of type - gfc_charlen_t. - (gfc_encode_character): Likewise. - (gfc_interpret_character): Use gfc_charlen_t. - * target-memory.h (gfc_encode_character): Modify prototype. - * trans-array.c (gfc_trans_array_ctor_element): Use existing type. - (get_array_ctor_var_strlen): Use gfc_conv_mpz_to_tree_type. - (trans_array_constructor): Use existing type. - (get_array_charlen): Likewise. - * trans-const.c (gfc_conv_mpz_to_tree_type): New function. - * trans-const.h (gfc_conv_mpz_to_tree_type): New prototype. - * trans-decl.c (gfc_trans_deferred_vars): Use existing type. - (add_argument_checking): Likewise. - * trans-expr.c (gfc_class_len_or_zero_get): Build const of type - gfc_charlen_type_node. - (gfc_conv_intrinsic_to_class): Use gfc_charlen_int_kind instead of - 4, fold_convert to correct type. - (gfc_conv_class_to_class): Build const of type size_type_node for - size. - (gfc_copy_class_to_class): Likewise. - (gfc_conv_string_length): Use same type in expression. - (gfc_conv_substring): Likewise, use HOST_WIDE_INT for charlen. - (gfc_conv_string_tmp): Make sure len is of the right type. - (gfc_conv_concat_op): Use same type in expression. - (gfc_conv_procedure_call): Likewise. - (fill_with_spaces): Comment out memset() block due to spurious - -Wstringop-overflow warnings. - (gfc_trans_string_copy): Use gfc_charlen_type_node. - (alloc_scalar_allocatable_for_subcomponent_assignment): - fold_convert to right type. - (gfc_trans_subcomponent_assign): Likewise. - (trans_class_vptr_len_assignment): Build const of correct type. - (gfc_trans_pointer_assignment): Likewise. - (alloc_scalar_allocatable_for_assignment): fold_convert to right - type in expr. - (trans_class_assignment): Build const of correct type. - * trans-intrinsic.c (gfc_conv_associated): Likewise. - (gfc_conv_intrinsic_repeat): Do calculation in sizetype. - * trans-io.c (gfc_build_io_library_fndecls): Use - gfc_charlen_type_node for character lengths. - (set_string): Convert to right type in assignment. - * trans-stmt.c (gfc_trans_label_assign): Build const of - gfc_charlen_type_node. - (trans_associate_var): Likewise. - (gfc_trans_character_select): Likewise. - (gfc_trans_allocate): Likewise, don't typecast strlen result. - (gfc_trans_deallocate): Don't typecast strlen result. - * trans-types.c (gfc_size_kind): New variable. - (gfc_init_types): Determine gfc_charlen_int_kind and gfc_size_kind - from size_type_node. - * trans-types.h: Fix comment. - -2018-01-04 Thomas Koenig - - PR fortran/83683 - PR fortran/45689 - * check.c (gfc_check_eoshift): Check for string length and - for conformance of boundary. - * intrinsic.c (add_functions): Add gfc_simplify_eoshift. - * intrinsic.h: Add prototype for gfc_simplify_eoshift. - * simplify.c (gfc_simplify_eoshift): New function. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * trans-types.c (gfc_type_for_mode): Handle MODE_VECTOR_BOOL. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * trans-types.c (gfc_type_for_mode): Check valid_vector_subparts_p. - -2018-01-03 Thomas Koenig - - PR fortran/83664 - * check.c (gfc_check_eoshift): Error for missing boundary if array - is not one of the standard types. - -2018-01-03 Jakub Jelinek +2019-01-01 Jakub Jelinek Update copyright years. @@ -5467,50 +15,8 @@ * gfortran.texi: Ditto. * intrinsic.texi: Ditto. * invoke.texi: Ditto. - -2017-01-02 Thomas Koenig - - PR fortran/45689 - * intrinsic.c (add_function): Add gfc_simplify_maxloc and - gfc_simplify_minloc to maxloc and minloc, respectively. - * intrinsic.h: Add prototypes for gfc_simplify_minloc - and gfc_simplify_maxloc. - * simplify.c (min_max_chose): Adjust prototype. Modify function - to have a return value which indicates if the extremum was found. - (is_constant_array_expr): Fix typo in comment. - (simplify_minmaxloc_to_scalar): New function. - (simplify_minmaxloc_nodim): New function. - (new_array): New function. - (simplify_minmaxloc_to_array): New function. - (gfc_simplify_minmaxloc): New function. - (simplify_minloc): New function. - (simplify_maxloc): New function. - -2018-01-02 Thomas Koenig - - PR fortran/45689 - PR fortran/83650 - * simplify.c (gfc_simplify_cshift): Re-implement to allow full - range of arguments. - -2018-01-01 Paul Thomas - - PR fortran/83076 - * resolve.c (resolve_fl_derived0): Add caf_token fields for - allocatable and pointer scalars, when -fcoarray selected. - * trans-types.c (gfc_copy_dt_decls_ifequal): Copy the token - field as well as the backend_decl. - (gfc_get_derived_type): Flag GFC_FCOARRAY_LIB for module - derived types that are not vtypes. Components with caf_token - attribute are pvoid types. For a component requiring it, find - the caf_token field and have the component token field point to - its backend_decl. - - PR fortran/83319 - *trans-types.c (gfc_get_array_descriptor_base): Add the token - field to the descriptor even when codimen not set. -Copyright (C) 2018 Free Software Foundation, Inc. +Copyright (C) 2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/ChangeLog-2018 gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/ChangeLog-2018 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/ChangeLog-2018 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/ChangeLog-2018 2019-01-02 08:05:17.000000000 +0000 @@ -0,0 +1,5656 @@ +2018-12-31 Thomas Koenig + + PR fortran/82995 + * trans-expr.c (gfc_conv_procedure_call): Pass NULL pointer + for missing optional dummy arguments for library routines. + * trans-intinsic.c (conv_mask_condition): New function. + (gfc_conv_intrinsic_arith): Detect and handle optional mask. + (gfc_conv_intrinsic_minmaxloc): Likewise. + (gfc_conv_intrinsic_findloc): Likewise. + (gfc_conv_intrinsic_minmaxval): Likewise. + (gfc_inline_intrinsic_function_p): Do not inline for rank > 1 if + an optional mask is present. + +2018-12-29 Steven G. Kargl + + * expr.c (external_spec_function): Add ieee_support_subnormal to list + of IEEE inquiry functions. + +2018-12-29 Steven G. Kargl + + * cpp.c (gfc_cpp_init): Add pre-defined macros for INTEGER(1) + INTEGER(2), INTEGER(8) and INTEGER(16) if supported. Add pre-defined + macros for REAL(10) and REAL(16) if available. + * gfortran.texi: Document new macros. + +2018-12-27 Steven G. Kargl + + PR fortran/81027 + * expr.c (gfc_check_init_expr): Distinguish assumed-shape versus + deferred-shape dummy arguments in an error message. + +2018-12-26 Harald Anlauf + + PR fortran/85407 + * module.c (read_module): Convert assert to fatal error to give a + sensible error message. + +2018-12-24 Steven G. Kargl + + PR fortran/45513 + PR fortran/81509 + * check.c: Rename function gfc_check_iand to gfc_check_iand_ieor_ior. + * check.c (boz_args_check): New function. Check I and J not both BOZ. + (gfc_check_dshift,gfc_check_iand_ieor_ior, gfc_check_ishft, + gfc_check_and, gfc_check_merge_bits): Use it. + * check.c (gfc_check_iand_ieor_ior): Force conversion of BOZ to kind + type of other agrument. Remove silly GNU extension. + (gfc_check_ieor, gfc_check_ior): Delete now unused functions. + * intrinsic.c (add_functions): Use gfc_check_iand_ieor_ior. Wrap long + line. + * intrinsic.h: Rename gfc_check_iand to gfc_check_iand_ieor_ior. + Delete prototype for bool gfc_check_ieor and gfc_check_ior + * intrinsic.texi: Update documentation for boz-literal-constant. + +2018-12-23 Paul Thomas + + PR fortran/77703 + * resolve.c (get_temp_from_expr): Use the string length of + constant character expressions. + +2018-12-22 Steven G. Kargl + + PR fortran/88328 + * io.c (resolve_tag_format): Add error for zero-sized array. + (gfc_resolve_dt): Manipulate gfc_current_locus to get sensible error + message locus. + +2018-12-22 Steven G . Kargl + + PR fortran/85798 + * decl.c (gfc_match_data): If a component of a derived type entity + appears in data statement, check that does not have the allocatable + attribute. + +2018-12-22 Steven G. Kargl + + PR fortran/88169 + * module.c (mio_namelist): Remove an error condition/message that + is contrary to the Fortran standard. + +2018-12-22 Thomas Koenig + + PR fortran/85544 + * frontend-passes.c (optimize_power): Remove. + (optimize_op): Remove call to optimize_power. + * trans-expr.c (gfc_conv_power_op): Handle cases of 1**integer, + (2|4|8|16) ** integer and (-1) ** integer. + +2018-12-21 Paul Thomas + + PR fortran/87881 + * expr.c (find_inquiry_ref): Loop through the inquiry refs in + case there are two of them. + (simplify_ref_chain): Return true after a successful call to + find_inquiry_ref. + +2018-12-19 Steven G. Kargl + + PR fortran/87992 + * resolve.c (resolve_fl_variable): Avoid a NULL pointer. + +2018-12-16 Steven G. Kargl + + * resolve.c (resolve_transfer): Remove dead code. + +2018-12-16 Steven G. Kargl + + PR fortran/88116 + PR fortran/88467 + * array.c (gfc_match_array_constructor): Check return value of + gfc_convert_type(). Skip constructor elements with BT_UNKNOWN, + which need to go through resolution. + * intrinsic.c (gfc_convert_type_warn): Return early if the types + match (i.e., no conversion is required). + * simplify.c (gfc_convert_constant): Remove a gfc_internal_error, + and return gfc_bad_expr. + +2018-12-16 Steven G. Kargl + + * decl.c (variable_decl): Typo fixes in comment and error messsage. + +2018-12-16 Thomas Koenig + + PF fortran/88364 + * trans-expr.c (gfc_conv_expr_reference): Do not add clobber if + the expression contains a reference. + +2018-12-15 Steven G. Kargl + + PR fortran/87944 + * decl.c (match_data_constant): Allow inquiry parameter as data + constant in data statement. + +2018-12-15 Steven G. Kargl + + PR fortran/88138 + * decl.c (variable_decl): Check that a derived isn't being assigned + an incompatible entity in an initialization. + +2018-12-12 Jakub Jelinek + + PR fortran/88463 + * trans-openmp.c (gfc_omp_predetermined_sharing): Handle TREE_READONLY + VAR_DECLs with DECL_EXTERNAL like those with TREE_STATIC. + +2018-12-11 Steven G. Kargl + + PR fortran/88155 + * primary.c (gfc_match_structure_constructor): Set the locus of + an expression to avoid a NULL pointer dereference. + +2018-12-11 Steven G. Kargl + + PR fortran/88249 + * gfortran.h: Update prototype for gfc_resolve_filepos(). + * io.c (gfc_resolve_filepos): Check for UNIT number if ERR= is present. + Use passed in locus for error message. + * resolve.c (gfc_resolve_code): Pass locus in gfc_resolve_filepos() + call. + +2018-12-10 Steven G. Kargl + + PR fortran/97922 + * io.c (gfc_match_open): Additional checks on ASYNCHRONOUS. + +2018-12-10 Steven G. Kargl + + PR fortran/88269 + * io.c (io_constraint): Update macro. If locus line buffer is NULL, + use gfc_current_locus in error messages. + (check_io_constraints): Catch missing IO UNIT in write and read + statements. io_constraint macro is incompatible here. + +2018-12-09 Steven G. Kargl + + PR fortran/88205 + * io.c (gfc_match_open): Move NEWUNIT checks to after STATUS checks. + +2018-12-09 Steven G. Kargl + + PR fortran/88206 + * match.c (gfc_match_type_spec): REAL can be an intrinsic function. + +2018-12-09 Fritz Reese + + PR fortran/88228 + * resolve.c (resolve_operator): Do not call resolve_function. + Break like other cases. + +2018-12-09 Cesar Philippidis + + * trans-openmp.c (gfc_trans_oacc_combined_directive): Set the + location of combined acc loops. + +2018-12-09 Thomas Schwinge + + * openmp.c (resolve_oacc_loop_blocks): Remove checking of OpenACC + loop clauses. + + PR fortran/88420 + * openmp.c (resolve_oacc_loop_blocks): Remove "Clause SEQ + conflicts with INDEPENDENT" diagnostic. + +2018-12-08 Steven G. Kargl + + PR fortran/88048 + * resolve.c (check_data_variable): Named constant cannot be a + data object. + +2018-12-08 Steven G. Kargl + + PR fortran/87945 + * decl.c (var_element): Inquiry parameters cannit be data objects. + +2018-12-08 Steven G. Kargl + + PR fortran/88025 + * expr.c (gfc_apply_init): Remove asserts that cannot trigger. + Check for a NULL pointer. + +2018-12-08 Steven G. Kargl + + PR fortran/88357 + * class.c (insert_component_ref): Check for NULL pointer and + previous error message issued. + * parse.c (parse_associate): Check for NULL pointer. + * resolve.c (resolve_assoc_var): Check for NULL pointer. + +2018-12-07 Jakub Jelinek + + PR fortran/88377 + * trans-openmp.c (gfc_omp_clause_default_ctor, + gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op, + gfc_omp_clause_linear_ctor, gfc_omp_clause_dtor): Only consider + GFC_DECL_GET_SCALAR_ALLOCATABLE vars as scalar allocatables if they + have pointer type. + +2018-12-03 Fritz Reese + Mark Eggleston + + PR fortran/87919 + * options.c (SET_FLAG, SET_BITFLAG, SET_BITFLAG2): New macros. + (set_dec_flags): Set/unset DEC and std flags according to value. + (post_dec_flags, set_init_local_zero): New functions. + (gfc_init_options): Use set_init_local_zero and post_dec_flags. + (gfc_handle_options) : Use + SET_BITFLAG. + : Use set_init_local_zero. + : Pass value to set_dec_flags. + : Remove. + +2018-11-30 Thomas Schwinge + + * gfortran.h (struct gfc_omp_clauses): Remove "wait". Adjust all + users. + + * openmp.c (gfc_match_omp_clauses): Support multiple OpenACC wait + clauses. + +2018-11-27 Martin Liska + + * decl.c (gfc_match_gcc_builtin): New function. + * gfortran.h (struct vect_builtin_tuple): New. + (gfc_adjust_builtins): Likewise. + * lang-specs.h (TARGET_F951_OPTIONS): New. + (F951_OPTIONS): Use it. + * lang.opt: Add new option -fpre-include. + * match.h (gfc_match_gcc_builtin): Declare new function. + * parse.c (decode_gcc_attribute): Handle builtin. + (parse_progunit): Call gfc_adjust_builtins. + * scanner.c (gfc_new_file): Load pre-included header file + when provided. + * trans-intrinsic.c (add_simd_flag_for_built_in): New. + (gfc_adjust_builtins): Likewise. + +2018-11-24 Paul Thomas + + PR fortran/88143 + * resolve.c (resolve_variable): Check for associate names with + NULL target. + +2018-11-23 Jakub Jelinek + + * lang.opt (fpad-source): New option. + * scanner.c (load_line): Don't pad fixed form lines if + !flag_pad_source. + * invoke.texi (-fno-pad-source): Document. + +2018-11-21 Jakub Jelinek + + * invoke.texi (-fdec-include): Document. + +2018-11-21 Jakub Jelinek + Mark Eggleston + + * lang.opt (fdec-include): New option. + * options.c (set_dec_flags): Set also flag_dec_include. + * scanner.c (include_line): Change return type from bool to int. + In fixed form allow spaces in between include keyword letters. + For -fdec-include, allow in fixed form 0 in column 6. With + -fdec-include return -1 if the parsed line is not full include + statement and it could be successfully completed on continuation + lines. + (include_stmt): New function. + (load_file): Adjust include_line caller. If it returns -1, keep + trying include_stmt until it stops returning -1 whenever adding + further line of input. + +2018-11-18 Thomas Koenig + + PR fortran/88073 + * frontend-passes.c (combine_array_constructor): Do not do + anything if in a WHERE statement. + +2018-11-18 Thomas Koenig + + PR fortran/70260 + * expr.c (gfc_check_assign): Reject assigning to an external + symbol. + (gfc_check_pointer_assign): Add suppress_type_test + argument. Insert line after if. A non-proc pointer can not point + to a constant. Only check types if suppress_type_test is false. + * gfortran.h (gfc_check_pointer_assign): Add optional + suppress_type_test argument. + * resolve.c (gfc_resolve_code): Move up gfc_check_pointer_assign + and give it the extra argument. + (resolve_fl_procedure): Set error on value for a function with + an inizializer. + +2018-11-15 David Malcolm + + PR other/19165 + * error.c (gfc_diagnostic_finalizer): Add diagnostic_t param. + +2018-11-13 David Malcolm + + * cpp.c: Replace "source_location" with "location_t". + * gfortran.h: Likewise. + +2018-11-08 Jakub Jelinek + + * trans-openmp.c (gfc_trans_omp_clauses): Use + OMP_CLAUSE_DEFAULTMAP_SET_KIND. + (gfc_trans_omp_atomic): Set OMP_ATOMIC_MEMORY_ORDER + rather than OMP_ATOMIC_SEQ_CST. + (gfc_trans_omp_taskgroup): Build OMP_TASKGROUP using + make_node instead of build1_loc. + * types.def (BT_FN_VOID_BOOL, BT_FN_VOID_SIZE_SIZE_PTR, + BT_FN_UINT_UINT_PTR_PTR, BT_FN_UINT_OMPFN_PTR_UINT_UINT, + BT_FN_BOOL_UINT_LONGPTR_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, + BT_FN_BOOL_UINT_ULLPTR_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR, + BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, + BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR): New. + (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): Formatting fix. + +2018-11-02 Thomas Koenig + + PR fortran/46020 + * decl.c (verify_bind_c_sym): Remove unnecessary space + in error message. + +2018-11-01 Thomas Koenig + + PR fortran/87782 + * frontend-passes.c (constant_string_length): If there is a + substring with a length which cannot be reduced to a constant, + return NULL. + +2018-11-01 Paul Thomas + + PR fortran/40196 + * dependency.c (are_identical_variables): Return false if the + inquiry refs are not the same. + (gfc_ref_needs_temporary_p): Break on an inquiry ref. + * dump_parse_tree.c (show_ref): Show the inquiry ref type. + * expr.c (gfc_free_ref_list): Break on an inquiry ref. + (gfc_copy_ref): Copy the inquiry ref types. + (find_inquiry_ref): New function. + (simplify_const_ref, simplify_ref_chain): Call it. Add new arg + to simplify_ref_chain. + (gfc_simplify_expr): Use the new arg in call to + simplify_ref_chain. + (gfc_get_full_arrayspec_from_expr, gfc_is_coarray): Break on + inquiry ref. + (gfc_traverse_expr): Return true for inquiry ref. + * frontend-passes.c (gfc_expr_walker): Break on inquiry ref. + * gfortran.h : Add enums and union member in gfc_ref to + implement inquiry refs. + * intrinsic.c : Fix white nois. + * match.c (gfc_match_assignment): A constant lavlue is an + error. + * module.c : Add DECL_MIO_NAME for inquiry_type and the mstring + for inquiry_types. + (mio_ref): Handle inquiry refs. + * primary.c (is_inquiry_ref): New function. + (gfc_match_varspec): Handle inquiry refs calling new function. + (gfc_variable_attr): Detect inquiry ref for disambiguation + with components. + (caf_variable_attr): Treat inquiry and substring refs in the + same way. + * resolve.c (find_array_spec): ditto. + (gfc_resolve_substring_charlen): If there is neither a charlen + ref not an inquiry ref, return. + (resolve_ref): Handle inqiry refs as appropriate. + (resolve_allocate_expr): Entities with an inquiry ref cannot be + allocated. + * simplify.c (simplify_bound, simplify_cobound): Punt on + inquiry refs. + * trans-array.c (get_array_ctor_var_strlen): Break on inquiry + ref. + *trans-expr.c (conv_inquiry): New function. + (gfc_conv_variable): Retain the last typespec to pass to + conv_inquiry on detecting an inquiry ref. + +2018-11-01 Thomas Koenig + + PR fortran/46020 + * decl.c (verify_bind_c_sym): Improve error message. + +2018-11-01 Thomas Koenig + + PR fortran/54613 + * gfortran.texi (File format of unformatted sequential files): + Replace random comma with period. + * intrinsic.texi (Intrinsic Procedures): Add FINDLOC to menu. + (FINDLOC): Document. + (MAXLOC): Add refrence to FINDLOC. + (MINLOC): Likewise. + +2018-10-31 Nathan Sidwell + + * cpp.c (gfc_cpp_init): Adjust cpp_force_token_locations call. + +2018-10-31 Martin Liska + + * trans-decl.c (struct module_hasher): Call htab_hash_string + for s->name and not for s. + +2018-10-30 Thomas Koenig + + PR fortran/85896 + * simplify.c (simplify_min_max): Do not convert the type of the + return expression. + +2017-10-28 Thomas Koenig + + PR fortran/54613 + * gfortran.h (gfc_isym_id): Add GFC_ISYM_FINDLOC. + (gfc_check_f): Add f6fl field. + (gfc_simplify_f): Add f6 field. + (gfc_resolve_f): Likewise. + (gfc_type_letter): Add optional logical_equas_int flag. + * check.c (intrinsic_type_check): New function. + (gfc_check_findloc): New function. + * intrinsics.c (gfc_type_letter): If logical_equals_int is + set, act accordingly. + (add_sym_5ml): Reformat comment. + (add_sym_6fl): New function. + (add_functions): Add findloc. + (check_arglist): Add sixth argument, handle it. + (resolve_intrinsic): Likewise. + (check_specific): Handle findloc. + * intrinsic.h (gfc_check_findloc): Add prototype. + (gfc_simplify_findloc): Likewise. + (gfc_resolve_findloc): Likewise. + (MAX_INTRINSIC_ARGS): Adjust. + * iresolve.c (gfc_resolve_findloc): New function. + * simplify.c (gfc_simplify_minmaxloc): Make static. + (simplify_findloc_to_scalar): New function. + (simplify_findloc_nodim): New function. + (simplify_findloc_to_array): New function. + (gfc_simplify_findloc): New function. + (gfc_conv_intrinsic_findloc): New function. + (gfc_conv_intrinsic_function): Handle GFC_ISYM_FINDLOC. + (gfc_is_intrinsic_libcall): Likewise. + +2018-10-27 Thomas Koenig + + PR fortran/86907 + * frontend-passes.c (check_locus_code): Add information that + warning about missing location information points to an + inconsisten internal state. + (check_locus_expr): Likewise. + +2018-10-25 Jakub Jelinek + + PR fortran/87725 + * openmp.c (gfc_match_omp_clauses): Parse simd, monotonic and + nonmonotonic modifiers regardless of if they have been parsed + already or if the opposite one has. Fix up check whether + comma after modifier should be parsed. + (resolve_omp_clauses): Diagnose schedule modifier restrictions. + +2018-10-23 Paul Thomas + + PR fortran/85603 + * frontend-passes.c (get_len_call): New function to generate a + call to intrinsic LEN. + (create_var): Use this to make length expressions for variable + rhs string lengths. + Clean up some white space issues. + +2018-10-21 Paul Thomas + + PR fortran/71880 + * trans-expr.c (gfc_trans_pointer_assignment): Set the string + length for array valued deferred length lhs. + +2018-10-18 Tobias Burnus + + PR fortran/87625 + * trans-array.c (gfc_is_reallocatable_lhs): Detect allocatable + polymorphic arrays. + +2018-10-18 Paul Thomas + + PR fortran/58618 + * trans-stmt.c (trans_associate_var): All strings that return + as pointer types can be assigned directly to the associate + name so remove 'attr' and the condition that uses it. + +2018-10-18 Paul Thomas + + PR fortran/58618 + * trans-decl.c (gfc_get_symbol_decl): Deal correctly with the + initialization with NULL() of a deferred length pointer. + +2018-10-17 Tobias Burnus + + PR fortran/87632 + * resolve.c (resolve_select_type): Use correct variable. + +2018-10-17 David Malcolm + + * Make-lang.in (selftest-fortran): New. + +2018-10-17 Paul Thomas + + PR fortran/56386 + PR fortran/58906 + PR fortran/77385 + PR fortran/80260 + PR fortran/82077 + * resolve.c (resolve_variable): Fix up expressions with array + associate names, where the parser did not detect that this is + array and there was no array part_ref in the expression. + +2018-10-16 Tobias Burnus + + PR fortran/67125 + * trans-array.c (gfc_array_init_size, gfc_array_allocate): + Rename argument e3_is_array_constr to e3_has_nodescriptor + and update comments. + * trans-stmt.c (gfc_trans_allocate): Also fix lower bound + to 1 for nonalloc/nonpointer func results/vars besides + array constructors. + +2018-10-16 Tobias Burnus + + PR fortran/87556 + * trans-stmt.c (form_team, change_team, sync_team): + Don't ignore argse.pre/argse.post. + +2018-10-15 Paul Thomas + Tobias Burnus + + PR fortran/87566 + * resolve.c (resolve_assoc_var): Add missing array spec for + class associate names. + (resolve_select_type): Handle case where last typed component + of the selector has a different type to the expression. + * trans-expr.c (gfc_find_and_cut_at_last_class_ref): Replace + call to gfc_expr_to_initialize with call to gfc_copy_expr. + (gfc_conv_class_to_class): Guard assignment to 'len' field + against case where zero constant is supplied. + +2018-10-12 Tobias Burnus + + PR fortran/87597 + * expr.c (gfc_simplify_expr): Avoid simplifying + the 'array' argument to lbound/ubound/lcobound/ + ucobound. + +2018-10-12 Tobias Burnus + + PR fortran/58787 + * decl.c (get_proc_name): Return with error before + creating sym_tree. + +2018-10-11 Tobias Burnus + + Revert: + 2018-10-09 Tobias Burnus + + PR fortran/83522 + * resolve.c (resolve_ref): Reject nonscalar + substring references. + +2018-10-09 David Malcolm + + * cpp.c (gfc_cpp_init_0): Update for renamings. + (cb_cpp_error): Rename to... + (cb_cpp_diagnostic): ...this, converting level and reason to + enums. + +2018-10-09 Tobias Burnus + + PR fortran/83522 + * resolve.c (resolve_ref): Reject nonscalar + substring references. + +2018-10-09 Paul Thomas + + PR fortran/87151 + * trans-array.c (gfc_get_array_span): Deal with deferred char + array components having a TYPE_MAX_VALUE of zero. + (gfc_array_init_size): Use the hidden string length component + to build the descriptor dtype. + (gfc_array_allocate): Remove the erroneous replacement of the + charlen backend decl with a temporary. + (gfc_conv_expr_descriptor): Use the ss_info string length in + the case of deferred character components. + (gfc_alloc_allocatable_for_assignment): Actually compare the + string lengths for deferred characters. Make sure that kind > 1 + is handled correctly. Set the span field of the descriptor. + * trans-intrinsic.c (gfc_conv_intrinsic_len): Remove the stupid + comment. + + PR fortran/80931 + * trans-array.c (gfc_array_allocate): Set the span field for + variable length character arrays. + +2018-10-08 Cesar Philippidis + + * expr.c (gfc_check_pointer_assign): Demote "Assignment to + contiguous pointer from non-contiguous target" to a warning. + +2018-10-08 Paul Thomas + + PR fortran/86372 + * trans-stmt.c (trans_associate_var): Character associate names + with variable string length do not have to be deferred length + for the string length to be set, if variable. + +2018-10-06 Thomas Koenig + + PR fortran/86111 + * gfortran.h (enum arith): Add ARITH_WRONGCONCAT. + * arith.h (gfc_arith_error): Issue error for ARITH_WRONGCONCAT. + (gfc_arith_concat): If the types of op1 and op2 are not + character of if their kinds do not match, issue ARITH_WRONGCONCAT. + +2018-10-06 Paul Thomas + + PR fortran/83999 + * resolve.c (resolve_fl_procedure): Include class functions in + the test that elemental function results be scalar. + +2018-10-06 Thomas Koenig + + PR fortran/84640 + * simplify.c (gfc_simplify_cshift): Extend size of hs_ex and ss_ex + by one. Set extents one past the array boundaries to zero to avoid + warning with instrumented compiler. + (gfc_simplify_eoshift): Likewise, only for ss_ex. + +2018-10-05 Paul Thomas + + PR fortran/87487 + * trans-decl.c (gfc_get_symbol_decl): Make sure that deferred + character length pointer initializer has the right type to fix + problem with deferred_character_24.f90 on big endian. + +2018-10-03 Jeff Law + + * trans-types.c (get_typenode_from_name): Moved into gcc/tree.c. + +2018-10-01 Paul Thomas + + PR fortran/65677 + * trans-expr.c (gfc_trans_assignment_1): Set the 'identical' + flag in the call to gfc_check_dependency. + +2018-09-30 Paul Thomas + + PR fortran/87359 + * trans-array.c (gfc_is_reallocatable_lhs): Correct the problem + introduced by r264358, which prevented components of associate + names from being reallocated on assignment. + +2018-09-30 Paul Thomas + + PR fortran/70752 + PR fortran/72709 + * trans-array.c (gfc_conv_scalarized_array_ref): If this is a + deferred type and the info->descriptor is present, use the + info->descriptor + (gfc_conv_array_ref): Is the se expr is a descriptor type, pass + it as 'decl' rather than the symbol backend_decl. + (gfc_array_allocate): If the se string_length is a component + reference, fix it and use it for the expression string length + if the latter is not a variable type. If it is a variable do + an assignment. Make use of component ref string lengths to set + the descriptor 'span'. + (gfc_conv_expr_descriptor): For pointer assignment, do not set + the span field if gfc_get_array_span returns zero. + * trans.c (get_array_span): If the upper bound a character type + is zero, use the descriptor span if available. + +2018-09-30 Paul Thomas + + PR fortran/70149 + * trans-decl.c (gfc_get_symbol_decl): A deferred character + length pointer that is initialized needs the string length to + be initialized as well. + +2018-09-29 Paul Thomas + + PR fortran/65677 + * trans-expr.c (gfc_trans_assignment_1): If there is dependency + fix the rse stringlength. + +2018-09-25 Martin Liska + + PR fortran/87394 + * decl.c (add_hidden_procptr_result): Simplify condition + as we are in branch witch 'case1 || case2'. + +2018-09-25 Martin Liska + + * trans.c (remove_suffix): Remove + unused function. + +2018-09-24 Thomas Koenig + + PR fortran/87397 + * gfc_conv_procedure_call: Do not add clobber on INTENT(OUT) + for variables in an associate statement. + +2018-09-24 Bernhard Reuther-Fischer + Cesar Philippidis + + * openmp.c (resolve_oacc_loop_blocks): + +2018-09-23 Thomas Koenig + + PR fortran/87397 + * gfc_conv_procedure_call: Do not add clobber on INTENT(OUT) + for variables having the dimension attribute. + +2018-09-23 Janne Blomqvist + + * trans-expr.c (gfc_caf_get_image_index): Do array index + calculations in gfc_array_index_type. + * trans-intrinsic.c (conv_intrinsic_event_query): Likewise. + * trans-stmt.c (gfc_trans_lock_unlock): Likewise. + (gfc_trans_event_post_wait): Likewise. + +2018-09-23 Thomas Koenig + + PR fortran/87395 + * gfc_conv_procedure_call: Reformat comments slightly. Do not add + clobber on INTENT(OUT) for saved variables. + +2018-09-22 Thomas Koenig + + PR fortran/41453 + * trans.h (gfc_conv_expr_reference): Add optional argument + add_clobber to prototype. + (gfc_conv_procedure_call): Set add_clobber argument to + gfc_conv_procedure_reference to true for scalar, INTENT(OUT), + non-pointer, non-allocatable, non-dummy variables whose type + is neither BT_CHARACTER, BT_DERIVED or BT_CLASS, but only if + the procedure is not elemental. + * trans-expr.c (gfc_conv_procedure_reference): Add clobber + statement before call if add_clobber is set. + +2018-09-22 Paul Thomas + + PR fortran/85603 + * trans-array.c (gfc_alloc_allocatable_for_assignment): Test + the charlen backend_decl before using the VAR_P macro. + +2018-09-21 Paul Thomas + + PR fortran/77325 + * trans-array.c (gfc_alloc_allocatable_for_assignment): If the + rhs has a charlen expression, convert that and use it. + * trans-expr.c (gfc_trans_assignment_1): The rse.pre for the + assignment of deferred character array vars to a realocatable + lhs should not be added to the exterior block since vector + indices, for example, generate temporaries indexed within the + loop. + +2018-09-21 Paul Thomas + + PR fortran/87359 + * trans-stmt.c (gfc_trans_allocate): Don't deallocate alloc + components if must_finalize is set for expr3. + +2018-09-21 Andrew Stubbs + Kwok Cheung Yeung + + * trans-expr.c (gfc_trans_structure_assign): Ensure that the first + argument of a call to _gfortran_caf_register is of size_type_node. + * trans-intrinsic.c (conv_intrinsic_event_query): Convert computed + index to a size_type_node type. + * trans-stmt.c (gfc_trans_event_post_wait): Likewise. + +2018-09-20 Allan Sandfeld Jensen + + * gfortranspec.c (lang_specific_driver): Handle -r like -nostdlib. + +2018-09-20 Janus Weil + + * gfortran.h (gfc_str_startswith): New macro. + * decl.c (variable_decl, gfc_match_end): Use it. + * iresolve.c (is_trig_resolved): Ditto. + * module.c (load_omp_udrs, read_module): Ditto. + * options.c (gfc_handle_runtime_check_option): Ditto. + * primary.c (match_arg_list_function): Ditto. + * trans-decl.c (gfc_get_symbol_decl): Ditto. + * trans-expr.c (gfc_conv_procedure_call): Ditto. + * interface.c (dtio_op): Replace strncmp by strcmp. + * resolve.c (resolve_actual_arglist, resolve_function): Ditto. + * trans-expr.c (conv_arglist_function): Ditto. + * trans-intrinsic.c (gfc_conv_ieee_arithmetic_function): Replace macro + STARTS_WITH by gfc_str_startswith. + +2018-09-20 Cesar Philippidis + + * dump-parse-tree.c (show_omp_clauses): Add missing omp list_types + and reorder the switch cases to match the enum in gfortran.h. + +2018-09-19 Paul Thomas + + PR fortran/84109 + * trans-expr.c (gfc_trans_assignment_1): The rse.pre for the + assignment of deferred character intrinsic elemental function + results to a realocatable lhs must not be added to the exterior + block if they are array valued but must go to the loop body. + +2018-09-18 Thomas Koenig + + PR fortran/29550 + * gfortran.h (gfc_expr): Add external_blas flag. + * frontend-passes.c (matrix_case): Add case A2TB2T. + (optimize_namespace): Handle flag_external_blas by + calling call_external_blas. + (get_array_inq_function): Add argument okind. If + it is nonzero, use it as the kind of argument + to be used. + (inline_limit_check): Remove m_case argument, add + limit argument instead. Remove assert about m_case. + Set the limit for inlining from the limit argument. + (matmul_lhs_realloc): Handle case A2TB2T. + (inline_matmul_assign): Handle inline limit for other cases with + two rank-two matrices. Remove no-op calls to inline_limit_check. + (call_external_blas): New function. + * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Do not add + argument to external BLAS if external_blas is already set. + +2018-09-18 Paul Thomas + + PR fortran/87239 + * trans-expr.c (gfc_trans_assignment_1): The rse.pre for the + assignment of deferred character elemental function results to + a realocatable lhs must not be added to the exterior block but + must go to the loop body. + +2018-09-18 Paul Thomas + + PR fortran/87336 + * trans-array.c (gfc_get_array_span): Try to get the element + length of incomplete types. Return NULL_TREE otherwise. + (gfc_conv_expr_descriptor): Only set the 'span' field if the + above does not return NULL_TREE. Set 'span' field if possible + for all new descriptors. + +2018-09-17 Paul Thomas + + PR fortran/64120 + * trans-decl.c (gfc_get_symbol_decl): Flag allocatable, scalar + characters with a variable length expression for deferred init. + (gfc_trans_deferred_vars): Perform the assignment for these + symbols by calling gfc_conv_string_length. + +2018-09-17 Paul Thomas + + PR fortran/85954 + * resolve.c (resolve_assoc_var): If the target expression is a + deferred charlen dummy and the associate name shares the + charlen, generate a new one. Make sure that new charlens are in + the namespace list so that they get cleaned up. + * trans-array.c (gfc_is_reallocatable_lhs): Associate names are + not reallocatable. + * trans-decl.c (gfc_get_symbol_decl): Put deferred character + length dummy and result arrays on the deferred initialization + list so that the variable length arrays can be correctly dealt + with. + * trans-expr.c (gfc_conv_string_length): Return if 'expr' is + NULL rather than ICEing.. + +2018-09-16 Janus Weil + + PR fortran/86484 + PR fortran/84543 + * match.c (gfc_match_assignment): For a polymorphic assignment, + make sure that the vtab for the rhs type is generated. + +2018-09-16 Thomas Koenig + + PR fortran/37802 + * frontend-passes.c (B_ERROR): New macro for matmul bounds + checking error messages. + (C_ERROR): Likewise. + (inline_matmul_assign): Reorganize bounds checking, use B_ERROR + and C_ERROR macros. + +2018-09-13 Bernd Edlinger + + * trans-array.c (gfc_conv_array_initializer): Remove excess precision + from overlength string initializers. + +2018-09-12 Paul Thomas + + PR fortran/87284 + * trans-expr.c (gfc_trans_class_init_assign): Access to + to array elements of the dynamic type requires that the array + reference be added to the class expression and not the _data + component, unlike scalar expressions. + +2018-09-11 Janus Weil + + PR fortran/87172 + * resolve.c (resolve_fl_derived): If a type has the 'use_assoc' + attribute, then it was declared in another module, so there should be + no error that it has not been declared. + +2018-09-11 Paul Thomas + + PR fortran/87277 + * expr.c (is_subref_array): Add the check of dimensionality for + class, dummy, pointer arrays. + +2018-09-11 Janus Weil + + PR fortran/86830 + * expr.c (gfc_is_simply_contiguous): Handle type-bound procedure calls + with non-polymorphic objects. + +2018-09-10 Janus Weil + + PR fortran/85395 + * decl.c (match_binding_attributes): Use correct default accessibility + for procedure pointer components. + +2018-09-03 Jerry DeLisle + + * simplify.c (gfc_simplify_modulo): Re-arrange code to test whether + 'P' is zero and issue an error if it is. + +2018-08-31 Paul Thomas + + PR fortran/86328 + PR fortran/86760 + * trans-array.c (gfc_conv_scalarized_array_ref): Do not fix + info->descriptor but pass it directly to gfc_build_array_ref. + (gfc_conv_array_ref): Likewise for se->expr. + * trans.c (gfc_build_array_ref): If 'decl' is a COMPONENT_REF + obtain the span field directly from it. + +2017-08-28 Paul Thomas + + PR fortran/80477 + * trans-expr.c (gfc_conv_procedure_call): Allocatable class + scalar results being passed to a derived type formal argument + are finalized if possible. Otherwise, rely on existing code for + deallocation. Make the deallocation of allocatable result + components conditional on finalization not taking place. Make + the freeing of data components after finalization conditional + on the data being NULL. + (gfc_trans_arrayfunc_assign): Change the gcc_assert to a + condition to return NULL_TREE. + (gfc_trans_assignment_1): If the assignment is class to class + and the rhs expression must be finalized but the assignment + is not marked as a polymorphic assignment, use the vptr copy + function instead of gfc_trans_scalar_assign. + + PR fortran/86481 + * trans-expr.c (gfc_conv_expr_reference): Do not add the post + block to the pre block if the expression is to be finalized. + * trans-stmt.c (gfc_trans_allocate): If the expr3 must be + finalized, load the post block into a finalization block and + add it right at the end of the allocation block. + +2018-08-27 David Malcolm + + PR 87091 + * error.c (gfc_format_decoder): Update for conversion of + show_caret_p to a tri-state. + +2018-08-25 Janus Weil + + PR fortran/86545 + * resolve.c (resolve_transfer): Correctly determine typespec for + generic function calls, in order to throw a proper error. + +2018-08-24 Thomas Koenig + + PR fortran/86837 + * frontend-passes.c (var_in_expr_callback): New function. + (var_in_expr): New function. + (traverse_io_block): Use var_in_expr instead of + gfc_check_dependency for checking if the variable depends on the + previous interators. + +2018-08-23 Janne Blomqvist + + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Delete + HONOR_SIGNED_ZEROS checks. + +2018-08-23 Paul Thomas + + PR fortran/86863 + * resolve.c (resolve_typebound_call): If the TBP is not marked + as a subroutine, check the specific symbol. + +2018-08-22 Thomas Koenig + + * gfortran.texi: Mention that asynchronous I/O does + not work on systems which lack condition variables, such + as AIX. + +2018-08-22 Janus Weil + + PR fortran/86935 + * match.c (gfc_match_associate): Improve diagnostics for the ASSOCIATE + statement. + +2018-08-22 Andrew Benson + + * module.c (load_generic_interfaces): Move call to find_symbol() + so that only occurs if actually needed. + +2018-08-22 Janus Weil + + PR fortran/86888 + * decl.c (gfc_match_data_decl): Allow allocatable components of + indirectly recursive type. + * resolve.c (resolve_component): Remove two errors messages ... + (resolve_fl_derived): ... and replace them by a new one. + +2018-08-21 Janne Blomqvist + + * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Use + MAX_EXPR/MIN_EXPR unconditionally for real arguments. + * gfortran.texi (Compiler Characteristics): Document MAX/MIN + behavior wrt NaN. + +2018-08-21 Nicolas Koenig + Thomas Koenig + + PR fortran/25829 + * gfortran.texi: Add description of asynchronous I/O. + * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables + as volatile. + * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to + st_wait_async and change argument spec from ".X" to ".w". + (gfc_trans_wait): Pass ID argument via reference. + +2018-08-16 Nathan Sidwell + + * cpp.c (dump_macro): Use cpp_user_macro_p. + +2018-08-14 Janus Weil + + PR fortran/86116 + * interface.c (compare_type): Remove a CLASS/TYPE check. + (compare_type_characteristics): New function that behaves like the old + 'compare_type'. + (gfc_check_dummy_characteristics, gfc_check_result_characteristics): + Call 'compare_type_characteristics' instead of 'compare_type'. + +2018-08-12 Paul Thomas + + PR fortran/66679 + * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Class array + elements are returned as references to the data element. Get + the class expression by stripping back the references. Use this + for the element size. + +2018-08-12 Paul Thomas + + PR fortran/86906 + * resolve.c (resolve_fl_variable_derived): Check if the derived + type is use associated before checking for the host association + error. + +2018-08-10 Janus Weil + + PR fortran/57160 + * invoke.texi (frontend-optimize): Mention short-circuiting. + * options.c (gfc_post_options): Disable -ffrontend-optimize with -Og. + * resolve.c (resolve_operator): Warn about short-circuiting only with + -ffrontend-optimize. + * trans-expr.c (gfc_conv_expr_op): Use short-circuiting operators only + with -ffrontend-optimize. Without that flag, make sure that both + operands are evaluated. + +2018-08-08 Nathan Sidwell + + * cpp.c (cb_file_change): Use linemap_included_from. + +2018-08-07 Cesar Philippidis + + * trans-stmt.h: Remove stale reference to trans-openacc.c. + +2018-08-04 Janus Weil + + PR fortran/45521 + * interface.c (gfc_compare_interfaces): Apply additional + distinguishability criteria of F08 to operator interfaces. + +2018-07-31 Andre Vieira + + Revert 'AsyncI/O patch committed' + 2018-07-25 Nicolas Koenig + Thomas Koenig + + PR fortran/25829 + * gfortran.texi: Add description of asynchronous I/O. + * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables + as volatile. + * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to + st_wait_async and change argument spec from ".X" to ".w". + (gfc_trans_wait): Pass ID argument via reference. + +2018-07-25 Nicolas Koenig + Thomas Koenig + + PR fortran/25829 + * gfortran.texi: Add description of asynchronous I/O. + * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables + as volatile. + * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to + st_wait_async and change argument spec from ".X" to ".w". + (gfc_trans_wait): Pass ID argument via reference. + +2018-07-20 Martin Sebor + + PR middle-end/82063 + * gfortran.h (gfc_handle_option): Change function argument + to HOST_WIDE_INT. + * options.c (gfc_handle_option): Same. + +2018-07-20 Andrew Benson + + * gfortran.h (gfc_symbol): Add pointer to next derived type. + (gfc_dt_list, gfc_get_dt_list): Remove. + (gfc_namespace): Replace gfc_dt_list with gfc_symbol. + * parse.c (resolve_all_program_units): Replace gfc_free_dt_list() with + simple nullification of gfc_derived_types. + * resolve.c (resolve_global_procedure): Replace gfc_dt_list with + gfc_symbol. + (add_dt_to_dt_list): Change derived type linked list insertion to + utilize dt_next pointers in gfc_symbol. + * symbol.c (gfc_new_symbol, gfc_free_dt_list, gfc_symbol_done2) + (get_iso_c_binding_dt, generate_isocbinding_symbol): Remove + gfc_free_dt_list as gfc_dt_list is obsoleted. Change derived type + linked list search/insertion to utilize dt_next pointers in gfc_symbol. + * trans-types.c (gfc_get_derived_type): Change derived type linked + list search to utilize dt_next pointers in gfc_symbol. + +2018-07-19 Kyrylo Tkachov + + * trans-intrinsic.c: (gfc_conv_intrinsic_minmax): Emit MIN_MAX_EXPR + or IFN_FMIN/FMAX sequence to calculate the min/max when possible. + +2018-07-18 Janus Weil + Thomas Koenig + + PR fortran/85599 + * dump-parse-tree.c (show_attr): Add handling of implicit_pure. + * frontend-passes.c (do_warn_function_elimination): Do not warn for + pure functions. + * gfortran.h: Add prototypes for gfc_pure_function and + gfc_implicit_pure_function. + * gfortran.texi: Add chapter on evaluation of logical expressions. + * invoke.texi: Mention that -Wfunction-elimination is implied + by -Wextra. + * lang.opt: Make -Wextra imply -Wfunction-elimination. + * resolve.c (pure_function): Rename to gfc_pure_function. + (gfc_implicit_pure_function): New function. + (check_pure_function): Use it here. + (impure_function_callback): New function. + (resolve_operator): Call it via gfc_expr_walker. + +2018-07-16 Fritz Reese + + PR fortran/83184 + * decl.c (match_old_style_init): Initialize locus of variable expr when + creating a data variable. + (match_clist_expr): Verify array is explicit shape/size before + attempting to allocate constant array constructor. + +2018-07-16 Fritz Reese + + PR fortran/86417 + * module.c (mio_component): Set component->loc when loading from module. + +2018-07-10 Jakub Jelinek + + PR fortran/86421 + * module.c (omp_declare_simd_clauses): Add LINEAR with _REF, _VAL and + _UVAL suffixes. + (mio_omp_declare_simd): Save and restore ref, val and uval modifiers + on linear clauses. Initialize n->where to gfc_current_locus. + +2018-07-05 Paul Thomas + + PR fortran/86408 + * resolve.c.c (resolve_contained_fntype): Reference to C418 is + in F2008 and not F2003. + (resolve_function): Ditto in error message. Also, exclude + deferred character length results from the error. + +2018-07-05 Fritz Reese + + PR fortran/83183 + PR fortran/86325 + * expr.c (class_allocatable, class_pointer, comp_allocatable, + comp_pointer): New helpers. + (component_initializer): Generate EXPR_NULL for allocatable or pointer + components. Do not generate initializers for components within BT_CLASS. + Do not assign to comp->initializer. + (gfc_generate_initializer): Use new helpers; move code to generate + EXPR_NULL for class allocatable components into component_initializer(). + +2018-07-04 Jerry DeLisle + + PR fortran/82009 + * trans-decl.c (gfc_process_block_locals): Delete assert and set + saved_local_decls = NULL_TREE. + +2018-07-02 Richard Biener + + PR lto/86321 + * trans-types.c (gfc_get_array_type_bounds): Unshare TYPE_FIELDs + for the distinct type copy. + +2018-07-02 Paul Thomas + + PR fortran/82969 + PR fortran/86242 + * trans-array.c (structure_alloc_comps): Do not explicitly copy + procedure pointer components. + +2018-07-02 Paul Thomas + + PR fortran/45305 + * expr.c : Add a prototype for scalarize_intrinsic_call. + (gfc_simplify_expr): Use scalarize_intrinsic_call for elemental + intrinsic function calls. + (scalarize_intrinsic_call): Add 'init_flag' argument. Check if + the expression or any of the actual argument expressions are + NULL. Before calling gfc_check_init_expr, check 'init_flag'. + Only simplify the scalarized expressions if there are no errors + on the stack. + (gfc_check_init_expr): Set 'init_flag' true in the call to + scalarize_intrinsic_call. + +2018-06-28 Fritz Reese + + PR fortran/82865 + * decl.c (gfc_match_type): Refactor and check for PDT declarations. + +2018-06-28 Martin Liska + + * gfortranspec.c: Include opt-suggestions.h. + +2018-06-25 Fritz Reese + + PR fortran/82972 + PR fortran/83088 + PR fortran/85851 + * expr.c (component_initializer): Assign init expr to c->initializer. + (generate_isocbinding_initializer): New. + (gfc_generate_initializer): Call generate_isocbinding_initializer to + generate initializers for c_ptr and c_funptr with -finit-derived. + +2018-06-23 Jerry DeLisle + + PR fortran/85983 + * interface.c (check_dtio_interface1): Delete assert. + +2018-06-22 Paul Thomas + Rainer Orth + + PR fortran/86281 + * resolve.c (resolve_contained_fntype): Check for the charlen + before testing the length. + +2018-06-21 Paul Thomas + + PR fortran/49630 + * resolve.c (resolve_contained_fntype): Change standard ref. + from F95 to F2003: C418. Correct a spelling error in a comment. + It is an error for an abstract interface to have an assumed + character length result. + * trans-expr.c (gfc_conv_procedure_call): Likewise change the + standard reference. + +2018-06-21 Paul Thomas + + PR fortran/83118 + * resolve.c (resolve_ordinary_assign): Force the creation of a + vtable for assignment of non-polymorphic expressions to an + unlimited polymorphic object. + * trans-array.c (gfc_alloc_allocatable_for_assignment): Use the + size of the rhs type for such assignments. Set the dtype, _len + and vptrs appropriately. + * trans-expr.c (gfc_trans_assignment): Force the use of the + _copy function for these assignments. + +2018-06-20 Chung-Lin Tang + Thomas Schwinge + Cesar Philippidis + + * gfortran.h (gfc_omp_clauses): Add unsigned if_present, finalize + bitfields. + * openmp.c (enum omp_mask2): Remove OMP_CLAUSE_PRESENT_OR_*. Add + OMP_CLAUSE_{IF_PRESENT,FINALIZE}. + (gfc_match_omp_clauses): Update handling of copy, copyin, copyout, + create, deviceptr, present_of_*. Add support for finalize and + if_present. + (OACC_PARALLEL_CLAUSES): Remove PRESENT_OR_* clauses. + (OACC_KERNELS_CLAUSES): Likewise. + (OACC_DATA_CLAUSES): Likewise. + (OACC_DECLARE_CLAUSES): Likewise. + (OACC_UPDATE_CLAUSES): Add IF_PRESENT clause. + (OACC_ENTER_DATA_CLAUSES): Remove PRESENT_OR_* clauses. + (OACC_EXIT_DATA_CLAUSES): Add FINALIZE clause. + (gfc_match_oacc_declare): Update to OpenACC 2.5 semantics. + * trans-openmp.c (gfc_trans_omp_clauses): Add support for IF_PRESENT + and FINALIZE. + +2018-06-18 Eric Botcazou + + * trans-decl.c (gfc_get_fake_result_decl): Revert latest change. + +2018-06-17 Eric Botcazou + + * trans-decl.c (nonlocal_dummy_decl_pset): Delete. + (nonlocal_dummy_decls): Likewise. + (gfc_nonlocal_dummy_array_decl): Likewise. + (gfc_get_symbol_decl): Do not call gfc_nonlocal_dummy_array_decl. + (gfc_get_fake_result_decl): Do not generate a new DECL if simply + reusing the result of a recursive call. + (gfc_generate_function_code): Do not create, insert and destroy + nonlocal_dummy_decls. + +2018-06-13 Steven G. Kargl + + PR fortran/86110 + * array.c (gfc_resolve_character_array_constructor): Avoid NULL + pointer dereference. + +2018-06-13 Cesar Philippidis + + PR fortran/85703 + * parse.c (decode_oacc_directive): Set gfc_matching_function + to false. + (decode_omp_directive): Likewise. + +2018-06-13 Cesar Philippidis + + PR fortran/85702 + * openmp.c (gfc_match_oacc_wait): Use %C to report error location. + +2018-06-12 David Malcolm + + PR other/69968 + * misc.c (gfc_closest_fuzzy_match): Update for renaming of + levenshtein_distance to get_edit_distance. + +2018-06-12 Steven G. Kargl + + PR fortran/44491 + * expr.c (gfc_check_assign): Select non-NULL locus. + +2018-06-11 Janus Weil + + PR fortran/45521 + * interface.c (compare_ptr_alloc): New function. + (generic_correspondence): Call it. + +2018-06-10 Thomas Koenig + + * gfortran.h (gfc_expr): Add no_bounds_check field. + * frontend-passes.c (get_array_inq_function): Set no_bounds_check + on function and function argument. + (inline_matmul_assign): Set no_bounds_check on zero expression + and on lhs of zero expression. + Also handle A1B2 case if realloc on assigment is active. + * trans-array.c (gfc_conv_array_ref): Don't do range checking + if expr has no_bounds_check set. + (gfc_conv_expr_descriptor): Set no_bounds_check on ss if expr + has it set. + * trans-expr.c (gfc_trans_assignment_1): Set no_bounds_check + on lss and lss if the corresponding expressions have it set. + +2018-06-10 Dominique d'Humieres + + PR fortran/79854 + * trans-const.c: Remove include "diagnostic-core.h". + (gfc_conv_constant_to_tree): Replace fatal_error with gcc_unreachable. + +2018-06-10 Janus Weil + + PR fortran/85088 + * decl.c (match_attr_spec): Synchronize the DECL_* enum values with the + INTENT_* values from the enum 'sym_intent'. Call 'match_intent_spec' + and remove a TODO note. + * gfortran.h: Add a comment to sym_intent. + +2018-06-09 Steven G. Kargl + + PR fortran/38351 + * resolve.c (resolve_operator): Provide better error message for + derived type entity used in an binary intrinsic numeric operator. + +2018-06-09 Steven G. Kargl + + PR fortran/85138 + PR fortran/85996 + PR fortran/86051 + * decl.c (gfc_match_char_spec): Use private namespace in attempt to + reduce a charlen to a constant. + +2018-06-09 Steven G. Kargl + + PR fortran/78278 + * data.c (gfc_assign_data_value): Re-arrange code to allow for + an error for double initialization of CHARACTER entities. + +2018-06-09 Steven G. Kargl + + PR fortran/63514 + * symbol.c (gfc_add_volatile): Enforce F2008:C1282 and F2018:C1588. + +2018-06-08 Thomas Koenig + + PR fortran/85631 + * trans.h (gfc_ss): Add field no_bounds_check. + * trans-array.c (gfc_conv_ss_startstride): If flag_realloc_lhs and + ss->no_bounds_check is set, do not use runtime checks. + * trans-expr.c (gfc_trans_assignment_1): Set lss->no_bounds_check + for reallocatable lhs. + +2018-06-08 Steven G. Kargl + + PR fortran/86059 + * array.c (match_array_cons_element): NULL() cannot be in an + array constructor. + +2018-06-08 Steven G. Kargl + + PR fortran/78571 + * data.c (create_character_initializer): Return early if type is + incompatible with CHARACTER. + +2018-06-07 Steven G. Kargl + + PR fortran/86045 + * simplify.c (gfc_simplify_mod): Re-arrange code to test whether + 'P' is zero and issue an error if it is. + +2018-06-06 Thomas Koenig + + PR fortran/85641 + * frontend-passes.c (is_fe_temp): Add prototype. + (realloc_string_callback): Early return for frontend-generated + temporary. + +2018-06-05 Cesar Philippidis + + PR fortran/85701 + + * openmp.c (gfc_resolve_oacc_declare): Error on functions and + subroutine data clause arguments. + +2018-06-04 Steven G. Kargl + + PR fortran/85981 + * resolve.c (resolve_allocate_deallocate): Check errmsg is default + character kind. + +2018-06-03 Paul Thomas + + PR fortran/36497 + * decl.c (variable_decl): Use gfc_add_type for cray pointees. + +2018-06-01 Steven G. Kargl + + PR fortran/63570 + * check.c (gfc_check_random_init): New function. Check arguments of + RANDOM_INIT. + * gfortran.h (GFC_ISYM_RANDOM_INIT): New enum token. + * intrinsic.c (add_subroutines): Add RANDOM_INIT to list of + subroutines. + (gfc_check_intrinsic_standard): Introduce Fortran 2018 check. + * intrinsic.h: Add prototypes for gfc_check_random_init and + gfc_resolve_random_init + * intrinsic.texi: Document new intrinsic subprogram. + * iresolve.c (gfc_resolve_random_init): Resolve routine name. + * trans-decl.c: Declare gfor_fndecl_random_init + * trans-intrinsic.c (conv_intrinsic_random_init): New function. + Translate call to RANDOM_INIT. + (gfc_conv_intrinsic_subroutine): Call it. + * trans.h: Declare gfor_fndecl_random_init + +2018-05-27 Steven G. Kargl + + * decl.c (match_data_constant): Fortran 2018 allows pointer + initialization in a data statement. + +2018-05-25 Janus Weil + + PR fortran/85839 + * match.c (gfc_match_block_data): Call gfc_notify_std to warn about + an obsolescent feature in Fortran 2018. + (gfc_match_equivalence): Ditto. + * resolve.c (resolve_common_blocks): Ditto. + (gfc_resolve_forall): Ditto. + * symbol.c (gfc_define_st_label): Ditto. + +2018-05-24 Steven G. Kargl + + PR fortran/85543 + * resolve.c (update_current_proc_array_outer_dependency): Avoid NULL + pointer dereference. + +2018-05-24 Steven G. Kargl + + PR fortran/85780 + * resolve.c (resolve_fl_procedure): Avoid NULL dereference. + +2018-05-24 Steven G. Kargl + + PR fortran/85779 + * decl.c (gfc_match_derived_decl): Fix NULL point dereference. + +2018-05-24 Steven G. Kargl + + PR fortran/85895 + * resolve.c (resolve_sync): Resolve expression before checking for + an error. + +2018-05-22 Janus Weil + + PR fortran/85841 + * libgfortran.h: Remove the macros GFC_STD_F2008_TS and + GFC_STD_OPT_F08TS. + * error.c (notify_std_msg): Remove GFC_STD_F2008_TS. + * options.c (set_default_std_flags): Ditto. + (gfc_handle_option): Make -std=f2008ts an alias for -std=f2018. + * array.c (gfc_match_array_spec): Replace GFC_STD_F2008_TS by + GFC_STD_F2018. + * check.c (gfc_check_atomic, gfc_check_event_query, + gfc_check_c_f_pointer, gfc_check_c_f_procpointer, gfc_check_c_funloc, + gfc_check_c_loc, gfc_check_num_images, gfc_check_this_image): Ditto. + * decl.c (gfc_verify_c_interop_param, gfc_match_decl_type_spec): Ditto. + * intrinsic.c (add_functions, add_subroutines, + gfc_check_intrinsic_standard): Ditto. + * iso-c-binding.def: Ditto. + * iso-fortran-env.def: Ditto. + * match.c (gfc_match_event_post, gfc_match_event_wait, + gfc_match_fail_image, gfc_match_form_team, gfc_match_change_team, + gfc_match_end_team, gfc_match_sync_team): Ditto. + * gfortran.texi: Remove mention of -std=f2008ts. + Move TSs into F2018 section. + * invoke.texi: Update documentation of -std=f2008ts. + +2018-05-21 Janus Weil + + PR fortran/85841 + * libgfortran.h: New macros GFC_STD_OPT_*. + * error.c (notify_std_msg): New function. + (gfc_notify_std): Adjust such that it can handle combinations of + GFC_STD_* flags in the 'std' argument, not just a single one. + * match.c (match_arithmetic_if, gfc_match_if): Reject arithmetic if + in Fortran 2018. + (gfc_match_stopcode): Use GFC_STD_OPT_* macros. + * options.c (set_default_std_flags): Warn for F2018 deleted features + by default. + (gfc_handle_option): F2018 deleted features are allowed in earlier + standards. + * symbol.c (gfc_define_st_label, gfc_reference_st_label): Reject + nonblock do constructs in Fortran 2018. + +2018-05-20 Paul Thomas + + PR fortran/80657 + * resolve.c (flag_fn_result_spec): Use the 'sym' argument to + test for self refs to the function result in the character len + expression. If a self reference is found, emit an error and + return true. + (resolve_fntype): Use the function symbol in the calls to the + above. + +2018-05-20 Paul Thomas + + PR fortran/49636 + * trans-array.c (gfc_get_array_span): Renamed from + 'get_array_span'. + (gfc_conv_expr_descriptor): Change references to above. + * trans-array.h : Add prototype for 'gfc_get_array_span'. + * trans-intrinsic.c (gfc_conv_associated): Add pre and post + blocks for 'arg1'. + * trans-stmt.c (trans_associate_var): If the associate name is + a subref array pointer, use gfc_get_array_span for the span. + +2018-05-20 Paul Thomas + + PR fortran/82275 + * match.c (gfc_match_type_spec): Go through the array ref and + decrement 'rank' for every dimension that is an element. + +2018-05-19 Paul Thomas + + PR fortran/82923 + PR fortran/66694 + PR fortran/82617 + * trans-array.c (gfc_alloc_allocatable_for_assignment): Set the + charlen backend_decl of the rhs expr to ss->info->string_length + so that the value in the current scope is used. + +2018-05-13 Steven G. Kargl + + PR fortran/63529 + * gfortran.texi: Clarify documentation for Cray pointer and + assumed-sized array. + +2018-05-13 Paul Thomas + + PR fortran/85742 + * trans-types.c (gfc_get_dtype_rank_type): Reorder evaluation + of 'size'. If the element type is a pointer use the size of the + TREE_TYPE of the type, unless it is VOID_TYPE. In this latter + case, set the size to zero. + +2018-05-13 Steven G. Kargl + + * gfortran.h: Remove prototype. + * symbol.c (gfc_new_undo_checkpoint): Remove unused function. + +2018-05-11 Steven G. Kargl + + PR fortran/85542 + * expr.c (check_inquiry): Avoid NULL pointer dereference. + +2018-05-10 Steven G. Kargl + + PR fortran/85687 + * check.c (gfc_check_rank): Check that the argument is a data object. + +2018-05-10 Steven G. Kargl + + PR fortran/85521 + * array.c (gfc_resolve_character_array_constructor): Substrings + with upper bound smaller than lower bound are zero length strings. + +2018-05-10 Steven G. Kargl + + PR fortran/70870 + * data.c (gfc_assign_data_value): Check that a data object does + not also have default initialization. + +2018-05-10 Marek Polacek + + PR fortran/85735 + * options.c (gfc_post_options): Set main_input_filename. + +2018-05-10 Thomas Koenig + + PR fortran/54613 + * intrinsic.texi: Document BACK for MINLOC and MAXLOC. + +2018-05-10 Paul Thomas + + PR fortran/68846 + PR fortran/70864 + * resolve.c (get_temp_from_expr): The temporary must not have + dummy or intent attributes. + +2018-05-08 Thomas Koenig + + PR fortran/54613 + * check.c (gfc_check_minmaxloc): Remove error for BACK not being + implemented. Use gfc_logical_4_kind for BACK. + * simplify.c (min_max_choose): Add optional argument back_val. + Handle it. + (simplify_minmaxloc_to_scalar): Add argument back_val. Pass + back_val to min_max_choose. + (simplify_minmaxloc_to_nodim): Likewise. + (simplify_minmaxloc_to_array): Likewise. + (gfc_simplify_minmaxloc): Add argument back, handle it. + Pass back_val to specific simplification functions. + (gfc_simplify_minloc): Remove ATTRIBUTE_UNUSED from argument back, + pass it on to gfc_simplify_minmaxloc. + (gfc_simplify_maxloc): Likewise. + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Adjust + comment. If BACK is true, use greater or equal (or lesser or + equal) insteal of greater (or lesser). Mark the condition of + having found a value which exceeds the limit as unlikely. + +2018-05-07 Jeff Law + + * scanner.c (preprocessor_line): Call linemap_add after a line + directive that changes the current filename. + +2018-05-06 Andre Vehreschild + + PR fortran/85507 + * dependency.c (gfc_dep_resolver): Revert looking at coarray dimension + introduced by r259385. + * trans-intrinsic.c (conv_caf_send): Always report a dependency for + same variables in coarray assignments. + +2018-05-02 Tom de Vries + + PR libgomp/82428 + * f95-lang.c (DEF_GOACC_BUILTIN_ONLY): Define. + +2018-04-24 Steven G. Kargl + + PR fortran/85520 + * decl.c (gfc_match_char_spec): Check for negative length and set to 0. + +2018-04-14 Andre Vehreschild + + PR fortran/81773 + PR fortran/83606 + * dependency.c (gfc_dep_resolver): Coarray indexes are to be ignored + during dependency computation. They define no data dependency. + * trans-array.c (conv_array_index_offset): The stride can not be set + here, prevent fail. + * trans-intrinsic.c (conv_caf_send): Add creation of temporary array + for caf_get's result and copying to the array with vectorial + indexing. + +2018-04-14 Thomas Koenig + + PR fortran/85387 + * frontend-passes.c (traverse_io_block): Check for start, end or + stride being defined by an outer implied DO loop. + +2018-04-12 Thomas Koenig + + PR fortran/83064 + PR testsuite/85346 + * trans-stmt.c (gfc_trans_forall_loop): Use annot_expr_ivdep_kind + for annotation and remove dependence on -ftree-parallelize-loops. + +2018-04-10 Jakub Jelinek + + PR fortran/85313 + * openmp.c (resolve_omp_do): Remove bogus if (j < i) break;. + (resolve_oacc_nested_loops): Likewise. Formatting fix. + +2018-04-09 Thomas Koenig + + PR fortran/83064 + * trans-stmt.c (gfc_trans_forall_loop): Remove annotation for + parallell processing of DO CONCURRENT -ftree-parallelize-loops + is set. + +2018-04-09 Thomas Koenig + + PR fortran/51260 + * resolve.c (resolve_variable): Simplify cases where access to a + parameter array results in a single constant. + +2018-04-02 Thomas Koenig + + PR fortran/85102 + * decl.c (variable_decl): If upper or lower bounds simplify + to a constant, use that. + +2018-03-30 Paul Thomas + + PR fortran/84931 + * simplify.c (gfc_convert_constant): Handle case of array + constructors within an array that has no iterator and improve + the conciseness of this section of code. + +2017-03-30 Thomas Koenig + + PR fortran/85111 + * array.c (gfc_resolve_character_array_constructor): Early + exit for zero-size arrays. + * simplify.c (simplify_transformation_to_array): Exit early + if the result size is zero. + (simplify_minmaxloc_to_array): Likewise. + +2018-03-28 Mikael Morin + + PR fortran/69497 + * symbol.c (gfc_symbol_done_2): Start freeing namespaces + from the root. + (gfc_free_namespace): Restore assert (revert r258839). + +2018-03-28 Jakub Jelinek + + * gfortran.h (gfc_dt): Rename default_exp field to dec_ext. + * ioparm.def (IOPARM_dt_default_exp): Rename to ... + (IOPARM_dt_dec_ext): ... this. + * trans-io.c (build_dt): Adjust for default_exp renaming to + dec_ext and IOPARM_dt_default_exp renaming to IOPARM_dt_dec_ext. + * io.c (match_io): Likewise. + +2018-03-27 Thomas Koenig + + PR fortran/85084 + * frontend-passes.c (gfc_run_passes): Do not run front-end + optimizations if a previous error occurred. + +2018-03-27 Thomas Koenig + Harald Anlauf + + PR fortran/85083 + * primary.c (gfc_convert_to_structure_constructor): Check + conformance of argument types in structure constructor. + +2018-03-26 Thomas Koenig + + PR fortran/66709 + * io.c: Include constructor.h. + (resolve_tag_format): For a constant character array, concatenate + into a single character expression. + +2018-03-25 Seth Johnson + Dominique d'Humieres + + PR fortran/84924 + * check.c (gfc_check_c_f_pointer): Allow scalar noninteroperable + scalar derived type with -std=f2003 and -std=f2008. + +2018-03-24 Jerry DeLisle + Dominique d'Humieres + + PR fortran/69497 + * symbol.c (gfc_free_namespace): Delete the assert and only if + refs count is equals zero, free the namespace. Otherwise, + something is halfway and other errors will resound. + +2018-03-24 Thomas Koenig + + PR fortran/70068 + * expr.c (find_substring_ref): Change types of start, end + and length variables to gfc_charlen_t. Set length to zero + for empty substring. + +2018-03-24 Steven G. Kargl + + PR fortran/42651 + * decl.c (check_function_name): Improved error message + (gfc_match_volatile, gfc_match_asynchronous) Use check_function_name. + +2018-03-22 Steven G. Kargl + + PR fortran/84922 + * decl.c (get_proc_name): If the MODULE prefix appears in interface + body, then it must appear on the contained subroutine or function. + While here, fix nearby mis-indented code. + +2018-03-21 Thomas Koenig + Harald Anlauf + + PR fortran/84957 + * trans-types.c (gfc_sym_type): Do not dereference NULL pointer. + +2018-03-21 Janne Blomqvist + + PR fortran/84615 + * trans-expr.c (gfc_conv_procedure_call): Convert charlen to + gfc_charlen_type_node when calling procedure. + +2018-03-20 Steven G. Kargl + + PR fortran/85001 + * interface.c (symbol_rank): Remove bogus null pointer check that + crept in when translating a ternary operator into an if-else + constructor. + +2018-03-19 Thomas Koenig + + PR fortran/84931 + * simplify.c (gfc_convert_constant): Correctly handle iterators + for type conversion. + +2018-03-18 Steven G. Kargl + + PR fortran/77414 + * decl.c (get_proc_name): Check for a subroutine re-defined in + the contain portion of a subroutine. Change language of existing + error message to better describe the issue. While here fix whitespace + issues. + +2018-03-18 Steven G. Kargl + + PR fortran/65453 + * decl.c (get_proc_name): Catch clash between a procedure statement + and a contained subprogram + +2018-03-16 Steven G. Kargl + + PR fortran/69395 + * decl.c (merge_array_spec): Correct the error condition. + +2018-03-15 Steven G. Kargl + + PR fortran/78741 + * decl.c (get_proc_name): Check for clash of entry name with + subroutine name. + +2018-03-15 Steven G. Kargl + + PR fortran/69395 + * decl.c (merge_array_spec): Limit the merging to maximum allowed + dimensions, and issue error message if limit is exceeded. + +2018-03-13 Steven G. Kargl + + * check.c (gfc_check_kill_sub): Remove check for INTEGER(4) or (8). + * intrinsic.c (add_functions): Remove reference to gfc_resolve_kill. + (add_subroutines): Remove reference to gfc_resolve_kill_sub. + * intrinsic.texi: Update documentation. + * iresolve.c (gfc_resolve_kill, gfc_resolve_kill_sub): Remove. + * trans-decl.c (gfc_build_intrinsic_function_decls): Add + gfor_fndecl_kill and gfor_fndecl_kill_sub + * trans-intrinsic.c (conv_intrinsic_kill, conv_intrinsic_kill_sub): new + functions. + (gfc_conv_intrinsic_function): Use conv_intrinsic_kill. + (gfc_conv_intrinsic_subroutine): Use conv_intrinsic_kill_sub. + * trans.h: Declare gfor_fndecl_kill and gfor_fndecl_kill_sub. + +2018-03-11 Paul Thomas + + PR fortran/84546 + * trans-array.c (structure_alloc_comps): Make sure that the + vptr is copied and that the unlimited polymorphic _len is used + to compute the size to be allocated. + * trans-expr.c (gfc_get_class_array_ref): If unlimited, use the + unlimited polymorphic _len for the offset to the element. + (gfc_copy_class_to_class): Set the new 'unlimited' argument. + * trans.h : Add the boolean 'unlimited' to the prototype. + +2018-03-11 Steven G. Kargl + + PR fortran/83939 + * resolve.c (resolve_fl_procedure): Enforce F2018:C15100. + +2018-03-11 Steven G. Kargl + + * check.c (gfc_check_kill): Check pid and sig are scalar. + (gfc_check_kill_sub): Restrict kind to 4 and 8. + * intrinsic.c (add_function): Sort keyword list. Add pid and sig + keywords for KILL. Remove redundant *back="back" in favor of the + original *bck="back". + (add_subroutines): Sort keyword list. Add pid and sig keywords + for KILL. + * intrinsic.texi: Fix documentation to consistently use pid and sig. + * iresolve.c (gfc_resolve_kill): Kind can only be 4 or 8. Choose the + correct function. + (gfc_resolve_rename_sub): Add comment. + +2018-03-11 Thomas Koenig + + PR fortran/66128 + * simplify.c (simplify_transformation): Return default result for + empty array argument. + (gfc_simplify_all): Remove special-case handling for zerosize. + (gfc_simplify_any): Likewise. + (gfc_simplify_count): Likewise. + (gfc_simplify_iall): Likewise. + (gfc_simplify_iany): Likewise. + (gfc_simplify_iparity): Likewise. + (gfc_simplify_minval): Likewise. + (gfc_simplify_maxval): Likewise. + (gfc_simplify_norm2): Likewise. + (gfc_simplify_product): Likewise. + (gfc_simplify_sum): Likewise. + +2018-03-10 Steven G. Kargl + + PR fortran/84734 + * arith.c (check_result, eval_intrinsic): If result overflows, pass + the expression up the chain instead of a NULL pointer. + +2018-03-07 Steven G. Kargl + + PR fortran/64124 + PR fortran/70409 + * decl.c (gfc_match_char_spec): Try to reduce a charlen to a constant. + +2017-03-06 Thomas Koenig + + PR fortran/84697 + PR fortran/66128 + * expr.c (simplify_parameter_variable): If p is a size zero array + and not an ARRAY_EXPR insert an empty array constructor and + return. + * gfortran.h: Add prototype for gfc_is_size_zero_array. + * simplify.c (is_size_zero_array): Make non-static and rename into + (gfc_is_size_zero_array): Check for parameter arrays of zero + size by comparing shape and absence of constructor. + (gfc_simplify_all): Use gfc_is_size_zero_array instead of + is_size_zero_array. + (gfc_simplify_count): Likewise. + (gfc_simplify_iall): Likewise. + (gfc_simplify_iany): Likewise. + (gfc_simplify_iparity): Likewise. + (gfc_simplify_minval): Likewise. + (gfc_simplify_maxval): Likewise. + (gfc_simplify_product): Likewise. + (gfc_simplify_sum): Likewise. + +2018-03-06 Steven G. Kargl + + PR fortran/56667 + * primary.c (match_sym_complex_part): Give the matcher for an implied + do-loop a chance to run. + +2018-03-03 Harald Anlauf + + PR fortran/71085 + * trans-expr.c (gfc_apply_interface_mapping_to_expr): Do not + dereference NULL pointer. + +2018-03-03 Steven G. Kargl + + PR fortran/66128 + * simplify.c (is_size_zero_array): New function to check for size + zero array. + (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count, + gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity, + gfc_simplify_minval, gfc_simplify_maxval, gfc_simplify_norm2, + gfc_simplify_product, gfc_simplify_sum): Use it, and implement + requirements from F2018. + +2018-03-03 Steven G. Kargl + + PR fortran/51434 + * simplify.c (gfc_simplify_transfer): Resolve mold. + +2018-03-03 Paul Thomas + + PR fortran/80965 + * resolve.c (build_loc_call): Change symtree name from 'loc' to + '_loc'. + +2018-03-01 Paul Thomas + + PR fortran/84219 + * target-memory.c (gfc_interpret_derived): Assert that BT_VOID + components are caf tokens. + (gfc_target_interpret_expr): Treat BT_VOID expressions as + integers. + +2018-03-01 Paul Thomas + + PR fortran/84538 + * class.c (class_array_ref_detected): Remove the condition that + there be no reference after the array reference. + (find_intrinsic_vtab): Remove excess whitespace. + * trans-array.c (gfc_conv_scalarized_array_ref): Rename 'tmp' + as 'base and call build_class_array_ref earlier. + +2018-02-28 Paul Thomas + + PR fortran/83901 + * trans-stmt.c (trans_associate_var): Make sure that the se + expression is a pointer type before converting it to the symbol + backend_decl type. + +2018-02-25 Steven G. Kargl + + PR fortran/83633 + * decl.c (variable_decl): Check that an explicit-shape-array with + nonconstant bounds is allowed. + +2018-02-25 Paul Thomas + + PR fortran/84523 + * trans-intrinsic.c (gfc_conv_allocated): If the argument se + has a pre block, add it to the expression pre block. + +2018-02-25 Thomas Koenig + + PR fortran/78238 + * gfortran.h (gfc_integer_4_kind): Define. + * resolve.c (resolve_select_type): Make sure that the + kind of c->high is gfc_integer_4_kind. + +2018-02-24 Steven G. Kargl + + PR fortran/30792 + * decl.c (gfc_match_data): Check for invalid substring in + data-implied-do + +2018-02-23 Steven G. Kargl + + * intrinsic.texi: Arguments to MATMUL cannot both be rank one. + +2018-02-23 Steven G. Kargl + + PR fortran/84511 + * trans-io.c (transfer_expr): Deal with C_LOC in transfer statement. + +2018-02-23 Steven G. Kargl + + PR fortran/84346 + * interface.c (compare_actual_formal): Issue error if keyword is + used in a statement function. + +2018-02-23 Jerry DeLisle + + PR fortran/84506 + * trans-io.c (set_parameter_value_inquire): Adjust range check of + negative unit values for kind=8 units to the kind=4 negative limit. + +2018-02-23 Paul Thomas + + PR fortran/83149 + * trans-types.c (gfc_sym_type): Test sym->ns->proc_name before + accessing its components. + +2018-02-23 Paul Thomas + + PR fortran/83149 + * trans-decl.c (gfc_finish_var_decl): Test sym->ns->proc_name + before accessing its components. + +2018-02-23 Paul Thomas + + PR fortran/83148 + * trans-const.c : Clean up some whitespace issues. + * trans-expr.c (gfc_conv_initializer): If an iso_c_binding + derived type has a kind value of zero, set it to the default + integer kind. + +2018-02-23 Janne Blomqvist + + PR fortran/84519 + * trans-decl.c (gfc_build_builtin_function_decls): Add bool + argument to stop and error stop decls. + * trans-stmt.c (gfc_trans_stop): Add false value to argument + lists. + +2018-02-22 Janne Blomqvist + + PR 78534 + PR 84509 + * trans-decl.c (gfc_build_builtin_function_decls): Pass + gfc_int8_type node to pause_numeric, size_type_node to + pause_string. + * trans-stmt.c (gfc_trans_pause): Likewise. + +2018-02-22 Janne Blomqvist + + * gfortran.texi: Update Coarray API description. + * trans-decl.c (gfc_build_builtin_function_decls): Use size_t for + character lengths, int for exit codes. + (generate_coarray_sym_init): Use size_t for character length. + * trans-intrinsic.c (conv_co_collective): Likewise. + * trans-stmt.c (gfc_trans_lock_unlock): Likewise. + (gfc_trans_event_post_wait): Likewise. + (gfc_trans_sync): Likewise. + (gfc_trans_stop): Use size_t for character lengths, int for exit + codes. + +2018-02-20 Thomas Koenig + + PR fortran/48890 + PR fortran/83823 + * primary.c (gfc_convert_to_structure_constructor): + For a constant string constructor, make sure the length + is correct. + +2018-02-19 Paul Thomas + + PR fortran/83344 + PR fortran/83975 + * resolve.c (resolve_assoc_var): Rearrange the logic for the + determination of the character length of associate names. If + the associate name is missing a length expression or the length + expression is not a constant and the target is not a variable, + make the associate name allocatable and deferred length. + * trans-decl.c (gfc_get_symbol_decl): Null the character length + backend_decl for deferred length associate names that are not + variables. Set 'length' to gfc_index_zero_node for character + associate names, whose character length is a PARM_DECL. + +2018-02-19 Thomas Koenig + + PR fortran/35339 + * frontend-passes.c (traverse_io_block): Remove workaround for + PR 80945. + +2018-02-19 Andre Vehreschild + + * gfortran.texi: Document additional src/dst_type. Fix some typos. + * trans-decl.c (gfc_build_builtin_function_decls): Declare the new + argument of _caf_*_by_ref () with * e { get, send, sendget }. + * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Add the type of the + data referenced when generating a call to caf_get_by_ref (). + (conv_caf_send): Same but for caf_send_by_ref () and + caf_sendget_by_ref (). + +2018-02-18 Jerry DeLisle + + PR fortran/84389 + * io.c (check_format): Allow FMT_COLON. + +2018-02-18 Paul Thomas + + PR fortran/80945 + * trans-array.c (gfc_conv_expr_descriptor): Set parmtype from + the typenode in the case of deferred length characters. + +2018-02-17 Thomas Koenig + + PR fortran/84270 + * frontend-passes (scalarized_expr): If the expression + is an assumed size array, leave in the last reference + and pass AR_SECTION instead of AR_FULL to gfc_resolve + in order to avoid an error. + +2018-02-17 Paul Thomas + + PR fortran/84115 + * resolve.c (resolve_assoc_var): If a non-constant target expr. + has no string length expression, make the associate variable + into a deferred length, allocatable symbol. + * trans-decl.c (gfc_is_reallocatable_lhs): Add and use a ptr to + the symbol. + * trans-stmt.c (trans_associate_var): Null and free scalar + associate names that are allocatable. After assignment, remove + the allocatable attribute to prevent reallocation. + +2018-02-16 Jakub Jelinek + + PR fortran/84418 + * trans-openmp.c (gfc_trans_omp_clauses): For OMP_CLAUSE_LINEAR_REF + kind set OMP_CLAUSE_LINEAR_STEP to TYPE_SIZE_UNIT times last_step. + +2018-02-16 Dominique d'Humieres + + PR fortran/84354 + * decl.c (gfc_get_pdt_instance): Replace '%qs' with %qs. + +2018-02-15 Janus Weil + + PR fortran/84409 + * interface.c (check_dtio_arg_TKR_intent): Add a check for character + length. + +2018-02-14 Janus Weil + + PR fortran/84385 + * match.c (gfc_match_select_type): Fix check for selector in + SELECT TYPE statement. + +2018-02-13 Janus Weil + + PR fortran/84313 + * symbol.c (check_conflict): Reject procedure pointers in common blocks. + +2018-02-13 Alastair McKinstry + Janne Blomqvist + + * module.c (dump_module): Use lbasename to ensure that module + files are reproducible. + +2018-02-12 Janus Weil + + PR fortran/84273 + * resolve.c (resolve_component): Fix checks of passed argument in + procedure-pointer components. + +2018-02-11 Francois-Xavier Coudert + + PR fortran/35299 + * resolve.c (resolve_formal_arglist): Update error message. + +2018-02-11 Andre Vehreschild + + * gfortran.texi: Fix typos in documentation of caf_register (). + * trans-array.c (structure_alloc_comps): Only register a component of + a derived typed corray, not of an ultimate component coarray. + +2018-02-11 Steven G. Kargl + + PR fortran/54223 + PR fortran/84276 + * interface.c (compare_actual_formal): Add in_statement_function + bool parameter. Skip check of INTENT attribute for statement + functions. Arguments to a statement function cannot be optional, + issue error for missing argument. + (gfc_procedure_use, gfc_ppc_use, gfc_arglist_matches_symbol): Use + in_statement_function. + +2018-02-11 Paul Thomas + + PR fortran/84074 + * trans-expr.c (gfc_conv_derived_to_class): Set the use_offset + flag. If the is a vector subscript or the expression is not a + variable, make the descriptor one-based. + +2018-02-10 Paul Thomas + + PR fortran/84141 + PR fortran/84155 + * trans-array.c (gfc_array_init_size): Revert the change made + in revision 257356 setting the dtype. + * trans-types.c (gfc_get_dtype): Do not use the cached dtype. + Call gfc_get_dtype_rank_type every time. + + PR fortran/56691 + * trans-array.c (gfc_conv_expr_descriptor): If the source array + is a descriptor type, use its offset, removing the condition + that is be a class expression. + +2018-02-07 Steven G. Kargl + + PR fortran/82994 + * match.c (gfc_match_deallocate): Check for NULL pointer. + +2018-02-07 Thomas Koenig + + PR fortran/68560 + * trans-intrinsic.c (gfc_conv_intrinsic_shape): New function. + (gfc_conv_intrinsic_function): Call it. + +2018-02-07 Steven G. Kargl + + PR fortran/82049 + * match.c (gfc_match_type_spec): If the charlen is non-NULL, then + try to resolve it. While here return early if possible. + +2018-02-04 Paul Thomas + + PR fortran/84115 + * trans-decl.c (gfc_get_symbol_decl): Do not finish the decl of + 'length' if the symbol charlen backend_decl is an indirect ref. + +2018-02-03 Paul Thomas + + PR fortran/84141 + PR fortran/84155 + * trans-array.c (gfc_array_init_size): Instead of gfc_get_dtype + use gfc_get_dtype_rank_type. + +2018-02-01 Janne Blomqvist + + PR 83975 + PR 83344 + * resolve.c (resolve_assoc_var): Generate an error if + target length unknown. + +2018-02-01 Janne Blomqvist + + PR fortran/83705 + * simplify.c (gfc_simplify_repeat): Increase limit for deferring + to runtime, print a warning message. + +2018-01-31 Jakub Jelinek + + PR fortran/84116 + * openmp.c (gfc_match_omp_clauses): If all the linear + gfc_match_omp_variable_list calls failed, don't gfc_free_omp_namelist + nor set *head = NULL. Formatting fixes. + +2018-01-31 Paul Thomas + + PR fortran/84088 + * trans-expr.c (gfc_conv_procedure_call): If the parm expr is + an address expression passed to an assumed rank dummy, convert + to an indirect reference. + +2018-01-31 Thomas Koenig + + * dump-parse-tree.c (write_proc): Use sym_name (which may + be sym->binding_label) instead of sym->name. + +2018-01-31 Janne Blomqvist + + * trans-const.c (gfc_conv_string_init): Use gfc_charlen_t instead + of int for slen. + +2018-01-31 Janne Blomqvist + + PR fortran/78534 + * trans-expr.c (fill_with_spaces): Use memset instead of + generating loop. + (gfc_trans_string_copy): Improve opportunity to use builtins with + constant lengths. + +2018-01-30 Jakub Jelinek + + PR debug/84131 + * trans-array.c (gfc_get_descriptor_offsets_for_info): Set *data_off + to DATA_FIELD's offset rather than OFFSET_FIELD's offset. + +2018-01-30 Thomas Koenig + + PR fortran/84134 + * array.c (gfc_ref_dimen_size): Whitespace fixes. If stride is + zero, return false. + +2018-01-30 Thomas Koenig + + PR fortran/84133 + * frontend-passes (matmul_to_var_expr): Return early if + in association list. + (inline_matmul_assign): Likewise. + +2017-01-29 Thomas Koenig + + PR fortran/84073 + * resolve.c (resolve_component): Ensure BIND(C) character + components have length one. + (resolve_symbol): Likewise for variables. + +2018-01-27 Jakub Jelinek + + PR fortran/84065 + * decl.c (add_init_expr_to_sym): Ignore initializers for too large + lengths. + +2018-01-26 Damian Rouson + Alessandro Fanfarillo + Soren Rasmussen + + Partial support for Fortran 2018 teams features. + + * array.c (gfc_match_array_ref): add team attribute in coarray + transfers. + * check.c (gfc_check_get_team, gfc_check_team_number): add new + functions for get_team and team_number. + * dump-parse-tree.c (show_code_node): add new statements: form team, + change team, end team, and sync team. + * expr.c (gfc_find_team_co): add new function. + * gfortran.h: add new statements. + * intrinsic.c (add_functions): add get_team and team_number functions. + * intrinsic.h: add get_team and team_number prototypes for check, + simplify, and resolve. + * iresolve.c (gfc_resolve_get_team, gfc_resolve_team_number): add new + functions. + * iso-fortran-env.def: add the team_type derived type. + * match.c (gfc_match_if, gfc_match_form_team, gfc_match_team_number) + (gfc_match_end_team, gfc_match_sync_team, gfc_match_change_team): + add change team, end team, form team, sync team match and functions. + * match.h: add new prototypes for change team, end team, form team, + and sync team. + * parse.c (decode_statement): add cases for change team, end team, + form team, and sync team. + * resolve.c: add cases for exec form team, change team, end team, and + sync team. + * simplify.c (gfc_simplify_get_team): add new function for get team. + * st.c (gfc_free_statement): add cases exec for change team, end team, + form team, sync team. + * trans-decl.c (gfor_fndecl_caf_form_team) + (gfor_fndecl_caf_change_team, gfor_fndecl_caf_end_team) + (gfor_fndecl_caf_sync_team, gfor_fndecl_caf_get_team) + (gfor_fndecl_caf_team_number): add functions and definitions. + * trans-intrinsic.c (conv_caf_send, conv_intrinsic_team_number): add + new function and team_type argument support. + * trans-stmt.c (gfc_trans_form_team, gfc_trans_change_team) + (gfc_trans_end_team, gfc_trans_sync_team): add new functions. + * trans-stmt.h: add new prototypes. + * trans-types.c (gfc_get_derived_type): check condition for team_type. + * trans.c (trans_code): new exec cases for form team, change team, end + team, and sync team. + * trans.h: add new prototypes. + +2018-01-26 Steven G. Kargl + + PR fortran/83998 + * simplify.c (compute_dot_product): Initialize result to INTEGER(1) 0 + or .false. The summation does the correct type conversion. + (gfc_simplify_dot_product): Special case zero-sized arrays. + +2018-25-01 Paul Thomas + + PR fortran/37577 + * array.c (gfc_match_array_ref): If standard earlier than F2008 + it is an error if the reference dimension is greater than 7. + libgfortran.h : Increase GFC_MAX_DIMENSIONS to 15. Change the + dtype masks and shifts accordingly. + * trans-array.c (gfc_conv_descriptor_dtype): Use the dtype + type node to check the field. + (gfc_conv_descriptor_dtype): Access the rank field of dtype. + (duplicate_allocatable_coarray): Access the rank field of the + dtype descriptor rather than the dtype itself. + * trans-expr.c (get_scalar_to_descriptor_type): Store the type + of 'scalar' on entry and use its TREE_TYPE if it is ARRAY_TYPE + (ie. a character). + (gfc_conv_procedure_call): Pass TREE_OPERAND (tmp,0) to + get_scalar_to_descriptor_type if the actual expression is a + constant. + (gfc_trans_structure_assign): Assign the rank directly to the + dtype rank field. + * trans-intrinsic.c (gfc_conv_intrinsic_rank): Cast the result + to default integer kind. + (gfc_conv_intrinsic_sizeof): Obtain the element size from the + 'elem_len' field of the dtype. + * trans-io.c (gfc_build_io_library_fndecls): Replace + gfc_int4_type_node with dtype_type_node where necessary. + (transfer_namelist_element): Use gfc_get_dtype_rank_type for + scalars. + * trans-types.c : Provide 'get_dtype_type_node' to acces the + dtype_type_node and, if necessary, build it. + The maximum size of an array element is now determined by the + maximum value of size_t. + Update the description of the array descriptor, including the + type def for the dtype_type. + (gfc_get_dtype_rank_type): Build a constructor for the dtype. + Distinguish RECORD_TYPEs that are BT_DERIVED or BT_CLASS. + (gfc_get_array_descriptor_base): Change the type of the dtype + field to dtype_type_node. + (gfc_get_array_descr_info): Get the offset to the rank field of + the dtype. + * trans-types.h : Add a prototype for 'get_dtype_type_node ()'. + * trans.h : Define the indices of the dtype fields. + +2018-23-01 Paul Thomas + + PR fortran/83866 + * decl.c (gfc_match_derived_decl): If eos not matched, recover + and emit error about garbage after declaration. + +2018-23-01 Paul Thomas + + PR fortran/83898 + * trans-stmt.c (trans_associate_var): Do not set cst_array_ctor + for characters. + +2018-01-22 Janne Blomqvist + + PR 78534 + PR 83704 + * arith.c (gfc_arith_concat): Use size_t for string length. + (gfc_compare_string): Likewise. + (gfc_compare_with_Cstring): Likewise. + * array.c (gfc_resolve_character_array_constructor): Use + HOST_WIDE_INT, gfc_mpz_get_hwi. + * check.c (gfc_check_fe_runtime_error): Use size_t. + * data.c (create_character_initializer): Use HOST_WIDE_INT, + gfc_extract_hwi. + * decl.c (gfc_set_constant_character_len): Use gfc_charlen_t. + (add_init_expr_to_sym): Use HOST_WIDE_INT. + * expr.c (gfc_build_init_expr): Use HOST_WIDE_INT, + gfc_extract_hwi. + (gfc_apply_init): Likewise. + * match.h (gfc_set_constant_character_len): Update prototype. + * primary.c (match_string_constant): Use size_t. + * resolve.c (resolve_ordinary_assign): Use HOST_WIDE_INT, + gfc_mpz_get_hwi. + * simplify.c (init_result_expr): Likewise. + (gfc_simplify_len_trim): Use size_t. + * target-memory.c (gfc_encode_character): Use size_t. + (gfc_target_encode_expr): Use HOST_WIDE_INT, gfc_mpz_get_hwi. + (interpret_array): Use size_t. + (gfc_interpret_character): Likewise. + * target-memory.h (gfc_encode_character): Update prototype. + (gfc_interpret_character): Likewise. + (gfc_target_interpret_expr): Likewise. + * trans-const.c (gfc_build_string_const): Use size_t for length + argument. + (gfc_build_wide_string_const): Likewise. + * trans-const.h (gfc_build_string_const): Likewise. + (gfc_build_wide_string_const): Likewise. + +2018-01-20 Steven G. Kargl + + PR fortran/83900 + * simplify.c (gfc_simplify_matmul): Set return type correctly. + +2018-01-19 Steven G. Kargl + + PR fortran/83900 + * simplify.c (gfc_simplify_matmul): Delete bogus assertion. + +2018-01-17 Harald Anlauf + + PR fortran/83864 + * expr.c (add_init_expr_to_sym): Do not dereference NULL pointer. + +2018-01-17 Harald Anlauf + + PR fortran/83874 + * decl.c (add_init_expr_to_sym): Do not dereference NULL pointer. + +2018-01-15 Louis Krupp + + PR fortran/82257 + * interface.c (compare_rank): Don't try to retrieve CLASS_DATA + from symbol marked unlimited polymorphic. + * resolve.c (resolve_structure_cons): Likewise. + * misc.c (gfc_typename): Don't dereference derived->components + if it's NULL. + +2018-01-15 Thomas Koenig + + PR fortran/54613 + * gfortran.h (gfc_check_f): Rename f4ml to f5ml. + (gfc_logical_4_kind): New macro + * intrinsic.h (gfc_simplify_minloc): Add a gfc_expr *argument. + (gfc_simplify_maxloc): Likewise. + (gfc_resolve_maxloc): Likewise. + (gfc_resolve_minloc): Likewise. + * check.c (gfc_check_minloc_maxloc): Add checking for "back" + argument; also raise error if it is used (for now). Add it + if it isn't present. + * intrinsic.c (add_sym_4ml): Rename to + (add_sym_5ml), adjust for extra argument. + (add_functions): Add "back" constant. Adjust maxloc and minloc + for back argument. + * iresolve.c (gfc_resolve_maxloc): Add back argument. If back is + not of gfc_logical_4_kind, convert. + (gfc_resolve_minloc): Likewise. + * simplify.c (gfc_simplify_minloc): Add back argument. + (gfc_simplify_maxloc): Likewise. + * trans-intinsic.c (gfc_conv_intrinsic_minmaxloc): Rename last + argument to %VAL to ensure passing by value. + (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_minmaxloc + also for library calls. + +2018-01-13 Jerry DeLisle + + PR fortran/82007 + * resolve.c (resolve_transfer): Delete code looking for 'DT' + format specifiers in format strings. Set formatted to true if a + format string or format label is present. + * trans-io.c (get_dtio_proc): Likewise. (transfer_expr): Fix + whitespace. + +2018-01-13 Thomas Koenig + + PR fortran/83744 + * dump-parse-tree.c (get_c_type_name): Remove extra line. + Change for loop to use declaration in for loop. Handle BT_LOGICAL + and BT_CHARACTER. + (write_decl): Add where argument. Fix indentation. Replace + assert with error message. Add typename to warning + in comment. + (write_type): Adjust locus to call of write_decl. + (write_variable): Likewise. + (write_proc): Likewise. Replace assert with error message. + +2018-01-13 Paul Thomas + + PR fortran/52162 + * trans-expr.c (gfc_trans_scalar_assign): Flag is_alloc_lhs if + the rhs expression is neither an elemental nor a conversion + function. + + PR fortran/83622 + * trans-array.c (is_pointer_array): Remove unconditional return + of false for -fopenmp. + +2018-01-13 Thomas Koenig + + + PR fortran/83803 + * dump-parse-tree.c (write_proc): Always emit closing parenthesis + for functions. + +2018-01-10 Steven G. Kargl + + PR fortran/82367 + * resolve.c (resolve_allocate_expr): Check for NULL pointer. + +2018-01-10 Steven G. Kargl + + PR fortran/83093 + * resolve.c (resolve_charlen): Check the type of cl->length + after resolution. + +2018-01-10 Janne Blomqvist + + PR fortran/83740 + * trans-array.c (gfc_trans_array_ctor_element): Fix formatting. + +2018-01-10 Janne Blomqvist + + PR fortran/83740 + * trans-array.c (gfc_trans_array_ctor_element): Convert RHS to the + LHS type when assigning. + +2018-01-09 Steven G. Kargl + + PR fortran/83742 + * expr.c (gfc_is_simply_contiguous): Check for NULL pointer. + +2018-01-08 Steven G. Kargl + + * match.c (gfc_match_allocate): Check for NULL pointer. + +2018-01-08 Steven G. Kargl + + * expr.c (gfc_check_pointer_assign): Fix typo in comment. + +2018-01-08 Paul Thomas + + PR fortran/83611 + * decl.c (gfc_get_pdt_instance): If parameterized arrays have + an initializer, convert the kind parameters and add to the + component if the instance. + * trans-array.c (structure_alloc_comps): Add 'is_pdt_type' and + use it with case COPY_ALLOC_COMP. Call 'duplicate_allocatable' + for parameterized arrays. Clean up typos in comments. Convert + parameterized array initializers and copy into the array. + * trans-expr.c (gfc_trans_scalar_assign): Do a deep copy for + parameterized types. + *trans-stmt.c (trans_associate_var): Deallocate associate vars + as necessary, when they are PDT function results for example. + + PR fortran/83731 + * trans-array.c (structure_alloc_comps): Only compare len parms + when they are declared explicitly. + +2018-01-06 Janne Blomqvist + + PR fortran/50892 + * trans-expr.c (gfc_trans_pointer_assignment): fold_convert rhs to + lhs type. + +2018-01-05 Janne Blomqvist + + PR fortran/78534 + PR fortran/66310 + * array.c (got_charlen): Use gfc_charlen_int_kind. + * class.c (gfc_find_derived_vtab): Use gfc_size_kind instead of + hardcoded kind. + (find_intrinsic_vtab): Likewise. + * decl.c (match_char_length): Use gfc_charlen_int_kind. + (add_init_expr_to_sym): Use gfc_charlen_t and gfc_charlen_int_kind. + (gfc_match_implicit): Use gfc_charlen_int_kind. + * dump-parse-tree.c (show_char_const): Use gfc_charlen_t and size_t. + (show_expr): Use HOST_WIDE_INT_PRINT_DEC. + * expr.c (gfc_get_character_expr): Length parameter of type + gfc_charlen_t. + (gfc_get_int_expr): Value argument of type HOST_WIDE_INT. + (gfc_extract_hwi): New function. + (simplify_const_ref): Make string_len of type gfc_charlen_t. + (gfc_simplify_expr): Use HOST_WIDE_INT for substring refs. + * frontend-passes.c (optimize_trim): Use gfc_charlen_int_kind. + * gfortran.h (gfc_mpz_get_hwi): New prototype. + (gfc_mpz_set_hwi): Likewise. + (gfc_charlen_t): New typedef. + (gfc_expr): Use gfc_charlen_t for character lengths. + (gfc_size_kind): New extern variable. + (gfc_extract_hwi): New prototype. + (gfc_get_character_expr): Use gfc_charlen_t for character length. + (gfc_get_int_expr): Use HOST_WIDE_INT type for value argument. + * gfortran.texi: Update description of hidden string length argument. + * iresolve.c (check_charlen_present): Use gfc_charlen_int_kind. + (gfc_resolve_char_achar): Likewise. + (gfc_resolve_repeat): Pass string length directly without + temporary, use gfc_charlen_int_kind. + (gfc_resolve_transfer): Use gfc_charlen_int_kind. + * match.c (select_intrinsic_set_tmp): Use HOST_WIDE_INT for charlen. + * misc.c (gfc_mpz_get_hwi): New function. + (gfc_mpz_set_hwi): New function. + * module.c (atom_int): Change type from int to HOST_WIDE_INT. + (parse_integer): Don't complain about large integers. + (write_atom): Use HOST_WIDE_INT for integers. + (mio_integer): Handle integer type mismatch. + (mio_hwi): New function. + (mio_intrinsic_op): Use HOST_WIDE_INT. + (mio_array_ref): Likewise. + (mio_expr): Likewise. + * primary.c (match_substring): Use gfc_charlen_int_kind. + * resolve.c (resolve_substring_charlen): Use gfc_charlen_int_kind. + (resolve_character_operator): Likewise. + (resolve_assoc_var): Likewise. + (resolve_select_type): Use HOST_WIDE_INT for charlen, use snprintf. + (resolve_charlen): Use mpz_sgn to determine sign. + * simplify.c (gfc_simplify_repeat): Use HOST_WIDE_INT/gfc_charlen_t + instead of long. + * symbol.c (generate_isocbinding_symbol): Use gfc_charlen_int_kind. + * target-memory.c (size_character): Length argument of type + gfc_charlen_t. + (gfc_encode_character): Likewise. + (gfc_interpret_character): Use gfc_charlen_t. + * target-memory.h (gfc_encode_character): Modify prototype. + * trans-array.c (gfc_trans_array_ctor_element): Use existing type. + (get_array_ctor_var_strlen): Use gfc_conv_mpz_to_tree_type. + (trans_array_constructor): Use existing type. + (get_array_charlen): Likewise. + * trans-const.c (gfc_conv_mpz_to_tree_type): New function. + * trans-const.h (gfc_conv_mpz_to_tree_type): New prototype. + * trans-decl.c (gfc_trans_deferred_vars): Use existing type. + (add_argument_checking): Likewise. + * trans-expr.c (gfc_class_len_or_zero_get): Build const of type + gfc_charlen_type_node. + (gfc_conv_intrinsic_to_class): Use gfc_charlen_int_kind instead of + 4, fold_convert to correct type. + (gfc_conv_class_to_class): Build const of type size_type_node for + size. + (gfc_copy_class_to_class): Likewise. + (gfc_conv_string_length): Use same type in expression. + (gfc_conv_substring): Likewise, use HOST_WIDE_INT for charlen. + (gfc_conv_string_tmp): Make sure len is of the right type. + (gfc_conv_concat_op): Use same type in expression. + (gfc_conv_procedure_call): Likewise. + (fill_with_spaces): Comment out memset() block due to spurious + -Wstringop-overflow warnings. + (gfc_trans_string_copy): Use gfc_charlen_type_node. + (alloc_scalar_allocatable_for_subcomponent_assignment): + fold_convert to right type. + (gfc_trans_subcomponent_assign): Likewise. + (trans_class_vptr_len_assignment): Build const of correct type. + (gfc_trans_pointer_assignment): Likewise. + (alloc_scalar_allocatable_for_assignment): fold_convert to right + type in expr. + (trans_class_assignment): Build const of correct type. + * trans-intrinsic.c (gfc_conv_associated): Likewise. + (gfc_conv_intrinsic_repeat): Do calculation in sizetype. + * trans-io.c (gfc_build_io_library_fndecls): Use + gfc_charlen_type_node for character lengths. + (set_string): Convert to right type in assignment. + * trans-stmt.c (gfc_trans_label_assign): Build const of + gfc_charlen_type_node. + (trans_associate_var): Likewise. + (gfc_trans_character_select): Likewise. + (gfc_trans_allocate): Likewise, don't typecast strlen result. + (gfc_trans_deallocate): Don't typecast strlen result. + * trans-types.c (gfc_size_kind): New variable. + (gfc_init_types): Determine gfc_charlen_int_kind and gfc_size_kind + from size_type_node. + * trans-types.h: Fix comment. + +2018-01-04 Thomas Koenig + + PR fortran/83683 + PR fortran/45689 + * check.c (gfc_check_eoshift): Check for string length and + for conformance of boundary. + * intrinsic.c (add_functions): Add gfc_simplify_eoshift. + * intrinsic.h: Add prototype for gfc_simplify_eoshift. + * simplify.c (gfc_simplify_eoshift): New function. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * trans-types.c (gfc_type_for_mode): Handle MODE_VECTOR_BOOL. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * trans-types.c (gfc_type_for_mode): Check valid_vector_subparts_p. + +2018-01-03 Thomas Koenig + + PR fortran/83664 + * check.c (gfc_check_eoshift): Error for missing boundary if array + is not one of the standard types. + +2018-01-03 Jakub Jelinek + + Update copyright years. + + * gfortranspec.c (lang_specific_driver): Update copyright notice + dates. + * gfc-internals.texi: Bump @copying's copyright year. + * gfortran.texi: Ditto. + * intrinsic.texi: Ditto. + * invoke.texi: Ditto. + +2017-01-02 Thomas Koenig + + PR fortran/45689 + * intrinsic.c (add_function): Add gfc_simplify_maxloc and + gfc_simplify_minloc to maxloc and minloc, respectively. + * intrinsic.h: Add prototypes for gfc_simplify_minloc + and gfc_simplify_maxloc. + * simplify.c (min_max_chose): Adjust prototype. Modify function + to have a return value which indicates if the extremum was found. + (is_constant_array_expr): Fix typo in comment. + (simplify_minmaxloc_to_scalar): New function. + (simplify_minmaxloc_nodim): New function. + (new_array): New function. + (simplify_minmaxloc_to_array): New function. + (gfc_simplify_minmaxloc): New function. + (simplify_minloc): New function. + (simplify_maxloc): New function. + +2018-01-02 Thomas Koenig + + PR fortran/45689 + PR fortran/83650 + * simplify.c (gfc_simplify_cshift): Re-implement to allow full + range of arguments. + +2018-01-01 Paul Thomas + + PR fortran/83076 + * resolve.c (resolve_fl_derived0): Add caf_token fields for + allocatable and pointer scalars, when -fcoarray selected. + * trans-types.c (gfc_copy_dt_decls_ifequal): Copy the token + field as well as the backend_decl. + (gfc_get_derived_type): Flag GFC_FCOARRAY_LIB for module + derived types that are not vtypes. Components with caf_token + attribute are pvoid types. For a component requiring it, find + the caf_token field and have the component token field point to + its backend_decl. + + PR fortran/83319 + *trans-types.c (gfc_get_array_descriptor_base): Add the token + field to the descriptor even when codimen not set. + +Copyright (C) 2018 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. + + PR fortran/87945 + * decl.c (var_element): Inquiry parameters cannit be data objects. + +2018-12-08 Steven G. Kargl + + PR fortran/88025 + * expr.c (gfc_apply_init): Remove asserts that cannot trigger. + Check for a NULL pointer. + +2018-12-08 Steven G. Kargl + + PR fortran/88357 + * class.c (insert_component_ref): Check for NULL pointer and + previous error message issued. + * parse.c (parse_associate): Check for NULL pointer. + * resolve.c (resolve_assoc_var): Check for NULL pointer. + +2018-12-07 Jakub Jelinek + + PR fortran/88377 + * trans-openmp.c (gfc_omp_clause_default_ctor, + gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op, + gfc_omp_clause_linear_ctor, gfc_omp_clause_dtor): Only consider + GFC_DECL_GET_SCALAR_ALLOCATABLE vars as scalar allocatables if they + have pointer type. + +2018-12-03 Fritz Reese + Mark Eggleston + + PR fortran/87919 + * options.c (SET_FLAG, SET_BITFLAG, SET_BITFLAG2): New macros. + (set_dec_flags): Set/unset DEC and std flags according to value. + (post_dec_flags, set_init_local_zero): New functions. + (gfc_init_options): Use set_init_local_zero and post_dec_flags. + (gfc_handle_options) : Use + SET_BITFLAG. + : Use set_init_local_zero. + : Pass value to set_dec_flags. + : Remove. + +2018-11-30 Thomas Schwinge + + * gfortran.h (struct gfc_omp_clauses): Remove "wait". Adjust all + users. + + * openmp.c (gfc_match_omp_clauses): Support multiple OpenACC wait + clauses. + +2018-11-27 Martin Liska + + * decl.c (gfc_match_gcc_builtin): New function. + * gfortran.h (struct vect_builtin_tuple): New. + (gfc_adjust_builtins): Likewise. + * lang-specs.h (TARGET_F951_OPTIONS): New. + (F951_OPTIONS): Use it. + * lang.opt: Add new option -fpre-include. + * match.h (gfc_match_gcc_builtin): Declare new function. + * parse.c (decode_gcc_attribute): Handle builtin. + (parse_progunit): Call gfc_adjust_builtins. + * scanner.c (gfc_new_file): Load pre-included header file + when provided. + * trans-intrinsic.c (add_simd_flag_for_built_in): New. + (gfc_adjust_builtins): Likewise. + +2018-11-24 Paul Thomas + + PR fortran/88143 + * resolve.c (resolve_variable): Check for associate names with + NULL target. + +2018-11-23 Jakub Jelinek + + * lang.opt (fpad-source): New option. + * scanner.c (load_line): Don't pad fixed form lines if + !flag_pad_source. + * invoke.texi (-fno-pad-source): Document. + +2018-11-21 Jakub Jelinek + + * invoke.texi (-fdec-include): Document. + +2018-11-21 Jakub Jelinek + Mark Eggleston + + * lang.opt (fdec-include): New option. + * options.c (set_dec_flags): Set also flag_dec_include. + * scanner.c (include_line): Change return type from bool to int. + In fixed form allow spaces in between include keyword letters. + For -fdec-include, allow in fixed form 0 in column 6. With + -fdec-include return -1 if the parsed line is not full include + statement and it could be successfully completed on continuation + lines. + (include_stmt): New function. + (load_file): Adjust include_line caller. If it returns -1, keep + trying include_stmt until it stops returning -1 whenever adding + further line of input. + +2018-11-18 Thomas Koenig + + PR fortran/88073 + * frontend-passes.c (combine_array_constructor): Do not do + anything if in a WHERE statement. + +2018-11-18 Thomas Koenig + + PR fortran/70260 + * expr.c (gfc_check_assign): Reject assigning to an external + symbol. + (gfc_check_pointer_assign): Add suppress_type_test + argument. Insert line after if. A non-proc pointer can not point + to a constant. Only check types if suppress_type_test is false. + * gfortran.h (gfc_check_pointer_assign): Add optional + suppress_type_test argument. + * resolve.c (gfc_resolve_code): Move up gfc_check_pointer_assign + and give it the extra argument. + (resolve_fl_procedure): Set error on value for a function with + an inizializer. + +2018-11-15 David Malcolm + + PR other/19165 + * error.c (gfc_diagnostic_finalizer): Add diagnostic_t param. + +2018-11-13 David Malcolm + + * cpp.c: Replace "source_location" with "location_t". + * gfortran.h: Likewise. + +2018-11-08 Jakub Jelinek + + * trans-openmp.c (gfc_trans_omp_clauses): Use + OMP_CLAUSE_DEFAULTMAP_SET_KIND. + (gfc_trans_omp_atomic): Set OMP_ATOMIC_MEMORY_ORDER + rather than OMP_ATOMIC_SEQ_CST. + (gfc_trans_omp_taskgroup): Build OMP_TASKGROUP using + make_node instead of build1_loc. + * types.def (BT_FN_VOID_BOOL, BT_FN_VOID_SIZE_SIZE_PTR, + BT_FN_UINT_UINT_PTR_PTR, BT_FN_UINT_OMPFN_PTR_UINT_UINT, + BT_FN_BOOL_UINT_LONGPTR_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, + BT_FN_BOOL_UINT_ULLPTR_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR, + BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, + BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR): New. + (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): Formatting fix. + +2018-11-02 Thomas Koenig + + PR fortran/46020 + * decl.c (verify_bind_c_sym): Remove unnecessary space + in error message. + +2018-11-01 Thomas Koenig + + PR fortran/87782 + * frontend-passes.c (constant_string_length): If there is a + substring with a length which cannot be reduced to a constant, + return NULL. + +2018-11-01 Paul Thomas + + PR fortran/40196 + * dependency.c (are_identical_variables): Return false if the + inquiry refs are not the same. + (gfc_ref_needs_temporary_p): Break on an inquiry ref. + * dump_parse_tree.c (show_ref): Show the inquiry ref type. + * expr.c (gfc_free_ref_list): Break on an inquiry ref. + (gfc_copy_ref): Copy the inquiry ref types. + (find_inquiry_ref): New function. + (simplify_const_ref, simplify_ref_chain): Call it. Add new arg + to simplify_ref_chain. + (gfc_simplify_expr): Use the new arg in call to + simplify_ref_chain. + (gfc_get_full_arrayspec_from_expr, gfc_is_coarray): Break on + inquiry ref. + (gfc_traverse_expr): Return true for inquiry ref. + * frontend-passes.c (gfc_expr_walker): Break on inquiry ref. + * gfortran.h : Add enums and union member in gfc_ref to + implement inquiry refs. + * intrinsic.c : Fix white nois. + * match.c (gfc_match_assignment): A constant lavlue is an + error. + * module.c : Add DECL_MIO_NAME for inquiry_type and the mstring + for inquiry_types. + (mio_ref): Handle inquiry refs. + * primary.c (is_inquiry_ref): New function. + (gfc_match_varspec): Handle inquiry refs calling new function. + (gfc_variable_attr): Detect inquiry ref for disambiguation + with components. + (caf_variable_attr): Treat inquiry and substring refs in the + same way. + * resolve.c (find_array_spec): ditto. + (gfc_resolve_substring_charlen): If there is neither a charlen + ref not an inquiry ref, return. + (resolve_ref): Handle inqiry refs as appropriate. + (resolve_allocate_expr): Entities with an inquiry ref cannot be + allocated. + * simplify.c (simplify_bound, simplify_cobound): Punt on + inquiry refs. + * trans-array.c (get_array_ctor_var_strlen): Break on inquiry + ref. + *trans-expr.c (conv_inquiry): New function. + (gfc_conv_variable): Retain the last typespec to pass to + conv_inquiry on detecting an inquiry ref. + +2018-11-01 Thomas Koenig + + PR fortran/46020 + * decl.c (verify_bind_c_sym): Improve error message. + +2018-11-01 Thomas Koenig + + PR fortran/54613 + * gfortran.texi (File format of unformatted sequential files): + Replace random comma with period. + * intrinsic.texi (Intrinsic Procedures): Add FINDLOC to menu. + (FINDLOC): Document. + (MAXLOC): Add refrence to FINDLOC. + (MINLOC): Likewise. + +2018-10-31 Nathan Sidwell + + * cpp.c (gfc_cpp_init): Adjust cpp_force_token_locations call. + +2018-10-31 Martin Liska + + * trans-decl.c (struct module_hasher): Call htab_hash_string + for s->name and not for s. + +2018-10-30 Thomas Koenig + + PR fortran/85896 + * simplify.c (simplify_min_max): Do not convert the type of the + return expression. + +2017-10-28 Thomas Koenig + + PR fortran/54613 + * gfortran.h (gfc_isym_id): Add GFC_ISYM_FINDLOC. + (gfc_check_f): Add f6fl field. + (gfc_simplify_f): Add f6 field. + (gfc_resolve_f): Likewise. + (gfc_type_letter): Add optional logical_equas_int flag. + * check.c (intrinsic_type_check): New function. + (gfc_check_findloc): New function. + * intrinsics.c (gfc_type_letter): If logical_equals_int is + set, act accordingly. + (add_sym_5ml): Reformat comment. + (add_sym_6fl): New function. + (add_functions): Add findloc. + (check_arglist): Add sixth argument, handle it. + (resolve_intrinsic): Likewise. + (check_specific): Handle findloc. + * intrinsic.h (gfc_check_findloc): Add prototype. + (gfc_simplify_findloc): Likewise. + (gfc_resolve_findloc): Likewise. + (MAX_INTRINSIC_ARGS): Adjust. + * iresolve.c (gfc_resolve_findloc): New function. + * simplify.c (gfc_simplify_minmaxloc): Make static. + (simplify_findloc_to_scalar): New function. + (simplify_findloc_nodim): New function. + (simplify_findloc_to_array): New function. + (gfc_simplify_findloc): New function. + (gfc_conv_intrinsic_findloc): New function. + (gfc_conv_intrinsic_function): Handle GFC_ISYM_FINDLOC. + (gfc_is_intrinsic_libcall): Likewise. + +2018-10-27 Thomas Koenig + + PR fortran/86907 + * frontend-passes.c (check_locus_code): Add information that + warning about missing location information points to an + inconsisten internal state. + (check_locus_expr): Likewise. + +2018-10-25 Jakub Jelinek + + PR fortran/87725 + * openmp.c (gfc_match_omp_clauses): Parse simd, monotonic and + nonmonotonic modifiers regardless of if they have been parsed + already or if the opposite one has. Fix up check whether + comma after modifier should be parsed. + (resolve_omp_clauses): Diagnose schedule modifier restrictions. + +2018-10-23 Paul Thomas + + PR fortran/85603 + * frontend-passes.c (get_len_call): New function to generate a + call to intrinsic LEN. + (create_var): Use this to make length expressions for variable + rhs string lengths. + Clean up some white space issues. + +2018-10-21 Paul Thomas + + PR fortran/71880 + * trans-expr.c (gfc_trans_pointer_assignment): Set the string + length for array valued deferred length lhs. + +2018-10-18 Tobias Burnus + + PR fortran/87625 + * trans-array.c (gfc_is_reallocatable_lhs): Detect allocatable + polymorphic arrays. + +2018-10-18 Paul Thomas + + PR fortran/58618 + * trans-stmt.c (trans_associate_var): All strings that return + as pointer types can be assigned directly to the associate + name so remove 'attr' and the condition that uses it. + +2018-10-18 Paul Thomas + + PR fortran/58618 + * trans-decl.c (gfc_get_symbol_decl): Deal correctly with the + initialization with NULL() of a deferred length pointer. + +2018-10-17 Tobias Burnus + + PR fortran/87632 + * resolve.c (resolve_select_type): Use correct variable. + +2018-10-17 David Malcolm + + * Make-lang.in (selftest-fortran): New. + +2018-10-17 Paul Thomas + + PR fortran/56386 + PR fortran/58906 + PR fortran/77385 + PR fortran/80260 + PR fortran/82077 + * resolve.c (resolve_variable): Fix up expressions with array + associate names, where the parser did not detect that this is + array and there was no array part_ref in the expression. + +2018-10-16 Tobias Burnus + + PR fortran/67125 + * trans-array.c (gfc_array_init_size, gfc_array_allocate): + Rename argument e3_is_array_constr to e3_has_nodescriptor + and update comments. + * trans-stmt.c (gfc_trans_allocate): Also fix lower bound + to 1 for nonalloc/nonpointer func results/vars besides + array constructors. + +2018-10-16 Tobias Burnus + + PR fortran/87556 + * trans-stmt.c (form_team, change_team, sync_team): + Don't ignore argse.pre/argse.post. + +2018-10-15 Paul Thomas + Tobias Burnus + + PR fortran/87566 + * resolve.c (resolve_assoc_var): Add missing array spec for + class associate names. + (resolve_select_type): Handle case where last typed component + of the selector has a different type to the expression. + * trans-expr.c (gfc_find_and_cut_at_last_class_ref): Replace + call to gfc_expr_to_initialize with call to gfc_copy_expr. + (gfc_conv_class_to_class): Guard assignment to 'len' field + against case where zero constant is supplied. + +2018-10-12 Tobias Burnus + + PR fortran/87597 + * expr.c (gfc_simplify_expr): Avoid simplifying + the 'array' argument to lbound/ubound/lcobound/ + ucobound. + +2018-10-12 Tobias Burnus + + PR fortran/58787 + * decl.c (get_proc_name): Return with error before + creating sym_tree. + +2018-10-11 Tobias Burnus + + Revert: + 2018-10-09 Tobias Burnus + + PR fortran/83522 + * resolve.c (resolve_ref): Reject nonscalar + substring references. + +2018-10-09 David Malcolm + + * cpp.c (gfc_cpp_init_0): Update for renamings. + (cb_cpp_error): Rename to... + (cb_cpp_diagnostic): ...this, converting level and reason to + enums. + +2018-10-09 Tobias Burnus + + PR fortran/83522 + * resolve.c (resolve_ref): Reject nonscalar + substring references. + +2018-10-09 Paul Thomas + + PR fortran/87151 + * trans-array.c (gfc_get_array_span): Deal with deferred char + array components having a TYPE_MAX_VALUE of zero. + (gfc_array_init_size): Use the hidden string length component + to build the descriptor dtype. + (gfc_array_allocate): Remove the erroneous replacement of the + charlen backend decl with a temporary. + (gfc_conv_expr_descriptor): Use the ss_info string length in + the case of deferred character components. + (gfc_alloc_allocatable_for_assignment): Actually compare the + string lengths for deferred characters. Make sure that kind > 1 + is handled correctly. Set the span field of the descriptor. + * trans-intrinsic.c (gfc_conv_intrinsic_len): Remove the stupid + comment. + + PR fortran/80931 + * trans-array.c (gfc_array_allocate): Set the span field for + variable length character arrays. + +2018-10-08 Cesar Philippidis + + * expr.c (gfc_check_pointer_assign): Demote "Assignment to + contiguous pointer from non-contiguous target" to a warning. + +2018-10-08 Paul Thomas + + PR fortran/86372 + * trans-stmt.c (trans_associate_var): Character associate names + with variable string length do not have to be deferred length + for the string length to be set, if variable. + +2018-10-06 Thomas Koenig + + PR fortran/86111 + * gfortran.h (enum arith): Add ARITH_WRONGCONCAT. + * arith.h (gfc_arith_error): Issue error for ARITH_WRONGCONCAT. + (gfc_arith_concat): If the types of op1 and op2 are not + character of if their kinds do not match, issue ARITH_WRONGCONCAT. + +2018-10-06 Paul Thomas + + PR fortran/83999 + * resolve.c (resolve_fl_procedure): Include class functions in + the test that elemental function results be scalar. + +2018-10-06 Thomas Koenig + + PR fortran/84640 + * simplify.c (gfc_simplify_cshift): Extend size of hs_ex and ss_ex + by one. Set extents one past the array boundaries to zero to avoid + warning with instrumented compiler. + (gfc_simplify_eoshift): Likewise, only for ss_ex. + +2018-10-05 Paul Thomas + + PR fortran/87487 + * trans-decl.c (gfc_get_symbol_decl): Make sure that deferred + character length pointer initializer has the right type to fix + problem with deferred_character_24.f90 on big endian. + +2018-10-03 Jeff Law + + * trans-types.c (get_typenode_from_name): Moved into gcc/tree.c. + +2018-10-01 Paul Thomas + + PR fortran/65677 + * trans-expr.c (gfc_trans_assignment_1): Set the 'identical' + flag in the call to gfc_check_dependency. + +2018-09-30 Paul Thomas + + PR fortran/87359 + * trans-array.c (gfc_is_reallocatable_lhs): Correct the problem + introduced by r264358, which prevented components of associate + names from being reallocated on assignment. + +2018-09-30 Paul Thomas + + PR fortran/70752 + PR fortran/72709 + * trans-array.c (gfc_conv_scalarized_array_ref): If this is a + deferred type and the info->descriptor is present, use the + info->descriptor + (gfc_conv_array_ref): Is the se expr is a descriptor type, pass + it as 'decl' rather than the symbol backend_decl. + (gfc_array_allocate): If the se string_length is a component + reference, fix it and use it for the expression string length + if the latter is not a variable type. If it is a variable do + an assignment. Make use of component ref string lengths to set + the descriptor 'span'. + (gfc_conv_expr_descriptor): For pointer assignment, do not set + the span field if gfc_get_array_span returns zero. + * trans.c (get_array_span): If the upper bound a character type + is zero, use the descriptor span if available. + +2018-09-30 Paul Thomas + + PR fortran/70149 + * trans-decl.c (gfc_get_symbol_decl): A deferred character + length pointer that is initialized needs the string length to + be initialized as well. + +2018-09-29 Paul Thomas + + PR fortran/65677 + * trans-expr.c (gfc_trans_assignment_1): If there is dependency + fix the rse stringlength. + +2018-09-25 Martin Liska + + PR fortran/87394 + * decl.c (add_hidden_procptr_result): Simplify condition + as we are in branch witch 'case1 || case2'. + +2018-09-25 Martin Liska + + * trans.c (remove_suffix): Remove + unused function. + +2018-09-24 Thomas Koenig + + PR fortran/87397 + * gfc_conv_procedure_call: Do not add clobber on INTENT(OUT) + for variables in an associate statement. + +2018-09-24 Bernhard Reuther-Fischer + Cesar Philippidis + + * openmp.c (resolve_oacc_loop_blocks): + +2018-09-23 Thomas Koenig + + PR fortran/87397 + * gfc_conv_procedure_call: Do not add clobber on INTENT(OUT) + for variables having the dimension attribute. + +2018-09-23 Janne Blomqvist + + * trans-expr.c (gfc_caf_get_image_index): Do array index + calculations in gfc_array_index_type. + * trans-intrinsic.c (conv_intrinsic_event_query): Likewise. + * trans-stmt.c (gfc_trans_lock_unlock): Likewise. + (gfc_trans_event_post_wait): Likewise. + +2018-09-23 Thomas Koenig + + PR fortran/87395 + * gfc_conv_procedure_call: Reformat comments slightly. Do not add + clobber on INTENT(OUT) for saved variables. + +2018-09-22 Thomas Koenig + + PR fortran/41453 + * trans.h (gfc_conv_expr_reference): Add optional argument + add_clobber to prototype. + (gfc_conv_procedure_call): Set add_clobber argument to + gfc_conv_procedure_reference to true for scalar, INTENT(OUT), + non-pointer, non-allocatable, non-dummy variables whose type + is neither BT_CHARACTER, BT_DERIVED or BT_CLASS, but only if + the procedure is not elemental. + * trans-expr.c (gfc_conv_procedure_reference): Add clobber + statement before call if add_clobber is set. + +2018-09-22 Paul Thomas + + PR fortran/85603 + * trans-array.c (gfc_alloc_allocatable_for_assignment): Test + the charlen backend_decl before using the VAR_P macro. + +2018-09-21 Paul Thomas + + PR fortran/77325 + * trans-array.c (gfc_alloc_allocatable_for_assignment): If the + rhs has a charlen expression, convert that and use it. + * trans-expr.c (gfc_trans_assignment_1): The rse.pre for the + assignment of deferred character array vars to a realocatable + lhs should not be added to the exterior block since vector + indices, for example, generate temporaries indexed within the + loop. + +2018-09-21 Paul Thomas + + PR fortran/87359 + * trans-stmt.c (gfc_trans_allocate): Don't deallocate alloc + components if must_finalize is set for expr3. + +2018-09-21 Andrew Stubbs + Kwok Cheung Yeung + + * trans-expr.c (gfc_trans_structure_assign): Ensure that the first + argument of a call to _gfortran_caf_register is of size_type_node. + * trans-intrinsic.c (conv_intrinsic_event_query): Convert computed + index to a size_type_node type. + * trans-stmt.c (gfc_trans_event_post_wait): Likewise. + +2018-09-20 Allan Sandfeld Jensen + + * gfortranspec.c (lang_specific_driver): Handle -r like -nostdlib. + +2018-09-20 Janus Weil + + * gfortran.h (gfc_str_startswith): New macro. + * decl.c (variable_decl, gfc_match_end): Use it. + * iresolve.c (is_trig_resolved): Ditto. + * module.c (load_omp_udrs, read_module): Ditto. + * options.c (gfc_handle_runtime_check_option): Ditto. + * primary.c (match_arg_list_function): Ditto. + * trans-decl.c (gfc_get_symbol_decl): Ditto. + * trans-expr.c (gfc_conv_procedure_call): Ditto. + * interface.c (dtio_op): Replace strncmp by strcmp. + * resolve.c (resolve_actual_arglist, resolve_function): Ditto. + * trans-expr.c (conv_arglist_function): Ditto. + * trans-intrinsic.c (gfc_conv_ieee_arithmetic_function): Replace macro + STARTS_WITH by gfc_str_startswith. + +2018-09-20 Cesar Philippidis + + * dump-parse-tree.c (show_omp_clauses): Add missing omp list_types + and reorder the switch cases to match the enum in gfortran.h. + +2018-09-19 Paul Thomas + + PR fortran/84109 + * trans-expr.c (gfc_trans_assignment_1): The rse.pre for the + assignment of deferred character intrinsic elemental function + results to a realocatable lhs must not be added to the exterior + block if they are array valued but must go to the loop body. + +2018-09-18 Thomas Koenig + + PR fortran/29550 + * gfortran.h (gfc_expr): Add external_blas flag. + * frontend-passes.c (matrix_case): Add case A2TB2T. + (optimize_namespace): Handle flag_external_blas by + calling call_external_blas. + (get_array_inq_function): Add argument okind. If + it is nonzero, use it as the kind of argument + to be used. + (inline_limit_check): Remove m_case argument, add + limit argument instead. Remove assert about m_case. + Set the limit for inlining from the limit argument. + (matmul_lhs_realloc): Handle case A2TB2T. + (inline_matmul_assign): Handle inline limit for other cases with + two rank-two matrices. Remove no-op calls to inline_limit_check. + (call_external_blas): New function. + * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Do not add + argument to external BLAS if external_blas is already set. + +2018-09-18 Paul Thomas + + PR fortran/87239 + * trans-expr.c (gfc_trans_assignment_1): The rse.pre for the + assignment of deferred character elemental function results to + a realocatable lhs must not be added to the exterior block but + must go to the loop body. + +2018-09-18 Paul Thomas + + PR fortran/87336 + * trans-array.c (gfc_get_array_span): Try to get the element + length of incomplete types. Return NULL_TREE otherwise. + (gfc_conv_expr_descriptor): Only set the 'span' field if the + above does not return NULL_TREE. Set 'span' field if possible + for all new descriptors. + +2018-09-17 Paul Thomas + + PR fortran/64120 + * trans-decl.c (gfc_get_symbol_decl): Flag allocatable, scalar + characters with a variable length expression for deferred init. + (gfc_trans_deferred_vars): Perform the assignment for these + symbols by calling gfc_conv_string_length. + +2018-09-17 Paul Thomas + + PR fortran/85954 + * resolve.c (resolve_assoc_var): If the target expression is a + deferred charlen dummy and the associate name shares the + charlen, generate a new one. Make sure that new charlens are in + the namespace list so that they get cleaned up. + * trans-array.c (gfc_is_reallocatable_lhs): Associate names are + not reallocatable. + * trans-decl.c (gfc_get_symbol_decl): Put deferred character + length dummy and result arrays on the deferred initialization + list so that the variable length arrays can be correctly dealt + with. + * trans-expr.c (gfc_conv_string_length): Return if 'expr' is + NULL rather than ICEing.. + +2018-09-16 Janus Weil + + PR fortran/86484 + PR fortran/84543 + * match.c (gfc_match_assignment): For a polymorphic assignment, + make sure that the vtab for the rhs type is generated. + +2018-09-16 Thomas Koenig + + PR fortran/37802 + * frontend-passes.c (B_ERROR): New macro for matmul bounds + checking error messages. + (C_ERROR): Likewise. + (inline_matmul_assign): Reorganize bounds checking, use B_ERROR + and C_ERROR macros. + +2018-09-13 Bernd Edlinger + + * trans-array.c (gfc_conv_array_initializer): Remove excess precision + from overlength string initializers. + +2018-09-12 Paul Thomas + + PR fortran/87284 + * trans-expr.c (gfc_trans_class_init_assign): Access to + to array elements of the dynamic type requires that the array + reference be added to the class expression and not the _data + component, unlike scalar expressions. + +2018-09-11 Janus Weil + + PR fortran/87172 + * resolve.c (resolve_fl_derived): If a type has the 'use_assoc' + attribute, then it was declared in another module, so there should be + no error that it has not been declared. + +2018-09-11 Paul Thomas + + PR fortran/87277 + * expr.c (is_subref_array): Add the check of dimensionality for + class, dummy, pointer arrays. + +2018-09-11 Janus Weil + + PR fortran/86830 + * expr.c (gfc_is_simply_contiguous): Handle type-bound procedure calls + with non-polymorphic objects. + +2018-09-10 Janus Weil + + PR fortran/85395 + * decl.c (match_binding_attributes): Use correct default accessibility + for procedure pointer components. + +2018-09-03 Jerry DeLisle + + * simplify.c (gfc_simplify_modulo): Re-arrange code to test whether + 'P' is zero and issue an error if it is. + +2018-08-31 Paul Thomas + + PR fortran/86328 + PR fortran/86760 + * trans-array.c (gfc_conv_scalarized_array_ref): Do not fix + info->descriptor but pass it directly to gfc_build_array_ref. + (gfc_conv_array_ref): Likewise for se->expr. + * trans.c (gfc_build_array_ref): If 'decl' is a COMPONENT_REF + obtain the span field directly from it. + +2017-08-28 Paul Thomas + + PR fortran/80477 + * trans-expr.c (gfc_conv_procedure_call): Allocatable class + scalar results being passed to a derived type formal argument + are finalized if possible. Otherwise, rely on existing code for + deallocation. Make the deallocation of allocatable result + components conditional on finalization not taking place. Make + the freeing of data components after finalization conditional + on the data being NULL. + (gfc_trans_arrayfunc_assign): Change the gcc_assert to a + condition to return NULL_TREE. + (gfc_trans_assignment_1): If the assignment is class to class + and the rhs expression must be finalized but the assignment + is not marked as a polymorphic assignment, use the vptr copy + function instead of gfc_trans_scalar_assign. + + PR fortran/86481 + * trans-expr.c (gfc_conv_expr_reference): Do not add the post + block to the pre block if the expression is to be finalized. + * trans-stmt.c (gfc_trans_allocate): If the expr3 must be + finalized, load the post block into a finalization block and + add it right at the end of the allocation block. + +2018-08-27 David Malcolm + + PR 87091 + * error.c (gfc_format_decoder): Update for conversion of + show_caret_p to a tri-state. + +2018-08-25 Janus Weil + + PR fortran/86545 + * resolve.c (resolve_transfer): Correctly determine typespec for + generic function calls, in order to throw a proper error. + +2018-08-24 Thomas Koenig + + PR fortran/86837 + * frontend-passes.c (var_in_expr_callback): New function. + (var_in_expr): New function. + (traverse_io_block): Use var_in_expr instead of + gfc_check_dependency for checking if the variable depends on the + previous interators. + +2018-08-23 Janne Blomqvist + + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Delete + HONOR_SIGNED_ZEROS checks. + +2018-08-23 Paul Thomas + + PR fortran/86863 + * resolve.c (resolve_typebound_call): If the TBP is not marked + as a subroutine, check the specific symbol. + +2018-08-22 Thomas Koenig + + * gfortran.texi: Mention that asynchronous I/O does + not work on systems which lack condition variables, such + as AIX. + +2018-08-22 Janus Weil + + PR fortran/86935 + * match.c (gfc_match_associate): Improve diagnostics for the ASSOCIATE + statement. + +2018-08-22 Andrew Benson + + * module.c (load_generic_interfaces): Move call to find_symbol() + so that only occurs if actually needed. + +2018-08-22 Janus Weil + + PR fortran/86888 + * decl.c (gfc_match_data_decl): Allow allocatable components of + indirectly recursive type. + * resolve.c (resolve_component): Remove two errors messages ... + (resolve_fl_derived): ... and replace them by a new one. + +2018-08-21 Janne Blomqvist + + * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Use + MAX_EXPR/MIN_EXPR unconditionally for real arguments. + * gfortran.texi (Compiler Characteristics): Document MAX/MIN + behavior wrt NaN. + +2018-08-21 Nicolas Koenig + Thomas Koenig + + PR fortran/25829 + * gfortran.texi: Add description of asynchronous I/O. + * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables + as volatile. + * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to + st_wait_async and change argument spec from ".X" to ".w". + (gfc_trans_wait): Pass ID argument via reference. + +2018-08-16 Nathan Sidwell + + * cpp.c (dump_macro): Use cpp_user_macro_p. + +2018-08-14 Janus Weil + + PR fortran/86116 + * interface.c (compare_type): Remove a CLASS/TYPE check. + (compare_type_characteristics): New function that behaves like the old + 'compare_type'. + (gfc_check_dummy_characteristics, gfc_check_result_characteristics): + Call 'compare_type_characteristics' instead of 'compare_type'. + +2018-08-12 Paul Thomas + + PR fortran/66679 + * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Class array + elements are returned as references to the data element. Get + the class expression by stripping back the references. Use this + for the element size. + +2018-08-12 Paul Thomas + + PR fortran/86906 + * resolve.c (resolve_fl_variable_derived): Check if the derived + type is use associated before checking for the host association + error. + +2018-08-10 Janus Weil + + PR fortran/57160 + * invoke.texi (frontend-optimize): Mention short-circuiting. + * options.c (gfc_post_options): Disable -ffrontend-optimize with -Og. + * resolve.c (resolve_operator): Warn about short-circuiting only with + -ffrontend-optimize. + * trans-expr.c (gfc_conv_expr_op): Use short-circuiting operators only + with -ffrontend-optimize. Without that flag, make sure that both + operands are evaluated. + +2018-08-08 Nathan Sidwell + + * cpp.c (cb_file_change): Use linemap_included_from. + +2018-08-07 Cesar Philippidis + + * trans-stmt.h: Remove stale reference to trans-openacc.c. + +2018-08-04 Janus Weil + + PR fortran/45521 + * interface.c (gfc_compare_interfaces): Apply additional + distinguishability criteria of F08 to operator interfaces. + +2018-07-31 Andre Vieira + + Revert 'AsyncI/O patch committed' + 2018-07-25 Nicolas Koenig + Thomas Koenig + + PR fortran/25829 + * gfortran.texi: Add description of asynchronous I/O. + * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables + as volatile. + * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to + st_wait_async and change argument spec from ".X" to ".w". + (gfc_trans_wait): Pass ID argument via reference. + +2018-07-25 Nicolas Koenig + Thomas Koenig + + PR fortran/25829 + * gfortran.texi: Add description of asynchronous I/O. + * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables + as volatile. + * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to + st_wait_async and change argument spec from ".X" to ".w". + (gfc_trans_wait): Pass ID argument via reference. + +2018-07-20 Martin Sebor + + PR middle-end/82063 + * gfortran.h (gfc_handle_option): Change function argument + to HOST_WIDE_INT. + * options.c (gfc_handle_option): Same. + +2018-07-20 Andrew Benson + + * gfortran.h (gfc_symbol): Add pointer to next derived type. + (gfc_dt_list, gfc_get_dt_list): Remove. + (gfc_namespace): Replace gfc_dt_list with gfc_symbol. + * parse.c (resolve_all_program_units): Replace gfc_free_dt_list() with + simple nullification of gfc_derived_types. + * resolve.c (resolve_global_procedure): Replace gfc_dt_list with + gfc_symbol. + (add_dt_to_dt_list): Change derived type linked list insertion to + utilize dt_next pointers in gfc_symbol. + * symbol.c (gfc_new_symbol, gfc_free_dt_list, gfc_symbol_done2) + (get_iso_c_binding_dt, generate_isocbinding_symbol): Remove + gfc_free_dt_list as gfc_dt_list is obsoleted. Change derived type + linked list search/insertion to utilize dt_next pointers in gfc_symbol. + * trans-types.c (gfc_get_derived_type): Change derived type linked + list search to utilize dt_next pointers in gfc_symbol. + +2018-07-19 Kyrylo Tkachov + + * trans-intrinsic.c: (gfc_conv_intrinsic_minmax): Emit MIN_MAX_EXPR + or IFN_FMIN/FMAX sequence to calculate the min/max when possible. + +2018-07-18 Janus Weil + Thomas Koenig + + PR fortran/85599 + * dump-parse-tree.c (show_attr): Add handling of implicit_pure. + * frontend-passes.c (do_warn_function_elimination): Do not warn for + pure functions. + * gfortran.h: Add prototypes for gfc_pure_function and + gfc_implicit_pure_function. + * gfortran.texi: Add chapter on evaluation of logical expressions. + * invoke.texi: Mention that -Wfunction-elimination is implied + by -Wextra. + * lang.opt: Make -Wextra imply -Wfunction-elimination. + * resolve.c (pure_function): Rename to gfc_pure_function. + (gfc_implicit_pure_function): New function. + (check_pure_function): Use it here. + (impure_function_callback): New function. + (resolve_operator): Call it via gfc_expr_walker. + +2018-07-16 Fritz Reese + + PR fortran/83184 + * decl.c (match_old_style_init): Initialize locus of variable expr when + creating a data variable. + (match_clist_expr): Verify array is explicit shape/size before + attempting to allocate constant array constructor. + +2018-07-16 Fritz Reese + + PR fortran/86417 + * module.c (mio_component): Set component->loc when loading from module. + +2018-07-10 Jakub Jelinek + + PR fortran/86421 + * module.c (omp_declare_simd_clauses): Add LINEAR with _REF, _VAL and + _UVAL suffixes. + (mio_omp_declare_simd): Save and restore ref, val and uval modifiers + on linear clauses. Initialize n->where to gfc_current_locus. + +2018-07-05 Paul Thomas + + PR fortran/86408 + * resolve.c.c (resolve_contained_fntype): Reference to C418 is + in F2008 and not F2003. + (resolve_function): Ditto in error message. Also, exclude + deferred character length results from the error. + +2018-07-05 Fritz Reese + + PR fortran/83183 + PR fortran/86325 + * expr.c (class_allocatable, class_pointer, comp_allocatable, + comp_pointer): New helpers. + (component_initializer): Generate EXPR_NULL for allocatable or pointer + components. Do not generate initializers for components within BT_CLASS. + Do not assign to comp->initializer. + (gfc_generate_initializer): Use new helpers; move code to generate + EXPR_NULL for class allocatable components into component_initializer(). + +2018-07-04 Jerry DeLisle + + PR fortran/82009 + * trans-decl.c (gfc_process_block_locals): Delete assert and set + saved_local_decls = NULL_TREE. + +2018-07-02 Richard Biener + + PR lto/86321 + * trans-types.c (gfc_get_array_type_bounds): Unshare TYPE_FIELDs + for the distinct type copy. + +2018-07-02 Paul Thomas + + PR fortran/82969 + PR fortran/86242 + * trans-array.c (structure_alloc_comps): Do not explicitly copy + procedure pointer components. + +2018-07-02 Paul Thomas + + PR fortran/45305 + * expr.c : Add a prototype for scalarize_intrinsic_call. + (gfc_simplify_expr): Use scalarize_intrinsic_call for elemental + intrinsic function calls. + (scalarize_intrinsic_call): Add 'init_flag' argument. Check if + the expression or any of the actual argument expressions are + NULL. Before calling gfc_check_init_expr, check 'init_flag'. + Only simplify the scalarized expressions if there are no errors + on the stack. + (gfc_check_init_expr): Set 'init_flag' true in the call to + scalarize_intrinsic_call. + +2018-06-28 Fritz Reese + + PR fortran/82865 + * decl.c (gfc_match_type): Refactor and check for PDT declarations. + +2018-06-28 Martin Liska + + * gfortranspec.c: Include opt-suggestions.h. + +2018-06-25 Fritz Reese + + PR fortran/82972 + PR fortran/83088 + PR fortran/85851 + * expr.c (component_initializer): Assign init expr to c->initializer. + (generate_isocbinding_initializer): New. + (gfc_generate_initializer): Call generate_isocbinding_initializer to + generate initializers for c_ptr and c_funptr with -finit-derived. + +2018-06-23 Jerry DeLisle + + PR fortran/85983 + * interface.c (check_dtio_interface1): Delete assert. + +2018-06-22 Paul Thomas + Rainer Orth + + PR fortran/86281 + * resolve.c (resolve_contained_fntype): Check for the charlen + before testing the length. + +2018-06-21 Paul Thomas + + PR fortran/49630 + * resolve.c (resolve_contained_fntype): Change standard ref. + from F95 to F2003: C418. Correct a spelling error in a comment. + It is an error for an abstract interface to have an assumed + character length result. + * trans-expr.c (gfc_conv_procedure_call): Likewise change the + standard reference. + +2018-06-21 Paul Thomas + + PR fortran/83118 + * resolve.c (resolve_ordinary_assign): Force the creation of a + vtable for assignment of non-polymorphic expressions to an + unlimited polymorphic object. + * trans-array.c (gfc_alloc_allocatable_for_assignment): Use the + size of the rhs type for such assignments. Set the dtype, _len + and vptrs appropriately. + * trans-expr.c (gfc_trans_assignment): Force the use of the + _copy function for these assignments. + +2018-06-20 Chung-Lin Tang + Thomas Schwinge + Cesar Philippidis + + * gfortran.h (gfc_omp_clauses): Add unsigned if_present, finalize + bitfields. + * openmp.c (enum omp_mask2): Remove OMP_CLAUSE_PRESENT_OR_*. Add + OMP_CLAUSE_{IF_PRESENT,FINALIZE}. + (gfc_match_omp_clauses): Update handling of copy, copyin, copyout, + create, deviceptr, present_of_*. Add support for finalize and + if_present. + (OACC_PARALLEL_CLAUSES): Remove PRESENT_OR_* clauses. + (OACC_KERNELS_CLAUSES): Likewise. + (OACC_DATA_CLAUSES): Likewise. + (OACC_DECLARE_CLAUSES): Likewise. + (OACC_UPDATE_CLAUSES): Add IF_PRESENT clause. + (OACC_ENTER_DATA_CLAUSES): Remove PRESENT_OR_* clauses. + (OACC_EXIT_DATA_CLAUSES): Add FINALIZE clause. + (gfc_match_oacc_declare): Update to OpenACC 2.5 semantics. + * trans-openmp.c (gfc_trans_omp_clauses): Add support for IF_PRESENT + and FINALIZE. + +2018-06-18 Eric Botcazou + + * trans-decl.c (gfc_get_fake_result_decl): Revert latest change. + +2018-06-17 Eric Botcazou + + * trans-decl.c (nonlocal_dummy_decl_pset): Delete. + (nonlocal_dummy_decls): Likewise. + (gfc_nonlocal_dummy_array_decl): Likewise. + (gfc_get_symbol_decl): Do not call gfc_nonlocal_dummy_array_decl. + (gfc_get_fake_result_decl): Do not generate a new DECL if simply + reusing the result of a recursive call. + (gfc_generate_function_code): Do not create, insert and destroy + nonlocal_dummy_decls. + +2018-06-13 Steven G. Kargl + + PR fortran/86110 + * array.c (gfc_resolve_character_array_constructor): Avoid NULL + pointer dereference. + +2018-06-13 Cesar Philippidis + + PR fortran/85703 + * parse.c (decode_oacc_directive): Set gfc_matching_function + to false. + (decode_omp_directive): Likewise. + +2018-06-13 Cesar Philippidis + + PR fortran/85702 + * openmp.c (gfc_match_oacc_wait): Use %C to report error location. + +2018-06-12 David Malcolm + + PR other/69968 + * misc.c (gfc_closest_fuzzy_match): Update for renaming of + levenshtein_distance to get_edit_distance. + +2018-06-12 Steven G. Kargl + + PR fortran/44491 + * expr.c (gfc_check_assign): Select non-NULL locus. + +2018-06-11 Janus Weil + + PR fortran/45521 + * interface.c (compare_ptr_alloc): New function. + (generic_correspondence): Call it. + +2018-06-10 Thomas Koenig + + * gfortran.h (gfc_expr): Add no_bounds_check field. + * frontend-passes.c (get_array_inq_function): Set no_bounds_check + on function and function argument. + (inline_matmul_assign): Set no_bounds_check on zero expression + and on lhs of zero expression. + Also handle A1B2 case if realloc on assigment is active. + * trans-array.c (gfc_conv_array_ref): Don't do range checking + if expr has no_bounds_check set. + (gfc_conv_expr_descriptor): Set no_bounds_check on ss if expr + has it set. + * trans-expr.c (gfc_trans_assignment_1): Set no_bounds_check + on lss and lss if the corresponding expressions have it set. + +2018-06-10 Dominique d'Humieres + + PR fortran/79854 + * trans-const.c: Remove include "diagnostic-core.h". + (gfc_conv_constant_to_tree): Replace fatal_error with gcc_unreachable. + +2018-06-10 Janus Weil + + PR fortran/85088 + * decl.c (match_attr_spec): Synchronize the DECL_* enum values with the + INTENT_* values from the enum 'sym_intent'. Call 'match_intent_spec' + and remove a TODO note. + * gfortran.h: Add a comment to sym_intent. + +2018-06-09 Steven G. Kargl + + PR fortran/38351 + * resolve.c (resolve_operator): Provide better error message for + derived type entity used in an binary intrinsic numeric operator. + +2018-06-09 Steven G. Kargl + + PR fortran/85138 + PR fortran/85996 + PR fortran/86051 + * decl.c (gfc_match_char_spec): Use private namespace in attempt to + reduce a charlen to a constant. + +2018-06-09 Steven G. Kargl + + PR fortran/78278 + * data.c (gfc_assign_data_value): Re-arrange code to allow for + an error for double initialization of CHARACTER entities. + +2018-06-09 Steven G. Kargl + + PR fortran/63514 + * symbol.c (gfc_add_volatile): Enforce F2008:C1282 and F2018:C1588. + +2018-06-08 Thomas Koenig + + PR fortran/85631 + * trans.h (gfc_ss): Add field no_bounds_check. + * trans-array.c (gfc_conv_ss_startstride): If flag_realloc_lhs and + ss->no_bounds_check is set, do not use runtime checks. + * trans-expr.c (gfc_trans_assignment_1): Set lss->no_bounds_check + for reallocatable lhs. + +2018-06-08 Steven G. Kargl + + PR fortran/86059 + * array.c (match_array_cons_element): NULL() cannot be in an + array constructor. + +2018-06-08 Steven G. Kargl + + PR fortran/78571 + * data.c (create_character_initializer): Return early if type is + incompatible with CHARACTER. + +2018-06-07 Steven G. Kargl + + PR fortran/86045 + * simplify.c (gfc_simplify_mod): Re-arrange code to test whether + 'P' is zero and issue an error if it is. + +2018-06-06 Thomas Koenig + + PR fortran/85641 + * frontend-passes.c (is_fe_temp): Add prototype. + (realloc_string_callback): Early return for frontend-generated + temporary. + +2018-06-05 Cesar Philippidis + + PR fortran/85701 + + * openmp.c (gfc_resolve_oacc_declare): Error on functions and + subroutine data clause arguments. + +2018-06-04 Steven G. Kargl + + PR fortran/85981 + * resolve.c (resolve_allocate_deallocate): Check errmsg is default + character kind. + +2018-06-03 Paul Thomas + + PR fortran/36497 + * decl.c (variable_decl): Use gfc_add_type for cray pointees. + +2018-06-01 Steven G. Kargl + + PR fortran/63570 + * check.c (gfc_check_random_init): New function. Check arguments of + RANDOM_INIT. + * gfortran.h (GFC_ISYM_RANDOM_INIT): New enum token. + * intrinsic.c (add_subroutines): Add RANDOM_INIT to list of + subroutines. + (gfc_check_intrinsic_standard): Introduce Fortran 2018 check. + * intrinsic.h: Add prototypes for gfc_check_random_init and + gfc_resolve_random_init + * intrinsic.texi: Document new intrinsic subprogram. + * iresolve.c (gfc_resolve_random_init): Resolve routine name. + * trans-decl.c: Declare gfor_fndecl_random_init + * trans-intrinsic.c (conv_intrinsic_random_init): New function. + Translate call to RANDOM_INIT. + (gfc_conv_intrinsic_subroutine): Call it. + * trans.h: Declare gfor_fndecl_random_init + +2018-05-27 Steven G. Kargl + + * decl.c (match_data_constant): Fortran 2018 allows pointer + initialization in a data statement. + +2018-05-25 Janus Weil + + PR fortran/85839 + * match.c (gfc_match_block_data): Call gfc_notify_std to warn about + an obsolescent feature in Fortran 2018. + (gfc_match_equivalence): Ditto. + * resolve.c (resolve_common_blocks): Ditto. + (gfc_resolve_forall): Ditto. + * symbol.c (gfc_define_st_label): Ditto. + +2018-05-24 Steven G. Kargl + + PR fortran/85543 + * resolve.c (update_current_proc_array_outer_dependency): Avoid NULL + pointer dereference. + +2018-05-24 Steven G. Kargl + + PR fortran/85780 + * resolve.c (resolve_fl_procedure): Avoid NULL dereference. + +2018-05-24 Steven G. Kargl + + PR fortran/85779 + * decl.c (gfc_match_derived_decl): Fix NULL point dereference. + +2018-05-24 Steven G. Kargl + + PR fortran/85895 + * resolve.c (resolve_sync): Resolve expression before checking for + an error. + +2018-05-22 Janus Weil + + PR fortran/85841 + * libgfortran.h: Remove the macros GFC_STD_F2008_TS and + GFC_STD_OPT_F08TS. + * error.c (notify_std_msg): Remove GFC_STD_F2008_TS. + * options.c (set_default_std_flags): Ditto. + (gfc_handle_option): Make -std=f2008ts an alias for -std=f2018. + * array.c (gfc_match_array_spec): Replace GFC_STD_F2008_TS by + GFC_STD_F2018. + * check.c (gfc_check_atomic, gfc_check_event_query, + gfc_check_c_f_pointer, gfc_check_c_f_procpointer, gfc_check_c_funloc, + gfc_check_c_loc, gfc_check_num_images, gfc_check_this_image): Ditto. + * decl.c (gfc_verify_c_interop_param, gfc_match_decl_type_spec): Ditto. + * intrinsic.c (add_functions, add_subroutines, + gfc_check_intrinsic_standard): Ditto. + * iso-c-binding.def: Ditto. + * iso-fortran-env.def: Ditto. + * match.c (gfc_match_event_post, gfc_match_event_wait, + gfc_match_fail_image, gfc_match_form_team, gfc_match_change_team, + gfc_match_end_team, gfc_match_sync_team): Ditto. + * gfortran.texi: Remove mention of -std=f2008ts. + Move TSs into F2018 section. + * invoke.texi: Update documentation of -std=f2008ts. + +2018-05-21 Janus Weil + + PR fortran/85841 + * libgfortran.h: New macros GFC_STD_OPT_*. + * error.c (notify_std_msg): New function. + (gfc_notify_std): Adjust such that it can handle combinations of + GFC_STD_* flags in the 'std' argument, not just a single one. + * match.c (match_arithmetic_if, gfc_match_if): Reject arithmetic if + in Fortran 2018. + (gfc_match_stopcode): Use GFC_STD_OPT_* macros. + * options.c (set_default_std_flags): Warn for F2018 deleted features + by default. + (gfc_handle_option): F2018 deleted features are allowed in earlier + standards. + * symbol.c (gfc_define_st_label, gfc_reference_st_label): Reject + nonblock do constructs in Fortran 2018. + +2018-05-20 Paul Thomas + + PR fortran/80657 + * resolve.c (flag_fn_result_spec): Use the 'sym' argument to + test for self refs to the function result in the character len + expression. If a self reference is found, emit an error and + return true. + (resolve_fntype): Use the function symbol in the calls to the + above. + +2018-05-20 Paul Thomas + + PR fortran/49636 + * trans-array.c (gfc_get_array_span): Renamed from + 'get_array_span'. + (gfc_conv_expr_descriptor): Change references to above. + * trans-array.h : Add prototype for 'gfc_get_array_span'. + * trans-intrinsic.c (gfc_conv_associated): Add pre and post + blocks for 'arg1'. + * trans-stmt.c (trans_associate_var): If the associate name is + a subref array pointer, use gfc_get_array_span for the span. + +2018-05-20 Paul Thomas + + PR fortran/82275 + * match.c (gfc_match_type_spec): Go through the array ref and + decrement 'rank' for every dimension that is an element. + +2018-05-19 Paul Thomas + + PR fortran/82923 + PR fortran/66694 + PR fortran/82617 + * trans-array.c (gfc_alloc_allocatable_for_assignment): Set the + charlen backend_decl of the rhs expr to ss->info->string_length + so that the value in the current scope is used. + +2018-05-13 Steven G. Kargl + + PR fortran/63529 + * gfortran.texi: Clarify documentation for Cray pointer and + assumed-sized array. + +2018-05-13 Paul Thomas + + PR fortran/85742 + * trans-types.c (gfc_get_dtype_rank_type): Reorder evaluation + of 'size'. If the element type is a pointer use the size of the + TREE_TYPE of the type, unless it is VOID_TYPE. In this latter + case, set the size to zero. + +2018-05-13 Steven G. Kargl + + * gfortran.h: Remove prototype. + * symbol.c (gfc_new_undo_checkpoint): Remove unused function. + +2018-05-11 Steven G. Kargl + + PR fortran/85542 + * expr.c (check_inquiry): Avoid NULL pointer dereference. + +2018-05-10 Steven G. Kargl + + PR fortran/85687 + * check.c (gfc_check_rank): Check that the argument is a data object. + +2018-05-10 Steven G. Kargl + + PR fortran/85521 + * array.c (gfc_resolve_character_array_constructor): Substrings + with upper bound smaller than lower bound are zero length strings. + +2018-05-10 Steven G. Kargl + + PR fortran/70870 + * data.c (gfc_assign_data_value): Check that a data object does + not also have default initialization. + +2018-05-10 Marek Polacek + + PR fortran/85735 + * options.c (gfc_post_options): Set main_input_filename. + +2018-05-10 Thomas Koenig + + PR fortran/54613 + * intrinsic.texi: Document BACK for MINLOC and MAXLOC. + +2018-05-10 Paul Thomas + + PR fortran/68846 + PR fortran/70864 + * resolve.c (get_temp_from_expr): The temporary must not have + dummy or intent attributes. + +2018-05-08 Thomas Koenig + + PR fortran/54613 + * check.c (gfc_check_minmaxloc): Remove error for BACK not being + implemented. Use gfc_logical_4_kind for BACK. + * simplify.c (min_max_choose): Add optional argument back_val. + Handle it. + (simplify_minmaxloc_to_scalar): Add argument back_val. Pass + back_val to min_max_choose. + (simplify_minmaxloc_to_nodim): Likewise. + (simplify_minmaxloc_to_array): Likewise. + (gfc_simplify_minmaxloc): Add argument back, handle it. + Pass back_val to specific simplification functions. + (gfc_simplify_minloc): Remove ATTRIBUTE_UNUSED from argument back, + pass it on to gfc_simplify_minmaxloc. + (gfc_simplify_maxloc): Likewise. + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Adjust + comment. If BACK is true, use greater or equal (or lesser or + equal) insteal of greater (or lesser). Mark the condition of + having found a value which exceeds the limit as unlikely. + +2018-05-07 Jeff Law + + * scanner.c (preprocessor_line): Call linemap_add after a line + directive that changes the current filename. + +2018-05-06 Andre Vehreschild + + PR fortran/85507 + * dependency.c (gfc_dep_resolver): Revert looking at coarray dimension + introduced by r259385. + * trans-intrinsic.c (conv_caf_send): Always report a dependency for + same variables in coarray assignments. + +2018-05-02 Tom de Vries + + PR libgomp/82428 + * f95-lang.c (DEF_GOACC_BUILTIN_ONLY): Define. + +2018-04-24 Steven G. Kargl + + PR fortran/85520 + * decl.c (gfc_match_char_spec): Check for negative length and set to 0. + +2018-04-14 Andre Vehreschild + + PR fortran/81773 + PR fortran/83606 + * dependency.c (gfc_dep_resolver): Coarray indexes are to be ignored + during dependency computation. They define no data dependency. + * trans-array.c (conv_array_index_offset): The stride can not be set + here, prevent fail. + * trans-intrinsic.c (conv_caf_send): Add creation of temporary array + for caf_get's result and copying to the array with vectorial + indexing. + +2018-04-14 Thomas Koenig + + PR fortran/85387 + * frontend-passes.c (traverse_io_block): Check for start, end or + stride being defined by an outer implied DO loop. + +2018-04-12 Thomas Koenig + + PR fortran/83064 + PR testsuite/85346 + * trans-stmt.c (gfc_trans_forall_loop): Use annot_expr_ivdep_kind + for annotation and remove dependence on -ftree-parallelize-loops. + +2018-04-10 Jakub Jelinek + + PR fortran/85313 + * openmp.c (resolve_omp_do): Remove bogus if (j < i) break;. + (resolve_oacc_nested_loops): Likewise. Formatting fix. + +2018-04-09 Thomas Koenig + + PR fortran/83064 + * trans-stmt.c (gfc_trans_forall_loop): Remove annotation for + parallell processing of DO CONCURRENT -ftree-parallelize-loops + is set. + +2018-04-09 Thomas Koenig + + PR fortran/51260 + * resolve.c (resolve_variable): Simplify cases where access to a + parameter array results in a single constant. + +2018-04-02 Thomas Koenig + + PR fortran/85102 + * decl.c (variable_decl): If upper or lower bounds simplify + to a constant, use that. + +2018-03-30 Paul Thomas + + PR fortran/84931 + * simplify.c (gfc_convert_constant): Handle case of array + constructors within an array that has no iterator and improve + the conciseness of this section of code. + +2017-03-30 Thomas Koenig + + PR fortran/85111 + * array.c (gfc_resolve_character_array_constructor): Early + exit for zero-size arrays. + * simplify.c (simplify_transformation_to_array): Exit early + if the result size is zero. + (simplify_minmaxloc_to_array): Likewise. + +2018-03-28 Mikael Morin + + PR fortran/69497 + * symbol.c (gfc_symbol_done_2): Start freeing namespaces + from the root. + (gfc_free_namespace): Restore assert (revert r258839). + +2018-03-28 Jakub Jelinek + + * gfortran.h (gfc_dt): Rename default_exp field to dec_ext. + * ioparm.def (IOPARM_dt_default_exp): Rename to ... + (IOPARM_dt_dec_ext): ... this. + * trans-io.c (build_dt): Adjust for default_exp renaming to + dec_ext and IOPARM_dt_default_exp renaming to IOPARM_dt_dec_ext. + * io.c (match_io): Likewise. + +2018-03-27 Thomas Koenig + + PR fortran/85084 + * frontend-passes.c (gfc_run_passes): Do not run front-end + optimizations if a previous error occurred. + +2018-03-27 Thomas Koenig + Harald Anlauf + + PR fortran/85083 + * primary.c (gfc_convert_to_structure_constructor): Check + conformance of argument types in structure constructor. + +2018-03-26 Thomas Koenig + + PR fortran/66709 + * io.c: Include constructor.h. + (resolve_tag_format): For a constant character array, concatenate + into a single character expression. + +2018-03-25 Seth Johnson + Dominique d'Humieres + + PR fortran/84924 + * check.c (gfc_check_c_f_pointer): Allow scalar noninteroperable + scalar derived type with -std=f2003 and -std=f2008. + +2018-03-24 Jerry DeLisle + Dominique d'Humieres + + PR fortran/69497 + * symbol.c (gfc_free_namespace): Delete the assert and only if + refs count is equals zero, free the namespace. Otherwise, + something is halfway and other errors will resound. + +2018-03-24 Thomas Koenig + + PR fortran/70068 + * expr.c (find_substring_ref): Change types of start, end + and length variables to gfc_charlen_t. Set length to zero + for empty substring. + +2018-03-24 Steven G. Kargl + + PR fortran/42651 + * decl.c (check_function_name): Improved error message + (gfc_match_volatile, gfc_match_asynchronous) Use check_function_name. + +2018-03-22 Steven G. Kargl + + PR fortran/84922 + * decl.c (get_proc_name): If the MODULE prefix appears in interface + body, then it must appear on the contained subroutine or function. + While here, fix nearby mis-indented code. + +2018-03-21 Thomas Koenig + Harald Anlauf + + PR fortran/84957 + * trans-types.c (gfc_sym_type): Do not dereference NULL pointer. + +2018-03-21 Janne Blomqvist + + PR fortran/84615 + * trans-expr.c (gfc_conv_procedure_call): Convert charlen to + gfc_charlen_type_node when calling procedure. + +2018-03-20 Steven G. Kargl + + PR fortran/85001 + * interface.c (symbol_rank): Remove bogus null pointer check that + crept in when translating a ternary operator into an if-else + constructor. + +2018-03-19 Thomas Koenig + + PR fortran/84931 + * simplify.c (gfc_convert_constant): Correctly handle iterators + for type conversion. + +2018-03-18 Steven G. Kargl + + PR fortran/77414 + * decl.c (get_proc_name): Check for a subroutine re-defined in + the contain portion of a subroutine. Change language of existing + error message to better describe the issue. While here fix whitespace + issues. + +2018-03-18 Steven G. Kargl + + PR fortran/65453 + * decl.c (get_proc_name): Catch clash between a procedure statement + and a contained subprogram + +2018-03-16 Steven G. Kargl + + PR fortran/69395 + * decl.c (merge_array_spec): Correct the error condition. + +2018-03-15 Steven G. Kargl + + PR fortran/78741 + * decl.c (get_proc_name): Check for clash of entry name with + subroutine name. + +2018-03-15 Steven G. Kargl + + PR fortran/69395 + * decl.c (merge_array_spec): Limit the merging to maximum allowed + dimensions, and issue error message if limit is exceeded. + +2018-03-13 Steven G. Kargl + + * check.c (gfc_check_kill_sub): Remove check for INTEGER(4) or (8). + * intrinsic.c (add_functions): Remove reference to gfc_resolve_kill. + (add_subroutines): Remove reference to gfc_resolve_kill_sub. + * intrinsic.texi: Update documentation. + * iresolve.c (gfc_resolve_kill, gfc_resolve_kill_sub): Remove. + * trans-decl.c (gfc_build_intrinsic_function_decls): Add + gfor_fndecl_kill and gfor_fndecl_kill_sub + * trans-intrinsic.c (conv_intrinsic_kill, conv_intrinsic_kill_sub): new + functions. + (gfc_conv_intrinsic_function): Use conv_intrinsic_kill. + (gfc_conv_intrinsic_subroutine): Use conv_intrinsic_kill_sub. + * trans.h: Declare gfor_fndecl_kill and gfor_fndecl_kill_sub. + +2018-03-11 Paul Thomas + + PR fortran/84546 + * trans-array.c (structure_alloc_comps): Make sure that the + vptr is copied and that the unlimited polymorphic _len is used + to compute the size to be allocated. + * trans-expr.c (gfc_get_class_array_ref): If unlimited, use the + unlimited polymorphic _len for the offset to the element. + (gfc_copy_class_to_class): Set the new 'unlimited' argument. + * trans.h : Add the boolean 'unlimited' to the prototype. + +2018-03-11 Steven G. Kargl + + PR fortran/83939 + * resolve.c (resolve_fl_procedure): Enforce F2018:C15100. + +2018-03-11 Steven G. Kargl + + * check.c (gfc_check_kill): Check pid and sig are scalar. + (gfc_check_kill_sub): Restrict kind to 4 and 8. + * intrinsic.c (add_function): Sort keyword list. Add pid and sig + keywords for KILL. Remove redundant *back="back" in favor of the + original *bck="back". + (add_subroutines): Sort keyword list. Add pid and sig keywords + for KILL. + * intrinsic.texi: Fix documentation to consistently use pid and sig. + * iresolve.c (gfc_resolve_kill): Kind can only be 4 or 8. Choose the + correct function. + (gfc_resolve_rename_sub): Add comment. + +2018-03-11 Thomas Koenig + + PR fortran/66128 + * simplify.c (simplify_transformation): Return default result for + empty array argument. + (gfc_simplify_all): Remove special-case handling for zerosize. + (gfc_simplify_any): Likewise. + (gfc_simplify_count): Likewise. + (gfc_simplify_iall): Likewise. + (gfc_simplify_iany): Likewise. + (gfc_simplify_iparity): Likewise. + (gfc_simplify_minval): Likewise. + (gfc_simplify_maxval): Likewise. + (gfc_simplify_norm2): Likewise. + (gfc_simplify_product): Likewise. + (gfc_simplify_sum): Likewise. + +2018-03-10 Steven G. Kargl + + PR fortran/84734 + * arith.c (check_result, eval_intrinsic): If result overflows, pass + the expression up the chain instead of a NULL pointer. + +2018-03-07 Steven G. Kargl + + PR fortran/64124 + PR fortran/70409 + * decl.c (gfc_match_char_spec): Try to reduce a charlen to a constant. + +2017-03-06 Thomas Koenig + + PR fortran/84697 + PR fortran/66128 + * expr.c (simplify_parameter_variable): If p is a size zero array + and not an ARRAY_EXPR insert an empty array constructor and + return. + * gfortran.h: Add prototype for gfc_is_size_zero_array. + * simplify.c (is_size_zero_array): Make non-static and rename into + (gfc_is_size_zero_array): Check for parameter arrays of zero + size by comparing shape and absence of constructor. + (gfc_simplify_all): Use gfc_is_size_zero_array instead of + is_size_zero_array. + (gfc_simplify_count): Likewise. + (gfc_simplify_iall): Likewise. + (gfc_simplify_iany): Likewise. + (gfc_simplify_iparity): Likewise. + (gfc_simplify_minval): Likewise. + (gfc_simplify_maxval): Likewise. + (gfc_simplify_product): Likewise. + (gfc_simplify_sum): Likewise. + +2018-03-06 Steven G. Kargl + + PR fortran/56667 + * primary.c (match_sym_complex_part): Give the matcher for an implied + do-loop a chance to run. + +2018-03-03 Harald Anlauf + + PR fortran/71085 + * trans-expr.c (gfc_apply_interface_mapping_to_expr): Do not + dereference NULL pointer. + +2018-03-03 Steven G. Kargl + + PR fortran/66128 + * simplify.c (is_size_zero_array): New function to check for size + zero array. + (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count, + gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity, + gfc_simplify_minval, gfc_simplify_maxval, gfc_simplify_norm2, + gfc_simplify_product, gfc_simplify_sum): Use it, and implement + requirements from F2018. + +2018-03-03 Steven G. Kargl + + PR fortran/51434 + * simplify.c (gfc_simplify_transfer): Resolve mold. + +2018-03-03 Paul Thomas + + PR fortran/80965 + * resolve.c (build_loc_call): Change symtree name from 'loc' to + '_loc'. + +2018-03-01 Paul Thomas + + PR fortran/84219 + * target-memory.c (gfc_interpret_derived): Assert that BT_VOID + components are caf tokens. + (gfc_target_interpret_expr): Treat BT_VOID expressions as + integers. + +2018-03-01 Paul Thomas + + PR fortran/84538 + * class.c (class_array_ref_detected): Remove the condition that + there be no reference after the array reference. + (find_intrinsic_vtab): Remove excess whitespace. + * trans-array.c (gfc_conv_scalarized_array_ref): Rename 'tmp' + as 'base and call build_class_array_ref earlier. + +2018-02-28 Paul Thomas + + PR fortran/83901 + * trans-stmt.c (trans_associate_var): Make sure that the se + expression is a pointer type before converting it to the symbol + backend_decl type. + +2018-02-25 Steven G. Kargl + + PR fortran/83633 + * decl.c (variable_decl): Check that an explicit-shape-array with + nonconstant bounds is allowed. + +2018-02-25 Paul Thomas + + PR fortran/84523 + * trans-intrinsic.c (gfc_conv_allocated): If the argument se + has a pre block, add it to the expression pre block. + +2018-02-25 Thomas Koenig + + PR fortran/78238 + * gfortran.h (gfc_integer_4_kind): Define. + * resolve.c (resolve_select_type): Make sure that the + kind of c->high is gfc_integer_4_kind. + +2018-02-24 Steven G. Kargl + + PR fortran/30792 + * decl.c (gfc_match_data): Check for invalid substring in + data-implied-do + +2018-02-23 Steven G. Kargl + + * intrinsic.texi: Arguments to MATMUL cannot both be rank one. + +2018-02-23 Steven G. Kargl + + PR fortran/84511 + * trans-io.c (transfer_expr): Deal with C_LOC in transfer statement. + +2018-02-23 Steven G. Kargl + + PR fortran/84346 + * interface.c (compare_actual_formal): Issue error if keyword is + used in a statement function. + +2018-02-23 Jerry DeLisle + + PR fortran/84506 + * trans-io.c (set_parameter_value_inquire): Adjust range check of + negative unit values for kind=8 units to the kind=4 negative limit. + +2018-02-23 Paul Thomas + + PR fortran/83149 + * trans-types.c (gfc_sym_type): Test sym->ns->proc_name before + accessing its components. + +2018-02-23 Paul Thomas + + PR fortran/83149 + * trans-decl.c (gfc_finish_var_decl): Test sym->ns->proc_name + before accessing its components. + +2018-02-23 Paul Thomas + + PR fortran/83148 + * trans-const.c : Clean up some whitespace issues. + * trans-expr.c (gfc_conv_initializer): If an iso_c_binding + derived type has a kind value of zero, set it to the default + integer kind. + +2018-02-23 Janne Blomqvist + + PR fortran/84519 + * trans-decl.c (gfc_build_builtin_function_decls): Add bool + argument to stop and error stop decls. + * trans-stmt.c (gfc_trans_stop): Add false value to argument + lists. + +2018-02-22 Janne Blomqvist + + PR 78534 + PR 84509 + * trans-decl.c (gfc_build_builtin_function_decls): Pass + gfc_int8_type node to pause_numeric, size_type_node to + pause_string. + * trans-stmt.c (gfc_trans_pause): Likewise. + +2018-02-22 Janne Blomqvist + + * gfortran.texi: Update Coarray API description. + * trans-decl.c (gfc_build_builtin_function_decls): Use size_t for + character lengths, int for exit codes. + (generate_coarray_sym_init): Use size_t for character length. + * trans-intrinsic.c (conv_co_collective): Likewise. + * trans-stmt.c (gfc_trans_lock_unlock): Likewise. + (gfc_trans_event_post_wait): Likewise. + (gfc_trans_sync): Likewise. + (gfc_trans_stop): Use size_t for character lengths, int for exit + codes. + +2018-02-20 Thomas Koenig + + PR fortran/48890 + PR fortran/83823 + * primary.c (gfc_convert_to_structure_constructor): + For a constant string constructor, make sure the length + is correct. + +2018-02-19 Paul Thomas + + PR fortran/83344 + PR fortran/83975 + * resolve.c (resolve_assoc_var): Rearrange the logic for the + determination of the character length of associate names. If + the associate name is missing a length expression or the length + expression is not a constant and the target is not a variable, + make the associate name allocatable and deferred length. + * trans-decl.c (gfc_get_symbol_decl): Null the character length + backend_decl for deferred length associate names that are not + variables. Set 'length' to gfc_index_zero_node for character + associate names, whose character length is a PARM_DECL. + +2018-02-19 Thomas Koenig + + PR fortran/35339 + * frontend-passes.c (traverse_io_block): Remove workaround for + PR 80945. + +2018-02-19 Andre Vehreschild + + * gfortran.texi: Document additional src/dst_type. Fix some typos. + * trans-decl.c (gfc_build_builtin_function_decls): Declare the new + argument of _caf_*_by_ref () with * e { get, send, sendget }. + * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Add the type of the + data referenced when generating a call to caf_get_by_ref (). + (conv_caf_send): Same but for caf_send_by_ref () and + caf_sendget_by_ref (). + +2018-02-18 Jerry DeLisle + + PR fortran/84389 + * io.c (check_format): Allow FMT_COLON. + +2018-02-18 Paul Thomas + + PR fortran/80945 + * trans-array.c (gfc_conv_expr_descriptor): Set parmtype from + the typenode in the case of deferred length characters. + +2018-02-17 Thomas Koenig + + PR fortran/84270 + * frontend-passes (scalarized_expr): If the expression + is an assumed size array, leave in the last reference + and pass AR_SECTION instead of AR_FULL to gfc_resolve + in order to avoid an error. + +2018-02-17 Paul Thomas + + PR fortran/84115 + * resolve.c (resolve_assoc_var): If a non-constant target expr. + has no string length expression, make the associate variable + into a deferred length, allocatable symbol. + * trans-decl.c (gfc_is_reallocatable_lhs): Add and use a ptr to + the symbol. + * trans-stmt.c (trans_associate_var): Null and free scalar + associate names that are allocatable. After assignment, remove + the allocatable attribute to prevent reallocation. + +2018-02-16 Jakub Jelinek + + PR fortran/84418 + * trans-openmp.c (gfc_trans_omp_clauses): For OMP_CLAUSE_LINEAR_REF + kind set OMP_CLAUSE_LINEAR_STEP to TYPE_SIZE_UNIT times last_step. + +2018-02-16 Dominique d'Humieres + + PR fortran/84354 + * decl.c (gfc_get_pdt_instance): Replace '%qs' with %qs. + +2018-02-15 Janus Weil + + PR fortran/84409 + * interface.c (check_dtio_arg_TKR_intent): Add a check for character + length. + +2018-02-14 Janus Weil + + PR fortran/84385 + * match.c (gfc_match_select_type): Fix check for selector in + SELECT TYPE statement. + +2018-02-13 Janus Weil + + PR fortran/84313 + * symbol.c (check_conflict): Reject procedure pointers in common blocks. + +2018-02-13 Alastair McKinstry + Janne Blomqvist + + * module.c (dump_module): Use lbasename to ensure that module + files are reproducible. + +2018-02-12 Janus Weil + + PR fortran/84273 + * resolve.c (resolve_component): Fix checks of passed argument in + procedure-pointer components. + +2018-02-11 Francois-Xavier Coudert + + PR fortran/35299 + * resolve.c (resolve_formal_arglist): Update error message. + +2018-02-11 Andre Vehreschild + + * gfortran.texi: Fix typos in documentation of caf_register (). + * trans-array.c (structure_alloc_comps): Only register a component of + a derived typed corray, not of an ultimate component coarray. + +2018-02-11 Steven G. Kargl + + PR fortran/54223 + PR fortran/84276 + * interface.c (compare_actual_formal): Add in_statement_function + bool parameter. Skip check of INTENT attribute for statement + functions. Arguments to a statement function cannot be optional, + issue error for missing argument. + (gfc_procedure_use, gfc_ppc_use, gfc_arglist_matches_symbol): Use + in_statement_function. + +2018-02-11 Paul Thomas + + PR fortran/84074 + * trans-expr.c (gfc_conv_derived_to_class): Set the use_offset + flag. If the is a vector subscript or the expression is not a + variable, make the descriptor one-based. + +2018-02-10 Paul Thomas + + PR fortran/84141 + PR fortran/84155 + * trans-array.c (gfc_array_init_size): Revert the change made + in revision 257356 setting the dtype. + * trans-types.c (gfc_get_dtype): Do not use the cached dtype. + Call gfc_get_dtype_rank_type every time. + + PR fortran/56691 + * trans-array.c (gfc_conv_expr_descriptor): If the source array + is a descriptor type, use its offset, removing the condition + that is be a class expression. + +2018-02-07 Steven G. Kargl + + PR fortran/82994 + * match.c (gfc_match_deallocate): Check for NULL pointer. + +2018-02-07 Thomas Koenig + + PR fortran/68560 + * trans-intrinsic.c (gfc_conv_intrinsic_shape): New function. + (gfc_conv_intrinsic_function): Call it. + +2018-02-07 Steven G. Kargl + + PR fortran/82049 + * match.c (gfc_match_type_spec): If the charlen is non-NULL, then + try to resolve it. While here return early if possible. + +2018-02-04 Paul Thomas + + PR fortran/84115 + * trans-decl.c (gfc_get_symbol_decl): Do not finish the decl of + 'length' if the symbol charlen backend_decl is an indirect ref. + +2018-02-03 Paul Thomas + + PR fortran/84141 + PR fortran/84155 + * trans-array.c (gfc_array_init_size): Instead of gfc_get_dtype + use gfc_get_dtype_rank_type. + +2018-02-01 Janne Blomqvist + + PR 83975 + PR 83344 + * resolve.c (resolve_assoc_var): Generate an error if + target length unknown. + +2018-02-01 Janne Blomqvist + + PR fortran/83705 + * simplify.c (gfc_simplify_repeat): Increase limit for deferring + to runtime, print a warning message. + +2018-01-31 Jakub Jelinek + + PR fortran/84116 + * openmp.c (gfc_match_omp_clauses): If all the linear + gfc_match_omp_variable_list calls failed, don't gfc_free_omp_namelist + nor set *head = NULL. Formatting fixes. + +2018-01-31 Paul Thomas + + PR fortran/84088 + * trans-expr.c (gfc_conv_procedure_call): If the parm expr is + an address expression passed to an assumed rank dummy, convert + to an indirect reference. + +2018-01-31 Thomas Koenig + + * dump-parse-tree.c (write_proc): Use sym_name (which may + be sym->binding_label) instead of sym->name. + +2018-01-31 Janne Blomqvist + + * trans-const.c (gfc_conv_string_init): Use gfc_charlen_t instead + of int for slen. + +2018-01-31 Janne Blomqvist + + PR fortran/78534 + * trans-expr.c (fill_with_spaces): Use memset instead of + generating loop. + (gfc_trans_string_copy): Improve opportunity to use builtins with + constant lengths. + +2018-01-30 Jakub Jelinek + + PR debug/84131 + * trans-array.c (gfc_get_descriptor_offsets_for_info): Set *data_off + to DATA_FIELD's offset rather than OFFSET_FIELD's offset. + +2018-01-30 Thomas Koenig + + PR fortran/84134 + * array.c (gfc_ref_dimen_size): Whitespace fixes. If stride is + zero, return false. + +2018-01-30 Thomas Koenig + + PR fortran/84133 + * frontend-passes (matmul_to_var_expr): Return early if + in association list. + (inline_matmul_assign): Likewise. + +2017-01-29 Thomas Koenig + + PR fortran/84073 + * resolve.c (resolve_component): Ensure BIND(C) character + components have length one. + (resolve_symbol): Likewise for variables. + +2018-01-27 Jakub Jelinek + + PR fortran/84065 + * decl.c (add_init_expr_to_sym): Ignore initializers for too large + lengths. + +2018-01-26 Damian Rouson + Alessandro Fanfarillo + Soren Rasmussen + + Partial support for Fortran 2018 teams features. + + * array.c (gfc_match_array_ref): add team attribute in coarray + transfers. + * check.c (gfc_check_get_team, gfc_check_team_number): add new + functions for get_team and team_number. + * dump-parse-tree.c (show_code_node): add new statements: form team, + change team, end team, and sync team. + * expr.c (gfc_find_team_co): add new function. + * gfortran.h: add new statements. + * intrinsic.c (add_functions): add get_team and team_number functions. + * intrinsic.h: add get_team and team_number prototypes for check, + simplify, and resolve. + * iresolve.c (gfc_resolve_get_team, gfc_resolve_team_number): add new + functions. + * iso-fortran-env.def: add the team_type derived type. + * match.c (gfc_match_if, gfc_match_form_team, gfc_match_team_number) + (gfc_match_end_team, gfc_match_sync_team, gfc_match_change_team): + add change team, end team, form team, sync team match and functions. + * match.h: add new prototypes for change team, end team, form team, + and sync team. + * parse.c (decode_statement): add cases for change team, end team, + form team, and sync team. + * resolve.c: add cases for exec form team, change team, end team, and + sync team. + * simplify.c (gfc_simplify_get_team): add new function for get team. + * st.c (gfc_free_statement): add cases exec for change team, end team, + form team, sync team. + * trans-decl.c (gfor_fndecl_caf_form_team) + (gfor_fndecl_caf_change_team, gfor_fndecl_caf_end_team) + (gfor_fndecl_caf_sync_team, gfor_fndecl_caf_get_team) + (gfor_fndecl_caf_team_number): add functions and definitions. + * trans-intrinsic.c (conv_caf_send, conv_intrinsic_team_number): add + new function and team_type argument support. + * trans-stmt.c (gfc_trans_form_team, gfc_trans_change_team) + (gfc_trans_end_team, gfc_trans_sync_team): add new functions. + * trans-stmt.h: add new prototypes. + * trans-types.c (gfc_get_derived_type): check condition for team_type. + * trans.c (trans_code): new exec cases for form team, change team, end + team, and sync team. + * trans.h: add new prototypes. + +2018-01-26 Steven G. Kargl + + PR fortran/83998 + * simplify.c (compute_dot_product): Initialize result to INTEGER(1) 0 + or .false. The summation does the correct type conversion. + (gfc_simplify_dot_product): Special case zero-sized arrays. + +2018-25-01 Paul Thomas + + PR fortran/37577 + * array.c (gfc_match_array_ref): If standard earlier than F2008 + it is an error if the reference dimension is greater than 7. + libgfortran.h : Increase GFC_MAX_DIMENSIONS to 15. Change the + dtype masks and shifts accordingly. + * trans-array.c (gfc_conv_descriptor_dtype): Use the dtype + type node to check the field. + (gfc_conv_descriptor_dtype): Access the rank field of dtype. + (duplicate_allocatable_coarray): Access the rank field of the + dtype descriptor rather than the dtype itself. + * trans-expr.c (get_scalar_to_descriptor_type): Store the type + of 'scalar' on entry and use its TREE_TYPE if it is ARRAY_TYPE + (ie. a character). + (gfc_conv_procedure_call): Pass TREE_OPERAND (tmp,0) to + get_scalar_to_descriptor_type if the actual expression is a + constant. + (gfc_trans_structure_assign): Assign the rank directly to the + dtype rank field. + * trans-intrinsic.c (gfc_conv_intrinsic_rank): Cast the result + to default integer kind. + (gfc_conv_intrinsic_sizeof): Obtain the element size from the + 'elem_len' field of the dtype. + * trans-io.c (gfc_build_io_library_fndecls): Replace + gfc_int4_type_node with dtype_type_node where necessary. + (transfer_namelist_element): Use gfc_get_dtype_rank_type for + scalars. + * trans-types.c : Provide 'get_dtype_type_node' to acces the + dtype_type_node and, if necessary, build it. + The maximum size of an array element is now determined by the + maximum value of size_t. + Update the description of the array descriptor, including the + type def for the dtype_type. + (gfc_get_dtype_rank_type): Build a constructor for the dtype. + Distinguish RECORD_TYPEs that are BT_DERIVED or BT_CLASS. + (gfc_get_array_descriptor_base): Change the type of the dtype + field to dtype_type_node. + (gfc_get_array_descr_info): Get the offset to the rank field of + the dtype. + * trans-types.h : Add a prototype for 'get_dtype_type_node ()'. + * trans.h : Define the indices of the dtype fields. + +2018-23-01 Paul Thomas + + PR fortran/83866 + * decl.c (gfc_match_derived_decl): If eos not matched, recover + and emit error about garbage after declaration. + +2018-23-01 Paul Thomas + + PR fortran/83898 + * trans-stmt.c (trans_associate_var): Do not set cst_array_ctor + for characters. + +2018-01-22 Janne Blomqvist + + PR 78534 + PR 83704 + * arith.c (gfc_arith_concat): Use size_t for string length. + (gfc_compare_string): Likewise. + (gfc_compare_with_Cstring): Likewise. + * array.c (gfc_resolve_character_array_constructor): Use + HOST_WIDE_INT, gfc_mpz_get_hwi. + * check.c (gfc_check_fe_runtime_error): Use size_t. + * data.c (create_character_initializer): Use HOST_WIDE_INT, + gfc_extract_hwi. + * decl.c (gfc_set_constant_character_len): Use gfc_charlen_t. + (add_init_expr_to_sym): Use HOST_WIDE_INT. + * expr.c (gfc_build_init_expr): Use HOST_WIDE_INT, + gfc_extract_hwi. + (gfc_apply_init): Likewise. + * match.h (gfc_set_constant_character_len): Update prototype. + * primary.c (match_string_constant): Use size_t. + * resolve.c (resolve_ordinary_assign): Use HOST_WIDE_INT, + gfc_mpz_get_hwi. + * simplify.c (init_result_expr): Likewise. + (gfc_simplify_len_trim): Use size_t. + * target-memory.c (gfc_encode_character): Use size_t. + (gfc_target_encode_expr): Use HOST_WIDE_INT, gfc_mpz_get_hwi. + (interpret_array): Use size_t. + (gfc_interpret_character): Likewise. + * target-memory.h (gfc_encode_character): Update prototype. + (gfc_interpret_character): Likewise. + (gfc_target_interpret_expr): Likewise. + * trans-const.c (gfc_build_string_const): Use size_t for length + argument. + (gfc_build_wide_string_const): Likewise. + * trans-const.h (gfc_build_string_const): Likewise. + (gfc_build_wide_string_const): Likewise. + +2018-01-20 Steven G. Kargl + + PR fortran/83900 + * simplify.c (gfc_simplify_matmul): Set return type correctly. + +2018-01-19 Steven G. Kargl + + PR fortran/83900 + * simplify.c (gfc_simplify_matmul): Delete bogus assertion. + +2018-01-17 Harald Anlauf + + PR fortran/83864 + * expr.c (add_init_expr_to_sym): Do not dereference NULL pointer. + +2018-01-17 Harald Anlauf + + PR fortran/83874 + * decl.c (add_init_expr_to_sym): Do not dereference NULL pointer. + +2018-01-15 Louis Krupp + + PR fortran/82257 + * interface.c (compare_rank): Don't try to retrieve CLASS_DATA + from symbol marked unlimited polymorphic. + * resolve.c (resolve_structure_cons): Likewise. + * misc.c (gfc_typename): Don't dereference derived->components + if it's NULL. + +2018-01-15 Thomas Koenig + + PR fortran/54613 + * gfortran.h (gfc_check_f): Rename f4ml to f5ml. + (gfc_logical_4_kind): New macro + * intrinsic.h (gfc_simplify_minloc): Add a gfc_expr *argument. + (gfc_simplify_maxloc): Likewise. + (gfc_resolve_maxloc): Likewise. + (gfc_resolve_minloc): Likewise. + * check.c (gfc_check_minloc_maxloc): Add checking for "back" + argument; also raise error if it is used (for now). Add it + if it isn't present. + * intrinsic.c (add_sym_4ml): Rename to + (add_sym_5ml), adjust for extra argument. + (add_functions): Add "back" constant. Adjust maxloc and minloc + for back argument. + * iresolve.c (gfc_resolve_maxloc): Add back argument. If back is + not of gfc_logical_4_kind, convert. + (gfc_resolve_minloc): Likewise. + * simplify.c (gfc_simplify_minloc): Add back argument. + (gfc_simplify_maxloc): Likewise. + * trans-intinsic.c (gfc_conv_intrinsic_minmaxloc): Rename last + argument to %VAL to ensure passing by value. + (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_minmaxloc + also for library calls. + +2018-01-13 Jerry DeLisle + + PR fortran/82007 + * resolve.c (resolve_transfer): Delete code looking for 'DT' + format specifiers in format strings. Set formatted to true if a + format string or format label is present. + * trans-io.c (get_dtio_proc): Likewise. (transfer_expr): Fix + whitespace. + +2018-01-13 Thomas Koenig + + PR fortran/83744 + * dump-parse-tree.c (get_c_type_name): Remove extra line. + Change for loop to use declaration in for loop. Handle BT_LOGICAL + and BT_CHARACTER. + (write_decl): Add where argument. Fix indentation. Replace + assert with error message. Add typename to warning + in comment. + (write_type): Adjust locus to call of write_decl. + (write_variable): Likewise. + (write_proc): Likewise. Replace assert with error message. + +2018-01-13 Paul Thomas + + PR fortran/52162 + * trans-expr.c (gfc_trans_scalar_assign): Flag is_alloc_lhs if + the rhs expression is neither an elemental nor a conversion + function. + + PR fortran/83622 + * trans-array.c (is_pointer_array): Remove unconditional return + of false for -fopenmp. + +2018-01-13 Thomas Koenig + + + PR fortran/83803 + * dump-parse-tree.c (write_proc): Always emit closing parenthesis + for functions. + +2018-01-10 Steven G. Kargl + + PR fortran/82367 + * resolve.c (resolve_allocate_expr): Check for NULL pointer. + +2018-01-10 Steven G. Kargl + + PR fortran/83093 + * resolve.c (resolve_charlen): Check the type of cl->length + after resolution. + +2018-01-10 Janne Blomqvist + + PR fortran/83740 + * trans-array.c (gfc_trans_array_ctor_element): Fix formatting. + +2018-01-10 Janne Blomqvist + + PR fortran/83740 + * trans-array.c (gfc_trans_array_ctor_element): Convert RHS to the + LHS type when assigning. + +2018-01-09 Steven G. Kargl + + PR fortran/83742 + * expr.c (gfc_is_simply_contiguous): Check for NULL pointer. + +2018-01-08 Steven G. Kargl + + * match.c (gfc_match_allocate): Check for NULL pointer. + +2018-01-08 Steven G. Kargl + + * expr.c (gfc_check_pointer_assign): Fix typo in comment. + +2018-01-08 Paul Thomas + + PR fortran/83611 + * decl.c (gfc_get_pdt_instance): If parameterized arrays have + an initializer, convert the kind parameters and add to the + component if the instance. + * trans-array.c (structure_alloc_comps): Add 'is_pdt_type' and + use it with case COPY_ALLOC_COMP. Call 'duplicate_allocatable' + for parameterized arrays. Clean up typos in comments. Convert + parameterized array initializers and copy into the array. + * trans-expr.c (gfc_trans_scalar_assign): Do a deep copy for + parameterized types. + *trans-stmt.c (trans_associate_var): Deallocate associate vars + as necessary, when they are PDT function results for example. + + PR fortran/83731 + * trans-array.c (structure_alloc_comps): Only compare len parms + when they are declared explicitly. + +2018-01-06 Janne Blomqvist + + PR fortran/50892 + * trans-expr.c (gfc_trans_pointer_assignment): fold_convert rhs to + lhs type. + +2018-01-05 Janne Blomqvist + + PR fortran/78534 + PR fortran/66310 + * array.c (got_charlen): Use gfc_charlen_int_kind. + * class.c (gfc_find_derived_vtab): Use gfc_size_kind instead of + hardcoded kind. + (find_intrinsic_vtab): Likewise. + * decl.c (match_char_length): Use gfc_charlen_int_kind. + (add_init_expr_to_sym): Use gfc_charlen_t and gfc_charlen_int_kind. + (gfc_match_implicit): Use gfc_charlen_int_kind. + * dump-parse-tree.c (show_char_const): Use gfc_charlen_t and size_t. + (show_expr): Use HOST_WIDE_INT_PRINT_DEC. + * expr.c (gfc_get_character_expr): Length parameter of type + gfc_charlen_t. + (gfc_get_int_expr): Value argument of type HOST_WIDE_INT. + (gfc_extract_hwi): New function. + (simplify_const_ref): Make string_len of type gfc_charlen_t. + (gfc_simplify_expr): Use HOST_WIDE_INT for substring refs. + * frontend-passes.c (optimize_trim): Use gfc_charlen_int_kind. + * gfortran.h (gfc_mpz_get_hwi): New prototype. + (gfc_mpz_set_hwi): Likewise. + (gfc_charlen_t): New typedef. + (gfc_expr): Use gfc_charlen_t for character lengths. + (gfc_size_kind): New extern variable. + (gfc_extract_hwi): New prototype. + (gfc_get_character_expr): Use gfc_charlen_t for character length. + (gfc_get_int_expr): Use HOST_WIDE_INT type for value argument. + * gfortran.texi: Update description of hidden string length argument. + * iresolve.c (check_charlen_present): Use gfc_charlen_int_kind. + (gfc_resolve_char_achar): Likewise. + (gfc_resolve_repeat): Pass string length directly without + temporary, use gfc_charlen_int_kind. + (gfc_resolve_transfer): Use gfc_charlen_int_kind. + * match.c (select_intrinsic_set_tmp): Use HOST_WIDE_INT for charlen. + * misc.c (gfc_mpz_get_hwi): New function. + (gfc_mpz_set_hwi): New function. + * module.c (atom_int): Change type from int to HOST_WIDE_INT. + (parse_integer): Don't complain about large integers. + (write_atom): Use HOST_WIDE_INT for integers. + (mio_integer): Handle integer type mismatch. + (mio_hwi): New function. + (mio_intrinsic_op): Use HOST_WIDE_INT. + (mio_array_ref): Likewise. + (mio_expr): Likewise. + * primary.c (match_substring): Use gfc_charlen_int_kind. + * resolve.c (resolve_substring_charlen): Use gfc_charlen_int_kind. + (resolve_character_operator): Likewise. + (resolve_assoc_var): Likewise. + (resolve_select_type): Use HOST_WIDE_INT for charlen, use snprintf. + (resolve_charlen): Use mpz_sgn to determine sign. + * simplify.c (gfc_simplify_repeat): Use HOST_WIDE_INT/gfc_charlen_t + instead of long. + * symbol.c (generate_isocbinding_symbol): Use gfc_charlen_int_kind. + * target-memory.c (size_character): Length argument of type + gfc_charlen_t. + (gfc_encode_character): Likewise. + (gfc_interpret_character): Use gfc_charlen_t. + * target-memory.h (gfc_encode_character): Modify prototype. + * trans-array.c (gfc_trans_array_ctor_element): Use existing type. + (get_array_ctor_var_strlen): Use gfc_conv_mpz_to_tree_type. + (trans_array_constructor): Use existing type. + (get_array_charlen): Likewise. + * trans-const.c (gfc_conv_mpz_to_tree_type): New function. + * trans-const.h (gfc_conv_mpz_to_tree_type): New prototype. + * trans-decl.c (gfc_trans_deferred_vars): Use existing type. + (add_argument_checking): Likewise. + * trans-expr.c (gfc_class_len_or_zero_get): Build const of type + gfc_charlen_type_node. + (gfc_conv_intrinsic_to_class): Use gfc_charlen_int_kind instead of + 4, fold_convert to correct type. + (gfc_conv_class_to_class): Build const of type size_type_node for + size. + (gfc_copy_class_to_class): Likewise. + (gfc_conv_string_length): Use same type in expression. + (gfc_conv_substring): Likewise, use HOST_WIDE_INT for charlen. + (gfc_conv_string_tmp): Make sure len is of the right type. + (gfc_conv_concat_op): Use same type in expression. + (gfc_conv_procedure_call): Likewise. + (fill_with_spaces): Comment out memset() block due to spurious + -Wstringop-overflow warnings. + (gfc_trans_string_copy): Use gfc_charlen_type_node. + (alloc_scalar_allocatable_for_subcomponent_assignment): + fold_convert to right type. + (gfc_trans_subcomponent_assign): Likewise. + (trans_class_vptr_len_assignment): Build const of correct type. + (gfc_trans_pointer_assignment): Likewise. + (alloc_scalar_allocatable_for_assignment): fold_convert to right + type in expr. + (trans_class_assignment): Build const of correct type. + * trans-intrinsic.c (gfc_conv_associated): Likewise. + (gfc_conv_intrinsic_repeat): Do calculation in sizetype. + * trans-io.c (gfc_build_io_library_fndecls): Use + gfc_charlen_type_node for character lengths. + (set_string): Convert to right type in assignment. + * trans-stmt.c (gfc_trans_label_assign): Build const of + gfc_charlen_type_node. + (trans_associate_var): Likewise. + (gfc_trans_character_select): Likewise. + (gfc_trans_allocate): Likewise, don't typecast strlen result. + (gfc_trans_deallocate): Don't typecast strlen result. + * trans-types.c (gfc_size_kind): New variable. + (gfc_init_types): Determine gfc_charlen_int_kind and gfc_size_kind + from size_type_node. + * trans-types.h: Fix comment. + +2018-01-04 Thomas Koenig + + PR fortran/83683 + PR fortran/45689 + * check.c (gfc_check_eoshift): Check for string length and + for conformance of boundary. + * intrinsic.c (add_functions): Add gfc_simplify_eoshift. + * intrinsic.h: Add prototype for gfc_simplify_eoshift. + * simplify.c (gfc_simplify_eoshift): New function. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * trans-types.c (gfc_type_for_mode): Handle MODE_VECTOR_BOOL. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * trans-types.c (gfc_type_for_mode): Check valid_vector_subparts_p. + +2018-01-03 Thomas Koenig + + PR fortran/83664 + * check.c (gfc_check_eoshift): Error for missing boundary if array + is not one of the standard types. + +2018-01-03 Jakub Jelinek + + Update copyright years. + + * gfortranspec.c (lang_specific_driver): Update copyright notice + dates. + * gfc-internals.texi: Bump @copying's copyright year. + * gfortran.texi: Ditto. + * intrinsic.texi: Ditto. + * invoke.texi: Ditto. + +2017-01-02 Thomas Koenig + + PR fortran/45689 + * intrinsic.c (add_function): Add gfc_simplify_maxloc and + gfc_simplify_minloc to maxloc and minloc, respectively. + * intrinsic.h: Add prototypes for gfc_simplify_minloc + and gfc_simplify_maxloc. + * simplify.c (min_max_chose): Adjust prototype. Modify function + to have a return value which indicates if the extremum was found. + (is_constant_array_expr): Fix typo in comment. + (simplify_minmaxloc_to_scalar): New function. + (simplify_minmaxloc_nodim): New function. + (new_array): New function. + (simplify_minmaxloc_to_array): New function. + (gfc_simplify_minmaxloc): New function. + (simplify_minloc): New function. + (simplify_maxloc): New function. + +2018-01-02 Thomas Koenig + + PR fortran/45689 + PR fortran/83650 + * simplify.c (gfc_simplify_cshift): Re-implement to allow full + range of arguments. + +2018-01-01 Paul Thomas + + PR fortran/83076 + * resolve.c (resolve_fl_derived0): Add caf_token fields for + allocatable and pointer scalars, when -fcoarray selected. + * trans-types.c (gfc_copy_dt_decls_ifequal): Copy the token + field as well as the backend_decl. + (gfc_get_derived_type): Flag GFC_FCOARRAY_LIB for module + derived types that are not vtypes. Components with caf_token + attribute are pvoid types. For a component requiring it, find + the caf_token field and have the component token field point to + its backend_decl. + + PR fortran/83319 + *trans-types.c (gfc_get_array_descriptor_base): Add the token + field to the descriptor even when codimen not set. + +Copyright (C) 2018 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/check.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/check.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/check.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/check.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Check functions - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Andy Vaught & Katherine Holcomb This file is part of GCC. @@ -2168,6 +2168,21 @@ } +static bool +boz_args_check(gfc_expr *i, gfc_expr *j) +{ + if (i->is_boz && j->is_boz) + { + gfc_error ("Arguments of %qs at %L and %L cannot both be BOZ " + "literal constants", gfc_current_intrinsic, &i->where, + &j->where); + return false; + + } + return true; +} + + bool gfc_check_dshift (gfc_expr *i, gfc_expr *j, gfc_expr *shift) { @@ -2177,12 +2192,8 @@ if (!type_check (j, 1, BT_INTEGER)) return false; - if (i->is_boz && j->is_boz) - { - gfc_error ("% at %L and %' at %L cannot both be BOZ literal " - "constants", &i->where, &j->where); - return false; - } + if (!boz_args_check (i, j)) + return false; if (!i->is_boz && !j->is_boz && !same_type_check (i, 0, j, 1)) return false; @@ -2482,7 +2493,7 @@ bool -gfc_check_iand (gfc_expr *i, gfc_expr *j) +gfc_check_iand_ieor_ior (gfc_expr *i, gfc_expr *j) { if (!type_check (i, 0, BT_INTEGER)) return false; @@ -2490,10 +2501,16 @@ if (!type_check (j, 1, BT_INTEGER)) return false; + if (!boz_args_check (i, j)) + return false; + + if (i->is_boz) i->ts.kind = j->ts.kind; + if (j->is_boz) j->ts.kind = i->ts.kind; + if (i->ts.kind != j->ts.kind) { - if (!gfc_notify_std (GFC_STD_GNU, "Different type kinds at %L", - &i->where)) + gfc_error ("Arguments of %qs have different kind type parameters " + "at %L", gfc_current_intrinsic, &i->where); return false; } @@ -2608,26 +2625,6 @@ bool -gfc_check_ieor (gfc_expr *i, gfc_expr *j) -{ - if (!type_check (i, 0, BT_INTEGER)) - return false; - - if (!type_check (j, 1, BT_INTEGER)) - return false; - - if (i->ts.kind != j->ts.kind) - { - if (!gfc_notify_std (GFC_STD_GNU, "Different type kinds at %L", - &i->where)) - return false; - } - - return true; -} - - -bool gfc_check_index (gfc_expr *string, gfc_expr *substring, gfc_expr *back, gfc_expr *kind) { @@ -2680,27 +2677,6 @@ return true; } - -bool -gfc_check_ior (gfc_expr *i, gfc_expr *j) -{ - if (!type_check (i, 0, BT_INTEGER)) - return false; - - if (!type_check (j, 1, BT_INTEGER)) - return false; - - if (i->ts.kind != j->ts.kind) - { - if (!gfc_notify_std (GFC_STD_GNU, "Different type kinds at %L", - &i->where)) - return false; - } - - return true; -} - - bool gfc_check_ishft (gfc_expr *i, gfc_expr *shift) { @@ -3584,6 +3560,12 @@ if (!type_check (j, 1, BT_INTEGER)) return false; + if (!boz_args_check (i, j)) + return false; + + if (i->is_boz) i->ts.kind = j->ts.kind; + if (j->is_boz) j->ts.kind = i->ts.kind; + if (!type_check (mask, 2, BT_INTEGER)) return false; @@ -3593,6 +3575,8 @@ if (!same_type_check (i, 0, mask, 2)) return false; + if (mask->is_boz) mask->ts.kind = i->ts.kind; + return true; } @@ -6719,6 +6703,12 @@ if (!scalar_check (j, 1)) return false; + if (!boz_args_check (i, j)) + return false; + + if (i->is_boz) i->ts.kind = j->ts.kind; + if (j->is_boz) j->ts.kind = i->ts.kind; + return true; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/class.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/class.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/class.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/class.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of Fortran 2003 Polymorphism. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Paul Richard Thomas and Janus Weil diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/config-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/config-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/config-lang.in 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/config-lang.in 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/constructor.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/constructor.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/constructor.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/constructor.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Array and structure constructors - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/constructor.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/constructor.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/constructor.h 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/constructor.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Array and structure constructors - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/convert.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/convert.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/convert.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/convert.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Data type conversion - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/cpp.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/cpp.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/cpp.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/cpp.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -609,6 +609,28 @@ opt->arg, opt->code == OPT_MQ); } + /* Pre-defined macros for non-required INTEGER kind types. */ + for (gfc_integer_info *itype = gfc_integer_kinds; itype->kind != 0; itype++) + { + if (itype->kind == 1) + cpp_define (cpp_in, "__GFC_INT_1__=1"); + if (itype->kind == 2) + cpp_define (cpp_in, "__GFC_INT_2__=1"); + if (itype->kind == 8) + cpp_define (cpp_in, "__GFC_INT_8__=1"); + if (itype->kind == 16) + cpp_define (cpp_in, "__GFC_INT_16__=1"); + } + + /* Pre-defined macros for non-required REAL kind types. */ + for (gfc_real_info *rtype = gfc_real_kinds; rtype->kind != 0; rtype++) + { + if (rtype->kind == 10) + cpp_define (cpp_in, "__GFC_REAL_10__=1"); + if (rtype->kind == 16) + cpp_define (cpp_in, "__GFC_REAL_16__=1"); + } + if (gfc_cpp_option.working_directory && gfc_cpp_option.preprocess_only && !gfc_cpp_option.no_line_commands) pp_dir_change (cpp_in, get_src_pwd ()); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/cpp.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/cpp.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/cpp.h 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/cpp.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/data.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/data.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/data.c 2018-06-13 07:08:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/data.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Supporting functions for resolving DATA statement. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Lifang Zeng This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/data.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/data.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/data.h 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/data.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header for functions resolving DATA statements. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/decl.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/decl.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/decl.c 2018-12-09 09:05:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/decl.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Declaration statement matcher - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. @@ -399,6 +399,14 @@ } else if (m == MATCH_YES) { + /* If a parameter inquiry ends up here, symtree is NULL but **result + contains the right constant expression. Check here. */ + if ((*result)->symtree == NULL + && (*result)->expr_type == EXPR_CONSTANT + && ((*result)->ts.type == BT_INTEGER + || (*result)->ts.type == BT_REAL)) + return m; + /* F2018:R845 data-stmt-constant is initial-data-target. A data-stmt-constant shall be ... initial-data-target if and only if the corresponding data-stmt-object has the POINTER @@ -588,6 +596,7 @@ gfc_match_data (void) { gfc_data *new_data; + gfc_expr *e; match m; /* Before parsing the rest of a DATA statement, check F2008:c1206. */ @@ -624,6 +633,30 @@ goto cleanup; } + /* Check for an entity with an allocatable component, which is not + allowed. */ + e = new_data->var->expr; + if (e) + { + bool invalid; + + invalid = false; + for (gfc_ref *ref = e->ref; ref; ref = ref->next) + if ((ref->type == REF_COMPONENT + && ref->u.c.component->attr.allocatable) + || (ref->type == REF_ARRAY + && e->symtree->n.sym->attr.pointer != 1 + && ref->u.ar.as && ref->u.ar.as->type == AS_DEFERRED)) + invalid = true; + + if (invalid) + { + gfc_error ("Allocatable component or deferred-shaped array " + "near %C in DATA statement"); + goto cleanup; + } + } + m = top_val_list (new_data); if (m != MATCH_YES) goto cleanup; @@ -2784,6 +2817,22 @@ param->value = gfc_copy_expr (initializer); } + /* Before adding a possible initilizer, do a simple check for compatibility + of lhs and rhs types. Assigning a REAL value to a derived type is not a + good thing. */ + if (current_ts.type == BT_DERIVED && initializer + && (gfc_numeric_ts (&initializer->ts) + || initializer->ts.type == BT_LOGICAL + || initializer->ts.type == BT_CHARACTER)) + { + gfc_error ("Incompatible initialization between a derived type " + "entity and an entity with %qs type at %C", + gfc_typename (&initializer->ts)); + m = MATCH_ERROR; + goto cleanup; + } + + /* Add the initializer. Note that it is fine if initializer is NULL here, because we sometimes also need to check if a declaration *must* have an initialization expression. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/dependency.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/dependency.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/dependency.c 2018-11-05 08:45:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/dependency.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Dependency analysis - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/dependency.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/dependency.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/dependency.h 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/dependency.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header for dependency analysis - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/dump-parse-tree.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/dump-parse-tree.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/dump-parse-tree.c 2018-11-05 08:45:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/dump-parse-tree.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Parse tree dumper - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Steven Bosscher This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/error.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/error.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/error.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/error.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Handle errors. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught & Niels Kristian Bech Jensen This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/expr.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/expr.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/expr.c 2018-12-09 09:05:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/expr.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Routines for manipulation of expression nodes. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. @@ -1730,56 +1730,61 @@ gfc_resolve_expr (tmp); - switch (inquiry->u.i) + /* In principle there can be more than one inquiry reference. */ + for (; inquiry; inquiry = inquiry->next) { - case INQUIRY_LEN: - if (tmp->ts.type != BT_CHARACTER) - goto cleanup; + switch (inquiry->u.i) + { + case INQUIRY_LEN: + if (tmp->ts.type != BT_CHARACTER) + goto cleanup; - if (!gfc_notify_std (GFC_STD_F2003, "LEN part_ref at %C")) - goto cleanup; + if (!gfc_notify_std (GFC_STD_F2003, "LEN part_ref at %C")) + goto cleanup; - if (!tmp->ts.u.cl->length - || tmp->ts.u.cl->length->expr_type != EXPR_CONSTANT) - goto cleanup; + if (!tmp->ts.u.cl->length + || tmp->ts.u.cl->length->expr_type != EXPR_CONSTANT) + goto cleanup; - *newp = gfc_copy_expr (tmp->ts.u.cl->length); - break; + *newp = gfc_copy_expr (tmp->ts.u.cl->length); + break; - case INQUIRY_KIND: - if (tmp->ts.type == BT_DERIVED || tmp->ts.type == BT_CLASS) - goto cleanup; + case INQUIRY_KIND: + if (tmp->ts.type == BT_DERIVED || tmp->ts.type == BT_CLASS) + goto cleanup; - if (!gfc_notify_std (GFC_STD_F2003, "KIND part_ref at %C")) - goto cleanup; + if (!gfc_notify_std (GFC_STD_F2003, "KIND part_ref at %C")) + goto cleanup; - *newp = gfc_get_int_expr (gfc_default_integer_kind, - NULL, tmp->ts.kind); - break; + *newp = gfc_get_int_expr (gfc_default_integer_kind, + NULL, tmp->ts.kind); + break; - case INQUIRY_RE: - if (tmp->ts.type != BT_COMPLEX || tmp->expr_type != EXPR_CONSTANT) - goto cleanup; + case INQUIRY_RE: + if (tmp->ts.type != BT_COMPLEX || tmp->expr_type != EXPR_CONSTANT) + goto cleanup; - if (!gfc_notify_std (GFC_STD_F2008, "RE part_ref at %C")) - goto cleanup; + if (!gfc_notify_std (GFC_STD_F2008, "RE part_ref at %C")) + goto cleanup; - *newp = gfc_get_constant_expr (BT_REAL, tmp->ts.kind, &tmp->where); - mpfr_set ((*newp)->value.real, - mpc_realref (p->value.complex), GFC_RND_MODE); - break; + *newp = gfc_get_constant_expr (BT_REAL, tmp->ts.kind, &tmp->where); + mpfr_set ((*newp)->value.real, + mpc_realref (p->value.complex), GFC_RND_MODE); + break; - case INQUIRY_IM: - if (tmp->ts.type != BT_COMPLEX || tmp->expr_type != EXPR_CONSTANT) - goto cleanup; + case INQUIRY_IM: + if (tmp->ts.type != BT_COMPLEX || tmp->expr_type != EXPR_CONSTANT) + goto cleanup; - if (!gfc_notify_std (GFC_STD_F2008, "IM part_ref at %C")) - goto cleanup; + if (!gfc_notify_std (GFC_STD_F2008, "IM part_ref at %C")) + goto cleanup; - *newp = gfc_get_constant_expr (BT_REAL, tmp->ts.kind, &tmp->where); - mpfr_set ((*newp)->value.real, - mpc_imagref (p->value.complex), GFC_RND_MODE); - break; + *newp = gfc_get_constant_expr (BT_REAL, tmp->ts.kind, &tmp->where); + mpfr_set ((*newp)->value.real, + mpc_imagref (p->value.complex), GFC_RND_MODE); + break; + } + tmp = gfc_copy_expr (*newp); } if (!(*newp)) @@ -1970,7 +1975,7 @@ gfc_replace_expr (*p, newp); gfc_free_ref_list ((*p)->ref); (*p)->ref = NULL; - break; + return true; default: break; @@ -2864,9 +2869,16 @@ break; case AS_DEFERRED: - gfc_error ("Deferred array %qs at %L is not permitted " - "in an initialization expression", - e->symtree->n.sym->name, &e->where); + if (!e->symtree->n.sym->attr.allocatable + && !e->symtree->n.sym->attr.pointer + && e->symtree->n.sym->attr.dummy) + gfc_error ("Assumed-shape array %qs at %L is not permitted " + "in an initialization expression", + e->symtree->n.sym->name, &e->where); + else + gfc_error ("Deferred array %qs at %L is not permitted " + "in an initialization expression", + e->symtree->n.sym->name, &e->where); break; case AS_EXPLICIT: @@ -3056,6 +3068,7 @@ || !strcmp (f->name, "ieee_support_halting") || !strcmp (f->name, "ieee_support_datatype") || !strcmp (f->name, "ieee_support_denormal") + || !strcmp (f->name, "ieee_support_subnormal") || !strcmp (f->name, "ieee_support_divide") || !strcmp (f->name, "ieee_support_inf") || !strcmp (f->name, "ieee_support_io") diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/f95-lang.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/f95-lang.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/f95-lang.c 2018-05-05 11:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/f95-lang.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* gfortran backend interface - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Paul Brook. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/frontend-passes.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/frontend-passes.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/frontend-passes.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/frontend-passes.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Pass manager for Fortran front end. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Thomas König. This file is part of GCC. @@ -1863,84 +1863,6 @@ return true; } -/* Change (-1)**k into 1-ishift(iand(k,1),1) and - 2**k into ishift(1,k) */ - -static bool -optimize_power (gfc_expr *e) -{ - gfc_expr *op1, *op2; - gfc_expr *iand, *ishft; - - if (e->ts.type != BT_INTEGER) - return false; - - op1 = e->value.op.op1; - - if (op1 == NULL || op1->expr_type != EXPR_CONSTANT) - return false; - - if (mpz_cmp_si (op1->value.integer, -1L) == 0) - { - gfc_free_expr (op1); - - op2 = e->value.op.op2; - - if (op2 == NULL) - return false; - - iand = gfc_build_intrinsic_call (current_ns, GFC_ISYM_IAND, - "_internal_iand", e->where, 2, op2, - gfc_get_int_expr (e->ts.kind, - &e->where, 1)); - - ishft = gfc_build_intrinsic_call (current_ns, GFC_ISYM_ISHFT, - "_internal_ishft", e->where, 2, iand, - gfc_get_int_expr (e->ts.kind, - &e->where, 1)); - - e->value.op.op = INTRINSIC_MINUS; - e->value.op.op1 = gfc_get_int_expr (e->ts.kind, &e->where, 1); - e->value.op.op2 = ishft; - return true; - } - else if (mpz_cmp_si (op1->value.integer, 2L) == 0) - { - gfc_free_expr (op1); - - op2 = e->value.op.op2; - if (op2 == NULL) - return false; - - ishft = gfc_build_intrinsic_call (current_ns, GFC_ISYM_ISHFT, - "_internal_ishft", e->where, 2, - gfc_get_int_expr (e->ts.kind, - &e->where, 1), - op2); - *e = *ishft; - return true; - } - - else if (mpz_cmp_si (op1->value.integer, 1L) == 0) - { - op2 = e->value.op.op2; - if (op2 == NULL) - return false; - - gfc_free_expr (op1); - gfc_free_expr (op2); - - e->expr_type = EXPR_CONSTANT; - e->value.op.op1 = NULL; - e->value.op.op2 = NULL; - mpz_init_set_si (e->value.integer, 1); - /* Typespec and location are still OK. */ - return true; - } - - return false; -} - /* Recursive optimization of operators. */ static bool @@ -2001,9 +1923,6 @@ case INTRINSIC_DIVIDE: return combine_array_constructor (e) || changed; - case INTRINSIC_POWER: - return optimize_power (e); - default: break; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/gfc-diagnostic.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/gfc-diagnostic.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/gfc-diagnostic.def 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/gfc-diagnostic.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2018 Free Software Foundation, Inc. +/* Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/gfc-internals.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/gfc-internals.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/gfc-internals.texi 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/gfc-internals.texi 2019-01-02 08:05:17.000000000 +0000 @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @c %**start of header @setfilename gfc-internals.info -@set copyrights-gfortran 2007-2018 +@set copyrights-gfortran 2007-2019 @include gcc-common.texi diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/gfortran.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/gfortran.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/gfortran.h 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/gfortran.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* gfortran header file - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/gfortranspec.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/gfortranspec.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/gfortranspec.c 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/gfortranspec.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific flags and argument handling of the Fortran front-end. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -278,7 +278,7 @@ case OPT__version: printf ("GNU Fortran %s%s\n", pkgversion_string, version_string); - printf ("Copyright %s 2018 Free Software Foundation, Inc.\n", + printf ("Copyright %s 2019 Free Software Foundation, Inc.\n", _("(C)")); fputs (_("This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"), diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/gfortran.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/gfortran.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/gfortran.texi 2018-11-01 16:06:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/gfortran.texi 2019-01-02 08:05:17.000000000 +0000 @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @c %**start of header @setfilename gfortran.info -@set copyrights-gfortran 1999-2018 +@set copyrights-gfortran 1999-2019 @include gcc-common.texi @@ -418,10 +418,18 @@ files, use the equivalent preprocessor statement @code{#include}. If GNU Fortran invokes the preprocessor, @code{__GFORTRAN__} -is defined and @code{__GNUC__}, @code{__GNUC_MINOR__} and +is defined. The macros @code{__GNUC__}, @code{__GNUC_MINOR__} and @code{__GNUC_PATCHLEVEL__} can be used to determine the version of the compiler. See @ref{Top,,Overview,cpp,The C Preprocessor} for details. +GNU Fortran supports a number of @code{INTEGER} and @code{REAL} kind types +in additional to the kind types required by the Fortran standard. +The availability of any given kind type is architecture dependent. The +following pre-defined preprocessor macros can be used to conditional +include code for these additional kind types: @code{__GFC_INTEGER_1__}, +@code{__GFC_INTEGER_2__}, @code{__GFC_INTEGER_8__}, @code{__GFC_INTEGER_16__}, +@code{__GFC_REAL_10__}, and @code{__GFC_REAL_16__}. + While CPP is the de-facto standard for preprocessing Fortran code, Part 3 of the Fortran 95 standard (ISO/IEC 1539-3:1998) defines Conditional Compilation, which is not widely used and not directly diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/interface.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/interface.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/interface.c 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/interface.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Deal with interfaces. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/intrinsic.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/intrinsic.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/intrinsic.c 2018-11-05 08:45:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/intrinsic.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Build up a list of intrinsic subroutines and functions for the name-resolution stage. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught & Katherine Holcomb This file is part of GCC. @@ -2025,8 +2025,9 @@ make_generic ("iachar", GFC_ISYM_IACHAR, GFC_STD_F95); - add_sym_2 ("iand", GFC_ISYM_IAND, CLASS_ELEMENTAL, ACTUAL_NO, BT_INTEGER, di, GFC_STD_F95, - gfc_check_iand, gfc_simplify_iand, gfc_resolve_iand, + add_sym_2 ("iand", GFC_ISYM_IAND, CLASS_ELEMENTAL, ACTUAL_NO, BT_INTEGER, di, + GFC_STD_F95, + gfc_check_iand_ieor_ior, gfc_simplify_iand, gfc_resolve_iand, i, BT_INTEGER, di, REQUIRED, j, BT_INTEGER, di, REQUIRED); if (flag_dec_intrinsic_ints) @@ -2114,8 +2115,9 @@ make_generic ("ichar", GFC_ISYM_ICHAR, GFC_STD_F77); - add_sym_2 ("ieor", GFC_ISYM_IEOR, CLASS_ELEMENTAL, ACTUAL_NO, BT_INTEGER, di, GFC_STD_F95, - gfc_check_ieor, gfc_simplify_ieor, gfc_resolve_ieor, + add_sym_2 ("ieor", GFC_ISYM_IEOR, CLASS_ELEMENTAL, ACTUAL_NO, BT_INTEGER, di, + GFC_STD_F95, + gfc_check_iand_ieor_ior, gfc_simplify_ieor, gfc_resolve_ieor, i, BT_INTEGER, di, REQUIRED, j, BT_INTEGER, di, REQUIRED); if (flag_dec_intrinsic_ints) @@ -2192,8 +2194,9 @@ make_generic ("long", GFC_ISYM_LONG, GFC_STD_GNU); - add_sym_2 ("ior", GFC_ISYM_IOR, CLASS_ELEMENTAL, ACTUAL_NO, BT_INTEGER, di, GFC_STD_F95, - gfc_check_ior, gfc_simplify_ior, gfc_resolve_ior, + add_sym_2 ("ior", GFC_ISYM_IOR, CLASS_ELEMENTAL, ACTUAL_NO, BT_INTEGER, di, + GFC_STD_F95, + gfc_check_iand_ieor_ior, gfc_simplify_ior, gfc_resolve_ior, i, BT_INTEGER, di, REQUIRED, j, BT_INTEGER, di, REQUIRED); if (flag_dec_intrinsic_ints) @@ -5030,6 +5033,13 @@ if (expr->ts.type == BT_UNKNOWN) goto bad; + /* In building an array constructor, gfortran can end up here when no + conversion is required for an intrinsic type. We need to let derived + types drop through. */ + if (from_ts.type != BT_DERIVED + && (from_ts.type == ts->type && from_ts.kind == ts->kind)) + return true; + if (expr->ts.type == BT_DERIVED && ts->type == BT_DERIVED && gfc_compare_types (&expr->ts, ts)) return true; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/intrinsic.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/intrinsic.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/intrinsic.h 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/intrinsic.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Header file for intrinsics check, resolve and simplify function prototypes. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught & Katherine Holcomb This file is part of GCC. @@ -89,17 +89,15 @@ bool gfc_check_huge (gfc_expr *); bool gfc_check_hypot (gfc_expr *, gfc_expr *); bool gfc_check_i (gfc_expr *); -bool gfc_check_iand (gfc_expr *, gfc_expr *); +bool gfc_check_iand_ieor_ior (gfc_expr *, gfc_expr *); bool gfc_check_and (gfc_expr *, gfc_expr *); bool gfc_check_ibits (gfc_expr *, gfc_expr *, gfc_expr *); bool gfc_check_ichar_iachar (gfc_expr *, gfc_expr *); bool gfc_check_idnint (gfc_expr *); -bool gfc_check_ieor (gfc_expr *, gfc_expr *); bool gfc_check_image_status (gfc_expr *, gfc_expr *); bool gfc_check_index (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *); bool gfc_check_int (gfc_expr *, gfc_expr *); bool gfc_check_intconv (gfc_expr *); -bool gfc_check_ior (gfc_expr *, gfc_expr *); bool gfc_check_irand (gfc_expr *); bool gfc_check_isatty (gfc_expr *); bool gfc_check_isnan (gfc_expr *); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/intrinsic.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/intrinsic.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/intrinsic.texi 2018-11-01 16:06:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/intrinsic.texi 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ @ignore -Copyright (C) 2005-2018 Free Software Foundation, Inc. +Copyright (C) 2005-2019 Free Software Foundation, Inc. This is part of the GNU Fortran manual. For copying conditions, see the file gfortran.texi. @@ -1144,15 +1144,20 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 @item @var{I} @tab The type shall be either a scalar @code{INTEGER} -type or a scalar @code{LOGICAL} type. -@item @var{J} @tab The type shall be the same as the type of @var{I}. +type or a scalar @code{LOGICAL} type or a boz-literal-constant. +@item @var{J} @tab The type shall be the same as the type of @var{I} or +a boz-literal-constant. @var{I} and @var{J} shall not both be +boz-literal-constants. If either @var{I} or @var{J} is a +boz-literal-constant, then the other argument must be a scalar @code{INTEGER}. @end multitable @item @emph{Return value}: The return type is either a scalar @code{INTEGER} or a scalar @code{LOGICAL}. If the kind type parameters differ, then the smaller kind type is implicitly converted to larger kind, and the -return has the larger kind. +return has the larger kind. A boz-literal-constant is +converted to an @code{INTEGER} with the kind type parameter of +the other argument as-if a call to @ref{INT} occurred. @item @emph{Example}: @smallexample @@ -7523,16 +7528,17 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 -@item @var{I} @tab The type shall be @code{INTEGER}. -@item @var{J} @tab The type shall be @code{INTEGER}, of the same -kind as @var{I}. (As a GNU extension, different kinds are also -permitted.) +@item @var{I} @tab The type shall be @code{INTEGER} or a boz-literal-constant. +@item @var{J} @tab The type shall be @code{INTEGER} with the same +kind type parameter as @var{I} or a boz-literal-constant. +@var{I} and @var{J} shall not both be boz-literal-constants. @end multitable @item @emph{Return value}: -The return type is @code{INTEGER}, of the same kind as the -arguments. (If the argument kinds differ, it is of the same kind as -the larger argument.) +The return type is @code{INTEGER} with the kind type parameter of the +arguments. +A boz-literal-constant is converted to an @code{INTEGER} with the kind +type parameter of the other argument as-if a call to @ref{INT} occurred. @item @emph{Example}: @smallexample @@ -7973,16 +7979,17 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 -@item @var{I} @tab The type shall be @code{INTEGER}. -@item @var{J} @tab The type shall be @code{INTEGER}, of the same -kind as @var{I}. (As a GNU extension, different kinds are also -permitted.) +@item @var{I} @tab The type shall be @code{INTEGER} or a boz-literal-constant. +@item @var{J} @tab The type shall be @code{INTEGER} with the same +kind type parameter as @var{I} or a boz-literal-constant. +@var{I} and @var{J} shall not both be boz-literal-constants. @end multitable @item @emph{Return value}: -The return type is @code{INTEGER}, of the same kind as the -arguments. (If the argument kinds differ, it is of the same kind as -the larger argument.) +The return type is @code{INTEGER} with the kind type parameter of the +arguments. +A boz-literal-constant is converted to an @code{INTEGER} with the kind +type parameter of the other argument as-if a call to @ref{INT} occurred. @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @@ -8291,16 +8298,17 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 -@item @var{I} @tab The type shall be @code{INTEGER}. -@item @var{J} @tab The type shall be @code{INTEGER}, of the same -kind as @var{I}. (As a GNU extension, different kinds are also -permitted.) +@item @var{I} @tab The type shall be @code{INTEGER} or a boz-literal-constant. +@item @var{J} @tab The type shall be @code{INTEGER} with the same +kind type parameter as @var{I} or a boz-literal-constant. +@var{I} and @var{J} shall not both be boz-literal-constants. @end multitable @item @emph{Return value}: -The return type is @code{INTEGER}, of the same kind as the -arguments. (If the argument kinds differ, it is of the same kind as -the larger argument.) +The return type is @code{INTEGER} with the kind type parameter of the +arguments. +A boz-literal-constant is converted to an @code{INTEGER} with the kind +type parameter of the other argument as-if a call to @ref{INT} occurred. @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @@ -10296,11 +10304,12 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 -@item @var{I} @tab Shall be of type @code{INTEGER}. -@item @var{J} @tab Shall be of type @code{INTEGER} and of the same -kind as @var{I}. -@item @var{MASK} @tab Shall be of type @code{INTEGER} and of the same -kind as @var{I}. +@item @var{I} @tab Shall be of type @code{INTEGER} or a boz-literal-constant. +@item @var{J} @tab Shall be of type @code{INTEGER} with the same +kind type parameter as @var{I} or a boz-literal-constant. +@var{I} and @var{J} shall not both be boz-literal-constants. +@item @var{MASK} @tab Shall be of type @code{INTEGER} or a boz-literal-constant +and of the same kind as @var{I}. @end multitable @item @emph{Return value}: @@ -11125,15 +11134,20 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 @item @var{I} @tab The type shall be either a scalar @code{INTEGER} -type or a scalar @code{LOGICAL} type. -@item @var{J} @tab The type shall be the same as the type of @var{J}. +type or a scalar @code{LOGICAL} type or a boz-literal-constant. +@item @var{J} @tab The type shall be the same as the type of @var{I} or +a boz-literal-constant. @var{I} and @var{J} shall not both be +boz-literal-constants. If either @var{I} and @var{J} is a +boz-literal-constant, then the other argument must be a scalar @code{INTEGER}. @end multitable @item @emph{Return value}: The return type is either a scalar @code{INTEGER} or a scalar @code{LOGICAL}. If the kind type parameters differ, then the smaller kind type is implicitly converted to larger kind, and the -return has the larger kind. +return has the larger kind. A boz-literal-constant is +converted to an @code{INTEGER} with the kind type parameter of +the other argument as-if a call to @ref{INT} occurred. @item @emph{Example}: @smallexample @@ -14639,16 +14653,21 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 -@item @var{I} @tab The type shall be either a scalar @code{INTEGER} -type or a scalar @code{LOGICAL} type. -@item @var{J} @tab The type shall be the same as the type of @var{I}. +@item @var{I} @tab The type shall be either a scalar @code{INTEGER} +type or a scalar @code{LOGICAL} type or a boz-literal-constant. +@item @var{J} @tab The type shall be the same as the type of @var{I} or +a boz-literal-constant. @var{I} and @var{J} shall not both be +boz-literal-constants. If either @var{I} and @var{J} is a +boz-literal-constant, then the other argument must be a scalar @code{INTEGER}. @end multitable @item @emph{Return value}: The return type is either a scalar @code{INTEGER} or a scalar @code{LOGICAL}. If the kind type parameters differ, then the smaller kind type is implicitly converted to larger kind, and the -return has the larger kind. +return has the larger kind. A boz-literal-constant is +converted to an @code{INTEGER} with the kind type parameter of +the other argument as-if a call to @ref{INT} occurred. @item @emph{Example}: @smallexample diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/invoke.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/invoke.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/invoke.texi 2018-11-23 09:38:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/invoke.texi 2019-01-02 08:05:17.000000000 +0000 @@ -1,10 +1,10 @@ -@c Copyright (C) 2004-2018 Free Software Foundation, Inc. +@c Copyright (C) 2004-2019 Free Software Foundation, Inc. @c This is part of the GNU Fortran manual. @c For copying conditions, see the file gfortran.texi. @ignore @c man begin COPYRIGHT -Copyright @copyright{} 2004-2018 Free Software Foundation, Inc. +Copyright @copyright{} 2004-2019 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/io.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/io.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/io.c 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/io.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Deal with I/O statements & related stuff. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. @@ -1636,6 +1636,12 @@ gfc_expr *r; gfc_char_t *dest, *src; + if (e->value.constructor == NULL) + { + gfc_error ("FORMAT tag at %C cannot be a zero-sized array"); + return false; + } + n = 0; c = gfc_constructor_first (e->value.constructor); len = c->expr->value.character.length; @@ -3245,12 +3251,21 @@ { gfc_expr *e; io_kind k; + locus tmp; /* This is set in any case. */ gcc_assert (dt->dt_io_kind); k = dt->dt_io_kind->value.iokind; - RESOLVE_TAG (&tag_format, dt->format_expr); + tmp = gfc_current_locus; + gfc_current_locus = *loc; + if (!resolve_tag (&tag_format, dt->format_expr)) + { + gfc_current_locus = tmp; + return false; + } + gfc_current_locus = tmp; + RESOLVE_TAG (&tag_rec, dt->rec); RESOLVE_TAG (&tag_spos, dt->pos); RESOLVE_TAG (&tag_advance, dt->advance); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/ioparm.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/ioparm.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/ioparm.def 2018-03-28 23:58:58.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/ioparm.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/iresolve.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/iresolve.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/iresolve.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/iresolve.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Intrinsic function resolution. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught & Katherine Holcomb This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/iso-c-binding.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/iso-c-binding.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/iso-c-binding.def 2018-05-28 08:24:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/iso-c-binding.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/iso-fortran-env.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/iso-fortran-env.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/iso-fortran-env.def 2018-05-28 08:24:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/iso-fortran-env.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/lang.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/lang.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/lang.opt 2018-11-28 13:52:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/lang.opt 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ ; Options for the Fortran front end. -; Copyright (C) 2003-2018 Free Software Foundation, Inc. +; Copyright (C) 2003-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/lang-specs.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/lang-specs.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/lang-specs.h 2018-11-28 13:52:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/lang-specs.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Contribution to the specs for the GNU Compiler Collection from GNU Fortran 95 compiler. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/libgfortran.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/libgfortran.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/libgfortran.h 2018-05-28 08:24:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/libgfortran.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file to the Fortran front-end and runtime library - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/Make-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/Make-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/Make-lang.in 2018-10-19 09:35:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/Make-lang.in 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ # -*- makefile -*- # Top level makefile fragment for GNU gfortran, the GNU Fortran 95 compiler. -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # Contributed by Paul Brook diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/match.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/match.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/match.c 2018-12-10 19:27:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/match.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Matching subroutines in all sizes, shapes and colors. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/matchexp.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/matchexp.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/matchexp.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/matchexp.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Expression parser. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/match.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/match.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/match.h 2018-11-28 13:52:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/match.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* All matcher functions. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Steven Bosscher This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/mathbuiltins.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/mathbuiltins.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/mathbuiltins.def 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/mathbuiltins.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2018 Free Software Foundation, Inc. +/* Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/misc.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/misc.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/misc.c 2018-06-13 07:08:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/misc.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Miscellaneous stuff that doesn't fit anywhere else. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/module.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/module.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/module.c 2018-11-05 08:45:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/module.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Handle modules, which amounts to loading and saving symbols and their attendant structures. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. @@ -3711,7 +3711,6 @@ mio_namelist (gfc_symbol *sym) { gfc_namelist *n, *m; - const char *check_name; mio_lparen (); @@ -3722,17 +3721,6 @@ } else { - /* This departure from the standard is flagged as an error. - It does, in fact, work correctly. TODO: Allow it - conditionally? */ - if (sym->attr.flavor == FL_NAMELIST) - { - check_name = find_use_name (sym->name, false); - if (check_name && strcmp (check_name, sym->name) != 0) - gfc_error ("Namelist %s cannot be renamed by USE " - "association to %s", sym->name, check_name); - } - m = NULL; while (peek_atom () != ATOM_RPAREN) { @@ -5192,7 +5180,13 @@ if (p->u.pointer == NULL) associate_integer_pointer (p, c); mio_pool_string (&comp_name); - gcc_assert (comp_name == c->name); + if (comp_name != c->name) + { + gfc_fatal_error ("Mismatch in components of derived type " + "%qs from %qs at %C: expecting %qs, " + "but got %qs", sym->name, sym->module, + c->name, comp_name); + } skip_list (1); /* component end. */ } mio_rparen (); /* component list closing. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/openmp.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/openmp.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/openmp.c 2018-12-10 19:27:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/openmp.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* OpenMP directive matching and resolving. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/options.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/options.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/options.c 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/options.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Parse and display command line options. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/parse.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/parse.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/parse.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/parse.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Main parser. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/parse.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/parse.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/parse.h 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/parse.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Parser header - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Steven Bosscher This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/primary.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/primary.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/primary.c 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/primary.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Primary expression subroutines - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. @@ -3074,6 +3074,12 @@ actual->expr->value.character.length = c; actual->expr->value.character.string = dest; + + if (warn_line_truncation && c < e) + gfc_warning_now (OPT_Wcharacter_truncation, + "CHARACTER expression will be truncated " + "in constructor (%ld/%ld) at %L", (long int) c, + (long int) e, &actual->expr->where); } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/resolve.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/resolve.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/resolve.c 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/resolve.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Perform type resolution on the various structures. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. @@ -9386,10 +9386,7 @@ if (dt && dt->dt_io_kind->value.iokind != M_INQUIRE && (ts->type == BT_DERIVED || ts->type == BT_CLASS)) { - if (ts->type == BT_DERIVED || ts->type == BT_CLASS) - derived = ts->u.derived; - else - derived = ts->u.derived->components->ts.u.derived; + derived = ts->u.derived; /* Determine when to use the formatted DTIO procedure. */ if (dt && (dt->format_expr || dt->format_label)) @@ -10640,6 +10637,11 @@ gfc_get_sym_tree (name, ns, &tmp, false); gfc_add_type (tmp->n.sym, &e->ts, NULL); + if (e->expr_type == EXPR_CONSTANT && e->ts.type == BT_CHARACTER) + tmp->n.sym->ts.u.cl->length = gfc_get_int_expr (gfc_charlen_int_kind, + NULL, + e->value.character.length); + as = NULL; ref = NULL; aref = NULL; @@ -12313,7 +12315,11 @@ { /* Make sure that character string variables with assumed length are dummy arguments. */ - e = sym->ts.u.cl->length; + if (sym->ts.u.cl) + e = sym->ts.u.cl->length; + else + return false; + if (e == NULL && !sym->attr.dummy && !sym->attr.result && !sym->ts.deferred && !sym->attr.select_type_temporary && !sym->attr.omp_udr_artificial_var) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/scanner.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/scanner.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/scanner.c 2018-11-28 13:52:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/scanner.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Character scanner. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/scanner.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/scanner.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/scanner.h 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/scanner.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Character scanner header. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Janne Blomqvist This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/simplify.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/simplify.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/simplify.c 2018-11-05 08:45:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/simplify.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Simplify intrinsic functions at compile-time. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught & Katherine Holcomb This file is part of GCC. @@ -8360,7 +8360,7 @@ default: oops: - gfc_internal_error ("gfc_convert_constant(): Unexpected type"); + return &gfc_bad_expr; } result = NULL; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/st.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/st.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/st.c 2018-01-26 23:52:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/st.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Build executable statement trees. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/symbol.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/symbol.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/symbol.c 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/symbol.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Maintain binary trees of symbols. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/target-memory.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/target-memory.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/target-memory.c 2018-03-06 16:37:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/target-memory.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Simulate storage of variables into target memory. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Paul Thomas and Brooks Moses This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/target-memory.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/target-memory.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/target-memory.h 2018-01-23 00:38:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/target-memory.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Simulate storage of variables into target memory, header. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Paul Thomas and Brooks Moses This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-array.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-array.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-array.c 2018-11-05 08:45:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-array.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Array translation routines - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook and Steven Bosscher diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-array.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-array.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-array.h 2018-05-21 12:22:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-array.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header for array handling functions - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans.c 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Code translation -- generate GCC trees from gfc_code. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-common.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common block and equivalence list handling - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Canqun Yang This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-const.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-const.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-const.c 2018-06-13 07:08:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-const.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Translation of constants - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-const.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-const.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-const.h 2018-01-23 00:38:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-const.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header for code constant translation functions - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-decl.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-decl.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-decl.c 2018-10-31 16:04:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-decl.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Backend function setup - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-expr.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-expr.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-expr.c 2018-11-05 08:45:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-expr.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Expression translation - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook and Steven Bosscher @@ -3056,6 +3056,83 @@ if (gfc_conv_cst_int_power (se, lse.expr, rse.expr)) return; + if (INTEGER_CST_P (lse.expr) + && TREE_CODE (TREE_TYPE (rse.expr)) == INTEGER_TYPE) + { + wi::tree_to_wide_ref wlhs = wi::to_wide (lse.expr); + HOST_WIDE_INT v; + v = wlhs.to_shwi (); + if (v == 1) + { + /* 1**something is always 1. */ + se->expr = build_int_cst (TREE_TYPE (lse.expr), 1); + return; + } + else if (v == 2 || v == 4 || v == 8 || v == 16) + { + /* 2**n = 1<expr = fold_build3_loc (input_location, COND_EXPR, type, cond2, + build_int_cst (type, 0), cond); + return; + } + else if (v == -1) + { + /* (-1)**n is 1 - ((n & 1) << 1) */ + tree type; + tree tmp; + + type = TREE_TYPE (lse.expr); + tmp = fold_build2_loc (input_location, BIT_AND_EXPR, type, + rse.expr, build_int_cst (type, 1)); + tmp = fold_build2_loc (input_location, LSHIFT_EXPR, type, + tmp, build_int_cst (type, 1)); + tmp = fold_build2_loc (input_location, MINUS_EXPR, type, + build_int_cst (type, 1), tmp); + se->expr = tmp; + return; + } + } + gfc_int4_type_node = gfc_get_int_type (4); /* In case of integer operands with kinds 1 or 2, we call the integer kind 4 @@ -5683,17 +5760,21 @@ array-descriptor actual to array-descriptor dummy, see PR 41911 for why a check has to be inserted. fsym == NULL is checked as intrinsics required the descriptor - but do not always set fsym. */ + but do not always set fsym. + Also, it is necessary to pass a NULL pointer to library routines + which usually ignore optional arguments, so they can handle + these themselves. */ if (e->expr_type == EXPR_VARIABLE && e->symtree->n.sym->attr.optional - && ((e->rank != 0 && elemental_proc) - || e->representation.length || e->ts.type == BT_CHARACTER - || (e->rank != 0 - && (fsym == NULL - || (fsym-> as - && (fsym->as->type == AS_ASSUMED_SHAPE - || fsym->as->type == AS_ASSUMED_RANK - || fsym->as->type == AS_DEFERRED)))))) + && (((e->rank != 0 && elemental_proc) + || e->representation.length || e->ts.type == BT_CHARACTER + || (e->rank != 0 + && (fsym == NULL + || (fsym->as + && (fsym->as->type == AS_ASSUMED_SHAPE + || fsym->as->type == AS_ASSUMED_RANK + || fsym->as->type == AS_DEFERRED))))) + || se->ignore_optional)) gfc_conv_missing_dummy (&parmse, e, fsym ? fsym->ts : e->ts, e->representation.length); } @@ -8152,7 +8233,7 @@ gfc_add_block_to_block (&se->pre, &se->post); se->expr = var; } - else if (add_clobber) + else if (add_clobber && expr->ref == NULL) { tree clobber; tree var; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans.h 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header for code translation functions - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-intrinsic.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-intrinsic.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-intrinsic.c 2018-11-28 13:52:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-intrinsic.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Intrinsic translation - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook and Steven Bosscher @@ -4359,6 +4359,28 @@ return se->ss->loop; } +/* Build the condition for a mask, which may be optional. */ + +static tree +conv_mask_condition (gfc_se *maskse, gfc_expr *maskexpr, + bool optional_mask) +{ + tree present; + tree type; + + if (optional_mask) + { + type = TREE_TYPE (maskse->expr); + present = gfc_conv_expr_present (maskexpr->symtree->n.sym); + present = convert (type, present); + present = fold_build1_loc (input_location, TRUTH_NOT_EXPR, type, + present); + return fold_build2_loc (input_location, TRUTH_ORIF_EXPR, + type, present, maskse->expr); + } + else + return maskse->expr; +} /* Inline implementation of the sum and product intrinsics. */ static void @@ -4380,6 +4402,7 @@ gfc_se *parent_se; gfc_expr *arrayexpr; gfc_expr *maskexpr; + bool optional_mask; if (expr->rank > 0) { @@ -4419,13 +4442,19 @@ arrayexpr = arg_array->expr; if (op == NE_EXPR || norm2) - /* PARITY and NORM2. */ - maskexpr = NULL; + { + /* PARITY and NORM2. */ + maskexpr = NULL; + optional_mask = false; + } else { arg_mask = arg_array->next->next; gcc_assert (arg_mask != NULL); maskexpr = arg_mask->expr; + optional_mask = maskexpr && maskexpr->expr_type == EXPR_VARIABLE + && maskexpr->symtree->n.sym->attr.dummy + && maskexpr->symtree->n.sym->attr.optional; } if (expr->rank == 0) @@ -4444,17 +4473,22 @@ /* Initialize the scalarizer. */ gfc_init_loopinfo (&loop); - gfc_add_ss_to_loop (&loop, arrayss); + + /* We add the mask first because the number of iterations is + taken from the last ss, and this breaks if an absent + optional argument is used for mask. */ + if (maskexpr && maskexpr->rank > 0) gfc_add_ss_to_loop (&loop, maskss); + gfc_add_ss_to_loop (&loop, arrayss); /* Initialize the loop. */ gfc_conv_ss_startstride (&loop); gfc_conv_loop_setup (&loop, &expr->where); - gfc_mark_ss_chain_used (arrayss, 1); if (maskexpr && maskexpr->rank > 0) gfc_mark_ss_chain_used (maskss, 1); + gfc_mark_ss_chain_used (arrayss, 1); ploop = &loop; } @@ -4563,10 +4597,13 @@ if (maskexpr && maskexpr->rank > 0) { - /* We enclose the above in if (mask) {...} . */ - + /* We enclose the above in if (mask) {...} . If the mask is an + optional argument, generate + IF (.NOT. PRESENT(MASK) .OR. MASK(I)). */ + tree ifmask; tmp = gfc_finish_block (&block); - tmp = build3_v (COND_EXPR, maskse.expr, tmp, + ifmask = conv_mask_condition (&maskse, maskexpr, optional_mask); + tmp = build3_v (COND_EXPR, ifmask, tmp, build_empty_stmt (input_location)); } else @@ -4591,10 +4628,13 @@ } else { + tree ifmask; + gcc_assert (expr->rank == 0); gfc_init_se (&maskse, NULL); gfc_conv_expr_val (&maskse, maskexpr); - tmp = build3_v (COND_EXPR, maskse.expr, tmp, + ifmask = conv_mask_condition (&maskse, maskexpr, optional_mask); + tmp = build3_v (COND_EXPR, ifmask, tmp, build_empty_stmt (input_location)); } @@ -4833,6 +4873,7 @@ gfc_se backse; tree pos; int n; + bool optional_mask; actual = expr->value.function.actual; @@ -4887,6 +4928,9 @@ actual = actual->next->next; gcc_assert (actual); maskexpr = actual->expr; + optional_mask = maskexpr && maskexpr->expr_type == EXPR_VARIABLE + && maskexpr->symtree->n.sym->attr.dummy + && maskexpr->symtree->n.sym->attr.optional; backexpr = actual->next->next->expr; nonempty = NULL; if (maskexpr && maskexpr->rank != 0) @@ -4939,10 +4983,16 @@ /* Initialize the scalarizer. */ gfc_init_loopinfo (&loop); - gfc_add_ss_to_loop (&loop, arrayss); + + /* We add the mask first because the number of iterations is taken + from the last ss, and this breaks if an absent optional argument + is used for mask. */ + if (maskss) gfc_add_ss_to_loop (&loop, maskss); + gfc_add_ss_to_loop (&loop, arrayss); + /* Initialize the loop. */ gfc_conv_ss_startstride (&loop); @@ -5103,10 +5153,14 @@ if (maskss) { - /* We enclose the above in if (mask) {...}. */ - tmp = gfc_finish_block (&block); + /* We enclose the above in if (mask) {...}. If the mask is an + optional argument, generate IF (.NOT. PRESENT(MASK) + .OR. MASK(I)). */ - tmp = build3_v (COND_EXPR, maskse.expr, tmp, + tree ifmask; + ifmask = conv_mask_condition (&maskse, maskexpr, optional_mask); + tmp = gfc_finish_block (&block); + tmp = build3_v (COND_EXPR, ifmask, tmp, build_empty_stmt (input_location)); } else @@ -5197,10 +5251,14 @@ if (maskss) { - /* We enclose the above in if (mask) {...}. */ - tmp = gfc_finish_block (&block); + /* We enclose the above in if (mask) {...}. If the mask is + an optional argument, generate IF (.NOT. PRESENT(MASK) + .OR. MASK(I)).*/ - tmp = build3_v (COND_EXPR, maskse.expr, tmp, + tree ifmask; + ifmask = conv_mask_condition (&maskse, maskexpr, optional_mask); + tmp = gfc_finish_block (&block); + tmp = build3_v (COND_EXPR, ifmask, tmp, build_empty_stmt (input_location)); } else @@ -5219,6 +5277,8 @@ /* For a scalar mask, enclose the loop in an if statement. */ if (maskexpr && maskss == NULL) { + tree ifmask; + gfc_init_se (&maskse, NULL); gfc_conv_expr_val (&maskse, maskexpr); gfc_init_block (&block); @@ -5232,8 +5292,8 @@ gfc_init_block (&elseblock); gfc_add_modify (&elseblock, pos, gfc_index_zero_node); elsetmp = gfc_finish_block (&elseblock); - - tmp = build3_v (COND_EXPR, maskse.expr, tmp, elsetmp); + ifmask = conv_mask_condition (&maskse, maskexpr, optional_mask); + tmp = build3_v (COND_EXPR, ifmask, tmp, elsetmp); gfc_add_expr_to_block (&block, tmp); gfc_add_block_to_block (&se->pre, &block); } @@ -5276,6 +5336,7 @@ gfc_expr *maskexpr; tree offset; int i; + bool optional_mask; array_arg = expr->value.function.actual; value_arg = array_arg->next; @@ -5326,6 +5387,9 @@ offset = gfc_create_var (gfc_array_index_type, "offset"); maskexpr = mask_arg->expr; + optional_mask = maskexpr && maskexpr->expr_type == EXPR_VARIABLE + && maskexpr->symtree->n.sym->attr.dummy + && maskexpr->symtree->n.sym->attr.optional; /* Generate two loops, one for BACK=.true. and one for BACK=.false. */ @@ -5347,9 +5411,14 @@ gfc_init_loopinfo (&loop); exit_label = gfc_build_label_decl (NULL_TREE); TREE_USED (exit_label) = 1; - gfc_add_ss_to_loop (&loop, arrayss); + + /* We add the mask first because the number of iterations is + taken from the last ss, and this breaks if an absent + optional argument is used for mask. */ + if (maskss) gfc_add_ss_to_loop (&loop, maskss); + gfc_add_ss_to_loop (&loop, arrayss); /* Initialize the loop. */ gfc_conv_ss_startstride (&loop); @@ -5412,8 +5481,16 @@ tmp = build3_v (COND_EXPR, tmp, found, build_empty_stmt (input_location)); if (maskss) - tmp = build3_v (COND_EXPR, maskse.expr, tmp, - build_empty_stmt (input_location)); + { + /* We enclose the above in if (mask) {...}. If the mask is + an optional argument, generate IF (.NOT. PRESENT(MASK) + .OR. MASK(I)). */ + + tree ifmask; + ifmask = conv_mask_condition (&maskse, maskexpr, optional_mask); + tmp = build3_v (COND_EXPR, ifmask, tmp, + build_empty_stmt (input_location)); + } gfc_add_expr_to_block (&body, tmp); gfc_add_block_to_block (&body, &arrayse.post); @@ -5444,12 +5521,15 @@ /* For a scalar mask, enclose the loop in an if statement. */ if (maskexpr && maskss == NULL) { + tree ifmask; tree if_stmt; + gfc_init_se (&maskse, NULL); gfc_conv_expr_val (&maskse, maskexpr); gfc_init_block (&block); gfc_add_expr_to_block (&block, maskse.expr); - if_stmt = build3_v (COND_EXPR, maskse.expr, tmp, + ifmask = conv_mask_condition (&maskse, maskexpr, optional_mask); + if_stmt = build3_v (COND_EXPR, ifmask, tmp, build_empty_stmt (input_location)); gfc_add_expr_to_block (&block, if_stmt); tmp = gfc_finish_block (&block); @@ -5576,6 +5656,7 @@ gfc_expr *arrayexpr; gfc_expr *maskexpr; int n; + bool optional_mask; if (se->ss) { @@ -5665,6 +5746,9 @@ actual = actual->next->next; gcc_assert (actual); maskexpr = actual->expr; + optional_mask = maskexpr && maskexpr->expr_type == EXPR_VARIABLE + && maskexpr->symtree->n.sym->attr.dummy + && maskexpr->symtree->n.sym->attr.optional; nonempty = NULL; if (maskexpr && maskexpr->rank != 0) { @@ -5687,9 +5771,14 @@ /* Initialize the scalarizer. */ gfc_init_loopinfo (&loop); - gfc_add_ss_to_loop (&loop, arrayss); + + /* We add the mask first because the number of iterations is taken + from the last ss, and this breaks if an absent optional argument + is used for mask. */ + if (maskss) gfc_add_ss_to_loop (&loop, maskss); + gfc_add_ss_to_loop (&loop, arrayss); /* Initialize the loop. */ gfc_conv_ss_startstride (&loop); @@ -5832,9 +5921,15 @@ tmp = gfc_finish_block (&block); if (maskss) - /* We enclose the above in if (mask) {...}. */ - tmp = build3_v (COND_EXPR, maskse.expr, tmp, - build_empty_stmt (input_location)); + { + /* We enclose the above in if (mask) {...}. If the mask is an + optional argument, generate IF (.NOT. PRESENT(MASK) + .OR. MASK(I)). */ + tree ifmask; + ifmask = conv_mask_condition (&maskse, maskexpr, optional_mask); + tmp = build3_v (COND_EXPR, ifmask, tmp, + build_empty_stmt (input_location)); + } gfc_add_expr_to_block (&body, tmp); if (lab) @@ -5891,8 +5986,13 @@ tmp = gfc_finish_block (&block); if (maskss) /* We enclose the above in if (mask) {...}. */ - tmp = build3_v (COND_EXPR, maskse.expr, tmp, - build_empty_stmt (input_location)); + { + tree ifmask; + ifmask = conv_mask_condition (&maskse, maskexpr, optional_mask); + tmp = build3_v (COND_EXPR, ifmask, tmp, + build_empty_stmt (input_location)); + } + gfc_add_expr_to_block (&body, tmp); /* Avoid initializing loopvar[0] again, it should be left where it finished by the first loop. */ @@ -5920,6 +6020,7 @@ if (maskexpr && maskss == NULL) { tree else_stmt; + tree ifmask; gfc_init_se (&maskse, NULL); gfc_conv_expr_val (&maskse, maskexpr); @@ -5932,7 +6033,9 @@ else_stmt = build2_v (MODIFY_EXPR, limit, huge_cst); else else_stmt = build_empty_stmt (input_location); - tmp = build3_v (COND_EXPR, maskse.expr, tmp, else_stmt); + + ifmask = conv_mask_condition (&maskse, maskexpr, optional_mask); + tmp = build3_v (COND_EXPR, ifmask, tmp, else_stmt); gfc_add_expr_to_block (&block, tmp); gfc_add_block_to_block (&se->pre, &block); } @@ -10177,7 +10280,8 @@ bool gfc_inline_intrinsic_function_p (gfc_expr *expr) { - gfc_actual_arglist *args; + gfc_actual_arglist *args, *dim_arg, *mask_arg; + gfc_expr *maskexpr; if (!expr->value.function.isym) return false; @@ -10191,10 +10295,25 @@ return false; args = expr->value.function.actual; + dim_arg = args->next; + /* We need to be able to subset the SUM argument at compile-time. */ - if (args->next->expr && args->next->expr->expr_type != EXPR_CONSTANT) + if (dim_arg->expr && dim_arg->expr->expr_type != EXPR_CONSTANT) return false; + /* FIXME: If MASK is optional for a more than two-dimensional + argument, the scalarizer gets confused if the mask is + absent. See PR 82995. For now, fall back to the library + function. */ + + mask_arg = dim_arg->next; + maskexpr = mask_arg->expr; + + if (expr->rank > 0 && maskexpr && maskexpr->expr_type == EXPR_VARIABLE + && maskexpr->symtree->n.sym->attr.dummy + && maskexpr->symtree->n.sym->attr.optional) + return false; + return true; case GFC_ISYM_TRANSPOSE: diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-io.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-io.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-io.c 2018-08-22 07:31:01.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-io.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* IO Code translation/library interface - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-openmp.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-openmp.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-openmp.c 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-openmp.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* OpenMP directive translation -- generate GCC trees from gfc_code. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-stmt.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-stmt.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-stmt.c 2018-10-19 09:35:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-stmt.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Statement translation -- generate GCC trees from gfc_code. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook and Steven Bosscher diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-stmt.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-stmt.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-stmt.h 2018-08-12 11:28:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-stmt.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header for statement translation functions - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-types.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-types.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-types.c 2018-10-04 06:31:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-types.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Backend support for Fortran 95 basic types and derived types. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook and Steven Bosscher diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-types.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-types.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/trans-types.h 2018-01-25 23:39:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/trans-types.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header for Fortran 95 types backend support. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook and Steven Bosscher diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/types.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/types.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fortran/types.def 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fortran/types.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2018 Free Software Foundation, Inc. +/* Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fp-test.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fp-test.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fp-test.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fp-test.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* fp-test.c - Check that all floating-point operations are available. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. Contributed by Ronald F. Guilmette . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/function.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/function.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/function.c 2018-11-23 09:38:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/function.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Expands front end tree to back end RTL for GCC. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -6529,7 +6529,7 @@ output_matched[match] = true; start_sequence (); - emit_move_insn (output, input); + emit_move_insn (output, copy_rtx (input)); insns = get_insns (); end_sequence (); emit_insn_before (insns, insn); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/function.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/function.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/function.h 2018-01-23 00:38:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/function.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Structure for saving state for a nested function. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/function-tests.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/function-tests.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/function-tests.c 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/function-tests.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Unit tests for function-handling. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/fwprop.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/fwprop.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/fwprop.c 2018-11-05 08:45:35.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/fwprop.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* RTL-based forward propagation pass for GNU compiler. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Paolo Bonzini and Steven Bosscher. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcc-ar.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcc-ar.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcc-ar.c 2018-09-08 14:39:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcc-ar.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Wrapper for ar/ranlib/nm to pass the LTO plugin. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Andi Kleen. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcc.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcc.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcc.c 2018-11-28 13:52:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcc.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Compiler driver program that can handle many languages. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -7963,7 +7963,7 @@ { printf (_("%s %s%s\n"), progname, pkgversion_string, version_string); - printf ("Copyright %s 2018 Free Software Foundation, Inc.\n", + printf ("Copyright %s 2019 Free Software Foundation, Inc.\n", _("(C)")); fputs (_("This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"), diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcc.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcc.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcc.h 2018-09-18 08:44:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcc.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for modules that link with gcc.c - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcc-main.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcc-main.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcc-main.c 2018-07-09 11:23:03.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcc-main.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* "main" for the compiler driver. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcc-plugin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcc-plugin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcc-plugin.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcc-plugin.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Public header file for plugins to include. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcc-rich-location.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcc-rich-location.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcc-rich-location.c 2018-09-08 14:39:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcc-rich-location.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of gcc_rich_location class - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -182,3 +182,92 @@ else add_fixit_insert_before (insertion_point, content); } + +/* Implementation of range_label::get_text for + maybe_range_label_for_tree_type_mismatch. + + If both expressions are non-NULL, then generate text describing + the first expression's type (using the other expression's type + for comparison, analogous to %H and %I in the C++ frontend, but + on expressions rather than types). */ + +label_text +maybe_range_label_for_tree_type_mismatch::get_text (unsigned range_idx) const +{ + if (m_expr == NULL_TREE + || !EXPR_P (m_expr)) + return label_text (NULL, false); + tree expr_type = TREE_TYPE (m_expr); + + tree other_type = NULL_TREE; + if (m_other_expr && EXPR_P (m_other_expr)) + other_type = TREE_TYPE (m_other_expr); + + range_label_for_type_mismatch inner (expr_type, other_type); + return inner.get_text (range_idx); +} + +/* binary_op_rich_location's ctor. + + If use_operator_loc_p (LOC, ARG0, ARG1), then attempt to make a 3-location + rich_location of the form: + + arg_0 op arg_1 + ~~~~~ ^~ ~~~~~ + | | + | arg1 type + arg0 type + + labelling the types of the arguments if SHOW_TYPES is true. + + Otherwise, make a 1-location rich_location using the compound + location within LOC: + + arg_0 op arg_1 + ~~~~~~^~~~~~~~ + + for which we can't label the types. */ + +binary_op_rich_location::binary_op_rich_location (const op_location_t &loc, + tree arg0, tree arg1, + bool show_types) +: gcc_rich_location (loc.m_combined_loc), + m_label_for_arg0 (arg0, arg1), + m_label_for_arg1 (arg1, arg0) +{ + /* Default (above) to using the combined loc. + Potentially override it here: if we have location information for the + operator and for both arguments, then split them all out. + Alternatively, override it if we don't have the combined location. */ + if (use_operator_loc_p (loc, arg0, arg1)) + { + set_range (0, loc.m_operator_loc, SHOW_RANGE_WITH_CARET); + maybe_add_expr (arg0, show_types ? &m_label_for_arg0 : NULL); + maybe_add_expr (arg1, show_types ? &m_label_for_arg1 : NULL); + } +} + +/* Determine if binary_op_rich_location's ctor should attempt to make + a 3-location rich_location (the location of the operator and of + the 2 arguments), or fall back to a 1-location rich_location showing + just the combined location of the operation as a whole. */ + +bool +binary_op_rich_location::use_operator_loc_p (const op_location_t &loc, + tree arg0, tree arg1) +{ + /* If we don't have a combined location, then use the operator location, + and try to add ranges for the operators. */ + if (loc.m_combined_loc == UNKNOWN_LOCATION) + return true; + + /* If we don't have the operator location, then use the + combined location. */ + if (loc.m_operator_loc == UNKNOWN_LOCATION) + return false; + + /* We have both operator location and combined location: only use the + operator location if we have locations for both arguments. */ + return (EXPR_HAS_LOCATION (arg0) + && EXPR_HAS_LOCATION (arg1)); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcc-rich-location.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcc-rich-location.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcc-rich-location.h 2018-11-14 18:47:09.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcc-rich-location.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations relating to class gcc_rich_location - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -162,4 +162,61 @@ tree m_other_type; }; +/* Subclass of range_label for labelling the type of EXPR when reporting + a type mismatch between EXPR and OTHER_EXPR. + Either or both of EXPR and OTHER_EXPR could be NULL. */ + +class maybe_range_label_for_tree_type_mismatch : public range_label +{ + public: + maybe_range_label_for_tree_type_mismatch (tree expr, tree other_expr) + : m_expr (expr), m_other_expr (other_expr) + { + } + + label_text get_text (unsigned range_idx) const FINAL OVERRIDE; + + private: + tree m_expr; + tree m_other_expr; +}; + +struct op_location_t; + +/* A subclass of rich_location for showing problems with binary operations. + + If enough location information is available, the ctor will make a + 3-location rich_location of the form: + + arg_0 op arg_1 + ~~~~~ ^~ ~~~~~ + | | + | arg1 type + arg0 type + + labelling the types of the arguments if SHOW_TYPES is true. + + Otherwise, it will fall back to a 1-location rich_location using the + compound location within LOC: + + arg_0 op arg_1 + ~~~~~~^~~~~~~~ + + for which we can't label the types. */ + +class binary_op_rich_location : public gcc_rich_location +{ + public: + binary_op_rich_location (const op_location_t &loc, + tree arg0, tree arg1, + bool show_types); + + private: + static bool use_operator_loc_p (const op_location_t &loc, + tree arg0, tree arg1); + + maybe_range_label_for_tree_type_mismatch m_label_for_arg0; + maybe_range_label_for_tree_type_mismatch m_label_for_arg1; +}; + #endif /* GCC_RICH_LOCATION_H */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcc-symtab.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcc-symtab.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcc-symtab.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcc-symtab.h 2019-01-02 08:05:17.000000000 +0000 @@ -2,7 +2,7 @@ FIXME - This file should be named symtab.h, but that name conflicts with libcpp's symtab.h. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcov.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcov.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcov.c 2018-11-28 13:52:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcov.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Gcov.c: prepend line execution counts and branch probabilities to a source file. - Copyright (C) 1990-2018 Free Software Foundation, Inc. + Copyright (C) 1990-2019 Free Software Foundation, Inc. Contributed by James E. Wilson of Cygnus Support. Mangled by Bob Manson of Cygnus Support. Mangled further by Nathan Sidwell @@ -358,7 +358,10 @@ /* Default constructor. */ source_info (); - vector get_functions_at_location (unsigned line_num) const; + vector *get_functions_at_location (unsigned line_num) const; + + /* Register a new function. */ + void add_function (function_info *fn); /* Index of the source_info in sources vector. */ unsigned index; @@ -377,7 +380,10 @@ /* Functions in this source file. These are in ascending line number order. */ - vector functions; + vector functions; + + /* Line number to functions map. */ + vector *> line_to_function_map; }; source_info::source_info (): index (0), name (NULL), file_time (), @@ -385,21 +391,33 @@ { } -vector -source_info::get_functions_at_location (unsigned line_num) const +/* Register a new function. */ +void +source_info::add_function (function_info *fn) { - vector r; + functions.push_back (fn); - for (vector::const_iterator it = functions.begin (); - it != functions.end (); it++) - { - if ((*it)->start_line == line_num && (*it)->src == index) - r.push_back (*it); - } + if (fn->start_line >= line_to_function_map.size ()) + line_to_function_map.resize (fn->start_line + 1); + + vector **slot = &line_to_function_map[fn->start_line]; + if (*slot == NULL) + *slot = new vector (); - std::sort (r.begin (), r.end (), function_line_start_cmp ()); + (*slot)->push_back (fn); +} + +vector * +source_info::get_functions_at_location (unsigned line_num) const +{ + if (line_num >= line_to_function_map.size ()) + return NULL; - return r; + vector *slot = line_to_function_map[line_num]; + if (slot != NULL) + std::sort (slot->begin (), slot->end (), function_line_start_cmp ()); + + return slot; } class name_map @@ -438,6 +456,9 @@ /* Vector of all functions. */ static vector functions; +/* Function ident to function_info * map. */ +static map ident_to_fn; + /* Vector of source files. */ static vector sources; @@ -893,7 +914,7 @@ print_version (void) { fnotice (stdout, "gcov %s%s\n", pkgversion_string, version_string); - fprintf (stdout, "Copyright %s 2018 Free Software Foundation, Inc.\n", + fprintf (stdout, "Copyright %s 2019 Free Software Foundation, Inc.\n", _("(C)")); fnotice (stdout, _("This is free software; see the source for copying conditions.\n" @@ -1121,19 +1142,20 @@ for (unsigned line_num = 1; line_num <= src->lines.size (); line_num++) { - vector fns = src->get_functions_at_location (line_num); + vector *fns = src->get_functions_at_location (line_num); - /* Print first group functions that begin on the line. */ - for (vector::iterator it2 = fns.begin (); - it2 != fns.end (); it2++) - { - vector &lines = (*it2)->lines; - for (unsigned i = 0; i < lines.size (); i++) - { - line_info *line = &lines[i]; - output_intermediate_json_line (lineso, line, line_num + i); - } - } + if (fns != NULL) + /* Print first group functions that begin on the line. */ + for (vector::iterator it2 = fns->begin (); + it2 != fns->end (); it2++) + { + vector &lines = (*it2)->lines; + for (unsigned i = 0; i < lines.size (); i++) + { + line_info *line = &lines[i]; + output_intermediate_json_line (lineso, line, line_num + i); + } + } /* Follow with lines associated with the source file. */ if (line_num < src->lines.size ()) @@ -1256,7 +1278,7 @@ if (!fn->counts.empty () || no_data_file) { source_info *s = &sources[src]; - s->functions.push_back (fn); + s->add_function (fn); /* Mark last line in files touched by function. */ for (unsigned block_no = 0; block_no != fn->blocks.size (); @@ -1475,6 +1497,7 @@ sources.resize (0); names.resize (0); functions.resize (0); + ident_to_fn.clear (); } /* Generate the names of the graph and data files. If OBJECT_DIRECTORY @@ -1693,6 +1716,8 @@ fn = new function_info (); functions.push_back (fn); + ident_to_fn[ident] = fn; + fn->m_name = function_name; fn->ident = ident; fn->lineno_checksum = lineno_checksum; @@ -1843,6 +1868,7 @@ unsigned tag; function_info *fn = NULL; int error = 0; + map::iterator it; if (!gcov_open (da_file_name, 1)) { @@ -1892,21 +1918,11 @@ else if (tag == GCOV_TAG_FUNCTION && length == GCOV_TAG_FUNCTION_LENGTH) { unsigned ident; - - /* Try to find the function in the list. To speed up the - search, first start from the last function found. */ ident = gcov_read_unsigned (); - fn = NULL; - for (vector::reverse_iterator it - = functions.rbegin (); it != functions.rend (); it++) - { - if ((*it)->ident == ident) - { - fn = *it; - break; - } - } + it = ident_to_fn.find (ident); + if (it != ident_to_fn.end ()) + fn = it->second; if (!fn) ; @@ -3023,7 +3039,7 @@ source_lines.push_back (xstrdup (retval)); unsigned line_start_group = 0; - vector fns; + vector *fns; for (unsigned line_num = 1; line_num <= source_lines.size (); line_num++) { @@ -3039,18 +3055,18 @@ if (line_start_group == 0) { fns = src->get_functions_at_location (line_num); - if (fns.size () > 1) + if (fns != NULL && fns->size () > 1) { /* It's possible to have functions that partially overlap, thus take the maximum end_line of functions starting at LINE_NUM. */ - for (unsigned i = 0; i < fns.size (); i++) - if (fns[i]->end_line > line_start_group) - line_start_group = fns[i]->end_line; + for (unsigned i = 0; i < fns->size (); i++) + if ((*fns)[i]->end_line > line_start_group) + line_start_group = (*fns)[i]->end_line; } - else if (fns.size () == 1) + else if (fns != NULL && fns->size () == 1) { - function_info *fn = fns[0]; + function_info *fn = (*fns)[0]; output_function_details (gcov_file, fn); } } @@ -3070,8 +3086,8 @@ if (line_start_group == line_num) { - for (vector::iterator it = fns.begin (); - it != fns.end (); it++) + for (vector::iterator it = fns->begin (); + it != fns->end (); it++) { function_info *fn = *it; vector &lines = fn->lines; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcov-counter.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcov-counter.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcov-counter.def 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcov-counter.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for the gcov counters in the GNU compiler. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcov-dump.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcov-dump.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcov-dump.c 2018-10-02 07:26:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcov-dump.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Dump a gcov file, for debugging use. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Nathan Sidwell Gcov is free software; you can redistribute it and/or modify @@ -138,7 +138,7 @@ print_version (void) { printf ("gcov-dump %s%s\n", pkgversion_string, version_string); - printf ("Copyright (C) 2018 Free Software Foundation, Inc.\n"); + printf ("Copyright (C) 2019 Free Software Foundation, Inc.\n"); printf ("This is free software; see the source for copying conditions.\n" "There is NO warranty; not even for MERCHANTABILITY or \n" "FITNESS FOR A PARTICULAR PURPOSE.\n\n"); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcov-io.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcov-io.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcov-io.c 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcov-io.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* File format for coverage information - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Bob Manson . Completely remangled by Nathan Sidwell . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcov-io.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcov-io.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcov-io.h 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcov-io.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* File format for coverage information - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Bob Manson . Completely remangled by Nathan Sidwell . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcov-iov.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcov-iov.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcov-iov.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcov-iov.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Generate gcov version string from version.c. See gcov-io.h for description of how the version string is generated. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Nathan Sidwell This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcov-tool.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcov-tool.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcov-tool.c 2018-10-02 07:26:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcov-tool.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Gcc offline profile processing tool support. */ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Rong Xu . This file is part of GCC. @@ -525,7 +525,7 @@ print_version (void) { fnotice (stdout, "%s %s%s\n", progname, pkgversion_string, version_string); - fnotice (stdout, "Copyright %s 2018 Free Software Foundation, Inc.\n", + fnotice (stdout, "Copyright %s 2019 Free Software Foundation, Inc.\n", _("(C)")); fnotice (stdout, _("This is free software; see the source for copying conditions.\n" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcse.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcse.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcse.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcse.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Partial redundancy elimination / Hoisting for RTL. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcse-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcse-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcse-common.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcse-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Shared code for before and after reload gcse implementations. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcse-common.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcse-common.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcse-common.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcse-common.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Structures and prototypes common across the normal GCSE implementation and the post-reload implementation. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcse.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcse.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gcse.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gcse.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Global common subexpression elimination/Partial redundancy elimination and global constant/copy propagation for GNU compiler. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gdbhooks.py gcc-snapshot-20190102/=unpacked-tar1=/gcc/gdbhooks.py --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gdbhooks.py 2018-04-10 16:02:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gdbhooks.py 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ # Python hooks for gdb for debugging GCC -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. # Contributed by David Malcolm diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gdbinit.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/gdbinit.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gdbinit.in 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gdbinit.in 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genattr.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genattr.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genattr.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genattr.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Generate attribute information (insn-attr.h) from machine description. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genattr-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genattr-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genattr-common.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genattr-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,7 +1,7 @@ /* Generate attribute information shared between driver and core compilers (insn-attr-common.h) from machine description. Split out of genattr.c. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genattrtab.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genattrtab.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genattrtab.c 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genattrtab.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Generate code from machine description to compute values of attributes. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genautomata.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genautomata.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genautomata.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genautomata.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Pipeline hazard description translator. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Written by Vladimir Makarov diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gencfn-macros.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gencfn-macros.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gencfn-macros.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gencfn-macros.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Generate macros based on the combined_fn enum. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gencheck.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gencheck.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gencheck.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gencheck.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Generate check macros for tree codes. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genchecksum.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genchecksum.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genchecksum.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genchecksum.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Generate checksums of executables for PCH validation - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gencodes.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gencodes.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gencodes.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gencodes.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,7 +1,7 @@ /* Generate from machine description: - some macros CODE_FOR_... giving the insn_code_number value for each of the defined standard insn names. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genconditions.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genconditions.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genconditions.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genconditions.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Process machine description and calculate constant conditions. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genconfig.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genconfig.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genconfig.c 2018-08-12 11:28:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genconfig.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Generate from machine description: - some #define configuration flags. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genconstants.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genconstants.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genconstants.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genconstants.c 2019-01-02 08:05:18.000000000 +0000 @@ -2,7 +2,7 @@ a series of #define statements, one for each constant named in a (define_constants ...) pattern. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genemit.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genemit.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genemit.c 2018-08-12 11:28:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genemit.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Generate code from machine description to emit insns as rtl. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genenums.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genenums.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genenums.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genenums.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Generate from machine description the strings for each enum. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/generic-match.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/generic-match.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/generic-match.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/generic-match.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Generic simplify definitions. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Richard Guenther This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/generic-match-head.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/generic-match-head.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/generic-match-head.c 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/generic-match-head.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Preamble and helpers for the autogenerated generic-match.c file. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genextract.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genextract.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genextract.c 2018-02-07 23:57:25.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genextract.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Generate code from machine description to extract operands from insn as rtl. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genflags.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genflags.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genflags.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genflags.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,7 +1,7 @@ /* Generate from machine description: - some flags HAVE_... saying which simple standard instructions are available for this machine. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gengenrtl.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gengenrtl.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gengenrtl.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gengenrtl.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Generate code to allocate RTL structures. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gengtype.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gengtype.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gengtype.c 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gengtype.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Process source files and output type information. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -1611,7 +1611,7 @@ create_file (const char *name, const char *oname) { static const char *const hdr[] = { - " Copyright (C) 2004-2018 Free Software Foundation, Inc.\n", + " Copyright (C) 2004-2019 Free Software Foundation, Inc.\n", "\n", "This file is part of GCC.\n", "\n", diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gengtype.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gengtype.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gengtype.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gengtype.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Process source files and output type information. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gengtype-lex.l gcc-snapshot-20190102/=unpacked-tar1=/gcc/gengtype-lex.l --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gengtype-lex.l 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gengtype-lex.l 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- indented-text -*- */ /* Process source files and output type information. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gengtype-parse.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gengtype-parse.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gengtype-parse.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gengtype-parse.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Process source files and output type information. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gengtype-state.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gengtype-state.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gengtype-state.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gengtype-state.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ /* Gengtype persistent state serialization & de-serialization. Useful for gengtype in plugin mode. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genhooks.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genhooks.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genhooks.c 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genhooks.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Process target.def to create initialization macros definition in target-hooks-def.h and documentation in target-hooks.texi. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genmatch.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genmatch.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genmatch.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genmatch.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,7 +1,7 @@ /* Generate pattern matching and transform code shared between GENERIC and GIMPLE folding code from match-and-simplify description. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Richard Biener and Prathamesh Kulkarni diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genmddeps.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genmddeps.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genmddeps.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genmddeps.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* genmddeps.c - creates a makefile dependency fragment for the md file. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genmddump.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genmddump.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genmddump.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genmddump.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Generate code from machine description to recognize rtl as insns. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genmodes.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genmodes.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genmodes.c 2018-09-08 14:39:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genmodes.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Generate the machine mode enumeration and associated tables. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genmultilib gcc-snapshot-20190102/=unpacked-tar1=/gcc/genmultilib --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genmultilib 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genmultilib 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ #!/bin/sh # Generates multilib.h. -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2019 Free Software Foundation, Inc. #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genopinit.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genopinit.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genopinit.c 2018-08-12 11:28:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genopinit.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Generate code to initialize optabs from machine description. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genoutput.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genoutput.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genoutput.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genoutput.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Generate code from to output assembler insns as recognized from rtl. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gen-pass-instances.awk gcc-snapshot-20190102/=unpacked-tar1=/gcc/gen-pass-instances.awk --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gen-pass-instances.awk 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gen-pass-instances.awk 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genpeep.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genpeep.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genpeep.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genpeep.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Generate code from machine description to perform peephole optimizations. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genpreds.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genpreds.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genpreds.c 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genpreds.c 2019-01-02 08:05:17.000000000 +0000 @@ -2,7 +2,7 @@ - prototype declarations for operand predicates (tm-preds.h) - function definitions of operand predicates, if defined new-style (insn-preds.c) - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/genrecog.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/genrecog.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/genrecog.c 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/genrecog.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Generate code from machine description to recognize rtl as insns. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gensupport.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gensupport.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gensupport.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gensupport.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the various generation passes. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gensupport.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gensupport.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gensupport.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gensupport.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations for rtx-reader support for gen* routines. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gentarget-def.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gentarget-def.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gentarget-def.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gentarget-def.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Generate insn-target-def.h, an automatically-generated part of targetm. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ggc-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ggc-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ggc-common.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ggc-common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Simple garbage collection for the GNU compiler. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ggc.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ggc.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ggc.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ggc.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Garbage collection for the GNU compiler. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ggc-internal.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ggc-internal.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ggc-internal.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ggc-internal.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ /* Garbage collection for the GNU compiler. Internal definitions for ggc-*.c and stringpool.c. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ggc-none.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ggc-none.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ggc-none.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ggc-none.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Null garbage collection for the GNU compiler. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ggc-page.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ggc-page.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ggc-page.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ggc-page.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* "Bag-of-pages" garbage collector for the GNU compiler. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ggc-tests.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ggc-tests.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ggc-tests.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ggc-tests.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Unit tests for GCC's garbage collector (and gengtype etc). - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-builder.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-builder.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-builder.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-builder.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Functions for high level gimple building routines. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-builder.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-builder.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-builder.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-builder.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for high level statement building routines. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple.c 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Gimple IR support functions. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Aldy Hernandez This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple.def 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple.def 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* This file contains the definitions of the GIMPLE IR tuples used in GCC. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Aldy Hernandez This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-expr.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-expr.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-expr.c 2018-03-08 03:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-expr.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Gimple decl, type, and expression support functions. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Aldy Hernandez This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-expr.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-expr.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-expr.h 2018-01-14 10:48:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-expr.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for gimple decl, type and expressions. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-fold.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-fold.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-fold.c 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-fold.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Statement simplification on GIMPLE. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Split out from tree-ssa-ccp.c. This file is part of GCC. @@ -66,6 +66,26 @@ #include "tree-vector-builder.h" #include "tree-ssa-strlen.h" +enum strlen_range_kind { + /* Compute the exact constant string length. */ + SRK_STRLEN, + /* Compute the maximum constant string length. */ + SRK_STRLENMAX, + /* Compute a range of string lengths bounded by object sizes. When + the length of a string cannot be determined, consider as the upper + bound the size of the enclosing object the string may be a member + or element of. Also determine the size of the largest character + array the string may refer to. */ + SRK_LENRANGE, + /* Temporary until the rest of Martin's strlen range work is integrated. */ + SRK_LENRANGE_2, + /* Determine the integer value of the argument (not string length). */ + SRK_INT_VALUE +}; + +static bool get_range_strlen (tree, bitmap *, strlen_range_kind, + c_strlen_data *, bool *, unsigned); + /* Return true when DECL can be referenced from current unit. FROM_DECL (if non-null) specify constructor of variable DECL was taken from. We can get declarations that are not possible to reference for various @@ -1258,221 +1278,305 @@ return true; } - -/* Obtain the minimum and maximum string length or minimum and maximum - value of ARG in LENGTH[0] and LENGTH[1], respectively. - If ARG is an SSA name variable, follow its use-def chains. When - TYPE == 0, if LENGTH[1] is not equal to the length we determine or - if we are unable to determine the length or value, return false. - VISITED is a bitmap of visited variables. - TYPE is 0 if string length should be obtained, 1 for maximum string - length and 2 for maximum value ARG can have. - When FUZZY is non-zero and the length of a string cannot be determined, - the function instead considers as the maximum possible length the - size of a character array it may refer to. If FUZZY is 2, it will handle - PHIs and COND_EXPRs optimistically, if we can determine string length - minimum and maximum, it will use the minimum from the ones where it - can be determined. - Set *FLEXP to true if the range of the string lengths has been - obtained from the upper bound of an array at the end of a struct. - Such an array may hold a string that's longer than its upper bound - due to it being used as a poor-man's flexible array member. - Pass NONSTR through to children. - ELTSIZE is 1 for normal single byte character strings, and 2 or - 4 for wide characer strings. ELTSIZE is by default 1. */ +/* Helper of get_range_strlen for ARG that is not an SSA_NAME. */ static bool -get_range_strlen (tree arg, tree length[2], bitmap *visited, int type, - int fuzzy, bool *flexp, unsigned eltsize, tree *nonstr) -{ - tree var, val = NULL_TREE; - gimple *def_stmt; - - /* The minimum and maximum length. */ - tree *const minlen = length; - tree *const maxlen = length + 1; +get_range_strlen_tree (tree arg, bitmap *visited, + strlen_range_kind rkind, + c_strlen_data *pdata, + bool *flexp, unsigned eltsize) +{ + gcc_assert (TREE_CODE (arg) != SSA_NAME); + + /* The length computed by this invocation of the function. */ + tree val = NULL_TREE; + + /* True if VAL is an optimistic (tight) bound determined from + the size of the character array in which the string may be + stored. In that case, the computed VAL is used to set + PDATA->MAXBOUND. */ + bool tight_bound = false; + + /* We can end up with &(*iftmp_1)[0] here as well, so handle it. */ + if (TREE_CODE (arg) == ADDR_EXPR + && TREE_CODE (TREE_OPERAND (arg, 0)) == ARRAY_REF) + { + tree op = TREE_OPERAND (arg, 0); + if (integer_zerop (TREE_OPERAND (op, 1))) + { + tree aop0 = TREE_OPERAND (op, 0); + if (TREE_CODE (aop0) == INDIRECT_REF + && TREE_CODE (TREE_OPERAND (aop0, 0)) == SSA_NAME) + return get_range_strlen (TREE_OPERAND (aop0, 0), visited, + rkind, pdata, flexp, eltsize); + } + else if (TREE_CODE (TREE_OPERAND (op, 0)) == COMPONENT_REF + && (rkind == SRK_LENRANGE || rkind == SRK_LENRANGE_2)) + { + /* Fail if an array is the last member of a struct object + since it could be treated as a (fake) flexible array + member. */ + tree idx = TREE_OPERAND (op, 1); + + arg = TREE_OPERAND (op, 0); + tree optype = TREE_TYPE (arg); + if (tree dom = TYPE_DOMAIN (optype)) + if (tree bound = TYPE_MAX_VALUE (dom)) + if (TREE_CODE (bound) == INTEGER_CST + && TREE_CODE (idx) == INTEGER_CST + && tree_int_cst_lt (bound, idx)) + return false; + } + } - if (TREE_CODE (arg) != SSA_NAME) + if (rkind == SRK_INT_VALUE) { - /* We can end up with &(*iftmp_1)[0] here as well, so handle it. */ - if (TREE_CODE (arg) == ADDR_EXPR - && TREE_CODE (TREE_OPERAND (arg, 0)) == ARRAY_REF) + /* We are computing the maximum value (not string length). */ + val = arg; + if (TREE_CODE (val) != INTEGER_CST + || tree_int_cst_sgn (val) < 0) + return false; + } + else + { + c_strlen_data lendata = { }; + val = c_strlen (arg, 1, &lendata, eltsize); + + /* If we potentially had a non-terminated string, then + bubble that information up to the caller. */ + if (!val && lendata.decl) { - tree op = TREE_OPERAND (arg, 0); - if (integer_zerop (TREE_OPERAND (op, 1))) - { - tree aop0 = TREE_OPERAND (op, 0); - if (TREE_CODE (aop0) == INDIRECT_REF - && TREE_CODE (TREE_OPERAND (aop0, 0)) == SSA_NAME) - return get_range_strlen (TREE_OPERAND (aop0, 0), length, - visited, type, fuzzy, flexp, - eltsize, nonstr); - } - else if (TREE_CODE (TREE_OPERAND (op, 0)) == COMPONENT_REF && fuzzy) - { - /* Fail if an array is the last member of a struct object - since it could be treated as a (fake) flexible array - member. */ - tree idx = TREE_OPERAND (op, 1); - - arg = TREE_OPERAND (op, 0); - tree optype = TREE_TYPE (arg); - if (tree dom = TYPE_DOMAIN (optype)) - if (tree bound = TYPE_MAX_VALUE (dom)) - if (TREE_CODE (bound) == INTEGER_CST - && TREE_CODE (idx) == INTEGER_CST - && tree_int_cst_lt (bound, idx)) - return false; - } + pdata->decl = lendata.decl; + pdata->minlen = lendata.minlen; + pdata->maxlen = lendata.minlen; + return rkind == SRK_STRLEN ? false : true; } + } + + if (!val && (rkind == SRK_LENRANGE || rkind == SRK_LENRANGE_2)) + { + if (TREE_CODE (arg) == ADDR_EXPR) + return get_range_strlen (TREE_OPERAND (arg, 0), visited, rkind, + pdata, flexp, eltsize); - if (type == 2) + if (TREE_CODE (arg) == ARRAY_REF) { - val = arg; - if (TREE_CODE (val) != INTEGER_CST - || tree_int_cst_sgn (val) < 0) + tree optype = TREE_TYPE (TREE_OPERAND (arg, 0)); + + /* Determine the "innermost" array type. */ + while (TREE_CODE (optype) == ARRAY_TYPE + && TREE_CODE (TREE_TYPE (optype)) == ARRAY_TYPE) + optype = TREE_TYPE (optype); + + /* Avoid arrays of pointers. */ + tree eltype = TREE_TYPE (optype); + if (TREE_CODE (optype) != ARRAY_TYPE + || !INTEGRAL_TYPE_P (eltype)) return false; - } - else - { - c_strlen_data data; - memset (&data, 0, sizeof (c_strlen_data)); - val = c_strlen (arg, 1, &data, eltsize); - - /* If we potentially had a non-terminated string, then - bubble that information up to the caller. */ - if (!val && data.decl) - { - *nonstr = data.decl; - *minlen = data.len; - *maxlen = data.len; - return type == 0 ? false : true; - } - } - if (!val && fuzzy) - { - if (TREE_CODE (arg) == ADDR_EXPR) - return get_range_strlen (TREE_OPERAND (arg, 0), length, - visited, type, fuzzy, flexp, - eltsize, nonstr); + /* Fail when the array bound is unknown or zero. */ + val = TYPE_SIZE_UNIT (optype); + if (!val || integer_zerop (val)) + return false; - if (TREE_CODE (arg) == ARRAY_REF) - { - tree type = TREE_TYPE (TREE_OPERAND (arg, 0)); + val = fold_build2 (MINUS_EXPR, TREE_TYPE (val), val, + integer_one_node); - /* Determine the "innermost" array type. */ - while (TREE_CODE (type) == ARRAY_TYPE - && TREE_CODE (TREE_TYPE (type)) == ARRAY_TYPE) - type = TREE_TYPE (type); - - /* Avoid arrays of pointers. */ - tree eltype = TREE_TYPE (type); - if (TREE_CODE (type) != ARRAY_TYPE - || !INTEGRAL_TYPE_P (eltype)) - return false; + /* Set the minimum size to zero since the string in + the array could have zero length. */ + pdata->minlen = ssize_int (0); + + if (TREE_CODE (TREE_OPERAND (arg, 0)) == COMPONENT_REF + && optype == TREE_TYPE (TREE_OPERAND (arg, 0)) + && array_at_struct_end_p (TREE_OPERAND (arg, 0))) + *flexp = true; + tight_bound = true; + } + else if (TREE_CODE (arg) == COMPONENT_REF + && (TREE_CODE (TREE_TYPE (TREE_OPERAND (arg, 1))) + == ARRAY_TYPE)) + { + /* Use the type of the member array to determine the upper + bound on the length of the array. This may be overly + optimistic if the array itself isn't NUL-terminated and + the caller relies on the subsequent member to contain + the NUL but that would only be considered valid if + the array were the last member of a struct. + Set *FLEXP to true if the array whose bound is being + used is at the end of a struct. */ + if (array_at_struct_end_p (arg)) + *flexp = true; + + tree fld = TREE_OPERAND (arg, 1); + + tree optype = TREE_TYPE (fld); + + /* Determine the "innermost" array type. */ + while (TREE_CODE (optype) == ARRAY_TYPE + && TREE_CODE (TREE_TYPE (optype)) == ARRAY_TYPE) + optype = TREE_TYPE (optype); + + /* Fail when the array bound is unknown or zero. */ + val = TYPE_SIZE_UNIT (optype); + if (!val || integer_zerop (val)) + return false; + val = fold_build2 (MINUS_EXPR, TREE_TYPE (val), val, + integer_one_node); - val = TYPE_SIZE_UNIT (type); - if (!val || integer_zerop (val)) + /* Set the minimum size to zero since the string in + the array could have zero length. */ + pdata->minlen = ssize_int (0); + + /* The array size determined above is an optimistic bound + on the length. If the array isn't nul-terminated the + length computed by the library function would be greater. + Even though using strlen to cross the subobject boundary + is undefined, avoid drawing conclusions from the member + type about the length here. */ + tight_bound = true; + } + else if (VAR_P (arg)) + { + /* Avoid handling pointers to arrays. GCC might misuse + a pointer to an array of one bound to point to an array + object of a greater bound. */ + tree argtype = TREE_TYPE (arg); + if (TREE_CODE (argtype) == ARRAY_TYPE) + { + val = TYPE_SIZE_UNIT (argtype); + if (!val + || TREE_CODE (val) != INTEGER_CST + || integer_zerop (val)) return false; + val = wide_int_to_tree (TREE_TYPE (val), + wi::sub (wi::to_wide (val), 1)); - val = fold_build2 (MINUS_EXPR, TREE_TYPE (val), val, - integer_one_node); /* Set the minimum size to zero since the string in the array could have zero length. */ - *minlen = ssize_int (0); - - if (TREE_CODE (TREE_OPERAND (arg, 0)) == COMPONENT_REF - && type == TREE_TYPE (TREE_OPERAND (arg, 0)) - && array_at_struct_end_p (TREE_OPERAND (arg, 0))) - *flexp = true; + pdata->minlen = ssize_int (0); } - else if (TREE_CODE (arg) == COMPONENT_REF - && (TREE_CODE (TREE_TYPE (TREE_OPERAND (arg, 1))) - == ARRAY_TYPE)) + } + } + + if (!val) + return false; + + /* Adjust the lower bound on the string length as necessary. */ + if (!pdata->minlen + || (rkind != SRK_STRLEN + && TREE_CODE (pdata->minlen) == INTEGER_CST + && TREE_CODE (val) == INTEGER_CST + && tree_int_cst_lt (val, pdata->minlen))) + pdata->minlen = val; + + if (pdata->maxbound) + { + /* Adjust the tighter (more optimistic) string length bound + if necessary and proceed to adjust the more conservative + bound. */ + if (TREE_CODE (val) == INTEGER_CST) + { + if (TREE_CODE (pdata->maxbound) == INTEGER_CST) { - /* Use the type of the member array to determine the upper - bound on the length of the array. This may be overly - optimistic if the array itself isn't NUL-terminated and - the caller relies on the subsequent member to contain - the NUL but that would only be considered valid if - the array were the last member of a struct. - Set *FLEXP to true if the array whose bound is being - used is at the end of a struct. */ - if (array_at_struct_end_p (arg)) - *flexp = true; - - arg = TREE_OPERAND (arg, 1); - - tree type = TREE_TYPE (arg); - - while (TREE_CODE (type) == ARRAY_TYPE - && TREE_CODE (TREE_TYPE (type)) == ARRAY_TYPE) - type = TREE_TYPE (type); - - /* Fail when the array bound is unknown or zero. */ - val = TYPE_SIZE_UNIT (type); - if (!val || integer_zerop (val)) - return false; - val = fold_build2 (MINUS_EXPR, TREE_TYPE (val), val, - integer_one_node); - /* Set the minimum size to zero since the string in - the array could have zero length. */ - *minlen = ssize_int (0); + if (tree_int_cst_lt (pdata->maxbound, val)) + pdata->maxbound = val; } + else + pdata->maxbound = build_all_ones_cst (size_type_node); + } + else + pdata->maxbound = val; + } + else + pdata->maxbound = val; - if (VAR_P (arg)) + if (tight_bound) + { + /* VAL computed above represents an optimistically tight bound + on the length of the string based on the referenced object's + or subobject's type. Determine the conservative upper bound + based on the enclosing object's size if possible. */ + if (rkind == SRK_LENRANGE || rkind == SRK_LENRANGE_2) + { + poly_int64 offset; + tree base = get_addr_base_and_unit_offset (arg, &offset); + if (!base) + { + /* When the call above fails due to a non-constant offset + assume the offset is zero and use the size of the whole + enclosing object instead. */ + base = get_base_address (arg); + offset = 0; + } + /* If the base object is a pointer no upper bound on the length + can be determined. Otherwise the maximum length is equal to + the size of the enclosing object minus the offset of + the referenced subobject minus 1 (for the terminating nul). */ + tree type = TREE_TYPE (base); + if (TREE_CODE (type) == POINTER_TYPE + || !VAR_P (base) || !(val = DECL_SIZE_UNIT (base))) + val = build_all_ones_cst (size_type_node); + else { - tree type = TREE_TYPE (arg); - if (POINTER_TYPE_P (type)) - type = TREE_TYPE (type); - - if (TREE_CODE (type) == ARRAY_TYPE) - { - val = TYPE_SIZE_UNIT (type); - if (!val - || TREE_CODE (val) != INTEGER_CST - || integer_zerop (val)) - return false; - val = wide_int_to_tree (TREE_TYPE (val), - wi::sub (wi::to_wide (val), 1)); - /* Set the minimum size to zero since the string in - the array could have zero length. */ - *minlen = ssize_int (0); - } + val = DECL_SIZE_UNIT (base); + val = fold_build2 (MINUS_EXPR, TREE_TYPE (val), val, + size_int (offset + 1)); } } - - if (!val) + else return false; + } - if (!*minlen - || (type > 0 - && TREE_CODE (*minlen) == INTEGER_CST - && TREE_CODE (val) == INTEGER_CST - && tree_int_cst_lt (val, *minlen))) - *minlen = val; - - if (*maxlen) + if (pdata->maxlen) + { + /* Adjust the more conservative bound if possible/necessary + and fail otherwise. */ + if (rkind != SRK_STRLEN) { - if (type > 0) - { - if (TREE_CODE (*maxlen) != INTEGER_CST - || TREE_CODE (val) != INTEGER_CST) - return false; - - if (tree_int_cst_lt (*maxlen, val)) - *maxlen = val; - return true; - } - else if (simple_cst_equal (val, *maxlen) != 1) + if (TREE_CODE (pdata->maxlen) != INTEGER_CST + || TREE_CODE (val) != INTEGER_CST) return false; - } - *maxlen = val; - return true; + if (tree_int_cst_lt (pdata->maxlen, val)) + pdata->maxlen = val; + return true; + } + else if (simple_cst_equal (val, pdata->maxlen) != 1) + { + /* Fail if the length of this ARG is different from that + previously determined from another ARG. */ + return false; + } } + pdata->maxlen = val; + return true; +} + +/* For an ARG referencing one or more strings, try to obtain the range + of their lengths, or the size of the largest array ARG referes to if + the range of lengths cannot be determined, and store all in *PDATA. + For an integer ARG (when RKIND == SRK_INT_VALUE), try to determine + the maximum constant value. + If ARG is an SSA_NAME, follow its use-def chains. When RKIND == + SRK_STRLEN, then if PDATA->MAXLEN is not equal to the determined + length or if we are unable to determine the length, return false. + VISITED is a bitmap of visited variables. + RKIND determines the kind of value or range to obtain (see + strlen_range_kind). + Set PDATA->DECL if ARG refers to an unterminated constant array. + On input, set ELTSIZE to 1 for normal single byte character strings, + and either 2 or 4 for wide characer strings (the size of wchar_t). + Return true if *PDATA was successfully populated and false otherwise. */ + +static bool +get_range_strlen (tree arg, bitmap *visited, strlen_range_kind rkind, + c_strlen_data *pdata, bool *flexp, unsigned eltsize) +{ + + if (TREE_CODE (arg) != SSA_NAME) + return get_range_strlen_tree (arg, visited, rkind, pdata, flexp, eltsize); + /* If ARG is registered for SSA update we cannot look at its defining statement. */ if (name_registered_for_update_p (arg)) @@ -1484,21 +1588,20 @@ if (!bitmap_set_bit (*visited, SSA_NAME_VERSION (arg))) return true; - var = arg; - def_stmt = SSA_NAME_DEF_STMT (var); + tree var = arg; + gimple *def_stmt = SSA_NAME_DEF_STMT (var); switch (gimple_code (def_stmt)) { case GIMPLE_ASSIGN: - /* The RHS of the statement defining VAR must either have a - constant length or come from another SSA_NAME with a constant - length. */ + /* The RHS of the statement defining VAR must either have a + constant length or come from another SSA_NAME with a constant + length. */ if (gimple_assign_single_p (def_stmt) || gimple_assign_unary_nop_p (def_stmt)) { - tree rhs = gimple_assign_rhs1 (def_stmt); - return get_range_strlen (rhs, length, visited, type, fuzzy, flexp, - eltsize, nonstr); + tree rhs = gimple_assign_rhs1 (def_stmt); + return get_range_strlen (rhs, visited, rkind, pdata, flexp, eltsize); } else if (gimple_assign_rhs_code (def_stmt) == COND_EXPR) { @@ -1506,21 +1609,28 @@ gimple_assign_rhs3 (def_stmt) }; for (unsigned int i = 0; i < 2; i++) - if (!get_range_strlen (ops[i], length, visited, type, fuzzy, - flexp, eltsize, nonstr)) + if (!get_range_strlen (ops[i], visited, rkind, pdata, + flexp, eltsize)) { - if (fuzzy == 2) - *maxlen = build_all_ones_cst (size_type_node); - else + if (rkind != SRK_LENRANGE_2) return false; + /* Set the upper bound to the maximum to prevent + it from being adjusted in the next iteration but + leave MINLEN and the more conservative MAXBOUND + determined so far alone (or leave them null if + they haven't been set yet). That the MINLEN is + in fact zero can be determined from MAXLEN being + unbounded but the discovered minimum is used for + diagnostics. */ + pdata->maxlen = build_all_ones_cst (size_type_node); } return true; } return false; case GIMPLE_PHI: - /* All the arguments of the PHI node must have the same constant - length. */ + /* Unless RKIND == SRK_LENRANGE, all arguments of the PHI node + must have a constant length. */ for (unsigned i = 0; i < gimple_phi_num_args (def_stmt); i++) { tree arg = gimple_phi_arg (def_stmt, i)->def; @@ -1534,13 +1644,19 @@ if (arg == gimple_phi_result (def_stmt)) continue; - if (!get_range_strlen (arg, length, visited, type, fuzzy, flexp, - eltsize, nonstr)) + if (!get_range_strlen (arg, visited, rkind, pdata, flexp, eltsize)) { - if (fuzzy == 2) - *maxlen = build_all_ones_cst (size_type_node); - else + if (rkind != SRK_LENRANGE_2) return false; + /* Set the upper bound to the maximum to prevent + it from being adjusted in the next iteration but + leave MINLEN and the more conservative MAXBOUND + determined so far alone (or leave them null if + they haven't been set yet). That the MINLEN is + in fact zero can be determined from MAXLEN being + unbounded but the discovered minimum is used for + diagnostics. */ + pdata->maxlen = build_all_ones_cst (size_type_node); } } return true; @@ -1576,26 +1692,25 @@ 4 for wide characer strings. ELTSIZE is by default 1. */ bool -get_range_strlen (tree arg, tree minmaxlen[2], unsigned eltsize, - bool strict, tree *nonstr /* = NULL */) +get_range_strlen (tree arg, c_strlen_data *pdata, unsigned eltsize, bool strict) { bitmap visited = NULL; - minmaxlen[0] = NULL_TREE; - minmaxlen[1] = NULL_TREE; - - tree nonstrbuf; - if (!nonstr) - nonstr = &nonstrbuf; - *nonstr = NULL_TREE; - bool flexarray = false; - if (!get_range_strlen (arg, minmaxlen, &visited, 1, strict ? 1 : 2, - &flexarray, eltsize, nonstr)) + if (!get_range_strlen (arg, &visited, strict ? SRK_LENRANGE : SRK_LENRANGE_2, pdata, &flexarray, eltsize)) { - minmaxlen[0] = NULL_TREE; - minmaxlen[1] = NULL_TREE; - } + /* On failure extend the length range to an impossible maximum + (a valid MAXLEN must be less than PTRDIFF_MAX - 1). Other + members can stay unchanged regardless. */ + pdata->minlen = ssize_int (0); + pdata->maxlen = build_all_ones_cst (size_type_node); + } + else if (!pdata->minlen) + pdata->minlen = ssize_int (0); + + /* Unless its null, leave the more conservative MAXBOUND unchanged. */ + if (!pdata->maxbound) + pdata->maxbound = pdata->maxlen; if (visited) BITMAP_FREE (visited); @@ -1603,25 +1718,35 @@ return flexarray; } -/* Return the maximum string length for ARG, counting by TYPE - (1, 2 or 4 for normal or wide chars). NONSTR indicates - if the caller is prepared to handle unterminated strings. +/* Return the maximum value for ARG given RKIND (see strlen_range_kind). + For ARG of pointer types, NONSTR indicates if the caller is prepared + to handle unterminated strings. For integer ARG and when RKIND == + SRK_INT_VALUE, NONSTR must be null. - If an unterminated string is discovered and our caller handles - unterminated strings, then bubble up the offending DECL and + If an unterminated array is discovered and our caller handles + unterminated arrays, then bubble up the offending DECL and return the maximum size. Otherwise return NULL. */ -tree -get_maxval_strlen (tree arg, int type, tree *nonstr /* = NULL */) +static tree +get_maxval_strlen (tree arg, strlen_range_kind rkind, tree *nonstr = NULL) { + /* A non-null NONSTR is meaningless when determining the maximum + value of an integer ARG. */ + gcc_assert (rkind != SRK_INT_VALUE || nonstr == NULL); + /* ARG must have an integral type when RKIND says so. */ + gcc_assert (rkind != SRK_INT_VALUE || INTEGRAL_TYPE_P (TREE_TYPE (arg))); + bitmap visited = NULL; - tree len[2] = { NULL_TREE, NULL_TREE }; + /* Reset DATA.MAXLEN if the call fails or when DATA.MAXLEN + is unbounded. */ + c_strlen_data lendata = { }; bool dummy; - /* Set to non-null if ARG refers to an untermianted array. */ - tree mynonstr = NULL_TREE; - if (!get_range_strlen (arg, len, &visited, type, 0, &dummy, 1, &mynonstr)) - len[1] = NULL_TREE; + if (!get_range_strlen (arg, &visited, rkind, &lendata, &dummy, 1)) + lendata.maxlen = NULL_TREE; + else if (lendata.maxlen && integer_all_onesp (lendata.maxlen)) + lendata.maxlen = NULL_TREE; + if (visited) BITMAP_FREE (visited); @@ -1630,12 +1755,12 @@ /* For callers prepared to handle unterminated arrays set *NONSTR to point to the declaration of the array and return the maximum length/size. */ - *nonstr = mynonstr; - return len[1]; + *nonstr = lendata.decl; + return lendata.maxlen; } /* Fail if the constant array isn't nul-terminated. */ - return mynonstr ? NULL_TREE : len[1]; + return lendata.decl ? NULL_TREE : lendata.maxlen; } @@ -1680,7 +1805,7 @@ /* Set to non-null if ARG refers to an unterminated array. */ tree nonstr = NULL; - tree len = get_maxval_strlen (src, 0, &nonstr); + tree len = get_maxval_strlen (src, SRK_STRLEN, &nonstr); if (nonstr) { @@ -1726,7 +1851,7 @@ /* Warn about the lack of nul termination: the result is not a (nul-terminated) string. */ - tree slen = get_maxval_strlen (src, 0); + tree slen = get_maxval_strlen (src, SRK_STRLEN); if (slen && !integer_zerop (slen)) warning_at (loc, OPT_Wstringop_truncation, "%G%qD destination unchanged after copying no bytes " @@ -1748,7 +1873,7 @@ return false; /* Now, we must be passed a constant src ptr parameter. */ - tree slen = get_maxval_strlen (src, 0); + tree slen = get_maxval_strlen (src, SRK_STRLEN); if (!slen || TREE_CODE (slen) != INTEGER_CST) return false; @@ -1970,7 +2095,7 @@ /* If the length of the source string isn't computable don't split strcat into strlen and memcpy. */ - tree len = get_maxval_strlen (src, 0); + tree len = get_maxval_strlen (src, SRK_STRLEN); if (! len) return false; @@ -2486,7 +2611,7 @@ /* Get the length of the string passed to fputs. If the length can't be determined, punt. */ - tree len = get_maxval_strlen (arg0, 0); + tree len = get_maxval_strlen (arg0, SRK_STRLEN); if (!len || TREE_CODE (len) != INTEGER_CST) return false; @@ -2574,7 +2699,7 @@ if (! tree_fits_uhwi_p (size)) return false; - tree maxlen = get_maxval_strlen (len, 2); + tree maxlen = get_maxval_strlen (len, SRK_INT_VALUE); if (! integer_all_onesp (size)) { if (! tree_fits_uhwi_p (len)) @@ -2675,7 +2800,7 @@ if (! tree_fits_uhwi_p (size)) return false; - tree maxlen = get_maxval_strlen (src, 1); + tree maxlen = get_maxval_strlen (src, SRK_STRLENMAX); if (! integer_all_onesp (size)) { len = c_strlen (src, 1); @@ -2771,7 +2896,7 @@ if (! tree_fits_uhwi_p (size)) return false; - tree maxlen = get_maxval_strlen (len, 2); + tree maxlen = get_maxval_strlen (len, SRK_INT_VALUE); if (! integer_all_onesp (size)) { if (! tree_fits_uhwi_p (len)) @@ -2824,8 +2949,7 @@ } /* Set to non-null if ARG refers to an unterminated array. */ - c_strlen_data data; - memset (&data, 0, sizeof (c_strlen_data)); + c_strlen_data data = { }; tree len = c_strlen (src, 1, &data, 1); if (!len || TREE_CODE (len) != INTEGER_CST) @@ -2909,7 +3033,7 @@ if (! integer_all_onesp (size)) { - tree maxlen = get_maxval_strlen (len, 2); + tree maxlen = get_maxval_strlen (len, SRK_INT_VALUE); if (! tree_fits_uhwi_p (len)) { /* If LEN is not constant, try MAXLEN too. @@ -3151,7 +3275,7 @@ tree orig_len = NULL_TREE; if (gimple_call_lhs (stmt)) { - orig_len = get_maxval_strlen (orig, 0); + orig_len = get_maxval_strlen (orig, SRK_STRLEN); if (!orig_len) return false; } @@ -3284,7 +3408,7 @@ if (!orig) return false; - tree orig_len = get_maxval_strlen (orig, 0); + tree orig_len = get_maxval_strlen (orig, SRK_STRLEN); if (!orig_len || TREE_CODE (orig_len) != INTEGER_CST) return false; @@ -3595,21 +3719,19 @@ wide_int minlen; wide_int maxlen; - /* Set to non-null if ARG refers to an unterminated array. */ - tree nonstr; - tree lenrange[2]; - if (!get_range_strlen (arg, lenrange, 1, true, &nonstr) - && !nonstr - && lenrange[0] && TREE_CODE (lenrange[0]) == INTEGER_CST - && lenrange[1] && TREE_CODE (lenrange[1]) == INTEGER_CST) + c_strlen_data lendata = { }; + if (!get_range_strlen (arg, &lendata, /* eltsize = */ 1) + && !lendata.decl + && lendata.minlen && TREE_CODE (lendata.minlen) == INTEGER_CST + && lendata.maxlen && TREE_CODE (lendata.maxlen) == INTEGER_CST) { /* The range of lengths refers to either a single constant string or to the longest and shortest constant string referenced by the argument of the strlen() call, or to the strings that can possibly be stored in the arrays the argument refers to. */ - minlen = wi::to_wide (lenrange[0]); - maxlen = wi::to_wide (lenrange[1]); + minlen = wi::to_wide (lendata.minlen); + maxlen = wi::to_wide (lendata.maxlen); } else { @@ -3621,9 +3743,12 @@ if (minlen == maxlen) { - lenrange[0] = force_gimple_operand_gsi (gsi, lenrange[0], true, NULL, - true, GSI_SAME_STMT); - replace_call_with_value (gsi, lenrange[0]); + /* Fold the strlen call to a constant. */ + tree type = TREE_TYPE (lendata.minlen); + tree len = force_gimple_operand_gsi (gsi, + wide_int_to_tree (type, minlen), + true, NULL, true, GSI_SAME_STMT); + replace_call_with_value (gsi, len); return true; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-fold.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-fold.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-fold.h 2018-09-18 08:44:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-fold.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Gimple folding definitions. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Richard Guenther This file is part of GCC. @@ -25,9 +25,8 @@ extern tree create_tmp_reg_or_ssa_name (tree, gimple *stmt = NULL); extern tree canonicalize_constructor_val (tree, tree); extern tree get_symbol_constant_value (tree); -extern bool get_range_strlen (tree, tree[2], unsigned = 1, - bool = false, tree * = NULL); -extern tree get_maxval_strlen (tree, int, tree * = NULL); +struct c_strlen_data; +extern bool get_range_strlen (tree, c_strlen_data *, unsigned eltsize, bool = false); extern void gimplify_and_update_call_from_tree (gimple_stmt_iterator *, tree); extern bool fold_stmt (gimple_stmt_iterator *); extern bool fold_stmt (gimple_stmt_iterator *, tree (*) (tree)); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple.h 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Gimple IR definitions. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Aldy Hernandez This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-iterator.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-iterator.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-iterator.c 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-iterator.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Iterator routines for GIMPLE statements. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Aldy Hernandez This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-iterator.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-iterator.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-iterator.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-iterator.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for gimple iterators. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-laddress.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-laddress.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-laddress.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-laddress.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Lower and optimize address expressions. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Marek Polacek This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-loop-interchange.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-loop-interchange.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-loop-interchange.cc 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-loop-interchange.cc 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Loop interchange. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-loop-jam.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-loop-jam.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-loop-jam.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-loop-jam.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Loop unroll-and-jam. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-loop-versioning.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-loop-versioning.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-loop-versioning.cc 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-loop-versioning.cc 2019-01-02 08:05:17.000000000 +0000 @@ -0,0 +1,1758 @@ +/* Loop versioning pass. + Copyright (C) 2018-2019 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 3, or (at your option) any +later version. + +GCC is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +#include "config.h" +#include "system.h" +#include "coretypes.h" +#include "backend.h" +#include "tree.h" +#include "gimple.h" +#include "gimple-iterator.h" +#include "tree-pass.h" +#include "gimplify-me.h" +#include "cfgloop.h" +#include "tree-ssa-loop.h" +#include "ssa.h" +#include "tree-scalar-evolution.h" +#include "tree-chrec.h" +#include "tree-ssa-loop-ivopts.h" +#include "fold-const.h" +#include "tree-ssa-propagate.h" +#include "tree-inline.h" +#include "domwalk.h" +#include "alloc-pool.h" +#include "vr-values.h" +#include "gimple-ssa-evrp-analyze.h" +#include "tree-vectorizer.h" +#include "omp-general.h" +#include "predict.h" +#include "tree-into-ssa.h" +#include "params.h" + +namespace { + +/* This pass looks for loops that could be simplified if certain loop + invariant conditions were true. It is effectively a form of loop + splitting in which the pass produces the split conditions itself, + instead of using ones that are already present in the IL. + + Versioning for when strides are 1 + --------------------------------- + + At the moment the only thing the pass looks for are memory references + like: + + for (auto i : ...) + ...x[i * stride]... + + It considers changing such loops to: + + if (stride == 1) + for (auto i : ...) [A] + ...x[i]... + else + for (auto i : ...) [B] + ...x[i * stride]... + + This can have several benefits: + + (1) [A] is often easier or cheaper to vectorize than [B]. + + (2) The scalar code in [A] is simpler than the scalar code in [B] + (if the loops cannot be vectorized or need an epilogue loop). + + (3) We might recognize [A] as a pattern, such as a memcpy or memset. + + (4) [A] has simpler address evolutions, which can help other passes + like loop interchange. + + The optimization is particularly useful for assumed-shape arrays in + Fortran, where the stride of the innermost dimension depends on the + array descriptor but is often equal to 1 in practice. For example: + + subroutine f1(x) + real :: x(:) + x(:) = 100 + end subroutine f1 + + generates the equivalent of: + + raw_stride = *x.dim[0].stride; + stride = raw_stride != 0 ? raw_stride : 1; + x_base = *x.data; + ... + tmp1 = stride * S; + tmp2 = tmp1 - stride; + *x_base[tmp2] = 1.0e+2; + + but in the common case that stride == 1, the last three statements + simplify to: + + tmp3 = S + -1; + *x_base[tmp3] = 1.0e+2; + + The optimization is in principle very simple. The difficult parts are: + + (a) deciding which parts of a general address calculation correspond + to the inner dimension of an array, since this usually isn't explicit + in the IL, and for C often isn't even explicit in the source code + + (b) estimating when the transformation is worthwhile + + Structure + --------- + + The pass has four phases: + + (1) Walk through the statements looking for and recording potential + versioning opportunities. Stop if there are none. + + (2) Use context-sensitive range information to see whether any versioning + conditions are impossible in practice. Remove them if so, and stop + if no opportunities remain. + + (We do this only after (1) to keep compile time down when no + versioning opportunities exist.) + + (3) Apply the cost model. Decide which versioning opportunities are + worthwhile and at which nesting level they should be applied. + + (4) Attempt to version all the loops selected by (3), so that: + + for (...) + ... + + becomes: + + if (!cond) + for (...) // Original loop + ... + else + for (...) // New loop + ... + + Use the version condition COND to simplify the new loop. */ + +/* Enumerates the likelihood that a particular value indexes the inner + dimension of an array. */ +enum inner_likelihood { + INNER_UNLIKELY, + INNER_DONT_KNOW, + INNER_LIKELY +}; + +/* Information about one term of an address_info. */ +struct address_term_info +{ + /* The value of the term is EXPR * MULTIPLIER. */ + tree expr; + unsigned HOST_WIDE_INT multiplier; + + /* The stride applied by EXPR in each iteration of some unrecorded loop, + or null if no stride has been identified. */ + tree stride; + + /* Enumerates the likelihood that EXPR indexes the inner dimension + of an array. */ + enum inner_likelihood inner_likelihood; + + /* True if STRIDE == 1 is a versioning opportunity when considered + in isolation. */ + bool versioning_opportunity_p; +}; + +/* Information about an address calculation, and the range of constant + offsets applied to it. */ +struct address_info +{ + static const unsigned int MAX_TERMS = 8; + + /* One statement that calculates the address. If multiple statements + share the same address, we only record the first. */ + gimple *stmt; + + /* The loop containing STMT (cached for convenience). If multiple + statements share the same address, they all belong to this loop. */ + struct loop *loop; + + /* A decomposition of the calculation into a sum of terms plus an + optional base. When BASE is provided, it is never an SSA name. + Once initialization is complete, all members of TERMs are SSA names. */ + tree base; + auto_vec terms; + + /* All bytes accessed from the address fall in the offset range + [MIN_OFFSET, MAX_OFFSET). */ + HOST_WIDE_INT min_offset, max_offset; +}; + +/* Stores addresses based on their base and terms (ignoring the offsets). */ +struct address_info_hasher : nofree_ptr_hash +{ + static hashval_t hash (const address_info *); + static bool equal (const address_info *, const address_info *); +}; + +/* Information about the versioning we'd like to apply to a loop. */ +struct loop_info +{ + bool worth_versioning_p () const; + + /* True if we've decided not to version this loop. The remaining + fields are meaningless if so. */ + bool rejected_p; + + /* True if at least one subloop of this loop benefits from versioning. */ + bool subloops_benefit_p; + + /* An estimate of the total number of instructions in the loop, + excluding those in subloops that benefit from versioning. */ + unsigned int num_insns; + + /* The outermost loop that can handle all the version checks + described below. */ + struct loop *outermost; + + /* The first entry in the list of blocks that belong to this loop + (and not to subloops). m_next_block_in_loop provides the chain + pointers for the list. */ + basic_block block_list; + + /* We'd like to version the loop for the case in which these SSA names + (keyed off their SSA_NAME_VERSION) are all equal to 1 at runtime. */ + bitmap_head unity_names; + + /* If versioning succeeds, this points the version of the loop that + assumes the version conditions holds. */ + struct loop *optimized_loop; +}; + +/* The main pass structure. */ +class loop_versioning +{ +public: + loop_versioning (function *); + ~loop_versioning (); + unsigned int run (); + +private: + /* Used to walk the dominator tree to find loop versioning conditions + that are always false. */ + class lv_dom_walker : public dom_walker + { + public: + lv_dom_walker (loop_versioning &); + + edge before_dom_children (basic_block) FINAL OVERRIDE; + void after_dom_children (basic_block) FINAL OVERRIDE; + + private: + /* The parent pass. */ + loop_versioning &m_lv; + + /* Used to build context-dependent range information. */ + evrp_range_analyzer m_range_analyzer; + }; + + /* Used to simplify statements based on conditions that are established + by the version checks. */ + class name_prop : public substitute_and_fold_engine + { + public: + name_prop (loop_info &li) : m_li (li) {} + tree get_value (tree) FINAL OVERRIDE; + + private: + /* Information about the versioning we've performed on the loop. */ + loop_info &m_li; + }; + + loop_info &get_loop_info (struct loop *loop) { return m_loops[loop->num]; } + + unsigned int max_insns_for_loop (struct loop *); + bool expensive_stmt_p (gimple *); + + void version_for_unity (gimple *, tree); + bool acceptable_multiplier_p (tree, unsigned HOST_WIDE_INT, + unsigned HOST_WIDE_INT * = 0); + bool acceptable_type_p (tree, unsigned HOST_WIDE_INT *); + bool multiply_term_by (address_term_info &, tree); + inner_likelihood get_inner_likelihood (tree, unsigned HOST_WIDE_INT); + void analyze_stride (address_info &, address_term_info &, + tree, struct loop *); + bool find_per_loop_multiplication (address_info &, address_term_info &); + void analyze_term_using_scevs (address_info &, address_term_info &); + void analyze_address_fragment (address_info &); + void record_address_fragment (gimple *, unsigned HOST_WIDE_INT, + tree, unsigned HOST_WIDE_INT, HOST_WIDE_INT); + void analyze_expr (gimple *, tree); + bool analyze_block (basic_block); + bool analyze_blocks (); + + void prune_loop_conditions (struct loop *, vr_values *); + bool prune_conditions (); + + void merge_loop_info (struct loop *, struct loop *); + void add_loop_to_queue (struct loop *); + bool decide_whether_loop_is_versionable (struct loop *); + bool make_versioning_decisions (); + + bool version_loop (struct loop *); + void implement_versioning_decisions (); + + /* The function we're optimizing. */ + function *m_fn; + + /* The obstack to use for all pass-specific bitmaps. */ + bitmap_obstack m_bitmap_obstack; + + /* An obstack to use for general allocation. */ + obstack m_obstack; + + /* The number of loops in the function. */ + unsigned int m_nloops; + + /* The total number of loop version conditions we've found. */ + unsigned int m_num_conditions; + + /* Assume that an address fragment of the form i * stride * scale + (for variable stride and constant scale) will not benefit from + versioning for stride == 1 when scale is greater than this value. */ + unsigned HOST_WIDE_INT m_maximum_scale; + + /* Information about each loop. */ + auto_vec m_loops; + + /* Used to form a linked list of blocks that belong to a loop, + started by loop_info::block_list. */ + auto_vec m_next_block_in_loop; + + /* The list of loops that we've decided to version. */ + auto_vec m_loops_to_version; + + /* A table of addresses in the current loop, keyed off their values + but not their offsets. */ + hash_table m_address_table; + + /* A list of all addresses in M_ADDRESS_TABLE, in a predictable order. */ + auto_vec m_address_list; +}; + +/* If EXPR is an SSA name and not a default definition, return the + defining statement, otherwise return null. */ + +static gimple * +maybe_get_stmt (tree expr) +{ + if (TREE_CODE (expr) == SSA_NAME && !SSA_NAME_IS_DEFAULT_DEF (expr)) + return SSA_NAME_DEF_STMT (expr); + return NULL; +} + +/* Like maybe_get_stmt, but also return null if the defining + statement isn't an assignment. */ + +static gassign * +maybe_get_assign (tree expr) +{ + return safe_dyn_cast (maybe_get_stmt (expr)); +} + +/* Return true if this pass should look through a cast of expression FROM + to type TYPE when analyzing pieces of an address. */ + +static bool +look_through_cast_p (tree type, tree from) +{ + return (INTEGRAL_TYPE_P (TREE_TYPE (from)) == INTEGRAL_TYPE_P (type) + && POINTER_TYPE_P (TREE_TYPE (from)) == POINTER_TYPE_P (type)); +} + +/* Strip all conversions of integers or pointers from EXPR, regardless + of whether the conversions are nops. This is useful in the context + of this pass because we're not trying to fold or simulate the + expression; we just want to see how it's structured. */ + +static tree +strip_casts (tree expr) +{ + const unsigned int MAX_NITERS = 4; + + tree type = TREE_TYPE (expr); + while (CONVERT_EXPR_P (expr) + && look_through_cast_p (type, TREE_OPERAND (expr, 0))) + expr = TREE_OPERAND (expr, 0); + + for (unsigned int niters = 0; niters < MAX_NITERS; ++niters) + { + gassign *assign = maybe_get_assign (expr); + if (assign + && CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (assign)) + && look_through_cast_p (type, gimple_assign_rhs1 (assign))) + expr = gimple_assign_rhs1 (assign); + else + break; + } + return expr; +} + +/* Compare two address_term_infos in the same address_info. */ + +static int +compare_address_terms (const void *a_uncast, const void *b_uncast) +{ + const address_term_info *a = (const address_term_info *) a_uncast; + const address_term_info *b = (const address_term_info *) b_uncast; + + if (a->expr != b->expr) + return SSA_NAME_VERSION (a->expr) < SSA_NAME_VERSION (b->expr) ? -1 : 1; + + if (a->multiplier != b->multiplier) + return a->multiplier < b->multiplier ? -1 : 1; + + return 0; +} + +/* Dump ADDRESS using flags FLAGS. */ + +static void +dump_address_info (dump_flags_t flags, address_info &address) +{ + if (address.base) + dump_printf (flags, "%T + ", address.base); + for (unsigned int i = 0; i < address.terms.length (); ++i) + { + if (i != 0) + dump_printf (flags, " + "); + dump_printf (flags, "%T", address.terms[i].expr); + if (address.terms[i].multiplier != 1) + dump_printf (flags, " * %wd", address.terms[i].multiplier); + } + dump_printf (flags, " + [%wd, %wd]", + address.min_offset, address.max_offset - 1); +} + +/* Hash an address_info based on its base and terms. */ + +hashval_t +address_info_hasher::hash (const address_info *info) +{ + inchash::hash hash; + hash.add_int (info->base ? TREE_CODE (info->base) : 0); + hash.add_int (info->terms.length ()); + for (unsigned int i = 0; i < info->terms.length (); ++i) + { + hash.add_int (SSA_NAME_VERSION (info->terms[i].expr)); + hash.add_hwi (info->terms[i].multiplier); + } + return hash.end (); +} + +/* Return true if two address_infos have equal bases and terms. Other + properties might be different (such as the statement or constant + offset range). */ + +bool +address_info_hasher::equal (const address_info *a, const address_info *b) +{ + if (a->base != b->base + && (!a->base || !b->base || !operand_equal_p (a->base, b->base, 0))) + return false; + + if (a->terms.length () != b->terms.length ()) + return false; + + for (unsigned int i = 0; i < a->terms.length (); ++i) + if (a->terms[i].expr != b->terms[i].expr + || a->terms[i].multiplier != b->terms[i].multiplier) + return false; + + return true; +} + +/* Return true if we want to version the loop, i.e. if we have a + specific reason for doing so and no specific reason not to. */ + +bool +loop_info::worth_versioning_p () const +{ + return (!rejected_p + && (!bitmap_empty_p (&unity_names) || subloops_benefit_p)); +} + +loop_versioning::lv_dom_walker::lv_dom_walker (loop_versioning &lv) + : dom_walker (CDI_DOMINATORS), m_lv (lv), m_range_analyzer (false) +{ +} + +/* Process BB before processing the blocks it dominates. */ + +edge +loop_versioning::lv_dom_walker::before_dom_children (basic_block bb) +{ + m_range_analyzer.enter (bb); + + if (bb == bb->loop_father->header) + m_lv.prune_loop_conditions (bb->loop_father, + m_range_analyzer.get_vr_values ()); + + for (gimple_stmt_iterator si = gsi_start_bb (bb); !gsi_end_p (si); + gsi_next (&si)) + m_range_analyzer.record_ranges_from_stmt (gsi_stmt (si), false); + + return NULL; +} + +/* Process BB after processing the blocks it dominates. */ + +void +loop_versioning::lv_dom_walker::after_dom_children (basic_block bb) +{ + m_range_analyzer.leave (bb); +} + +/* Decide whether to replace VAL with a new value in a versioned loop. + Return the new value if so, otherwise return null. */ + +tree +loop_versioning::name_prop::get_value (tree val) +{ + if (TREE_CODE (val) == SSA_NAME + && bitmap_bit_p (&m_li.unity_names, SSA_NAME_VERSION (val))) + return build_one_cst (TREE_TYPE (val)); + return NULL_TREE; +} + +/* Initialize the structure to optimize FN. */ + +loop_versioning::loop_versioning (function *fn) + : m_fn (fn), + m_nloops (number_of_loops (fn)), + m_num_conditions (0), + m_address_table (31) +{ + bitmap_obstack_initialize (&m_bitmap_obstack); + gcc_obstack_init (&m_obstack); + + /* Initialize the loop information. */ + m_loops.safe_grow_cleared (m_nloops); + for (unsigned int i = 0; i < m_nloops; ++i) + { + m_loops[i].outermost = get_loop (m_fn, 0); + bitmap_initialize (&m_loops[i].unity_names, &m_bitmap_obstack); + } + + /* Initialize the list of blocks that belong to each loop. */ + unsigned int nbbs = last_basic_block_for_fn (fn); + m_next_block_in_loop.safe_grow (nbbs); + basic_block bb; + FOR_EACH_BB_FN (bb, fn) + { + loop_info &li = get_loop_info (bb->loop_father); + m_next_block_in_loop[bb->index] = li.block_list; + li.block_list = bb; + } + + /* MAX_FIXED_MODE_SIZE should be a reasonable maximum scale for + unvectorizable code, since it is the largest size that can be + handled efficiently by scalar code. omp_max_vf calculates the + maximum number of bytes in a vector, when such a value is relevant + to loop optimization. */ + m_maximum_scale = estimated_poly_value (omp_max_vf ()); + m_maximum_scale = MAX (m_maximum_scale, MAX_FIXED_MODE_SIZE); +} + +loop_versioning::~loop_versioning () +{ + bitmap_obstack_release (&m_bitmap_obstack); + obstack_free (&m_obstack, NULL); +} + +/* Return the maximum number of instructions allowed in LOOP before + it becomes too big for versioning. + + There are separate limits for inner and outer loops. The limit for + inner loops applies only to loops that benefit directly from versioning. + The limit for outer loops applies to all code in the outer loop and + its subloops that *doesn't* benefit directly from versioning; such code + would be "taken along for the ride". The idea is that if the cost of + the latter is small, it is better to version outer loops rather than + inner loops, both to reduce the number of repeated checks and to enable + more of the loop nest to be optimized as a natural nest (e.g. by loop + interchange or outer-loop vectorization). */ + +unsigned int +loop_versioning::max_insns_for_loop (struct loop *loop) +{ + return (loop->inner + ? PARAM_VALUE (PARAM_LOOP_VERSIONING_MAX_OUTER_INSNS) + : PARAM_VALUE (PARAM_LOOP_VERSIONING_MAX_INNER_INSNS)); +} + +/* Return true if for cost reasons we should avoid versioning any loop + that contains STMT. + + Note that we don't need to check whether versioning is invalid for + correctness reasons, since the versioning process does that for us. + The conditions involved are too rare to be worth duplicating here. */ + +bool +loop_versioning::expensive_stmt_p (gimple *stmt) +{ + if (gcall *call = dyn_cast (stmt)) + /* Assume for now that the time spent in an "expensive" call would + overwhelm any saving from versioning. */ + return !gimple_inexpensive_call_p (call); + return false; +} + +/* Record that we want to version the loop that contains STMT for the + case in which SSA name NAME is equal to 1. We already know that NAME + is invariant in the loop. */ + +void +loop_versioning::version_for_unity (gimple *stmt, tree name) +{ + struct loop *loop = loop_containing_stmt (stmt); + loop_info &li = get_loop_info (loop); + + if (bitmap_set_bit (&li.unity_names, SSA_NAME_VERSION (name))) + { + /* This is the first time we've wanted to version LOOP for NAME. + Keep track of the outermost loop that can handle all versioning + checks in LI. */ + struct loop *outermost + = outermost_invariant_loop_for_expr (loop, name); + if (loop_depth (li.outermost) < loop_depth (outermost)) + li.outermost = outermost; + + if (dump_enabled_p ()) + { + dump_printf_loc (MSG_NOTE, stmt, "want to version containing loop" + " for when %T == 1", name); + if (outermost == loop) + dump_printf (MSG_NOTE, "; cannot hoist check further"); + else + { + dump_printf (MSG_NOTE, "; could implement the check at loop" + " depth %d", loop_depth (outermost)); + if (loop_depth (li.outermost) > loop_depth (outermost)) + dump_printf (MSG_NOTE, ", but other checks only allow" + " a depth of %d", loop_depth (li.outermost)); + } + dump_printf (MSG_NOTE, "\n"); + } + + m_num_conditions += 1; + } + else + { + /* This is a duplicate request. */ + if (dump_enabled_p ()) + dump_printf_loc (MSG_NOTE, stmt, "already asked to version containing" + " loop for when %T == 1\n", name); + } +} + +/* Return true if OP1_TREE is constant and if in principle it is worth + versioning an address fragment of the form: + + i * OP1_TREE * OP2 * stride + + for the case in which stride == 1. This in practice means testing + whether: + + OP1_TREE * OP2 <= M_MAXIMUM_SCALE. + + If RESULT is nonnull, store OP1_TREE * OP2 there when returning true. */ + +bool +loop_versioning::acceptable_multiplier_p (tree op1_tree, + unsigned HOST_WIDE_INT op2, + unsigned HOST_WIDE_INT *result) +{ + if (tree_fits_uhwi_p (op1_tree)) + { + unsigned HOST_WIDE_INT op1 = tree_to_uhwi (op1_tree); + /* The first part checks for overflow. */ + if (op1 * op2 >= op2 && op1 * op2 <= m_maximum_scale) + { + if (result) + *result = op1 * op2; + return true; + } + } + return false; +} + +/* Return true if it is worth using loop versioning on a memory access + of type TYPE. Store the size of the access in *SIZE if so. */ + +bool +loop_versioning::acceptable_type_p (tree type, unsigned HOST_WIDE_INT *size) +{ + return (TYPE_SIZE_UNIT (type) + && acceptable_multiplier_p (TYPE_SIZE_UNIT (type), 1, size)); +} + +/* See whether OP is constant and whether we can multiply TERM by that + constant without exceeding M_MAXIMUM_SCALE. Return true and update + TERM if so. */ + +bool +loop_versioning::multiply_term_by (address_term_info &term, tree op) +{ + return acceptable_multiplier_p (op, term.multiplier, &term.multiplier); +} + +/* Decide whether an address fragment of the form STRIDE * MULTIPLIER + is likely to be indexing an innermost dimension, returning the result + as an INNER_* probability. */ + +inner_likelihood +loop_versioning::get_inner_likelihood (tree stride, + unsigned HOST_WIDE_INT multiplier) +{ + const unsigned int MAX_NITERS = 8; + + /* Iterate over possible values of STRIDE. Return INNER_LIKELY if at + least one of those values is likely to be for the innermost dimension. + Record in UNLIKELY_P if at least one of those values is unlikely to be + for the innermost dimension. + + E.g. for: + + stride = cond ? a * b : 1 + + we should treat STRIDE as being a likely inner dimension, since + we know that it is 1 under at least some circumstances. (See the + Fortran example below.) However: + + stride = a * b + + on its own is unlikely to be for the innermost dimension, since + that would require both a and b to be 1 at runtime. */ + bool unlikely_p = false; + tree worklist[MAX_NITERS]; + unsigned int length = 0; + worklist[length++] = stride; + for (unsigned int i = 0; i < length; ++i) + { + tree expr = worklist[i]; + + if (CONSTANT_CLASS_P (expr)) + { + /* See if EXPR * MULTIPLIER would be consistent with an individual + access or a small grouped access. */ + if (acceptable_multiplier_p (expr, multiplier)) + return INNER_LIKELY; + else + unlikely_p = true; + } + else if (gimple *stmt = maybe_get_stmt (expr)) + { + /* If EXPR is set by a PHI node, queue its arguments in case + we find one that is consistent with an inner dimension. + + An important instance of this is the Fortran handling of array + descriptors, which calculates the stride of the inner dimension + using a PHI equivalent of: + + raw_stride = a.dim[0].stride; + stride = raw_stride != 0 ? raw_stride : 1; + + (Strides for outer dimensions do not treat 0 specially.) */ + if (gphi *phi = dyn_cast (stmt)) + { + unsigned int nargs = gimple_phi_num_args (phi); + for (unsigned int j = 0; j < nargs && length < MAX_NITERS; ++j) + worklist[length++] = strip_casts (gimple_phi_arg_def (phi, j)); + } + /* If the value is set by an assignment, expect it to be read + from memory (such as an array descriptor) rather than be + calculated. */ + else if (gassign *assign = dyn_cast (stmt)) + { + if (!gimple_assign_load_p (assign)) + unlikely_p = true; + } + /* Things like calls don't really tell us anything. */ + } + } + + /* We didn't find any possible values of STRIDE that were likely to be + for the innermost dimension. If we found one that was actively + unlikely to be for the innermost dimension, assume that that applies + to STRIDE too. */ + return unlikely_p ? INNER_UNLIKELY : INNER_DONT_KNOW; +} + +/* The caller has identified that STRIDE is the stride of interest + in TERM, and that the stride is applied in OP_LOOP. Record this + information in TERM, deciding whether STRIDE is likely to be for + the innermost dimension of an array and whether it represents a + versioning opportunity. ADDRESS is the address that contains TERM. */ + +void +loop_versioning::analyze_stride (address_info &address, + address_term_info &term, + tree stride, struct loop *op_loop) +{ + term.stride = stride; + + term.inner_likelihood = get_inner_likelihood (stride, term.multiplier); + if (dump_enabled_p ()) + { + if (term.inner_likelihood == INNER_LIKELY) + dump_printf_loc (MSG_NOTE, address.stmt, "%T is likely to be the" + " innermost dimension\n", stride); + else if (term.inner_likelihood == INNER_UNLIKELY) + dump_printf_loc (MSG_NOTE, address.stmt, "%T is probably not the" + " innermost dimension\n", stride); + else + dump_printf_loc (MSG_NOTE, address.stmt, "cannot tell whether %T" + " is the innermost dimension\n", stride); + } + + /* To be a versioning opportunity we require: + + - The multiplier applied by TERM is equal to the access size, + so that when STRIDE is 1, the accesses in successive loop + iterations are consecutive. + + This is deliberately conservative. We could relax it to handle + other cases (such as those with gaps between iterations) if we + find any real testcases for which it's useful. + + - the stride is applied in the same loop as STMT rather than + in an outer loop. Although versioning for strides applied in + outer loops could help in some cases -- such as enabling + more loop interchange -- the savings are much lower than for + inner loops. + + - the stride is an SSA name that is invariant in STMT's loop, + since otherwise versioning isn't possible. */ + unsigned HOST_WIDE_INT access_size = address.max_offset - address.min_offset; + if (term.multiplier == access_size + && address.loop == op_loop + && TREE_CODE (stride) == SSA_NAME + && expr_invariant_in_loop_p (address.loop, stride)) + { + term.versioning_opportunity_p = true; + if (dump_enabled_p ()) + dump_printf_loc (MSG_NOTE, address.stmt, "%T == 1 is a versioning" + " opportunity\n", stride); + } +} + +/* See whether address term TERM (which belongs to ADDRESS) is the result + of multiplying a varying SSA name by a loop-invariant SSA name. + Return true and update TERM if so. + + This handles both cases that SCEV might handle, such as: + + for (int i = 0; i < n; ++i) + res += a[i * stride]; + + and ones in which the term varies arbitrarily between iterations, such as: + + for (int i = 0; i < n; ++i) + res += a[index[i] * stride]; */ + +bool +loop_versioning::find_per_loop_multiplication (address_info &address, + address_term_info &term) +{ + gimple *mult = maybe_get_assign (term.expr); + if (!mult || gimple_assign_rhs_code (mult) != MULT_EXPR) + return false; + + struct loop *mult_loop = loop_containing_stmt (mult); + if (!loop_outer (mult_loop)) + return false; + + tree op1 = strip_casts (gimple_assign_rhs1 (mult)); + tree op2 = strip_casts (gimple_assign_rhs2 (mult)); + if (TREE_CODE (op1) != SSA_NAME || TREE_CODE (op2) != SSA_NAME) + return false; + + bool invariant1_p = expr_invariant_in_loop_p (mult_loop, op1); + bool invariant2_p = expr_invariant_in_loop_p (mult_loop, op2); + if (invariant1_p == invariant2_p) + return false; + + /* Make sure that the loop invariant is OP2 rather than OP1. */ + if (invariant1_p) + std::swap (op1, op2); + + if (dump_enabled_p ()) + dump_printf_loc (MSG_NOTE, address.stmt, "address term %T = varying %T" + " * loop-invariant %T\n", term.expr, op1, op2); + analyze_stride (address, term, op2, mult_loop); + return true; +} + +/* Try to use scalar evolutions to find an address stride for TERM, + which belongs to ADDRESS. + + Here we are interested in any evolution information we can find, + not just evolutions wrt ADDRESS->LOOP. For example, if we find that + an outer loop obviously iterates over the inner dimension of an array, + that information can help us eliminate worthless versioning opportunities + in inner loops. */ + +void +loop_versioning::analyze_term_using_scevs (address_info &address, + address_term_info &term) +{ + gimple *setter = maybe_get_stmt (term.expr); + if (!setter) + return; + + struct loop *wrt_loop = loop_containing_stmt (setter); + if (!loop_outer (wrt_loop)) + return; + + tree chrec = strip_casts (analyze_scalar_evolution (wrt_loop, term.expr)); + if (TREE_CODE (chrec) == POLYNOMIAL_CHREC) + { + if (dump_enabled_p ()) + dump_printf_loc (MSG_NOTE, address.stmt, + "address term %T = %T\n", term.expr, chrec); + + /* Peel casts and accumulate constant multiplications, up to the + limit allowed by M_MAXIMUM_SCALE. */ + tree stride = strip_casts (CHREC_RIGHT (chrec)); + while (TREE_CODE (stride) == MULT_EXPR + && multiply_term_by (term, TREE_OPERAND (stride, 1))) + stride = strip_casts (TREE_OPERAND (stride, 0)); + + gassign *assign; + while ((assign = maybe_get_assign (stride)) + && gimple_assign_rhs_code (assign) == MULT_EXPR + && multiply_term_by (term, gimple_assign_rhs2 (assign))) + { + if (dump_enabled_p ()) + dump_printf_loc (MSG_NOTE, address.stmt, + "looking through %G", assign); + stride = strip_casts (gimple_assign_rhs1 (assign)); + } + + analyze_stride (address, term, stride, get_chrec_loop (chrec)); + } +} + +/* Try to identify loop strides in ADDRESS and try to choose realistic + versioning opportunities based on these strides. + + The main difficulty here isn't finding strides that could be used + in a version check (that's pretty easy). The problem instead is to + avoid versioning for some stride S that is unlikely ever to be 1 at + runtime. Versioning for S == 1 on its own would lead to unnecessary + code bloat, while adding S == 1 to more realistic version conditions + would lose the optimisation opportunity offered by those other conditions. + + For example, versioning for a stride of 1 in the Fortran code: + + integer :: a(:,:) + a(1,:) = 1 + + is not usually a good idea, since the assignment is iterating over + an outer dimension and is relatively unlikely to have a stride of 1. + (It isn't impossible, since the inner dimension might be 1, or the + array might be transposed.) Similarly, in: + + integer :: a(:,:), b(:,:) + b(:,1) = a(1,:) + + b(:,1) is relatively likely to have a stride of 1 while a(1,:) isn't. + Versioning for when both strides are 1 would lose most of the benefit + of versioning for b's access. + + The approach we take is as follows: + + - Analyze each term to see whether it has an identifiable stride, + regardless of which loop applies the stride. + + - Evaluate the likelihood that each such stride is for the innermost + dimension of an array, on the scale "likely", "don't know" or "unlikely". + + - If there is a single "likely" innermost stride, and that stride is + applied in the loop that contains STMT, version the loop for when the + stride is 1. This deals with the cases in which we're fairly + confident of doing the right thing, such as the b(:,1) reference above. + + - If there are no "likely" innermost strides, and the loop that contains + STMT uses a stride that we rated as "don't know", version for when + that stride is 1. This is principally used for C code such as: + + for (int i = 0; i < n; ++i) + a[i * x] = ...; + + and: + + for (int j = 0; j < n; ++j) + for (int i = 0; i < n; ++i) + a[i * x + j * y] = ...; + + where nothing in the way "x" and "y" are set gives a hint as to + whether "i" iterates over the innermost dimension of the array. + In these situations it seems reasonable to assume the the + programmer has nested the loops appropriately (although of course + there are examples like GEMM in which this assumption doesn't hold + for all accesses in the loop). + + This case is also useful for the Fortran equivalent of the + above C code. */ + +void +loop_versioning::analyze_address_fragment (address_info &address) +{ + if (dump_enabled_p ()) + { + dump_printf_loc (MSG_NOTE, address.stmt, "analyzing address fragment "); + dump_address_info (MSG_NOTE, address); + dump_printf (MSG_NOTE, "\n"); + } + + /* Analyze each component of the sum to see whether it involves an + apparent stride. + + There is an overlap between the addresses that + find_per_loop_multiplication and analyze_term_using_scevs can handle, + but the former is much cheaper than SCEV analysis, so try it first. */ + for (unsigned int i = 0; i < address.terms.length (); ++i) + if (!find_per_loop_multiplication (address, address.terms[i])) + analyze_term_using_scevs (address, address.terms[i]); + + /* Check for strides that are likely to be for the innermost dimension. + + 1. If there is a single likely inner stride, if it is an SSA name, + and if it is worth versioning the loop for when the SSA name + equals 1, record that we want to do so. + + 2. Otherwise, if there any likely inner strides, bail out. This means + one of: + + (a) There are multiple likely inner strides. This suggests we're + confused and be can't be confident of doing the right thing. + + (b) There is a single likely inner stride and it is a constant + rather than an SSA name. This can mean either that the access + is a natural one without any variable strides, such as: + + for (int i = 0; i < n; ++i) + a[i] += 1; + + or that a variable stride is applied to an outer dimension, + such as: + + for (int i = 0; i < n; ++i) + for (int j = 0; j < n; ++j) + a[j * stride][i] += 1; + + (c) There is a single likely inner stride, and it is an SSA name, + but it isn't a worthwhile versioning opportunity. This usually + means that the variable stride is applied by an outer loop, + such as: + + for (int i = 0; i < n; ++i) + for (int j = 0; j < n; ++j) + a[j][i * stride] += 1; + + or (using an example with a more natural loop nesting): + + for (int i = 0; i < n; ++i) + for (int j = 0; j < n; ++j) + a[i][j] += b[i * stride]; + + in cases where b[i * stride] cannot (yet) be hoisted for + aliasing reasons. + + 3. If there are no likely inner strides, fall through to the next + set of checks. + + Pointer equality is enough to check for uniqueness in (1), since we + only care about SSA names. */ + tree chosen_stride = NULL_TREE; + tree version_stride = NULL_TREE; + for (unsigned int i = 0; i < address.terms.length (); ++i) + if (chosen_stride != address.terms[i].stride + && address.terms[i].inner_likelihood == INNER_LIKELY) + { + if (chosen_stride) + return; + chosen_stride = address.terms[i].stride; + if (address.terms[i].versioning_opportunity_p) + version_stride = chosen_stride; + } + + /* If there are no likely inner strides, see if there is a single + versioning opportunity for a stride that was rated as INNER_DONT_KNOW. + See the comment above the function for the cases that this code + handles. */ + if (!chosen_stride) + for (unsigned int i = 0; i < address.terms.length (); ++i) + if (version_stride != address.terms[i].stride + && address.terms[i].inner_likelihood == INNER_DONT_KNOW + && address.terms[i].versioning_opportunity_p) + { + if (version_stride) + return; + version_stride = address.terms[i].stride; + } + + if (version_stride) + version_for_unity (address.stmt, version_stride); +} + +/* Treat EXPR * MULTIPLIER + OFFSET as a fragment of an address that addresses + TYPE_SIZE bytes and record this address fragment for later processing. + STMT is the statement that contains the address. */ + +void +loop_versioning::record_address_fragment (gimple *stmt, + unsigned HOST_WIDE_INT type_size, + tree expr, + unsigned HOST_WIDE_INT multiplier, + HOST_WIDE_INT offset) +{ + /* We're only interested in computed values. */ + if (TREE_CODE (expr) != SSA_NAME) + return; + + /* Quick exit if no part of the address is calculated in STMT's loop, + since such addresses have no versioning opportunities. */ + struct loop *loop = loop_containing_stmt (stmt); + if (expr_invariant_in_loop_p (loop, expr)) + return; + + /* Set up an address_info for EXPR * MULTIPLIER. */ + address_info *address = XOBNEW (&m_obstack, address_info); + new (address) address_info; + address->stmt = stmt; + address->loop = loop; + address->base = NULL_TREE; + address->terms.quick_grow (1); + address->terms[0].expr = expr; + address->terms[0].multiplier = multiplier; + address->terms[0].stride = NULL_TREE; + address->terms[0].inner_likelihood = INNER_UNLIKELY; + address->terms[0].versioning_opportunity_p = false; + address->min_offset = offset; + + /* Peel apart the expression into a sum of address_terms, where each + term is multiplied by a constant. Treat a + b and a - b the same, + since it doesn't matter for our purposes whether an address is + increasing or decreasing. Distribute (a + b) * constant into + a * constant + b * constant. + + We don't care which loop each term belongs to, since we want to + examine as many candidate strides as possible when determining + which is likely to be for the innermost dimension. We therefore + don't limit the search to statements in STMT's loop. */ + for (unsigned int i = 0; i < address->terms.length (); ) + { + if (gassign *assign = maybe_get_assign (address->terms[i].expr)) + { + tree_code code = gimple_assign_rhs_code (assign); + if (code == PLUS_EXPR + || code == POINTER_PLUS_EXPR + || code == MINUS_EXPR) + { + tree op1 = gimple_assign_rhs1 (assign); + tree op2 = gimple_assign_rhs2 (assign); + if (TREE_CODE (op2) == INTEGER_CST) + { + address->terms[i].expr = strip_casts (op1); + /* This is heuristic only, so don't worry about truncation + or overflow. */ + address->min_offset += (TREE_INT_CST_LOW (op2) + * address->terms[i].multiplier); + continue; + } + else if (address->terms.length () < address_info::MAX_TERMS) + { + unsigned int j = address->terms.length (); + address->terms.quick_push (address->terms[i]); + address->terms[i].expr = strip_casts (op1); + address->terms[j].expr = strip_casts (op2); + continue; + } + } + if (code == MULT_EXPR) + { + tree op1 = gimple_assign_rhs1 (assign); + tree op2 = gimple_assign_rhs2 (assign); + if (multiply_term_by (address->terms[i], op2)) + { + address->terms[i].expr = strip_casts (op1); + continue; + } + } + } + i += 1; + } + + /* Peel off any symbolic pointer. */ + if (TREE_CODE (address->terms[0].expr) != SSA_NAME + && address->terms[0].multiplier == 1) + { + if (address->terms.length () == 1) + { + obstack_free (&m_obstack, address); + return; + } + address->base = address->terms[0].expr; + address->terms.ordered_remove (0); + } + + /* Require all remaining terms to be SSA names. (This could be false + for unfolded statements, but they aren't worth dealing with.) */ + for (unsigned int i = 0; i < address->terms.length (); ++i) + if (TREE_CODE (address->terms[i].expr) != SSA_NAME) + { + obstack_free (&m_obstack, address); + return; + } + + /* The loop above set MIN_OFFSET based on the first byte of the + referenced data. Calculate the end + 1. */ + address->max_offset = address->min_offset + type_size; + + /* Put the terms into a canonical order for the hash table lookup below. */ + address->terms.qsort (compare_address_terms); + + if (dump_enabled_p ()) + { + dump_printf_loc (MSG_NOTE, stmt, "recording address fragment %T", expr); + if (multiplier != 1) + dump_printf (MSG_NOTE, " * %wd", multiplier); + dump_printf (MSG_NOTE, " = "); + dump_address_info (MSG_NOTE, *address); + dump_printf (MSG_NOTE, "\n"); + } + + /* Pool address information with the same terms (but potentially + different offsets). */ + address_info **slot = m_address_table.find_slot (address, INSERT); + if (address_info *old_address = *slot) + { + /* We've already seen an address with the same terms. Extend the + offset range to account for this access. Doing this can paper + over gaps, such as in: + + a[i * stride * 4] + a[i * stride * 4 + 3]; + + where nothing references "+ 1" or "+ 2". However, the vectorizer + handles such gapped accesses without problems, so it's not worth + trying to exclude them. */ + if (old_address->min_offset > address->min_offset) + old_address->min_offset = address->min_offset; + if (old_address->max_offset < address->max_offset) + old_address->max_offset = address->max_offset; + obstack_free (&m_obstack, address); + } + else + { + /* This is the first time we've seen an address with these terms. */ + *slot = address; + m_address_list.safe_push (address); + } +} + +/* Analyze expression EXPR, which occurs in STMT. */ + +void +loop_versioning::analyze_expr (gimple *stmt, tree expr) +{ + unsigned HOST_WIDE_INT type_size; + + while (handled_component_p (expr)) + { + /* See whether we can use versioning to avoid a multiplication + in an array index. */ + if (TREE_CODE (expr) == ARRAY_REF + && acceptable_type_p (TREE_TYPE (expr), &type_size)) + record_address_fragment (stmt, type_size, + TREE_OPERAND (expr, 1), type_size, 0); + expr = TREE_OPERAND (expr, 0); + } + + /* See whether we can use versioning to avoid a multiplication + in the pointer calculation of a MEM_REF. */ + if (TREE_CODE (expr) == MEM_REF + && acceptable_type_p (TREE_TYPE (expr), &type_size)) + record_address_fragment (stmt, type_size, TREE_OPERAND (expr, 0), 1, + /* This is heuristic only, so don't worry + about truncation or overflow. */ + TREE_INT_CST_LOW (TREE_OPERAND (expr, 1))); + + /* These would be easy to handle if they existed at this stage. */ + gcc_checking_assert (TREE_CODE (expr) != TARGET_MEM_REF); +} + +/* Analyze all the statements in BB looking for useful version checks. + Return true on success, false if something prevents the block from + being versioned. */ + +bool +loop_versioning::analyze_block (basic_block bb) +{ + struct loop *loop = bb->loop_father; + loop_info &li = get_loop_info (loop); + for (gimple_stmt_iterator gsi = gsi_start_bb (bb); !gsi_end_p (gsi); + gsi_next (&gsi)) + { + gimple *stmt = gsi_stmt (gsi); + if (is_gimple_debug (stmt)) + continue; + + if (expensive_stmt_p (stmt)) + { + if (dump_enabled_p ()) + dump_printf_loc (MSG_NOTE, stmt, "expensive statement" + " prevents versioning: %G", stmt); + return false; + } + + /* Only look for direct versioning opportunities in inner loops + since the benefit tends to be much smaller for outer loops. */ + if (!loop->inner) + { + unsigned int nops = gimple_num_ops (stmt); + for (unsigned int i = 0; i < nops; ++i) + if (tree op = gimple_op (stmt, i)) + analyze_expr (stmt, op); + } + + /* The point of the instruction limit is to prevent excessive + code growth, so this is a size-based estimate even though + the optimization is aimed at speed. */ + li.num_insns += estimate_num_insns (stmt, &eni_size_weights); + } + + return true; +} + +/* Analyze all the blocks in the function, looking for useful version checks. + Return true if we found one. */ + +bool +loop_versioning::analyze_blocks () +{ + AUTO_DUMP_SCOPE ("analyze_blocks", + dump_user_location_t::from_function_decl (m_fn->decl)); + + /* For now we don't try to version the whole function, although + versioning at that level could be useful in some cases. */ + get_loop_info (get_loop (m_fn, 0)).rejected_p = true; + + struct loop *loop; + FOR_EACH_LOOP (loop, LI_FROM_INNERMOST) + { + loop_info &linfo = get_loop_info (loop); + + /* Ignore cold loops. */ + if (!optimize_loop_for_speed_p (loop)) + linfo.rejected_p = true; + + /* See whether an inner loop prevents versioning of this loop. */ + if (!linfo.rejected_p) + for (struct loop *inner = loop->inner; inner; inner = inner->next) + if (get_loop_info (inner).rejected_p) + { + linfo.rejected_p = true; + break; + } + + /* If versioning the loop is still a possibility, examine the + statements in the loop to look for versioning opportunities. */ + if (!linfo.rejected_p) + { + void *start_point = obstack_alloc (&m_obstack, 0); + + for (basic_block bb = linfo.block_list; bb; + bb = m_next_block_in_loop[bb->index]) + if (!analyze_block (bb)) + { + linfo.rejected_p = true; + break; + } + + if (!linfo.rejected_p) + { + /* Process any queued address fragments, now that we have + complete grouping information. */ + address_info *address; + unsigned int i; + FOR_EACH_VEC_ELT (m_address_list, i, address) + analyze_address_fragment (*address); + } + + m_address_table.empty (); + m_address_list.truncate (0); + obstack_free (&m_obstack, start_point); + } + } + + return m_num_conditions != 0; +} + +/* Use the ranges in VRS to remove impossible versioning conditions from + LOOP. */ + +void +loop_versioning::prune_loop_conditions (struct loop *loop, vr_values *vrs) +{ + loop_info &li = get_loop_info (loop); + + int to_remove = -1; + bitmap_iterator bi; + unsigned int i; + EXECUTE_IF_SET_IN_BITMAP (&li.unity_names, 0, i, bi) + { + tree name = ssa_name (i); + value_range *vr = vrs->get_value_range (name); + if (vr && !range_includes_p (vr, 1)) + { + if (dump_enabled_p ()) + dump_printf_loc (MSG_NOTE, find_loop_location (loop), + "%T can never be 1 in this loop\n", name); + + if (to_remove >= 0) + bitmap_clear_bit (&li.unity_names, to_remove); + to_remove = i; + m_num_conditions -= 1; + } + } + if (to_remove >= 0) + bitmap_clear_bit (&li.unity_names, to_remove); +} + +/* Remove any scheduled loop version conditions that will never be true. + Return true if any remain. */ + +bool +loop_versioning::prune_conditions () +{ + AUTO_DUMP_SCOPE ("prune_loop_conditions", + dump_user_location_t::from_function_decl (m_fn->decl)); + + calculate_dominance_info (CDI_DOMINATORS); + lv_dom_walker dom_walker (*this); + dom_walker.walk (ENTRY_BLOCK_PTR_FOR_FN (m_fn)); + return m_num_conditions != 0; +} + +/* Merge the version checks for INNER into immediately-enclosing loop + OUTER. */ + +void +loop_versioning::merge_loop_info (struct loop *outer, struct loop *inner) +{ + loop_info &inner_li = get_loop_info (inner); + loop_info &outer_li = get_loop_info (outer); + + if (dump_enabled_p ()) + { + bitmap_iterator bi; + unsigned int i; + EXECUTE_IF_SET_IN_BITMAP (&inner_li.unity_names, 0, i, bi) + if (!bitmap_bit_p (&outer_li.unity_names, i)) + dump_printf_loc (MSG_NOTE, find_loop_location (inner), + "hoisting check that %T == 1 to outer loop\n", + ssa_name (i)); + } + + bitmap_ior_into (&outer_li.unity_names, &inner_li.unity_names); + if (loop_depth (outer_li.outermost) < loop_depth (inner_li.outermost)) + outer_li.outermost = inner_li.outermost; +} + +/* Add LOOP to the queue of loops to version. */ + +void +loop_versioning::add_loop_to_queue (struct loop *loop) +{ + loop_info &li = get_loop_info (loop); + + if (dump_enabled_p ()) + dump_printf_loc (MSG_NOTE, find_loop_location (loop), + "queuing this loop for versioning\n"); + m_loops_to_version.safe_push (loop); + + /* Don't try to version superloops. */ + li.rejected_p = true; +} + +/* Decide whether the cost model would allow us to version LOOP, + either directly or as part of a parent loop, and return true if so. + This does not imply that the loop is actually worth versioning in its + own right, just that it would be valid to version it if something + benefited. + + We have already made this decision for all inner loops of LOOP. */ + +bool +loop_versioning::decide_whether_loop_is_versionable (struct loop *loop) +{ + loop_info &li = get_loop_info (loop); + + if (li.rejected_p) + return false; + + /* Examine the decisions made for inner loops. */ + for (struct loop *inner = loop->inner; inner; inner = inner->next) + { + loop_info &inner_li = get_loop_info (inner); + if (inner_li.rejected_p) + { + if (dump_enabled_p ()) + dump_printf_loc (MSG_NOTE, find_loop_location (loop), + "not versioning this loop because one of its" + " inner loops should not be versioned\n"); + return false; + } + + if (inner_li.worth_versioning_p ()) + li.subloops_benefit_p = true; + + /* Accumulate the number of instructions from subloops that are not + the innermost, or that don't benefit from versioning. Only the + instructions from innermost loops that benefit from versioning + should be weighed against loop-versioning-max-inner-insns; + everything else should be weighed against + loop-versioning-max-outer-insns. */ + if (!inner_li.worth_versioning_p () || inner->inner) + { + if (dump_enabled_p ()) + dump_printf_loc (MSG_NOTE, find_loop_location (loop), + "counting %d instructions from this loop" + " against its parent loop\n", inner_li.num_insns); + li.num_insns += inner_li.num_insns; + } + } + + /* Enforce the size limits. */ + if (li.worth_versioning_p ()) + { + unsigned int max_num_insns = max_insns_for_loop (loop); + if (dump_enabled_p ()) + dump_printf_loc (MSG_NOTE, find_loop_location (loop), + "this loop has %d instructions, against" + " a versioning limit of %d\n", + li.num_insns, max_num_insns); + if (li.num_insns > max_num_insns) + { + if (dump_enabled_p ()) + dump_printf_loc (MSG_MISSED_OPTIMIZATION + | MSG_PRIORITY_USER_FACING, + find_loop_location (loop), + "this loop is too big to version"); + return false; + } + } + + /* Hoist all version checks from subloops to this loop. */ + for (struct loop *subloop = loop->inner; subloop; subloop = subloop->next) + merge_loop_info (loop, subloop); + + return true; +} + +/* Decide which loops to version and add them to the versioning queue. + Return true if there are any loops to version. */ + +bool +loop_versioning::make_versioning_decisions () +{ + AUTO_DUMP_SCOPE ("make_versioning_decisions", + dump_user_location_t::from_function_decl (m_fn->decl)); + + struct loop *loop; + FOR_EACH_LOOP (loop, LI_FROM_INNERMOST) + { + loop_info &linfo = get_loop_info (loop); + if (decide_whether_loop_is_versionable (loop)) + { + /* Commit to versioning LOOP directly if we can't hoist the + version checks any further. */ + if (linfo.worth_versioning_p () + && (loop_depth (loop) == 1 || linfo.outermost == loop)) + add_loop_to_queue (loop); + } + else + { + /* We can't version this loop, so individually version any + subloops that would benefit and haven't been versioned yet. */ + linfo.rejected_p = true; + for (struct loop *subloop = loop->inner; subloop; + subloop = subloop->next) + if (get_loop_info (subloop).worth_versioning_p ()) + add_loop_to_queue (subloop); + } + } + + return !m_loops_to_version.is_empty (); +} + +/* Attempt to implement loop versioning for LOOP, using the information + cached in the associated loop_info. Return true on success. */ + +bool +loop_versioning::version_loop (struct loop *loop) +{ + loop_info &li = get_loop_info (loop); + + /* Build up a condition that selects the original loop instead of + the simplified loop. */ + tree cond = boolean_false_node; + bitmap_iterator bi; + unsigned int i; + EXECUTE_IF_SET_IN_BITMAP (&li.unity_names, 0, i, bi) + { + tree name = ssa_name (i); + tree ne_one = fold_build2 (NE_EXPR, boolean_type_node, name, + build_one_cst (TREE_TYPE (name))); + cond = fold_build2 (TRUTH_OR_EXPR, boolean_type_node, cond, ne_one); + } + + /* Convert the condition into a suitable gcond. */ + gimple_seq stmts = NULL; + cond = force_gimple_operand_1 (cond, &stmts, is_gimple_condexpr, NULL_TREE); + + /* Version the loop. */ + initialize_original_copy_tables (); + basic_block cond_bb; + li.optimized_loop = loop_version (loop, cond, &cond_bb, + profile_probability::unlikely (), + profile_probability::likely (), + profile_probability::unlikely (), + profile_probability::likely (), true); + free_original_copy_tables (); + if (!li.optimized_loop) + { + if (dump_enabled_p ()) + dump_printf_loc (MSG_MISSED_OPTIMIZATION, find_loop_location (loop), + "tried but failed to version this loop for when" + " certain strides are 1\n"); + return false; + } + + if (dump_enabled_p ()) + dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, find_loop_location (loop), + "versioned this loop for when certain strides are 1\n"); + + /* Insert the statements that feed COND. */ + if (stmts) + { + gimple_stmt_iterator gsi = gsi_last_bb (cond_bb); + gsi_insert_seq_before (&gsi, stmts, GSI_SAME_STMT); + } + + return true; +} + +/* Attempt to version all loops in the versioning queue. */ + +void +loop_versioning::implement_versioning_decisions () +{ + /* No AUTO_DUMP_SCOPE here since all messages are top-level and + user-facing at this point. */ + + bool any_succeeded_p = false; + struct loop *loop; + unsigned int i; + FOR_EACH_VEC_ELT (m_loops_to_version, i, loop) + if (version_loop (loop)) + any_succeeded_p = true; + if (!any_succeeded_p) + return; + + update_ssa (TODO_update_ssa); + + /* Simplify the new loop, which is used when COND is false. */ + FOR_EACH_VEC_ELT (m_loops_to_version, i, loop) + { + loop_info &linfo = get_loop_info (loop); + if (linfo.optimized_loop) + name_prop (linfo).substitute_and_fold (linfo.optimized_loop->header); + } +} + +/* Run the pass and return a set of TODO_* flags. */ + +unsigned int +loop_versioning::run () +{ + gcc_assert (scev_initialized_p ()); + + if (analyze_blocks () + && prune_conditions () + && make_versioning_decisions ()) + implement_versioning_decisions (); + + return 0; +} + +/* Loop versioning pass. */ + +const pass_data pass_data_loop_versioning = +{ + GIMPLE_PASS, /* type */ + "lversion", /* name */ + OPTGROUP_LOOP, /* optinfo_flags */ + TV_LOOP_VERSIONING, /* tv_id */ + PROP_cfg, /* properties_required */ + 0, /* properties_provided */ + 0, /* properties_destroyed */ + 0, /* todo_flags_start */ + 0, /* todo_flags_finish */ +}; + +class pass_loop_versioning : public gimple_opt_pass +{ +public: + pass_loop_versioning (gcc::context *ctxt) + : gimple_opt_pass (pass_data_loop_versioning, ctxt) + {} + + /* opt_pass methods: */ + virtual bool gate (function *) { return flag_version_loops_for_strides; } + virtual unsigned int execute (function *); +}; + +unsigned int +pass_loop_versioning::execute (function *fn) +{ + if (number_of_loops (fn) <= 1) + return 0; + + return loop_versioning (fn).run (); +} + +} // anon namespace + +gimple_opt_pass * +make_pass_loop_versioning (gcc::context *ctxt) +{ + return new pass_loop_versioning (ctxt); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-low.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-low.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-low.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-low.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* GIMPLE lowering pass. Converts High GIMPLE into Low GIMPLE. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-low.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-low.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-low.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-low.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for gimple lowering pass. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-match.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-match.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-match.h 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-match.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Gimple simplify definitions. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Richard Guenther This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-match-head.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-match-head.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-match-head.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-match-head.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Preamble and helpers for the autogenerated gimple-match.c file. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-predict.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-predict.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-predict.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-predict.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Gimple prediction routines. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-pretty-print.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-pretty-print.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-pretty-print.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-pretty-print.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Pretty formatting of GIMPLE statements and expressions. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Aldy Hernandez and Diego Novillo diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-pretty-print.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-pretty-print.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-pretty-print.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-pretty-print.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Various declarations for pretty formatting of GIMPLE statements and expressions. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-backprop.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-backprop.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-backprop.c 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-backprop.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Back-propagation of usage information to definitions. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-evrp-analyze.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-evrp-analyze.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-evrp-analyze.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-evrp-analyze.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for Value Range Propagation (VRP). - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-evrp-analyze.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-evrp-analyze.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-evrp-analyze.h 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-evrp-analyze.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for Value Range Propagation (VRP). - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-evrp.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-evrp.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-evrp.c 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-evrp.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for Value Range Propagation (VRP). - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Header file for routines that straddle the border between GIMPLE and SSA in gimple. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-isolate-paths.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-isolate-paths.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-isolate-paths.c 2018-10-25 11:18:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-isolate-paths.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,7 +1,7 @@ /* Detect paths through the CFG which can never be executed in a conforming program and isolate them. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-nonnull-compare.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-nonnull-compare.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-nonnull-compare.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-nonnull-compare.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* -Wnonnull-compare warning support. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-split-paths.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-split-paths.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-split-paths.c 2018-12-11 09:06:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-split-paths.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for Splitting Paths to loop backedges - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Ajit Kumar Agarwal . This file is part of GCC. @@ -198,52 +198,6 @@ bb->index); return false; } - } - } - } - } - - /* Canonicalize the form. */ - if (num_stmts_in_pred1 == 0 && num_stmts_in_pred2 == 1) - { - std::swap (pred1, pred2); - std::swap (num_stmts_in_pred1, num_stmts_in_pred2); - } - - /* Another variant. This one is half-diamond. */ - if (num_stmts_in_pred1 == 1 && num_stmts_in_pred2 == 0 - && dominated_by_p (CDI_DOMINATORS, pred1, pred2)) - { - gimple *stmt1 = last_and_only_stmt (pred1); - - /* The only statement in PRED1 must be an assignment that is - not a good candidate for if-conversion. This may need some - generalization. */ - if (stmt1 && gimple_code (stmt1) == GIMPLE_ASSIGN) - { - enum tree_code code1 = gimple_assign_rhs_code (stmt1); - - if (!poor_ifcvt_candidate_code (code1)) - { - tree lhs1 = gimple_assign_lhs (stmt1); - tree rhs1 = gimple_assign_rhs1 (stmt1); - - gimple_stmt_iterator gsi; - for (gsi = gsi_start_phis (bb); !gsi_end_p (gsi); gsi_next (&gsi)) - { - gimple *phi = gsi_stmt (gsi); - if ((gimple_phi_arg_def (phi, 0) == lhs1 - && gimple_phi_arg_def (phi, 1) == rhs1) - || (gimple_phi_arg_def (phi, 1) == lhs1 - && gimple_phi_arg_def (phi, 0) == rhs1)) - { - if (dump_file && (dump_flags & TDF_DETAILS)) - fprintf (dump_file, - "Block %d appears to be a join point for " - "if-convertable half-diamond.\n", - bb->index); - return false; - } } } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-sprintf.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-sprintf.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-sprintf.c 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-sprintf.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2016-2018 Free Software Foundation, Inc. +/* Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Martin Sebor . This file is part of GCC. @@ -2003,91 +2003,73 @@ if (!str) return fmtresult (); - c_strlen_data data; - memset (&data, 0, sizeof (c_strlen_data)); - tree slen = c_strlen (str, 1, &data, eltsize); - if (slen && TREE_CODE (slen) == INTEGER_CST) - { - /* The string is properly terminated and - we know its length. */ - fmtresult res (tree_to_shwi (slen)); - res.nonstr = NULL_TREE; - return res; - } - else if (!slen - && data.decl - && data.len - && TREE_CODE (data.len) == INTEGER_CST) - { - /* STR was not properly NUL terminated, but we have - length information about the unterminated string. */ - fmtresult res (tree_to_shwi (data.len)); - res.nonstr = data.decl; - return res; - } - /* Determine the length of the shortest and longest string referenced by STR. Strings of unknown lengths are bounded by the sizes of arrays that subexpressions of STR may refer to. Pointers that - aren't known to point any such arrays result in LENRANGE[1] set - to SIZE_MAX. NONSTR is set to the declaration of the constant - array that is known not to be nul-terminated. */ - tree lenrange[2]; - tree nonstr; - bool flexarray = get_range_strlen (str, lenrange, eltsize, false, &nonstr); + aren't known to point any such arrays result in LENDATA.MAXLEN + set to SIZE_MAX. */ + c_strlen_data lendata = { }; + bool flexarray = get_range_strlen (str, &lendata, eltsize); + + /* Return the default result when nothing is known about the string. */ + if (integer_all_onesp (lendata.maxbound) + && integer_all_onesp (lendata.maxlen)) + return fmtresult (); - if (lenrange [0] || lenrange [1]) + HOST_WIDE_INT min + = (tree_fits_uhwi_p (lendata.minlen) + ? tree_to_uhwi (lendata.minlen) + : 0); + + HOST_WIDE_INT max + = (tree_fits_uhwi_p (lendata.maxbound) + ? tree_to_uhwi (lendata.maxbound) + : HOST_WIDE_INT_M1U); + + const bool unbounded = flexarray || integer_all_onesp (lendata.maxlen); + + /* Set the max/likely counters to unbounded when a minimum is known + but the maximum length isn't bounded. This implies that STR is + a conditional expression involving a string of known length and + and an expression of unknown/unbounded length. */ + if (min + && (unsigned HOST_WIDE_INT)min < HOST_WIDE_INT_M1U + && unbounded) + max = HOST_WIDE_INT_M1U; + + /* get_range_strlen() returns the target value of SIZE_MAX for + strings of unknown length. Bump it up to HOST_WIDE_INT_M1U + which may be bigger. */ + if ((unsigned HOST_WIDE_INT)min == target_size_max ()) + min = HOST_WIDE_INT_M1U; + if ((unsigned HOST_WIDE_INT)max == target_size_max ()) + max = HOST_WIDE_INT_M1U; + + fmtresult res (min, max); + res.nonstr = lendata.decl; + + /* Set RES.KNOWNRANGE to true if and only if all strings referenced + by STR are known to be bounded (though not necessarily by their + actual length but perhaps by their maximum possible length). */ + if (res.range.max < target_int_max ()) { - HOST_WIDE_INT min - = (tree_fits_uhwi_p (lenrange[0]) - ? tree_to_uhwi (lenrange[0]) - : 0); - - HOST_WIDE_INT max - = (tree_fits_uhwi_p (lenrange[1]) - ? tree_to_uhwi (lenrange[1]) - : HOST_WIDE_INT_M1U); - - /* get_range_strlen() returns the target value of SIZE_MAX for - strings of unknown length. Bump it up to HOST_WIDE_INT_M1U - which may be bigger. */ - if ((unsigned HOST_WIDE_INT)min == target_size_max ()) - min = HOST_WIDE_INT_M1U; - if ((unsigned HOST_WIDE_INT)max == target_size_max ()) - max = HOST_WIDE_INT_M1U; - - fmtresult res (min, max); - res.nonstr = nonstr; - - /* Set RES.KNOWNRANGE to true if and only if all strings referenced - by STR are known to be bounded (though not necessarily by their - actual length but perhaps by their maximum possible length). */ - if (res.range.max < target_int_max ()) - { - res.knownrange = true; - /* When the the length of the longest string is known and not - excessive use it as the likely length of the string(s). */ - res.range.likely = res.range.max; - } - else - { - /* When the upper bound is unknown (it can be zero or excessive) - set the likely length to the greater of 1 and the length of - the shortest string and reset the lower bound to zero. */ - res.range.likely = res.range.min ? res.range.min : warn_level > 1; - res.range.min = 0; - } - - /* If the range of string length has been estimated from the size - of an array at the end of a struct assume that it's longer than - the array bound says it is in case it's used as a poor man's - flexible array member, such as in struct S { char a[4]; }; */ - res.range.unlikely = flexarray ? HOST_WIDE_INT_MAX : res.range.max; - - return res; + res.knownrange = true; + /* When the the length of the longest string is known and not + excessive use it as the likely length of the string(s). */ + res.range.likely = res.range.max; + } + else + { + /* When the upper bound is unknown (it can be zero or excessive) + set the likely length to the greater of 1 and the length of + the shortest string and reset the lower bound to zero. */ + res.range.likely = res.range.min ? res.range.min : warn_level > 1; + res.range.min = 0; } - return fmtresult (); + res.range.unlikely = unbounded ? HOST_WIDE_INT_MAX : res.range.max; + + return res; } /* Return the minimum and maximum number of characters formatted @@ -2327,6 +2309,8 @@ if ((unsigned HOST_WIDE_INT)dir.prec[1] < slen.range.max) res.range.max = dir.prec[1]; res.range.likely = dir.prec[1] ? warn_level > 1 : 0; + if ((unsigned HOST_WIDE_INT)dir.prec[1] < slen.range.unlikely) + res.range.unlikely = dir.prec[1]; } else if (slen.range.min >= target_int_max ()) { @@ -2336,6 +2320,7 @@ empty, while at level 1 they are assumed to be one byte long. */ res.range.likely = warn_level > 1; + res.range.unlikely = HOST_WIDE_INT_MAX; } else { @@ -2345,8 +2330,6 @@ if (res.range.likely >= target_int_max ()) res.range.likely = warn_level > 1; } - - res.range.unlikely = res.range.max; } /* If the argument isn't a nul-terminated string and the number @@ -3990,6 +3973,7 @@ /* True when the destination size is constant as opposed to the lower or upper bound of a range. */ bool dstsize_cst_p = true; + bool posunder4k = true; if (idx_dstsize == UINT_MAX) { @@ -4022,11 +4006,20 @@ "specified bound %wu exceeds maximum object size " "%wu", dstsize, target_size_max () / 2); + /* POSIX requires snprintf to fail if DSTSIZE is greater + than INT_MAX. Even though not all POSIX implementations + conform to the requirement, avoid folding in this case. */ + posunder4k = false; } else if (dstsize > target_int_max ()) - warning_at (gimple_location (info.callstmt), info.warnopt (), - "specified bound %wu exceeds %", - dstsize); + { + warning_at (gimple_location (info.callstmt), info.warnopt (), + "specified bound %wu exceeds %", + dstsize); + /* POSIX requires snprintf to fail if DSTSIZE is greater + than INT_MAX. Avoid folding in that case. */ + posunder4k = false; + } } else if (TREE_CODE (size) == SSA_NAME) { @@ -4035,9 +4028,29 @@ of them at level 2. */ value_range *vr = evrp_range_analyzer.get_value_range (size); if (range_int_cst_p (vr)) - dstsize = (warn_level < 2 - ? TREE_INT_CST_LOW (vr->max ()) - : TREE_INT_CST_LOW (vr->min ())); + { + unsigned HOST_WIDE_INT minsize = TREE_INT_CST_LOW (vr->min ()); + unsigned HOST_WIDE_INT maxsize = TREE_INT_CST_LOW (vr->max ()); + dstsize = warn_level < 2 ? maxsize : minsize; + + if (minsize > target_int_max ()) + warning_at (gimple_location (info.callstmt), info.warnopt (), + "specified bound range [%wu, %wu] exceeds " + "%", + minsize, maxsize); + + /* POSIX requires snprintf to fail if DSTSIZE is greater + than INT_MAX. Avoid folding if that's possible. */ + if (maxsize > target_int_max ()) + posunder4k = false; + } + else if (vr->varying_p ()) + { + /* POSIX requires snprintf to fail if DSTSIZE is greater + than INT_MAX. Since SIZE's range is unknown, avoid + folding. */ + posunder4k = false; + } /* The destination size is not constant. If the function is bounded (e.g., snprintf) a lower bound of zero doesn't @@ -4122,7 +4135,7 @@ directive. Clear POSUNDER4K for the former set of functions and set it to true for the latter (it can only be cleared later, but it is never set to true again). */ - res.posunder4k = dstptr; + res.posunder4k = posunder4k && dstptr; bool success = compute_format_length (info, &res); if (res.warned) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-store-merging.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-store-merging.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-store-merging.c 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-store-merging.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* GIMPLE store merging and byte swapping passes. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-strength-reduction.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-strength-reduction.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-strength-reduction.c 2018-10-22 12:08:01.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-strength-reduction.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Straight-line strength reduction. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Bill Schmidt, IBM This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-warn-alloca.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-warn-alloca.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-warn-alloca.c 2018-10-19 09:35:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-warn-alloca.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Warn on problematic uses of alloca and variable length arrays. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Aldy Hernandez . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-warn-restrict.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-warn-restrict.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-warn-restrict.c 2018-12-11 09:06:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-warn-restrict.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Pass to detect and issue warnings for violations of the restrict qualifier. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Martin Sebor . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-warn-restrict.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-warn-restrict.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-ssa-warn-restrict.h 2018-08-02 03:04:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-ssa-warn-restrict.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Warn on violations of the restrict qualifier. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Martin Sebor . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-streamer.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-streamer.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-streamer.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-streamer.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Data structures and functions for streaming GIMPLE. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-streamer-in.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-streamer-in.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-streamer-in.c 2018-08-02 03:04:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-streamer-in.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Routines for reading GIMPLE from a file stream. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-streamer-out.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-streamer-out.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-streamer-out.c 2018-08-02 03:04:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-streamer-out.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Routines for emitting GIMPLE to a file stream. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-walk.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-walk.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-walk.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-walk.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Gimple walk support. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Aldy Hernandez This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-walk.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-walk.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimple-walk.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimple-walk.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for gimple statement walk support. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimplify.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimplify.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimplify.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimplify.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Tree lowering pass. This pass converts the GENERIC functions-as-trees tree representation into the GIMPLE form. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Major work done by Sebastian Pop , Diego Novillo and Jason Merrill . @@ -4778,7 +4778,15 @@ { struct gimplify_init_ctor_preeval_data preeval_data; HOST_WIDE_INT num_ctor_elements, num_nonzero_elements; + HOST_WIDE_INT num_unique_nonzero_elements; bool cleared, complete_p, valid_const_initializer; + /* Use readonly data for initializers of this or smaller size + regardless of the num_nonzero_elements / num_unique_nonzero_elements + ratio. */ + const HOST_WIDE_INT min_unique_size = 64; + /* If num_nonzero_elements / num_unique_nonzero_elements ratio + is smaller than this, use readonly data. */ + const int unique_nonzero_ratio = 8; /* Aggregate types must lower constructors to initialization of individual elements. The exception is that a CONSTRUCTOR node @@ -4795,6 +4803,7 @@ can only do so if it known to be a valid constant initializer. */ valid_const_initializer = categorize_ctor_elements (ctor, &num_nonzero_elements, + &num_unique_nonzero_elements, &num_ctor_elements, &complete_p); /* If a const aggregate variable is being initialized, then it @@ -4803,7 +4812,15 @@ && num_nonzero_elements > 1 && TREE_READONLY (object) && VAR_P (object) - && (flag_merge_constants >= 2 || !TREE_ADDRESSABLE (object))) + && (flag_merge_constants >= 2 || !TREE_ADDRESSABLE (object)) + /* For ctors that have many repeated nonzero elements + represented through RANGE_EXPRs, prefer initializing + those through runtime loops over copies of large amounts + of data from readonly data section. */ + && (num_unique_nonzero_elements + > num_nonzero_elements / unique_nonzero_ratio + || ((unsigned HOST_WIDE_INT) int_size_in_bytes (type) + <= (unsigned HOST_WIDE_INT) min_unique_size))) { if (notify_temp_creation) return GS_ERROR; @@ -4896,6 +4913,13 @@ is so large as to make individual moves inefficient. */ if (size > 0 && num_nonzero_elements > 1 + /* For ctors that have many repeated nonzero elements + represented through RANGE_EXPRs, prefer initializing + those through runtime loops over copies of large amounts + of data from readonly data section. */ + && (num_unique_nonzero_elements + > num_nonzero_elements / unique_nonzero_ratio + || size <= min_unique_size) && (size < num_nonzero_elements || !can_move_by_pieces (size, align))) { @@ -8695,7 +8719,7 @@ o2 = 0; o2 += bits_to_bytes_round_down (bitpos2); if (maybe_lt (o1, o2) - || (known_eq (o1, 2) + || (known_eq (o1, o2) && maybe_lt (bitpos, bitpos2))) { if (ptr) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimplify.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimplify.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimplify.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimplify.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for gimplification. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimplify-me.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimplify-me.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimplify-me.c 2018-10-22 12:08:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimplify-me.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,7 +1,7 @@ /* Tree lowering to gimple for middle end use only. This converts the GENERIC functions-as-trees tree representation into the GIMPLE form. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Major work done by Sebastian Pop , Diego Novillo and Jason Merrill . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimplify-me.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimplify-me.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gimplify-me.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gimplify-me.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for middle end gimplification. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/float.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/float.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/float.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/float.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/iso646.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/iso646.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/iso646.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/iso646.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/stdalign.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/stdalign.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/stdalign.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/stdalign.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. +/* Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/stdarg.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/stdarg.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/stdarg.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/stdarg.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1989-2018 Free Software Foundation, Inc. +/* Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/stdatomic.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/stdatomic.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/stdatomic.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/stdatomic.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/stdbool.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/stdbool.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/stdbool.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/stdbool.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1998-2018 Free Software Foundation, Inc. +/* Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/stddef.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/stddef.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/stddef.h 2018-07-09 11:23:03.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/stddef.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1989-2018 Free Software Foundation, Inc. +/* Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/stdfix.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/stdfix.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/stdfix.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/stdfix.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/stdint-gcc.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/stdint-gcc.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/stdint-gcc.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/stdint-gcc.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/stdnoreturn.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/stdnoreturn.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/stdnoreturn.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/stdnoreturn.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. +/* Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/tgmath.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/tgmath.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/tgmath.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/tgmath.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2018 Free Software Foundation, Inc. +/* Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Apple, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/unwind-arm-common.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/unwind-arm-common.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ginclude/unwind-arm-common.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ginclude/unwind-arm-common.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for the ARM EABI and C6X unwinders - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/glimits.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/glimits.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/glimits.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/glimits.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/ChangeLog 2018-11-28 13:52:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/ChangeLog 2019-01-02 08:05:17.000000000 +0000 @@ -1,3 +1,9 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + + * gccgo.texi: Bump @copyrights-go year. + 2018-11-27 Ian Lance Taylor * go-gcc.cc (Gcc_backend::function): Handle function_only_inline @@ -1587,7 +1593,7 @@ Go frontend added to gcc repository. -Copyright (C) 2010-2018 Free Software Foundation, Inc. +Copyright (C) 2010-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/config-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/config-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/config-lang.in 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/config-lang.in 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ # config-lang.in -- Top level configure fragment for gcc Go frontend. -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/gccgo.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/gccgo.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/gccgo.texi 2018-02-04 08:44:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/gccgo.texi 2019-01-02 08:05:17.000000000 +0000 @@ -12,7 +12,7 @@ @include gcc-common.texi @c Copyright years for this manual. -@set copyrights-go 2010-2018 +@set copyrights-go 2010-2019 @copying @c man begin COPYRIGHT diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/go-backend.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/go-backend.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/go-backend.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/go-backend.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* go-backend.c -- Go frontend interface to gcc backend. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/go-c.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/go-c.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/go-c.h 2018-02-04 08:44:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/go-c.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* go-c.h -- Header file for go frontend gcc C interface. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/gofrontend/expressions.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/gofrontend/expressions.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/gofrontend/expressions.cc 2018-11-29 22:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/gofrontend/expressions.cc 2018-12-29 02:41:34.000000000 +0000 @@ -3936,24 +3936,12 @@ // If this->escapes_ is false at this point, then it was set to // false by an explicit call to set_does_not_escape, and the value // does not escape. If this->escapes_ is true, we may be able to - // set it to false if taking the address of a variable that does not - // escape. - Node* n = Node::make_node(this); - if ((n->encoding() & ESCAPE_MASK) == int(Node::ESCAPE_NONE)) - this->escapes_ = false; - - Named_object* var = NULL; - if (this->expr_->var_expression() != NULL) - var = this->expr_->var_expression()->named_object(); - else if (this->expr_->enclosed_var_expression() != NULL) - var = this->expr_->enclosed_var_expression()->variable(); - - if (this->escapes_ && var != NULL) + // set it to false based on the escape analysis pass. + if (this->escapes_) { - if (var->is_variable()) - this->escapes_ = var->var_value()->escapes(); - if (var->is_result_variable()) - this->escapes_ = var->result_var_value()->escapes(); + Node* n = Node::make_node(this); + if ((n->encoding() & ESCAPE_MASK) == int(Node::ESCAPE_NONE)) + this->escapes_ = false; } this->expr_->address_taken(this->escapes_); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/gofrontend/gogo.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/gofrontend/gogo.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/gofrontend/gogo.cc 2018-11-28 13:52:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/gofrontend/gogo.cc 2018-12-29 02:41:34.000000000 +0000 @@ -6939,8 +6939,7 @@ type_from_init_tuple_(false), type_from_range_index_(false), type_from_range_value_(false), type_from_chan_element_(false), is_type_switch_var_(false), determined_type_(false), - in_unique_section_(false), escapes_(true), - toplevel_decl_(NULL) + in_unique_section_(false), toplevel_decl_(NULL) { go_assert(type != NULL || init != NULL); go_assert(!is_parameter || init == NULL); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/gofrontend/gogo.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/gofrontend/gogo.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/gofrontend/gogo.h 2018-11-28 13:52:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/gofrontend/gogo.h 2018-12-29 02:41:34.000000000 +0000 @@ -1863,11 +1863,7 @@ // Whether this variable should live in the heap. bool is_in_heap() const - { - return this->is_address_taken_ - && this->escapes_ - && !this->is_global_; - } + { return this->is_address_taken_ && !this->is_global_; } // Note that something takes the address of this variable. void @@ -1885,16 +1881,6 @@ set_non_escaping_address_taken() { this->is_non_escaping_address_taken_ = true; } - // Return whether this variable escapes the function it is declared in. - bool - escapes() - { return this->escapes_; } - - // Note that this variable does not escape the function it is declared in. - void - set_does_not_escape() - { this->escapes_ = false; } - // Get the source location of the variable's declaration. Location location() const @@ -2117,9 +2103,6 @@ // True if this variable should be put in a unique section. This is // used for field tracking. bool in_unique_section_ : 1; - // Whether this variable escapes the function it is created in. This is - // true until shown otherwise. - bool escapes_ : 1; // The top-level declaration for this variable. Only used for local // variables. Must be a Temporary_statement if not NULL. Statement* toplevel_decl_; @@ -2135,7 +2118,7 @@ Location location) : type_(type), function_(function), index_(index), location_(location), backend_(NULL), is_address_taken_(false), - is_non_escaping_address_taken_(false), escapes_(true) + is_non_escaping_address_taken_(false) { } // Get the type of the result variable. @@ -2179,23 +2162,10 @@ set_non_escaping_address_taken() { this->is_non_escaping_address_taken_ = true; } - // Return whether this variable escapes the function it is declared in. - bool - escapes() - { return this->escapes_; } - - // Note that this variable does not escape the function it is declared in. - void - set_does_not_escape() - { this->escapes_ = false; } - // Whether this variable should live in the heap. bool is_in_heap() const - { - return this->is_address_taken_ - && this->escapes_; - } + { return this->is_address_taken_; } // Set the function. This is used when cloning functions which call // recover. @@ -2223,9 +2193,6 @@ // Whether something takes the address of this variable such that // the address does not escape the function. bool is_non_escaping_address_taken_; - // Whether this variable escapes the function it is created in. This is - // true until shown otherwise. - bool escapes_; }; // The value we keep for a named constant. This lets us hold a type diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/gofrontend/MERGE gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/gofrontend/MERGE --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/gofrontend/MERGE 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/gofrontend/MERGE 2018-12-29 02:41:34.000000000 +0000 @@ -1,4 +1,4 @@ -16a48dbc1c69075321b388d235651b59abcb58ce +0e482bef69d73b9381dbc543e200a1fe57275e81 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/go-gcc.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/go-gcc.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/go-gcc.cc 2018-11-28 13:52:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/go-gcc.cc 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ // go-gcc.cc -- Go frontend to gcc IR. -// Copyright (C) 2011-2018 Free Software Foundation, Inc. +// Copyright (C) 2011-2019 Free Software Foundation, Inc. // Contributed by Ian Lance Taylor, Google. // This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/go-gcc-diagnostics.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/go-gcc-diagnostics.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/go-gcc-diagnostics.cc 2018-11-14 18:47:09.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/go-gcc-diagnostics.cc 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ // go-gcc-diagnostics.cc -- GCC implementation of go diagnostics interface. -// Copyright (C) 2016-2018 Free Software Foundation, Inc. +// Copyright (C) 2016-2019 Free Software Foundation, Inc. // Contributed by Than McIntosh, Google. // This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/go-gcc.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/go-gcc.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/go-gcc.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/go-gcc.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* go-gcc.h -- Header file for go backend-specific interfaces. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/go-lang.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/go-lang.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/go-lang.c 2018-07-21 17:29:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/go-lang.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* go-lang.c -- Go frontend gcc interface. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/go-sha1.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/go-sha1.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/go-sha1.cc 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/go-sha1.cc 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* go-sha1.cc -- Go frontend interface to gcc backend. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/gospec.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/gospec.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/gospec.c 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/gospec.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* gospec.c -- Specific flags and argument handling of the gcc Go front end. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/go-system.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/go-system.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/go-system.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/go-system.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ // go-system.h -- Go frontend inclusion of gcc header files -*- C++ -*- -// Copyright (C) 2009-2018 Free Software Foundation, Inc. +// Copyright (C) 2009-2019 Free Software Foundation, Inc. // This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/lang.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/lang.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/lang.opt 2018-02-04 08:44:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/lang.opt 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ ; lang.opt -- Options for the gcc Go front end. -; Copyright (C) 2009-2018 Free Software Foundation, Inc. +; Copyright (C) 2009-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/lang-specs.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/lang-specs.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/lang-specs.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/lang-specs.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* lang-specs.h -- gcc driver specs for Go frontend. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/Make-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/Make-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/go/Make-lang.in 2018-10-19 09:35:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/go/Make-lang.in 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ # Make-lang.in -- Top level -*- makefile -*- fragment for gcc Go frontend. -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/godump.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/godump.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/godump.c 2018-10-02 07:26:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/godump.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Output Go language descriptions of types. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/graph.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/graph.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/graph.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/graph.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Output routines for graphical representation. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Ulrich Drepper , 1998. Rewritten for DOT output by Steven Bosscher, 2012. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphds.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphds.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphds.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphds.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Graph representation and manipulation functions. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphds.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphds.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphds.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphds.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Graph representation. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/graph.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/graph.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/graph.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/graph.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for graph routines. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphite.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphite.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphite.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphite.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Gimple Represented as Polyhedra. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Sebastian Pop . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphite-dependences.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphite-dependences.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphite-dependences.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphite-dependences.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Data dependence analysis for Graphite. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Sebastian Pop and Konrad Trifunovic . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphite.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphite.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphite.h 2018-10-02 07:26:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphite.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Graphite polyhedral representation. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Sebastian Pop and Tobias Grosser . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphite-isl-ast-to-gimple.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphite-isl-ast-to-gimple.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphite-isl-ast-to-gimple.c 2018-11-20 10:31:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphite-isl-ast-to-gimple.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Translation of isl AST to Gimple. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Roman Gareev . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphite-optimize-isl.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphite-optimize-isl.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphite-optimize-isl.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphite-optimize-isl.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* A scheduling optimizer for Graphite - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Tobias Grosser . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphite-poly.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphite-poly.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphite-poly.c 2018-06-08 18:00:49.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphite-poly.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Graphite polyhedral representation. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Sebastian Pop and Tobias Grosser . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphite-scop-detection.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphite-scop-detection.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphite-scop-detection.c 2018-06-07 23:07:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphite-scop-detection.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Detection of Static Control Parts (SCoP) for Graphite. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Sebastian Pop and Tobias Grosser . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphite-sese-to-poly.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphite-sese-to-poly.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/graphite-sese-to-poly.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/graphite-sese-to-poly.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Conversion of SESE regions to Polyhedra. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Sebastian Pop . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gsstruct.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/gsstruct.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gsstruct.def 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gsstruct.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,7 +1,7 @@ /* This file contains the definitions for the gimple IR structure enumeration used in GCC. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Aldy Hernandez This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gstab.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gstab.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gstab.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gstab.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/gsyms.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/gsyms.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/gsyms.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/gsyms.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2018 Free Software Foundation, Inc. +/* Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/haifa-sched.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/haifa-sched.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/haifa-sched.c 2018-10-19 09:35:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/haifa-sched.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Instruction scheduling pass. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) Enhanced by, and currently maintained by, Jim Wilson (wilson@cygnus.com) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hard-reg-set.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/hard-reg-set.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hard-reg-set.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hard-reg-set.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Sets (bit vectors) of hard registers, and operations on them. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hash-map.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/hash-map.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hash-map.h 2018-11-14 18:47:08.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hash-map.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* A type-safe hash map. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hash-map-tests.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/hash-map-tests.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hash-map-tests.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hash-map-tests.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Unit tests for hash-map.h. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hash-map-traits.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/hash-map-traits.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hash-map-traits.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hash-map-traits.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* A hash map traits. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hash-set.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/hash-set.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hash-set.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hash-set.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* A type-safe hash set. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hash-set-tests.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/hash-set-tests.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hash-set-tests.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hash-set-tests.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Unit tests for hash-set.h. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hash-table.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/hash-table.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hash-table.c 2018-09-18 08:44:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hash-table.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* A type-safe hash table template. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Lawrence Crowl This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hash-table.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/hash-table.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hash-table.h 2018-09-18 08:44:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hash-table.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* A type-safe hash table template. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Lawrence Crowl This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hash-traits.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/hash-traits.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hash-traits.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hash-traits.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Traits for hashable types. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/highlev-plugin-common.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/highlev-plugin-common.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/highlev-plugin-common.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/highlev-plugin-common.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,7 +1,7 @@ /* Interface for high-level plugins in GCC - Parts common between GCC, ICI and high-level plugins. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by INRIA. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hooks.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/hooks.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hooks.c 2018-02-15 00:59:56.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hooks.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* General-purpose hooks. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -276,6 +276,11 @@ { } +void +hook_void_FILEptr_tree (FILE *, tree) +{ +} + void hook_void_rtx_tree (rtx, tree) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hooks.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/hooks.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hooks.h 2018-02-15 00:59:56.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hooks.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* General-purpose hooks. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -82,6 +82,7 @@ const_tree); extern bool hook_bool_FILEptr_rtx_false (FILE *, rtx); extern void hook_void_rtx_tree (rtx, tree); +extern void hook_void_FILEptr_tree (FILE *, tree); extern void hook_void_tree (tree); extern void hook_void_tree_treeptr (tree, tree *); extern void hook_void_int_int (int, int); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/host-default.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/host-default.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/host-default.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/host-default.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Default host-specific hook definitions. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hosthooks-def.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/hosthooks-def.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hosthooks-def.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hosthooks-def.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Default macros to initialize the lang_hooks data structure. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hosthooks.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/hosthooks.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hosthooks.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hosthooks.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* The host_hooks data structure. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hsa-brig.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/hsa-brig.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hsa-brig.c 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hsa-brig.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Producing binary form of HSA BRIG from our internal representation. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Martin Jambor and Martin Liska . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hsa-brig-format.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/hsa-brig-format.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hsa-brig-format.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hsa-brig-format.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* HSA BRIG (binary representation of HSAIL) 1.0.1 representation description. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hsa-builtins.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/hsa-builtins.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hsa-builtins.def 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hsa-builtins.def 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* This file contains the definitions and documentation for the Offloading and Multi Processing builtins used in the GNU compiler. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hsa-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/hsa-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hsa-common.c 2018-06-08 18:00:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hsa-common.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of commonly needed HSAIL related functions and methods. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Martin Jambor and Martin Liska . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hsa-common.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/hsa-common.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hsa-common.h 2018-06-08 18:00:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hsa-common.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* HSAIL and BRIG related macros and definitions. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hsa-dump.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/hsa-dump.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hsa-dump.c 2018-09-08 14:39:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hsa-dump.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Infrastructure to dump our HSAIL IL - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Martin Jambor and Martin Liska . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hsa-gen.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/hsa-gen.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hsa-gen.c 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hsa-gen.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* A pass for lowering gimple to HSAIL - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Martin Jambor and Martin Liska . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hsa-regalloc.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/hsa-regalloc.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hsa-regalloc.c 2018-09-08 14:39:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hsa-regalloc.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* HSAIL IL Register allocation and out-of-SSA. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Michael Matz This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hw-doloop.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/hw-doloop.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hw-doloop.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hw-doloop.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Code to analyze doloop loops in order for targets to perform late optimizations converting doloops to other forms of hardware loops. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hw-doloop.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/hw-doloop.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hw-doloop.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hw-doloop.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Code to analyze doloop loops in order for targets to perform late optimizations converting doloops to other forms of hardware loops. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hwint.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/hwint.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hwint.c 2018-08-02 03:04:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hwint.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Operations on HOST_WIDE_INT. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/hwint.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/hwint.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/hwint.h 2018-08-02 03:04:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/hwint.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* HOST_WIDE_INT definitions for the GNU compiler. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ifcvt.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ifcvt.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ifcvt.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ifcvt.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* If-conversion support. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ifcvt.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ifcvt.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ifcvt.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ifcvt.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* If-conversion header file. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/inchash.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/inchash.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/inchash.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/inchash.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Incremential hashing for jhash. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/inchash.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/inchash.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/inchash.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/inchash.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* An incremental hash abstract data type. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/incpath.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/incpath.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/incpath.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/incpath.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Set up combined include path chain for the preprocessor. - Copyright (C) 1986-2018 Free Software Foundation, Inc. + Copyright (C) 1986-2019 Free Software Foundation, Inc. Broken out of cppinit.c and cppfiles.c and rewritten Mar 2003. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/incpath.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/incpath.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/incpath.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/incpath.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Set up combined include path for the preprocessor. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/init-regs.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/init-regs.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/init-regs.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/init-regs.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Initialization of uninitialized regs. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/input.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/input.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/input.c 2018-12-04 09:51:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/input.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Data and functions related to line maps and input files. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/input.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/input.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/input.h 2018-11-14 18:47:07.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/input.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Declarations for variables relating to reading the source file. Used by parsers, lexical analyzers, and error message routines. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/insn-addr.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/insn-addr.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/insn-addr.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/insn-addr.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Macros to support INSN_ADDRESSES - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/insn-notes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/insn-notes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/insn-notes.def 2018-02-20 06:32:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/insn-notes.def 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Insn note definitions. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/internal-fn.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/internal-fn.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/internal-fn.c 2018-10-16 07:05:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/internal-fn.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Internal functions. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/internal-fn.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/internal-fn.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/internal-fn.def 2018-07-13 06:43:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/internal-fn.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Internal functions. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -201,9 +201,13 @@ /* Unary math functions. */ DEF_INTERNAL_FLT_FN (ACOS, ECF_CONST, acos, unary) +DEF_INTERNAL_FLT_FN (ACOSH, ECF_CONST, acosh, unary) DEF_INTERNAL_FLT_FN (ASIN, ECF_CONST, asin, unary) +DEF_INTERNAL_FLT_FN (ASINH, ECF_CONST, asinh, unary) DEF_INTERNAL_FLT_FN (ATAN, ECF_CONST, atan, unary) +DEF_INTERNAL_FLT_FN (ATANH, ECF_CONST, atanh, unary) DEF_INTERNAL_FLT_FN (COS, ECF_CONST, cos, unary) +DEF_INTERNAL_FLT_FN (COSH, ECF_CONST, cosh, unary) DEF_INTERNAL_FLT_FN (EXP, ECF_CONST, exp, unary) DEF_INTERNAL_FLT_FN (EXP10, ECF_CONST, exp10, unary) DEF_INTERNAL_FLT_FN (EXP2, ECF_CONST, exp2, unary) @@ -215,8 +219,10 @@ DEF_INTERNAL_FLT_FN (LOGB, ECF_CONST, logb, unary) DEF_INTERNAL_FLT_FN (SIGNIFICAND, ECF_CONST, significand, unary) DEF_INTERNAL_FLT_FN (SIN, ECF_CONST, sin, unary) +DEF_INTERNAL_FLT_FN (SINH, ECF_CONST, sinh, unary) DEF_INTERNAL_FLT_FLOATN_FN (SQRT, ECF_CONST, sqrt, unary) DEF_INTERNAL_FLT_FN (TAN, ECF_CONST, tan, unary) +DEF_INTERNAL_FLT_FN (TANH, ECF_CONST, tanh, unary) /* FP rounding. */ DEF_INTERNAL_FLT_FLOATN_FN (CEIL, ECF_CONST, ceil, unary) @@ -230,6 +236,7 @@ DEF_INTERNAL_FLT_FN (ATAN2, ECF_CONST, atan2, binary) DEF_INTERNAL_FLT_FLOATN_FN (COPYSIGN, ECF_CONST, copysign, binary) DEF_INTERNAL_FLT_FN (FMOD, ECF_CONST, fmod, binary) +DEF_INTERNAL_FLT_FN (HYPOT, ECF_CONST, hypot, binary) DEF_INTERNAL_FLT_FN (POW, ECF_CONST, pow, binary) DEF_INTERNAL_FLT_FN (REMAINDER, ECF_CONST, remainder, binary) DEF_INTERNAL_FLT_FN (SCALB, ECF_CONST, scalb, binary) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/internal-fn.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/internal-fn.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/internal-fn.h 2018-10-16 07:05:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/internal-fn.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Internal functions. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/intl.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/intl.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/intl.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/intl.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Message translation utilities. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/intl.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/intl.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/intl.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/intl.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* intl.h - internationalization - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/int-vector-builder.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/int-vector-builder.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/int-vector-builder.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/int-vector-builder.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* A class for building vector integer constants. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa.c 2018-11-22 10:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Basic IPA optimizations and utilities. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -831,7 +831,9 @@ be produced. */ static void -cgraph_build_static_cdtor_1 (char which, tree body, int priority, bool final) +cgraph_build_static_cdtor_1 (char which, tree body, int priority, bool final, + tree optimization, + tree target) { static int counter = 0; char which_buf[16]; @@ -862,6 +864,8 @@ TREE_STATIC (decl) = 1; TREE_USED (decl) = 1; + DECL_FUNCTION_SPECIFIC_OPTIMIZATION (decl) = optimization; + DECL_FUNCTION_SPECIFIC_TARGET (decl) = target; DECL_ARTIFICIAL (decl) = 1; DECL_IGNORED_P (decl) = 1; DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT (decl) = 1; @@ -911,7 +915,7 @@ void cgraph_build_static_cdtor (char which, tree body, int priority) { - cgraph_build_static_cdtor_1 (which, body, priority, false); + cgraph_build_static_cdtor_1 (which, body, priority, false, NULL, NULL); } /* When target does not have ctors and dtors, we call all constructor @@ -993,7 +997,9 @@ gcc_assert (body != NULL_TREE); /* Generate a function to call all the function of like priority. */ - cgraph_build_static_cdtor_1 (ctor_p ? 'I' : 'D', body, priority, true); + cgraph_build_static_cdtor_1 (ctor_p ? 'I' : 'D', body, priority, true, + DECL_FUNCTION_SPECIFIC_OPTIMIZATION (cdtors[0]), + DECL_FUNCTION_SPECIFIC_TARGET (cdtors[0])); } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-comdats.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-comdats.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-comdats.c 2018-01-09 22:21:11.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-comdats.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Localize comdats. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-cp.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-cp.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-cp.c 2018-12-14 05:16:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-cp.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Interprocedural constant propagation - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Razya Ladelsky and Martin Jambor diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-devirt.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-devirt.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-devirt.c 2018-11-23 09:38:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-devirt.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Basic IPA utilities for type inheritance graph construction and devirtualization. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. @@ -1985,6 +1985,30 @@ return build_bases; } +/* REF is OBJ_TYPE_REF, return the class the ref corresponds to. */ + +tree +obj_type_ref_class (const_tree ref) +{ + gcc_checking_assert (TREE_CODE (ref) == OBJ_TYPE_REF); + ref = TREE_TYPE (ref); + gcc_checking_assert (TREE_CODE (ref) == POINTER_TYPE); + ref = TREE_TYPE (ref); + /* We look for type THIS points to. ObjC also builds + OBJ_TYPE_REF with non-method calls, Their first parameter + ID however also corresponds to class type. */ + gcc_checking_assert (TREE_CODE (ref) == METHOD_TYPE + || TREE_CODE (ref) == FUNCTION_TYPE); + ref = TREE_VALUE (TYPE_ARG_TYPES (ref)); + gcc_checking_assert (TREE_CODE (ref) == POINTER_TYPE); + tree ret = TREE_TYPE (ref); + if (!in_lto_p) + ret = TYPE_CANONICAL (ret); + else + ret = get_odr_type (ret)->type; + return ret; +} + /* Get ODR type hash entry for TYPE. If INSERT is true, create possibly new entry. */ @@ -2000,6 +2024,8 @@ int base_id = -1; type = TYPE_MAIN_VARIANT (type); + if (!in_lto_p) + type = TYPE_CANONICAL (type); gcc_checking_assert (can_be_name_hashed_p (type) || can_be_vtable_hashed_p (type)); @@ -2126,6 +2152,12 @@ return val; } +bool +odr_type_violation_reported_p (tree type) +{ + return get_odr_type (type, false)->odr_violated; +} + /* Add TYPE od ODR type hash. */ void @@ -2727,6 +2759,7 @@ vec targets; tree decl_warning; int type_warning; + unsigned int n_odr_types; bool complete; bool speculative; }; @@ -2752,6 +2785,7 @@ hstate.add_hwi (odr_query->type->id); hstate.merge_hash (TYPE_UID (odr_query->context.outer_type)); hstate.add_hwi (odr_query->context.offset); + hstate.add_hwi (odr_query->n_odr_types); if (odr_query->context.speculative_outer_type) { @@ -2782,7 +2816,9 @@ == t2->context.maybe_in_construction && t1->context.maybe_derived_type == t2->context.maybe_derived_type && (t1->context.speculative_maybe_derived_type - == t2->context.speculative_maybe_derived_type)); + == t2->context.speculative_maybe_derived_type) + /* Adding new type may affect outcome of target search. */ + && t1->n_odr_types == t2->n_odr_types); } /* Remove entry in polymorphic call target cache hash. */ @@ -3188,6 +3224,7 @@ key.otr_token = otr_token; key.speculative = speculative; key.context = context; + key.n_odr_types = odr_types.length (); slot = polymorphic_call_target_hash->find_slot (&key, INSERT); if (cache_token) *cache_token = (void *)*slot; @@ -3404,6 +3441,7 @@ (*slot)->targets = nodes; (*slot)->complete = complete; + (*slot)->n_odr_types = odr_types.length (); if (completep) *completep = complete; @@ -3422,7 +3460,7 @@ /* Dump target list TARGETS into FILE. */ static void -dump_targets (FILE *f, vec targets) +dump_targets (FILE *f, vec targets, bool verbose) { unsigned int i; @@ -3439,6 +3477,13 @@ fprintf (f, " (no definition%s)", DECL_DECLARED_INLINE_P (targets[i]->decl) ? " inline" : ""); + /* With many targets for every call polymorphic dumps are going to + be quadratic in size. */ + if (i > 10 && !verbose) + { + fprintf (f, " ... and %i more targets\n", targets.length () - i); + return; + } } fprintf (f, "\n"); } @@ -3449,7 +3494,8 @@ dump_possible_polymorphic_call_targets (FILE *f, tree otr_type, HOST_WIDE_INT otr_token, - const ipa_polymorphic_call_context &ctx) + const ipa_polymorphic_call_context &ctx, + bool verbose) { vec targets; bool final; @@ -3474,7 +3520,7 @@ ctx.maybe_derived_type ? " (derived types included)" : "", ctx.speculative_maybe_derived_type ? " (speculative derived types included)" : ""); len = targets.length (); - dump_targets (f, targets); + dump_targets (f, targets, verbose); targets = possible_polymorphic_call_targets (otr_type, otr_token, ctx, @@ -3482,7 +3528,7 @@ if (targets.length () != len) { fprintf (f, " Speculative targets:"); - dump_targets (f, targets); + dump_targets (f, targets, verbose); } /* Ugly: during callgraph construction the target cache may get populated before all targets are found. While this is harmless (because all local @@ -3736,7 +3782,7 @@ if (dump_file) dump_possible_polymorphic_call_targets - (dump_file, e); + (dump_file, e, (dump_flags & TDF_DETAILS)); npolymorphic++; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-fnsummary.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-fnsummary.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-fnsummary.c 2018-11-22 10:29:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-fnsummary.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Function summary pass. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. @@ -1990,7 +1990,9 @@ gcc_assert (cfun == my_function); memset(&fbi, 0, sizeof(fbi)); + vec_free (info->conds); info->conds = NULL; + vec_free (info->size_time_table); info->size_time_table = NULL; /* When optimizing and analyzing for IPA inliner, initialize loop optimizer @@ -2178,6 +2180,17 @@ es->call_stmt_time = this_time; es->loop_depth = bb_loop_depth (bb); edge_set_predicate (edge, &bb_predicate); + if (edge->speculative) + { + cgraph_edge *direct, *indirect; + ipa_ref *ref; + edge->speculative_call_info (direct, indirect, ref); + gcc_assert (direct == edge); + ipa_call_summary *es2 + = ipa_call_summaries->get_create (indirect); + ipa_call_summaries->duplicate (edge, indirect, + es, es2); + } } /* TODO: When conditional jump or swithc is known to be constant, but @@ -2489,7 +2502,8 @@ ipa_update_overall_fn_summary but because computation happens in different order the roundoff errors result in slight changes. */ ipa_update_overall_fn_summary (node); - gcc_assert (info->size == info->self_size); + /* In LTO mode we may have speculative edges set. */ + gcc_assert (in_lto_p || info->size == info->self_size); } @@ -2859,6 +2873,9 @@ struct ipa_call_summary *inlined_es = ipa_call_summaries->get (inlined_edge); + if (es->param.length () == 0) + return; + for (i = 0; i < ipa_get_cs_argument_count (args); i++) { struct ipa_jump_func *jfunc = ipa_get_ith_jump_func (args, i); @@ -3193,28 +3210,46 @@ /* Write inline summary for edge E to OB. */ static void -read_ipa_call_summary (struct lto_input_block *ib, struct cgraph_edge *e) +read_ipa_call_summary (struct lto_input_block *ib, struct cgraph_edge *e, + bool prevails) { - struct ipa_call_summary *es = ipa_call_summaries->get_create (e); + struct ipa_call_summary *es = prevails + ? ipa_call_summaries->get_create (e) : NULL; predicate p; int length, i; - es->call_stmt_size = streamer_read_uhwi (ib); - es->call_stmt_time = streamer_read_uhwi (ib); - es->loop_depth = streamer_read_uhwi (ib); + int size = streamer_read_uhwi (ib); + int time = streamer_read_uhwi (ib); + int depth = streamer_read_uhwi (ib); + + if (es) + { + es->call_stmt_size = size; + es->call_stmt_time = time; + es->loop_depth = depth; + } bitpack_d bp = streamer_read_bitpack (ib); - es->is_return_callee_uncaptured = bp_unpack_value (&bp, 1); + if (es) + es->is_return_callee_uncaptured = bp_unpack_value (&bp, 1); + else + bp_unpack_value (&bp, 1); p.stream_in (ib); - edge_set_predicate (e, &p); + if (es) + edge_set_predicate (e, &p); length = streamer_read_uhwi (ib); - if (length) + if (length && es && e->possibly_call_in_translation_unit_p ()) { es->param.safe_grow_cleared (length); for (i = 0; i < length; i++) es->param[i].change_prob = streamer_read_uhwi (ib); } + else + { + for (i = 0; i < length; i++) + streamer_read_uhwi (ib); + } } @@ -3254,19 +3289,34 @@ encoder = file_data->symtab_node_encoder; node = dyn_cast (lto_symtab_encoder_deref (encoder, index)); - info = ipa_fn_summaries->get_create (node); + info = node->prevailing_p () ? ipa_fn_summaries->get_create (node) : NULL; - info->estimated_stack_size - = info->estimated_self_stack_size = streamer_read_uhwi (&ib); - info->size = info->self_size = streamer_read_uhwi (&ib); - info->time = sreal::stream_in (&ib); + int stack_size = streamer_read_uhwi (&ib); + int size = streamer_read_uhwi (&ib); + sreal time = sreal::stream_in (&ib); + + if (info) + { + info->estimated_stack_size + = info->estimated_self_stack_size = stack_size; + info->size = info->self_size = size; + info->time = time; + } bp = streamer_read_bitpack (&ib); - info->inlinable = bp_unpack_value (&bp, 1); - info->fp_expressions = bp_unpack_value (&bp, 1); + if (info) + { + info->inlinable = bp_unpack_value (&bp, 1); + info->fp_expressions = bp_unpack_value (&bp, 1); + } + else + { + bp_unpack_value (&bp, 1); + bp_unpack_value (&bp, 1); + } count2 = streamer_read_uhwi (&ib); - gcc_assert (!info->conds); + gcc_assert (!info || !info->conds); for (j = 0; j < count2; j++) { struct condition c; @@ -3279,10 +3329,11 @@ c.by_ref = bp_unpack_value (&bp, 1); if (c.agg_contents) c.offset = streamer_read_uhwi (&ib); - vec_safe_push (info->conds, c); + if (info) + vec_safe_push (info->conds, c); } count2 = streamer_read_uhwi (&ib); - gcc_assert (!info->size_time_table); + gcc_assert (!info || !info->size_time_table); for (j = 0; j < count2; j++) { struct size_time_entry e; @@ -3292,19 +3343,23 @@ e.exec_predicate.stream_in (&ib); e.nonconst_predicate.stream_in (&ib); - vec_safe_push (info->size_time_table, e); + if (info) + vec_safe_push (info->size_time_table, e); } p.stream_in (&ib); - set_hint_predicate (&info->loop_iterations, p); + if (info) + set_hint_predicate (&info->loop_iterations, p); p.stream_in (&ib); - set_hint_predicate (&info->loop_stride, p); + if (info) + set_hint_predicate (&info->loop_stride, p); p.stream_in (&ib); - set_hint_predicate (&info->array_index, p); + if (info) + set_hint_predicate (&info->array_index, p); for (e = node->callees; e; e = e->next_callee) - read_ipa_call_summary (&ib, e); + read_ipa_call_summary (&ib, e, info != NULL); for (e = node->indirect_calls; e; e = e->next_callee) - read_ipa_call_summary (&ib, e); + read_ipa_call_summary (&ib, e, info != NULL); } lto_free_section_data (file_data, LTO_section_ipa_fn_summary, NULL, data, diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-fnsummary.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-fnsummary.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-fnsummary.h 2018-06-22 07:37:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-fnsummary.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* IPA function body analysis. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-hsa.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-hsa.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-hsa.c 2018-12-04 09:51:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-hsa.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Callgraph based analysis of static variables. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Martin Liska This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-icf.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-icf.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-icf.c 2018-10-22 12:08:01.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-icf.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Interprocedural Identical Code Folding pass - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka and Martin Liska diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-icf-gimple.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-icf-gimple.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-icf-gimple.c 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-icf-gimple.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Interprocedural Identical Code Folding pass - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka and Martin Liska diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-icf-gimple.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-icf-gimple.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-icf-gimple.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-icf-gimple.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Interprocedural semantic function equality pass - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka and Martin Liska diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-icf.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-icf.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-icf.h 2018-10-22 12:08:01.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-icf.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Interprocedural semantic function equality pass - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka and Martin Liska diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-inline-analysis.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-inline-analysis.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-inline-analysis.c 2018-06-22 07:37:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-inline-analysis.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Analysis used by inlining decision heuristics. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-inline.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-inline.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-inline.c 2018-11-29 22:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-inline.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Inlining decision heuristics. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-inline.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-inline.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-inline.h 2018-06-08 18:00:49.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-inline.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Inlining decision heuristics. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-inline-transform.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-inline-transform.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-inline-transform.c 2018-06-22 07:37:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-inline-transform.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Callgraph transformations to handle inlining - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-param-manipulation.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-param-manipulation.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-param-manipulation.c 2018-09-08 14:39:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-param-manipulation.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Manipulation of formal and actual parameters of functions and function calls. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-param-manipulation.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-param-manipulation.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-param-manipulation.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-param-manipulation.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Manipulation of formal and actual parameters of functions and function calls. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-polymorphic-call.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-polymorphic-call.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-polymorphic-call.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-polymorphic-call.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Analysis of polymorphic call context. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. @@ -995,9 +995,22 @@ { outer_type = TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (base_pointer))); + cgraph_node *node = cgraph_node::get (current_function_decl); gcc_assert (TREE_CODE (outer_type) == RECORD_TYPE || TREE_CODE (outer_type) == UNION_TYPE); + /* Handle the case we inlined into a thunk. In this case + thunk has THIS pointer of type bar, but it really receives + address to its base type foo which sits in bar at + 0-thunk.fixed_offset. It starts with code that adds + think.fixed_offset to the pointer to compensate for this. + + Because we walked all the way to the begining of thunk, we now + see pointer &bar-thunk.fixed_offset and need to compensate + for it. */ + if (node->thunk.fixed_offset) + offset -= node->thunk.fixed_offset * BITS_PER_UNIT; + /* Dynamic casting has possibly upcasted the type in the hiearchy. In this case outer type is less informative than inner type and we should forget @@ -1005,7 +1018,11 @@ if ((otr_type && !contains_type_p (outer_type, offset, otr_type)) - || !contains_polymorphic_type_p (outer_type)) + || !contains_polymorphic_type_p (outer_type) + /* If we compile thunk with virtual offset, the THIS pointer + is adjusted by unknown value. We can't thus use outer info + at all. */ + || node->thunk.virtual_offset_p) { outer_type = NULL; if (instance) @@ -1030,7 +1047,15 @@ maybe_in_construction = false; } if (instance) - *instance = base_pointer; + { + /* If method is expanded thunk, we need to apply thunk offset + to instance pointer. */ + if (node->thunk.virtual_offset_p + || node->thunk.fixed_offset) + *instance = NULL; + else + *instance = base_pointer; + } return; } /* Non-PODs passed by value are really passed by invisible @@ -1547,6 +1572,9 @@ HOST_WIDE_INT instance_offset = offset; tree instance_outer_type = outer_type; + if (!instance) + return false; + if (otr_type) otr_type = TYPE_MAIN_VARIANT (otr_type); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-predicate.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-predicate.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-predicate.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-predicate.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* IPA predicates. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-predicate.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-predicate.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-predicate.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-predicate.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* IPA predicates. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-profile.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-profile.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-profile.c 2018-11-05 08:45:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-profile.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Basic IPA optimizations based on profile. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-prop.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-prop.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-prop.c 2018-12-10 19:27:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-prop.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Interprocedural analyses. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -4053,8 +4053,15 @@ struct ipa_agg_jf_item *item; struct bitpack_d bp; int i, count; + int flag = 0; - streamer_write_uhwi (ob, jump_func->type); + /* ADDR_EXPRs are very comon IP invariants; save some streamer data + as well as WPA memory by handling them specially. */ + if (jump_func->type == IPA_JF_CONST + && TREE_CODE (jump_func->value.constant.value) == ADDR_EXPR) + flag = 1; + + streamer_write_uhwi (ob, jump_func->type * 2 + flag); switch (jump_func->type) { case IPA_JF_UNKNOWN: @@ -4062,7 +4069,10 @@ case IPA_JF_CONST: gcc_assert ( EXPR_LOCATION (jump_func->value.constant.value) == UNKNOWN_LOCATION); - stream_write_tree (ob, jump_func->value.constant.value, true); + stream_write_tree (ob, + flag + ? TREE_OPERAND (jump_func->value.constant.value, 0) + : jump_func->value.constant.value, true); break; case IPA_JF_PASS_THROUGH: streamer_write_uhwi (ob, jump_func->value.pass_through.operation); @@ -4131,20 +4141,28 @@ ipa_read_jump_function (struct lto_input_block *ib, struct ipa_jump_func *jump_func, struct cgraph_edge *cs, - struct data_in *data_in) + struct data_in *data_in, + bool prevails) { enum jump_func_type jftype; enum tree_code operation; int i, count; + int val = streamer_read_uhwi (ib); + bool flag = val & 1; - jftype = (enum jump_func_type) streamer_read_uhwi (ib); + jftype = (enum jump_func_type) (val / 2); switch (jftype) { case IPA_JF_UNKNOWN: ipa_set_jf_unknown (jump_func); break; case IPA_JF_CONST: - ipa_set_jf_constant (jump_func, stream_read_tree (ib, data_in), cs); + { + tree t = stream_read_tree (ib, data_in); + if (flag && prevails) + t = build_fold_addr_expr (t); + ipa_set_jf_constant (jump_func, t, cs); + } break; case IPA_JF_PASS_THROUGH: operation = (enum tree_code) streamer_read_uhwi (ib); @@ -4177,10 +4195,13 @@ ipa_set_ancestor_jf (jump_func, offset, formal_id, agg_preserved); break; } + default: + fatal_error (UNKNOWN_LOCATION, "invalid jump function in LTO stream"); } count = streamer_read_uhwi (ib); - vec_alloc (jump_func->agg.items, count); + if (prevails) + vec_alloc (jump_func->agg.items, count); if (count) { struct bitpack_d bp = streamer_read_bitpack (ib); @@ -4191,7 +4212,8 @@ struct ipa_agg_jf_item item; item.offset = streamer_read_uhwi (ib); item.value = stream_read_tree (ib, data_in); - jump_func->agg.items->quick_push (item); + if (prevails) + jump_func->agg.items->quick_push (item); } struct bitpack_d bp = streamer_read_bitpack (ib); @@ -4200,7 +4222,8 @@ { widest_int value = streamer_read_widest_int (ib); widest_int mask = streamer_read_widest_int (ib); - ipa_set_jfunc_bits (jump_func, value, mask); + if (prevails) + ipa_set_jfunc_bits (jump_func, value, mask); } else jump_func->bits = NULL; @@ -4213,7 +4236,8 @@ VR_LAST); tree min = stream_read_tree (ib, data_in); tree max = stream_read_tree (ib, data_in); - ipa_set_jfunc_vr (jump_func, type, min, max); + if (prevails) + ipa_set_jfunc_vr (jump_func, type, min, max); } else jump_func->m_vr = NULL; @@ -4345,24 +4369,48 @@ } } -/* If jump functions points to node we possibly can propagate into. - At this moment symbol table is still not merged, but the prevailing - symbol is always first in the list. */ +/* Stream in edge E from IB. */ -static bool -jump_function_useful_p (symtab_node *node) +static void +ipa_read_edge_info (struct lto_input_block *ib, + struct data_in *data_in, + struct cgraph_edge *e, bool prevails) { - /* While incremental linking we may end up getting function body later. */ - if (flag_incremental_link == INCREMENTAL_LINK_LTO) - return true; - if (!TREE_PUBLIC (node->decl) && !DECL_EXTERNAL (node->decl)) - return true; - for (int n = 10; node->previous_sharing_asm_name && n ; n--) - node = node->previous_sharing_asm_name; - if (node->previous_sharing_asm_name) - node = symtab_node::get_for_asmname (DECL_ASSEMBLER_NAME (node->decl)); - gcc_assert (TREE_PUBLIC (node->decl)); - return node->definition; + int count = streamer_read_uhwi (ib); + bool contexts_computed = count & 1; + + count /= 2; + if (!count) + return; + if (prevails && e->possibly_call_in_translation_unit_p ()) + { + struct ipa_edge_args *args = IPA_EDGE_REF (e); + vec_safe_grow_cleared (args->jump_functions, count); + if (contexts_computed) + vec_safe_grow_cleared (args->polymorphic_call_contexts, count); + for (int k = 0; k < count; k++) + { + ipa_read_jump_function (ib, ipa_get_ith_jump_func (args, k), e, + data_in, prevails); + if (contexts_computed) + ipa_get_ith_polymorhic_call_context (args, k)->stream_in + (ib, data_in); + } + } + else + { + for (int k = 0; k < count; k++) + { + struct ipa_jump_func dummy; + ipa_read_jump_function (ib, &dummy, e, + data_in, prevails); + if (contexts_computed) + { + struct ipa_polymorphic_call_context ctx; + ctx.stream_in (ib, data_in); + } + } + } } /* Stream in NODE info from IB. */ @@ -4371,82 +4419,50 @@ ipa_read_node_info (struct lto_input_block *ib, struct cgraph_node *node, struct data_in *data_in) { - struct ipa_node_params *info = IPA_NODE_REF (node); int k; struct cgraph_edge *e; struct bitpack_d bp; + bool prevails = node->prevailing_p (); + struct ipa_node_params *info = prevails ? IPA_NODE_REF (node) : NULL; - ipa_alloc_node_params (node, streamer_read_uhwi (ib)); - - for (k = 0; k < ipa_get_param_count (info); k++) - (*info->descriptors)[k].move_cost = streamer_read_uhwi (ib); + int param_count = streamer_read_uhwi (ib); + if (prevails) + { + ipa_alloc_node_params (node, param_count); + for (k = 0; k < param_count; k++) + (*info->descriptors)[k].move_cost = streamer_read_uhwi (ib); + if (ipa_get_param_count (info) != 0) + info->analysis_done = true; + info->node_enqueued = false; + } + else + for (k = 0; k < param_count; k++) + streamer_read_uhwi (ib); bp = streamer_read_bitpack (ib); - if (ipa_get_param_count (info) != 0) - info->analysis_done = true; - info->node_enqueued = false; - for (k = 0; k < ipa_get_param_count (info); k++) - ipa_set_param_used (info, k, bp_unpack_value (&bp, 1)); - for (k = 0; k < ipa_get_param_count (info); k++) + for (k = 0; k < param_count; k++) { - ipa_set_controlled_uses (info, k, streamer_read_hwi (ib)); - (*info->descriptors)[k].decl_or_type = stream_read_tree (ib, data_in); + bool used = bp_unpack_value (&bp, 1); + + if (prevails) + ipa_set_param_used (info, k, used); } - for (e = node->callees; e; e = e->next_callee) + for (k = 0; k < param_count; k++) { - struct ipa_edge_args *args = IPA_EDGE_REF (e); - int count = streamer_read_uhwi (ib); - bool contexts_computed = count & 1; - count /= 2; - - if (!count) - continue; - if (!jump_function_useful_p (e->callee)) - { - for (k = 0; k < count; k++) - { - struct ipa_jump_func dummy; - ipa_read_jump_function (ib, &dummy, e, data_in); - if (contexts_computed) - { - struct ipa_polymorphic_call_context ctx; - ctx.stream_in (ib, data_in); - } - } - continue; - } - vec_safe_grow_cleared (args->jump_functions, count); - if (contexts_computed) - vec_safe_grow_cleared (args->polymorphic_call_contexts, count); + int nuses = streamer_read_hwi (ib); + tree type = stream_read_tree (ib, data_in); - for (k = 0; k < ipa_get_cs_argument_count (args); k++) + if (prevails) { - ipa_read_jump_function (ib, ipa_get_ith_jump_func (args, k), e, - data_in); - if (contexts_computed) - ipa_get_ith_polymorhic_call_context (args, k)->stream_in (ib, data_in); + ipa_set_controlled_uses (info, k, nuses); + (*info->descriptors)[k].decl_or_type = type; } } + for (e = node->callees; e; e = e->next_callee) + ipa_read_edge_info (ib, data_in, e, prevails); for (e = node->indirect_calls; e; e = e->next_callee) { - struct ipa_edge_args *args = IPA_EDGE_REF (e); - int count = streamer_read_uhwi (ib); - bool contexts_computed = count & 1; - count /= 2; - - if (count) - { - vec_safe_grow_cleared (args->jump_functions, count); - if (contexts_computed) - vec_safe_grow_cleared (args->polymorphic_call_contexts, count); - for (k = 0; k < ipa_get_cs_argument_count (args); k++) - { - ipa_read_jump_function (ib, ipa_get_ith_jump_func (args, k), e, - data_in); - if (contexts_computed) - ipa_get_ith_polymorhic_call_context (args, k)->stream_in (ib, data_in); - } - } + ipa_read_edge_info (ib, data_in, e, prevails); ipa_read_indirect_edge_info (ib, data_in, e); } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-prop.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-prop.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-prop.h 2018-11-13 05:13:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-prop.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Interprocedural analyses. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-pure-const.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-pure-const.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-pure-const.c 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-pure-const.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Callgraph based analysis of static variables. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Kenneth Zadeck This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-ref.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-ref.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-ref.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-ref.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Interprocedural reference lists. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-reference.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-reference.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-reference.c 2018-11-09 20:18:11.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-reference.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Callgraph based analysis of static variables. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Kenneth Zadeck This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-reference.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-reference.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-reference.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-reference.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* IPA handling of references. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Kenneth Zadeck This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-ref.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-ref.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-ref.h 2018-06-08 18:00:49.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-ref.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* IPA reference lists. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-split.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-split.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-split.c 2018-09-08 14:39:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-split.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Function splitting pass - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-utils.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-utils.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-utils.c 2018-06-08 18:00:49.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-utils.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Utilities for ipa analysis. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Kenneth Zadeck This file is part of GCC. @@ -392,6 +392,7 @@ if (!src->definition || !dst->definition) return; + if (src->frequency < dst->frequency) src->frequency = dst->frequency; @@ -402,6 +403,10 @@ if (src->profile_id && !dst->profile_id) dst->profile_id = src->profile_id; + /* Merging zero profile to dst is no-op. */ + if (src->count.ipa () == profile_count::zero ()) + return; + /* FIXME when we merge in unknown profile, we ought to set counts as unsafe. */ if (!src->count.initialized_p () @@ -412,6 +417,8 @@ fprintf (symtab->dump_file, "Merging profiles of %s to %s\n", src->dump_name (), dst->dump_name ()); } + profile_count orig_count = dst->count; + if (dst->count.initialized_p () && dst->count.ipa () == dst->count) dst->count += src->count.ipa (); else @@ -639,9 +646,22 @@ } if (!preserve_body) src->release_body (); - ipa_update_overall_fn_summary (dst); + /* Update summary. */ + compute_fn_summary (dst, 0); + } + /* We can't update CFG profile, but we can scale IPA profile. CFG + will be scaled according to dst->count after IPA passes. */ + else + { + profile_count to = dst->count; + profile_count::adjust_for_ipa_scaling (&to, &orig_count); + struct cgraph_edge *e; + + for (e = dst->callees; e; e = e->next_callee) + e->count = e->count.apply_scale (to, orig_count); + for (e = dst->indirect_calls; e; e = e->next_callee) + e->count = e->count.apply_scale (to, orig_count); } - /* TODO: if there is no match, we can scale up. */ src->decl = oldsrcdecl; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-utils.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-utils.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-utils.h 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-utils.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Utilities for ipa analysis. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Kenneth Zadeck This file is part of GCC. @@ -67,7 +67,8 @@ bool odr_type_p (const_tree); bool possible_polymorphic_call_target_p (tree ref, gimple *stmt, struct cgraph_node *n); void dump_possible_polymorphic_call_targets (FILE *, tree, HOST_WIDE_INT, - const ipa_polymorphic_call_context &); + const ipa_polymorphic_call_context &, + bool verbose = true); bool possible_polymorphic_call_target_p (tree, HOST_WIDE_INT, const ipa_polymorphic_call_context &, struct cgraph_node *); @@ -90,6 +91,7 @@ location_t loc2 = UNKNOWN_LOCATION); bool odr_or_derived_type_p (const_tree t); bool odr_types_equivalent_p (tree type1, tree type2); +bool odr_type_violation_reported_p (tree type); /* Return vector containing possible targets of polymorphic call E. If COMPLETEP is non-NULL, store true if the list is complete. @@ -136,13 +138,14 @@ /* Dump possible targets of a polymorphic call E into F. */ inline void -dump_possible_polymorphic_call_targets (FILE *f, struct cgraph_edge *e) +dump_possible_polymorphic_call_targets (FILE *f, struct cgraph_edge *e, + bool verbose = true) { ipa_polymorphic_call_context context(e); dump_possible_polymorphic_call_targets (f, e->indirect_info->otr_type, e->indirect_info->otr_token, - context); + context, verbose); } /* Return true if N can be possibly target of a polymorphic call of diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-visibility.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-visibility.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ipa-visibility.c 2018-11-09 20:18:11.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ipa-visibility.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* IPA visibility pass - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ira-build.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ira-build.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ira-build.c 2018-08-12 11:28:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ira-build.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Building internal representation for IRA. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ira.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ira.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ira.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ira.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Integrated Register Allocator (IRA) entry point. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ira-color.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ira-color.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ira-color.c 2018-02-10 19:55:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ira-color.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* IRA allocation based on graph coloring. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. @@ -4852,7 +4852,8 @@ static void fast_allocation (void) { - int i, j, k, num, class_size, hard_regno; + int i, j, k, num, class_size, hard_regno, best_hard_regno, cost, min_cost; + int *costs; #ifdef STACK_REGS bool no_stack_reg_p; #endif @@ -4903,6 +4904,9 @@ no_stack_reg_p = ALLOCNO_NO_STACK_REG_P (a); #endif class_size = ira_class_hard_regs_num[aclass]; + costs = ALLOCNO_HARD_REG_COSTS (a); + min_cost = INT_MAX; + best_hard_regno = -1; for (j = 0; j < class_size; j++) { hard_regno = ira_class_hard_regs[aclass][j]; @@ -4915,16 +4919,28 @@ || (TEST_HARD_REG_BIT (ira_prohibited_class_mode_regs[aclass][mode], hard_regno))) continue; - ALLOCNO_HARD_REGNO (a) = hard_regno; - for (l = 0; l < nr; l++) + if (costs == NULL) + { + best_hard_regno = hard_regno; + break; + } + cost = costs[j]; + if (min_cost > cost) { - ira_object_t obj = ALLOCNO_OBJECT (a, l); - for (r = OBJECT_LIVE_RANGES (obj); r != NULL; r = r->next) - for (k = r->start; k <= r->finish; k++) - IOR_HARD_REG_SET (used_hard_regs[k], - ira_reg_mode_hard_regset[hard_regno][mode]); + min_cost = cost; + best_hard_regno = hard_regno; } - break; + } + if (best_hard_regno < 0) + continue; + ALLOCNO_HARD_REGNO (a) = hard_regno = best_hard_regno; + for (l = 0; l < nr; l++) + { + ira_object_t obj = ALLOCNO_OBJECT (a, l); + for (r = OBJECT_LIVE_RANGES (obj); r != NULL; r = r->next) + for (k = r->start; k <= r->finish; k++) + IOR_HARD_REG_SET (used_hard_regs[k], + ira_reg_mode_hard_regset[hard_regno][mode]); } } ira_free (sorted_allocnos); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ira-conflicts.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ira-conflicts.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ira-conflicts.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ira-conflicts.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* IRA conflict builder. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ira-costs.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ira-costs.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ira-costs.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ira-costs.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* IRA hard register and memory cost calculation for allocnos or pseudos. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ira-emit.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ira-emit.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ira-emit.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ira-emit.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Integrated Register Allocator. Changing code and generating moves. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ira.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ira.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ira.h 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ira.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Communication between the Integrated Register Allocator (IRA) and the rest of the compiler. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ira-int.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ira-int.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ira-int.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ira-int.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Integrated Register Allocator (IRA) intercommunication header file. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ira-lives.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ira-lives.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ira-lives.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ira-lives.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* IRA processing allocno lives to build allocno live ranges. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/is-a.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/is-a.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/is-a.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/is-a.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Dynamic testing for abstract is-a relationships. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Lawrence Crowl. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/ChangeLog 2018-11-20 10:31:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/ChangeLog 2019-01-02 08:05:16.000000000 +0000 @@ -1,3 +1,7 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + 2018-11-15 David Malcolm PR other/19165 @@ -2615,7 +2619,7 @@ * Initial creation -Copyright (C) 2013-2018 Free Software Foundation, Inc. +Copyright (C) 2013-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/config-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/config-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/config-lang.in 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/config-lang.in 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Top level configure fragment for libgccjit.so. -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/_build/texinfo/libgccjit.texi gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/_build/texinfo/libgccjit.texi --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/_build/texinfo/libgccjit.texi 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/_build/texinfo/libgccjit.texi 2019-01-02 08:05:16.000000000 +0000 @@ -23,7 +23,7 @@ David Malcolm -Copyright @copyright{} 2014-2018 Free Software Foundation, Inc. +Copyright @copyright{} 2014-2019 Free Software Foundation, Inc. @end quotation @end copying @@ -46,7 +46,7 @@ @c %**start of body @anchor{index doc}@anchor{0} -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -85,7 +85,7 @@ Contents: -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -388,7 +388,7 @@ @chapter Tutorial -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -432,7 +432,7 @@ @example /* Smoketest example for libgccjit.so - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -583,7 +583,7 @@ @noindent -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -1037,7 +1037,7 @@ @example /* Usage example for libgccjit.so - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -1170,7 +1170,7 @@ @noindent -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -1651,7 +1651,7 @@ @example /* Usage example for libgccjit.so - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -1843,7 +1843,7 @@ @noindent -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -3992,7 +3992,7 @@ @noindent -@c Copyright (C) 2015-2018 Free Software Foundation, Inc. +@c Copyright (C) 2015-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -4824,7 +4824,7 @@ and to a dynamic library. See the documentation of @pxref{4a,,gcc_jit_context_compile_to_file()} for more information. -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -4846,7 +4846,7 @@ @chapter Topic Reference -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -5623,7 +5623,7 @@ @noindent @end deffn -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -5740,7 +5740,7 @@ @end cartouche @end deffn -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -6378,7 +6378,7 @@ Function pointer types can be created using @pxref{91,,gcc_jit_context_new_function_ptr_type()}. -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -7464,7 +7464,7 @@ in C (or, indeed, to @code{PTR + INDEX}). @end deffn -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -8090,7 +8090,7 @@ @end quotation @end deffn -@c Copyright (C) 2017-2018 Free Software Foundation, Inc. +@c Copyright (C) 2017-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -8173,7 +8173,7 @@ given return type and parameters. @end deffn -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -8261,7 +8261,7 @@ throughout the context, pointing at the dump file as if it were a source file, giving you @emph{something} you can step through in the debugger. -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -8538,7 +8538,7 @@ against. @end deffn -@c Copyright (C) 2015-2018 Free Software Foundation, Inc. +@c Copyright (C) 2015-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -8789,7 +8789,7 @@ @code{LIBGCCJIT_ABI_10} covers the addition of @pxref{85,,gcc_jit_context_new_rvalue_from_vector()} -@c Copyright (C) 2015-2018 Free Software Foundation, Inc. +@c Copyright (C) 2015-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -9100,7 +9100,7 @@ @noindent @end deffn -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -9138,7 +9138,7 @@ Contents: -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -9273,7 +9273,7 @@ @section Tutorial -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -9316,7 +9316,7 @@ @example /* Smoketest example for libgccjit.so C++ API - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -9451,7 +9451,7 @@ @noindent -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -9847,7 +9847,7 @@ @example /* Usage example for libgccjit.so's C++ API - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -9962,7 +9962,7 @@ @noindent -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -10466,7 +10466,7 @@ @example /* Usage example for libgccjit.so's C++ API - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -10623,7 +10623,7 @@ @noindent -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -12549,7 +12549,7 @@ @noindent -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -12571,7 +12571,7 @@ @section Topic Reference -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -12965,7 +12965,7 @@ @noindent @end deffn -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -13063,7 +13063,7 @@ @noindent @end deffn -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -13351,7 +13351,7 @@ @pxref{8d,,gcc_jit_struct_set_fields()}. @end deffn -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -14253,7 +14253,7 @@ @noindent @end quotation -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -14716,7 +14716,7 @@ @end quotation @end deffn -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -14797,7 +14797,7 @@ throughout the context, pointing at the dump file as if it were a source file, giving you @emph{something} you can step through in the debugger. -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it @@ -14869,7 +14869,7 @@ @pxref{4a,,gcc_jit_context_compile_to_file()} API entrypoint. @end deffn -@c Copyright (C) 2014-2018 Free Software Foundation, Inc. +@c Copyright (C) 2014-2019 Free Software Foundation, Inc. @c Originally contributed by David Malcolm @c @c This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/conf.py gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/conf.py --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/conf.py 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/conf.py 2019-01-02 08:05:16.000000000 +0000 @@ -41,7 +41,7 @@ # General information about the project. project = u'libgccjit' -copyright = u'2014-2018 Free Software Foundation, Inc.' +copyright = u'2014-2019 Free Software Foundation, Inc.' # GCC-specific: extract version information from "gcc" src subdir for # use in "version" and "release" below. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/index.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/index.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/index.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/index.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/intro/index.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/intro/index.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/intro/index.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/intro/index.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/intro/tutorial01.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/intro/tutorial01.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/intro/tutorial01.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/intro/tutorial01.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/intro/tutorial02.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/intro/tutorial02.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/intro/tutorial02.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/intro/tutorial02.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/intro/tutorial03.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/intro/tutorial03.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/intro/tutorial03.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/intro/tutorial03.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/intro/tutorial04.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/intro/tutorial04.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/intro/tutorial04.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/intro/tutorial04.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/topics/compilation.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/topics/compilation.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/topics/compilation.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/topics/compilation.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/topics/contexts.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/topics/contexts.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/topics/contexts.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/topics/contexts.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/topics/expressions.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/topics/expressions.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/topics/expressions.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/topics/expressions.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/topics/functions.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/topics/functions.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/topics/functions.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/topics/functions.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/topics/index.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/topics/index.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/topics/index.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/topics/index.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/topics/locations.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/topics/locations.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/topics/locations.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/topics/locations.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/topics/objects.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/topics/objects.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/topics/objects.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/topics/objects.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/topics/types.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/topics/types.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/cp/topics/types.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/cp/topics/types.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/examples/tut01-hello-world.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/examples/tut01-hello-world.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/examples/tut01-hello-world.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/examples/tut01-hello-world.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Smoketest example for libgccjit.so - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/examples/tut01-hello-world.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/examples/tut01-hello-world.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/examples/tut01-hello-world.cc 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/examples/tut01-hello-world.cc 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Smoketest example for libgccjit.so C++ API - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/examples/tut02-square.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/examples/tut02-square.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/examples/tut02-square.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/examples/tut02-square.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Usage example for libgccjit.so - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/examples/tut02-square.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/examples/tut02-square.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/examples/tut02-square.cc 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/examples/tut02-square.cc 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Usage example for libgccjit.so's C++ API - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/examples/tut03-sum-of-squares.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/examples/tut03-sum-of-squares.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/examples/tut03-sum-of-squares.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/examples/tut03-sum-of-squares.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Usage example for libgccjit.so - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/examples/tut03-sum-of-squares.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/examples/tut03-sum-of-squares.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/examples/tut03-sum-of-squares.cc 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/examples/tut03-sum-of-squares.cc 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Usage example for libgccjit.so's C++ API - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/examples/tut04-toyvm/toyvm.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/examples/tut04-toyvm/toyvm.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/examples/tut04-toyvm/toyvm.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/examples/tut04-toyvm/toyvm.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* A simple stack-based virtual machine to demonstrate JIT-compilation. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/examples/tut04-toyvm/toyvm.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/examples/tut04-toyvm/toyvm.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/examples/tut04-toyvm/toyvm.cc 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/examples/tut04-toyvm/toyvm.cc 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* A simple stack-based virtual machine to demonstrate JIT-compilation. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/index.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/index.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/index.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/index.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/internals/index.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/internals/index.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/internals/index.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/internals/index.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/intro/index.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/intro/index.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/intro/index.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/intro/index.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/intro/tutorial01.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/intro/tutorial01.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/intro/tutorial01.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/intro/tutorial01.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/intro/tutorial02.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/intro/tutorial02.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/intro/tutorial02.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/intro/tutorial02.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/intro/tutorial03.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/intro/tutorial03.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/intro/tutorial03.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/intro/tutorial03.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/intro/tutorial04.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/intro/tutorial04.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/intro/tutorial04.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/intro/tutorial04.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/intro/tutorial05.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/intro/tutorial05.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/intro/tutorial05.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/intro/tutorial05.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2015-2018 Free Software Foundation, Inc. +.. Copyright (C) 2015-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/compatibility.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/compatibility.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/compatibility.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/compatibility.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2015-2018 Free Software Foundation, Inc. +.. Copyright (C) 2015-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/compilation.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/compilation.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/compilation.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/compilation.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/contexts.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/contexts.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/contexts.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/contexts.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/expressions.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/expressions.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/expressions.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/expressions.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/function-pointers.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/function-pointers.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/function-pointers.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/function-pointers.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2017-2018 Free Software Foundation, Inc. +.. Copyright (C) 2017-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/functions.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/functions.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/functions.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/functions.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/index.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/index.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/index.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/index.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/locations.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/locations.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/locations.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/locations.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/objects.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/objects.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/objects.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/objects.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/performance.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/performance.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/performance.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/performance.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2015-2018 Free Software Foundation, Inc. +.. Copyright (C) 2015-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/types.rst gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/types.rst --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/docs/topics/types.rst 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/docs/topics/types.rst 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -.. Copyright (C) 2014-2018 Free Software Foundation, Inc. +.. Copyright (C) 2014-2019 Free Software Foundation, Inc. Originally contributed by David Malcolm This is free software: you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/dummy-frontend.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/dummy-frontend.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/dummy-frontend.c 2018-11-20 10:31:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/dummy-frontend.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* jit.c -- Dummy "frontend" for use during JIT-compilation. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-builtins.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-builtins.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-builtins.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-builtins.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* jit-builtins.c -- Handling of builtin functions during JIT-compilation. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-builtins.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-builtins.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-builtins.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-builtins.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* jit-builtins.h -- Handling of builtin functions during JIT-compilation. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-common.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-common.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-common.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-common.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Core of implementation of libgccjit.so - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-logging.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-logging.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-logging.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-logging.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Internals of libgccjit: logging - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-logging.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-logging.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-logging.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-logging.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Internals of libgccjit: logging - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-playback.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-playback.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-playback.c 2018-11-14 18:47:07.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-playback.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Internals of libgccjit: classes for playing back recorded API calls. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-playback.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-playback.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-playback.h 2018-11-14 18:47:07.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-playback.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Internals of libgccjit: classes for playing back recorded API calls. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-recording.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-recording.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-recording.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-recording.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Internals of libgccjit: classes for recording calls made to the JIT API. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-recording.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-recording.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-recording.h 2018-01-25 23:39:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-recording.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Internals of libgccjit: classes for recording calls made to the JIT API. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-result.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-result.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-result.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-result.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Internals of libgccjit: implementation of gcc_jit_result - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-result.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-result.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-result.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-result.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Internals of libgccjit: implementation of gcc_jit_result - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-spec.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-spec.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-spec.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-spec.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Dummy flag and argument handling of the jit "front-end". - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-tempdir.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-tempdir.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-tempdir.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-tempdir.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Managing temporary directories and their content within libgccjit.so - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-tempdir.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-tempdir.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/jit-tempdir.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/jit-tempdir.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Managing temporary directories and their content within libgccjit.so - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/libgccjit.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/libgccjit.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/libgccjit.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/libgccjit.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the C API; all wrappers into the internal C++ API - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/libgccjit.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/libgccjit.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/libgccjit.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/libgccjit.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* A pure C API to enable client code to embed GCC as a JIT-compiler. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/libgccjit++.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/libgccjit++.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/libgccjit++.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/libgccjit++.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* A C++ API for libgccjit, purely as inline wrapper functions. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/libgccjit.map gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/libgccjit.map --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/libgccjit.map 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/libgccjit.map 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Linker script for libgccjit.so -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. # Contributed by David Malcolm . # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/Make-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/Make-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jit/Make-lang.in 2018-10-19 09:35:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jit/Make-lang.in 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Top level -*- makefile -*- fragment for libgccjit.so. -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/json.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/json.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/json.cc 2018-11-09 20:18:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/json.cc 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* JSON trees - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/json.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/json.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/json.h 2018-10-29 14:45:50.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/json.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* JSON trees - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/jump.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/jump.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/jump.c 2018-08-12 11:28:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/jump.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Optimize jump instructions, for GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/langhooks.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/langhooks.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/langhooks.c 2018-10-02 07:26:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/langhooks.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Default language-specific hooks. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Alexandre Oliva This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/langhooks-def.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/langhooks-def.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/langhooks-def.h 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/langhooks-def.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Default macros to initialize the lang_hooks data structure. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Alexandre Oliva This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/langhooks.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/langhooks.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/langhooks.h 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/langhooks.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* The lang_hooks data structure. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/LANGUAGES gcc-snapshot-20190102/=unpacked-tar1=/gcc/LANGUAGES --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/LANGUAGES 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/LANGUAGES 2019-01-02 08:05:18.000000000 +0000 @@ -57,7 +57,7 @@ DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", 'd', 0) -Copyright (C) 1998-2018 Free Software Foundation, Inc. +Copyright (C) 1998-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lcm.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lcm.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lcm.c 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lcm.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic partial redundancy elimination with lazy code motion support. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lcm.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/lcm.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lcm.h 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lcm.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic partial redundancy elimination with lazy code motion header file. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/libfuncs.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/libfuncs.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/libfuncs.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/libfuncs.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for code generation pass of GNU compiler. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/limitx.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/limitx.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/limitx.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/limitx.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2018 Free Software Foundation, Inc. +/* Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lists.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lists.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lists.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lists.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* List management for the GCC expander. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/loop-doloop.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/loop-doloop.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/loop-doloop.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/loop-doloop.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Perform doloop optimizations - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Based on code by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/loop-init.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/loop-init.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/loop-init.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/loop-init.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Loop optimizer initialization routines and RTL loop optimization passes. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/loop-invariant.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/loop-invariant.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/loop-invariant.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/loop-invariant.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* RTL-level loop invariant motion. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/loop-iv.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/loop-iv.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/loop-iv.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/loop-iv.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Rtl-level induction variable analysis. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/loop-unroll.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/loop-unroll.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/loop-unroll.c 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/loop-unroll.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Loop unrolling. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/loop-unroll.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/loop-unroll.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/loop-unroll.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/loop-unroll.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Loop unrolling header file. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lower-subreg.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lower-subreg.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lower-subreg.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lower-subreg.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Decompose multiword subregs. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Richard Henderson Ian Lance Taylor diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lower-subreg.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/lower-subreg.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lower-subreg.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lower-subreg.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Target-dependent costs for lower-subreg.c. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra-assigns.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra-assigns.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra-assigns.c 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra-assigns.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Assign reload pseudos. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. @@ -1758,6 +1758,10 @@ "\n****** Splitting a hard reg after assignment #%d: ******\n\n", lra_assignment_iter); bitmap_initialize (&failed_reload_pseudos, ®_obstack); + bitmap_initialize (&non_reload_pseudos, ®_obstack); + bitmap_ior (&non_reload_pseudos, &lra_inheritance_pseudos, &lra_split_regs); + bitmap_ior_into (&non_reload_pseudos, &lra_subreg_reload_pseudos); + bitmap_ior_into (&non_reload_pseudos, &lra_optional_reload_pseudos); for (i = lra_constraint_new_regno_start; i < max_regno; i++) if (reg_renumber[i] < 0 && lra_reg_info[i].nrefs != 0 && (rclass = lra_get_allocno_class (i)) != NO_REGS @@ -1772,6 +1776,7 @@ } bitmap_set_bit (&failed_reload_pseudos, i); } + bitmap_clear (&non_reload_pseudos); bitmap_initialize (&failed_reload_insns, ®_obstack); EXECUTE_IF_SET_IN_BITMAP (&failed_reload_pseudos, 0, u, bi) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra.c 2018-12-14 05:16:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* LRA (local register allocator) driver and LRA utilities. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. @@ -2026,6 +2026,7 @@ { rtx_insn *insn; /* Insn where the scratch was. */ int nop; /* Number of the operand which was a scratch. */ + int icode; /* Original icode from which scratch was removed. */ }; typedef struct sloc *sloc_t; @@ -2057,7 +2058,7 @@ /* Register operand NOP in INSN as a former scratch. It will be changed to scratch back, if it is necessary, at the LRA end. */ void -lra_register_new_scratch_op (rtx_insn *insn, int nop) +lra_register_new_scratch_op (rtx_insn *insn, int nop, int icode) { lra_insn_recog_data_t id = lra_get_insn_recog_data (insn); rtx op = *id->operand_loc[nop]; @@ -2065,6 +2066,7 @@ lra_assert (REG_P (op)); loc->insn = insn; loc->nop = nop; + loc->icode = icode; scratches.safe_push (loc); bitmap_set_bit (&scratch_bitmap, REGNO (op)); bitmap_set_bit (&scratch_operand_bitmap, @@ -2102,7 +2104,7 @@ *id->operand_loc[i] = reg = lra_create_new_reg (static_id->operand[i].mode, *id->operand_loc[i], ALL_REGS, NULL); - lra_register_new_scratch_op (insn, i); + lra_register_new_scratch_op (insn, i, id->icode); if (lra_dump_file != NULL) fprintf (lra_dump_file, "Removing SCRATCH in insn #%u (nop %d)\n", @@ -2136,6 +2138,12 @@ last = loc->insn; id = lra_get_insn_recog_data (last); } + if (loc->icode != id->icode) + { + /* The icode doesn't match, which means the insn has been modified + (e.g. register elimination). The scratch cannot be restored. */ + continue; + } if (REG_P (*id->operand_loc[loc->nop]) && ((regno = REGNO (*id->operand_loc[loc->nop])) >= FIRST_PSEUDO_REGISTER) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra-coalesce.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra-coalesce.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra-coalesce.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra-coalesce.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Coalesce spilled pseudos. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra-constraints.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra-constraints.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra-constraints.c 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra-constraints.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Code for RTL transformations to satisfy insn constraints. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra-eliminations.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra-eliminations.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra-eliminations.c 2018-08-12 11:28:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra-eliminations.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Code for RTL register eliminations. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Communication between the Local Register Allocator (LRA) and the rest of the compiler. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra-int.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra-int.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra-int.h 2018-12-14 05:16:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra-int.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Local Register Allocator (LRA) intercommunication header file. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. @@ -336,7 +336,7 @@ extern lra_copy_t lra_get_copy (int); extern bool lra_former_scratch_p (int); extern bool lra_former_scratch_operand_p (rtx_insn *, int); -extern void lra_register_new_scratch_op (rtx_insn *, int); +extern void lra_register_new_scratch_op (rtx_insn *, int, int); extern int lra_new_regno_start; extern int lra_constraint_new_regno_start; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra-lives.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra-lives.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra-lives.c 2018-11-14 18:47:09.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra-lives.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Build live ranges for pseudos. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra-remat.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra-remat.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra-remat.c 2018-08-12 11:28:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra-remat.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Rematerialize pseudos values. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. @@ -1042,7 +1042,7 @@ fprintf (lra_dump_file, " Assigning the same %d to r%d\n", REGNO (*loc), hard_regno); } - lra_register_new_scratch_op (remat_insn, i); + lra_register_new_scratch_op (remat_insn, i, id->icode); } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra-spills.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra-spills.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lra-spills.c 2018-11-22 10:29:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lra-spills.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Change pseudos by memory. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/ChangeLog 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/ChangeLog 2019-01-02 08:05:17.000000000 +0000 @@ -1,3 +1,12 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + +2018-12-24 Jan Hubicka + + * lto-symtab.c (lto_symtab_merge_decls_2): Do not report ODR violations + for method whose basetype was already reported. + 2018-11-30 Michael Ploujnikov Minimize clone counter memory usage in LTO. @@ -6022,7 +6031,7 @@ * lto-tree.h: Likewise. * lto-lang.c: Likewise. -Copyright (C) 2006-2018 Free Software Foundation, Inc. +Copyright (C) 2006-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/common.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/common.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common code for the plugin and lto1. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Rafael Avila de Espindola (espindola@google.com). This program is free software; you can redistribute it and/or modify diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/common.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/common.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/common.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/common.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common code for the plugin and lto1. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Rafael Avila de Espindola (espindola@google.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/config-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/config-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/config-lang.in 2018-06-22 07:37:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/config-lang.in 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ # Top level configure fragment for LTO -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lang.opt gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lang.opt --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lang.opt 2018-05-31 09:39:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lang.opt 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ ; Options for the LTO front end. -; Copyright (C) 2008-2018 Free Software Foundation, Inc. +; Copyright (C) 2008-2019 Free Software Foundation, Inc. ; ; This file is part of GCC. ; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lang-specs.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lang-specs.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lang-specs.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lang-specs.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* LTO driver specs. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lto.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lto.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lto.c 2018-11-29 22:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lto.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Top-level LTO routines. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lto.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lto.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lto.h 2018-06-08 18:00:49.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lto.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* LTO declarations. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lto-lang.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lto-lang.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lto-lang.c 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lto-lang.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Language-dependent hooks for LTO. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lto-object.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lto-object.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lto-object.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lto-object.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* LTO routines to use object files. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lto-partition.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lto-partition.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lto-partition.c 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lto-partition.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* LTO partitioning logic routines. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lto-partition.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lto-partition.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lto-partition.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lto-partition.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* LTO partitioning logic routines. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lto-symtab.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lto-symtab.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lto-symtab.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lto-symtab.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* LTO symbol table. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, Inc. This file is part of GCC. @@ -697,10 +697,21 @@ { bool diag = false; if (level & 2) - diag = warning_at (DECL_SOURCE_LOCATION (decl), - OPT_Wodr, - "%qD violates the C++ One Definition Rule", - decl); + { + /* Silence warning for method and variables which belong + to types which already have ODR violation reported. Complaining + once is enough. */ + if (TREE_CODE (decl) != FUNCTION_DECL + || TREE_CODE (TREE_TYPE (decl)) != METHOD_TYPE + || !TYPE_METHOD_BASETYPE (TREE_TYPE (decl)) + || !odr_type_p (TYPE_METHOD_BASETYPE (TREE_TYPE (decl))) + || !odr_type_violation_reported_p + (TYPE_METHOD_BASETYPE (TREE_TYPE (decl)))) + diag = warning_at (DECL_SOURCE_LOCATION (decl), + OPT_Wodr, + "%qD violates the C++ One Definition Rule", + decl); + } if (!diag && (level & 1)) diag = warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wlto_type_mismatch, diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lto-symtab.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lto-symtab.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lto-symtab.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lto-symtab.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* LTO symbol table merging. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lto-tree.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lto-tree.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/lto-tree.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/lto-tree.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Language-dependent trees for LTO. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/Make-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/Make-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto/Make-lang.in 2018-10-19 09:35:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto/Make-lang.in 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ # Top level -*- makefile -*- fragment for LTO -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-cgraph.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-cgraph.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-cgraph.c 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-cgraph.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,7 +1,7 @@ /* Write and read the cgraph to the memory mapped representation of a .o file. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Kenneth Zadeck This file is part of GCC. @@ -547,7 +547,11 @@ streamer_write_bitpack (&bp); streamer_write_data_stream (ob->main_stream, section, strlen (section) + 1); - if (node->thunk.thunk_p) + /* Stream thunk info always because we use it in + ipa_polymorphic_call_context::ipa_polymorphic_call_context + to properly interpret THIS pointers for thunks that has been converted + to Gimple. */ + if (node->definition) { streamer_write_uhwi_stream (ob->main_stream, @@ -1091,6 +1095,36 @@ } } +/* Verify the partitioning of NODE. */ + +static inline void +verify_node_partition (symtab_node *node) +{ + if (flag_ltrans) + return; + +#ifdef ACCEL_COMPILER + if (node->in_other_partition) + { + if (TREE_CODE (node->decl) == FUNCTION_DECL) + error_at (DECL_SOURCE_LOCATION (node->decl), + "function %qs has been referenced in offloaded code but" + " hasn%'t been marked to be included in the offloaded code", + node->name ()); + else if (VAR_P (node->decl)) + error_at (DECL_SOURCE_LOCATION (node->decl), + "variable %qs has been referenced in offloaded code but" + " hasn%'t been marked to be included in the offloaded code", + node->name ()); + else + gcc_unreachable (); + } +#else + gcc_assert (!node->in_other_partition + && !node->used_from_other_partition); +#endif +} + /* Overwrite the information in NODE based on FILE_DATA, TAG, FLAGS, STACK_SIZE, SELF_TIME and SELF_SIZE. This is called either to initialize NODE or to replace the values in it, for instance because the first @@ -1153,9 +1187,7 @@ node->resolution = bp_unpack_enum (bp, ld_plugin_symbol_resolution, LDPR_NUM_KNOWN); node->split_part = bp_unpack_value (bp, 1); - gcc_assert (flag_ltrans - || (!node->in_other_partition - && !node->used_from_other_partition)); + verify_node_partition (node); } /* Return string alias is alias of. */ @@ -1267,7 +1299,7 @@ if (section) node->set_section_for_node (section); - if (node->thunk.thunk_p) + if (node->definition) { int type = streamer_read_uhwi (ib); HOST_WIDE_INT fixed_offset = streamer_read_uhwi (ib); @@ -1366,10 +1398,7 @@ node->set_section_for_node (section); node->resolution = streamer_read_enum (ib, ld_plugin_symbol_resolution, LDPR_NUM_KNOWN); - gcc_assert (flag_ltrans - || (!node->in_other_partition - && !node->used_from_other_partition)); - + verify_node_partition (node); return node; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-compress.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-compress.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-compress.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-compress.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* LTO IL compression streams. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Simon Baldwin This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-compress.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-compress.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-compress.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-compress.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* LTO IL compression streams. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Simon Baldwin This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-opts.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-opts.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-opts.c 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-opts.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* LTO IL options. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Simon Baldwin This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-section-in.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-section-in.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-section-in.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-section-in.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Input functions for reading LTO sections. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Kenneth Zadeck This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-section-names.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-section-names.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-section-names.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-section-names.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for LTO section names. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-section-out.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-section-out.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-section-out.c 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-section-out.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Functions for writing LTO sections. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Kenneth Zadeck This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-streamer.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-streamer.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-streamer.c 2018-06-14 13:43:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-streamer.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ /* Miscellaneous utilities for GIMPLE streaming. Things that are used in both input and output are here. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Doug Kwan This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-streamer.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-streamer.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-streamer.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-streamer.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ /* Data structures and declarations used for reading and writing GIMPLE to a file stream. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Doug Kwan This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-streamer-in.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-streamer-in.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-streamer-in.c 2018-08-02 03:04:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-streamer-in.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Read the GIMPLE representation from a file stream. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Kenneth Zadeck Re-implemented by Diego Novillo diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-streamer-out.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-streamer-out.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-streamer-out.c 2018-11-22 10:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-streamer-out.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Write the GIMPLE representation to a file stream. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Kenneth Zadeck Re-implemented by Diego Novillo diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-wrapper.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-wrapper.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/lto-wrapper.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/lto-wrapper.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Wrapper to call lto. Used by collect2 and the linker plugin. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Factored out of collect2 by Rafael Espindola @@ -71,7 +71,8 @@ static char **offload_names; static char *offload_objects_file_name; static char *makefile; -static char *debug_obj; +static unsigned int num_deb_objs; +static const char **early_debug_object_names; const char tool_name[] = "lto-wrapper"; @@ -90,8 +91,10 @@ maybe_unlink (offload_objects_file_name); if (makefile) maybe_unlink (makefile); - if (debug_obj) - maybe_unlink (debug_obj); + if (early_debug_object_names) + for (i = 0; i < num_deb_objs; ++i) + if (early_debug_object_names[i]) + maybe_unlink (early_debug_object_names[i]); for (i = 0; i < nr; ++i) { maybe_unlink (input_names[i]); @@ -1036,7 +1039,7 @@ const char * debug_objcopy (const char *infile, bool rename) { - const char *outfile; + char *outfile; const char *errmsg; int err; @@ -1075,7 +1078,15 @@ return NULL; } - outfile = make_temp_file ("debugobjtem"); + if (save_temps) + { + outfile = (char *) xmalloc (strlen (infile) + + sizeof (".debug.temp.o") + 1); + strcpy (outfile, infile); + strcat (outfile, ".debug.temp.o"); + } + else + outfile = make_temp_file (".debug.temp.o"); errmsg = simple_object_copy_lto_debug_sections (inobj, outfile, &err, rename); if (errmsg) { @@ -1412,9 +1423,16 @@ if (lto_mode == LTO_MODE_LTO) { - flto_out = make_temp_file (".lto.o"); if (linker_output) - obstack_ptr_grow (&argv_obstack, linker_output); + { + obstack_ptr_grow (&argv_obstack, linker_output); + flto_out = (char *) xmalloc (strlen (linker_output) + + sizeof (".lto.o") + 1); + strcpy (flto_out, linker_output); + strcat (flto_out, ".lto.o"); + } + else + flto_out = make_temp_file (".lto.o"); obstack_ptr_grow (&argv_obstack, "-o"); obstack_ptr_grow (&argv_obstack, flto_out); } @@ -1487,95 +1505,39 @@ argv_ptr = &new_argv[new_head_argc]; fork_execute (new_argv[0], CONST_CAST (char **, new_argv), true); - /* Handle early generated debug information. At compile-time - we output early DWARF debug info into .gnu.debuglto_ prefixed - sections. LTRANS object DWARF debug info refers to that. - So we need to transfer the .gnu.debuglto_ sections to the final - link. Ideally the linker plugin interface would allow us to - not claim those sections and instruct the linker to keep - them, renaming them in the process. For now we extract and - rename those sections via a simple-object interface to produce - regular objects containing only the early debug info. We - then partially link those to a single early debug info object - and pass that as additional output back to the linker plugin. */ - - /* Prepare the partial link to gather the compile-time generated - debug-info into a single input for the final link. */ - debug_obj = make_temp_file ("debugobj"); - obstack_ptr_grow (&argv_obstack, collect_gcc); - for (i = 1; i < decoded_options_count; ++i) - { - /* Retain linker choice and -B. */ - if (decoded_options[i].opt_index == OPT_B - || decoded_options[i].opt_index == OPT_fuse_ld_bfd - || decoded_options[i].opt_index == OPT_fuse_ld_gold) - append_linker_options (&argv_obstack, &decoded_options[i-1], 2); - /* Retain all target options, this preserves -m32 for example. */ - if (cl_options[decoded_options[i].opt_index].flags & CL_TARGET) - append_linker_options (&argv_obstack, &decoded_options[i-1], 2); - /* Recognize -g0. */ - if (decoded_options[i].opt_index == OPT_g - && strcmp (decoded_options[i].arg, "0") == 0) - skip_debug = true; - } - obstack_ptr_grow (&argv_obstack, "-r"); - obstack_ptr_grow (&argv_obstack, "-nostdlib"); - obstack_ptr_grow (&argv_obstack, "-o"); - obstack_ptr_grow (&argv_obstack, debug_obj); - /* Copy the early generated debug info from the objects to temporary files and append those to the partial link commandline. */ n_debugobj = 0; + early_debug_object_names = NULL; if (! skip_debug) - for (i = 0; i < ltoobj_argc; ++i) - { - const char *tem; - if ((tem = debug_objcopy (ltoobj_argv[i], !linker_output_rel))) - { - obstack_ptr_grow (&argv_obstack, tem); - n_debugobj++; - } - } - - /* Link them all into a single object. Ideally this would reduce - disk space usage mainly due to .debug_str merging but unfortunately - GNU ld doesn't perform this with -r. */ - if (n_debugobj) - { - obstack_ptr_grow (&argv_obstack, NULL); - const char **debug_link_argv = XOBFINISH (&argv_obstack, const char **); - fork_execute (debug_link_argv[0], - CONST_CAST (char **, debug_link_argv), false); - - /* And dispose the temporaries. */ - for (i = 0; debug_link_argv[i]; ++i) - ; - for (--i; i > 0; --i) + { + early_debug_object_names = XCNEWVEC (const char *, ltoobj_argc+ 1); + num_deb_objs = ltoobj_argc; + for (i = 0; i < ltoobj_argc; ++i) { - if (strcmp (debug_link_argv[i], debug_obj) == 0) - break; - maybe_unlink (debug_link_argv[i]); + const char *tem; + if ((tem = debug_objcopy (ltoobj_argv[i], !linker_output_rel))) + { + early_debug_object_names[i] = tem; + n_debugobj++; + } } } - else - { - unlink_if_ordinary (debug_obj); - free (debug_obj); - debug_obj = NULL; - skip_debug = true; - } if (lto_mode == LTO_MODE_LTO) { printf ("%s\n", flto_out); if (!skip_debug) { - printf ("%s\n", debug_obj); - free (debug_obj); - debug_obj = NULL; + for (i = 0; i < ltoobj_argc; ++i) + if (early_debug_object_names[i] != NULL) + printf ("%s\n", early_debug_object_names[i]); } + /* These now belong to collect2. */ free (flto_out); flto_out = NULL; + free (early_debug_object_names); + early_debug_object_names = NULL; } else { @@ -1739,21 +1701,24 @@ for (i = 0; i < nr; ++i) maybe_unlink (input_names[i]); } - if (!skip_debug) - { - printf ("%s\n", debug_obj); - free (debug_obj); - debug_obj = NULL; - } for (i = 0; i < nr; ++i) { fputs (output_names[i], stdout); putc ('\n', stdout); free (input_names[i]); } + if (!skip_debug) + { + for (i = 0; i < ltoobj_argc; ++i) + if (early_debug_object_names[i] != NULL) + printf ("%s\n", early_debug_object_names[i]); + } nr = 0; free (ltrans_priorities); free (output_names); + output_names = NULL; + free (early_debug_object_names); + early_debug_object_names = NULL; free (input_names); free (list_option_full); obstack_free (&env_obstack, NULL); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/machmode.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/machmode.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/machmode.def 2018-02-15 00:59:58.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/machmode.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* This file contains the definitions and documentation for the machine modes used in the GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/machmode.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/machmode.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/machmode.h 2018-09-08 14:39:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/machmode.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Machine mode definitions for GCC; included by rtl.h and tree.h. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/main.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/main.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/main.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/main.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* main.c: defines main() for cc1, cc1plus, etc. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/Makefile.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/Makefile.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/Makefile.in 2018-11-22 10:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/Makefile.in 2019-01-02 08:05:18.000000000 +0000 @@ -1,7 +1,7 @@ # Makefile for GNU Compiler Collection # Run 'configure' to generate Makefile from Makefile.in -# Copyright (C) 1987-2018 Free Software Foundation, Inc. +# Copyright (C) 1987-2019 Free Software Foundation, Inc. #This file is part of GCC. @@ -1320,6 +1320,7 @@ gimple-laddress.o \ gimple-loop-interchange.o \ gimple-loop-jam.o \ + gimple-loop-versioning.o \ gimple-low.o \ gimple-pretty-print.o \ gimple-ssa-backprop.o \ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/match.pd gcc-snapshot-20190102/=unpacked-tar1=/gcc/match.pd --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/match.pd 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/match.pd 2019-01-02 08:05:17.000000000 +0000 @@ -2,7 +2,7 @@ This file is consumed by genmatch which produces gimple-match.c and generic-match.c from it. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Richard Biener and Prathamesh Kulkarni diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/mcf.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/mcf.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/mcf.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/mcf.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Routines to implement minimum-cost maximal flow algorithm used to smooth basic block and edge frequency counts. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Paul Yuan (yingbo.com@gmail.com) and Vinodha Ramasamy (vinodha@google.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/memmodel.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/memmodel.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/memmodel.h 2018-03-20 02:40:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/memmodel.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Prototypes of memory model helper functions. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/memory-block.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/memory-block.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/memory-block.cc 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/memory-block.cc 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Shared pool of memory blocks for pool allocators. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/memory-block.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/memory-block.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/memory-block.h 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/memory-block.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Shared pool of memory blocks for pool allocators. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/mem-stats.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/mem-stats.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/mem-stats.h 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/mem-stats.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* A memory statistics tracking infrastructure. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Martin Liska This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/mem-stats-traits.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/mem-stats-traits.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/mem-stats-traits.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/mem-stats-traits.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* A memory statistics traits. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Martin Liska This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/mkconfig.sh gcc-snapshot-20190102/=unpacked-tar1=/gcc/mkconfig.sh --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/mkconfig.sh 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/mkconfig.sh 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # This file is part of GCC. # GCC is free software; you can redistribute it and/or modify diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/mode-classes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/mode-classes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/mode-classes.def 2018-09-08 14:39:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/mode-classes.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Machine mode class definitions for GCC. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/mode-switching.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/mode-switching.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/mode-switching.c 2018-11-22 10:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/mode-switching.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* CPU mode switching - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/modulo-sched.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/modulo-sched.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/modulo-sched.c 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/modulo-sched.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Swing Modulo Scheduling implementation. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Ayal Zaks and Mustafa Hagog This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/multiple_target.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/multiple_target.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/multiple_target.c 2018-10-30 12:11:34.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/multiple_target.c 2019-01-02 08:05:17.000000000 +0000 @@ -2,7 +2,7 @@ Contributed by Evgeny Stupachenko - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/ChangeLog 2018-10-19 09:35:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/ChangeLog 2019-01-02 08:05:16.000000000 +0000 @@ -1,3 +1,16 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + +2018-12-19 David Malcolm + + PR c++/43064 + PR c++/43486 + * objc-act.c (objc_maybe_build_component_ref): Strip any location + wrapper before checking for UOBJC_SUPER_decl and self_decl. + (objc_finish_message_expr): Strip any location wrapper. + (gen_declaration): Strip location wrappers from "w". + 2018-10-17 David Malcolm * Make-lang.in (selftest-objc): New. @@ -3799,7 +3812,7 @@ Move to c-objc-common.h. -Copyright (C) 2004-2018 Free Software Foundation, Inc. +Copyright (C) 2004-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/config-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/config-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/config-lang.in 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/config-lang.in 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Top level configure fragment for GNU Objective-C -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/lang-specs.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/lang-specs.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/lang-specs.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/lang-specs.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for specs for Objective-C. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/Make-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/Make-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/Make-lang.in 2018-10-19 09:35:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/Make-lang.in 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Top level -*- makefile -*- fragment for GNU Objective-C -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-act.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-act.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-act.c 2018-04-23 08:51:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-act.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Implement classes and message passing for Objective C. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Contributed by Steve Naroff. This file is part of GCC. @@ -1455,6 +1455,8 @@ || TREE_CODE (t) == COMPONENT_REF) t = TREE_OPERAND (t, 0); + STRIP_ANY_LOCATION_WRAPPER (t); + if (t == UOBJC_SUPER_decl) interface_type = lookup_interface (CLASS_SUPER_NAME (implementation_template)); else if (t == self_decl) @@ -5339,6 +5341,8 @@ tree retval, class_tree; int self, super, have_cast; + STRIP_ANY_LOCATION_WRAPPER (receiver); + /* We have used the receiver, so mark it as read. */ mark_exp_read (receiver); @@ -8906,9 +8910,13 @@ #else tree w = DECL_INITIAL (decl); #endif - if (w && TREE_CODE (w) == INTEGER_CST) - sprintf (errbuf + strlen (errbuf), ": " HOST_WIDE_INT_PRINT_DEC, - TREE_INT_CST_LOW (w)); + if (w) + { + STRIP_ANY_LOCATION_WRAPPER (w); + if (TREE_CODE (w) == INTEGER_CST) + sprintf (errbuf + strlen (errbuf), ": " HOST_WIDE_INT_PRINT_DEC, + TREE_INT_CST_LOW (w)); + } } return errbuf; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-act.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-act.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-act.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-act.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations for objc-act.c. - Copyright (C) 1990-2018 Free Software Foundation, Inc. + Copyright (C) 1990-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-encoding.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-encoding.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-encoding.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-encoding.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Routines dealing with ObjC encoding of types - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-encoding.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-encoding.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-encoding.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-encoding.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Routines dealing with ObjC encoding of types - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-gnu-runtime-abi-01.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-gnu-runtime-abi-01.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-gnu-runtime-abi-01.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-gnu-runtime-abi-01.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* GNU Runtime ABI version 8 - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Iain Sandoe (split from objc-act.c) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-lang.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-lang.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-lang.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-lang.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Language-dependent hooks for Objective-C. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Ziemowit Laski This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-map.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-map.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-map.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-map.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* objc-map.c -- Implementation of map data structures for ObjC compiler - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Written by Nicola Pero This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-map.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-map.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-map.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-map.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* objc-map.h -- Implementation of map data structures for ObjC compiler - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Written by Nicola Pero This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-next-metadata-tags.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-next-metadata-tags.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-next-metadata-tags.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-next-metadata-tags.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations for meta-data attribute tags. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Iain Sandoe This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-next-runtime-abi-01.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-next-runtime-abi-01.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-next-runtime-abi-01.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-next-runtime-abi-01.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Next Runtime (ABI-0/1) private. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Iain Sandoe (split from objc-act.c) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-next-runtime-abi-02.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-next-runtime-abi-02.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-next-runtime-abi-02.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-next-runtime-abi-02.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Next Runtime (ABI-2) private. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Iain Sandoe and based, in part, on an implementation in 'branches/apple/trunk' contributed by Apple Computer Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-runtime-hooks.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-runtime-hooks.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-runtime-hooks.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-runtime-hooks.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Hooks to abstract the runtime meta-data generation for Objective C. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Iain Sandoe This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-runtime-shared-support.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-runtime-shared-support.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-runtime-shared-support.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-runtime-shared-support.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines shared by all runtimes. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Iain Sandoe (partially split from objc-act.c) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-runtime-shared-support.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-runtime-shared-support.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-runtime-shared-support.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-runtime-shared-support.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines shared by all runtimes. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Iain Sandoe This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-tree.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-tree.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objc/objc-tree.def 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objc/objc-tree.def 2019-01-02 08:05:16.000000000 +0000 @@ -1,7 +1,7 @@ /* This file contains the definitions and documentation for the additional tree codes used in the Objective C front end (see tree.def for the standard codes). - Copyright (C) 1990-2018 Free Software Foundation, Inc. + Copyright (C) 1990-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objcp/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/gcc/objcp/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objcp/ChangeLog 2018-10-19 09:35:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objcp/ChangeLog 2019-01-02 08:05:16.000000000 +0000 @@ -1,3 +1,7 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + 2018-10-17 David Malcolm * Make-lang.in (selftest-obj-c++): New. @@ -542,7 +546,7 @@ * objcp-lang.c: Likewise. -Copyright (C) 2005-2018 Free Software Foundation, Inc. +Copyright (C) 2005-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objcp/config-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/objcp/config-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objcp/config-lang.in 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objcp/config-lang.in 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Top level configure fragment for GNU Objective-C++. -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # Contributed by Ziemowit Laski #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objcp/lang-specs.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/objcp/lang-specs.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objcp/lang-specs.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objcp/lang-specs.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for specs for Objective-C++. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Ziemowit Laski This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objcp/Make-lang.in gcc-snapshot-20190102/=unpacked-tar1=/gcc/objcp/Make-lang.in --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objcp/Make-lang.in 2018-10-19 09:35:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objcp/Make-lang.in 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Top level -*- makefile -*- fragment for GNU Objective-C++ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # Contributed by Ziemowit Laski #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objcp/objcp-decl.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/objcp/objcp-decl.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objcp/objcp-decl.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objcp/objcp-decl.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Process the ObjC-specific declarations and variables for the Objective-C++ compiler. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Ziemowit Laski This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objcp/objcp-decl.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/objcp/objcp-decl.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objcp/objcp-decl.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objcp/objcp-decl.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Process the ObjC-specific declarations and variables for the Objective-C++ compiler. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Ziemowit Laski This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/objcp/objcp-lang.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/objcp/objcp-lang.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/objcp/objcp-lang.c 2018-05-12 14:22:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/objcp/objcp-lang.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Language-dependent hooks for Objective-C++. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Ziemowit Laski This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-builtins.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-builtins.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-builtins.def 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-builtins.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* This file contains the definitions and documentation for the Offloading and Multi Processing builtins used in the GNU compiler. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-expand.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-expand.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-expand.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-expand.c 2019-01-02 08:05:17.000000000 +0000 @@ -2,7 +2,7 @@ directives to separate functions, converts others into explicit calls to the runtime library (libgomp) and so forth -Copyright (C) 2005-2018 Free Software Foundation, Inc. +Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -2076,6 +2076,11 @@ t = fold_build2 (fd->loops[i].cond_code, boolean_type_node, v, t); stmt = gimple_build_cond_empty (t); gsi_insert_after (&gsi, stmt, GSI_CONTINUE_LINKING); + if (walk_tree (gimple_cond_lhs_ptr (as_a (stmt)), + expand_omp_regimplify_p, NULL, NULL) + || walk_tree (gimple_cond_rhs_ptr (as_a (stmt)), + expand_omp_regimplify_p, NULL, NULL)) + gimple_regimplify_operands (stmt, &gsi); e = make_edge (bb, body_bb, EDGE_TRUE_VALUE); e->probability = profile_probability::guessed_always ().apply_scale (7, 8); } @@ -3209,20 +3214,21 @@ if (fd->ordered && counts[fd->collapse - 1] == NULL_TREE) { + tree tem; if (fd->collapse > 1) - t = fd->loop.v; + tem = fd->loop.v; else { - t = fold_build2 (MINUS_EXPR, TREE_TYPE (fd->loops[0].v), - fd->loops[0].v, fd->loops[0].n1); - t = fold_convert (fd->iter_type, t); + tem = fold_build2 (MINUS_EXPR, TREE_TYPE (fd->loops[0].v), + fd->loops[0].v, fd->loops[0].n1); + tem = fold_convert (fd->iter_type, tem); } tree aref = build4 (ARRAY_REF, fd->iter_type, counts[fd->ordered], size_zero_node, NULL_TREE, NULL_TREE); - t = force_gimple_operand_gsi (&gsi, t, true, NULL_TREE, - true, GSI_SAME_STMT); - expand_omp_build_assign (&gsi, aref, t); + tem = force_gimple_operand_gsi (&gsi, tem, true, NULL_TREE, + true, GSI_SAME_STMT); + expand_omp_build_assign (&gsi, aref, tem); } t = build2 (fd->loop.cond_code, boolean_type_node, @@ -7490,9 +7496,8 @@ /* Emit a library call to launch the offloading region, or do data transfers. */ - tree t1, t2, t3, t4, device, cond, depend, c, clauses; + tree t1, t2, t3, t4, depend, c, clauses; enum built_in_function start_ix; - location_t clause_loc; unsigned int flags_i = 0; switch (gimple_omp_target_kind (entry_stmt)) @@ -7536,49 +7541,63 @@ clauses = gimple_omp_target_clauses (entry_stmt); - /* By default, the value of DEVICE is GOMP_DEVICE_ICV (let runtime - library choose) and there is no conditional. */ - cond = NULL_TREE; - device = build_int_cst (integer_type_node, GOMP_DEVICE_ICV); - - c = omp_find_clause (clauses, OMP_CLAUSE_IF); - if (c) - cond = OMP_CLAUSE_IF_EXPR (c); - - c = omp_find_clause (clauses, OMP_CLAUSE_DEVICE); - if (c) + tree device = NULL_TREE; + location_t device_loc = UNKNOWN_LOCATION; + tree goacc_flags = NULL_TREE; + if (is_gimple_omp_oacc (entry_stmt)) { - /* Even if we pass it to all library function calls, it is currently only - defined/used for the OpenMP target ones. */ - gcc_checking_assert (start_ix == BUILT_IN_GOMP_TARGET - || start_ix == BUILT_IN_GOMP_TARGET_DATA - || start_ix == BUILT_IN_GOMP_TARGET_UPDATE - || start_ix == BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA); - - device = OMP_CLAUSE_DEVICE_ID (c); - clause_loc = OMP_CLAUSE_LOCATION (c); + /* By default, no GOACC_FLAGs are set. */ + goacc_flags = integer_zero_node; } else - clause_loc = gimple_location (entry_stmt); - - c = omp_find_clause (clauses, OMP_CLAUSE_NOWAIT); - if (c) - flags_i |= GOMP_TARGET_FLAG_NOWAIT; + { + c = omp_find_clause (clauses, OMP_CLAUSE_DEVICE); + if (c) + { + device = OMP_CLAUSE_DEVICE_ID (c); + device_loc = OMP_CLAUSE_LOCATION (c); + } + else + { + /* By default, the value of DEVICE is GOMP_DEVICE_ICV (let runtime + library choose). */ + device = build_int_cst (integer_type_node, GOMP_DEVICE_ICV); + device_loc = gimple_location (entry_stmt); + } - /* Ensure 'device' is of the correct type. */ - device = fold_convert_loc (clause_loc, integer_type_node, device); + c = omp_find_clause (clauses, OMP_CLAUSE_NOWAIT); + if (c) + flags_i |= GOMP_TARGET_FLAG_NOWAIT; + } - /* If we found the clause 'if (cond)', build - (cond ? device : GOMP_DEVICE_HOST_FALLBACK). */ + /* By default, there is no conditional. */ + tree cond = NULL_TREE; + c = omp_find_clause (clauses, OMP_CLAUSE_IF); + if (c) + cond = OMP_CLAUSE_IF_EXPR (c); + /* If we found the clause 'if (cond)', build: + OpenACC: goacc_flags = (cond ? goacc_flags : flags | GOACC_FLAG_HOST_FALLBACK) + OpenMP: device = (cond ? device : GOMP_DEVICE_HOST_FALLBACK) */ if (cond) { + tree *tp; + if (is_gimple_omp_oacc (entry_stmt)) + tp = &goacc_flags; + else + { + /* Ensure 'device' is of the correct type. */ + device = fold_convert_loc (device_loc, integer_type_node, device); + + tp = &device; + } + cond = gimple_boolify (cond); basic_block cond_bb, then_bb, else_bb; edge e; tree tmp_var; - tmp_var = create_tmp_var (TREE_TYPE (device)); + tmp_var = create_tmp_var (TREE_TYPE (*tp)); if (offloaded) e = split_block_after_labels (new_bb); else @@ -7601,13 +7620,20 @@ gsi_insert_after (&gsi, stmt, GSI_CONTINUE_LINKING); gsi = gsi_start_bb (then_bb); - stmt = gimple_build_assign (tmp_var, device); + stmt = gimple_build_assign (tmp_var, *tp); gsi_insert_after (&gsi, stmt, GSI_CONTINUE_LINKING); gsi = gsi_start_bb (else_bb); - stmt = gimple_build_assign (tmp_var, - build_int_cst (integer_type_node, - GOMP_DEVICE_HOST_FALLBACK)); + if (is_gimple_omp_oacc (entry_stmt)) + stmt = gimple_build_assign (tmp_var, + BIT_IOR_EXPR, + *tp, + build_int_cst (integer_type_node, + GOACC_FLAG_HOST_FALLBACK)); + else + stmt = gimple_build_assign (tmp_var, + build_int_cst (integer_type_node, + GOMP_DEVICE_HOST_FALLBACK)); gsi_insert_after (&gsi, stmt, GSI_CONTINUE_LINKING); make_edge (cond_bb, then_bb, EDGE_TRUE_VALUE); @@ -7617,14 +7643,17 @@ make_edge (then_bb, new_bb, EDGE_FALLTHRU); make_edge (else_bb, new_bb, EDGE_FALLTHRU); - device = tmp_var; + *tp = tmp_var; + gsi = gsi_last_nondebug_bb (new_bb); } else { gsi = gsi_last_nondebug_bb (new_bb); - device = force_gimple_operand_gsi (&gsi, device, true, NULL_TREE, - true, GSI_SAME_STMT); + + if (device != NULL_TREE) + device = force_gimple_operand_gsi (&gsi, device, true, NULL_TREE, + true, GSI_SAME_STMT); } t = gimple_omp_target_data_arg (entry_stmt); @@ -7648,7 +7677,17 @@ bool tagging = false; /* The maximum number used by any start_ix, without varargs. */ auto_vec args; - args.quick_push (device); + if (is_gimple_omp_oacc (entry_stmt)) + { + tree goacc_flags_m = fold_build1 (GOACC_FLAGS_MARSHAL_OP, + TREE_TYPE (goacc_flags), goacc_flags); + goacc_flags_m = force_gimple_operand_gsi (&gsi, goacc_flags_m, true, + NULL_TREE, true, + GSI_SAME_STMT); + args.quick_push (goacc_flags_m); + } + else + args.quick_push (device); if (offloaded) args.quick_push (build_fold_addr_expr (child_fn)); args.quick_push (t1); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-expand.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-expand.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-expand.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-expand.h 2019-01-02 08:05:17.000000000 +0000 @@ -2,7 +2,7 @@ directives to separate functions, converts others into explicit calls to the runtime library (libgomp) and so forth -Copyright (C) 2005-2018 Free Software Foundation, Inc. +Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-general.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-general.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-general.c 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-general.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,7 +1,7 @@ /* General types and functions that are uselful for processing of OpenMP, OpenACC and similar directivers at various stages of compilation. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-general.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-general.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-general.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-general.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,7 +1,7 @@ /* General types and functions that are uselful for processing of OpenMP, OpenACC and similar directivers at various stages of compilation. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-grid.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-grid.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-grid.c 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-grid.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Lowering and expansion of OpenMP directives for HSA GPU agents. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-grid.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-grid.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-grid.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-grid.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Lowering and expansion of OpenMP directives for HSA GPU agents. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-low.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-low.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-low.c 2018-12-04 09:51:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-low.c 2019-01-02 08:05:16.000000000 +0000 @@ -4,7 +4,7 @@ Contributed by Diego Novillo - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -7011,6 +7011,12 @@ *last = field; DECL_CHAIN (field) = ifield; last = &DECL_CHAIN (ifield); + DECL_CONTEXT (field) = record_type; + if (TYPE_ALIGN (record_type) < DECL_ALIGN (field)) + SET_TYPE_ALIGN (record_type, DECL_ALIGN (field)); + DECL_CONTEXT (ifield) = record_type; + if (TYPE_ALIGN (record_type) < DECL_ALIGN (ifield)) + SET_TYPE_ALIGN (record_type, DECL_ALIGN (ifield)); } for (int pass = 0; pass < 2; pass++) { @@ -7036,12 +7042,16 @@ else SET_DECL_ALIGN (field, TYPE_ALIGN (type)); DECL_CONTEXT (field) = record_type; + if (TYPE_ALIGN (record_type) < DECL_ALIGN (field)) + SET_TYPE_ALIGN (record_type, DECL_ALIGN (field)); *last = field; last = &DECL_CHAIN (field); tree bfield = build_decl (OMP_CLAUSE_LOCATION (c), FIELD_DECL, NULL_TREE, boolean_type_node); DECL_CONTEXT (bfield) = record_type; + if (TYPE_ALIGN (record_type) < DECL_ALIGN (bfield)) + SET_TYPE_ALIGN (record_type, DECL_ALIGN (bfield)); *last = bfield; last = &DECL_CHAIN (bfield); } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-low.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-low.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-low.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-low.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for openMP lowering directives. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-offload.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-offload.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-offload.c 2018-03-26 10:51:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-offload.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,7 +1,7 @@ /* Bits of OpenMP and OpenACC handling that is specific to device offloading and a lowering pass for OpenACC device directives. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -88,7 +88,7 @@ /* Return level at which oacc routine may spawn a partitioned loop, or -1 if it is not a routine (i.e. is an offload fn). */ -static int +int oacc_fn_attrib_level (tree attr) { tree pos = TREE_VALUE (attr); @@ -573,6 +573,13 @@ static int oacc_default_dims[GOMP_DIM_MAX]; static int oacc_min_dims[GOMP_DIM_MAX]; +int +oacc_get_default_dim (int dim) +{ + gcc_assert (0 <= dim && dim < GOMP_DIM_MAX); + return oacc_default_dims[dim]; +} + /* Parse the default dimension parameter. This is a set of :-separated optional compute dimensions. Each specified dimension is a positive integer. When device type support is added, it is @@ -823,7 +830,7 @@ } } -/* Dump OpenACC loops LOOP, its siblings and its children. */ +/* Dump OpenACC loop LOOP, its children, and its siblings. */ static void dump_oacc_loop (FILE *file, oacc_loop *loop, int depth) @@ -866,6 +873,31 @@ dump_oacc_loop (stderr, loop, 0); } +/* Provide diagnostics on OpenACC loop LOOP, its children, and its + siblings. */ + +static void +inform_oacc_loop (const oacc_loop *loop) +{ + const char *gang + = loop->mask & GOMP_DIM_MASK (GOMP_DIM_GANG) ? " gang" : ""; + const char *worker + = loop->mask & GOMP_DIM_MASK (GOMP_DIM_WORKER) ? " worker" : ""; + const char *vector + = loop->mask & GOMP_DIM_MASK (GOMP_DIM_VECTOR) ? " vector" : ""; + const char *seq = loop->mask == 0 ? " seq" : ""; + const dump_user_location_t loc + = dump_user_location_t::from_location_t (loop->loc); + dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, loc, + "assigned OpenACC%s%s%s%s loop parallelism\n", gang, worker, + vector, seq); + + if (loop->child) + inform_oacc_loop (loop->child); + if (loop->sibling) + inform_oacc_loop (loop->sibling); +} + /* DFS walk of basic blocks BB onwards, creating OpenACC loop structures as we go. By construction these loops are properly nested. */ @@ -1533,6 +1565,28 @@ dump_oacc_loop (dump_file, loops, 0); fprintf (dump_file, "\n"); } + if (dump_enabled_p ()) + { + oacc_loop *l = loops; + /* OpenACC kernels constructs are special: they currently don't use the + generic oacc_loop infrastructure. */ + if (is_oacc_kernels) + { + /* Create a fake oacc_loop for diagnostic purposes. */ + l = new_oacc_loop_raw (NULL, + DECL_SOURCE_LOCATION (current_function_decl)); + l->mask = used_mask; + } + else + { + /* Skip the outermost, dummy OpenACC loop */ + l = l->child; + } + if (l) + inform_oacc_loop (l); + if (is_oacc_kernels) + free_oacc_loop (l); + } /* Offloaded targets may introduce new basic blocks, which require dominance information to update SSA. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-offload.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-offload.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-offload.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-offload.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,7 +1,7 @@ /* Bits of OpenMP and OpenACC handling that is specific to device offloading and a lowering pass for OpenACC device directives. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -22,6 +22,9 @@ #ifndef GCC_OMP_DEVICE_H #define GCC_OMP_DEVICE_H +extern int oacc_get_default_dim (int dim); +extern int oacc_fn_attrib_level (tree attr); + extern GTY(()) vec *offload_funcs; extern GTY(()) vec *offload_vars; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-simd-clone.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-simd-clone.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-simd-clone.c 2018-11-22 10:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-simd-clone.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* OMP constructs' SIMD clone supporting code. -Copyright (C) 2005-2018 Free Software Foundation, Inc. +Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-simd-clone.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-simd-clone.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/omp-simd-clone.h 2018-02-13 10:57:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/omp-simd-clone.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* OMP constructs' SIMD clone supporting code. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/optabs.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/optabs.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/optabs.c 2018-12-04 09:51:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/optabs.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Expand the basic unary and binary arithmetic operations, for GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -256,6 +256,7 @@ enum insn_code icode; int nops = TREE_CODE_LENGTH (ops->code); int op; + bool sbool = false; oprnd0 = ops->op0; tmode0 = TYPE_MODE (TREE_TYPE (oprnd0)); @@ -265,6 +266,22 @@ for these ops. */ widen_pattern_optab = optab_for_tree_code (ops->code, ops->type, optab_default); + else if ((ops->code == VEC_UNPACK_HI_EXPR + || ops->code == VEC_UNPACK_LO_EXPR) + && VECTOR_BOOLEAN_TYPE_P (ops->type) + && VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (oprnd0)) + && TYPE_MODE (ops->type) == TYPE_MODE (TREE_TYPE (oprnd0)) + && SCALAR_INT_MODE_P (TYPE_MODE (ops->type))) + { + /* For VEC_UNPACK_{LO,HI}_EXPR if the mode of op0 and result is + the same scalar mode for VECTOR_BOOLEAN_TYPE_P vectors, use + vec_unpacks_sbool_{lo,hi}_optab, so that we can pass in + the pattern number of elements in the wider vector. */ + widen_pattern_optab + = (ops->code == VEC_UNPACK_HI_EXPR + ? vec_unpacks_sbool_hi_optab : vec_unpacks_sbool_lo_optab); + sbool = true; + } else widen_pattern_optab = optab_for_tree_code (ops->code, TREE_TYPE (oprnd0), optab_default); @@ -282,6 +299,12 @@ oprnd1 = ops->op1; tmode1 = TYPE_MODE (TREE_TYPE (oprnd1)); } + else if (sbool) + { + nops = 2; + op1 = GEN_INT (TYPE_VECTOR_SUBPARTS (TREE_TYPE (oprnd0)).to_constant ()); + tmode1 = tmode0; + } /* The last operand is of a wider mode than the rest of the operands. */ if (nops == 2) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/optabs.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/optabs.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/optabs.def 2018-07-13 06:43:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/optabs.def 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for operation tables, or "optabs". - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -273,17 +273,22 @@ OPTAB_D (nearbyint_optab, "nearbyint$a2") OPTAB_D (acos_optab, "acos$a2") +OPTAB_D (acosh_optab, "acosh$a2") OPTAB_D (asin_optab, "asin$a2") +OPTAB_D (asinh_optab, "asinh$a2") OPTAB_D (atan2_optab, "atan2$a3") OPTAB_D (atan_optab, "atan$a2") +OPTAB_D (atanh_optab, "atanh$a2") OPTAB_D (copysign_optab, "copysign$F$a3") OPTAB_D (xorsign_optab, "xorsign$F$a3") OPTAB_D (cos_optab, "cos$a2") +OPTAB_D (cosh_optab, "cosh$a2") OPTAB_D (exp10_optab, "exp10$a2") OPTAB_D (exp2_optab, "exp2$a2") OPTAB_D (exp_optab, "exp$a2") OPTAB_D (expm1_optab, "expm1$a2") OPTAB_D (fmod_optab, "fmod$a3") +OPTAB_D (hypot_optab, "hypot$a3") OPTAB_D (ilogb_optab, "ilogb$a2") OPTAB_D (isinf_optab, "isinf$a2") OPTAB_D (ldexp_optab, "ldexp$a3") @@ -300,7 +305,9 @@ OPTAB_D (significand_optab, "significand$a2") OPTAB_D (sin_optab, "sin$a2") OPTAB_D (sincos_optab, "sincos$a3") +OPTAB_D (sinh_optab, "sinh$a2") OPTAB_D (tan_optab, "tan$a2") +OPTAB_D (tanh_optab, "tanh$a2") /* C99 implementations of fmax/fmin. */ OPTAB_D (fmax_optab, "fmax$a3") @@ -334,6 +341,7 @@ OPTAB_D (vec_pack_ssat_optab, "vec_pack_ssat_$a") OPTAB_D (vec_pack_trunc_optab, "vec_pack_trunc_$a") OPTAB_D (vec_pack_ufix_trunc_optab, "vec_pack_ufix_trunc_$a") +OPTAB_D (vec_pack_sbool_trunc_optab, "vec_pack_sbool_trunc_$a") OPTAB_D (vec_pack_usat_optab, "vec_pack_usat_$a") OPTAB_D (vec_packs_float_optab, "vec_packs_float_$a") OPTAB_D (vec_packu_float_optab, "vec_packu_float_$a") @@ -349,6 +357,8 @@ OPTAB_D (vec_unpacks_float_lo_optab, "vec_unpacks_float_lo_$a") OPTAB_D (vec_unpacks_hi_optab, "vec_unpacks_hi_$a") OPTAB_D (vec_unpacks_lo_optab, "vec_unpacks_lo_$a") +OPTAB_D (vec_unpacks_sbool_hi_optab, "vec_unpacks_sbool_hi_$a") +OPTAB_D (vec_unpacks_sbool_lo_optab, "vec_unpacks_sbool_lo_$a") OPTAB_D (vec_unpacku_float_hi_optab, "vec_unpacku_float_hi_$a") OPTAB_D (vec_unpacku_float_lo_optab, "vec_unpacku_float_lo_$a") OPTAB_D (vec_unpacku_hi_optab, "vec_unpacku_hi_$a") diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/optabs.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/optabs.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/optabs.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/optabs.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for code generation pass of GNU compiler. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/optabs-libfuncs.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/optabs-libfuncs.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/optabs-libfuncs.c 2018-11-01 16:06:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/optabs-libfuncs.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Mapping from optabs to underlying library functions - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/optabs-libfuncs.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/optabs-libfuncs.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/optabs-libfuncs.h 2018-11-01 16:06:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/optabs-libfuncs.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Mapping from optabs to underlying library functions - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/optabs-query.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/optabs-query.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/optabs-query.c 2018-03-06 16:37:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/optabs-query.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* IR-agnostic target query functions relating to optabs - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/optabs-query.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/optabs-query.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/optabs-query.h 2018-01-14 10:48:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/optabs-query.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* IR-agnostic target query functions relating to optabs - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/optabs-tree.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/optabs-tree.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/optabs-tree.c 2018-06-17 03:58:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/optabs-tree.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Tree-based target query functions relating to optabs - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/optabs-tree.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/optabs-tree.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/optabs-tree.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/optabs-tree.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Tree-based target query functions relating to optabs - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/optc-gen.awk gcc-snapshot-20190102/=unpacked-tar1=/gcc/optc-gen.awk --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/optc-gen.awk 2018-09-08 14:39:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/optc-gen.awk 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # Contributed by Kelley Cook, June 2004. # Original code from Neil Booth, May 2003. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/optc-save-gen.awk gcc-snapshot-20190102/=unpacked-tar1=/gcc/optc-save-gen.awk --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/optc-save-gen.awk 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/optc-save-gen.awk 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # Contributed by Kelley Cook, June 2004. # Original code from Neil Booth, May 2003. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/opt-functions.awk gcc-snapshot-20190102/=unpacked-tar1=/gcc/opt-functions.awk --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/opt-functions.awk 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/opt-functions.awk 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # Contributed by Kelley Cook, June 2004. # Original code from Neil Booth, May 2003. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/opt-gather.awk gcc-snapshot-20190102/=unpacked-tar1=/gcc/opt-gather.awk --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/opt-gather.awk 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/opt-gather.awk 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # Contributed by Kelley Cook, June 2004. # Original code from Neil Booth, May 2003. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/opth-gen.awk gcc-snapshot-20190102/=unpacked-tar1=/gcc/opth-gen.awk --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/opth-gen.awk 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/opth-gen.awk 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # Contributed by Kelley Cook, June 2004. # Original code from Neil Booth, May 2003. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/opt-include.awk gcc-snapshot-20190102/=unpacked-tar1=/gcc/opt-include.awk --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/opt-include.awk 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/opt-include.awk 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # Contributed by Michael Meissner (meissner@linux.vnet.ibm.com) # # This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/optinfo.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/optinfo.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/optinfo.cc 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/optinfo.cc 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Optimization information. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/optinfo-emit-json.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/optinfo-emit-json.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/optinfo-emit-json.cc 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/optinfo-emit-json.cc 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Emit optimization information as JSON files. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/optinfo-emit-json.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/optinfo-emit-json.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/optinfo-emit-json.h 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/optinfo-emit-json.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Emit optimization information as JSON files. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/optinfo.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/optinfo.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/optinfo.h 2018-11-20 10:31:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/optinfo.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Optimization information. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/opt-problem.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/opt-problem.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/opt-problem.cc 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/opt-problem.cc 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Rich optional information on why an optimization wasn't possible. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/opt-problem.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/opt-problem.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/opt-problem.h 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/opt-problem.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Rich information on why an optimization wasn't possible. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by David Malcolm . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/opt-read.awk gcc-snapshot-20190102/=unpacked-tar1=/gcc/opt-read.awk --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/opt-read.awk 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/opt-read.awk 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # Contributed by Kelley Cook, June 2004. # Original code from Neil Booth, May 2003. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/opts.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/opts.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/opts.c 2018-11-29 22:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/opts.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Command line option handling. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Neil Booth. This file is part of GCC. @@ -556,6 +556,7 @@ { OPT_LEVELS_3_PLUS, OPT_ftree_slp_vectorize, NULL, 1 }, { OPT_LEVELS_3_PLUS, OPT_funswitch_loops, NULL, 1 }, { OPT_LEVELS_3_PLUS, OPT_fvect_cost_model_, NULL, VECT_COST_MODEL_DYNAMIC }, + { OPT_LEVELS_3_PLUS, OPT_fversion_loops_for_strides, NULL, 1 }, /* -Ofast adds optimizations to -O3. */ { OPT_LEVELS_FAST, OPT_ffast_math, NULL, 1 }, diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/opts-common.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/opts-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/opts-common.c 2018-08-22 07:30:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/opts-common.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Command line option handling. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/opts-diagnostic.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/opts-diagnostic.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/opts-diagnostic.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/opts-diagnostic.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Command line option handling. Interactions with diagnostics code. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/opts-global.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/opts-global.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/opts-global.c 2018-01-23 00:38:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/opts-global.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Command line option handling. Code involving global state that should not be shared with the driver. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/opts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/opts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/opts.h 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/opts.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Command line option handling. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/opt-suggestions.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/opt-suggestions.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/opt-suggestions.c 2018-10-02 07:26:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/opt-suggestions.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Provide option suggestion for --complete option and a misspelled used by a user. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/opt-suggestions.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/opt-suggestions.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/opt-suggestions.h 2018-09-08 14:39:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/opt-suggestions.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Provide suggestions to handle misspelled options, and implement the --complete option for auto-completing options from a prefix. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/output.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/output.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/output.h 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/output.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Declarations for insn-output.c and other code to write to asm_out_file. These functions are defined in final.c, and varasm.c. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/params.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/params.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/params.c 2018-10-15 11:36:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/params.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* params.c - Run-time parameters. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Written by Mark Mitchell . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/params.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/params.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/params.def 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/params.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* params.def - Run-time parameters. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Written by Mark Mitchell . This file is part of GCC. @@ -1365,6 +1365,19 @@ "True if a non-short-circuit operation is optimal.", -1, -1, 1) +DEFPARAM(PARAM_LOOP_VERSIONING_MAX_INNER_INSNS, + "loop-versioning-max-inner-insns", + "The maximum number of instructions in an inner loop that is being" + " considered for versioning.", + 200, 0, 0) + +DEFPARAM(PARAM_LOOP_VERSIONING_MAX_OUTER_INSNS, + "loop-versioning-max-outer-insns", + "The maximum number of instructions in an outer loop that is being" + " considered for versioning, on top of the instructions in inner" + " loops.", + 100, 0, 0) + /* Local variables: diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/params-enum.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/params-enum.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/params-enum.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/params-enum.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* params-enums.h - Run-time parameter enums. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/params.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/params.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/params.h 2018-05-28 08:24:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/params.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* params.h - Run-time parameters. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Written by Mark Mitchell . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/params-list.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/params-list.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/params-list.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/params-list.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* File used to generate params.list - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/params-options.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/params-options.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/params-options.h 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/params-options.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* File used to generate params.list - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/passes.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/passes.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/passes.c 2018-11-22 10:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/passes.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Top level of GCC compilers (cc1, cc1plus, etc.) - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/passes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/passes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/passes.def 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/passes.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Description of pass structure - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -265,6 +265,7 @@ NEXT_PASS (pass_tree_unswitch); NEXT_PASS (pass_scev_cprop); NEXT_PASS (pass_loop_split); + NEXT_PASS (pass_loop_versioning); NEXT_PASS (pass_loop_jam); /* All unswitching, final value replacement and splitting can expose empty loops. Remove them now. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/pass_manager.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/pass_manager.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/pass_manager.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/pass_manager.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* pass_manager.h - The pipeline of optimization passes - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/plugin.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/plugin.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/plugin.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/plugin.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Support for GCC plugin mechanism. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/plugin.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/plugin.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/plugin.def 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/plugin.def 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* This file contains the definitions for plugin events in GCC. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/plugin.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/plugin.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/plugin.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/plugin.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for internal GCC plugin mechanism. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/po/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/gcc/po/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/po/ChangeLog 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/po/ChangeLog 2019-01-02 08:05:17.000000000 +0000 @@ -1,3 +1,7 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + 2018-10-28 Iain Buclaw * EXCLUDES: Add sources from d/dmd. @@ -2633,7 +2637,7 @@ libiberty/include directories. -Copyright (C) 1999-2018 Free Software Foundation, Inc. +Copyright (C) 1999-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright @@ -4683,7 +4687,7 @@ libiberty/include directories. -Copyright (C) 1999-2018 Free Software Foundation, Inc. +Copyright (C) 1999-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/po/EXCLUDES gcc-snapshot-20190102/=unpacked-tar1=/gcc/po/EXCLUDES --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/po/EXCLUDES 2018-10-29 10:34:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/po/EXCLUDES 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/po/exgettext gcc-snapshot-20190102/=unpacked-tar1=/gcc/po/exgettext --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/po/exgettext 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/po/exgettext 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Wrapper around gettext for programs using the msgid convention. -# Copyright (C) 1998-2018 Free Software Foundation, Inc. +# Copyright (C) 1998-2019 Free Software Foundation, Inc. # Written by Paul Eggert . # Revised by Zack Weinberg for no-POTFILES operation. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/poly-int.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/poly-int.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/poly-int.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/poly-int.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Polynomial integer classes. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/poly-int-types.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/poly-int-types.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/poly-int-types.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/poly-int-types.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Typedefs for polynomial integers used in GCC. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/postreload.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/postreload.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/postreload.c 2018-08-12 11:28:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/postreload.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Perform simple optimizations to clean up the result of reload. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/postreload-gcse.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/postreload-gcse.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/postreload-gcse.c 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/postreload-gcse.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Post reload partially redundant load elimination - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/predict.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/predict.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/predict.c 2018-11-29 22:58:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/predict.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Branch prediction routines for the GNU compiler. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -878,11 +878,18 @@ profile_probability prob = profile_probability::from_reg_br_prob_base (p); profile_probability remainder = prob.invert (); + remainder -= profile_probability::very_unlikely () + .apply_scale (unlikely_count, 1); + int count = nedges - unlikely_count - 1; + gcc_assert (count >= 0); + profile_probability even = remainder.apply_scale (1, count); if (prediction->ep_edge == e) e->probability = prob; + else if (unlikely_edges != NULL && unlikely_edges->contains (e)) + e->probability = profile_probability::very_unlikely (); else - e->probability = remainder.apply_scale (1, nedges - 1); + e->probability = even; } else e->probability = profile_probability::never (); @@ -1217,10 +1224,12 @@ if (preds) for (pred = *preds; pred; pred = pred->ep_next) { - if (pred->ep_probability <= PROB_VERY_UNLIKELY) + if (pred->ep_probability <= PROB_VERY_UNLIKELY + || pred->ep_predictor == PRED_COLD_LABEL) unlikely_edges.add (pred->ep_edge); if (pred->ep_probability >= PROB_VERY_LIKELY - || pred->ep_predictor == PRED_BUILTIN_EXPECT) + || pred->ep_predictor == PRED_BUILTIN_EXPECT + || pred->ep_predictor == PRED_HOT_LABEL) likely_edges.add (pred); } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/predict.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/predict.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/predict.def 2018-08-12 11:28:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/predict.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for the branch prediction routines in the GNU compiler. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -78,6 +78,14 @@ "__builtin_expect_with_probability", PROB_UNINITIALIZED, PRED_FLAG_FIRST_MATCH) +/* Branches to hot labels are likely. */ +DEF_PREDICTOR (PRED_HOT_LABEL, "hot label", HITRATE (90), + PRED_FLAG_FIRST_MATCH) + +/* Branches to cold labels are extremely unlikely. */ +DEF_PREDICTOR (PRED_COLD_LABEL, "cold label", HITRATE (90), + PRED_FLAG_FIRST_MATCH) + /* Use number of loop iterations guessed by the contents of the loop. */ DEF_PREDICTOR (PRED_LOOP_ITERATIONS_GUESSED, "guessed loop iterations", PROB_UNINITIALIZED, PRED_FLAG_FIRST_MATCH) @@ -171,13 +179,6 @@ DEF_PREDICTOR (PRED_LOOP_GUARD_WITH_RECURSION, "loop guard with recursion", HITRATE (85), 0) -/* Branches to hot labels are likely. */ -DEF_PREDICTOR (PRED_HOT_LABEL, "hot label", HITRATE (85), 0) - -/* Branches to cold labels are extremely unlikely. */ -DEF_PREDICTOR (PRED_COLD_LABEL, "cold label", PROB_VERY_LIKELY, - PRED_FLAG_FIRST_MATCH) - /* The following predictors are used in Fortran. */ /* Branch leading to an integer overflow are extremely unlikely. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/predict.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/predict.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/predict.h 2018-01-23 00:38:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/predict.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for branch prediction routines in the GNU compiler. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/prefix.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/prefix.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/prefix.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/prefix.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Utility to update paths from internal to external forms. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/prefix.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/prefix.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/prefix.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/prefix.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Provide prototypes for functions exported from prefix.c. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/pretty-print.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/pretty-print.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/pretty-print.c 2018-12-04 09:51:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/pretty-print.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Various declarations for language-independent pretty-print subroutines. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Gabriel Dos Reis This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/pretty-print.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/pretty-print.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/pretty-print.h 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/pretty-print.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Various declarations for language-independent pretty-print subroutines. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Gabriel Dos Reis This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/print-rtl.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/print-rtl.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/print-rtl.c 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/print-rtl.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Print RTL for GCC. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/print-rtl-function.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/print-rtl-function.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/print-rtl-function.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/print-rtl-function.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Print RTL functions for GCC. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/print-rtl.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/print-rtl.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/print-rtl.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/print-rtl.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Print RTL for GCC. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/print-tree.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/print-tree.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/print-tree.c 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/print-tree.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Prints out tree in human readable form - GCC - Copyright (C) 1990-2018 Free Software Foundation, Inc. + Copyright (C) 1990-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/print-tree.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/print-tree.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/print-tree.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/print-tree.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations for printing trees in human readable form - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/profile.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/profile.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/profile.c 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/profile.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Calculate branch probabilities, and basic block execution counts. - Copyright (C) 1990-2018 Free Software Foundation, Inc. + Copyright (C) 1990-2019 Free Software Foundation, Inc. Contributed by James E. Wilson, UC Berkeley/Cygnus Support; based on some ideas from Dain Samples of UC Berkeley. Further mangling by Bob Manson, Cygnus Support. @@ -218,7 +218,7 @@ } counts = get_coverage_counts (GCOV_COUNTER_ARCS, cfg_checksum, - lineno_checksum); + lineno_checksum, num_edges); if (!counts) return NULL; @@ -780,7 +780,8 @@ histogram_counts[t] = get_coverage_counts (COUNTER_FOR_HIST_TYPE (t), cfg_checksum, - lineno_checksum); + lineno_checksum, + n_histogram_counters[t]); if (histogram_counts[t]) any = 1; act_count[t] = histogram_counts[t]; @@ -962,6 +963,25 @@ return e2->dest->index - e1->dest->index; } +/* Only read execution count for thunks. */ + +void +read_thunk_profile (struct cgraph_node *node) +{ + tree old = current_function_decl; + current_function_decl = node->decl; + gcov_type *counts = get_coverage_counts (GCOV_COUNTER_ARCS, 0, 0, 1); + if (counts) + { + node->callees->count = node->count + = profile_count::from_gcov_type (counts[0]); + free (counts); + } + current_function_decl = old; + return; +} + + /* Instrument and/or analyze program behavior based on program the CFG. This function creates a representation of the control flow graph (of @@ -982,7 +1002,7 @@ Main entry point of this file. */ void -branch_prob (void) +branch_prob (bool thunk) { basic_block bb; unsigned i; @@ -999,118 +1019,121 @@ hash_set streamed_locations; - /* We can't handle cyclic regions constructed using abnormal edges. - To avoid these we replace every source of abnormal edge by a fake - edge from entry node and every destination by fake edge to exit. - This keeps graph acyclic and our calculation exact for all normal - edges except for exit and entrance ones. - - We also add fake exit edges for each call and asm statement in the - basic, since it may not return. */ - - FOR_EACH_BB_FN (bb, cfun) + if (!thunk) { - int need_exit_edge = 0, need_entry_edge = 0; - int have_exit_edge = 0, have_entry_edge = 0; - edge e; - edge_iterator ei; + /* We can't handle cyclic regions constructed using abnormal edges. + To avoid these we replace every source of abnormal edge by a fake + edge from entry node and every destination by fake edge to exit. + This keeps graph acyclic and our calculation exact for all normal + edges except for exit and entrance ones. - /* Functions returning multiple times are not handled by extra edges. - Instead we simply allow negative counts on edges from exit to the - block past call and corresponding probabilities. We can't go - with the extra edges because that would result in flowgraph that - needs to have fake edges outside the spanning tree. */ + We also add fake exit edges for each call and asm statement in the + basic, since it may not return. */ - FOR_EACH_EDGE (e, ei, bb->succs) + FOR_EACH_BB_FN (bb, cfun) { - gimple_stmt_iterator gsi; - gimple *last = NULL; + int need_exit_edge = 0, need_entry_edge = 0; + int have_exit_edge = 0, have_entry_edge = 0; + edge e; + edge_iterator ei; + + /* Functions returning multiple times are not handled by extra edges. + Instead we simply allow negative counts on edges from exit to the + block past call and corresponding probabilities. We can't go + with the extra edges because that would result in flowgraph that + needs to have fake edges outside the spanning tree. */ - /* It may happen that there are compiler generated statements - without a locus at all. Go through the basic block from the - last to the first statement looking for a locus. */ - for (gsi = gsi_last_nondebug_bb (bb); - !gsi_end_p (gsi); - gsi_prev_nondebug (&gsi)) + FOR_EACH_EDGE (e, ei, bb->succs) { - last = gsi_stmt (gsi); - if (!RESERVED_LOCATION_P (gimple_location (last))) - break; - } + gimple_stmt_iterator gsi; + gimple *last = NULL; + + /* It may happen that there are compiler generated statements + without a locus at all. Go through the basic block from the + last to the first statement looking for a locus. */ + for (gsi = gsi_last_nondebug_bb (bb); + !gsi_end_p (gsi); + gsi_prev_nondebug (&gsi)) + { + last = gsi_stmt (gsi); + if (!RESERVED_LOCATION_P (gimple_location (last))) + break; + } - /* Edge with goto locus might get wrong coverage info unless - it is the only edge out of BB. - Don't do that when the locuses match, so - if (blah) goto something; - is not computed twice. */ - if (last - && gimple_has_location (last) - && !RESERVED_LOCATION_P (e->goto_locus) - && !single_succ_p (bb) - && (LOCATION_FILE (e->goto_locus) - != LOCATION_FILE (gimple_location (last)) - || (LOCATION_LINE (e->goto_locus) - != LOCATION_LINE (gimple_location (last))))) + /* Edge with goto locus might get wrong coverage info unless + it is the only edge out of BB. + Don't do that when the locuses match, so + if (blah) goto something; + is not computed twice. */ + if (last + && gimple_has_location (last) + && !RESERVED_LOCATION_P (e->goto_locus) + && !single_succ_p (bb) + && (LOCATION_FILE (e->goto_locus) + != LOCATION_FILE (gimple_location (last)) + || (LOCATION_LINE (e->goto_locus) + != LOCATION_LINE (gimple_location (last))))) + { + basic_block new_bb = split_edge (e); + edge ne = single_succ_edge (new_bb); + ne->goto_locus = e->goto_locus; + } + if ((e->flags & (EDGE_ABNORMAL | EDGE_ABNORMAL_CALL)) + && e->dest != EXIT_BLOCK_PTR_FOR_FN (cfun)) + need_exit_edge = 1; + if (e->dest == EXIT_BLOCK_PTR_FOR_FN (cfun)) + have_exit_edge = 1; + } + FOR_EACH_EDGE (e, ei, bb->preds) { - basic_block new_bb = split_edge (e); - edge ne = single_succ_edge (new_bb); - ne->goto_locus = e->goto_locus; + if ((e->flags & (EDGE_ABNORMAL | EDGE_ABNORMAL_CALL)) + && e->src != ENTRY_BLOCK_PTR_FOR_FN (cfun)) + need_entry_edge = 1; + if (e->src == ENTRY_BLOCK_PTR_FOR_FN (cfun)) + have_entry_edge = 1; } - if ((e->flags & (EDGE_ABNORMAL | EDGE_ABNORMAL_CALL)) - && e->dest != EXIT_BLOCK_PTR_FOR_FN (cfun)) - need_exit_edge = 1; - if (e->dest == EXIT_BLOCK_PTR_FOR_FN (cfun)) - have_exit_edge = 1; - } - FOR_EACH_EDGE (e, ei, bb->preds) - { - if ((e->flags & (EDGE_ABNORMAL | EDGE_ABNORMAL_CALL)) - && e->src != ENTRY_BLOCK_PTR_FOR_FN (cfun)) - need_entry_edge = 1; - if (e->src == ENTRY_BLOCK_PTR_FOR_FN (cfun)) - have_entry_edge = 1; - } - if (need_exit_edge && !have_exit_edge) - { - if (dump_file) - fprintf (dump_file, "Adding fake exit edge to bb %i\n", - bb->index); - make_edge (bb, EXIT_BLOCK_PTR_FOR_FN (cfun), EDGE_FAKE); - } - if (need_entry_edge && !have_entry_edge) - { - if (dump_file) - fprintf (dump_file, "Adding fake entry edge to bb %i\n", - bb->index); - make_edge (ENTRY_BLOCK_PTR_FOR_FN (cfun), bb, EDGE_FAKE); - /* Avoid bbs that have both fake entry edge and also some - exit edge. One of those edges wouldn't be added to the - spanning tree, but we can't instrument any of them. */ - if (have_exit_edge || need_exit_edge) + if (need_exit_edge && !have_exit_edge) { - gimple_stmt_iterator gsi; - gimple *first; - - gsi = gsi_start_nondebug_after_labels_bb (bb); - gcc_checking_assert (!gsi_end_p (gsi)); - first = gsi_stmt (gsi); - /* Don't split the bbs containing __builtin_setjmp_receiver - or ABNORMAL_DISPATCHER calls. These are very - special and don't expect anything to be inserted before - them. */ - if (is_gimple_call (first) - && (gimple_call_builtin_p (first, BUILT_IN_SETJMP_RECEIVER) - || (gimple_call_flags (first) & ECF_RETURNS_TWICE) - || (gimple_call_internal_p (first) - && (gimple_call_internal_fn (first) - == IFN_ABNORMAL_DISPATCHER)))) - continue; - if (dump_file) - fprintf (dump_file, "Splitting bb %i after labels\n", + fprintf (dump_file, "Adding fake exit edge to bb %i\n", bb->index); - split_block_after_labels (bb); + make_edge (bb, EXIT_BLOCK_PTR_FOR_FN (cfun), EDGE_FAKE); + } + if (need_entry_edge && !have_entry_edge) + { + if (dump_file) + fprintf (dump_file, "Adding fake entry edge to bb %i\n", + bb->index); + make_edge (ENTRY_BLOCK_PTR_FOR_FN (cfun), bb, EDGE_FAKE); + /* Avoid bbs that have both fake entry edge and also some + exit edge. One of those edges wouldn't be added to the + spanning tree, but we can't instrument any of them. */ + if (have_exit_edge || need_exit_edge) + { + gimple_stmt_iterator gsi; + gimple *first; + + gsi = gsi_start_nondebug_after_labels_bb (bb); + gcc_checking_assert (!gsi_end_p (gsi)); + first = gsi_stmt (gsi); + /* Don't split the bbs containing __builtin_setjmp_receiver + or ABNORMAL_DISPATCHER calls. These are very + special and don't expect anything to be inserted before + them. */ + if (is_gimple_call (first) + && (gimple_call_builtin_p (first, BUILT_IN_SETJMP_RECEIVER) + || (gimple_call_flags (first) & ECF_RETURNS_TWICE) + || (gimple_call_internal_p (first) + && (gimple_call_internal_fn (first) + == IFN_ABNORMAL_DISPATCHER)))) + continue; + + if (dump_file) + fprintf (dump_file, "Splitting bb %i after labels\n", + bb->index); + split_block_after_labels (bb); + } } } } @@ -1142,7 +1165,18 @@ on the spanning tree. We insert as many abnormal and critical edges as possible to minimize number of edge splits necessary. */ - find_spanning_tree (el); + if (!thunk) + find_spanning_tree (el); + else + { + edge e; + edge_iterator ei; + /* Keep only edge from entry block to be instrumented. */ + FOR_EACH_BB_FN (bb, cfun) + FOR_EACH_EDGE (e, ei, bb->succs) + EDGE_INFO (e)->ignore = true; + } + /* Fake edges that are not on the tree will not be instrumented, so mark them ignored. */ @@ -1182,8 +1216,17 @@ the checksum in only once place, since it depends on the shape of the control flow which can change during various transformations. */ - cfg_checksum = coverage_compute_cfg_checksum (cfun); - lineno_checksum = coverage_compute_lineno_checksum (); + if (thunk) + { + /* At stream in time we do not have CFG, so we can not do checksums. */ + cfg_checksum = 0; + lineno_checksum = 0; + } + else + { + cfg_checksum = coverage_compute_cfg_checksum (cfun); + lineno_checksum = coverage_compute_lineno_checksum (); + } /* Write the data from which gcov can reconstruct the basic block graph and function line numbers (the gcno file). */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/profile-count.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/profile-count.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/profile-count.c 2018-12-04 09:51:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/profile-count.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Profile counter container type. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/profile-count.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/profile-count.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/profile-count.h 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/profile-count.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Profile counter container type. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/profile.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/profile.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/profile.h 2018-10-02 07:26:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/profile.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Header file for minimum-cost maximal flow routines used to smooth basic block and edge frequency counts. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Paul Yuan (yingbo.com@gmail.com) and Vinodha Ramasamy (vinodha@google.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/read-md.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/read-md.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/read-md.c 2018-08-12 11:28:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/read-md.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* MD reader for GCC. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/read-md.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/read-md.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/read-md.h 2018-08-12 11:28:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/read-md.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* MD reader definitions. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/README.Portability gcc-snapshot-20190102/=unpacked-tar1=/gcc/README.Portability --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/README.Portability 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/README.Portability 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -Copyright (C) 2000-2018 Free Software Foundation, Inc. +Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is intended to contain a few notes about writing C code within GCC so that it compiles without error on the full range of diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/read-rtl.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/read-rtl.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/read-rtl.c 2018-11-22 10:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/read-rtl.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* RTL reader for GCC. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/read-rtl-function.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/read-rtl-function.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/read-rtl-function.c 2018-10-15 11:36:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/read-rtl-function.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* read-rtl-function.c - Reader for RTL function dumps - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/read-rtl-function.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/read-rtl-function.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/read-rtl-function.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/read-rtl-function.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* read-rtl-function.h - Reader for RTL function dumps - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/real.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/real.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/real.c 2018-10-15 11:36:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/real.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* real.c - software floating point emulation. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. Contributed by Stephen L. Moshier (moshier@world.std.com). Re-written by Richard Henderson diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/real.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/real.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/real.h 2018-10-15 11:36:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/real.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of floating-point access for GNU compiler. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/realmpfr.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/realmpfr.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/realmpfr.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/realmpfr.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Conversion routines from GCC internal float representation to MPFR. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/realmpfr.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/realmpfr.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/realmpfr.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/realmpfr.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of floating-point conversion from compiler internal format to MPFR. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/recog.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/recog.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/recog.c 2018-08-12 11:28:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/recog.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines used by or related to instruction recognition. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/recog.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/recog.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/recog.h 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/recog.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations for interface to insn recognizer and insn-output.c. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ree.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ree.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ree.c 2018-01-14 10:48:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ree.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Redundant Extension Elimination pass for the GNU compiler. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Ilya Enkovich (ilya.enkovich@intel.com) Based on the Redundant Zero-extension elimination pass contributed by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/regcprop.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/regcprop.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/regcprop.c 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/regcprop.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Copy propagation on hard registers for the GNU compiler. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/regcprop.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/regcprop.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/regcprop.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/regcprop.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Copy propagation on hard registers. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/reginfo.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/reginfo.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/reginfo.c 2018-08-22 07:31:01.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/reginfo.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Compute different info about registers. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/reg-notes.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/reg-notes.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/reg-notes.def 2018-02-20 06:32:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/reg-notes.def 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Register note definitions. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/regrename.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/regrename.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/regrename.c 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/regrename.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Register renaming for the GNU compiler. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/regrename.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/regrename.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/regrename.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/regrename.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* This file contains definitions for the register renamer. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/regset.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/regset.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/regset.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/regset.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Define regsets. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/regs.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/regs.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/regs.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/regs.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Define per-register tables for data flow info and register allocation. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/reg-stack.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/reg-stack.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/reg-stack.c 2018-10-02 07:26:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/reg-stack.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Register to Stack convert for GNU compiler. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/regstat.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/regstat.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/regstat.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/regstat.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Scanning of rtl for dataflow analysis. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Kenneth Zadeck (zadeck@naturalbridge.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/reload1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/reload1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/reload1.c 2018-08-12 11:28:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/reload1.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Reload pseudo regs into hard regs for insns that require hard regs. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/reload.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/reload.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/reload.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/reload.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Search an insn for pseudo regs that must be in hard regs and are not. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/reload.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/reload.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/reload.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/reload.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Communication between reload.c, reload1.c and the rest of compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/reorg.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/reorg.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/reorg.c 2018-10-02 10:52:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/reorg.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Perform instruction reorganizations for delay slot filling. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu). Hacked by Michael Tiemann (tiemann@cygnus.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/resource.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/resource.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/resource.c 2018-08-12 11:28:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/resource.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for computing resource usage of specific insns. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/resource.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/resource.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/resource.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/resource.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for computing resource usage of specific insns. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/REVISION gcc-snapshot-20190102/=unpacked-tar1=/gcc/REVISION --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/REVISION 2018-12-14 05:16:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/REVISION 2019-01-02 08:05:22.000000000 +0000 @@ -1 +1 @@ -[trunk revision 267118] +[trunk revision 267505] diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtlanal.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtlanal.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtlanal.c 2018-11-20 10:31:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtlanal.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Analyze RTL for GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtl.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtl.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtl.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtl.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* RTL utility routines. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtl.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtl.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtl.def 2018-10-02 07:26:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtl.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,7 +1,7 @@ /* This file contains the definitions and documentation for the Register Transfer Expressions (rtx's) that make up the Register Transfer Language (rtl) used in the Back End of the GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtl-error.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtl-error.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtl-error.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtl-error.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* RTL specific diagnostic subroutines for GCC - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Gabriel Dos Reis This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtl-error.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtl-error.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtl-error.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtl-error.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* RTL specific diagnostic subroutines for GCC - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtl.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtl.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtl.h 2018-11-28 13:52:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtl.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Register Transfer Language (RTL) definitions for GCC - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtlhash.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtlhash.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtlhash.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtlhash.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* RTL hash functions. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtlhash.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtlhash.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtlhash.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtlhash.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Register Transfer Language (RTL) hash functions. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtlhooks.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtlhooks.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtlhooks.c 2018-04-23 08:51:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtlhooks.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic hooks for the RTL middle-end. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtlhooks-def.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtlhooks-def.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtlhooks-def.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtlhooks-def.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Default macros to initialize an rtl_hooks data structure. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtl-iter.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtl-iter.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtl-iter.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtl-iter.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* RTL iterators - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtl-tests.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtl-tests.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtl-tests.c 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtl-tests.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Unit tests for RTL-handling. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtx-vector-builder.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtx-vector-builder.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtx-vector-builder.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtx-vector-builder.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* A class for building vector rtx constants. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtx-vector-builder.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtx-vector-builder.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/rtx-vector-builder.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/rtx-vector-builder.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* A class for building vector rtx constants. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/run-rtl-passes.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/run-rtl-passes.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/run-rtl-passes.c 2018-01-04 22:41:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/run-rtl-passes.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* run-rtl-passes.c - Run RTL passes directly from frontend - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/run-rtl-passes.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/run-rtl-passes.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/run-rtl-passes.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/run-rtl-passes.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* run-rtl-passes.h - Run a subset of the RTL passes - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sancov.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/sancov.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sancov.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sancov.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Code coverage instrumentation for fuzzing. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Dmitry Vyukov and Wish Wu diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sanitizer.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/sanitizer.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sanitizer.def 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sanitizer.def 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* This file contains the definitions and documentation for the Address Sanitizer and Thread Sanitizer builtins used in the GNU compiler. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sanopt.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/sanopt.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sanopt.c 2018-09-08 14:39:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sanopt.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Optimize and expand sanitizer functions. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Marek Polacek This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sbitmap.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/sbitmap.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sbitmap.c 2018-01-23 13:10:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sbitmap.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Simple bitmaps. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sbitmap.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/sbitmap.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sbitmap.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sbitmap.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Simple bitmaps. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sched-deps.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/sched-deps.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sched-deps.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sched-deps.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Instruction scheduling pass. This file computes dependencies between instructions. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) Enhanced by, and currently maintained by, Jim Wilson (wilson@cygnus.com) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sched-ebb.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/sched-ebb.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sched-ebb.c 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sched-ebb.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Instruction scheduling pass. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) Enhanced by, and currently maintained by, Jim Wilson (wilson@cygnus.com) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sched-int.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/sched-int.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sched-int.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sched-int.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Instruction scheduling pass. This file contains definitions used internally in the scheduler. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sched-rgn.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/sched-rgn.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sched-rgn.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sched-rgn.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Instruction scheduling pass. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) Enhanced by, and currently maintained by, Jim Wilson (wilson@cygnus.com) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/selftest.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/selftest.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/selftest.c 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/selftest.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* A self-testing framework, for use by -fself-test. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/selftest-diagnostic.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/selftest-diagnostic.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/selftest-diagnostic.c 2018-10-16 07:05:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/selftest-diagnostic.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Selftest support for diagnostics. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/selftest-diagnostic.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/selftest-diagnostic.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/selftest-diagnostic.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/selftest-diagnostic.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Selftest support for diagnostics. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/selftest.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/selftest.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/selftest.h 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/selftest.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* A self-testing framework, for use by -fself-test. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -216,6 +216,7 @@ extern void attribute_c_tests (); extern void bitmap_c_tests (); extern void cgraph_c_tests (); +extern void convert_c_tests (); extern void diagnostic_c_tests (); extern void diagnostic_show_locus_c_tests (); extern void dumpfile_c_tests (); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/selftest-rtl.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/selftest-rtl.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/selftest-rtl.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/selftest-rtl.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Selftest support for RTL. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/selftest-rtl.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/selftest-rtl.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/selftest-rtl.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/selftest-rtl.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* A self-testing framework, for use by -fself-test. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/selftest-run-tests.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/selftest-run-tests.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/selftest-run-tests.c 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/selftest-run-tests.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of selftests. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -81,6 +81,7 @@ input_c_tests (); vec_perm_indices_c_tests (); tree_c_tests (); + convert_c_tests (); gimple_c_tests (); rtl_tests_c_tests (); read_rtl_function_c_tests (); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sel-sched.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/sel-sched.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sel-sched.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sel-sched.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Instruction scheduling pass. Selective scheduler and pipeliner. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sel-sched-dump.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/sel-sched-dump.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sel-sched-dump.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sel-sched-dump.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Instruction scheduling pass. Log dumping infrastructure. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sel-sched-dump.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/sel-sched-dump.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sel-sched-dump.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sel-sched-dump.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Instruction scheduling pass. Log dumping infrastructure. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sel-sched.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/sel-sched.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sel-sched.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sel-sched.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Instruction scheduling pass. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sel-sched-ir.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/sel-sched-ir.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sel-sched-ir.c 2018-04-24 01:29:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sel-sched-ir.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Instruction scheduling pass. Selective scheduler and pipeliner. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sel-sched-ir.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/sel-sched-ir.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sel-sched-ir.h 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sel-sched-ir.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Instruction scheduling pass. This file contains definitions used internally in the scheduler. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sese.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/sese.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sese.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sese.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Single entry single exit control flow regions. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Jan Sjodin and Sebastian Pop . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sese.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/sese.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sese.h 2018-04-03 12:21:08.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sese.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Single entry single exit control flow regions. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Jan Sjodin and Sebastian Pop . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/shrink-wrap.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/shrink-wrap.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/shrink-wrap.c 2018-05-12 14:22:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/shrink-wrap.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Shrink-wrapping related optimizations. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/shrink-wrap.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/shrink-wrap.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/shrink-wrap.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/shrink-wrap.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Shrink-wrapping related functions. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/signop.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/signop.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/signop.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/signop.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Operations with SIGNED and UNSIGNED. -*- C++ -*- - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/simplify-rtx.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/simplify-rtx.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/simplify-rtx.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/simplify-rtx.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* RTL simplification functions for GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sort.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/sort.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sort.cc 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sort.cc 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Platform-independent deterministic sort function. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Alexander Monakov. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sparseset.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/sparseset.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sparseset.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sparseset.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* SparseSet implementation. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Peter Bergner This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sparseset.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/sparseset.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sparseset.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sparseset.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* SparseSet implementation. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Peter Bergner This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/spellcheck.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/spellcheck.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/spellcheck.c 2018-12-05 07:46:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/spellcheck.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Find near-matches for strings. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/spellcheck.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/spellcheck.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/spellcheck.h 2018-09-18 08:44:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/spellcheck.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Find near-matches for strings and identifiers. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/spellcheck-tree.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/spellcheck-tree.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/spellcheck-tree.c 2018-06-13 07:08:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/spellcheck-tree.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Find near-matches for identifiers. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/spellcheck-tree.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/spellcheck-tree.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/spellcheck-tree.h 2018-06-13 07:08:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/spellcheck-tree.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Find near-matches for identifiers. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sreal.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/sreal.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sreal.c 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sreal.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Simple data type for real numbers for the GNU compiler. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sreal.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/sreal.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sreal.h 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sreal.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for simple data type for real numbers. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ssa.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ssa.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ssa.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ssa.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Common SSA files - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ssa-iterators.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ssa-iterators.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ssa-iterators.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ssa-iterators.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for SSA iterators. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/stab.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/stab.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/stab.def 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/stab.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Table of DBX symbol codes for the GNU system. - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/stack-ptr-mod.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/stack-ptr-mod.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/stack-ptr-mod.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/stack-ptr-mod.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Discover if the stack pointer is modified in a function. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/statistics.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/statistics.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/statistics.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/statistics.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Optimization statistics functions. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Richard Guenther This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/statistics.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/statistics.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/statistics.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/statistics.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Memory and optimization statistics helpers. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Cygnus Solutions. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/stmt.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/stmt.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/stmt.c 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/stmt.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Expands front end tree to back end RTL for GCC - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/stmt.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/stmt.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/stmt.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/stmt.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations and data structures for stmt.c. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/store-motion.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/store-motion.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/store-motion.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/store-motion.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Store motion via Lazy Code Motion on the reverse CFG. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/stor-layout.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/stor-layout.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/stor-layout.c 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/stor-layout.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* C-compiler utilities for types and variables storage layout - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/stor-layout.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/stor-layout.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/stor-layout.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/stor-layout.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions and declarations for stor-layout.c. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/streamer-hooks.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/streamer-hooks.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/streamer-hooks.c 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/streamer-hooks.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ /* Streamer hooks. Support for adding streamer-specific callbacks to generic streaming routines. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/streamer-hooks.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/streamer-hooks.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/streamer-hooks.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/streamer-hooks.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,7 +1,7 @@ /* Streamer hooks. Support for adding streamer-specific callbacks to generic streaming routines. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/stringpool.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/stringpool.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/stringpool.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/stringpool.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* String pool for GCC. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/stringpool.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/stringpool.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/stringpool.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/stringpool.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations and definitons for stringpool.c. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/substring-locations.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/substring-locations.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/substring-locations.c 2018-09-18 08:44:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/substring-locations.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Source locations within string literals. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/substring-locations.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/substring-locations.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/substring-locations.h 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/substring-locations.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Source locations within string literals. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/symbol-summary.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/symbol-summary.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/symbol-summary.h 2018-06-25 06:51:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/symbol-summary.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Callgraph summary data structure. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Martin Liska This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/symtab.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/symtab.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/symtab.c 2018-10-23 07:46:23.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/symtab.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Symbol table. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/sync-builtins.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/sync-builtins.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/sync-builtins.def 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/sync-builtins.def 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* This file contains the definitions and documentation for the synchronization builtins used in the GNU compiler. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/system.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/system.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/system.h 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/system.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Get common system includes and various definitions and declarations based on autoconf macros. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/target.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/target.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/target.def 2018-11-20 10:31:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/target.def 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Target hook definitions. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -93,6 +93,18 @@ bool, (rtx x, unsigned int size, int aligned_p), default_assemble_integer) +/* Assembly strings required after the .cfi_startproc label. */ +DEFHOOK +(post_cfi_startproc, + "This target hook is used to emit assembly strings required by the target\n\ +after the .cfi_startproc directive. The first argument is the file stream to\n\ +write the strings to and the second argument is the function\'s declaration. The\n\ +expected use is to add more .cfi_* directives.\n\ +\n\ +The default is to not output any assembly strings.", + void, (FILE *, tree), + hook_void_FILEptr_tree) + /* Notify the backend that we have completed emitting the data for a decl. */ DEFHOOK diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/target-def.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/target-def.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/target-def.h 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/target-def.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Default initializers for a generic GCC target. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/target-globals.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/target-globals.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/target-globals.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/target-globals.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Target-dependent globals. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/target-globals.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/target-globals.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/target-globals.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/target-globals.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Target-dependent globals. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/target.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/target.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/target.h 2018-11-20 10:31:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/target.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Data structure definitions for a generic GCC target. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/target-hooks-macros.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/target-hooks-macros.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/target-hooks-macros.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/target-hooks-macros.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Common macros for target hook definitions. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/target-insns.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/target-insns.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/target-insns.def 2018-11-23 09:37:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/target-insns.def 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Target instruction definitions. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/targhooks.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/targhooks.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/targhooks.c 2018-11-20 10:31:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/targhooks.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Default target hook functions. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/targhooks.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/targhooks.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/targhooks.h 2018-11-14 18:47:07.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/targhooks.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Default target hook functions. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/brig.dg/dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/brig.dg/dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/brig.dg/dg.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/brig.dg/dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/asan/misalign-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/asan/misalign-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/asan/misalign-1.c 2017-08-22 12:26:05.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/asan/misalign-1.c 2018-12-29 02:41:34.000000000 +0000 @@ -1,5 +1,5 @@ /* { dg-do run { target { ilp32 || lp64 } } } */ -/* { dg-skip-if "" { *-*-* } { "*" } { "-O2" } } */ +/* { dg-skip-if "" { *-*-* } { "*" } { "-O2 -Wno-address-of-packed-member" } } */ /* { dg-additional-options "-fno-omit-frame-pointer" { target *-*-darwin* } } */ /* { dg-shouldfail "asan" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/asan/misalign-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/asan/misalign-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/asan/misalign-2.c 2017-08-22 12:26:05.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/asan/misalign-2.c 2018-12-29 02:41:34.000000000 +0000 @@ -1,5 +1,5 @@ /* { dg-do run { target { ilp32 || lp64 } } } */ -/* { dg-skip-if "" { *-*-* } { "*" } { "-O2" } } */ +/* { dg-skip-if "" { *-*-* } { "*" } { "-O2 -Wno-address-of-packed-member" } } */ /* { dg-additional-options "-fno-omit-frame-pointer" { target *-*-darwin* } } */ /* { dg-shouldfail "asan" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/classify-kernels.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/classify-kernels.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/classify-kernels.c 2017-05-12 16:25:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/classify-kernels.c 2018-12-16 02:31:30.000000000 +0000 @@ -2,6 +2,7 @@ kernels. */ /* { dg-additional-options "-O2" } + { dg-additional-options "-fopt-info-optimized-omp" } { dg-additional-options "-fdump-tree-ompexp" } { dg-additional-options "-fdump-tree-parloops1-all" } { dg-additional-options "-fdump-tree-oaccdevlow" } */ @@ -14,7 +15,7 @@ void KERNELS () { -#pragma acc kernels copyin (a[0:N], b[0:N]) copyout (c[0:N]) +#pragma acc kernels copyin (a[0:N], b[0:N]) copyout (c[0:N]) /* { dg-message "optimized: assigned OpenACC gang loop parallelism" } */ for (unsigned int i = 0; i < N; i++) c[i] = a[i] + b[i]; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/classify-kernels-unparallelized.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/classify-kernels-unparallelized.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/classify-kernels-unparallelized.c 2017-05-12 16:25:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/classify-kernels-unparallelized.c 2018-12-16 02:31:30.000000000 +0000 @@ -2,6 +2,7 @@ OpenACC kernels. */ /* { dg-additional-options "-O2" } + { dg-additional-options "-fopt-info-optimized-omp" } { dg-additional-options "-fdump-tree-ompexp" } { dg-additional-options "-fdump-tree-parloops1-all" } { dg-additional-options "-fdump-tree-oaccdevlow" } */ @@ -18,7 +19,7 @@ void KERNELS () { -#pragma acc kernels copyin (a[0:N], b[0:N]) copyout (c[0:N]) +#pragma acc kernels copyin (a[0:N], b[0:N]) copyout (c[0:N]) /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */ for (unsigned int i = 0; i < N; i++) c[i] = a[f (i)] + b[f (i)]; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/classify-parallel.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/classify-parallel.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/classify-parallel.c 2017-05-12 16:25:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/classify-parallel.c 2018-12-16 02:31:30.000000000 +0000 @@ -2,6 +2,7 @@ parallel. */ /* { dg-additional-options "-O2" } + { dg-additional-options "-fopt-info-optimized-omp" } { dg-additional-options "-fdump-tree-ompexp" } { dg-additional-options "-fdump-tree-oaccdevlow" } */ @@ -13,7 +14,7 @@ void PARALLEL () { -#pragma acc parallel loop copyin (a[0:N], b[0:N]) copyout (c[0:N]) +#pragma acc parallel loop copyin (a[0:N], b[0:N]) copyout (c[0:N]) /* { dg-message "optimized: assigned OpenACC gang vector loop parallelism" } */ for (unsigned int i = 0; i < N; i++) c[i] = a[i] + b[i]; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/classify-routine.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/classify-routine.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/classify-routine.c 2017-05-12 16:25:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/classify-routine.c 2018-12-16 02:31:30.000000000 +0000 @@ -2,6 +2,7 @@ routine. */ /* { dg-additional-options "-O2" } + { dg-additional-options "-fopt-info-optimized-omp" } { dg-additional-options "-fdump-tree-ompexp" } { dg-additional-options "-fdump-tree-oaccdevlow" } */ @@ -15,7 +16,7 @@ #pragma acc routine worker void ROUTINE () { -#pragma acc loop +#pragma acc loop /* { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } */ for (unsigned int i = 0; i < N; i++) c[i] = a[i] + b[i]; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/kernels-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/kernels-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/kernels-1.c 2016-03-31 10:54:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/kernels-1.c 2018-12-16 02:31:30.000000000 +0000 @@ -1,7 +1,9 @@ +/* { dg-additional-options "-fopt-info-optimized-omp" } */ + int kernels_empty (void) { -#pragma acc kernels +#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */ ; return 0; @@ -10,7 +12,7 @@ int kernels_eternal (void) { -#pragma acc kernels +#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */ { while (1) ; @@ -22,7 +24,7 @@ int kernels_noreturn (void) { -#pragma acc kernels +#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */ __builtin_abort (); return 0; @@ -36,7 +38,7 @@ { float *i; -#pragma acc kernels +#pragma acc kernels /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */ { #pragma acc loop for (i = &b[0][0][0]; i < &b[0][0][10]; i++) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/kernels-double-reduction.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/kernels-double-reduction.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/kernels-double-reduction.c 2017-10-06 23:39:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/kernels-double-reduction.c 2018-12-16 02:31:30.000000000 +0000 @@ -1,4 +1,5 @@ /* { dg-additional-options "-O2" } */ +/* { dg-additional-options "-fopt-info-optimized-omp" } */ /* { dg-additional-options "-fdump-tree-parloops1-all" } */ /* { dg-additional-options "-fdump-tree-optimized" } */ @@ -14,7 +15,7 @@ int i, j; unsigned int sum = 1; -#pragma acc kernels copyin (a[0:N]) copy (sum) +#pragma acc kernels copyin (a[0:N]) copy (sum) /* { dg-message "optimized: assigned OpenACC gang loop parallelism" } */ { for (i = 0; i < N; ++i) for (j = 0; j < N; ++j) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/kernels-double-reduction-n.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/kernels-double-reduction-n.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/kernels-double-reduction-n.c 2017-10-06 23:39:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/kernels-double-reduction-n.c 2018-12-16 02:31:30.000000000 +0000 @@ -1,4 +1,5 @@ /* { dg-additional-options "-O2" } */ +/* { dg-additional-options "-fopt-info-optimized-omp" } */ /* { dg-additional-options "-fdump-tree-parloops1-all" } */ /* { dg-additional-options "-fdump-tree-optimized" } */ @@ -14,7 +15,7 @@ int i, j; unsigned int sum = 1; -#pragma acc kernels copyin (a[0:n]) copy (sum) +#pragma acc kernels copyin (a[0:n]) copy (sum) /* { dg-message "optimized: assigned OpenACC gang loop parallelism" } */ { for (i = 0; i < n; ++i) for (j = 0; j < n; ++j) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/note-parallelism.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/note-parallelism.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/note-parallelism.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/goacc/note-parallelism.c 2018-12-16 02:31:30.000000000 +0000 @@ -0,0 +1,115 @@ +/* Test the output of "-fopt-info-optimized-omp". */ + +/* { dg-additional-options "-fopt-info-optimized-omp" } */ + +/* See also "../../gfortran.dg/goacc/note-parallelism.f90". */ + +int +main () +{ + int x, y, z; + +#pragma acc parallel + for (x = 0; x < 10; x++) + ; + +#pragma acc parallel loop seq /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */ + for (x = 0; x < 10; x++) + ; + +#pragma acc parallel loop gang /* { dg-message "optimized: assigned OpenACC gang loop parallelism" } */ + for (x = 0; x < 10; x++) + ; + +#pragma acc parallel loop worker /* { dg-message "optimized: assigned OpenACC worker loop parallelism" } */ + for (x = 0; x < 10; x++) + ; + +#pragma acc parallel loop vector /* { dg-message "optimized: assigned OpenACC vector loop parallelism" } */ + for (x = 0; x < 10; x++) + ; + +#pragma acc parallel loop gang vector /* { dg-message "optimized: assigned OpenACC gang vector loop parallelism" } */ + for (x = 0; x < 10; x++) + ; + +#pragma acc parallel loop gang worker /* { dg-message "optimized: assigned OpenACC gang worker loop parallelism" } */ + for (x = 0; x < 10; x++) + ; + +#pragma acc parallel loop worker vector /* { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } */ + for (x = 0; x < 10; x++) + ; + +#pragma acc parallel loop gang worker vector /* { dg-message "optimized: assigned OpenACC gang worker vector loop parallelism" } */ + for (x = 0; x < 10; x++) + ; + +#pragma acc parallel loop gang /* { dg-message "optimized: assigned OpenACC gang loop parallelism" } */ + for (x = 0; x < 10; x++) +#pragma acc loop worker /* { dg-message "optimized: assigned OpenACC worker loop parallelism" } */ + for (y = 0; y < 10; y++) +#pragma acc loop vector /* { dg-message "optimized: assigned OpenACC vector loop parallelism" } */ + for (z = 0; z < 10; z++) + ; + +#pragma acc parallel loop /* { dg-message "optimized: assigned OpenACC gang vector loop parallelism" } */ + for (x = 0; x < 10; x++) + ; + +#pragma acc parallel loop /* { dg-message "optimized: assigned OpenACC gang worker loop parallelism" } */ + for (x = 0; x < 10; x++) +#pragma acc loop /* { dg-message "optimized: assigned OpenACC vector loop parallelism" } */ + for (y = 0; y < 10; y++) + ; + +#pragma acc parallel loop /* { dg-message "optimized: assigned OpenACC gang loop parallelism" } */ + for (x = 0; x < 10; x++) +#pragma acc loop /* { dg-message "optimized: assigned OpenACC worker loop parallelism" } */ + for (y = 0; y < 10; y++) +#pragma acc loop /* { dg-message "optimized: assigned OpenACC vector loop parallelism" } */ + for (z = 0; z < 10; z++) + ; + +#pragma acc parallel + for (x = 0; x < 10; x++) +#pragma acc loop /* { dg-message "optimized: assigned OpenACC gang worker loop parallelism" } */ + for (y = 0; y < 10; y++) +#pragma acc loop /* { dg-message "optimized: assigned OpenACC vector loop parallelism" } */ + for (z = 0; z < 10; z++) + ; + +#pragma acc parallel loop seq /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */ + for (x = 0; x < 10; x++) +#pragma acc loop /* { dg-message "optimized: assigned OpenACC gang worker loop parallelism" } */ + for (y = 0; y < 10; y++) +#pragma acc loop /* { dg-message "optimized: assigned OpenACC vector loop parallelism" } */ + for (z = 0; z < 10; z++) + ; + +#pragma acc parallel loop /* { dg-message "optimized: assigned OpenACC gang worker loop parallelism" } */ + for (x = 0; x < 10; x++) +#pragma acc loop seq /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */ + for (y = 0; y < 10; y++) +#pragma acc loop /* { dg-message "optimized: assigned OpenACC vector loop parallelism" } */ + for (z = 0; z < 10; z++) + ; + +#pragma acc parallel loop /* { dg-message "optimized: assigned OpenACC gang worker loop parallelism" } */ + for (x = 0; x < 10; x++) +#pragma acc loop /* { dg-message "optimized: assigned OpenACC vector loop parallelism" } */ + for (y = 0; y < 10; y++) +#pragma acc loop seq /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */ + for (z = 0; z < 10; z++) + ; + +#pragma acc parallel loop seq /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */ + for (x = 0; x < 10; x++) +#pragma acc loop /* { dg-message "optimized: assigned OpenACC gang vector loop parallelism" } */ + for (y = 0; y < 10; y++) +#pragma acc loop seq /* { dg-message "optimized: assigned OpenACC seq loop parallelism" } */ + for (z = 0; z < 10; z++) + ; + + return 0; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-0a.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-0a.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-0a.c 2018-09-08 14:39:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-0a.c 2018-12-29 02:41:34.000000000 +0000 @@ -1,6 +1,7 @@ /* PR testsuite/52665 * Make sure scan-assembler-not turns off .ident */ /* { dg-do compile } */ +/* { dg-skip-if "no assembler .ident support" { powerpc*-*-darwin* } } */ int i; /* { dg-final { scan-assembler-not "GCC: " } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-0b.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-0b.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-0b.c 2018-09-08 14:39:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-0b.c 2018-12-29 02:41:34.000000000 +0000 @@ -2,6 +2,7 @@ * Make sure scan-assembler-not turns off .ident unless -fident in testcase */ /* { dg-do compile } */ /* { dg-options "-fident" } */ +/* { dg-skip-if "no assembler .ident support" { powerpc*-*-darwin* } } */ int i; /* { dg-final { scan-assembler-not "GCC: " { xfail *-*-* } } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-1a.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-1a.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-1a.c 2018-09-08 14:39:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-1a.c 2018-12-29 02:41:34.000000000 +0000 @@ -1,6 +1,7 @@ /* PR testsuite/52665 * Make sure scan-assembler turns off .ident */ /* { dg-do compile } */ +/* { dg-skip-if "no assembler .ident support" { powerpc*-*-darwin* } } */ int i; /* { dg-final { scan-assembler "GCC: " { xfail *-*-* } } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-1b.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-1b.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-1b.c 2018-09-08 14:39:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-1b.c 2018-12-29 02:41:34.000000000 +0000 @@ -4,4 +4,4 @@ /* { dg-options "-fident" } */ int i; -/* { dg-final { scan-assembler "GCC: " } } */ +/* { dg-final { scan-assembler "GCC: " { xfail powerpc-ibm-aix* powerpc*-*-darwin* } } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-2a.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-2a.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-2a.c 2018-09-08 14:39:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-2a.c 2018-12-29 02:41:34.000000000 +0000 @@ -1,6 +1,7 @@ /* PR testsuite/52665 * Make sure scan-assembler-times turns off .ident */ /* { dg-do compile } */ +/* { dg-skip-if "no assembler .ident support" { powerpc*-*-darwin* } } */ int i; /* { dg-final { scan-assembler-times "GCC: " 0 } } */ /* internal test, keep -times 0 ! */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-2b.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-2b.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-2b.c 2018-09-08 14:39:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ident-2b.c 2018-12-29 02:41:34.000000000 +0000 @@ -4,4 +4,4 @@ /* { dg-options "-fident" } */ int ident; -/* { dg-final { scan-assembler-times "GCC: " 1 } } */ +/* { dg-final { scan-assembler-times "GCC: " 1 { xfail powerpc-ibm-aix* powerpc*-*-darwin* } } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-10.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-10.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-10.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-10.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,24 @@ +/* PR c/51628. */ +/* { dg-do run { target int128 } } */ +/* { dg-options "-O2" } */ + +struct pair_t +{ + char c; + __int128_t i; +} __attribute__ ((packed)); + +typedef struct unaligned_int128_t_ +{ + __int128_t value; +} __attribute__((packed)) unaligned_int128_t; + +struct pair_t p = {0, 1}; +unaligned_int128_t *addr = (unaligned_int128_t *) &p.i; + +int +main() +{ + addr->value = ~(__int128_t)0; + return (p.i != 1) ? 0 : 1; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-11.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-11.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-11.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-11.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,17 @@ +/* PR c/51628. */ +/* { dg-do compile { target int128 } } */ +/* { dg-options "-O" } */ + +struct tuple_t +{ + char c[12]; + __int128_t i; +} __attribute__((packed, aligned (8))); + +typedef struct unaligned_int128_t_ +{ + __int128_t value; +} __attribute__ ((packed, aligned(4))) unaligned_int128_t; + +struct tuple_t p = {{0}, 1}; +unaligned_int128_t *addr = (unaligned_int128_t *)(&p.i); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-12.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-12.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-12.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-12.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,18 @@ +/* PR c/51628. */ +/* { dg-do compile { target int128 } } */ +/* { dg-options "-O" } */ + +struct tuple_t +{ + char c[10]; + __int128_t i; +} __attribute__((packed, aligned (8))); + +typedef struct unaligned_int128_t_ +{ + __int128_t value; +} __attribute__ ((packed, aligned(4))) unaligned_int128_t; + +struct tuple_t p = {{0}, 1}; +unaligned_int128_t *addr = (unaligned_int128_t *)(&p.i); +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-13.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-13.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-13.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-13.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,9 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct B { int i; }; +struct C { struct B b; } __attribute__ ((packed)); + +int* h4 (struct C *p) { return &p->b.i; } +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-14.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-14.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-14.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-14.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,9 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct A { + int i; +} __attribute__ ((packed)); + +void* f0 (struct A *p) { return &p->i; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-15.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-15.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-15.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-15.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,14 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct A { + int i; +} __attribute__ ((packed)); + +int* +f (struct A *p, int *q) +{ + return q ? q : &p->i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-16.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-16.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-16.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-16.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,13 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct __attribute__ ((packed)) A { int i; }; +struct B { + struct A a; +} b; + +int *p = (int*)&b.a.i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ +int *q = (int*)&b.a; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-1.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,29 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct pair_t +{ + int x; + int i; +} __attribute__((packed, aligned (4))); + +extern struct pair_t p; +extern int *x; +extern void bar (int *); + +int *addr = &p.i; + +int * +foo (void) +{ + struct pair_t arr[2] = { { 1, 10 }, { 2, 20 } }; + int *p0, *p1; + p0 = &arr[0].i; + bar (p0); + p1 = &arr[1].i; + bar (p1); + bar (&p.i); + x = &p.i; + return &p.i; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-26.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-26.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-26.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-26.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,33 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct A { + int i; +} __attribute__ ((packed)); + +struct A p = {1}; +int *addr; + +int i, j; + +void +foo1 (void) +{ + addr = (i = -1, &p.i); +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ +} + +void +foo2 (void) +{ + addr = (i = -1, j = -2, &p.i); +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ +} + +void +foo3 (void) +{ + addr = (i = -1, (j = -2, &p.i)); +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-27.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-27.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-27.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-27.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,12 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct A { int i; } __attribute__ ((packed)); +struct B { struct A a; }; +struct C { struct B b; }; + +extern struct C *p; + +int* g8 (void) { return &p->b.a.i; } +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-28.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-28.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-28.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-28.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,31 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct A { + int i; +} __attribute__ ((packed)); + +int * +foo3 (struct A *p1, int *q1, int *q2, struct A *p2) +{ + return (q1 + ? &p1->i +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + : (q2 ? &p2->i : q2)); +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ +} + +int* +foo4 (struct A *p1, int **q1, int *q2, int *q3, struct A *p2) +{ + return (q1 + ? (*q1 = q2, &p1->i) +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + : (q2 + ? (*q1 = &p1->i, +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + *q2 = 2, &p2->i) +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + : q2)); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-29.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-29.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-29.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-29.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,16 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct A { int i; }; +struct B { struct A a; }; +struct C { struct B b __attribute__ ((packed)); }; + +extern struct C *p; + +int* +g8 (void) +{ + return &p->b.a.i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-2.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,29 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct pair_t +{ + int x; + int i; +} __attribute__((packed, aligned (8))); + +extern struct pair_t p; +extern int *x; +extern void bar (int *); + +int *addr = &p.i; + +int * +foo (void) +{ + struct pair_t arr[2] = { { 1, 10 }, { 2, 20 } }; + int *p0, *p1; + p0 = &arr[0].i; + bar (p0); + p1 = &arr[1].i; + bar (p1); + bar (&p.i); + x = &p.i; + return &p.i; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-30.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-30.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-30.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-30.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,23 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct A { __complex int i; }; +struct B { struct A a; }; +struct C { struct B b __attribute__ ((packed)); }; + +extern struct C *p; + +int* +foo1 (void) +{ + return &__real(p->b.a.i); +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ +} + +int* +foo2 (void) +{ + return &__imag(p->b.a.i); +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-31.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-31.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-31.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-31.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,16 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +typedef int v4si __attribute__((vector_size(16))); +struct X +{ + v4si x; +} __attribute__((packed)) x; + +int * +foo() +{ + return &x.x[1]; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-32.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-32.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-32.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-32.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,19 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct A +{ + int i; +}; + +struct B +{ + char c; + __attribute ((packed)) struct A ar[4]; +}; + +struct B b; + +int *p = &b.ar[1].i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-3.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-3.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-3.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-3.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,35 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct pair_t +{ + int x; + int i; +} __attribute__((packed, aligned (2))); + +extern struct pair_t p; +extern int *x; +extern void bar (int *); + +int *addr = &p.i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + +int * +foo (void) +{ + struct pair_t arr[2] = { { 1, 10 }, { 2, 20 } }; + int *p0, *p1; + p0 = &arr[0].i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + bar (p0); + p1 = &arr[1].i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + bar (p1); + bar (&p.i); +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + x = &p.i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + return &p.i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-4.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-4.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-4.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-4.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,35 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct pair_t +{ + int x; + int i; +} __attribute__((packed)); + +extern struct pair_t p; +extern int *x; +extern void bar (int *); + +int *addr = &p.i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + +int * +foo (void) +{ + struct pair_t arr[2] = { { 1, 10 }, { 2, 20 } }; + int *p0, *p1; + p0 = &arr[0].i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + bar (p0); + p1 = &arr[1].i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + bar (p1); + bar (&p.i); +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + x = &p.i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + return &p.i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-5.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-5.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-5.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-5.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,35 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct pair_t +{ + char x; + int i; +} __attribute__((packed)); + +extern struct pair_t p; +extern int *x; +extern void bar (int *); + +int *addr = &p.i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + +int * +foo (void) +{ + struct pair_t arr[2] = { { 1, 10 }, { 2, 20 } }; + int *p0, *p1; + p0 = &arr[0].i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + bar (p0); + p1 = &arr[1].i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + bar (p1); + bar (&p.i); +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + x = &p.i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + return &p.i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-6.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-6.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-6.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-6.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,35 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct pair_t +{ + char x; + int i; +} __attribute__((packed, aligned (4))); + +extern struct pair_t p; +extern int *x; +extern void bar (int *); + +int *addr = &p.i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + +int * +foo (void) +{ + struct pair_t arr[2] = { { 1, 10 }, { 2, 20 } }; + int *p0, *p1; + p0 = &arr[0].i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + bar (p0); + p1 = &arr[1].i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + bar (p1); + bar (&p.i); +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + x = &p.i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + return &p.i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-7.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-7.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-7.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-7.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,29 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct pair_t +{ + int x; + int i[4]; +} __attribute__((packed, aligned (4))); + +extern struct pair_t p; +extern int *x; +extern void bar (int *); + +int *addr = p.i; + +int * +foo (struct pair_t *p) +{ + int *p0, *p1; + p0 = p->i; + bar (p0); + p1 = &p->i[1]; + bar (p1); + bar (p->i); + bar (&p->i[2]); + x = p->i; + return &p->i[3]; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-8.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-8.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-8.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-8.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,36 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct pair_t +{ + char x; + int i[4]; +} __attribute__ ((packed, aligned (4))); + +extern struct pair_t p; +extern int *x; +extern void bar (int *); + +int *addr = p.i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + +int * +foo (struct pair_t *p) +{ + int *p0, *p1; + p0 = p->i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + bar (p0); + p1 = &p->i[1]; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + bar (p1); + bar (p->i); +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + bar (&p->i[2]); +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + x = p->i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + return &p->i[3]; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-9.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-9.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-9.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51628-9.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,36 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct pair_t +{ + int x; + int i[4]; +} __attribute__ ((packed)); + +extern struct pair_t p; +extern int *x; +extern void bar (int *); + +int *addr = p.i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + +int * +foo (struct pair_t *p) +{ + int *p0, *p1; + p0 = p->i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + bar (p0); + p1 = &p->i[1]; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + bar (p1); + bar (p->i); +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + bar (&p->i[2]); +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + x = p->i; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + return &p->i[3]; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51712.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51712.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51712.c 2014-12-14 06:47:55.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/pr51712.c 2018-12-29 02:41:34.000000000 +0000 @@ -15,5 +15,5 @@ int valid2(unsigned int arg2) { - return arg2 >= FOO && arg2 <= BAR; /* { dg-bogus "comparison of unsigned expression" "" { xfail *-*-* } } */ + return arg2 >= FOO && arg2 <= BAR; /* { dg-bogus "comparison of unsigned expression" "" { xfail c } } */ } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-10.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-10.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-10.c 2017-06-15 11:50:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-10.c 2018-12-29 02:41:34.000000000 +0000 @@ -1,6 +1,6 @@ /* Limit this to known non-strict alignment targets. */ /* { dg-do run { target { i?86-*-linux* x86_64-*-linux* } } } */ -/* { dg-options "-O -fsanitize=alignment -fsanitize-recover=alignment" } */ +/* { dg-options "-O -fsanitize=alignment -fsanitize-recover=alignment -Wno-address-of-packed-member" } */ struct R { int a; } r; struct S { struct R a; char b; long long c; short d[10]; }; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-2.c 2014-12-14 14:59:05.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-2.c 2018-12-29 02:41:34.000000000 +0000 @@ -1,6 +1,6 @@ /* Limit this to known non-strict alignment targets. */ /* { dg-do run { target { i?86-*-linux* x86_64-*-linux* } } } */ -/* { dg-options "-fsanitize=alignment" } */ +/* { dg-options "-fsanitize=alignment -Wno-address-of-packed-member" } */ struct S { int a; char b; long long c; short d[10]; }; struct T { char a; long long b; }; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-4.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-4.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-4.c 2014-12-14 14:59:05.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-4.c 2018-12-29 02:41:34.000000000 +0000 @@ -1,6 +1,6 @@ /* Limit this to known non-strict alignment targets. */ /* { dg-do run { target { i?86-*-linux* x86_64-*-linux* } } } */ -/* { dg-options "-fsanitize=null,alignment" } */ +/* { dg-options "-fsanitize=null,alignment -Wno-address-of-packed-member" } */ #include "align-2.c" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-6.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-6.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-6.c 2015-05-07 23:23:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-6.c 2018-12-29 02:41:34.000000000 +0000 @@ -1,6 +1,6 @@ /* Limit this to known non-strict alignment targets. */ /* { dg-do run { target { i?86-*-linux* x86_64-*-linux* } } } */ -/* { dg-options "-O -fsanitize=alignment -fsanitize-recover=alignment" } */ +/* { dg-options "-O -fsanitize=alignment -fsanitize-recover=alignment -Wno-address-of-packed-member" } */ struct S { int a; char b; long long c; short d[10]; }; struct T { char a; long long b; }; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-7.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-7.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-7.c 2015-05-31 17:55:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-7.c 2018-12-29 02:41:34.000000000 +0000 @@ -1,6 +1,6 @@ /* Limit this to known non-strict alignment targets. */ /* { dg-do run { target { i?86-*-linux* x86_64-*-linux* } } } */ -/* { dg-options "-O -fsanitize=alignment -fno-sanitize-recover=alignment -fdump-tree-sanopt-details" } */ +/* { dg-options "-O -fsanitize=alignment -fno-sanitize-recover=alignment -Wno-address-of-packed-member -fdump-tree-sanopt-details" } */ /* { dg-skip-if "" { *-*-* } { "-flto -fno-fat-lto-objects" } } */ /* { dg-shouldfail "ubsan" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-8.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-8.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-8.c 2015-05-31 17:55:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/ubsan/align-8.c 2018-12-29 02:41:34.000000000 +0000 @@ -1,6 +1,6 @@ /* Limit this to known non-strict alignment targets. */ /* { dg-do run { target { i?86-*-linux* x86_64-*-linux* } } } */ -/* { dg-options "-O -fsanitize=alignment -fsanitize-undefined-trap-on-error -fdump-tree-sanopt-details" } */ +/* { dg-options "-O -fsanitize=alignment -fsanitize-undefined-trap-on-error -Wno-address-of-packed-member -fdump-tree-sanopt-details" } */ /* { dg-skip-if "" { *-*-* } { "-flto -fno-fat-lto-objects" } } */ /* { dg-shouldfail "ubsan" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/Wtautological-compare-8.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/Wtautological-compare-8.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/Wtautological-compare-8.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/Wtautological-compare-8.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,33 @@ +/* { dg-options "-Wtautological-compare" } */ + +int foo; +#define INCOMING_FRAME_SP_OFFSET foo +#define DEFAULT_INCOMING_FRAME_SP_OFFSET INCOMING_FRAME_SP_OFFSET + +int test (void) +{ + if (DEFAULT_INCOMING_FRAME_SP_OFFSET != INCOMING_FRAME_SP_OFFSET) /* { dg-warning "self-comparison" "" { target c } } */ + return 1; + else + return 0; +} + +#define BYTES_BIG_ENDIAN foo +#define WORDS_BIG_ENDIAN foo + +int test_2 (void) +{ + if (BYTES_BIG_ENDIAN != WORDS_BIG_ENDIAN) /* { dg-warning "self-comparison" "" { target c } } */ + return 1; + else + return 0; +} + +#define COND DEFAULT_INCOMING_FRAME_SP_OFFSET != INCOMING_FRAME_SP_OFFSET +int test_3 (void) +{ + if (COND) + return 1; + else + return 0; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/Wtautological-compare-ranges.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/Wtautological-compare-ranges.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/c-c++-common/Wtautological-compare-ranges.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/c-c++-common/Wtautological-compare-ranges.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,42 @@ +/* { dg-do compile } */ +/* { dg-options "-Wtautological-compare -fdiagnostics-show-caret" } */ + +#define FOO foo + +void +fn1 (int foo) +{ + if (foo == foo); /* { dg-warning "self-comparison always evaluates to true" } */ + /* { dg-begin-multiline-output "" } + if (foo == foo); + ^~ + { dg-end-multiline-output "" { target c } } */ + /* { dg-begin-multiline-output "" } + if (foo == foo); + ~~~ ^~ ~~~ + { dg-end-multiline-output "" { target c++ } } */ +} + +void +fn2 (int foo) +{ + if (FOO == FOO); /* { dg-warning "self-comparison always evaluates to true" } */ + /* { dg-begin-multiline-output "" } + if (FOO == FOO); + ^~ + { dg-end-multiline-output "" } */ +} + +void +fn3 (int foo) +{ + if ((foo & 16) == 10); /* { dg-warning "bitwise comparison always evaluates to false" } */ + /* { dg-begin-multiline-output "" } + if ((foo & 16) == 10); + ^~ + { dg-end-multiline-output "" { target c } } */ + /* { dg-begin-multiline-output "" } + if ((foo & 16) == 10); + ~~~~~~~~~~ ^~ ~~ + { dg-end-multiline-output "" { target c++ } } */ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/ChangeLog 2018-12-14 05:16:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/ChangeLog 2019-01-02 08:05:16.000000000 +0000 @@ -1,21685 +1,41 @@ -2018-12-13 Michael Ploujnikov +2019-01-01 Martin Sebor + Jeff Law - * gcc.dg/lto/pr88297_0.c: New test. - * gcc.dg/lto/pr88297_1.c: New test. + * gcc.dg/strlenopt-40.c: Update + * gcc.dg/strlenopt-51.c: Likewise. + * gcc.dg/tree-ssa/pr79376.c: Likewise. -2018-12-13 Jakub Jelinek + * gcc.dg/strlenopt-40.c: Disable a couple tests. + * gcc.dg/strlenopt-48.c: Twiddle test slightly. + * gcc.dg/strlenopt-59.c: New test. + * gcc.dg/tree-ssa/builtin-snprintf-5.c: New test. + * g++.dg/init/strlen.C: New test. - PR tree-optimization/88444 - * gcc.dg/tree-ssa/pr88444.c: New test. +2019-01-01 Thomas Koenig - PR rtl-optimization/88470 - * gcc.target/i386/pr88470.c: New test. + PR fortran/82743 + * gfortran.dg/structure_constructor_16.f90: New test. -2018-12-13 Vladimir Makarov +2019-01-01 Jan Hubicka - PR rtl-optimization/88414 - * gcc.target/i386/pr88414.c: New. + * g++.dg/ipa/devirt-36.C: Add dg-do-compile. + * g++.dg/ipa/devirt-53.C: Fix scan template. -2018-12-13 Marek Polacek +2019-01-01 Jan Hubicka - PR c++/88216 - ICE with class type in non-type template parameter. - * g++.dg/cpp2a/nontype-class9.C: New test. + * g++.dg/lto/devirt-13_0.C: Drop broken scan of ssa dump. + * g++.dg/lto/devirt-14_0.C: Drop broken scan of ssa dump. + * g++.dg/lto/devirt-23_0.C: Add -fdump-ipa-cp. -2018-12-13 Jakub Jelinek +2019-01-01 Jan Hubicka - PR rtl-optimization/88416 - * gcc.target/i386/pr88416.c: New test. + * g++.dg/tree-prof/devirt.C: Update testcase. - PR tree-optimization/88464 - * gcc.target/i386/avx512f-pr88462-1.c: New test. - * gcc.target/i386/avx512f-pr88462-2.c: New test. - -2018-12-13 Nathan Sidwell - - PR c++/87531 - * g++.dg/lookup/pr87531-2.C: New. - -2018-12-13 Rainer Orth - - PR testsuite/88041 - * lib/gdc-dg.exp (gdc-dg-test): Strip gdc.test prefix. - * gdc.test/gdc-test.exp (gdc-do-test): Create $subdir link. - Include $subdir in filename. - Cleanup generated source. - * gdc.test/compilable/ddoc9676a.d (EXTRA_SOURCES): Don't use - absolute path. - * gdc.test/compilable/depsOutput9948.d: Likewise. - -2018-12-13 Jakub Jelinek - - PR testsuite/88454 - * gcc.dg/tree-ssa/split-path-5.c (__ctype_ptr__): Change type from - const char * to const signed char *. - (bmhi_init): Change pattern parameter's type the same. Use - __builtin_strlen instead of undeclared strlen. - -2018-12-13 Andreas Krebbel - - * gcc.target/s390/zvector/vec-double-1.c: New test. - * gcc.target/s390/zvector/vec-double-2.c: New test. - -2018-12-13 Wei Xiao - - * gcc.target/i386/funcspec-56.inc: Handle new march. - -2018-12-13 Jakub Jelinek - - PR target/88465 - * gcc.target/i386/avx512f-pr88465.c: New test. - * gcc.target/i386/avx512dq-pr88465.c: New test. - - PR target/88461 - * gcc.target/i386/pr88461.c: New test. - -2018-12-12 Paolo Carlini - - * g++.dg/other/static5.C: New. - -2018-12-12 Segher Boessenkool - - PR testsuite/88318 - * gcc.dg/independent-cloneids-1.c: Use ^ not \m. - -2018-12-12 Joel Brobecker - - * gcc.dg/lto/20100430-1_0.c: Add dg-require-profiling requirement. - -2018-12-12 Jakub Jelinek - - PR c++/88446 - * g++.dg/cpp2a/is-constant-evaluated3.C: New test. - - PR c++/88449 - * g++.dg/cpp2a/is-constant-evaluated1.C: Change from dg-do compile - to dg-do run. - (e): Adjust comment with correct expected value. - (main): Expect e == 1. - * g++.dg/cpp2a/is-constant-evaluated2.C: New test. - -2018-12-11 Steven G. Kargl - - PR fortran/88155 - * gfortran.dg/pr70870_1.f90: Update testcase to use -std=gnu. - * gfortran.dg/pr88155.f90: New test. - -2018-12-11 Steven G. Kargl - - PR fortran/88249 - * gfortran.dg/pr88249.f90: New test. - -2018-12-11 Jakub Jelinek - - PR tree-optimization/80520 - * gcc.dg/tree-ssa/split-path-11.c (foo): Make the test ilp32 target - clean. - -2018-12-11 Marek Polacek - - PR c++/86608 - reading constexpr volatile variable. - * g++.dg/cpp0x/constexpr-volatile2.C: New test. - * g++.dg/cpp0x/pr65327.C: Add dg-error. - -2018-12-11 Paolo Carlini - - * g++.dg/pr53037-4.C: Test the first two locations too. - -2018-12-11 Jakub Jelinek - - PR tree-optimization/88444 - * gcc.dg/pr88444.c: New test. - -2018-12-11 Dimitar Dimitrov - - * gcc.target/i386/pr52813.c: New test. - -2018-12-11 Jakub Jelinek - - PR target/88425 - * gcc.target/i386/pr88425.c: New test. - - PR sanitizer/88426 - * c-c++-common/ubsan/float-cast-overflow-11.c: New test. - -2018-12-11 Yannick Moy - - * gnat.dg/ghost4.adb: New testcase. - -2018-12-11 Ed Schonberg - - * gnat.dg/iter4.adb: New testcase. - -2018-12-11 Hristian Kirtchev - - * gnat.dg/valid4.adb, gnat.dg/valid4_pkg.adb, - gnat.dg/valid4_pkg.ads: New testcase. - -2018-12-11 Eric Botcazou - - * gnat.dg/packed_array.adb, gnat.dg/packed_array.ads, - gnat.dg/packed_array_pkg.ads: New testcase. - -2018-12-11 Hristian Kirtchev - - * gnat.dg/ghost3.adb, gnat.dg/ghost3.ads: New testcase. - -2018-12-11 Ed Schonberg - - * gnat.dg/bip_cu.adb, gnat.dg/bip_cu_constructor.adb, - gnat.dg/bip_cu_constructor.ads, gnat.dg/bip_cu_t.adb, - gnat.dg/bip_cu_t.ads: New testcase. - -2018-12-11 Hristian Kirtchev - - * gnat.dg/ghost2.adb, gnat.dg/ghost2.ads: New testcase. - -2018-12-11 Eric Botcazou - - * gnat.dg/atomic11.adb, gnat.dg/atomic11_pkg1.ads, - gnat.dg/atomic11_pkg2.ads: New testcase. - -2018-12-11 Ed Schonberg - - * gnat.dg/aspect1.adb, gnat.dg/aspect1_horizontal.adb, - gnat.dg/aspect1_horizontal.ads, gnat.dg/aspect1_vectors_2d.ads: - New testcase. - * gnat.dg/static_pred1.adb: Expect an error message. - -2018-12-11 Jakub Jelinek - - PR lto/86004 - * lib/target-supports.exp (check_effective_target_lto_incremental): - New. - * g++.dg/lto/pr69137_0.C: Require lto_incremental effective target. - * g++.dg/lto/pr65316_0.C: Likewise. - * g++.dg/lto/pr85176_0.C: Likewise. - * g++.dg/lto/pr79000_0.C: Likewise. - * g++.dg/lto/pr66180_0.C: Likewise. - * g++.dg/lto/pr65193_0.C: Likewise. - * g++.dg/lto/pr69077_0.C: Likewise. - * g++.dg/lto/pr68057_0.C: Likewise. - * g++.dg/lto/pr66705_0.C: Likewise. - * g++.dg/lto/pr65302_0.C: Likewise. - * g++.dg/lto/20091002-1_0.C: Likewise. - * g++.dg/lto/pr81940_0.C: Likewise. - * g++.dg/lto/pr64043_0.C: Likewise. - * g++.dg/lto/pr65549_0.C: Likewise. - * g++.dg/lto/pr69133_0.C: Likewise. - * gfortran.dg/lto/pr79108_0.f90: Likewise. - -2018-12-10 Jeff Law - - PR tree-optimization/80520 - * gcc.dg/tree-ssa/split-path-5.c: Update expected output. - * gcc.dg/tree-ssa/split-path-11.c: New test. - -2018-12-10 Steven G. Kargl - - PR fortran/97922 - * gfortran.dg/io_constraints_8.f90: Update error message. - * gfortran.dg/pr87922.f90: New test. - -2018-12-10 Martin Sebor - - PR tree-optimization/86196 - * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use - base size only of arrays. - -2018-12-10 Uros Bizjak - - * gcc.dg/sinatan-1.c: Use dg-add-options ieee. - -2018-12-10 Steven G. Kargl - - PR fortran/88269 - * gfortran.dg/pr88269.f90: New test. - -2018-12-10 Uros Bizjak - - PR target/88418 - * gcc.target/i386/pr88418.c: New test. - -2018-12-10 Richard Biener - - PR tree-optimization/88427 - * gcc.dg/pr88427.c: New testcase. - -2018-12-10 Jakub Jelinek - - PR ipa/87955 - * gcc.target/i386/pr87955.c: Add -msse2 -mfpmath=sse to dg-options. - -2018-12-10 Martin Jambor - - PR ipa/88214 - * gcc.dg/ipa/pr88214.c: New test. - -2018-12-10 Jakub Jelinek - - PR testsuite/88369 - * gcc.dg/vect/vect-ivdep-1.c: Prune versioning for alignment messages. - * gcc.dg/vect/vect-ivdep-2.c: Likewise. - * gcc.dg/vect/nodump-vect-opt-info-1.c: Likewise. - * g++.dg/vect/pr33426-ivdep.cc: Likewise. - * g++.dg/vect/pr33426-ivdep-2.cc: Likewise. - * g++.dg/vect/pr33426-ivdep-3.cc: Likewise. - * g++.dg/vect/pr33426-ivdep-4.cc: Likewise. - -2018-12-10 Richard Biener - - PR middle-end/88415 - * gcc.dg/gomp/pr88415.c: New testcase. - -2018-12-10 Eric Botcazou - - * c-c++-common/patchable_function_entry-decl.c: Pass -mcpu=gr6 for - Visium and remove other specific handling. - * c-c++-common/patchable_function_entry-default.c: Likewise. - * c-c++-common/patchable_function_entry-definition.c: Likewise. - -2018-12-09 Steven G. Kargl - - PR fortran/88205 - * gfortran.dg/pr88205.f90: New unit. - -2018-12-09 Iain Buclaw - - PR d/88039 - * gdc.test/gdc-test.exp (gdc-convert-args): Handle -D. - (dmd2dg): Check generated html in ddoc tests. - (gdc-do-test): Set dg-do-what-default to compile for ddoc tests. - -2018-12-09 Steven G. Kargl - - PR fortran/88206 - * gfortran.dg/pr88206.f90: New test. - -2018-12-09 Steven G. Kargl - - PR fortran/88228 - * gfortran.dg/pr88228.f90: New test. - -2018-12-09 Thomas Schwinge - - * gfortran.dg/goacc/combined-directives-3.f90: New file. - -2018-12-09 Cesar Philippidis - - * c-c++-common/goacc/combined-directives-3.c: New test. - * c-c++-common/goacc/loop-2-kernels.c (void K): Adjust test. - * c-c++-common/goacc/loop-2-parallel.c (void P): Adjust test. - * c-c++-common/goacc/loop-3.c (void p2): Adjust test. - -2018-12-09 Thomas Schwinge - - * gfortran.dg/goacc/loop-2-kernels.f95: Update. - * gfortran.dg/goacc/loop-2-parallel.f95: Likewise. - * gfortran.dg/goacc/nested-parallelism.f90: Likewise. - - * gfortran.dg/goacc/loop-2.f95: Split into... - * gfortran.dg/goacc/loop-2-kernels-nested.f95: ... this new - file... - * gfortran.dg/goacc/loop-2-kernels-tile.f95: ..., and this new - file... - * gfortran.dg/goacc/loop-2-kernels.f95: ..., and this new file... - * gfortran.dg/goacc/loop-2-parallel-3.f95: ..., and this new - file... - * gfortran.dg/goacc/loop-2-parallel-nested.f95: ..., and this new - file... - * gfortran.dg/goacc/loop-2-parallel-tile.f95: ..., and this new - file... - * gfortran.dg/goacc/loop-2-parallel.f95: ..., and this new file. - - PR fortran/88420 - * gfortran.dg/goacc/loop-1-2.f95: Update. - * gfortran.dg/goacc/loop-1.f95: Likewise. - -2018-12-08 Steven G. Kargl - - PR fortran/88048 - * gfortran.dg/pr88048.f90: New test. - -2018-12-08 Steven G. Kargl - - PR fortran/87945 - * gfortran.dg/pr87945_1.f90: New test. - * gfortran.dg/pr87945_2.f90: New test. - -2018-12-08 Steven G. Kargl - - PR fortran/88025 - * gfortran.dg/pr88025.f90: New test. - -2018-12-08 Steven G. Kargl - - * gfortran.dg/pr88357_1.f90: New test. - * gfortran.dg/pr88357_2.f90: New test. - -2018-12-08 Jakub Jelinek - - PR fortran/88304 - * gfortran.fortran-torture/compile/pr88304-2.f90: New test. - -2018-12-07 Paolo Carlini - - * g++.dg/other/bitfield7.C: New. - * g++.dg/parse/bitfield8.C: Likewise. - * g++.dg/parse/bitfield9.C: Likewise. - * g++.dg/pr53037-4.C: Test the locations too. - -2018-12-07 Peter Bergner - - PR target/87496 - * gcc.target/powerpc/pr87496.c: Rename from this... - * gcc.target/powerpc/pr87496-1.c: ...to this. Update comment. - * gcc.target/powerpc/pr87496-2.c: New test. - * gcc.target/powerpc/pr87496-3.c: New test. - -2018-12-07 Kyrylo Tkachov - - * gcc.target/aarch64/sve/override_sve_width_1.c: New test. - -2018-12-07 Jeff Law - - PR middle-end/87813 - * gcc.c-torture/builtins/strnlen.x: New file to filter -Og from - options to test. - -2018-12-07 Vladimir Makarov - - PR rtl-optimization/88349 - * gcc.target/mips/pr88349.c: New. - -2018-12-07 Jakub Jelinek - - PR c++/86669 - * g++.dg/cpp0x/initlist105.C: New test. - * g++.dg/cpp0x/initlist106.C: New test. - * g++.dg/other/pr86669.C: New test. - -2018-12-07 Richard Sandiford - - * gcc.target/aarch64/sve/pred_elim_2.c: New test. - -2018-12-07 Richard Sandiford - - * gcc.target/aarch64/sve/pred_elim_1.c: New test. - -2018-12-07 Rainer Orth - - * gcc.target/i386/ipa-stack-alignment-2.c: Add - -fomit-frame-pointer to dg-options. - -2018-12-07 Jakub Jelinek - - PR target/85593 - * gcc.target/i386/pr85593.c: New test. - - PR rtl-optimization/85770 - * gcc.target/i386/pr85770.c: Require int128 effective target. - - PR fortran/88377 - * gfortran.dg/gomp/pr88377.f90: New test. - - PR c/88367 - * gcc.dg/tree-ssa/pr88367.c: New test. - - PR c++/87506 - * g++.dg/cpp0x/constexpr-87506.C: New test. - -2018-12-06 Paolo Carlini - - * g++.dg/parse/bitfield7.C: New. - * g++.dg/other/bitfield2.C: Check location and type. - * g++.dg/parse/bitfield1.C: Likewise. - * g++.dg/parse/bitfield2.C: Likewise. - -2018-12-06 Alexandre Oliva - - PR c++/86747 - * g++.dg/pr86747.C: New. - - PR c++/86397 - * g++.dg/cpp0x/pr86397-1.C: New. - * g++.dg/cpp0x/pr86397-2.C: New. - -2018-12-06 Paul A. Clarke - - PR target/88316 - * gcc.target/powerpc/bmi-check.h: Remove test for - __BUILTIN_CPU_SUPPORTS__, thereby enabling test code to run. - * gcc.target/powerpc/bmi2-check.h: Likewise. - * gcc.target/powerpc/mmx-check.h: Likewise. - * gcc.target/powerpc/sse-check.h: Likewise. - * gcc.target/powerpc/sse2-check.h: Likewise. - * gcc.target/powerpc/sse3-check.h: Likewise. - -2018-12-06 Paul A. Clarke - - PR target/88316 - * gcc.target/powerpc/mmx-packssdw-1.c: Fixes for big-endian. - * gcc.target/powerpc/mmx-packsswb-1.c: Likewise. - * gcc.target/powerpc/mmx-packuswb-1.c: Likewise. - * gcc.target/powerpc/mmx-pmulhw-1.c: Likewise. - * gcc.target/powerpc/sse-cvtpi32x2ps-1.c: Likewise. - * gcc.target/powerpc/sse-cvtpu16ps-1.c: Likewise. - * gcc.target/powerpc/sse-cvtss2si-1.c: Likewise. - * gcc.target/powerpc/sse-cvtss2si-2.c: Likewise. - * gcc.target/powerpc/sse2-pshufhw-1.c: Likewise. - * gcc.target/powerpc/sse2-pshuflw-1.c: Likewise. - -2018-12-06 Marek Polacek - - PR c++/88373 - wrong parse error with ~. - * g++.dg/cpp2a/fn-template19.C: New test. - -2018-12-06 Richard Sandiford - - * gcc.dg/vect/vect-over-widen-23.c: Remove unwanted line. - -2018-12-06 Segher Boessenkool - - * c-c++-common/torture/asm-inline.c: New testcase. - * gcc.dg/asm-qual-2.c: Test asm inline, too. - -2018-12-06 Segher Boessenkool - - PR inline-asm/55681 - * gcc.dg/asm-qual-1.c: Test that "const" and "restrict" are refused. - * gcc.dg/asm-qual-2.c: New test, test that asm-qualifiers are allowed - in any order, but that duplicates are not allowed. - -2018-12-06 Jeff Law - - PR testsuite/86540 - * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Skip the post switch conversion - tests on aarch64. - * gcc.dg/tree-ssa/pr77445-2.c: Similarly. - -2018-12-06 David Malcolm - - PR c++/85110 - * g++.dg/diagnostic/missing-default-args.C: New test. - * g++.dg/diagnostic/param-type-mismatch-3.C: New test. - * g++.dg/diagnostic/param-type-mismatch.C: Add tests for invalid - references and incomplete types. - * g++.dg/warn/Wconversion-null-4.C: New test. - -2018-12-06 Jakub Jelinek - - PR target/87598 - * gcc.target/aarch64/asm-5.c: New test. - - PR tree-optimization/85726 - * gcc.dg/tree-ssa/pr85726-1.c: New test. - * gcc.dg/tree-ssa/pr85726-2.c: New test. - * gcc.dg/tree-ssa/pr85726-3.c: New test. - * gcc.dg/tree-ssa/pr85726-4.c: New test. - - PR fortran/88304 - * gfortran.fortran-torture/compile/pr88304.f90: New test. - -2018-12-06 Richard Biener - - PR middle-end/63184 - * c-c++-common/pr19807-2.c: Try link only on x86, add xfailed - optimized dump scanning. - * c-c++-common/pr19807-3.c: Likewise. - -2018-12-06 Paolo Carlini - - * g++.dg/parse/bitfield6b.C: New. - * g++.dg/parse/bitfield3.C: Test location and type. - -2018-12-06 Iain Sandoe - - * lib/c-compat.exp (compat-use-alt-compiler): - Handle -fno-diagnostics-show-line-numbers. - (compat_setup_dfp): Likewise. - -2018-12-05 Jeff Law - - PR rtl-optimization/85770 - * gcc.target/i386/pr85770.c: New test. - -2018-12-05 Martin Sebor - - PR c/87028 - * c-c++-common/Wstringop-truncation.c: Remove xfails. - * gcc.dg/Wstringop-truncation-5.c: New test. - * gcc.dg/strcmpopt_1.c: Adjust. - * gcc.dg/tree-ssa/pr79697.c: Same. - -2018-12-05 Richard Sandiford - - PR tree-optimization/88064 - * gcc.dg/vect/vect-over-widen-23.c: New test. - -2018-12-05 David Malcolm - - * lib/gcc-dg.exp (process-message): Change verbosity level of - "verbose" from 2 to 3. - (dg-locus): Likewise. - -2018-12-05 Richard Biener - - PR middle-end/63184 - * c-c++-common/pr19807-2.c: New testcase. - * c-c++-common/pr19807-3.c: Likewise. - -2018-12-05 Rainer Orth - - PR testsuite/88208 - * gcc.target/sparc/attr-aligned.c (MAXALIGN) [__sparcv9 || - __arch64__]: Define. - -2018-12-05 Rainer Orth - - * gcc.target/sparc/20181129-1.c: Compile with -std=c99. - * gcc.target/sparc/20181129-2.c: Likewise. - -2018-12-05 Jakub Jelinek - - PR tree-optimization/87360 - * g++.dg/opt/pr87360.C: New test. - * gfortran.dg/pr87360.f90: New test. - - PR c++/87897 - * g++.dg/init/const13.C: New test. - - PR sanitizer/88333 - * c-c++-common/asan/pr88333.c: New test. - -2018-12-05 Alexandre Oliva - - PR c++/85569 - * g++.dg/cpp1z/pr85569.C: New. - -2018-12-05 Chenghua Xu - - * gcc.target/mips/msa.c: Adjusted clti_.df $wn,$wn,5 - to clei_.df $wn,$wn,4 in test31. - -2018-12-04 Paolo Carlini - - PR c++/84636 - * g++.dg/parse/bitfield6.C: New. - -2018-12-04 Jakub Jelinek - - PR tree-optimization/87320 - * gcc.dg/pr87320.c: New test. - -2018-12-04 Jeff Law - - * gcc.dg/strlenopt-58.c: Handle targets with 2 byte wchar_t. - -2018-12-04 Martin Sebor - - * gcc.target/i386/attr-aligned-2.c: New test. - * gcc.target/i386/falign-functions-3.c: New test. - -2018-12-04 Jakub Jelinek - - PR target/88188 - * gcc.target/powerpc/pr88188-2.c: New test. - -2018-12-04 Marek Polacek - - PR c++/88184 - ICE when treating name as template-name. - * g++.dg/cpp2a/fn-template17.C: New test. - * g++.dg/cpp2a/fn-template18.C: New test. - -2018-12-04 David Edelsohn - - * gcc.dg/live-patching-2.c: Require LTO. - -2018-12-04 Iain Sandoe - - PR testsuite/88310 - * lib/target-supports.exp (check_effective_target_freorder): - Suppress warnings for missing profile. - -2018-12-04 Jakub Jelinek - - * g++.old-deja/g++.oliva/typename1.C: Don't expect any diagnostics - for C++2a. - * g++.old-deja/g++.oliva/typename2.C: Likewise. - - PR tree-optimization/88285 - * gcc.dg/predict-22.c: Only compile on freorder targets. - -2018-12-04 Julian Brown - - * c-c++-common/goacc/asyncwait-1: Update expected errors and add a - test for "wait (". - -2018-12-04 Jakub Jelinek - - PR c++/88103 - * g++.dg/cpp0x/rv-cond3.C: New test. - -2018-12-04 Richard Biener - - PR tree-optimization/88315 - * gcc.dg/vect/slp-reduc-sad.c: Adjust to provide non-trivial - initial value. - -2018-12-03 Jakub Jelinek - - PR middle-end/64242 - * gcc.c-torture/execute/pr64242.c (foo, bar): New functions. - (p): Make it void *volatile instead of volatile void *. - (q): New variable. - (main): Add a dummy 32-byte aligned variable and escape its address. - Don't require that the two __builtin_alloca (0) calls return the - same address, just require that their difference is smaller than - 1024 bytes. - -2018-12-03 Marek Polacek - - * g++.dg/cpp1y/lambda-generic-83856.C: Use __SIZE_TYPE__. - -2018-12-03 Ed Schonberg - - * gnat.dg/array33.adb: New testcase. - -2018-12-03 Eric Botcazou - - * gnat.dg/array32.adb, gnat.dg/array32.ads: New testcase. - -2018-12-03 Eric Botcazou - - * gnat.dg/generic_inst2.adb, gnat.dg/generic_inst2.ads, - gnat.dg/generic_inst2_c.ads: New testcase. - -2018-12-03 Eric Botcazou - - * gnat.dg/overload2.adb, gnat.dg/overload2_p.adb, - gnat.dg/overload2_p.ads, gnat.dg/overload2_q.adb, - gnat.dg/overload2_q.ads: New testcase. - -2018-12-03 Fritz Reese - Mark Eggleston - - PR fortran/87919 - * gfortran.dg/array_temporaries_5.f90: New test. - * gfortran.dg/dec_bitwise_ops_3.f90: Ditto. - * gfortran.dg/dec_d_lines_3.f: Ditto. - * gfortran.dg/dec_exp_4.f90: Ditto. - * gfortran.dg/dec_exp_5.f90: Ditto. - * gfortran.dg/dec_io_7.f90: Ditto. - * gfortran.dg/dec_structure_24.f90: Ditto. - * gfortran.dg/dec_structure_25.f90: Ditto. - * gfortran.dg/dec_structure_26.f90: Ditto. - * gfortran.dg/dec_structure_27.f90: Ditto. - * gfortran.dg/dec_type_print_3.f90: Ditto. - * gfortran.dg/init_flag_20.f90: Ditto. - -2018-12-03 Jeff Law - - * gcc.dg/pr59963-2.c: Make testnames unique. - * gcc.dg/tree-ssa/builtin-sprintf-warn-18.c: Likewise. - -2018-12-03 Ilya Leoshkevich - - * gcc.target/s390/nodatarel-1.c: Expect .LANCHOR0@GOTENT instead - of a@GOTENT. - * gcc.target/s390/section-anchors.c: New test. - * gcc.target/s390/section-anchors2.c: New test. - * gcc.target/s390/section-anchors3.c: New test. - -2018-12-03 Richard Biener - - PR tree-optimization/88301 - * gcc.dg/tree-ssa/evrp13.c: New testcase. - -2018-12-03 Jakub Jelinek - - PR tree-optimization/71109 - * gcc.c-torture/compile/pr71109.c: New test. - - PR target/88287 - * g++.target/aarch64/sve/vcond_1.C: Adjust for comparison - canonicalization. - -2018-12-03 Ilya Leoshkevich - - PR target/80080 - * gcc.target/s390/pr80080-4.c: New test. - -2018-12-02 Andi Kleen - - * gcc.target/i386/returninst1.c: Run on 64bit only. - * gcc.target/i386/returninst2.c: Dito. - * gcc.target/i386/returninst3.c: Dito. - -2018-12-02 Jakub Jelinek - - PR target/88278 - * gcc.target/i386/pr88278.c: New test. - * gcc.target/i386/pr53759.c: Don't expect vmovlps insn, expect vmovq - instead. - * gcc.target/i386/pr53759-2.c: New test. - - * c-c++-common/gomp/cancel-1.c (f2): Add various taskloop related - tests. - - PR sanitizer/88291 - * c-c++-common/asan/pr88291.c: New test. - - PR c++/88258 - * g++.dg/gomp/pr88258.C: New test. - -2018-12-01 Marek Polacek - - Implement P0634R3, Down with typename! - * g++.dg/cpp0x/alias-decl-43.C: Adjust dg-error. - * g++.dg/cpp0x/decltype67.C: Only expect error in c++17_down. - * g++.dg/cpp1z/typename1.C: New test. - * g++.dg/cpp2a/typename1.C: New test. - * g++.dg/cpp2a/typename10.C: New test. - * g++.dg/cpp2a/typename11.C: New test. - * g++.dg/cpp2a/typename2.C: New test. - * g++.dg/cpp2a/typename3.C: New test. - * g++.dg/cpp2a/typename4.C: New test. - * g++.dg/cpp2a/typename5.C: New test. - * g++.dg/cpp2a/typename6.C: New test. - * g++.dg/cpp2a/typename7.C: New test. - * g++.dg/cpp2a/typename8.C: New test. - * g++.dg/cpp2a/typename9.C: New test. - * g++.dg/diagnostic/missing-typename.C: Only run the test in - c++17_down. - * g++.dg/other/crash-9.C: Add template disambiguator. - * g++.dg/other/nontype-1.C: Only expect error in c++17_down. - * g++.dg/parse/crash13.C: Likewise. - * g++.dg/parse/error36.C: Likewise. - * g++.dg/parse/no-typename1.C: Likewise. - * g++.dg/parse/typedef2.C: Likewise. - * g++.dg/parse/typename11.C: Likewise. - * g++.dg/template/crash48.C: Adjust dg-error. - * g++.dg/template/dependent-name5.C: Only expect error in c++17_down. - Add dg-error. - * g++.dg/template/error29.C: Only expect error in c++17_down. - * g++.dg/template/nested5.C: Add template disambiguator. - * g++.dg/template/pr84789.C: Only expect error in c++17_down. - * g++.dg/template/static30.C: Add dg-error. - * g++.dg/template/typedef6.C: Adjust dg-error. - * g++.dg/template/typename3.C: Only expect error in c++17_down. - - PR c++/83856 - * g++.dg/cpp1y/lambda-generic-83856.C: New test. - - PR c++/79629 - * g++.dg/other/error35.C: New test. - - PR c++/87523 - * g++.dg/cpp1y/lambda-generic-87523.C: New test. - -2018-12-01 Jeff Law - - * gcc.dg/predict-22.c: Update expected output. - -2018-12-01 Jakub Jelinek - - PR target/54589 - * gcc.target/i386/pr54589.c: New test. - -2018-11-30 Jakub Jelinek - - PR testsuite/85368 - * lib/target-supports.exp (logical_op_short_circuit): Remove. - * gcc.dg/builtin-bswap-7.c: Remove logical_op_short_circuit - effective target, drop -mbranch-cost= options from the test and - instead pass --param logical-op-non-short-circuit=0 or - --param logical-op-non-short-circuit=1 depending on what the - tests meant to test. - * gcc.dg/pr21643.c: Likewise. - * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-2.c: Likewise. - * gcc.dg/tree-ssa/phi-opt-11.c: Likewise. - * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-1.c: Likewise. - * gcc.dg/tree-ssa/ssa-dom-thread-4.c: Likewise. - * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-3.c: Likewise. - * gcc.dg/tree-ssa/ssa-thread-14.c: Likewise. - * gcc.dg/tree-ssa/vrp47.c: Likewise. - * gcc.dg/tree-ssa/ssa-dom-thread-11.c: Likewise. - * gcc.dg/tree-ssa/ssa-dom-thread-16.c: Likewise. - * gcc.dg/tree-ssa/ssa-dom-thread-14.c: Likewise. - * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-5.c: Likewise. - * gcc.dg/tree-ssa/vrp87.c: Likewise. - * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-6.c: Likewise. - * gcc.dg/tree-ssa/phi-opt-2.c: Likewise. - * gcc.dg/tree-ssa/ssa-ifcombine-13.c: Likewise. - * gcc.dg/tree-ssa/ssa-thread-11.c: Likewise. - * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-4.c: Likewise. - * gcc.dg/tree-ssa/forwprop-28.c: Likewise. - * gcc.dg/binop-xor1.c: Likewise. - * gcc.dg/pr46309.c: Likewise. - * gcc.dg/tree-ssa/ssa-dom-thread-18.c: New test. - * gcc.dg/tree-ssa/reassoc-32.c: Add - --param logical-op-non-short-circuit=1 to dg-options. - * gcc.dg/tree-ssa/reassoc-33.c: Likewise. - * gcc.dg/tree-ssa/reassoc-34.c: Likewise. - * gcc.dg/tree-ssa/reassoc-35.c: Likewise. - * gcc.dg/tree-ssa/reassoc-36.c: Likewise. - -2018-11-30 Wilco Dijkstra - - PR middle-end/64242 - * gcc.c-torture/execute/pr64242.c: New test. - -2018-11-30 David Malcolm - - * g++.dg/parse/missing-parens-fixit.C: New test. - -2018-11-30 Michael Ploujnikov - - * gcc.dg/independent-cloneids-1.c: New test. - -2018-11-30 Jakub Jelinek - - PR debug/85550 - * g++.dg/debug/dwarf2/pr85550.C: New test. - -2018-11-30 Thomas Schwinge - - PR c/87924 - * c-c++-common/goacc/asyncwait-5.c: Update. - * gfortran.dg/goacc/asyncwait-5.f: Likewise. - - * c-c++-common/goacc/asyncwait-5.c: New file. - * gfortran.dg/goacc/asyncwait-5.f: Likewise. - -2018-11-30 Peter Bergner - - PR target/87496 - * gcc.target/powerpc/pr86324-1.c: Add dg-skip-if selector. - Add -mcpu=power7 option. - -2018-11-30 David Malcolm - - PR preprocessor/88257 - * c-c++-common/Wformat-pr88257.c: New test. - * c-c++-common/Wformat-pr88257.h: New test header. - * c-c++-common/empty.h: New test header. - -2018-11-30 Sam Tebbs - - * gcc.target/arm/neon-dotprod-restriction.c: New file. - * lib/target-supports.exp - (check_effective_target_arm_v8_2a_dotprod_neon_ok_nocache): Include - stdint.h. - -2018-11-30 Martin Liska - - PR sanitizer/81715 - * c-c++-common/asan/asan-stack-small.c: New test. - -2018-11-30 Richard Biener - - * gcc.dg/gimplefe-34.c: New testcase. - * gcc.dg/gimplefe-35.c: Likewise. - -2018-11-30 Martin Liska - - PR testsuite/88265 - * gfortran.dg/simd-builtins-1.f90: Restrict to 128b vectors. - * gfortran.dg/simd-builtins-6.f90: Likewise. - -2018-11-29 Andi Kleen - - * gcc.target/i386/fentryname2.c: New test. - * gcc.target/i386/fentryname3.c: New test. - -2018-11-29 Andi Kleen - - * gcc.target/i386/fentryname1.c: New test. - -2018-11-29 Andi Kleen - - * gcc.target/i386/returninst1.c: New test. - * gcc.target/i386/returninst2.c: New test. - * gcc.target/i386/returninst3.c: New test. - -2018-11-29 Eric Botcazou - - * gcc.target/sparc/20181129-1.c: New test. - * gcc.target/sparc/20181129-2.c: Likewise. - -2018-11-29 Jakub Jelinek - - PR target/88152 - * g++.target/i386/pr88152.C: New test. - -2018-11-29 Vladimir Makarov - - * gcc.target/i386/pr34256.c: Adjust the number of expected moves. - -2018-11-29 Paolo Carlini - - * g++.dg/cpp0x/constexpr-base6b.C: New. - * g++.dg/cpp0x/constexpr-47969.C: Test locations too. - * g++.dg/cpp0x/constexpr-48324.C: Likewise. - * g++.dg/cpp0x/constexpr-ex2.C: Likewise. - * g++.dg/cpp0x/scoped_enum2.C: Likewise. - * g++.dg/cpp1y/pr63996.C: Likewise. - * g++.dg/ext/constexpr-vla5.C: Likewise. - * g++.dg/ext/stmtexpr15.C: Likewise. - * g++.dg/ext/vla1.C: Likewise. - * g++.dg/other/fold1.C: Likewise. - * g++.dg/parse/array-size2.C: Likewise. - * g++.dg/parse/crash36.C: Likewise. - * g++.dg/ubsan/pr81530.C: Likewise. - * g++.dg/warn/Wvla-1.C: Likewise. - * g++.dg/warn/Wvla-2.C: Likewise. - * g++.old-deja/g++.brendan/array1.C: Likewise. - * g++.old-deja/g++.bugs/900402_02.C: Likewise. - * g++.old-deja/g++.law/init3.C: Likewise. - * g++.old-deja/g++.mike/p6149.C: Likewise. - -2018-11-29 David Malcolm - - PR c++/88121 - * g++.dg/lookup/suggestions-scoped-enums.C: New test. - * g++.dg/lookup/suggestions-unscoped-enums.C: New test. - -2018-11-29 Peter Bergner - - PR target/87496 - * gcc.target/powerpc/pr87496.c: New test. - -2018-11-29 Martin Sebor - - PR c/88172 - PR testsuite/88208 - * gcc.dg/attr-aligned-2.c: New test. - * gcc.dg/builtin-has-attribute.c: Adjust. - * c-c++-common/builtin-has-attribute-2.c: Same. - * c-c++-common/builtin-has-attribute-3.c: Same. - * c-c++-common/builtin-has-attribute-4.c: Same. - * c-c++-common/builtin-has-attribute-5.c: New test. - * gcc.target/aarch64/attr-aligned.c: Same. - * gcc.target/i386/attr-aligned.c: Same. - * gcc.target/powerpc/attr-aligned.c: Same. - * gcc.target/sparc/attr-aligned.c: Same. - -2018-11-29 qing zhao - - * gcc.dg/live-patching-1.c: New test. - * gcc.dg/live-patching-2.c: New test. - * gcc.dg/live-patching-3.c: New test. - * gcc.dg/tree-ssa/writeonly-3.c: New test. - * gcc.target/i386/ipa-stack-alignment-2.c: New test. - -2018-11-29 Giuliano Belinassi - - * gcc.dg/sinhatanh-1.c: New test. - * gcc.dg/sinhatanh-2.c: New test. - * gcc.dg/sinhatanh-3.c: New test. - -2018-11-29 Jakub Jelinek - - PR target/54700 - * g++.target/i386/sse4_1-pr54700-1.C: New test. - * g++.target/i386/sse4_1-pr54700-2.C: New test. - * g++.target/i386/avx-pr54700-1.C: New test. - * g++.target/i386/avx-pr54700-2.C: New test. - * g++.target/i386/avx2-pr54700-1.C: New test. - * g++.target/i386/avx2-pr54700-2.C: New test. - * g++.target/i386/sse4_1-check.h: New file. - * g++.target/i386/avx-check.h: New file. - * g++.target/i386/avx2-check.h: New file. - * g++.target/i386/m128-check.h: New file. - * g++.target/i386/m256-check.h: New file. - * g++.target/i386/avx-os-support.h: New file. - - PR target/88152 - * g++.dg/tree-ssa/pr88152-1.C: New test. - * g++.dg/tree-ssa/pr88152-2.C: New test. - - PR target/88234 - * gcc.dg/ubsan/pr88234.c: New test. - -2018-11-29 Richard Biener - - PR tree-optimization/88243 - * gcc.dg/torture/pr88243.c: New testcase. - -2018-11-29 Jakub Jelinek - - PR c++/87539 - * g++.dg/cpp0x/pr87539.C: New test. - -2018-11-28 Martin Sebor - - PR c/88065 - PR c/87297 - * c-c++-common/Wsizeof-pointer-memaccess4.c: New test. - -2018-11-28 Marek Polacek - - Implement P1094R2, Nested inline namespaces. - * g++.dg/cpp2a/nested-inline-ns1.C: New test. - * g++.dg/cpp2a/nested-inline-ns2.C: New test. - -2018-11-28 Nathan Sidwell - - PR c++/87531 - * g++.dg/lookup/pr87531.C: New. - -2018-11-28 Jan Hubicka - - * gcc.dg/predict-13.c: Update template. - * gcc.dg/predict-13b.c: New testcase. - * gcc.dg/predict-22.c: New testcase. - * gcc.dg/tree-ssa/ipa-split-4.c: Change abort to other function to - get sane profile. - -2018-11-28 Marek Polacek - - PR c++/88222 - ICE with bit-field with invalid type. - * g++.dg/ext/flexary31.C: New test. - -2018-11-28 David Edelsohn - - * g++.dg/debug/dwarf2/pr86900.C: XFAIL AIX. - * g++.dg/opt/pr83084.C: XFAIL AIX. - * gcc.dg/recip_sqrt_mult_[12345]: Do not add -fcompare-debug on AIX. - -2018-11-28 Richard Biener - - PR tree-optimization/88223 - * gcc.dg/torture/pr88223.c: New testcase. - -2018-11-28 Richard Biener - - PR tree-optimization/88217 - * g++.dg/pr88217.C: New testcase. - -2018-11-28 Richard Biener - - PR tree-optimization/79351 - * gcc.dg/torture/pr79351.c: New testcase. - -2018-11-28 Jakub Jelinek - - PR target/88189 - * gcc.target/i386/sse4_1-pr88189-1.c: New test. - * gcc.target/i386/sse4_1-pr88189-2.c: New test. - * gcc.target/i386/avx-pr88189-1.c: New test. - * gcc.target/i386/avx-pr88189-2.c: New test. - - PR c++/87476 - * g++.dg/cpp0x/pr87476-1.C: New test. - * g++.dg/cpp0x/pr87476-2.C: New test. - - PR c++/88215 - * c-c++-common/ubsan/pr88215.c: New test. - -2018-11-28 Richard Biener - - PR tree-optimization/88182 - * g++.dg/gomp/pr88182.C: Move from libgomp and use -fopenmp-simd. - -2018-11-27 Jakub Jelinek - - PR c++/88187 - * g++.dg/other/pr88187.C: New test. - - PR c++/88181 - * g++.dg/debug/pr88181.C: New test. - - PR middle-end/87157 - * gcc.dg/vect/costmodel/ppc/costmodel-vect-33.c (main1): Add noipa - attribute. - -2018-11-27 Martin Sebor - - PR 87756 - PR 88211 - PR 88226 - * gcc.dg/tree-ssa/builtin-fprintf-warn-1.c: Update/remove xfails. - * gcc.dg/tree-ssa/builtin-printf-warn-1.c: Same. - * gcc.dg/tree-ssa/user-printf-warn-1.c: Same. - -2018-11-27 Mike Gulick - - PR preprocessor/83173 - * gcc.dg/plugin/location-overflow-test-pr83173.c: New test. - * gcc.dg/plugin/location-overflow-test-pr83173.h: Header for - pr83173.c. - * gcc.dg/plugin/location-overflow-test-pr83173-1.h: Header for - pr83173.c. - * gcc.dg/plugin/location-overflow-test-pr83173-2.h: Header for - pr83173.c. - * gcc.dg/plugin/location_overflow_plugin.c: Use PLUGIN_PRAGMAS - instead of PLUGIN_START_UNIT. - * gcc.dg/plugin/plugin.exp: Enable new test. - -2018-11-27 Jakub Jelinek - - PR testsuite/85368 - * gcc.dg/tree-ssa/phi-opt-11.c: For branch_cost targets, expect 0 ifs - rather than 0 or 2 depending on logical_op_short_circuit. - - PR target/88188 - * gcc.target/powerpc/pr88188.c: New test. - -2018-11-27 Martin Liska - - * gfortran.dg/simd-builtins-1.f90: New test. - * gfortran.dg/simd-builtins-1.h: New test. - * gfortran.dg/simd-builtins-2.f90: New test. - * gfortran.dg/simd-builtins-3.f90: New test. - * gfortran.dg/simd-builtins-3.h: New test. - * gfortran.dg/simd-builtins-4.f: New test. - * gfortran.dg/simd-builtins-4.h: New test. - * gfortran.dg/simd-builtins-5.f: New test. - * gfortran.dg/simd-builtins-6.f90: New test. - -2018-11-27 Jozef Lawrynowicz - - * lib/target-supports.exp - (check_effective_target_logical_op_short_circuit): Add msp430. - (check_effective_target_int_eq_float): New. - (check_effective_target_ptr_eq_long): New. - * c-c++-common/pr41779.c: Require int_eq_float for dg-warning tests. - * c-c++-common/pr57371-2.c: XFAIL optimized dump scan when - sizeof (float) != sizeof (int). - * gcc.dg/pr84670-4.c: Require ptr_eq_long. - * gcc.dg/pr85859.c: Likewise. - * gcc.dg/Wno-frame-address.c: Skip for msp430-elf. - * gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise. - * gcc.dg/ifcvt-4.c: Likewise. - * gcc.dg/pr34856.c: Likewise. - * gcc.dg/builtin-apply2.c: Likewise. - * gcc.dg/tree-ssa/ssa-dse-26.c: Likewise. - * gcc.dg/attr-alloc_size-11.c: Remove dg-warning XFAIL for msp430. - * gcc.dg/tree-ssa/20040204-1.c: Likewise. - * gcc.dg/compat/struct-by-value-16a_x.c: Build at -O1 for msp430 - so it fits. - * gcc.dg/lto/20091013-1_0.c: Require ptr_eq_long. - * gcc.dg/lto/20091013-1_1.c: Remove xfail-if for when - sizeof(void *) != sizeof(long). - * gcc.dg/lto/20091013-1_2.c: Likewise. - * gcc.dg/tree-ssa/loop-1.c: Fix expected dg-final behaviour for msp430. - * gcc.dg/tree-ssa/gen-vect-25.c: Likewise. - * gcc.dg/tree-ssa/gen-vect-11.c: Likewise. - * gcc.dg/tree-ssa/loop-35.c: Likewise. - * gcc.dg/tree-ssa/pr23455.c: Likewise. - * gcc.dg/weak/typeof-2.c: Likewise. - * gcc.target/msp430/interrupt_fn_placement.c: Skip for 430 ISA. - * gcc.target/msp430/pr78818-data-region.c: Fix scan-assembler text. - * gcc.target/msp430/pr79242.c: Don't skip for -msmall. - * gcc.target/msp430/special-regs.c: Use "__asm__" instead of "asm". - -2018-11-26 Martin Sebor - - PR 87756 - * gcc.dg/warn-sprintf-no-nul-2.c: Move incomplete tests from here... - * gcc.dg/warn-sprintf-no-nul-3.c: ...to here and complete them. - -2018-11-26 Marek Polacek - - PR c++/88120 - ICE when calling save_expr in a template. - * g++.dg/cpp0x/pr88120.C: New test. - -2018-11-26 Jozef Lawrynowicz - - * c-c++-common/Warray-bounds-3.c (test_strcpy_bounds): Use long instead - of int if __SIZEOF_INT__ == 2. - * c-c++-common/Wrestrict.c: Test memcpy range with smaller length when - __SIZEOF_SIZE_T < 4. - * c-c++-common/rotate-8.c: Define smaller "large" constant when - __SIZEOF_INT__ == 2. - * gcc.dg/pr53037-1.c: Add dg-require-effective-target int32. - * gcc.dg/pr53037-2.c: Likewise. - * gcc.dg/pr53037-3.c: Likewise. - * gcc.dg/pr85512.c: Likewise. - * gcc.dg/pr59963-2.c: Add dg-warning for int16. - * gcc.dg/sancov/cmp0.c: Explicitly use __INT32_TYPE__ instead of int. - * gcc.dg/tree-ssa/addadd.c: Fix dg-final directives for int16. - * gcc.dg/tree-ssa/pr79327-2.c: Likewise. - * gcc.dg/tree-ssa/builtin-sprintf-2.c: Filter out invalid tests for - int16. - * gcc.dg/tree-ssa/builtin-sprintf-warn-10.c: Update sizes in dg-warning - directives for int16. - -2018-11-26 Jozef Lawrynowicz - - * lib/target-supports.exp (check_effective_target_newlib_nano_io): New. - * gcc.c-torture/execute/920501-8.c: Register undefined linker symbol - _printf_float for newlib_nano_io target. - * gcc.c-torture/execute/930513-1.c: Likewise. - * gcc.dg/torture/builtin-sprintf.c: Likewise. - * gcc.c-torture/execute/ieee/920810-1.x: New. - -2018-11-26 Jakub Jelinek - - PR target/88195 - * gcc.target/i386/pr88195.c: New test. - - PR testsuite/88090 - * obj-c++.dg/attributes/method-nonnull-1.mm (my_size_t): New typedef. - (MyArray::removeObjectAtIndex): Use my_size_t instead of size_t and - expect it in diagnostics. - - PR c++/86900 - * g++.dg/debug/dwarf2/pr86900.C: New test. - -2018-11-26 Jozef Lawrynowicz - - * gcc.c-torture/compile/20151204.c: Add dg-require-effective-target - size20plus. - * gcc.dg/pr34225.c: Likewise. - * gcc.dg/pr40971.c: Likewise. - * gcc.dg/pr69071.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-10.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-2.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-3.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-5.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-6.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-7.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-8.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-9.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-11.c: Add dg-require-effective-target - size32plus. - * gcc.dg/Walloc-size-larger-than-4.c: Likewise. - * gcc.dg/Walloc-size-larger-than-5.c: Likewise. - * gcc.dg/Walloc-size-larger-than-6.c: Likewise. - * gcc.dg/Walloc-size-larger-than-7.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-1.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-1b.c: Likewise. - * lib/target-supports.exp (check_effective_target_size20plus): New. - (check_effective_target_size32plus): Update comment. - -2018-11-26 Uros Bizjak - - PR target/88178 - * gcc.target/pr88178.c: New test. - -2018-11-26 Matthias Klose - - * jit.dg/test-long-names.c: Fix build with -Wformat-security. - -2018-11-25 Rainer Orth - - * lib/target-supports.exp (check_compile): Handle D. - (check_effective_target_d_runtime): New proc. - * lib/gdc-dg.exp (gdc-dg-test): Demote link and run tests to - compile unless d_runtime. - * gdc.dg/runnable.d: Skip unless d_runtime. - * gdc.dg/lto/lto.exp: Require d_runtime to run tests. - -2018-11-24 Paul Thomas - - PR fortran/88143 - * gfortran.dg/associate_46.f90: New test. - -2018-11-23 Jeff Law - - PR rtl-optimization/84768 - * gcc.c-torture/compile/pr84768.c: New test. - -2018-11-23 Vladimir Makarov - - * gcc.target/powerpc/pr70669.c: Use unary minus instead of - addition. - -2018-11-23 Jakub Jelinek - - PR tree-optimization/87756 - * gcc.dg/builtin-memchr-2.c: Scan the gimple dump instead of - optimized. - * gcc.dg/builtin-memchr-3.c: Likewise. - -2018-11-23 Martin Sebor - - PR tree-optimization/87756 - * gcc.dg/builtin-memchr-2.c: New test. - * gcc.dg/builtin-memchr-3.c: Same. - * gcc.dg/warn-sprintf-no-nul-2.c: Same. - -2018-11-23 Martin Sebor - - PR testsuite/88098 - * gcc.dg/Wbuiltin-declaration-mismatch-4.c: Adjust. - * gcc.dg/Wbuiltin-declaration-mismatch-5.c: New test. - * gcc.dg/torture/pr67222.c: Adjust. - -2018-11-23 Richard Biener - - PR tree-optimization/88149 - * g++.dg/torture/pr88149.C: New testcase. - -2018-11-23 Jakub Jelinek - - PR tree-optimization/86614 - * c-c++-common/Warray-bounds-2.c (wrap_strncpy_dstarray_diff_neg, - call_strncpy_dstarray_diff_neg): Don't expect late -Warray-bounds - warnings, just early ones from FE. Remove dg-prune-output. - * c-c++-common/Warray-bounds-6.c: New test. - - * gfortran.dg/pad_source_1.f: New test. - * gfortran.dg/pad_source_2.f: New test. - * gfortran.dg/pad_source_3.f: New test. - * gfortran.dg/pad_source_4.f: New test. - * gfortran.dg/pad_source_5.f: New test. - -2018-11-22 Jan Hubicka - - PR lto/88142 - * g++.dg/lto/odr-5_0.C: New testcase. - * g++.dg/lto/odr-5_1.C: New testcase. - -2018-11-22 Jan Hubicka - - * g++.dg/lto/odr-2_0.C: Drop dg-lto-options. - * g++.dg/lto/odr-3_0.C: Likewise; harden for optimizing compilatoin. - -2018-11-22 Jakub Jelinek - - PR tree-optimization/85794 - * gcc.dg/vect/O3-pr85794.c: New test. - -2018-11-22 Vladimir Makarov - - PR rtl-optimization/87718 - * gcc.target/i386/pr82361-1.c: Check only the first operand of - moves. - -2018-11-22 Thomas Preud'homme - - * gcc.target/arm/pr85434.c: New test. - -2018-11-22 Richard Biener - - PR tree-optimization/88148 - * gfortran.dg/pr88148.f90: New testcase. - -2018-11-22 Andreas Schwab - - * g++.dg/lto/odr-2_0.C: Remove extra brace - -2018-11-22 Martin Liska - - PR sanitizer/88017 - * gcc.dg/tsan/pr88017.c: New test. - -2018-11-21 Jakub Jelinek - - PR c++/88122 - * g++.dg/cpp0x/implicit15.C: New test. - - PR c++/87386 - * g++.dg/diagnostic/pr87386.C: New test. - * g++.dg/parse/error17.C: Adjust expected diagnostics. - - PR rtl-optimization/85925 - * gcc.c-torture/execute/20181120-1.c: Require effective target - int32plus. - (u): New variable. - (main): Compare d against u.f1 rather than 0x101. Use 0x4030201 - instead of 0x10101. - -018-11-21 Lokesh Janghel - - PR target/85667 - * gcc.target/pr85667-1.c: New testcase. - * gcc.target/pr85667-2.c: New testcase. - * gcc.target/pr85667-3.c: New testcase. - * gcc.target/pr85667-4.c: New testcase. - -2018-11-21 Jan Hubicka - - PR lto/87957 - * g++.dg/lto/odr-1_0.C: Extend by mismatched enum. - * g++.dg/lto/odr-1_1.C: Extend by mismatched enum. - * g++.dg/lto/odr-2_0.C: New. - * g++.dg/lto/odr-2_1.C: New. - * g++.dg/lto/odr-3_0.C: New. - * g++.dg/lto/odr-3_1.C: New. - -2018-11-21 Jakub Jelinek - - PR target/87839 - * gcc.target/aarch64/pr87839.c: New test. - -2018-11-21 Renlin Li - - PR middle-end/84877 - * gcc.dg/pr84877.c: New. - -2018-11-21 H.J. Lu - - PR target/87317 - * gcc.target/i386/pr87317-1.c: New file. - * gcc.target/i386/pr87317-2.c: Likewise. - * gcc.target/i386/pr87317-3.c: Likewise. - * gcc.target/i386/pr87317-4.c: Likewise. - * gcc.target/i386/pr87317-5.c: Likewise. - * gcc.target/i386/pr87317-6.c: Likewise. - * gcc.target/i386/pr87317-7.c: Likewise. - * gcc.target/i386/pr87317-8.c: Likewise. - * gcc.target/i386/pr87317-9.c: Likewise. - * gcc.target/i386/pr87317-10.c: Likewise. - * gcc.target/i386/pr87317-11.c: Likewise. - * gcc.target/i386/pr87317-12.c: Likewise. - * gcc.target/i386/pr87317-13.c: Likewise. - -2018-11-21 Tom de Vries - - PR driver/79855 - * lib/options.exp (check_for_options_with_filter): New proc. - * gcc.misc-tests/help.exp: Check that --help=params lines end with - period. - -2018-11-21 Jakub Jelinek - Mark Eggleston - - * gfortran.dg/include_10.f: New test. - * gfortran.dg/include_10.inc: New file. - * gfortran.dg/include_11.f: New test. - * gfortran.dg/include_12.f: New test. - * gfortran.dg/include_13.f90: New test. - * gfortran.dg/gomp/include_1.f: New test. - * gfortran.dg/gomp/include_1.inc: New file. - * gfortran.dg/gomp/include_2.f90: New test. - -2018-11-21 Andreas Krebbel - - * gcc.target/s390/vector/align-1.c: New test. - * gcc.target/s390/vector/align-2.c: New test. - -2018-11-20 Martin Sebor - - * c-c++-common/builtin-has-attribute-2.c: New test. - * c-c++-common/builtin-has-attribute-3.c: New test. - * c-c++-common/builtin-has-attribute-4.c: New test. - * c-c++-common/builtin-has-attribute.c: New test. - * gcc.dg/builtin-has-attribute.c: New test. - * gcc/testsuite/gcc.target/i386/builtin-has-attribute.c: New test. - -2018-11-20 Jan Hubicka - - PR lto/84044 - * g++.dg/lto/odr-4_0.C: New testcase. - * g++.dg/lto/odr-4_1.C: New testcase. - -2018-11-20 Jakub Jelinek - - PR c++/88110 - * g++.dg/cpp2a/constexpr-virtual13.C: New test. - - PR tree-optimization/87895 - * gcc.dg/gomp/pr87895-1.c: New test. - * gcc.dg/gomp/pr87895-2.c: New test. - * gcc.dg/gomp/pr87895-3.c: New test. - -2018-11-20 Uros Bizjak - - PR target/88070 - * gcc.target/i386/pr88070.c: New test. - -2018-11-20 Andreas Krebbel - - * gcc.target/s390/flogr-1.c: New test. - -2018-11-20 Jan Hubicka - - PR lto/87997 - * g++.dg/torture/pr87997.C: New testcase. - -2018-11-20 Jan Hubicka - - PR ipa/87706 - * gcc.dg/ipa/ctor-empty-1.c: Update template. - -2018-11-20 Richard Biener - - PR tree-optimization/88074 - * gcc.dg/pr88074.c: New testcase. - -2018-11-20 Martin Liska - - * pr57362.C: Move to g++.target/i386 folder. - * pr57548.C: Likewise. - * pr59492.C: Likewise. - * pr82625.C: Likewise. - * pr85329-2.C: Likewise. - * pr85329.C: Likewise. - -2018-11-20 Richard Biener - - PR tree-optimization/88069 - * gcc.dg/pr88069.c: New testcase. - -2018-11-20 Martin Liska - - PR ipa/88093 - * gcc.target/i386/ipa-stack-alignment.c: Add - -fomit-frame-pointer. - -2018-11-20 Ilya Leoshkevich - - PR target/88083 - * gcc.target/s390/pr88083.c: New test. - -2018-11-20 Richard Biener - - PR middle-end/83215 - * g++.dg/tree-ssa/pr83215.C: New testcase. - -2018-11-20 Eric Botcazou - - * gcc.c-torture/execute/20181120-1.c: New test. - -2018-11-20 Richard Biener - - PR tree-optimization/88087 - * gcc.dg/tree-ssa/pr88087.c: New testcase. - -2018-11-19 Paul Koning - - * gcc.c-torture/execute/align-3.c: Skip if pdp11. - * gcc.c-torture/execute/pr23467.c: Ditto. - * gcc.c-torture/execute/pr36093.c: Ditto. - * gcc.c-torture/execute/pr43783.c: Ditto. - * gcc.dg/const-elim-2.c: Xfail if pdp11. - * gcc.dg/torture/pr36400.c: Ditto. - * gcc.dg/tree-ssa/loop-1.c: Xfail for pdp11. Add pdp11 to check - for jsr. - -2018-11-19 Paul Koning - - * lib/target-supports.exp (check_weak_available): Return "no" for - pdp11. - -2018-11-19 Marek Polacek - - PR c++/87781 - detect invalid elaborated-type-specifier. - * g++.dg/parse/elab3.C: New test. - * g++.dg/template/crash115.C: Adjust dg-error. - -2018-11-19 Peter Bergner - - PR rtl-optimization/88033 - * gcc.target/i386/pr88033.c: New test. - -2018-11-19 Kyrylo Tkachov - - * gcc.target/aarch64/sve/unroll-1.c: New test. - -2018-11-19 David Malcolm - - PR tree-optimization/87025 - * gcc.dg/pr87025.c: New test. - -2018-11-19 Jakub Jelinek - - PR tree-optimization/88071 - * gcc.dg/pr88071.c: New test. - - PR c++/60994 - * g++.dg/lookup/pr60994.C: New test. - - PR debug/87039 - * g++.dg/gomp/pr78363-4.C: New test. - * g++.dg/gomp/pr78363-5.C: New test. - * g++.dg/gomp/pr78363-6.C: New test. - * g++.dg/gomp/pr78363-7.C: New test. - -2018-11-19 Richard Biener - - PR lto/87229 - * g++.dg/lto/pr87229_0.C: New testcase. - -2018-11-19 Martin Liska - - PR lto/88077 - * gcc.dg/lto/pr88077_0.c: New test. - * gcc.dg/lto/pr88077_1.c: New test. - -2018-11-19 Martin Liska - - * g++.dg/gcov/pr84548.C: Remove remove-gcda. - * g++.dg/gcov/ternary.C: Likewise. - * lib/gcov.exp: Support pattern of following form: - count(1*). - -2018-11-19 Eric Botcazou - - * gcc.target/visium/overflow8.c: Remove -fno-if-conversion and - unrelated final test. - * gcc.target/visium/overflow16: Likewise. - * gcc.target/visium/overflow32.c: Likewise. - -2018-11-18 Paolo Carlini - - * g++.dg/template/crash91.C: Check location too. - -2018-11-19 Martin Liska - - PR gcov-profile/88045 - * g++.dg/gcov/pr88045.C: New test. - -2018-11-18 Thomas Koenig - - PR fortran/88073 - * gfortran.dg/where_7.f90: New test. - -2018-11-18 Thomas Koenig - - PR fortran/70260 - * gfortran.dg/proc_ptr_result_5.f90: Add dg-error directive. - * gfortran.dg/protected_4.f90: Split line to allow for extra error. - * gfortran.dg/protected_6.f90: Likewise. - * gfortran.dg/assign_11.f90: New test. - * gfortran.dg/pointer_assign_12.f90: New test. - -2018-11-17 Jakub Jelinek - - PR tree-optimization/87546 - * gcc.dg/vect/O3-pr87546.c: New test. - -2018-11-17 Jozef Lawrynowicz - - PR middle-end/87854 - * g++.dg/parse/concat1.C: Add dg-error for targets with size_t < 32 - bits. Update comment. - * gcc.dg/concat2.c: Likewise. - * gcc.c-torture/compile/pr46534.c: Likewise. - -2018-11-16 Jakub Jelinek - - PR c++/87269 - * g++.dg/lookup/pr87269.C (std::size_t): New typedef. - (operator"" _a) Change unsigned long type to std::size_t. - -2018-11-16 Michael Meissner - - * gcc.target/powerpc/fusion3.c: Delete. - * gcc.target/powerpc/fusion4.c: Delete. - -2018-11-16 Jakub Jelinek - - PR rtl-optimization/87475 - * g++.dg/opt/pr87475.C: New test. - -2018-11-16 Matthew Malcomson - - * gcc.c-torture/execute/printf-2.c: Skip on wrapped boards. - * gcc.c-torture/execute/user-printf.c: Likewise. - -2018-11-16 Nathan Sidwell - - PR c++/87269 - * g++.dg/lookup/pr87269.C: New. - -2018-11-16 Richard Biener - - PR testsuite/88053 - * g++.dg/lto/pr54625-2_0.c: Add -w. - -2018-11-16 Ilya Leoshkevich - - * gcc.target/s390/md/rXsbg_mode_sXl.c: Do not use arithmetic in - r{o,x}sbg expectations. - * gcc.target/s390/risbg-ll-2.c: Likewise. - -2018-11-16 Richard Biener - - PR testsuite/88053 - * g++.dg/lto/pr54625-1_0.c: Add -w. - -2018-11-15 Martin Sebor - - PR c++/87541 - PR c++/87542 - * g++.dg/ext/attr-alloc_size.C: New test. - * c-c++-common/pr71574.c: Adjust diagnostics. - * c-c++-common/attributes-1.c: Same. - * gcc.dg/attr-alloc_align-2.c: Same. - * gcc.dg/attr-alloc_align-4.c: New test. - * gcc.dg/attr-alloc_size-2.c: Adjust diagnostics. - * gcc.dg/attr-alloc_size.c: Same. - * gcc.dg/attr-assume_aligned-4.c: New test. - * gcc.dg/format/attr-3.c: Adjust diagnostics. - * gcc.dg/nonnull-2.c: Same. - * gcc.dg/torture/pr80612.c: Same. - * obj-c++.dg/attributes/method-format-1.mm: Same. - * obj-c++.dg/attributes/method-nonnull-1.mm: Same. - * objc.dg/attributes/method-format-1.m: same. - * objc.dg/attributes/method-nonnull-1.m: Same. - -2018-11-15 Martin Sebor - - PR c/83656 - * gcc.dg/20021006-1.c - * gcc.dg/Wbuiltin-declaration-mismatch.c: New test. - * gcc.dg/Wbuiltin-declaration-mismatch-2.c: New test. - * gcc.dg/Wbuiltin-declaration-mismatch-3.c: New test. - * gcc.dg/Wbuiltin-declaration-mismatch-4.c: New test. - * gcc.dg/Walloca-16.c: Adjust. - * gcc.dg/Wrestrict-4.c: Adjust. - * gcc.dg/Wrestrict-5.c: Adjust. - * gcc.dg/atomic/stdatomic-generic.c: Adjust. - * gcc.dg/atomic/stdatomic-lockfree.c: Adjust. - * gcc.dg/initpri1.c: Adjust. - * gcc.dg/pr15698-1.c: Adjust. - * gcc.dg/pr69156.c: Adjust. - * gcc.dg/pr83463.c: Adjust. - * gcc.dg/redecl-4.c: Adjust. - * gcc.dg/tls/thr-init-2.c: Adjust. - * gcc.dg/torture/pr55890-2.c: Adjust. - * gcc.dg/torture/pr55890-3.c: Adjust. - * gcc.dg/torture/pr67741.c: Adjust. - * gcc.dg/torture/stackalign/sibcall-1.c: Adjust. - * gcc.dg/torture/tls/thr-init-1.c: Adjust. - * gcc.dg/tree-ssa/builtins-folding-gimple-ub.c: Adjust. - -2018-11-15 Nathan Sidwell - - PR c++/86246 - PR c++/87989 - * g++.dg/template/pr86246.C: New. - * g++.dg/template/pr87989.C: New. - -2018-11-15 Paolo Carlini - - * g++.dg/cpp0x/constexpr-diag3.C: Check locations too. - * g++.dg/cpp0x/constexpr-ice19.C: Likewise. - * g++.dg/cpp0x/constexpr-nonlit2.C: Likewise. - * g++.dg/cpp1z/constexpr-lambda15.C: Likewise. - * g++.dg/ext/constexpr-vla5.C: Likewise. - * g++.dg/gomp/pr85134.C: Likewise. - -2018-11-15 Nathan Sidwell - - DR 2336 - * g++.dg/cpp1y/pr79393-3.C: New. - -2018-11-15 David Malcolm - - PR other/19165 - * c-c++-common/diagnostic-format-json-1.c: New test. - * c-c++-common/diagnostic-format-json-2.c: New test. - * c-c++-common/diagnostic-format-json-3.c: New test. - * c-c++-common/diagnostic-format-json-4.c: New test. - * c-c++-common/diagnostic-format-json-5.c: New test. - * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c - (custom_diagnostic_finalizer): Add diagnostic_t param. - * gcc.dg/plugin/location_overflow_plugin.c - (verify_unpacked_ranges): Likewise. - (verify_no_columns): Likewise. - * gfortran.dg/diagnostic-format-json-1.F90: New test. - * gfortran.dg/diagnostic-format-json-2.F90: New test. - * gfortran.dg/diagnostic-format-json-3.F90: New test. - -2018-11-15 Richard Biener - - PR middle-end/88029 - * gcc.dg/tree-ssa/pr88029.c: New testcase. - -2018-11-15 Richard Biener - - PR tree-optimization/88031 - * gcc.dg/pr88031.c: New testcase. - -2018-11-15 Wilco Dijkstra - - * gcc.target/aarch64/pr62178.c: Fix spaces. - -2018-11-15 Richard Biener - - PR tree-optimization/88030 - * gcc.dg/tsan/pr88030.c: New testcase. - -2018-11-15 Jakub Jelinek - - PR rtl-optimization/88018 - * g++.dg/tsan/pr88018.C: New test. - -2018-11-15 Richard Biener - - PR middle-end/87917 - * gcc.dg/tree-ssa/pr87917.c: New testcase. - -2018-11-15 Bin Cheng - - PR tree-optimization/84648 - * gcc.dg/tree-ssa/pr84648.c: New test. - * gcc.dg/pr68317.c: Add warning check on overflow. - -2018-11-14 Nathan Sidwell - - PR debug/88006 - PR debug/87462 - * g++.dg/debug/dwarf2/pr87462.C: New. - * g++.dg/debug/dwarf2/pr88006.C: New. - -2018-11-14 Paolo Carlini - - * g++.dg/cpp0x/nsdmi-union6.C: Test locations too. - * g++.dg/cpp0x/nsdmi6.C: Likewise. - * g++.dg/ext/flexary4.C: Likewise. - * g++.dg/ext/flexary9.C: Likewise. - * g++.dg/other/incomplete2.C: Likewise. - * g++.dg/parse/friend12.C: Likewise. - -2018-11-14 Jakub Jelinek - - P1236R1 - Signed integers are two's complement - * g++.dg/cpp2a/constexpr-shift1.C: New test. - * g++.dg/warn/permissive-1.C (enum A, enum D): Don't expect - diagnostics here for c++2a. - * g++.dg/cpp0x/constexpr-shift1.C (fn3, i3, fn4, i4): Don't expect - diagnostics here for c++2a. - * g++.dg/cpp0x/constexpr-60049.C (f3, x3, y3): Likewise. - * g++.dg/ubsan/cxx11-shift-1.C (main): Add some further tests. - * g++.dg/ubsan/cxx11-shift-2.C (main): Likewise. - * g++.dg/ubsan/cxx2a-shift-1.C: New test. - * g++.dg/ubsan/cxx2a-shift-2.C: New test. - -2018-11-14 Jeff Law - - * gcc.c-torture/compile/20181114.c: New test. - -2018-11-14 Richard Biener - - PR middle-end/87985 - * gcc.dg/pr87985.c: New testcase. - -2018-11-14 Ilya Leoshkevich - - * gcc.target/s390/mrecord-mcount.c (profileme): Expect .long in - 31-bit mode. - -2018-11-14 Ilya Leoshkevich - - * gcc.target/s390/global-array-almost-huge-element.c: Run only - in 64-bit mode. - * gcc.target/s390/global-array-almost-negative-huge-element.c: - Likewise. - * gcc.target/s390/global-array-even-element.c: Likewise. - -2018-11-14 Wilco Dijkstra - Jackson Woodruff - - PR 71026/tree-optimization - * gcc.dg/div-cmp-1.c: New test. - * gcc.dg/div-cmp-2.c: New test. - -2018-11-14 Jakub Jelinek - - PR other/88007 - * gcc.dg/pr88007.c: New test. - - PR rtl-optimization/87817 - * gcc.target/i386/bmi2-bzhi-3.c (main): Add a couple of new tests. - -2018-11-14 Wilco Dijkstra - - * gcc.target/aarch64/pr62178.c: Relax scan-assembler checks. - -2018-11-14 Patrick Bernardi - - * gnat.dg/rt_signals.adb: New testcase. - -2018-11-14 Hristian Kirtchev - - * gnat.dg/ghost1.adb, gnat.dg/ghost1.ads: New testcase. - -2018-11-14 Javier Miranda - - * gnat.dg/equal5.adb, gnat.dg/equal5.ads: New testcase. - -2018-11-14 Eric Botcazou - - * gnat.dg/compile_time_error1.adb, - gnat.dg/compile_time_error1.ads, - gnat.dg/compile_time_error1_pkg.ads: New testcase. - -2018-11-14 Justin Squirek - - * gnat.dg/generic_pkg.adb: New testcase. - -2018-11-14 Ed Schonberg - - * gnat.dg/limited_aggr.adb, gnat.dg/limited_aggr.ads: New - testcase. - -2018-11-14 Justin Squirek - - * gnat.dg/enum5.adb: New testcase. - -2018-11-14 Hristian Kirtchev - - * gnat.dg/bip_exception.adb, gnat.dg/bip_exception.ads, - gnat.dg/bip_exception_pkg.ads: New testcase. - -2018-11-14 Hristian Kirtchev - - * gnat.dg/equal4.adb, gnat.dg/equal4.ads, - gnat.dg/equal4_controlled_filter.ads, - gnat.dg/equal4_full_selector_filter.ads, - gnat.dg/equal4_smart_pointers.ads: New testcase. - -2018-11-14 Piotr Trojanek - - * gnat.dg/generic_actuals.adb: New testcase. - -2018-11-14 Richard Biener - - PR tree-optimization/87974 - * g++.dg/opt/pr87974.C: New testcase. - -2018-11-14 Jakub Jelinek - - PR tree-optimization/87977 - * gcc.dg/recip_sqrt_mult_1.c: Add -fcompare-debug to dg-options. - * gcc.dg/recip_sqrt_mult_2.c: Likewise. - * gcc.dg/recip_sqrt_mult_3.c: Likewise. - * gcc.dg/recip_sqrt_mult_4.c: Likewise. - * gcc.dg/recip_sqrt_mult_5.c: Likewise. - -2018-11-13 Peter Bergner - - PR rtl-optimization/87507 - * gcc.target/powerpc/pr87507.c: New test. - * gcc.target/powerpc/pr68805.c: Update expected results. - -2018-11-13 Jakub Jelinek - - PR tree-optimization/87898 - * gcc.dg/gomp/pr87898.c: New test. - -2018-11-13 David Malcolm - - * g++.dg/plugin/comment_plugin.c: Replace "source_location" with - "location_t". - * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c: Likewise. - -2018-11-13 Martin Sebor - - PR middle-end/81824 - * gcc.dg/attr-copy-5.c: New test. - * gcc.dg/tls/diag-6.c: Adjust expected diagnostics. - -2018-11-13 Richard Biener - - PR tree-optimization/86991 - * gcc.dg/pr86991.c: New testcase. - -2018-11-13 David Malcolm - - PR ipa/87955 - * gcc.target/i386/pr87955.c: New test. - -2018-11-12 Aldy Hernandez - - * gcc.dg/tree-ssa/pr64130.c: Adjust for new value_range pretty - printer. - * gcc.dg/tree-ssa/vrp92.c: Same. - -2018-11-13 Richard Biener - - PR tree-optimization/87931 - * gcc.dg/graphite/pr87931.c: New testcase. - -2018-11-13 Martin Liska - - PR sanitizer/87930 - * gcc.target/i386/pr87930.c: New test. - -2018-11-13 Richard Biener - - PR tree-optimization/87962 - * gcc.dg/pr87962.c: New testcase. - -2018-11-13 Richard Biener - - PR tree-optimization/87967 - * g++.dg/opt/pr87967.C: New testcase. - -2018-11-13 Claudiu Zissulescu - - * gcc.target/arc/builtin_eh.c: New test. - -2018-11-13 Claudiu Zissulescu - - * gcc.target/arc/firq-1.c: Update test. - * gcc.target/arc/firq-3.c: Likewise. - * gcc.target/arc/firq-4.c: Likewise. - * gcc.target/arc/interrupt-6.c: Likewise. - -2018-11-13 Jakub Jelinek - - PR rtl-optimization/87918 - * gcc.target/i386/pr87918.c: New test. - -2018-11-13 Alan Modra - - * gcc.target/powerpc/rotmask.c: New. - -2018-11-13 Kugan Vivekanandarajah - - PR middle-end/86677 - PR middle-end/87528 - * g++.dg/tree-ssa/pr86544.C: Run only for target supporting popcount - pattern. - * gcc.dg/tree-ssa/popcount.c: Likewise. - * gcc.dg/tree-ssa/popcount2.c: Likewise. - * gcc.dg/tree-ssa/popcount3.c: Likewise. - * gcc.target/aarch64/popcount4.c: New test. - * lib/target-supports.exp (check_effective_target_popcountl): New. - -2018-11-12 Martin Liska - - PR gcov-profile/87442 - * gcc.dg/profile-filtering-1.c: New test. - * gcc.dg/profile-filtering-2.c: New test. - -2018-11-12 Martin Sebor - - PR c/81824 - * gcc.dg/Wattribute-alias.c: Require ifunc support. - -2018-11-12 Renlin Li - - PR target/87815 - * gcc.target/aarch64/sve/pr87815.c: New. - -2018-11-12 Sudakshina Das - - * gcc.target/arm/multilib.exp: Add some -march=armv8.5-a - combination tests. - -2018-11-11 Xianmiao Qu - - * gcc.target/csky/fnmul-1.c: New. - * gcc.target/csky/fnmul-2.c: New. - * gcc.target/csky/fnmul-3.c: New. - * gcc.target/csky/fnmul-4.c: New. - -2018-11-11 Uros Bizjak - - PR target/87928 - * gcc.target/i386/pr87928.c: New test. - -2018-11-09 Martin Sebor - - PR testsuite/87965 - * c-c++-common/pr60226.c: Adjust text of expected diagnostic. - * gcc.dg/pr39323-1.c: Ditto. - -2018-11-09 Paul Koning - - * gcc.dg/Walloca-16.c: Ignore conflicting types for built-in - warnings. - * gcc.dg/Wrestrict-4.c: Ditto. - * gcc.dg/Wrestrict-5.c: Ditto. - * gcc.dg/pr83463.c: Ditto. - * gcc.dg/torture/pr55890-2.c: Ditto. - * gcc.dg/torture/pr55890-3.c: Ditto. - * gcc.dg/torture/pr71816.c: Ditto. - -2018-11-09 Jakub Jelinek - - * c-c++-common/gomp/clauses-5.c: New test. - - * c-c++-common/gomp/requires-1.c: Prune not supported yet messages. - * c-c++-common/gomp/requires-2.c: Likewise. - * c-c++-common/gomp/requires-4.c: Likewise. - - * c-c++-common/gomp/lastprivate-conditional-1.c: New test. - * c-c++-common/gomp/lastprivate-conditional-2.c: New test. - -2018-11-09 Jeff Law - - gcc.dg/torture/stackalign/builtin-apply-2.c: Skip on v850. - -2018-11-09 Martin Sebor - - PR middle-end/81824 - * gcc.dg/Wattribute-alias.c: New test. - * gcc.dg/Wmissing-attributes.c: New test. - * gcc.dg/attr-copy.c: New test. - * gcc.dg/attr-copy-2.c: New test. - * gcc.dg/attr-copy-3.c: New test. - * gcc.dg/attr-copy-4.c: New test. - -2018-11-09 Martin Sebor - - PR c/87795 - * gcc.dg/attr-aligned.c: New test. - -2018-11-09 Martin Liska - - * gcc.target/i386/ipa-stack-alignment.c: New test. - -2018-11-09 Martin Liska - - * gcc.dg/tree-ssa/writeonly-2.c: New test. - -2018-11-09 Jakub Jelinek - - * gcc.dg/gomp/workshare-reduction-1.c: New test. - * gcc.dg/gomp/workshare-reduction-2.c: New test. - * gcc.dg/gomp/workshare-reduction-3.c: New test. - * gcc.dg/gomp/workshare-reduction-4.c: New test. - * gcc.dg/gomp/workshare-reduction-5.c: New test. - * gcc.dg/gomp/workshare-reduction-6.c: New test. - * gcc.dg/gomp/workshare-reduction-7.c: New test. - * gcc.dg/gomp/workshare-reduction-8.c: New test. - * gcc.dg/gomp/workshare-reduction-9.c: New test. - * gcc.dg/gomp/workshare-reduction-10.c: New test. - * gcc.dg/gomp/workshare-reduction-11.c: New test. - * gcc.dg/gomp/workshare-reduction-12.c: New test. - * gcc.dg/gomp/workshare-reduction-13.c: New test. - * gcc.dg/gomp/workshare-reduction-14.c: New test. - * gcc.dg/gomp/workshare-reduction-15.c: New test. - * gcc.dg/gomp/workshare-reduction-16.c: New test. - * gcc.dg/gomp/workshare-reduction-17.c: New test. - * gcc.dg/gomp/workshare-reduction-18.c: New test. - * gcc.dg/gomp/workshare-reduction-19.c: New test. - * gcc.dg/gomp/workshare-reduction-20.c: New test. - * gcc.dg/gomp/workshare-reduction-21.c: New test. - * gcc.dg/gomp/workshare-reduction-22.c: New test. - * gcc.dg/gomp/workshare-reduction-23.c: New test. - * gcc.dg/gomp/workshare-reduction-24.c: New test. - * gcc.dg/gomp/workshare-reduction-25.c: New test. - * gcc.dg/gomp/workshare-reduction-26.c: New test. - * gcc.dg/gomp/workshare-reduction-27.c: New test. - * gcc.dg/gomp/workshare-reduction-28.c: New test. - * gcc.dg/gomp/workshare-reduction-29.c: New test. - * gcc.dg/gomp/workshare-reduction-30.c: New test. - * gcc.dg/gomp/workshare-reduction-31.c: New test. - * gcc.dg/gomp/workshare-reduction-32.c: New test. - * gcc.dg/gomp/workshare-reduction-33.c: New test. - * gcc.dg/gomp/workshare-reduction-34.c: New test. - * gcc.dg/gomp/workshare-reduction-35.c: New test. - * gcc.dg/gomp/workshare-reduction-36.c: New test. - * gcc.dg/gomp/workshare-reduction-37.c: New test. - * gcc.dg/gomp/workshare-reduction-38.c: New test. - * gcc.dg/gomp/workshare-reduction-39.c: New test. - * gcc.dg/gomp/workshare-reduction-40.c: New test. - * gcc.dg/gomp/workshare-reduction-41.c: New test. - * gcc.dg/gomp/workshare-reduction-42.c: New test. - * gcc.dg/gomp/workshare-reduction-43.c: New test. - * gcc.dg/gomp/workshare-reduction-44.c: New test. - * gcc.dg/gomp/workshare-reduction-45.c: New test. - * gcc.dg/gomp/workshare-reduction-46.c: New test. - * gcc.dg/gomp/workshare-reduction-47.c: New test. - * gcc.dg/gomp/workshare-reduction-48.c: New test. - * gcc.dg/gomp/workshare-reduction-49.c: New test. - * gcc.dg/gomp/workshare-reduction-50.c: New test. - * gcc.dg/gomp/workshare-reduction-51.c: New test. - * gcc.dg/gomp/workshare-reduction-52.c: New test. - * gcc.dg/gomp/workshare-reduction-53.c: New test. - * gcc.dg/gomp/workshare-reduction-54.c: New test. - * gcc.dg/gomp/workshare-reduction-55.c: New test. - * gcc.dg/gomp/workshare-reduction-56.c: New test. - * gcc.dg/gomp/workshare-reduction-57.c: New test. - * gcc.dg/gomp/workshare-reduction-58.c: New test. - -2018-11-09 Stafford Horne - Richard Henderson - - * gcc.c-torture/execute/20101011-1.c: Adjust for OpenRISC. - * gcc.dg/20020312-2.c: Likewise. - * gcc.dg/attr-alloc_size-11.c: Likewise. - * gcc.dg/builtin-apply2.c: Likewise. - * gcc.dg/nop.h: Likewise. - * gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise. - * gcc.dg/tree-ssa/20040204-1.c: Likewise. - * gcc.dg/tree-ssa/reassoc-33.c: Likewise. - * gcc.dg/tree-ssa/reassoc-34.c: Likewise. - * gcc.dg/tree-ssa/reassoc-35.c: Likewise. - * gcc.dg/tree-ssa/reassoc-36.c: Likewise. - * lib/target-supports.exp - (check_effective_target_logical_op_short_circuit): Add or1k*-*-*. - * gcc.target/or1k/*: New. - -2018-11-09 Richard Biener - - PR tree-optimization/87621 - * g++.dg/vect/pr87621.cc: New testcase. - -2018-11-09 Alexandre Oliva - - PR rtl-optimization/86438 - * gcc.dg/torture/pr86438.c: New. - - PR target/87793 - * gcc.dg/pr87793.c: New. - -2018-11-09 Prathamesh Kulkarni - - * gcc.target/arm/neon-vect-div-1.c: New test. - * gcc.target/arm/neon-vect-div-2.c: Likewise. - -2018-11-08 Andi Kleen - - * gcc.target/i386/ptwrite1.c: New test. - * gcc.target/i386/ptwrite2.c: New test. - -2018-11-08 Jerry DeLisle - - PR libfortran/78351 - * gfortran.dg/read_legacy_comma.f90: New test. - -2018-11-08 Peter Bergner - - PR rtl-optimization/87600 - * gcc.dg/pr87600.h: New file. - * gcc.dg/pr87600-1.c: New test. - * gcc.dg/pr87600-2.c: Likewise. - -2018-11-08 Jakub Jelinek - - * c-c++-common/gomp/atomic-17.c: New test. - * c-c++-common/gomp/atomic-18.c: New test. - * c-c++-common/gomp/atomic-19.c: New test. - * c-c++-common/gomp/atomic-20.c: New test. - * c-c++-common/gomp/atomic-21.c: New test. - * c-c++-common/gomp/atomic-22.c: New test. - * c-c++-common/gomp/clauses-1.c (r2): New variable. - (foo): Add ntm argument and test if and nontemporal clauses on - constructs with simd. - (bar): Put taskloop simd inside of taskgroup with task_reduction, - use in_reduction clause instead of reduction. Add another - taskloop simd without nogroup clause, but with reduction clause and - a new in_reduction. Add ntm and i3 arguments. Test if and - nontemporal clauses on constructs with simd. Change if clauses on - some constructs from specific to the particular constituents to one - without a modifier. Add new tests for combined host teams and for - new parallel master and {,parallel }master taskloop{, simd} combined - constructs. - (baz): New function with host teams tests. - * gcc.dg/gomp/combined-1.c: Moved to ... - * c-c++-common/gomp/combined-1.c: ... here. Adjust expected library - call. - * c-c++-common/gomp/combined-2.c: New test. - * c-c++-common/gomp/combined-3.c: New test. - * c-c++-common/gomp/critical-1.c: New test. - * c-c++-common/gomp/critical-2.c: New test. - * c-c++-common/gomp/default-1.c: New test. - * c-c++-common/gomp/defaultmap-1.c: New test. - * c-c++-common/gomp/defaultmap-2.c: New test. - * c-c++-common/gomp/defaultmap-3.c: New test. - * c-c++-common/gomp/depend-5.c: New test. - * c-c++-common/gomp/depend-6.c: New test. - * c-c++-common/gomp/depend-iterator-1.c: New test. - * c-c++-common/gomp/depend-iterator-2.c: New test. - * c-c++-common/gomp/depobj-1.c: New test. - * c-c++-common/gomp/flush-1.c: New test. - * c-c++-common/gomp/flush-2.c: New test. - * c-c++-common/gomp/for-1.c: New test. - * c-c++-common/gomp/for-2.c: New test. - * c-c++-common/gomp/for-3.c: New test. - * c-c++-common/gomp/for-4.c: New test. - * c-c++-common/gomp/for-5.c: New test. - * c-c++-common/gomp/for-6.c: New test. - * c-c++-common/gomp/for-7.c: New test. - * c-c++-common/gomp/if-1.c (foo): Add some further tests. - * c-c++-common/gomp/if-2.c (foo): Likewise. Expect slightly different - diagnostics wording in one case. - * c-c++-common/gomp/if-3.c: New test. - * c-c++-common/gomp/master-combined-1.c: New test. - * c-c++-common/gomp/master-combined-2.c: New test. - * c-c++-common/gomp/nontemporal-1.c: New test. - * c-c++-common/gomp/nontemporal-2.c: New test. - * c-c++-common/gomp/reduction-task-1.c: New test. - * c-c++-common/gomp/reduction-task-2.c: New test. - * c-c++-common/gomp/requires-1.c: New test. - * c-c++-common/gomp/requires-2.c: New test. - * c-c++-common/gomp/requires-3.c: New test. - * c-c++-common/gomp/requires-4.c: New test. - * c-c++-common/gomp/schedule-modifiers-1.c (bar): Don't expect - diagnostics for nonmonotonic modifier with static, runtime or auto - schedule kinds. - * c-c++-common/gomp/simd7.c: New test. - * c-c++-common/gomp/target-data-1.c: New test. - * c-c++-common/gomp/taskloop-reduction-1.c: New test. - * c-c++-common/gomp/taskwait-depend-1.c: New test. - * c-c++-common/gomp/teams-1.c: New test. - * c-c++-common/gomp/teams-2.c: New test. - * gcc.dg/gomp/appendix-a/a.24.1.c: Update from OpenMP examples. Add - shared(c) clause. - * gcc.dg/gomp/atomic-5.c (f1): Add another expected error. - * gcc.dg/gomp/clause-1.c: Adjust expected diagnostics for const - qualified vars without mutable member no longer being predeterined - shared. - * gcc.dg/gomp/sharing-1.c: Likewise. - * g++.dg/gomp/clause-3.C: Likewise. - * g++.dg/gomp/member-2.C: Likewise. - * g++.dg/gomp/predetermined-1.C: Likewise. - * g++.dg/gomp/private-1.C: Likewise. - * g++.dg/gomp/sharing-1.C: Likewise. - * g++.dg/gomp/sharing-2.C: Likewise. Add a few tests with aggregate - const static data member without mutable elements. - * gcc.dg/gomp/for-4.c: Expected nonmonotonic functions in the dumps. - * gcc.dg/gomp/for-5.c: Likewise. - * gcc.dg/gomp/for-6.c: Change expected library call. - * gcc.dg/gomp/pr39495-2.c (foo): Don't expect errors on !=. - * gcc.dg/gomp/reduction-2.c: New test. - * gcc.dg/gomp/simd-1.c: New test. - * gcc.dg/gomp/teams-1.c: Adjust expected diagnostic lines. - * g++.dg/gomp/atomic-18.C: New test. - * g++.dg/gomp/atomic-19.C: New test. - * g++.dg/gomp/atomic-5.C (f1): Adjust expected lines of read-only - variable messages. Add another expected error. - * g++.dg/gomp/critical-3.C: New test. - * g++.dg/gomp/depend-iterator-1.C: New test. - * g++.dg/gomp/depend-iterator-2.C: New test. - * g++.dg/gomp/depobj-1.C: New test. - * g++.dg/gomp/doacross-1.C: New test. - * g++.dg/gomp/for-21.C: New test. - * g++.dg/gomp/for-4.C: Expected nonmonotonic functions in the dumps. - * g++.dg/gomp/for-5.C: Likewise. - * g++.dg/gomp/for-6.C: Change expected library call. - * g++.dg/gomp/loop-4.C: New test. - * g++.dg/gomp/pr33372-1.C: Adjust location of the expected - diagnostics. - * g++.dg/gomp/pr33372-3.C: Likewise. - * g++.dg/gomp/pr39495-2.C (foo): Don't expect errors on !=. - * g++.dg/gomp/simd-2.C: New test. - * g++.dg/gomp/tpl-atomic-2.C: Adjust expected diagnostic lines. - -2018-11-08 Uros Bizjak - - * gcc.dg/pr87874.c (em): Declare uint64_max as - const unsigned long long int. - -2018-11-08 Jozef Lawrynowicz - - * gcc.dg/attr-alloc_size-10.c: Fix calculation of USHRT_MAX to prevent - integer overflow when sizeof(short) == sizeof(int). - * gcc.dg/attr-alloc_size-11.c: Likewise. - * gcc.dg/attr-alloc_size-3.c: Likewise. - * gcc.dg/attr-alloc_size-5.c: Likewise. - * gcc.dg/builtin-stringop-chk-7.c: Likewise. - -2018-11-08 Jozef Lawrynowicz - - * c-c++-common/patchable_function_entry-decl.c: Add regex to search for - uppercase "NOP" instructions in assembler output. - * c-c++-common/patchable_function_entry-default.c: Likewise. - * c-c++-common/patchable_function_entry-definition.c: Likewise. - -2018-11-08 Jozef Lawrynowicz - - * c-c++-common/pr27336.c: Skip test if the target keeps null pointer - checks. - * gcc.dg/addr_equal-1.c: Likewise. - * gcc.dg/tree-ssa/pr78154.c: Likewise. - * gcc.dg/tree-ssa/vrp111.c: Likewise. - -2018-11-08 Jozef Lawrynowicz - - * lib/gcc-dg.exp (gcc-dg-prune): Add new regexps for when the size of - an output section is too large for a memory region, or a memory - region overflows. - -2018-11-08 Eric Botcazou - - * gnat.dg/null_pointer_deref1.adb: Remove -gnatp and add pragma. - * gnat.dg/null_pointer_deref2.adb: Likewise. - * gnat.dg/null_pointer_deref3.adb: Likewise. - * gnat.dg/opt74.adb: New test. - * gnat.dg/opt74_pkg.ad[sb]: New helper. - * gnat.dg/warn12.adb: Delete. - * gnat.dg/warn12_pkg.ads: Likewise. - -2018-11-08 David Malcolm - - PR ipa/86395 - * g++.dg/ipa/devirt-12.C: Add "-all" suffix to - "-fdump-ipa-inline". - * g++.dg/ipa/imm-devirt-1.C: Add "-optimized" suffix to - "-fdump-tree-einline". - * g++.dg/tree-prof/inline_mismatch_args.C: Add "-all" suffix to - "-fdump-tree-einline". - * g++.dg/tree-ssa/inline-1.C: Add "-optimized" suffix to - "-fdump-tree-einline". - * g++.dg/tree-ssa/inline-2.C: Likewise. - * g++.dg/tree-ssa/inline-3.C: Likewise. - * g++.dg/tree-ssa/inline-4.C: New test, based on inline-1.C, but - using "-fopt-info-inline". - * gcc.dg/ipa/fopt-info-inline-1.c: New test. - * gcc.dg/ipa/inline-4.c: Add "-all" suffix to - "-fdump-ipa-inline". Add "-fopt-info-inline" and dg-optimized - directive. - * gcc.dg/ipa/inline-7.c: Add "-optimized" suffix to - "-fdump-tree-einline". Add "-fopt-info-inline" and dg-optimized - directive. Update scan-tree-dump-times to reflect /order - suffixes. - * gcc.dg/ipa/inlinehint-4.c: Update scan-tree-dump-times to - reflect /order suffixes. - * gcc.dg/plugin/dump-1.c: Add "-loop" to "-fopt-info-note" to - avoid getting extra messages from inliner. - * gcc.dg/plugin/dump-2.c: Likewise. - * gcc.dg/pr26570.c: Add dg-prune-output to ignore new - "function body not available" missed optimization messages. - * gcc.dg/pr71969-2.c: Update scan-tree-dump-times to reflect - /order suffixes. - * gcc.dg/pr71969-3.c: Likewise. - * gcc.dg/tree-ssa/inline-11.c: Add "-all" suffix to - "-fdump-tree-einline". - * gcc.dg/tree-ssa/inline-3.c: Add "-optimized" suffix to - "-fdump-tree-einline". Update scan-tree-dump-times to reflect - /order suffixes. - * gcc.dg/tree-ssa/inline-4.c: Add "-optimized" suffix to - "-fdump-tree-einline". Add "-fopt-info-inline" and dg-optimized - directive. - * gcc.dg/tree-ssa/inline-8.c: Add "-optimized" suffix to - "-fdump-tree-einline". - * gfortran.dg/pr79966.f90: Update scan-ipa-dump to reflect /order - suffixes. - -2018-11-08 David Malcolm - - * gcc.dg/format/gcc_diag-10.c: Add coverage for %f. - -2018-11-08 David Malcolm - - * gcc.dg/format/gcc_diag-10.c (cgraph_node): New typedef. - (test_dump): Add testing of %C. - -2018-11-08 Eric Botcazou - - * g++.dg/other/pr87916.C: New test. - -2018-11-08 Richard Biener - - PR tree-optimization/87929 - * gcc.dg/pr87929.c: New testcase. - -2018-11-08 Martin Liska - - * gcc.dg/pr87811.c: Update scanned pattern. - * gcc.dg/pr87811-2.c: Likewise. - -2018-11-08 Rainer Orth - - * g++.dg/lto/pr87906_0.C: Use moon instead of possibly predefined - sun. - * g++.dg/lto/pr87906_1.C: Likewise. - -2018-11-08 Richard Biener - - PR tree-optimization/87913 - * gcc.dg/tree-ssa/phi-opt-20.c: New testcase. - -2018-11-08 Chenghua Xu - - * gcc.target/mips/mips.exp (mips-dg-options): - Add mips_option_dependency msoft-float vs no-mmi and - mips16/micromips vs no-mmi/ext/ext2 only gcc - config with Loongson target. - -2018-11-07 Jozef Lawrynowicz - - * gcc.c-torture/compile/pr65595.c: Change type of "num" argument to - memcpy from "unsigned long" to __SIZE_TYPE__. - -2018-11-07 Jozef Lawrynowicz - - PR c/87691 - * gcc.target/msp430/pr87691.c: New test. - -2018-11-07 Nikolai Merinov - - * gcc.dg/Wno-attribute-warning.c: New test. - -2018-11-07 Nathan Sidwell - - PR c++/87904 - * g++.dg/lookup/pr87904.C: New. - -2018-11-07 Uros Bizjak - - * gcc.dg/pr87874.c: Compile only for int128 effective target. - -2018-11-07 Richard Biener - - PR tree-optimization/87914 - * lib/target-supports.exp (check_effective_target_vect_var_shift): New. - (check_avx2_available): Likewise. - * g++.dg/vect/pr87914.cc: New testcase. - -2018-11-07 Chenghua Xu - - * gcc.target/mips/loongson-ctz.c: Fix typo. - * gcc.target/mips/loongson-dctz.c: Fix typo. - -2018-11-07 Jan Hubicka - - * g++.dg/lto/odr-1_1.C: Fix template. - -2018-11-07 Chenghua Xu - - * gcc.target/mips/loongson-ctz.c: New test. - * gcc.target/mips/loongson-dctz.c: Likewise. - * gcc.target/mips/mips.exp (mips_option_groups): Add - -mloongson-ext2 option. - -2018-11-07 Chenghua Xu - - * gcc.target/mips/mips.exp (mips_option_groups): Add - -mloongson-ext option. - (mips-dg-options): Add mips_option_dependency options - "-mmicromips" vs "-mno-loongson-ext", - -2018-11-07 Chenghua Xu - - * gcc.target/mips/loongson-shift-count-truncated-1.c - (dg-options): Run under -mloongson-mmi option. - Include loongson-mmiintrin.h instead of loongson.h. - * gcc.target/mips/loongson-simd.c: Likewise. - * gcc.target/mips/mips.exp (mips_option_groups): Add - -mloongson-mmi option. - (mips-dg-options): Add mips_option_dependency options "-mips16" vs - "-mno-loongson-mmi", "-mmicromips" vs "-mno-loongson-mmi", - "-msoft-float" vs "-mno-loongson-mmi". - (mips-dg-init): Add -mloongson-mmi option. - * lib/target-supports.exp: Rename check_mips_loongson_hw_available - to check_mips_loongson_mmi_hw_available. - Rename check_effective_target_mips_loongson_runtime to - check_effective_target_mips_loongson_mmi_runtime. - (check_effective_target_vect_int): Use mips_loongson_mmi instead - of mips_loongson when check et-is-effective-target. - (add_options_for_mips_loongson_mmi): New proc. - Rename check_effective_target_mips_loongson to - check_effective_target_mips_loongson_mmi. - (check_effective_target_vect_shift, - check_effective_target_whole_vector_shift, - check_effective_target_vect_no_int_min_max, - check_effective_target_vect_no_align, - check_effective_target_vect_short_mult, - check_vect_support_and_set_flags):Use mips_loongson_mmi instead - of mips_loongson when check et-is-effective-target. - -2018-11-07 Richard Biener - - PR lto/87906 - * g++.dg/lto/pr87906_0.C: New testcase. - * g++.dg/lto/pr87906_1.C: Likewise. - -2018-11-07 Alexandre Oliva - - PR rtl-optimization/87874 - * gcc.dg/pr87874.c: New. - -2018-11-06 Ilya Leoshkevich - - * gcc.target/s390/load-and-test-fp-1.c: Accept cdb. - -2018-11-06 Jozef Lawrynowicz - - * gcc/testsuite/gcc.target/msp430/special-regs.c: New test. - -2018-11-06 Rainer Orth - - PR sanitizer/80953 - * c-c++-common/asan/alloca_loop_unpoisoning.c: Require alloca - support. - (foo): Use __builtin_alloca. - -2018-11-06 Jan Hubicka - - * gcc.dg/lto/tbaa-1.c: New testcase. - -2018-11-06 Richard Biener - - PR tree-optimization/87889 - * gcc.dg/pr87894.c: New testcase. - -2018-11-06 Andreas Krebbel - - PR target/87723 - * gcc.target/s390/pr87723.c: New test. - -2018-11-06 Richard Biener - - PR middle-end/18041 - * gcc.target/i386/pr18041-1.c: New testcase. - * gcc.target/i386/pr18041-2.c: Likewise. - -2018-11-06 Wei Xiao - - * gcc.target/i386/avx-1.c: Update tests for VFIXUPIMM* intrinsics. - * gcc.target/i386/avx512f-vfixupimmpd-1.c: Ditto. - * gcc.target/i386/avx512f-vfixupimmpd-2.c: Ditto. - * gcc.target/i386/avx512f-vfixupimmps-1.c: Ditto. - * gcc.target/i386/avx512f-vfixupimmsd-1.c: Ditto. - * gcc.target/i386/avx512f-vfixupimmsd-2.c: Ditto. - * gcc.target/i386/avx512f-vfixupimmss-1.c: Ditto. - * gcc.target/i386/avx512f-vfixupimmss-2.c: Ditto. - * gcc.target/i386/avx512vl-vfixupimmpd-1.c: Ditto. - * gcc.target/i386/avx512vl-vfixupimmps-1.c: Ditto. - * gcc.target/i386/sse-13.c: Ditto. - * gcc.target/i386/sse-14.c: Ditto. - * gcc.target/i386/sse-22.c: Ditto. - * gcc.target/i386/sse-23.c: Ditto. - * gcc.target/i386/testimm-10.c: Ditto. - * gcc.target/i386/testround-1.c: Ditto. - -2018-11-05 Paul Koning - - * lib/target-supports.exp: Add check for "inf" effective target - keyword. - * gcc.dg/builtins-44.c: Skip if no infinite support. - * gcc.dg/builtins-45.c: Ditto. - * gcc.dg/torture/builtin-complex-1.c: Ditto. - * gcc.dg/torture/builtin-cproj-1.c: Ditto. - * gcc.dg/torture/builtin-frexp-1.c: Ditto. - * gcc.dg/torture/builtin-ldexp-1.c: Ditto. - * gcc.dg/torture/builtin-logb-1.c: Ditto. - * gcc.dg/torture/builtin-math-2.c: Ditto. - * gcc.dg/torture/builtin-math-5.c: Ditto. - * gcc.dg/torture/builtin-math-7.c: Ditto. - * gcc.dg/torture/builtin-modf-1.c: Ditto. - * gcc.dg/torture/type-generic-1.c: Ditto. - -2018-11-05 Ilya Leoshkevich - - * gcc.target/s390/md/andc-splitter-1.c: Add colon to - expectations. - * gcc.target/s390/md/andc-splitter-2.c: Likewise. - * gcc.target/s390/md/setmem_long-1.c: Likewise. - -2018-11-05 Richard Biener - - PR tree-optimization/87873 - * gcc.dg/pr87873.c: New testcase. - -2018-11-05 Robin Dapp - - * gcc.target/s390/ifcvt-one-insn-bool.c: New test. - * gcc.target/s390/ifcvt-one-insn-char.c: New test. - -2018-11-05 Robin Dapp - - * gcc.dg/loop-8.c: On s390, always run the test with -march=zEC12. - -2018-11-05 Richard Biener - - * gcc.dg/pr41488.c: Scan ivcanon dump instead of sccp one. - * gcc.dg/tree-ssa/scev-7.c: Likewise. - -2018-11-05 Jakub Jelinek - - PR tree-optimization/87859 - * gcc.dg/store_merging_24.c: New test. - * gcc.dg/store_merging_25.c: New test. - - PR sanitizer/87837 - * c-c++-common/ubsan/pr87837.c: New test. - -2018-11-05 Martin Liska - - PR c/87811 - * gcc.dg/pr87811.c: New test. - * gcc.dg/pr87811-2.c: Likewise. - * gcc.dg/pr87811-3.c: Likewise. - -2018-11-05 Martin Liska - - PR gcov-profile/77698 - * gcc.dg/tree-prof/pr77698.c: New test. - -2018-11-04 Bernd Edlinger - - PR tree-optimization/86572 - * gcc.dg/pr86572.c: New test. - -2018-11-04 Bernd Edlinger - - PR tree-optimization/87672 - * gcc.dg/pr87672.c: New test. - -2018-11-04 Uros Bizjak - - PR middle-end/58372 - * g++.target/i386/pr58372.C: New test. - -2018-11-03 Sandra Loosemore - - PR target/87079 - * gcc.target/nios2/pr87079-1.c: New. - * gcc.target/nios2/pr87079-2.c: New. - -2018-11-02 Rainer Orth - - * gcc.dg/compat/pr83487-1_y.c: Move dg-skip-if ... - * gcc.dg/compat/pr83487-1_main.c: ... here. - * gcc.dg/compat/struct-by-value-10_main.c, - gcc.dg/compat/struct-by-value-10_x.c, - gcc.dg/compat/struct-by-value-11_main.c, - gcc.dg/compat/struct-by-value-11_x.c, - gcc.dg/compat/struct-by-value-12_main.c, - gcc.dg/compat/struct-by-value-12_x.c, - gcc.dg/compat/struct-by-value-13_main.c, - gcc.dg/compat/struct-by-value-13_x.c, - gcc.dg/compat/struct-by-value-14_main.c, - gcc.dg/compat/struct-by-value-14_x.c, - gcc.dg/compat/struct-by-value-15_main.c, - gcc.dg/compat/struct-by-value-15_x.c, - gcc.dg/compat/struct-by-value-17_main.c, - gcc.dg/compat/struct-by-value-17_x.c, - gcc.dg/compat/struct-by-value-18_main.c, - gcc.dg/compat/struct-by-value-18_x.c, - gcc.dg/compat/struct-by-value-2_main.c, - gcc.dg/compat/struct-by-value-2_x.c, - gcc.dg/compat/struct-by-value-22_main.c, - gcc.dg/compat/struct-by-value-22_x.c, - gcc.dg/compat/struct-by-value-3_main.c, - gcc.dg/compat/struct-by-value-3_x.c, - gcc.dg/compat/struct-by-value-4_main.c, - gcc.dg/compat/struct-by-value-4_x.c, - gcc.dg/compat/struct-by-value-5b_main.c, - gcc.dg/compat/struct-by-value-5b_x.c, - gcc.dg/compat/struct-by-value-6b_main.c, - gcc.dg/compat/struct-by-value-6b_x.c, - gcc.dg/compat/struct-by-value-6b_main.c, - gcc.dg/compat/struct-by-value-7b_x.c, - gcc.dg/compat/struct-by-value-7b_main.c, - gcc.dg/compat/struct-by-value-8_main.c, - gcc.dg/compat/struct-by-value-8_x.c, - gcc.dg/compat/struct-by-value-9_main.c, - gcc.dg/compat/struct-by-value-9_x.c, - gcc.dg/compat/struct-return-2_main.c, - gcc.dg/compat/struct-return-2_x.c: Likewise. - -2018-11-02 Nathan Sidwell - - * g++.dg/lookup/crash6.C: Adjust error - * g++.dg/parse/crash38.C: Likewise. - -2018-11-02 Andreas Schwab - - * gcc.c-torture/execute/20010904-2.c: Fix last change. - * gcc.dg/Wattributes-10.c: Likewise. - -2018-11-02 Richard Biener - - PR tree-optimization/87776 - * gcc.dg/torture/pr87776.c: New testcase. - -2018-11-01 Marek Polacek - - Implement P0846R0, ADL and function templates. - * g++.dg/addr_builtin-1.C: Adjust dg-error. - * g++.dg/cpp2a/fn-template1.C: New test. - * g++.dg/cpp2a/fn-template10.C: New test. - * g++.dg/cpp2a/fn-template11.C: New test. - * g++.dg/cpp2a/fn-template12.C: New test. - * g++.dg/cpp2a/fn-template13.C: New test. - * g++.dg/cpp2a/fn-template14.C: New test. - * g++.dg/cpp2a/fn-template15.C: New test. - * g++.dg/cpp2a/fn-template16.C: New test. - * g++.dg/cpp2a/fn-template2.C: New test. - * g++.dg/cpp2a/fn-template3.C: New test. - * g++.dg/cpp2a/fn-template4.C: New test. - * g++.dg/cpp2a/fn-template5.C: New test. - * g++.dg/cpp2a/fn-template6.C: New test. - * g++.dg/cpp2a/fn-template7.C: New test. - * g++.dg/cpp2a/fn-template8.C: New test. - * g++.dg/cpp2a/fn-template9.C: New test. - * g++.dg/parse/fn-template1.C: New test. - * g++.dg/parse/fn-template2.C: New test. - * g++.dg/parse/template19.C: Adjust dg-error. - * g++.dg/template/pr61745.C: Add target to dg-error. - -2017-11-01 Thomas Koenig - - PR fortran/54613 - * gfortran.dg/findloc_1.f90: Actually commit. - * gfortran.dg/findloc_2.f90: Actually commit. - * gfortran.dg/findloc_3.f90: Actually commit. - * gfortran.dg/findloc_4.f90: Actually commit. - * gfortran.dg/findloc_5.f90: Actually commit. - * gfortran.dg/findloc_6.f90: Actually commit. - -2018-11-01 Paul Thomas - - PR fortran/40196 - * gfortran.dg/inquiry_part_ref_1.f08: New test. - * gfortran.dg/inquiry_part_ref_2.f90: New test. - * gfortran.dg/inquiry_part_ref_3.f90: New test. - -2018-11-01 Paul Koning - - * gcc.c-torture/execute/20010904-1.c: Align 2 if pdp11. - * gcc.c-torture/execute/20010904-2.c: Ditto. - * c-c++-common/builtin-arith-overflow-2.c: Skip if pdp11. - * gcc.dg/Walloc-size-larger-than-4.c: Ditto. - * gcc.dg/Walloc-size-larger-than-5.c: Ditto. - * gcc.dg/Walloc-size-larger-than-6.c: Ditto. - * gcc.dg/Walloc-size-larger-than-7.c: Ditto. - * gcc.dg/Walloca-14.c: Ditto. - * gcc.dg/Wlarger-than3.c: Ditto. - * gcc.dg/compat/pr83487-1_y.c: Ditto. - * gcc.dg/compat/struct-by-value-2_x.c: Ditto. - * gcc.dg/compat/struct-by-value-3_x.c: Ditto. - * gcc.dg/compat/struct-by-value-4_x.c: Ditto. - * gcc.dg/compat/struct-by-value-5b_x.c: Ditto. - * gcc.dg/compat/struct-by-value-6b_x.c: Ditto. - * gcc.dg/compat/struct-by-value-7b_x.c: Ditto. - * gcc.dg/compat/struct-by-value-8_x.c: Ditto. - * gcc.dg/compat/struct-by-value-9_x.c: Ditto. - * gcc.dg/compat/struct-by-value-10_x.c: Ditto. - * gcc.dg/compat/struct-by-value-11_x.c: Ditto. - * gcc.dg/compat/struct-by-value-12_x.c: Ditto. - * gcc.dg/compat/struct-by-value-13_x.c: Ditto. - * gcc.dg/compat/struct-by-value-14_x.c: Ditto. - * gcc.dg/compat/struct-by-value-15_x.c: Ditto. - * gcc.dg/compat/struct-by-value-16_x.c: Ditto. - * gcc.dg/compat/struct-by-value-17_x.c: Ditto. - * gcc.dg/compat/struct-by-value-18_x.c: Ditto. - * gcc.dg/compat/struct-by-value-22_x.c: Ditto. - * gcc.dg/compat/struct-return-2_x.c: Ditto. - * gcc.dg/falign-labels-1.c: Ditto. - * gcc.dg/long_branch.c: Ditto. - * gcc.dg/nextafter-1.c: Ditto. - * gcc.dg/pr35045.c: Ditto. - * gcc.dg/pr48616.c: Ditto. - * gcc.dg/pr84100.c: Ditto. - * gcc.dg/tree-ssa/builtin-sprintf-9.c: Ditto. - * gcc.dg/tree-ssa/builtin-sprintf-warn-10.c: Ditto. - * gcc.dg/tree-ssa/builtin-sprintf.c: Ditto. - * gcc.dg/Wattributes-10.c: Expect error if pdp11. - * gcc.dg/attr-alloc_size-11.c: Don't XFAIL if pdp11. - * gcc.dg/builtin-inf-1.c: Add pdp11 to warnings about INF. - * gcc.dg/builtins-1.c: Ditto. - -2018-11-01 Thomas Koenig - - PR fortran/46020 - * gfortran.dg/bind_c_18.f90: Adjust error message. - -2018-11-01 Marek Polacek - - * g++.dg/cpp1z/constexpr-lambda22.C: New test, - -2018-11-01 Jozef Lawrynowicz - - * gcc.dg/tree-ssa/cunroll-13.c: Add missing cast from literal to int32. - -2018-11-30 Jan Hubicka - - * g++.dg/lto/pr84805_1.C: Update template. - * g++.dg/lto/pr84805_0.C: Update template. - * g++.dg/lto/pr84805_1b.C: Update template. - * g++.dg/lto/pr84805_0b.C: Update template. - -2018-11-01 Jakub Jelinek - - PR tree-optimization/87826 - * gcc.dg/pr87826.c: New test. - -2018-11-01 Thomas Koenig - - PR fortran/46020 - * gfortran.dg/bind_c_usage_7.f90: Adjust error message. - * gfortran.dg/bind_c_usage_32.f90: New test. - -2018-11-01 Nathan Sidwell - - * g++.dg/abi/anon5.C: New. - -2018-11-01 Jakub Jelinek - - PR d/87824 - * gdc.dg/simd.d: Add -Wno-psabi. - * gdc.dg/compilable.d: Likewise. - -2018-11-01 Martin Liska - Jason Merrill - - PR c++/64266 - PR bootstrap/70422 - PR ipa/81277 - * g++.dg/cpp0x/constexpr-__func__2.C: Make it a compilation - test. - * g++.old-deja/g++.ext/pretty4.C: Remove as the run-time - assumptions are not longer valid. - -2018-10-31 Thomas Koenig - - PR fortran/20520 - * gfortran.dg/allocatable_uninitialized_1.f90: New test. - -2018-10-31 Nathan Sidwell - - * g++.dg/lookup/friend21.C: New. - -2018-10-31 Martin Liska - - PR driver/83193 - * gcc.target/aarch64/spellcheck_7.c: New test. - * gcc.target/aarch64/spellcheck_8.c: New test. - * gcc.target/aarch64/spellcheck_9.c: New test. - -2018-10-31 Nathan Sidwell - - * g++.dg/lookup/using60.C: New. - -2018-10-31 Richard Biener - - PR middle-end/70359 - PR middle-end/86270 - * gcc.target/i386/pr70359.c: New testcase. - * gcc.target/i386/pr86270.c: Likewise. - -2018-10-31 Claudiu Zissulescu - - * gcc.target/arc/jumptable.c: New test. - -2018-10-31 Claudiu Zissulescu - - * gcc.target/arc/tls-gd.c: New file. - * gcc.target/arc/tls-ie.c: Likewise. - * gcc.target/arc/tls-ld.c: Likewise. - * gcc.target/arc/tls-le.c: Likewise. - * gcc.target/arc/tls-1.c: Update test. - -2018-10-31 Claudiu Zissulescu - - * gcc.target/arc/mulsi3_highpart-2.c: Update test. - -2018-10-31 Martin Liska - - * c-c++-common/ubsan/pr63839.c: Update to new sanitizer message. - * c-c++-common/ubsan/unreachable-1.c (main): Likewise. - * c-c++-common/ubsan/unreachable-2.c: Likewise. - * c-c++-common/ubsan/unreachable-4.c (main): Likewise. - -2018-10-31 Thomas Preud'homme - - PR target/87374 - * gcc.target/arm/movdi_movt.c: Skip if both -mslow-flash-data and - -mword-relocations would be passed when compiling the test. - * gcc.target/arm/movsi_movt.c: Likewise. - * gcc.target/arm/pr81863.c: Likewise. - * gcc.target/arm/thumb2-slow-flash-data-1.c: Likewise. - * gcc.target/arm/thumb2-slow-flash-data-2.c: Likewise. - * gcc.target/arm/thumb2-slow-flash-data-3.c: Likewise. - * gcc.target/arm/thumb2-slow-flash-data-4.c: Likewise. - * gcc.target/arm/thumb2-slow-flash-data-5.c: Likewise. - * gcc.target/arm/tls-disable-literal-pool.c: Likewise. - -2018-10-31 Richard Biener - - PR testsuite/87802 - * g++.dg/vect/slp-pr87105.cc: XFAIL for strict alignment targets. - -2018-10-30 Thomas Koenig - - PR fortran/85896 - * gfortran.dg/min_max_type.f90: New test. - -2018-10-30 Martin Sebor - - PR middle-end/87041 - * gcc.c-torture/execute/fprintf-2.c: New test. - * gcc.c-torture/execute/printf-2.c: Same. - * gcc.c-torture/execute/user-printf.c: Same. - * gcc.dg/tree-ssa/builtin-fprintf-warn-1.c: Same. - * gcc.dg/tree-ssa/builtin-printf-2.c: Same. - * gcc.dg/tree-ssa/builtin-printf-warn-1.c: Same. - * gcc.dg/tree-ssa/user-printf-warn-1.c: Same. - -2018-10-30 Marek Polacek - - Implement P0892R2, explicit(bool). - * g++.dg/cpp2a/explicit1.C: New test. - * g++.dg/cpp2a/explicit10.C: New test. - * g++.dg/cpp2a/explicit11.C: New test. - * g++.dg/cpp2a/explicit12.C: New test. - * g++.dg/cpp2a/explicit13.C: New test. - * g++.dg/cpp2a/explicit2.C: New test. - * g++.dg/cpp2a/explicit3.C: New test. - * g++.dg/cpp2a/explicit4.C: New test. - * g++.dg/cpp2a/explicit5.C: New test. - * g++.dg/cpp2a/explicit6.C: New test. - * g++.dg/cpp2a/explicit7.C: New test. - * g++.dg/cpp2a/explicit8.C: New test. - * g++.dg/cpp2a/explicit9.C: New test. - -2018-10-30 Segher Boessenkool - - PR rtl-optimization/87708 - * gcc.dg/ira-shrinkwrap-prep-1.c: xfail test. - * gcc.dg/ira-shrinkwrap-prep-2.c: xfail test. - -2018-10-30 Paolo Carlini - - * g++.dg/cpp1z/has-unique-obj-representations1.C: Test location too. - * g++.dg/ext/flexarray-mangle-2.C: Likewise. - * g++.dg/ext/flexarray-mangle.C: Likewise. - * g++.dg/ext/flexarray-subst.C: Likewise. - * g++.dg/ext/flexary10.C: Likewise. - * g++.dg/ext/flexary11.C: Likewise. - * g++.dg/ext/flexary14.C: Likewise. - * g++.dg/ext/flexary16.C: Likewise. - * g++.dg/ext/flexary26.C: Likewise. - * g++.dg/ext/flexary27.C: Likewise. - * g++.dg/ext/flexary7.C: Likewise. - * g++.dg/ext/pr71290.C: Likewise. - -2018-10-30 Paul Koning - - * gcc.dg/tree-ssa/attr-alias.c: Skip if no weak support. - -2018-10-30 Michael Ploujnikov - - * gcc.dg/tree-prof/cold_partition_label.c: Update for cold - section names without numbers. - * gcc.dg/tree-prof/section-attr-1.c: Ditto. - * gcc.dg/tree-prof/section-attr-2.c: Ditto. - * gcc.dg/tree-prof/section-attr-3.c: Ditto. - -2018-10-29 David Malcolm - - PR c++/87721 - * c-c++-common/substring-location-PR-87721.c: New test. - * gcc.dg/plugin/diagnostic-test-string-literals-1.c: Add test for - PR 87721. - * gcc.dg/plugin/diagnostic_plugin_test_string_literals.c - (test_string_literals): Fold the index arguments before checking - for INTEGER_CST. - -2018-10-29 David Malcolm - - * c-c++-common/spellcheck-reserved.c: Update expected output for - C++ for merger of "did you mean" suggestions into the error - message. - * g++.dg/ext/builtin3.C: Update expected output for merger of "did - you mean" suggestion into the error. - * g++.dg/lookup/error1.C: Likewise. - * g++.dg/lookup/pr77549.C: Likewise. - * g++.dg/lookup/pr80913.C: Likewise. - * g++.dg/lookup/suggestions1.C: Likewise. - * g++.dg/lookup/suggestions2.C: New test. - * g++.dg/overload/koenig1.C: Update expected output as above. - * g++.dg/spellcheck-identifiers-2.C: Likewise. - * g++.dg/spellcheck-identifiers.C: Likewise. - * g++.dg/spellcheck-ns.C: New test. - * g++.dg/spellcheck-pr77829.C: Update expected output as above. - * g++.dg/spellcheck-pr78656.C: Likewise. - * g++.dg/spellcheck-pr79298.C: Likewise, adding - -fdiagnostics-show-caret to options. - * g++.dg/spellcheck-pr80177.C: Likewise. - * g++.dg/spellcheck-single-vs-multiple.C: New test. - * g++.dg/spellcheck-typenames.C: Update expected output as above. - * g++.dg/template/static10.C: Likewise. - * g++.old-deja/g++.mike/ns5.C: Likewise. - * g++.old-deja/g++.mike/ns7.C: Likewise. - * g++.old-deja/g++.ns/koenig5.C: Likewise. - * g++.old-deja/g++.other/lineno5.C: Likewise. - -2018-10-29 Paolo Carlini - - * g++.dg/cpp0x/auto24.C: Test location too. - * g++.dg/cpp0x/auto3.C: Likewise. - * g++.dg/cpp0x/auto42.C: Likewise. - * g++.dg/cpp0x/initlist57.C: Likewise. - * g++.dg/cpp0x/initlist75.C: Likewise. - * g++.dg/cpp0x/initlist80.C: Likewise. - * g++.dg/cpp0x/lambda/lambda-ice13.C: Likewise. - * g++.old-deja/g++.brendan/array-refs.C: Likewise. - * g++.old-deja/g++.bugs/900322_01.C: Likewise. - * g++.old-deja/g++.bugs/900519_07.C: Likewise. - * g++.old-deja/g++.other/typeck1.C: Likewise. - -2018-10-29 Kugan Vivekanandarajah - - PR middle-end/87469 - * g++.dg/pr87469.C: New test. - -2018-10-29 Marek Polacek - - PR c++/87594 - constexpr rejects-valid with range-based for. - * g++.dg/cpp1y/constexpr-loop8.C: New test. - -2018-10-29 Richard Biener - - PR tree-optimization/87785 - * gcc.dg/torture/20181029-1.c: New testcase. - * gcc.dg/torture/20181029-2.c: Likewise. - -2018-10-29 Richard Biener - - PR tree-optimization/87790 - * gcc.dg/pr87790.c: New testcase. - -2018-10-29 Martin Liska - - * g++.dg/gcov/gcov-8.C: Do not check intermediate format. - * lib/gcov.exp: Remove legacy verify-intermediate. - -2018-10-28 Kugan Vivekanandarajah - - * gcc.dg/gimplefe-30.c: New test. - * gcc.dg/gimplefe-31.c: New test. - * gcc.dg/gimplefe-32.c: New test. - * gcc.dg/gimplefe-33.c: New test. - -2018-10-28 Iain Buclaw - - * gcc.misc-tests/help.exp: Add D to option descriptions check. - * gdc.dg/asan/asan.exp: New file. - * gdc.dg/asan/gdc272.d: New test. - * gdc.dg/compilable.d: New test. - * gdc.dg/dg.exp: New file. - * gdc.dg/gdc254.d: New test. - * gdc.dg/gdc260.d: New test. - * gdc.dg/gdc270a.d: New test. - * gdc.dg/gdc270b.d: New test. - * gdc.dg/gdc282.d: New test. - * gdc.dg/gdc283.d: New test. - * gdc.dg/imports/gdc170.d: New test. - * gdc.dg/imports/gdc231.d: New test. - * gdc.dg/imports/gdc239.d: New test. - * gdc.dg/imports/gdc241a.d: New test. - * gdc.dg/imports/gdc241b.d: New test. - * gdc.dg/imports/gdc251a.d: New test. - * gdc.dg/imports/gdc251b.d: New test. - * gdc.dg/imports/gdc253.d: New test. - * gdc.dg/imports/gdc254a.d: New test. - * gdc.dg/imports/gdc256.d: New test. - * gdc.dg/imports/gdc27.d: New test. - * gdc.dg/imports/gdcpkg256/package.d: New test. - * gdc.dg/imports/runnable.d: New test. - * gdc.dg/link.d: New test. - * gdc.dg/lto/lto.exp: New file. - * gdc.dg/lto/ltotests_0.d: New test. - * gdc.dg/lto/ltotests_1.d: New test. - * gdc.dg/runnable.d: New test. - * gdc.dg/simd.d: New test. - * gdc.test/gdc-test.exp: New file. - * lib/gdc-dg.exp: New file. - * lib/gdc.exp: New file. - -2017-10-28 Thomas Koenig - - PR fortran/54613 - * gfortran.dg/findloc_1.f90: New test. - * gfortran.dg/findloc_2.f90: New test. - * gfortran.dg/findloc_3.f90: New test. - * gfortran.dg/findloc_4.f90: New test. - * gfortran.dg/findloc_5.f90: New test. - * gfortran.dg/findloc_6.f90: New test. - -2018-10-26 Bill Schmidt - Jinsong Ji - - * gcc.target/powerpc/sse-addss-1.c: Call abort under DEBUG also; - formatting cleanup. - * gcc.target/powerpc/sse-pavgw-1.c: Likewise. - * gcc.target/powerpc/sse2-addsd-1.c: Likewise. - * gcc.target/powerpc/sse2-cvtdq2pd-1.c: Likewise. - * gcc.target/powerpc/sse2-cvtpd2dq-1.c: Likewise. - * gcc.target/powerpc/sse2-cvtpd2ps-1.c: Likewise. - * gcc.target/powerpc/sse2-cvtps2dq-1.c: Likewise. - * gcc.target/powerpc/sse2-cvtps2pd-1.c: Likewise. - * gcc.target/powerpc/sse2-cvtsd2si-1.c: Likewise. - * gcc.target/powerpc/sse2-cvtsd2si-2.c: Likewise. - * gcc.target/powerpc/sse2-cvtsd2ss-1.c: Likewise. - * gcc.target/powerpc/sse2-cvtss2sd-1.c: Likewise. - * gcc.target/powerpc/sse2-cvttpd2dq-1.c: Likewise. - * gcc.target/powerpc/sse2-cvttsd2si-1.c: Likewise. - * gcc.target/powerpc/sse2-divpd-1.c: Likewise. - * gcc.target/powerpc/sse2-divsd-1.c: Likewise. - * gcc.target/powerpc/sse2-maxsd-1.c: Likewise. - * gcc.target/powerpc/sse2-minsd-1.c: Likewise. - * gcc.target/powerpc/sse2-movmskpd-1.c: Likewise. - * gcc.target/powerpc/sse2-movq-1.c: Likewise. - * gcc.target/powerpc/sse2-movsd-3.c: Likewise. - * gcc.target/powerpc/sse2-mulpd-1.c: Likewise. - * gcc.target/powerpc/sse2-mulsd-1.c: Likewise. - * gcc.target/powerpc/sse2-packssdw-1.c: Likewise. - * gcc.target/powerpc/sse2-packsswb-1.c: Likewise. - * gcc.target/powerpc/sse2-packuswb-1.c: Likewise. - * gcc.target/powerpc/sse2-paddsb-1.c: Likewise. - * gcc.target/powerpc/sse2-paddsw-1.c: Likewise. - * gcc.target/powerpc/sse2-paddusb-1.c: Likewise. - * gcc.target/powerpc/sse2-pmovmskb-1.c: Likewise. - * gcc.target/powerpc/sse2-pmulhw-1.c: Likewise. - * gcc.target/powerpc/sse2-pmuludq1.c: Likewise. - * gcc.target/powerpc/sse2-psadbw-1.c: Likewise. - * gcc.target/powerpc/sse2-pshufd-1.c: Likewise. - * gcc.target/powerpc/sse2-pshufhw-1.c: Likewise. - * gcc.target/powerpc/sse2-pshuflw-1.c: Likewise. - * gcc.target/powerpc/sse2-pslld-2.c: Likewise. - * gcc.target/powerpc/sse2-pslldq-1.c: Likewise. - * gcc.target/powerpc/sse2-psrld-1.c: Likewise. - * gcc.target/powerpc/sse2-psrld-2.c: Likewise. - * gcc.target/powerpc/sse2-psrldq-1.c: Likewise. - * gcc.target/powerpc/sse2-psubusb-1.c: Likewise. - * gcc.target/powerpc/sse2-sqrtpd-1.c: Likewise. - * gcc.target/powerpc/sse2-subsd-1.c: Likewise. - -2018-10-26 Paul A. Clarke - - * gcc.target/powerpc/ssse3-check.h: New file. - * gcc.target/powerpc/ssse3-vals.h: New file. - * gcc.target/powerpc/ssse3-pabsb.c: New file. - * gcc.target/powerpc/ssse3-pabsd.c: New file. - * gcc.target/powerpc/ssse3-pabsw.c: New file. - * gcc.target/powerpc/ssse3-palignr.c: New file. - * gcc.target/powerpc/ssse3-phaddd.c: New file. - * gcc.target/powerpc/ssse3-phaddsw.c: New file. - * gcc.target/powerpc/ssse3-phaddw.c: New file. - * gcc.target/powerpc/ssse3-phsubd.c: New file. - * gcc.target/powerpc/ssse3-phsubsw.c: New file. - * gcc.target/powerpc/ssse3-phsubw.c: New file. - * gcc.target/powerpc/ssse3-pmaddubsw.c: New file. - * gcc.target/powerpc/ssse3-pmulhrsw.c: New file. - * gcc.target/powerpc/ssse3-pshufb.c: New file. - * gcc.target/powerpc/ssse3-psignb.c: New file. - * gcc.target/powerpc/ssse3-psignd.c: New file. - * gcc.target/powerpc/ssse3-psignw.c: New file. - -2018-10-26 Paul A. Clarke - - * gcc.target/powerpc/mmx-packs.c: Enable 32 bit execution. - * gcc.target/powerpc/mmx-packssdw-1.c: Likewise. - * gcc.target/powerpc/mmx-packsswb-1.c: Likewise. - * gcc.target/powerpc/mmx-packs.c: Likewise. - * gcc.target/powerpc/mmx-packssdw-1.c: Likewise. - * gcc.target/powerpc/mmx-packsswb-1.c: Likewise. - * gcc.target/powerpc/mmx-paddb-1.c: Likewise. - * gcc.target/powerpc/mmx-paddd-1.c: Likewise. - * gcc.target/powerpc/mmx-paddsb-1.c: Likewise. - * gcc.target/powerpc/mmx-paddsw-1.c: Likewise. - * gcc.target/powerpc/mmx-paddusb-1.c: Likewise. - * gcc.target/powerpc/mmx-paddusw-1.c: Likewise. - * gcc.target/powerpc/mmx-paddw-1.c: Likewise. - * gcc.target/powerpc/mmx-pcmpeqb-1.c: Likewise. - * gcc.target/powerpc/mmx-pcmpeqd-1.c: Likewise. - * gcc.target/powerpc/mmx-pcmpeqw-1.c: Likewise. - * gcc.target/powerpc/mmx-pcmpgtb-1.c: Likewise. - * gcc.target/powerpc/mmx-pcmpgtd-1.c: Likewise. - * gcc.target/powerpc/mmx-pcmpgtw-1.c: Likewise. - * gcc.target/powerpc/mmx-pmaddwd-1.c: Likewise. - * gcc.target/powerpc/mmx-pmulhw-1.c: Likewise. - * gcc.target/powerpc/mmx-pmullw-1.c: Likewise. - * gcc.target/powerpc/mmx-pslld-1.c: Likewise. - * gcc.target/powerpc/mmx-psllw-1.c: Likewise. - * gcc.target/powerpc/mmx-psrad-1.c: Likewise. - * gcc.target/powerpc/mmx-psraw-1.c: Likewise. - * gcc.target/powerpc/mmx-psrld-1.c: Likewise. - * gcc.target/powerpc/mmx-psrlw-1.c: Likewise. - * gcc.target/powerpc/mmx-psubb-2.c: Likewise. - * gcc.target/powerpc/mmx-psubd-2.c: Likewise. - * gcc.target/powerpc/mmx-psubsb-1.c: Likewise. - * gcc.target/powerpc/mmx-psubsw-1.c: Likewise. - * gcc.target/powerpc/mmx-psubusb-1.c: Likewise. - * gcc.target/powerpc/mmx-psubusw-1.c: Likewise. - * gcc.target/powerpc/mmx-psubw-2.c: Likewise. - * gcc.target/powerpc/mmx-punpckhbw-1.c: Likewise. - * gcc.target/powerpc/mmx-punpckhdq-1.c: Likewise. - * gcc.target/powerpc/mmx-punpckhwd-1.c: Likewise. - * gcc.target/powerpc/mmx-punpcklbw-1.c: Likewise. - * gcc.target/powerpc/mmx-punpckldq-1.c: Likewise. - * gcc.target/powerpc/mmx-punpcklwd-1.c: Likewise. - * gcc.target/powerpc/pr37191.c: Likewise. - * gcc.target/powerpc/sse-addps-1.c: Likewise. - * gcc.target/powerpc/sse-addss-1.c: Likewise. - * gcc.target/powerpc/sse-andnps-1.c: Likewise. - * gcc.target/powerpc/sse-andps-1.c: Likewise. - * gcc.target/powerpc/sse-cmpss-1.c: Likewise. - * gcc.target/powerpc/sse-cvtpi16ps-1.c: Likewise. - * gcc.target/powerpc/sse-cvtpi32ps-1.c: Likewise. - * gcc.target/powerpc/sse-cvtpi32x2ps-1.c: Likewise. - * gcc.target/powerpc/sse-cvtpi8ps-1.c: Likewise. - * gcc.target/powerpc/sse-cvtpspi16-1.c: Likewise. - * gcc.target/powerpc/sse-cvtpspi8-1.c: Likewise. - * gcc.target/powerpc/sse-cvtpu16ps-1.c: Likewise. - * gcc.target/powerpc/sse-cvtpu8ps-1.c: Likewise. - * gcc.target/powerpc/sse-cvtsi2ss-1.c: Likewise. - * gcc.target/powerpc/sse-cvtsi2ss-2.c: Likewise. - * gcc.target/powerpc/sse-cvtss2si-1.c: Likewise. - * gcc.target/powerpc/sse-cvtss2si-2.c: Likewise. - * gcc.target/powerpc/sse-cvttss2si-1.c: Likewise. - * gcc.target/powerpc/sse-cvttss2si-2.c: Likewise. - * gcc.target/powerpc/sse-divps-1.c: Likewise. - * gcc.target/powerpc/sse-divss-1.c: Likewise. - * gcc.target/powerpc/sse-maxps-1.c: Likewise. - * gcc.target/powerpc/sse-maxps-2.c: Likewise. - * gcc.target/powerpc/sse-maxss-1.c: Likewise. - * gcc.target/powerpc/sse-minps-1.c: Likewise. - * gcc.target/powerpc/sse-minps-2.c: Likewise. - * gcc.target/powerpc/sse-minss-1.c: Likewise. - * gcc.target/powerpc/sse-movaps-1.c: Likewise. - * gcc.target/powerpc/sse-movaps-2.c: Likewise. - * gcc.target/powerpc/sse-movhlps-1.c: Likewise. - * gcc.target/powerpc/sse-movhps-1.c: Likewise. - * gcc.target/powerpc/sse-movhps-2.c: Likewise. - * gcc.target/powerpc/sse-movlhps-1.c: Likewise. - * gcc.target/powerpc/sse-movlps-1.c: Likewise. - * gcc.target/powerpc/sse-movlps-2.c: Likewise. - * gcc.target/powerpc/sse-movmskb-1.c: Likewise. - * gcc.target/powerpc/sse-movmskps-1.c: Likewise. - * gcc.target/powerpc/sse-movss-1.c: Likewise. - * gcc.target/powerpc/sse-movss-2.c: Likewise. - * gcc.target/powerpc/sse-movss-3.c: Likewise. - * gcc.target/powerpc/sse-mulps-1.c: Likewise. - * gcc.target/powerpc/sse-mulss-1.c: Likewise. - * gcc.target/powerpc/sse-orps-1.c: Likewise. - * gcc.target/powerpc/sse-pavgw-1.c: Likewise. - * gcc.target/powerpc/sse-pmaxsw-1.c: Likewise. - * gcc.target/powerpc/sse-pmaxub-1.c: Likewise. - * gcc.target/powerpc/sse-pminsw-1.c: Likewise. - * gcc.target/powerpc/sse-pminub-1.c: Likewise. - * gcc.target/powerpc/sse-pmulhuw-1.c: Likewise. - * gcc.target/powerpc/sse-psadbw-1.c: Likewise. - * gcc.target/powerpc/sse-rcpps-1.c: Likewise. - * gcc.target/powerpc/sse-rsqrtps-1.c: Likewise. - * gcc.target/powerpc/sse-shufps-1.c: Likewise. - * gcc.target/powerpc/sse-sqrtps-1.c: Likewise. - * gcc.target/powerpc/sse-subps-1.c: Likewise. - * gcc.target/powerpc/sse-subss-1.c: Likewise. - * gcc.target/powerpc/sse-ucomiss-1.c: Likewise. - * gcc.target/powerpc/sse-ucomiss-2.c: Likewise. - * gcc.target/powerpc/sse-ucomiss-3.c: Likewise. - * gcc.target/powerpc/sse-ucomiss-4.c: Likewise. - * gcc.target/powerpc/sse-ucomiss-5.c: Likewise. - * gcc.target/powerpc/sse-ucomiss-6.c: Likewise. - * gcc.target/powerpc/sse-unpckhps-1.c: Likewise. - * gcc.target/powerpc/sse-unpcklps-1.c: Likewise. - * gcc.target/powerpc/sse-xorps-1.c: Likewise. - * gcc.target/powerpc/sse2-addpd-1.c: Likewise. - * gcc.target/powerpc/sse2-addsd-1.c: Likewise. - * gcc.target/powerpc/sse2-andnpd-1.c: Likewise. - * gcc.target/powerpc/sse2-andpd-1.c: Likewise. - * gcc.target/powerpc/sse2-cmppd-1.c: Likewise. - * gcc.target/powerpc/sse2-cmpsd-1.c: Likewise. - * gcc.target/powerpc/sse2-comisd-1.c: Likewise. - * gcc.target/powerpc/sse2-comisd-2.c: Likewise. - * gcc.target/powerpc/sse2-comisd-3.c: Likewise. - * gcc.target/powerpc/sse2-comisd-4.c: Likewise. - * gcc.target/powerpc/sse2-comisd-5.c: Likewise. - * gcc.target/powerpc/sse2-comisd-6.c: Likewise. - * gcc.target/powerpc/sse2-cvtdq2pd-1.c: Likewise. - * gcc.target/powerpc/sse2-cvtdq2ps-1.c: Likewise. - * gcc.target/powerpc/sse2-cvtpd2dq-1.c: Likewise. - * gcc.target/powerpc/sse2-cvtpd2ps-1.c: Likewise. - * gcc.target/powerpc/sse2-cvtps2dq-1.c: Likewise. - * gcc.target/powerpc/sse2-cvtps2pd-1.c: Likewise. - * gcc.target/powerpc/sse2-cvtsd2si-1.c: Likewise. - * gcc.target/powerpc/sse2-cvtsd2si-2.c: Likewise. - * gcc.target/powerpc/sse2-cvtsd2ss-1.c: Likewise. - * gcc.target/powerpc/sse2-cvtsi2sd-1.c: Likewise. - * gcc.target/powerpc/sse2-cvtsi2sd-2.c: Likewise. - * gcc.target/powerpc/sse2-cvtss2sd-1.c: Likewise. - * gcc.target/powerpc/sse2-cvttpd2dq-1.c: Likewise. - * gcc.target/powerpc/sse2-cvttps2dq-1.c: Likewise. - * gcc.target/powerpc/sse2-cvttsd2si-1.c: Likewise. - * gcc.target/powerpc/sse2-cvttsd2si-2.c: Likewise. - * gcc.target/powerpc/sse2-divpd-1.c: Likewise. - * gcc.target/powerpc/sse2-divsd-1.c: Likewise. - * gcc.target/powerpc/sse2-maxpd-1.c: Likewise. - * gcc.target/powerpc/sse2-maxsd-1.c: Likewise. - * gcc.target/powerpc/sse2-minpd-1.c: Likewise. - * gcc.target/powerpc/sse2-minsd-1.c: Likewise. - * gcc.target/powerpc/sse2-mmx.c: Likewise. - * gcc.target/powerpc/sse2-movhpd-1.c: Likewise. - * gcc.target/powerpc/sse2-movhpd-2.c: Likewise. - * gcc.target/powerpc/sse2-movlpd-1.c: Likewise. - * gcc.target/powerpc/sse2-movlpd-2.c: Likewise. - * gcc.target/powerpc/sse2-movmskpd-1.c: Likewise. - * gcc.target/powerpc/sse2-movq-1.c: Likewise. - * gcc.target/powerpc/sse2-movq-2.c: Likewise. - * gcc.target/powerpc/sse2-movq-3.c: Likewise. - * gcc.target/powerpc/sse2-movsd-1.c: Likewise. - * gcc.target/powerpc/sse2-movsd-2.c: Likewise. - * gcc.target/powerpc/sse2-movsd-3.c: Likewise. - * gcc.target/powerpc/sse2-mulpd-1.c: Likewise. - * gcc.target/powerpc/sse2-mulsd-1.c: Likewise. - * gcc.target/powerpc/sse2-orpd-1.c: Likewise. - * gcc.target/powerpc/sse2-packssdw-1.c: Likewise. - * gcc.target/powerpc/sse2-packsswb-1.c: Likewise. - * gcc.target/powerpc/sse2-packuswb-1.c: Likewise. - * gcc.target/powerpc/sse2-paddb-1.c: Likewise. - * gcc.target/powerpc/sse2-paddd-1.c: Likewise. - * gcc.target/powerpc/sse2-paddq-1.c: Likewise. - * gcc.target/powerpc/sse2-paddsb-1.c: Likewise. - * gcc.target/powerpc/sse2-paddsw-1.c: Likewise. - * gcc.target/powerpc/sse2-paddusb-1.c: Likewise. - * gcc.target/powerpc/sse2-paddusw-1.c: Likewise. - * gcc.target/powerpc/sse2-paddw-1.c: Likewise. - * gcc.target/powerpc/sse2-pand-1.c: Likewise. - * gcc.target/powerpc/sse2-pandn-1.c: Likewise. - * gcc.target/powerpc/sse2-pavgb-1.c: Likewise. - * gcc.target/powerpc/sse2-pavgw-1.c: Likewise. - * gcc.target/powerpc/sse2-pcmpeqb-1.c: Likewise. - * gcc.target/powerpc/sse2-pcmpeqd-1.c: Likewise. - * gcc.target/powerpc/sse2-pcmpeqw-1.c: Likewise. - * gcc.target/powerpc/sse2-pcmpgtb-1.c: Likewise. - * gcc.target/powerpc/sse2-pcmpgtd-1.c: Likewise. - * gcc.target/powerpc/sse2-pcmpgtw-1.c: Likewise. - * gcc.target/powerpc/sse2-pextrw.c: Likewise. - * gcc.target/powerpc/sse2-pinsrw.c: Likewise. - * gcc.target/powerpc/sse2-pmaddwd-1.c: Likewise. - * gcc.target/powerpc/sse2-pmaxsw-1.c: Likewise. - * gcc.target/powerpc/sse2-pmaxub-1.c: Likewise. - * gcc.target/powerpc/sse2-pminsw-1.c: Likewise. - * gcc.target/powerpc/sse2-pminub-1.c: Likewise. - * gcc.target/powerpc/sse2-pmovmskb-1.c: Likewise. - * gcc.target/powerpc/sse2-pmulhuw-1.c: Likewise. - * gcc.target/powerpc/sse2-pmulhw-1.c: Likewise. - * gcc.target/powerpc/sse2-pmullw-1.c: Likewise. - * gcc.target/powerpc/sse2-pmuludq-1.c: Likewise. - * gcc.target/powerpc/sse2-por-1.c: Likewise. - * gcc.target/powerpc/sse2-psadbw-1.c: Likewise. - * gcc.target/powerpc/sse2-pshufd-1.c: Likewise. - * gcc.target/powerpc/sse2-pshufhw-1.c: Likewise. - * gcc.target/powerpc/sse2-pshuflw-1.c: Likewise. - * gcc.target/powerpc/sse2-pslld-1.c: Likewise. - * gcc.target/powerpc/sse2-pslld-2.c: Likewise. - * gcc.target/powerpc/sse2-pslldq-1.c: Likewise. - * gcc.target/powerpc/sse2-psllq-1.c: Likewise. - * gcc.target/powerpc/sse2-psllq-2.c: Likewise. - * gcc.target/powerpc/sse2-psllw-1.c: Likewise. - * gcc.target/powerpc/sse2-psllw-2.c: Likewise. - * gcc.target/powerpc/sse2-psrad-1.c: Likewise. - * gcc.target/powerpc/sse2-psrad-2.c: Likewise. - * gcc.target/powerpc/sse2-psraw-1.c: Likewise. - * gcc.target/powerpc/sse2-psraw-2.c: Likewise. - * gcc.target/powerpc/sse2-psrld-1.c: Likewise. - * gcc.target/powerpc/sse2-psrld-2.c: Likewise. - * gcc.target/powerpc/sse2-psrldq-1.c: Likewise. - * gcc.target/powerpc/sse2-psrlq-1.c: Likewise. - * gcc.target/powerpc/sse2-psrlq-2.c: Likewise. - * gcc.target/powerpc/sse2-psrlw-1.c: Likewise. - * gcc.target/powerpc/sse2-psrlw-2.c: Likewise. - * gcc.target/powerpc/sse2-psubb-1.c: Likewise. - * gcc.target/powerpc/sse2-psubd-1.c: Likewise. - * gcc.target/powerpc/sse2-psubq-1.c: Likewise. - * gcc.target/powerpc/sse2-psubsb-1.c: Likewise. - * gcc.target/powerpc/sse2-psubsw-1.c: Likewise. - * gcc.target/powerpc/sse2-psubusb-1.c: Likewise. - * gcc.target/powerpc/sse2-psubusw-1.c: Likewise. - * gcc.target/powerpc/sse2-psubw-1.c: Likewise. - * gcc.target/powerpc/sse2-punpckhbw-1.c: Likewise. - * gcc.target/powerpc/sse2-punpckhdq-1.c: Likewise. - * gcc.target/powerpc/sse2-punpckhqdq-1.c: Likewise. - * gcc.target/powerpc/sse2-punpckhwd-1.c: Likewise. - * gcc.target/powerpc/sse2-punpcklbw-1.c: Likewise. - * gcc.target/powerpc/sse2-punpckldq-1.c: Likewise. - * gcc.target/powerpc/sse2-punpcklqdq-1.c: Likewise. - * gcc.target/powerpc/sse2-punpcklwd-1.c: Likewise. - * gcc.target/powerpc/sse2-pxor-1.c: Likewise. - * gcc.target/powerpc/sse2-shufpd-1.c: Likewise. - * gcc.target/powerpc/sse2-sqrtpd-1.c: Likewise. - * gcc.target/powerpc/sse2-subpd-1.c: Likewise. - * gcc.target/powerpc/sse2-subsd-1.c: Likewise. - * gcc.target/powerpc/sse2-ucomisd-1.c: Likewise. - * gcc.target/powerpc/sse2-ucomisd-2.c: Likewise. - * gcc.target/powerpc/sse2-ucomisd-3.c: Likewise. - * gcc.target/powerpc/sse2-ucomisd-4.c: Likewise. - * gcc.target/powerpc/sse2-ucomisd-5.c: Likewise. - * gcc.target/powerpc/sse2-ucomisd-6.c: Likewise. - * gcc.target/powerpc/sse2-unpckhpd-1.c: Likewise. - * gcc.target/powerpc/sse2-unpcklpd-1.c: Likewise. - * gcc.target/powerpc/sse2-xorpd-1.c: Likewise. - * gcc.target/powerpc/sse3-addsubpd.c: Likewise. - * gcc.target/powerpc/sse3-addsubps.c: Likewise. - * gcc.target/powerpc/sse3-haddpd.c: Likewise. - * gcc.target/powerpc/sse3-haddps.c: Likewise. - * gcc.target/powerpc/sse3-hsubpd.c: Likewise. - * gcc.target/powerpc/sse3-hsubps.c: Likewise. - * gcc.target/powerpc/sse3-lddqu.c: Likewise. - * gcc.target/powerpc/sse3-movddup.c: Likewise. - * gcc.target/powerpc/sse3-movshdup.c: Likewise. - * gcc.target/powerpc/sse3-movsldup.c: Likewise. - * gcc.target/powerpc/mmx-packuswb-1.c: Likewise. Also, add - ommitted "-mpower8-vector" to dg-options. - -2018-10-26 Jan Hubicka - - * g++.dg/lto/odr-1_0.C: Fix template. - * g++.dg/lto/odr-1_1.C: Fix template. - -2018-10-26 Richard Biener - - PR tree-optimization/87105 - * g++.dg/vect/slp-pr87105.cc: Adjust. - * gcc.dg/torture/20181024-1.c: New testcase. - * g++.dg/opt/20181025-1.C: Likewise. - -2018-10-26 Richard Biener - - PR testsuite/87754 - * g++.dg/lto/odr-1_0.C: Fix pattern. - -2018-10-26 Richard Biener - - PR tree-optimization/87746 - * gcc.dg/pr87746.c: New testcase. - -2018-10-26 Rainer Orth - - * gcc.dg/pr78973-2.c: Remove xfail on dg-warning. - -2018-10-25 Carl Love - - * gcc.target/powerpc/float128-cmp2-runnable.c: New test file. - -2018-10-25 Martin Liska - - PR testsuite/87739 - * gcc.dg/tree-ssa/pr84436-5.c (foo): Use signed char. - -2018-10-25 Martin Liska - - PR other/87735 - * gcc.dg/tree-prof/time-profiler-1.c: Revert. - * gcc.dg/tree-prof/time-profiler-2.c: Likewise. - * gcc.dg/tree-prof/time-profiler-3.c: Likewise. - -2018-10-25 Ilya Leoshkevich - - * gcc.target/s390/global-array-almost-huge-element.c: New test. - * gcc.target/s390/global-array-almost-negative-huge-element.c: New test. - * gcc.target/s390/global-array-element-pic.c: New test. - * gcc.target/s390/global-array-even-element.c: New test. - * gcc.target/s390/global-array-huge-element.c: New test. - * gcc.target/s390/global-array-negative-huge-element.c: New test. - * gcc.target/s390/global-array-odd-element.c: New test. - -2018-10-25 Jan Hubicka - - * g++.dg/lto/odr-1_0.C: New test. - * g++.dg/lto/odr-1_1.C: New test. - -2018-10-25 Thomas Preud'homme - - - * gcc.dg/sibcall-9.c: Make v static. - * gcc.dg/sibcall-10.c: Likewise. - -2018-10-25 Richard Biener - - PR tree-optimization/87665 - PR tree-optimization/87745 - * gfortran.dg/20181025-1.f: New testcase. - -2018-10-25 Jakub Jelinek - - PR fortran/87725 - * c-c++-common/gomp/schedule-modifiers-1.c (bar): Separate modifier - from kind with a colon rather than comma. - * gfortran.dg/gomp/schedule-modifiers-1.f90: New test. - * gfortran.dg/gomp/schedule-modifiers-2.f90: New test. - -2018-10-24 Michael Meissner - - * gcc.target/powerpc/float128-math.c: New test to make sure the - long double built-in function names use the f128 form if the user - switched from IBM long double to IEEE long double. - * gcc.target/powerpc/ppc-fortran/ieee128-math.f90: Likewise. - -2018-10-24 Jakub Jelinek - - PR c++/86288 - * g++.dg/cpp0x/gen-attrs-66.C: New test. - -2018-10-24 Martin Sebor - - PR c++/84851 - * g++.dg/Wclass-memaccess-4.C: Remove XFAIL. - -2018-10-24 Martin Liska - - PR tree-optimization/84436 - * gcc.dg/tree-ssa/pr84436-1.c: New test. - * gcc.dg/tree-ssa/pr84436-2.c: New test. - * gcc.dg/tree-ssa/pr84436-3.c: New test. - * gcc.dg/tree-ssa/pr84436-4.c: New test. - * gcc.dg/tree-ssa/pr84436-5.c: New test. - -2018-10-24 Ilya Leoshkevich - - * gcc.target/s390/20181024-1.c: New test. - -2018-10-24 Richard Biener - - PR tree-optimization/87105 - * gcc.dg/vect/bb-slp-39.c: New testcase. - * gfortran.dg/vect/pr83232.f90: Un-XFAIL. - -2018-10-24 Richard Biener - - PR tree-optimization/84013 - * gcc.dg/tree-ssa/restrict-9.c: New testcase. - -2018-10-24 Richard Biener - - PR tree-optimization/87665 - * gcc.dg/torture/pr87665.c: New testcase. - -2018-10-23 Jakub Jelinek - - * g++.dg/cpp2a/lambda-this3.C: Limit dg-bogus directives to c++17_down - only. Add expected warnings and messages for c++2a. - -2018-10-23 Richard Biener - - PR tree-optimization/87105 - PR tree-optimization/87608 - * g++.dg/tree-ssa/phiopt-1.C: New testcase. - g++.dg/vect/slp-pr87105.cc: Likewise. - * g++.dg/tree-ssa/pr21463.C: Scan phiopt2 because this testcase - relies on phiprop run before. - * g++.dg/tree-ssa/pr30738.C: Likewise. - * g++.dg/tree-ssa/pr57380.C: Likewise. - * gcc.dg/tree-ssa/pr84859.c: Likewise. - * gcc.dg/tree-ssa/pr45397.c: Scan phiopt2 because phiopt1 is - confused by copies in the IL left by EVRP. - * gcc.dg/tree-ssa/phi-opt-5.c: Likewise, this time confused - by predictors. - * gcc.dg/tree-ssa/phi-opt-12.c: Scan phiopt2. - * gcc.dg/pr24574.c: Likewise. - * g++.dg/tree-ssa/pr86544.C: Scan phiopt4. - -2018-10-23 Richard Biener - - PR tree-optimization/87700 - * gcc.dg/torture/pr87700.c: New testcase. - -2018-10-23 Richard Biener - - PR tree-optimization/87693 - * gcc.dg/torture/pr87693.c: New testcase. - -2018-10-23 Paul Thomas - - PR fortran/85603 - * gfortran.dg/deferred_character_23.f90 : Check reallocation is - occurring as it should and a regression caused by version 1 of - this patch. - -2018-10-22 Yury Gribov - - PR tree-optimization/87633 - * g++.dg/pr87633.C: New test. - -2018-10-22 Marek Polacek - - PR testsuite/87694 - * g++.dg/concepts/memfun-err.C: Make it a compile test. - -2018-10-22 Richard Biener - - * gcc.dg/tree-ssa/evrp12.c: New testcase. - * gcc.dg/predict-6.c: Adjust. - * gcc.dg/tree-ssa/vrp33.c: Disable EVRP. - * gcc.dg/tree-ssa/vrp02.c: Likewise. - * gcc.dg/tree-ssa/cunroll-9.c: Likewise. - -2018-10-22 Martin Liska - - PR tree-optimization/87686 - * g++.dg/tree-ssa/pr87686.C: New test. - -2018-10-22 Jakub Jelinek - - * g++.target/i386/i386.exp: Use g++-dg-runtest to iterate - properly -std= options. - -2018-10-22 Richard Biener - - * gcc.dg/graphite/scop-4.c: Avoid out-of-bound access. - -2018-10-22 Eric Botcazou - - * gnat.dg/sso14.adb: New test. - * gnat.dg/sso15.adb: Likewise. - -2018-10-22 Eric Botcazou - - * gnat.dg/warn19.ad[sb]: New test. - * gnat.dg/warn19_pkg.ads: New helper. - -2018-10-22 Richard Biener - - PR tree-optimization/87640 - * gcc.dg/torture/pr87640.c: New testcase. - -2018-10-22 Ilya Leoshkevich - - * gcc.target/s390/litpool-int.c: New test. - -2018-10-22 H.J. Lu - - PR target/72782 - * gcc.target/i386/avx512f-andn-di-zmm-1.c: New test. - * gcc.target/i386/avx512f-andn-si-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-andn-si-zmm-2.c: Likewise. - * gcc.target/i386/avx512f-andn-si-zmm-3.c: Likewise. - * gcc.target/i386/avx512f-andn-si-zmm-4.c: Likewise. - * gcc.target/i386/avx512f-andn-si-zmm-5.c: Likewise. - * gcc.target/i386/avx512vl-andn-si-xmm-1.c: Likewise. - * gcc.target/i386/avx512vl-andn-si-ymm-1.c: Likewise. - -2018-10-22 H.J. Lu - - PR target/72782 - * gcc.target/i386/avx512f-and-di-zmm-1.c: New test. - * gcc.target/i386/avx512f-and-si-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-and-si-zmm-2.c: Likewise. - * gcc.target/i386/avx512f-and-si-zmm-3.c: Likewise. - * gcc.target/i386/avx512f-and-si-zmm-4.c: Likewise. - * gcc.target/i386/avx512f-and-si-zmm-5.c: Likewise. - * gcc.target/i386/avx512f-and-si-zmm-6.c: Likewise. - * gcc.target/i386/avx512f-or-di-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-or-si-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-or-si-zmm-2.c: Likewise. - * gcc.target/i386/avx512f-or-si-zmm-3.c: Likewise. - * gcc.target/i386/avx512f-or-si-zmm-4.c: Likewise. - * gcc.target/i386/avx512f-or-si-zmm-5.c: Likewise. - * gcc.target/i386/avx512f-or-si-zmm-6.c: Likewise. - * gcc.target/i386/avx512f-xor-di-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-xor-si-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-xor-si-zmm-2.c: Likewise. - * gcc.target/i386/avx512f-xor-si-zmm-3.c: Likewise. - * gcc.target/i386/avx512f-xor-si-zmm-4.c: Likewise. - * gcc.target/i386/avx512f-xor-si-zmm-5.c: Likewise. - * gcc.target/i386/avx512f-xor-si-zmm-6.c: Likewise. - * gcc.target/i386/avx512vl-and-si-xmm-1.c: Likewise. - * gcc.target/i386/avx512vl-and-si-ymm-1.c: Likewise. - * gcc.target/i386/avx512vl-or-si-xmm-1.c: Likewise. - * gcc.target/i386/avx512vl-or-si-ymm-1.c: Likewise. - * gcc.target/i386/avx512vl-xor-si-xmm-1.c: Likewise. - * gcc.target/i386/avx512vl-xor-si-ymm-1.c: Likewise. - -2018-10-22 H.J. Lu - - PR target/72782 - * gcc.target/i386/avx512f-add-di-zmm-1.c: New test. - * gcc.target/i386/avx512f-add-si-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-add-si-zmm-2.c: Likewise. - * gcc.target/i386/avx512f-add-si-zmm-3.c: Likewise. - * gcc.target/i386/avx512f-add-si-zmm-4.c: Likewise. - * gcc.target/i386/avx512f-add-si-zmm-5.c: Likewise. - * gcc.target/i386/avx512f-add-si-zmm-6.c: Likewise. - * gcc.target/i386/avx512f-sub-di-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-sub-si-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-sub-si-zmm-2.c: Likewise. - * gcc.target/i386/avx512f-sub-si-zmm-3.c: Likewise. - * gcc.target/i386/avx512f-sub-si-zmm-4.c: Likewise. - * gcc.target/i386/avx512f-sub-si-zmm-5.c: Likewise. - * gcc.target/i386/avx512vl-add-si-xmm-1.c: Likewise. - * gcc.target/i386/avx512vl-add-si-ymm-1.c: Likewise. - * gcc.target/i386/avx512vl-sub-si-xmm-1.c: Likewise. - * gcc.target/i386/avx512vl-sub-si-ymm-1.c: Likewise. - -2018-10-21 H.J. Lu - - PR target/72782 - * gcc.target/i386/avx-1.c (__builtin_ia32_vfmsubpd512_mask): New. - (__builtin_ia32_vfmsubpd512_maskz): Likewise. - (__builtin_ia32_vfmsubps512_mask): Likewise. - (__builtin_ia32_vfmsubps512_maskz): Likewise. - (__builtin_ia32_vfnmaddpd512_mask3): Likewise. - (__builtin_ia32_vfnmaddpd512_maskz): Likewise. - (__builtin_ia32_vfnmaddps512_mask3): Likewise. - (__builtin_ia32_vfnmaddps512_maskz): Likewise. - (__builtin_ia32_vfnmsubpd512_maskz): Likewise. - (__builtin_ia32_vfnmsubps512_maskz): Likewise. - * testsuite/gcc.target/i386/sse-13.c - (__builtin_ia32_vfmsubpd512_mask): Likewise. - (__builtin_ia32_vfmsubpd512_maskz): Likewise. - (__builtin_ia32_vfmsubps512_mask): Likewise. - (__builtin_ia32_vfmsubps512_maskz): Likewise. - (__builtin_ia32_vfnmaddpd512_mask3): Likewise. - (__builtin_ia32_vfnmaddpd512_maskz): Likewise. - (__builtin_ia32_vfnmaddps512_mask3): Likewise. - (__builtin_ia32_vfnmaddps512_maskz): Likewise. - (__builtin_ia32_vfnmsubpd512_maskz): Likewise. - (__builtin_ia32_vfnmsubps512_maskz): Likewise. - * testsuite/gcc.target/i386/sse-23.c - (__builtin_ia32_vfmsubpd512_mask): Likewise. - (__builtin_ia32_vfmsubpd512_maskz): Likewise. - (__builtin_ia32_vfmsubps512_mask): Likewise. - (__builtin_ia32_vfmsubps512_maskz): Likewise. - (__builtin_ia32_vfnmaddpd512_mask3): Likewise. - (__builtin_ia32_vfnmaddpd512_maskz): Likewise. - (__builtin_ia32_vfnmaddps512_mask3): Likewise. - (__builtin_ia32_vfnmaddps512_maskz): Likewise. - (__builtin_ia32_vfnmsubpd512_maskz): Likewise. - (__builtin_ia32_vfnmsubps512_maskz): Likewise. - -2018-10-21 H.J. Lu - - PR target/72782 - * gcc.target/i386/avx512f-fnmsub-df-zmm-1.c: New test. - * gcc.target/i386/avx512f-fnmsub-sf-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-fnmsub-sf-zmm-2.c: Likewise. - * gcc.target/i386/avx512f-fnmsub-sf-zmm-3.c: Likewise. - * gcc.target/i386/avx512f-fnmsub-sf-zmm-4.c: Likewise. - * gcc.target/i386/avx512f-fnmsub-sf-zmm-5.c: Likewise. - * gcc.target/i386/avx512f-fnmsub-sf-zmm-6.c: Likewise. - * gcc.target/i386/avx512f-fnmsub-sf-zmm-7.c: Likewise. - * gcc.target/i386/avx512f-fnmsub-sf-zmm-8.c: Likewise. - * gcc.target/i386/avx512vl-fnmsub-sf-xmm-1.c: Likewise. - * gcc.target/i386/avx512vl-fnmsub-sf-ymm-1.c: Likewise. - -2018-10-21 H.J. Lu - - PR target/72782 - * gcc.target/i386/avx512f-fnmadd-df-zmm-1.c: New test. - * gcc.target/i386/avx512f-fnmadd-sf-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-fnmadd-sf-zmm-2.c: Likewise. - * gcc.target/i386/avx512f-fnmadd-sf-zmm-3.c: Likewise. - * gcc.target/i386/avx512f-fnmadd-sf-zmm-4.c: Likewise. - * gcc.target/i386/avx512f-fnmadd-sf-zmm-5.c: Likewise. - * gcc.target/i386/avx512f-fnmadd-sf-zmm-6.c: Likewise. - * gcc.target/i386/avx512f-fnmadd-sf-zmm-7.c: Likewise. - * gcc.target/i386/avx512f-fnmadd-sf-zmm-8.c: Likewise. - * gcc.target/i386/avx512vl-fnmadd-sf-xmm-1.c: Likewise. - * gcc.target/i386/avx512vl-fnmadd-sf-ymm-1.c: Likewise. - -2018-10-21 H.J. Lu - - PR target/72782 - * gcc.target/i386/avx512f-fmsub-df-zmm-1.c: New test. - * gcc.target/i386/avx512f-fmsub-sf-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-fmsub-sf-zmm-2.c: Likewise. - * gcc.target/i386/avx512f-fmsub-sf-zmm-3.c: Likewise. - * gcc.target/i386/avx512f-fmsub-sf-zmm-4.c: Likewise. - * gcc.target/i386/avx512f-fmsub-sf-zmm-5.c: Likewise. - * gcc.target/i386/avx512f-fmsub-sf-zmm-6.c: Likewise. - * gcc.target/i386/avx512f-fmsub-sf-zmm-7.c: Likewise. - * gcc.target/i386/avx512f-fmsub-sf-zmm-8.c: Likewise. - * gcc.target/i386/avx512vl-fmsub-sf-xmm-1.c: Likewise. - * gcc.target/i386/avx512vl-fmsub-sf-ymm-1.c: Likewise. - -2018-10-21 Paul Thomas - - PR fortran/71880 - * gfortran.dg/deferred_character_31.f90 : New test. - -2018-10-21 H.J. Lu - - PR target/72782 - * gcc.target/i386/avx512f-mul-df-zmm-1.c: New test. - * gcc.target/i386/avx512f-mul-sf-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-mul-sf-zmm-2.c: Likewise. - * gcc.target/i386/avx512f-mul-sf-zmm-3.c: Likewise. - * gcc.target/i386/avx512f-mul-sf-zmm-4.c: Likewise. - * gcc.target/i386/avx512f-mul-sf-zmm-5.c: Likewise. - * gcc.target/i386/avx512f-mul-sf-zmm-6.c: Likewise. - * gcc.target/i386/avx512vl-mul-sf-xmm-1.c: Likewise. - * gcc.target/i386/avx512vl-mul-sf-ymm-1.c: Likewise. - -2018-10-21 H.J. Lu - - PR target/87662 - * gcc.target/i386/pr87662.c - -2018-10-20 H.J. Lu - - PR target/72782 - * gcc.target/i386/avx512f-div-df-zmm-1.c: New test. - * gcc.target/i386/avx512f-div-sf-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-div-sf-zmm-2.c: Likewise. - * gcc.target/i386/avx512f-div-sf-zmm-3.c: Likewise. - * gcc.target/i386/avx512f-div-sf-zmm-4.c: Likewise. - * gcc.target/i386/avx512f-div-sf-zmm-5.c: Likewise. - * gcc.target/i386/avx512vl-div-sf-xmm-1.c: Likewise. - * gcc.target/i386/avx512vl-div-sf-ymm-1.c: Likewise. - -2018-10-20 Marek Polacek - - * g++.dg/*.C: Use target c++17 instead of explicit dg-options. - * lib/g++-dg.exp: Don't test C++11 by default. Add C++17 to - the list of default stds to test. - -2018-10-20 Jakub Jelinek - - PR middle-end/87647 - * gcc.c-torture/compile/pr87647.c: New test. - -2018-10-19 Jakub Jelinek - - PR middle-end/85488 - PR middle-end/87649 - * c-c++-common/gomp/doacross-2.c: New test. - * c-c++-common/gomp/sink-3.c: Expect another error during error - recovery. - -2018-10-19 Segher Boessenkool - - * gcc.target/powerpc/safe-indirect-jump-2.c: Do not check assigned CR - field number. - * gcc.target/powerpc/safe-indirect-jump-3.c: Ditto. - -2018-10-19 Richard Biener - - PR middle-end/87645 - * gcc.dg/torture/pr87645.c: New testcase. - -2018-10-19 Richard Biener - - PR target/87657 - * gcc.target/i386/pr87657.c: New testcase. - -2018-10-19 H.J. Lu - - PR target/72782 - * gcc.target/i386/avx512-binop-1.h: New file. - * gcc.target/i386/avx512-binop-2.h: Likewise. - * gcc.target/i386/avx512-binop-3.h: Likewise. - * gcc.target/i386/avx512-binop-4.h: Likewise. - * gcc.target/i386/avx512-binop-5.h: Likewise. - * gcc.target/i386/avx512-binop-6.h: Likewise. - * gcc.target/i386/avx512f-add-df-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-add-sf-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-add-sf-zmm-2.c: Likewise. - * gcc.target/i386/avx512f-add-sf-zmm-3.c: Likewise. - * gcc.target/i386/avx512f-add-sf-zmm-4.c: Likewise. - * gcc.target/i386/avx512f-add-sf-zmm-5.c: Likewise. - * gcc.target/i386/avx512f-add-sf-zmm-6.c: Likewise. - * gcc.target/i386/avx512f-sub-df-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-sub-sf-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-sub-sf-zmm-2.c: Likewise. - * gcc.target/i386/avx512f-sub-sf-zmm-3.c: Likewise. - * gcc.target/i386/avx512f-sub-sf-zmm-4.c: Likewise. - * gcc.target/i386/avx512f-sub-sf-zmm-5.c: Likewise. - * gcc.target/i386/avx512vl-add-sf-xmm-1.c: Likewise. - * gcc.target/i386/avx512vl-add-sf-ymm-1.c: Likewise. - * gcc.target/i386/avx512vl-sub-sf-xmm-1.c: Likewise. - * gcc.target/i386/avx512vl-sub-sf-ymm-1.c: Likewise. - -2018-10-19 Ilya Leoshkevich - - PR rtl-optimization/87596 - * gcc.target/i386/pr87596.c: New test. - -2018-10-19 Eric Botcazou - - * gnat.dg/frame_overflow2.adb: New test. - -2018-10-18 H.J. Lu - - PR target/72782 - * gcc.target/i386/avx512-fma-1.h: New file. - * gcc.target/i386/avx512-fma-2.h: Likewise. - * gcc.target/i386/avx512-fma-3.h: Likewise. - * gcc.target/i386/avx512-fma-4.h: Likewise. - * gcc.target/i386/avx512-fma-5.h: Likewise. - * gcc.target/i386/avx512-fma-6.h: Likewise. - * gcc.target/i386/avx512-fma-7.h: Likewise. - * gcc.target/i386/avx512-fma-8.h: Likewise. - * gcc.target/i386/avx512f-fmadd-df-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-fmadd-sf-zmm-1.c: Likewise. - * gcc.target/i386/avx512f-fmadd-sf-zmm-2.c: Likewise. - * gcc.target/i386/avx512f-fmadd-sf-zmm-3.c: Likewise. - * gcc.target/i386/avx512f-fmadd-sf-zmm-4.c: Likewise. - * gcc.target/i386/avx512f-fmadd-sf-zmm-5.c: Likewise. - * gcc.target/i386/avx512f-fmadd-sf-zmm-6.c: Likewise. - * gcc.target/i386/avx512f-fmadd-sf-zmm-7.c: Likewise. - * gcc.target/i386/avx512f-fmadd-sf-zmm-8.c: Likewise. - * gcc.target/i386/avx512vl-fmadd-sf-xmm-1.c: Likewise. - * gcc.target/i386/avx512vl-fmadd-sf-ymm-1.c: Likewise. - -2018-10-18 Tobias Burnus - - PR fortran/87625 - * gfortran.dg/realloc_on_assign_31.f90: New file. - -2018-10-18 David Malcolm - - PR tree-optimization/87562 - * c-c++-common/substring-location-PR-87562-1-a.h: New file. - * c-c++-common/substring-location-PR-87562-1-b.h: New file. - * c-c++-common/substring-location-PR-87562-1.c: New test. - * gcc.dg/plugin/diagnostic-test-string-literals-1.c: Add test for - PR 87562. - * gcc.dg/plugin/pr87562-a.h: New file. - * gcc.dg/plugin/pr87562-b.h: New file. - -2018-10-18 Paul Thomas - - PR fortran/58618 - * gfortran.dg/associate_45.f90 : New test. - -2018-10-18 Paul Thomas - - PR fortran/58618 - * gfortran.dg/deferred_character_30.f90 : New test. - -2018-10-18 Richard Biener - - PR middle-end/87087 - * gcc.dg/torture/pr87087.c: New testcase. - * gcc.dg/graphite/pr84204.c: XFAIL. - * gcc.dg/graphite/pr85935.c: Likewise. - -2018-10-18 H.J. Lu - - PR target/87537 - * gcc.target/i386/pr87537-1.c: New test. - -2018-10-17 Joseph Myers - - * gcc.dg/c11-static-assert-7.c, gcc.dg/c11-static-assert-8.c, - gcc.dg/c11-static-assert-9.c, gcc.dg/c2x-static-assert-1.c, - gcc.dg/c2x-static-assert-2.c, gcc.dg/c99-static-assert-2.c, - gcc.dg/gnu2x-static-assert-1.c: New tests. - * gcc.dg/missing-symbol-3.c: Update expected fix-it text. - -2018-10-17 Tobias Burnus - - PR fortran/87632 - * gfortran.dg/select_type_47.f90: New. - -2018-10-17 Eric Botcazou - - * gcc.c-torture/execute/pr87623.c: New test. - -2018-10-17 Paolo Carlini - - PR c++/84705 - * g++.dg/cpp0x/pr84705.C: New. - -2018-10-17 Paul Thomas - - PR fortran/56386 - PR fortran/58906 - PR fortran/77385 - * gfortran.dg/associate_44.f90 : New test. - - PR fortran/80260 - * gfortran.dg/select_type_45.f90 : New test. - - PR fortran/82077 - * gfortran.dg/select_type_46.f90 : New test. - -2018-10-16 Tobias Burnus - - PR fortran/67125 - * gfortran.dg/allocate_with_source_26.f90: Extend - testcase with polymorphic variables. - -2018-10-16 Tobias Burnus - - PR fortran/67125 - * gfortran.dg/allocate_with_source_26.f90: New. - -2018-10-15 David Malcolm - - * gcc.dg/missing-header-fixit-3.c: Update expected indentation - to reflect minimum margin width. - * gcc.dg/missing-header-fixit-4.c: Likewise. - * gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c: - Likewise. - * gcc.dg/plugin/diagnostic-test-show-locus-color-line-numbers.c: - Likewise. - * gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers-2.c: - New test. - * gcc.dg/plugin/plugin.exp (plugin_test_list): Add it. - -2018-10-15 Tobias Burnus - - PR fortran/87597 - * gfortran.dg/inline_matmul_24.f90: Tweak scan-tree. - -2018-10-15 Renlin Li - - PR target/87563 - * gcc.target/aarch64/sve/pr87563.c: New. - -2018-10-15 Paul Thomas - Tobias Burnus - - PR fortran/87566 - * gfortran.dg/select_type_44.f90: New test. - * gfortran.dg/associate_42.f90: New test. - -2018-10-15 Bin Cheng - - PR tree-optimization/87022 - * gcc.dg/tree-ssa/pr87022.c: New test. - -2018-10-15 Richard Biener - - PR middle-end/87610 - * gcc.dg/torture/restrict-6.c: New testcase. - -2018-10-15 Andreas Krebbel - - * g++.dg/vec-init-1.C: New test. - -2018-10-14 H.J. Lu - - PR target/87599 - * gcc.target/i386/pr87599.c: New test. - -2018-10-14 H.J. Lu - - PR target/87572 - * gcc.target/i386/pr87572.c: New test. - -2018-10-14 Paul Thomas - - PR fortran/83146 - * gfortran.dg/associate_43.f90: New test. - -2018-10-14 Anthony Green - - * gcc.c-torture/execute/20101011-1.c: Adjust for moxie. - -2018-10-12 Yury Gribov - - PR middle-end/81376 - * c-c++-common/pr81376.c: New test. - * gcc.target/i386/387-ficom-2.c: Update test. - * gcc.target/i386/387-ficom-2.c: Ditto. - -2018-10-12 Tobias Burnus - - PR fortran/87597 - * gfortran.dg/inline_matmul_24.f90: New. - -2018-10-12 Tobias Burnus - - PR fortran/58787 - * gfortran.dg/goacc/pr77765.f90: Modify dg-error. - * gfortran.dg/interface_42.f90: Ditto. - * gfortran.dg/internal_references_1.f90: Ditto. - * gfortran.dg/invalid_procedure_name.f90: Ditto. - * gfortran.dg/pr65453.f90: Ditto. - * gfortran.dg/pr77414.f90: Ditto. - * gfortran.dg/pr78741.f90: Ditto. - * gfortran.dg/same_name_2.f90: Ditto. - -2018-10-12 Wilco Dijkstra - - * gcc.target/aarch64/popcnt.c: Test zero-extended popcount. - * gcc.target/aarch64/vec_zeroextend.c: Test zero-extended vectors. - -2018-10-11 Will Schmidt - - * gcc.target/powerpc/fold-vec-insert-char-p8.c: New. - * gcc.target/powerpc/fold-vec-insert-char-p9.c: New. - * gcc.target/powerpc/fold-vec-insert-double.c: New. - * gcc.target/powerpc/fold-vec-insert-float-p8.c: New. - * gcc.target/powerpc/fold-vec-insert-float-p9.c: New. - * gcc.target/powerpc/fold-vec-insert-int-p8.c: New. - * gcc.target/powerpc/fold-vec-insert-int-p9.c: New. - * gcc.target/powerpc/fold-vec-insert-longlong.c: New. - * gcc.target/powerpc/fold-vec-insert-short-p8.c: New. - * gcc.target/powerpc/fold-vec-insert-short-p9.c: New. - -2018-10-11 Will Schmidt - - * gcc.target/powerpc/fold-vec-extract-char.p7.c: New. - * gcc.target/powerpc/fold-vec-extract-char.p8.c: New. - * gcc.target/powerpc/fold-vec-extract-char.p9.c: New. - * gcc.target/powerpc/fold-vec-extract-double.p7.c: New. - * gcc.target/powerpc/fold-vec-extract-double.p8.c: New. - * gcc.target/powerpc/fold-vec-extract-double.p9.c: New. - * gcc.target/powerpc/fold-vec-extract-float.p7.c: New. - * gcc.target/powerpc/fold-vec-extract-float.p8.c: New. - * gcc.target/powerpc/fold-vec-extract-float.p9.c: New. - * gcc.target/powerpc/fold-vec-extract-int.p7.c: New. - * gcc.target/powerpc/fold-vec-extract-int.p8.c: New. - * gcc.target/powerpc/fold-vec-extract-int.p9.c: New. - * gcc.target/powerpc/fold-vec-extract-longlong.p7.c: New. - * gcc.target/powerpc/fold-vec-extract-longlong.p8.c: New. - * gcc.target/powerpc/fold-vec-extract-longlong.p9.c: New. - * gcc.target/powerpc/fold-vec-extract-short.p7.c: New. - * gcc.target/powerpc/fold-vec-extract-short.p8.c: New. - * gcc.target/powerpc/fold-vec-extract-short.p9.c: New. - -2018-10-11 Will Schmidt - - * gcc.target/powerpc/fold-vec-select-char.c: New. - * gcc.target/powerpc/fold-vec-select-double.c: New. - * gcc.target/powerpc/fold-vec-select-float.c: New. - * gcc.target/powerpc/fold-vec-select-int.c: New. - * gcc.target/powerpc/fold-vec-select-longlong.c: New. - * gcc.target/powerpc/fold-vec-select-short.c: New. - -2018-10-09 Giuliano Belinassi - - PR tree-optimization/86829 - * gcc.dg/sinatan-1.c: New test. - * gcc.dg/sinatan-2.c: New test. - * gcc.dg/sinatan-3.c: New test. - -2018-10-11 Will Schmidt - - * gcc.target/powerpc/fold-vec-mergeeo-floatdouble.c: New. - * gcc.target/powerpc/fold-vec-mergeeo-int.c: New. - * gcc.target/powerpc/fold-vec-mergeeo-longlong.c: New. - -2018-10-11 Tobias Burnus - - Revert: - 2018-10-09 Tobias Burnus - - PR fortran/83522 - * gfortran.dg/actual_array_substr_1.f90: Add dg-error, - change to dg-do compile. - * gfortran.dg/actual_array_substr_2.f90: Ditto. - * gfortran.dg/array_initializer_1.f90: Use array - element not size-one section. - * gfortran.dg/array_substring.f90: New. - -2018-10-11 Wilco Dijkstra - - PR target/87511 - * gcc.target/aarch64/pr87511.c: Add new test. - -2018-10-11 David Malcolm - - PR c++/84993 - * g++.dg/torture/accessor-fixits-9.C: New test. - -2018-10-11 Nathan Sidwell - - * g++.dg/parse/close-brace.C: New. - * g++.dg/cpp0x/noexcept16.C: Avoid warning. - * g++.old-deja/g++.other/crash32.C: Add another error - -2018-10-11 Jakub Jelinek - - PR c++/85070 - * g++.dg/cpp0x/pr85070.C: Change effective target for diagnostics from - c++14_only to c++14. - -2018-10-11 David Malcolm - - * lib/multiline.exp (dg-begin-multiline-output): Issue an error if - there hasn't been a dg-end-multiline-output since the last - dg-begin-multiline-output. - (dg-end-multiline-output): Issue an error if there hasn't been a - dg-begin-multiline-output. Reset _multiline_last_beginning_line - as soon possible. Rename "line" to "last_line". - -2018-10-11 Andrew Stubbs - - * selftests/repeat.rtl: New file. - -2018-10-11 Jakub Jelinek - - PR c++/87582 - * g++.dg/cpp1z/decomp48.C: New test. - -2018-10-11 David Malcolm - - * g++.dg/diagnostic/macro-arg-count.C: Move to... - * c-c++-common/cpp/macro-arg-count-1.c: ...here, generalizing - output for C vs C++. Expect notes showing the definitions of the - macros. - * c-c++-common/cpp/macro-arg-count-2.c: New test, adapted from the - above. - -2018-10-11 Martin Jambor - - * gcc.dg/warn-abs-1.c: Guard tests assuming size of long double is - greater that the size of double by target large_long double. - -2018-10-11 Jakub Jelinek - - * g++.dg/cpp2a/feat-cxx2a.C: New test. - - PR c++/87547 - * g++.dg/rtti/typeid12.C: New test. - -2018-10-10 Eric Botcazou - - * g++.dg/other/pr87574.C: New test. - -2018-10-10 Marek Polacek - - PR c++/87567 - constexpr rejects call to non-constexpr function. - * g++.dg/cpp1y/constexpr-loop7.C: New test. - -2018-10-10 Paul A. Clarke - - PR target/87579 - * gcc.target/powerpc/sse3-check.h: Remove duplicated code. - * gcc.target/powerpc/sse3-addsubps.c: Likewise. - * gcc.target/powerpc/sse3-addsubpd.c: Likewise. - * gcc.target/powerpc/sse3-haddps.c: Likewise. - * gcc.target/powerpc/sse3-hsubps.c: Likewise. - * gcc.target/powerpc/sse3-haddpd.c: Likewise. - * gcc.target/powerpc/sse3-hsubpd.c: Likewise. - * gcc.target/powerpc/sse3-lddqu.c: Likewise. - * gcc.target/powerpc/sse3-movsldup.c: Likewise. - * gcc.target/powerpc/sse3-movshdup.c: Likewise. - * gcc.target/powerpc/sse3-movddup.c: Likewise. - * gcc.target/powerpc/pr37191.c: Likewise. -2018-10-10 Martin Sebor - - PR c/54391 - * gcc.dg/transparent-union-6.c: New. - -2018-10-10 Martin Sebor - - * gcc.c-torture/execute/memchr-1.c: Avoid assuming 4-byte wchar_t. - Add a test for 2-byte wchar_t. - * gcc.dg/builtin-memchr.c: New test. - -2018-10-10 Uros Bizjak - - PR target/87573 - * gcc.target/i386/pr87573.c: New test. - -2018-10-10 Jakub Jelinek - - PR target/87550 - * gcc.target/i386/pr87550.c: New test. - - PR c/87286 - * gcc.dg/pr87286.c: Add -Wno-psabi to dg-options. - -2018-10-09 Paolo Carlini - - PR c++/84423 - * g++.dg/concepts/pr84423-1.C: New. - * g++.dg/concepts/pr84423-2.C: Likewise. - * g++.dg/cpp0x/auto39.C: Test location too. - * g++.dg/cpp0x/auto9.C: Likewise. - * g++.dg/cpp1y/pr60384.C: Likewise. - -2018-10-09 Paul A. Clarke - - * gcc.target/powerpc/sse3-check.h: New file. - * gcc.target/powerpc/sse3-addsubps.c: New file. - * gcc.target/powerpc/sse3-addsubpd.c: New file. - * gcc.target/powerpc/sse3-haddps.c: New file. - * gcc.target/powerpc/sse3-hsubps.c: New file. - * gcc.target/powerpc/sse3-haddpd.c: New file. - * gcc.target/powerpc/sse3-hsubpd.c: New file. - * gcc.target/powerpc/sse3-lddqu.c: New file. - * gcc.target/powerpc/sse3-movsldup.c: New file. - * gcc.target/powerpc/sse3-movshdup.c: New file. - * gcc.target/powerpc/sse3-movddup.c: New file. - * gcc.target/powerpc/pr37191.c: New file. - -2018-10-09 Tobias Burnus - - PR fortran/83522 - * gfortran.dg/actual_array_substr_1.f90: Add dg-error, - change to dg-do compile. - * gfortran.dg/actual_array_substr_2.f90: Ditto. - * gfortran.dg/array_initializer_1.f90: Use array - element not size-one section. - * gfortran.dg/array_substring.f90: New. - -2018-10-09 Eric Botcazou - - * gnat.dg/derived_type5.adb, gnat.dg/derived_type5_pkg.ads: New - testcase. - -2018-10-09 Eric Botcazou - - * gnat.dg/warn17.adb: New testcase. - -2018-10-09 Eric Botcazou - - * gnat.dg/inline14.adb, gnat.dg/inline14_pkg.adb, - gnat.dg/inline14_pkg.ads: New testcase. - -2018-10-09 Ed Schonberg - - * gnat.dg/warn18.adb: New testcase. - -2018-10-09 Martin Liska - - * c-c++-common/asan/pr64820.c: Add line number to scanned - pattern. - * c-c++-common/asan/use-after-return-1.c: Likewise. - * g++.dg/asan/function-argument-1.C (main): Likewise. - * g++.dg/asan/function-argument-2.C (main): Likewise. - * g++.dg/asan/function-argument-3.C (main): Likewise. - * g++.dg/asan/use-after-scope-1.C (main): Likewise. - * g++.dg/asan/use-after-scope-2.C (main): Likewise. - * g++.dg/asan/use-after-scope-types-1.C (main): Likewise. - * g++.dg/asan/use-after-scope-types-2.C (main): Likewise. - * g++.dg/asan/use-after-scope-types-3.C (main): Likewise. - * g++.dg/asan/use-after-scope-types-4.C (main): Likewise. - * g++.dg/asan/use-after-scope-types-5.C (main): Likewise. - * gcc.dg/asan/pr78541.c (main): Likewise. - * gcc.dg/asan/use-after-scope-1.c (main): Likewise. - * gcc.dg/asan/use-after-scope-10.c (main): Likewise. - * gcc.dg/asan/use-after-scope-2.c (main): Likewise. - * gcc.dg/asan/use-after-scope-3.c (main): Likewise. - * gcc.dg/asan/use-after-scope-5.c (main): Likewise. - * gcc.dg/asan/use-after-scope-9.c (main): Likewise. - -2018-10-09 Paul Thomas - - PR fortran/87151 - * gfortran.dg/deferred_type_component_3.f90: New test. - - PR fortran/80931 - * gfortran.dg/deferred_character_28.f90: New test. - * gfortran.dg/deferred_character_29.f90: New test (note that - this test appears in PR83196 comment #4 by mistake). - -2018-10-08 Eric Botcazou - - * gcc.target/i386/vararg-loc.c: Accept a column number. - -2018-10-08 Martin Liska - - * gcc.target/i386/i386.exp: Move procedures to - target-supports.exp. - * g++.target/i386/i386.exp: New file. - * gcc.target/i386/mv*.C: Move here tests and remove - target filter in these tests. - -2018-10-08 Cesar Philippidis - - * gfortran.dg/contiguous_4.f90: Adjust. - * gfortran.dg/contiguous_4.f90: New test. - -2018-10-08 Paul Thomas - - PR fortran/86372 - * gfortran.dg/associate_41.f90: New test. - -2018-10-08 Rainer Orth - - * gcc.dg/merge-all-constants-2.c: Require string_merging support. - * gnat.dg/string_merge1.adb: Likewise. - * gnat.dg/string_merge2.adb: Likewise. - -2018-10-08 Rainer Orth - - * c-c++-common/Wprio-ctor-dtor.c: Require init_priority support. - -2018-10-08 Martin Liska - - * g++.dg/ext/pr82625.C: Add dg-compile filter. - -2018-10-08 Paolo Carlini - - PR c++/71128 - * g++.dg/concepts/pr71128.C: New. - -2018-10-08 Richard Sandiford - - PR c/87286 - * gcc.dg/pr87286.c: New test. - -2018-10-06 Thomas Koenig - - PR fortran/86111 - * gfortran.dg/array_constructor_type_23.f90: New test. - -2018-10-06 Paul Thomas - - PR fortran/83999 - * gfortran.dg/elemental_function_4.f90 : New test. - -2018-10-05 Peter Bergner - - PR rtl-optimization/86939 - PR rtl-optimization/87479 - * gcc.target/powerpc/pr86939.c: New test. - * gcc/testsuite/gcc.target/i386/pr49095.c: Fix expected results. - -2018-10-05 Bernd Edlinger - - * gnat.dg/string_merge1.adb: Fix test expectations. - * gnat.dg/string_merge2.adb: Likewise. - -2018-10-05 David Malcolm - - PR c++/56856 - * g++.dg/ext/builtin4.C: Set expected location for warning to the - correct location within the format string. - * g++.dg/plugin/plugin.exp (plugin_test_list): Add the plugin and - files for testing locations within string literal locations from - the C frontend. - * g++.dg/warn/Wformat-method.C: New test. - * g++.dg/warn/Wformat-pr71863.C: New test. - * g++.dg/warn/Wformat-ranges-c++11.C: New test. - * g++.dg/warn/Wformat-ranges.C: New test, based on - gcc.dg/format/diagnostic-ranges.c. - * gcc.dg/plugin/diagnostic-test-string-literals-1.c - (test_multitoken_macro): Generalize expected output to work with - both C and C++. - * gcc.dg/plugin/diagnostic-test-string-literals-2.c - (test_stringified_token_1): Likewise. - (test_stringified_token_3): Likewise. - -2018-10-05 David Malcolm - - * lib/multiline.exp (proc dg-end-multiline-output): Check argument - count. If there's a 3rd argument, use dg-process-target on it, - bailing out, or recording expected failures as "maybe_x". - (proc handle-multiline-outputs): Extract "maybe_x", and use it - to convert pass/fail into xpass/xfail. - -2018-10-05 Martin Sebor - - PR tree-optimization/87490 - * gcc.dg/pr87490.c: New test. - * gcc.dg/warn-strnlen-no-nul-2.c: Same. - -2018-10-05 Steve Ellcey - - PR tree-optimization/71625 - * /gcc.target/aarch64/vclz.c (test_vclz_s8): Add noinline attribute. - (test_vclz_s16): Ditto. - (test_vclz_s32): Ditto. - (test_vclzq_s8): Ditto. - (test_vclzq_s16): Ditto. - (test_vclzq_s32): Ditto. - (test_vclz_u8): Ditto. - (test_vclz_u16): Ditto. - (test_vclz_u32): Ditto. - (test_vclzq_u8): Ditto. - (test_vclzq_u16): Ditto. - (test_vclzq_u32): Ditto. - * gcc.target/aarch64/vneg_s.c (test_vneg_s8): Ditto. - (test_vneg_s16): Ditto. - (test_vneg_s32): Ditto. - (test_vneg_s64): Ditto. - (test_vnegd_s64): Ditto. - (test_vnegq_s8): Ditto. - (test_vnegq_s16): Ditto. - (test_vnegq_s32): Ditto. - (test_vnegq_s64): Ditto. - -2018-10-05 Segher Boessenkool - - PR target/87509 - * gcc.target/powerpc/test_fpscr_drn_builtin.c: Use hard_dfp instead - of dfp_hw. Don't include . - * gcc.target/powerpc/test_fpscr_drn_builtin_error.c: Ditto. Require - lp64. - * gcc.target/powerpc/test_fpscr_rn_builtin.c: Don't include . - * gcc.target/powerpc/test_fpscr_rn_builtin_error.c: Ditto. - * gcc.target/powerpc/test_mffsl.c: Ditto. - -2018-10-04 Vinay Kumar - - * c-c++-common/Wprio-ctor-dtor.c: New test. - -2018-10-04 David Malcolm - - * gcc.dg/vect/nodump-vect-opt-info-2.c: New test. - * gcc.dg/vect/vect-alias-check-4.c: Add "-fopt-info-vec-all" to - dg-additional-options. Add dg-message and dg-missed directives - to verify that -fopt-info messages are written at the correct - locations. - -2018-10-04 David Malcolm - - * gcc.dg/plugin/dump-1.c: Update expected output for test_scopes - due to "-internals" not being selected. - * gcc.dg/plugin/dump-2.c: New test, based on dump-1.c, with - "-internals" added to re-enable the output from test_scopes. - * gcc.dg/plugin/plugin.exp (plugin_test_list): Add dump-2.c. - -2018-10-04 Bernd Edlinger - - * gnat.dg/string_merge1.adb: New test. - * gnat.dg/string_merge2.adb: New test. - * gcc.dg/merge-all-constants-1.c: Adjust test. - * gcc.dg/merge-all-constants-2.c: New test. - -2018-10-04 Bill Seurer - - PR target/87486 - * gcc.target/powerpc/undef-bool-2.c: Fix expected error output. - -2018-10-04 Martin Liska - - PR c/87483 - * gcc.dg/pr87483.c: New test. - -2018-10-04 Martin Liska - - PR ipa/82625 - * g++.dg/ext/pr82625.C: New test. - -2018-10-04 David Malcolm - - * gcc.dg/plugin/dump-1.c: New test. - * gcc.dg/plugin/dump_plugin.c: New test plugin. - * gcc.dg/plugin/plugin.exp (plugin_test_list): Add the above. - -2018-10-04 Peter Bergner - - PR rtl-optimization/87466 - * gcc.target/powerpc/pr87466.c: New test. - -2018-10-04 Prathamesh Kulkarni - - PR tree-optimization/85787 - * gcc.dg/ipa/propmalloc-4.c: New test. - -2018-10-04 Richard Biener - - * gcc.dg/tree-ssa/cunroll-15.c: Add XFAILs for arm and powerpc. - -2018-10-03 Ian Lance Taylor - - * go.test/go-test.exp (go-set-goarch): Use amd64p32 on x32. - -2018-10-03 Martin Sebor - - * gcc.dg/warn-sprintf-no-nul.c: New test. - -2018-10-03 Martin Liska - - PR gcov-profile/86109 - * g++.dg/gcov/pr86109.C: New test. - -2018-10-02 Marc Glisse - - * gcc.dg/tree-ssa/muldiv-1.c: New file. - * gcc.dg/tree-ssa/muldiv-2.c: Likewise. - -2018-10-02 Segher Boessenkool - - PR target/87081 - * gcc.target/powerpc/vec-init-6.c: Fix expected asm. - -2018-10-01 Martin Sebor - - * gcc.dg/warn-strnlen-no-nul.c: New. - -2018-10-01 Carl Love - - PR 69431 - * gcc.target/powerpc/test_mffsl-p9.c: New file. - * gcc.target/powerpc/test_fpscr_rn_builtin.c: New file. - * gcc.target/powerpc/test_fpscr_drn_builtin.c: New file. - * gcc.target/powerpc/test_fpscr_rn_builtin_error.c: New file. - * gcc.target/powerpc/test_fpscr_drn_builtin_error.c: New file. - -2018-10-01 Paul Thomas - - PR fortran/65677 - * gfortran.dg/dependency_52.f90 : Expand the test to check both - the call to adjustl and direct assignment of the substring. - -2018-10-01 Richard Biener - - PR tree-optimization/87465 - * gcc.dg/tree-ssa/cunroll-15.c: New testcase. - -2018-10-01 Tamar Christina - - PR target/86486 - * gcc.dg/pr82788.c: Skip for AArch64. - * gcc.dg/guality/vla-1.c: Turn off stack-clash. - * gcc.target/aarch64/subsp.c: Likewise. - * gcc.dg/params/blocksort-part.c: Skip stack-clash checks - on AArch64. - * gcc.dg/stack-check-10.c: Add AArch64 specific checks. - * gcc.dg/stack-check-12.c: ILP32 fixup. - * gcc.dg/stack-check-5.c: Add AArch64 specific checks. - * gcc.dg/stack-check-6a.c: Skip on AArch64, we don't support this. - * testsuite/lib/target-supports.exp - (check_effective_target_frame_pointer_for_non_leaf): AArch64 does not - require frame pointer for non-leaf functions. - -2018-10-01 Tamar Christina - - PR target/86486 - * gcc.target/aarch64/stack-check-alloca-1.c: New. - * gcc.target/aarch64/stack-check-alloca-10.c: New. - * gcc.target/aarch64/stack-check-alloca-2.c: New. - * gcc.target/aarch64/stack-check-alloca-3.c: New. - * gcc.target/aarch64/stack-check-alloca-4.c: New. - * gcc.target/aarch64/stack-check-alloca-5.c: New. - * gcc.target/aarch64/stack-check-alloca-6.c: New. - * gcc.target/aarch64/stack-check-alloca-7.c: New. - * gcc.target/aarch64/stack-check-alloca-8.c: New. - * gcc.target/aarch64/stack-check-alloca-9.c: New. - * gcc.target/aarch64/stack-check-alloca.h: New. - * gcc.target/aarch64/stack-check-14.c: New. - * gcc.target/aarch64/stack-check-15.c: New. - -2018-10-01 Tamar Christina - - PR target/86486 - * gcc.target/aarch64/stack-check-prologue-16.c: New test - * gcc.target/aarch64/stack-check-cfa-3.c: New test. - * gcc.target/aarch64/sve/struct_vect_24.c: New test. - * gcc.target/aarch64/sve/struct_vect_24_run.c: New test. - -2018-10-01 Jeff Law - Richard Sandiford - Tamar Christina - - PR target/86486 - * gcc.target/aarch64/stack-check-12.c: New. - * gcc.target/aarch64/stack-check-13.c: New. - * gcc.target/aarch64/stack-check-cfa-1.c: New. - * gcc.target/aarch64/stack-check-cfa-2.c: New. - * gcc.target/aarch64/stack-check-prologue-1.c: New. - * gcc.target/aarch64/stack-check-prologue-10.c: New. - * gcc.target/aarch64/stack-check-prologue-11.c: New. - * gcc.target/aarch64/stack-check-prologue-12.c: New. - * gcc.target/aarch64/stack-check-prologue-13.c: New. - * gcc.target/aarch64/stack-check-prologue-14.c: New. - * gcc.target/aarch64/stack-check-prologue-15.c: New. - * gcc.target/aarch64/stack-check-prologue-2.c: New. - * gcc.target/aarch64/stack-check-prologue-3.c: New. - * gcc.target/aarch64/stack-check-prologue-4.c: New. - * gcc.target/aarch64/stack-check-prologue-5.c: New. - * gcc.target/aarch64/stack-check-prologue-6.c: New. - * gcc.target/aarch64/stack-check-prologue-7.c: New. - * gcc.target/aarch64/stack-check-prologue-8.c: New. - * gcc.target/aarch64/stack-check-prologue-9.c: New. - * gcc.target/aarch64/stack-check-prologue.h: New. - * lib/target-supports.exp - (check_effective_target_supports_stack_clash_protection): Add AArch64. - -2018-10-01 Tamar Christina - - * lib/target-supports.exp (check_cached_effective_target_indexed): New. - (check_cached_effective_target, clear_effective_target_cache): Cleanup. - (check_compile): Support values already Boolean. - (check_alias_available, check_gc_sections_available, - check_profiling_available, check_effective_target_vect_cmdline_needed, - check_effective_target_vect_int, - check_effective_target_vect_intfloat_cvt, - check_effective_target_vect_doubleint_cvt, - check_effective_target_vect_intdouble_cvt, - check_effective_target_vect_uintfloat_cvt, - check_effective_target_vect_floatint_cvt, - check_effective_target_vect_floatuint_cvt, - check_effective_target_vect_peeling_profitable, - check_effective_target_vect_simd_clones, - check_effective_target_vect_peeling_profitable, - check_effective_target_vect_simd_clones, - check_effective_target_vect_shift, - check_effective_target_vect_bswap, - check_effective_target_vect_shift_char, - check_effective_target_vect_float, - check_effective_target_vect_double, - check_effective_target_vect_long_long, - check_effective_target_vect_no_int_min_max, - check_effective_target_vect_no_int_add, - check_effective_target_vect_no_bitwise, - check_effective_target_vect_perm, - check_effective_target_vect_perm_byte, - check_effective_target_vect_perm_short, - check_effective_target_xorsign, - check_effective_target_vect_widen_sum_hi_to_si_pattern, - check_effective_target_vect_widen_sum_hi_to_si, - check_effective_target_vect_widen_sum_qi_to_hi, - check_effective_target_vect_widen_sum_qi_to_si, - check_effective_target_vect_widen_mult_qi_to_hi, - check_effective_target_vect_widen_mult_hi_to_si, - check_effective_target_vect_widen_mult_qi_to_hi_pattern, - check_effective_target_vect_widen_mult_hi_to_si_pattern, - check_effective_target_vect_widen_mult_si_to_di_pattern, - check_effective_target_vect_widen_shift, - check_effective_target_vect_sdot_qi, - check_effective_target_vect_udot_qi, - check_effective_target_vect_sdot_hi, - check_effective_target_vect_udot_hi, - check_effective_target_vect_usad_char, - check_effective_target_vect_pack_trunc, - check_effective_target_vect_unpack, - check_effective_target_unaligned_stack, - check_effective_target_vect_no_align, - check_effective_target_vect_hw_misalign, - check_effective_target_natural_alignment_32, - check_effective_target_natural_alignment_64, - check_effective_target_vect_element_align, - check_effective_target_vect_load_lanes **, - check_effective_target_vect_condition, - check_effective_target_vect_cond_mixed, - check_effective_target_vect_char_mult, - check_effective_target_vect_short_mult, - check_effective_target_vect_int_mult, - check_effective_target_vect_extract_even_odd, - check_effective_target_vect_interleave, - check_effective_target_vect_stridedN, - check_effective_target_vect_call_copysignf, - check_effective_target_sqrt_insn, - check_effective_target_vect_call_sqrtf, - check_effective_target_vect_call_btrunc, - check_effective_target_vect_call_btruncf, - check_effective_target_vect_call_ceil, - check_effective_target_vect_call_ceilf, - check_effective_target_vect_call_floor, - check_effective_target_vect_call_floorf, - check_effective_target_vect_call_lceil, - check_effective_target_vect_call_lfloor, - check_effective_target_vect_call_nearbyint, - check_effective_target_vect_call_nearbyintf, - check_effective_target_vect_call_round, - check_effective_target_vect_call_roundf, - check_effective_target_section_anchors, - check_effective_target_bswap, - check_effective_target_sync_int_long, - check_effective_target_sync_char_short, - check_effective_target_tiny, - check_effective_target_pie_copyreloc, - check_effective_target_got32x_reloc, - check_effective_target_tls_get_addr_via_got): Use new caching. - -2018-10-01 MCC CS - - PR tree-optimization/87261 - * gcc.dg/pr87261.c: New test. - -2018-10-01 Claudiu Zissulescu - - * gcc.target/arc/tph_addx.c: New test. - -2018-10-01 Claudiu Zissulescu - - * gcc.target/arc/tmac-3.c: New file. - -2018-09-30 Paul Thomas - - PR fortran/87359 - * gfortran.dg/associate_40.f90 : New test. - -2018-09-30 Paul Thomas - - PR fortran/70752 - PR fortran/72709 - * gfortran.dg/deferred_character_25.f90 : New test. - * gfortran.dg/deferred_character_26.f90 : New test. - * gfortran.dg/deferred_character_27.f90 : New test to verify - that PR82617 remains fixed. - -2018-09-30 Paul Thomas - - PR fortran/70149 - * gfortran.dg/deferred_character_24.f90 : New test. - -2018-09-29 H.J. Lu - - PR target/87370 - * gcc.target/i386/pr87370.c: New test. - -2018-09-29 Paul Thomas - - PR fortran/65667 - * gfortran.dg/dependency_52.f90 : New test. - -2018-09-29 Jakub Jelinek - - PR target/87467 - * gcc.target/i386/avx512f-abspd-1.c (SIZE): Divide by two. - (CALC): Use double instead of float. - (TEST): Adjust to test _mm512_abs_pd and _mm512_mask_abs_pd rather than - _mm512_abs_ps and _mm512_mask_abs_ps. - -2018-09-28 David Malcolm - - * c-c++-common/unroll-1.c: Update expected output from "note" to - "optimized". - * c-c++-common/unroll-2.c: Likewise. - * c-c++-common/unroll-3.c: Likewise. - * g++.dg/tree-ssa/dom-invalid.C: Update expected output from - dg-message to dg-missed. Convert param from -fopt-info to - -fopt-info-missed-ipa. - * g++.dg/tree-ssa/pr81408.C: Update expected output from - dg-message to dg-missed. - * g++.dg/vect/slp-pr56812.cc: Update expected output from - dg-message to dg-optimized. - * gcc.dg/pr26570.c: Update expected output from dg-message to - dg-missed. Convert param from -fopt-info to - -fopt-info-missed-ipa. - * gcc.dg/pr32773.c: Likewise. - * gcc.dg/tree-ssa/pr19210-1.c: Update expected output from - dg-message to dg-missed. - * gcc.dg/unroll-2.c: Update expected output from dg-message to - dg-optimized. - * gcc.dg/vect/nodump-vect-opt-info-1.c: Likewise. Convert param - from -fopt-info to -fopt-info-vec. - * gfortran.dg/directive_unroll_1.f90: Update expected output from - "note" to "optimized". - * gfortran.dg/directive_unroll_2.f90: Likewise. - * gfortran.dg/directive_unroll_3.f90: Likewise. - * gnat.dg/unroll4.adb: Likewise. - * lib/gcc-dg.exp (dg-optimized): New procedure. - (dg-missed): New procedure. - -2018-09-28 Joseph Myers - - PR c/87390 - * gcc.dg/torture/fp-int-convert.h (TEST_I_F_VAL): Convert integer - values explicitly to target type for comparison. - -2018-09-28 Steve Ellcey - - PR testsuite/87433 - * gcc.target/aarch64/ashltidisi.c: Expect 3 asr instructions - instead of 4. - -2018-09-28 Steve Ellcey - - PR testsuite/87433 - * gcc.dg/zero_bits_compound-1.c: Do not run on aarch64*-*-*. - -2018-09-28 Eric Botcazou - - * gcc.target/sparc/20160229-1.c: Minor tweak. - * gcc.target/sparc/cbcond-2.c: Likewise. - * gcc.target/sparc/movcc-1.c: Add -mcpu=v9 option. - * gcc.target/sparc/movcc-2.c: Minor tweak. - * gcc.target/sparc/overflow-3.c: Likewise. - * gcc.target/sparc/overflow-4.c: Add -mno-vis4 option. - * gcc.target/sparc/overflow-5.c: Minor tweak. - * gcc.target/sparc/setcc-4.c: Add -mno-vis4 option. - -2018-09-27 Segher Boessenkool - - * g++.dg/ext/altivec-6.C: Change the vec_splat second argument to a - valid value, in the "vector bool int" case. - -2018-09-27 Uros Bizjak - - * gcc.dg/rtl/x86_64/dfinit.c: Update scan-rtl-dump string. - * gcc.dg/rtl/x86_64/times-two.c.before-df.c: Ditto. - * gcc.target/i386/pr79804.c (foo): Use register "19", not "20". - -2018-09-27 Martin Liska - - * g++.dg/pr60518.C: Add -Wno-missing-profile. - * g++.dg/torture/pr59265.C: Likewise. - * g++.dg/tree-prof/morefunc.C: Likewise. - * g++.dg/tree-ssa/dom-invalid.C: Likewise. - * gcc.dg/pr26570.c: Likewise. - * gcc.dg/pr32773.c: Likewise. - * gcc.dg/pr40209.c: Likewise. - * gcc.dg/pr51957-1.c: Likewise. - * gcc.dg/pr80747.c: Likewise. - * gcc.target/aarch64/pr62262.c: Likewise. - -2018-09-27 Richard Biener - - PR testsuite/87451 - * gcc.dg/debug/dwarf2/inline5.c: Deal with different comment characters. - -2018-09-27 Richard Biener - - PR debug/37801 - PR debug/87440 - * gcc.dg/debug/dwarf2/inline2.c: Adjust. - * gcc.dg/debug/dwarf2/inline4.c: New testcase. - -2018-09-27 Paolo Carlini - - PR c++/67544 - * g++.dg/concepts/pr67544.C: New. - -2018-09-27 Paolo Carlini - - PR c++/84940 - * g++.dg/expr/unary4.C: New. - -2018-09-26 Indu Bhagat - - PR gcov-profile/86957 - * gcc.dg/Wmissing-profile.c: New test. - -2018-09-26 Joseph Myers - - PR c/87390 - * gcc.target/i386/excess-precision-9.c, - gcc.target/i386/excess-precision-10.c: New tests. - -2018-09-26 Richard Biener - - PR debug/87443 - * gcc.dg/debug/dwarf2/inline5.c: New testcase. - -2018-09-26 Martin Jambor - - PR c/87347 - * gcc.dg/pr87347.c: New test. - -2018-09-26 Paolo Carlini - - PR c++/71131 - * g++.dg/concepts/pr71131.C: New. - -2018-09-26 Paolo Carlini - - PR c++/71127 - * g++.dg/concepts/pr71127.C: New. - -2018-09-26 Paolo Carlini - - PR c++/67655 - * g++.dg/concepts/pr67655.C: New. - -2018-09-26 Thomas Quinot - - * gnat.dg/sso13.adb: New testcase. - -2018-09-26 Justin Squirek - - * gnat.dg/warn16.adb: New testcase. - -2018-09-26 Hristian Kirtchev - - * gnat.dg/elab7.adb, gnat.dg/elab7_pkg1.adb, - gnat.dg/elab7_pkg1.ads, gnat.dg/elab7_pkg2.adb, - gnat.dg/elab7_pkg2.ads: New testcase. - -2018-09-26 Javier Miranda - - * gnat.dg/interface8.adb, gnat.dg/interface8.ads: New testcase. - -2018-09-26 Ed Schonberg - - * gnat.dg/predicate2-containers.ads, - gnat.dg/predicate2-project-name_values.ads, - gnat.dg/predicate2-project-registry-attribute.ads, - gnat.dg/predicate2-project-registry.ads, - gnat.dg/predicate2-project-typ-set.ads, - gnat.dg/predicate2-project-typ.ads, - gnat.dg/predicate2-project.ads, - gnat.dg/predicate2-source_reference.ads, gnat.dg/predicate2.ads, - gnat.dg/predicate2_main.adb: New testcase. - -2018-09-26 Hristian Kirtchev - - * gnat.dg/dynhash1.adb: New testcase. - -2018-09-26 Hristian Kirtchev - - * gnat.dg/sets1.adb: New testcase. - * gnat.dg/dynhash.adb, gnat.dg/linkedlist.adb: Update testcases - to new API. - -2018-09-26 Thomas Quinot - - * gnat.dg/sso12.adb: New testcase. - -2018-09-26 Justin Squirek - - * gnat.dg/expr_func8.adb: New testcase. - -2018-09-26 Ed Schonberg - - * gnat.dg/predicate3.adb, gnat.dg/predicate3_pkg.ads: New - testcase. - -2018-09-26 Paolo Carlini - - PR c++/67656 - * g++.dg/concepts/pr67656.C: New. - -2018-09-26 Eric Botcazou - - * gnat.dg/addr12.adb, gnat.dg/addr12_a.adb, - gnat.dg/addr12_a.ads, gnat.dg/addr12_b.adb, - gnat.dg/addr12_b.ads, gnat.dg/addr12_c.ads: New testcase. - -2018-09-26 Eric Botcazou - - * g++.dg/other/vthunk1.C: Rename to... - * g++.dg/other/thunk1.C: ...this. - * g++.dg/other/thunk2a.C: New test. - * g++.dg/other/thunk2b.C: Likewise. - -2018-09-25 Jim Wilson - - * gcc.target/riscv/weak-1.c: New. - -2018-09-25 Jeff Law - - * gcc.dg/warn-stpcpy-no-nul.c: Drop unnecessary xfails. - * gcc.dg/warn-stplen-no-nul.c: Likewise. - -2018-09-25 Alexandre Oliva - - * gnat.dg/dinst.adb: Adjust for locviews. - -2018-09-25 Will Schmidt - - * g++.dg/ext/altivec-6.C: Updated vec_splat() calls. - * gcc.target/powerpc/fold-vec-splat-char.c: Remove invalid - vec_splat calls from recently added tests. Update instruction counts. - * gcc.target/powerpc/fold-vec-splat-floatdouble.c: Same. - * gcc.target/powerpc/fold-vec-splat-int.c: Same. - * gcc.target/powerpc/fold-vec-splat-longlong.c: Same. - * gcc.target/powerpc/fold-vec-splat-pixel.c: Same. - * gcc.target/powerpc/fold-vec-splat-short.c: Same. - -2018-09-25 Marek Polacek - - PR c++/87425 - * g++.dg/cpp2a/constexpr-virtual12.C: New test. - -2018-09-25 Jakub Jelinek - - PR c++/87398 - * g++.dg/other/pr87398.C: New test. - * g++.dg/cpp2a/constexpr-virtual10.C: New test. - * g++.dg/cpp2a/constexpr-virtual11.C: New test. - -2018-09-25 Martin Jambor - - PR testsuite/87339 - * gcc.dg/warn-abs-1.c: Do not test _Float128. Remove dg-skip-if and - float125 target. - * gcc.target/i386/warn-abs-3.c: New test. - -2018-09-25 Paolo Carlini - - PR c++/81246 - * g++.dg/cpp0x/pr81246.C: New. - -2018-09-25 H.J. Lu - - PR target/82699 - * gcc.target/i386/pr82699-5.c: Add -fno-pic for ia32. - * gcc.target/i386/pr82699-6.c: Add -fno-pic. - -2018-09-25 Jakub Jelinek - - * gfortran.dg/coarray_lock_7.f90: Adjust scan-tree-dump-times for - ILP32. - -2018-09-25 Richard Biener - - PR tree-optimization/87402 - * gcc.dg/torture/pr87402.c: New testcase. - -2018-09-25 H.J. Lu - - PR testsuite/70150 - * gcc.dg/20020312-2.c (dg-additional-options): Set to "-no-pie" - for pie_enabled target. - * gcc.dg/uninit-19.c: Check pie_enabled for PIC. - * gcc.target/i386/pr34256.c: Likewise. - -2018-09-24 Paolo Carlini - - PR c++/85070 - * g++.dg/cpp0x/pr85070.C: New. - -2018-09-24 H.J. Lu - - PR target/82699 - * gcc.target/i386/pr82699-1.c: New file. - * gcc.target/i386/pr82699-2.c: Likewise. - * gcc.target/i386/pr82699-3.c: Likewise. - * gcc.target/i386/pr82699-4.c: Likewise. - * gcc.target/i386/pr82699-5.c: Likewise. - * gcc.target/i386/pr82699-6.c: Likewise. - -2018-09-24 Thomas Koenig - - PR fortran/87401 - * gfortran.dg/intent_out_12.f90: New test. - -2018-09-24 Will Schmidt - - PR testsuite/86952 - * gcc.target/powerpc/p8-vec-xl-xst-v2.c: Add and - update expected codegen - -2018-09-24 Cesar Philippidis - - * gfortran.dg/goacc/nested-parallelism.f90: New test. - -2018-09-24 Ilya Leoshkevich - - PR target/80080 - * gcc.target/s390/risbg-ll-3.c: Expect conditional returns. - * gcc.target/s390/zvector/vec-cmp-2.c: Likewise. - -2018-09-24 Martin Liska - - PR sanitizer/85774 - * g++.dg/asan/pr85774.C: New test. - -2018-09-24 Alexandre Oliva - - PR middle-end/87054 - * gcc.dg/pr87054.c: Adjust for no __int128 on x86. - -2018-09-23 Thomas Koenig - - PR fortran/87395 - * gfortran.dg/intent_out_11.f90: New test. - -2018-09-23 Janne Blomqvist - - * gfortran.dg/coarray_lib_alloc_4.f90: Fix scan patterns. - * gfortran.dg/coarray_lock_7.f90: Likewise. - -2018-09-23 Thomas Koenig - - PR fortran/87395 - * gfortran.dg/intent_out_10.f90: New test. - -2018-09-22 Thomas Koenig - - PR fortran/41453 - * gfortran.dg/intent_optimize_2.f90: New test. - -2018-09-22 Jerry DeLisle - - PR fortran/87318 - * gfortran.dg/dtio_1.f90: Update test to valid code. - -2018-09-22 Paul Thomas - - PR fortran/85603 - * gfortran.dg/deferred_character_23.f90 : New test. - -2018-09-21 Jeff Law - - * gcc.dg/tree-ssa/vrp113.c: Disable EVRP. - * gcc.dg/tree-ssa/vrp120.c: New test. - -2018-09-21 Marek Polacek - - PR c++/87372 - __func__ constexpr evaluation. - * g++.dg/cpp1y/func_constexpr2.C: New test. - -2018-09-21 Paul Thomas - - PR fortran/77325 - * gfortran.dg/deferred_character_22.f90 : New test. - -2018-09-21 Paul Thomas - - PR fortran/87359 - * gfortran.dg/finalize_33.f90 : New test. - -2018-09-21 David Malcolm - - PR tree-optimization/87309 - * gcc.dg/pr87309.c: New test. - -2018-09-21 Eric Botcazou - - * c-c++-common/dump-ada-spec-14.c: New test. - -2018-09-21 Eric Botcazou - - * gcc.dg/nested-func-11.c: New test. - - * lib/target-supports.exp (check_effective_target_tls_runtime): Make - more robust and remove target-specific handling. - -2018-09-21 Eric Botcazou - - * gcc.c-torture/execute/20180921-1.c: New test. - -2018-09-20 Marek Polacek - - PR c++/87109 - wrong ctor with maybe-rvalue semantics. - * g++.dg/cpp0x/ref-qual19.C: Adjust the expected results. - * g++.dg/cpp0x/ref-qual20.C: New test. - -2018-09-20 Allan Sandfeld Jensen - - * g++.dg/ipa/pr64059.C: Removed now redundant -nostdlib. - * g++.dg/lto/20081109-1_0.C: Likewise. - * g++.dg/lto/20090302_0.C: Likewise. - * g++.dg/lto/pr45621_0.C: Likewise. - * g++.dg/lto/pr60567_0.C: Likewise. - * g++.dg/lto/pr62026.C: Likewise. - * gcc.dg/lto/pr45736_0.c: Likewise. - * gcc.dg/lto/pr52634_0.c: Likewise. - * gfortran.dg/lto/20091016-1_0.f90: Likewise. - * gfortran.dg/lto/pr79108_0.f90: Likewise. - -2018-09-20 Alexandre Oliva - - PR middle-end/87054 - * gcc.dg/pr87054.c: New. - -2018-09-20 Richard Sandiford - - PR tree-optimization/87288 - * gcc.dg/vect/pr87288-1.c: New test. - * gcc.dg/vect/pr87288-2.c: Likewise, - * gcc.dg/vect/pr87288-3.c: Likewise. - -2018-09-20 Richard Sandiford - - PR tree-optimization/86877 - * gfortran.dg/vect/vect-8-epilogue.F90: New test. - -2018-09-19 Marek Polacek - - * g++.dg/conversion/op4.C: Add dg-warning. - * g++.dg/warn/Wclass-conversion1.C: New test. - * g++.dg/warn/Wclass-conversion2.C: New test. - * g++.dg/warn/Wconversion5.C: Remove file. - * g++.dg/warn/conversion-function-1.C: Use -Wno-class-converison. - * g++.old-deja/g++.bugs/900215_01.C: Adjust dg-warning. - * g++.old-deja/g++.jason/conversion5.C: Likewise. - -2018-09-19 Paolo Carlini - - PR c++/87324 - * g++.dg/cpp0x/desig5.C: New. - -2018-09-19 Paul Thomas - - PR fortran/84109 - * gfortran.dg/elemental_function_3.f90 : New test. - -2018-09-19 Marek Polacek - - PR c++/87357 - missing -Wconversion warning - * g++.dg/warn/Wconversion5.C: New test. - -2018-09-19 Matthew Malcomson - - * gcc.target/aarch64/atomic-store.c: New. - -2018-09-19 Richard Biener - - PR tree-optimization/87349 - PR tree-optimization/87342 - * gcc.dg/torture/pr87349-1.c: New testcase. - * gcc.dg/torture/pr87349-2.c: Likewise. - * gcc.dg/torture/pr87342.c: Likewise. - -2018-09-18 Thomas Koenig - - PR fortran/29550 - * gfortran.dg/inline_matmul_13.f90: Adjust count for - _gfortran_matmul. - * gfortran.dg/inline_matmul_16.f90: Likewise. - * gfortran.dg/promotion_2.f90: Add -fblas-matmul-limit=1. Scan - for dgemm instead of dgemm_. Add call to random_number to make - standard conforming. - * gfortran.dg/matmul_blas_1.f90: New test. - * gfortran.dg/matmul_bounds_14.f: New test. - * gfortran.dg/matmul_bounds_15.f: New test. - * gfortran.dg/matmul_bounds_16.f: New test. - * gfortran.dg/blas_gemm_routines.f: New test / additional file for - preceding tests. - -2018-09-18 Paul Thomas - - PR fortran/87239 - * gfortran.dg/elemental_function_2.f90 : New test. - -2018-09-18 Paul Thomas - - PR fortran/87336 - * gfortran.dg/pointer_array_10.f90 : New test. - * gfortran.dg/assign_10.f90 : Increase 'parm' count to 20. - * gfortran.dg/transpose_optimization_2.f90 : Increase 'parm' - count to 72. - -2018-09-18 Paolo Carlini - - PR c++/85065 - * g++.dg/concepts/pr85065.C: New. - -2018-09-18 Kyrylo Tkachov - - PR testsuite/87339 - * gcc.dg/warn-abs-1.c: Require float128 target. - Skip if large_long_double newlib target. - -2018-09-18 Nathan Sidwell - - PR c++/86881 - * g++.dg/warn/pr86881.C: New. - -2018-09-18 Kyrylo Tkachov - - * gcc.target/aarch64/spellcheck_1.c: - Make architecture suggestion optional. - * gcc.target/aarch64/spellcheck_4.c: - Likewise. - -2018-09-18 Kyrylo Tkachov - - * gcc.target/aarch64/combine_bfxil.c: Avoid passing pointers to - functions. - -2018-09-17 Cesar Philippidis - Bernd Schmidt - - * gcc.target/nvptx/atomic-fetch-2.c: Rename to ... - * gcc.target/nvptx/atomic_fetch-2.c: ... this. - * gcc.target/nvptx/atomic_fetch-3.c: New test. - -2018-09-17 Richard Biener - - PR tree-optimization/87328 - * gcc.dg/torture/pr87328.c: New testcase. - -2018-09-17 Martin Jambor - - PR c/63886 - * gcc.dg/warn-abs-1.c: New test. - * gcc.dg/dfp/warn-abs-2.c: Likewise. - -2018-09-17 Bernd Edlinger - - * gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp: Don't pass - TEST_ALWAYS_FLAGS to HOSTCXX. - -2018-09-17 Paul Thomas - - PR fortran/64120 - * gfortran.dg/allocatable_scalar_14.f90 : New test. - -2018-09-17 Richard Biener - - PR tree-optimization/87301 - * gcc.dg/torture/pr87301.c: New testcase. - -2018-09-17 Paul Thomas - - PR fortran/85954 - * gfortran.dg/deferred_character_21.f90 : New test. - -2018-09-16 Janus Weil - - PR fortran/86484 - PR fortran/84543 - * gfortran.dg/class_assign_2.f90: New test case. - * gfortran.dg/class_assign_3.f90: New test case. - -2018-09-16 Thomas Koenig - - PR fortran/37802 - * gfortran.dg/matmul_bounds_13.f90: New test case. - * gfortran.dg/inline_matmul_15.f90: Adjust test for runtime - error. - * gfortran.dg/matmul_5.f90: Likewise. - * gfortran.dg/matmul_bounds_10.f90: Likewise. - * gfortran.dg/matmul_bounds_11.f90: Likewise. - * gfortran.dg/matmul_bounds_2.f90: Likewise. - * gfortran.dg/matmul_bounds_4.f90: Likewise. - * gfortran.dg/matmul_bounds_5.f90: Likewise. - -2018-09-15 Eric Botcazou - - * gcc.c-torture/compile/20180915-1.c: New test. - -2018-09-14 David Malcolm - - PR c/82967 - * c-c++-common/attributes-1.c: Remove bogus suggestion from - dg-prune-output. - * gcc.dg/diagnostic-token-ranges.c (undeclared_identifier): Remove - bogus suggestion. - * gcc.dg/spellcheck-identifiers-4.c: New test. - -2018-09-14 Bernd Edlinger - - * gcc.dg/warn-strlen-no-nul.c: Add some missing test cases. - -2018-09-14 Martin Sebor - - * gcc.dg/warn-stpcpy-no-nul.c: New test. - -2018-09-14 Martin Sebor - Jeff Law - - * gcc.dg/warn-strcpy-no-nul.c: New test. - -2018-09-14 Martin Sebor - - c++/61941 - * g++.dg/pr61941.C: New test. - -2018-09-14 Kyrylo Tkachov - - * gcc.target/aarch64/combine_bfi_1.c: Scan for bfi instruction - rather than pattern name in combine dump. - -2018-09-14 Sam Tebbs - - PR target/85628 - * gcc.target/aarch64/combine_bfxil.c (combine_zero_extended_int, foo6): - New functions. - -2018-09-14 Kyrylo Tkachov - - PR tree-optimization/87259 - * gcc.dg/pr87259.c: New test. - -2018-09-13 Martin Sebor - Jeff Law - - * gcc.dg/warn-strlen-no-nul.c: New test. - -2018-09-13 Richard Biener - - PR tree-optimization/87263 - * gcc.dg/torture/pr87263.c: New testcase. - * gcc.dg/torture/ssa-fre-2.c: Likewise. - * gcc.dg/torture/ssa-fre-3.c: Likewise. - * gcc.dg/torture/ssa-fre-4.c: Likewise. - -2018-09-13 Omar Sandoval - Tom de Vries - - PR debug/86985 - * gcc.dg/guality/zero-length-array.c: New test. - -2018-09-13 Sam Tebbs - - PR target/85628 - * gcc.target/aarch64/combine_bfxil.c: New file. - * gcc.target/aarch64/combine_bfxil_2.c: New file. - -2018-09-13 Jakub Jelinek - Kyrylo Tkachov - - PR middle-end/87290 - * gcc.target/i386/pr87290.c: New test. - * gcc.c-torture/execute/pr87290.c: New test. - -2018-09-13 Jakub Jelinek - - PR tree-optimization/87287 - * gcc.dg/tree-ssa/pr87287.c: New test. - -2018-09-12 David Malcolm - - PR c++/85110 - * g++.dg/cpp0x/explicit4.C: Update expected output to reflect - special-casing of diagnostic for a single non-viable candidate due - to a bad argument. - * g++.dg/diagnostic/param-type-mismatch-2.C: Likewise. - Add test coverage for an unmatched overloaded operator. - * g++.dg/expr/pmf-1.C: Likewise. - * g++.old-deja/g++.bugs/900330_02.C: Likewise. - * g++.old-deja/g++.jason/conversion11.C: Likewise. - * g++.old-deja/g++.law/arg11.C: Likewise. - * g++.old-deja/g++.law/arm9.C: Likewise. - * g++.old-deja/g++.robertl/eb131.C: Likewise. - -2018-09-12 Paul Thomas - - PR fortran/87284 - * gfortran.dg/allocate_with_mold_2.f90: New test. - -2018-09-12 Jakub Jelinek - - PR middle-end/82853 - * gcc.target/i386/pr82853-1.c: New test. - * gcc.target/i386/pr82853-2.c: New test. - -2018-09-12 Richard Biener - - PR tree-optimization/87280 - * gcc.dg/torture/pr87280.c: New testcase. - -2018-09-12 Richard Biener - - PR tree-optimization/87266 - * gcc.dg/torture/pr87266-1.c: New testcase. - * gcc.dg/torture/pr87266-2.c: Likewise. - * gcc.dg/torture/pr87266-3.c: Likewise. - * gcc.dg/torture/pr87266-4.c: Likewise. - -2018-09-12 Andreas Krebbel - - * gcc.target/s390/dfp_to_bfp_rounding.c: New test. - -2018-09-12 Jakub Jelinek - Andreas Krebbel - - PR tree-optimization/86844 - * gcc.c-torture/execute/pr86844.c: New test. - * gcc.dg/store_merging_22.c: New test. - * gcc.dg/store_merging_23.c: New test. - -2018-09-12 Jakub Jelinek - - PR middle-end/87248 - * c-c++-common/torture/pr87248.c: New test. - -2018-09-11 Janus Weil - - PR fortran/87172 - * gfortran.dg/iso_c_binding_only_2.f90: New test case. - -2018-09-11 Paul Thomas - - PR fortran/87277 - * gfortran.dg/select_type_43.f90: New test. - -2018-09-11 Nathan Sidwell - - * gcc.dg/driver-specs.c: New. - -2018-09-11 Joey Ye - - * lib/gcov.exp (verify-intermediate): Add missing close. - -2018-09-11 Janus Weil - - PR fortran/86830 - * gfortran.dg/typebound_call_30.f90: New test case. - -2018-09-10 Janus Weil - - PR fortran/85395 - * gfortran.dg/proc_ptr_comp_52.f90: New test case. - -2018-09-08 Marek Polacek - - PR c++/87150 - wrong ctor with maybe-rvalue semantics. - * g++.dg/cpp0x/move-return2.C: New test. - -2018-09-08 Marek Polacek - - * c-c++-common/array-init.c: Add dg-prune-output. - * g++.dg/cpp0x/lambda/lambda-const-this.C: Add dg-warning. - * g++.dg/cpp0x/lambda/lambda-in-class-neg.C: Likewise. - * g++.dg/cpp0x/lambda/lambda-in-class.C: Likewise. - * g++.dg/cpp0x/lambda/lambda-nested.C: Likewise. - * g++.dg/cpp0x/lambda/lambda-nsdmi1.C: Likewise. - * g++.dg/cpp0x/lambda/lambda-nsdmi4.C: Likewise. - * g++.dg/cpp0x/lambda/lambda-this.C: Likewise. - * g++.dg/cpp0x/lambda/lambda-this17.C: Likewise. - * g++.dg/cpp0x/lambda/lambda-this18.C: Likewise. - * g++.dg/cpp0x/lambda/lambda-this2.C: Likewise. - * g++.dg/cpp0x/lambda/lambda-this8.C: Likewise. - * g++.dg/cpp1y/pr64382.C: Likewise. - * g++.dg/cpp1y/pr77739.C: Likewise. - * g++.dg/cpp1z/lambda-this1.C: Likewise. - * g++.dg/cpp1z/lambda-this2.C: Likewise. - * g++.dg/template/crash84.C: Adjust dg-error. - -2018-09-07 Marek Polacek - - * g++.dg/cpp1z/direct-enum-init1.C: Remove "inside" from diagnostic - messages. - -2018-09-07 Marek Polacek - - PR c++/87152 - range-based for loops with initializer broken in templates. - * g++.dg/cpp2a/range-for11.C: New test. - * g++.dg/cpp2a/range-for12.C: New test. - * g++.dg/cpp2a/range-for13.C: New test. - * g++.dg/cpp2a/range-for14.C: New test. - * g++.dg/cpp2a/range-for15.C: New test. - * g++.dg/cpp2a/range-for16.C: New test. - * g++.dg/cpp2a/range-for17.C: New test. - * g++.dg/cpp2a/range-for18.C: New test. - * g++.dg/parse/error61.C (foo): Adjust dg-error. - -2018-09-06 Will Schmidt - - PR target/86731 - * gcc.target/powerpc/pr86731.c: New test. - * gcc.target/powerpc/pr86731-longlong.c: New test. - * gcc.target/powerpc/pr86731-fwrapv.c: New test. - * gcc.target/powerpc/pr86731-fwrapv-longlong.c: New test. - * gcc.target/powerpc/pr86731-nogimplefold.c: New test. - * gcc.target/powerpc/pr86731-nogimplefold-longlong.c: New test. - -2018-09-06 Ilya Leoshkevich - - PR target/80080 - * gcc.target/s390/pr80080-3.c: New test. - * gcc.target/s390/s390.exp: Make sure the new test passes - on all optimization levels. - -2018-09-05 Marek Polacek - - PR c++/86982, -Wreturn-local-addr and std::move and std::forward. - * g++.dg/warn/Wreturn-local-addr-5.C: New test. - -2018-09-05 Cesar Philippidis - Bernd Schmidt - - * gcc.target/nvptx/atomic_fetch-1.c: New test. - * gcc.target/nvptx/atomic_fetch-1.c: New test. - -2018-09-05 Marek Polacek - - PR c++/87109, wrong overload with ref-qualifiers. - * g++.dg/cpp0x/ref-qual19.C: New test. - -2018-09-05 Bernhard Reutner-Fischer - - PR testsuite/52665 - * lib/gcc-dg.exp (gcc-dg-test-1): Iterate over _required_options. - * lib/target-supports.exp (scan-assembler_required_options, - scan-assembler-not_required_options, - scan-assembler-times_required_options): Add -fno-ident. - * lib/scanasm.exp (scan-assembler-times): Fix error message. - * c-c++-common/ident-0a.c: New test. - * c-c++-common/ident-0b.c: New test. - * c-c++-common/ident-1a.c: New test. - * c-c++-common/ident-1b.c: New test. - * c-c++-common/ident-2a.c: New test. - * c-c++-common/ident-2b.c: New test. - -2018-09-05 Kyrylo Tkachov - - * gcc.dg/recip_sqrt_mult_1.c: New test. - * gcc.dg/recip_sqrt_mult_2.c: Likewise. - * gcc.dg/recip_sqrt_mult_3.c: Likewise. - * gcc.dg/recip_sqrt_mult_4.c: Likewise. - * gcc.dg/recip_sqrt_mult_5.c: Likewise. - * g++.dg/recip_sqrt_mult_1.C: Likewise. - * g++.dg/recip_sqrt_mult_2.C: Likewise. - -2018-09-05 Martin Liska - - PR tree-optimization/87205 - * gcc.dg/tree-ssa/pr87205-2.c: New test. - * gcc.dg/tree-ssa/pr87205.c: New test. - -2018-09-05 Richard Biener - - PR tree-optimization/87217 - * gfortran.dg/pr87217.f: New testcase. - -2018-09-05 Pádraig Brady p@draigbrady.com - - PR c++/87137 - * g++.dg/abi/pr87137.C: New. - - PR c++/87185 - * g++.dg/pr87185.C: New. - -2018-09-05 Martin Liska - - PR testsuite/87216 - * gcc.dg/tree-prof/pr59521-3.c: Update scanned pattern - to support Darwin names. - -2018-09-05 Martin Liska - - * g++.dg/gcov/loop.C: Update test to support new format. - -2018-09-04 H.J. Lu - - PR debug/86593 - * g++.dg/pr86593.C: New test. - -2018-09-04 Jakub Jelinek - - PR target/87198 - * gcc.target/i386/pr87198.c: New test. - -2018-09-04 Rainer Orth - - PR target/86744 - * gcc.target/i386/addr-sel-1.c: Don't xfail "b\\+1" scan. - -2018-09-04 Richard Biener - - PR tree-optimization/87211 - * gcc.dg/torture/pr87211.c: New testcase. - -2018-09-04 Richard Biener - - PR tree-optimization/87176 - * gcc.dg/torture/pr87176.c: New testcase. - * gcc.dg/torture/ssa-fre-1.c: Likewise. - -2018-09-03 Jerry DeLisle - - * gfortran.dg/modulo_check: New test. - -2018-09-03 Richard Biener - - PR tree-optimization/87177 - * gcc.dg/torture/pr87177.c: New testcase. - * gcc.dg/torture/pr87177-2.c: Likewise. - -2018-09-03 Richard Biener - - PR tree-optimization/87200 - * gcc.dg/torture/pr87200.c: New testcase. - -2018-09-03 Richard Biener - - PR tree-optimization/87197 - * gcc.dg/torture/pr87197.c: New testcase. - - PR tree-optimization/87169 - * gcc.dg/torture/pr87169.c: New testcase. - -2018-09-03 Martin Liska - - PR driver/83193 - * gcc.dg/completion-4.c: New test. - -2018-09-03 Paolo Carlini - - PR c++/84980 - * g++.dg/concepts/pr84980.C: New. - -2018-09-03 Martin Liska - - PR middle-end/59521 - * c-c++-common/pr59521-1.c: New test. - * c-c++-common/pr59521-2.c: New test. - * gcc.dg/tree-prof/pr59521-3.c: New test. - -2018-09-02 Bernd Edlinger - - * c-c++-common/array-init.c: New test. - * g++.dg/init/string2.C: Remove selector. - -2018-09-01 Michael Matz - - PR tree-optimization/87074 - * gcc.dg/pr87074.c: New test. - -2018-08-31 Richard Biener - - PR tree-optimization/87168 - * gcc.dg/torture/pr87168.c: New testcase. - -2018-08-31 Vlad Lazar - - * gcc.target/aarch64/scalar_intrinsics.c (test_vnegd_s64): New. - * gcc.target/aarch64/vneg_s.c (RUN_TEST_SCALAR): New. - (test_vnegd_s64): Likewise. - * gcc.target/aarch64/vnegd_64.c: New. - * gcc.target/aarch64/vabsd_64.c: New. - * gcc.tartget/aarch64/vabs_intrinsic_3.c: New. - -2018-08-31 Nathan Sidwell - - PR c++/87155 - PR c++/84707 - * g++.dg/cpp0x/pr87155.C: New. - * g++.dg/cpp0x/inline-ns10.C: Adjust. - -2018-08-31 Jakub Jelinek - - PR middle-end/87138 - * gcc.target/i386/avx512bw-pr87138.c: New test. - -2018-08-31 Paul Thomas - - PR fortran/86328 - PR fortran/86760 - * gfortran.dg/pr86328.f90 : New test. - in comment 12 of the PR. - * gfortran.dg/pr86760.f90 : New test. - -2018-08-30 Sandra Loosemore - - * g++.dg/cpp0x/noexcept30.C: Make dependence on - -fdelete-null-pointer-checks explicit. - * g++.dg/cpp1y/constexpr-82218.C: Likewise. - * g++.dg/expr/pmf-3.C: Likewise. - * g++.dg/ext/attr-returns-nonnull.C: Likewise. - * g++.dg/tree-ssa/lifetime-dse1.C: Likewise. - * g++.dg/tree-ssa/pr61034.C: Likewise. - * gcc.dg/addr_equal-1.c: Likewise. - * gcc.dg/ipa/pr85734.c: Likewise. - * gcc.dg/ipa/propmalloc-1.c: Likewise. - * gcc.dg/ipa/propmalloc-2.c: Likewise. - * gcc.dg/ipa/propmalloc-3.c: Likewise. - * gcc.dg/tree-ssa/pr78154.c: Likewise. - * gcc.dg/tree-ssa/pr83648.c: Likewise. - -2018-08-30 Martin Sebor - - PR testsuite/87158 - * gcc.c-torture/execute/memchr-1.c: Correct big-endian expectations. - -2018-08-30 Qing Zhao - - PR testsuite/86519 - gcc.dg/strcmpopt_6.c: Remove. - gcc.target/aarch64/strcmpopt_6.c: New testcase. - gcc.target/i386/strcmpopt_6.c: Likewise. - -2018-08-30 Richard Biener - - PR tree-optimization/87147 - * gcc.dg/torture/pr87147.c: New testcase. - -2018-08-30 Tamar Christina - - * gcc.target/aarch64/large_struct_copy_2.c: New. - -2018-08-29 Bernd Edlinger - - PR middle-end/87053 - * gcc.c-torture/execute/pr87053.c: New test. - -2018-08-29 Jakub Jelinek - - PR c++/87095 - * g++.dg/ubsan/vptr-13.C: New test. - -2018-08-29 Paolo Carlini - - PR c++/85265 - * g++.dg/concepts/pr85265.C: New. - -2018-08-29 Martin Sebor - Bernd Edlinger - - PR tree-optimization/86714 - PR tree-optimization/86711 - * gcc.c-torture/execute/memchr-1.c: New test. - * gcc.c-torture/execute/pr86714.c: New test. - * gcc.c-torture/execute/widechar-3.c: New test. - * gcc.dg/strlenopt-58.c: New test. - -2018-08-29 Richard Biener - - PR tree-optimization/87132 - * gcc.dg/torture/pr87132.c: New testcase. - -2018-08-29 David Malcolm - - PR c++/85110 - * g++.dg/diagnostic/param-type-mismatch-2.C: Update expected - output to reflect underlining of pertinent parameter in decl - for "no known conversion" messages. - -2018-08-29 Jakub Jelinek - - PR c++/87122 - * g++.dg/cpp1z/decomp47.C: New test. - -2018-08-29 Matthew Malcomson - - * gcc.target/aarch64/simd/vect_su_add_sub.c: Use 32 and 64-bit types - where appropriate. - -2018-08-29 Richard Biener - - PR tree-optimization/87117 - * gfortran.dg/pr87117.f90: New testcase. - -2018-08-29 Richard Biener - - PR tree-optimization/87126 - * gcc.dg/tree-ssa/pr87126.c: New testcase. - -2018-08-28 MCC CS - - PR tree-optimization/87009 - * gcc.dg/pr87009.c: New test. - -2018-08-28 Martin Sebor - - PR middle-end/86631 - * g++.dg/Walloca1.C: Adjust. - -2018-08-28 Paolo Carlini - - PR c++/86546 - * g++.dg/other/switch4.C: New. - -2018-08-28 Richard Biener - - PR tree-optimization/87124 - * g++.dg/torture/pr87124.C: New testcase. - -2017-08-28 Paul Thomas - - PR fortran/80477 - * gfortran.dg/class_result_7.f90: New test. - * gfortran.dg/class_result_8.f90: New test. - * gfortran.dg/class_result_9.f90: New test. - - PR fortran/86481 - * gfortran.dg/allocate_with_source_25.f90: New test. - -2018-08-28 Jakub Jelinek - - PR middle-end/87099 - * gcc.dg/pr87099.c: New test. - -2018-08-28 Richard Sandiford - - PR testsuite/87078 - * gcc.dg/vect/slp-37.c: Restrict scan tests to vect_hw_misalign. - -2018-08-28 Richard Biener - - PR tree-optimization/87117 - * gcc.dg/pr87117-1.c: New testcase. - -2018-08-28 Richard Biener - - PR tree-optimization/87117 - * gcc.dg/pr87117-2.c: New testcase. - -2018-08-28 Richard Biener - - PR tree-optimization/87117 - * gcc.dg/lvalue-5.c: New testcase. - -2018-08-27 Jeff Law - - PR tree-optimization/87110 - * gcc.c-torture/compile/pr87110.c: New test. - -2018-08-27 Martin Sebor - - PR tree-optimization/86914 - * gcc.dg/strlenopt-57.c: New test. - -2018-08-27 Martin Sebor - - PR tree-optimization/87112 - * gcc.dg/pr87112.c: New test. - -2018-08-27 David Malcolm - - PR c++/63392 - * g++.dg/diagnostic/missing-typename.C: New test. - -2018-08-27 Jeff Law - - * gcc.c-torture/compile/dse.c: New test. - -2018-08-27 Jakub Jelinek - - PR c++/86993 - * g++.dg/diagnostic/pr86993.C: New test. - -2018-08-27 Richard Biener - - PR tree-optimization/86927 - * gcc.dg/vect/pr86927.c: New testcase. - -2018-08-27 David Malcolm - - PR c++/87091 - * gcc.dg/empty.h: New file. - * gcc.dg/fixits-pr84852-1.c: Update for move of fix-it hint to - top of file and removal of redundant second printing of warning - location. - * gcc.dg/fixits-pr84852-2.c: Likewise. - * gcc.dg/missing-header-fixit-3.c: Likewise. - * gcc.dg/missing-header-fixit-4.c: New test. - * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c: Update for - conversion of show_caret_p to a tri-state. - -2018-08-27 David Malcolm - - PR c++/87091 - * g++.dg/pr85523.C: Extend expected output to show line - before line-insertion fix-it hint. - * gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c - (test_fixit_insert_newline): Add previous line to expected output. - * gcc.dg/plugin/diagnostic-test-show-locus-bw.c: Likewise. - * gcc.dg/plugin/diagnostic-test-show-locus-color.c: Likewise. - -2018-08-27 Martin Liska - - PR sanitizer/86962 - * gcc.dg/asan/pr86962.c: New test. - -2018-08-27 Martin Liska - - * gcc.dg/tree-prof/val-prof-10.c: New test. - -2018-08-27 Martin Liska - - PR tree-optimization/86847 - * gcc.dg/tree-ssa/switch-3.c: New test. - * gcc.dg/tree-ssa/vrp105.c: Remove. - -2018-08-27 Martin Liska - - * gcc.dg/tree-ssa/switch-2.c: New test. - -2018-08-27 Richard Biener - - * g++.dg/torture/20180705-1.C: New testcase. - * gcc.dg/tree-ssa/ssa-fre-67.c: Likewise. - * gcc.dg/tree-ssa/ssa-ccp-14.c: Scan FRE dump. - * gcc.dg/tree-ssa/ssa-fre-46.c: Use -O2. - * gcc.dg/tree-ssa/vrp92.c: Disable FRE. - * gcc.dg/pr83666.c: Drop --param=sccvn-max-scc-size option. - * gcc.dg/pr85195.c: Likewise. - * gcc.dg/pr85467.c: Likewise. - * gcc.dg/torture/pr81790.c: Likewise. - - * gfortran.dg/reassoc_4.f: Change max-completely-peeled-insns - param to current default. - -2018-08-27 Jakub Jelinek - - PR rtl-optimization/87065 - * gcc.target/i386/pr87065.c: New test. - -2018-08-26 Marek Polacek - - PR c++/87080 - * g++.dg/cpp0x/Wpessimizing-move5.C: New test. - - PR c++/87029, Implement -Wredundant-move. - * g++.dg/cpp0x/Wredundant-move1.C: New test. - * g++.dg/cpp0x/Wredundant-move2.C: New test. - * g++.dg/cpp0x/Wredundant-move3.C: New test. - * g++.dg/cpp0x/Wredundant-move4.C: New test. - -2018-08-25 Thomas Koenig - - PR libfortran/86704 - * gfortran.dg/matmul_19.f90: New test. - -2018-08-25 Janus Weil - - PR fortran/86545 - * gfortran.dg/generic_35.f90: New test case. - -2018-08-24 David Malcolm - - PR c++/87091 - * gcc.dg/missing-header-fixit-3.c: Update for changes to how - line spans are printed with -fdiagnostics-show-line-numbers. - -2018-08-24 Thomas Koenig - - PR fortran/86837 - * gfortran.dg/implied_do_io_6.f90: New test. - -2018-08-24 H.J. Lu - - PR middle-end/87092 - * gcc.dg/pr87092.c: New test. - -2018-08-24 Marek Polacek - - PR c++/67012 - PR c++/86942 - * g++.dg/cpp0x/auto52.C: New test. - * g++.dg/cpp1y/auto-fn52.C: New test. - * g++.dg/cpp1y/auto-fn53.C: New test. - * g++.dg/cpp1y/auto-fn54.C: New test. - -2018-08-24 Richard Sandiford - - * lib/target-supports.exp (vect_perm_supported): Only return - false for variable-length vectors if the permute size is not - a power of 2. - (check_effective_target_vect_perm) - (check_effective_target_vect_perm_byte) - (check_effective_target_vect_perm_short): Remove check for - variable-length vectors. - * gcc.dg/vect/slp-23.c: Add an XFAIL for variable-length SVE. - * gcc.dg/vect/slp-perm-10.c: Likewise. - * gcc.dg/vect/slp-perm-9.c: Add an XFAIL for variable-length vectors. - -2018-08-24 Richard Sandiford - - * gcc.target/aarch64/sve/bswap_1.c: New test. - * gcc.target/aarch64/sve/bswap_2.c: Likewise. - * gcc.target/aarch64/sve/bswap_3.c: Likewise. - -2018-08-24 Richard Sandiford - - * gcc.target/aarch64/sve/slp_perm_1.c: New test. - * gcc.target/aarch64/sve/slp_perm_2.c: Likewise. - * gcc.target/aarch64/sve/slp_perm_3.c: Likewise. - * gcc.target/aarch64/sve/slp_perm_4.c: Likewise. - * gcc.target/aarch64/sve/slp_perm_5.c: Likewise. - * gcc.target/aarch64/sve/slp_perm_6.c: Likewise. - * gcc.target/aarch64/sve/slp_perm_7.c: Likewise. - -2018-08-24 H.J. Lu - - PR debug/79342 - * gcc.dg/pr79342.: New test. - -2018-08-23 Martin Sebor - - PR tree-optimization/87072 - * gcc.dg/Warray-bounds-35.c: New test. - -2018-08-23 Richard Biener - - PR middle-end/87024 - * gcc.dg/pr87024.c: New testcase. - -2018-08-23 Richard Sandiford - - * gcc.dg/vect/no-vfa-vect-depend-2.c: Remove XFAIL. - * gcc.dg/vect/no-vfa-vect-depend-3.c: Likewise. - * gcc.dg/vect/pr65947-13.c: Update for vect_fold_extract_last. - * gcc.dg/vect/pr80631-2.c: Likewise. - -2017-08-23 Paul Thomas - - PR fortran/86863 - * gfortran.dg/submodule_32.f08: New test. - -2018-08-22 Janus Weil - - PR fortran/86935 - * gfortran.dg/associate_3.f90: Update error message. - * gfortran.dg/associate_39.f90: New test case. - -2018-08-22 Janus Weil - - PR fortran/86888 - * gfortran.dg/alloc_comp_basics_6.f90: Update an error message and add - an additional case. - * gfortran.dg/alloc_comp_basics_7.f90: New test case. - * gfortran.dg/class_17.f03: Update error message. - * gfortran.dg/class_55.f90: Ditto. - * gfortran.dg/dtio_11.f90: Update error messages. - * gfortran.dg/implicit_actual.f90: Add an error message. - * gfortran.dg/typebound_proc_12.f90: Update error message. - -2018-08-22 Martin Sebor - - PR middle-end/87052 - * gcc.dg/pr87052.c: New test. - * gcc.dg/tree-ssa/dump-3.c: Adjust. - -2018-08-22 Szabolcs Nagy - - * gfortran.dg/max_fmax_aarch64.f90: Rename to... - * gfortran.dg/max_expr.f90: ...this. - * gfortran.dg/min_fmin_aarch64.f90: Rename to... - * gfortran.dg/min_expr.f90: ...this. - -2018-08-22 Richard Sandiford - - PR tree-optimization/86725 - * gcc.dg/vect/no-scevccp-pr86725-2.c: New test. - * gcc.dg/vect/no-scevccp-pr86725-3.c: Likewise. - * gcc.dg/vect/no-scevccp-pr86725-4.c: Likewise. - * gcc.dg/vect/no-scevccp-pr86725-5.c: Likewise. - -2018-08-22 Richard Sandiford - - PR tree-optimization/86725 - * gcc.dg/vect/no-scevccp-pr86725-1.c: New test. - -2018-08-22 Richard Sandiford - - * gcc.dg/vect/vect-avg-16.c: New test. - * gcc.dg/vect/slp-37.c: Expect the loop to be vectorized. - * gcc.dg/vect/vect-strided-u8-i8-gap4.c, - * gcc.dg/vect/vect-strided-u8-i8-gap4-big-array.c: Likewise for - the second loop in main1. - -2018-08-22 Iain Sandoe - - * gcc.dg/lto/pr85248_0.c (test_alias): - Stringify __USER_LABEL_PREFIX__. - (test_noreturn): Likewise. - -2018-08-22 Richard Biener - - PR tree-optimization/86988 - * g++.dg/pr86988.C: New testcase. - -2018-08-22 Richard Biener - - PR tree-optimization/86945 - * tree-cfg.c (generate_range_test): Use unsigned arithmetic. - -2018-08-21 Janne Blomqvist - - * gfortran.dg/nan_1.f90: Remove tests that test MAX/MIN with NaNs. - -2018-08-21 Nicolas Koenig - Thomas Koenig - - PR fortran/25829 - * gfortran.dg/f2003_inquire_1.f03: Add write statement. - * gfortran.dg/f2003_io_1.f03: Add wait statement. - -2018-08-21 Marek Polacek - - PR c++/86981, Implement -Wpessimizing-move. - * g++.dg/cpp0x/Wpessimizing-move1.C: New test. - * g++.dg/cpp0x/Wpessimizing-move2.C: New test. - * g++.dg/cpp0x/Wpessimizing-move3.C: New test. - * g++.dg/cpp0x/Wpessimizing-move4.C: New test. - * g++.dg/cpp1z/Wpessimizing-move1.C: New test. - - PR c++/65043 - * g++.dg/concepts/pr67595.C: Add dg-warning. - * g++.dg/cpp0x/Wnarrowing11.C: New test. - * g++.dg/cpp0x/Wnarrowing12.C: New test. - * g++.dg/cpp0x/rv-cast5.C: Add static_cast. - - PR c++/86499 - * g++.dg/cpp0x/lambda/lambda-non-local.C: New test. - * g++.dg/cpp0x/lambda/lambda-this10.C: Adjust dg-error. - -2018-08-21 Ed Schonberg - - * gnat.dg/expr_func7.adb, gnat.dg/expr_func7.ads: New testcase. - -2018-08-21 Ed Schonberg - - * gnat.dg/expr_func6.adb, gnat.dg/expr_func6.ads: New testcase. - -2018-08-21 Javier Miranda - - * gnat.dg/spark2.adb, gnat.dg/spark2.ads: New testcase. - -2018-08-21 Ed Schonberg - - * gnat.dg/prot6.adb, gnat.dg/prot6.ads: New testcase. - -2018-08-21 Ed Schonberg - - * gnat.dg/access5.adb, gnat.dg/access5.ads: New testcase. - -2018-08-21 Eric Botcazou - - * gnat.dg/rep_clause7.adb: New testcase. - -2018-08-21 Ed Schonberg - - * gnat.dg/task1.adb, gnat.dg/task1.ads, gnat.dg/task1_pkg.adb, - gnat.dg/task1_pkg.ads: New testcase. - -2018-08-21 Hristian Kirtchev - - * gnat.dg/linkedlist.adb: New testcase. - -2018-08-21 Hristian Kirtchev - - * gnat.dg/elab6.adb, gnat.dg/elab6.ads, gnat.dg/elab6_pkg.adb, - gnat.dg/elab6_pkg.ads: New testcase. - -2018-08-21 Ed Schonberg - - * gnat.dg/expr_func5.adb: New testcase. - -2018-08-21 Hristian Kirtchev - - * gnat.dg/dynhash.adb: New testcase. - -2018-08-21 Javier Miranda - - * gnat.dg/enum4.adb: New testcase. - -2018-08-21 Tamar Christina - - * gcc.target/aarch64/large_struct_copy.c: New test. - -2018-08-21 Szabolcs Nagy - - * g++.dg/torture/pr86763.C: Restrict to *-*-linux*. - -2018-08-21 Bernd Edlinger - - PR middle-end/86121 - * gcc.dg/Wstringop-overflow-6.c: Remove xfail. - -2018-08-21 Tom de Vries - - * gcc.c-torture/unsorted/dump-noaddr.x: Use -gno-record-gcc-switches - to avoid mismatch in .debug and .earlydebug dump files. - -2018-08-20 Michael Meissner - - PR target/87033 - * gcc.target/powerpc/pr87033.c: New test. - -2018-08-20 Martin Sebor - - PR tree-optimization/87034 - * gcc.dg/builtin-sprintf-warn-20.c: New test. - -2018-08-20 David Malcolm - - PR other/84889 - * gcc.dg/plugin/diagnostic-group-test-1.c: New test. - * gcc.dg/plugin/diagnostic_group_plugin.c: New test. - * gcc.dg/plugin/plugin.exp (plugin_test_list): Add the new tests. - -2018-08-20 H.J. Lu - - PR target/87014 - * g++.dg/torture/pr87014.C: New file. - -2018-08-20 Bernd Edlinger - - PR target/86984 - * gcc.target/alpha/pr86984.c: New test. - -2018-08-20 Richard Biener - - PR tree-optimization/78655 - * gcc.dg/tree-ssa/evrp11.c: New testcase. - -2018-08-18 Iain Sandoe - - * gcc.dg/debug/dwarf2/pr80263.c: Suppress pubtypes output - for Darwin. - -2018-08-18 Iain Sandoe - - * g++.dg/debug/dwarf2/pr85302.C: Skip unsupported split DWARF - test on Darwin. - * g++.dg/debug/dwarf2/pr85302.C: Likewise. - * gcc.dg/lto/pr83719_0.c: Likewise. - -2018-08-17 Martin Sebor - - PR testsuite/86996 - * gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Adjust. - -2018-08-17 David Malcolm - - * g++.dg/conversion/Wwrite-strings.C: New test. - -2018-08-17 Sandra Loosemore - Chung-Lin Tang - Xianmiao Qu - - C-SKY port: Testsuite - - * g++.dg/Wno-frame-address.C: Adjust for C-SKY. - * g++.dg/torture/type-generic-1.C: Likewise. - * gcc.c-torture/compile/20000804-1.c: Likewise. - * gcc.c-torture/execute/20101011-1.c: Likewise. - * gcc.c-torture/execute/ieee/mul-subnormal-single-1.x: Likewise. - * gcc.dg/20020312-2.c: Likewise. - * gcc.dg/Wno-frame-address.c: Likewise. - * gcc.dg/c11-true_min-1.c: Likewise. - * gcc.dg/sibcall-10.c: Likewise. - * gcc.dg/sibcall-9.c: Likewise. - * gcc.dg/stack-usage-1.c: Likewise. - * gcc.dg/torture/float32-tg-3.c: Likewise. - * gcc.dg/torture/float32x-tg-3.c: Likewise. - * gcc.dg/torture/float64-tg-3.c: Likewise. - * gcc.dg/torture/float64x-tg-3.c: Likewise. - * gcc.dg/torture/type-generic-1.c: Likewise. - * gcc.target/csky/*: New. - * lib/target-supports.exp (check_profiling_available): Add - csky-*-elf. - (check_effective_target_hard_float): Handle C-SKY targets with - single-precision hard float only. - (check_effective_target_logical_op_short_circuit): Handle C-SKY. - -2018-08-17 David Malcolm - - * gcc.dg/format/gcc_diag-1.c: Fix typo. Add test coverage for - gcc_dump_printf. - * gcc.dg/format/gcc_diag-10.c: Add gimple typedef. Add test - coverage for gcc_dump_printf. - -2018-08-17 Martin Liska - - * g++.dg/opt/mpx.C: Fix scanned pattern. - * gcc.target/i386/mpx.c: Likewise. - * g++.dg/warn/Wunreachable-code-1.C: Remove. - * g++.dg/warn/Wunreachable-code-2.C: Likewise. - * gcc.dg/torture/pr52969.c: Likewise. - * g++.dg/warn/pr31246-2.C: Likewise. - * g++.dg/warn/pr31246.C: Likewise. - * gcc.dg/pr33092.c: Likewise. - * g++.dg/opt/eh1.C: Remove a deprecated option. - * g++.dg/template/inline1.C: Likewise. - * g++.dg/tree-ssa/pr81408.C: Likewise. - * gcc.dg/pr41837.c: Likewise. - * gcc.dg/pr41841.c: Likewise. - * gcc.dg/pr42250.c: Likewise. - * gcc.dg/pr43084.c: Likewise. - * gcc.dg/pr43317.c: Likewise. - * gcc.dg/pr51879-18.c: Likewise. - * gcc.dg/torture/pr36066.c: Likewise. - * gcc.dg/tree-ssa/ifc-8.c: Likewise. - * gcc.dg/tree-ssa/ifc-cd.c: Likewise. - * gcc.dg/tree-ssa/pr19210-1.c: Likewise. - * gcc.dg/tree-ssa/pr45122.c: Likewise. - * gcc.target/i386/pr45352-2.c: Likewise. - * gcc.target/i386/zee.c: Likewise. - * gfortran.dg/auto_char_len_2.f90: Likewise. - * gfortran.dg/auto_char_len_4.f90: Likewise. - * gfortran.dg/c_ptr_tests_15.f90: Likewise. - * gfortran.dg/char_array_structure_constructor.f90: Likewise. - * gfortran.dg/gomp/pr47331.f90: Likewise. - * gfortran.dg/pr40999.f: Likewise. - * gfortran.dg/pr41011.f: Likewise. - * gfortran.dg/pr42051.f03: Likewise. - * gfortran.dg/pr46804.f90: Likewise. - * gfortran.dg/pr83149_1.f90: Likewise. - * gfortran.dg/pr83149_b.f90: Likewise. - * gfortran.dg/whole_file_1.f90: Likewise. - * gfortran.dg/whole_file_10.f90: Likewise. - * gfortran.dg/whole_file_11.f90: Likewise. - * gfortran.dg/whole_file_12.f90: Likewise. - * gfortran.dg/whole_file_13.f90: Likewise. - * gfortran.dg/whole_file_14.f90: Likewise. - * gfortran.dg/whole_file_15.f90: Likewise. - * gfortran.dg/whole_file_16.f90: Likewise. - * gfortran.dg/whole_file_17.f90: Likewise. - * gfortran.dg/whole_file_18.f90: Likewise. - * gfortran.dg/whole_file_19.f90: Likewise. - * gfortran.dg/whole_file_2.f90: Likewise. - * gfortran.dg/whole_file_20.f03: Likewise. - * gfortran.dg/whole_file_3.f90: Likewise. - * gfortran.dg/whole_file_4.f90: Likewise. - * gfortran.dg/whole_file_5.f90: Likewise. - * gfortran.dg/whole_file_6.f90: Likewise. - * gfortran.dg/whole_file_7.f90: Likewise. - * gfortran.dg/whole_file_8.f90: Likewise. - * gfortran.dg/whole_file_9.f90: Likewise. - * gcc.dg/vect/vect.exp: Likewise. - -2018-08-17 Richard Biener - - PR middle-end/86505 - * gcc.dg/torture/pr86505.c: New testcase. - -2018-08-16 Martin Sebor - - PR tree-optimization/86853 - * gcc.dg/tree-ssa/builtin-sprintf-10.c: New test. - * gcc.dg/tree-ssa/builtin-sprintf-11.c: New test. - * gcc.dg/tree-ssa/builtin-sprintf-warn-18.c: Adjust. - -2018-08-16 David Malcolm - - * gcc.dg/missing-header-fixit-3.c: New test. - -2018-08-16 David Malcolm - - * gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c - (test_fixit_insert_newline): Update expected output to show '+' - characters in margin of line-insertion fix-it hint. - -2018-08-16 Nathan Sidwell - - * gcc.dg/cpp/macsyntx.c: Adjust expected errors. - * gcc.dg/cpp/macsyntx2.c: likewise. - -2018-08-15 Uros Bizjak - - PR testsuite/86745 - * gcc.target/i386/avx-cvt-2.c: Loosen scan-assembler strings. - * gcc.target/i386/avx-cvt-2.c: Ditto. - -2018-08-16 David Malcolm - - PR c++/70693 - * c-c++-common/Wmisleading-indentation-pr70693.c: New test. - -2018-08-16 Vlad Lazar - - * gcc.target/aarch64/imm_choice_comparison.c: New test. - -2018-08-16 Iain Sandoe - - * gcc.dg/memcmp-1.c (lib_memcmp): Apply __USER_LABEL_PREFIX__. - (lib_strncmp): Likewise. - -2018-08-16 Iain Sandoe - - * c-c++-common/asan/pointer-subtract-3.c: Skip for Darwin. - * c-c++-common/asan/pointer-subtract-4.c: Likewise. - * g++.dg/torture/pr44295.C : Likewise. - -2018-08-16 Iain Sandoe - - PR testsuite/78544 - * gcc.dg/tree-prof/section-attr-1.c: Add Darwin-specific section - attributes and matching. - * gcc.dg/tree-prof/section-attr-2.c: Likewise. - * gcc.dg/tree-prof/section-attr-3.c: Likewise. - -2018-08-16 Iain Sandoe - - * gcc.dg/asan/pr81923.c: Stringify __USER_LABEL_PREFIX__. - -2018-08-15 Uros Bizjak - - * gcc.target/i386/rop1.c: Remove. - * gcc.target/i386/pr83554 (dg-options): Remove -mmitigate-rop. - -2018-08-15 Will Schmidt - - * gcc.target/powerpc/fold-vec-splat-char.c: New. - * gcc.target/powerpc/fold-vec-splat-floatdouble.c: New. - * gcc.target/powerpc/fold-vec-splat-int.c: New. - * gcc.target/powerpc/fold-vec-splat-longlong.c: New. - * gcc.target/powerpc/fold-vec-splat-pixel.c: New. - * gcc.target/powerpc/fold-vec-splat-short.c: New. - -2018-08-15 David Malcolm - - * g++.dg/diagnostic/aka3.C: New test. - * g++.dg/diagnostic/param-type-mismatch-2.C: Update expected - output to show range labels. - * g++.dg/diagnostic/param-type-mismatch.C: Likewise. - * g++.dg/plugin/plugin.exp (plugin_test_list): Add... - * g++.dg/plugin/show-template-tree-color-labels.C: New test. - * gcc.dg/bad-binary-ops.c: Update expected output to show range - labels. Add an "aka" example. - * gcc.dg/cpp/pr66415-1.c: Update expected output to show range - labels. - * gcc.dg/format/diagnostic-ranges.c: Likewise. - * gcc.dg/format/pr72858.c: Likewise. - * gcc.dg/format/pr78498.c: Likewise. - * gcc.dg/param-type-mismatch.c: Add "-Wpointer-sign" to options. - Update expected output to show range labels. Add examples of - -Wincompatible-pointer-types and -Wpointer-sign for parameters. - * gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c: - Update expected output to show range labels. - * gcc.dg/plugin/diagnostic-test-show-locus-bw.c: Likewise. - (test_very_wide_line): Adjust so that label is at left-clipping - boundary. - (test_very_wide_line_2): New test. - * gcc.dg/plugin/diagnostic-test-show-locus-color-line-numbers.c: - Update expected output to show range labels. - * gcc.dg/plugin/diagnostic-test-show-locus-color.c: Likewise. - * gcc.dg/plugin/diagnostic-test-show-locus-no-labels.c: New test. - * gcc.dg/plugin/diagnostic_plugin_show_trees.c (show_tree): Update - for new param to gcc_rich_location::add_expr. - * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c (add_range): - Add "label" param. - (test_show_locus): Add examples of labels to various tests. Tweak - the "very wide_line" test case and duplicate it, to cover the - boundary values for clipping of labels against the left-margin. - * gcc.dg/plugin/plugin.exp (plugin_test_list): Add - diagnostic-test-show-locus-no-labels.c. - * gcc.dg/pr69554-1.c: Update expected output to show range labels. - Update line numbers of dg-locus directives. - * gcc.dg/pr69627.c: Update expected output to show range labels. - * lib/multiline.exp (proc _build_multiline_regex): Remove - special-case handling of lines with trailing '|'. - -2018-08-15 Qing Zhao - - PR testsuite/86519 - * gcc.dg/strcmpopt_6.c: Scan the assembly file instead of - the .expand file. - -2018-08-15 Prathamesh Kulkarni - - * gcc.dg/wmain.c: New test. - -2018-08-15 Iain Sandoe - - PR c/19315 - * gcc.dg/graphite/pr82451.c: Make array 'a' an extern. - * gcc.dg/redecl-10.c: Expect warnings for the static vars with - unknown size. - -2018-08-15 Martin Liska - - PR tree-optimization/86925 - * gcc.dg/predict-20.c: New test. - * gcc.dg/predict-21.c: New test. - -2018-08-15 Paolo Carlini - - * g++.dg/init/goto3.C: Adjust for error instead of permerror. - -2018-08-14 Allan Sandfeld Jensen - - * gcc.target/i386/sse2-movs.c: New test. - -2018-08-14 Martin Sebor - - PR tree-optimization/86650 - * gcc.dg/Warray-bounds-34.c: New test. - -2018-08-14 Janus Weil - - PR fortran/86116 - * gfortran.dg/generic_34.f90: New test case. - -2018-08-13 Marek Polacek - - PR c++/57891 - * g++.dg/cpp0x/Wnarrowing6.C: New test. - * g++.dg/cpp0x/Wnarrowing7.C: New test. - * g++.dg/cpp0x/Wnarrowing8.C: New test. - * g++.dg/cpp0x/Wnarrowing9.C: New test. - * g++.dg/cpp0x/Wnarrowing10.C: New test. - * g++.dg/cpp0x/constexpr-47969.C: Adjust dg-error. - * g++.dg/cpp0x/constexpr-ex2.C: Likewise. - * g++.dg/cpp0x/constexpr-targ.C: Likewise. - * g++.dg/cpp0x/scoped_enum2.C: Likewise. - * g++.dg/ext/stmtexpr15.C: Likewise. - * g++.dg/gomp/pr47963.C: Likewise. - * g++.dg/init/new37.C: Likewise. - * g++.dg/init/new43.C: Likewise. - * g++.dg/other/fold1.C: Likewise. - * g++.dg/parse/array-size2.C: Likewise. - * g++.dg/template/dependent-name3.C: Likewise. - * g++.dg/cpp0x/constexpr-data2.C: Add dg-error. - * g++.dg/other/vrp1.C: Likewise. - * g++.dg/template/char1.C: Likewise. - -2018-08-13 Segher Boessenkool - - * gcc.target/powerpc/pr56605.c: The generated code can have an AND - instead of a ZERO_EXTEND. - -2018-08-13 Martin Sebor - - PR tree-optimization/71625 - * c-c++-common/attr-nonstring-3.c: Temporarily xfail a test case. - * g++.dg/init/string2.C: New test. - * g++.dg/init/string3.C: New test. - * g++.dg/init/string4.C: New test. - * gcc.dg/init-string-3.c: New test. - * gcc.dg/strlenopt-55.c: New test. - * gcc.dg/strlenopt-56.c: New test. - -2018-08-13 Marek Polacek - - P0806R2 - Deprecate implicit capture of this via [=] - * g++.dg/cpp2a/lambda-this1.C: New test. - * g++.dg/cpp2a/lambda-this2.C: New test. - * g++.dg/cpp2a/lambda-this3.C: New test. - -2018-08-13 Marek Polacek - - PR c++/86915 - * g++.dg/diagnostic/auto1.C: New test. - -2018-08-12 Paul Thomas - - PR fortran/66679 - * gfortran.dg/transfer_class_3.f90: New test. - -2018-08-12 Paul Thomas - - PR fortran/86906 - * gfortran.dg/use_rename_9.f90: New test. - -2018-08-11 Jakub Jelinek - - PR tree-optimization/86835 - * gcc.dg/pr86835.c: New test. - -2018-08-10 Janus Weil - - PR fortran/57160 - * gfortran.dg/actual_pointer_function_1.f90: Fix invalid test case. - * gfortran.dg/inline_matmul_23.f90: Add option "-ffrontend-optimize". - * gfortran.dg/short_circuiting_2.f90: New test case. - * gfortran.dg/short_circuiting_3.f90: New test case. - -2018-08-10 Alexander Monakov - - PR target/82418 - * gcc.target/i386/pr82418.c: New test. - -2018-08-10 Martin Liska - - PR target/83610 - * gcc.dg/predict-17.c: New test. - * gcc.dg/predict-18.c: New test. - * gcc.dg/predict-19.c: New test. - -2018-08-10 Martin Liska - - PR tree-optimization/85799 - * gcc.dg/pr85799.c: New test. - -2018-08-09 Jeff Law - - PR middle-end/86897 - * gcc.dg/uninit-suppress_2.c: Disable DOM. - -2018-08-09 Richard Sandiford - - * gcc.target/aarch64/sve/reduc_8.c: New test. - -2018-08-09 David Malcolm - - PR other/84889 - * gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c: New - test. - * gcc.dg/plugin/diagnostic-test-show-locus-color-line-numbers.c: - New test. - * gcc.dg/plugin/plugin.exp (plugin_test_list): Add the new tests. - * lib/prune.exp: Add -fno-diagnostics-show-line-numbers to - TEST_ALWAYS_FLAGS. - -2018-08-09 Richard Sandiford - - PR tree-optimization/86858 - * gcc.dg/vect/pr86858.c: New test. - -2018-08-09 Richard Sandiford - - PR tree-optimization/86871 - * gcc.dg/vect/pr86871.c: New test. - -2018-08-09 Paolo Carlini - - * g++.old-deja/g++.mike/p784.C: Add -fpermissive. - -2018-08-09 Andreas Krebbel - - * gcc.target/s390/target-attribute/tattr-arch-tune-1.c: Decrement - arch and tune numbers by 2. - * gcc.target/s390/target-attribute/tattr-arch-tune-2.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-1.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-10.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-11.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-12.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-13.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-14.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-15.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-16.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-17.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-18.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-19.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-2.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-20.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-21.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-22.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-23.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-24.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-25.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-26.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-27.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-28.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-29.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-3.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-30.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-31.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-32.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-4.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-5.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-6.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-7.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-8.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m31-9.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-1.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-10.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-11.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-12.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-13.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-14.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-15.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-16.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-17.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-18.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-19.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-2.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-20.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-21.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-22.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-23.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-24.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-25.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-26.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-27.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-28.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-29.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-3.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-30.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-31.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-32.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-33.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-4.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-5.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-6.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-7.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-8.c: Likewise. - * gcc.target/s390/target-attribute/tattr-m64-9.c: Likewise. - -2018-08-09 Andreas Krebbel - - PR target/84332 - * gcc.target/s390/pr84332.c: New testcase. - -2018-08-08 Andreas Schwab - - PR target/46179 - * gcc.target/m68k/tls-dimode.c: New file. - -2018-08-08 Nathan Sidwell - - * c-c++-common/inc-from-1a.h, c-c++-common/inc-from-1b.h, - c-c++-common/inc-from-1.c: New - -2018-08-08 Andreas Krebbel - - PR target/85295 - * gcc.target/s390/TI-constants-lra.c: New testcase. - * gcc.target/s390/TI-constants-nolra.c: New testcase. - -2018-08-08 Ilya Leoshkevich - - * gcc.target/s390/hotpatch-8.c: Remove. - * gcc.target/s390/hotpatch-9.c: Remove. - * gcc.target/s390/mnop-mcount-m31-fpic.c: Remove. - * gcc.target/s390/mnop-mcount-m31.c: Remove. - -2018-08-08 Jakub Jelinek - - P0595R1 - is_constant_evaluated - * g++.dg/cpp2a/is-constant-evaluated1.C: New test. - - PR c++/86836 - * g++.dg/cpp1z/decomp46.C: New test. - - PR c++/86738 - * g++.dg/opt/pr86738.C: New test. - -2018-08-07 Richard Sandiford - - PR target/86838 - * gcc.target/aarch64/frecpe_1.c: New test. - * gcc.target/aarch64/frecpe_2.c: Likewise. - -2018-08-07 Paolo Carlini - - PR c++/59480, DR 136 - * g++.dg/other/friend8.C: New. - * g++.dg/other/friend9.C: Likewise. - * g++.dg/other/friend10.C: Likewise. - * g++.dg/other/friend11.C: Likewise. - * g++.dg/other/friend12.C: Likewise. - * g++.dg/other/friend13.C: Likewise. - * g++.dg/other/friend14.C: Likewise. - * g++.dg/other/friend15.C: Likewise. - * g++.dg/parse/defarg4.C: Compile with -fpermissive -w. - * g++.dg/parse/defarg8.C: Likewise. - -2018-08-07 Martin Liska - - PR middle-end/83023 - * gcc.dg/predict-16.c: New test. - * g++.dg/predict-1.C: New test. - -2018-08-07 Steve Ellcey - Rainer Orth - - PR tree-optimization/80925 - * gcc.dg/vect/no-section-anchors-vect-69.c: Expect 3 loops - vectorized on !vect_hw_misalign targets. - -2018-08-06 Marek Polacek - - PR c++/86767 - * g++.dg/cpp1y/constexpr-86767.C: New test. - -2018-08-06 Uros Bizjak - - * g++.dg/torture/pr86763.C (dg-additional-options): Add -lrt - for target *-*-linux-gnu. - -2018-08-06 Alan Hayward - - * gcc.target/aarch64/sve/tls_preserve_1.c: New test. - * gcc.target/aarch64/sve/tls_preserve_2.c: New test. - * gcc.target/aarch64/sve/tls_preserve_3.c: New test. - -2018-08-06 Andreas Krebbel - - * gcc.target/s390/nomemloopunroll-1.c: New test. - -2018-08-05 H.J. Lu - - PR target/86386 - * gcc.target/i386/pr86386.c: New file. - -2018-08-04 Tom de Vries - - * lib/gcc-gdb-test.exp: Use absolute line number in pass/fail line. - -2018-08-04 Andreas Schwab - - * gcc.dg/guality/const-volatile.c: Remove duplicate test - "type:cvip". - -2018-08-04 Janus Weil - - PR fortran/45521 - * gfortran.dg/interface_assignment_6.f90: New test case. - -2018-08-04 Uros Bizjak - - PR testsuite/86153 - * g++.dg/pr83239.C (dg-options): Add -finline-limit=500. - -2018-08-03 David Malcolm - Jonathan Wakely - - PR c++/85523 - * g++.dg/pr85523.C: New test. - -2018-08-03 Bogdan Harjoc - - PR c/86690 - * gcc.dg/union-duplicate-field.c: New test. - -2018-08-03 Jason Merrill - - PR c++/86706 - * g++.dg/template/pr86706.C: New test. - -2018-08-03 Richard Sandiford - - * gcc.dg/vect/bb-slp-over-widen-1.c: Expect AVG_FLOOR to be used - on vect_avg_qi targets. - * gcc.dg/vect/bb-slp-over-widen-2.c: Likewise. - * gcc.dg/vect/bb-slp-pow-1.c: New test. - * gcc.dg/vect/vect-avg-15.c: Likewise. - -2018-08-03 Martin Liska - - * gcc.dg/predict-1.c: Adjust scanned pattern to cover 2 digits. - * gcc.dg/predict-13.c: Likewise. - * gcc.dg/predict-3.c: Likewise. - * gcc.dg/predict-4.c: Likewise. - * gcc.dg/predict-5.c: Likewise. - * gcc.dg/predict-6.c: Likewise. - * gcc.dg/predict-9.c: Likewise. - * gfortran.dg/predict-1.f90: Likewise. - -2018-08-02 Richard Biener - - PR c++/86763 - * g++.dg/torture/pr86763.C: New testcase. - -2018-08-02 Richard Biener - - PR tree-optimization/86816 - * g++.dg/torture/pr86816.C: New testcase. - -2018-08-02 Richard Sandiford - - * gcc.target/aarch64/f16_mov_immediate_1.c: Expect fmov immediate - to be used. - * gcc.target/aarch64/f16_mov_immediate_2.c: Likewise. - * gcc.target/aarch64/f16_mov_immediate_3.c: Force +nofp16. - * gcc.target/aarch64/sve/single_1.c: Except fmov immediate to be used - for .h. - * gcc.target/aarch64/sve/single_2.c: Likewise. - * gcc.target/aarch64/sve/single_3.c: Likewise. - * gcc.target/aarch64/sve/single_4.c: Likewise. - -2018-08-02 Jackson Woodruff - - PR target/86014 - * gcc.target/aarch64/ldp_stp_13.c: New test. - -2018-08-01 Martin Sebor - - PR tree-optimization/86650 - * gcc.dg/format/gcc_diag-10.c: Adjust. - -2018-08-01 Richard Sandiford - - * gcc.target/aarch64/sve/var_stride_2.c: Update expected form - of range check. - * gcc.target/aarch64/sve/var_stride_4.c: Likewise. - -2018-08-01 Richard Sandiford - - PR target/86753 - * gcc.target/aarch64/sve/vcond_4.c: XFAIL positive tests. - * gcc.target/aarch64/sve/vcond_5.c: Likewise. - -2018-08-01 Richard Sandiford - - * gcc.dg/pointer-range-check-1.c: New test. - * gcc.dg/pointer-range-check-2.c: Likewise. - -2018-08-01 Richard Sandiford - - PR tree-optimization/86749 - * gcc.dg/vect/pr86749.c: New test. - -2018-08-01 Paolo Carlini - - PR c++/86661 - * g++.dg/lookup/name-clash12.C: New. - -2018-08-01 Richard Biener - - * gcc.dg/tree-ssa/ssa-fre-68.c: New testcase. - -2018-08-01 Uros Bizjak - - * gcc.dg/plugin/poly-int-07_plugin.c (dg-options): Use -O0. - -2018-08-01 Uros Bizjak - - * gcc.dg/tree-ssa/pr84512.c: Xfail on alpha*-*-*. - -2018-08-01 Martin Liska - - * gcc.dg/tree-prof/stringop-1.c: Adjust scanned pattern. - * gcc.dg/tree-prof/stringop-2.c: Likewise. - * gcc.dg/tree-prof/val-prof-1.c: Likewise. - * gcc.dg/tree-prof/val-prof-2.c: Likewise. - * gcc.dg/tree-prof/val-prof-3.c: Likewise. - * gcc.dg/tree-prof/val-prof-4.c: Likewise. - * gcc.dg/tree-prof/val-prof-5.c: Likewise. - * gcc.dg/tree-prof/val-prof-7.c: Likewise. - -2018-08-01 Martin Liska - - PR value-prof/35543 - * gcc.dg/tree-prof/val-prof-7.c: Add __builtin_memmove. - -2018-08-01 Sam Tebbs - - * gcc.target/aarch64/extract_zero_extend.c: New file. - -2018-08-01 Jakub Jelinek - - PR c/85704 - * gcc.c-torture/compile/pr85704.c: New test. - -2018-07-31 Alexandre Oliva - Olivier Hainque - - * gnat.dg/dinst.adb: New. - * gnat.dg/dinst_pkg.ads, gnat.dg/dinst_pkg.adb: New. - -2018-07-31 David Malcolm - - * gcc.dg/format/gcc_diag-1.c (foo): Update the %v tests for - tdiag and cxxdiag. - * gcc.dg/format/gcc_diag-10.c (test_diag): Update tests of %G - and %K. - -2018-07-31 Richard Earnshaw - - * c-c++-common/spec-barrier-1.c: New test. - * c-c++-common/spec-barrier-2.c: New test. - * gcc.dg/spec-barrier-3.c: New test. - -2018-07-31 Martin Sebor - - PR tree-optimization/86741 - * gcc.dg/Warray-bounds-33.c: New test. - -2018-07-31 Andreas Krebbel - - * gcc.target/s390/memset-1.c: Improve testcase. - -2018-07-31 Tom de Vries - - PR debug/86687 - * g++.dg/guality/pr86687.C: New test. - -2018-07-31 Jakub Jelinek - - P1008R1 - prohibit aggregates with user-declared constructors - * g++.dg/ext/is_aggregate.C: Add tests with deleted or defaulted ctor. - * g++.dg/cpp0x/defaulted1.C (main): Ifdef out for C++2a B b = {1};. - * g++.dg/cpp0x/deleted2.C: Expect error for C++2a. - * g++.dg/cpp2a/aggr1.C: New test. - * g++.dg/cpp2a/aggr2.C: New test. - -2018-07-31 Segher Boessenkool - - PR target/86640 - * gcc.target/arm/pr86640.c: New testcase. - -2018-07-31 Martin Liska - - PR gcov-profile/85338 - PR gcov-profile/85350 - PR gcov-profile/85372 - * gcc.misc-tests/gcov-pr85338.c: New test. - * gcc.misc-tests/gcov-pr85350.c: New test. - * gcc.misc-tests/gcov-pr85372.c: New test. - -2018-07-31 Martin Liska - - PR gcov-profile/83813 - PR gcov-profile/84758 - PR gcov-profile/85217 - PR gcov-profile/85332 - * gcc.misc-tests/gcov-pr83813.c: New test. - * gcc.misc-tests/gcov-pr84758.c: New test. - * gcc.misc-tests/gcov-pr85217.c: New test. - * gcc.misc-tests/gcov-pr85332.c: New test. - -2018-07-31 Ed Schonberg - - * gnat.dg/prot5.adb, gnat.dg/prot5_pkg.adb, - gnat.dg/prot5_pkg.ads: New testcase. - -2018-07-31 Justin Squirek - - * gnat.dg/addr11.adb: New testcase. - -2018-07-31 Hristian Kirtchev - - * gnat.dg/global.adb, gnat.dg/global.ads: New testcase. - -2018-07-31 Gary Dismukes - - * gnat.dg/block_ext_return_assert_failure.adb: New testcase. - -2018-07-31 Ed Schonberg - - * gnat.dg/iter3.adb: New testcase. - -2018-07-31 Andre Vieira - - Revert 'AsyncI/O patch committed' - 2018-07-25 Nicolas Koenig - Thomas Koenig - - PR fortran/25829 - * gfortran.dg/f2003_inquire_1.f03: Add write statement. - * gfortran.dg/f2003_io_1.f03: Add wait statement. - -2018-07-30 Segher Boessenkool - - PR rtl-optimization/85160 - * gcc.target/powerpc/combine-2-2.c: New testcase. - -2018-07-27 Martin Sebor - - PR tree-optimization/86696 - * g++.dg/pr86696.C: New test. - -2018-07-27 David Malcolm - - PR tree-optimization/86636 - * gcc.c-torture/compile/pr86636.c: Add dg-do compile. - Add dg-require-effective-target pthread. - -2018-07-26 Qing Zhao - - * gcc.dg/strcmpopt_5.c: Change to O2 to enable the transformation. - * gcc.dg/strcmpopt_6.c: Likewise. - -2018-07-26 Pat Haugen - - PR target/86612 - * gcc.target/powerpc/pr58673-2.c: Call strdup. - -2018-07-26 Martin Sebor - - PR tree-optimization/86043 - PR tree-optimization/86042 - * gcc/testsuite/gcc.dg/attr-nonstring-2.c: Xfail test cases due to - pr86688. - * gcc.dg/strlenopt-44.c: New test. - -2018-07-26 Martin Liska - - PR gcov-profile/86536 - * gcc.misc-tests/gcov-pr86536.c: New test. - -2018-07-25 Martin Sebor - - * gcc.c-torture/execute/builtins/strnlen.c: Remove DejaGnu directives - ignored by the test harness. - -2018-07-25 Nicolas Koenig - Thomas Koenig - - PR fortran/25829 - * gfortran.dg/f2003_inquire_1.f03: Add write statement. - * gfortran.dg/f2003_io_1.f03: Add wait statement. - -2018-07-25 Jakub Jelinek - - PR c++/85515 - * g++.dg/pr85515-2.C: Add expected dg-error. - * g++.dg/cpp0x/range-for36.C: New test. - -2018-07-25 Claudiu Zissulescu - - * gcc.target/arc/uncached-1.c: New test. - * gcc.target/arc/uncached-2.c: Likewise. - -2018-07-24 Martin Sebor - - PR tree-optimization/86622 - PR tree-optimization/86532 - * gcc.c-torture/execute/strlen-2.c: New test. - * gcc.c-torture/execute/strlen-3.c: New test. - * gcc.c-torture/execute/strlen-4.c: New test. - -2018-07-24 David Malcolm - - PR tree-optimization/86636 - * gcc.c-torture/compile/pr86636.c: New test. - -2018-07-24 Matthew Malcomson - - * gcc.target/aarch64/simd/vect_su_add_sub.c: New. - -2018-07-24 Jakub Jelinek - - PR middle-end/86627 - * gcc.target/i386/pr86627.c: New test. - - PR testsuite/86649 - * g++.dg/tree-ssa-/pr19476-1.C: Check dom2 dump instead of ccp1. - * g++.dg/tree-ssa-/pr19476-5.C: Likewise. - * g++.dg/tree-ssa-/pr19476-6.C: New test. - * g++.dg/tree-ssa-/pr19476-7.C: New test. - -2018-07-23 Carl Love - - PR 86591 - * gcc.target/powerpc/altivec-1-runnable.c: Move vector double tests to - file altivec-2-runnable.c. - * gcc.target/powerpc/altivec-2-runnable.c: Add vector double tests. - * gcc.target/powerpc/buitlins-1.c: Remove dg-final check for xxlor. - Update dg-final test for __divdi3 and __udivdi3 instructions. Update - comments for instruction generated by vec_mergeh, vec_perm, vec_round, - vec_cts, vec_ctu, vec_cpsgn tests. - -2018-07-23 Bernd Edlinger - - PR c/86617 - * gcc.dg/pr86617.c: New test. - -2018-07-23 Jakub Jelinek - - PR c++/86569 - * g++.dg/warn/Wnonnull-compare-9.C: New test. - -2018-07-20 Martin Sebor - - PR middle-end/82063 - * c-c++-common/pr68657-1.c: Adjust. - * c-c++-common/pr68657-2.c: Same. - * c-c++-common/pr68657-3.c: Same. - * c-c++-common/pr68833-1.c: Same. - * gcc.dg/Walloc-size-larger-than-16.c: Same. - * gcc.dg/Walloca-larger-than.c: New test. - * gcc.dg/Walloca-larger-than-2.c: New test. - * gcc.dg/Wframe-larger-than-2.c: New test. - * gcc.dg/Wlarger-than3.c: New test. - * gcc.dg/Wvla-larger-than-3.c: New test. - * gcc.dg/pr42611.c: Adjust. - * gnat.dg/frame_overflow.adb: Same. - -2018-07-20 Martin Sebor - - PR tree-optimization/86613 - PR tree-optimization/86611 - * c-c++-common/Warray-bounds-2.c: Undefine macros and - prune duplicate warnings. - * gcc.dg/Warray-bounds-31.c: Xfail test cases with - data-model-dependencies. - * gcc.dg/Warray-bounds-32.c: Ditto. - -2018-07-20 Richard Biener - - PR debug/86585 - * g++.dg/lto/pr86585_0.C: New testcase. - * g++.dg/lto/pr86585_1.C: Likewise. - -2018-07-19 Martin Sebor - - PR tree-optimization/83776 - PR tree-optimization/84047 - * gcc.dg/Warray-bounds-29.c: New test. - * gcc.dg/Warray-bounds-30.c: New test. - * gcc.dg/Warray-bounds-31.c: New test. - * gcc.dg/Warray-bounds-32.c: New test. - -2018-07-19 Michael Collison - Richard Henderson - - * gcc.target/aarch64/builtin_sadd_128.c: New testcase. - * gcc.target/aarch64/builtin_saddl.c: New testcase. - * gcc.target/aarch64/builtin_saddll.c: New testcase. - * gcc.target/aarch64/builtin_uadd_128.c: New testcase. - * gcc.target/aarch64/builtin_uaddl.c: New testcase. - * gcc.target/aarch64/builtin_uaddll.c: New testcase. - * gcc.target/aarch64/builtin_ssub_128.c: New testcase. - * gcc.target/aarch64/builtin_ssubl.c: New testcase. - * gcc.target/aarch64/builtin_ssubll.c: New testcase. - * gcc.target/aarch64/builtin_usub_128.c: New testcase. - * gcc.target/aarch64/builtin_usubl.c: New testcase. - * gcc.target/aarch64/builtin_usubll.c: New testcase. - -2018-07-19 Paolo Carlini - - Revert fix for c++/59480 (and testsuite followup) - - 2018-07-19 Paolo Carlini - - * g++.old-deja/g++.mike/p784.C: Add -fpermissive. - - 2019-07-18 Paolo Carlini - - PR c++/59480, DR 136 - * g++.dg/other/friend8.C: New. - * g++.dg/other/friend9.C: Likewise. - * g++.dg/other/friend10.C: Likewise. - * g++.dg/other/friend11.C: Likewise. - * g++.dg/other/friend12.C: Likewise. - * g++.dg/parse/defarg4.C: Compile with -fpermissive -w. - * g++.dg/parse/defarg8.C: Likewise. - -2018-07-19 Andre Vieira - - * gcc.target/aarch64/profile.c: New test. - -2018-07-19 Andre Vieira - - PR target/83009 - * gcc/target/aarch64/store_v2vec_lanes.c: Add extra tests. - -2018-07-19 H.J. Lu - - PR target/86560 - * gcc.target/i386/pr86560-4.c: New test. - * gcc.target/i386/pr86560-5.c: Likewise. - -2018-07-19 H.J. Lu - - PR target/86560 - * gcc.target/i386/pr86560-1.c: New test. - * gcc.target/i386/pr86560-2.c: Likewise. - * gcc.target/i386/pr86560-3.c: Likewise. - -2018-07-19 Kyrylo Tkachov - - * gfortran.dg/max_fmax_aarch64.f90: New test. - * gfortran.dg/min_fmin_aarch64.f90: Likewise. - * gfortran.dg/minmax_integer.f90: Likewise. - -2018-07-19 Paolo Carlini - - * g++.old-deja/g++.mike/p784.C: Add -fpermissive. - -2018-07-18 Kugan Vivekanandarajah - - PR middle-end/86544 - * g++.dg/tree-ssa/pr86544.C: New test. - -2018-07-18 Jakub Jelinek - - PR c++/86550 - * g++.dg/cpp0x/lambda/lambda-86550.C: New test. - -2018-07-18 Bernd Edlinger - - PR 69558 - * c-c++-common/cpp/diagnostic-pragma-2.c: New test. - * c-c++-common/pr69558.c: Remove xfail. - * gcc.dg/cpp/builtin-macro-1.c: Adjust test expectations. - * gcc.dg/pr61817-1.c: Likewise. - * gcc.dg/pr61817-2.c: Likewise. - * g++.dg/plugin/pragma_plugin.c: Warn at expansion_point_location. - -2018-07-18 Janus Weil - - PR fortran/85599 - * gfortran.dg/function_optimize_5.f90: Add option - '-faggressive-function-elimination' and update dg-warning clauses. - * gfortran.dg/short_circuiting.f90: New test. - -2018-07-18 Marek Polacek - - PR c++/86190 - bogus -Wsign-conversion warning - * g++.dg/warn/Wsign-conversion-3.C: New test. - * g++.dg/warn/Wsign-conversion-4.C: New test. - -2018-07-18 Paolo Carlini - - PR c++/59480, DR 136 - * g++.dg/other/friend8.C: New. - * g++.dg/other/friend9.C: Likewise. - * g++.dg/other/friend10.C: Likewise. - * g++.dg/other/friend11.C: Likewise. - * g++.dg/other/friend12.C: Likewise. - * g++.dg/parse/defarg4.C: Compile with -fpermissive -w. - * g++.dg/parse/defarg8.C: Likewise. - -2018-07-18 Paolo Carlini - - * g++.dg/ext/uow-3.C: Adjust. - * g++.dg/ext/uow-4.C: Likewise. - * g++.dg/lookup/name-clash11.C: Likewise. - * g++.dg/lookup/name-clash7.C: Likewise. - * g++.dg/lookup/redecl1.C: Likewise. - * g++.dg/warn/changes-meaning.C: Likewise. - * g++.old-deja/g++.jason/scoping8.C: Likewise. - * g++.old-deja/g++.law/nest1.C: Likewise. - -2018-07-18 Richard Biener - - PR debug/86523 - * g++.dg/lto/pr86523-3_0.C: New testcase. - -2018-07-17 Andreas Schwab - - * gcc.target/m68k/mulsi_highpart.c: New test. - -2018-07-17 Jakub Jelinek - - * gcc.dg/cpp/pr61854-c90.c (foo): Expect a note, rather than error. - * gcc.dg/cpp/pr61854-c94.c (foo): Likewise. - * gcc.dg/cpp/pr61854-4.c (foo): Likewise. - * gcc.dg/cpp/pr61854-8.c: New test. - -2018-07-17 David Edelsohn - - * gcc.target/powerpc/pr85456.c: Require longdouble128. - -2018-07-17 Fritz Reese - - PR fortran/83184 - * gfortran.dg/dec_structure_23.f90: Oops, "un-fix" error messages. - -2018-07-17 Will Schmidt - - * gcc.target/powerpc/fold-vec-unpack-char.c: New. - * gcc.target/powerpc/fold-vec-unpack-float.c: New. - * gcc.target/powerpc/fold-vec-unpack-int.c: New. - * gcc.target/powerpc/fold-vec-unpack-pixel.c: New. - * gcc.target/powerpc/fold-vec-unpack-short.c: New. - -2018-07-17 David Edelsohn - - * gcc.target/powerpc/pr57150.c: Require longdouble128. - * gcc.target/powerpc/pr79916.c: Require dfp. - -2018-07-17 Richard Biener - - PR lto/86456 - * g++.dg/debug/dwarf2/pr86456.C: New testcase. - -2018-07-17 Robin Dapp - - * gcc.target/s390/function-align1.c: New test. - * gcc.target/s390/function-align2.c: New test. - * gcc.target/s390/function-align3.c: New test. - -2018-07-17 Eric Botcazou - - * gnat.dg/discr55.adb: New test. - -2018-07-17 Rainer Orth - - * gcc.target/i386/vartrack-1.c (dg-options): Add - -fomit-frame-pointer. - -2018-07-17 Rainer Orth - - * g++.dg/lto/pr86523-1_0.C: Require fpic, shared support. - (dg-lto-options): Add -fPIC. - * g++.dg/lto/pr86523-2_0.C: Likewise. - -2018-07-17 Martin Liska - - * gcc.target/powerpc/loop_align.c: Update scanned pattern. - -2018-07-17 Ed Schonberg - - * gnat.dg/generic_call_cw.adb, gnat.dg/generic_call_iface.adb: New - testcase. - -2018-07-17 Eric Botcazou - - * gnat.dg/sso10.adb, gnat.dg/sso10_pkg.ads: New testcase. - -2018-07-17 Patrick Bernardi - - * gnat.dg/memorytest.adb: New testcase. - -2018-07-17 Hristian Kirtchev - - * gnat.dg/config_pragma1.adb, gnat.dg/config_pragma1_pkg.ads: - New testcase. - -2018-07-17 Ed Schonberg - - * gnat.dg/equal3.adb: New testcase. - -2018-07-17 Justin Squirek - - * gnat.dg/split_args.adb: New testcase. - -2018-07-17 Ed Schonberg - - * gnat.dg/discr54.adb, gnat.dg/discr54_pkg.ads: New testcase. - -2018-07-17 Hristian Kirtchev - - * gnat.dg/bip_case_expr.adb, gnat.dg/bip_case_expr_pkg.ads: - New testcase. - -2018-07-16 Carl Love - - PR target/86414 - Forgot the PR number on the commit log. - - 2018-07-16 Carl Love - - PR target/86414 - * gcc.target/powerpc/divkc3-2.c: Add dg-require-effective-target - longdouble128. - * gcc.target/powerpc/divkc3-3.c: Ditto. - * gcc.target/powerpc/mulkc3-2.c: Ditto. - * gcc.target/powerpc/mulkc3-3.c: Ditto. - * gcc.target/powerpc/fold-vec-mergehl-double.c: Update counts. - * gcc.target/powerpc/pr85456.c: Make check Linux and AIX specific. - -2018-07-16 Segher Boessenkool - - * gcc.target/powerpc/convert-fp-128.c: New testcase. - * gcc.target/powerpc/convert-fp-64.c: New testcase. - -2018-07-16 Segher Boessenkool - - * lib/target-supports.exp (check_effective_target_longdouble64, - check_effective_target_ppc_float128, - check_effective_target_ppc_float128_insns, - check_effective_target_powerpc_vsx): New. - -2018-07-16 Segher Boessenkool - - * lib/target-supports.exp (check_ppc_float128_hw_available): Fix - syntax error. - -2018-07-16 Jakub Jelinek - - PR tree-optimization/86526 - * gcc.c-torture/compile/pr86526.c: New test. - -2018-07-16 Carl Love - - * gcc.target/powerpc/divkc3-2.c: Add dg-require-effective-target - longdouble128. - * gcc.target/powerpc/divkc3-3.c: Ditto. - * gcc.target/powerpc/mulkc3-2.c: Ditto. - * gcc.target/powerpc/mulkc3-3.c: Ditto. - * gcc.target/powerpc/fold-vec-mergehl-double.c: Update counts. - * gcc.target/powerpc/pr85456.c: Make check Linux and AIX specific. - -2018-07-16 Fritz Reese - - PR fortran/83184 - * gfortran.dg/assumed_rank_14.f90: New testcase. - * gfortran.dg/assumed_rank_15.f90: New testcase. - * gfortran.dg/dec_structure_8.f90: Update error messages. - * gfortran.dg/dec_structure_23.f90: Update error messages. - -2018-07-16 Bernd Edlinger - - PR middle-end/86528 - * gcc.c-torture/execute/pr86528.c: New test. - * gcc.dg/Wrestrict-10.c (test_arr_strcat_2): Fix typo. - -2018-07-16 Paolo Carlini - - * g++.dg/template/spec40.C: New. - * g++.dg/parse/ptrmem8.C: Likewise. - -2018-07-16 Ilya Leoshkevich - - * gcc.target/s390/mnop-mcount-m31-fpic.c: New testcase. - * gcc.target/s390/mnop-mcount-m31-mzarch.c: New testcase. - * gcc.target/s390/mnop-mcount-m31.c: New testcase. - * gcc.target/s390/mnop-mcount-m64-mfentry.c: New testcase. - * gcc.target/s390/mnop-mcount-m64.c: New testcase. - -2018-07-16 Ilya Leoshkevich - - * gcc.target/s390/mrecord-mcount.c: New testcase. - -2018-07-16 Ilya Leoshkevich - - * gcc.target/s390/mfentry-m64.c: New testcase. - -2018-07-16 Hristian Kirtchev - - * gnat.dg/abstract_state1.adb, gnat.dg/abstract_state1.ads: New - testcase. - -2018-07-16 Hristian Kirtchev - - * gnat.dg/validity_check3.adb, gnat.dg/validity_check3.ads: New - testcase. - -2018-07-16 Hristian Kirtchev - - * gnat.dg/wide_wide_value1.adb: New testcase. - -2018-07-16 Javier Miranda - - * gnat.dg/bit_order1.adb: New testcase. - -2018-07-16 Javier Miranda - - * gnat.dg/iter2.adb, gnat.dg/iter2.ads: New testcase. - -2018-07-16 Richard Biener - - PR lto/86523 - * g++.dg/lto/pr86523-1_0.C: New testcase. - * g++.dg/lto/pr86523-2_0.C: Likewise. - -2018-07-16 Martin Liska - - PR ipa/86529 - * g++.dg/ipa/pr86529.C: New test. - -2018-07-16 Tom de Vries - - PR debug/86455 - * gcc.target/i386/vartrack-1.c: New test. - -2018-07-16 Eric Botcazou - - * gnat.dg/opt73.adb: New test. - -2018-07-16 Jakub Jelinek - - PR c++/3698 - PR c++/86208 - * g++.dg/opt/pr3698.C: New test. - -2018-07-16 Richard Biener - - PR ipa/86389 - * gcc.dg/torture/pr86389.c: Require trampolines. - -2018-07-15 Tom de Vries - - * lib/gcc-gdb-test.exp (guality_minimal_options): New proc. - * lib/gfortran-dg.exp (gfortran-dg-runtest): Don't call torture-init if - already called. - * g++.dg/guality/guality.exp: Ensure Og is part of torture options. - * gcc.dg/guality/guality.exp: Same. - * gfortran.dg/guality/guality.exp: Same. - -2018-07-13 H.J. Lu - Sunil K Pandey - - PR target/84413 - * gcc.target/i386/pr84413-1.c: New test. - * gcc.target/i386/pr84413-2.c: Likewise. - * gcc.target/i386/pr84413-3.c: Likewise. - -2018-07-13 Bill Schmidt - Steve Munroe - - * gcc.target/powerpc/sse2-pand-1.c: New file. - * gcc.target/powerpc/sse2-pandn-1.c: Likewise. - * gcc.target/powerpc/sse2-por-1.c: Likewise. - * gcc.target/powerpc/sse2-pxor-1.c: Likewise. - -2018-07-13 Nathan Sidwell - - PR c++/86374 - * g++.dg/pr86374.C: New. - -2018-07-13 Qing Zhao - - PR middle-end/78809 - * gcc.dg/strcmpopt_5.c: New test. - * gcc.dg/strcmpopt_6.c: New test. - -2018-07-13 Richard Biener - - PR middle-end/85974 - * gcc.c-torture/compile/930326-1.c: Adjust to cover widening. - -2018-07-13 Tom de Vries - - * gcc.dg/guality/clztest.c: Add -fno-ipa-icf in dg-options. - * gcc.dg/guality/ctztest.c: Same. - * gcc.dg/guality/sra-1.c: Same. - -2018-07-13 Tom de Vries - - * gcc.dg/vla-1.c: Update. - -2018-07-13 Tom de Vries - - * gcc.src/maintainers.exp: New file. - -2018-07-13 Kugan Vivekanandarajah - - PR middle-end/86489 - * gcc.dg/pr86489.c: New test. - -2018-07-12 Martin Sebor - - PR testsuite/86510 - g++.dg/warn/pr86453.C: Adjust. - -2018-07-12 Jim Wilson - - * gnat.dg/warn5.adb: Expect warning for riscv*-*-*. - -2018-07-12 Kito Cheng - - * gcc.target/riscv/interrupt-conflict-mode.c: New. - -2018-07-12 Jakub Jelinek - - * c-c++-common/gomp/declare-target-3.c: New test. - * g++.dg/gomp/declare-target-2.C: New test. - -2018-07-12 Martin Sebor - - PR c/86453 - * c-c++-common/Wattributes.c: Adjust. - * gcc.dg/Wattributes-10.c: New test. - * g++.dg/Wattributes-3.C: Adjust. - * gcc.dg/Wattributes-6.c: Adjust. - * gcc.dg/pr18079.c: Adjust. - * gcc.dg/torture/pr42363.c: Adjust. - -2018-07-12 Julia Koval - - * gcc.target/i386/avx512vl-vpclmulqdq-2.c: Remove 128bit - version. - -2018-07-12 Richard Sandiford - - * gcc.dg/vect/vect-cond-arith-6.c: New test. - * gcc.target/aarch64/sve/cond_arith_4.c: Likewise. - * gcc.target/aarch64/sve/cond_arith_4_run.c: Likewise. - * gcc.target/aarch64/sve/cond_arith_5.c: Likewise. - * gcc.target/aarch64/sve/cond_arith_5_run.c: Likewise. - * gcc.target/aarch64/sve/slp_14.c: Likewise. - * gcc.target/aarch64/sve/slp_14_run.c: Likewise. - -2018-07-12 Richard Sandiford - - * gcc.dg/vect/vect-cond-arith-4.c: New test. - * gcc.dg/vect/vect-cond-arith-5.c: Likewise. - * gcc.target/aarch64/sve/cond_arith_1.c: Likewise. - * gcc.target/aarch64/sve/cond_arith_1_run.c: Likewise. - * gcc.target/aarch64/sve/cond_arith_2.c: Likewise. - * gcc.target/aarch64/sve/cond_arith_2_run.c: Likewise. - * gcc.target/aarch64/sve/cond_arith_3.c: Likewise. - * gcc.target/aarch64/sve/cond_arith_3_run.c: Likewise. - -2018-07-12 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.dg/vect/vect-fma-2.c: New test. - * gcc.target/aarch64/sve/reduc_4.c: Likewise. - * gcc.target/aarch64/sve/reduc_6.c: Likewise. - * gcc.target/aarch64/sve/reduc_7.c: Likewise. - -2018-07-12 Richard Sandiford - - * gcc.dg/vect/vect-cond-arith-3.c: New test. - * gcc.target/aarch64/sve/vcond_13.c: Likewise. - * gcc.target/aarch64/sve/vcond_13_run.c: Likewise. - * gcc.target/aarch64/sve/vcond_14.c: Likewise. - * gcc.target/aarch64/sve/vcond_14_run.c: Likewise. - * gcc.target/aarch64/sve/vcond_15.c: Likewise. - * gcc.target/aarch64/sve/vcond_15_run.c: Likewise. - * gcc.target/aarch64/sve/vcond_16.c: Likewise. - * gcc.target/aarch64/sve/vcond_16_run.c: Likewise. - -2018-07-12 Richard Sandiford - - * gcc.dg/vect/vect-cond-arith-2.c: New test. - * gcc.target/aarch64/sve/loop_add_6.c: Likewise. - -2018-07-12 Richard Biener - - PR target/84829 - * gcc.target/i386/pr84829.c: New testcase. - -2018-07-12 Jakub Jelinek - - * gcc.dg/torture/20180712-1.c: New test. - - PR tree-optimization/86492 - * gcc.c-torture/execute/pr86492.c: New test. - -2018-07-12 Richard Biener - - PR c/86453 - * g++.dg/warn/pr86453.C: New testcase. - -2018-07-12 Richard Biener - - PR middle-end/86479 - * gcc.dg/graphite/pr86479.c: New testcase. - -2018-07-11 Jakub Jelinek - - * gcc.target/i386/avx512bw-vpcmpb-2.c (CMP): Use SIZE macro instead - of hardcoding size. Cast (rel) to MASK_TYPE. - * gcc.target/i386/avx512bw-vpcmpub-2.c (CMP): Likewise. - * gcc.target/i386/avx512f-vinserti32x4-3.c: New test. - * gcc.target/i386/avx512f-vinsertf32x4-3.c: New test. - * gcc.target/i386/avx512vl-vpcmpnequb-2.c: New test. - * gcc.target/i386/avx512vl-vpcmpgeub-2.c: New test. - * gcc.target/i386/avx512vl-vpcmpleb-2.c: New test. - * gcc.target/i386/avx512vl-vpcmpgeb-2.c: New test. - * gcc.target/i386/avx512vl-vpcmpltb-2.c: New test. - * gcc.target/i386/avx512vl-vpcmpltub-2.c: New test. - * gcc.target/i386/avx512vl-vpcmpleub-2.c: New test. - * gcc.target/i386/avx512vl-vpcmpneqb-2.c: New test. - * gcc.target/i386/avx512vl-vpcmpnequw-2.c: New test. - * gcc.target/i386/avx512vl-vpcmpgeuw-2.c: New test. - * gcc.target/i386/avx512vl-vpcmplew-2.c: New test. - * gcc.target/i386/avx512vl-vpcmpgew-2.c: New test. - * gcc.target/i386/avx512vl-vpcmpltw-2.c: New test. - * gcc.target/i386/avx512vl-vpcmpltuw-2.c: New test. - * gcc.target/i386/avx512vl-vpcmpleuw-2.c: New test. - * gcc.target/i386/avx512vl-vpcmpneqw-2.c: New test. - -2018-07-11 Grazvydas Ignotas - - * gcc.target/i386/avx512bw-vpcmpb-2.c (SIZE): Define to - (AVX512F_LEN / 8) instead of (AVX512F_LEN / 16). - * gcc.target/i386/avx512bw-vpcmpub-2.c (SIZE): Likewise. - -2018-07-10 Mark Wielaard - - PR debug/86459 - * gcc.dg/pr86459.c: New test. - -2018-07-10 Martin Sebor - - PR testsuite/86461 - * gcc.c-torture/execute/builtins/strlen-3.c: Adjust. - -2018-07-10 Martin Liska - - PR testsuite/86445 - * gcc.dg/pr84100.c: Change it back to dg-bogus. - -2018-07-10 Jakub Jelinek - - PR sanitizer/86406 - * g++.dg/ubsan/pr86406.C: New test. - - PR fortran/86421 - * gfortran.dg/vect/pr86421.f90: New test. - -2018-07-09 Martin Sebor - - PR tree-optimization/86415 - * gcc.dg/strlenopt-53.c: New test. - -2018-07-09 Martin Sebor - - PR middle-end/77357 - * gcc.dg/strlenopt-49.c: New test. - * gcc.dg/strlenopt-50.c: New test. - * gcc.dg/strlenopt-51.c: New test. - * gcc.dg/strlenopt-52.c: New test. - * gcc.c-torture/execute/builtins/strlen-3.c: Adjust. - -2018-07-09 Jakub Jelinek - - PR c/86420 - * gcc.dg/nextafter-1.c (TEST): Adjust the tests that expect denormals - to be returned and when first argument is not 0, so that they don't do - anything for NEED_EXC or NEED_ERRNO. - -2018-07-09 Tom de Vries - - * gcc.dg/guality/asm-1.c: Use relative line numbers where obvious. - * gcc.dg/guality/bswaptest.c: Same. - * gcc.dg/guality/clztest.c: Same. - * gcc.dg/guality/csttest.c: Same. - * gcc.dg/guality/ctztest.c: Same. - * gcc.dg/guality/drap.c: Same. - * gcc.dg/guality/nrv-1.c: Same. - * gcc.dg/guality/pr41353-1.c: Same. - * gcc.dg/guality/pr41353-2.c: Same. - * gcc.dg/guality/pr41404-1.c: Same. - * gcc.dg/guality/pr43051-1.c: Same. - * gcc.dg/guality/pr43077-1.c: Same. - * gcc.dg/guality/pr43177.c: Same. - * gcc.dg/guality/pr43329-1.c: Same. - * gcc.dg/guality/pr43479.c: Same. - * gcc.dg/guality/pr43593.c: Same. - * gcc.dg/guality/pr45003-1.c: Same. - * gcc.dg/guality/pr45003-2.c: Same. - * gcc.dg/guality/pr45003-3.c: Same. - * gcc.dg/guality/pr48437.c: Same. - * gcc.dg/guality/pr48466.c: Same. - * gcc.dg/guality/pr49888.c: Same. - * gcc.dg/guality/pr54200.c: Same. - * gcc.dg/guality/pr54519-1.c: Same. - * gcc.dg/guality/pr54519-2.c: Same. - * gcc.dg/guality/pr54519-3.c: Same. - * gcc.dg/guality/pr54519-4.c: Same. - * gcc.dg/guality/pr54519-5.c: Same. - * gcc.dg/guality/pr54519-6.c: Same. - * gcc.dg/guality/pr54551.c: Same. - * gcc.dg/guality/pr54693-2.c: Same. - * gcc.dg/guality/pr54693.c: Same. - * gcc.dg/guality/pr54796.c: Same. - * gcc.dg/guality/pr54970.c: Same. - * gcc.dg/guality/pr67192.c: Same. - * gcc.dg/guality/pr69947.c: Same. - * gcc.dg/guality/pr78726.c: Same. - * gcc.dg/guality/rotatetest.c: Same. - * gcc.dg/guality/sra-1.c: Same. - * gcc.dg/guality/vla-2.c: Same. - -2018-07-09 Paolo Carlini - - * g++.dg/diagnostic/long-short.C: New. - * g++.dg/diagnostic/signed-unsigned.C: Likewise. - * g++.dg/diagnostic/virtual-friend.C: Likewise. - * g++.old-deja/g++.brendan/crash11.C: Adjust. - -2018-07-09 Tom de Vries - - * gcc.dg/vla-1.c: New test. - -2018-07-07 Tom de Vries - - * gcc.misc-tests/options.exp (check_for_all_options): Clean up dump - files. - (get_dump_flags): New proc. - (toplevel): Test all dump flags. - -2018-07-07 Eric Botcazou - - * gnat.dg/stack_usage6.adb: New test. - * gnat.dg/stack_usage6_pkg.ads: New helper. - -2018-07-07 Eric Botcazou - - * gnat.dg/pure_function3a.adb: New test. - * gnat.dg/pure_function3b.adb: Likewise. - * gnat.dg/pure_function3c.adb: Likewise. - * gnat.dg/pure_function3_pkg.ads: New helper. - -2018-07-07 Jakub Jelinek - - PR target/84711 - * gcc.dg/vect/pr84711.c: Remove unnecessary sse - dg-require-effective-target. Add -msse not just on i386-*, but - on all i?86-* and x86_64-*. - -2018-07-06 Kugan Vivekanandarajah - - * gcc.dg/tree-ssa/phi-opt-16.c: New test. - * gcc.dg/tree-ssa/phi-opt-17.c: New test. - * gcc.dg/tree-ssa/phi-opt-18.c: New test. - * gcc.dg/tree-ssa/phi-opt-19.c: New test. - * gcc.dg/tree-ssa/popcount3.c: New test. - -2018-07-06 Kugan Vivekanandarajah - - * gcc.dg/tree-ssa/pr64183.c: Disable final value replacement - to preserve the test. - * gcc.target/i386/pr85073.c: Likewise. - -2018-07-06 Jakub Jelinek - - PR tree-optimization/86401 - * gcc.dg/tree-ssa/pr86401-1.c: New test. - * gcc.dg/tree-ssa/pr86401-2.c: New test. - * c-c++-common/rotate-9.c: New test. - -2018-07-06 Peter Bergner - - PR target/86324 - gcc.target/powerpc/pr86324-1.c: New test. - gcc.target/powerpc/pr86324-2.c: Likewise. - -2018-07-06 Tamar Christina - - PR target/84711 - * gcc.dg/vect/pr84711.c: Add -msse for i686 targets. - -2018-07-06 Tamar Christina - - * gcc.target/aarch64/struct_cpy.c: Remove ;. - -2018-07-05 Jeff Law - - * gcc.dg/tree-ssa/asm-2.c (REGISTER): Override for v850 too. - -2018-07-05 Paul Thomas - - PR fortran/86408 - * gfortran.dg/deferred_character_20.f90: New test. - -2018-07-05 Fritz Reese - - PR fortran/83183 - PR fortran/86325 - * gfortran.dg/init_flag_18.f90: New testcase. - * gfortran.dg/init_flag_19.f03: New testcase. - -2018-07-05 Carl Love - * gcc.target/altivec-1-runnable.c: New test file. - * gcc.target/altivec-2-runnable.c: New test file. - * gcc.target/vsx-7.c (main2): Change expected expected instruction - for tests. - -2018-07-05 Martin Sebor - - PR c++/86400 - * gcc.dg/strlenopt-47.c: New test. - * gcc.dg/strlenopt-48.c: New test. - -2018-07-05 Tamar Christina - - PR target/84711 - * gcc.target/arm/big-endian-subreg.c: New. - -2018-07-05 Tamar Christina - - PR target/84711 - * gcc.dg/vect/pr84711.c: New. - -2018-07-05 Tamar Christina - - * gcc.target/aarch64/struct_cpy.c: New. - -2018-07-05 Christophe Lyon - - * c-c++-common/unroll-1.c: Remove 'note:' in matching string. - * c-c++-common/unroll-2.c: Likewise. - * g++.dg/cdce3.C: Likewise. - * g++.dg/ext/unroll-1.C: Likewise. - * g++.dg/ext/unroll-2.C: Likewise. - * g++.dg/ext/unroll-3.C: Likewise. - * gcc.dg/cdce1.c: Likewise. - * gcc.dg/cdce2.c: Likewise. - * gcc.dg/gomp/pr68128-1.c: Likewise. - * gcc.dg/vect/pr46032.c: Likewise. - * gcc.dg/vect/vect-cond-10.c: Likewise. - * gcc.dg/vect/vect-cond-8.c: Likewise. - * gcc.dg/vect/vect-cond-9.c: Likewise. - * gcc.dg/vect/vect-mask-load-1.c: Likewise. - * gcc.dg/vect/vect-mask-loadstore-1.c: Likewise. - * gcc.target/i386/avx-cvt-2.c: Likewise. - * gcc.target/i386/avx-cvt-3.c: Likewise. - * gcc.target/i386/avx2-cvt-2.c: Likewise. - * gcc.target/i386/avx2-gather-2.c: Likewise. - * gcc.target/i386/avx2-gather-6.c: Likewise. - * gcc.target/i386/avx512f-gather-2.c: Likewise. - * gcc.target/i386/sse2-cvt-2.c: Likewise. - * gfortran.dg/directive_unroll_1.f90: Likewise. - * gfortran.dg/directive_unroll_2.f90: Likewise. - * gnat.dg/unroll2.adb: Likewise. - * gnat.dg/unroll3.adb: Likewise. - -2018-07-05 Tom de Vries - - * lib/gcc-dg.exp (dg-final): Simplify tcl code. - -2018-07-04 Martin Sebor - - PR tree-optimization/86274 - * gcc.dg/tree-ssa/builtin-sprintf-9.c: Fix typo. - -2018-07-04 Jerry DeLisle - - PR fortran/82009 - * gfortran.dg/block_16.f08. New test. - -2018-07-04 Aldy Hernandez - - * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Adjust test because aarch64 - has a slightly different IL that provides more threading - opportunities. - -2018-07-04 Martin Liska - - PR middle-end/66240 - PR target/45996 - PR c/84100 - * gcc.dg/pr84100.c (foo): - * gcc.target/i386/falign-functions-2.c: New test. - * gcc.target/i386/falign-functions.c: New test. - -2018-07-04 Martin Liska - - * gcc.dg/pr47793.c: Remove. - -2018-07-04 Richard Sandiford - - * gcc.dg/vect/bb-slp-over-widen-1.c: Fix name of dump file for - final scan test. - * gcc.dg/vect/bb-slp-over-widen-2.c: Likewise. - -2018-07-03 H.J. Lu - - PR target/85620 - * gcc.target/i386/pr85620-1.c: New test. - * gcc.target/i386/pr85620-2.c: Likewise. - * gcc.target/i386/pr85620-3.c: Likewise. - * gcc.target/i386/pr85620-4.c: Likewise. - -2018-07-03 Martin Sebor - - PR tree-optimization/86274 - * gcc.dg/tree-ssa/builtin-sprintf-9.c: New test. - * gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Adjust. - * gcc.dg/tree-ssa/builtin-sprintf-warn-10.c: Same. - * gcc.dg/tree-ssa/builtin-sprintf-warn-15.c: Same. - * gcc.dg/tree-ssa/builtin-sprintf-warn-7.c: Same. - * gcc.dg/tree-ssa/builtin-sprintf.c: Same. - * gcc.dg/tree-ssa/pr83198.c: Same. - -2018-07-03 Paolo Carlini - - * g++.dg/other/locations1.C: New. - * g++.dg/tls/locations1.C: Likewise. - * g++.dg/diagnostic/virtual-constexpr.C: Likewise. - * g++.dg/diagnostic/virtual-static.C: Likewise. - * g++.dg/concepts/fn-concept2.C: Test the locations too. - * g++.dg/cpp0x/constexpr-virtual5.C: Likewise. - * g++.dg/cpp0x/pr51463.C: Likewise. - * g++.dg/other/typedef1.C: Likewise. - * g++.dg/parse/dtor13.C: Likewise. - * g++.dg/template/error44.C: Likewise. - * g++.dg/template/typedef4.C: Likewise. - * g++.dg/template/typedef5.C: Likewise. - * g++.dg/tls/diag-2.C: Likewise. - * g++.old-deja/g++.brendan/crash11.C: Likewise. - -2018-07-03 Marek Polacek - - PR c++/86201 - * g++.dg/diagnostic/pr86201.C: New test. - -2018-07-03 Uros Bizjak - - PR target/85694 - * gcc.target/i386/pr85694.c: New test. - -2018-07-03 Richard Sandiford - - PR tree-optimization/85694 - * lib/target-supports.exp (check_effective_target_vect_avg_qi): - Return true for AArch64 without SVE. - * gcc.target/aarch64/vect_hadd_1.h: New file. - * gcc.target/aarch64/vect_shadd_1.c: New test. - * gcc.target/aarch64/vect_srhadd_1.c: Likewise. - * gcc.target/aarch64/vect_uhadd_1.c: Likewise. - * gcc.target/aarch64/vect_urhadd_1.c: Likewise. - -2018-07-03 Marek Polacek - - PR middle-end/86202 - * gcc.dg/Wint-conversion-2.c: New test. - - PR c++/84306 - * g++.dg/overload/conv-op3.C: New test. - -2018-07-03 Richard Biener - - PR ipa/86389 - * gcc.dg/torture/pr86389.c: New testcase. - -2018-07-03 Richard Sandiford - - PR tree-optimization/85694 - * lib/target-supports.exp (check_effective_target_vect_avg_qi): New - proc. - * gcc.dg/vect/vect-avg-1.c: New test. - * gcc.dg/vect/vect-avg-2.c: Likewise. - * gcc.dg/vect/vect-avg-3.c: Likewise. - * gcc.dg/vect/vect-avg-4.c: Likewise. - * gcc.dg/vect/vect-avg-5.c: Likewise. - * gcc.dg/vect/vect-avg-6.c: Likewise. - * gcc.dg/vect/vect-avg-7.c: Likewise. - * gcc.dg/vect/vect-avg-8.c: Likewise. - * gcc.dg/vect/vect-avg-9.c: Likewise. - * gcc.dg/vect/vect-avg-10.c: Likewise. - * gcc.dg/vect/vect-avg-11.c: Likewise. - * gcc.dg/vect/vect-avg-12.c: Likewise. - * gcc.dg/vect/vect-avg-13.c: Likewise. - * gcc.dg/vect/vect-avg-14.c: Likewise. - -2018-07-03 Richard Sandiford - - * gcc.dg/vect/vect-over-widen-5.c: Test that the extensions - get split into two for use by the over-widening pattern. - * gcc.dg/vect/vect-over-widen-6.c: Likewise. - * gcc.dg/vect/vect-over-widen-7.c: Likewise. - * gcc.dg/vect/vect-over-widen-8.c: Likewise. - * gcc.dg/vect/vect-over-widen-9.c: Likewise. - * gcc.dg/vect/vect-over-widen-10.c: Likewise. - * gcc.dg/vect/vect-over-widen-11.c: Likewise. - * gcc.dg/vect/vect-over-widen-12.c: Likewise. - * gcc.dg/vect/vect-over-widen-13.c: Likewise. - * gcc.dg/vect/vect-over-widen-14.c: Likewise. - * gcc.dg/vect/vect-over-widen-15.c: Likewise. - * gcc.dg/vect/vect-over-widen-16.c: Likewise. - * gcc.dg/vect/vect-over-widen-22.c: New test. - -2018-07-03 Richard Sandiford - - * gcc.dg/vect/vect-widen-mult-u8-u32.c: Check specifically for a - widen_mult pattern. - * gcc.dg/vect/vect-over-widen-1.c: Update the scan tests for new - over-widening messages. - * gcc.dg/vect/vect-over-widen-1-big-array.c: Likewise. - * gcc.dg/vect/vect-over-widen-2.c: Likewise. - * gcc.dg/vect/vect-over-widen-2-big-array.c: Likewise. - * gcc.dg/vect/vect-over-widen-3.c: Likewise. - * gcc.dg/vect/vect-over-widen-3-big-array.c: Likewise. - * gcc.dg/vect/vect-over-widen-4.c: Likewise. - * gcc.dg/vect/vect-over-widen-4-big-array.c: Likewise. - * gcc.dg/vect/bb-slp-over-widen-1.c: New test. - * gcc.dg/vect/bb-slp-over-widen-2.c: Likewise. - * gcc.dg/vect/vect-over-widen-5.c: Likewise. - * gcc.dg/vect/vect-over-widen-6.c: Likewise. - * gcc.dg/vect/vect-over-widen-7.c: Likewise. - * gcc.dg/vect/vect-over-widen-8.c: Likewise. - * gcc.dg/vect/vect-over-widen-9.c: Likewise. - * gcc.dg/vect/vect-over-widen-10.c: Likewise. - * gcc.dg/vect/vect-over-widen-11.c: Likewise. - * gcc.dg/vect/vect-over-widen-12.c: Likewise. - * gcc.dg/vect/vect-over-widen-13.c: Likewise. - * gcc.dg/vect/vect-over-widen-14.c: Likewise. - * gcc.dg/vect/vect-over-widen-15.c: Likewise. - * gcc.dg/vect/vect-over-widen-16.c: Likewise. - * gcc.dg/vect/vect-over-widen-17.c: Likewise. - * gcc.dg/vect/vect-over-widen-18.c: Likewise. - * gcc.dg/vect/vect-over-widen-19.c: Likewise. - * gcc.dg/vect/vect-over-widen-20.c: Likewise. - * gcc.dg/vect/vect-over-widen-21.c: Likewise. - -2018-07-03 Richard Sandiford - - * gcc.dg/vect/vect-mixed-size-cond-1.c: New test. - -2018-07-02 Jim Wilson - - * gcc.target/riscv/interrupt-debug.c: New. - -2018-07-02 Paolo Carlini - - * g++.dg/diagnostic/thread-thread_local.C: New. - -2018-07-02 Martin Liska - - PR testsuite/86366 - * gcc.dg/profile-dir-1.c: Fix scanned pattern. - * gcc.dg/profile-dir-2.c: Likewise. - * gcc.dg/profile-dir-3.c: Likewise. - -2018-07-02 Christophe Lyon - - * gcc.target/arm/arm-soft-strd-even.c: Skip if -mfloat-abi is - overriden. - -2018-07-02 Richard Biener - - PR tree-optimization/86363 - * gcc.dg/torture/pr86363.c: New testcase. - -2018-07-02 Martin Liska - - * gcc.dg/completion-1.c: New test. - * gcc.dg/completion-2.c: New test. - * gcc.dg/completion-3.c: New test. - -2018-07-02 Paul Thomas - - PR fortran/82969 - PR fortran/86242 - * gfortran.dg/proc_ptr_50.f90: New test. - -2018-07-02 Paul Thomas - - PR fortran/45305 - * gfortran.dg/scalarize_parameter_array_2.f90: New test. - -2018-07-02 Martin Liska - - PR ipa/86279 - * gcc.dg/ipa/pr86279.c: New test. - -2018-07-02 Martin Liska - - PR ipa/86323 - * g++.dg/ipa/pr86323.C: New test. - -2018-07-01 Tom de Vries - - revert: - 2018-07-01 Tom de Vries - - * gcc.dg/guality/prevent-optimization.h (VOLATILE): Define. - * gcc.dg/guality/vla-1.c (f1): Mark local vla a as VOLATILE. - -2018-07-01 Tom de Vries - - * lib/gcc-gdb-test.exp (gdb-test): Handle '@' prefix in line number - argument. - * gcc.dg/guality/const-volatile.c: Replace gdb-test line nrs 50 and 58 - with @main. - -2018-07-01 Tom de Vries - - * gcc.dg/guality/prevent-optimization.h (VOLATILE): Define. - * gcc.dg/guality/vla-1.c (f1): Mark local vla a as VOLATILE. - -2018-07-01 Tom de Vries - - * lib/gcc-dg.exp (get-absolute-line): Handle '.'. - * gcc.dg/guality/vla-1.c: Use relative line numbers. - -2018-07-01 Tom de Vries - - * gcc.dg-selftests/dg-final.exp (verify_call_1): Factor out of ... - (verify_call): ... here. Move to toplevel. - (verify_call_np, dg_final_directive_check_utils): New proc. - (toplevel): Call dg_final_directive_check_utils. - * lib/gcc-dg.exp (get-absolute-line): Fix typo in variable reference. - -2018-06-30 Jim Wilson - - * gcc.target/riscv/shift-shift-1.c: New. - * gcc.target/riscv/shift-shift-2.c: New. - * gcc.target/riscv/shift-shift-3.c: New. - -2018-06-30 Richard Sandiford - - * gcc.dg/vect/vect-widen-mult-extern-1.c: New test. - -2018-06-30 Richard Sandiford - - * gcc.dg/vect/vect-widen-mult-sum.c: Remove xfail. - * gcc.dg/vect/no-scevccp-outer-6.c: Don't match widened multiplications - by 4 in the computation of a[i]. - * gcc.dg/vect/vect-mult-const-pattern-1.c: Test specifically for the - main multiplication constant. - * gcc.dg/vect/vect-mult-const-pattern-2.c: Likewise. - * gcc.dg/vect/vect-widen-mult-const-s16.c: Likewise. - * gcc.dg/vect/vect-widen-mult-const-u16.c: Likewise. Expect the - pattern to cast the result to int. - * gcc.dg/vect/vect-reduc-dot-1.c: New test. - * gcc.dg/vect/vect-reduc-dot-2.c: Likewise. - * gcc.dg/vect/vect-reduc-dot-3.c: Likewise. - * gcc.dg/vect/vect-reduc-dot-4.c: Likewise. - * gcc.dg/vect/vect-reduc-dot-5.c: Likewise. - * gcc.dg/vect/vect-reduc-dot-6.c: Likewise. - * gcc.dg/vect/vect-reduc-dot-7.c: Likewise. - * gcc.dg/vect/vect-reduc-dot-8.c: Likewise. - * gcc.dg/vect/vect-reduc-sad-1.c: Likewise. - * gcc.dg/vect/vect-reduc-sad-2.c: Likewise. - * gcc.dg/vect/vect-reduc-sad-3.c: Likewise. - * gcc.dg/vect/vect-reduc-sad-4.c: Likewise. - * gcc.dg/vect/vect-reduc-sad-5.c: Likewise. - * gcc.dg/vect/vect-reduc-sad-6.c: Likewise. - * gcc.dg/vect/vect-reduc-sad-7.c: Likewise. - * gcc.dg/vect/vect-reduc-sad-8.c: Likewise. - * gcc.dg/vect/vect-widen-mult-1.c: Likewise. - * gcc.dg/vect/vect-widen-mult-2.c: Likewise. - * gcc.dg/vect/vect-widen-mult-3.c: Likewise. - * gcc.dg/vect/vect-widen-mult-4.c: Likewise. - -2018-06-30 Richard Sandiford - - * gcc.dg/vect/vect-reduc-dot-u16b.c: Remove xfail and update the - test for vectorization along the lines described in the comment. - -2018-06-30 Tom de Vries - - * gcc.dg/guality/guality.exp (guality_transform_options): New proc. - (toplevel): Apply guality_transform_options on DG_TORTURE_OPTIONS and - LTO_TORTURE_OPTIONS. - * gcc.dg/guality/prevent-optimization.h: New file. - * gcc.dg/guality/pr45882.c: Include prevent-optimization.h. - (a): Replace __attribute__((used)) with ATTRIBUTE_USED. - -2018-06-30 Tom de Vries - - * gcc.dg/guality/pr45882.c (foo): Use relative line numbers. - * lib/gcc-dg.exp (dg-final): New proc. - * lib/gcc-gdb-test.exp (gdb-test): Add and handle additional line number - argument. - -2018-06-29 Martin Sebor - - * gcc.dg/strlenopt-46.c: Define strnlen for targets like Solaris 10 - that don't define the function. - -2018-06-29 Marek Polacek - - PR c++/86184 - * g++.dg/ext/cond3.C: New test. - -2018-06-29 Kyrylo Tkachov - - * gcc.target/arm/arm-soft-strd-even.c: New test. - -2018-06-29 Tom de Vries - - * gcc.dg/guality/pr45882.c (foo): Add line number var for breakpoint - line, and use it. - * lib/gcc-dg.exp (get-absolute-line): Factor out of ... - (process-message): ... here. - * lib/gcc-gdb-test.exp (gdb-test): Use get-absolute-line. - -2018-06-29 Martin Liska - - PR tree-optimization/86263 - * gcc.dg/tree-ssa/pr86263.c: New test. - -2018-06-28 Carl Love - - * gcc.target/p9-extract-1.c: Add test case. - * gcc.target/builtins-3-p9-runnable.c: Add test case to match - name in ABI. - -2018-06-28 Uros Bizjak - - PR target/86348 - * gcc.target/i386/pr86348.c: New test. - -2018-06-28 Wilco Dijkstra - - * gcc.target/aarch64/f16_mov_immediate_3.c: Fix testcase. - -2018-06-28 Fritz Reese - - PR fortran/82865 - * gfortran.dg/dec_type_print_2.f03: New testcase. - -2018-06-28 David Pagan - - PR c/55976 - * gcc.dg/noncompile/pr55976-1.c: Add dg-prune-output for extraneous - message causing unexpected test FAIL. - -2018-06-28 Martin Liska - - * gcc.dg/tree-ssa/switch-1.c: New test. - -2018-06-28 Eric Botcazou - - * gnat.dg/debug15.adb: New test. - -2018-06-27 David Malcolm - - PR c++/86329 - * g++.dg/lookup/pr86329.C: New test. - -2018-06-27 Carl Love - - * gcc.target/vsx-vector-abss.c: New file to test vec_abss. - -2018-06-27 Tamar Christina - - PR target/85769 - * gcc.target/aarch64/f16_mov_immediate_3.c: New. - -2018-06-26 Kelvin Nilsen - - * gcc.target/powerpc/builtins-1.c: Correct a comment. - -2018-06-26 Will Schmidt - - * gcc.target/powerpc/fold-vec-neg-int.p8.c: Specify powerpc_p8vector_ok - requirement for this test. - * gcc.target/powerpc/fold-vec-neg-int.c: Specify powerpc_p8vector_ok - requirement, and -mpower8-vector compile option. - -2018-06-26 Jakub Jelinek - - PR target/86314 - * gcc.dg/pr86314.c: New test. - - PR debug/86257 - * gcc.target/i386/pr86257.c: Add -mtls-dialect=gnu to dg-options. - -2018-06-26 Rainer Orth - - * gcc.target/i386/pr86257.c: Require 64-bit. - -2018-06-26 Rainer Orth - - * g++.dg/pr86082.C: Require IBM1047 support. - -2018-06-26 Richard Biener - - PR middle-end/86271 - * gcc.dg/pr86271.c: New testcase. - -2018-06-26 Alexandre Oliva - - PR debug/86064 - * gcc.dg/pr86064.c: New. - -2018-06-25 Jeff Law - - * lib/target-supports.exp - (check_effective_target_logical_op_short_circuit): Add v850. - -2018-06-25 Martin Sebor - - PR tree-optimization/86204 - * gcc.dg/strlenopt-46.c: New test. - -2018-06-25 Martin Sebor - - PR tree-optimization/85700 - * gcc.dg/Wstringop-truncation-4.c: New test. - -2018-06-25 Fritz Reese - - PR fortran/82972 - PR fortran/83088 - PR fortran/85851 - * gfortran.dg/init_flag_17.f90: New testcase. - -2018-06-25 Carl Love - - * gcc.target/powerpc/p9-extract-1.c: Make second argument of - vec_extract a signed int. Add vec_extract tests for bool char - and bool int. - * gcc.target/powerpc/p9-extract-4.c: New test file for long long - vec_extract tests. - -2018-06-25 Tom de Vries - - * lib/gcc-gdb-test.exp (report_gdb): Handle gdb -v failure. - -2018-06-25 Jakub Jelinek - - PR target/84786 - * gcc.target/i386/avx512f-pr84786-3.c: New test. - -2018-06-25 Eric Botcazou - - * gnat.dg/sso9.adb: New testcase. - * gnat.dg/sso9_pkg.ads: Likewise. - -2018-06-25 Tom de Vries - - PR debug/86257 - * gcc.target/i386/pr86257.c: New test. - -2018-06-25 Andreas Krebbel - - PR C++/86082 - * g++.dg/pr86082.C: New test. - -2018-06-24 Tom de Vries - - * g++.dg/guality/guality.exp: Don't use which on gdb arg to report_gdb. - * gcc.dg/guality/guality.exp: Same. - * gfortran.dg/guality/guality.exp: Same. - * lib/gcc-gdb-test.exp: Do early out if which gdb fails. - -2018-06-23 Paolo Carlini - - * g++.dg/concepts/locations1.C: New. - * g++.dg/cpp0x/locations1.C: Likewise. - * g++.dg/cpp1z/inline-var2.C: Test locations too. - * g++.dg/cpp1z/inline-var3.C: Likewise. - -2018-06-22 Paul Thomas - - PR fortran/86281 - * gfortran.dg/assumed_charlen_function_7.f90: Add -std=legacy. - -2018-06-22 Kelvin Nilsen - - * gcc.target/powerpc/builtins-3-p8.c (test_pack_float): Remove - this test. - * gcc.target/powerpc/builtins-9.c: New test. - * gcc.target/powerpc/fold-vec-pack-double.c: Modify dg directives - to expect different code generation on big-endian vs. - little-endian targets. - -2018-06-22 Tom de Vries - - * g++.dg/guality/guality.exp (guality_gdb_name): Default to - $rootme/../gdb/gdb, if available. - * gcc.dg/guality/guality.exp (guality_gdb_name): Same. - * gfortran.dg/guality/guality.exp (guality_gdb_name): Same. - -2018-06-22 Tom de Vries - - * lib/gcc-gdb-test.exp (report_gdb): New proc. - * g++.dg/guality/guality.exp: Use report_gdb. - * gcc.dg/guality/guality.exp: Same. - * gfortran.dg/guality/guality.exp: Same. - -2018-06-22 Jakub Jelinek - - PR c++/85662 - * g++.dg/ext/offsetof3.C: New test. - -2018-06-22 Carl Love - - * gcc.target/powerpc/altivec-7.c: Add qualifiers for counts on AIX - versus Linux. Change checks for xxlnor, xxland and xxlxor to also look - for the vnor, vand and vxor instructions. - * gcc.target/powerpc/builtins-1.c: Move vec_or tests to a new file. - Remove counts for xxlor. Fix match on bl __divdi3 and bl __udivdi3. - * gcc.target/powerpc/builtins-4.c: Fix matching for vsl instructions. - * gcc.target/powerpc/builtins-5.c: New test file for vec_or test cases. - * gcc.target/powerpc/vsx-vector-6.p7.c: Fix xxlnor BE expected count. - Add -dp to dg-options, update expected counts. - -2018-06-22 Paul Koning - - * gcc.c-torture/execute/builtins/lib/chk.c: Use smaller alignment - if pdp11. - * gcc.c-torture/compile/20010518-2.c: Skip if pdp11 -mint32. - * gcc.c-torture/compile/20040101-1.c: Ditto. - * gcc.c-torture/compile/20050622-1.c: Ditto. - * gcc.c-torture/compile/20080625-1.c: Ditto. - * gcc.c-torture/compile/20090107-1.c: Ditto. - * gcc.c-torture/compile/920501-12.c: Ditto. - * gcc.c-torture/compile/920501-4.c: Ditto. - * gcc.c-torture/compile/961203-1.c: Ditto. - * gcc.c-torture/compile/limits-externdecl.c: Ditto. - * gcc.c-torture/compile/pr25310.c: Ditto. - -2018-06-22 Cesar Philippidis - James Norris - Thomas Schwinge - Tom de Vries - - * c-c++-common/goacc/deviceptr-4.c: New file. - * c-c++-common/goacc/kernels-counter-var-redundant-load.c: - Likewise. - * c-c++-common/goacc/kernels-loop-data-2.c: Likewise. - * c-c++-common/goacc/kernels-loop-data-enter-exit-2.c: Likewise. - * c-c++-common/goacc/kernels-loop-data-enter-exit.c: Likewise. - * c-c++-common/goacc/kernels-loop-data-update.c: Likewise. - * c-c++-common/goacc/kernels-loop-data.c: Likewise. - * c-c++-common/goacc/kernels-parallel-loop-data-enter-exit.c: - Likewise. - * c-c++-common/goacc/parallel-reduction.c: Likewise. - * c-c++-common/goacc/private-reduction-1.c: Likewise. - * gfortran.dg/goacc/kernels-parallel-loop-data-enter-exit.f95: - Likewise. - * gfortran.dg/goacc/modules.f95: Likewise. - * gfortran.dg/goacc/routine-8.f90: Likewise. - * gfortran.dg/goacc/routine-level-of-parallelism-1.f90: Likewise. - -2018-06-21 Michael Meissner - - * gcc.target/powerpc/pack02.c: Use __ibm128 instead of long double - if the long double format is IEEE 128-bit for tests that are - explicitly testing IBM extended double support. Use the - appropriate pack and unpack built-in functions. Change calls from - __builtin_isinfl to __builtin_isinf since the later supports all - floating point types. - * gcc.target/powerpc/pr57150.c: Likewise. - * gcc.target/powerpc/pr60203.c: Likewise. - * gcc.target/powerpc/pr67808.c: Likewise. - * gcc.target/powerpc/pr70117.c: Likewise. - * gcc.target/powerpc/tfmode_off.c: Likewise. - -2018-06-21 Paul Thomas - - PR fortran/49630 - * gfortran.dg/assumed_charlen_function_7.f90: New test. - -2018-06-21 Paul Thomas - - PR fortran/83118 - * gfortran.dg/unlimited_polymorphic_30.f03: New test. - -2018-06-21 Tom de Vries - - * gcc.dg/guality/pr45882.c (a): Add used attribute. - -2018-06-21 Tom de Vries - - PR tree-optimization/85859 - * gcc.dg/pr85859.c: New test. - -2018-06-21 Richard Biener - - PR tree-optimization/86232 - * gcc.dg/torture/pr86232.c: New testcase. - -2018-06-21 Andre Vieira - - * gcc/gcc.target/aarch64/aes_xor_combine.c: New test. - -2018-06-21 Andre Vieira - - * gcc/gcc.target/aarch64/aes_2.c: New test. - -2018-06-20 Than McIntosh - - PR libgcc/86213 - * gcc.dg/split-8.c: New. - -2018-06-20 Kelvin Nilsen - - * gcc.target/powerpc/builtins-1.c: Adjust dg directives to scan - for vpkudus in place of vpksdus. - * gcc.target/powerpc/builtins-3-p8.c: Likewise. - -2018-06-20 Nathan Sidwell - - PR c++/85634 - * g++.dg/lookup/pr85634-2.C: New. - -2018-06-20 Paolo Carlini - - * g++.dg/template/friend65.C: New. - * g++.dg/cpp0x/main1.C: Likewise. - * g++.dg/other/main2.C: Likewise. - * g++.dg/other/main3.C: Likewise. - * g++.dg/template/friend42.C: Test location too. - * g++.dg/concepts/decl-diagnose.C: Likewise. - * g++.dg/warn/main-2.C: Update. - -2018-06-20 Chung-Lin Tang - Thomas Schwinge - Cesar Philippidis - - * c-c++-common/goacc/declare-1.c: Update test case to utilize OpenACC - 2.5 data clause semantics. - * c-c++-common/goacc/declare-2.c: Likewise. - * c-c++-common/goacc/default-4.c: Likewise. - * c-c++-common/goacc/finalize-1.c: New test. - * c-c++-common/goacc/kernels-alias-2.c: Update test case to utilize - OpenACC 2.5 data clause semantics. - * c-c++-common/goacc/kernels-alias.c: Likewise. - * c-c++-common/goacc/routine-5.c: Likewise. - * c-c++-common/goacc/update-if_present-1.c: New test. - * c-c++-common/goacc/update-if_present-2.c: New test. - * g++.dg/goacc/template.C: Update test case to utilize OpenACC - 2.5 data clause semantics. - * gfortran.dg/goacc/combined-directives.f90: Likewise. - * gfortran.dg/goacc/data-tree.f95: Likewise. - * gfortran.dg/goacc/declare-2.f95: Likewise. - * gfortran.dg/goacc/default-4.f: Likewise. - * gfortran.dg/goacc/enter-exit-data.f95: Likewise. - * gfortran.dg/goacc/finalize-1.f: New test. - * gfortran.dg/goacc/kernels-alias-2.f95: Update test case to utilize - OpenACC 2.5 data clause semantics. - * gfortran.dg/goacc/kernels-alias.f95: Likewise. - * gfortran.dg/goacc/kernels-tree.f95: Likewise. - * gfortran.dg/goacc/nested-function-1.f90: Likewise. - * gfortran.dg/goacc/parallel-tree.f95: Likewise. - * gfortran.dg/goacc/reduction-promotions.f90: Likewise. - * gfortran.dg/goacc/update-if_present-1.f90: New test. - * gfortran.dg/goacc/update-if_present-2.f90: New test. - -2018-06-20 Jakub Jelinek - - PR c++/86210 - * g++.dg/warn/Wnonnull4.C: New test. - -2018-06-20 Marek Polacek - - PR c++/86240 - * g++.dg/pr86240.C: New test. - -2018-06-20 Jakub Jelinek - - PR debug/86194 - * gcc.target/i386/pr86194.c: New test. - - PR tree-optimization/86231 - * gcc.dg/tree-ssa/vrp119.c: New test. - * gcc.c-torture/execute/pr86231.c: New test. - -2018-06-20 Tom de Vries - - PR tree-optimization/86097 - * gcc.dg/autopar/pr86097.c: New test. - -2018-06-20 Nathan Sidwell - - PR c++/85634 - * g++.dg/lookup/pr85634.C: New. - -2018-06-20 Kyrylo Tkachov - - * gcc.target/aarch64/ldp_stp_q.c: New test. - * gcc.target/aarch64/stp_vec_128_1.c: Likewise. - * gcc.target/aarch64/ldp_stp_q_disable.c: Likewise. - -2018-06-20 Martin Liska - - * gcc.dg/tree-ssa/vrp104.c: Grep just for GIMPLE IL. - -2018-06-19 Martin Sebor - - PR tree-optimization/48560 - * gcc.dg/Warray-bounds-28.c: New test. - -2018-06-19 Martin Sebor - - PR middle-end/85602 - * c-c++-common/attr-nonstring-8.c: Adjust text of expected warning - to also match C++. - -2018-06-19 Jan Hubicka - - * g++.dg/lto/pr84805_0.C: Update template. - * g++.dg/lto/pr84805_1.C: Update template. - -2018-06-19 Eric Botcazou - - * gnat.dg/aggr24.adb: New test. - * gnat.dg/aggr24_pkg.ad[sb]: New helper. - -2018-06-19 Richard Biener - - PR tree-optimization/86179 - * gcc.dg/pr86179.c: New testcase. - -2018-06-18 Martin Sebor - - PR middle-end/85602 - * gcc.dg/attr-nonstring-2.c: Adjust text of expected warning. - * c-c++-common/attr-nonstring-8.c: New test. - -2018-06-18 Martin Sebor - - PR tree-optimization/81384 - * gcc.c-torture/execute/builtins/lib/strnlen.c: New test. - * gcc.c-torture/execute/builtins/strnlen-lib.c: New test. - * gcc.c-torture/execute/builtins/strnlen.c: New test. - * gcc.dg/attr-nonstring-2.c: New test. - * gcc.dg/attr-nonstring-3.c: New test. - * gcc.dg/attr-nonstring-4.c: New test. - * gcc.dg/strlenopt-45.c: New test. - * gcc.dg/strlenopt.h (strnlen): Declare. - -2018-06-18 Wilco Dijkstra - - PR tree-optimization/86076 - * gcc.dg/pr86076.c: Add target pthread for bare-metal targets. - -2018-06-18 Wilco Dijkstra - - PR tree-optimization/64946 - * gcc.target/aarch64/vect-abs-compile.c: Remove xfail. - -2018-06-17 Eric Botcazou - - * gcc.dg/debug/dwarf2/pr37726.c: Move to... - * gcc.dg/guality/pr37726.c: ...here and turn into GDB test. - * gnat.dg/stack_usage5.adb: New test. - -2018-06-16 Kugan Vivekanandarajah - - PR middle-end/82479 - * gcc.dg/tree-ssa/popcount.c: New test. - * gcc.dg/tree-ssa/popcount2.c: New test. - -2018-06-16 Kugan Vivekanandarajah - - PR middle-end/64946 - * gcc.dg/absu.c: New test. - * gcc.dg/gimplefe-29.c: New test. - * gcc.target/aarch64/pr64946.c: New test. - -2018-06-15 Jakub Jelinek - - PR c/86093 - * c-c++-common/pr86093.c: New test. - - PR middle-end/85878 - * gfortran.fortran-torture/compile/pr85878.f90: New test. - - PR middle-end/86123 - * gcc.c-torture/compile/pr86123.c: New test. - -2018-06-15 Tom de Vries - - * gcc.dg-selftests/dg-final.exp: Force sequential execution. - -2018-06-15 Nick Clifton - - PR 84195 - * gcc.c-torture/compile/pr84195.c: New test. - -2018-06-15 Richard Biener - - PR middle-end/86159 - * g++.dg/pr86159.C: New testcase. - -2018-06-15 Richard Biener - - PR middle-end/86076 - * gcc.dg/pr86076.c: New testcase. - -2018-06-14 Marek Polacek - - PR c++/86063 - * g++.dg/cpp0x/gen-attrs-65.C: New test. - -2018-06-14 Jakub Jelinek - - PR target/86048 - * gcc.target/i386/pr86048.c: Require sse2 effective target. Add - -msse2 to dg-options. - - PR middle-end/86122 - * gcc.c-torture/compile/pr86122.c: New test. - - P0624R2 - Default constructible and assignable stateless lambdas - * g++.dg/cpp2a/lambda1.C: New test. - * g++.dg/cpp0x/lambda/lambda-ice2.C: Adjust expected diagnostics - for -std=c++2a. - -2018-06-14 Paolo Carlini - - * g++.dg/other/static3.C: New. - * g++.dg/other/static4.C: Likewise. - * g++.dg/warn/Wshadow-15.C: Likewise. - * g++.dg/cpp0x/gnu_fext-numeric-literals.C: Test locations too. - * g++.dg/cpp0x/std_fext-numeric-literals.C: Likewise. - * g++.dg/cpp0x/std_fno-ext-numeric-literals.C: Likewise. - * g++.dg/cpp0x/udlit-args-neg.C: Likewise. - * g++.dg/cpp0x/udlit-clink-neg.C: Likewise. - * g++.dg/cpp0x/udlit-extern-c.C: Likewise. - * g++.dg/cpp0x/udlit-member-neg.C: Likewise. - -2018-06-14 Jakub Jelinek - - PR target/85945 - * gcc.c-torture/compile/pr85945.c: New test. - -2018-06-14 Richard Biener - - PR ipa/86124 - * gcc.dg/pr86124.c: New testcase. - -2018-06-13 Martin Sebor - - PR tree-optimization/86114 - * gcc.dg/pr86114.c: New test. - -2018-06-13 Steven G. Kargl - - PR fortran/86110 - * gfortran.dg/pr86110.f90: New test. - -2018-06-13 Cesar Philippidis - - PR fortran/85703 - * gfortran.dg/goacc/pr85703.f90: New test. - * gfortran.dg/gomp/pr85703.f90: New test. - -2018-06-13 Cesar Philippidis - - PR fortran/85702 - * gfortran.dg/goacc/pr85702.f90: New test. - -2018-06-13 Eric Botcazou - - * gcc.target/i386/pr86048.c: New test. - -2018-06-12 Claudiu Zissulescu - - * gcc.target/arc/fma-1.c: New test. - -2018-06-12 Claudiu Zissulescu - - * gcc.target/arc/pr9001107555.c: New file. - -2018-06-12 Richard Sandiford - - * g++.dg/torture/aarch64-vect-init-1.C: New test. - -2018-06-12 Paolo Carlini - - * g++.dg/init/delete3.C: New. - * g++.dg/init/new49.C: Likewise. - * g++.dg/init/new25.C: Test locations too. - * g++.dg/template/new4.C: Likewise. - * g++.old-deja/g++.jason/operator.C: Likewise. - -2018-06-12 Marek Polacek - - Core issue 1331 - const mismatch with defaulted copy constructor - * g++.dg/cpp0x/defaulted15.C (struct F): Remove dg-error. - * g++.dg/cpp0x/defaulted52.C: New test. - * g++.dg/cpp0x/defaulted53.C: New test. - * g++.dg/cpp0x/defaulted54.C: New test. - * g++.dg/cpp0x/defaulted55.C: New test. - * g++.dg/cpp0x/defaulted56.C: New test. - * g++.dg/cpp0x/defaulted57.C: New test. - * g++.dg/cpp0x/defaulted58.C: New test. - * g++.dg/cpp0x/defaulted59.C: New test. - * g++.dg/cpp0x/defaulted60.C: New test. - -2018-06-12 David Malcolm - - PR other/69968 - * gcc.dg/spellcheck-transposition.c: New test. - -2018-06-12 Steven G. Kargl - - PR fortran/44491 - * gfortran.dg/pr44491.f90: New testcase - -2018-06-12 Martin Sebor - - PR tree-optimization/85259 - * gcc.dg/Wstringop-overflow-5.c: New test. - * gcc.dg/Wstringop-overflow-6.c: New test. - -2018-06-12 Martin Sebor - - PR c/85931 - * gcc.dg/Wstringop-truncation-3.c: New test. - -2018-06-12 Will Schmidt - - * gcc.target/powerpc/p8-vec-xl-xst-v2.c: New. - * gcc.target/powerpc/p8-vec-xl-xst.c: Disable gimple-folding. - * gcc.target/powerpc/swaps-p8-17.c: Same. - -2018-06-12 Will Schmidt - - * gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c: New. - * gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c: New. - * gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c: New. - * gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c: New. - * gcc.target/powerpc/fold-vec-store-vec_vsx_st-longlong.c: New. - * gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c: New. - -2018-06-12 Will Schmidt - - * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c: New. - * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c: New. - * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c: New. - * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c: New. - * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c: New. - * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c: New. - -2018-06-12 Will Schmidt - - * gcc.target/powerpc/fold-vec-store-vec_xst-char.c: New. - * gcc.target/powerpc/fold-vec-store-vec_xst-double.c: New. - * gcc.target/powerpc/fold-vec-store-vec_xst-float.c: New. - * gcc.target/powerpc/fold-vec-store-vec_xst-int.c: New. - * gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c: New. - * gcc.target/powerpc/fold-vec-store-vec_xst-short.c: New. - -2018-06-12 Will Schmidt - - * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c: New. - * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c: New. - * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c: New. - * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c: New. - * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c: New. - * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c: New. - -2018-06-12 Will Schmidt - - * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c: New. - * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-double.c: New. - * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-float.c: New. - * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c: New. - * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-longlong.c: New. - * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-short.c: New. - -2018-06-12 Will Schmidt - - * gcc.target/powerpc/fold-vec-load-vec_xl-char.c: New testcase. - * gcc.target/powerpc/fold-vec-load-vec_xl-double.c: New testcase. - * gcc.target/powerpc/fold-vec-load-vec_xl-float.c: New testcase. - * gcc.target/powerpc/fold-vec-load-vec_xl-int.c: New testcase. - * gcc.target/powerpc/fold-vec-load-vec_xl-longlong.c: New testcase. - * gcc.target/powerpc/fold-vec-load-vec_xl-short.c: New testcase. - -2018-06-12 Martin Liska - - * g++.dg/opt/mpx.C: New test. - * gcc.target/i386/mpx.c: New test. - -2018-06-12 Claudiu Zissulescu - - * gcc.target/arc/builtin_simdarc.c: Update test. - * gcc.target/arc/mulsi3_highpart-2.c: Likewise. - * gcc.target/arc/tumaddsidi4.c: Likewise. - -2018-06-12 Eric Botcazou - - * gnat.dg/opt72a.ad[sb]: New test. - * gnat.dg/opt72_pkg.ads: New helper. - -2018-06-12 Tom de Vries - - * gcc.dg-selftests/dg-final.exp: New file. - -2018-06-11 Paolo Carlini - - * g++.dg/lookup/new2.C: Test locations too. - * g++.dg/other/ellipsis1.C: Likewise. - * g++.dg/other/operator1.C: Likewise. - * g++.dg/other/operator2.C: Likewise. - * g++.dg/overload/operator2.C: Likewise. - * g++.dg/parse/defarg11.C: Likewise. - * g++.dg/parse/operator4.C: Likewise. - * g++.dg/template/error30.C: Likewise. - * g++.dg/template/explicit-args3.C: Likewise. - * g++.dg/warn/effc1.C: Likewise. - * g++.old-deja/g++.brendan/prepost2.C: Likewise. - * g++.old-deja/g++.brendan/prepost3.C: Likewise. - * g++.old-deja/g++.bugs/900215_01.C: Likewise. - * g++.old-deja/g++.jason/conversion5.C: Likewise. - * g++.old-deja/g++.jason/operator.C: Likewise. - -2018-06-11 Martin Sebor - - PR tree-optimization/86083 - * gcc.dg/strlenopt-44.c: New test. - -2018-06-11 Janus Weil - - PR fortran/45521 - * gfortran.dg/generic_32.f90: New test. - * gfortran.dg/generic_33.f90: New test. - -2018-06-11 Carl Love - * gcc.target/powerpc/altivec-7.c (main): Remove tests - vec_unpackh(vecubi[0]) and vec_unpackl(vecubi[0]) returning - long long bool. Remove duplicate dg-final for xxlxor. Update - dg-final instruction counts. - * gcc.target/powerpc/altivec-37.c (main): New file for - tests vec_unpackh and vec_unpackl returning long long bool and - long long int. - -2018-06-11 Martin Liska - - PR tree-optimization/86089 - * gcc.dg/tree-ssa/pr86089.c: New test. - -2018-06-11 Julia Koval - - * gcc.target/i386/avx512fvl-vaes-1.c: Remove 128bit versions from test. - * gcc.target/i386/vpclmulqdq.c: Ditto. - -2018-06-11 Olivier Hainque - - * gnat.dg/lang-dw2.adb: New test. - * gnat.dg/lang-dw3.adb: New test. - -2018-06-11 Hristian Kirtchev - - * gnat.dg/assertion_policy1.adb, gnat.dg/assertion_policy1_pkg.adb, - gnat.dg/assertion_policy1_pkg.ads: New testcase. - -2018-06-11 Ed Schonberg - - * gnat.dg/predicate1.adb: New testcase. - -2018-06-11 Yannick Moy - - * gnat.dg/spark1.adb, gnat.dg/spark1.ads: New testcase. - -2018-06-11 Hristian Kirtchev - - * gnat.dg/gnat_array_split1.adb, gnat.dg/gnat_array_split1.ads: New - testcase. - -2018-06-11 Javier Miranda - - * gnat.dg/prot4.adb: New testcase. - -2018-06-11 Yannick Moy - - * gnat.dg/part_of1-instantiation.adb, - gnat.dg/part_of1-instantiation.ads, - gnat.dg/part_of1-private_generic.adb, - gnat.dg/part_of1-private_generic.ads, gnat.dg/part_of1.ads: New - testcase. - -2018-06-11 Piotr Trojanek - - * gnat.dg/contract1.adb: New testcase. - -2018-06-11 Javier Miranda - - * gnat.dg/aggr23.adb, gnat.dg/aggr23_q.adb, gnat.dg/aggr23_tt.ads: New - testcase. - -2018-06-11 Ed Schonberg - - * gnat.dg/inline_always1.adb: New testcase. - -2018-06-11 Ed Schonberg - - * gnat.dg/nested_generic2.adb, gnat.dg/nested_generic2.ads, - gnat.dg/nested_generic2_g1.adb, gnat.dg/nested_generic2_g1.ads, - gnat.dg/nested_generic2_g2.ads: New testcase. - -2018-06-10 Paolo Carlini - - * g++.dg/template/friend64.C: New. - * g++.old-deja/g++.other/friend4.C: Test the location too. - * g++.old-deja/g++.pt/crash23.C: Likewise. - -2018-06-10 Thomas Koenig - - * gfortran.dg/inline_matmul_23.f90: New test. - -2018-06-10 Janus Weil - - PR fortran/85088 - * gfortran.dg/intent_decl_1.f90: New test case. - -2018-06-09 Steven G. Kargl - - * gfortran.dg/ieee/ieee_4.f90: xfail on i?86-*-freebsd* - * gfortran.dg/ieee/large_4.f90: Ditto. - * gfortran.dg/round_4.f90: Ditto. - -2018-06-09 Steven G. Kargl - - PR fortran/38351 - * gfortran.dg/pr38351.f90: New test. - * gfortran.dg/typebound_operator_4.f03: Adjust for new error message. - -2018-06-09 Steven G. Kargl - - PR fortran/85138 - PR fortran/85996 - PR fortran/86051 - * gfortran.dg/pr85138_1.f90: New test. - * gfortran.dg/pr85138_2.f90: Ditto. - * gfortran.dg/pr85996.f90: Ditto. - -2018-06-09 Steven G. Kargl - - PR fortran/78278 - * gfortran.dg/data_bounds_1.f90: Add -std=gnu option. - * gfortran.dg/data_char_1.f90: Ditto. - * gfortran.dg/pr78571.f90: Ditto. - * gfortran.dg/pr78278.f90: New test. - -2018-06-09 Steven G. Kargl - - PR fortran/63514 - * gfortran.dg/pr63514.f90: New test. - -2018-06-08 Thomas Koenig - - PR fortran/85631 - * gfortran.dg/bounds_check_20.f90: New test. - -2018-06-08 Carl Love - - * gcc.target/powerpc/p8vector-builtin-3.c: Add vec_pack test. Update - vpkudum counts. - * gcc.target/powerpc/p9-extract-3.c: Make second argument of - vec_extract a signed int. - * gcc.target/powerpc/vec-cmp.c: Add vec_cmple, vec_cmpge tests. Update, - vcmpgtsb, vcmpgtub, vcmpgtsh, vcmpgtuh, vcmpgtsw, vcmpgtsw, vcmpgtuw, - vcmpgtsd, vcmpgtud. - * gcc.target/powerpc/vsx-extract-4.c: Make second argument of - vec_extract a signed int. - * gcc.target/powerpc/vsx-extract-5.c: Make second argument of - vec_extract a signed int. - * gcc.target/powerpc/vsx-vector-7.c (foo): Add tests for vec_sel and - vec_xor builtins. Update xxsel, xxlxor counts. - -2018-06-08 Steven G. Kargl - - PR fortran/86059 - * gfortran.dg/associate_30.f90: Remove code tested ... - * gfortran.dg/pr67803.f90: Ditto. - * gfortran.dg/pr67805.f90: Ditto. - * gfortran.dg/pr86059.f90: ... here. New test. - -2018-06-08 Steven G. Kargl - - PR fortran/78571 - * gfortran.dg/pr78571.f90: New test. - -2018-06-08 Peter Bergner - - PR target/85755 - * gcc.target/powerpc/pr85755.c: New test. - -2018-06-08 Carl Love - - * gcc.target/powerpc/vsx-vector-6-be.p7.c: Rename this file to - vsx-vector-6.p7.c. - * gcc.target/powerpc/vsx-vector-6-le.p9.c: Rename this file to - vsx-vector-6.p9.c. - * gcc.target/powerpc/vsx-vector-6-be.p8.c: Move instruction counts - for BE system that are different then for an LE system from this file - into vsx-vector-6-le.c using be target qualifier. Remove this file. - * gcc.target/powerpc/vsx-vector-6-le.c: Add le qualifiers as needed for - the various instruction counts. Rename file to vsx-vector-6.p8.c. - -2018-06-08 Martin Liska - - * gcc.dg/ipa/ipa-icf-38.c: Scan optimized tree dump. - -2018-06-08 Martin Liska - - * g++.dg/dg.exp: Do not use mpx.exp. - * g++.dg/lto/lto.exp: Likewise. - * g++.dg/lto/pr69729_0.C: Remove. - * g++.dg/opt/pr71529.C: Remove. - * g++.dg/pr63995-1.C: Remove. - * g++.dg/pr68270.C: Remove. - * g++.dg/pr71624.C: Remove. - * g++.dg/pr71633.C: Remove. - * g++.dg/pr79761.C: Remove. - * g++.dg/pr79764.C: Remove. - * g++.dg/pr79769.C: Remove. - * gcc.dg/lto/chkp-privatize-1_0.c: Remove. - * gcc.dg/lto/chkp-privatize-2_0.c: Remove. - * gcc.dg/lto/chkp-privatize_0.c: Remove. - * gcc.dg/lto/chkp-removed-alias_0.c: Remove. - * gcc.dg/lto/chkp-static-bounds_0.c: Remove. - * gcc.dg/lto/chkp-wrap-asm-name_0.c: Remove. - * gcc.dg/lto/lto.exp: Do not use mpx.exp. - * gcc.dg/lto/pr66221_0.c: Remove. - * gcc.target/i386/chkp-always_inline.c: Remove. - * gcc.target/i386/chkp-bndret.c: Remove. - * gcc.target/i386/chkp-builtins-1.c: Remove. - * gcc.target/i386/chkp-builtins-2.c: Remove. - * gcc.target/i386/chkp-builtins-3.c: Remove. - * gcc.target/i386/chkp-builtins-4.c: Remove. - * gcc.target/i386/chkp-const-check-1.c: Remove. - * gcc.target/i386/chkp-const-check-2.c: Remove. - * gcc.target/i386/chkp-hidden-def.c: Remove. - * gcc.target/i386/chkp-label-address.c: Remove. - * gcc.target/i386/chkp-lifetime-1.c: Remove. - * gcc.target/i386/chkp-narrow-bounds.c: Remove. - * gcc.target/i386/chkp-pr69044.c: Remove. - * gcc.target/i386/chkp-remove-bndint-1.c: Remove. - * gcc.target/i386/chkp-remove-bndint-2.c: Remove. - * gcc.target/i386/chkp-strchr.c: Remove. - * gcc.target/i386/chkp-strlen-1.c: Remove. - * gcc.target/i386/chkp-strlen-2.c: Remove. - * gcc.target/i386/chkp-strlen-3.c: Remove. - * gcc.target/i386/chkp-strlen-4.c: Remove. - * gcc.target/i386/chkp-strlen-5.c: Remove. - * gcc.target/i386/chkp-stropt-1.c: Remove. - * gcc.target/i386/chkp-stropt-10.c: Remove. - * gcc.target/i386/chkp-stropt-11.c: Remove. - * gcc.target/i386/chkp-stropt-12.c: Remove. - * gcc.target/i386/chkp-stropt-13.c: Remove. - * gcc.target/i386/chkp-stropt-14.c: Remove. - * gcc.target/i386/chkp-stropt-15.c: Remove. - * gcc.target/i386/chkp-stropt-16.c: Remove. - * gcc.target/i386/chkp-stropt-17.c: Remove. - * gcc.target/i386/chkp-stropt-2.c: Remove. - * gcc.target/i386/chkp-stropt-3.c: Remove. - * gcc.target/i386/chkp-stropt-4.c: Remove. - * gcc.target/i386/chkp-stropt-5.c: Remove. - * gcc.target/i386/chkp-stropt-6.c: Remove. - * gcc.target/i386/chkp-stropt-7.c: Remove. - * gcc.target/i386/chkp-stropt-8.c: Remove. - * gcc.target/i386/chkp-stropt-9.c: Remove. - * gcc.target/i386/i386.exp: Do not use mpx.exp. - * gcc.target/i386/indirect-thunk-11.c: Remove. - * gcc.target/i386/indirect-thunk-12.c: Remove. - * gcc.target/i386/indirect-thunk-attr-12.c: Remove. - * gcc.target/i386/indirect-thunk-attr-13.c: Remove. - * gcc.target/i386/indirect-thunk-bnd-1.c: Remove. - * gcc.target/i386/indirect-thunk-bnd-2.c: Remove. - * gcc.target/i386/indirect-thunk-bnd-3.c: Remove. - * gcc.target/i386/indirect-thunk-bnd-4.c: Remove. - * gcc.target/i386/interrupt-bnd-err-1.c: Remove. - * gcc.target/i386/interrupt-bnd-err-2.c: Remove. - * gcc.target/i386/mpx/alloca-1-lbv.c: Remove. - * gcc.target/i386/mpx/alloca-1-nov.c: Remove. - * gcc.target/i386/mpx/alloca-1-ubv.c: Remove. - * gcc.target/i386/mpx/arg-addr-1-lbv.c: Remove. - * gcc.target/i386/mpx/arg-addr-1-nov.c: Remove. - * gcc.target/i386/mpx/arg-addr-1-ubv.c: Remove. - * gcc.target/i386/mpx/bitfields-1-lbv.c: Remove. - * gcc.target/i386/mpx/bitfields-1-nov.c: Remove. - * gcc.target/i386/mpx/bitfields-1-ubv.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-chk-ptr-bounds-1-lbv.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-chk-ptr-bounds-1-nov.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-chk-ptr-bounds-1-ubv.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-chk-ptr-bounds-2.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-chk-ptr-lbounds-1-lbv.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-chk-ptr-lbounds-1-nov.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-chk-ptr-lbounds-2.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-chk-ptr-ubounds-1-nov.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-chk-ptr-ubounds-1-ubv.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-chk-ptr-ubounds-2.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-1.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-2-lbv.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-2-nov.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-2-ubv.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-3.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-get-ptr-lbound-1.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-get-ptr-lbound-2.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-get-ptr-ubound-1.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-get-ptr-ubound-2.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-init-ptr-bounds-1.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-init-ptr-bounds-2-nov.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-init-ptr-bounds-3.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-1.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-2-lbv.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-2-nov.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-2-ubv.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-3-lbv.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-3-nov.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-3-ubv.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-4.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-null-ptr-bounds-1-bbv.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-1.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-2-lbv.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-2-nov.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-2-ubv.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-3.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-store-ptr-bounds-1-lbv.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-store-ptr-bounds-1-nov.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-store-ptr-bounds-1-ubv.c: Remove. - * gcc.target/i386/mpx/builtin-bnd-store-ptr-bounds-2.c: Remove. - * gcc.target/i386/mpx/calloc-1-lbv.c: Remove. - * gcc.target/i386/mpx/calloc-1-nov.c: Remove. - * gcc.target/i386/mpx/calloc-1-ubv.c: Remove. - * gcc.target/i386/mpx/chkp-fix-calls-1.c: Remove. - * gcc.target/i386/mpx/chkp-fix-calls-2.c: Remove. - * gcc.target/i386/mpx/chkp-fix-calls-3.c: Remove. - * gcc.target/i386/mpx/chkp-fix-calls-4.c: Remove. - * gcc.target/i386/mpx/chkp-thunk-comdat-1.cc: Remove. - * gcc.target/i386/mpx/chkp-thunk-comdat-2.cc: Remove. - * gcc.target/i386/mpx/chkp-thunk-comdat-3.c: Remove. - * gcc.target/i386/mpx/fastcall-1-lbv.c: Remove. - * gcc.target/i386/mpx/fastcall-1-nov.c: Remove. - * gcc.target/i386/mpx/fastcall-1-ubv.c: Remove. - * gcc.target/i386/mpx/fastcall-2-lbv.c: Remove. - * gcc.target/i386/mpx/fastcall-2-nov.c: Remove. - * gcc.target/i386/mpx/fastcall-2-ubv.c: Remove. - * gcc.target/i386/mpx/field-addr-1-lbv.c: Remove. - * gcc.target/i386/mpx/field-addr-1-nov.c: Remove. - * gcc.target/i386/mpx/field-addr-1-ubv.c: Remove. - * gcc.target/i386/mpx/field-addr-10-lbv.c: Remove. - * gcc.target/i386/mpx/field-addr-10-nov.c: Remove. - * gcc.target/i386/mpx/field-addr-10-ubv.c: Remove. - * gcc.target/i386/mpx/field-addr-2-lbv.c: Remove. - * gcc.target/i386/mpx/field-addr-2-nov.c: Remove. - * gcc.target/i386/mpx/field-addr-2-ubv.c: Remove. - * gcc.target/i386/mpx/field-addr-3-lbv.c: Remove. - * gcc.target/i386/mpx/field-addr-3-nov.c: Remove. - * gcc.target/i386/mpx/field-addr-3-ubv.c: Remove. - * gcc.target/i386/mpx/field-addr-4-lbv.c: Remove. - * gcc.target/i386/mpx/field-addr-4-nov.c: Remove. - * gcc.target/i386/mpx/field-addr-4-ubv.c: Remove. - * gcc.target/i386/mpx/field-addr-5-lbv.c: Remove. - * gcc.target/i386/mpx/field-addr-5-nov.c: Remove. - * gcc.target/i386/mpx/field-addr-5-ubv.c: Remove. - * gcc.target/i386/mpx/field-addr-6-lbv.c: Remove. - * gcc.target/i386/mpx/field-addr-6-nov.c: Remove. - * gcc.target/i386/mpx/field-addr-6-ubv.c: Remove. - * gcc.target/i386/mpx/field-addr-7-lbv.c: Remove. - * gcc.target/i386/mpx/field-addr-7-nov.c: Remove. - * gcc.target/i386/mpx/field-addr-7-ubv.c: Remove. - * gcc.target/i386/mpx/field-addr-8-lbv.c: Remove. - * gcc.target/i386/mpx/field-addr-8-nov.c: Remove. - * gcc.target/i386/mpx/field-addr-8-ubv.c: Remove. - * gcc.target/i386/mpx/field-addr-9-lbv.c: Remove. - * gcc.target/i386/mpx/field-addr-9-nov.c: Remove. - * gcc.target/i386/mpx/field-addr-9-ubv.c: Remove. - * gcc.target/i386/mpx/frame-address-1-nov.c: Remove. - * gcc.target/i386/mpx/hard-reg-1-nov.c: Remove. - * gcc.target/i386/mpx/hard-reg-2-lbv.c: Remove. - * gcc.target/i386/mpx/hard-reg-2-nov.c: Remove. - * gcc.target/i386/mpx/hard-reg-2-ubv.c: Remove. - * gcc.target/i386/mpx/if-stmt-1-lbv.c: Remove. - * gcc.target/i386/mpx/if-stmt-1-nov.c: Remove. - * gcc.target/i386/mpx/if-stmt-1-ubv.c: Remove. - * gcc.target/i386/mpx/if-stmt-2-lbv.c: Remove. - * gcc.target/i386/mpx/if-stmt-2-nov.c: Remove. - * gcc.target/i386/mpx/if-stmt-2-ubv.c: Remove. - * gcc.target/i386/mpx/label-address-1.c: Remove. - * gcc.target/i386/mpx/legacy-1-nov.c: Remove. - * gcc.target/i386/mpx/macro.c: Remove. - * gcc.target/i386/mpx/malloc-1-lbv.c: Remove. - * gcc.target/i386/mpx/malloc-1-nov.c: Remove. - * gcc.target/i386/mpx/malloc-1-ubv.c: Remove. - * gcc.target/i386/mpx/memcpy-1.c: Remove. - * gcc.target/i386/mpx/memmove-1.c: Remove. - * gcc.target/i386/mpx/memmove-2.c: Remove. - * gcc.target/i386/mpx/memmove-zero-length.c: Remove. - * gcc.target/i386/mpx/mpx-check.h: Remove. - * gcc.target/i386/mpx/mpx-os-support.h: Remove. - * gcc.target/i386/mpx/mpx.exp: Remove. - * gcc.target/i386/mpx/nested-function-1-lbv.c: Remove. - * gcc.target/i386/mpx/nested-function-1-nov.c: Remove. - * gcc.target/i386/mpx/nested-function-1-ubv.c: Remove. - * gcc.target/i386/mpx/pointer-arg-1-lbv.c: Remove. - * gcc.target/i386/mpx/pointer-arg-1-nov.c: Remove. - * gcc.target/i386/mpx/pointer-arg-1-ubv.c: Remove. - * gcc.target/i386/mpx/pointer-arg-2-lbv.c: Remove. - * gcc.target/i386/mpx/pointer-arg-2-nov.c: Remove. - * gcc.target/i386/mpx/pointer-arg-2-ubv.c: Remove. - * gcc.target/i386/mpx/pointer-arg-3-lbv.c: Remove. - * gcc.target/i386/mpx/pointer-arg-3-nov.c: Remove. - * gcc.target/i386/mpx/pointer-arg-3-ubv.c: Remove. - * gcc.target/i386/mpx/pointer-arg-4-lbv.c: Remove. - * gcc.target/i386/mpx/pointer-arg-4-nov.c: Remove. - * gcc.target/i386/mpx/pointer-arg-4-ubv.c: Remove. - * gcc.target/i386/mpx/pointer-arg-5-lbv.c: Remove. - * gcc.target/i386/mpx/pointer-arg-5-nov.c: Remove. - * gcc.target/i386/mpx/pointer-arg-5-ubv.c: Remove. - * gcc.target/i386/mpx/pointer-diff-1.c: Remove. - * gcc.target/i386/mpx/pointer-store-1-lbv.c: Remove. - * gcc.target/i386/mpx/pointer-store-1-nov.c: Remove. - * gcc.target/i386/mpx/pointer-store-1-ubv.c: Remove. - * gcc.target/i386/mpx/pr65508.c: Remove. - * gcc.target/i386/mpx/pr65531.cc: Remove. - * gcc.target/i386/mpx/pr66048.cc: Remove. - * gcc.target/i386/mpx/pr66134.c: Remove. - * gcc.target/i386/mpx/pr66566.c: Remove. - * gcc.target/i386/mpx/pr66567.c: Remove. - * gcc.target/i386/mpx/pr66568.c: Remove. - * gcc.target/i386/mpx/pr66569.c: Remove. - * gcc.target/i386/mpx/pr66581.c: Remove. - * gcc.target/i386/mpx/pr68337-1.c: Remove. - * gcc.target/i386/mpx/pr68337-2.c: Remove. - * gcc.target/i386/mpx/pr68416.c: Remove. - * gcc.target/i386/mpx/pr78339.c: Remove. - * gcc.target/i386/mpx/pr79631.c: Remove. - * gcc.target/i386/mpx/pr79633.c: Remove. - * gcc.target/i386/mpx/pr79753.c: Remove. - * gcc.target/i386/mpx/pr79770.c: Remove. - * gcc.target/i386/mpx/pr79987.c: Remove. - * gcc.target/i386/mpx/pr79988.c: Remove. - * gcc.target/i386/mpx/realloc-1-lbv.c: Remove. - * gcc.target/i386/mpx/realloc-1-nov.c: Remove. - * gcc.target/i386/mpx/realloc-1-ubv.c: Remove. - * gcc.target/i386/mpx/realloc-2-lbv.c: Remove. - * gcc.target/i386/mpx/realloc-2-nov.c: Remove. - * gcc.target/i386/mpx/realloc-2-ubv.c: Remove. - * gcc.target/i386/mpx/reference-1-lbv.cpp: Remove. - * gcc.target/i386/mpx/reference-1-nov.cpp: Remove. - * gcc.target/i386/mpx/reference-1-ubv.cpp: Remove. - * gcc.target/i386/mpx/reference-2-lbv.cpp: Remove. - * gcc.target/i386/mpx/reference-2-nov.cpp: Remove. - * gcc.target/i386/mpx/reference-2-ubv.cpp: Remove. - * gcc.target/i386/mpx/reference-3-lbv.cpp: Remove. - * gcc.target/i386/mpx/reference-3-nov.cpp: Remove. - * gcc.target/i386/mpx/reference-3-ubv.cpp: Remove. - * gcc.target/i386/mpx/reference-4-lbv.cpp: Remove. - * gcc.target/i386/mpx/reference-4-nov.cpp: Remove. - * gcc.target/i386/mpx/reference-4-ubv.cpp: Remove. - * gcc.target/i386/mpx/return-pointer-1-lbv.c: Remove. - * gcc.target/i386/mpx/return-pointer-1-nov.c: Remove. - * gcc.target/i386/mpx/return-pointer-1-ubv.c: Remove. - * gcc.target/i386/mpx/return-struct-1-lbv.c: Remove. - * gcc.target/i386/mpx/return-struct-1-nov.c: Remove. - * gcc.target/i386/mpx/return-struct-1-ubv.c: Remove. - * gcc.target/i386/mpx/return-struct-2-lbv.c: Remove. - * gcc.target/i386/mpx/return-struct-2-nov.c: Remove. - * gcc.target/i386/mpx/return-struct-2-ubv.c: Remove. - * gcc.target/i386/mpx/return-struct-3-lbv.c: Remove. - * gcc.target/i386/mpx/return-struct-3-nov.c: Remove. - * gcc.target/i386/mpx/return-struct-3-ubv.c: Remove. - * gcc.target/i386/mpx/return-struct-4-lbv.c: Remove. - * gcc.target/i386/mpx/return-struct-4-nov.c: Remove. - * gcc.target/i386/mpx/return-struct-4-ubv.c: Remove. - * gcc.target/i386/mpx/return-struct-5-lbv.c: Remove. - * gcc.target/i386/mpx/return-struct-5-nov.c: Remove. - * gcc.target/i386/mpx/return-struct-5-ubv.c: Remove. - * gcc.target/i386/mpx/return-struct-6-lbv.c: Remove. - * gcc.target/i386/mpx/return-struct-6-nov.c: Remove. - * gcc.target/i386/mpx/return-struct-6-ubv.c: Remove. - * gcc.target/i386/mpx/sincos-1-nov.c: Remove. - * gcc.target/i386/mpx/static-array-1-lbv.c: Remove. - * gcc.target/i386/mpx/static-array-1-nov.c: Remove. - * gcc.target/i386/mpx/static-array-1-ubv.c: Remove. - * gcc.target/i386/mpx/static-init-1-lbv.c: Remove. - * gcc.target/i386/mpx/static-init-1-nov.c: Remove. - * gcc.target/i386/mpx/static-init-1-ubv.c: Remove. - * gcc.target/i386/mpx/static-init-2-lbv.c: Remove. - * gcc.target/i386/mpx/static-init-2-nov.c: Remove. - * gcc.target/i386/mpx/static-init-2-ubv.c: Remove. - * gcc.target/i386/mpx/static-init-3-lbv.c: Remove. - * gcc.target/i386/mpx/static-init-3-nov.c: Remove. - * gcc.target/i386/mpx/static-init-3-ubv.c: Remove. - * gcc.target/i386/mpx/static-init-4-lbv.c: Remove. - * gcc.target/i386/mpx/static-init-4-nov.c: Remove. - * gcc.target/i386/mpx/static-init-4-ubv.c: Remove. - * gcc.target/i386/mpx/static-init-5-lbv.c: Remove. - * gcc.target/i386/mpx/static-init-5-nov.c: Remove. - * gcc.target/i386/mpx/static-init-5-ubv.c: Remove. - * gcc.target/i386/mpx/static-init-6-lbv.c: Remove. - * gcc.target/i386/mpx/static-init-6-nov.c: Remove. - * gcc.target/i386/mpx/static-init-6-ubv.c: Remove. - * gcc.target/i386/mpx/static-string-1-lbv.c: Remove. - * gcc.target/i386/mpx/static-string-1-nov.c: Remove. - * gcc.target/i386/mpx/static-string-1-ubv.c: Remove. - * gcc.target/i386/mpx/struct-arg-1-lbv.c: Remove. - * gcc.target/i386/mpx/struct-arg-1-nov.c: Remove. - * gcc.target/i386/mpx/struct-arg-1-ubv.c: Remove. - * gcc.target/i386/mpx/struct-arg-10-lbv.c: Remove. - * gcc.target/i386/mpx/struct-arg-10-nov.c: Remove. - * gcc.target/i386/mpx/struct-arg-10-ubv.c: Remove. - * gcc.target/i386/mpx/struct-arg-2-lbv.c: Remove. - * gcc.target/i386/mpx/struct-arg-2-nov.c: Remove. - * gcc.target/i386/mpx/struct-arg-2-ubv.c: Remove. - * gcc.target/i386/mpx/struct-arg-3-lbv.c: Remove. - * gcc.target/i386/mpx/struct-arg-3-nov.c: Remove. - * gcc.target/i386/mpx/struct-arg-3-ubv.c: Remove. - * gcc.target/i386/mpx/struct-arg-4-lbv.c: Remove. - * gcc.target/i386/mpx/struct-arg-4-nov.c: Remove. - * gcc.target/i386/mpx/struct-arg-4-ubv.c: Remove. - * gcc.target/i386/mpx/struct-arg-5-lbv.c: Remove. - * gcc.target/i386/mpx/struct-arg-5-nov.c: Remove. - * gcc.target/i386/mpx/struct-arg-5-ubv.c: Remove. - * gcc.target/i386/mpx/struct-arg-6-lbv.c: Remove. - * gcc.target/i386/mpx/struct-arg-6-nov.c: Remove. - * gcc.target/i386/mpx/struct-arg-6-ubv.c: Remove. - * gcc.target/i386/mpx/struct-arg-7-lbv.c: Remove. - * gcc.target/i386/mpx/struct-arg-7-nov.c: Remove. - * gcc.target/i386/mpx/struct-arg-7-ubv.c: Remove. - * gcc.target/i386/mpx/struct-arg-8-lbv.c: Remove. - * gcc.target/i386/mpx/struct-arg-8-nov.c: Remove. - * gcc.target/i386/mpx/struct-arg-8-ubv.c: Remove. - * gcc.target/i386/mpx/struct-arg-9-lbv.c: Remove. - * gcc.target/i386/mpx/struct-arg-9-nov.c: Remove. - * gcc.target/i386/mpx/struct-arg-9-ubv.c: Remove. - * gcc.target/i386/mpx/struct-copy-1-lbv.c: Remove. - * gcc.target/i386/mpx/struct-copy-1-nov.c: Remove. - * gcc.target/i386/mpx/struct-copy-1-ubv.c: Remove. - * gcc.target/i386/mpx/struct-copy-2-lbv.c: Remove. - * gcc.target/i386/mpx/struct-copy-2-nov.c: Remove. - * gcc.target/i386/mpx/struct-copy-2-ubv.c: Remove. - * gcc.target/i386/mpx/thread-local-var-1-lbv.c: Remove. - * gcc.target/i386/mpx/thread-local-var-1-nov.c: Remove. - * gcc.target/i386/mpx/thread-local-var-1-ubv.c: Remove. - * gcc.target/i386/mpx/union-arg-1-lbv.c: Remove. - * gcc.target/i386/mpx/union-arg-1-nov.c: Remove. - * gcc.target/i386/mpx/union-arg-1-ubv.c: Remove. - * gcc.target/i386/mpx/va-arg-pack-1-lbv.c: Remove. - * gcc.target/i386/mpx/va-arg-pack-1-nov.c: Remove. - * gcc.target/i386/mpx/va-arg-pack-1-ubv.c: Remove. - * gcc.target/i386/mpx/va-arg-pack-2-lbv.c: Remove. - * gcc.target/i386/mpx/va-arg-pack-2-nov.c: Remove. - * gcc.target/i386/mpx/va-arg-pack-2-ubv.c: Remove. - * gcc.target/i386/mpx/vararg-1-lbv.c: Remove. - * gcc.target/i386/mpx/vararg-1-nov.c: Remove. - * gcc.target/i386/mpx/vararg-1-ubv.c: Remove. - * gcc.target/i386/mpx/vararg-2-lbv.c: Remove. - * gcc.target/i386/mpx/vararg-2-nov.c: Remove. - * gcc.target/i386/mpx/vararg-2-ubv.c: Remove. - * gcc.target/i386/mpx/vararg-3-lbv.c: Remove. - * gcc.target/i386/mpx/vararg-3-nov.c: Remove. - * gcc.target/i386/mpx/vararg-3-ubv.c: Remove. - * gcc.target/i386/mpx/vararg-4-lbv.c: Remove. - * gcc.target/i386/mpx/vararg-4-nov.c: Remove. - * gcc.target/i386/mpx/vararg-4-ubv.c: Remove. - * gcc.target/i386/mpx/vararg-5-lbv.c: Remove. - * gcc.target/i386/mpx/vararg-5-nov.c: Remove. - * gcc.target/i386/mpx/vararg-5-ubv.c: Remove. - * gcc.target/i386/mpx/vararg-6-lbv.c: Remove. - * gcc.target/i386/mpx/vararg-6-nov.c: Remove. - * gcc.target/i386/mpx/vararg-6-ubv.c: Remove. - * gcc.target/i386/mpx/vararg-7-lbv.c: Remove. - * gcc.target/i386/mpx/vararg-7-nov.c: Remove. - * gcc.target/i386/mpx/vararg-7-ubv.c: Remove. - * gcc.target/i386/mpx/vararg-8-lbv.c: Remove. - * gcc.target/i386/mpx/vararg-8-nov.c: Remove. - * gcc.target/i386/mpx/vararg-8-ubv.c: Remove. - * gcc.target/i386/mpx/vla-1-lbv.c: Remove. - * gcc.target/i386/mpx/vla-1-nov.c: Remove. - * gcc.target/i386/mpx/vla-1-ubv.c: Remove. - * gcc.target/i386/mpx/vla-2-lbv.c: Remove. - * gcc.target/i386/mpx/vla-2-nov.c: Remove. - * gcc.target/i386/mpx/vla-2-ubv.c: Remove. - * gcc.target/i386/mpx/vla-trailing-1-lbv.c: Remove. - * gcc.target/i386/mpx/vla-trailing-1-nov.c: Remove. - * gcc.target/i386/mpx/vla-trailing-1-ubv.c: Remove. - * gcc.target/i386/pr63995-2.c: Remove. - * gcc.target/i386/pr64805.c: Remove. - * gcc.target/i386/pr65044.c: Remove. - * gcc.target/i386/pr65167.c: Remove. - * gcc.target/i386/pr65183.c: Remove. - * gcc.target/i386/pr65184.c: Remove. - * gcc.target/i386/pr65523.c: Remove. - * gcc.target/i386/pr70876.c: Remove. - * gcc.target/i386/pr70877.c: Remove. - * gcc.target/i386/pr71458.c: Remove. - * gcc.target/i386/pr80880.c: Remove. - * gcc.target/i386/ret-thunk-25.c: Remove. - * gcc.target/i386/thunk-retbnd.c: Remove. - * lib/mpx-dg.exp: Remove. - * gcc.target/i386/funcspec-56.inc: Adjust test case. - -2018-06-07 Carl Love - - * gcc.target/powerpc/builtins-3-p9-runnable.c: Add debug print - statements. - -2018-06-07 Carl Love - - * gcc.target/powerpc/vsu/vec-cntlz-lsbb-2.c (dg-error): Update expected - error message. - -2018-06-07 Marek Polacek - - PR c/85318 - * gcc.dg/Wc90-c99-compat-10.c: New test. - * gcc.dg/Wc90-c99-compat-11.c: New test. - * gcc.dg/Wc90-c99-compat-12.c: New test. - * gcc.dg/Wc90-c99-compat-9.c: New test. - -2018-06-07 Paul Koning - - * gcc.c-torture/compile/20180605-1.c: New test. - -2018-06-07 Steven G. Kargl - - PR fortran/86045 - * gfortran.dg/pr86045.f90: New test. - -2018-06-07 Marek Polacek - - * g++.dg/cpp0x/range-for9.C: Adjust dg-error. - -2018-06-07 Olga Makhotina - - * gcc.target/i386/funcspec-56.inc: Test arch=tremont. - -2018-06-07 Jozef Lawrynowicz - - * gcc.target/msp430/msp430i-device-symbol.c: New test. - * gcc.target/msp430/msp430f-device-symbol.c: New test. - * gcc.target/msp430/msp430.h: New test header file. - -2018-06-07 Jakub Jelinek - - PR tree-optimization/69615 - * gcc.dg/tree-ssa/pr69615.c: New test. - -2018-06-07 Richard Biener - - PR tree-optimization/85935 - * gcc.dg/graphite/pr85935.c: New testcase. - -2018-06-04 Carl Love - - * gcc.target/powerpc/builtins-8-p9-runnable.c: Add additional - debug print statements. Fix a few formating issues. - -2018-06-06 Michael Meissner - - PR target/85657 - * gcc.target/powerpc/pr85657-4.c: New tests. - * gcc.target/powerpc/pr85657-5.c: Likewise. - * gcc.target/powerpc/pr85657-6.c: Likewise. - -2018-06-06 Thomas Koenig - - PR fortran/85641 - * gfortran.dg/realloc_on_assign_30.f90: New test. - -2018-06-06 Carl Love - * gcc.target/powerpc/builtins-7-p9-runnable.c: Change first - argument to vui_arg. - -2018-06-06 Carl Love - - * gcc.target/powerpc/builtins-3.c: Move tests requiring -mvsx - to builtins-4.c. - * gcc.target/powerpc/builtins-4.c: New test file for tests - that need -mvsx. - -2018-06-06 Michael Meissner - - PR target/85657 - * g++.dg/pr85657.C: Only test whether __ibm128 and long double can - be used in templates. Don't check for them in overloaded functions. - -2018-06-06 Jim Wilson - - * gcc.target/riscv/interrupt-5.c (sub3): Add new test. - * gcc.target/riscv/interrupt-mmode.c: New. - * gcc.target/riscv/interrupt-smode.c: New. - * gcc.target/riscv/interrupt-umode.c: New. - -2018-06-06 Marek Polacek - - PR c++/85977 - * g++.dg/cpp0x/initlist102.C: New test. - * g++.dg/cpp0x/initlist103.C: New test. - * g++.dg/cpp0x/initlist104.C: New test. - -2018-06-06 Eric Botcazou - - * gcc.dg/torture/pr86066.c: New test. - -2018-06-06 Richard Biener - - PR tree-optimization/86062 - * g++.dg/tree-ssa/pr86062.C: New testcase. - -2018-06-06 Jozef Lawrynowicz - - * gcc.target/msp430/function-attributes-4.c: New test. - * gcc.target/msp430/static-interrupts.c: New test. - -2018-06-05 Steve Ellcey - - PR target/79924 - * gcc.target/aarch64/mgeneral-regs_1.c: Update error message. - * gcc.target/aarch64/mgeneral-regs_2.c: Ditto. - * gcc.target/aarch64/mgeneral-regs_3.c: Ditto. - * gcc.target/aarch64/nofp_1.c: Ditto. - -2018-06-05 Andre Vieira - - * gcc.target/arm/cmse/cmse-1c99.c: New test. - -2018-06-05 Cesar Philippidis - - PR fortran/85701 - * gfortran.dg/goacc/pr85701.f90: New test. - -2018-06-05 Marek Polacek - - PR c++/85976 - * g++.dg/cpp0x/alias-decl-64.C: New test. - -2018-06-05 Richard Biener - - PR tree-optimization/86046 - * gcc.dg/pr86046.c: New testcase. - -2018-06-05 Richard Biener - - PR tree-optimization/86047 - * gcc.dg/pr86047.c: New testcase. - -2018-06-05 Kyrylo Tkachov - - PR target/81497 - * g++.target/arm/arm.exp: New file. - * g++.target/arm/pr81497.C: Likewise. - -2018-06-05 Andreas Krebbel - - * gcc.target/s390/htm-builtins-compile-4.c: New test. - -2018-06-04 Eric Botcazou - - * gcc.dg/store_merging_21.c: New test. - * gnat.dg/opt71b.adb: Likewise. - * gnat.dg/opt71.adb: Rename into... - * gnat.dg/opt71a.adb: ...this. - -2018-06-04 Richard Biener - - PR tree-optimization/85955 - * gcc.dg/pr85955.c: New testcase. - -2018-06-04 Steven G. Kargl - - PR fortran/85981 - * gfortran.dg/allocate_alloc_opt_14.f90: New test. - * gfortran.dg/allocate_alloc_opt_1.f90: Update error string. - * gfortran.dg/allocate_stat_2.f90: Ditto. - * gfortran.dg/deallocate_alloc_opt_1.f90: Ditto. - -2018-06-04 Richard Sandiford - - * gcc.target/aarch64/sve/extract_5.c: New test. - -2018-06-04 Jakub Jelinek - - PR target/85832 - PR target/86036 - * gcc.target/i386/avx512f-pr85832.c: Expect vptestnm rather than - vptestm. - * gcc.target/i386/avx512vl-pr85832.c: Likewise. - * gcc.target/i386/avx512vlbw-pr85832.c: Likewise. - * gcc.target/i386/avx512bw-pr85832.c: Likewise. - * gcc.target/i386/avx512bw-pr86036.c: New test. - -2018-06-04 Richard Biener - - PR tree-optimization/86038 - * gcc.dg/pr86038.c: New testcase. - -2018-06-04 Jakub Jelinek - - PR tree-optimization/69615 - * gcc.dg/pr69615.c: New test. - - PR c++/86025 - * c-c++-common/gomp/pr86025.c: New test. - -2018-06-03 Andreas Schwab - - * gcc.target/powerpc/altivec-7.c: Remove extra brace. - -2018-06-03 Eric Botcazou - - * gcc.dg/torture/pr86034.c: New test. - -2018-06-03 Paul Thomas - - PR fortran/36497 - * gfortran.dg/cray_pointer_12.f90: New test. - -2018-06-02 Steven G. Kargl - - PR fortran/85938 - * gfortran.dg/pr85938.f90: Fixed by revision r261081 - -2018-06-02 Eric Botcazou - - * gnat.dg/specs/opt3.ads: New test. - * gnat.dg/specs/opt3_pkg.ads: New helper. - -2018-06-02 Eric Botcazou - - * gnat.dg/discr53.ad[sb]: New test. - * gnat.dg/discr53_pkg.ads: New helper. - -2018-06-01 Carl Love - - * gcc.target/powerpc/vsx-vector-6-be.p7.c: New test file. - * gcc.target/powerpc/vsx-vector-6-be.p8.c: New test file. - -2018-06-01 Carl Love - - * gcc.target/powerpc/altivec-12.c (main): Fix declaration of ucz - to make it consistent with the naming convention in the file. - * gcc.target/powerpc/altivec-7-be.c: Move BE specific checks - to altivec-7.c. Delete file. - * gcc.target/powerpc/altivec-7-le.c: Move LE specific checks - to altivec-7.c. Delete file. - * gcc.target/powerpc/altivec-7.h: Move to altivec-7.c. - * gcc.target/powerpc/altivec-7.c (main): Add vec_unpackh and - vec_unpackl tests. Update instruction counts. - * gcc.target/powerpc/builtins-1-le.c: Move LE specific checks to - tests to builtins-1.c. - * gcc.target/powerpc/builtins-1-be.c: Move BE specific - tests to builtins-1.c. - * gcc.target/powerpc/builtins-1.h: Move to file builtins-1.c. - * gcc.target/powerpc/builtins-1.c (main): Add test case for vec_and. - vec_round, vec_rsqrt, vec_rsqrte, vec_mergee, vec_mergh, vec_mergo. - Remove vec_ctf tests returning double. Remove vec_cts with - double args. Remove vec_sel with invalid arguments. Add tests for - vec_splat. - Add instruction counts for new tests. - * gcc.target/powerpc/builtins-3-runnable.c (main): Add test for - vec_doublee, vec_doubleo, vec_doublel, vec_doubleh, vec_signed, - vec_unsigned. - * gcc.target/powerpc/builtins-3.c: Add tests test_sll_vuill_vuill_vuc, - test_sll_vsill_vsill_vuc. - * gcc.target/powerpc/p9-xxbr-2.c (rev_bool_long_long): Added test for - vec_revb. - * gcc.target/powerpc/vsx-7.h: Rename to vsx-7.c. Remove redundant - tests from altivec-7.h. - * gcc.target/powerpc/vsx-7-be.c: Remove file. - * gcc.target/powerpc/vsx-builtin-7.c: Add test functions splat_sc_s8, - splat_uc_u8, splat_ssi_s16, splat_usi_s16, splat_si_s32, splat_ui_u32, - splat_sll, splat_uc, splat_int128, splat_uint128. - Make second argument of vec_extract and vec_insert a signed int. - * gcc.target/powerpc/vsx-vector-5.c (vrint): Add vrint test for float - argument. - -2018-06-01 Eric Botcazou - - * gcc.dg/store_merging_20.c: New test. - * gnat.dg/opt71.adb: Likewise. - * gnat.dg/opt71_pkg.ads: New helper. - -2018-06-01 Carl Love - - * gcc.target/powerpc/altivec-35.c (foo): Add builtin test vec_madds. - * gcc.target/powerpc/builtins-6-runnable.c (main): Fix typo for output. - Add vec_xst_be for signed and unsigned arguments. - -2018-06-01 Steven G. Kargl - - PR fortran/85816 - PR fortran/85975 - * gfortran.dg/pr85816.f90: New test. - * gfortran.dg/pr85975.f90: New test. - -2018-06-01 Steven G. Kargl - - PR fortran/63570 - * gfortran.dg/random_init_1.f90: New test. - * gfortran.dg/random_init_2.f90: New test. - * gfortran.dg/random_init_3.f90: New test. - * gfortran.dg/random_init_4.f90: New test. - * gfortran.dg/random_init_5.f90: New test. - * gfortran.dg/random_init_6.f90: New test. - -2018-06-01 Richard Sandiford - - PR tree-optimization/85989 - * gcc.dg/torture/pr85989.c: New test. - -2018-06-01 Richard Biener - - PR middle-end/86017 - * gcc.dg/tree-ssa/pr86017.c: New testcase. - -2018-06-01 Richard Biener - - PR ipa/85960 - * gcc.dg/ipa/ipa-pta-19.c: New testcase. - -2018-05-31 Qing Zhao - - PR middle-end/78809 - * gcc.dg/strcmpopt_2.c: New test. - * gcc.dg/strcmpopt_3.c: New test. - - PR middle-end/83026 - * gcc.dg/strcmpopt_3.c: New test. - -2018-05-31 Jakub Jelinek - - PR target/85984 - * gcc.target/i386/pr85984.c: New test. - -2018-05-31 Martin Sebor - - PR c/82063 - * gcc.dg/Walloc-size-larger-than-1.c: New test. - * gcc.dg/Walloc-size-larger-than-10.c: New test. - * gcc.dg/Walloc-size-larger-than-11.c: New test. - * gcc.dg/Walloc-size-larger-than-12.c: New test. - * gcc.dg/Walloc-size-larger-than-13.c: New test. - * gcc.dg/Walloc-size-larger-than-14.c: New test. - * gcc.dg/Walloc-size-larger-than-15.c: New test. - * gcc.dg/Walloc-size-larger-than-16.c: New test. - * gcc.dg/Walloc-size-larger-than-17.c: New test. - * gcc.dg/Walloc-size-larger-than-2.c: New test. - * gcc.dg/Walloc-size-larger-than-3.c: New test. - * gcc.dg/Walloc-size-larger-than-4.c: New test. - * gcc.dg/Walloc-size-larger-than-5.c: New test. - * gcc.dg/Walloc-size-larger-than-6.c: New test. - * gcc.dg/Walloc-size-larger-than-7.c: New test. - * gcc.dg/Walloc-size-larger-than-8.c: New test. - * gcc.dg/Walloc-size-larger-than-9.c: New test. - * gcc.dg/Walloc-size-larger-than.c: New test. - -2018-05-31 Chung-Lin Tang - Cesar Philippidis - - PR middle-end/85879 - * gfortran.dg/goacc/pr77371-1.f90: New test. - * gfortran.dg/goacc/pr77371-2.f90: New test. - * gfortran.dg/goacc/pr85879.f90: New test. - -2018-05-31 Eric Botcazou - - * gnat.dg/stack_usage1.adb: Replace -fstack-usage with -Wstack-usage. - * gnat.dg/stack_usage1b.adb: Likewise. - * gnat.dg/stack_usage1c.adb: Likewise. - * gnat.dg/stack_usage3.adb: Likewise. - * gnat.dg/stack_usage1_pkg.adb: Delete. - -2018-05-31 Eric Botcazou - - * gcc.dg/store_merging_10.c: Turn dg-do compile into dg-do run. - * gcc.dg/store_merging_11.c: Likewise. - * gcc.dg/store_merging_13.c: Likewise. - * gcc.dg/store_merging_14.c: Likewise. - * gcc.dg/store_merging_15.c: Likewise. - * gcc.dg/store_merging_16.c: Likewise. Remove local variable. - -2018-05-31 Ed Schonberg - - * gnat.dg/limited1.adb, gnat.dg/limited1_inner.adb, - gnat.dg/limited1_inner.ads, gnat.dg/limited1_outer.adb, - gnat.dg/limited1_outer.ads: New testcase. - -2018-05-31 Hristian Kirtchev - - * gnat.dg/tampering_check1.adb, gnat.dg/tampering_check1_ivectors.ads, - gnat.dg/tampering_check1_trim.adb, gnat.dg/tampering_check1_trim.ads: - New testcase. - -2018-05-31 Eric Botcazou - - * gnat.dg/size_clause1.adb: New testcase. - -2018-05-31 Javier Miranda - - * gnat.dg/tagged1.adb, gnat.dg/tagged1.ads: New testcase. - -2018-05-31 Sameera Deshpande - - * gcc.target/aarch64/advsimd-intrinsics/vld1x3.c: New test for - vld1x3 intrinsics for aarch64. - * gcc.target/aarch64/advsimd-intrinsics/vst1x2.c: New test for - vst1x2 intrinsics for aarch64. - * gcc.target/aarch64/advsimd-intrinsics/vst1x3.c: New test for - vst1x3 intrinsics for aarch64. - -2018-05-30 Jonathan Wakely - - PR c++/77777 - * g++.dg/diagnostic/pr77777.C: New test. - -2018-05-30 David Pagan - - PR c/55976 - * gcc.dg/noncompile/pr55976-1.c: New test. - * gcc.dg/noncompile/pr55976-2.c: New test. - -2018-05-30 Jan Hubicka - - * gcc.dg/lto/20111213-1_0.c: Fix template. - * gcc.dg/lto/20100603-1_0.c: Fix template. - * gcc.dg/lto/20100603-2_0.c: Fix template. - * gcc.dg/lto/20100603-3_0.c: Fix template. - - * g++.dg/lto/20081109-1_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/20081118_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/20081119-1_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/20081120-1_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/20081120-2_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/20081123_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/20081204-1_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/20081219_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/20090302_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/20090313_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/20091002-2_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/20091002-3_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/20091026-1_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/20100724-1_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/20101010-4_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/20101015-2_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/20110311-1_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/pr45621_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/pr48042_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/pr48354-1_0.C: Add -flinker-output=nolto-rel. - * g++.dg/lto/pr54625-1_0.c: Add -flinker-output=nolto-rel. - * g++.dg/lto/pr54625-2_0.c: Add -flinker-output=nolto-rel. - * g++.dg/lto/pr68811_0.C: Add -flinker-output=nolto-rel. - * g++.dg/torture/pr43760.C: New test. Add -flinker-output=nolto-rel. - * gcc.dg/lto/20081120-1_0.c: Add -flinker-output=nolto-rel. - * gcc.dg/lto/20081120-2_0.c: Add -flinker-output=nolto-rel. - * gcc.dg/lto/20081126_0.c: Add -flinker-output=nolto-rel. - * gcc.dg/lto/20081204-1_0.c: Add -flinker-output=nolto-rel. - * gcc.dg/lto/20081204-2_0.c: Add -flinker-output=nolto-rel. - * gcc.dg/lto/20081212-1_0.c: Add -flinker-output=nolto-rel. - * gcc.dg/lto/20081224_0.c: Add -flinker-output=nolto-rel. - * gcc.dg/lto/20090116_0.c: Add -flinker-output=nolto-rel. - * gcc.dg/lto/20090126-1_0.c: Add -flinker-output=nolto-rel. - * gcc.dg/lto/20090126-2_0.c: Add -flinker-output=nolto-rel. - * gcc.dg/lto/20090206-1_0.c: Add -flinker-output=nolto-rel. - * gcc.dg/lto/20090219_0.c: Add -flinker-output=nolto-rel. - * gcc.dg/lto/20091013-1_0.c: Add -flinker-output=nolto-rel. - * gcc.dg/lto/20091014-1_0.c: Add -flinker-output=nolto-rel. - * gcc.dg/lto/20091015-1_0.c: Add -flinker-output=nolto-rel. - * gcc.dg/lto/20091016-1_0.c: Add -flinker-output=nolto-rel. - * gcc.dg/lto/20091020-1_0.c: Add -flinker-output-nolto-rel. - * gcc.dg/lto/20091020-2_0.c: Add -flinker-output-nolto-rel. - * gcc.dg/lto/20091027-1_0.c: Add -flinker-output-nolto-rel. - * gcc.dg/lto/20100426_0.c: Add -flinker-output-nolto-rel. - * gcc.dg/lto/20100430-1_0.c: Add -flinker-output-nolto-rel. - * gcc.dg/lto/20100603-1_0.c: Add -flinker-output-nolto-rel. - * gcc.dg/lto/20100603-2_0.c: Add -flinker-output-nolto-rel. - * gcc.dg/lto/20100603-3_0.c: Add -flinker-output-nolto-rel. - * gcc.dg/lto/20111213-1_0.c: Add -flinker-output-nolto-rel. - * gcc.dg/lto/pr45736_0.c: Add -flinker-output-nolto-rel. - * gcc.dg/lto/pr52634_0.c: Add -flinker-output-nolto-rel. - * gcc.dg/lto/pr54702_0.c: Add -flinker-output-nolto-rel. - * gcc.dg/lto/pr59323-2_0.c: Add -flinker-output-nolto-rel. - * gcc.dg/lto/pr59323_0.c: Add -flinker-output-nolto-rel. - * gcc.dg/lto/pr60820_0.c: Add -flinker-output-nolto-rel. - * gcc.dg/lto/pr81406_0.c: Add -flinker-output-nolto-rel. - * gcc.dg/lto/pr83388_0.c: Add -flinker-output-nolto-rel. - * gfortran.dg/lto/20091016-1_0.f90: Add -flinker-output-nolto-rel. - * gfortran.dg/lto/20091028-1_0.f90: Add -flinker-output-nolto-rel. - * gfortran.dg/lto/20091028-2_0.f90: Add -flinker-output-nolto-rel. - * gfortran.dg/lto/pr46911_0.f: Add -flinker-output-nolto-rel. - * gfortran.dg/lto/pr47839_0.f90: Add -flinker-output-nolto-rel. - -2018-05-30 Andre Vieira - - Revert: - * gcc/target/aarch64/store_v2vec_lanes.c: Add extra tests. - -2017-05-30 Jackson Woodruff - - * gcc.target/aarch64/simd/ldp_stp_9: New. - * gcc.target/aarch64/simd/ldp_stp_10: New. - * gcc.target/aarch64/simd/ldp_stp_11: New. - * gcc.target/aarch64/simd/ldp_stp_12: New. - -2018-05-30 Ed Schonberg - - * gnat.dg/tls1.adb, gnat.dg/tls1_pkg.ads: New testcase. - -2018-05-30 Hristian Kirtchev - - * gnat.dg/synchronized1.adb, gnat.dg/synchronized1.ads: New testcase. - -2018-05-29 Uros Bizjak - - PR target/85950 - * gcc.target/i386/pr85950.c: New test. - -2018-05-29 Marek Polacek - - PR c++/85883 - * g++.dg/cpp1z/class-deduction55.C: New test. - * g++.dg/cpp1z/class-deduction56.C: New test. - * g++.dg/cpp1z/class-deduction57.C: New test. - -2018-05-29 Jakub Jelinek - - PR c++/85952 - * g++.dg/warn/Wunused-var-33.C: New test. - - PR target/85918 - * gcc.target/i386/avx512dq-pr85918.c: Add -mprefer-vector-width=512 - and -fno-vect-cost-model options. Add aligned(64) attribute to the - arrays. Add suffix 1 to all functions and use 4 iterations rather - than N. Add functions with conversions to and from float. - Add new set of functions with 8 iterations and another one - with 16 iterations, expect 24 vectorized loops instead of just 4. - * gcc.target/i386/avx512dq-pr85918-2.c: New test. - -2018-05-29 Javier Miranda - - * gnat.dg/equal2.adb: New testcase. - -2018-05-29 Ed Schonberg - - * gnat.dg/float_attributes_overflows.adb: New testcase. - -2018-05-29 Pascal Obry - - * gnat.dg/normalize_pathname.adb: New testcase. - -2018-05-29 Tom de Vries - - * lib/scanasm.exp (scan-assembler-times): Use proc name in error - message. - * lib/scanipa.exp (scan-ipa-dump-times): Same. - * lib/scanrtl.exp (scan-rtl-dump-times): Same. - * lib/scantree.exp (scan-tree-dump-times): Same. - -2018-05-29 Tom de Vries - - * lib/scanasm.exp (scan-stack-usage, scan-stack-usage-not) - (scan-ada-spec, scan-ada-spec-not, scan-lto-assembler): - Use proc name as first argument to dg-scan. - -2018-05-29 Tom de Vries - - * lib/scanasm.exp (scan-hidden, scan-not-hidden): Handle being called - with no arguments. - -2018-05-28 Richard Biener - - PR tree-optimization/85934 - * gcc.target/i386/pr85934.c: New testcase. - -2018-05-28 Eric Botcazou - - * gnat.dg/renaming12.adb, gnat.dg/renaming12.ads: New testcase. - -2018-05-28 Eric Botcazou - - * gnat.dg/rep_clause6.adb, gnat.dg/rep_clause6.ads: New testcase. - -2018-05-28 Ed Schonberg - - * gnat.dg/fixedpnt5.adb: New testcase. - -2018-05-28 Justin Squirek - - * gnat.dg/array31.adb: New testcase. - -2018-05-28 Justin Squirek - - * gnat.dg/warn15-core-main.adb, gnat.dg/warn15-core.ads, - gnat.dg/warn15-interfaces.ads, gnat.dg/warn15.ads: New testcase. - -2018-05-27 Steven G. Kargl - - * gfortran.dg/data_stmt_pointer.f90: new test. - -2018-05-27 Jakub Jelinek - - PR target/85918 - * gcc.target/i386/avx512dq-pr85918.c: New test. - -2018-05-25 Jim Wilson - - * gcc.target/riscv/interrupt-1.c: New. - * gcc.target/riscv/interrupt-2.c: New. - * gcc.target/riscv/interrupt-3.c: New. - * gcc.target/riscv/interrupt-4.c: New. - * gcc.target/riscv/interrupt-5.c: New. - -2018-05-25 Steven G. Kargl - - PR fortran/85786 - * gfortran.dg/pr85786.f90: New test. - -2018-05-25 Paul Koning - - * gcc.c-torture/compile/20151204.c: Skip if pdp11. - * gcc.c-torture/compile/pr55921.c: Ditto. - * gcc.c-torture/compile/pr60655-1.c: Ditto. - * gcc.c-torture/compile/vector-align-1.c: Add max alignment if pdp11. - -2018-05-25 Jakub Jelinek - - PR target/85832 - * gcc.target/i386/avx512f-pr85832.c: New test. - * gcc.target/i386/avx512vl-pr85832.c: New test. - * gcc.target/i386/avx512bw-pr85832.c: New test. - * gcc.target/i386/avx512vlbw-pr85832.c: New test. - -2018-05-25 Bin Cheng - - PR tree-optimization/85720 - * gcc.dg/tree-ssa/pr85720.c: New test. - * gcc.target/i386/avx256-unaligned-store-2.c: Disable loop pattern - distribution. - -2018-05-25 Martin Liska - - PR testsuite/85911 - * gcc.dg/tree-prof/update-loopch.c: Do not scan - for 'Removing basic block'. - -2018-05-25 Patrick Bernardi - - * gnat.dg/sec_stack1.adb: New testcase. - -2018-05-25 Ed Schonberg - - * gnat.dg/fixedpnt4.adb: New testcase. - -2018-05-25 Javier Miranda - - * gnat.dg/interface7.adb: New testcase. - -2018-05-25 Hristian Kirtchev - - * gnat.dg/sec_stack2.adb: New testcase. - -2018-05-25 Ed Schonberg - - * gnat.dg/interface6.adb: New testcase. - -2018-05-25 Ed Schonberg - - * gnat.dg/static_pred1.adb, gnat.dg/static_pred1.ads: New testcase. - -2018-05-25 Richard Sandiford - - * lib/target-supports.exp - (check_effective_target_vect_double_cond_arith): Include - multiplication and division. - * gcc.dg/vect/pr53773.c: Do not expect a scalar tail when using - fully-masked loops with a fixed vector length. - * gcc.dg/vect/vect-cond-arith-1.c: Add multiplication and division - tests. - * gcc.target/aarch64/sve/vcond_8.c: Likewise. - * gcc.target/aarch64/sve/vcond_9.c: Likewise. - * gcc.target/aarch64/sve/vcond_12.c: Add multiplication tests. - -2018-05-25 Richard Sandiford - - * gcc.target/aarch64/sve/div_1.c: New test. - * gcc.target/aarch64/sve/div_1_run.c: Likewise. - * gcc.target/aarch64/sve/mul_highpart_2.c: Likewise. - * gcc.target/aarch64/sve/mul_highpart_2_run.c: Likewise. - -2018-05-25 Richard Sandiford - - * gcc.dg/vect/bb-slp-div-1.c: New XFAILed test. - -2018-05-25 Richard Sandiford - - * lib/target-supports.exp - (check_effective_target_vect_double_cond_arith): New proc. - * gcc.dg/vect/vect-cond-arith-1.c: New test. - * gcc.target/aarch64/sve/vcond_8.c: Likewise. - * gcc.target/aarch64/sve/vcond_8_run.c: Likewise. - * gcc.target/aarch64/sve/vcond_9.c: Likewise. - * gcc.target/aarch64/sve/vcond_9_run.c: Likewise. - * gcc.target/aarch64/sve/vcond_12.c: Likewise. - * gcc.target/aarch64/sve/vcond_12_run.c: Likewise. - -2018-05-25 Janus Weil - - PR fortran/85839 - * gfortran.dg/f2018_obs.f90: New test case. - -2018-05-24 Steven G. Kargl - - PR fortran/85543 - * gfortran.dg/pr85543.f90: New test. - -2018-05-24 Steven G. Kargl - - PR fortran/85780 - * gfortran.dg/pr85780.f90: New test. - -2018-05-24 Steven G. Kargl - - PR fortran/85779 - * gfortran.dg/pr85779_1.f90: New test. - * gfortran.dg/pr85779_2.f90: Ditto. - * gfortran.dg/pr85779_3.f90: Ditto. - -2018-05-24 Steven G. Kargl - - PR fortran/85895 - - * gfortran.dg/coarray_3.f90: Fix invalid testcase. - * gfortran.dg/pr85895.f90: New test. - -2018-05-24 Uros Bizjak - - * gcc.target/i386/avx512f-vcvtusi2sd64-1.c: Update scan string. - * gcc.target/i386/avx512f-vcvtusi2ss64-1.c: Ditto. - -2018-05-24 Roger Sayle - - * gcc.dg/fold-popcount-1.c: New testcase. - * gcc.dg/fold-popcount-2.c: New testcase. - * gcc.dg/fold-popcount-3.c: New testcase. - * gcc.dg/fold-popcount-4.c: New testcase. - -2018-05-24 Marek Polacek - - PR c++/85847 - * g++.dg/cpp0x/new3.C: New test. - -2018-05-24 Javier Miranda - - * gnat.dg/discr52.adb: New testcase. - -2018-05-24 Ed Schonberg - - * gnat.dg/others1.adb: New testcase. - -2018-05-24 Justin Squirek - - * gnat.dg/raise_expr.adb: New testcase. - -2018-05-24 Hristian Kirtchev - - * gnat.dg/formal_containers.adb: New testcase. - -2018-05-24 Rainer Orth - - * gcc.target/i386/pr85345.c: Require ifunc support. - -2018-05-24 Richard Sandiford - - * gcc.dg/vect/vect-fma-1.c: New test. - -2018-05-24 Rainer Orth - - * gcc.dg/tree-prof/update-loopch.c: Fix dumpfile name in - scan-tree-dump*. - -2018-05-24 Andre Vieira - - PR target/83009 - * gcc/target/aarch64/store_v2vec_lanes.c: Add extra tests. - -2018-05-23 Jozef Lawrynowicz - - PR target/78849 - * gcc.target/msp430/msp430.exp: Remove -pedantic-errors from - DEFAULT_CFLAGS. - * gcc.target/msp430/pr78849.c: New test. - -2018-05-23 Marek Polacek - - * g++.dg/cpp2a/range-for8.C: New test. - * g++.dg/cpp2a/range-for9.C: New test. - * g++.dg/cpp2a/range-for10.C: New test. - -2017-05-23 Segher Boessenkool - - * lib/target-supports.exp (check_effective_target_be): New. - (check_effective_target_le): New. - -2018-05-23 Marek Polacek - - * g++.dg/cpp2a/range-for1.C: New test. - * g++.dg/cpp2a/range-for2.C: New test. - * g++.dg/cpp2a/range-for3.C: New test. - * g++.dg/cpp2a/range-for4.C: New test. - * g++.dg/cpp2a/range-for5.C: New test. - * g++.dg/cpp2a/range-for6.C: New test. - * g++.dg/cpp2a/range-for7.C: New test. - -2018-05-23 Uros Bizjak - - * gcc.target/i386/cvt-3.c: New test. - -2018-05-23 Uros Bizjak - - * gcc.target/i386/cvt-2.c: New test. - -2018-05-23 Alexander Monakov - - * gcc.dg/pr79985.c: New testcase. - -2018-05-23 Richard Biener - - * gcc.dg/tree-ssa/ssa-fre-66.c: New testcase. - -2018-05-23 Sudakshina Das - - PR target/84882 - * gcc.target/aarch64/pr84882.c: New test. - * gcc.target/aarch64/target_attr_18.c: Likewise. - -2018-05-23 Richard Sandiford - - PR tree-optimization/85853 - * gfortran.dg/vect/pr85853.f90: New test. - -2018-05-23 Hristian Kirtchev - - * gnat.dg/import2.adb: New testcase. - -2018-05-23 Ed Schonberg - - * gnat.dg/discr51.adb: New testcase. - -2018-05-23 Javier Miranda - - * gnat.dg/valid_scalars1.adb: New testcase. - -2018-05-23 Ed Schonberg - - * gnat.dg/iter1.adb, gnat.dg/iter1.ads: New testcase. - -2018-05-23 Hristian Kirtchev - - * gnat.dg/elab5.adb, gnat.dg/elab5_pkg.adb, gnat.dg/elab5_pkg.ads: New - testcase. - -2018-05-23 Hristian Kirtchev - - * gnat.dg/elab4.adb, gnat.dg/elab4_pkg.adb, gnat.dg/elab4_pkg.ads: New - testcase. - -2018-05-23 Bob Duff - - * gnat.dg/addr10.adb: New testcase. - -2018-05-23 Richard Biener - - PR middle-end/85874 - * gcc.dg/Wstrict-overflow-27.c: New testcase. - -2018-05-23 Yury Gribov - - PR tree-optimization/85822 - * c-c++-common/pr85822.c: New test. - -2018-05-23 Richard Biener - - * gcc.dg/tree-ssa/ssa-fre-65.c: New testcase. - -2018-05-22 Janus Weil - - PR fortran/85841 - * gfortran.dg/pr30667.f: Add option "-std=legacy". - -2018-05-22 Martin Sebor - - PR middle-end/85359 - * gcc.dg/attr-nonstring.c: New test. - -2018-05-22 H.J. Lu - - PR target/85345 - * gcc.target/i386/pr85345.c: New test. - -2018-05-22 Luis Machado - - * gcc.target/aarch64/lsl_asr_sbfiz.c: New test. - -2018-05-22 Janus Weil - - PR fortran/85841 - * gfortran.dg/gomp/appendix-a/a.6.1.f90: Replace dg-options by - dg-additional-options. - * gfortran.dg/graphite/block-2.f: Ditto. - * gfortran.dg/graphite/id-19.f: Ditto. - * gfortran.dg/vect/Ofast-pr50414.f90: Ditto. - * gfortran.dg/vect/cost-model-pr34445a.f: Ditto. - * gfortran.dg/vect/pr52580.f: Ditto. - -2018-05-22 Jackson Woodruff - - * gcc.target/aarch64/ldp_stp_6.c: New. - * gcc.target/aarch64/ldp_stp_7.c: New. - * gcc.target/aarch64/ldp_stp_8.c: New. - -2018-05-22 Martin Sebor - - PR c/85623 - * c-c++-common/attr-nonstring-3.c: Adjust. - * c-c++-common/attr-nonstring-4.c: Adjust. - * c-c++-common/attr-nonstring-6.c: New test. - -2018-05-22 Martin Sebor - - PR tree-optimization/85826 - * gcc.dg/Wrestrict-17.c: New test. - -2018-05-22 Richard Sandiford - - * gcc.dg/torture/pr85862.c: Rename to... - * gcc.dg/torture/pr85852.c: ...this. - -2018-05-22 Justin Squirek - - * gnat.dg/warn14.adb: New testcase. - -2018-05-22 Hristian Kirtchev - - * gnat.dg/controlled8.adb: New testcase. - -2018-05-22 Patrick Bernardi - - * gnat.dg/discr50.adb: New testcase. - -2018-05-22 Ed Schonberg - - * gnat.dg/discr49.adb, gnat.dg/discr49_rec1.adb, - gnat.dg/discr49_rec1.ads, gnat.dg/discr49_rec2.adb, - gnat.dg/discr49_rec2.ads: New testcase. - -2018-05-22 Ed Schonberg - - * gnat.dg/gen_formal_pkg.adb, gnat.dg/gen_formal_pkg_a.ads, - gnat.dg/gen_formal_pkg_b.ads, gnat.dg/gen_formal_pkg_w.ads: New - testcase. - -2018-05-22 Ed Schonberg - - * gnat.dg/fixedpnt3.adb: New testcase. - -2018-05-22 Justin Squirek - - * gnat.dg/pure_function1.adb, gnat.dg/pure_function1.ads, - gnat.dg/pure_function2.adb, gnat.dg/pure_function2.ads: New testcases. - -2018-05-22 Richard Sandiford - - PR middle-end/85862 - * gcc.dg/torture/pr85862.c: New test. - -2018-05-22 Richard Biener - - PR tree-optimization/85834 - * g++.dg/torture/pr85834.C: New testcase. - * gcc.dg/tree-ssa/ssa-fre-64.c: Likewise. - -2018-05-22 Martin Liska - - PR ipa/85607 - * g++.dg/ipa/pr85607.C: New test. - -2018-05-22 Richard Biener - - PR tree-optimization/85863 - * gfortran.fortran-torture/compile/pr85863.f: New testcase. - -2018-05-22 Janus Weil - - PR fortran/85841 - * gfortran.dg/assumed_rank_5.f90: Update error message. - * gfortran.dg/assumed_type_4.f90: Ditto. - * gfortran.dg/bind_c_array_params.f03: Ditto. - * gfortran.dg/bind_c_usage_28.f90: Ditto. - * gfortran.dg/c_funloc_tests_5.f03: Ditto. - * gfortran.dg/c_funloc_tests_6.f90: Ditto. - * gfortran.dg/c_loc_tests_11.f03: Ditto. - * gfortran.dg/coarray_atomic_2.f90: Ditto. - * gfortran.dg/coarray_collectives_2.f90: Ditto. - * gfortran.dg/coarray_collectives_10.f90: Ditto. - * gfortran.dg/coarray_collectives_13.f90: Ditto. - * gfortran.dg/rank_3.f90: Ditto. - * gfortran.dg/error_stop_4.f90: Replace -std=f2008ts by -std=f2008. - * gfortran.dg/implicit_14.f90: Ditto. - -2018-05-21 Christian Groessler - - * gcc.c-torture/compile/simd-5.c: Fix comment. - -2018-05-21 Michael Meissner - - PR target/85657 - * gcc.target/powerpc/pr85657-1.c: New test for converting between - __float128, __ibm128, and long double. - * gcc.target/powerpc/pr85657-2.c: Likewise. - * gcc.target/powerpc/pr85657-3.c: Likewise. - * g++.dg/pr85667.C: New test to make sure __ibm128 is - implementated as a separate type internally, and is not just an - alias for long double. - -2018-05-21 Richard Sandiford - - PR tree-optimization/85814 - * gcc.dg/torture/pr85814.c: New test. - -2018-05-21 Paolo Carlini - - PR c++/84588 - * g++.dg/cpp0x/cond1.C: New. - * g++.dg/cpp1y/pr84588-1.C: Likewise. - * g++.dg/cpp1y/pr84588-2.C: Likewise. - * g++.dg/cpp1y/pr84588-3.C: Likewise. - * g++.dg/parse/cond6.C: Likewise. - * g++.dg/parse/cond7.C: Likewise. - * g++.dg/parse/cond8.C: Likewise. - * g++.dg/cpp1z/decomp16.C: Update. - * g++.old-deja/g++.jason/cond.C: Likewise. - -2018-05-21 Steven G. Kargl - - ChangeLog for r260480 - * gfortran.dg/graphite/block-2.f: Adjust testcase for new gfortran - warnings for deleted and obsolescent features. - * gfortran.dg/graphite/id-19.f: Ditto. - * gfortran.dg/graphite/id-20.f: Ditto. - * gfortran.dg/graphite/id-27.f90: Ditto. - * gfortran.dg/graphite/pr82449.f: Ditto. - -2018-05-21 Kyrylo Tkachov - - * gcc.target/aarch64/vec_init_1.c: Scan for LD1 instead of INS for - tiny and large memory models. - -2018-04-04 Ed Schonberg - - * gnat.dg/suppress_initialization.adb, - gnat.dg/suppress_initialization_pkg.ads: New testcase. - -2018-04-04 Ed Schonberg - - * gnat.dg/exit1.adb: New testcase. - -2018-04-04 Ed Schonberg - - * gnat.dg/array30.adb: New testcase. - -2018-04-04 Hristian Kirtchev - - * gnat.dg/sync2.adb, gnat.dg/sync2.ads: New testcase. - -2018-05-21 Kyrylo Tkachov - - * gcc.c-torture/execute/ssad-run.c: New test. - * gcc.c-torture/execute/usad-run.c: Likewise. - * gcc.target/aarch64/ssadv16qi.c: Likewise. - * gcc.target/aarch64/usadv16qi.c: Likewise. - -2018-05-21 Tamar Christina - - * gcc.target/gcc.target/aarch64/sha3.h (veor3q_u8, veor3q_u32, - veor3q_u64, veor3q_s8, veor3q_s16, veor3q_s32, veor3q_s64, vbcaxq_u8, - vbcaxq_u32, vbcaxq_u64, vbcaxq_s8, vbcaxq_s16, vbcaxq_s32, - vbcaxq_s64): New. - * gcc.target/gcc.target/aarch64/sha3_1.c: Likewise. - * gcc.target/gcc.target/aarch64/sha3_1.c: Likewise. - * gcc.target/gcc.target/aarch64/sha3_1.c: Likewise. - -2018-05-21 Janus Weil - - PR fortran/85841 - * gfortran.dg/g77/19990826-3.f: Add option "-std=legacy". - * gfortran.dg/g77/20020307-1.f: Ditto. - * gfortran.dg/g77/980310-3.f: Ditto. - * gfortran.dg/goacc/loop-1-2.f95: Ditto. - * gfortran.dg/goacc/loop-1.f95: Ditto. - * gfortran.dg/gomp/appendix-a/a.6.1.f90: Ditto. - * gfortran.dg/gomp/appendix-a/a.6.2.f90: Ditto. - * gfortran.dg/gomp/do-1.f90: Ditto. - * gfortran.dg/gomp/omp_do1.f90: Ditto. - * gfortran.dg/pr17229.f: Ditto. - * gfortran.dg/pr37243.f: Ditto. - * gfortran.dg/pr49721-1.f: Ditto. - * gfortran.dg/pr58484.f: Ditto. - * gfortran.dg/pr81175.f: Ditto. - * gfortran.dg/pr81723.f: Ditto. - * gfortran.dg/predcom-2.f: Ditto. - * gfortran.dg/vect/Ofast-pr50414.f90: Ditto. - * gfortran.dg/vect/cost-model-pr34445a.f: Ditto. - * gfortran.dg/vect/fast-math-mgrid-resid.f: Ditto. - * gfortran.dg/vect/pr52580.f: Ditto. - -2018-05-20 Paul Thomas - - PR fortran/80657 - * gfortran.dg/char_result_18.f90: New test. - -2018-05-20 Paul Thomas - - PR fortran/49636 - * gfortran.dg/associate_38.f90: New test. - -2018-05-20 Paul Thomas - - PR fortran/82275 - * gfortran.dg/select_type_42.f90: New test. - -2018-05-19 Paul Thomas - - PR fortran/82923 - * gfortran.dg/allocate_assumed_charlen_4.f90: New test. Note - that the patch fixes PR66694 & PR82617, although the testcases - are not explicitly included. - -2018-05-18 Kito Cheng - - * gcc.dg/stack-usage-1.c: Add support for rv32e. - -2018-05-18 Marc Glisse - - PR c++/82899 - * g++.dg/pr82899.C: New testcase. - -2018-05-18 Martin Liska - - * gcc.dg/pr68766.c: Change pruned output. - -2018-05-18 Cesar Philippidis - - PR c++/85782 - * c-c++-common/goacc/pr85782.c: New test. - -2018-05-18 Sudakshina Das - - * gcc.target/aarch64/sve/slp_5.c: Remove xfail for tld1d and tld2d. - -2018-05-18 Kyrylo Tkachov - - * gcc.target/arm/pr62554.c: Delete. - * gcc.target/arm/pr69610-1.c: Likewise. - * gcc.target/arm/pr69610-2.c: Likewise. - -2018-05-18 Kyrylo Tkachov - - * gcc.target/arm/pr40887.c: Update comment. - * lib/target-supports.exp: Don't generate effective target checks - and related helpers for armv5. Update comment. - * gcc.target/arm/armv5_thumb_isa.c: Delete. - * gcc.target/arm/di-longlong64-sync-withhelpers.c: Update effective - target check and options. - -2018-05-18 Prathamesh Kulkarni - - PR middle-end/85817 - * gcc.dg/tree-ssa/pr83648.c: Change scan-tree-dump to - scan-tree-dump-not for h. - -2018-05-18 Richard Biener - - * gcc.dg/tree-ssa/pr21559.c: Adjust. - * gcc.dg/tree-ssa/pr45397.c: Likewise. - * gcc.dg/tree-ssa/pr61839_1.c: Likewise. - * gcc.dg/tree-ssa/pr61839_2.c: Likewise. - * gcc.dg/tree-ssa/pr61839_4.c: Likewise. - * gcc.dg/tree-ssa/vrp17.c: Likewise. - * gcc.dg/tree-ssa/vrp18.c: Likewise. - * gcc.dg/tree-ssa/vrp23.c: Likewise. - * gcc.dg/tree-ssa/vrp24.c: Likewise. - * gcc.dg/tree-ssa/vrp58.c: Likewise. - * gcc.dg/vrp-min-max-1.c: Likewise. - * gcc.dg/vrp-min-max-3.c: New testcase. - -2018-05-18 Richard Biener - - * gcc.dg/tree-ssa/ssa-dse-35.c: New testcase. - * gcc.dg/graphite/scop-10.c: Adjust to avoid dead code. - * gcc.dg/graphite/scop-6.c: Likewise. - * gcc.dg/graphite/scop-7.c: Likewise. - * gcc.dg/graphite/scop-8.c: Likewise. - * gcc.dg/graphite/scop-9.c: Likewise. - -2018-05-18 Kyrylo Tkachov - - * gcc.target/aarch64/vect-init-ld1.c: New test. - -2018-05-18 Martin Liska - - * gcc.dg/tree-ssa/vrp104.c: Adjust dump file that is scanned. - * gcc.dg/tree-prof/update-loopch.c: Likewise. - -2018-05-18 Martin Liska - - * gcc.dg/ipa/ipa-icf-39.c: New test. - * gcc.dg/pr68766.c: Adjust pruned output. - -2018-05-18 Richard Sandiford - - * lib/target-supports.exp (check_effective_target_scalar_all_fma): - New proc. - * gcc.dg/fma-1.c: New test. - * gcc.dg/fma-2.c: Likewise. - * gcc.dg/fma-3.c: Likewise. - * gcc.dg/fma-4.c: Likewise. - * gcc.dg/fma-5.c: Likewise. - * gcc.dg/fma-6.c: Likewise. - * gcc.dg/fma-7.c: Likewise. - * gcc.dg/gimplefe-26.c: Use .FMA instead of __FMA and require - scalar_all_fma. - * gfortran.dg/reassoc_7.f: Pass -ffp-contract=off. - * gfortran.dg/reassoc_8.f: Likewise. - * gfortran.dg/reassoc_9.f: Likewise. - * gfortran.dg/reassoc_10.f: Likewise. - -2018-05-17 Jim Wilson - - * gcc.target/riscv/switch-qi.c: New. - * gcc.target/riscv/switch-si.c: New. - -2018-05-17 Pat Haugen - - PR target/85698 - * gcc.target/powerpc/pr85698.c: New test. - -2018-05-17 Richard Biener - - * gcc.dg/tree-ssa/ssa-fre-63.c: New testcase. - -2018-05-17 Bin Cheng - - PR tree-optimization/85793 - * gcc.dg/vect/pr85793.c: New test. - -2018-05-17 Richard Sandiford - - * gcc.dg/gimplefe-28.c: New test. - * gcc.dg/asan/use-after-scope-9.c: Adjust expected output for - internal function calls. - * gcc.dg/goacc/loop-processing-1.c: Likewise. - -2018-05-17 Martin Liska - - * gcc.dg/plugin/ggcplug.c (plugin_init): Do not use - space in between 'G_' and '('. - -2018-05-17 Jakub Jelinek - - PR target/85323 - * gcc.target/i386/pr85323-7.c: New test. - * gcc.target/i386/pr85323-8.c: New test. - * gcc.target/i386/pr85323-9.c: New test. - - PR target/85323 - * gcc.target/i386/pr85323-4.c: New test. - * gcc.target/i386/pr85323-5.c: New test. - * gcc.target/i386/pr85323-6.c: New test. - - PR target/85323 - * gcc.target/i386/pr85323-1.c: New test. - * gcc.target/i386/pr85323-2.c: New test. - * gcc.target/i386/pr85323-3.c: New test. - - * gcc.target/i386/avx512f-set-v32hi-1.c: New test. - * gcc.target/i386/avx512f-set-v32hi-2.c: New test. - * gcc.target/i386/avx512f-set-v32hi-3.c: New test. - * gcc.target/i386/avx512f-set-v32hi-4.c: New test. - * gcc.target/i386/avx512f-set-v32hi-5.c: New test. - * gcc.target/i386/avx512f-set-v64qi-1.c: New test. - * gcc.target/i386/avx512f-set-v64qi-2.c: New test. - * gcc.target/i386/avx512f-set-v64qi-3.c: New test. - * gcc.target/i386/avx512f-set-v64qi-4.c: New test. - * gcc.target/i386/avx512f-set-v64qi-5.c: New test. - * gcc.target/i386/avx512f-setzero-1.c: New test. - -2018-05-17 James Greenhalgh - - * gcc.target/aarch64/vect-slp-dup.c: New. - -2018-05-17 Paolo Carlini - - PR c++/85713 - * g++.dg/cpp1y/lambda-generic-85713-2.C: New. - -2018-05-17 Olga Makhotina - - * gcc.target/i386/builtin_target.c: Test goldmont-plus. - * gcc.target/i386/funcspec-56.inc: Tests for arch=goldmont-plus. - -2018-05-17 Richard Biener - - PR tree-optimization/85757 - * gcc.dg/tree-ssa/ssa-dse-34.c: New testcase. - -2018-05-16 Marek Polacek - - PR c++/85363 - * g++.dg/cpp0x/initlist-throw1.C: New test. - * g++.dg/cpp0x/initlist-throw2.C: New test. - -2018-05-16 Carl Love - - * gcc.target/powerpc/vsx-vector-6-be.c: Remove file. - * gcc.target/powerpc/vsx-vector-6-le.c (dg-final): Update counts for - xvcmpeqdp., xvcmpgtdp., xvcmpgedp., xxlxor, xvrdpi. - -2018-05-16 Richard Biener - - * gcc.dg/tree-ssa/ssa-dse-32.c: New testcase. - * gcc.dg/tree-ssa/ssa-dse-33.c: Likewise. - * gcc.dg/uninit-pr81897-2.c: Use -fno-tree-dse. - -2018-05-16 Richard Sandiford - - * gcc.target/aarch64/sve/vcond_10.c: New test. - * gcc.target/aarch64/sve/vcond_10_run.c: Likewise. - * gcc.target/aarch64/sve/vcond_11.c: Likewise. - * gcc.target/aarch64/sve/vcond_11_run.c: Likewise. - -2018-05-15 Martin Sebor - - PR tree-optimization/85753 - * gcc.dg/Wrestrict-10.c: Adjust. - * gcc.dg/Wrestrict-16.c: New test. - -2018-05-15 Martin Sebor - - PR middle-end/85643 - * c-c++-common/attr-nonstring-7.c: New test. - -2018-05-15 Richard Biener - - * gcc.dg/tree-ssa/ssa-dse-31.c: New testcase. - -2018-05-15 Prathamesh Kulkarni - - PR tree-optimization/83648 - * gcc.dg/tree-ssa/pr83648.c: New test. - * gcc.dg/tree-ssa/pr83648-2.c: Likewise. - -2018-05-14 Prathamesh Kulkarni - - PR ipa/85734 - * gcc.dg/ipa/pr85734.c: New test. - -2018-05-14 Eric Botcazou - - PR target/85756 - * gnat.dg/opt70.adb: New test. - * gnat.dg/opt70_pkg.ad[sb]: New helper. - -2018-05-14 Kyrylo Tkachov - - * gcc.target/aarch64/crypto-fuse-1.c: New test. - * gcc.target/aarch64/crypto-fuse-2.c: Likewise. - -2018-05-14 Wilco Dijkstra - - * gcc.target/aarch64/vmov_n_1.c: Update test. - * gcc.target/aarch64/vfp-1.c: Update test. - -2018-05-14 Jakub Jelinek - - PR target/85756 - * gcc.c-torture/execute/pr85756.c: New test. - -2018-05-14 Sebastian Peryt - - * gcc.target/i386/cldemote-1.c: New test. - -2018-05-13 Paul Thomas - - PR fortran/85742 - * gfortran.dg/assumed_type_9.f90 : New test. - -2018-05-11 Steven G. Kargl - - PR fortran/85542 - * gfortran.dg/pr85542.f90: New test. - -2018-05-11 Martin Jambor - - PR ipa/85655 - * g++.dg/lto/pr85655_0.C: New test. - -2018-05-11 Sebastian Peryt - - * gcc.target/i386/tpause-1.c: New test. - * gcc.target/i386/umonitor-1.c: New test. - -2018-05-11 Jakub Jelinek - - PR c/85696 - * c-c++-common/gomp/pr85696.c: New test. - -2018-05-11 Allan Sandfeld Jensen - Jakub Jelinek - - PR tree-optimization/85692 - * gcc.target/i386/pr85692.c: New test. - -2018-05-11 Martin Liska - - PR sanitizer/85556 - * c-c++-common/ubsan/attrib-6.c: New test. - -2018-05-10 Steven G. Kargl - - PR fortran/85687 - * gfortran.dg/pr85687.f90: new test. - -2018-05-10 Steven G. Kargl - - PR fortran/85521 - * gfortran.dg/pr85521_1.f90: New test. - * gfortran.dg/pr85521_2.f90: New test. - -2018-05-10 Steven G. Kargl - - PR fortran/70870 - * gfortran.dg/pr70870_1.f90: New test. - -2018-05-10 Uros Bizjak - - * gcc.target/i386/xgetsetbv.c: Check also variable arguments. - -2018-05-10 Jakub Jelinek - - PR c++/85662 - * g++.dg/ext/offsetof2.C: New test. - -2018-05-10 Paul Thomas - - PR fortran/68846 - * gfortran.dg/temporary_3.f90 : New test. - - PR fortran/70864 - * gfortran.dg/temporary_2.f90 : New test. - -2018-05-10 Segher Boessenkool - - * gcc.dg/vmx/extract-be-order.c: Delete testcase. - * gcc.dg/vmx/extract-vsx-be-order.c: Delete testcase. - * gcc.dg/vmx/insert-be-order.c: Delete testcase. - * gcc.dg/vmx/insert-vsx-be-order.c: Delete testcase. - * gcc.dg/vmx/ld-be-order.c: Delete testcase. - * gcc.dg/vmx/ld-vsx-be-order.c: Delete testcase. - * gcc.dg/vmx/lde-be-order.c: Delete testcase. - * gcc.dg/vmx/ldl-be-order.c: Delete testcase. - * gcc.dg/vmx/ldl-vsx-be-order.c: Delete testcase. - * gcc.dg/vmx/merge-be-order.c: Delete testcase. - * gcc.dg/vmx/merge-vsx-be-order.c: Delete testcase. - * gcc.dg/vmx/mult-even-odd-be-order.c: Delete testcase. - * gcc.dg/vmx/pack-be-order.c: Delete testcase. - * gcc.dg/vmx/perm-be-order.c: Delete testcase. - * gcc.dg/vmx/splat-be-order.c: Delete testcase. - * gcc.dg/vmx/splat-vsx-be-order.c: Delete testcase. - * gcc.dg/vmx/st-be-order.c: Delete testcase. - * gcc.dg/vmx/st-vsx-be-order.c: Delete testcase. - * gcc.dg/vmx/ste-be-order.c: Delete testcase. - * gcc.dg/vmx/stl-be-order.c: Delete testcase. - * gcc.dg/vmx/stl-vsx-be-order.c: Delete testcase. - * gcc.dg/vmx/sum2s-be-order.c: Delete testcase. - * gcc.dg/vmx/unpack-be-order.c: Delete testcase. - * gcc.dg/vmx/vsums-be-order.c: Delete testcase. - * gcc.target/powerpc/vec-setup-be-double.c: Delete testcase. - * gcc.target/powerpc/vec-setup-be-long.c: Delete testcase. - * gcc.target/powerpc/vec-setup.h: Remove -maltivec=be support. - -2018-05-10 Jakub Jelinek - - PR tree-optimization/85699 - * gcc.dg/nextafter-1.c (NO_LONG_DOUBLE): Define if not defined. Use - !NO_LONG_DOUBLE instead of __LDBL_MANT_DIG__ != 106. - * gcc.dg/nextafter-2.c: Include stdlib.h. For glibc < 2.24 define - NO_LONG_DOUBLE to 1 before including nextafter-1.c. - -2018-05-10 Eric Botcazou - - * g++.dg/tls/pr85400.C: New test. - -2018-05-09 Paolo Carlini - - PR c++/85713 - * g++.dg/cpp1y/lambda-generic-85713.C: New. - -2018-05-09 Carl Love - - * gcc.target/powerpc/builtins-8-runnable.c: New builtin test file. - -2018-05-09 Paolo Carlini - - PR c++/85713 - Revert: - 2018-05-08 Paolo Carlini - - PR c++/84588 - * g++.dg/cpp1y/pr84588.C: New. - -2018-05-09 Andreas Schwab - - * gcc.target/aarch64/sve/vcond_6.c: Add missing brace. - -2018-05-09 Richard Sandiford - - * gcc.target/aarch64/store_lane_spill_1.c: New test. - * gcc.target/aarch64/sve/store_lane_spill_1.c: Likewise. - -2018-05-08 Carl Love - * gcc.target/powerpc/builtins-8-p9-runnable.c: Add new test file. - -2018-05-08 Paolo Carlini - - PR c++/84588 - * g++.dg/cpp1y/pr84588.C: New. - -2018-05-08 Marek Polacek - - PR c++/85695 - * g++.dg/cpp1z/constexpr-if22.C: New test. - -2018-05-08 Uros Bizjak - - PR target/85693 - * gcc.target/i386/pr85693.c: New test. - -2018-05-08 Jakub Jelinek - - PR target/85683 - * gcc.target/i386/pr49095.c: Add -masm=att to dg-options. Add - scan-assembler-times checking that except for [fh]*xor other functions - don't use any load instructions. - -2018-05-08 Olga Makhotina - - * gcc.target/i386/builtin_target.c: Test goldmont. - * gcc.target/i386/funcspec-56.inc: Tests for arch=goldmont and - arch=silvermont. - -2018-05-08 Jakub Jelinek - - PR target/85572 - * g++.dg/other/sse2-pr85572-1.C: New test. - * g++.dg/other/sse2-pr85572-2.C: New test. - * g++.dg/other/sse4-pr85572-1.C: New test. - * g++.dg/other/avx2-pr85572-1.C: New test. - - PR target/85317 - * gcc.target/i386/pr85317.c: New test. - * gcc.target/i386/avx2-vpmovmskb-2.c (avx2_test): Add asm volatile - optimization barrier to avoid optimizing away the expected insn. - - PR target/85480 - * gcc.target/i386/avx512dq-pr85480-1.c: New test. - * gcc.target/i386/avx512dq-pr85480-2.c: New test. - -2018-05-08 Richard Sandiford - - * g++.dg/other/sve_const_pred_1.C: Rename to... - * g++.target/aarch64/sve/const_pred_1.C: ...this. Remove aarch64 - target selectors and explicit -march options. - * g++.dg/other/sve_const_pred_2.C: Rename to... - * g++.target/aarch64/sve/const_pred_2.C: ...this and adjust likewise. - * g++.dg/other/sve_const_pred_3.C: Rename to... - * g++.target/aarch64/sve/const_pred_3.C: ...this and adjust likewise. - * g++.dg/other/sve_const_pred_4.C: Rename to... - * g++.target/aarch64/sve/const_pred_4.C: ...this and adjust likewise. - * g++.dg/other/sve_tls_2.C: Rename to... - * g++.target/aarch64/sve/tls_2.C: ...this and adjust likewise. - * g++.dg/other/sve_vcond_1.C: Rename to... - * g++.target/aarch64/sve/vcond_1.C: ...this and adjust likewise. - * g++.dg/other/sve_vcond_1_run.C: Rename to... - * g++.target/aarch64/sve/vcond_1_run.C: ...this and adjust likewise. - -2018-05-08 Richard Sandiford - - PR testsuite/85586 - * gcc.dg/vect/pr85586.c: Restrict LOOP VECTORIZED test to - !vect_no_align. - -2018-05-08 Paolo Carlini - - PR c++/57429 - * g++.dg/cpp0x/deleted14.C: New. - -2018-05-08 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.target/aarch64/sve/vcond_6.c: Do not expect any ANDs. - XFAIL the BIC test. - * gcc.target/aarch64/sve/vcond_7.c: New test. - * gcc.target/aarch64/sve/vcond_7_run.c: Likewise. - -2018-05-08 Paolo Carlini - - PR c++/70563 - * g++.dg/cpp0x/sfinae62.C: New. - -2018-05-08 Richard Sandiford - - * gcc.target/aarch64/sve/vcond_6.c (LOOP): Unconditionally - load from src[i]. - -2018-05-08 Paolo Carlini - - PR c++/80691 - * g++.dg/cpp0x/narrowing1.C: New. - -2018-05-08 Richard Biener - - PR middle-end/85588 - * gcc.dg/torture/pr85574.c: Rename to... - * gcc.dg/torture/pr85588.c: ... this. - -2018-05-08 Thomas Koenig - - PR fortran/54613 - * gfortran.dg/minmaxloc_12.f90: New test case. - * gfortran.dg/minmaxloc_13.f90: New test case. - -2018-05-07 Nathan Sidwell - - * g++.dg/cpp0x/range-for10.C: Delete. - * g++.dg/ext/forscope1.C: Delete. - * g++.dg/ext/forscope2.C: Delete. - * g++.dg/template/for1.C: Delete. - -2018-05-07 Jeff Law - - * gfortran.dg/linefile.f90: New test. - -2018-05-07 Christophe Lyon - - * gcc.dg/nextafter-2.c: Add c99_runtime effective target - and options. - -2018-05-06 Jakub Jelinek - - PR c++/85659 - * g++.dg/ext/asm14.C: New test. - * g++.dg/ext/asm15.C: New test. - * g++.dg/ext/asm16.C: New test. - -2018-05-06 Michael Eager - - * gcc.target/microblaze/others/picdtr.c: Correct option - -fPIE -mpic-data-is-text-relative. - -2018-05-06 Andrew Sadek - - * gcc.target/microblaze/others/picdtr.c: Add test for - -fPIE -mpic-data-is-text-relative. - -2018-05-06 Andre Vehreschild - - PR fortran/85507 - * gfortran.dg/coarray_dependency_1.f90: New test. - * gfortran.dg/coarray_lib_comm_1.f90: Fix counting caf-expressions. - -2018-05-04 Pekka Jääskeläinen - - * brig.dg/test/gimple/smoke_test.hsail: Fix the test - to match the currently produced gimple. - -2018-05-04 Carl Love - - * gcc.target/powerpc/vsx-vector-6.h (foo): Add test for vec_max, - vec_trunc. - * gcc.target/powerpc/vsx-vector-6-le.c (dg-final): Update xvcmpeqdp, - xvcmpgtdp, xvcmpgedp counts. Add xxsel counts. - * gcc.target/powerpc/vsx-vector-6-be.c (dg-final): Update xvcmpgtdp, - xvcmpgedp counts. Add xxsel counts. - -2018-05-04 Richard Biener - - PR middle-end/85627 - * g++.dg/torture/pr85627.C: New testcase. - -2018-05-04 Richard Biener - - PR middle-end/85574 - * gcc.dg/torture/pr85574.c: New testcase. - * gcc.dg/torture/pr57656.c: Use dg-additional-options. - -2018-05-04 Jakub Jelinek - - PR libstdc++/85466 - * gcc.dg/nextafter-1.c: New test. - * gcc.dg/nextafter-2.c: New test. - * gcc.dg/nextafter-3.c: New test. - * gcc.dg/nextafter-4.c: New test. - -2018-05-03 Nathan Sidwell - - Remove -ffriend-injection. - * g++.old-deja/g++.jason/scoping15.C: Delete. - * g++.old-deja/g++.mike/net43.C: Delete. - -2018-05-03 Jakub Jelinek - - PR target/85530 - * gcc.target/i386/avx512f-vpmullq-1.c: New test. - * gcc.target/i386/avx512f-vpmullq-2.c: New test. - * gcc.target/i386/avx512dq-vpmullq-3.c: New test. - * gcc.target/i386/avx512dq-vpmullq-4.c: New test. - -2018-05-03 Tom de Vries - - PR testsuite/85106 - * lib/scanoffloadtree.exp: New file. - -2018-05-03 Richard Biener - - PR tree-optimization/85615 - * gcc.dg/torture/pr85615.c: New testcase. - -2018-05-03 Kyrylo Tkachov - - PR tree-optimization/70291 - * gcc.dg/complex-6.c: New test. - * gcc.dg/complex-7.c: Likewise. - -2018-05-03 Richard Biener - - PR testsuite/85579 - * fortran.dg/pr51434.f90: Truncate transfer argument. - -2018-05-02 Jakub Jelinek - - PR target/85582 - * gcc.c-torture/execute/pr85582-3.c: New test. - -2018-05-02 Paolo Carlini - Jason Merrill - - PR c++/68374 - * g++.dg/warn/Wshadow-13.C: New. - * g++.dg/warn/Wshadow-14.C: Likewise. - -2018-05-02 Tom de Vries - - PR libgomp/82428 - * c-c++-common/goacc/builtin-goacc-parlevel-id-size-2.c: New test. - * c-c++-common/goacc/builtin-goacc-parlevel-id-size.c: New test. - -2018-05-02 David Pagan - - PR c/30552 - * gcc.dg/noncompile/pr30552-1.c: New test. - * gcc.dg/noncompile/pr30552-2.c: New test. - * gcc.dg/noncompile/pr30552-3.c: New test. - * gcc.dg/noncompile/pr30552-4.c: New test. - -2018-05-02 Richard Biener - - PR tree-optimization/85597 - * gcc.dg/vect/pr85597.c: New testcase. - -2018-05-02 Tom de Vries - - PR testsuite/85106 - * gcc.dg/ipa/ipa-icf-38.c: Use scan-ltrans-tree-dump. - * lib/scanltranstree.exp: New file. - * lib/target-supports.exp (scan-ltrans-tree-dump_required_options) - (scan-ltrans-tree-dump-times_required_options) - (scan-ltrans-tree-dump-not_required_options) - (scan-ltrans-tree-dump-dem_required_options) - (scan-ltrans-tree-dump-dem-not_required_options): New proc. - * lib/gcc-dg.exp: Include scanltranstree.exp. - -2018-05-02 Tom de Vries - - PR testsuite/85106 - * gcc.dg/ipa/ipa-icf-38.c: New test. - * gcc.dg/ipa/ipa-icf-38a.c: New test. - * lib/scandump.exp (dump-base): New proc. - (scan-dump, scan-dump-times, scan-dump-not, scan-dump-dem) - (scan-dump-dem-not): Add and handle parameter for suffix of the dump - base. - * lib/scanipa.exp: Add "" argument to scan-dump calls. - * lib/scanlang.exp: Same. - * lib/scanrtl.exp: Same. - * lib/scantree.exp: Same. - * lib/scanwpaipa.exp: New file. - * lib/gcc-dg.exp: Include scanwpaipa.exp. - -2018-05-02 Richard Biener - - PR middle-end/85567 - * gcc.dg/torture/pr85567.c: New testcase. - -2018-05-02 Jakub Jelinek - - PR target/85582 - * gcc.c-torture/execute/pr85582-1.c: New test. - * gcc.c-torture/execute/pr85582-2.c: New test. - -2018-05-02 Richard Sandiford - - PR tree-optimization/85586 - * gcc.dg/vect/pr85586.c: New test. - -2018-05-01 Marc Glisse - - PR tree-optimization/85143 - * gcc.dg/tree-ssa/minmax-loopend.c: Extend and split... - * gcc.dg/tree-ssa/minmax-loopend-2.c: ... here. - -2018-05-01 David Malcolm - - PR c/84258 - * c-c++-common/Wformat-pr84258.c: New test. - -2018-05-01 Prathamesh Kulkarni - - PR tree-optimization/82665 - * gcc.dg/tree-ssa/pr82665.c: New test. - -2018-04-30 David Malcolm - - PR c++/85523 - * gcc.dg/plugin/diagnostic-test-show-locus-generate-patch.c - (test_add_fixit_insert_formatted_single_line): New function. - (test_add_fixit_insert_formatted_multiline): New function. - Extend expected output of generated patch to include fix-it hints - for these. - * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c: Include - "gcc-rich-location.h". Add test coverage for - gcc_rich_location::add_fixit_insert_formatted. - -2018-04-30 David Malcolm - - * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c - (test_show_locus): Update for location_get_source_line returning a - char_span. Use char_span for handling words in the - "test_many_nested_locations" fix-it example. - -2018-04-30 Claudiu Zissulescu - - * gcc.target/arc/interrupt-8.c: Update test. - * gcc.target/arc/loop-4.c: Likewise. - * gcc.target/arc/loop-hazard-1.c: Likewise. - * gcc.target/arc/sdata-3.c: Likewise. - -2018-04-30 Claudiu Zissulescu - - * gcc.target/arc/store-merge-1.c: New test. - * gcc.target/arc/add_n-combine.c: Update test. - -2018-04-30 Andrew Sadek - - Microblaze Target: PIC data text relative - - * gcc.target/microblaze/others/data_var1.c: Include - PIC case of r20 base register. - * gcc.target/microblaze/others/data_var2.c: Ditto. - * gcc.target/microblaze/others/picdtr.c: Add new - test case for -mpic-is-data-text-relative. - * gcc.target/microblaze/others/sdata_var1.c: Add - * gcc.target/microblaze/others/sdata_var2.c: Ditto. - * gcc.target/microblaze/others/sdata_var3.c: Ditto. - * gcc.target/microblaze/others/sdata_var4.c: Ditto. - * gcc.target/microblaze/others/sdata_var5.c: Ditto. - * gcc.target/microblaze/others/sdata_var6.c: Ditto. - * gcc.target/microblaze/others/string_cst1_gpopt.c: - Ditto. - * gcc.target/microblaze/others/string_cst2_gpopt.c: - Ditto. - -2018-04-30 Richard Biener - - PR tree-optimization/28364 - PR tree-optimization/85275 - * gcc.dg/tree-ssa/copy-headers-5.c: New testcase. - * gcc.dg/tree-ssa/predcom-8.c: Likewise. - * gcc.dg/tree-ssa/cunroll-13.c: Rewrite to gimple testcase. - * gcc.dg/tree-ssa/ivopt_mult_1.c: XFAIL. - * gcc.dg/tree-ssa/ivopt_mult_1g.c: Add gimple variant that - still passes. - * gcc.dg/tree-ssa/ivopt_mult_2.c: XFAIL. - * gcc.dg/tree-ssa/ivopt_mult_2g.c: Add gimple variant that - still passes. - * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Adjust. - * gcc.dg/tree-ssa/20030710-1.c: Likewise. - * gcc.dg/tree-ssa/20030711-1.c: Likewise. - -2018-04-28 Uros Bizjak - - PR target/84431 - * gcc.target/i386/pr84431.c: New test. - -2018-04-27 Martin Jambor - - PR ipa/85549 - * g++.dg/ipa/pr85549.C: New test. - -2018-04-27 Jakub Jelinek - - PR c++/85553 - * g++.dg/cpp0x/Wzero-as-null-pointer-constant-3.C: Add dg-bogus - directive. - * g++.dg/cpp0x/constexpr-85553.C: New test. - -2018-04-27 David Malcolm - - PR c++/85515 - * g++.dg/pr85515-1.C: New test. - * g++.dg/pr85515-2.C: New test. - -2018-04-27 Paolo Carlini - - PR c++/84691 - * g++.dg/cpp0x/friend3.C: New. - -2018-04-27 Kyrylo Tkachov - - PR target/82518 - * lib/target-supports.exp (check_effective_target_vect_load_lanes): - Use check_effective_target_arm_little_endian. - -2018-04-27 Jakub Jelinek - - PR tree-optimization/85529 - * gcc.c-torture/execute/pr85529-1.c: New test. - * gcc.c-torture/execute/pr85529-2.c: New test. - * gcc.dg/pr85529.c: New test. - -2018-04-26 Maciej W. Rozycki - - * gcc.target/mips/data-sym-pool.c (dg-options): Match `ld' and - `.dword' in addition to `lw' and `.word'. - -2018-04-26 Maciej W. Rozycki - - * gcc.target/mips/data-sym-pool.c (dg-options): Add `-mplt'. - -2018-04-26 Eric Botcazou - - * gnat.dg/loop_optimization24.adb: New test. - -2018-04-26 Richard Biener - - PR tree-optimization/85116 - * gcc.dg/tree-ssa/copy-headers-2.c: New testcase. - * gcc.dg/tree-ssa/copy-headers-3.c: Likewise. - * gcc.dg/tree-ssa/copy-headers-4.c: Likewise. - * gcc.dg/tree-ssa/loadpre6.c: Adjust. - -2018-04-25 Sebastian Peryt - - PR target/85473 - * gcc.target/i386/pr85473-1.c: New test. - * gcc.target/i386/pr85473-2.c: New test. - -2018-04-25 Nathan Sidwell - Jakub Jelinek - - PR c++/85437 - PR c++/49171 - * g++.dg/cpp0x/addressof1.C: Make reinterpret cases runtime checks. - * g++.dg/cpp0x/constexpr-cast.C: Remove xfails - * g++.dg/cpp0x/constexpr-nullptr-2.C: Likewise. - * g++.dg/cpp0x/constexpr-pmf1.C: Check when optimized. - * g++.dg/cpp0x/pr85437-1.C: New. - * g++.dg/cpp0x/pr85437-2.C: New. - * g++.dg/cpp0x/pr85437-3.C: New. - * g++.dg/cpp0x/pr85437-4.C: New. - -2018-04-24 Steven G. Kargl - - PR fortran/85520 - * gfortran.dg/pr85520.f90: New test. - -2018-04-24 Kyrylo Tkachov - - PR target/85512 - * gcc.dg/pr85512.c: New test. - -2018-04-24 H.J. Lu - - PR target/85485 - * g++.dg/cet-notrack-1.C (dg-options): Remove -mcet. - * g++.dg/torture/pr85334.C (dg-additional-options): Likwise. - * gcc.dg/pr85388-1.c (dg-options): Likwise. - * gcc.dg/pr85388-2.c (dg-options): Likwise. - * gcc.dg/pr85388-3.c (dg-options): Likwise. - * gcc.dg/pr85388-4.c (dg-options): Likwise. - * gcc.dg/pr85388-5.c (dg-options): Likwise. - * gcc.dg/pr85388-6.c (dg-options): Likwise. - * gcc.dg/torture/pr85397-1.c (dg-additional-options): Likwise. - * gcc.target/i386/attr-nocf-check-1a.c (dg-options): Likwise. - * gcc.target/i386/attr-nocf-check-3a.c (dg-options): Likwise. - * gcc.target/i386/cet-label.c (dg-options): Likwise. - * gcc.target/i386/cet-label-2.c (dg-options): Likwise. - * gcc.target/i386/cet-notrack-1b.c (dg-options): Likwise. - * gcc.target/i386/cet-notrack-2a.c (dg-options): Likwise. - * gcc.target/i386/cet-notrack-2b.c (dg-options): Likwise. - * gcc.target/i386/cet-notrack-3.c (dg-options): Likwise. - * gcc.target/i386/cet-notrack-4b.c (dg-options): Likwise. - * gcc.target/i386/cet-notrack-5a.c (dg-options): Likwise. - * gcc.target/i386/cet-notrack-5b.c (dg-options): Likwise. - * gcc.target/i386/cet-notrack-6a.c (dg-options): Likwise. - * gcc.target/i386/cet-notrack-6b.c (dg-options): Likwise. - * gcc.target/i386/cet-notrack-7.c (dg-options): Likwise. - * gcc.target/i386/cet-notrack-icf-2.c (dg-options): Likwise. - * gcc.target/i386/cet-notrack-icf-4.c (dg-options): Likwise. - * gcc.target/i386/cet-property-1.c (dg-options): Likwise. - * gcc.target/i386/cet-property-2.c (dg-options): Likwise. - * gcc.target/i386/cet-sjlj-1.c (dg-options): Likwise. - * gcc.target/i386/cet-sjlj-2.c (dg-options): Likwise. - * gcc.target/i386/cet-sjlj-3.c (dg-options): Likwise. - * gcc.target/i386/cet-sjlj-4.c (dg-options): Likwise. - * gcc.target/i386/cet-sjlj-5.c (dg-options): Likwise. - * gcc.target/i386/cet-sjlj-6a.c (dg-options): Likwise. - * gcc.target/i386/cet-sjlj-6b.c (dg-options): Likwise. - * gcc.target/i386/cet-switch-1.c (dg-options): Likwise. - * gcc.target/i386/cet-switch-2.c (dg-options): Likwise. - * gcc.target/i386/cet-switch-3.c (dg-options): Likwise. - * gcc.target/i386/indirect-thunk-11.c (dg-options): Likwise. - * gcc.target/i386/indirect-thunk-12.c (dg-options): Likwise. - * gcc.target/i386/indirect-thunk-attr-12.c (dg-options): Likwise. - * gcc.target/i386/indirect-thunk-attr-13.c (dg-options): Likwise. - * gcc.target/i386/indirect-thunk-attr-14.c (dg-options): Likwise. - * gcc.target/i386/indirect-thunk-attr-15.c (dg-options): Likwise. - * gcc.target/i386/indirect-thunk-attr-16.c (dg-options): Likwise. - * gcc.target/i386/indirect-thunk-extern-8.c (dg-options): Likwise. - * gcc.target/i386/indirect-thunk-extern-9.c (dg-options): Likwise. - * gcc.target/i386/indirect-thunk-extern-10.c (dg-options): Likwise. - * gcc.target/i386/pr82659-1.c (dg-options): Likwise. - * gcc.target/i386/pr82659-2.c (dg-options): Likwise. - * gcc.target/i386/pr82659-3.c (dg-options): Likwise. - * gcc.target/i386/pr82659-4.c (dg-options): Likwise. - * gcc.target/i386/pr82659-5.c (dg-options): Likwise. - * gcc.target/i386/pr82659-6.c (dg-options): Likwise. - * gcc.target/i386/pr84146.c (dg-options): Likwise. - * gcc.target/i386/pr85403.c (dg-options): Likwise. - * gcc.target/i386/pr85404.c (dg-options): Likwise. - * gcc.target/i386/cet-intrin-3.c (dg-options): Replace -mcet - with -mshstk. - * gcc.target/i386/cet-intrin-5.c (dg-options): Likwise. - * gcc.target/i386/cet-intrin-6.c (dg-options): Likwise. - * gcc.target/i386/cet-intrin-7.c (dg-options): Likwise. - * gcc.target/i386/cet-intrin-8.c (dg-options): Likwise. - * gcc.target/i386/cet-intrin-9.c (dg-options): Likwise. - * gcc.target/i386/cet-intrin-10.c (dg-options): Likwise. - * gcc.target/i386/cet-rdssp-1.c (dg-options): Likwise. - * (dg-options): Likwise. - * gcc.target/i386/cet-notrack-1a.c (dg-options): Remove - -mno-cet. - * gcc.target/i386/cet-notrack-4a.c (dg-options): Likwise. - * gcc.target/i386/cet-label-3.c: Removed. - * gcc.target/i386/cet-property-3.c: Likwise. - * gcc.target/i386/cet-sjlj-7.c: Likwise. - -2018-04-24 Jakub Jelinek - - PR target/85511 - * gcc.target/i386/pr85511.c: New test. - - PR target/85503 - * g++.dg/ext/pr85503.C: New test. - - PR target/85508 - * gcc.target/i386/pr85508.c: New test. - -2018-04-24 Andreas Krebbel - - PR tree-optimization/85478 - * g++.dg/pr85478.C: New test. - -2018-04-23 Eric Botcazou - - * g++.dg/torture/pr85496.C: New test. - -2018-04-23 Andrey Belevantsev - - PR rtl-optimization/85423 - * gcc.dg/pr85423.c: New test. - -2018-04-20 Martin Sebor - - PR c/85365 - * gcc.dg/Wrestrict-15.c: New test. - -2018-04-20 Michael Meissner - - PR target/85456 - * gcc.target/powerpc/pr85456.c: New test. - -2018-04-20 Bill Schmidt - - * g++.dg/ext/undef-bool-1.C: Require lp64. - * gcc.target/powerpc/undef-bool-2.c: Likewise. - -2018-04-20 Jeff Law - - * gcc.dg/stack-check-5.c: Improve dg-skip-if selector for the - stack protector. - * gcc.dg/stack-check-6.c: Likewise. - * gcc.dg/stack-check-6a.c: Likewise. - * gcc.target/i386/stack-check-17.c: Add dg-skip-if selector. - * gcc.target/i386/stack-check-18.c: Likewise. - * gcc.target/i386/stack-check-19.c: Likewise. - -2018-04-20 Kyrylo Tkachov - - PR testsuite/85483 - * gcc.target/aarch64/sve/vcond_1.c: Move to... - * g++.dg/other/sve_vcond_1.C: ... Here. Add target directives. - * gcc.target/aarch64/sve/vcond_1_run.c: Move to... - * g++.dg/other/sve_vcond_1_run.C: ... Here. Change include file name. - -2018-04-20 H.J. Lu - - PR target/85469 - * gcc.target/i386/pr85044.c (dg-options): Remove -mibt. - * gcc.target/i386/sse-26.c (dg-options): Remove -mno-ibt. - -2018-04-20 Richard Biener - - PR middle-end/85475 - * gcc.dg/torture/pr85475.c: New testcase. - -2018-04-20 Martin Jambor - - ipa/85449 - * gcc.dg/ipa/pr85449.c: New test. - -2018-04-20 Martin Jambor - - ipa/85447 - * g++.dg/ipa/pr85447.C: New file. - * gcc.dg/ipa/ipcp-self-recursion-1.c: Likewise. - -2018-04-20 Jakub Jelinek - - PR c++/85462 - * g++.dg/cpp0x/pr85462.C: New test. - -2018-04-19 H.J. Lu - - * gcc.target/i386/pr85404.c: Require CET target. - -2018-04-19 Jakub Jelinek - - PR tree-optimization/85467 - * gcc.dg/pr85467.c: New test. - -2018-04-19 Paolo Carlini - - PR c++/84611 - * g++.dg/parse/crash68.C: New. - -2018-04-19 H.J. Lu - - PR libgcc/85334 - * g++.dg/torture/pr85334.C: New test. - -2018-04-19 Jonathan Wakely - - PR c++/85464 - missing location for -Wignored-qualifiers diagnostic - * g++.dg/diagnostic/pr85464.C: New. - -2018-04-19 H.J. Lu - - PR target/85397 - * gcc.dg/torture/pr85397-1.c: New test. - * gcc.target/i386/cet-sjlj-6a.c: Adjusted. - * gcc.target/i386/cet-sjlj-6b.c: Likewise. - -2018-04-19 H.J. Lu - - PR target/85404 - * gcc.target/i386/pr85404.c: New test. - -2018-04-19 H.J. Lu - - PR target/85417 - * c-c++-common/attr-nocf-check-1.c: Compile with - -fcf-protection=none. - * c-c++-common/attr-nocf-check-3.c: Likewise. - * gcc.dg/march-generic.c: Likewise. - * gcc.target/i386/align-limit.c: Likewise. - * gcc.target/i386/cet-notrack-icf-1.c: Likewise. - * gcc.target/i386/cet-notrack-icf-3.c: Likewise. - * gcc.target/i386/cet-property-2.c: Likewise. - * gcc.target/i386/ret-thunk-26.c: Likewise. - * c-c++-common/fcf-protection-1.c: Remove dg-error for x86 - targets. - * c-c++-common/fcf-protection-2.c: Likewise. - * c-c++-common/fcf-protection-3.c: Likewise. - * c-c++-common/fcf-protection-5.c: Likewise. - * c-c++-common/fcf-protection-6.c: Likewise. - * c-c++-common/fcf-protection-7.c: Likewise. - * gcc.target/i386/cet-label-3.c: New test. - * gcc.target/i386/cet-property-3.c: Likewise. - * gcc.target/i386/cet-sjlj-7.c: Likewise. - * gcc.target/i386/pr85417-1.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-7.c: Also expect - __x86_indirect_thunk_nt_(r|e)ax - * gcc.target/i386/indirect-thunk-extern-7.c: Likewise. - * gcc.target/i386/pr85403.c: Remove dg-error, - -2018-04-19 Sebastian Peryt - - * gcc.target/i386/movdir-1.c: New test. - -2018-04-19 Richard Biener - - PR middle-end/85455 - * gcc.dg/pr85455.c: New testcase. - -2018-04-19 Christophe Lyon - - * g++.dg/lto/pr85405_0.C: Require shared and fpic effective - targets. - * g++.dg/lto/pr85405b_0.C: Likewise. - * g++.dg/lto/pr84805_0.C: Likewise. - -2018-04-18 Martin Liska - - PR ipa/83983 - PR ipa/85391 - * g++.dg/lto/pr83121_1.C (struct Environment): Adjust expected - output. - -2018-04-18 H.J. Lu - - PR target/85388 - * gcc.dg/pr85388-1.c: New test. - * gcc.dg/pr85388-2.c: Likewise. - * gcc.dg/pr85388-3.c: Likewise. - * gcc.dg/pr85388-4.c: Likewise. - * gcc.dg/pr85388-5.c: Likewise. - * gcc.dg/pr85388-6.c: Likewise. - -2018-04-18 Jan Hubicka - Martin Liska - - * g++.dg/lto/pr83121_0.C: Update template. - * g++.dg/lto/pr83121_1.C: Update template. - * g++.dg/lto/pr84805_0.C: Update template. - * g++.dg/lto/pr84805_1.C: Update template. - * g++.dg/lto/pr84805_2.C: Update template. - -2018-04-18 Paolo Carlini - - PR c++/84630 - * g++.dg/cpp0x/pr84630.C: New. - -2018-04-18 Jakub Jelinek - - PR c++/84463 - * g++.dg/cpp0x/constexpr-nullptr-1.C: Add -O1 to dg-options. - * g++.dg/cpp0x/constexpr-nullptr-2.C: Expect different diagnostics - in two cases. Uncomment two other tests and add expected dg-error for - them. - * g++.dg/init/struct2.C: Cast to int rather than long to avoid - -Wnarrowing diagnostics on some targets for c++11. - * g++.dg/parse/array-size2.C: Remove xfail. - * g++.dg/cpp0x/constexpr-84463.C: New test. - -2018-04-17 Bill Schmidt - - * gcc.target/powerpc/undef-bool-2.c: Add -mvsx. - * gcc.target/g++.dg/ext/undef-bool-1.C: Likewise. - -2018-04-17 Jakub Jelinek - - PR testsuite/85326 - * g++.dg/other/pr81422.C: Require effective target tls and c++11. - * g++.dg/other/pr60675.C: Likewise. Remove -std=c++11 from dg-options. - * g++.dg/other/sve_tls_2.C: Require effective target tls. - -2018-04-13 Kelvin Nilsen - - * gcc.target/powerpc/bfp/scalar-extract-sig-5.c: Simplify to - prevent cascading of errors and change expected error message. - * gcc.target/powerpc/bfp/scalar-test-neg-4.c: Restrict this test - to 64-bit targets. - * gcc.target/powerpc/bfp/scalar-test-data-class-8.c: Likewise. - * gcc.target/powerpc/bfp/scalar-test-data-class-9.c: Likewise. - * gcc.target/powerpc/bfp/scalar-test-data-class-10.c: Likewise. - * gcc.target/powerpc/bfp/scalar-insert-exp-11.c: Change expected - error message. - * gcc.target/powerpc/bfp/scalar-extract-exp-5.c: Likewise. - -2018-04-17 Jakub Jelinek - - PR target/85430 - * gcc.dg/pr85430.c: New test. - -2018-04-17 Kyrylo Tkachov - - PR testsuite/85326 - * gcc.target/arm/pr54300.C: Move to... - * g++.dg/other/pr54300.C: ... Here. Add target directives. - * gcc.target/arm/pr55073.C: Move to... - * g++.dg/other/pr55073.C: ... Here. Add target directives. - * gcc.target/arm/pr56184.C: Move to... - * g++.dg/other/pr56184.C: ... Here. Add target directives. - * gcc.target/arm/pr59985.C: Move to... - * g++.dg/other/pr59985.C: ... Here. Add target directives. - * gcc.target/aarch64/pr60675.C: Move to... - * g++.dg/other/pr60675.C: ... Here. Add target directives. - * gcc.target/aarch64/pr81422.C: Move to... - * g++.dg/other/pr81422.C: ... Here. Add target directives. - * gcc.target/aarch64/sve/const_pred_1.C: Move to... - * g++.dg/other/sve_const_pred_1.C: ... Here. Add target directives. - * gcc.target/aarch64/sve/const_pred_2.C: Move to... - * g++.dg/other/sve_const_pred_2.C: ... Here. Add target directives. - * gcc.target/aarch64/sve/const_pred_3.C: Move to... - * g++.dg/other/sve_const_pred_3.C: ... Here. Add target directives. - * gcc.target/aarch64/sve/const_pred_4.C: Move to... - * g++.dg/other/sve_const_pred_4.C: ... Here. Add target directives. - * gcc.target/aarch64/sve/tls_2.C: Move to... - * g++.dg/other/sve_tls_2.C: ... Here. Add target directives. - * gcc.target/aarch64/pr81414.C: Rename to... - * gcc.target/aarch64/pr81414.c: ... This. - * gcc.target/aarch64/simd/pr67896.C: Rename to... - * gcc.target/aarch64/simd/pr67896.c: ... This. Update error expected - messages. - * gcc.target/aarch64/sve/vcond_1.C: Rename to... - * gcc.target/aarch64/sve/vcond_1.c: ... This. Avoid use of stdint.h. - * gcc.target/aarch64/sve/vcond_1_run.C: Rename to... - * gcc.target/aarch64/sve/vcond_1_run.c: ... This. Update include - file name. - -2018-04-17 Jakub Jelinek - - PR middle-end/85414 - * gcc.dg/pr85414.c: New test. - -2018-04-17 Martin Jambor - - PR ipa/85421 - * g++.dg/ipa/pr85421.C: New test. - -2018-04-17 Martin Liska - - PR lto/85405 - * g++.dg/lto/pr85405b_0.C: New test. - * g++.dg/lto/pr85405b_1.C: New test. - -2018-04-17 Martin Liska - - PR lto/85405 - * g++.dg/lto/pr85405_0.C: New test. - * g++.dg/lto/pr85405_1.C: New test. - -2018-04-17 Martin Liska - - PR ipa/85329 - * g++.dg/ext/pr85329-2.C: New test. - * g++.dg/ext/pr85329.C: New test. - * gcc.target/i386/mvc12.c: New test. - -2018-04-16 Alexandre Oliva - - PR c++/85039 - * g++.dg/pr85039-1.C: New. - * g++.dg/pr85039-2.C: New. - * g++.dg/parse/semicolon3.C: Remove test_offsetof. - -2018-04-16 Bill Schmidt - - PR target/85080 - * gcc.dg/vect/costmodel/ppc/costmodel-pr37194.c: Skip dump checks - if the target supports efficient unaligned storage accesses. - -2018-04-16 Aaron Sawdey - - PR target/83660 - * gcc.target/powerpc/pr83660.C: New test. - -2018-04-16 H.J. Lu - - PR target/85403 - * gcc.target/i386/pr85403.c: New test. - -2018-04-16 Olga Makhotina - - PR target/84331 - * gcc.target/i386/funcspec-56.inc: Test arch=skylake. - -2018-04-16 Paolo Carlini - Jason Merrill - - PR c++/85112 - * g++.dg/cpp0x/pr85112.C: New. - -2018-04-15 Bill Schmidt - - PR testsuite/85326 - * g++.dg/ext/undef-bool-1.C: New file. - * gcc.target/powerpc/powerpc.exp: Remove .C support. - * gcc.target/powerpc/undef-bool-1.C: Remove file. - -2018-04-14 Segher Boessenkool - - PR target/85293 - * gcc.target/powerpc/pr80098-2.c: Remove -mdirect-move. Remove the - corresponding dg-error clause. - * gcc.target/powerpc/pr80098-3.c: Ditto. - * gcc.target/powerpc/pr80103-1.c: Delete. - -2018-04-14 Andre Vehreschild - - PR fortran/81773 - PR fortran/83606 - * gfortran.dg/coarray/get_to_indexed_array_1.f90: New test. - * gfortran.dg/coarray/get_to_indirect_array.f90: New test. - -2018-04-14 Thomas Koenig - - PR fortran/85387 - * gfortran.dg/implied_do_io_5.f90: New test. - -2018-04-13 Paul A. Clarke - - PR target/83402 - * gcc.target/powerpc/sse2-psllw-1.c: Refactor and add tests for - several values: positive, negative, and zero. - * gcc.target/powerpc/sse2-pslld-1.c: Same. - * gcc.target/powerpc/sse2-psllq-1.c: Same. - -2018-04-13 Vladimir Makarov - - PR rtl-optimization/79916 - * gcc.target/powerpc/pr79916.c: New. - -2018-04-13 Jakub Jelinek - - PR rtl-optimization/85393 - * g++.dg/opt/pr85393.C: New test. - * g++.dg/opt/pr85393-aux.cc: New file. - - PR rtl-optimization/85376 - * gcc.dg/pr85376.c: New test. - -2018-04-13 Andrey Belevantsev - - PR rtl-optimization/83852 - * gcc.dg/pr83852.c: New testcase. - -2018-04-13 Andreas Krebbel - - PR testsuite/85326 - * gcc.target/s390/pr77822-1.C: Rename to ... - * gcc.target/s390/pr77822-1.c: ... this. Add asm scan check. - * gcc.target/s390/pr77822-2.c: Add asm scan check. - * gcc.target/s390/s390.exp: Remove C from testcase regexps. - -2018-04-13 Jan Hubicka - - PR lto/71991 - * gcc.target/i386/pr71991.c: New testcase. - -2018-04-13 Martin Liska - Jakub Jelinek - - PR middle-end/81657 - * gcc.dg/string-opt-1.c: Remove bogus comment. Expect a mempcpy - call. - -2018-04-12 David Malcolm - - PR c++/85385 - * g++.dg/diagnostic/macro-arg-count.C: New test. - -2018-04-12 Thomas Koenig - - PR fortran/83064 - PR testsuite/85346 - * gfortran.dg/do_concurrent_5.f90: Dynamically allocate main work - array and move test to libgomp/testsuite/libgomp.fortran. - * gfortran.dg/do_concurrent_6.f90: New test. - -2018-04-12 Marek Polacek - - PR c++/85258 - * g++.dg/parse/error61.C: New test. - -2018-04-12 Kelvin Nilsen - - PR target/85347 - * gcc.target/powerpc/vec-ldl-1.c: Change dejagnu directives to - specify -mvsx on gcc command line. - -2018-04-12 Jakub Jelinek - - PR target/85328 - * gcc.target/i386/pr85328.c: New test. - -2018-04-12 Andreas Krebbel - - * gcc.target/s390/nobp-no-dwarf2-cfi.c: New test. - -2018-04-12 Jakub Jelinek - - PR rtl-optimization/85342 - * gcc.target/i386/pr85342.c: New test. - -2018-04-11 Jason Merrill - - * lib/asan-dg.exp (check_effective_target_fsanitize_address): False - if ulimit -v is set. - -2018-04-11 Bin Cheng - - PR testsuite/85190 - * gcc.dg/vect/pr81196.c: Remove function with undefined behavior. - -2018-04-11 Paolo Carlini - - * g++.dg/warn/Wzero-as-null-pointer-constant-7.C: Move... - * g++.dg/cpp0x/Wzero-as-null-pointer-constant-3.C: ... here. - -2018-04-11 Jakub Jelinek - - PR c++/70808 - * g++.dg/warn/Wzero-as-null-pointer-constant-7.C: Require c++11 - effective target. - -2018-04-11 Alexander Monakov - - PR target/84301 - * gcc.target/i386/pr84301.c: New test. - -2018-04-11 Jakub Jelinek - - PR tree-optimization/85331 - * gcc.c-torture/execute/pr85331.c: New test. - -2018-04-11 Marek Polacek - - PR c++/85032 - * g++.dg/cpp0x/pr51225.C: Adjust error message. - * g++.dg/cpp1z/constexpr-if21.C: New test. - -2018-04-11 Jakub Jelinek - - PR target/85281 - * gcc.target/i386/pr85281.c: New test. - -2018-04-11 Alexander Monakov - - PR rtl-optimization/84659 - * gcc.dg/pr84659.c: New test. - -2018-04-11 Jakub Jelinek - - PR debug/85302 - * g++.dg/debug/dwarf2/pr85302.C: New test. - -2018-04-11 Thomas Preud'homme - - PR target/85261 - * config/arm/arm-builtins.c (arm_expand_builtin): Force input operand - into register. - -2018-04-10 Paolo Carlini - - PR c++/70808 - * g++.dg/warn/Wzero-as-null-pointer-constant-7.C: New. - -2018-04-10 Segher Boessenkool - - * gcc.target/powerpc/dfmode_off.c: Add -fno-asynchronous-unwind-tables. - * gcc.target/powerpc/dimode_off.c: Ditto. - * gcc.target/powerpc/tfmode_off.c: Ditto. - * gcc.target/powerpc/timode_off.c: Ditto. - -2018-04-10 Kelvin Nilsen - - * gcc.target/powerpc/vec-ldl-1.c: New test. - * gcc.dg/vmx/ops-long-1.c: Correct test programs to reflect - corrections to ABI implementation. - -2018-04-10 Thomas Schwinge - - PR target/85056 - * gcc.target/nvptx/pr85056.c (main): Initialize "sum". - -2018-04-10 Jakub Jelinek - - PR rtl-optimization/85300 - * gcc.dg/pr85300.c: New test. - -2018-04-10 David Malcolm - - PR c++/85110 - * g++.dg/cpp1z/direct-enum-init1.C: Update for the cases - where we now show the pertinent parameter. - * g++.dg/diagnostic/aka2.C: Likewise. - * g++.dg/diagnostic/param-type-mismatch-2.C: Likewise. - -2018-04-10 Jakub Jelinek - - PR fortran/85313 - * gfortran.dg/gomp/pr85313.f90: New test. - -2018-04-10 Paolo Carlini - - PR c++/24314 - * g++.dg/parse/template29.C: New. - -2018-04-10 Bin Cheng - - PR testsuite/85190 - * gcc.dg/vect/pr81196.c: Adjust pointer for aligned access. - -2018-04-10 Jakub Jelinek - - PR target/85177 - PR target/85255 - * gcc.target/i386/avx512f-pr85177.c: New test. - * gcc.target/i386/avx512f-pr85255.c: New test. - -2018-04-10 Richard Sandiford - - PR tree-optimization/85286 - * gcc.dg/vect/pr85286.c: New test. - -2018-04-10 Kyrylo Tkachov - - PR target/85173 - * gcc.target/arm/pr85173.c: New test. - -2018-04-10 Jakub Jelinek - - PR lto/85248 - * gcc.dg/lto/pr85248_0.c: New test. - * gcc.dg/lto/pr85248_1.c: New test. - -2018-04-09 Jan Hubicka - - PR lto/85078 - * g++.dg/torture/pr85078.C: New. - -2018-04-09 Paolo Carlini - - PR c++/85227 - * g++.dg/cpp1z/decomp44.C: New. - * g++.dg/cpp1z/decomp45.C: Likewise. - -2018-04-09 Thomas Koenig - - PR fortran/83064 - * gfortran.dg/do_concurrent_5.f90: New test. - * gfortran.dg/vect/vect-do-concurrent-1.f90: Adjust dg-bogus - message. - -2018-04-09 Thomas Koenig - - PR fortran/51260 - * gfortran.dg/parameter_array_element_3.f90: New test. - -2018-04-09 Jakub Jelinek - - PR c++/85194 - * g++.dg/cpp1z/decomp43.C: New test. - - PR rtl-optimization/80463 - * g++.dg/pr80463.C: Add -w to dg-options. - -2018-04-09 Richard Biener - - PR tree-optimization/85284 - * gcc.dg/torture/pr85284.c: New testcase. - -2018-04-09 Andrey Belevantsev - - PR rtl-optimization/80463 - PR rtl-optimization/83972 - PR rtl-optimization/83480 - - * gcc.dg/pr80463.c: New test. - * g++.dg/pr80463.C: Likewise. - * gcc.dg/pr83972.c: Likewise. - -2018-04-09 Andrey Belevantsev - - PR rtl-optimization/83913 - * gcc.dg/pr83913.c: New test. - -2018-04-09 Andrey Belevantsev - - PR rtl-optimization/83962 - * gcc.dg/pr83962.c: New test. - -2018-04-09 Andrey Belevantsev - - PR rtl-optimization/83530 - * gcc.dg/pr83530.c: New test. - -2018-04-07 Thomas Koenig - - PR middle-end/82976 - * gfortran.dg/realloc_on_assign_16a.f90: New test. - -2018-04-07 Jakub Jelinek - - PR tree-optimization/85257 - * gcc.dg/pr85257.c: New test. - -2018-04-06 Eric Botcazou - - * g++.dg/opt/pr85196.C: New test. - -2018-04-06 David Malcolm - - PR c++/84269 - * g++.dg/lookup/missing-std-include-6.C: Move std::array and - std::tuple here since they need C++11. - * g++.dg/lookup/missing-std-include-8.C: New test. - * g++.dg/lookup/missing-std-include.C: Move std::array and - std::tuple test to missing-std-include-6.C to avoid failures - with C++98. - -2018-04-06 Jakub Jelinek - - PR debug/85252 - * gcc.dg/debug/pr85252.c: New test. - - PR rtl-optimization/84872 - * gcc.dg/graphite/pr84872.c: New test. - - PR c++/85210 - * g++.dg/cpp1z/decomp42.C: New test. - -2018-04-06 David Malcolm - - PR c++/85021 - * g++.dg/lookup/missing-std-include-7.C: New test. - -2018-04-06 Tamar Christina - - * gcc.dg/struct-simple.c: Revert r254862. - * lib/target-supports.exp - (check_effective_target_word_mode_no_slow_unalign): Likewise. - -2018-04-06 Richard Biener - - PR middle-end/85244 - * gcc.dg/torture/pr85244-1.c: New testcase. - * gcc.dg/torture/pr85244-2.c: Likewise. - -2018-04-06 Jakub Jelinek - - PR sanitizer/85213 - * c-c++-common/ubsan/pr85213.c: New test. - -2018-04-06 Richard Biener - - PR middle-end/85180 - * gcc.dg/pr85180.c: New testcase. - -2018-04-06 Andreas Krebbel - - * gcc.target/s390/vector/vcond-shift.c: Use the proper conditions - to trigger the optimization. Do some cleanup and function - renaming. Add more test functions. - -2018-04-06 Andreas Krebbel - - * gcc.target/s390/s390.exp: Remove -O0 from list of torture - options. - * gcc.target/s390/hotpatch-1.c: Skip when building without - optimization. - * gcc.target/s390/hotpatch-10.c: Likewise. - * gcc.target/s390/hotpatch-11.c: Likewise. - * gcc.target/s390/hotpatch-12.c: Likewise. - * gcc.target/s390/hotpatch-13.c: Likewise. - * gcc.target/s390/hotpatch-14.c: Likewise. - * gcc.target/s390/hotpatch-15.c: Likewise. - * gcc.target/s390/hotpatch-16.c: Likewise. - * gcc.target/s390/hotpatch-17.c: Likewise. - * gcc.target/s390/hotpatch-18.c: Likewise. - * gcc.target/s390/hotpatch-19.c: Likewise. - * gcc.target/s390/hotpatch-2.c: Likewise. - * gcc.target/s390/hotpatch-3.c: Likewise. - * gcc.target/s390/hotpatch-4.c: Likewise. - * gcc.target/s390/hotpatch-5.c: Likewise. - * gcc.target/s390/hotpatch-6.c: Likewise. - * gcc.target/s390/hotpatch-7.c: Likewise. - * gcc.target/s390/hotpatch-8.c: Likewise. - * gcc.target/s390/hotpatch-9.c: Likewise. - -2018-04-06 Andreas Krebbel - - * c-c++-common/Wattributes.c: Disable warning for s390* target and - check for an error instead. - * gcc.dg/Wattributes-6.c: Likewise. - -2018-04-05 Jakub Jelinek - - PR c++/85209 - * g++.dg/cpp1z/decomp39.C: New test. - * g++.dg/cpp1z/decomp40.C: New test. - - PR c++/85208 - * g++.dg/cpp1z/decomp41.C: New test. - - PR middle-end/85195 - * gcc.dg/pr85195.c: New test. - -2018-04-05 Paolo Carlini - - PR c++/80956 - * g++.dg/cpp0x/initlist100.C: New. - * g++.dg/cpp0x/initlist101.C: Likewise. - -2018-04-05 Paolo Carlini - - PR c++/84792 - * g++.dg/other/pr84792-1.C: New. - * g++.dg/other/pr84792-2.C: Likewise. - -2018-04-05 Uros Bizjak - - PR target/85193 - * gcc.target/i386/pr85193.c: New test. - -2018-04-05 Alexandre Oliva - - PR c++/84979 - * g++.dg/concepts/pr84979.C: New. - * g++.dg/concepts/pr84979-2.C: New. - * g++.dg/concepts/pr84979-3.C: New. - -2018-04-04 Paolo Carlini - - PR c++/80026 - * g++.dg/cpp0x/variadic174.C: New. - -2018-04-04 Jakub Jelinek - - PR inline-asm/85172 - * g++.dg/ext/builtin13.C: New test. - * g++.dg/ext/atomic-4.C: New test. - - PR c++/85146 - * g++.dg/ext/bases2.C: Expect extra error diagnostics. - * g++.dg/ext/bases3.C: New test. - -2018-04-04 Thomas Preud'homme - - PR target/85203 - * gcc.target/arm/cmse/cmse-1.c: Tighten cmse_nonsecure_caller RTL scan - to match a single insn of the baz function. Move scan directives at - the end of the file below the functions they are trying to test for - better readability. - * gcc.target/arm/cmse/cmse-16.c: New testcase. - -2018-04-04 Peter Bergner - - PR rtl-optimization/84878 - * gcc.target/powerpc/pr84878.c: New test. - -2018-04-04 Michael Matz - - * gcc.dg/Wstringop-overflow-4.c: New test. - * c-c++-common/Wstringop-truncation-4.c: Adjust. - -2018-04-04 Jakub Jelinek - - PR testsuite/85189 - * g++.dg/inherit/override-attribs.C: Use dg-message instead of dg-error - for the diagnostics of overridden functions. Adjust for new wording. - -2018-04-04 Richard Biener - - PR lto/85176 - * g++.dg/lto/pr85176_0.C: New testcase. - -2018-04-04 Richard Biener - - PR testsuite/85191 - * lib/target-supports.exp (check_effective_target_vect_perm_short): - Fix typo. - -2018-04-04 Martin Liska - - PR sanitizer/85174 - * c-c++-common/asan/pointer-compare-1.c: Disable section anchors - and msdata as a workaround for powerpc. - -2018-04-04 Richard Biener - - PR tree-optimization/85168 - * gcc.dg/torture/pr85168.c: New testcase. - -2018-04-04 Alexandre Oliva - - PR c++/84943 - * g++.dg/pr84943.C: New. - * g++.dg/pr84943-2.C: New. - -2018-04-03 Jakub Jelinek - - PR rtl-optimization/85167 - * gcc.dg/pr85167.c: New test. - - PR tree-optimization/85156 - * c-c++-common/pr85156.c: New test. - * gcc.c-torture/execute/pr85156.c: New test. - -2018-04-03 Bill Schmidt - - * gcc.target/powerpc/powerpc.exp: Add .C suffix for main loop. - * gcc.target/powerpc/undef-bool-1.C: New file. - * gcc.target/powerpc/undef-bool-2.c: New file. - -2018-04-03 Paolo Carlini - - PR c++/84768 - * g++.dg/cpp1z/class-deduction52.C: New. - -2018-04-03 Jakub Jelinek - - PR c++/85147 - * g++.dg/cpp0x/pr85147.C: New test. - - PR c++/85140 - * g++.dg/cpp0x/gen-attrs-64.C: New test. - - PR c++/85134 - * g++.dg/gomp/pr85134.C: New test. - * g++.dg/cpp0x/constexpr-ice19.C: Expect one further error. - - PR target/85169 - * gcc.c-torture/execute/pr85169.c: New test. - * gcc.target/i386/avx512f-pr85169.c: New test. - * gcc.target/i386/avx512bw-pr85169.c: New test. - -2018-04-03 Segher Boessenkool - - PR target/85126 - * gcc.target/powerpc/pr69946: Adjust comment. Remove - scan-assembler-times clause. - -2018-04-03 Christophe Lyon - - * gcc.target/arm/armv8_2-fp16-move-1.c: Move -mfloat-abi=hard to - dg-additional-options. - -2018-04-03 Segher Boessenkool - - * gcc.target/powerpc/pr82015.c: Use __vector instead of vector. - -2018-04-03 Richard Biener - - PR testsuite/85154 - * gcc.dg/vect/vect-95.c: Remove scan for alignment peeling. - -2018-04-02 Jim Wilson - - * gcc.target/riscv/pr84660.c: New. - * gcc.target/riscv/shift-and-1.c: New. - * gcc.target/riscv/shift-and-2.c: New. - -2018-04-02 Thomas Koenig - - PR fortran/85102 - * gfortran.dg/array_simplify_2.f90: New test. - -2018-04-01 Jakub Jelinek - - PR middle-end/85090 - * gcc.target/i386/avx512f-pr85090-1.c: New test. - * gcc.target/i386/avx512f-pr85090-2.c: New test. - * gcc.target/i386/avx512f-pr85090-3.c: New test. - * gcc.target/i386/avx512bw-pr85090-2.c: New test. - * gcc.target/i386/avx512bw-pr85090-3.c: New test. - -2018-03-31 Alexandre Oliva - - PR c++/85027 - * g++.dg/pr85027.C: New. - -2018-03-31 Segher Boessenkool - - PR target/83315 - * gcc.target/powerpc/sse-maxps-2.c: New test. - * gcc.target/powerpc/sse-minps-2.c: New test. - -2018-03-30 Jakub Jelinek - - PR c++/84791 - * g++.dg/gomp/pr84791.C: New test. - -2018-03-30 Paul Thomas - - PR fortran/84931 - * gfortran.dg/array_constructor_53.f90: New test. - -2018-03-30 Thomas Koenig - - PR fortran/85130 - * gfortran.dg/substr_6.f90: Remove illegal test for - out-of-bounds substring. - -2017-03-30 Thomas Koenig - - PR fortran/85111 - * gfortran.dg/zero_sized_10.f90: New test. - -2018-03-29 David Malcolm - - PR c++/84269 - * g++.dg/lookup/missing-std-include-6.C: New test. - * g++.dg/lookup/missing-std-include.C: Add std::pair and - std::tuple tests. - * g++.dg/spellcheck-reswords.C: Expect a hint about . - * g++.dg/spellcheck-stdlib.C: Add tests for names in , - , , and . - -2018-03-29 Vladimir Makarov - - PR inline-asm/84985 - * gcc.target/i386/pr84985.c: New. - -2018-03-29 David Malcolm - - PR c++/85110 - * g++.dg/diagnostic/param-type-mismatch-2.C: New test. - -2018-03-29 Jakub Jelinek - - PR c++/85108 - * g++.dg/warn/Wunused-var-31.C: New test. - - PR c/85094 - * c-c++-common/Wduplicated-branches-14.c: New test. - -2018-03-29 Paolo Carlini - - PR c++/84606 - * g++.dg/cpp0x/pr84606.C: New. - -2018-03-29 Carl Love - - Revert - 2017-09-27 Carl Love - - * gcc.target/powerpc/builtin-fctid-fctiw-runnable.c: New test file - for the __builtin_fctid and __builtin_fctiw. - -2018-03-28 Peter Bergner - - PR target/84912 - * gcc.target/powerpc/extend-divide-1.c (div_weo): Remove test for - deleted builtin function. - (div_weuo): Likewise. - * gcc.target/powerpc/extend-divide-2.c (div_deo): Likewise. - (div_deuo): Likewise. - -2018-03-28 Paolo Carlini - - PR c++/85028 - * g++.dg/other/default13.C: New. - -2018-03-28 Jakub Jelinek - - PR target/85095 - * gcc.target/i386/pr85095-1.c: New test. - * gcc.target/i386/pr85095-2.c: New test. - * gcc.c-torture/execute/pr85095.c: New test. - - PR tree-optimization/82004 - * gcc.dg/pr82004.c: New test. - -2018-03-28 Jakub Jelinek - Martin Liska - - PR sanitizer/85081 - * g++.dg/asan/pr85081.C: New test. - -2018-03-28 Alexandre Oliva - - PR c++/84789 - * g++.dg/template/pr84789.C: Adjust for testing with - -fconcepts too. - - PR c++/84973 - * g++.dg/template/pr84973.C: New. - * g++.dg/template/pr84973-2.C: New. - * g++.dg/template/pr84973-3.C: New. - - PR c++/84968 - * g++.dg/eh/pr84968.C: New. - -2018-03-27 Michael Meissner - - PR target/84914 - * gcc.target/powerpc/mulkc-2.c: New tests to make sure complex - long double multiply/divide uses the correct function. - * gcc.target/powerpc/mulkc-3.c: Likewise. - * gcc.target/powerpc/divkc-2.c: Likewise. - * gcc.target/powerpc/divkc-3.c: Likewise. - -2018-03-27 Paolo Carlini - - PR c++/85067 - * g++.dg/cpp0x/defaulted51.C: New. - * g++.dg/cpp0x/constexpr-68754.C: Adjust. - -2018-03-27 Jakub Jelinek - - PR c++/85077 - * g++.dg/ext/vector35.C: New test. - - PR c++/85061 - * g++.dg/ext/builtin-offsetof3.C: New test. - - PR c++/85076 - * g++.dg/cpp1y/pr85076.C: New test. - -2018-03-27 Thomas Koenig - - PR fortran/85084 - * gfortran.dg/matmul_rank_1.f90: New test. - -2018-03-27 Thomas Koenig - Harald Anlauf - - * gfortran.dg/structure_constructor_15.f90: New test. - -2018-03-27 Volker Reichelt - - * g++.dg/cpp0x/defaulted2.C: Use dg-message instead of dg-error - for the diagnostics of overridden functions. Adjust for new wording. - * g++.dg/cpp0x/implicit1.C: Likewise. - * g++.dg/cpp0x/override1.C: Likewise. - * g++.dg/cpp1y/auto-fn18.C: Likewise. - * g++.dg/eh/shadow1.C: Likewise. - * g++.dg/inherit/covariant12.C: Likewise. - * g++.dg/inherit/covariant14.C: Likewise. - * g++.dg/inherit/covariant15.C: Likewise. - * g++.dg/inherit/covariant16.C: Likewise. - * g++.dg/inherit/covariant22.C: Likewise. - * g++.dg/inherit/crash3.C: Likewise. - * g++.dg/inherit/error2.C: Likewise. - * g++.dg/template/crash100.C: Likewise. - * g++.old-deja/g++.eh/spec6.C: Likewise. - * g++.old-deja/g++.mike/p811.C: Likewise. - * g++.old-deja/g++.other/virtual11.C: Likewise. - * g++.old-deja/g++.other/virtual4.C: Likewise. - -2018-03-27 H.J. Lu - - PR target/85044 - * gcc.target/i386/pr85044.c: New test. - -2018-03-27 Martin Sebor - - PR testsuite/83462 - * c-c++-common/Warray-bounds-4.c: Disable assertion for targets - other than x86. - -2018-03-27 Kyrylo Tkachov - - PR target/83009 - * gcc.target/aarch64/store_v2vec_lanes.c: XFAIL for ilp32. - -2018-03-27 Ramana Radhakrishnan - - PR target/81863 - * gcc.target/arm/pr81863.c: New test. - -2018-03-27 Cesar Philippidis - - PR target/85056 - * gcc.target/nvptx/pr85056.c: New test. - * gcc.target/nvptx/pr85056a.c: New test. - -2018-03-27 Richard Biener - - PR testsuite/82847 - * lib/target-supports.exp (check_ssse3_available): New function. - (check_effective_target_vect_perm_short): Enable for x86 if - check_ssse3_available. - -2018-03-27 Richard Biener - - PR tree-optimization/85082 - * gfortran.dg/pr85082.f90: New testcase. - -2018-03-27 Chenghua Xu - - * gcc.target/mips/umips-stroe16-2.c: Change "length = 2" - to "l=2" in dg-final. - -2018-03-27 Chenghua Xu - - * gcc.target/mips/fix-r4000-1.c: Delete "[^\n]+" in dg-final. - * gcc.target/mips/fix-r4000-2.c: Likewise. - * gcc.target/mips/fix-r4000-3.c: Likewise. - * gcc.target/mips/fix-r4000-4.c: Likewise. - * gcc.target/mips/fix-r4000-5.c: Likewise. - * gcc.target/mips/fix-r4000-6.c: Likewise. - * gcc.target/mips/fix-r4000-7.c: Likewise. - * gcc.target/mips/fix-r4000-8.c: Likewise. - * gcc.target/mips/fix-r4000-9.c: Likewise. - * gcc.target/mips/fix-r4000-10.c: Likewise. - * gcc.target/mips/fix-r4000-7.c: Change dg-final - "mulditi3_r4000" instead of "mulditi3". - * gcc.target/mips/fix-r4000-8.c: Change dg-final - "umulditi3_r4000" instead of "umulditi3". - -2018-03-27 Jakub Jelinek - - PR c++/85068 - * g++.dg/inherit/covariant22.C: New test. - -2018-03-27 Richard Biener - - PR testsuite/84004 - * gcc.dg/vect/vect-95.c: Never expect the loop to be peeled for - alignment. - -2018-03-27 Paolo Carlini - Jason Merrill - - PR c++/84632 - * g++.dg/init/array49.C: New. - * g++.dg/torture/pr70499.C: Adjust. - -2018-03-26 Uros Bizjak - - PR target/85073 - * gcc.target/i386/pr85073.c: New test. - -2018-03-26 Richard Biener - - PR testsuite/85066 - * gcc.dg/vect/costmodel/x86_64/costmodel-pr84986.c: Use long long - instead of long. - -2018-03-26 Thomas Koenig - - PR fortran/66709 - * gfortran.dg/parameter_array_format.f90: New test. - -2018-03-25 Thomas Koenig - Neil Carlson - - PR fortran/84381 - * gfortran.dg/literal_character_constant_1.inc: Replace - call abort by STOP n. - * gfortran.dg/overload_1.f90: Likewise. - -2018-03-25 Seth Johnson - Dominique d'Humieres - - PR fortran/84924 - * gfortran.dg/scalar_pointer_1.f90: New test. - -2018-03-25 Tom de Vries - - * gcc.dg/tree-ssa/vrp104.c: Make scan-tree-dump-times pattern more - precise. - -2018-03-24 Jerry DeLisle - - PR fortran/69497 - * gfortran.dg/pr89497.f90: New test. - -2018-03-24 Thomas Koenig - - PR fortran/70068 - * gfortran.dg/substr_7.f90: New test. - -2018-03-24 Steven G. Kargl - - PR fortran/42651 - * gfortran.dg/pr42651.f90: New test. - * gfortran.dg/func_result_7.f90: Update error message. - -2018-03-24 Richard Sandiford - - PR tree-optimization/84005 - * gcc.dg/vect/bb-slp-1.c: Make sure there is no message about - failing to force the alignment. - -2018-03-23 Peter Bergner - - * gcc.target/powerpc/builtins-1-le.c : Rename duplicate test - from this to... - : ...this. - -2018-03-23 Peter Bergner - - * gcc.target/powerpc/builtins-1-le.c: Filter out gimple folding disabled - message. Fix scan-assembler patterns. - -2018-03-23 Jakub Jelinek - - PR c++/85015 - * g++.dg/cpp0x/pr85015.C: New test. - - PR c++/84942 - * g++.dg/cpp1y/pr84942.C: New test. - -2018-03-23 Vladimir Makarov - - PR inline-asm/85030 - * gcc.target/i386/pr85030.c: New. - -2018-03-23 Kyrylo Tkachov - - PR target/85026 - * g++.dg/pr85026.C: New test. - -2018-03-23 David Edelsohn - - * g++.dg/debug/pr84704.C: XFAIL AIX. - -2018-03-23 Sudakshina Das - - PR target/84826 - * gcc.target/arm/pr84826.c: Add dg directive. - -2018-03-23 Marek Polacek - - PR c++/85033 - * g++.dg/ext/builtin-offsetof2.C: New test. - - PR c++/85045 - * g++.dg/cpp0x/Wnarrowing5.C: New test. - * gcc.dg/pr85045.c: New test. - -2018-03-23 Eric Botcazou - - PR debug/85020 - * gnat.dg/lto22.adb: New test. - * gnat.dg/lto22_pkg1.ad[sb]: New helper. - * gnat.dg/lto22_pkg2.ads: Likewise. - -2018-03-23 Jakub Jelinek - - PR c/80778 - * gcc.dg/lto/pr80778_0.c: New test. - - PR inline-asm/85034 - * gcc.target/i386/pr85034.c: New test. - - PR inline-asm/85022 - * c-c++-common/torture/pr85022.c: New test. - - PR sanitizer/85029 - * g++.dg/ubsan/pr85029.C: New test. - -2018-03-23 Alexandre Oliva - - PR c++/71251 - * g++.dg/cpp0x/pr71251.C: New. - - PR c++/84789 - * g++.dg/template/pr84789.C: New. - * g++.dg/template/pr84789-2.C: New. - * g++.dg/template/pr84789-3.C: New. - * g++.dg/parse/dtor11.C: Accept alternate error message. - - PR c++/84729 - * g++.dg/pr84729.C: New. - * g++.old-deja/g++.ext/arrnew2.C: Require error. - * g++.old-deja/g++.robertl/eb58.C: Likewise. - * g++.old-deja/g++.robertl/eb63.C: Likewise. - -2018-03-22 Steven G. Kargl - - PR fortran/84922 - * gfortran.dg/interface_42.f90: New test. - * gfortran.dg/interface_43.f90: New test. - -2018-03-22 Sudakshina Das - - PR target/84826 - * gcc.target/arm/pr84826.c: New test. - -2018-03-22 Christophe Lyon - - * gcc.target/arm/addr-modes-float.c: Move dg-do before - dg-require-effective-target. - * gcc.target/arm/addr-modes-int.c: Likewise. - * gcc.target/nios2/lo-addr-tls.c: Likewise. - -2018-03-22 Kelvin Nilsen - - PR target/84760 - * gcc.target/powerpc/altivec-ld-1.c: New test. - -2018-03-22 Bin Cheng - - * gcc.dg/graphite/pr83126.c: Require pthread for the test. - -2018-03-22 Jakub Jelinek - - PR inline-asm/84941 - * gcc.dg/pr84941.c: New test. - -2018-03-22 Tom de Vries - - PR tree-optimization/84956 - * gcc.dg/pr84956.c: New test. - -2018-03-22 Marek Polacek - - PR c++/84854 - * g++.dg/cpp1z/constexpr-if15.C: New test. - * g++.dg/cpp1z/constexpr-if16.C: New test. - -2018-03-21 Joseph Myers - - * gcc.dg/builtin-tgmath-3.c: New test. - -2018-03-21 Alexandre Oliva - - PR c++/71965 - * g++.dg/concepts/pr71965.C: New. - - PR c++/84610 - PR c++/84642 - * g++.dg/cpp0x/pr84610.C: New. - * g++.dg/cpp0x/pr84642.C: New. - -2018-03-21 Jakub Jelinek - - PR c/84999 - * c-c++-common/pr84999.c: New test. - -2018-03-21 Paolo Carlini - - PR c++/84972 - * g++.dg/ext/desig10.C: New. - -2018-03-21 Thomas Koenig - Harald Anlauf - - PR fortran/84957 - * gfortran.dg/pr84957.f90: New test. - -2018-03-21 Jakub Jelinek - - PR tree-optimization/84960 - * gcc.c-torture/compile/pr84960.c: New test. - -2018-03-21 Richard Sandiford - - PR tree-optimization/84811 - * gcc.dg/torture/pr84811.c: New test. - -2018-03-21 Jakub Jelinek - - PR tree-optimization/84982 - * c-c++-common/pr84982.c: New test. - - PR c++/84961 - * c-c++-common/pr43690.c: Don't expect errors on "m" (--x) and - "m" (++x) in C++. - * g++.dg/torture/pr84961-1.C: New test. - * g++.dg/torture/pr84961-2.C: New test. - -2018-03-21 Nathan Sidwell - - PR c++/85008 - * g++.dg/pr85008.C: New. - -2018-03-21 Janne Blomqvist - - PR fortran/84615 - * gfortran.dg/char_result_17.f90: New test. - -2018-03-21 David Malcolm - - PR c++/84994 - * g++.dg/other/accessor-fixits-1.C: Move to... - * g++.dg/torture/accessor-fixits-1.C: ...here. - * g++.dg/other/accessor-fixits-2.C: Move to... - * g++.dg/torture/accessor-fixits-2.C: ...here. - * g++.dg/other/accessor-fixits-3.C: Move to... - * g++.dg/torture/accessor-fixits-3.C: ...here. - * g++.dg/other/accessor-fixits-4.C: Move to... - * g++.dg/torture/accessor-fixits-4.C: ...here. - * g++.dg/other/accessor-fixits-5.C: Move to... - * g++.dg/torture/accessor-fixits-5.C: ...here. - * g++.dg/torture/accessor-fixits-6.C: New testcase. - * g++.dg/torture/accessor-fixits-7.C: New testcase. - * g++.dg/torture/accessor-fixits-8.C: New testcase. - -2018-03-21 Rainer Orth - - * gcc.dg/tree-ssa/pr84512.c: xfail on 64-bit SPARC. - -2018-03-21 Sudakshina Das - - PR target/82989 - * gcc.target/arm/pr82989.c: Change dg scan-assembly directives. - -2018-03-21 Nathan Sidwell - - PR c++/84804 - * g++.dg/lookup/pr84804.C: New. - -2018-03-21 Martin Sebor - - PR c++/84850 - * g++.dg/Wclass-memaccess-3.C: New test. - * g++.dg/Wclass-memaccess-4.C: New test. - -2018-03-21 David Malcolm - - PR c++/84892 - * g++.dg/other/accessor-fixits-1.C - (test_access_const_t1_color): New. - (test_deref_const_t1_color): New. - * g++.dg/other/accessor-fixits-5.C: New testcase. - -2018-03-21 Tom de Vries - - PR tree-optimization/83126 - * gcc.dg/graphite/pr83126.c: New test. - -2018-03-21 Nathan Sidwell - - * g++.dg/ext/anon-struct6.C: Adjust. - * g++.dg/ext/deprecate-1.C: New. - * g++.dg/ext/deprecate-2.C: New. - * g++.dg/lookup/pr84602.C: Adjust. - * g++.dg/lookup/pr84962.C: Adjust. - * g++.old-deja/g++.other/anon4.C - - PR c++/84836 - * g++.dg/lookup/pr84836.C: New. - -2018-03-21 Bin Cheng - - PR tree-optimization/84969 - * gcc.dg/tree-ssa/pr84969.c: New test. - -2018-03-21 Jakub Jelinek - - PR rtl-optimization/84989 - * gcc.target/i386/pr84989.c: New test. - -2018-03-21 Christophe Lyon - - * gcc.target/arm/pr82518.c: Require arm_neon_hw. - -2018-03-21 Martin Liska - - PR ipa/84963 - * gfortran.dg/goacc/pr84963.f90: New test. - -2018-03-21 Marek Polacek - - PR c++/71638, ICE with NSDMI and reference. - * g++.dg/cpp0x/nsdmi14.C: New test. - * g++.dg/cpp1y/nsdmi-aggr10.C: New test. - -2018-03-21 Chenghua Xu - - * gcc.dg/vect/vect-strided-shift-1.c: Add dg-skip-if for - MIPS with -mpaired-single directives. - -2018-03-20 Steven G. Kargl - - PR fortran/85001 - * gfortran.dg/interface_41.f90: New test. - -2018-03-20 Jakub Jelinek - - PR debug/84875 - * gcc.dg/pr84875.c: New test. - -2018-03-20 Marek Polacek - - PR c++/84978, ICE with NRVO. - * g++.dg/opt/nrv19.C: New test. - -2018-03-20 Kyrylo Tkachov - - PR target/82518 - * lib/target-supports.exp (check_effective_target_vect_load_lanes): - Disable for armeb targets. - * gcc.target/arm/pr82518.c: New test. - -2018-03-20 Nathan Sidwell - - PR c++/84962 - * g++.dg/lookup/pr84962.C: New. - - PR c++/84970 - * g++.dg/lookup/pr84970.C: New. - -2018-03-20 Richard Biener - - PR target/84986 - * gcc.dg/vect/costmodel/x86_64/costmodel-pr84986.c: New testcase. - -2018-03-20 Martin Liska - - PR ipa/84825 - * g++.dg/ipa/pr84825.C: New test. - -2018-03-20 Martin Liska - - * gcc.dg/lto/chkp-ctor-merge_0.c: Remove. - -2018-03-20 Jakub Jelinek - - PR target/84845 - * gcc.c-torture/compile/pr84845.c: New test. - -2018-03-20 Sudakshina Das - - PR target/82989 - * gcc.target/arm/pr82989.c: New test. - -2018-03-20 Jakub Jelinek - - PR target/84945 - * gcc.target/i386/pr84945.c: New test. - -2018-03-20 Christophe Lyon - - PR target/81647 - * gcc.target/aarch64/pr81647.c: Require fenv_exceptions. - -2018-03-20 Jakub Jelinek - - PR c/84953 - * gcc.dg/pr84953.c: New test. - -2018-03-19 Marek Polacek - - PR c++/84925 - * g++.dg/cpp1z/lambda-__func__.C: New test. - - PR c++/84927 - * g++.dg/cpp1y/nsdmi-aggr9.C: New test. - -2018-03-19 Maxim Ostapenko - - PR sanitizer/78651 - * g++.dg/asan/pr78651.C: New test. - -2018-03-19 Tom de Vries - - * gcc.dg/tree-ssa/pr84512.c: Don't require effective target - vect_int_mult. Add nvptx xfail for PR84958. - -2018-03-19 Nathan Sidwell - - PR c++/84835 - * g++.dg/cpp1y/pr84835.C: New. - -2018-03-19 Sudakshina Das - - PR target/81647 - * gcc.target/aarch64/pr81647.c: New. - -2018-03-19 Richard Biener - - PR tree-optimization/84933 - * g++.dg/pr84933.C: New testcase. - -2018-03-19 Richard Biener - - PR tree-optimization/84859 - * gcc.dg/tree-ssa/pr84859.c: New testcase. - * gcc.dg/tree-ssa/pr35286.c: Disable cselim. - * gcc.dg/tree-ssa/split-path-6.c: Likewise. - * gcc.dg/tree-ssa/split-path-7.c: Likewise. - -2018-03-19 Nathan Sidwell - - PR c++/84812 - * g++.dg/lookup/pr84812.C: New. - -2018-03-19 Richard Biener - - PR tree-optimization/84929 - * gcc.dg/torture/pr84929.c: New testcase. - -2018-03-19 Tamar Christina - - PR target/84711 - * gcc.target/arm/big-endian-subreg.c: Delete. - -2018-03-19 Thomas Koenig - - PR fortran/84931 - * gfortran.dg/array_constructor_52.f90: New test. - -2018-03-17 Steven G. Kargl - - PR fortran/77414 - * gfortran.dg/pr77414.f90: New test. - * gfortran.dg/internal_references_1.f90: Adjust error message. - -2018-03-18 Steven G. Kargl - - PR fortran/65453 - * gfortran.dg/pr65453.f90: New test. - -2018-03-18 Richard Sandiford - - PR tree-optimization/84913 - * gfortran.dg/vect/pr84913.f90: New test. - -2018-03-18 Thomas Koenig - - PR fortran/79929 - * gfortran.dg/warn_concat.f90: New test. - -2018-03-16 Jakub Jelinek - - PR target/84899 - * gcc.dg/pr84899.c: New test. - -2018-03-16 Steven G. Kargl - - PR fortran/69395 - * gfortran.dg/pr69395.f90: Add test for max dimensions - -2018-03-16 Vladimir Makarov - - PR target/84876 - * gcc.target/i386/pr84876.c: New test. - -2018-03-16 Martin Liska - - PR ipa/84833 - * gcc.target/i386/mvc11.c: New test. - -2018-03-16 Martin Liska - - PR ipa/84722 - * gcc.target/i386/mvc10.c: New test. - -2018-03-16 Jakub Jelinek - - PR c++/79937 - PR c++/82410 - * g++.dg/cpp1y/pr79937-1.C: New test. - * g++.dg/cpp1y/pr79937-2.C: New test. - * g++.dg/cpp1y/pr79937-3.C: New test. - * g++.dg/cpp1y/pr79937-4.C: New test. - * g++.dg/cpp1y/pr82410.C: New test. - -2018-03-16 Tom de Vries - - * gcc.dg/tree-ssa/pr84512.c: Require effective target vect_int_mult. - -2018-03-16 Tom de Vries - - * gcc.dg/builtin-unreachable-6.c: Require effective target label_values. - -2018-03-16 Jakub Jelinek - - PR c++/84874 - * g++.dg/cpp2a/desig8.C: New test. - - PR tree-optimization/84841 - * gcc.dg/pr84841.c: New test. - - PR c++/84874 - * g++.dg/cpp2a/desig7.C: New test. - -2018-03-16 Mark Doffman - Jim MacArthur - - * gfortran.dg/automatic_1.f90: New test. - * gfortran.dg/automatic_repeat.f90: New test - * gfortran.dg/automatic_save.f90: New test. - * gfortran.dg/vax_structure.f90: New test. - -2018-03-15 Steven G. Kargl - - PR fortran/78741 - * gfortran.dg/pr78741.f90: New test. - -2018-03-15 Steven G. Kargl - - PR fortran/69395 - * gfortran.dg/pr69395.f90: New test. - -2018-03-15 Jakub Jelinek - - PR c++/79085 - * g++.dg/opt/pr79085.C: New test. - -2018-03-15 H.J. Lu - - PR target/84574 - * gcc.target/i386/ret-thunk-9.c: Expect __x86_return_thunk - label instead of __x86_indirect_thunk label. - -2018-03-15 Jakub Jelinek - - PR c++/84222 - * g++.dg/warn/deprecated.C (T::member3): Change dg-warning to dg-bogus. - * g++.dg/warn/deprecated-6.C (T::member3): Likewise. - * g++.dg/warn/deprecated-13.C: New test. - -2018-03-15 Olga Makhotina - - * gcc.target/i386/sgx.c (_enclv_u32): Test new intrinsic. - -2018-03-15 Richard Biener - - PR c/84873 - * c-c++-common/pr84873.c: New testcase. - -2018-03-15 Tamar Christina - - PR target/84711 - * gcc.target/arm/big-endian-subreg.c: New. - -2018-03-15 Jakub Jelinek - - PR target/84860 - * gcc.c-torture/compile/pr84860.c: New test. - -2018-03-15 Julia Koval - - * gcc.target/i386/builtin_target.c (check_intel_cpu_model): Add - cannonlake. - (check_features): Add avx512vbmi2, gfni, vpclmulqdq, avx512vnni, - avx512bitalg. - -2018-03-15 Jakub Jelinek - - PR c/84853 - * gcc.dg/pr84853.c: New test. - -2018-03-14 Carl Love - - * gcc.target/powerpc/builtins-7-runnable.c: New test file. - -2018-03-14 Martin Liska - - PR ipa/8480 - * g++.dg/lto/pr84805_0.C: New test. - * g++.dg/lto/pr84805_1.C: New test. - * g++.dg/lto/pr84805_2.C: New test. - -2018-03-14 David Malcolm - - PR c/84852 - * gcc.dg/fixits-pr84852-1.c: New test. - * gcc.dg/fixits-pr84852-2.c: New test. - -2018-03-14 Thomas Preud'homme - - * lib/scanasm.exp (scan-assembler-times): Move FAIL debug info into a - separate verbose message. - * lib/scandump.exp (scan-dump-times): Likewise. - -2018-03-14 Julia Koval - - * g++.dg/ext/mv16.C: Split up icelake on icelake client and icelake - server. - * gcc.target/i386/funcspec-56.inc: Ditto. - -2018-03-14 Richard Sandiford - - * gcc.target/aarch64/sve/mul_highpart_1_run.c: Restrict to - aarch64_sve_hw. - -2018-03-14 Jakub Jelinek - - PR sanitizer/83392 - * c-c++-common/ubsan/ptr-overflow-sanitization-1.c: Adjust expected - check count from 17 to 14. - - PR target/84844 - * gcc.target/i386/pr84844.c: New test. - -2018-03-14 Richard Biener - - PR tree-optimization/84830 - * gcc.dg/torture/pr84830.c: New testcase. - -2018-03-14 Marek Polacek - - PR c++/84596 - * g++.dg/cpp0x/static_assert15.C: New test. - -2018-03-13 Steven G. Kargl - - PR fortran/61775 - * gfortran.dg/pr61775.f90: New test. - -2018-03-13 Jakub Jelinek - - PR c++/84843 - * g++.dg/ext/pr84843-1.C: New test. - * g++.dg/ext/pr84843-2.C: New test. - -2018-03-13 David Pagan - - PR c/46921 - * gcc.dg/pr46921.c: New test. - -2018-03-13 Martin Sebor - - PR tree-optimization/84725 - * c-c++-common/Wstringop-truncation-4.c: New test. - * c-c++-common/attr-nonstring-5.c: New test. - -2018-03-13 Richard Sandiford - - * gcc.target/aarch64/sve/unpack_fcvt_signed_1.c: Expect zips rather - than unpacks. - * gcc.target/aarch64/sve/unpack_fcvt_unsigned_1.c: Likewise. - * gcc.target/aarch64/sve/unpack_float_1.c: Likewise. - -2018-03-13 Richard Sandiford - - * gcc.target/aarch64/sve/tls_1.c: New test. - * gcc.target/aarch64/sve/tls_2.C: Likewise. - -2018-03-13 Richard Sandiford - - * gcc.target/aarch64/sve/mul_highpart_1.c: New test. - * gcc.target/aarch64/sve/mul_highpart_1_run.c: Likewise. - -2018-03-13 Martin Liska - - PR ipa/84658. - * g++.dg/ipa/pr84658.C: New test. - -2018-03-13 Jakub Jelinek - - PR middle-end/84834 - * gcc.dg/pr84834.c: New test. - - PR target/84827 - * gcc.target/i386/pr84827.c: New test. - - PR target/84828 - * g++.dg/ext/pr84828.C: New test. - - PR target/84786 - * gcc.target/i386/avx512f-pr84786-1.c: New test. - * gcc.target/i386/avx512f-pr84786-2.c: New test. - - PR c++/84808 - * g++.dg/cpp1y/constexpr-84808.C: New test. - - PR c++/84704 - * g++.dg/debug/pr84704.C: New test. - -2018-03-12 Renlin Li - - * gcc.target/aarch64/movi_hf.c: New. - * gcc.target/aarch64/f16_mov_immediate_1.c: Update. - * gcc.target/aarch64/f16_mov_immediate_2.c: Update. - -2018-03-12 Martin Sebor - - PR tree-optimization/83456 - * c-c++-common/Wrestrict-2.c: Remove test cases. - * c-c++-common/Wrestrict.c: Same. - * gcc.dg/Wrestrict-12.c: New test. - * gcc.dg/Wrestrict-14.c: New test. - -2018-03-12 H.J. Lu - - * g++.dg/pr84821.C: New test. - -2018-03-12 H.J. Lu - - * gcc.dg/pr84799.c: New test. - -2018-03-12 Richard Biener - - PR tree-optimization/84803 - * gcc.dg/torture/pr84803.c: New testcase. - -2018-03-12 Jakub Jelinek - - PR c++/84813 - * g++.dg/debug/pr84813.C: New test. - -2018-03-11 Paul Thomas - - PR fortran/84546 - * gfortran.dg/unlimited_polymorphic_29.f90: New test. - -2018-03-11 Steven G. Kargl - - PR fortran/83939 - * gfortran.dg/pr83939.f90 - -2018-03-11 Thomas Koenig - - PR fortran/66128 - * gfortran.dg/zero_sized_9.f90: New test. - -2018-03-11 Jakub Jelinek - - PR debug/58150 - * g++.dg/debug/dwarf2/enum2.C: New test. - -2018-03-10 Steven G. Kargl - - PR fortran/84734 - * gfortran.dg/pr84734.f90: New test. - -2018-03-10 Eric Botcazou - - * gnat.dg/prot3.adb: New test. - * gnat.dg/prot3_pkg.ad[sb]: New helper. - -2018-03-09 Jason Merrill - Paolo Carlini - - PR c++/71169 - PR c++/71832 - * g++.dg/cpp0x/pr71169.C: New. - * g++.dg/cpp0x/pr71169-2.C: Likewise. - * g++.dg/cpp0x/pr71832.C: Likewise. - -2018-03-09 Peter Bergner - - PR target/83969 - * gcc.target/powerpc/pr83969.c: New test. - -2018-03-09 Jakub Jelinek - - PR target/84772 - * gcc.dg/pr84772.c: New test. - - PR c++/84076 - * g++.dg/warn/Wformat-2.C: New test. - - PR c++/84767 - * g++.dg/ext/vla18.C: New test. - -2018-03-09 Martin Sebor - - PR tree-optimization/84526 - * gcc.dg/Wrestrict-10.c: New test. - * gcc.dg/Wrestrict-11.c: New test. - -2018-03-09 Alexandre Oliva - - PR rtl-optimization/84682 - * gcc.dg/torture/pr84682-1.c: New. - * gcc.dg/torture/pr84682-2.c: New. - * gcc.dg/torture/pr84682-3.c: New. - -2018-03-09 Jakub Jelinek - - PR c++/84724 - * g++.dg/ext/pr84724.C: New test. - -2018-03-09 Vladimir Makarov - - PR target/83712 - * gcc.target/arm/pr83712.c: New. - -2018-03-09 Richard Biener - - PR tree-optimization/84775 - * gcc.dg/torture/pr84775.c: New testcase. - -2018-03-09 Jakub Jelinek - - PR debug/84404 - * gcc.dg/graphite/pr84404.c: Only compile on pthread effective - targets. - -2018-03-09 Eric Botcazou - - * gcc.c-torture/compile/20180309-1.c: New test. - -2018-03-08 Jakub Jelinek - - PR c++/80598 - * g++.dg/warn/Wunused-function4.C: New test. - - PR inline-asm/84742 - * gcc.target/i386/pr84742-1.c: New test. - * gcc.target/i386/pr84742-2.c: New test. - -2018-03-08 Kyrylo Tkachov - - PR target/84748 - * gcc.c-torture/execute/pr84748.c: New test. - -2018-03-08 Richard Biener - - PR middle-end/84552 - * gcc.dg/graphite/pr84552.c: New testcase. - -2018-03-08 Richard Biener - - PR tree-optimization/84178 - * gcc.dg/torture/pr84178-2.c: New testcase. - -2018-03-08 David Malcolm - - PR tree-optimization/84178 - * gcc.c-torture/compile/pr84178-1.c: New test. - -2018-03-08 Thomas Schwinge - - * lib/target-supports.exp: Do not return zero from a ifunc - function. - -2018-03-08 Richard Biener - - PR tree-optimization/84746 - * gcc.dg/torture/pr84746.c: New testcase. - - -2018-03-08 Alexandre Oliva - PR debug/84404 - PR debug/84408 - * gcc.dg/graphite/pr84404.c: New. - -2018-03-08 Jakub Jelinek - - PR tree-optimization/84740 - * gcc.dg/torture/pr84740.c: New test. - - PR tree-optimization/84739 - * gcc.dg/pr84739.c: New test. - -2018-03-07 Martin Sebor - - PR tree-optimization/83519 - * gcc.dg/Wrestrict-13.c: New test. - -2018-03-07 Steven G. Kargl - - PR fortran/64124 - PR fortran/70409 - * gfortran.dg/pr64124.f90: New tests. - * gfortran.dg/pr70409.f90: New tests. - -2018-03-07 Segher Boessenkool - - PR target/82411 - * gcc.target/powerpc/ppc-sdata-2.c: Skip if -mno-readonly-in-sdata. - -2018-03-07 Martin Sebor - - PR tree-optimization/84526 - * gcc.dg/Wrestrict-10.c: New test. - -2018-03-07 Martin Sebor - - PR tree-optimization/84468 - * g++.dg/warn/Wstringop-truncation-2.C: New test. - * gcc.dg/Wstringop-truncation.c: New test. - * gcc.dg/Wstringop-truncation-2.c: New test. - -2018-03-07 Jakub Jelinek - - PR fortran/84565 - * gfortran.dg/pr84565.f90: New test. - - PR middle-end/84723 - * gcc.target/i386/pr84723-1.c: New test. - * gcc.target/i386/pr84723-2.c: New test. - * gcc.target/i386/pr84723-3.c: New test. - * gcc.target/i386/pr84723-4.c: New test. - * gcc.target/i386/pr84723-5.c: New test. - -2018-03-06 Steven G. Kargl - - PR fortran/64107 - * gfortran.dg/pr64107.f90: New test. - -2017-03-06 Thomas Koenig - - PR fortran/84697 - PR fortran/66128 - * gfortran.dg/minmaxloc_zerosize_1.f90: New test. - -2018-03-06 Marek Polacek - - PR c++/84684 - * g++.dg/cpp1z/constexpr-84684.C: New test. - -2018-03-06 Jakub Jelinek - - PR c/84721 - * gcc.dg/pr84721.c: New test. - - PR target/84710 - * gcc.dg/pr84710.c: New test. - -2018-03-06 Steven G. Kargl - - PR fortran/56667 - * gfortran.dg/implied_do_2.f90: New test. - * gfortran.dg/coarray_8.f90: Update for new error message. - -2018-03-06 Jakub Jelinek - - PR inline-asm/84683 - * g++.dg/ext/pr84683.C: New test. - - PR tree-optimization/84687 - * gcc.dg/pr84687.c: New test. - -2018-03-06 Alexandre Oliva - - PR c++/84231 - * g++.dg/pr84231.C: New. - - PR c++/84593 - * g++.dg/cpp1y/pr84593.C: New. - - PR c++/84492 - * g++.dg/pr84492.C: New. - -2018-03-05 Bill Schmidt - - * gcc.target/powerpc/spec-barr-1.c: Change called function name to - __builtin_ppc_speculation_barrier. - -2018-03-05 Jakub Jelinek - - PR target/84700 - * gcc.target/powerpc/pr84700.c: New test. - -2018-03-05 Nathan Sidwell - - PR c++/84702 - * g++.dg/lookup/pr84702.C: New. - -2018-03-05 Jakub Jelinek - - PR target/84564 - * gcc.target/i386/pr84564.c: New test. - -2018-03-05 Marek Polacek - - PR c++/84707 - * g++.dg/cpp0x/inline-ns10.C: New test. - -2018-03-05 Nathan Sidwell - - PR c++/84694 - * g++.dg/template/pr84694.C: New. - -2018-03-05 Jakub Jelinek - - PR target/84524 - * gcc.c-torture/execute/pr84524.c: New test. - * gcc.target/i386/avx512bw-pr84524.c: New test. - -2018-03-05 Peter Bergner - - PR target/84264 - * g++.dg/pr84264.C: New test. - -2018-03-05 Paolo Carlini - - PR c++/84618 - * g++.dg/cpp0x/lambda/lambda-ice29.C: New. - * g++.dg/cpp0x/lambda/lambda-ice17.C: Adjust. - * g++.dg/cpp0x/lambda/lambda-ice23.C: Likewise. - -2018-03-05 Olga Makhotina - - * g++.dg/other/i386-2.C: Add -mpconfig and -mwbnoinvd. - * g++.dg/other/i386-3.C: Ditto. - * gcc.target/i386/sse-12.c: Ditto. - * gcc.target/i386/sse-13.c: Ditto. - * gcc.target/i386/sse-14.c: Ditto. - * gcc.target/i386/sse-23.c: Add pconfig and wbnoinvd. - * gcc.target/i386/wbinvd-1.c: New test. - * gcc.target/i386/wbnoinvd-1.c: Ditto. - * gcc.target/i386/pconfig-1.c: Ditto. - -2018-03-05 Pádraig Brady - Nathan Sidwell - - PR c++/84497 - * g++.dg/cpp0x/pr84497.C: New. - -2018-03-05 Richard Biener - - PR tree-optimization/84670 - * gcc.dg/pr84670-1.c: New testcase. - * gcc.dg/pr84670-2.c: Likewise. - * gcc.dg/pr84670-3.c: Likewise. - * gcc.dg/pr84670-4.c: Likewise. - -2018-03-05 Richard Biener - - PR tree-optimization/84650 - * gcc.dg/graphite/pr84650.c: New testcase. - -2018-03-05 Paolo Carlini - - PR c++/82022 - * g++.dg/cpp1z/constexpr-lambda20.C: New. - -2018-03-03 Harald Anlauf - - PR fortran/71085 - * gfortran.dg/pr71085.f90: New test. - -2018-03-03 Steven G. Kargl - - PR fortran/66128 - * gfortran.dg/zero_sized_8.f90: Really commit New test. - -2018-03-03 Steven G. Kargl - - PR fortran/51434 - * gfortran.dg/pr51434.f90: New test. - -2018-03-03 Paolo Carlini - - PR c++/61358 - * g++.dg/cpp0x/lambda/lambda-61358.C: New. - -2018-03-03 Paolo Carlini - - PR c++/67370 - * g++.dg/cpp0x/lambda/lambda-67370.C: New. - -2018-03-03 Paolo Carlini - - PR c++/71464 - * g++.dg/torture/pr71464.C: New. - -2018-03-03 Paul Thomas - - PR fortran/80965 - * gfortran.dg/select_type_41.f90: New test. - -2018-03-02 Paolo Carlini - - PR c++/61135 - * g++.dg/cpp0x/lambda/lambda-61135.C: New. - -2018-03-02 Marek Polacek - - PR c++/84578 - * g++.dg/ext/flexary29.C: New test. - -2018-03-02 Jakub Jelinek - - * c-c++-common/Warray-bounds-2.c: Fix a comment typo. - -2018-03-02 Paolo Carlini - - PR c++/81812 - * g++.dg/torture/pr81812.C: New. - -2018-03-02 Marek Polacek - - PR c++/84171 - * g++.dg/warn/Wsign-compare-8.C: New test. - - PR c++/84663 - * g++.dg/parse/array-size3.C: New test. - - PR c++/84664 - * g++.dg/cpp0x/lambda/lambda-ice28.C: New test. - -2018-03-02 Jakub Jelinek - - PR c++/84662 - * g++.dg/cpp1y/pr84662.C: New test. - -2018-03-02 Thomas Schwinge - - * g++.dg/lto/20080915_0.C: Don't use "dg-lto-options". - * g++.dg/lto/20080907_0.C: Use "#pragma GCC" instead of - "dg-lto-options". - * g++.dg/lto/20101010-1_0.C: Likewise. - * g++.dg/lto/20101010-2_0.C: Likewise. - -2018-03-02 Jakub Jelinek - - PR ipa/84628 - * gcc.dg/pr84628.c: New test. - - PR target/56540 - * gcc.target/ia64/pr56540.c: New test. - -2018-03-02 Will Schmidt - - * gcc.target/powerpc/altivec-7-be.c: Remove VSX content, allow - 32-bit target. - * gcc.target/powerpc/altivec-7.h: Remove VSX content. - * gcc.target/powerpc/vsx-7-be.c: New test (VSX content). - * gcc.target/powerpc/vsx-7.h: New include (VSX content). - * gcc.target/powerpc/altivec-7-le.c: Add vsx-7.h include. - -2018-03-02 Marek Polacek - - PR c++/84590 - * c-c++-common/ubsan/shift-11.c: New test. - -2018-03-02 Richard Sandiford - - * gcc.dg/vect/vect-alias-check-13.c: New test. - -2018-03-02 Jakub Jelinek - - PR target/84614 - * gcc.dg/pr84614.c: New test. - - PR inline-asm/84625 - * gcc.target/i386/pr84625.c: New test. - -2018-03-02 Richard Biener - - PR tree-optimization/84427 - * gcc.dg/torture/pr84427.c: New testcase. - -2018-03-01 Peter Bergner - - PR target/84534 - * gcc.target/powerpc/vec-setup-be-long.c: Add dg-xfail-run-if on - powerpc64le*-*-linux*. - * gcc.target/powerpc/vsx-vector-6-le.c: Do not count xxlor's. - * gcc.target/powerpc/vsx-vector-6-le.p9.c: Likewise. - -2018-03-01 Martin Sebor - - PR c++/84294 - * g++.dg/ext/attr-const.C: Remove xfail. - * g++.dg/ext/attr-malloc-3.C: New test. - * g++.dg/ext/attr-noinline-3.C: New test. - * g++.dg/ext/attr-noreturn-3.C: New test. - * g++.dg/ext/attr-nothrow-3.C: New test. - * g++.dg/ext/attr-pure.C: Remove xfail. - -2018-03-02 Jakub Jelinek - - PR sanitizer/70875 - * gcc.dg/ubsan/bounds-3.c: Add -fno-sanitize-recover=bounds to - dg-options and dg-shouldfail "ubsan" directive. - -2018-03-01 Marek Polacek - Jason Merrill - - PR c++/84582 - * g++.dg/cpp1y/auto-fn15.C: Extend testing. - * g++.dg/cpp1z/static1.C: New test. - * g++.dg/template/static37.C: New test. - -2018-03-01 Nathan Sidwell - - PR c++/84434 - * g++.dg/template/pr84434.C: New. - -2018-03-01 Thomas Preud'homme - - PR c++/84596 - * g++.dg/cpp0x/static_assert14.C: New test. - -2018-03-01 Paolo Carlini - - PR c++/79410 - * g++.dg/torture/pr79410.C: New. - -2018-03-01 Martin Liska - - PR sanitizer/82484 - * gcc.dg/asan/pr82484.c: New test. - -2018-03-01 Richard Biener - - PR debug/84645 - * gfortran.dg/lto/pr84645_0.f90: New testcase. - -2018-03-01 Paul Thomas - - PR fortran/84219 - * gfortran.dg/coarray_47.f90: New test. - -2018-03-01 Paul Thomas - - PR fortran/84538 - * gfortran.dg/class_array_23.f03: New test. - -2018-03-01 Richard Sandiford - - PR rtl-optimization/84528 - * gcc.dg/torture/pr84538.c: Rename to... - * gcc.dg/torture/pr84528.c: ...this. - -2018-03-01 Richard Sandiford - - PR rtl-optimization/84528 - * gcc.dg/torture/pr84538.c: New test. - -2018-02-28 Martin Sebor - - * c-c++-common/Warray-bounds-2.c: Declare helper static to avoid - -fpic test failures. - * c-c++-common/Wrestrict-2.c: Same. - * c-c++-common/Wstringop-truncation.c: Same. - * gcc.dg/Warray-bounds-22.c: Same. - * gcc.dg/Wstringop-overflow.c: Same. - * gcc.dg/attr-alloc_size-3.c (unsigned_range): Same. - (signed_range): Same. - (unsigned_anti_range): Same. - * gcc.dg/attr-alloc_size-4.c (unsigned_range): Same. - (signed_range): Same. - (unsigned_anti_range): Same. - * gcc.dg/attr-alloc_size-7.c: Same. - * gcc.dg/attr-alloc_size-8.c: Same. - * gcc.dg/builtin-alloc-size.c: Same. - * gcc.dg/builtin-stpncpy.c: Same. - * gcc.dg/builtins-nonnull.c: Same. - * gcc.dg/nonnull-4.c (g16_1_3_5_7_11_13): Same. - * gcc.dg/pr79214.c: Same. - * gcc.dg/tree-ssa/builtin-snprintf-warn-1.c: Same. - * gcc.dg/tree-ssa/builtin-snprintf-warn-2.c: Same. - * gcc.dg/tree-ssa/builtin-sprintf-5.c: Same. - * gcc.dg/tree-ssa/builtin-sprintf-warn-11.c: Same. - * gcc.dg/tree-ssa/builtin-sprintf-warn-12.c: Same. - * gcc.dg/tree-ssa/builtin-sprintf-warn-13.c: Same. - * gcc.dg/tree-ssa/builtin-sprintf-warn-14.c: Same. - * gcc.dg/tree-ssa/builtin-sprintf-warn-15.c: Same. - * gcc.dg/tree-ssa/builtin-sprintf-warn-19.c: Same. - * gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Same. - * gcc.dg/tree-ssa/builtin-sprintf-warn-9.c: Same. - -2018-02-28 David Edelsohn - - PR target/84014 - * gcc.target/powerpc/pr84014.c: Use ilp32, not -m32 option. - -2018-02-28 Jakub Jelinek - - PR c++/84609 - * g++.dg/cpp0x/pr84609.C: New test. - -2018-02-28 Martin Sebor - - PR testsuite/84617 - * g++.dg/ext/attr-malloc-3.C: New test. - * g++.dg/ext/attr-const.C: Adjust. Xfail assertions failing due - to pre-existing problems. - * g++.dg/ext/attr-pure.C: Same. - -2018-02-28 Paul Thomas - - PR fortran/83901 - * gfortran.dg/associate_37.f90: New test. - - PR fortran/83344 - * gfortran.dg/associate_36.f90: Add Steve Kargl as contributer. - -2018-02-28 Jakub Jelinek - - PR target/52991 - * gcc.dg/bf-ms-layout.c: Revert 2012-04-26 changes. - * gcc.dg/bf-ms-layout-2.c: Revert 2012-02-23 changes. - * gcc.dg/bf-ms-layout-4.c: New test. - * gcc.dg/bf-ms-layout-5.c: New test. - -2018-02-28 Peter Bergner - - PR target/83399 - * gcc.target/powerpc/pr83399.c: Only run on Linux. - -2018-02-28 Richard Biener - - PR tree-optimization/84584 - * gcc.dg/graphite/pr84584.c: New testcase. - -2018-02-28 Jonathan Wakely - - PR preprocessor/84517 - * g++.dg/cpp0x/udlit-macros.C: Expect a warning for ""__FILE__. - -2018-02-28 Eric Botcazou - - * c-c++-common/dump-ada-spec-12.c: New test. - * c-c++-common/dump-ada-spec-13.c: Likewise. - -2018-02-28 Eric Botcazou - - * c-c++-common/dump-ada-spec-11.c: New test. - -2018-02-28 Martin Liska - - PR testsuite/84597 - * g++.dg/ext/timevar1.C: Fix pruned patterns. - * g++.dg/ext/timevar2.C: Likewise. - -2018-02-28 Eric Botcazou - - * c-c++-common/dump-ada-spec-8.c: New test. - * c-c++-common/dump-ada-spec-9.c: Likewise. - * c-c++-common/dump-ada-spec-10.c: Likewise. - -2018-02-28 Richard Biener - - PR middle-end/84607 - * gcc.dg/pr84607.c: New testcase. - -2018-02-28 Nathan Sidwell - - PR c++/84602 - * g++.dg/lookup/pr84602.C: New. - -2018-02-28 Jakub Jelinek - - PR c++/83871 - PR c++/83503 - * g++.dg/ext/attr-warning.C: Remove -fdump-tree-optimized from - dg-options. - * g++.dg/ext/attr-nonnull.C: Likewise. - * g++.dg/ext/attr-noinline.C: Fix syntax in scan-tree-dump-not - directives. - * g++.dg/ext/attr-noinline-2.C: Likewise. - * g++.dg/ext/attr-noreturn-2.C: Use -fdump-tree-optimized instead of - -fdump-tree-eh in dg-options. - -2018-02-28 Alan Modra - - * lib/prune.exp (prune_gcc_output): Match lower case "in function" - GNU ld message. - * g++.dg/other/anon5.C: Match lower case "bad value" GNU ld message. - -2018-02-27 Martin Sebor - - PR c++/83871 - PR c++/83503 - * g++.dg/Wmissing-attributes.C: New test. - * g++.dg/ext/attr-const-pure.C: New test. - * g++.dg/ext/attr-const.C: New test. - * g++.dg/ext/attr-deprecated-2.C: New test. - * g++.dg/ext/attr-malloc-2.C: New test. - * g++.dg/ext/attr-malloc.C: New test. - * g++.dg/ext/attr-noinline-2.C: New test. - * g++.dg/ext/attr-noinline.C: New test. - * g++.dg/ext/attr-nonnull.C: New test. - * g++.dg/ext/attr-noreturn-2.C: New test. - * g++.dg/ext/attr-noreturn.C: New test. - * g++.dg/ext/attr-nothrow-2.C: New test. - * g++.dg/ext/attr-nothrow.C: New test. - * g++.dg/ext/attr-optimize.C: New test. - * g++.dg/ext/attr-pure.C: New test. - * g++.dg/ext/attr-returns-nonnull.C: New test. - * g++.dg/ext/attr-warning.C: New test. - -2018-02-27 Nathan Sidwell - - PR c++/84426 - * g++.dg/lookup/pr84426.C: New. - -2018-02-27 Richard Biener - - PR tree-optimization/84512 - * gcc.dg/tree-ssa/pr84512.c: New testcase. - -2018-02-27 Martin Liska - - PR gcov-profile/84548 - * g++.dg/gcov/pr84548.C: New test. - -2018-02-27 Jakub Jelinek - - PR target/84575 - * gcc.target/i386/pr84309.c: Add -mno-avx2 to dg-options. - -2018-02-26 Jakub Jelinek - - PR c++/84558 - * g++.dg/cpp1y/pr84558.C: New test. - -2018-02-26 Paolo Carlini - - PR c++/84540 - * g++.dg/cpp0x/alignas14.C: New. - * g++.dg/cpp0x/alignas15.C: Likewise. - -2018-02-26 Jakub Jelinek - - PR c++/84557 - * g++.dg/gomp/pr84557.C: New test. - -2018-02-26 Marek Polacek - - PR c++/84325 - * g++.dg/cpp1z/pr84325.C: New test. - -2018-02-26 Carl Love - - * gcc.target/powerpc/builtins-3.c: Move vec_neg builtin tests to - Power 8 test file. - * gcc.target/powerpc/builtins-3-p8.c: Add vec_neg builtin tests. - * gcc.target/powerpc/fold-vec-neg-char.c(dg-options): Add -mcpu=power8. - * gcc.target/powerpc/fold-vec-neg-floatdouble.c(dg-options): Add - -mcpu=power8. - * gcc.target/powerpc/fold-vec-neg-int.c(dg-options): Remove file. - * gcc.target/powerpc/fold-vec-neg-short.c(dg-options): Add - -mcpu=power8. - -2018-02-26 H.J. Lu - - PR target/84039 - * gcc.target/i386/indirect-thunk-1.c: Updated. - * gcc.target/i386/indirect-thunk-2.c: Likewise. - * gcc.target/i386/indirect-thunk-3.c: Likewise. - * gcc.target/i386/indirect-thunk-4.c: Likewise. - * gcc.target/i386/indirect-thunk-5.c: Likewise. - * gcc.target/i386/indirect-thunk-6.c: Likewise. - * gcc.target/i386/indirect-thunk-7.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-1.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-2.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-3.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-4.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-5.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-6.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-7.c: Likewise. - * gcc.target/i386/indirect-thunk-bnd-1.c: Likewise. - * gcc.target/i386/indirect-thunk-bnd-2.c: Likewise. - * gcc.target/i386/indirect-thunk-bnd-3.c: Likewise. - * gcc.target/i386/indirect-thunk-bnd-4.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-1.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-2.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-3.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-4.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-5.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-6.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-7.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-1.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-2.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-3.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-4.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-5.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-6.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-7.c: Likewise. - * gcc.target/i386/ret-thunk-9.c: Likewise. - * gcc.target/i386/ret-thunk-10.c: Likewise. - * gcc.target/i386/ret-thunk-11.c: Likewise. - * gcc.target/i386/ret-thunk-12.c: Likewise. - * gcc.target/i386/ret-thunk-13.c: Likewise. - * gcc.target/i386/ret-thunk-14.c: Likewise. - * gcc.target/i386/ret-thunk-15.c: Likewise. - -2018-02-26 Eric Botcazou - - * gcc.c-torture/execute/20180226-1.c: New test. - -2018-02-26 Richard Sandiford - - PR tree-optimization/83965 - * gcc.dg/vect/pr83965-2.c: New test. - -2018-02-26 Tom de Vries - - * gcc.c-torture/compile/regs-arg-size.c (swprintf): Declare. - -2018-02-26 H.J. Lu - - PR target/84530 - * gcc.target/i386/ret-thunk-22.c: New test. - * gcc.target/i386/ret-thunk-23.c: Likewise. - * gcc.target/i386/ret-thunk-24.c: Likewise. - * gcc.target/i386/ret-thunk-25.c: Likewise. - * gcc.target/i386/ret-thunk-26.c: Likewise. - -2018-02-26 Paolo Carlini - - PR c++/84533 - * g++.dg/cpp1z/pr84533.C: New. - -2018-02-26 Marek Polacek - - PR c++/84537 - * g++.dg/parse/error60.C: New test. - -2018-02-26 Jakub Jelinek - - PR c++/84556 - * g++.dg/gomp/pr84556.C: New test. - * g++.dg/vect/pr84556.cc: New test. - -2018-02-26 Dominique d'Humieres - - PR fortran/32957 - * gfortran.dg/c_f_pointer_shape_tests_2.f03: Use explicit KIND c_int. - * gfortran.dg/c_f_pointer_shape_tests_4.f03: Likewise. - * gfortran.dg/c_funloc_tests_3.f03: Likewise. - * gfortran.dg/c_loc_test.f90: Likewise. - * gfortran.dg/c_loc_tests_2.f03: Likewise. - * gfortran.dg/proc_decl_17.f90: Likewise. - * gfortran.dg/proc_ptr_8.f90: Likewise. - -2018-02-26 Ramana Radhakrishnan - - PR target/84521 - * gcc.target/aarch64/lr_free_2.c: Revert changes in - r254814 disabling -fomit-frame-pointer by default. - * gcc.target/aarch64/spill_1.c: Likewise. - * gcc.target/aarch64/test_frame_11.c: Likewise. - * gcc.target/aarch64/test_frame_12.c: Likewise. - * gcc.target/aarch64/test_frame_13.c: Likewise. - * gcc.target/aarch64/test_frame_14.c: Likewise. - * gcc.target/aarch64/test_frame_15.c: Likewise. - * gcc.target/aarch64/test_frame_3.c: Likewise. - * gcc.target/aarch64/test_frame_5.c: Likewise. - * gcc.target/aarch64/test_frame_9.c: Likewise. - -2018-02-25 Steven G. Kargl - - PR fortran/83633 - * gfortran.dg/explicit_shape_1.f90: New test. - * gfortran.dg/automatic_module_variable.f90: Update regex. - * gfortran.dg/bad_automatic_objects_1.f90: Ditto. - * gfortran.dg/constant_shape.f90: Ditto. - * gfortran.dg/dec_structure_23.f90: Ditto. - * gfortran.dg/pr78240.f90: Ditto. - -2018-02-25 Paul Thomas - - PR fortran/84523 - * gfortran.dg/pr84523.f90: New test. - -2018-02-25 Thomas Koenig - - PR fortran/78238 - * gfortran.dg/select_type_40.f90: New test. - -2018-02-24 Steven G. Kargl - - PR fortran/30792 - * gfortran.dg/data_substring.f90: New test. - -2018-02-24 Marek Polacek - - PR c++/83692 - * g++.dg/cpp1z/constexpr-83692.C: New test. - -2018-02-23 Steven G. Kargl - - PR fortran/84346 - * gfortran.dg/statement_function_1.f90: Update test. - -2018-02-23 Jerry DeLisle - - PR fortran/84506 - * gfortran.dg/inquire_19.f90: New test. - -2018-02-23 Paul Thomas - - PR fortran/83149 - * gfortran.dg/pr83149_b.f90: New test. - * gfortran.dg/pr83149_a.f90: Additional source for previous. - -2018-02-23 Carl Love - - * gcc.target/powerpc/builtins-3-runnable.c: Move tests for vec_float2, - vec_signed2 and vec_unsigned2 to new Power 8 test file. - * gcc.target/powerpc/builtins-3-runnable-p8.c: New test file for - Power 8 tests. - -2018-02-23 Will Schmidt - - * gcc.target/powerpc/pr80695-p9.c: Update dg-requires stanza. - * gcc.target/powerpc/pr80695-p8.c: Update dg-requires stanza. - -2018-02-23 Will Schmidt - - * gcc.target/powerpc/fold-vec-mult-int128-p9.c: Add maddld insn to - expected output. - -2018-02-23 Paul Thomas - - PR fortran/83149 - * gfortran.dg/pr83149_1.f90: New test. - * gfortran.dg/pr83149.f90: Additional source for previous. - -2018-02-23 Segher Boessenkool - - PR testsuite/80551 - * c-c++-common/tsan/race_on_mutex.c: Change regexp to allow - __GI___pthread_mutex_init as well. - -2018-02-23 Paul Thomas - - PR fortran/83148 - * gfortran.dg/class_68.f90: New test. - -2018-02-22 Thomas Koenig - - PR fortran/59781 - * gfortran.dg/derived_init_5.f90: New test. - -2018-02-22 Jakub Jelinek - - PR target/82851 - * gcc.target/i386/avx2-vpaddq-3.c: Add -mtune=generic to dg-options. - * gcc.target/i386/avx2-vpsubq-3.c: Likewise. - -2018-02-22 Vladimir Makarov - - PR target/81572 - * gcc.target/powerpc/pr81572.c: New. - -2018-02-22 Andreas Schwab - - * go.test/go-test.exp (go-set-goarch): Recognize riscv64-*-*. - -2018-02-22 Martin Sebor - - PR tree-optimization/84480 - * c-c++-common/Wstringop-truncation.c: Adjust text of expected warnings. - * g++.dg/warn/Wstringop-truncation-1.C: New test. - -2018-02-22 H.J. Lu - - PR target/84176 - * gcc.target/i386/indirect-thunk-11.c: New test. - * gcc.target/i386/indirect-thunk-12.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-12.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-13.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-14.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-15.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-16.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-10.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-8.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-9.c: Likewise. - -2018-02-22 Steve Ellcey - - PR target/83335 - * gcc.target/aarch64/asm-2.c: Add dg-error for - ILP32 mode. - * gcc.target/aarch64/asm-4.c: New test. - -2018-02-22 Thomas Preud'homme - - * gcc.target/arm/multilib.exp: Add tests for Armv8-R multilib mappings. - -2018-02-22 Marek Polacek - - PR c++/84493 - * g++.dg/parse/error59.C: New test. - -2018-02-22 Tom de Vries - - * gcc.c-torture/execute/pr82210.c: Require effective target alloca. - -2018-02-22 Paolo Carlini - - PR c++/77655 - * g++.dg/cpp0x/pr77655.C: New. - -2018-02-22 Jakub Jelinek - - PR c++/84496 - * g++.dg/cpp1y/pr84496.C: New test. - - PR target/84502 - * g++.dg/torture/pr84502.C: New test. - - PR tree-optimization/84503 - * gcc.dg/pr84503-1.c: New test. - * gcc.dg/pr84503-2.c: New test. - -2018-02-21 Jakub Jelinek - - PR tree-optimization/84478 - * gcc.c-torture/execute/pr84478.c: New test. - -2018-02-20 Martin Sebor - - PR middle-end/84095 - * c-c++-common/Warray-bounds-3.c: Adjust text of expected warnings. - * c-c++-common/Wrestrict.c: Same. - * gcc.dg/Wrestrict-6.c: Same. - * gcc.dg/Warray-bounds-27.c: New test. - * gcc.dg/Wrestrict-8.c: New test. - * gcc.dg/Wrestrict-9.c: New test. - * gcc.dg/pr84095.c: New test. - -2018-02-20 Thomas Koenig - - * gfortran.dg/structure_constructor_14.f90: Adjust STOP number. - -2018-02-20 Thomas Koenig - - PR fortran/48890 - PR fortran/83823 - * gfortran.dg/structure_constructor_14.f90: New test. - -2018-02-20 Jeff Law - - PR middle-end/82123 - PR tree-optimization/81592 - PR middle-end/79257 - * gcc.dg/pr81592.c: New test. - * gcc.dg/pr82123.c: New test. - * gcc.dg/builtin-unreachable-6.c: Turn off VRP. - -2018-02-20 Jakub Jelinek - - PR c++/84488 - * g++.dg/warn/Wunused-var-30.C: New test. - -2018-02-20 Richard Sandiford - - PR tree-optimization/84419 - * gcc.dg/vect/pr84419.c: New test. - -2018-02-20 Jakub Jelinek - - PR middle-end/82004 - * gfortran.dg/pr82004.f90: New test. - -2018-02-20 Siddhesh Poyarekar - - * g++.dg/warn/Wimplicit-fallthrough-3.C: New test case. - -2018-02-20 Martin Liska - - PR c/84310 - PR target/79747 - * gcc.target/i386/pr84310.c: New test. - * gcc.target/i386/pr84310-2.c: Likewise. - -2018-02-20 Paolo Carlini - - PR c++/84446 - * g++.dg/cpp0x/lambda/lambda-ice27.C: New. - -2018-02-20 Jakub Jelinek - - PR c++/84445 - * g++.dg/cpp1z/launder7.C: New test. - - PR c++/84449 - * g++.dg/cpp0x/constexpr-84449.C: New test. - - PR c++/84455 - * g++.dg/cpp0x/lambda/lambda-ice26.C: New test. - -2018-02-19 Paul Thomas - - PR fortran/83344 - PR fortran/83975 - * gfortran.dg/associate_22.f90: Enable commented out test. - * gfortran.dg/associate_36.f90: New test. - -2018-02-19 Jakub Jelinek - - PR target/84146 - * gcc.target/i386/pr84146.c: Add -fcompare-debug to dg-options. - -2017-02-19 Uros Bizjak - - * gcc.target/i386/pr70023.c (dg-do): Compile only for target int128. - (dg-options): Use -mavx instead of -w. - -2018-02-19 Jakub Jelinek - - PR c++/84444 - * g++.dg/cpp1z/launder8.C: New test. - - PR c++/84448 - * g++.dg/gomp/pr84448.C: New test. - - PR c++/84430 - * g++.dg/gomp/pr84430.C: New test. - - PR tree-optimization/84452 - * gcc.dg/pr84452.c: New test. - - PR c++/79064 - * g++.dg/template/overload15.C (f): Use 0u - 1ll instead of 0u - 1l. - -2018-02-19 Thomas Koenig - - PR fortran/35339 - * gfortran.dg/implied_do_io_4.f90: New test. - -2018-02-19 Andre Vehreschild - - * gfortran.dg/coarray_alloc_comp_6.f08: New test. - * gfortran.dg/coarray_alloc_comp_7.f08: New test. - * gfortran.dg/coarray_alloc_comp_8.f08: New test. - -2018-02-19 Carl Love - - * gcc.target/powerpc/fold-vec-neg-int.p7.c: Remove test file. - -2018-01-16 Sebastian Peryt - - PR target/84460 - * gcc.target/i386/pr57193.c: Add -mtune=generic. - -2018-02-19 Paolo Carlini - - PR c++/84348 - * g++.dg/cpp0x/auto50.C: New. - * g++.dg/parse/friend12.C: Adjust. - -2018-02-18 Jerry DeLisle - - PR libgfortran/84389 - * gfortran.dg/dtio_33.f90: New test. - -2018-02-18 Jerry DeLisle - - PR libgfortran/84412 - * gfortran.dg/inquire_18.f90: New test. - -2018-02-18 Janus Weil - - PR fortran/84381 - * gfortran.dg/io_real_boz2.f90: Remove option "-fall-intrinsics". - * gfortran.dg/pointer_intent_3.f90: Ditto. - * gfortran.dg/proc_ptr_common_1.f90: Ditto. - * gfortran.dg/protected_3.f90: Ditto. - * gfortran.dg/protected_4.f90: Ditto. - * gfortran.dg/protected_5.f90: Ditto. - * gfortran.dg/protected_6.f90: Ditto. - -2018-02-18 Paul Thomas - - PR fortran/80945 - * gfortran.dg/associate_35.f90: Remove error, add stop n's and - change to run. - -2018-02-17 Thomas Koenig - - PR fortran/84270 - * gfortran.dg/inline_matmul_22.f90: New test. - -2018-02-17 Thomas Koenig - - PR fortran/84381 - * gfortran.dg/abort_shoulfail.f90: New test. - * gcc.target/powerpc/ppc-fortran/pr80108-1.f90: Replace CALL ABORT - by STOP n. - * gfortran.dg/PR19754_2.f90: Likewise. - * gfortran.dg/PR19872.f: Likewise. - * gfortran.dg/PR49268.f90: Likewise. - * gfortran.dg/Wall.f90: Likewise. - * gfortran.dg/Wno-all.f90: Likewise. - * gfortran.dg/achar_1.f90: Likewise. - * gfortran.dg/achar_2.f90: Likewise. - * gfortran.dg/achar_4.f90: Likewise. - * gfortran.dg/achar_6.F90: Likewise. - * gfortran.dg/actual_array_constructor_1.f90: Likewise. - * gfortran.dg/actual_array_constructor_2.f90: Likewise. - * gfortran.dg/actual_array_constructor_3.f90: Likewise. - * gfortran.dg/actual_array_offset_1.f90: Likewise. - * gfortran.dg/actual_array_result_1.f90: Likewise. - * gfortran.dg/actual_array_substr_1.f90: Likewise. - * gfortran.dg/actual_array_substr_2.f90: Likewise. - * gfortran.dg/actual_pointer_function_1.f90: Likewise. - * gfortran.dg/actual_procedure_1.f90: Likewise. - * gfortran.dg/adjustl_1.f90: Likewise. - * gfortran.dg/advance_1.f90: Likewise. - * gfortran.dg/advance_4.f90: Likewise. - * gfortran.dg/advance_5.f90: Likewise. - * gfortran.dg/advance_6.f90: Likewise. - * gfortran.dg/aint_anint_1.f90: Likewise. - * gfortran.dg/aliasing_array_result_1.f90: Likewise. - * gfortran.dg/aliasing_dummy_1.f90: Likewise. - * gfortran.dg/aliasing_dummy_4.f90: Likewise. - * gfortran.dg/aliasing_dummy_5.f90: Likewise. - * gfortran.dg/alloc_comp_assign_1.f90: Likewise. - * gfortran.dg/alloc_comp_assign_10.f90: Likewise. - * gfortran.dg/alloc_comp_assign_11.f90: Likewise. - * gfortran.dg/alloc_comp_assign_12.f03: Likewise. - * gfortran.dg/alloc_comp_assign_13.f08: Likewise. - * gfortran.dg/alloc_comp_assign_14.f08: Likewise. - * gfortran.dg/alloc_comp_assign_15.f03: Likewise. - * gfortran.dg/alloc_comp_assign_2.f90: Likewise. - * gfortran.dg/alloc_comp_assign_3.f90: Likewise. - * gfortran.dg/alloc_comp_assign_4.f90: Likewise. - * gfortran.dg/alloc_comp_assign_5.f90: Likewise. - * gfortran.dg/alloc_comp_assign_6.f90: Likewise. - * gfortran.dg/alloc_comp_assign_7.f90: Likewise. - * gfortran.dg/alloc_comp_assign_8.f90: Likewise. - * gfortran.dg/alloc_comp_assign_9.f90: Likewise. - * gfortran.dg/alloc_comp_auto_array_1.f90: Likewise. - * gfortran.dg/alloc_comp_auto_array_2.f90: Likewise. - * gfortran.dg/alloc_comp_basics_1.f90: Likewise. - * gfortran.dg/alloc_comp_basics_2.f90: Likewise. - * gfortran.dg/alloc_comp_basics_5.f90: Likewise. - * gfortran.dg/alloc_comp_bounds_1.f90: Likewise. - * gfortran.dg/alloc_comp_class_1.f90: Likewise. - * gfortran.dg/alloc_comp_class_2.f90: Likewise. - * gfortran.dg/alloc_comp_class_4.f03: Likewise. - * gfortran.dg/alloc_comp_class_5.f03: Likewise. - * gfortran.dg/alloc_comp_constructor_1.f90: Likewise. - * gfortran.dg/alloc_comp_constructor_2.f90: Likewise. - * gfortran.dg/alloc_comp_constructor_3.f90: Likewise. - * gfortran.dg/alloc_comp_constructor_4.f90: Likewise. - * gfortran.dg/alloc_comp_constructor_5.f90: Likewise. - * gfortran.dg/alloc_comp_constructor_6.f90: Likewise. - * gfortran.dg/alloc_comp_constructor_7.f90: Likewise. - * gfortran.dg/alloc_comp_deep_copy_1.f03: Likewise. - * gfortran.dg/alloc_comp_deep_copy_2.f03: Likewise. - * gfortran.dg/alloc_comp_deep_copy_3.f03: Likewise. - * gfortran.dg/alloc_comp_default_init_1.f90: Likewise. - * gfortran.dg/alloc_comp_default_init_2.f90: Likewise. - * gfortran.dg/alloc_comp_initializer_1.f90: Likewise. - * gfortran.dg/alloc_comp_initializer_4.f03: Likewise. - * gfortran.dg/alloc_comp_optional_1.f90: Likewise. - * gfortran.dg/alloc_comp_result_1.f90: Likewise. - * gfortran.dg/alloc_comp_result_2.f90: Likewise. - * gfortran.dg/alloc_comp_scalar_1.f90: Likewise. - * gfortran.dg/alloc_comp_transformational_1.f90: Likewise. - * gfortran.dg/allocatable_dummy_1.f90: Likewise. - * gfortran.dg/allocatable_dummy_3.f90: Likewise. - * gfortran.dg/allocatable_function_1.f90: Likewise. - * gfortran.dg/allocatable_function_10.f90: Likewise. - * gfortran.dg/allocatable_function_3.f90: Likewise. - * gfortran.dg/allocatable_function_5.f90: Likewise. - * gfortran.dg/allocatable_function_6.f90: Likewise. - * gfortran.dg/allocatable_function_7.f90: Likewise. - * gfortran.dg/allocatable_function_8.f90: Likewise. - * gfortran.dg/allocatable_scalar_1.f90: Likewise. - * gfortran.dg/allocatable_scalar_10.f90: Likewise. - * gfortran.dg/allocatable_scalar_12.f90: Likewise. - * gfortran.dg/allocatable_scalar_13.f90: Likewise. - * gfortran.dg/allocatable_scalar_3.f90: Likewise. - * gfortran.dg/allocatable_scalar_4.f90: Likewise. - * gfortran.dg/allocatable_scalar_5.f90: Likewise. - * gfortran.dg/allocatable_scalar_6.f90: Likewise. - * gfortran.dg/allocatable_scalar_7.f90: Likewise. - * gfortran.dg/allocatable_scalar_8.f90: Likewise. - * gfortran.dg/allocatable_scalar_9.f90: Likewise. - * gfortran.dg/allocate_alloc_opt_10.f90: Likewise. - * gfortran.dg/allocate_alloc_opt_3.f90: Likewise. - * gfortran.dg/allocate_alloc_opt_6.f90: Likewise. - * gfortran.dg/allocate_assumed_charlen_1.f90: Likewise. - * gfortran.dg/allocate_assumed_charlen_2.f90: Likewise. - * gfortran.dg/allocate_class_3.f90: Likewise. - * gfortran.dg/allocate_deferred_char_scalar_1.f03: Likewise. - * gfortran.dg/allocate_deferred_char_scalar_2.f03: Likewise. - * gfortran.dg/allocate_derived_5.f90: Likewise. - * gfortran.dg/allocate_with_arrayspec_1.f90: Likewise. - * gfortran.dg/allocate_with_mold_1.f90: Likewise. - * gfortran.dg/allocate_with_source_1.f90: Likewise. - * gfortran.dg/allocate_with_source_10.f08: Likewise. - * gfortran.dg/allocate_with_source_11.f08: Likewise. - * gfortran.dg/allocate_with_source_12.f03: Likewise. - * gfortran.dg/allocate_with_source_15.f03: Likewise. - * gfortran.dg/allocate_with_source_16.f90: Likewise. - * gfortran.dg/allocate_with_source_17.f03: Likewise. - * gfortran.dg/allocate_with_source_18.f03: Likewise. - * gfortran.dg/allocate_with_source_2.f90: Likewise. - * gfortran.dg/allocate_with_source_20.f03: Likewise. - * gfortran.dg/allocate_with_source_22.f03: Likewise. - * gfortran.dg/allocate_with_source_23.f03: Likewise. - * gfortran.dg/allocate_with_source_24.f90: Likewise. - * gfortran.dg/allocate_with_source_5.f90: Likewise. - * gfortran.dg/allocate_with_source_6.f90: Likewise. - * gfortran.dg/allocate_with_source_7.f08: Likewise. - * gfortran.dg/allocate_with_source_8.f08: Likewise. - * gfortran.dg/allocate_with_source_9.f08: Likewise. - * gfortran.dg/allocate_zerosize_1.f90: Likewise. - * gfortran.dg/allocate_zerosize_3.f: Likewise. - * gfortran.dg/altreturn_3.f90: Likewise. - * gfortran.dg/altreturn_5.f90: Likewise. - * gfortran.dg/altreturn_7.f90: Likewise. - * gfortran.dg/and_or_xor.f90: Likewise. - * gfortran.dg/anint_1.f90: Likewise. - * gfortran.dg/any_all_1.f90: Likewise. - * gfortran.dg/anyallcount_1.f90: Likewise. - * gfortran.dg/append_1.f90: Likewise. - * gfortran.dg/argument_checking_1.f90: Likewise. - * gfortran.dg/argument_checking_2.f90: Likewise. - * gfortran.dg/argument_checking_8.f90: Likewise. - * gfortran.dg/arithmetic_if.f90: Likewise. - * gfortran.dg/array_1.f90: Likewise. - * gfortran.dg/array_2.f90: Likewise. - * gfortran.dg/array_alloc_1.f90: Likewise. - * gfortran.dg/array_alloc_2.f90: Likewise. - * gfortran.dg/array_alloc_3.f90: Likewise. - * gfortran.dg/array_assignment_1.F90: Likewise. - * gfortran.dg/array_assignment_5.f90: Likewise. - * gfortran.dg/array_constructor_1.f90: Likewise. - * gfortran.dg/array_constructor_10.f90: Likewise. - * gfortran.dg/array_constructor_11.f90: Likewise. - * gfortran.dg/array_constructor_12.f90: Likewise. - * gfortran.dg/array_constructor_15.f90: Likewise. - * gfortran.dg/array_constructor_16.f90: Likewise. - * gfortran.dg/array_constructor_17.f90: Likewise. - * gfortran.dg/array_constructor_19.f90: Likewise. - * gfortran.dg/array_constructor_23.f: Likewise. - * gfortran.dg/array_constructor_24.f: Likewise. - * gfortran.dg/array_constructor_32.f90: Likewise. - * gfortran.dg/array_constructor_36.f90: Likewise. - * gfortran.dg/array_constructor_39.f90: Likewise. - * gfortran.dg/array_constructor_4.f90: Likewise. - * gfortran.dg/array_constructor_40.f90: Likewise. - * gfortran.dg/array_constructor_44.f90: Likewise. - * gfortran.dg/array_constructor_45.f90: Likewise. - * gfortran.dg/array_constructor_46.f90: Likewise. - * gfortran.dg/array_constructor_47.f90: Likewise. - * gfortran.dg/array_constructor_49.f90: Likewise. - * gfortran.dg/array_constructor_5.f90: Likewise. - * gfortran.dg/array_constructor_50.f90: Likewise. - * gfortran.dg/array_constructor_6.f90: Likewise. - * gfortran.dg/array_constructor_7.f90: Likewise. - * gfortran.dg/array_constructor_8.f90: Likewise. - * gfortran.dg/array_constructor_9.f90: Likewise. - * gfortran.dg/array_constructor_type_1.f03: Likewise. - * gfortran.dg/array_constructor_type_10.f03: Likewise. - * gfortran.dg/array_constructor_type_11.f03: Likewise. - * gfortran.dg/array_constructor_type_12.f03: Likewise. - * gfortran.dg/array_constructor_type_13.f90: Likewise. - * gfortran.dg/array_constructor_type_14.f03: Likewise. - * gfortran.dg/array_constructor_type_16.f03: Likewise. - * gfortran.dg/array_constructor_type_2.f03: Likewise. - * gfortran.dg/array_constructor_type_22.f03: Likewise. - * gfortran.dg/array_constructor_type_3.f03: Likewise. - * gfortran.dg/array_constructor_type_4.f03: Likewise. - * gfortran.dg/array_constructor_type_5.f03: Likewise. - * gfortran.dg/array_constructor_type_6.f03: Likewise. - * gfortran.dg/array_constructor_type_7.f03: Likewise. - * gfortran.dg/array_function_1.f90: Likewise. - * gfortran.dg/array_function_5.f90: Likewise. - * gfortran.dg/array_initializer_1.f90: Likewise. - * gfortran.dg/array_initializer_2.f90: Likewise. - * gfortran.dg/array_memcpy_5.f90: Likewise. - * gfortran.dg/array_memset_2.f90: Likewise. - * gfortran.dg/array_reference_1.f90: Likewise. - * gfortran.dg/array_return_value_1.f90: Likewise. - * gfortran.dg/array_section_1.f90: Likewise. - * gfortran.dg/array_temporaries_3.f90: Likewise. - * gfortran.dg/arrayio_1.f90: Likewise. - * gfortran.dg/arrayio_10.f90: Likewise. - * gfortran.dg/arrayio_11.f90: Likewise. - * gfortran.dg/arrayio_12.f90: Likewise. - * gfortran.dg/arrayio_13.f90: Likewise. - * gfortran.dg/arrayio_14.f90: Likewise. - * gfortran.dg/arrayio_16.f90: Likewise. - * gfortran.dg/arrayio_2.f90: Likewise. - * gfortran.dg/arrayio_3.f90: Likewise. - * gfortran.dg/arrayio_4.f90: Likewise. - * gfortran.dg/arrayio_5.f90: Likewise. - * gfortran.dg/arrayio_6.f90: Likewise. - * gfortran.dg/arrayio_7.f90: Likewise. - * gfortran.dg/arrayio_8.f90: Likewise. - * gfortran.dg/arrayio_9.f90: Likewise. - * gfortran.dg/arrayio_derived_1.f90: Likewise. - * gfortran.dg/assign_10.f90: Likewise. - * gfortran.dg/assign_9.f90: Likewise. - * gfortran.dg/assign_func_dtcomp_1.f90: Likewise. - * gfortran.dg/assignment_1.f90: Likewise. - * gfortran.dg/associate_1.f03: Likewise. - * gfortran.dg/associate_11.f90: Likewise. - * gfortran.dg/associate_13.f90: Likewise. - * gfortran.dg/associate_15.f90: Likewise. - * gfortran.dg/associate_17.f90: Likewise. - * gfortran.dg/associate_18.f08: Likewise. - * gfortran.dg/associate_19.f03: Likewise. - * gfortran.dg/associate_20.f03: Likewise. - * gfortran.dg/associate_22.f90: Likewise. - * gfortran.dg/associate_23.f90: Likewise. - * gfortran.dg/associate_24.f90: Likewise. - * gfortran.dg/associate_25.f90: Likewise. - * gfortran.dg/associate_27.f90: Likewise. - * gfortran.dg/associate_28.f90: Likewise. - * gfortran.dg/associate_32.f03: Likewise. - * gfortran.dg/associate_33.f03: Likewise. - * gfortran.dg/associate_34.f90: Likewise. - * gfortran.dg/associate_6.f03: Likewise. - * gfortran.dg/associate_7.f03: Likewise. - * gfortran.dg/associate_8.f03: Likewise. - * gfortran.dg/associate_9.f03: Likewise. - * gfortran.dg/associated_1.f90: Likewise. - * gfortran.dg/associated_2.f90: Likewise. - * gfortran.dg/associated_5.f90: Likewise. - * gfortran.dg/associated_6.f90: Likewise. - * gfortran.dg/associated_target_3.f90: Likewise. - * gfortran.dg/associated_target_4.f90: Likewise. - * gfortran.dg/associated_target_5.f03: Likewise. - * gfortran.dg/associated_target_6.f03: Likewise. - * gfortran.dg/assumed_dummy_1.f90: Likewise. - * gfortran.dg/assumed_rank_1.f90: Likewise. - * gfortran.dg/assumed_rank_10.f90: Likewise. - * gfortran.dg/assumed_rank_2.f90: Likewise. - * gfortran.dg/assumed_rank_7.f90: Likewise. - * gfortran.dg/assumed_rank_8.f90: Likewise. - * gfortran.dg/assumed_rank_9.f90: Likewise. - * gfortran.dg/assumed_rank_bounds_1.f90: Likewise. - * gfortran.dg/assumed_rank_bounds_2.f90: Likewise. - * gfortran.dg/assumed_shape_ranks_2.f90: Likewise. - * gfortran.dg/assumed_type_2.f90: Likewise. - * gfortran.dg/atan2_1.f90: Likewise. - * gfortran.dg/auto_array_1.f90: Likewise. - * gfortran.dg/auto_char_dummy_array_1.f90: Likewise. - * gfortran.dg/auto_char_dummy_array_3.f90: Likewise. - * gfortran.dg/auto_char_len_3.f90: Likewise. - * gfortran.dg/auto_char_pointer_array_result_1.f90: Likewise. - * gfortran.dg/auto_internal_assumed.f90: Likewise. - * gfortran.dg/auto_pointer_array_result_1.f90: Likewise. - * gfortran.dg/auto_save_2.f90: Likewise. - * gfortran.dg/automatic_default_init_1.f90: Likewise. - * gfortran.dg/backslash_1.f90: Likewise. - * gfortran.dg/backslash_2.f90: Likewise. - * gfortran.dg/backslash_3.f: Likewise. - * gfortran.dg/backspace_1.f: Likewise. - * gfortran.dg/backspace_10.f90: Likewise. - * gfortran.dg/backspace_11.f90: Likewise. - * gfortran.dg/backspace_2.f: Likewise. - * gfortran.dg/backspace_3.f: Likewise. - * gfortran.dg/backspace_4.f: Likewise. - * gfortran.dg/backspace_5.f: Likewise. - * gfortran.dg/backspace_6.f: Likewise. - * gfortran.dg/backspace_7.f90: Likewise. - * gfortran.dg/backspace_8.f: Likewise. - * gfortran.dg/backspace_9.f: Likewise. - * gfortran.dg/bessel_1.f90: Likewise. - * gfortran.dg/bessel_2.f90: Likewise. - * gfortran.dg/bessel_5.f90: Likewise. - * gfortran.dg/bessel_6.f90: Likewise. - * gfortran.dg/bessel_7.f90: Likewise. - * gfortran.dg/bind_c_dts_2.f03: Likewise. - * gfortran.dg/bind_c_dts_3.f03: Likewise. - * gfortran.dg/bind_c_usage_15.f90: Likewise. - * gfortran.dg/bind_c_usage_16.f03: Likewise. - * gfortran.dg/bind_c_usage_17.f90: Likewise. - * gfortran.dg/bind_c_usage_24.f90: Likewise. - * gfortran.dg/binding_c_table_15_1.f03: Likewise. - * gfortran.dg/binding_label_tests_16.f03: Likewise. - * gfortran.dg/binding_label_tests_23.f90: Likewise. - * gfortran.dg/bit_comparison_1.F90: Likewise. - * gfortran.dg/bit_comparison_2.F90: Likewise. - * gfortran.dg/block_1.f08: Likewise. - * gfortran.dg/block_13.f08: Likewise. - * gfortran.dg/block_14.f90: Likewise. - * gfortran.dg/block_2.f08: Likewise. - * gfortran.dg/block_6.f08: Likewise. - * gfortran.dg/block_7.f08: Likewise. - * gfortran.dg/block_8.f08: Likewise. - * gfortran.dg/blockdata_1.f90: Likewise. - * gfortran.dg/bound_1.f90: Likewise. - * gfortran.dg/bound_2.f90: Likewise. - * gfortran.dg/bound_3.f90: Likewise. - * gfortran.dg/bound_4.f90: Likewise. - * gfortran.dg/bound_5.f90: Likewise. - * gfortran.dg/bound_6.f90: Likewise. - * gfortran.dg/bound_7.f90: Likewise. - * gfortran.dg/bound_8.f90: Likewise. - * gfortran.dg/bound_9.f90: Likewise. - * gfortran.dg/bound_simplification_1.f90: Likewise. - * gfortran.dg/bound_simplification_3.f90: Likewise. - * gfortran.dg/bound_simplification_4.f90: Likewise. - * gfortran.dg/bound_simplification_5.f90: Likewise. - * gfortran.dg/bound_simplification_6.f90: Likewise. - * gfortran.dg/bounds_check_1.f90: Likewise. - * gfortran.dg/bounds_check_12.f90: Likewise. - * gfortran.dg/bounds_check_14.f90: Likewise. - * gfortran.dg/bounds_check_15.f90: Likewise. - * gfortran.dg/bounds_check_19.f90: Likewise. - * gfortran.dg/bounds_check_8.f90: Likewise. - * gfortran.dg/bounds_check_9.f90: Likewise. - * gfortran.dg/bounds_check_fail_2.f90: Likewise. - * gfortran.dg/bounds_check_fail_3.f90: Likewise. - * gfortran.dg/bounds_check_fail_4.f90: Likewise. - * gfortran.dg/boz_1.f90: Likewise. - * gfortran.dg/boz_11.f90: Likewise. - * gfortran.dg/boz_13.f90: Likewise. - * gfortran.dg/boz_14.f90: Likewise. - * gfortran.dg/boz_15.f90: Likewise. - * gfortran.dg/boz_3.f90: Likewise. - * gfortran.dg/boz_6.f90: Likewise. - * gfortran.dg/boz_9.f90: Likewise. - * gfortran.dg/byte_1.f90: Likewise. - * gfortran.dg/byte_2.f90: Likewise. - * gfortran.dg/c_assoc.f90: Likewise. - * gfortran.dg/c_assoc_2.f03: Likewise. - * gfortran.dg/c_assoc_3.f90: Likewise. - * gfortran.dg/c_by_val_1.f: Likewise. - * gfortran.dg/c_by_val_5.f90: Likewise. - * gfortran.dg/c_char_tests.f03: Likewise. - * gfortran.dg/c_char_tests_2.f03: Likewise. - * gfortran.dg/c_f_pointer_complex.f03: Likewise. - * gfortran.dg/c_f_pointer_logical.f03: Likewise. - * gfortran.dg/c_f_pointer_shape_tests_2.f03: Likewise. - * gfortran.dg/c_f_pointer_shape_tests_4.f03: Likewise. - * gfortran.dg/c_f_pointer_shape_tests_5.f90: Likewise. - * gfortran.dg/c_f_pointer_tests.f90: Likewise. - * gfortran.dg/c_f_pointer_tests_4.f90: Likewise. - * gfortran.dg/c_kind_int128_test2.f03: Likewise. - * gfortran.dg/c_kind_params.f90: Likewise. - * gfortran.dg/c_loc_test_20.f90: Likewise. - * gfortran.dg/c_loc_tests_2.f03: Likewise. - * gfortran.dg/c_ptr_tests_14.f90: Likewise. - * gfortran.dg/c_ptr_tests_15.f90: Likewise. - * gfortran.dg/c_size_t_test.f03: Likewise. - * gfortran.dg/c_sizeof_1.f90: Likewise. - * gfortran.dg/c_sizeof_5.f90: Likewise. - * gfortran.dg/c_sizeof_6.f90: Likewise. - * gfortran.dg/char4_iunit_1.f03: Likewise. - * gfortran.dg/char4_iunit_2.f03: Likewise. - * gfortran.dg/char_allocation_1.f90: Likewise. - * gfortran.dg/char_array_constructor.f90: Likewise. - * gfortran.dg/char_array_structure_constructor.f90: Likewise. - * gfortran.dg/char_assign_1.f90: Likewise. - * gfortran.dg/char_associated_1.f90: Likewise. - * gfortran.dg/char_cast_2.f90: Likewise. - * gfortran.dg/char_comparison_1.f: Likewise. - * gfortran.dg/char_component_initializer_1.f90: Likewise. - * gfortran.dg/char_component_initializer_2.f90: Likewise. - * gfortran.dg/char_cons_len.f90: Likewise. - * gfortran.dg/char_conversion.f90: Likewise. - * gfortran.dg/char_cshift_1.f90: Likewise. - * gfortran.dg/char_cshift_2.f90: Likewise. - * gfortran.dg/char_decl_2.f90: Likewise. - * gfortran.dg/char_eoshift_1.f90: Likewise. - * gfortran.dg/char_eoshift_2.f90: Likewise. - * gfortran.dg/char_eoshift_3.f90: Likewise. - * gfortran.dg/char_eoshift_4.f90: Likewise. - * gfortran.dg/char_eoshift_5.f90: Likewise. - * gfortran.dg/char_expr_1.f90: Likewise. - * gfortran.dg/char_expr_3.f90: Likewise. - * gfortran.dg/char_initialiser_actual.f90: Likewise. - * gfortran.dg/char_length_12.f90: Likewise. - * gfortran.dg/char_length_14.f90: Likewise. - * gfortran.dg/char_length_15.f90: Likewise. - * gfortran.dg/char_length_17.f90: Likewise. - * gfortran.dg/char_length_20.f90: Likewise. - * gfortran.dg/char_length_21.f90: Likewise. - * gfortran.dg/char_length_5.f90: Likewise. - * gfortran.dg/char_length_6.f90: Likewise. - * gfortran.dg/char_length_7.f90: Likewise. - * gfortran.dg/char_length_8.f90: Likewise. - * gfortran.dg/char_pack_1.f90: Likewise. - * gfortran.dg/char_pack_2.f90: Likewise. - * gfortran.dg/char_pointer_assign.f90: Likewise. - * gfortran.dg/char_pointer_assign_3.f90: Likewise. - * gfortran.dg/char_pointer_comp_assign.f90: Likewise. - * gfortran.dg/char_pointer_dependency.f90: Likewise. - * gfortran.dg/char_pointer_dummy.f90: Likewise. - * gfortran.dg/char_pointer_func.f90: Likewise. - * gfortran.dg/char_reshape_1.f90: Likewise. - * gfortran.dg/char_result_1.f90: Likewise. - * gfortran.dg/char_result_12.f90: Likewise. - * gfortran.dg/char_result_13.f90: Likewise. - * gfortran.dg/char_result_14.f90: Likewise. - * gfortran.dg/char_result_15.f90: Likewise. - * gfortran.dg/char_result_2.f90: Likewise. - * gfortran.dg/char_result_3.f90: Likewise. - * gfortran.dg/char_result_4.f90: Likewise. - * gfortran.dg/char_result_5.f90: Likewise. - * gfortran.dg/char_result_6.f90: Likewise. - * gfortran.dg/char_result_7.f90: Likewise. - * gfortran.dg/char_result_8.f90: Likewise. - * gfortran.dg/char_spread_1.f90: Likewise. - * gfortran.dg/char_transpose_1.f90: Likewise. - * gfortran.dg/char_type_len.f90: Likewise. - * gfortran.dg/char_unpack_1.f90: Likewise. - * gfortran.dg/char_unpack_2.f90: Likewise. - * gfortran.dg/character_array_constructor_1.f90: Likewise. - * gfortran.dg/character_comparison_1.f90: Likewise. - * gfortran.dg/character_comparison_2.f90: Likewise. - * gfortran.dg/character_comparison_3.f90: Likewise. - * gfortran.dg/character_comparison_4.f90: Likewise. - * gfortran.dg/character_comparison_5.f90: Likewise. - * gfortran.dg/character_comparison_6.f90: Likewise. - * gfortran.dg/character_comparison_7.f90: Likewise. - * gfortran.dg/character_comparison_8.f90: Likewise. - * gfortran.dg/character_comparison_9.f90: Likewise. - * gfortran.dg/charlen_15.f90: Likewise. - * gfortran.dg/charlen_16.f90: Likewise. - * gfortran.dg/chkbits.f90: Likewise. - * gfortran.dg/chmod_1.f90: Likewise. - * gfortran.dg/chmod_2.f90: Likewise. - * gfortran.dg/chmod_3.f90: Likewise. - * gfortran.dg/class_1.f03: Likewise. - * gfortran.dg/class_18.f03: Likewise. - * gfortran.dg/class_19.f03: Likewise. - * gfortran.dg/class_35.f90: Likewise. - * gfortran.dg/class_46.f03: Likewise. - * gfortran.dg/class_48.f90: Likewise. - * gfortran.dg/class_51.f90: Likewise. - * gfortran.dg/class_52.f90: Likewise. - * gfortran.dg/class_6.f03: Likewise. - * gfortran.dg/class_63.f90: Likewise. - * gfortran.dg/class_64.f90: Likewise. - * gfortran.dg/class_65.f90: Likewise. - * gfortran.dg/class_66.f90: Likewise. - * gfortran.dg/class_67.f90: Likewise. - * gfortran.dg/class_9.f03: Likewise. - * gfortran.dg/class_alias.f90: Likewise. - * gfortran.dg/class_allocate_1.f03: Likewise. - * gfortran.dg/class_allocate_10.f03: Likewise. - * gfortran.dg/class_allocate_13.f90: Likewise. - * gfortran.dg/class_allocate_14.f90: Likewise. - * gfortran.dg/class_allocate_15.f90: Likewise. - * gfortran.dg/class_allocate_19.f03: Likewise. - * gfortran.dg/class_allocate_21.f90: Likewise. - * gfortran.dg/class_allocate_22.f90: Likewise. - * gfortran.dg/class_allocate_3.f03: Likewise. - * gfortran.dg/class_allocate_4.f03: Likewise. - * gfortran.dg/class_allocate_5.f90: Likewise. - * gfortran.dg/class_allocate_6.f03: Likewise. - * gfortran.dg/class_allocate_7.f03: Likewise. - * gfortran.dg/class_allocate_8.f03: Likewise. - * gfortran.dg/class_allocate_9.f03: Likewise. - * gfortran.dg/class_array_1.f03: Likewise. - * gfortran.dg/class_array_14.f90: Likewise. - * gfortran.dg/class_array_15.f03: Likewise. - * gfortran.dg/class_array_16.f90: Likewise. - * gfortran.dg/class_array_2.f03: Likewise. - * gfortran.dg/class_array_20.f03: Likewise. - * gfortran.dg/class_array_21.f03: Likewise. - * gfortran.dg/class_array_3.f03: Likewise. - * gfortran.dg/class_array_4.f03: Likewise. - * gfortran.dg/class_array_7.f03: Likewise. - * gfortran.dg/class_array_8.f03: Likewise. - * gfortran.dg/class_array_9.f03: Likewise. - * gfortran.dg/class_defined_operator_1.f03: Likewise. - * gfortran.dg/class_dummy_1.f03: Likewise. - * gfortran.dg/class_optional_1.f90: Likewise. - * gfortran.dg/class_optional_2.f90: Likewise. - * gfortran.dg/class_result_5.f90: Likewise. - * gfortran.dg/class_result_6.f90: Likewise. - * gfortran.dg/class_to_type_1.f03: Likewise. - * gfortran.dg/class_to_type_2.f90: Likewise. - * gfortran.dg/class_to_type_3.f03: Likewise. - * gfortran.dg/class_to_type_4.f90: Likewise. - * gfortran.dg/coarray/alloc_comp_1.f90: Likewise. - * gfortran.dg/coarray/alloc_comp_4.f90: Likewise. - * gfortran.dg/coarray/allocate_errgmsg.f90: Likewise. - * gfortran.dg/coarray/atomic_1.f90: Likewise. - * gfortran.dg/coarray/atomic_2.f90: Likewise. - * gfortran.dg/coarray/codimension.f90: Likewise. - * gfortran.dg/coarray/coindexed_1.f90: Likewise. - * gfortran.dg/coarray/collectives_1.f90: Likewise. - * gfortran.dg/coarray/collectives_2.f90: Likewise. - * gfortran.dg/coarray/collectives_3.f90: Likewise. - * gfortran.dg/coarray/collectives_4.f90: Likewise. - * gfortran.dg/coarray/cosubscript_1.f90: Likewise. - * gfortran.dg/coarray/dummy_1.f90: Likewise. - * gfortran.dg/coarray/event_1.f90: Likewise. - * gfortran.dg/coarray/event_2.f90: Likewise. - * gfortran.dg/coarray/get_array.f90: Likewise. - * gfortran.dg/coarray/image_index_1.f90: Likewise. - * gfortran.dg/coarray/image_index_2.f90: Likewise. - * gfortran.dg/coarray/image_index_3.f90: Likewise. - * gfortran.dg/coarray/lib_realloc_1.f90: Likewise. - * gfortran.dg/coarray/lock_1.f90: Likewise. - * gfortran.dg/coarray/lock_2.f90: Likewise. - * gfortran.dg/coarray/move_alloc_1.f90: Likewise. - * gfortran.dg/coarray/poly_run_1.f90: Likewise. - * gfortran.dg/coarray/poly_run_2.f90: Likewise. - * gfortran.dg/coarray/poly_run_3.f90: Likewise. - * gfortran.dg/coarray/ptr_comp_3.f08: Likewise. - * gfortran.dg/coarray/registering_1.f90: Likewise. - * gfortran.dg/coarray/scalar_alloc_1.f90: Likewise. - * gfortran.dg/coarray/scalar_alloc_2.f90: Likewise. - * gfortran.dg/coarray/send_array.f90: Likewise. - * gfortran.dg/coarray/send_char_array_1.f90: Likewise. - * gfortran.dg/coarray/sendget_array.f90: Likewise. - * gfortran.dg/coarray/subobject_1.f90: Likewise. - * gfortran.dg/coarray/sync_1.f90: Likewise. - * gfortran.dg/coarray/sync_3.f90: Likewise. - * gfortran.dg/coarray/this_image_1.f90: Likewise. - * gfortran.dg/coarray/this_image_2.f90: Likewise. - * gfortran.dg/coarray_13.f90: Likewise. - * gfortran.dg/coarray_15.f90: Likewise. - * gfortran.dg/coarray_16.f90: Likewise. - * gfortran.dg/coarray_2.f90: Likewise. - * gfortran.dg/coarray_23.f90: Likewise. - * gfortran.dg/coarray_40.f90: Likewise. - * gfortran.dg/coarray_alloc_comp_1.f08: Likewise. - * gfortran.dg/coarray_alloc_comp_2.f08: Likewise. - * gfortran.dg/coarray_allocate_10.f08: Likewise. - * gfortran.dg/coarray_allocate_2.f08: Likewise. - * gfortran.dg/coarray_allocate_3.f08: Likewise. - * gfortran.dg/coarray_allocate_4.f08: Likewise. - * gfortran.dg/coarray_allocate_5.f08: Likewise. - * gfortran.dg/coarray_allocate_7.f08: Likewise. - * gfortran.dg/coarray_allocate_8.f08: Likewise. - * gfortran.dg/coarray_allocate_9.f08: Likewise. - * gfortran.dg/coarray_lib_alloc_4.f90: Likewise. - * gfortran.dg/coarray_lib_comm_1.f90: Likewise. - * gfortran.dg/coarray_lib_realloc_1.f90: Likewise. - * gfortran.dg/coarray_lib_token_1.f90: Likewise. - * gfortran.dg/coarray_lib_token_2.f90: Likewise. - * gfortran.dg/coarray_ptr_comp_1.f08: Likewise. - * gfortran.dg/coarray_ptr_comp_2.f08: Likewise. - * gfortran.dg/coarray_send_by_ref_1.f08: Likewise. - * gfortran.dg/coarray_stat_2.f90: Likewise. - * gfortran.dg/coarray_subobject_1.f90: Likewise. - * gfortran.dg/coindexed_1.f90: Likewise. - * gfortran.dg/comma.f: Likewise. - * gfortran.dg/comma_format_extension_3.f: Likewise. - * gfortran.dg/comma_format_extension_4.f: Likewise. - * gfortran.dg/common_2.f90: Likewise. - * gfortran.dg/common_4.f90: Likewise. - * gfortran.dg/common_align_1.f90: Likewise. - * gfortran.dg/common_align_2.f90: Likewise. - * gfortran.dg/common_equivalence_1.f: Likewise. - * gfortran.dg/common_pointer_1.f90: Likewise. - * gfortran.dg/common_resize_1.f: Likewise. - * gfortran.dg/complex_intrinsic_1.f90: Likewise. - * gfortran.dg/complex_intrinsic_3.f90: Likewise. - * gfortran.dg/complex_intrinsic_5.f90: Likewise. - * gfortran.dg/complex_intrinsic_7.f90: Likewise. - * gfortran.dg/complex_read.f90: Likewise. - * gfortran.dg/complex_write.f90: Likewise. - * gfortran.dg/constant_substring.f: Likewise. - * gfortran.dg/constructor_2.f90: Likewise. - * gfortran.dg/constructor_3.f90: Likewise. - * gfortran.dg/constructor_6.f90: Likewise. - * gfortran.dg/contained_1.f90: Likewise. - * gfortran.dg/contained_3.f90: Likewise. - * gfortran.dg/contained_equivalence_1.f90: Likewise. - * gfortran.dg/contained_module_proc_1.f90: Likewise. - * gfortran.dg/continuation_1.f90: Likewise. - * gfortran.dg/continuation_11.f90: Likewise. - * gfortran.dg/continuation_12.f90: Likewise. - * gfortran.dg/continuation_13.f90: Likewise. - * gfortran.dg/continuation_14.f: Likewise. - * gfortran.dg/continuation_8.f90: Likewise. - * gfortran.dg/convert_2.f90: Likewise. - * gfortran.dg/convert_implied_open.f90: Likewise. - * gfortran.dg/count_init_expr.f03: Likewise. - * gfortran.dg/cr_lf.f90: Likewise. - * gfortran.dg/cray_pointers_10.f90: Likewise. - * gfortran.dg/cray_pointers_2.f90: Likewise. - * gfortran.dg/cray_pointers_5.f90: Likewise. - * gfortran.dg/cray_pointers_7.f90: Likewise. - * gfortran.dg/cray_pointers_8.f90: Likewise. - * gfortran.dg/cshift_1.f90: Likewise. - * gfortran.dg/cshift_2.f90: Likewise. - * gfortran.dg/cshift_large_1.f90: Likewise. - * gfortran.dg/cshift_nan_1.f90: Likewise. - * gfortran.dg/csqrt_2.f: Likewise. - * gfortran.dg/data_array_1.f90: Likewise. - * gfortran.dg/data_char_1.f90: Likewise. - * gfortran.dg/data_char_2.f90: Likewise. - * gfortran.dg/data_char_3.f90: Likewise. - * gfortran.dg/data_derived_1.f90: Likewise. - * gfortran.dg/data_implied_do_1.f90: Likewise. - * gfortran.dg/data_namelist_conflict.f90: Likewise. - * gfortran.dg/deallocate_alloc_opt_3.f90: Likewise. - * gfortran.dg/deallocate_stat.f90: Likewise. - * gfortran.dg/deallocate_stat_2.f90: Likewise. - * gfortran.dg/debug/pr37738.f: Likewise. - * gfortran.dg/dec_bitwise_ops_1.f90: Likewise. - * gfortran.dg/dec_bitwise_ops_2.f90: Likewise. - * gfortran.dg/dec_exp_1.f90: Likewise. - * gfortran.dg/dec_init_1.f90: Likewise. - * gfortran.dg/dec_init_2.f90: Likewise. - * gfortran.dg/dec_init_3.f90: Likewise. - * gfortran.dg/dec_init_4.f90: Likewise. - * gfortran.dg/dec_io_1.f90: Likewise. - * gfortran.dg/dec_io_2.f90: Likewise. - * gfortran.dg/dec_io_2a.f90: Likewise. - * gfortran.dg/dec_io_6.f90: Likewise. - * gfortran.dg/dec_loc_rval_1.f90: Likewise. - * gfortran.dg/dec_logical_xor_1.f90: Likewise. - * gfortran.dg/dec_math.f90: Likewise. - * gfortran.dg/dec_parameter_1.f: Likewise. - * gfortran.dg/dec_parameter_2.f90: Likewise. - * gfortran.dg/dec_static_1.f90: Likewise. - * gfortran.dg/dec_static_2.f90: Likewise. - * gfortran.dg/dec_structure_1.f90: Likewise. - * gfortran.dg/dec_structure_10.f90: Likewise. - * gfortran.dg/dec_structure_18.f90: Likewise. - * gfortran.dg/dec_structure_19.f90: Likewise. - * gfortran.dg/dec_structure_2.f90: Likewise. - * gfortran.dg/dec_structure_22.f90: Likewise. - * gfortran.dg/dec_structure_3.f90: Likewise. - * gfortran.dg/dec_structure_4.f90: Likewise. - * gfortran.dg/dec_structure_5.f90: Likewise. - * gfortran.dg/dec_structure_6.f90: Likewise. - * gfortran.dg/dec_structure_7.f90: Likewise. - * gfortran.dg/dec_union_1.f90: Likewise. - * gfortran.dg/dec_union_2.f90: Likewise. - * gfortran.dg/dec_union_3.f90: Likewise. - * gfortran.dg/dec_union_4.f90: Likewise. - * gfortran.dg/dec_union_5.f90: Likewise. - * gfortran.dg/default_format_1.f90: Likewise. - * gfortran.dg/default_format_2.f90: Likewise. - * gfortran.dg/default_format_denormal_1.f90: Likewise. - * gfortran.dg/default_format_denormal_2.f90: Likewise. - * gfortran.dg/default_initialization_3.f90: Likewise. - * gfortran.dg/default_initialization_4.f90: Likewise. - * gfortran.dg/default_initialization_5.f90: Likewise. - * gfortran.dg/deferred_character_1.f90: Likewise. - * gfortran.dg/deferred_character_10.f90: Likewise. - * gfortran.dg/deferred_character_11.f90: Likewise. - * gfortran.dg/deferred_character_12.f90: Likewise. - * gfortran.dg/deferred_character_13.f90: Likewise. - * gfortran.dg/deferred_character_14.f90: Likewise. - * gfortran.dg/deferred_character_15.f90: Likewise. - * gfortran.dg/deferred_character_16.f90: Likewise. - * gfortran.dg/deferred_character_2.f90: Likewise. - * gfortran.dg/deferred_character_3.f90: Likewise. - * gfortran.dg/deferred_character_4.f90: Likewise. - * gfortran.dg/deferred_character_5.f90: Likewise. - * gfortran.dg/deferred_character_6.f90: Likewise. - * gfortran.dg/deferred_character_7.f90: Likewise. - * gfortran.dg/deferred_character_8.f90: Likewise. - * gfortran.dg/deferred_character_9.f90: Likewise. - * gfortran.dg/deferred_character_assignment_1.f90: Likewise. - * gfortran.dg/deferred_type_component_1.f90: Likewise. - * gfortran.dg/deferred_type_component_2.f90: Likewise. - * gfortran.dg/deferred_type_param_2.f90: Likewise. - * gfortran.dg/deferred_type_param_4.f90: Likewise. - * gfortran.dg/deferred_type_param_5.f90: Likewise. - * gfortran.dg/deferred_type_param_6.f90: Likewise. - * gfortran.dg/deferred_type_param_8.f90: Likewise. - * gfortran.dg/deferred_type_param_9.f90: Likewise. - * gfortran.dg/deferred_type_proc_pointer_1.f90: Likewise. - * gfortran.dg/deferred_type_proc_pointer_2.f90: Likewise. - * gfortran.dg/defined_assignment_1.f90: Likewise. - * gfortran.dg/defined_assignment_10.f90: Likewise. - * gfortran.dg/defined_assignment_11.f90: Likewise. - * gfortran.dg/defined_assignment_2.f90: Likewise. - * gfortran.dg/defined_assignment_3.f90: Likewise. - * gfortran.dg/defined_assignment_4.f90: Likewise. - * gfortran.dg/defined_assignment_5.f90: Likewise. - * gfortran.dg/defined_assignment_8.f90: Likewise. - * gfortran.dg/defined_assignment_9.f90: Likewise. - * gfortran.dg/dependency_2.f90: Likewise. - * gfortran.dg/dependency_21.f90: Likewise. - * gfortran.dg/dependency_22.f90: Likewise. - * gfortran.dg/dependency_23.f90: Likewise. - * gfortran.dg/dependency_24.f90: Likewise. - * gfortran.dg/dependency_25.f90: Likewise. - * gfortran.dg/dependency_26.f90: Likewise. - * gfortran.dg/dependency_39.f90: Likewise. - * gfortran.dg/dependency_40.f90: Likewise. - * gfortran.dg/dependency_41.f90: Likewise. - * gfortran.dg/dependency_42.f90: Likewise. - * gfortran.dg/dependency_43.f90: Likewise. - * gfortran.dg/dependency_44.f90: Likewise. - * gfortran.dg/dependency_45.f90: Likewise. - * gfortran.dg/dependency_50.f90: Likewise. - * gfortran.dg/dependency_51.f90: Likewise. - * gfortran.dg/dependent_decls_1.f90: Likewise. - * gfortran.dg/der_array_1.f90: Likewise. - * gfortran.dg/der_array_io_1.f90: Likewise. - * gfortran.dg/der_array_io_2.f90: Likewise. - * gfortran.dg/der_array_io_3.f90: Likewise. - * gfortran.dg/der_io_1.f90: Likewise. - * gfortran.dg/der_io_3.f90: Likewise. - * gfortran.dg/der_pointer_2.f90: Likewise. - * gfortran.dg/derived_comp_array_ref_1.f90: Likewise. - * gfortran.dg/derived_comp_array_ref_2.f90: Likewise. - * gfortran.dg/derived_comp_array_ref_4.f90: Likewise. - * gfortran.dg/derived_comp_array_ref_7.f90: Likewise. - * gfortran.dg/derived_constructor_char_3.f90: Likewise. - * gfortran.dg/derived_constructor_comps_1.f90: Likewise. - * gfortran.dg/derived_constructor_comps_4.f90: Likewise. - * gfortran.dg/derived_constructor_comps_5.f90: Likewise. - * gfortran.dg/derived_constructor_comps_6.f90: Likewise. - * gfortran.dg/derived_external_function_1.f90: Likewise. - * gfortran.dg/derived_init_1.f90: Likewise. - * gfortran.dg/derived_init_2.f90: Likewise. - * gfortran.dg/derived_init_3.f90: Likewise. - * gfortran.dg/derived_init_4.f90: Likewise. - * gfortran.dg/derived_pointer_null_1.f90: Likewise. - * gfortran.dg/derived_pointer_recursion_2.f90: Likewise. - * gfortran.dg/dev_null.F90: Likewise. - * gfortran.dg/dfloat_1.f90: Likewise. - * gfortran.dg/dim_sum_1.f90: Likewise. - * gfortran.dg/dim_sum_2.f90: Likewise. - * gfortran.dg/dim_sum_3.f90: Likewise. - * gfortran.dg/direct_io_10.f: Likewise. - * gfortran.dg/direct_io_11.f90: Likewise. - * gfortran.dg/direct_io_12.f90: Likewise. - * gfortran.dg/direct_io_2.f90: Likewise. - * gfortran.dg/direct_io_3.f90: Likewise. - * gfortran.dg/direct_io_4.f90: Likewise. - * gfortran.dg/direct_io_5.f90: Likewise. - * gfortran.dg/direct_io_6.f90: Likewise. - * gfortran.dg/direct_io_7.f90: Likewise. - * gfortran.dg/direct_io_8.f90: Likewise. - * gfortran.dg/direct_io_9.f: Likewise. - * gfortran.dg/do_1.f90: Likewise. - * gfortran.dg/do_3.F90: Likewise. - * gfortran.dg/do_concurrent_2.f90: Likewise. - * gfortran.dg/do_concurrent_4.f90: Likewise. - * gfortran.dg/do_corner_warn.f90: Likewise. - * gfortran.dg/do_iterator_2.f90: Likewise. - * gfortran.dg/dollar_edit_descriptor_1.f: Likewise. - * gfortran.dg/dollar_edit_descriptor_2.f: Likewise. - * gfortran.dg/dos_eol.f: Likewise. - * gfortran.dg/dot_product_1.f03: Likewise. - * gfortran.dg/dot_product_2.f90: Likewise. - * gfortran.dg/dot_product_4.f90: Likewise. - * gfortran.dg/dshift_1.F90: Likewise. - * gfortran.dg/dshift_2.F90: Likewise. - * gfortran.dg/dtio_1.f90: Likewise. - * gfortran.dg/dtio_10.f90: Likewise. - * gfortran.dg/dtio_12.f90: Likewise. - * gfortran.dg/dtio_14.f90: Likewise. - * gfortran.dg/dtio_15.f90: Likewise. - * gfortran.dg/dtio_16.f90: Likewise. - * gfortran.dg/dtio_17.f90: Likewise. - * gfortran.dg/dtio_19.f90: Likewise. - * gfortran.dg/dtio_2.f90: Likewise. - * gfortran.dg/dtio_20.f03: Likewise. - * gfortran.dg/dtio_22.f90: Likewise. - * gfortran.dg/dtio_24.f90: Likewise. - * gfortran.dg/dtio_25.f90: Likewise. - * gfortran.dg/dtio_26.f03: Likewise. - * gfortran.dg/dtio_27.f90: Likewise. - * gfortran.dg/dtio_28.f03: Likewise. - * gfortran.dg/dtio_3.f90: Likewise. - * gfortran.dg/dtio_30.f03: Likewise. - * gfortran.dg/dtio_31.f03: Likewise. - * gfortran.dg/dtio_32.f03: Likewise. - * gfortran.dg/dtio_4.f90: Likewise. - * gfortran.dg/dtio_5.f90: Likewise. - * gfortran.dg/dtio_7.f90: Likewise. - * gfortran.dg/dtio_8.f90: Likewise. - * gfortran.dg/dtio_9.f90: Likewise. - * gfortran.dg/dummy_procedure_3.f90: Likewise. - * gfortran.dg/dummy_procedure_7.f90: Likewise. - * gfortran.dg/dup_save_1.f90: Likewise. - * gfortran.dg/dup_save_2.f90: Likewise. - * gfortran.dg/dynamic_dispatch_1.f03: Likewise. - * gfortran.dg/dynamic_dispatch_11.f03: Likewise. - * gfortran.dg/dynamic_dispatch_12.f90: Likewise. - * gfortran.dg/dynamic_dispatch_2.f03: Likewise. - * gfortran.dg/dynamic_dispatch_3.f03: Likewise. - * gfortran.dg/dynamic_dispatch_4.f03: Likewise. - * gfortran.dg/dynamic_dispatch_5.f03: Likewise. - * gfortran.dg/dynamic_dispatch_7.f03: Likewise. - * gfortran.dg/dynamic_dispatch_8.f03: Likewise. - * gfortran.dg/dynamic_dispatch_9.f03: Likewise. - * gfortran.dg/e_d_fmt.f90: Likewise. - * gfortran.dg/edit_real_1.f90: Likewise. - * gfortran.dg/elemental_by_value_1.f90: Likewise. - * gfortran.dg/elemental_dependency_1.f90: Likewise. - * gfortran.dg/elemental_dependency_4.f90: Likewise. - * gfortran.dg/elemental_dependency_5.f90: Likewise. - * gfortran.dg/elemental_dependency_6.f90: Likewise. - * gfortran.dg/elemental_optional_args_2.f90: Likewise. - * gfortran.dg/elemental_optional_args_3.f90: Likewise. - * gfortran.dg/elemental_optional_args_4.f90: Likewise. - * gfortran.dg/elemental_optional_args_5.f03: Likewise. - * gfortran.dg/elemental_optional_args_6.f90: Likewise. - * gfortran.dg/elemental_optional_args_7.f90: Likewise. - * gfortran.dg/elemental_scalar_args_1.f90: Likewise. - * gfortran.dg/elemental_scalar_args_2.f90: Likewise. - * gfortran.dg/elemental_subroutine_1.f90: Likewise. - * gfortran.dg/elemental_subroutine_10.f90: Likewise. - * gfortran.dg/elemental_subroutine_11.f90: Likewise. - * gfortran.dg/elemental_subroutine_2.f90: Likewise. - * gfortran.dg/elemental_subroutine_3.f90: Likewise. - * gfortran.dg/elemental_subroutine_7.f90: Likewise. - * gfortran.dg/elemental_subroutine_9.f90: Likewise. - * gfortran.dg/empty_format_1.f90: Likewise. - * gfortran.dg/endfile.f: Likewise. - * gfortran.dg/endfile.f90: Likewise. - * gfortran.dg/endfile_2.f90: Likewise. - * gfortran.dg/entry_1.f90: Likewise. - * gfortran.dg/entry_10.f90: Likewise. - * gfortran.dg/entry_12.f90: Likewise. - * gfortran.dg/entry_13.f90: Likewise. - * gfortran.dg/entry_14.f90: Likewise. - * gfortran.dg/entry_16.f90: Likewise. - * gfortran.dg/entry_3.f90: Likewise. - * gfortran.dg/entry_6.f90: Likewise. - * gfortran.dg/entry_9.f90: Likewise. - * gfortran.dg/entry_array_specs_2.f: Likewise. - * gfortran.dg/enum_1.f90: Likewise. - * gfortran.dg/enum_9.f90: Likewise. - * gfortran.dg/eof_1.f90: Likewise. - * gfortran.dg/eof_2.f90: Likewise. - * gfortran.dg/eof_4.f90: Likewise. - * gfortran.dg/eof_5.f90: Likewise. - * gfortran.dg/eor_handling_1.f90: Likewise. - * gfortran.dg/eor_handling_2.f90: Likewise. - * gfortran.dg/eor_handling_3.f90: Likewise. - * gfortran.dg/eor_handling_4.f90: Likewise. - * gfortran.dg/eor_handling_5.f90: Likewise. - * gfortran.dg/eoshift_3.f90: Likewise. - * gfortran.dg/eoshift_4.f90: Likewise. - * gfortran.dg/eoshift_5.f90: Likewise. - * gfortran.dg/eoshift_6.f90: Likewise. - * gfortran.dg/eoshift_large_1.f90: Likewise. - * gfortran.dg/equiv_6.f90: Likewise. - * gfortran.dg/equiv_7.f90: Likewise. - * gfortran.dg/equiv_9.f90: Likewise. - * gfortran.dg/equiv_constraint_4.f90: Likewise. - * gfortran.dg/erf_2.F90: Likewise. - * gfortran.dg/erf_3.F90: Likewise. - * gfortran.dg/erfc_scaled_1.f90: Likewise. - * gfortran.dg/error_format_2.f90: Likewise. - * gfortran.dg/error_recovery_5.f90: Likewise. - * gfortran.dg/execute_command_line_2.f90: Likewise. - * gfortran.dg/execute_command_line_3.f90: Likewise. - * gfortran.dg/exit_1.f08: Likewise. - * gfortran.dg/exit_3.f08: Likewise. - * gfortran.dg/exponent_1.f90: Likewise. - * gfortran.dg/exponent_2.f90: Likewise. - * gfortran.dg/extended_char_comparison_1.f: Likewise. - * gfortran.dg/extends_1.f03: Likewise. - * gfortran.dg/extends_16.f90: Likewise. - * gfortran.dg/extends_2.f03: Likewise. - * gfortran.dg/extends_3.f03: Likewise. - * gfortran.dg/extends_4.f03: Likewise. - * gfortran.dg/extends_type_of_1.f03: Likewise. - * gfortran.dg/extends_type_of_2.f03: Likewise. - * gfortran.dg/external_procedures_3.f90: Likewise. - * gfortran.dg/f2003_inquire_1.f03: Likewise. - * gfortran.dg/f2003_io_1.f03: Likewise. - * gfortran.dg/f2003_io_4.f03: Likewise. - * gfortran.dg/f2003_io_5.f03: Likewise. - * gfortran.dg/f2003_io_6.f03: Likewise. - * gfortran.dg/f2003_io_7.f03: Likewise. - * gfortran.dg/f2c_1.f90: Likewise. - * gfortran.dg/f2c_2.f90: Likewise. - * gfortran.dg/f2c_3.f90: Likewise. - * gfortran.dg/f2c_4.f90: Likewise. - * gfortran.dg/f2c_6.f90: Likewise. - * gfortran.dg/f2c_7.f90: Likewise. - * gfortran.dg/f2c_9.f90: Likewise. - * gfortran.dg/fgetc_1.f90: Likewise. - * gfortran.dg/fgetc_2.f90: Likewise. - * gfortran.dg/filename_null.f90: Likewise. - * gfortran.dg/finalize_12.f90: Likewise. - * gfortran.dg/finalize_13.f90: Likewise. - * gfortran.dg/finalize_15.f90: Likewise. - * gfortran.dg/finalize_17.f90: Likewise. - * gfortran.dg/finalize_18.f90: Likewise. - * gfortran.dg/finalize_25.f90: Likewise. - * gfortran.dg/finalize_29.f08: Likewise. - * gfortran.dg/finalize_31.f90: Likewise. - * gfortran.dg/float_1.f90: Likewise. - * gfortran.dg/flush_1.f90: Likewise. - * gfortran.dg/fmt_bz_bn.f: Likewise. - * gfortran.dg/fmt_bz_bn_err.f: Likewise. - * gfortran.dg/fmt_cache_1.f: Likewise. - * gfortran.dg/fmt_cache_2.f: Likewise. - * gfortran.dg/fmt_cache_3.f90: Likewise. - * gfortran.dg/fmt_colon.f90: Likewise. - * gfortran.dg/fmt_e.f90: Likewise. - * gfortran.dg/fmt_en.f90: Likewise. - * gfortran.dg/fmt_error_10.f: Likewise. - * gfortran.dg/fmt_error_9.f: Likewise. - * gfortran.dg/fmt_exhaust.f90: Likewise. - * gfortran.dg/fmt_f0_1.f90: Likewise. - * gfortran.dg/fmt_f_an_p.f: Likewise. - * gfortran.dg/fmt_fw_d.f90: Likewise. - * gfortran.dg/fmt_g.f: Likewise. - * gfortran.dg/fmt_g0_1.f08: Likewise. - * gfortran.dg/fmt_g0_2.f08: Likewise. - * gfortran.dg/fmt_g0_4.f08: Likewise. - * gfortran.dg/fmt_g0_5.f08: Likewise. - * gfortran.dg/fmt_g0_6.f08: Likewise. - * gfortran.dg/fmt_g0_7.f08: Likewise. - * gfortran.dg/fmt_g_1.f90: Likewise. - * gfortran.dg/fmt_int_sign.f90: Likewise. - * gfortran.dg/fmt_l.f90: Likewise. - * gfortran.dg/fmt_missing_period_2.f: Likewise. - * gfortran.dg/fmt_missing_period_3.f: Likewise. - * gfortran.dg/fmt_p_1.f90: Likewise. - * gfortran.dg/fmt_pf.f90: Likewise. - * gfortran.dg/fmt_read.f90: Likewise. - * gfortran.dg/fmt_read_bz_bn.f90: Likewise. - * gfortran.dg/fmt_t_1.f90: Likewise. - * gfortran.dg/fmt_t_2.f90: Likewise. - * gfortran.dg/fmt_t_3.f90: Likewise. - * gfortran.dg/fmt_t_4.f90: Likewise. - * gfortran.dg/fmt_t_5.f90: Likewise. - * gfortran.dg/fmt_t_6.f: Likewise. - * gfortran.dg/fmt_t_7.f: Likewise. - * gfortran.dg/fmt_t_9.f: Likewise. - * gfortran.dg/fmt_tl.f: Likewise. - * gfortran.dg/fmt_unlimited.f90: Likewise. - * gfortran.dg/fmt_white.f: Likewise. - * gfortran.dg/fmt_zero_digits.f90: Likewise. - * gfortran.dg/fold_nearest.f90: Likewise. - * gfortran.dg/forall_1.f90: Likewise. - * gfortran.dg/forall_10.f90: Likewise. - * gfortran.dg/forall_12.f90: Likewise. - * gfortran.dg/forall_13.f90: Likewise. - * gfortran.dg/forall_15.f90: Likewise. - * gfortran.dg/forall_4.f90: Likewise. - * gfortran.dg/forall_5.f90: Likewise. - * gfortran.dg/forall_6.f90: Likewise. - * gfortran.dg/forall_7.f90: Likewise. - * gfortran.dg/fraction.f90: Likewise. - * gfortran.dg/fseek.f90: Likewise. - * gfortran.dg/ftell_1.f90: Likewise. - * gfortran.dg/ftell_2.f90: Likewise. - * gfortran.dg/ftell_3.f90: Likewise. - * gfortran.dg/func_assign_2.f90: Likewise. - * gfortran.dg/func_assign_3.f90: Likewise. - * gfortran.dg/func_derived_1.f90: Likewise. - * gfortran.dg/func_derived_2.f90: Likewise. - * gfortran.dg/func_derived_3.f90: Likewise. - * gfortran.dg/func_result_1.f90: Likewise. - * gfortran.dg/func_result_2.f90: Likewise. - * gfortran.dg/func_result_6.f90: Likewise. - * gfortran.dg/function_charlen_2.f90: Likewise. - * gfortran.dg/function_charlen_3.f: Likewise. - * gfortran.dg/function_kinds_1.f90: Likewise. - * gfortran.dg/function_kinds_4.f90: Likewise. - * gfortran.dg/function_optimize_10.f90: Likewise. - * gfortran.dg/function_optimize_11.f90: Likewise. - * gfortran.dg/function_optimize_12.f90: Likewise. - * gfortran.dg/function_optimize_4.f90: Likewise. - * gfortran.dg/function_optimize_8.f90: Likewise. - * gfortran.dg/g77/13037.f: Likewise. - * gfortran.dg/g77/1832.f: Likewise. - * gfortran.dg/g77/19981119-0.f: Likewise. - * gfortran.dg/g77/19990313-0.f: Likewise. - * gfortran.dg/g77/19990313-1.f: Likewise. - * gfortran.dg/g77/19990313-2.f: Likewise. - * gfortran.dg/g77/19990313-3.f: Likewise. - * gfortran.dg/g77/19990419-1.f: Likewise. - * gfortran.dg/g77/19990826-0.f: Likewise. - * gfortran.dg/g77/19990826-2.f: Likewise. - * gfortran.dg/g77/20000503-1.f: Likewise. - * gfortran.dg/g77/20001111.f: Likewise. - * gfortran.dg/g77/20010116.f: Likewise. - * gfortran.dg/g77/20010216-1.f: Likewise. - * gfortran.dg/g77/20010430.f: Likewise. - * gfortran.dg/g77/20010610.f: Likewise. - * gfortran.dg/g77/6177.f: Likewise. - * gfortran.dg/g77/7388.f: Likewise. - * gfortran.dg/g77/947.f: Likewise. - * gfortran.dg/g77/970625-2.f: Likewise. - * gfortran.dg/g77/971102-1.f: Likewise. - * gfortran.dg/g77/980628-0.f: Likewise. - * gfortran.dg/g77/980628-1.f: Likewise. - * gfortran.dg/g77/980628-10.f: Likewise. - * gfortran.dg/g77/980628-2.f: Likewise. - * gfortran.dg/g77/980628-3.f: Likewise. - * gfortran.dg/g77/980628-7.f: Likewise. - * gfortran.dg/g77/980628-8.f: Likewise. - * gfortran.dg/g77/980628-9.f: Likewise. - * gfortran.dg/g77/980701-0.f: Likewise. - * gfortran.dg/g77/980701-1.f: Likewise. - * gfortran.dg/g77/cabs.f: Likewise. - * gfortran.dg/g77/claus.f: Likewise. - * gfortran.dg/g77/complex_1.f: Likewise. - * gfortran.dg/g77/cpp3.F: Likewise. - * gfortran.dg/g77/cpp4.F: Likewise. - * gfortran.dg/g77/cpp5.F: Likewise. - * gfortran.dg/g77/dcomplex.f: Likewise. - * gfortran.dg/g77/dnrm2.f: Likewise. - * gfortran.dg/g77/erfc.f: Likewise. - * gfortran.dg/g77/f77-edit-i-in.f: Likewise. - * gfortran.dg/g77/f77-edit-t-in.f: Likewise. - * gfortran.dg/g77/f90-intrinsic-bit.f: Likewise. - * gfortran.dg/g77/f90-intrinsic-mathematical.f: Likewise. - * gfortran.dg/g77/f90-intrinsic-numeric.f: Likewise. - * gfortran.dg/g77/int8421.f: Likewise. - * gfortran.dg/g77/intrinsic-unix-bessel.f: Likewise. - * gfortran.dg/g77/intrinsic-unix-erf.f: Likewise. - * gfortran.dg/g77/le.f: Likewise. - * gfortran.dg/g77/short.f: Likewise. - * gfortran.dg/gamma_1.f90: Likewise. - * gfortran.dg/gamma_4.f90: Likewise. - * gfortran.dg/gamma_5.f90: Likewise. - * gfortran.dg/generic_13.f90: Likewise. - * gfortran.dg/generic_15.f90: Likewise. - * gfortran.dg/generic_19.f90: Likewise. - * gfortran.dg/generic_20.f90: Likewise. - * gfortran.dg/generic_23.f03: Likewise. - * gfortran.dg/generic_25.f90: Likewise. - * gfortran.dg/generic_27.f90: Likewise. - * gfortran.dg/generic_31.f90: Likewise. - * gfortran.dg/generic_4.f90: Likewise. - * gfortran.dg/global_vars_c_init.f90: Likewise. - * gfortran.dg/global_vars_f90_init.f90: Likewise. - * gfortran.dg/gnu_logical_1.F: Likewise. - * gfortran.dg/goacc/fixed-1.f: Likewise. - * gfortran.dg/goacc/fixed-2.f: Likewise. - * gfortran.dg/goacc/gang-static.f95: Likewise. - * gfortran.dg/goacc/kernels-loop-2.f95: Likewise. - * gfortran.dg/goacc/kernels-loop-data-2.f95: Likewise. - * gfortran.dg/goacc/kernels-loop-data-enter-exit-2.f95: Likewise. - * gfortran.dg/goacc/kernels-loop-data-enter-exit.f95: Likewise. - * gfortran.dg/goacc/kernels-loop-data-update.f95: Likewise. - * gfortran.dg/goacc/kernels-loop-data.f95: Likewise. - * gfortran.dg/goacc/kernels-loop-n.f95: Likewise. - * gfortran.dg/goacc/kernels-loop.f95: Likewise. - * gfortran.dg/goacc/omp-fixed.f: Likewise. - * gfortran.dg/gomp/crayptr5.f90: Likewise. - * gfortran.dg/gomp/pr48794-2.f90: Likewise. - * gfortran.dg/gomp/pr48794.f90: Likewise. - * gfortran.dg/gomp/pr72744.f90: Likewise. - * gfortran.dg/gomp/pr77665.f90: Likewise. - * gfortran.dg/gomp/workshare2.f90: Likewise. - * gfortran.dg/gomp/workshare3.f90: Likewise. - * gfortran.dg/goto_1.f: Likewise. - * gfortran.dg/goto_2.f90: Likewise. - * gfortran.dg/goto_4.f90: Likewise. - * gfortran.dg/goto_6.f: Likewise. - * gfortran.dg/graphite/id-26.f03: Likewise. - * gfortran.dg/graphite/id-pr45370.f90: Likewise. - * gfortran.dg/graphite/pr29581.f90: Likewise. - * gfortran.dg/graphite/pr29832.f90: Likewise. - * gfortran.dg/graphite/run-id-1.f: Likewise. - * gfortran.dg/graphite/run-id-2.f90: Likewise. - * gfortran.dg/graphite/run-id-3.f90: Likewise. - * gfortran.dg/hollerith.f90: Likewise. - * gfortran.dg/hollerith4.f90: Likewise. - * gfortran.dg/hollerith6.f90: Likewise. - * gfortran.dg/hollerith8.f90: Likewise. - * gfortran.dg/hollerith_1.f90: Likewise. - * gfortran.dg/hollerith_character_array_constructor.f90: Likewise. - * gfortran.dg/hollerith_f95.f90: Likewise. - * gfortran.dg/hollerith_legacy.f90: Likewise. - * gfortran.dg/host_assoc_call_3.f90: Likewise. - * gfortran.dg/host_assoc_function_1.f90: Likewise. - * gfortran.dg/host_assoc_function_3.f90: Likewise. - * gfortran.dg/host_assoc_function_4.f90: Likewise. - * gfortran.dg/host_assoc_function_9.f90: Likewise. - * gfortran.dg/host_dummy_index_1.f90: Likewise. - * gfortran.dg/hypot_1.f90: Likewise. - * gfortran.dg/iall_iany_iparity_1.f90: Likewise. - * gfortran.dg/iargc.f90: Likewise. - * gfortran.dg/ibits.f90: Likewise. - * gfortran.dg/ichar_1.f90: Likewise. - * gfortran.dg/ichar_2.f90: Likewise. - * gfortran.dg/ieee/ieee_1.F90: Likewise. - * gfortran.dg/ieee/ieee_2.f90: Likewise. - * gfortran.dg/ieee/ieee_3.f90: Likewise. - * gfortran.dg/ieee/ieee_4.f90: Likewise. - * gfortran.dg/ieee/ieee_6.f90: Likewise. - * gfortran.dg/ieee/ieee_7.f90: Likewise. - * gfortran.dg/ieee/ieee_8.f90: Likewise. - * gfortran.dg/ieee/intrinsics_1.f90: Likewise. - * gfortran.dg/ieee/intrinsics_2.F90: Likewise. - * gfortran.dg/ieee/large_1.f90: Likewise. - * gfortran.dg/ieee/large_2.f90: Likewise. - * gfortran.dg/ieee/large_3.F90: Likewise. - * gfortran.dg/ieee/large_4.f90: Likewise. - * gfortran.dg/ieee/rounding_1.f90: Likewise. - * gfortran.dg/ieee/underflow_1.f90: Likewise. - * gfortran.dg/impl_do_var_data.f90: Likewise. - * gfortran.dg/implicit_10.f90: Likewise. - * gfortran.dg/implicit_12.f90: Likewise. - * gfortran.dg/implicit_class_1.f90: Likewise. - * gfortran.dg/implicit_pure_1.f90: Likewise. - * gfortran.dg/implied_do_1.f90: Likewise. - * gfortran.dg/implied_do_io_1.f90: Likewise. - * gfortran.dg/implied_do_io_2.f90: Likewise. - * gfortran.dg/implied_do_io_3.f90: Likewise. - * gfortran.dg/implied_shape_1.f08: Likewise. - * gfortran.dg/import.f90: Likewise. - * gfortran.dg/import4.f90: Likewise. - * gfortran.dg/impure_1.f08: Likewise. - * gfortran.dg/index.f90: Likewise. - * gfortran.dg/index_2.f90: Likewise. - * gfortran.dg/init_flag_1.f90: Likewise. - * gfortran.dg/init_flag_10.f90: Likewise. - * gfortran.dg/init_flag_15.f03: Likewise. - * gfortran.dg/init_flag_2.f90: Likewise. - * gfortran.dg/init_flag_3.f90: Likewise. - * gfortran.dg/init_flag_4.f90: Likewise. - * gfortran.dg/init_flag_5.f90: Likewise. - * gfortran.dg/init_flag_6.f90: Likewise. - * gfortran.dg/init_flag_7.f90: Likewise. - * gfortran.dg/init_flag_9.f90: Likewise. - * gfortran.dg/initialization_11.f90: Likewise. - * gfortran.dg/initialization_19.f90: Likewise. - * gfortran.dg/initialization_2.f90: Likewise. - * gfortran.dg/initialization_22.f90: Likewise. - * gfortran.dg/initialization_27.f90: Likewise. - * gfortran.dg/initialization_5.f90: Likewise. - * gfortran.dg/initialization_6.f90: Likewise. - * gfortran.dg/inline_matmul_1.f90: Likewise. - * gfortran.dg/inline_matmul_10.f90: Likewise. - * gfortran.dg/inline_matmul_11.f90: Likewise. - * gfortran.dg/inline_matmul_13.f90: Likewise. - * gfortran.dg/inline_matmul_14.f90: Likewise. - * gfortran.dg/inline_matmul_16.f90: Likewise. - * gfortran.dg/inline_matmul_17.f90: Likewise. - * gfortran.dg/inline_matmul_18.f90: Likewise. - * gfortran.dg/inline_matmul_19.f90: Likewise. - * gfortran.dg/inline_matmul_2.f90: Likewise. - * gfortran.dg/inline_matmul_20.f90: Likewise. - * gfortran.dg/inline_matmul_22.f90: Likewise. - * gfortran.dg/inline_matmul_3.f90: Likewise. - * gfortran.dg/inline_matmul_4.f90: Likewise. - * gfortran.dg/inline_matmul_5.f90: Likewise. - * gfortran.dg/inline_matmul_6.f90: Likewise. - * gfortran.dg/inline_matmul_7.f90: Likewise. - * gfortran.dg/inline_matmul_8.f90: Likewise. - * gfortran.dg/inline_matmul_9.f90: Likewise. - * gfortran.dg/inline_sum_1.f90: Likewise. - * gfortran.dg/inline_sum_3.f90: Likewise. - * gfortran.dg/inline_sum_5.f90: Likewise. - * gfortran.dg/inquire-complex.f90: Likewise. - * gfortran.dg/inquire.f90: Likewise. - * gfortran.dg/inquire_10.f90: Likewise. - * gfortran.dg/inquire_13.f90: Likewise. - * gfortran.dg/inquire_15.f90: Likewise. - * gfortran.dg/inquire_16.f90: Likewise. - * gfortran.dg/inquire_17.f90: Likewise. - * gfortran.dg/inquire_5.f90: Likewise. - * gfortran.dg/inquire_6.f90: Likewise. - * gfortran.dg/inquire_7.f90: Likewise. - * gfortran.dg/inquire_9.f90: Likewise. - * gfortran.dg/inquire_internal.f90: Likewise. - * gfortran.dg/inquire_recl_f2018.f90: Likewise. - * gfortran.dg/inquire_size.f90: Likewise. - * gfortran.dg/int_1.f90: Likewise. - * gfortran.dg/int_conv_1.f90: Likewise. - * gfortran.dg/int_range_io_1.f90: Likewise. - * gfortran.dg/integer_exponentiation_2.f90: Likewise. - * gfortran.dg/integer_exponentiation_3.F90: Likewise. - * gfortran.dg/integer_exponentiation_5.F90: Likewise. - * gfortran.dg/integer_plus.f90: Likewise. - * gfortran.dg/intent_out_2.f90: Likewise. - * gfortran.dg/intent_out_5.f90: Likewise. - * gfortran.dg/intent_out_6.f90: Likewise. - * gfortran.dg/interface_12.f90: Likewise. - * gfortran.dg/interface_19.f90: Likewise. - * gfortran.dg/interface_4.f90: Likewise. - * gfortran.dg/interface_5.f90: Likewise. - * gfortran.dg/interface_9.f90: Likewise. - * gfortran.dg/interface_assignment_1.f90: Likewise. - * gfortran.dg/interface_assignment_2.f90: Likewise. - * gfortran.dg/internal_dummy_2.f08: Likewise. - * gfortran.dg/internal_dummy_3.f08: Likewise. - * gfortran.dg/internal_dummy_4.f08: Likewise. - * gfortran.dg/internal_pack_1.f90: Likewise. - * gfortran.dg/internal_pack_10.f90: Likewise. - * gfortran.dg/internal_pack_12.f90: Likewise. - * gfortran.dg/internal_pack_13.f90: Likewise. - * gfortran.dg/internal_pack_14.f90: Likewise. - * gfortran.dg/internal_pack_15.f90: Likewise. - * gfortran.dg/internal_pack_2.f90: Likewise. - * gfortran.dg/internal_pack_3.f90: Likewise. - * gfortran.dg/internal_pack_4.f90: Likewise. - * gfortran.dg/internal_pack_6.f90: Likewise. - * gfortran.dg/internal_pack_8.f90: Likewise. - * gfortran.dg/internal_readwrite_1.f90: Likewise. - * gfortran.dg/internal_readwrite_2.f90: Likewise. - * gfortran.dg/internal_readwrite_3.f90: Likewise. - * gfortran.dg/intrinsic_actual_1.f: Likewise. - * gfortran.dg/intrinsic_actual_2.f90: Likewise. - * gfortran.dg/intrinsic_actual_4.f90: Likewise. - * gfortran.dg/intrinsic_argument_conformance_2.f90: Likewise. - * gfortran.dg/intrinsic_char_1.f90: Likewise. - * gfortran.dg/intrinsic_ifunction_1.f90: Likewise. - * gfortran.dg/intrinsic_intkinds_1.f90: Likewise. - * gfortran.dg/intrinsic_modulo_1.f90: Likewise. - * gfortran.dg/intrinsic_pack_1.f90: Likewise. - * gfortran.dg/intrinsic_pack_2.f90: Likewise. - * gfortran.dg/intrinsic_pack_3.f90: Likewise. - * gfortran.dg/intrinsic_pack_5.f90: Likewise. - * gfortran.dg/intrinsic_product_1.f90: Likewise. - * gfortran.dg/intrinsic_sign_1.f90: Likewise. - * gfortran.dg/intrinsic_sign_2.f90: Likewise. - * gfortran.dg/intrinsic_spread_1.f90: Likewise. - * gfortran.dg/intrinsic_spread_2.f90: Likewise. - * gfortran.dg/intrinsic_spread_3.f90: Likewise. - * gfortran.dg/intrinsic_unpack_1.f90: Likewise. - * gfortran.dg/intrinsic_unpack_2.f90: Likewise. - * gfortran.dg/intrinsic_unpack_3.f90: Likewise. - * gfortran.dg/intrinsic_verify_1.f90: Likewise. - * gfortran.dg/intrinsics_kind_argument_1.f90: Likewise. - * gfortran.dg/io_err_1.f90: Likewise. - * gfortran.dg/io_real_boz.f90: Likewise. - * gfortran.dg/iomsg_1.f90: Likewise. - * gfortran.dg/iostat_1.f90: Likewise. - * gfortran.dg/iostat_2.f90: Likewise. - * gfortran.dg/iostat_4.f90: Likewise. - * gfortran.dg/is_iostat_end_eor_1.f90: Likewise. - * gfortran.dg/ishft_1.f90: Likewise. - * gfortran.dg/ishft_2.f90: Likewise. - * gfortran.dg/ishft_4.f90: Likewise. - * gfortran.dg/isnan_1.f90: Likewise. - * gfortran.dg/isnan_2.f90: Likewise. - * gfortran.dg/iso_c_binding_rename_1.f03: Likewise. - * gfortran.dg/iso_c_binding_rename_2.f03: Likewise. - * gfortran.dg/iso_fortran_env_1.f90: Likewise. - * gfortran.dg/iso_fortran_env_3.f90: Likewise. - * gfortran.dg/iso_fortran_env_5.f90: Likewise. - * gfortran.dg/iso_fortran_env_6.f90: Likewise. - * gfortran.dg/itime_idate_1.f: Likewise. - * gfortran.dg/itime_idate_2.f: Likewise. - * gfortran.dg/large_integer_kind_1.f90: Likewise. - * gfortran.dg/large_integer_kind_2.f90: Likewise. - * gfortran.dg/large_real_kind_1.f90: Likewise. - * gfortran.dg/large_real_kind_2.F90: Likewise. - * gfortran.dg/large_real_kind_3.F90: Likewise. - * gfortran.dg/large_real_kind_form_io_1.f90: Likewise. - * gfortran.dg/large_real_kind_form_io_2.f90: Likewise. - * gfortran.dg/large_recl.f90: Likewise. - * gfortran.dg/large_unit_1.f90: Likewise. - * gfortran.dg/large_unit_2.f90: Likewise. - * gfortran.dg/largeequiv_1.f90: Likewise. - * gfortran.dg/leadz_trailz_1.f90: Likewise. - * gfortran.dg/leadz_trailz_2.f90: Likewise. - * gfortran.dg/leadz_trailz_3.f90: Likewise. - * gfortran.dg/list_read_1.f90: Likewise. - * gfortran.dg/list_read_10.f90: Likewise. - * gfortran.dg/list_read_11.f90: Likewise. - * gfortran.dg/list_read_12.f90: Likewise. - * gfortran.dg/list_read_13.f: Likewise. - * gfortran.dg/list_read_14.f90: Likewise. - * gfortran.dg/list_read_2.f90: Likewise. - * gfortran.dg/list_read_3.f90: Likewise. - * gfortran.dg/list_read_4.f90: Likewise. - * gfortran.dg/list_read_5.f90: Likewise. - * gfortran.dg/list_read_6.f90: Likewise. - * gfortran.dg/list_read_7.f90: Likewise. - * gfortran.dg/list_read_8.f90: Likewise. - * gfortran.dg/list_read_9.f90: Likewise. - * gfortran.dg/loc_2.f90: Likewise. - * gfortran.dg/logical_1.f90: Likewise. - * gfortran.dg/logical_dot_product.f90: Likewise. - * gfortran.dg/logical_temp_io.f90: Likewise. - * gfortran.dg/logical_temp_io_kind8.f90: Likewise. - * gfortran.dg/lrshift_1.f90: Likewise. - * gfortran.dg/ltime_gmtime_1.f90: Likewise. - * gfortran.dg/ltime_gmtime_2.f90: Likewise. - * gfortran.dg/lto/pr40725_0.f03: Likewise. - * gfortran.dg/lto/pr41576_1.f90: Likewise. - * gfortran.dg/make_unit.f90: Likewise. - * gfortran.dg/mapping_1.f90: Likewise. - * gfortran.dg/mapping_2.f90: Likewise. - * gfortran.dg/mapping_3.f90: Likewise. - * gfortran.dg/masklr_1.F90: Likewise. - * gfortran.dg/masklr_2.F90: Likewise. - * gfortran.dg/matmul_1.f90: Likewise. - * gfortran.dg/matmul_10.f90: Likewise. - * gfortran.dg/matmul_12.f90: Likewise. - * gfortran.dg/matmul_16.f90: Likewise. - * gfortran.dg/matmul_17.f90: Likewise. - * gfortran.dg/matmul_18.f90: Likewise. - * gfortran.dg/matmul_2.f90: Likewise. - * gfortran.dg/matmul_3.f90: Likewise. - * gfortran.dg/matmul_4.f90: Likewise. - * gfortran.dg/matmul_6.f90: Likewise. - * gfortran.dg/matmul_8.f03: Likewise. - * gfortran.dg/matmul_9.f90: Likewise. - * gfortran.dg/matmul_bounds_12.f90: Likewise. - * gfortran.dg/matmul_bounds_6.f90: Likewise. - * gfortran.dg/matmul_const.f90: Likewise. - * gfortran.dg/maxloc_1.f90: Likewise. - * gfortran.dg/maxloc_2.f90: Likewise. - * gfortran.dg/maxloc_3.f90: Likewise. - * gfortran.dg/maxloc_4.f90: Likewise. - * gfortran.dg/maxloc_string_1.f90: Likewise. - * gfortran.dg/maxlocval_1.f90: Likewise. - * gfortran.dg/maxlocval_2.f90: Likewise. - * gfortran.dg/maxlocval_3.f90: Likewise. - * gfortran.dg/maxlocval_4.f90: Likewise. - * gfortran.dg/maxval_char_1.f90: Likewise. - * gfortran.dg/maxval_char_2.f90: Likewise. - * gfortran.dg/maxval_char_3.f90: Likewise. - * gfortran.dg/maxval_char_4.f90: Likewise. - * gfortran.dg/maxval_parameter_1.f90: Likewise. - * gfortran.dg/mclock.f90: Likewise. - * gfortran.dg/merge_bits_1.F90: Likewise. - * gfortran.dg/merge_bits_2.F90: Likewise. - * gfortran.dg/merge_char_1.f90: Likewise. - * gfortran.dg/merge_init_expr.f90: Likewise. - * gfortran.dg/min_max_optional_1.f90: Likewise. - * gfortran.dg/min_max_optional_5.f90: Likewise. - * gfortran.dg/minloc_1.f90: Likewise. - * gfortran.dg/minloc_2.f90: Likewise. - * gfortran.dg/minloc_3.f90: Likewise. - * gfortran.dg/minloc_4.f90: Likewise. - * gfortran.dg/minloc_string_1.f90: Likewise. - * gfortran.dg/minlocval_1.f90: Likewise. - * gfortran.dg/minlocval_2.f90: Likewise. - * gfortran.dg/minlocval_3.f90: Likewise. - * gfortran.dg/minlocval_4.f90: Likewise. - * gfortran.dg/minmax_char_1.f90: Likewise. - * gfortran.dg/minmaxloc_1.f90: Likewise. - * gfortran.dg/minmaxloc_10.f90: Likewise. - * gfortran.dg/minmaxloc_11.f90: Likewise. - * gfortran.dg/minmaxloc_12.f90: Likewise. - * gfortran.dg/minmaxloc_13.f90: Likewise. - * gfortran.dg/minmaxloc_2.f90: Likewise. - * gfortran.dg/minmaxloc_3.f90: Likewise. - * gfortran.dg/minmaxloc_4.f90: Likewise. - * gfortran.dg/minmaxloc_5.f90: Likewise. - * gfortran.dg/minmaxloc_6.f90: Likewise. - * gfortran.dg/minmaxloc_7.f90: Likewise. - * gfortran.dg/minmaxloc_8.f90: Likewise. - * gfortran.dg/minmaxval_1.f90: Likewise. - * gfortran.dg/minval_char_1.f90: Likewise. - * gfortran.dg/minval_char_2.f90: Likewise. - * gfortran.dg/minval_char_3.f90: Likewise. - * gfortran.dg/minval_char_4.f90: Likewise. - * gfortran.dg/minval_char_5.f90: Likewise. - * gfortran.dg/minval_parameter_1.f90: Likewise. - * gfortran.dg/missing_optional_dummy_1.f90: Likewise. - * gfortran.dg/missing_optional_dummy_2.f90: Likewise. - * gfortran.dg/missing_optional_dummy_6.f90: Likewise. - * gfortran.dg/missing_parens_1.f90: Likewise. - * gfortran.dg/missing_parens_2.f90: Likewise. - * gfortran.dg/mod_large_1.f90: Likewise. - * gfortran.dg/mod_sign0_1.f90: Likewise. - * gfortran.dg/module_blank_common.f90: Likewise. - * gfortran.dg/module_commons_1.f90: Likewise. - * gfortran.dg/module_commons_3.f90: Likewise. - * gfortran.dg/module_double_reuse.f90: Likewise. - * gfortran.dg/module_equivalence_1.f90: Likewise. - * gfortran.dg/module_equivalence_2.f90: Likewise. - * gfortran.dg/module_equivalence_3.f90: Likewise. - * gfortran.dg/module_equivalence_5.f90: Likewise. - * gfortran.dg/module_interface_1.f90: Likewise. - * gfortran.dg/module_nan.f90: Likewise. - * gfortran.dg/module_private_array_refs_1.f90: Likewise. - * gfortran.dg/module_procedure_1.f90: Likewise. - * gfortran.dg/module_read_1.f90: Likewise. - * gfortran.dg/module_read_2.f90: Likewise. - * gfortran.dg/module_widestring_1.f90: Likewise. - * gfortran.dg/move_alloc.f90: Likewise. - * gfortran.dg/move_alloc_10.f90: Likewise. - * gfortran.dg/move_alloc_13.f90: Likewise. - * gfortran.dg/move_alloc_14.f90: Likewise. - * gfortran.dg/move_alloc_15.f90: Likewise. - * gfortran.dg/move_alloc_16.f90: Likewise. - * gfortran.dg/move_alloc_2.f90: Likewise. - * gfortran.dg/move_alloc_5.f90: Likewise. - * gfortran.dg/move_alloc_6.f90: Likewise. - * gfortran.dg/move_alloc_9.f90: Likewise. - * gfortran.dg/multiple_allocation_1.f90: Likewise. - * gfortran.dg/multiple_allocation_3.f90: Likewise. - * gfortran.dg/mvbits_1.f90: Likewise. - * gfortran.dg/mvbits_2.f90: Likewise. - * gfortran.dg/mvbits_3.f90: Likewise. - * gfortran.dg/mvbits_4.f90: Likewise. - * gfortran.dg/mvbits_7.f90: Likewise. - * gfortran.dg/mvbits_8.f90: Likewise. - * gfortran.dg/namelist_11.f: Likewise. - * gfortran.dg/namelist_12.f: Likewise. - * gfortran.dg/namelist_13.f90: Likewise. - * gfortran.dg/namelist_14.f90: Likewise. - * gfortran.dg/namelist_15.f90: Likewise. - * gfortran.dg/namelist_16.f90: Likewise. - * gfortran.dg/namelist_17.f90: Likewise. - * gfortran.dg/namelist_18.f90: Likewise. - * gfortran.dg/namelist_19.f90: Likewise. - * gfortran.dg/namelist_20.f90: Likewise. - * gfortran.dg/namelist_21.f90: Likewise. - * gfortran.dg/namelist_22.f90: Likewise. - * gfortran.dg/namelist_23.f90: Likewise. - * gfortran.dg/namelist_24.f90: Likewise. - * gfortran.dg/namelist_26.f90: Likewise. - * gfortran.dg/namelist_27.f90: Likewise. - * gfortran.dg/namelist_28.f90: Likewise. - * gfortran.dg/namelist_29.f90: Likewise. - * gfortran.dg/namelist_37.f90: Likewise. - * gfortran.dg/namelist_38.f90: Likewise. - * gfortran.dg/namelist_39.f90: Likewise. - * gfortran.dg/namelist_40.f90: Likewise. - * gfortran.dg/namelist_41.f90: Likewise. - * gfortran.dg/namelist_42.f90: Likewise. - * gfortran.dg/namelist_43.f90: Likewise. - * gfortran.dg/namelist_44.f90: Likewise. - * gfortran.dg/namelist_47.f90: Likewise. - * gfortran.dg/namelist_48.f90: Likewise. - * gfortran.dg/namelist_49.f90: Likewise. - * gfortran.dg/namelist_50.f90: Likewise. - * gfortran.dg/namelist_51.f90: Likewise. - * gfortran.dg/namelist_52.f90: Likewise. - * gfortran.dg/namelist_54.f90: Likewise. - * gfortran.dg/namelist_55.f90: Likewise. - * gfortran.dg/namelist_56.f90: Likewise. - * gfortran.dg/namelist_57.f90: Likewise. - * gfortran.dg/namelist_58.f90: Likewise. - * gfortran.dg/namelist_59.f90: Likewise. - * gfortran.dg/namelist_60.f90: Likewise. - * gfortran.dg/namelist_61.f90: Likewise. - * gfortran.dg/namelist_64.f90: Likewise. - * gfortran.dg/namelist_65.f90: Likewise. - * gfortran.dg/namelist_69.f90: Likewise. - * gfortran.dg/namelist_70.f90: Likewise. - * gfortran.dg/namelist_71.f90: Likewise. - * gfortran.dg/namelist_72.f: Likewise. - * gfortran.dg/namelist_73.f90: Likewise. - * gfortran.dg/namelist_77.f90: Likewise. - * gfortran.dg/namelist_78.f90: Likewise. - * gfortran.dg/namelist_79.f90: Likewise. - * gfortran.dg/namelist_80.f90: Likewise. - * gfortran.dg/namelist_81.f90: Likewise. - * gfortran.dg/namelist_82.f90: Likewise. - * gfortran.dg/namelist_84.f90: Likewise. - * gfortran.dg/namelist_85.f90: Likewise. - * gfortran.dg/namelist_86.f90: Likewise. - * gfortran.dg/namelist_87.f90: Likewise. - * gfortran.dg/namelist_88.f90: Likewise. - * gfortran.dg/namelist_89.f90: Likewise. - * gfortran.dg/namelist_90.f: Likewise. - * gfortran.dg/namelist_95.f90: Likewise. - * gfortran.dg/namelist_char_only.f90: Likewise. - * gfortran.dg/namelist_empty.f90: Likewise. - * gfortran.dg/namelist_internal.f90: Likewise. - * gfortran.dg/namelist_use.f90: Likewise. - * gfortran.dg/namelist_use_only.f90: Likewise. - * gfortran.dg/namelist_utf8.f90: Likewise. - * gfortran.dg/nan_1.f90: Likewise. - * gfortran.dg/nan_2.f90: Likewise. - * gfortran.dg/nan_3.f90: Likewise. - * gfortran.dg/nan_6.f90: Likewise. - * gfortran.dg/nan_7.f90: Likewise. - * gfortran.dg/nearest_1.f90: Likewise. - * gfortran.dg/nearest_2.f90: Likewise. - * gfortran.dg/nearest_3.f90: Likewise. - * gfortran.dg/negative-z-descriptor.f90: Likewise. - * gfortran.dg/negative_automatic_size.f90: Likewise. - * gfortran.dg/negative_unit.f: Likewise. - * gfortran.dg/negative_unit2.f90: Likewise. - * gfortran.dg/negative_unit_int8.f: Likewise. - * gfortran.dg/nested_array_constructor_2.f90: Likewise. - * gfortran.dg/nested_array_constructor_3.f90: Likewise. - * gfortran.dg/nested_array_constructor_4.f90: Likewise. - * gfortran.dg/nested_modules_1.f90: Likewise. - * gfortran.dg/nested_modules_2.f90: Likewise. - * gfortran.dg/nested_modules_3.f90: Likewise. - * gfortran.dg/nesting_1.f90: Likewise. - * gfortran.dg/new_line.f90: Likewise. - * gfortran.dg/newunit_1.f90: Likewise. - * gfortran.dg/newunit_3.f90: Likewise. - * gfortran.dg/newunit_5.f90.f90: Likewise. - * gfortran.dg/nint_1.f90: Likewise. - * gfortran.dg/nint_2.f90: Likewise. - * gfortran.dg/no_arg_check_2.f90: Likewise. - * gfortran.dg/no_range_check_1.f90: Likewise. - * gfortran.dg/no_range_check_2.f90: Likewise. - * gfortran.dg/no_range_check_3.f90: Likewise. - * gfortran.dg/noadv_size.f90: Likewise. - * gfortran.dg/nonreturning_statements.f90: Likewise. - * gfortran.dg/norm2_1.f90: Likewise. - * gfortran.dg/norm2_3.f90: Likewise. - * gfortran.dg/nosigned_zero_1.f90: Likewise. - * gfortran.dg/nosigned_zero_2.f90: Likewise. - * gfortran.dg/nosigned_zero_3.f90: Likewise. - * gfortran.dg/null_4.f90: Likewise. - * gfortran.dg/null_9.f90: Likewise. - * gfortran.dg/nullify_3.f90: Likewise. - * gfortran.dg/oldstyle_1.f90: Likewise. - * gfortran.dg/open_access_append_1.f90: Likewise. - * gfortran.dg/open_access_append_2.f90: Likewise. - * gfortran.dg/open_errors.f90: Likewise. - * gfortran.dg/open_negative_unit_1.f90: Likewise. - * gfortran.dg/open_new.f90: Likewise. - * gfortran.dg/open_readonly_1.f90: Likewise. - * gfortran.dg/operator_1.f90: Likewise. - * gfortran.dg/optional_absent_1.f90: Likewise. - * gfortran.dg/optional_absent_2.f90: Likewise. - * gfortran.dg/optional_absent_3.f90: Likewise. - * gfortran.dg/optional_class_1.f90: Likewise. - * gfortran.dg/optional_dim_2.f90: Likewise. - * gfortran.dg/optional_dim_3.f90: Likewise. - * gfortran.dg/output_exponents_1.f90: Likewise. - * gfortran.dg/overload_1.f90: Likewise. - * gfortran.dg/overload_2.f90: Likewise. - * gfortran.dg/overwrite_1.f: Likewise. - * gfortran.dg/pad_no.f90: Likewise. - * gfortran.dg/parameter_array_init_1.f90: Likewise. - * gfortran.dg/parameter_array_init_2.f90: Likewise. - * gfortran.dg/parameter_array_init_4.f90: Likewise. - * gfortran.dg/parameter_array_init_5.f90: Likewise. - * gfortran.dg/parameter_array_section_2.f90: Likewise. - * gfortran.dg/parens_3.f90: Likewise. - * gfortran.dg/parens_5.f90: Likewise. - * gfortran.dg/parens_6.f90: Likewise. - * gfortran.dg/parent_result_ref_1.f90: Likewise. - * gfortran.dg/parent_result_ref_2.f90: Likewise. - * gfortran.dg/parent_result_ref_3.f90: Likewise. - * gfortran.dg/parent_result_ref_4.f90: Likewise. - * gfortran.dg/parity_1.f90: Likewise. - * gfortran.dg/past_eor.f90: Likewise. - * gfortran.dg/pdt_1.f03: Likewise. - * gfortran.dg/pdt_10.f03: Likewise. - * gfortran.dg/pdt_11.f03: Likewise. - * gfortran.dg/pdt_12.f03: Likewise. - * gfortran.dg/pdt_13.f03: Likewise. - * gfortran.dg/pdt_14.f03: Likewise. - * gfortran.dg/pdt_15.f03: Likewise. - * gfortran.dg/pdt_19.f03: Likewise. - * gfortran.dg/pdt_20.f03: Likewise. - * gfortran.dg/pdt_22.f03: Likewise. - * gfortran.dg/pdt_23.f03: Likewise. - * gfortran.dg/pdt_25.f03: Likewise. - * gfortran.dg/pdt_26.f03: Likewise. - * gfortran.dg/pdt_27.f03: Likewise. - * gfortran.dg/pdt_28.f03: Likewise. - * gfortran.dg/pdt_3.f03: Likewise. - * gfortran.dg/pdt_4.f03: Likewise. - * gfortran.dg/pdt_5.f03: Likewise. - * gfortran.dg/pdt_7.f03: Likewise. - * gfortran.dg/pointer_1.f90: Likewise. - * gfortran.dg/pointer_array_1.f90: Likewise. - * gfortran.dg/pointer_array_3.f90: Likewise. - * gfortran.dg/pointer_array_4.f90: Likewise. - * gfortran.dg/pointer_array_5.f90: Likewise. - * gfortran.dg/pointer_array_6.f90: Likewise. - * gfortran.dg/pointer_array_7.f90: Likewise. - * gfortran.dg/pointer_array_8.f90: Likewise. - * gfortran.dg/pointer_array_9.f90: Likewise. - * gfortran.dg/pointer_array_component_1.f90: Likewise. - * gfortran.dg/pointer_array_component_2.f90: Likewise. - * gfortran.dg/pointer_assign_10.f90: Likewise. - * gfortran.dg/pointer_assign_11.f90: Likewise. - * gfortran.dg/pointer_assign_4.f90: Likewise. - * gfortran.dg/pointer_assign_8.f90: Likewise. - * gfortran.dg/pointer_assign_9.f90: Likewise. - * gfortran.dg/pointer_check_10.f90: Likewise. - * gfortran.dg/pointer_check_9.f90: Likewise. - * gfortran.dg/pointer_function_actual_1.f90: Likewise. - * gfortran.dg/pointer_function_actual_2.f90: Likewise. - * gfortran.dg/pointer_function_result_1.f90: Likewise. - * gfortran.dg/pointer_init_1.f90: Likewise. - * gfortran.dg/pointer_init_3.f90: Likewise. - * gfortran.dg/pointer_init_4.f90: Likewise. - * gfortran.dg/pointer_init_5.f90: Likewise. - * gfortran.dg/pointer_init_8.f90: Likewise. - * gfortran.dg/pointer_intent_1.f90: Likewise. - * gfortran.dg/pointer_intent_4.f90: Likewise. - * gfortran.dg/pointer_intent_5.f90: Likewise. - * gfortran.dg/pointer_remapping_10.f90: Likewise. - * gfortran.dg/pointer_remapping_4.f03: Likewise. - * gfortran.dg/pointer_remapping_5.f08: Likewise. - * gfortran.dg/pointer_remapping_9.f90: Likewise. - * gfortran.dg/pointer_target_1.f90: Likewise. - * gfortran.dg/pointer_target_2.f90: Likewise. - * gfortran.dg/popcnt_poppar_1.F90: Likewise. - * gfortran.dg/popcnt_poppar_2.F90: Likewise. - * gfortran.dg/power.f90: Likewise. - * gfortran.dg/power1.f90: Likewise. - * gfortran.dg/power_3.f90: Likewise. - * gfortran.dg/power_4.f90: Likewise. - * gfortran.dg/power_5.f90: Likewise. - * gfortran.dg/pr12884.f: Likewise. - * gfortran.dg/pr15129.f90: Likewise. - * gfortran.dg/pr15140.f90: Likewise. - * gfortran.dg/pr15324.f90: Likewise. - * gfortran.dg/pr15332.f: Likewise. - * gfortran.dg/pr15957.f90: Likewise. - * gfortran.dg/pr15959.f90: Likewise. - * gfortran.dg/pr16597.f90: Likewise. - * gfortran.dg/pr16861.f90: Likewise. - * gfortran.dg/pr16938.f90: Likewise. - * gfortran.dg/pr17090.f90: Likewise. - * gfortran.dg/pr17143.f90: Likewise. - * gfortran.dg/pr17164.f90: Likewise. - * gfortran.dg/pr17229.f: Likewise. - * gfortran.dg/pr17285.f90: Likewise. - * gfortran.dg/pr17286.f90: Likewise. - * gfortran.dg/pr17472.f: Likewise. - * gfortran.dg/pr17612.f90: Likewise. - * gfortran.dg/pr17706.f90: Likewise. - * gfortran.dg/pr18025.f90: Likewise. - * gfortran.dg/pr18122.f90: Likewise. - * gfortran.dg/pr18210.f90: Likewise. - * gfortran.dg/pr18392.f90: Likewise. - * gfortran.dg/pr19155.f: Likewise. - * gfortran.dg/pr19216.f: Likewise. - * gfortran.dg/pr19467.f90: Likewise. - * gfortran.dg/pr19657.f: Likewise. - * gfortran.dg/pr19926.f90: Likewise. - * gfortran.dg/pr19928-1.f90: Likewise. - * gfortran.dg/pr19928-2.f90: Likewise. - * gfortran.dg/pr20086.f90: Likewise. - * gfortran.dg/pr20124.f90: Likewise. - * gfortran.dg/pr20163-2.f: Likewise. - * gfortran.dg/pr20480.f90: Likewise. - * gfortran.dg/pr20755.f: Likewise. - * gfortran.dg/pr20950.f: Likewise. - * gfortran.dg/pr21177.f90: Likewise. - * gfortran.dg/pr21730.f: Likewise. - * gfortran.dg/pr22491.f: Likewise. - * gfortran.dg/pr25603.f: Likewise. - * gfortran.dg/pr26246_2.f90: Likewise. - * gfortran.dg/pr32136.f90: Likewise. - * gfortran.dg/pr32533.f90: Likewise. - * gfortran.dg/pr33794.f90: Likewise. - * gfortran.dg/pr35662.f90: Likewise. - * gfortran.dg/pr35944-1.f90: Likewise. - * gfortran.dg/pr35944-2.f90: Likewise. - * gfortran.dg/pr35983.f90: Likewise. - * gfortran.dg/pr39865.f90: Likewise. - * gfortran.dg/pr41212.f90: Likewise. - * gfortran.dg/pr43808.f90: Likewise. - * gfortran.dg/pr44592.f90: Likewise. - * gfortran.dg/pr44735.f90: Likewise. - * gfortran.dg/pr45308.f03: Likewise. - * gfortran.dg/pr46297.f: Likewise. - * gfortran.dg/pr46588.f90: Likewise. - * gfortran.dg/pr46665.f90: Likewise. - * gfortran.dg/pr46804.f90: Likewise. - * gfortran.dg/pr47008.f03: Likewise. - * gfortran.dg/pr47614.f: Likewise. - * gfortran.dg/pr47878.f90: Likewise. - * gfortran.dg/pr49103.f90: Likewise. - * gfortran.dg/pr50069_1.f90: Likewise. - * gfortran.dg/pr50769.f90: Likewise. - * gfortran.dg/pr52608.f90: Likewise. - * gfortran.dg/pr55086_2.f90: Likewise. - * gfortran.dg/pr55086_2_tfat.f90: Likewise. - * gfortran.dg/pr55086_aliasing_dummy_4_tfat.f90: Likewise. - * gfortran.dg/pr55330.f90: Likewise. - * gfortran.dg/pr56015.f90: Likewise. - * gfortran.dg/pr57910.f90: Likewise. - * gfortran.dg/pr59700.f90: Likewise. - * gfortran.dg/pr62125.f90: Likewise. - * gfortran.dg/pr64530.f90: Likewise. - * gfortran.dg/pr65429.f90: Likewise. - * gfortran.dg/pr65450.f90: Likewise. - * gfortran.dg/pr65504.f90: Likewise. - * gfortran.dg/pr65903.f90: Likewise. - * gfortran.dg/pr66311.f90: Likewise. - * gfortran.dg/pr66864.f90: Likewise. - * gfortran.dg/pr67140.f90: Likewise. - * gfortran.dg/pr67524.f90: Likewise. - * gfortran.dg/pr67885.f90: Likewise. - * gfortran.dg/pr68053.f90: Likewise. - * gfortran.dg/pr68566.f90: Likewise. - * gfortran.dg/pr69514_1.f90: Likewise. - * gfortran.dg/pr69514_2.f90: Likewise. - * gfortran.dg/pr69739.f90: Likewise. - * gfortran.dg/pr70673.f90: Likewise. - * gfortran.dg/pr71523_2.f90: Likewise. - * gfortran.dg/pr71764.f90: Likewise. - * gfortran.dg/pr78092.f90: Likewise. - * gfortran.dg/pr82973.f90: Likewise. - * gfortran.dg/pr83864.f90: Likewise. - * gfortran.dg/pr83874.f90: Likewise. - * gfortran.dg/pr84088.f90: Likewise. - * gfortran.dg/pr84155.f90: Likewise. - * gfortran.dg/proc_decl_12.f90: Likewise. - * gfortran.dg/proc_decl_13.f90: Likewise. - * gfortran.dg/proc_decl_15.f90: Likewise. - * gfortran.dg/proc_decl_17.f90: Likewise. - * gfortran.dg/proc_decl_18.f90: Likewise. - * gfortran.dg/proc_decl_2.f90: Likewise. - * gfortran.dg/proc_decl_5.f90: Likewise. - * gfortran.dg/proc_decl_9.f90: Likewise. - * gfortran.dg/proc_ptr_1.f90: Likewise. - * gfortran.dg/proc_ptr_10.f90: Likewise. - * gfortran.dg/proc_ptr_12.f90: Likewise. - * gfortran.dg/proc_ptr_18.f90: Likewise. - * gfortran.dg/proc_ptr_19.f90: Likewise. - * gfortran.dg/proc_ptr_21.f90: Likewise. - * gfortran.dg/proc_ptr_22.f90: Likewise. - * gfortran.dg/proc_ptr_23.f90: Likewise. - * gfortran.dg/proc_ptr_25.f90: Likewise. - * gfortran.dg/proc_ptr_26.f90: Likewise. - * gfortran.dg/proc_ptr_3.f90: Likewise. - * gfortran.dg/proc_ptr_36.f90: Likewise. - * gfortran.dg/proc_ptr_47.f90: Likewise. - * gfortran.dg/proc_ptr_48.f90: Likewise. - * gfortran.dg/proc_ptr_5.f90: Likewise. - * gfortran.dg/proc_ptr_6.f90: Likewise. - * gfortran.dg/proc_ptr_7.f90: Likewise. - * gfortran.dg/proc_ptr_8.f90: Likewise. - * gfortran.dg/proc_ptr_common_1.f90: Likewise. - * gfortran.dg/proc_ptr_comp_1.f90: Likewise. - * gfortran.dg/proc_ptr_comp_11.f90: Likewise. - * gfortran.dg/proc_ptr_comp_12.f90: Likewise. - * gfortran.dg/proc_ptr_comp_13.f90: Likewise. - * gfortran.dg/proc_ptr_comp_14.f90: Likewise. - * gfortran.dg/proc_ptr_comp_15.f90: Likewise. - * gfortran.dg/proc_ptr_comp_16.f90: Likewise. - * gfortran.dg/proc_ptr_comp_17.f90: Likewise. - * gfortran.dg/proc_ptr_comp_18.f90: Likewise. - * gfortran.dg/proc_ptr_comp_19.f90: Likewise. - * gfortran.dg/proc_ptr_comp_2.f90: Likewise. - * gfortran.dg/proc_ptr_comp_29.f90: Likewise. - * gfortran.dg/proc_ptr_comp_45.f90: Likewise. - * gfortran.dg/proc_ptr_comp_47.f90: Likewise. - * gfortran.dg/proc_ptr_comp_5.f90: Likewise. - * gfortran.dg/proc_ptr_comp_6.f90: Likewise. - * gfortran.dg/proc_ptr_comp_8.f90: Likewise. - * gfortran.dg/proc_ptr_comp_9.f90: Likewise. - * gfortran.dg/proc_ptr_comp_pass_1.f90: Likewise. - * gfortran.dg/proc_ptr_comp_pass_2.f90: Likewise. - * gfortran.dg/proc_ptr_comp_pass_3.f90: Likewise. - * gfortran.dg/proc_ptr_comp_pass_5.f90: Likewise. - * gfortran.dg/proc_ptr_result_1.f90: Likewise. - * gfortran.dg/proc_ptr_result_3.f90: Likewise. - * gfortran.dg/proc_ptr_result_6.f90: Likewise. - * gfortran.dg/proc_ptr_result_7.f90: Likewise. - * gfortran.dg/proc_ptr_result_8.f90: Likewise. - * gfortran.dg/product_init_expr.f03: Likewise. - * gfortran.dg/promotion.f90: Likewise. - * gfortran.dg/promotion_3.f90: Likewise. - * gfortran.dg/promotion_4.f90: Likewise. - * gfortran.dg/protected_1.f90: Likewise. - * gfortran.dg/protected_2.f90: Likewise. - * gfortran.dg/ptr-func-1.f90: Likewise. - * gfortran.dg/ptr-func-2.f90: Likewise. - * gfortran.dg/ptr_func_assign_1.f08: Likewise. - * gfortran.dg/ptr_func_assign_2.f08: Likewise. - * gfortran.dg/ptr_func_assign_3.f08: Likewise. - * gfortran.dg/pure_byref_1.f90: Likewise. - * gfortran.dg/pure_byref_2.f90: Likewise. - * gfortran.dg/pure_byref_3.f90: Likewise. - * gfortran.dg/quad_2.f90: Likewise. - * gfortran.dg/quad_3.f90: Likewise. - * gfortran.dg/random_3.f90: Likewise. - * gfortran.dg/random_4.f90: Likewise. - * gfortran.dg/random_7.f90: Likewise. - * gfortran.dg/read_2.f90: Likewise. - * gfortran.dg/read_3.f90: Likewise. - * gfortran.dg/read_4.f90: Likewise. - * gfortran.dg/read_5.f90: Likewise. - * gfortran.dg/read_bad_advance.f90: Likewise. - * gfortran.dg/read_bang.f90: Likewise. - * gfortran.dg/read_bang4.f90: Likewise. - * gfortran.dg/read_comma.f: Likewise. - * gfortran.dg/read_dir.f90: Likewise. - * gfortran.dg/read_empty_file.f: Likewise. - * gfortran.dg/read_eof_1.f90: Likewise. - * gfortran.dg/read_eof_2.f90: Likewise. - * gfortran.dg/read_eof_3.f90: Likewise. - * gfortran.dg/read_eof_4.f90: Likewise. - * gfortran.dg/read_eof_5.f90: Likewise. - * gfortran.dg/read_eof_6.f: Likewise. - * gfortran.dg/read_eof_7.f90: Likewise. - * gfortran.dg/read_eof_8.f90: Likewise. - * gfortran.dg/read_eof_all.f90: Likewise. - * gfortran.dg/read_eor.f90: Likewise. - * gfortran.dg/read_float_1.f90: Likewise. - * gfortran.dg/read_float_2.f03: Likewise. - * gfortran.dg/read_float_3.f90: Likewise. - * gfortran.dg/read_float_4.f90: Likewise. - * gfortran.dg/read_infnan_1.f90: Likewise. - * gfortran.dg/read_list_eof_1.f90: Likewise. - * gfortran.dg/read_logical.f90: Likewise. - * gfortran.dg/read_many_1.f: Likewise. - * gfortran.dg/read_no_eor.f90: Likewise. - * gfortran.dg/read_noadvance.f90: Likewise. - * gfortran.dg/read_repeat.f90: Likewise. - * gfortran.dg/read_repeat_2.f90: Likewise. - * gfortran.dg/read_size_noadvance.f90: Likewise. - * gfortran.dg/read_x_eof.f90: Likewise. - * gfortran.dg/read_x_past.f: Likewise. - * gfortran.dg/readwrite_unf_direct_eor_1.f90: Likewise. - * gfortran.dg/real_const_1.f: Likewise. - * gfortran.dg/real_const_2.f90: Likewise. - * gfortran.dg/real_const_3.f90: Likewise. - * gfortran.dg/real_do_1.f90: Likewise. - * gfortran.dg/real_index_1.f90: Likewise. - * gfortran.dg/realloc_on_assign_1.f03: Likewise. - * gfortran.dg/realloc_on_assign_10.f90: Likewise. - * gfortran.dg/realloc_on_assign_11.f90: Likewise. - * gfortran.dg/realloc_on_assign_12.f90: Likewise. - * gfortran.dg/realloc_on_assign_16.f90: Likewise. - * gfortran.dg/realloc_on_assign_17.f90: Likewise. - * gfortran.dg/realloc_on_assign_18.f90: Likewise. - * gfortran.dg/realloc_on_assign_2.f03: Likewise. - * gfortran.dg/realloc_on_assign_23.f90: Likewise. - * gfortran.dg/realloc_on_assign_25.f90: Likewise. - * gfortran.dg/realloc_on_assign_26.f90: Likewise. - * gfortran.dg/realloc_on_assign_27.f08: Likewise. - * gfortran.dg/realloc_on_assign_28.f90: Likewise. - * gfortran.dg/realloc_on_assign_29.f90: Likewise. - * gfortran.dg/realloc_on_assign_3.f03: Likewise. - * gfortran.dg/realloc_on_assign_4.f03: Likewise. - * gfortran.dg/realloc_on_assign_5.f03: Likewise. - * gfortran.dg/realloc_on_assign_7.f03: Likewise. - * gfortran.dg/record_marker_1.f90: Likewise. - * gfortran.dg/record_marker_2.f: Likewise. - * gfortran.dg/record_marker_3.f90: Likewise. - * gfortran.dg/recursive_alloc_comp_1.f08: Likewise. - * gfortran.dg/recursive_alloc_comp_2.f08: Likewise. - * gfortran.dg/recursive_alloc_comp_3.f08: Likewise. - * gfortran.dg/recursive_alloc_comp_4.f08: Likewise. - * gfortran.dg/recursive_check_7.f90: Likewise. - * gfortran.dg/recursive_reference_1.f90: Likewise. - * gfortran.dg/recursive_reference_2.f90: Likewise. - * gfortran.dg/recursive_stack.f90: Likewise. - * gfortran.dg/reduction.f90: Likewise. - * gfortran.dg/repack_arrays_1.f90: Likewise. - * gfortran.dg/repeat_1.f90: Likewise. - * gfortran.dg/repeat_2.f90: Likewise. - * gfortran.dg/repeat_3.f90: Likewise. - * gfortran.dg/repeat_6.f90: Likewise. - * gfortran.dg/reshape-alloc.f90: Likewise. - * gfortran.dg/reshape-complex.f90: Likewise. - * gfortran.dg/reshape.f90: Likewise. - * gfortran.dg/reshape_2.f90: Likewise. - * gfortran.dg/reshape_7.f90: Likewise. - * gfortran.dg/reshape_empty_1.f03: Likewise. - * gfortran.dg/reshape_pad_1.f90: Likewise. - * gfortran.dg/reshape_rank7.f90: Likewise. - * gfortran.dg/reshape_transpose_1.f90: Likewise. - * gfortran.dg/reshape_zerosize_3.f90: Likewise. - * gfortran.dg/result_default_init_1.f90: Likewise. - * gfortran.dg/result_in_spec_1.f90: Likewise. - * gfortran.dg/result_in_spec_2.f90: Likewise. - * gfortran.dg/ret_array_1.f90: Likewise. - * gfortran.dg/ret_pointer_1.f90: Likewise. - * gfortran.dg/ret_pointer_2.f90: Likewise. - * gfortran.dg/rewind_1.f90: Likewise. - * gfortran.dg/round_1.f03: Likewise. - * gfortran.dg/round_2.f03: Likewise. - * gfortran.dg/round_3.f08: Likewise. - * gfortran.dg/round_4.f90: Likewise. - * gfortran.dg/rrspacing_1.f90: Likewise. - * gfortran.dg/runtime_warning_1.f90: Likewise. - * gfortran.dg/same_type_as_2.f03: Likewise. - * gfortran.dg/save_1.f90: Likewise. - * gfortran.dg/save_5.f90: Likewise. - * gfortran.dg/save_6.f90: Likewise. - * gfortran.dg/scalar_mask_1.f90: Likewise. - * gfortran.dg/scalar_mask_2.f90: Likewise. - * gfortran.dg/scalarize_parameter_array_1.f90: Likewise. - * gfortran.dg/scale_1.f90: Likewise. - * gfortran.dg/scan_1.f90: Likewise. - * gfortran.dg/scan_2.f90: Likewise. - * gfortran.dg/secnds-1.f: Likewise. - * gfortran.dg/secnds.f: Likewise. - * gfortran.dg/select_1.f90: Likewise. - * gfortran.dg/select_2.f90: Likewise. - * gfortran.dg/select_3.f90: Likewise. - * gfortran.dg/select_5.f90: Likewise. - * gfortran.dg/select_char_1.f90: Likewise. - * gfortran.dg/select_char_2.f90: Likewise. - * gfortran.dg/select_type_13.f03: Likewise. - * gfortran.dg/select_type_14.f03: Likewise. - * gfortran.dg/select_type_15.f03: Likewise. - * gfortran.dg/select_type_19.f03: Likewise. - * gfortran.dg/select_type_2.f03: Likewise. - * gfortran.dg/select_type_26.f03: Likewise. - * gfortran.dg/select_type_27.f03: Likewise. - * gfortran.dg/select_type_28.f03: Likewise. - * gfortran.dg/select_type_3.f03: Likewise. - * gfortran.dg/select_type_35.f03: Likewise. - * gfortran.dg/select_type_36.f03: Likewise. - * gfortran.dg/select_type_37.f03: Likewise. - * gfortran.dg/select_type_39.f03: Likewise. - * gfortran.dg/select_type_4.f90: Likewise. - * gfortran.dg/select_type_5.f03: Likewise. - * gfortran.dg/select_type_6.f03: Likewise. - * gfortran.dg/select_type_7.f03: Likewise. - * gfortran.dg/select_type_8.f03: Likewise. - * gfortran.dg/selected_char_kind_1.f90: Likewise. - * gfortran.dg/selected_char_kind_4.f90: Likewise. - * gfortran.dg/selected_kind_1.f90: Likewise. - * gfortran.dg/selected_real_kind_2.f90: Likewise. - * gfortran.dg/shape_2.f90: Likewise. - * gfortran.dg/shape_4.f90: Likewise. - * gfortran.dg/shape_5.f90: Likewise. - * gfortran.dg/shape_7.f90: Likewise. - * gfortran.dg/shape_8.f90: Likewise. - * gfortran.dg/shape_9.f90: Likewise. - * gfortran.dg/shift-kind_2.f90: Likewise. - * gfortran.dg/shiftalr_1.F90: Likewise. - * gfortran.dg/shiftalr_2.F90: Likewise. - * gfortran.dg/simpleif_1.f90: Likewise. - * gfortran.dg/simplify_argN_1.f90: Likewise. - * gfortran.dg/simplify_cshift_1.f90: Likewise. - * gfortran.dg/simplify_cshift_4.f90: Likewise. - * gfortran.dg/simplify_eoshift_1.f90: Likewise. - * gfortran.dg/simplify_modulo.f90: Likewise. - * gfortran.dg/single_char_string.f90: Likewise. - * gfortran.dg/size_dim.f90: Likewise. - * gfortran.dg/size_optional_dim_1.f90: Likewise. - * gfortran.dg/sizeof.f90: Likewise. - * gfortran.dg/sizeof_4.f90: Likewise. - * gfortran.dg/slash_1.f90: Likewise. - * gfortran.dg/sms-1.f90: Likewise. - * gfortran.dg/sms-2.f90: Likewise. - * gfortran.dg/spec_expr_7.f90: Likewise. - * gfortran.dg/specifics_1.f90: Likewise. - * gfortran.dg/spellcheck-procedure_1.f90: Likewise. - * gfortran.dg/spellcheck-procedure_2.f90: Likewise. - * gfortran.dg/spread_init_expr.f03: Likewise. - * gfortran.dg/spread_scalar_source.f90: Likewise. - * gfortran.dg/spread_shape_1.f90: Likewise. - * gfortran.dg/stat_1.f90: Likewise. - * gfortran.dg/stat_2.f90: Likewise. - * gfortran.dg/stfunc_1.f90: Likewise. - * gfortran.dg/stfunc_4.f90: Likewise. - * gfortran.dg/stfunc_6.f90: Likewise. - * gfortran.dg/storage_size_1.f08: Likewise. - * gfortran.dg/storage_size_3.f08: Likewise. - * gfortran.dg/storage_size_4.f90: Likewise. - * gfortran.dg/streamio_1.f90: Likewise. - * gfortran.dg/streamio_10.f90: Likewise. - * gfortran.dg/streamio_11.f90: Likewise. - * gfortran.dg/streamio_12.f90: Likewise. - * gfortran.dg/streamio_13.f90: Likewise. - * gfortran.dg/streamio_14.f90: Likewise. - * gfortran.dg/streamio_15.f90: Likewise. - * gfortran.dg/streamio_16.f90: Likewise. - * gfortran.dg/streamio_17.f90: Likewise. - * gfortran.dg/streamio_2.f90: Likewise. - * gfortran.dg/streamio_3.f90: Likewise. - * gfortran.dg/streamio_4.f90: Likewise. - * gfortran.dg/streamio_5.f90: Likewise. - * gfortran.dg/streamio_6.f90: Likewise. - * gfortran.dg/streamio_7.f90: Likewise. - * gfortran.dg/streamio_8.f90: Likewise. - * gfortran.dg/streamio_9.f90: Likewise. - * gfortran.dg/string_0xfe_0xff_1.f90: Likewise. - * gfortran.dg/string_4.f90: Likewise. - * gfortran.dg/string_array_constructor_2.f90: Likewise. - * gfortran.dg/string_assign_2.f90: Likewise. - * gfortran.dg/string_compare_1.f90: Likewise. - * gfortran.dg/string_compare_2.f90: Likewise. - * gfortran.dg/string_compare_3.f90: Likewise. - * gfortran.dg/string_ctor_1.f90: Likewise. - * gfortran.dg/string_length_1.f90: Likewise. - * gfortran.dg/string_length_2.f90: Likewise. - * gfortran.dg/string_length_3.f90: Likewise. - * gfortran.dg/string_length_4.f90: Likewise. - * gfortran.dg/string_null_compare_1.f: Likewise. - * gfortran.dg/string_pad_trunc.f90: Likewise. - * gfortran.dg/structure_constructor_1.f03: Likewise. - * gfortran.dg/structure_constructor_11.f90: Likewise. - * gfortran.dg/structure_constructor_13.f03: Likewise. - * gfortran.dg/structure_constructor_2.f03: Likewise. - * gfortran.dg/structure_constructor_5.f03: Likewise. - * gfortran.dg/submodule_1.f08: Likewise. - * gfortran.dg/submodule_11.f08: Likewise. - * gfortran.dg/submodule_14.f08: Likewise. - * gfortran.dg/submodule_15.f08: Likewise. - * gfortran.dg/submodule_17.f08: Likewise. - * gfortran.dg/submodule_18.f08: Likewise. - * gfortran.dg/submodule_19.f08: Likewise. - * gfortran.dg/submodule_2.f08: Likewise. - * gfortran.dg/submodule_27.f08: Likewise. - * gfortran.dg/submodule_28.f08: Likewise. - * gfortran.dg/submodule_29.f08: Likewise. - * gfortran.dg/submodule_30.f08: Likewise. - * gfortran.dg/submodule_6.f08: Likewise. - * gfortran.dg/submodule_7.f08: Likewise. - * gfortran.dg/submodule_8.f08: Likewise. - * gfortran.dg/subnormal_1.f90: Likewise. - * gfortran.dg/subref_array_pointer_1.f90: Likewise. - * gfortran.dg/subref_array_pointer_2.f90: Likewise. - * gfortran.dg/subref_array_pointer_4.f90: Likewise. - * gfortran.dg/substr_2.f: Likewise. - * gfortran.dg/substr_3.f: Likewise. - * gfortran.dg/substr_4.f: Likewise. - * gfortran.dg/substr_5.f90: Likewise. - * gfortran.dg/substr_6.f90: Likewise. - * gfortran.dg/substr_alloc_string_comp_1.f90: Likewise. - * gfortran.dg/sum_init_expr.f03: Likewise. - * gfortran.dg/sum_zero_array_1.f90: Likewise. - * gfortran.dg/system_clock_3.f08: Likewise. - * gfortran.dg/t_editing.f: Likewise. - * gfortran.dg/team_change_1.f90: Likewise. - * gfortran.dg/team_end_1.f90: Likewise. - * gfortran.dg/team_number_1.f90: Likewise. - * gfortran.dg/temporary_1.f90: Likewise. - * gfortran.dg/test_com_block.f90: Likewise. - * gfortran.dg/test_only_clause.f90: Likewise. - * gfortran.dg/tiny_1.f90: Likewise. - * gfortran.dg/tiny_2.f90: Likewise. - * gfortran.dg/tl_editing.f90: Likewise. - * gfortran.dg/transfer_array_intrinsic_1.f90: Likewise. - * gfortran.dg/transfer_array_intrinsic_2.f90: Likewise. - * gfortran.dg/transfer_array_intrinsic_3.f90: Likewise. - * gfortran.dg/transfer_array_intrinsic_4.f90: Likewise. - * gfortran.dg/transfer_assumed_size_1.f90: Likewise. - * gfortran.dg/transfer_class_2.f90: Likewise. - * gfortran.dg/transfer_intrinsic_2.f90: Likewise. - * gfortran.dg/transfer_intrinsic_3.f90: Likewise. - * gfortran.dg/transfer_intrinsic_5.f90: Likewise. - * gfortran.dg/transfer_resolve_1.f90: Likewise. - * gfortran.dg/transfer_simplify_1.f90: Likewise. - * gfortran.dg/transfer_simplify_10.f90: Likewise. - * gfortran.dg/transfer_simplify_11.f90: Likewise. - * gfortran.dg/transfer_simplify_2.f90: Likewise. - * gfortran.dg/transfer_simplify_3.f90: Likewise. - * gfortran.dg/transfer_simplify_4.f90: Likewise. - * gfortran.dg/transfer_simplify_8.f90: Likewise. - * gfortran.dg/transfer_simplify_9.f90: Likewise. - * gfortran.dg/transpose_1.f90: Likewise. - * gfortran.dg/transpose_3.f03: Likewise. - * gfortran.dg/transpose_4.f90: Likewise. - * gfortran.dg/transpose_conjg_1.f90: Likewise. - * gfortran.dg/transpose_intrinsic_func_call_1.f90: Likewise. - * gfortran.dg/transpose_optimization_2.f90: Likewise. - * gfortran.dg/trim_1.f90: Likewise. - * gfortran.dg/trim_optimize_1.f90: Likewise. - * gfortran.dg/trim_optimize_2.f90: Likewise. - * gfortran.dg/trim_optimize_3.f90: Likewise. - * gfortran.dg/trim_optimize_4.f90: Likewise. - * gfortran.dg/trim_optimize_5.f90: Likewise. - * gfortran.dg/trim_optimize_6.f90: Likewise. - * gfortran.dg/trim_optimize_7.f90: Likewise. - * gfortran.dg/trim_optimize_8.f90: Likewise. - * gfortran.dg/type_to_class_1.f03: Likewise. - * gfortran.dg/type_to_class_2.f03: Likewise. - * gfortran.dg/type_to_class_3.f03: Likewise. - * gfortran.dg/type_to_class_4.f03: Likewise. - * gfortran.dg/type_to_class_5.f03: Likewise. - * gfortran.dg/typebound_assignment_5.f03: Likewise. - * gfortran.dg/typebound_assignment_6.f03: Likewise. - * gfortran.dg/typebound_assignment_7.f90: Likewise. - * gfortran.dg/typebound_call_1.f03: Likewise. - * gfortran.dg/typebound_call_13.f03: Likewise. - * gfortran.dg/typebound_call_18.f03: Likewise. - * gfortran.dg/typebound_call_19.f03: Likewise. - * gfortran.dg/typebound_call_2.f03: Likewise. - * gfortran.dg/typebound_call_20.f03: Likewise. - * gfortran.dg/typebound_call_3.f03: Likewise. - * gfortran.dg/typebound_generic_5.f03: Likewise. - * gfortran.dg/typebound_generic_6.f03: Likewise. - * gfortran.dg/typebound_generic_9.f03: Likewise. - * gfortran.dg/typebound_operator_12.f03: Likewise. - * gfortran.dg/typebound_operator_13.f03: Likewise. - * gfortran.dg/typebound_operator_15.f90: Likewise. - * gfortran.dg/typebound_operator_20.f90: Likewise. - * gfortran.dg/typebound_operator_3.f03: Likewise. - * gfortran.dg/typebound_operator_6.f03: Likewise. - * gfortran.dg/typebound_operator_7.f03: Likewise. - * gfortran.dg/typebound_operator_8.f03: Likewise. - * gfortran.dg/typebound_operator_9.f03: Likewise. - * gfortran.dg/typebound_proc_19.f90: Likewise. - * gfortran.dg/typebound_proc_20.f90: Likewise. - * gfortran.dg/typebound_proc_23.f90: Likewise. - * gfortran.dg/typebound_proc_27.f03: Likewise. - * gfortran.dg/typebound_proc_35.f90: Likewise. - * gfortran.dg/typebound_proc_36.f90: Likewise. - * gfortran.dg/unf_io_convert_1.f90: Likewise. - * gfortran.dg/unf_io_convert_2.f90: Likewise. - * gfortran.dg/unf_io_convert_3.f90: Likewise. - * gfortran.dg/unf_io_convert_4.f90: Likewise. - * gfortran.dg/unf_read_corrupted_1.f90: Likewise. - * gfortran.dg/unf_read_corrupted_2.f90: Likewise. - * gfortran.dg/unf_short_record_1.f90: Likewise. - * gfortran.dg/unformatted_recl_1.f90: Likewise. - * gfortran.dg/unformatted_subrecord_1.f90: Likewise. - * gfortran.dg/unit_1.f90: Likewise. - * gfortran.dg/unlimited_fmt_1.f08: Likewise. - * gfortran.dg/unlimited_polymorphic_1.f03: Likewise. - * gfortran.dg/unlimited_polymorphic_13.f90: Likewise. - * gfortran.dg/unlimited_polymorphic_14.f90: Likewise. - * gfortran.dg/unlimited_polymorphic_17.f90: Likewise. - * gfortran.dg/unlimited_polymorphic_18.f90: Likewise. - * gfortran.dg/unlimited_polymorphic_20.f90: Likewise. - * gfortran.dg/unlimited_polymorphic_21.f90: Likewise. - * gfortran.dg/unlimited_polymorphic_22.f90: Likewise. - * gfortran.dg/unlimited_polymorphic_23.f90: Likewise. - * gfortran.dg/unlimited_polymorphic_24.f03: Likewise. - * gfortran.dg/unlimited_polymorphic_25.f90: Likewise. - * gfortran.dg/unlimited_polymorphic_26.f90: Likewise. - * gfortran.dg/unlimited_polymorphic_3.f03: Likewise. - * gfortran.dg/unlimited_polymorphic_5.f90: Likewise. - * gfortran.dg/unlimited_polymorphic_6.f90: Likewise. - * gfortran.dg/unpack_init_expr.f03: Likewise. - * gfortran.dg/use_10.f90: Likewise. - * gfortran.dg/use_11.f90: Likewise. - * gfortran.dg/use_13.f90: Likewise. - * gfortran.dg/use_24.f90: Likewise. - * gfortran.dg/use_27.f90: Likewise. - * gfortran.dg/use_5.f90: Likewise. - * gfortran.dg/use_allocated_1.f90: Likewise. - * gfortran.dg/use_only_1.f90: Likewise. - * gfortran.dg/use_only_4.f90: Likewise. - * gfortran.dg/use_rename_2.f90: Likewise. - * gfortran.dg/use_rename_4.f90: Likewise. - * gfortran.dg/used_dummy_types_1.f90: Likewise. - * gfortran.dg/used_interface_ref.f90: Likewise. - * gfortran.dg/used_types_5.f90: Likewise. - * gfortran.dg/utf8_1.f03: Likewise. - * gfortran.dg/utf8_2.f03: Likewise. - * gfortran.dg/value_1.f90: Likewise. - * gfortran.dg/value_2.f90: Likewise. - * gfortran.dg/value_4.f90: Likewise. - * gfortran.dg/value_6.f03: Likewise. - * gfortran.dg/value_7.f03: Likewise. - * gfortran.dg/value_test.f90: Likewise. - * gfortran.dg/vect/fast-math-pr33299.f90: Likewise. - * gfortran.dg/vect/no-fre-no-copy-prop-O3-pr51704.f90: Likewise. - * gfortran.dg/vect/pr60510.f: Likewise. - * gfortran.dg/vect/pr69882.f90: Likewise. - * gfortran.dg/vect/pr69980.f90: Likewise. - * gfortran.dg/vect/vect-5.f90: Likewise. - * gfortran.dg/vect/vect-alias-check-1.F90: Likewise. - * gfortran.dg/vector_subscript_1.f90: Likewise. - * gfortran.dg/vector_subscript_2.f90: Likewise. - * gfortran.dg/vector_subscript_3.f90: Likewise. - * gfortran.dg/vector_subscript_5.f90: Likewise. - * gfortran.dg/verify_2.f90: Likewise. - * gfortran.dg/volatile10.f90: Likewise. - * gfortran.dg/where_1.f90: Likewise. - * gfortran.dg/where_operator_assign_1.f90: Likewise. - * gfortran.dg/where_operator_assign_2.f90: Likewise. - * gfortran.dg/where_operator_assign_3.f90: Likewise. - * gfortran.dg/whole_file_13.f90: Likewise. - * gfortran.dg/whole_file_2.f90: Likewise. - * gfortran.dg/widechar_2.f90: Likewise. - * gfortran.dg/widechar_4.f90: Likewise. - * gfortran.dg/widechar_5.f90: Likewise. - * gfortran.dg/widechar_6.f90: Likewise. - * gfortran.dg/widechar_8.f90: Likewise. - * gfortran.dg/widechar_IO_1.f90: Likewise. - * gfortran.dg/widechar_IO_2.f90: Likewise. - * gfortran.dg/widechar_IO_3.f90: Likewise. - * gfortran.dg/widechar_IO_4.f90: Likewise. - * gfortran.dg/widechar_compare_1.f90: Likewise. - * gfortran.dg/widechar_intrinsics_10.f90: Likewise. - * gfortran.dg/widechar_intrinsics_4.f90: Likewise. - * gfortran.dg/widechar_intrinsics_5.f90: Likewise. - * gfortran.dg/widechar_intrinsics_6.f90: Likewise. - * gfortran.dg/widechar_intrinsics_7.f90: Likewise. - * gfortran.dg/widechar_intrinsics_8.f90: Likewise. - * gfortran.dg/widechar_intrinsics_9.f90: Likewise. - * gfortran.dg/widechar_select_1.f90: Likewise. - * gfortran.dg/winapi.f90: Likewise. - * gfortran.dg/write_0_pe_format.f90: Likewise. - * gfortran.dg/write_back.f: Likewise. - * gfortran.dg/write_check3.f90: Likewise. - * gfortran.dg/write_direct_eor.f90: Likewise. - * gfortran.dg/write_padding.f90: Likewise. - * gfortran.dg/write_recursive.f90: Likewise. - * gfortran.dg/write_rewind_1.f: Likewise. - * gfortran.dg/write_rewind_2.f: Likewise. - * gfortran.dg/write_zero_array.f90: Likewise. - * gfortran.dg/x_slash_1.f: Likewise. - * gfortran.dg/x_slash_2.f: Likewise. - * gfortran.dg/zero_array_components_1.f90: Likewise. - * gfortran.dg/zero_length_1.f90: Likewise. - * gfortran.dg/zero_length_2.f90: Likewise. - * gfortran.dg/zero_sized_1.f90: Likewise. - * gfortran.dg/zero_sized_3.f90: Likewise. - * gfortran.fortran-torture/compile/nested.f90: Likewise. - * gfortran.fortran-torture/compile/parameter_1.f90: Likewise. - * gfortran.fortran-torture/execute/a_edit_1.f90: Likewise. - * gfortran.fortran-torture/execute/adjustr.f90: Likewise. - * gfortran.fortran-torture/execute/allocate.f90: Likewise. - * gfortran.fortran-torture/execute/alternate_return.f90: Likewise. - * gfortran.fortran-torture/execute/args.f90: Likewise. - * gfortran.fortran-torture/execute/arithmeticif.f90: Likewise. - * gfortran.fortran-torture/execute/arrayarg.f90: Likewise. - * gfortran.fortran-torture/execute/arrayarg2.f90: Likewise. - * gfortran.fortran-torture/execute/arraysave.f90: Likewise. - * gfortran.fortran-torture/execute/assumed_size.f90: Likewise. - * gfortran.fortran-torture/execute/backspace.f90: Likewise. - * gfortran.fortran-torture/execute/bounds.f90: Likewise. - * gfortran.fortran-torture/execute/character_passing.f90: Likewise. - * gfortran.fortran-torture/execute/character_select_1.f90: Likewise. - * gfortran.fortran-torture/execute/cmplx.f90: Likewise. - * gfortran.fortran-torture/execute/common.f90: Likewise. - * gfortran.fortran-torture/execute/common_2.f90: Likewise. - * gfortran.fortran-torture/execute/common_init_1.f90: Likewise. - * gfortran.fortran-torture/execute/common_size.f90: Likewise. - * gfortran.fortran-torture/execute/constructor.f90: Likewise. - * gfortran.fortran-torture/execute/contained.f90: Likewise. - * gfortran.fortran-torture/execute/contained2.f90: Likewise. - * gfortran.fortran-torture/execute/contained_3.f90: Likewise. - * gfortran.fortran-torture/execute/csqrt_1.f90: Likewise. - * gfortran.fortran-torture/execute/data.f90: Likewise. - * gfortran.fortran-torture/execute/data_2.f90: Likewise. - * gfortran.fortran-torture/execute/data_3.f90: Likewise. - * gfortran.fortran-torture/execute/data_4.f90: Likewise. - * gfortran.fortran-torture/execute/dep_fails.f90: Likewise. - * gfortran.fortran-torture/execute/der_init.f90: Likewise. - * gfortran.fortran-torture/execute/der_init_2.f90: Likewise. - * gfortran.fortran-torture/execute/der_init_3.f90: Likewise. - * gfortran.fortran-torture/execute/der_init_4.f90: Likewise. - * gfortran.fortran-torture/execute/der_init_5.f90: Likewise. - * gfortran.fortran-torture/execute/der_io.f90: Likewise. - * gfortran.fortran-torture/execute/der_point.f90: Likewise. - * gfortran.fortran-torture/execute/der_type.f90: Likewise. - * gfortran.fortran-torture/execute/direct_io.f90: Likewise. - * gfortran.fortran-torture/execute/elemental.f90: Likewise. - * gfortran.fortran-torture/execute/empty_format.f90: Likewise. - * gfortran.fortran-torture/execute/emptyif.f90: Likewise. - * gfortran.fortran-torture/execute/entry_1.f90: Likewise. - * gfortran.fortran-torture/execute/entry_10.f90: Likewise. - * gfortran.fortran-torture/execute/entry_11.f90: Likewise. - * gfortran.fortran-torture/execute/entry_2.f90: Likewise. - * gfortran.fortran-torture/execute/entry_3.f90: Likewise. - * gfortran.fortran-torture/execute/entry_4.f90: Likewise. - * gfortran.fortran-torture/execute/entry_5.f90: Likewise. - * gfortran.fortran-torture/execute/entry_6.f90: Likewise. - * gfortran.fortran-torture/execute/entry_7.f90: Likewise. - * gfortran.fortran-torture/execute/entry_8.f90: Likewise. - * gfortran.fortran-torture/execute/entry_9.f90: Likewise. - * gfortran.fortran-torture/execute/enum_1.f90: Likewise. - * gfortran.fortran-torture/execute/enum_2.f90: Likewise. - * gfortran.fortran-torture/execute/enum_3.f90: Likewise. - * gfortran.fortran-torture/execute/enum_4.f90: Likewise. - * gfortran.fortran-torture/execute/equiv_1.f90: Likewise. - * gfortran.fortran-torture/execute/equiv_2.f90: Likewise. - * gfortran.fortran-torture/execute/equiv_3.f90: Likewise. - * gfortran.fortran-torture/execute/equiv_4.f90: Likewise. - * gfortran.fortran-torture/execute/equiv_init_1.f90: Likewise. - * gfortran.fortran-torture/execute/f2_edit_1.f90: Likewise. - * gfortran.fortran-torture/execute/forall.f90: Likewise. - * gfortran.fortran-torture/execute/forall_1.f90: Likewise. - * gfortran.fortran-torture/execute/forall_2.f90: Likewise. - * gfortran.fortran-torture/execute/forall_3.f90: Likewise. - * gfortran.fortran-torture/execute/forall_4.f90: Likewise. - * gfortran.fortran-torture/execute/forall_5.f90: Likewise. - * gfortran.fortran-torture/execute/forall_6.f90: Likewise. - * gfortran.fortran-torture/execute/forall_7.f90: Likewise. - * gfortran.fortran-torture/execute/function_module_1.f90: Likewise. - * gfortran.fortran-torture/execute/getarg_1.f90: Likewise. - * gfortran.fortran-torture/execute/hollerith.f90: Likewise. - * gfortran.fortran-torture/execute/in-pack.f90: Likewise. - * gfortran.fortran-torture/execute/initialization_1.f90: Likewise. - * gfortran.fortran-torture/execute/initializer.f90: Likewise. - * gfortran.fortran-torture/execute/inquire_1.f90: Likewise. - * gfortran.fortran-torture/execute/inquire_2.f90: Likewise. - * gfortran.fortran-torture/execute/inquire_3.f90: Likewise. - * gfortran.fortran-torture/execute/inquire_4.f90: Likewise. - * gfortran.fortran-torture/execute/inquire_5.f90: Likewise. - * gfortran.fortran-torture/execute/integer_select.f90: Likewise. - * gfortran.fortran-torture/execute/integer_select_1.f90: Likewise. - * gfortran.fortran-torture/execute/internal_write.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_abs.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_achar.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_aint_anint.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_anyall.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_associated.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_associated_2.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_bitops.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_count.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_cshift.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_dim.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_dotprod.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_dprod.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_dummy.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_eoshift.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_fraction_exponent.f90: - Likewise. - * gfortran.fortran-torture/execute/intrinsic_index.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_integer.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_leadz.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_len.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_matmul.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_merge.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_minmax.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_mmloc.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_mmloc_2.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_mmloc_3.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_mmloc_4.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_mmval.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_mod_ulo.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_mvbits.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_nearest.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_pack.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_present.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_product.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_rrspacing.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_scale.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_set_exponent.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_shape.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_si_kind.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_sign.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_size.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_spacing.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_spread.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_sr_kind.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_sum.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_trailz.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_transpose.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_trim.f90: Likewise. - * gfortran.fortran-torture/execute/intrinsic_unpack.f90: Likewise. - * gfortran.fortran-torture/execute/iolength_1.f90: Likewise. - * gfortran.fortran-torture/execute/iolength_2.f90: Likewise. - * gfortran.fortran-torture/execute/iolength_3.f90: Likewise. - * gfortran.fortran-torture/execute/list_read_1.f90: Likewise. - * gfortran.fortran-torture/execute/logical_select_1.f90: Likewise. - * gfortran.fortran-torture/execute/mainsub.f90: Likewise. - * gfortran.fortran-torture/execute/math.f90: Likewise. - * gfortran.fortran-torture/execute/module_init_1.f90: Likewise. - * gfortran.fortran-torture/execute/module_interface_2.f90: Likewise. - * gfortran.fortran-torture/execute/nan_inf_fmt.f90: Likewise. - * gfortran.fortran-torture/execute/nestcons.f90: Likewise. - * gfortran.fortran-torture/execute/nullarg.f90: Likewise. - * gfortran.fortran-torture/execute/optstring_1.f90: Likewise. - * gfortran.fortran-torture/execute/parameter_1.f90: Likewise. - * gfortran.fortran-torture/execute/parameter_2.f90: Likewise. - * gfortran.fortran-torture/execute/partparm.f90: Likewise. - * gfortran.fortran-torture/execute/plusconst_1.f90: Likewise. - * gfortran.fortran-torture/execute/power.f90: Likewise. - * gfortran.fortran-torture/execute/pr19269-1.f90: Likewise. - * gfortran.fortran-torture/execute/pr23373-1.f90: Likewise. - * gfortran.fortran-torture/execute/pr23373-2.f90: Likewise. - * gfortran.fortran-torture/execute/pr32140.f90: Likewise. - * gfortran.fortran-torture/execute/pr40021.f: Likewise. - * gfortran.fortran-torture/execute/pr43390.f90: Likewise. - * gfortran.fortran-torture/execute/pr54767.f90: Likewise. - * gfortran.fortran-torture/execute/pr57396.f90: Likewise. - * gfortran.fortran-torture/execute/procarg.f90: Likewise. - * gfortran.fortran-torture/execute/ptr.f90: Likewise. - * gfortran.fortran-torture/execute/random_1.f90: Likewise. - * gfortran.fortran-torture/execute/random_2.f90: Likewise. - * gfortran.fortran-torture/execute/random_init.f90: Likewise. - * gfortran.fortran-torture/execute/read_eof.f90: Likewise. - * gfortran.fortran-torture/execute/read_null_string.f90: Likewise. - * gfortran.fortran-torture/execute/retarray.f90: Likewise. - * gfortran.fortran-torture/execute/retarray_2.f90: Likewise. - * gfortran.fortran-torture/execute/save_1.f90: Likewise. - * gfortran.fortran-torture/execute/save_2.f90: Likewise. - * gfortran.fortran-torture/execute/scalarize.f90: Likewise. - * gfortran.fortran-torture/execute/scalarize2.f90: Likewise. - * gfortran.fortran-torture/execute/scalarize3.f90: Likewise. - * gfortran.fortran-torture/execute/select_1.f90: Likewise. - * gfortran.fortran-torture/execute/seq_io.f90: Likewise. - * gfortran.fortran-torture/execute/slash_edit.f90: Likewise. - * gfortran.fortran-torture/execute/spec_abs.f90: Likewise. - * gfortran.fortran-torture/execute/specifics.f90: Likewise. - * gfortran.fortran-torture/execute/st_function.f90: Likewise. - * gfortran.fortran-torture/execute/st_function_1.f90: Likewise. - * gfortran.fortran-torture/execute/st_function_2.f90: Likewise. - * gfortran.fortran-torture/execute/stack_varsize.f90: Likewise. - * gfortran.fortran-torture/execute/straret.f90: Likewise. - * gfortran.fortran-torture/execute/strarray_1.f90: Likewise. - * gfortran.fortran-torture/execute/strarray_2.f90: Likewise. - * gfortran.fortran-torture/execute/strarray_3.f90: Likewise. - * gfortran.fortran-torture/execute/strarray_4.f90: Likewise. - * gfortran.fortran-torture/execute/strcmp.f90: Likewise. - * gfortran.fortran-torture/execute/strcommon_1.f90: Likewise. - * gfortran.fortran-torture/execute/string.f90: Likewise. - * gfortran.fortran-torture/execute/strlen.f90: Likewise. - * gfortran.fortran-torture/execute/strret.f90: Likewise. - * gfortran.fortran-torture/execute/t_edit.f90: Likewise. - * gfortran.fortran-torture/execute/test_slice.f90: Likewise. - * gfortran.fortran-torture/execute/transfer1.f90: Likewise. - * gfortran.fortran-torture/execute/transfer2.f90: Likewise. - * gfortran.fortran-torture/execute/unopened_unit_1.f90: Likewise. - * gfortran.fortran-torture/execute/userop.f90: Likewise. - * gfortran.fortran-torture/execute/where17.f90: Likewise. - * gfortran.fortran-torture/execute/where18.f90: Likewise. - * gfortran.fortran-torture/execute/where19.f90: Likewise. - * gfortran.fortran-torture/execute/where20.f90: Likewise. - * gfortran.fortran-torture/execute/where21.f90: Likewise. - * gfortran.fortran-torture/execute/where_1.f90: Likewise. - * gfortran.fortran-torture/execute/where_10.f90: Likewise. - * gfortran.fortran-torture/execute/where_11.f90: Likewise. - * gfortran.fortran-torture/execute/where_14.f90: Likewise. - * gfortran.fortran-torture/execute/where_15.f90: Likewise. - * gfortran.fortran-torture/execute/where_16.f90: Likewise. - * gfortran.fortran-torture/execute/where_2.f90: Likewise. - * gfortran.fortran-torture/execute/where_3.f90: Likewise. - * gfortran.fortran-torture/execute/where_4.f90: Likewise. - * gfortran.fortran-torture/execute/where_5.f90: Likewise. - * gfortran.fortran-torture/execute/where_6.f90: Likewise. - * gfortran.fortran-torture/execute/where_7.f90: Likewise. - * gfortran.fortran-torture/execute/where_8.f90: Likewise. - * gfortran.fortran-torture/execute/write_a_1.f90: Likewise. - * gfortran.fortran-torture/execute/write_logical.f90: Likewise. - * gfortran.dg/extends_type_of_3.f90: Likewise. Adjust tree scans. - * gfortran.dg/inline_transpose_1.f90: Likewise. - -2018-02-17 Paul Thomas - - PR fortran/84115 - * gfortran.dg/associate_35.f90: Remove error, add STOP n and - change to dg-run. - -2018-02-16 Eric Botcazou - - PR ada/84277 - * gnat.dg/array11.adb (Array11): Tweak index and remove warning. - * gnat.dg/dispatch1.adb: Rename into... - * gnat.dg/disp1.adb: ...this. - * gnat.dg/dispatch1_p.ads: Rename into... - * gnat.dg/disp1_pkg.ads: ...this. - * gnat.dg/disp2.adb: Rename into... - * gnat.dg/dispatch2.adb: ...this. - * gnat.dg/dispatch2_p.ads: Rename into... - * gnat.dg/disp2_pkg.ads: ...this. - * gnat.dg/dispatch2_p.adb: Rename into... - * gnat.dg/disp2_pkg.adb: this. - * gnat.dg/generic_dispatch.adb: Rename into... - * gnat.dg/generic_disp.adb: this. - * gnat.dg/generic_dispatch_p.ads: Rename into... - * gnat.dg/generic_disp_pkg.ads: ...this. - * gnat.dg/generic_dispatch_p.adb: Rename into... - * gnat.dg/generic_disp_pkg.adb: ...this. - * gnat.dg/null_pointer_deref1.adb (Null_Pointer_Deref1): Robustify. - * gnat.dg/null_pointer_deref2.adb (Null_Pointer_Deref2): Likewise. - * gnat.dg/object_overflow1.adb: Tweak index. - * gnat.dg/object_overflow2.adb: Likewise. - * gnat.dg/object_overflow3.adb: Likewise. - * gnat.dg/object_overflow4.adb: Likewise. - * gnat.dg/object_overflow5.adb: Likewise. - -2018-02-16 Jakub Jelinek - - PR ipa/84425 - * gcc.c-torture/compile/pr84425.c: New test. - -2018-02-16 Marek Polacek - Jakub Jelinek - - PR c++/84192 - * g++.dg/cpp1y/constexpr-84192.C: New test. - -2018-02-16 Martin Sebor - - PR c++/79064 - * g++.dg/overload15.C: New test. - -2018-02-16 Yury Gribov - - PR target/81535 - * gcc.dg/pr56727-1.c: Prevent tailcalls and update for powerpc*-*-*. - * gcc.dg/pr56727-2.c: Ditto. - * gcc.target/powerpc/pr79439.c: Renamed to... - * gcc.target/powerpc/pr79439-1.c: ...this. - * gcc.target/powerpc/pr79439-2.c: New test. - * gcc.target/powerpc/pr79439-3.c: New test. - -2018-02-16 Will Schmidt - - target/pr84371 - * gcc.target/powerpc/builtins-3-p8.c: Update stanzas. - * gcc.target/powerpc/builtins-3-p9.c: Update stanzas, Enhance test. - * gcc.target/powerpc/builtins-3-runnable.c: Update stanzas. - * gcc.target/powerpc/builtins-3-vec_reve_runnable.c: Same. - * gcc.target/powerpc/builtins-3.c: Same. - -2018-02-16 Nathan Sidwell - - * g++.old-deja/g++.jason/scoping15.C: Fix dg-warning. - -2018-02-16 Vladimir Makarov - - PR rtl-optimization/70023 - * gcc.target/i386/pr70023.c: New. - -2018-02-16 Carl Love - - * gcc.target/powerpc/p9-vinsert4b-1.c: Remove test file for non-ABI - tests. - * gcc.target/powerpc/p9-vinsert4b-2.c: Remove test file for non-ABI - tests. - -2018-02-16 Carl Love - - * gcc.target/powerpc/builtins-7-p9-runnable.c: New runnable test file - for the ABI definitions for vec_extract4b and vec_insert4b. - -2018-02-16 Nathan Sidwell - - * g++.old-deja/g++.jason/scoping15.C: Expect warnings. - * g++.old-deja/g++.mike/net43.C: Likewise. - -2018-02-16 Paolo Carlini - - PR c++/82468 - * g++.dg/cpp1z/class-deduction48.C: New. - -2018-02-16 Nathan Sidwell - - PR c++/84375 - * g++.dg/lookup/pr84375.C: New. - -2018-02-14 Oleg Endo - - PR target/83831 - * gcc.target/rx/pr83831.c (test_3, test_6): Adjust test cases. - -2018-02-16 Richard Biener - - PR tree-optimization/84417 - * gcc.dg/torture/pr84417.c: New testcase. - -2018-02-16 Jakub Jelinek - - PR target/84272 - * g++.dg/opt/pr84272.C: New test. - - PR rtl-optimization/83723 - * gcc.dg/pr83723.c: New test. - -2018-02-16 Richard Biener - - PR tree-optimization/84399 - * gcc.dg/graphite/pr84399.c: New testcase. - -2018-02-16 Richard Biener - - PR tree-optimization/84190 - * g++.dg/torture/pr84190.C: New testcase. - -2018-02-15 Martin Sebor - - * gcc.dg/lto/README (dg-lto-warning, dg-lto-message): Document new - directives. - -2018-02-15 Janus Weil - - PR fortran/84409 - * gfortran.dg/dtio_21.f03: Add an error message. - * gfortran.dg/dtio_22.f90: Fix invalid test case. - -2018-02-15 Thomas Koenig - - PR fortran/84381 - * gfortran.dg/stop_shouldfail.f90: New test. - -2018-02-15 Paolo Carlini - - PR c++/84330 - * g++.dg/concepts/pr84330.C: New. - -2018-02-15 Tom de Vries - - * gcc.dg/Wstringop-overflow-3.c: Require effective target alloca. - -2018-02-15 Tom de Vries - - * gcc.c-torture/compile/pr84136.c: Require effective target - indirect_jumps. - -2018-02-15 Jakub Jelinek - - PR tree-optimization/84383 - * gcc.c-torture/compile/pr84383.c: New test. - - PR tree-optimization/84334 - * gcc.dg/pr84334.c: New test. - -2018-02-14 Carl Love - - * gcc.target/powerpc/builtins-4-int128-runnable.c - (dg-require-effective-target): Change vsx_hw to p8vector_hw. - (dg-options): Change -maltivec -mvsx to -mpower8-vector. - -2018-02-14 Martin Sebor - - PR tree-optimization/83698 - * gcc.dg/Wrestrict-7.c: New test. - * c-c++-common/Wrestrict.c: Adjust expected values for strcat. - * gcc.target/i386/chkp-stropt-17.c: Same. - -2018-02-14 Martin Sebor - - PR c/84108 - * gcc.dg/Wattributes-8.c: New test. - -2018-02-14 Janus Weil - - PR fortran/84385 - * gfortran.dg/allocate_with_source_22.f03: Fix invalid test case. - * gfortran.dg/allocate_with_source_23.f90: Ditto. - * gfortran.dg/select_type_1.f03: Extend test case. - -2017-02-14 Uros Bizjak - - * gcc.target/i386/pr57193.c (dg-do): Remove target selector. - (dg-options): Use -O2 -msse2 -mno-sse3. - -2018-02-14 Kelvin Nilsen - - * gcc.dg/vmx/extract-be-order.c: Disable -maltivec=be warning so - this test case still works ok. - * gcc.dg/vmx/extract-vsx-be-order.c: Likewise. - * gcc.dg/vmx/insert-be-order.c: Likewise. - * gcc.dg/vmx/insert-vsx-be-order.c: Likewise. - * gcc.dg/vmx/ld-be-order.c: Likewise. - * gcc.dg/vmx/ld-vsx-be-order.c: Likewise. - * gcc.dg/vmx/lde-be-order.c: Likewise. - * gcc.dg/vmx/ldl-be-order.c: Likewise. - * gcc.dg/vmx/ldl-vsx-be-order.c: Likewise. - * gcc.dg/vmx/merge-be-order.c: Likewise. - * gcc.dg/vmx/merge-vsx-be-order.c: Likewise. - * gcc.dg/vmx/mult-even-odd-be-order.c: Likewise. - * gcc.dg/vmx/pack-be-order.c: Likewise. - * gcc.dg/vmx/perm-be-order.c: Likewise. - * gcc.dg/vmx/splat-be-order.c: Likewise. - * gcc.dg/vmx/splat-vsx-be-order.c: Likewise. - * gcc.dg/vmx/st-be-order.c: Likewise. - * gcc.dg/vmx/st-vsx-be-order.c: Likewise. - * gcc.dg/vmx/ste-be-order.c: Likewise. - * gcc.dg/vmx/stl-be-order.c: Likewise. - * gcc.dg/vmx/stl-vsx-be-order.c: Likewise. - * gcc.dg/vmx/sum2s-be-order.c: Likewise. - * gcc.dg/vmx/unpack-be-order.c: Likewise. - * gcc.dg/vmx/vsums-be-order.c: Likewise. - * gcc.target/powerpc/vec-setup-be-long.c: Likewise. - -2018-02-14 Paolo Carlini - - PR c++/84350 - * g++.dg/cpp0x/auto49.C: New. - -2018-02-14 Nathan Sidwell - - * g++.dg/template/instantiate5.C: Adjust required-from loc. - -2018-02-14 Will Schmidt - - * gcc.target/powerpc/altivec-consts.c: Update compile stanzas. - * gcc.target/powerpc/le-altivec-consts.c: Same. - -2018-02-14 Will Schmidt - - PR target/84220 - * gcc.target/powerpc/pr84220-sld.c: New test. - * gcc.target/powerpc/pr84220-sld2.c: New test. - * gcc.target/powerpc/pr84220-sldw.c: New test. - * gcc.target/powerpc/pr84220-xxperm.c: New test. - * gcc.target/powerpc/pr84220-xxsld.c: New test. - -2018-02-14 Igor Tsimbalist - - PR target/84239 - * gcc.target/i386/cet-intrin-3.c: Use new _get_ssp and - _inc_ssp intrinsics. - * gcc.target/i386/cet-intrin-4.c: Likewise. - * gcc.target/i386/cet-rdssp-1.c: Remove argument from - __builtin_ia32_rdssp[d|q]. - -2018-02-14 Richard Sandiford - - PR tree-optimization/84357 - * gcc.dg/vect/pr84357.c: New test. - -2018-02-14 Oleg Endo - - PR target/83831 - * gcc.target/rx/pr83831.c: New tests. - -2018-02-14 Jozef Lawrynowicz - - PR target/79242 - * gcc.target/msp430/pr79242.c: New test. - -2018-02-13 Peter Bergner - - PR target/84372 - * gcc.target/powerpc/lvsl-lvsr.c: Also match lxv when compiling - with -mcpu=power9. - -2018-02-13 Peter Bergner - - PR target/84279 - * g++.dg/pr84279.C: New test. - -2018-02-13 Segher Boessenkool - - PR rtl-optimization/84169 - * gcc.c-torture/execute/pr84169.c: New. - -2018-02-13 Peter Bergner - - PR target/84370 - * gcc.target/powerpc/builtins-3-p9-runnable.c: Remove deprecated option. - -2018-02-13 Peter Bergner - - PR target/84365 - * gcc.target/powerpc/altivec-7-le.c: Also match lxv when compiling - with -mcpu=power9. - -2018-02-13 Jakub Jelinek - - PR c++/84364 - * g++.dg/warn/effc4.C: New test. - -2018-02-13 Paolo Carlini - - PR c++/84333 - * g++.dg/template/sizeof16.C: New. - * g++.dg/template/sizeof17.C: Likewise. - -2018-02-13 Janus Weil - - PR fortran/84313 - * gfortran.dg/proc_ptr_common_1.f90: Fix invalid test case, - add necessary compiler options. - * gfortran.dg/proc_ptr_common_2.f90: Add missing error message. - -2018-02-13 Jakub Jelinek - - PR c/82210 - * gcc.c-torture/execute/pr82210.c: New test. - - PR middle-end/84309 - * gcc.dg/pr84309-2.c: New test. - -2018-02-12 Richard Sandiford - - PR tree-optimization/84321 - * gcc.dg/pr84321.c: New test. - -2018-02-13 Vladimir Makarov - - PR target/84359 - * gcc.target/i386/pr57193.c: Add -march=x86-64. - -2018-02-13 Paolo Bonzini - - PR sanitizer/84340 - * gcc.dg/asan/pr84307.c: Remove test. - -2018-02-13 Sebastian Perta - - * gcc.target/rl78/test_auto_vector.c: New test. - -2018-02-13 Richard Sandiford - - PR c/84305 - * gcc.c-torture/compile/pr84305.c: New test. - -2018-02-13 Jakub Jelinek - - PR target/84335 - * gcc.target/i386/pr84335.c: New test. - - PR tree-optimization/84339 - * gcc.c-torture/execute/pr84339.c: New test. - - PR middle-end/84309 - * gcc.dg/pr84309.c: New test. - * gcc.target/i386/pr84309.c: New test. - - PR target/84336 - * gcc.target/i386/pr84336.c: New test. - -2018-02-12 Jakub Jelinek - - PR c++/84341 - * c-c++-common/gomp/pr84341.c: New test. - -2018-02-12 Thomas Koenig - - PR fortran/68746 - * gfortran.dg/read_dir.f90: Re-add dg-do run. - -2018-02-12 Thomas Koenig - - PR fortran/68746 - * gfortran.dg/read_dir.f90: Remove xfails. Also allow iostat - of zero for read. - -2018-02-12 Jeff Law - - * gcc.c-torture/compile/reg-args-size.c: New test. - -2018-02-12 Carl Love - - * gcc.target/powerpc/builtins-4-runnable.c (main): Move int128 and - uint128 tests to new testfile. - * gcc.target/powerpc/builtins-4-int128-runnable.c: New testfile for - int128 and uint128 tests. - * gcc.target/powerpc/powerpc.exp: Add builtins-4-int128-runnable.c to - list of torture tests. - -2018-02-12 Janus Weil - - PR fortran/84273 - * gfortran.dg/proc_ptr_47.f90: Fix invalid test case. - * gfortran.dg/proc_ptr_comp_pass_4.f90: Fix and extend test case. - -2018-02-12 Tamar Christina - - PR target/82641 - * gcc.target/arm/pragma_arch_switch_2.c: Use armv5te. - -2018-02-12 Paolo Bonzini - - PR sanitizer/84307 - * gcc.dg/asan/pr84307.c: New test. - -2018-02-12 Nathan Sidwell - - * g++.dg/parse/pr84263.C: New. - -2018-02-12 Paolo Carlini - - PR c++/79626 - * g++.dg/template/crash129.C: New. - -2018-02-12 Olga Makhotina - - PR target/83828 - * gcc.target/i386/avx512bitalg-vpopcntb-1.c: Fix test. - * gcc.target/i386/avx512bitalg-vpopcntw-1.c: Ditto. - * gcc.target/i386/avx512bitalg-vpshufbitqmb-1.c: Ditto. - * gcc.target/i386/avx512vpopcntdq-vpopcntd-1.c: Ditto. - * gcc.target/i386/avx512vpopcntdq-vpopcntq-1.c: Ditto. - -2018-02-12 Olga Makhotina - - * gcc.target/i386/avx512f-vscalefsd-1.c (_mm_mask_scalef_round_sd, - _mm_maskz_scalef_round_sd): Test new intrinsics. - * gcc.target/i386/avx512f-vscalefsd-2.c (_mm_scalef_round_sd, - (_mm_mask_scalef_round_sd, _mm_maskz_scalef_round_sd): Test new - intrinsics. - * gcc.target/i386/avx512f-vscalefss-1.c (_mm_mask_scalef_round_ss, - _mm_maskz_scalef_round_ss): Test new intrinsics. - * gcc.target/i386/avx512f-vscalefss-2.c (_mm_scalef_round_ss, - _mm_mask_scalef_round_ss, _mm_maskz_scalef_round_ss): Test new - intrinsics. - * gcc.target/i386/avx-1.c (__builtin_ia32_scalefsd_round, - __builtin_ia32_scalefss_round): Remove builtin. - (__builtin_ia32_scalefsd_mask_round, - __builtin_ia32_scalefss_mask_round): Test new builtin. - * gcc.target/i386/sse-13.c: Ditto. - * gcc.target/i386/sse-23.c: Ditto. - -2018-02-12 Olga Makhotina - - * gcc.target/i386/avx512f-vsqrtsd-1.c (_mm_mask_sqrt_round_sd) - (_mm_maskz_sqrt_round_sd): Test new intrinsics. - * gcc.target/i386/avx512f-vsqrtsd-2.c (_mm_sqrt_round_sd) - (_mm_mask_sqrt_round_sd, _mm_maskz_sqrt_round_sd): Test new intrinsics. - * gcc.target/i386/avx512f-vsqrtss-1.c (_mm_mask_sqrt_round_ss) - (_mm_maskz_sqrt_round_ss): Test new intrinsics. - * gcc.target/i386/avx512f-vsqrtss-2.c (_mm_sqrt_round_ss) - (_mm_mask_sqrt_round_ss,      _mm_maskz_sqrt_round_ss): Test new - intrinsics. - * gcc.target/i386/avx-1.c (__builtin_ia32_sqrtsd_round) - (__builtin_ia32_sqrtss_round): Remove builtins. - (__builtin_ia32_sqrtsd_mask_round) - (__builtin_ia32_sqrtss_mask_round): Test new builtins. - * gcc.target/i386/sse-13.c: Ditto. - * gcc.target/i386/sse-23.c: Ditto. - -2018-02-11 Francois-Xavier Coudert - - PR fortran/35299 - * gfortran.dg/statement_function_3.f: New test. - -2018-02-11 Steven G. Kargl - - PR fortran/54223 - PR fortran/84276 - * gfortran.dg/statement_function_1.f90: New test. - * gfortran.dg/statement_function_2.f90: New test. - -2018-02-11 Paul Thomas - - PR fortran/84074 - * gfortran.dg/type_to_class_5.f03: New test. - -2018-02-10 Paul Thomas - - PR fortran/56691 - * gfortran.dg/type_to_class_4.f03: New test. - -2018-02-10 Alan Modra - - PR target/84300 - * gcc.dg/pr84300.c: New. - -2018-02-10 Jakub Jelinek - - PR sanitizer/83987 - * g++.dg/ubsan/pr83987-2.C: New test. - -2018-02-09 Sebastian Perta - - * gcc.target/rx/movsicc.c: New test. - -2018-02-09 Peter Bergner - - PR target/83926 - * gcc.target/powerpc/pr83926.c: Filter out gimple folding disabled - message. - -2018-02-09 Will Schmidt - - * gcc.target/powerpc/vsx-vector-6-le.c: Update CPU target. - * gcc.target/powerpc/vsx-vector-6-le.p9.c: New. - -2018-02-09 Nathan Sidwell - - PR c/84293 - * c-c++-common/pr84293.h: New. - * c-c++-common/pr84293.c: New. - -2018-02-09 Vladimir Makarov - - PR rtl-optimization/57193 - * gcc.target/i386/pr57193.c: New. - -2018-02-09 Jakub Jelinek - - PR target/84226 - * gcc.target/powerpc/pr84226.c: New test. - -2018-02-09 Peter Bergner - - * gcc.target/powerpc/builtins-1-be.c : Rename duplicate test - from this to... - : ...this. - -2018-02-09 Martin Sebor - - PR lto/84212 - * gcc.dg/lto/pr84212_0.c: New test file. - * gcc.dg/lto/pr84212_1.c: Same. - -2018-02-09 Peter Bergner - - PR target/83926 - * gcc.target/powerpc/pr83926.c: New test. - * gcc.target/powerpc/builtins-1-be.c: Filter out gimple folding disabled - message. Fix test for running in 32-bit mode. - -2018-02-09 Tamar Christina - - PR target/82641 - * gcc.target/arm/pragma_arch_switch_2.c: Use armv6 and armv5t. - -2018-02-09 Andreas Krebbel - - PR target/PR84295 - * gcc.target/s390/pr84295.c: New test. - -2018-02-09 Paolo Carlini - - PR c++/77522 - * g++.dg/cpp1y/lambda-init16.C: New. - -2018-02-09 Eric Botcazou - - * gnat.dg/sso8.adb: New test. - * gnat.dg/sso8_pkg.ads: New helper. - -2018-02-09 Richard Biener - - PR tree-optimization/84278 - * gcc.target/i386/pr84278.c: Adjust regex. - -2018-02-09 Jakub Jelinek - - PR tree-optimization/84232 - * gcc.dg/tree-ssa/ssa-dom-cse-2.c: Add -mtune-generic on x86. - - PR debug/84252 - * gcc.target/aarch64/pr84252.c: New test. - - PR middle-end/84237 - * gcc.dg/pr84237.c: New test. - -2018-02-09 Marek Polacek - Jakub Jelinek - - PR c++/83659 - * g++.dg/torture/pr83659.C: New test. - -2018-02-08 David Malcolm - - PR tree-optimization/84136 - * gcc.c-torture/compile/pr84136.c: New test. - -2018-02-08 Sergey Shalnov - - PR target/83008 - * gcc.target/i386/pr83008.c: New test. - -2018-02-08 Peter Bergner - - PR target/81143 - * gcc.target/powerpc/pr79799-2.c: Use __LITTLE_ENDIAN__. - -2018-02-08 Paolo Carlini - - PR c++/83806 - * g++.dg/warn/Wunused-parm-11.C: New. - -2018-02-08 Marek Polacek - - PR tree-optimization/84238 - * gcc.dg/Wstringop-overflow-3.c: New test. - -2018-02-08 Nathan Sidwell - - * g++.dg/cpp0x/initlist93.C: Adjust diagnostic. - -2018-02-08 Richard Sandiford - - PR tree-optimization/84265 - * gcc.dg/vect/pr84265.c: New test. - -2018-02-08 Richard Sandiford - - PR tree-optimization/81635 - * gcc.dg/vect/bb-slp-pr81635-3.c: New test. - * gcc.dg/vect/bb-slp-pr81635-4.c: Likewise. - -2018-02-08 Andreas Krebbel - - * gcc.target/s390/nobp-function-pointer-attr.c: New test. - * gcc.target/s390/nobp-function-pointer-nothunk.c: New test. - * gcc.target/s390/nobp-function-pointer-z10.c: New test. - * gcc.target/s390/nobp-function-pointer-z900.c: New test. - * gcc.target/s390/nobp-indirect-jump-attr.c: New test. - * gcc.target/s390/nobp-indirect-jump-inline-attr.c: New test. - * gcc.target/s390/nobp-indirect-jump-inline-z10.c: New test. - * gcc.target/s390/nobp-indirect-jump-inline-z900.c: New test. - * gcc.target/s390/nobp-indirect-jump-nothunk.c: New test. - * gcc.target/s390/nobp-indirect-jump-z10.c: New test. - * gcc.target/s390/nobp-indirect-jump-z900.c: New test. - * gcc.target/s390/nobp-return-attr-all.c: New test. - * gcc.target/s390/nobp-return-attr-neg.c: New test. - * gcc.target/s390/nobp-return-mem-attr.c: New test. - * gcc.target/s390/nobp-return-mem-nothunk.c: New test. - * gcc.target/s390/nobp-return-mem-z10.c: New test. - * gcc.target/s390/nobp-return-mem-z900.c: New test. - * gcc.target/s390/nobp-return-reg-attr.c: New test. - * gcc.target/s390/nobp-return-reg-mixed.c: New test. - * gcc.target/s390/nobp-return-reg-nothunk.c: New test. - * gcc.target/s390/nobp-return-reg-z10.c: New test. - * gcc.target/s390/nobp-return-reg-z900.c: New test. - * gcc.target/s390/nobp-table-jump-inline-z10.c: New test. - * gcc.target/s390/nobp-table-jump-inline-z900.c: New test. - * gcc.target/s390/nobp-table-jump-z10.c: New test. - * gcc.target/s390/nobp-table-jump-z900.c: New test. - -2018-02-08 Richard Biener - - PR tree-optimization/84233 - * g++.dg/torture/pr84233.C: New testcase. - -2018-02-08 Richard Biener - - PR tree-optimization/84278 - * gcc.target/i386/pr84278.c: New testcase. - -2018-02-08 Wilco Dijkstra - - PR rtl-optimization/84068 - PR rtl-optimization/83459 - * gcc.dg/pr84068.c: New test. - -2018-02-08 Richard Biener - - * g++.dg/vect/slp-pr56812.cc: Allow either basic-block or - loop vectorization to happen. - -2018-02-08 Paolo Carlini - - PR c++/83204 - * g++.dg/cpp0x/lambda/lambda-ice25.C: New. - -2018-02-07 Will Schmidt - - * gcc.target/powerpc/vsxcopy.c: Update scan-assembler stanzas. - -2018-02-07 Michael Meissner - - PR target/84154 - * gcc.target/powerpc/pr84154-1.c: New tests. - * gcc.target/powerpc/pr84154-2.c: Likewise. - * gcc.target/powerpc/pr84154-3.c: Likewise. - -2018-02-07 Will Schmidt - - * gcc.target/powerpc/builtins-mergew-mergeow.c: Update dg-requires. - -2018-02-07 Jakub Jelinek - - PR c++/84082 - * g++.dg/template/incomplete11.C: New test. - * g++.dg/parse/crash67.C: Expect an incomplete type diagnostics too. - -2018-02-07 Steven G. Kargl - - PR fortran/82994 - * gfortran.dg/deallocate_error_3.f90: New test. - * gfortran.dg/deallocate_error_4.f90: New test. - -2018-02-07 Thomas Koenig - - PR fortran/68560 - * gfortran.dg/shape_9.f90: New test. - -2018-02-07 Steven G. Kargl - - PR fortran/82049 - * gfortran.dg/assumed_charlen_parameter.f90: New test. - -2018-02-07 David Malcolm - - PR c++/81610 - PR c++/80567 - * g++.dg/spellcheck-reswords.C: New test case. - * g++.dg/spellcheck-stdlib.C: Remove xfail from dg-bogus - suggestion of "if". - -2018-02-07 Martin Liska - - PR c++/84059. - * g++.dg/ext/mv26.C: New test. - -2018-02-07 Tom de Vries - - * gcc.dg/pr83844.c: Require effective target alloca. - -2018-02-07 Tom de Vries - - * gcc.dg/torture/pr83055.c: Require effective target global_constructor. - -2018-02-07 H.J. Lu - - PR target/84243 - * gcc.target/i386/cet-intrin-4.c (dg-options): Use - -fcf-protection=return. - -2018-02-07 Tom de Vries - - PR libgomp/84217 - * c-c++-common/goacc/pr84217.c: New test. - * gfortran.dg/goacc/pr84217.f90: New test. - -2018-02-07 Richard Biener - - PR tree-optimization/84204 - * gcc.dg/graphite/pr84204.c: New testcase. - - PR tree-optimization/84205 - * gcc.dg/graphite/pr84205.c: New testcase. - - PR tree-optimization/84223 - * gfortran.dg/graphite/pr84223.f90: New testcase. - -2018-02-07 Paolo Carlini - - PR c++/71662 - * g++.dg/cpp0x/scoped_enum7.C: New. - -2018-02-07 Christophe Lyon - - PR tree-optimization/83008 - * gcc.dg/cse_recip.c: Add -fno-tree-slp-vectorize. - -2018-02-07 Jakub Jelinek - - PR tree-optimization/84235 - * gcc.c-torture/execute/ieee/pr84235.c: New test. - -2018-02-07 Rainer Orth - - PR testsuite/84243 - * c-c++-common/fcf-protection-6.c: Only pass -mshstk on x86 - targets. - * c-c++-common/fcf-protection-7.c: Likewise for -mibt. - -2018-02-06 Jakub Jelinek - - PR target/84146 - * gcc.target/i386/pr84146.c: New test. - -2018-02-06 Michael Collison - - * gcc.target/arm/pr7676.c: New testcase for incorrect splitting. - -2018-02-06 Bill Schmidt - - * gcc.target/powerpc/safe-indirect-jump-1.c: Detect deprecation - warning for -mno-speculate-indirect-jumps. - * gcc.target/powerpc/safe-indirect-jump-2.c: Likewise. - * gcc.target/powerpc/safe-indirect-jump-3.c: Likewise. - * gcc.target/powerpc/safe-indirect-jump-4.c: Likewise. - * gcc.target/powerpc/safe-indirect-jump-5.c: Likewise. - * gcc.target/powerpc/safe-indirect-jump-6.c: Likewise. - * gcc.target/powerpc/safe-indirect-jump-7.c: Likewise. - -2018-02-06 Igor Tsimbalist - - PR target/84145 - * c-c++-common/fcf-protection-1.c: Change a compared message. - * c-c++-common/fcf-protection-2.c: Likewise. - * c-c++-common/fcf-protection-3.c: Likewise. - * c-c++-common/fcf-protection-5.c: Likewise. - * c-c++-common/fcf-protection-6.c: New test. - * c-c++-common/fcf-protection-7.c: Likewise. - -2018-02-06 Marek Polacek - - PR tree-optimization/84228 - * c-c++-common/Wstringop-truncation-3.c: New test. - -2018-02-06 Tamar Christina - - PR target/82641 - * gcc.target/arm/pragma_arch_switch_2.c: New. - -2018-02-06 Rainer Orth - - PR target/79975 - * gcc.dg/rtl/x86_64/final.c: Add -fdwarf2-cfi-asm to dg-options. - -2018-02-05 Martin Sebor - - PR tree-optimization/83369 - * gcc.dg/Wnonnull.c: New test. - -2018-02-05 Richard Sandiford - - * lib/lto.exp (lto_handle_diagnostics): Remove messages_by_file - argument and use dg-messages-by-file instead. Expect it to be - an array rather than a dict. - (lto-link-and-maybe-run): Remove messages_by_file argument and - use an upvar for dg-messages-by-file. Update call to - lto_handle_diagnostics. - (lt-get-options): Treat dg-messages-by-file as an array - rather than a dict. - (lto-get-options-main): Likewise. Set the entry rather than appending. - (lto-execute): Treat dg-messages-by-file as an array rather than - a dict. Update call to lto-link-and-maybe-run. - -2018-02-05 Paolo Carlini - - PR c++/82782 - * g++.dg/cpp1z/inline-var4.C: New. - -2018-02-05 Martin Liska - - * c-c++-common/asan/pointer-compare-1.c: Adjust ASAN_OPTIONS - options. - * c-c++-common/asan/pointer-compare-2.c: Likewise. - * c-c++-common/asan/pointer-subtract-1.c: Likewise. - * c-c++-common/asan/pointer-subtract-2.c: Likewise. - * c-c++-common/asan/pointer-subtract-3.c: Likewise. - * c-c++-common/asan/pointer-subtract-4.c: Likewise. - * c-c++-common/asan/pointer-compare-3.c: New test. - -2018-02-05 Richard Sandiford - - * gcc.target/aarch64/sve/vcond_4.c: Remove XFAILs. - * gcc.target/aarch64/sve/vcond_5.c: Likewise. - -2018-02-05 Olga Makhotina - - * gcc.target/i386/avx512dq-vrangesd-1.c (_mm_mask_range_sd, - _mm_maskz_range_sd, _mm_mask_range_round_sd, - _mm_maskz_range_round_sd): Test new intrinsics. - * gcc.target/i386/avx512dq-vrangesd-2.c (_mm_range_sd, - _mm_mask_range_sd, _mm_maskz_range_sd, _mm_range_round_sd, - _mm_mask_range_round_sd, _mm_maskz_range_round_sd): Test new intrinsics. - * gcc.target/i386/avx512dq-vrangess-1.c (_mm_mask_range_ss, - _mm_maskz_range_ss, _mm_mask_range_round_ss, - _mm_maskz_range_round_ss): Test new intrinsics. - * gcc.target/i386/avx512dq-vrangess-2.c (_mm_range_ss, - _mm_mask_range_ss, _mm_maskz_range_ss, _mm_range_round_ss, - _mm_mask_range_round_ss, _mm_maskz_range_round_ss): Test new intrinsics. - * gcc.target/i386/avx-1.c (__builtin_ia32_rangesd128_round, - __builtin_ia32_rangess128_round): Remove builtins. - (__builtin_ia32_rangesd128_mask_round, - __builtin_ia32_rangess128_mask_round): Test new builtins. - * gcc.target/i386/sse-13.c: Ditto. - * gcc.target/i386/sse-23.c: Ditto. - -2018-02-04 Jan Hubicka - - PR middle-end/79966 - * gfortran.dg/pr79966.f90: New testcase - -2018-02-04 Dominique d'Humieres - - PR fortran/84094 - * gfortran.dg/associate_23.f90: Fix invalid code. - * gfortran.dg/intrinsic_actual_4.f90: Likewise. - * gfortran.dg/matmul_3.f90: Likewise. - * gfortran.dg/transfer_array_intrinsic_2.f90: Likewise. - -2018-02-04 Paul Thomas - - PR fortran/84115 - * gfortran.dg/associate_34.f90: New test. - * gfortran.dg/associate_35.f90: New test. - -2018-02-03 Paul Thomas - - PR fortran/84141 - PR fortran/84155 - * gfortran.dg/pr84155.f90: New test. - -2017-02-02 Uros Bizjak - - * gfortran.dg/dec_parameter_1.f (sub1): Remove statement with no effect. - * gfortran.dg/dec_parameter_2.f90 (sub1): Ditto. - -2018-02-02 Will Schmidt - - * gcc.target/powerpc/vec-cmpne-long.c: Add p8vector_hw require to - dg-do run stanza. - -2018-02-02 Will Schmidt - - * gcc.target/powerpc/fold-vec-abs-int.p9.c: Add powerpc_p9vector_ok - requirement. - * gcc.target/powerpc/fold-vec-abs-int-fwrapv.p9.c: Same. - * gcc.target/powerpc/fold-vec-cmp-char.p9.c: Same. - * gcc.target/powerpc/fold-vec-neg-int.p9.c: Same. - -2018-02-02 Georg-Johann Lay - - PR testsuite/52641 - * gcc.c-torture/execute/pr83362.c: Make work for int16. - * gcc.dg/Wsign-conversion.c: Dito. - * gcc.dg/attr-alloc_size-4.c: Dito. - * gcc.dg/pr81020.c: Dito. - * gcc.dg/pr81192.c: Dito. - * gcc.dg/pr83463.c (dg-options): Add -Wno-pointer-to-int-cast. - * gcc.dg/attr-alloc_size-11.c: Also special-case avr. - * gcc.dg/pr83844.c: Restrict to int32plus. - * gcc.dg/attr-alloc_size-3.c: Restrict to size32plus. - * gcc.dg/tree-ssa/ldist-25.c: Dito. - * gcc.dg/tree-ssa/ldist-27.c: Dito. - * gcc.dg/tree-ssa/ldist-28.c: Dito. - * gcc.dg/tree-ssa/ldist-29.c: Dito. - * gcc.dg/tree-ssa/ldist-30.c: Dito. - * gcc.dg/tree-ssa/ldist-31.c: Dito. - * gcc.dg/tree-ssa/ldist-32.c: Dito. - * gcc.dg/tree-ssa/ldist-33.c: Dito. - * gcc.dg/tree-ssa/ldist-34.c: Dito. - * gcc.dg/tree-ssa/ldist-35.c: Dito. - * gcc.dg/tree-ssa/ldist-36.c: Dito. - -2018-02-02 Julia Koval - - * gcc.target/i386/funcspec-56.inc: Handle new march. - * g++.dg/ext/mv16.C: Ditto. - -2018-02-02 Georg-Johann Lay - - * lib/target-supports.exp - (check_effective_target_keeps_null_pointer_checks): No more - special-case avr. - * gcc.dg/tree-ssa/pr21086.c (dg-final): Special-case avr. - * gcc.dg/ifcvt-4.c: Skip avr. - * gcc.dg/pr53037-1.c: Dito. - * gcc.dg/pr53037-2.c: Dito. - * gcc.dg/pr53037-3.c: Dito. - * gcc.dg/pr63387-2.c: Dito. - * gcc.dg/pr63387.c: Dito. - * gcc.dg/sancov/cmp0.c: Dito. - * gcc.dg/tree-ssa/loop-interchange-1.c: Dito. - * gcc.dg/tree-ssa/loop-interchange-10.c: Dito. - * gcc.dg/tree-ssa/loop-interchange-11.c: Dito. - * gcc.dg/tree-ssa/loop-interchange-1b.c: Dito. - * gcc.dg/tree-ssa/loop-interchange-2.c: Dito. - * gcc.dg/tree-ssa/loop-interchange-3.c: Dito. - * gcc.dg/tree-ssa/loop-interchange-4.c: Dito. - * gcc.dg/tree-ssa/loop-interchange-5.c: Dito. - * gcc.dg/tree-ssa/loop-interchange-6.c: Dito. - * gcc.dg/tree-ssa/loop-interchange-7.c: Dito. - * gcc.dg/tree-ssa/loop-interchange-8.c: Dito. - * gcc.dg/tree-ssa/loop-interchange-9.c: Dito. - * gcc.dg/tree-ssa/pr82059.c: Dito. - * gcc.c-torture/execute/pr70460.c: Dito. - -2018-02-02 Georg-Johann Lay - - PR testsuite/52641 - * gcc.c-torture/execute/pr81913.c: Use types that also work for int16. - * gcc.c-torture/execute/20180112-1.c: Dito. - * gcc.c-torture/execute/pr81503.c: Dito. - * gcc.dg/store_merging_12.c: Dito. - * gcc.dg/tree-ssa/loop-niter-1.c: Dito. - * gcc.dg/tree-ssa/loop-niter-2.c: Dito. - * gcc.dg/tree-ssa/pr80898.c: Dito. - * gcc.dg/tree-ssa/pr82363.c: Dito. - * gcc.dg/utf16-4.c: Also allow "short unsigned int" in dg-warning. - * gcc.dg/tree-ssa/pr81346-5.c: Special-case int16. - * gcc.dg/tree-ssa/ssa-sink-11.c: Dito. - * gcc.dg/tree-ssa/ssa-sink-12.c: Dito. - * gcc.dg/torture/pr81814.c: Restrict to int32plus. - * gcc.dg/tree-ssa/pr80803.c: Dito. - * gcc.dg/tree-ssa/pr80898-2.c: Dito. - * gcc.dg/tree-ssa/pr81346-4.c: Dito. - * gcc.dg/tree-ssa/vrp114.c: Dito. - * gcc.dg/tree-ssa/pr82574.c: Restrict to size32plus. - * gcc.dg/tree-ssa/ssa-dom-thread-13.c: Dito. - * gcc.dg/tree-ssa/ssa-sink-15.c: Dito. - -2018-02-02 Igor Tsimbalist - - PR target/84066 - * gcc.target/i386/cet-sjlj-6a.c: New test. - * gcc.target/i386/cet-sjlj-6b.c: Likewise. - -2018-02-01 Marek Polacek - - PR c++/84125 - * g++.dg/cpp1y/lambda-generic-84125.C: New test. - -2018-01-30 Jeff Law - - PR target/84128 - * gcc.target/i386/pr84128.c: New test. - -2018-02-01 Georg-Johann Lay - - * gcc.dg/tree-ssa/vrp111.c (dg-options): Add - -fdelete-null-pointer-checks. - -2018-02-01 Paolo Carlini - - PR c++/83796 - * g++.dg/cpp0x/abstract-default1.C: New. - -2018-02-01 Richard Sandiford - - PR tree-optimization/81635 - * gcc.dg/vect/bb-slp-pr81635-1.c: New test. - * gcc.dg/vect/bb-slp-pr81635-2.c: Likewise. - -2018-02-01 Richard Sandiford - - PR target/83370 - * gcc.target/aarch64/pr83370.c: New. - -2018-02-01 Richard Biener - - * gcc.dg/graphite/pr35356-1.c: Adjust. - -2018-02-01 Richard Sandiford - - PR testsuite/83846 - * gcc.target/aarch64/sve/aarch64-sve.exp: Only do *_run tests - for ILP32. - * gcc.target/aarch64/sve/clastb_2_run.c (main): Use TYPE instead - of hard-coding the choice. - * gcc.target/aarch64/sve/clastb_4_run.c (main): Likewise. - * gcc.target/aarch64/sve/clastb_5_run.c (main): Likewise. - * gcc.target/aarch64/sve/clastb_3_run.c (main): Likewise. Generalize - memset call. - * gcc.target/aarch64/sve/const_pred_1.C: Include stdint.h and use - stdint.h types. - * gcc.target/aarch64/sve/const_pred_2.C: Likewise. - * gcc.target/aarch64/sve/const_pred_3.C: Likewise. - * gcc.target/aarch64/sve/const_pred_4.C: Likewise. - * gcc.target/aarch64/sve/load_const_offset_2.c: Likewise. - * gcc.target/aarch64/sve/logical_1.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_load_1.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_load_2.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_load_3.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_load_4.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_load_5.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_load_6.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_load_7.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_load_8.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_store_1.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_store_2.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_store_3.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_store_4.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_1.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_2.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_2_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_3.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_3_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_4.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_4_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_7.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_8.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_8_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_9.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_9_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_10.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_10_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_11.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_11_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_12.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_12_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_13.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_13_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_14.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_18.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_19.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_20.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_21.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_22.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_23.c: Likewise. - * gcc.target/aarch64/sve/popcount_1.c (popcount_64): Use - __builtin_popcountll rather than __builtin_popcountl. - -2018-02-01 Richard Sandiford - - * gcc.target/aarch64/sve/slp_2.c: Expect LD1RQ to be used instead - of LD1R[HWD] for multi-element constants on big-endian targets. - * gcc.target/aarch64/sve/slp_3.c: Likewise. - * gcc.target/aarch64/sve/slp_4.c: Likewise. - -2018-02-01 Richard Sandiford - - * gcc.target/aarch64/sve/slp_2.c: Expect LD1RQD rather than LD1RQB. - * gcc.target/aarch64/sve/slp_3.c: Expect LD1RQW rather than LD1RQB. - * gcc.target/aarch64/sve/slp_4.c: Expect LD1RQH rather than LD1RQB. - -2018-02-01 Jakub Jelinek - - PR tree-optimization/81661 - PR tree-optimization/84117 - * gcc.dg/pr81661.c: New test. - * gfortran.dg/pr84117.f90: New test. - -2018-02-01 Janne Blomqvist - - PR fortran/83705 - * gfortran.dg/repeat_7.f90: Catch warning message. - -2018-01-31 Ian Lance Taylor - - * go.go-torture/execute/printnil.go: New test. - -2018-01-31 Rainer Orth - - * lib/target-supports.exp (check_effective_target_comdat_group): - Allow for Solaris as comdat syntax. - - * g++.dg/debug/dwarf2/nested-4.C: Xfail scan-assembler-times on - Solaris with comdat_group support and as. - -2018-01-31 Marek Polacek - - PR c/81779 - * gcc.dg/pr81779.c: New test. - -2018-01-31 Jakub Jelinek - - PR fortran/84116 - * gfortran.dg/gomp/pr84116.f90: New test. - - PR c++/83993 - * g++.dg/init/pr83993-2.C: New test. - - PR c++/83993 - * g++.dg/init/pr83993-1.C: New test. - * g++.dg/cpp0x/pr83993.C: New test. - -2018-01-31 Paul Thomas - - PR fortran/84088 - * gfortran.dg/pr84088.f90: New test. - -2018-01-31 Vladimir Makarov - - PR target/82444 - * gcc.target/i386/pr82444.c: New. - -2018-01-31 Will Schmidt - - * gcc.target/powerpc/altivec-13.c: Remove VSX-requiring built-ins. - * gcc.target/powerpc/vsx-13.c: New. - -2018-01-31 Paolo Carlini - - PR c++/84092 - * g++.dg/cpp1y/var-templ57.C: New. - -2018-01-31 Marek Polacek - - PR c++/84138 - * g++.dg/diagnostic/pr84138.C: New test. - -2018-01-31 Janne Blomqvist - - PR fortran/78534 - * gfortran.dg/allocate_deferred_char_scalar_1.f03: Prune - -Wstringop-overflow warnings due to spurious warning with -O1. - * gfortran.dg/char_cast_1.f90: Update dump scan pattern. - * gfortran.dg/transfer_intrinsic_1.f90: Likewise. - -2018-01-31 Richard Biener - - PR tree-optimization/84132 - * g++.dg/torture/pr84132.C: New testcase. - -2018-01-31 Jan Hubicka - - * g++.dg/torture/pr81360.C: Drop unintended -O2 from dg-options and - dg-final scan. - -2018-01-31 Julia Koval - - PR target/83618 - * gcc.target/i386/rdpid.c: Remove "eax". - -2018-01-31 Kyrylo Tkachov - - PR tree-optimization/64946 - * gcc.target/aarch64/vect-abs-compile.c: XFAIL byte and half-word - scan-assembler checks. - -2018-01-31 Eric Botcazou - - * gcc.c-torture/execute/20180131-1.c: New test. - -2018-01-31 Claudiu Zissulescu - - * gcc.target/arc/taux-1.c: New test. - * gcc.target/arc/taux-2.c: Likewise. - -2018-01-31 Claudiu Zissulescu - - * gcc.target/arc/uncached.c: New test. - -2018-01-31 Rainer Orth - - PR lto/83954 - * gnat.dg/lto20.adb: Remove dg-excess-errors. - -2018-01-31 Jakub Jelinek - - PR preprocessor/69869 - * gcc.dg/cpp/trad/pr69869.c: New test. - - PR c/84100 - * gcc.dg/pr84100.c: New test. - -2018-01-30 Jeff Law - - PR target/84064 - * gcc.target/i386/pr84064: New test. - -2018-01-30 Thomas Koenig - - PR fortran/84134 - * gfortran.dg/data_implied_do_2.f90: New test. - -2018-01-30 Janus Weil - - * gfortran.dg/pr68318_1.f90: Add closing bracket in dejagnu directive. - -2018-01-30 Thomas Koenig - - PR fortran/84133 - * gfortran.dg/inline_matmul_21.f90: New test case. - -2018-01-30 Rainer Orth - - * g++.dg/torture/pr81360.C: Add -fdump-ipa-icf to dg-options. - -2018-01-30 Vladimir Makarov - - PR target/84112 - * gcc.target/powerpc/pr84112.c: New. - -2018-01-30 Jakub Jelinek - - PR rtl-optimization/83986 - * gcc.dg/pr83986.c: New test. - -2018-01-30 Bill Seurer - - PR 58684 - * gcc.dg/torture/inf-compare-1.c: Add xfail. - * gcc.dg/torture/inf-compare-2.c: Add xfail. - * gcc.dg/torture/inf-compare-3.c: Add xfail. - * gcc.dg/torture/inf-compare-4.c: Add xfail. - -2018-01-30 Jakub Jelinek - - PR tree-optimization/84111 - * gcc.c-torture/compile/pr84111.c: New test. - -2018-01-30 Jan Hubicka - - PR ipa/83179 - * gcc.dg/ipa/inline-2.c: Fix template. - * gcc.dg/ipa/inline-3.c: Fix template. - -2018-01-30 Jan Hubicka - - PR ipa/81360 - * g++.dg/torture/pr81360.C: New testcase. - -2018-01-30 Jan Hubicka - - PR lto/83954 - * gcc.dg/lto/pr83954.h: New testcase. - * gcc.dg/lto/pr83954_0.c: New testcase. - * gcc.dg/lto/pr83954_1.c: New testcase. - -2018-01-30 Rainer Orth - - PR bootstrap/84017 - * gcc.dg/debug/dwarf2/prod-options.c: Add -fno-merge-debug-strings - to dg-options. - Simplify DW_AT_producer scan. - -2018-01-30 Kyrylo Tkachov - - * gcc.dg/tree-ssa/ssa-dom-cse-2.c: XFAIL on !arm_neon arm targets. - -2018-01-30 Kirill Yukhin - - PR target/83828 - * gcc.target/i386/avx512bitalg-vpopcntb-1.c: Fix test. - * gcc.target/i386/avx512bitalg-vpopcntw-1.c: Ditto. - * gcc.target/i386/avx512bitalgvl-vpopcntb-1.c: Ditto. - * gcc.target/i386/avx512bitalgvl-vpopcntw-1.c: Ditto. - -2018-01-29 Jeff Law - - PR testsuite/81010 - * gcc.target/powerpc/pr56605.c: Update various dg- directives to - better match other tests which require vsx. Verify the zero - extension is part of the test in the combiner dump. - -2018-01-29 Marek Polacek - - PR c/83966 - * gcc.dg/format/Wsuggest-attribute-1.c: New test. - - PR c++/83996 - * g++.dg/ext/pr83996.C: New test. - -2018-01-29 Richard Biener - - PR tree-optimization/84057 - * gcc.dg/graphite/pr84057.c: New testcase. - -2018-01-29 Thomas Koenig - - PR fortran/84073 - * gfortran.dg/bind_c_usage_31.f90: New test. - -2018-01-27 Paolo Carlini - - PR c++/83924 - * g++.dg/warn/Wduplicated-branches5.C: New. - -2018-01-26 Sebastian Perta - - * gcc.target/rl78/test_addsi3_internal.c: New test. - -2018-01-26 Segher Boessenkool - - * gcc.target/powerpc/safe-indirect-jump-1.c: Build on all targets. - Make expected output depend on whether we expect sibcalls or not. - * gcc.target/powerpc/safe-indirect-jump-8.c: Delete (merged into - safe-indirect-jump-1.c). - -2018-01-26 Damian Rouson - Alessandro Fanfarillo - Soren Rasmussen - - Fortran 2018 teams tests. - - * gfortran.dg/team_number_1.f90: new test for team_number. - * gfortran.dg/team_change_1.f90: new test for change team. - * gfortran.dg/team_end_1.f90: new test for end team. - * gfortran.dg/team_form_1.f90: new test for form team. - -2018-01-26 Steven G. Kargl - - PR fortran/83998 - * gfortran.dg/dot_product_4.f90 - -2018-01-26 Martin Sebor - - PR tree-optimization/83896 - * gcc.dg/strlenopt-43.c: New. - -2018-01-26 Will Schmidt - - * gcc.target/powerpc/fold-vec-abs-int.c: Remove scan-assembler stanzas. - * gcc.target/powerpc/fold-vec-abs-int-fwrap.c: Same. - * gcc.target/powerpc/fold-vec-abs-int.p7.c: New. - * gcc.target/powerpc/fold-vec-abs-int.p8.c: New. - * gcc.target/powerpc/fold-vec-abs-int.p9.c: New. - * gcc.target/powerpc/fold-vec-abs-int-fwrapv.p7.c: New. - * gcc.target/powerpc/fold-vec-abs-int-fwrapv.p8.c: New. - * gcc.target/powerpc/fold-vec-abs-int-fwrapv.p9.c: New. - * gcc.target/powerpc/fold-vec-abs-longlong.c: Remove scan-assembler - stanzas. - * gcc.target/powerpc/fold-vec-abs-longlong-fwrap.c: Same. - * gcc.target/powerpc/fold-vec-abs-longlong.p7.c: New. - * gcc.target/powerpc/fold-vec-abs-longlong.p8.c: New. - * gcc.target/powerpc/fold-vec-abs-longlong.p9.c: New. - * gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.p7.c: New. - * gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.p8.c: New. - * gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.p9.c: New. - * gcc.target/powerpc/fold-vec-abs-short.c: Add xxspltib to valid - instruction list. - * gcc.target/powerpc/fold-vec-abs-short-fwrapv.c: Same. - -2018-01-26 Will Schmidt - - * gcc.target/powerpc/fold-vec-cmp-int.c: Delete. - * gcc.target/powerpc/fold-vec-cmp-int.h: New. - * gcc.target/powerpc/fold-vec-cmp-int.p7.c: New. - * gcc.target/powerpc/fold-vec-cmp-int.p8.c: New. - * gcc.target/powerpc/fold-vec-cmp-int.p9.c: New. - * gcc.target/powerpc/fold-vec-cmp-short.c: Delete. - * gcc.target/powerpc/fold-vec-cmp-short.h: New. - * gcc.target/powerpc/fold-vec-cmp-short.p8.c: New. - * gcc.target/powerpc/fold-vec-cmp-short.p9.c: New. - * gcc.target/powerpc/fold-vec-cmp-char.c: Delete. - * gcc.target/powerpc/fold-vec-cmp-char.h: New. - * gcc.target/powerpc/fold-vec-cmp-char.p8.c: New. - * gcc.target/powerpc/fold-vec-cmp-char.p9.c: New. - -2018-01-26 Martin Liska - - * lib/target-supports.exp: Return a value, otherwise -Wreturn-type - warning is seen. - -2018-01-26 Will Schmidt - - * gcc.target/powerpc/fold-vec-neg-longlong.h: New. - * gcc.target/powerpc/fold-vec-neg-longlong.p8.c: New. - * gcc.target/powerpc/fold-vec-neg-longlong.p9.c: New. - * gcc.target/powerpc/fold-vec-neg-longlong.c: Delete. - * gcc.target/powerpc/fold-vec-neg-int.c: Remove scan-assembler stanzas. - * gcc.target/powerpc/fold-vec-neg-int.p7.c: New. - * gcc.target/powerpc/fold-vec-neg-int.p8.c: New. - * gcc.target/powerpc/fold-vec-neg-int.p9.c: New. - -2018-01-26 Richard Biener - - PR rtl-optimization/84003 - * g++.dg/torture/pr77745.C: Mark foo noinline to trigger - latent bug in DSE if NOINLINE is appropriately defined. - * g++.dg/torture/pr77745-2.C: New testcase including pr77745.C - and defining NOINLINE. - -2018-01-26 Kyrylo Tkachov - - * gcc.target/aarch64/advsimd-intrinsics/vld1x2.c: Make float64 - tests specific to aarch64. XFAIL test on arm. - -2018-01-26 Jakub Jelinek - - PR rtl-optimization/83985 - * gcc.dg/pr83985.c: New test. - - PR c/83989 - * c-c++-common/Wrestrict-3.c: New test. - -2018-01-26 Claudiu Zissulescu - - * gcc.target/arc/tdelegitimize_addr.c: New test. - -2018-01-26 Claudiu Zissulescu - - * gcc.target/arc/jli-1.c: New file. - * gcc.target/arc/jli-2.c: Likewise. - -2018-01-26 Szabolcs Nagy - - * gcc.target/aarch64/sve/peel_ind_1.c: Match (adrp|adr) in - scan-assembler. - * gcc.target/aarch64/sve/peel_ind_2.c: Likewise. - * gcc.target/aarch64/sve/peel_ind_3.c: Likewise. - -2018-01-26 Richard Biener - - PR tree-optimization/81082 - * gcc.dg/vect/pr81082.c: New testcase. - * gcc.dg/tree-ssa/loop-15.c: XFAIL the (int)((unsigned)n + -1U) * n + n - simplification to n * n. - -2018-01-26 Rainer Orth - - * gcc.target/i386/mcount_pic.c: Only xfail get_pc_thunk scan on - Solaris 10. - * gcc.target/i386/pr63620.c: Likewise. - -2018-01-26 Julia Koval - - * gcc.target/i386/avx512bitalg-vpshufbitqmb-1.c: Add - -mavx512f -mavx512bw. - * gcc.target/i386/avx512bitalgvl-vpshufbitqmb-1.c: Add -mavx512bw. - * gcc.target/i386/i386.exp: Fix types. - -2018-01-26 Alan Modra - - PR target/84033 - * gcc.target/powerpc/swaps-p8-46.c: New. - -2018-25-01 Paul Thomas - - PR fortran/37577 - * gfortran.dg/coarray_18.f90: Allow dimension 15 for F2008. - * gfortran.dg/coarray_lib_this_image_2.f90: Change 'array1' to - 'array01' in the tree dump comparison. - * gfortran.dg/coarray_lib_token_4.f90: Likewise. - * gfortran.dg/inline_sum_1.f90: Similar - allow two digits. - * gfortran.dg/rank_1.f90: Allow dimension 15 for F2008. - -2018-01-25 Jan Hubicka - - PR middle-end/83055 - * gcc.dg/torture/pr83055.c: New testcase. - -2018-01-25 Jakub Jelinek - - PR c++/84031 - * g++.dg/cpp1z/decomp36.C: New test. - - PR middle-end/83977 - * c-c++-common/gomp/pr83977-1.c: Add -w to dg-options. - -2018-01-25 Richard Sandiford - - * gcc.dg/vect/vect-reduc-or_1.c: Require whole_vector_shift for - the shift dump line. - * gcc.dg/vect/vect-reduc-or_2.c: Likewise. - -2018-01-24 Michael Meissner - - PR target/81550 - * gcc.target/powerpc/loop_align.c: Use unsigned long for the loop - index instead of int, which allows IVOPTs to properly optimize the - loop. - -2018-01-24 David Malcolm - - PR jit/82846 - * jit.dg/test-alignment.c (create_aligned_code): Fix return type - of "fn_type" typedef. - * jit.dg/test-alignment.cc (verify_aligned_code): Likewise. - -2018-01-24 Ian Lance Taylor - - * go.go-torture/execute/names-1.go: New test. - -2018-01-19 Jeff Law - - PR target/83994 - * gcc.target/i386/pr83994.c: New test. - -2018-01-24 Vladimir Makarov - - PR target/84014 - * gcc.target/powerpc/pr84014.c: New. - -2018-01-24 Jakub Jelinek - - PR middle-end/83977 - * c-c++-common/gomp/pr83977-1.c: New test. - * c-c++-common/gomp/pr83977-2.c: New test. - * c-c++-common/gomp/pr83977-3.c: New test. - * gfortran.dg/gomp/pr83977.f90: New test. - -2018-01-24 Richard Sandiford - - PR testsuite/83889 - * gcc.dg/vect/pr79920.c: Remove explicit dg-do run. - * gcc.dg/vect/pr80631-1.c: Likewise. - * gcc.dg/vect/pr80631-2.c: Likewise. - * gcc.dg/vect/pr81410.c: Likewise. - * gcc.dg/vect/pr81633.c: Likewise. - * gcc.dg/vect/pr81815.c: Likewise. - * gcc.dg/vect/pr82108.c: Likewise. - * gcc.dg/vect/pr83857.c: Likewise. - * gcc.dg/vect/vect-alias-check-8.c: Likewise. - * gcc.dg/vect/vect-alias-check-9.c: Likewise. - * gcc.dg/vect/vect-alias-check-10.c: Likewise. - * gcc.dg/vect/vect-alias-check-11.c: Likewise. - * gcc.dg/vect/vect-alias-check-12.c: Likewise. - * gcc.dg/vect/vect-reduc-11.c: Likewise. - * gcc.dg/vect/vect-tail-nomask-1.c: Likewise. - * gcc.dg/vect/vect-reduc-in-order-1.c: Remove dg-do run and use - dg-xfail-run-if instead. - * gcc.dg/vect/vect-reduc-in-order-2.c: Likewise. - * gcc.dg/vect/vect-reduc-in-order-3.c: Likewise. - * gcc.dg/vect/vect-reduc-in-order-4.c: Likewise. - * gcc.dg/vect/vect-reduc-or_1.c: Remove conditional dg-do run. - * gcc.dg/vect/vect-reduc-or_2.c: Likewise. - -2018-01-24 Richard Sandiford - - PR tree-optimization/83979 - * g++.dg/pr83979.c: New test. - -2018-01-24 Kyrylo Tkachov - - * gcc.dg/lto/20110201-1_0.c: Remove explicit -mfloat-abi=softfp - option. Add arm_neon_ok_no_float_abi check. - -2018-01-24 Richard Biener - - PR tree-optimization/83176 - * gcc.dg/graphite/pr83176.c: New testcase. - -2018-01-24 Richard Biener - - PR tree-optimization/82819 - * gcc.dg/graphite/pr82819.c: New testcase. - -2018-01-23 Paolo Carlini - - PR c++/83921 - * g++.dg/cpp1y/constexpr-83921-1.C: New. - * g++.dg/cpp1y/constexpr-83921-2.C: Likewise. - * g++.dg/cpp1y/constexpr-83921-3.C: Likewise. - * g++.dg/ext/stmtexpr20.C: Likewise. - * g++.dg/ext/stmtexpr21.C: Likewise. - -2018-01-23 David Malcolm - - PR c++/83974 - * g++.dg/warn/pr83974.C: New test case. - -2018-01-23 Jakub Jelinek - - PR sanitizer/83987 - * g++.dg/ubsan/pr83987.C: New test. - -2018-01-23 Paul Thomas - - PR fortran/83866 - * gfortran.dg/pdt_29.f03: New test. - -2018-01-23 Paul Thomas - - PR fortran/83898 - * gfortran.dg/associate_33.f03: New test. - -2018-01-23 Martin Liska - - PR lto/81440 - * gcc.dg/lto/pr81440.h: New test. - * gcc.dg/lto/pr81440_0.c: New test. - * gcc.dg/lto/pr81440_1.c: New test. - -2018-01-23 Nathan Sidwell - - PR c++/83988 - * g++.dg/template/pr83988.C: New. - -2018-01-23 Jakub Jelinek - - PR c++/82882 - PR c++/83978 - * g++.dg/cpp0x/pr82882.C: New test. - * g++.dg/cpp0x/pr83978.C: New test. - - PR c++/83958 - * g++.dg/cpp1z/decomp35.C: New test. - -2018-01-23 Nathan Sidwell - - * g++.dg/cpp0x/range-for10.C: Adjust. - * g++.dg/ext/forscope1.C: Adjust. - * g++.dg/ext/forscope2.C: Adjust. - * g++.dg/template/for1.C: Adjust. - -2018-01-23 David Malcolm - - PR tree-optimization/83510 - * gcc.c-torture/compile/pr83510.c: New test case. - -2018-01-23 Richard Sandiford - - PR testsuite/83888 - * lib/target-supports.exp (check_effective_target_vect_float): Say - that the result only holds when -funsafe-math-optimizations is on. - (check_effective_target_vect_float_strict): New procedure. - * gcc.dg/vect/no-fast-math-vect16.c: Use vect_float_strict instead - of vect_float. - * gcc.dg/vect/vect-reduc-6.c: Likewise. - -2018-01-23 Richard Sandiford - - PR tree-optimization/83965 - * gcc.dg/vect/pr83965.c: New test. - -2018-01-23 Richard Biener - - PR tree-optimization/83963 - * gfortran.dg/graphite/pr83963.f: New testcase. - * gcc.dg/graphite/pr83963-2.c: Likewise. - -2018-01-23 Jakub Jelinek - - PR c++/83918 - * g++.dg/cpp1z/pr83918.C: New test. - -2018-01-22 Jakub Jelinek - - PR tree-optimization/83957 - * gcc.dg/autopar/pr83957.c: New test. - - PR tree-optimization/83081 - * gcc.dg/predict-8.c: Adjust expected probability. - -2018-01-22 Michael Meissner - - PR target/83862 - * gcc.target/powerpc/pr83862.c: New test. - -2018-01-22 Carl Love - - * gcc.target/powerpc/powerpc.exp: Add torture tests for - builtins-4-runnable.c, builtins-6-runnable.c, - builtins-5-p9-runnable.c, builtins-6-p9-runnable.c. - * gcc.target/powerpc/builtins-6-runnable.c: New test file. - * gcc.target/powerpc/builtins-4-runnable.c: Add additional tests - for signed/unsigned 128-bit and long long int loads. - -2018-01-22 Marek Polacek - - PR c++/81933 - * g++.dg/cpp1y/constexpr-empty4.C: New test. - -2018-01-22 Will Schmidt - - * gcc.target/powerpc/fold-vec-abs-short-fwrap.c: Add xxspltib to - scan-asembler valid instructions list. - * gcc.target/powerpc/fold-vec-abs-short.c: Same. - * gcc.target/powerpc/fold-vec-shift-left-longlong.c: Clean up - power8-vector requirement and option. - * gcc.target/powerpc/fold-vec-shift-left-fwrapv.c: Same. - -2018-01-22 Janne Blomqvist - - PR 78534 - PR 83704 - * gfortran.dg/string_1.f90: Remove printing the length. - -2018-01-22 Richard Biener - - PR tree-optimization/83963 - * gcc.dg/graphite/pr83963.c: New testcase. - -2018-01-22 Sudakshina Das - - * gcc.c-torture/compile/pr82096.c: Add dg-skip-if and - dg-require-effective-target directives. - -2018-01-22 Kyrylo Tkachov - - * lib/target-supports.exp (check_effective_target_arm_softfloat): - New procedure. - * gcc.target/arm/copysign_softfloat_1.c: Allow running everywhere. - Adjust scan-assembler checks for soft-float. - -2018-01-21 Bill Schmidt - - PR target/83946 - * gcc.target/powerpc/safe-indirect-jump-8.c: Skip for AIX. - -2018-01-21 John David Anglin - - * gcc.dg/pr83621.c: Add -fno-common additional option on hppa*-&-hpux*. - * gcc.dg/pr83623.c: Likewise. - * gcc.dg/pr83666.c: Likewise. - -2018-01-21 Bill Schmidt - David Edelsohn - - PR target/83946 - * gcc.target/powerpc/safe-indirect-jump-1.c: Change expected - assembly output from "crset eq" to "crset 2". - * gcc.target/powerpc/safe-indirect-jump-2.c: Change expected - assembly output from . to $. - * gcc.target/powerpc/safe-indirect-jump-3.c: Likewise. - * gcc.target/powerpc/safe-indirect-jump-1.c: Change expected - assembly output from "crset eq" to "crset 2". - * gcc.target/powerpc/safe-indirect-jump-8.c: Change expected - assembly output from "crset eq" to "crset 2", and from . to $. - -2018-01-20 Steven G. Kargl - - PR fortran/83900 - * gfortran.dg/matmul_18.f90: New test. - -2018-01-20 Richard Sandiford - - PR tree-optimization/83940 - * gcc.dg/torture/pr83940.c: New test. - -2018-01-20 Jakub Jelinek - - PR middle-end/83945 - * gcc.dg/tls/pr83945.c: New test. - - PR target/83930 - * gcc.dg/pr83930.c: New test. - -2018-01-19 Steven G. Kargl - - PR fortran/83900 - * gfortran.dg/matmul_17.f90: New test. - -2018-01-19 Steven G. Kargl - - PR fortran/80768 - * gfortran.dg/num_images_1.f90: New test that tests fix in r250734. - -2018-01-19 Jakub Jelinek - - PR c++/81167 - * g++.dg/cpp0x/pr81167.C: New test. - - PR c++/83919 - * g++.dg/cpp0x/pr83919.C: New test. - -2018-01-19 Jeff Law - Jakub Jelinek - - * gcc.dg/stack-check-16.c: New test. - -2018-01-19 Cesar Philippidis - - PR target/83790 - * gcc.target/nvptx/indirect_call.c: New test. - -2018-01-19 Rainer Orth - - * g++.dg/torture/pr83619.C: Remove dg-message. - -2018-01-19 Martin Liska - - * gcc.dg/predict-1.c: Adjust expected probability. - * gcc.dg/predict-3.c: Likewise. - * gcc.dg/predict-5.c: Likewise. - * gcc.dg/predict-6.c: Likewise. - * gcc.dg/predict-9.c: Likewise. - -2018-01-19 Richard Sandiford - - PR tree-optimization/83922 - * gcc.dg/pr83922.c: New test. - -2018-01-19 Richard Sandiford - - PR tree-optimization/83914 - * gcc.dg/vect/pr83914.c: New test. - -2018-01-19 Kyrylo Tkachov - - * gcc.target/arm/negdi-1.c: Remove bogus assembler scan for negs. - * gcc.target/arm/negdi-2.c: Likewise. - * gcc.target/arm/thumb-16bit-ops.c: Replace scan for NEGS with RSBS. - -2018-01-19 Kyrylo Tkachov - - * gcc.target/arm/pr40956.c: Adjust scan-assembler pattern. - -2018-01-19 Kyrylo Tkachov - - * gcc.target/arm/pr79058.c: Add arm_arm_ok check and -marm to options. - -2018-01-18 John David Anglin - - * gcc.dg/torture/pr52451.c (main): Skip long double test on - hppa*-*-hpux*. - -2018-01-18 Jakub Jelinek - - PR ipa/83619 - PR testsuite/83934 - * g++.dg/torture/pr83619.C (e): Define before first use instead of - forward declaration. - -2018-01-18 Carl Love - - * gcc.target/powerpc/builtins-6.h (foo): Add missing closing bracket - to the function. - -2018-01-18 Paolo Carlini - - PR c++/81013 - * g++.dg/inherit/union3.C: New. - -2018-01-18 Christophe Lyon - - * gcc.dg/rtl/arm/stl-cond.c: Enable on arm*. - -2018-01-18 Jan Hubicka - - PR ipa/83619 - * g++.dg/torture/pr83619.C: New testcase. - -2018-01-18 Christophe Lyon - - * lib/target-supports.exp (check_effective_target_arm_arch_FUNC_ok): - Add function body to force error messages in some configurations. - -2018-01-18 Kyrylo Tkachov - - * gcc.target/arm/pr70278.c: Add effective target checks for armv4t - and arm_thumb1_ok. - -2018-01-18 Boris Kolpackov - - PR other/70268 - * c-c++-common/ffile-prefix-map.c: New test. - * c-c++-common/fmacro-prefix-map.c: New test. - * c-c++-common/cpp/ffile-prefix-map.c: New test. - * c-c++-common/cpp/fmacro-prefix-map.c: New test. - -2018-01-18 Martin Liska - - * gcc.target/i386/indirect-thunk-3.c: Remove duplicate options. - * gcc.target/i386/indirect-thunk-4.c: Likewise. - * gcc.target/i386/indirect-thunk-6.c: Likewise. - * gcc.target/i386/indirect-thunk-bnd-4.c: Likewise. - * gcc.target/i386/ret-thunk-10.c: Likewise. - * gcc.target/i386/ret-thunk-11.c: Likewise. - * gcc.target/i386/ret-thunk-12.c: Likewise. - * gcc.target/i386/ret-thunk-15.c: Likewise. - * gcc.target/i386/ret-thunk-9.c: Likewise. - -2018-01-18 Christophe Lyon - - * gcc.target/arm/xor-and.c: Fix dg-options and dg-add-options - order. - -2018-01-18 Nathan Sidwell - - PR c++/83160 - * g++.dg/cpp0x/pr83160.C: New. - -2018-01-18 Richard Biener - - PR tree-optimization/83887 - * gcc.dg/graphite/pr83887.c: New testcase. - * gfortran.dg/graphite/pr83887.f90: Likewise. - * gfortran.dg/graphite/pr83887.f: Likewise. - -2018-01-18 Kyrylo Tkachov - - PR target/65578 - * gcc.target/arm/builtin-bswap.x: New file. - * gcc.target/arm/builtin-bswap-1.c: Include the above. Add checks - and options for armv6t2. - * gcc.target/arm/builtin-bswap-2.c: Include the above. Add checks - and options for Thumb1. - * gcc.target/arm/builtin-bswap16.x: New file. - * gcc.target/arm/builtin-bswap16-1.c: Include the above. Add checks - and options for armv6t2. - * gcc.target/arm/builtin-bswap16-2.c: Include the above. Add checks - and options for Thumb1. - -2018-01-18 Christophe Lyon - - * gcc.target/arm/pr40887.c: Fix dg-options and dg-add-options - order. - -2018-01-18 Jakub Jelinek - - PR c/61240 - * gcc.dg/pr61240.c: New test. - -2018-01-17 Harald Anlauf - - PR fortran/83864 - * gfortran.dg/pr83864.f90: New test. - -2018-01-17 Jeff Law - - PR testsuite/83883 - * gcc.dg/tree-ssa/ssa-dse-26.c: Tighten expected output. - -2018-01-17 Bill Schmidt - - * gcc.target/powerpc/safe-indirect-jump-1.c: Remove endian - restriction, but still restrict to 64-bit. - * gcc.target/powerpc/safe-indirect-jump-7.c: New file. - * gcc.target/powerpc/safe-indirect-jump-8.c: New file. - -2018-01-17 Harald Anlauf - - PR fortran/83874 - * gfortran.dg/pr83874.f90: New test. - -2018-01-18 Jakub Jelinek - - PR c++/83824 - * g++.dg/cpp0x/pr83824.C: New test. - -2018-01-17 Michael Meissner - - * gcc.target/powerpc/gnuattr1.c: New test to make sure we set the - appropriate .gnu_attribute for the long double type, if we use the - long double type, but do not generate any calls. - * gcc.target/powerpc/gnuattr2.c: Likewise. - * gcc.target/powerpc/gnuattr3.c: Likewise. - -2018-01-17 Paolo Carlini - - PR c++/78344 - * g++.dg/cpp0x/alignas13.C: New. - -2018-01-17 Jakub Jelinek - - PR c++/83897 - * g++.dg/cpp0x/pr83897.C: New test. - -2018-01-17 Jan Hubicka - - PR ipa/83051 - * gcc.c-torture/compile/pr83051-2.c: New testcase. - -2018-01-17 Paolo Carlini - - PR c++/81054 - * g++.dg/cpp0x/constexpr-ice19.C: New. - -2018-01-17 Will Schmidt - - * gcc.target/powerpc/fold-vec-mergehl-char.c: New. - * gcc.target/powerpc/fold-vec-mergehl-double.c: New. - * gcc.target/powerpc/fold-vec-mergehl-float.c: New. - * gcc.target/powerpc/fold-vec-mergehl-int.c: New. - * gcc.target/powerpc/fold-vec-mergehl-longlong.c: New. - * gcc.target/powerpc/fold-vec-mergehl-pixel.c: New. - * gcc.target/powerpc/fold-vec-mergehl-short.c: New. - * gcc.target/powerpc/builtins-1-be-folded.c: New. - * gcc.target/powerpc/builtins-1-le-folded.c: New. - * gcc.target/powerpc/builtins-1.fold.h: New. - -2018-01-17 Will Schmidt - - * gcc.target/powerpc/builtins-1-be.c: Disable gimple-folding. - * gcc.target/powerpc/builtins-1-le.c: Disable gimple-folding. - -2018-01-17 Kyrylo Tkachov - - * gcc.target/arm/g2.c: Add -marm to dg-options. - * gcc.target/arm/scd42-2.c: Likewise. - -2018-01-17 Nathan Sidwell - - PR c++/83287 - * g++.dg/lookup/pr83287-2.C: New. - -2018-01-17 David Malcolm - - PR c++/83814 - PR c++/83902 - * g++.dg/wrappers/pr83814.C: New test case. - * g++.dg/wrappers/pr83902.C: New test case. - -2018-01-17 David Malcolm - - PR lto/83121 - * g++.dg/lto/pr83121_0.C: New test case. - * g++.dg/lto/pr83121_1.C: New test case. - * lib/lto.exp (lto_handle_diagnostics_for_file): New procedure, - adapted from DejaGnu's dg-test. - (lto_handle_diagnostics): New procedure. - (lto_prune_warns): Ignore informational notes. - (lto-link-and-maybe-run): Add "messages_by_file" param. - Call lto_handle_diagnostics. Avoid issuing "unresolved" for - "execute" when "link" fails if "execute" was not specified. - (lto-can-handle-directive): New procedure. - (lto-get-options-main): Call lto-can-handle-directive. Add a - dg-messages local, using it to set the caller's - dg-messages-by-file for the given source file. - (lto-get-options): Likewise. - (lto-execute): Add dg-messages-by-file local, and pass it to - lto-link-and-maybe-run. - -2018-01-17 Wilco Dijkstra - Richard Sandiford - - PR target/79041 - PR target/82964 - * gcc.target/aarch64/pr79041-2.c: Improve test, disable with fpic. - * gcc.target/aarch64/pr78733.c: Improve test, disable with fpic. - -2018-01-17 Kyrylo Tkachov - - * lib/target-supports.exp: Fix -march arguments in arm arch effective - target check autogenerator for armv8.1-a and armv8.2-a. - -2018-01-17 Carl Love - - * gcc.target/powerpc/builtins-6-p9-runnable.c: Add additional tests. - Add debug print statements. - * gcc.target/powerpc/builtins-5-p9-runnable.c: Add test to do - 16 byte vector load followed by a partial vector load. - -2018-01-17 David Malcolm - - PR c++/83799 - * g++.dg/wrappers/pr83799.C: New test case. - -2018-01-17 Nathan Sidwell - - PR c++/83739 - * g++.dg/cpp1y/pr83739.C: New. - -2018-01-17 Eric Botcazou - - * gcc.target/visium/overflow8.c: Pass -fno-if-conversion. - * gcc.target/visium/overflow16.c: Likewise. - * gcc.target/visium/overflow32.c: Likewise. - -2018-01-17 Eric Botcazou - - * gcc.dg/ipa/inlinehint-4.c: Also pass --param inline-unit-growth=20. - -2018-01-17 Kyrylo Tkachov - - * gcc.dg/rtl/arm/stl-cond.c: New test. - * gcc.target/arm/stl-cond.c: Delete. - -2018-01-17 Kyrylo Tkachov - - * gcc.target/arm/pr40887.c: Add armv5te effective target checks and - directives. - -2018-01-17 Jakub Jelinek - - PR tree-optimization/83843 - * gcc.dg/store_merging_18.c: Don't expect "Merging successful" on arm. - * gcc.dg/store_merging_19.c: New test. - -2018-01-17 Kyrylo Tkachov - - * gcc.target/arm/xor-and.c: Fix armv6 effective target checks - and options. - -2018-01-17 Jakub Jelinek - - PR rtl-optimization/83771 - * gcc.dg/pr83771.c: New test. - -2018-01-17 Eric Botcazou - - PR tree-optimization/81184 - * gcc.dg/pr21643.c: Adjust dg-final line for logical_op_short_circuit - targets. - * gcc.dg/tree-ssa/phi-opt-11.c: Likewise. - -2018-01-17 Eric Botcazou - - * c-c++-common/Wrestrict.c (test_strcpy_range): Revert latest change. - -2018-01-16 Sebastian Peryt - - PR target/83546 - * gcc.target/i386/pr83546.c: New test. - -2018-01-16 Eric Botcazou - - * c-c++-common/Warray-bounds-3.c (test_memmove_bounds): Fix mismatch. - -2018-01-16 Eric Botcazou - - * c-c++-common/Wrestrict.c (test_strcpy_range): Bump string size of one - test and add dg-warning for the -Wstringop-overflow warning. - -2018-01-16 Eric Botcazou - - * c-c++-common/Warray-bounds-4.c (test_strcpy_bounds_memarray_range): - XFAIL last test on SPARC and Visium. - -2018-01-16 Vladimir Makarov - - PR rtl-optimization/80481 - * g++.dg/pr80481.C: Exclude solaris. - -2018-01-16 Eric Botcazou - - * c-c++-common/patchable_function_entry-decl.c: Use 3 NOPs on Visium. - * c-c++-common/patchable_function_entry-default.c: 4 NOPs on Visium. - * c-c++-common/patchable_function_entry-definition.c: 2 NOPs on Visium. - -2018-01-16 Eric Botcazou - - * gcc.dg/tree-ssa/ldist-27.c: Skip on Visium. - * gcc.dg/tree-ssa/loop-interchange-1.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-1b.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-2.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-3.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-4.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-5.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-6.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-7.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-8.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-9.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-10.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-11.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-14.c: Likewise. - * gcc.dg/tree-ssa/loop-interchange-15.c: Likewise. - -2018-01-16 Eric Botcazou - - PR testsuite/77734 - * gcc.dg/plugin/must-tail-call-1.c: Pass -fdelayed-branch on SPARC. - -2018-01-16 Bill Schmidt - - * gcc.target/powerpc/safe-indirect-jump-1.c: New file. - * gcc.target/powerpc/safe-indirect-jump-2.c: New file. - * gcc.target/powerpc/safe-indirect-jump-3.c: New file. - * gcc.target/powerpc/safe-indirect-jump-4.c: New file. - * gcc.target/powerpc/safe-indirect-jump-5.c: New file. - * gcc.target/powerpc/safe-indirect-jump-6.c: New file. - -2018-01-16 Richard Sandiford - - PR tree-optimization/83857 - * gcc.dg/vect/pr83857.c: New test. - -2018-01-16 Richard Biener - - PR tree-optimization/83867 - * gcc.dg/vect/pr83867.c: New testcase. - -2018-01-16 Jakub Jelinek - - PR c/83844 - * gcc.dg/pr83844.c: New test. - -2018-01-16 Richard Sandiford - - * gcc.dg/torture/pr83847.c: New test. - -2018-01-16 Jakub Jelinek - - PR rtl-optimization/86620 - * gcc.dg/pr64935-2.c: Use --param=max-sched-ready-insns=1 - instead of --param=max-sched-ready-insns=0. - * gcc.target/i386/pr83620.c: New test. - * gcc.dg/pr83620.c: New test. - - PR tree-optimization/83843 - * gcc.dg/store_merging_18.c: New test. - - PR c++/83817 - * g++.dg/cpp1y/pr83817.C: New test. - - PR c++/83825 - * g++.dg/template/pr83825.C: New test. - -2018-01-16 Richard Biener - - * gcc.dg/graphite/pr83435.c: Restrict to target pthread. - -2018-01-16 Richard Biener - - PR testsuite/82132 - * gcc.dg/vect/vect-tail-nomask-1.c: Copy posix_memalign boiler-plate - from gcc.dg/torture/pr60092.c. - -2018-01-15 Martin Sebor - - PR c++/83588 - * g++.dg/ext/flexary28.C: New test. - -2018-01-15 Louis Krupp - - PR fortran/82257 - * gfortran.dg/unlimited_polymorphic_28.f90: New test. - -2018-01-15 Martin Sebor - - PR testsuite/83869 - * c-c++-common/attr-nonstring-3.c: Work around bug c++/74762. - -2018-01-15 Thomas Koenig - - PR fortran/54613 - * gfortran.dg/minmaxloc_9.f90: New test. - * gfortran.dg/minmaxloc_10.f90: New test. - * gfortran.dg/minmaxloc_11.f90: New test. - -2018-01-15 H.J. Lu - - PR target/83839 - * gcc.target/i386/indirect-thunk-1.c: Scan for "push" only on Linux. - * gcc.target/i386/indirect-thunk-2.c: Likewise. - * gcc.target/i386/indirect-thunk-3.c: Likewise. - * gcc.target/i386/indirect-thunk-4.c: Likewise. - * gcc.target/i386/indirect-thunk-7.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-1.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-2.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-5.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-6.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-7.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-1.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-2.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-3.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-4.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-7.c: Likewise. - * gcc.target/i386/indirect-thunk-register-1.c: Likewise. - * gcc.target/i386/indirect-thunk-register-3.c: Likewise. - * gcc.target/i386/indirect-thunk-register-4.c: Likewise. - * gcc.target/i386/ret-thunk-10.c: Likewise. - * gcc.target/i386/ret-thunk-11.c: Likewise. - * gcc.target/i386/ret-thunk-12.c: Likewise. - * gcc.target/i386/ret-thunk-13.c: Likewise. - * gcc.target/i386/ret-thunk-14.c: Likewise. - * gcc.target/i386/ret-thunk-15.c: Likewise. - * gcc.target/i386/ret-thunk-9.c: Don't check the - __x86_return_thunk label. Scan for "push" only for Linux. - -2018-01-15 Richard Sandiford - - PR testsuite/79920 - * gcc.dg/vect/pr79920.c: Restrict reduction test to vect_double - -2018-01-15 Kyrylo Tkachov - - PR target/83687 - * gcc.target/arm/neon-combine-sub-abs-into-vabd.c: Delete integer - tests. - * gcc.target/arm/pr83687.c: New test. - -2018-01-15 Georg-Johann Lay - - Adjust tests to AVR_TINY. - - * gcc.target/avr/progmem.h (pgm_read_char): Handle AVR_TINY. - * gcc.target/avr/pr52472.c: Add "! avr_tiny" target filter. - * gcc.target/avr/pr71627.c: Same. - * gcc.target/avr/torture/addr-space-1-0.c: Same. - * gcc.target/avr/torture/addr-space-1-1.c: Same. - * gcc.target/avr/torture/addr-space-1-x.c: Same. - * gcc.target/avr/torture/addr-space-2-0.c: Same. - * gcc.target/avr/torture/addr-space-2-1.c: Same. - * gcc.target/avr/torture/addr-space-2-x.c: Same. - * gcc.target/avr/torture/sat-hr-plus-minus.c: Same. - * gcc.target/avr/torture/sat-k-plus-minus.c: Same. - * gcc.target/avr/torture/sat-llk-plus-minus.c: Same. - * gcc.target/avr/torture/sat-r-plus-minus.c: Same. - * gcc.target/avr/torture/sat-uhr-plus-minus.c: Same. - * gcc.target/avr/torture/sat-uk-plus-minus.c: Same. - * gcc.target/avr/torture/sat-ullk-plus-minus.c: Same. - * gcc.target/avr/torture/sat-ur-plus-minus.c: Same. - * gcc.target/avr/torture/pr61055.c: Same. - * gcc.target/avr/torture/builtins-3-absfx.c: Only use __flash if - available. - * gcc.target/avr/torture/int24-mul.c: Same. - * gcc.target/avr/torture/pr51782-1.c: Same. - * gcc.target/avr/torture/pr61443.c: Same. - * gcc.target/avr/torture/builtins-2.c: Factor out addr-space stuff... - * gcc.target/avr/torture/builtins-2-flash.c: ...to this new test. - -2018-01-15 Georg-Johann Lay - - PR c/83801 - PR c/83729 - * gcc.target/avr/torture/pr83729.c: New test. - * gcc.target/avr/torture/pr83801.c: New test. - -2018-01-15 Jakub Jelinek - - PR middle-end/82694 - * gcc.dg/no-strict-overflow-7.c: Revert 2017-08-01 changes. - * gcc.dg/tree-ssa/pr81388-1.c: Likewise. - -2018-01-10 Martin Sebor - - PR other/83508 - * gcc.dg/Wstringop-overflow-2.c: New test. - -2018-01-14 Jerry DeLisle - - PR libgfortran/83811 - * gfortran.dg/fmt_e.f90: New test. - -2018-01-14 H.J. Lu - - * gcc.target/i386/indirect-thunk-10.c: New test. - * gcc.target/i386/indirect-thunk-8.c: Likewise. - * gcc.target/i386/indirect-thunk-9.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-10.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-11.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-9.c: Likewise. - * gcc.target/i386/ret-thunk-17.c: Likewise. - * gcc.target/i386/ret-thunk-18.c: Likewise. - * gcc.target/i386/ret-thunk-19.c: Likewise. - * gcc.target/i386/ret-thunk-20.c: Likewise. - * gcc.target/i386/ret-thunk-21.c: Likewise. - -2018-01-14 H.J. Lu - - * gcc.target/i386/indirect-thunk-register-4.c: New test. - -2018-01-14 H.J. Lu - - * gcc.target/i386/indirect-thunk-1.c (dg-options): Add - -mno-indirect-branch-register. - * gcc.target/i386/indirect-thunk-2.c: Likewise. - * gcc.target/i386/indirect-thunk-3.c: Likewise. - * gcc.target/i386/indirect-thunk-4.c: Likewise. - * gcc.target/i386/indirect-thunk-5.c: Likewise. - * gcc.target/i386/indirect-thunk-6.c: Likewise. - * gcc.target/i386/indirect-thunk-7.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-1.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-2.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-3.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-4.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-5.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-6.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-7.c: Likewise. - * gcc.target/i386/indirect-thunk-bnd-1.c: Likewise. - * gcc.target/i386/indirect-thunk-bnd-2.c: Likewise. - * gcc.target/i386/indirect-thunk-bnd-3.c: Likewise. - * gcc.target/i386/indirect-thunk-bnd-4.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-1.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-2.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-3.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-4.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-5.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-6.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-7.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-1.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-2.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-3.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-4.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-5.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-6.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-7.c: Likewise. - * gcc.target/i386/ret-thunk-10.c: Likewise. - * gcc.target/i386/ret-thunk-11.c: Likewise. - * gcc.target/i386/ret-thunk-12.c: Likewise. - * gcc.target/i386/ret-thunk-13.c: Likewise. - * gcc.target/i386/ret-thunk-14.c: Likewise. - * gcc.target/i386/ret-thunk-15.c: Likewise. - * gcc.target/i386/ret-thunk-9.c: Likewise. - * gcc.target/i386/indirect-thunk-register-1.c: New test. - * gcc.target/i386/indirect-thunk-register-2.c: Likewise. - * gcc.target/i386/indirect-thunk-register-3.c: Likewise. - -2018-01-14 H.J. Lu - - * gcc.target/i386/indirect-thunk-1.c (dg-options): Add - -mfunction-return=keep. - * gcc.target/i386/indirect-thunk-2.c: Likewise. - * gcc.target/i386/indirect-thunk-3.c: Likewise. - * gcc.target/i386/indirect-thunk-4.c: Likewise. - * gcc.target/i386/indirect-thunk-5.c: Likewise. - * gcc.target/i386/indirect-thunk-6.c: Likewise. - * gcc.target/i386/indirect-thunk-7.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-1.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-2.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-3.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-4.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-5.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-6.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-7.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-8.c: Likewise. - * gcc.target/i386/indirect-thunk-bnd-1.c: Likewise. - * gcc.target/i386/indirect-thunk-bnd-2.c: Likewise. - * gcc.target/i386/indirect-thunk-bnd-3.c: Likewise. - * gcc.target/i386/indirect-thunk-bnd-4.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-1.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-2.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-3.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-4.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-5.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-6.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-7.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-1.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-2.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-3.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-4.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-5.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-6.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-7.c: Likewise. - * gcc.target/i386/ret-thunk-1.c: New test. - * gcc.target/i386/ret-thunk-10.c: Likewise. - * gcc.target/i386/ret-thunk-11.c: Likewise. - * gcc.target/i386/ret-thunk-12.c: Likewise. - * gcc.target/i386/ret-thunk-13.c: Likewise. - * gcc.target/i386/ret-thunk-14.c: Likewise. - * gcc.target/i386/ret-thunk-15.c: Likewise. - * gcc.target/i386/ret-thunk-16.c: Likewise. - * gcc.target/i386/ret-thunk-2.c: Likewise. - * gcc.target/i386/ret-thunk-3.c: Likewise. - * gcc.target/i386/ret-thunk-4.c: Likewise. - * gcc.target/i386/ret-thunk-5.c: Likewise. - * gcc.target/i386/ret-thunk-6.c: Likewise. - * gcc.target/i386/ret-thunk-7.c: Likewise. - * gcc.target/i386/ret-thunk-8.c: Likewise. - * gcc.target/i386/ret-thunk-9.c: Likewise. - -2018-01-14 H.J. Lu - - * gcc.target/i386/indirect-thunk-1.c: New test. - * gcc.target/i386/indirect-thunk-2.c: Likewise. - * gcc.target/i386/indirect-thunk-3.c: Likewise. - * gcc.target/i386/indirect-thunk-4.c: Likewise. - * gcc.target/i386/indirect-thunk-5.c: Likewise. - * gcc.target/i386/indirect-thunk-6.c: Likewise. - * gcc.target/i386/indirect-thunk-7.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-1.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-2.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-3.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-4.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-5.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-6.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-7.c: Likewise. - * gcc.target/i386/indirect-thunk-attr-8.c: Likewise. - * gcc.target/i386/indirect-thunk-bnd-1.c: Likewise. - * gcc.target/i386/indirect-thunk-bnd-2.c: Likewise. - * gcc.target/i386/indirect-thunk-bnd-3.c: Likewise. - * gcc.target/i386/indirect-thunk-bnd-4.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-1.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-2.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-3.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-4.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-5.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-6.c: Likewise. - * gcc.target/i386/indirect-thunk-extern-7.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-1.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-2.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-3.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-4.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-5.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-6.c: Likewise. - * gcc.target/i386/indirect-thunk-inline-7.c: Likewise. - -2018-01-14 Jan Hubicka - - PR ipa/83051 - * gcc.c-torture/compile/pr83051.c: New testcase. - -2018-01-14 Prathamesh Kulkarni - - PR tree-optimization/83501 - * gcc.dg/strlenopt-39.c: Restrict to i?86 and x86_64-*-* targets. - -2018-01-10 Kelvin Nilsen - - * gcc.target/powerpc/pr48857.c: Modify dejagnu directives to look - for lvx and stvx instead of lxvd2x and stxvd2x and require - little-endian target. Add comments. - * gcc.target/powerpc/swaps-p8-28.c: Add functions for more - comprehensive testing. - * gcc.target/powerpc/swaps-p8-29.c: Likewise. - * gcc.target/powerpc/swaps-p8-30.c: Likewise. - * gcc.target/powerpc/swaps-p8-31.c: Likewise. - * gcc.target/powerpc/swaps-p8-32.c: Likewise. - * gcc.target/powerpc/swaps-p8-33.c: Likewise. - * gcc.target/powerpc/swaps-p8-34.c: Likewise. - * gcc.target/powerpc/swaps-p8-35.c: Likewise. - * gcc.target/powerpc/swaps-p8-36.c: Likewise. - * gcc.target/powerpc/swaps-p8-37.c: Likewise. - * gcc.target/powerpc/swaps-p8-38.c: Likewise. - * gcc.target/powerpc/swaps-p8-39.c: Likewise. - * gcc.target/powerpc/swaps-p8-40.c: Likewise. - * gcc.target/powerpc/swaps-p8-41.c: Likewise. - * gcc.target/powerpc/swaps-p8-42.c: Likewise. - * gcc.target/powerpc/swaps-p8-43.c: Likewise. - * gcc.target/powerpc/swaps-p8-44.c: Likewise. - * gcc.target/powerpc/swaps-p8-45.c: Likewise. - * gcc.target/powerpc/vec-extract-2.c: Add comment and remove - scan-assembler-not directives that forbid lvx and xxpermdi. - * gcc.target/powerpc/vec-extract-3.c: Likewise. - * gcc.target/powerpc/vec-extract-5.c: Likewise. - * gcc.target/powerpc/vec-extract-6.c: Likewise. - * gcc.target/powerpc/vec-extract-7.c: Likewise. - * gcc.target/powerpc/vec-extract-8.c: Likewise. - * gcc.target/powerpc/vec-extract-9.c: Likewise. - * gcc.target/powerpc/vsx-vector-6-le.c: Change - scan-assembler-times directives to reflect different numbers of - expected xxlnor, xxlor, xvcmpgtdp, and xxland instructions. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.dg/vect/bb-slp-cond-1.c: Expect loop vectorization rather - than SLP vectorization. - * gcc.dg/vect/vect-alias-check-10.c: New test. - * gcc.dg/vect/vect-alias-check-11.c: Likewise. - * gcc.dg/vect/vect-alias-check-12.c: Likewise. - * gcc.dg/vect/vect-alias-check-8.c: Likewise. - * gcc.dg/vect/vect-alias-check-9.c: Likewise. - * gcc.target/aarch64/sve/strided_load_8.c: Likewise. - * gcc.target/aarch64/sve/var_stride_1.c: Likewise. - * gcc.target/aarch64/sve/var_stride_1.h: Likewise. - * gcc.target/aarch64/sve/var_stride_1_run.c: Likewise. - * gcc.target/aarch64/sve/var_stride_2.c: Likewise. - * gcc.target/aarch64/sve/var_stride_2_run.c: Likewise. - * gcc.target/aarch64/sve/var_stride_3.c: Likewise. - * gcc.target/aarch64/sve/var_stride_3_run.c: Likewise. - * gcc.target/aarch64/sve/var_stride_4.c: Likewise. - * gcc.target/aarch64/sve/var_stride_4_run.c: Likewise. - * gcc.target/aarch64/sve/var_stride_5.c: Likewise. - * gcc.target/aarch64/sve/var_stride_5_run.c: Likewise. - * gcc.target/aarch64/sve/var_stride_6.c: Likewise. - * gcc.target/aarch64/sve/var_stride_6_run.c: Likewise. - * gcc.target/aarch64/sve/var_stride_7.c: Likewise. - * gcc.target/aarch64/sve/var_stride_7_run.c: Likewise. - * gcc.target/aarch64/sve/var_stride_8.c: Likewise. - * gcc.target/aarch64/sve/var_stride_8_run.c: Likewise. - * gfortran.dg/vect/vect-alias-check-1.F90: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * lib/target-supports.exp (check_effective_target_vect_scatter_store): - New proc. - * gcc.dg/vect/pr25413a.c: Expect both loops to be optimized on - targets with scatter stores. - * gcc.dg/vect/vect-71.c: Restrict XFAIL to targets without scatter - stores. - * gcc.target/aarch64/sve/mask_scatter_store_1.c: New test. - * gcc.target/aarch64/sve/mask_scatter_store_2.c: Likewise. - * gcc.target/aarch64/sve/scatter_store_1.c: Likewise. - * gcc.target/aarch64/sve/scatter_store_2.c: Likewise. - * gcc.target/aarch64/sve/scatter_store_3.c: Likewise. - * gcc.target/aarch64/sve/scatter_store_4.c: Likewise. - * gcc.target/aarch64/sve/scatter_store_5.c: Likewise. - * gcc.target/aarch64/sve/scatter_store_6.c: Likewise. - * gcc.target/aarch64/sve/scatter_store_7.c: Likewise. - * gcc.target/aarch64/sve/strided_store_1.c: Likewise. - * gcc.target/aarch64/sve/strided_store_2.c: Likewise. - * gcc.target/aarch64/sve/strided_store_3.c: Likewise. - * gcc.target/aarch64/sve/strided_store_4.c: Likewise. - * gcc.target/aarch64/sve/strided_store_5.c: Likewise. - * gcc.target/aarch64/sve/strided_store_6.c: Likewise. - * gcc.target/aarch64/sve/strided_store_7.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.target/aarch64/sve/reduc_strict_3.c: Expect FADDA to be used - for double_reduc1. - * gcc.target/aarch64/sve/strided_load_4.c: New test. - * gcc.target/aarch64/sve/strided_load_5.c: Likewise. - * gcc.target/aarch64/sve/strided_load_6.c: Likewise. - * gcc.target/aarch64/sve/strided_load_7.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.target/aarch64/sve/strided_load_1.c: New test. - * gcc.target/aarch64/sve/strided_load_2.c: Likewise. - * gcc.target/aarch64/sve/strided_load_3.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.target/aarch64/sve/gather_load_1.c: New test. - * gcc.target/aarch64/sve/gather_load_2.c: Likewise. - * gcc.target/aarch64/sve/gather_load_3.c: Likewise. - * gcc.target/aarch64/sve/gather_load_4.c: Likewise. - * gcc.target/aarch64/sve/gather_load_5.c: Likewise. - * gcc.target/aarch64/sve/gather_load_6.c: Likewise. - * gcc.target/aarch64/sve/gather_load_7.c: Likewise. - * gcc.target/aarch64/sve/mask_gather_load_1.c: Likewise. - * gcc.target/aarch64/sve/mask_gather_load_2.c: Likewise. - * gcc.target/aarch64/sve/mask_gather_load_3.c: Likewise. - * gcc.target/aarch64/sve/mask_gather_load_4.c: Likewise. - * gcc.target/aarch64/sve/mask_gather_load_5.c: Likewise. - * gcc.target/aarch64/sve/mask_gather_load_6.c: Likewise. - * gcc.target/aarch64/sve/mask_gather_load_7.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.dg/vect/no-fast-math-vect16.c: Expect the test to pass and - check for a message about using in-order reductions. - * gcc.dg/vect/pr79920.c: Expect both loops to be vectorized and - check for a message about using in-order reductions. - * gcc.dg/vect/trapv-vect-reduc-4.c: Expect all three loops to be - vectorized and check for a message about using in-order reductions. - Expect targets with variable-length vectors to fall back to the - fixed-length mininum. - * gcc.dg/vect/vect-reduc-6.c: Expect the loop to be vectorized and - check for a message about using in-order reductions. - * gcc.dg/vect/vect-reduc-in-order-1.c: New test. - * gcc.dg/vect/vect-reduc-in-order-2.c: Likewise. - * gcc.dg/vect/vect-reduc-in-order-3.c: Likewise. - * gcc.dg/vect/vect-reduc-in-order-4.c: Likewise. - * gcc.target/aarch64/sve/reduc_strict_1.c: New test. - * gcc.target/aarch64/sve/reduc_strict_1_run.c: Likewise. - * gcc.target/aarch64/sve/reduc_strict_2.c: Likewise. - * gcc.target/aarch64/sve/reduc_strict_2_run.c: Likewise. - * gcc.target/aarch64/sve/reduc_strict_3.c: Likewise. - * gcc.target/aarch64/sve/slp_13.c: Add floating-point types. - * gfortran.dg/vect/vect-8.f90: Expect 22 loops to be vectorized if - vect_fold_left_plus. - -2018-01-13 Richard Sandiford - - * gcc.target/aarch64/sve/spill_1.c: Also test that no predicates - are spilled. - * gcc.target/aarch64/sve/spill_2.c: New test. - * gcc.target/aarch64/sve/spill_3.c: Likewise. - * gcc.target/aarch64/sve/spill_4.c: Likewise. - * gcc.target/aarch64/sve/spill_5.c: Likewise. - * gcc.target/aarch64/sve/spill_6.c: Likewise. - * gcc.target/aarch64/sve/spill_7.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.target/aarch64/sve/struct_vect_18.c: Check the number - of branches. - * gcc.target/aarch64/sve/struct_vect_19.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_20.c: New test. - * gcc.target/aarch64/sve/struct_vect_20_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_21.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_21_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_22.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_22_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_23.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_23_run.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.target/aarch64/sve/struct_vect_18.c: New test. - * gcc.target/aarch64/sve/struct_vect_18_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_19.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_19_run.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * lib/target-supports.exp - (check_effective_target_vect_fold_extract_last): New proc. - * gcc.dg/vect/pr65947-1.c: Update dump messages. Add markup - for fold_extract_last. - * gcc.dg/vect/pr65947-2.c: Likewise. - * gcc.dg/vect/pr65947-3.c: Likewise. - * gcc.dg/vect/pr65947-4.c: Likewise. - * gcc.dg/vect/pr65947-5.c: Likewise. - * gcc.dg/vect/pr65947-6.c: Likewise. - * gcc.dg/vect/pr65947-9.c: Likewise. - * gcc.dg/vect/pr65947-10.c: Likewise. - * gcc.dg/vect/pr65947-12.c: Likewise. - * gcc.dg/vect/pr65947-14.c: Likewise. - * gcc.dg/vect/pr80631-1.c: Likewise. - * gcc.target/aarch64/sve/clastb_1.c: New test. - * gcc.target/aarch64/sve/clastb_1_run.c: Likewise. - * gcc.target/aarch64/sve/clastb_2.c: Likewise. - * gcc.target/aarch64/sve/clastb_2_run.c: Likewise. - * gcc.target/aarch64/sve/clastb_3.c: Likewise. - * gcc.target/aarch64/sve/clastb_3_run.c: Likewise. - * gcc.target/aarch64/sve/clastb_4.c: Likewise. - * gcc.target/aarch64/sve/clastb_4_run.c: Likewise. - * gcc.target/aarch64/sve/clastb_5.c: Likewise. - * gcc.target/aarch64/sve/clastb_5_run.c: Likewise. - * gcc.target/aarch64/sve/clastb_6.c: Likewise. - * gcc.target/aarch64/sve/clastb_6_run.c: Likewise. - * gcc.target/aarch64/sve/clastb_7.c: Likewise. - * gcc.target/aarch64/sve/clastb_7_run.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.target/aarch64/sve/live_1.c: New test. - * gcc.target/aarch64/sve/live_1_run.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.target/aarch64/sve/nopeel_1.c: New test. - * gcc.target/aarch64/sve/peel_ind_1.c: Likewise. - * gcc.target/aarch64/sve/peel_ind_1_run.c: Likewise. - * gcc.target/aarch64/sve/peel_ind_2.c: Likewise. - * gcc.target/aarch64/sve/peel_ind_2_run.c: Likewise. - * gcc.target/aarch64/sve/peel_ind_3.c: Likewise. - * gcc.target/aarch64/sve/peel_ind_3_run.c: Likewise. - * gcc.target/aarch64/sve/peel_ind_4.c: Likewise. - * gcc.target/aarch64/sve/peel_ind_4_run.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * lib/target-supports.exp (check_effective_target_vect_fully_masked): - New proc. - * gcc.dg/vect/slp-3.c: Expect all loops to be vectorized if - vect_fully_masked. - * gcc.target/aarch64/sve/loop_add_4.c: New test. - * gcc.target/aarch64/sve/loop_add_4_run.c: Likewise. - * gcc.target/aarch64/sve/loop_add_5.c: Likewise. - * gcc.target/aarch64/sve/loop_add_5_run.c: Likewise. - * gcc.target/aarch64/sve/miniloop_1.c: Likewise. - * gcc.target/aarch64/sve/miniloop_2.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.dg/tree-ssa/scev-9.c: Expected REFERENCE ADDRESS - instead of just ADDRESS. - * gcc.dg/tree-ssa/scev-10.c: Likewise. - * gcc.dg/tree-ssa/scev-11.c: Likewise. - * gcc.dg/tree-ssa/scev-12.c: Likewise. - * gcc.target/aarch64/sve/index_offset_1.c: New test. - * gcc.target/aarch64/sve/index_offset_1_run.c: Likewise. - * gcc.target/aarch64/sve/loop_add_2.c: Likewise. - * gcc.target/aarch64/sve/loop_add_3.c: Likewise. - * gcc.target/aarch64/sve/while_1.c: Check for indexed addressing modes. - * gcc.target/aarch64/sve/while_2.c: Likewise. - * gcc.target/aarch64/sve/while_3.c: Likewise. - * gcc.target/aarch64/sve/while_4.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.dg/vect/pr60482.c: Remove XFAIL for variable-length vectors. - * gcc.target/aarch64/sve/reduc_1.c: Expect the loop operations - to be predicated. - * gcc.target/aarch64/sve/slp_5.c: Check for a fully-masked loop. - * gcc.target/aarch64/sve/slp_7.c: Likewise. - * gcc.target/aarch64/sve/reduc_5.c: New test. - * gcc.target/aarch64/sve/slp_13.c: Likewise. - * gcc.target/aarch64/sve/slp_13_run.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.dg/tree-ssa/cunroll-10.c: Disable vectorization. - * gcc.dg/tree-ssa/peel1.c: Likewise. - * gcc.dg/vect/vect-load-lanes-peeling-1.c: Remove XFAIL for - variable-length vectors. - * gcc.target/aarch64/sve/vcond_6.c: XFAIL test for AND. - * gcc.target/aarch64/sve/vec_bool_cmp_1.c: Expect BIC instead of NOT. - * gcc.target/aarch64/sve/slp_1.c: Check for a fully-masked loop. - * gcc.target/aarch64/sve/slp_2.c: Likewise. - * gcc.target/aarch64/sve/slp_3.c: Likewise. - * gcc.target/aarch64/sve/slp_4.c: Likewise. - * gcc.target/aarch64/sve/slp_6.c: Likewise. - * gcc.target/aarch64/sve/slp_8.c: New test. - * gcc.target/aarch64/sve/slp_8_run.c: Likewise. - * gcc.target/aarch64/sve/slp_9.c: Likewise. - * gcc.target/aarch64/sve/slp_9_run.c: Likewise. - * gcc.target/aarch64/sve/slp_10.c: Likewise. - * gcc.target/aarch64/sve/slp_10_run.c: Likewise. - * gcc.target/aarch64/sve/slp_11.c: Likewise. - * gcc.target/aarch64/sve/slp_11_run.c: Likewise. - * gcc.target/aarch64/sve/slp_12.c: Likewise. - * gcc.target/aarch64/sve/slp_12_run.c: Likewise. - * gcc.target/aarch64/sve/ld1r_2.c: Likewise. - * gcc.target/aarch64/sve/ld1r_2_run.c: Likewise. - * gcc.target/aarch64/sve/while_1.c: Likewise. - * gcc.target/aarch64/sve/while_2.c: Likewise. - * gcc.target/aarch64/sve/while_3.c: Likewise. - * gcc.target/aarch64/sve/while_4.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * lib/target-supports.exp (check_effective_target_vect_logical_reduc): - New proc. - * gcc.dg/vect/vect-reduc-or_1.c: Also run for vect_logical_reduc - and add an associated scan-dump test. Prevent vectorization - of the first two loops. - * gcc.dg/vect/vect-reduc-or_2.c: Likewise. - * gcc.target/aarch64/sve/reduc_1.c: Add AND, IOR and XOR reductions. - * gcc.target/aarch64/sve/reduc_2.c: Likewise. - * gcc.target/aarch64/sve/reduc_1_run.c: Likewise. - (INIT_VECTOR): Tweak initial value so that some bits are always set. - * gcc.target/aarch64/sve/reduc_2_run.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.dg/vect/pr37027.c: Remove XFAIL for variable-length vectors. - * gcc.dg/vect/pr67790.c: Likewise. - * gcc.dg/vect/slp-reduc-1.c: Likewise. - * gcc.dg/vect/slp-reduc-2.c: Likewise. - * gcc.dg/vect/slp-reduc-3.c: Likewise. - * gcc.dg/vect/slp-reduc-5.c: Likewise. - * gcc.target/aarch64/sve/slp_5.c: New test. - * gcc.target/aarch64/sve/slp_5_run.c: Likewise. - * gcc.target/aarch64/sve/slp_6.c: Likewise. - * gcc.target/aarch64/sve/slp_6_run.c: Likewise. - * gcc.target/aarch64/sve/slp_7.c: Likewise. - * gcc.target/aarch64/sve/slp_7_run.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.dg/vect/no-scevccp-slp-30.c: Don't XFAIL for vect_variable_length - && vect_load_lanes - * gcc.dg/vect/slp-1.c: Likewise. - * gcc.dg/vect/slp-10.c: Likewise. - * gcc.dg/vect/slp-12b.c: Likewise. - * gcc.dg/vect/slp-12c.c: Likewise. - * gcc.dg/vect/slp-17.c: Likewise. - * gcc.dg/vect/slp-19b.c: Likewise. - * gcc.dg/vect/slp-20.c: Likewise. - * gcc.dg/vect/slp-21.c: Likewise. - * gcc.dg/vect/slp-22.c: Likewise. - * gcc.dg/vect/slp-23.c: Likewise. - * gcc.dg/vect/slp-24-big-array.c: Likewise. - * gcc.dg/vect/slp-24.c: Likewise. - * gcc.dg/vect/slp-28.c: Likewise. - * gcc.dg/vect/slp-39.c: Likewise. - * gcc.dg/vect/slp-6.c: Likewise. - * gcc.dg/vect/slp-7.c: Likewise. - * gcc.dg/vect/slp-cond-1.c: Likewise. - * gcc.dg/vect/slp-cond-2-big-array.c: Likewise. - * gcc.dg/vect/slp-cond-2.c: Likewise. - * gcc.dg/vect/slp-multitypes-1.c: Likewise. - * gcc.dg/vect/slp-multitypes-8.c: Likewise. - * gcc.dg/vect/slp-multitypes-9.c: Likewise. - * gcc.dg/vect/slp-multitypes-10.c: Likewise. - * gcc.dg/vect/slp-multitypes-12.c: Likewise. - * gcc.dg/vect/slp-perm-6.c: Likewise. - * gcc.dg/vect/slp-widen-mult-half.c: Likewise. - * gcc.dg/vect/vect-live-slp-1.c: Likewise. - * gcc.dg/vect/vect-live-slp-2.c: Likewise. - * gcc.dg/vect/pr33953.c: Don't XFAIL for vect_variable_length. - * gcc.dg/vect/slp-12a.c: Likewise. - * gcc.dg/vect/slp-14.c: Likewise. - * gcc.dg/vect/slp-15.c: Likewise. - * gcc.dg/vect/slp-multitypes-2.c: Likewise. - * gcc.dg/vect/slp-multitypes-4.c: Likewise. - * gcc.dg/vect/slp-multitypes-5.c: Likewise. - * gcc.target/aarch64/sve/slp_1.c: New test. - * gcc.target/aarch64/sve/slp_1_run.c: Likewise. - * gcc.target/aarch64/sve/slp_2.c: Likewise. - * gcc.target/aarch64/sve/slp_2_run.c: Likewise. - * gcc.target/aarch64/sve/slp_3.c: Likewise. - * gcc.target/aarch64/sve/slp_3_run.c: Likewise. - * gcc.target/aarch64/sve/slp_4.c: Likewise. - * gcc.target/aarch64/sve/slp_4_run.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.dg/vect/vect-ooo-group-1.c: New test. - * gcc.target/aarch64/sve/mask_struct_load_1.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_load_1_run.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_load_2.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_load_2_run.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_load_3.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_load_3_run.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_load_4.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_load_5.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_load_6.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_load_7.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_load_8.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_store_1.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_store_1_run.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_store_2.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_store_2_run.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_store_3.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_store_3_run.c: Likewise. - * gcc.target/aarch64/sve/mask_struct_store_4.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.target/aarch64/sve/struct_move_1.c: New test. - * gcc.target/aarch64/sve/struct_move_2.c: Likewise. - * gcc.target/aarch64/sve/struct_move_3.c: Likewise. - * gcc.target/aarch64/sve/struct_move_4.c: Likewise. - * gcc.target/aarch64/sve/struct_move_5.c: Likewise. - * gcc.target/aarch64/sve/struct_move_6.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_1.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_1_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_2.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_2_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_3.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_3_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_4.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_4_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_5.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_5_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_6.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_6_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_7.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_7_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_8.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_8_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_9.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_9_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_10.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_10_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_11.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_11_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_12.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_12_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_13.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_13_run.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_14.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_15.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_16.c: Likewise. - * gcc.target/aarch64/sve/struct_vect_17.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * lib/target-supports.exp (check_effective_target_vect_load_lanes): - Return true for SVE too. - * g++.dg/vect/pr36648.cc: XFAIL for variable-length vectors - if load/store lanes are supported. - * gcc.dg/vect/slp-10.c: Likewise. - * gcc.dg/vect/slp-12c.c: Likewise. - * gcc.dg/vect/slp-17.c: Likewise. - * gcc.dg/vect/slp-33.c: Likewise. - * gcc.dg/vect/slp-6.c: Likewise. - * gcc.dg/vect/slp-cond-1.c: Likewise. - * gcc.dg/vect/slp-multitypes-11-big-array.c: Likewise. - * gcc.dg/vect/slp-multitypes-11.c: Likewise. - * gcc.dg/vect/slp-multitypes-12.c: Likewise. - * gcc.dg/vect/slp-perm-5.c: Remove XFAIL for variable-length SVE. - * gcc.dg/vect/slp-perm-6.c: Likewise. - * gcc.dg/vect/slp-perm-9.c: Likewise. - * gcc.dg/vect/slp-reduc-6.c: Remove XFAIL for variable-length vectors. - * gcc.dg/vect/vect-load-lanes-peeling-1.c: Expect an epilogue loop - for variable-length vectors. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.target/aarch64/sve/vec_bool_cmp_1.c: New test. - * gcc.target/aarch64/sve/vec_bool_cmp_1_run.c: Likweise. - -2018-01-13 Richard Sandiford - - * g++.target/aarch64/sve/aarch64-sve.exp: New harness. - * g++.target/aarch64/sve/catch_1.C: New test. - * g++.target/aarch64/sve/catch_2.C: Likewise. - * g++.target/aarch64/sve/catch_3.C: Likewise. - * g++.target/aarch64/sve/catch_4.C: Likewise. - * g++.target/aarch64/sve/catch_5.C: Likewise. - * g++.target/aarch64/sve/catch_6.C: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * lib/target-supports.exp (check_effective_target_aarch64_asm_sve_ok): - New proc. - * gcc.target/aarch64/bic_imm_1.c: Use #pragma GCC target "+nosve". - * gcc.target/aarch64/fmaxmin.c: Likewise. - * gcc.target/aarch64/fmul_fcvt_2.c: Likewise. - * gcc.target/aarch64/orr_imm_1.c: Likewise. - * gcc.target/aarch64/pr62178.c: Likewise. - * gcc.target/aarch64/pr71727-2.c: Likewise. - * gcc.target/aarch64/saddw-1.c: Likewise. - * gcc.target/aarch64/saddw-2.c: Likewise. - * gcc.target/aarch64/uaddw-1.c: Likewise. - * gcc.target/aarch64/uaddw-2.c: Likewise. - * gcc.target/aarch64/uaddw-3.c: Likewise. - * gcc.target/aarch64/vect-add-sub-cond.c: Likewise. - * gcc.target/aarch64/vect-compile.c: Likewise. - * gcc.target/aarch64/vect-faddv-compile.c: Likewise. - * gcc.target/aarch64/vect-fcm-eq-d.c: Likewise. - * gcc.target/aarch64/vect-fcm-eq-f.c: Likewise. - * gcc.target/aarch64/vect-fcm-ge-d.c: Likewise. - * gcc.target/aarch64/vect-fcm-ge-f.c: Likewise. - * gcc.target/aarch64/vect-fcm-gt-d.c: Likewise. - * gcc.target/aarch64/vect-fcm-gt-f.c: Likewise. - * gcc.target/aarch64/vect-fmax-fmin-compile.c: Likewise. - * gcc.target/aarch64/vect-fmaxv-fminv-compile.c: Likewise. - * gcc.target/aarch64/vect-fmovd-zero.c: Likewise. - * gcc.target/aarch64/vect-fmovd.c: Likewise. - * gcc.target/aarch64/vect-fmovf-zero.c: Likewise. - * gcc.target/aarch64/vect-fmovf.c: Likewise. - * gcc.target/aarch64/vect-fp-compile.c: Likewise. - * gcc.target/aarch64/vect-ld1r-compile-fp.c: Likewise. - * gcc.target/aarch64/vect-ld1r-compile.c: Likewise. - * gcc.target/aarch64/vect-movi.c: Likewise. - * gcc.target/aarch64/vect-mull-compile.c: Likewise. - * gcc.target/aarch64/vect-reduc-or_1.c: Likewise. - * gcc.target/aarch64/vect-vaddv.c: Likewise. - * gcc.target/aarch64/vect_saddl_1.c: Likewise. - * gcc.target/aarch64/vect_smlal_1.c: Likewise. - * gcc.target/aarch64/vector_initialization_nostack.c: XFAIL for - fixed-length SVE. - * gcc.target/aarch64/sve/aarch64-sve.exp: New file. - * gcc.target/aarch64/sve/arith_1.c: New test. - * gcc.target/aarch64/sve/const_pred_1.C: Likewise. - * gcc.target/aarch64/sve/const_pred_2.C: Likewise. - * gcc.target/aarch64/sve/const_pred_3.C: Likewise. - * gcc.target/aarch64/sve/const_pred_4.C: Likewise. - * gcc.target/aarch64/sve/cvtf_signed_1.c: Likewise. - * gcc.target/aarch64/sve/cvtf_signed_1_run.c: Likewise. - * gcc.target/aarch64/sve/cvtf_unsigned_1.c: Likewise. - * gcc.target/aarch64/sve/cvtf_unsigned_1_run.c: Likewise. - * gcc.target/aarch64/sve/dup_imm_1.c: Likewise. - * gcc.target/aarch64/sve/dup_imm_1_run.c: Likewise. - * gcc.target/aarch64/sve/dup_lane_1.c: Likewise. - * gcc.target/aarch64/sve/ext_1.c: Likewise. - * gcc.target/aarch64/sve/ext_2.c: Likewise. - * gcc.target/aarch64/sve/extract_1.c: Likewise. - * gcc.target/aarch64/sve/extract_2.c: Likewise. - * gcc.target/aarch64/sve/extract_3.c: Likewise. - * gcc.target/aarch64/sve/extract_4.c: Likewise. - * gcc.target/aarch64/sve/fabs_1.c: Likewise. - * gcc.target/aarch64/sve/fcvtz_signed_1.c: Likewise. - * gcc.target/aarch64/sve/fcvtz_signed_1_run.c: Likewise. - * gcc.target/aarch64/sve/fcvtz_unsigned_1.c: Likewise. - * gcc.target/aarch64/sve/fcvtz_unsigned_1_run.c: Likewise. - * gcc.target/aarch64/sve/fdiv_1.c: Likewise. - * gcc.target/aarch64/sve/fdup_1.c: Likewise. - * gcc.target/aarch64/sve/fdup_1_run.c: Likewise. - * gcc.target/aarch64/sve/fmad_1.c: Likewise. - * gcc.target/aarch64/sve/fmla_1.c: Likewise. - * gcc.target/aarch64/sve/fmls_1.c: Likewise. - * gcc.target/aarch64/sve/fmsb_1.c: Likewise. - * gcc.target/aarch64/sve/fmul_1.c: Likewise. - * gcc.target/aarch64/sve/fneg_1.c: Likewise. - * gcc.target/aarch64/sve/fnmad_1.c: Likewise. - * gcc.target/aarch64/sve/fnmla_1.c: Likewise. - * gcc.target/aarch64/sve/fnmls_1.c: Likewise. - * gcc.target/aarch64/sve/fnmsb_1.c: Likewise. - * gcc.target/aarch64/sve/fp_arith_1.c: Likewise. - * gcc.target/aarch64/sve/frinta_1.c: Likewise. - * gcc.target/aarch64/sve/frinti_1.c: Likewise. - * gcc.target/aarch64/sve/frintm_1.c: Likewise. - * gcc.target/aarch64/sve/frintp_1.c: Likewise. - * gcc.target/aarch64/sve/frintx_1.c: Likewise. - * gcc.target/aarch64/sve/frintz_1.c: Likewise. - * gcc.target/aarch64/sve/fsqrt_1.c: Likewise. - * gcc.target/aarch64/sve/fsubr_1.c: Likewise. - * gcc.target/aarch64/sve/index_1.c: Likewise. - * gcc.target/aarch64/sve/index_1_run.c: Likewise. - * gcc.target/aarch64/sve/ld1r_1.c: Likewise. - * gcc.target/aarch64/sve/load_const_offset_1.c: Likewise. - * gcc.target/aarch64/sve/load_const_offset_2.c: Likewise. - * gcc.target/aarch64/sve/load_const_offset_3.c: Likewise. - * gcc.target/aarch64/sve/load_scalar_offset_1.c: Likewise. - * gcc.target/aarch64/sve/logical_1.c: Likewise. - * gcc.target/aarch64/sve/loop_add_1.c: Likewise. - * gcc.target/aarch64/sve/loop_add_1_run.c: Likewise. - * gcc.target/aarch64/sve/mad_1.c: Likewise. - * gcc.target/aarch64/sve/maxmin_1.c: Likewise. - * gcc.target/aarch64/sve/maxmin_1_run.c: Likewise. - * gcc.target/aarch64/sve/maxmin_strict_1.c: Likewise. - * gcc.target/aarch64/sve/maxmin_strict_1_run.c: Likewise. - * gcc.target/aarch64/sve/mla_1.c: Likewise. - * gcc.target/aarch64/sve/mls_1.c: Likewise. - * gcc.target/aarch64/sve/mov_rr_1.c: Likewise. - * gcc.target/aarch64/sve/msb_1.c: Likewise. - * gcc.target/aarch64/sve/mul_1.c: Likewise. - * gcc.target/aarch64/sve/neg_1.c: Likewise. - * gcc.target/aarch64/sve/nlogical_1.c: Likewise. - * gcc.target/aarch64/sve/nlogical_1_run.c: Likewise. - * gcc.target/aarch64/sve/pack_1.c: Likewise. - * gcc.target/aarch64/sve/pack_1_run.c: Likewise. - * gcc.target/aarch64/sve/pack_fcvt_signed_1.c: Likewise. - * gcc.target/aarch64/sve/pack_fcvt_signed_1_run.c: Likewise. - * gcc.target/aarch64/sve/pack_fcvt_unsigned_1.c: Likewise. - * gcc.target/aarch64/sve/pack_fcvt_unsigned_1_run.c: Likewise. - * gcc.target/aarch64/sve/pack_float_1.c: Likewise. - * gcc.target/aarch64/sve/pack_float_1_run.c: Likewise. - * gcc.target/aarch64/sve/popcount_1.c: Likewise. - * gcc.target/aarch64/sve/popcount_1_run.c: Likewise. - * gcc.target/aarch64/sve/reduc_1.c: Likewise. - * gcc.target/aarch64/sve/reduc_1_run.c: Likewise. - * gcc.target/aarch64/sve/reduc_2.c: Likewise. - * gcc.target/aarch64/sve/reduc_2_run.c: Likewise. - * gcc.target/aarch64/sve/reduc_3.c: Likewise. - * gcc.target/aarch64/sve/rev_1.c: Likewise. - * gcc.target/aarch64/sve/revb_1.c: Likewise. - * gcc.target/aarch64/sve/revh_1.c: Likewise. - * gcc.target/aarch64/sve/revw_1.c: Likewise. - * gcc.target/aarch64/sve/shift_1.c: Likewise. - * gcc.target/aarch64/sve/single_1.c: Likewise. - * gcc.target/aarch64/sve/single_2.c: Likewise. - * gcc.target/aarch64/sve/single_3.c: Likewise. - * gcc.target/aarch64/sve/single_4.c: Likewise. - * gcc.target/aarch64/sve/spill_1.c: Likewise. - * gcc.target/aarch64/sve/store_scalar_offset_1.c: Likewise. - * gcc.target/aarch64/sve/subr_1.c: Likewise. - * gcc.target/aarch64/sve/trn1_1.c: Likewise. - * gcc.target/aarch64/sve/trn2_1.c: Likewise. - * gcc.target/aarch64/sve/unpack_fcvt_signed_1.c: Likewise. - * gcc.target/aarch64/sve/unpack_fcvt_signed_1_run.c: Likewise. - * gcc.target/aarch64/sve/unpack_fcvt_unsigned_1.c: Likewise. - * gcc.target/aarch64/sve/unpack_fcvt_unsigned_1_run.c: Likewise. - * gcc.target/aarch64/sve/unpack_float_1.c: Likewise. - * gcc.target/aarch64/sve/unpack_float_1_run.c: Likewise. - * gcc.target/aarch64/sve/unpack_signed_1.c: Likewise. - * gcc.target/aarch64/sve/unpack_signed_1_run.c: Likewise. - * gcc.target/aarch64/sve/unpack_unsigned_1.c: Likewise. - * gcc.target/aarch64/sve/unpack_unsigned_1_run.c: Likewise. - * gcc.target/aarch64/sve/uzp1_1.c: Likewise. - * gcc.target/aarch64/sve/uzp1_1_run.c: Likewise. - * gcc.target/aarch64/sve/uzp2_1.c: Likewise. - * gcc.target/aarch64/sve/uzp2_1_run.c: Likewise. - * gcc.target/aarch64/sve/vcond_1.C: Likewise. - * gcc.target/aarch64/sve/vcond_1_run.C: Likewise. - * gcc.target/aarch64/sve/vcond_2.c: Likewise. - * gcc.target/aarch64/sve/vcond_2_run.c: Likewise. - * gcc.target/aarch64/sve/vcond_3.c: Likewise. - * gcc.target/aarch64/sve/vcond_4.c: Likewise. - * gcc.target/aarch64/sve/vcond_4_run.c: Likewise. - * gcc.target/aarch64/sve/vcond_5.c: Likewise. - * gcc.target/aarch64/sve/vcond_5_run.c: Likewise. - * gcc.target/aarch64/sve/vcond_6.c: Likewise. - * gcc.target/aarch64/sve/vcond_6_run.c: Likewise. - * gcc.target/aarch64/sve/vec_init_1.c: Likewise. - * gcc.target/aarch64/sve/vec_init_1_run.c: Likewise. - * gcc.target/aarch64/sve/vec_init_2.c: Likewise. - * gcc.target/aarch64/sve/vec_perm_1.c: Likewise. - * gcc.target/aarch64/sve/vec_perm_1_run.c: Likewise. - * gcc.target/aarch64/sve/vec_perm_1_overrange_run.c: Likewise. - * gcc.target/aarch64/sve/vec_perm_const_1.c: Likewise. - * gcc.target/aarch64/sve/vec_perm_const_1_overrun.c: Likewise. - * gcc.target/aarch64/sve/vec_perm_const_1_run.c: Likewise. - * gcc.target/aarch64/sve/vec_perm_const_single_1.c: Likewise. - * gcc.target/aarch64/sve/vec_perm_const_single_1_run.c: Likewise. - * gcc.target/aarch64/sve/vec_perm_single_1.c: Likewise. - * gcc.target/aarch64/sve/vec_perm_single_1_run.c: Likewise. - * gcc.target/aarch64/sve/zip1_1.c: Likewise. - * gcc.target/aarch64/sve/zip2_1.c: Likewise. - -2018-01-13 Richard Sandiford - Alan Hayward - David Sherwood - - * lib/target-supports.exp (check_effective_target_aarch64_sve) - (aarch64_sve_bits, check_effective_target_aarch64_sve_hw) - (aarch64_sve_hw_bits, check_effective_target_aarch64_sve256_hw): - New procedures. - (check_effective_target_vect_perm): Handle SVE. - (check_effective_target_vect_perm_byte): Likewise. - (check_effective_target_vect_perm_short): Likewise. - (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise. - (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. - (check_effective_target_vect_widen_mult_hi_to_si): Likewise. - (check_effective_target_vect_element_align_preferred): Likewise. - (check_effective_target_vect_align_stack_vars): Likewise. - (check_effective_target_vect_load_lanes): Likewise. - (check_effective_target_vect_masked_store): Likewise. - (available_vector_sizes): Use aarch64_sve_bits for SVE. - * gcc.dg/vect/tree-vect.h (VECTOR_BITS): Define appropriately for SVE. - * gcc.dg/tree-ssa/ssa-dom-cse-2.c: Add SVE XFAIL. - * gcc.dg/vect/bb-slp-pr69907.c: Likewise. - * gcc.dg/vect/no-vfa-vect-depend-2.c: Likewise. - * gcc.dg/vect/no-vfa-vect-depend-3.c: Likewise. - * gcc.dg/vect/slp-23.c: Likewise. - * gcc.dg/vect/slp-perm-5.c: Likewise. - * gcc.dg/vect/slp-perm-6.c: Likewise. - * gcc.dg/vect/slp-perm-9.c: Likewise. - * gcc.dg/vect/slp-reduc-3.c: Likewise. - * gcc.dg/vect/vect-114.c: Likewise. - * gcc.dg/vect/vect-mult-const-pattern-1.c: Likewise. - * gcc.dg/vect/vect-mult-const-pattern-2.c: Likewise. - -2018-01-13 Richard Sandiford - - * gcc.dg/vect/no-scevccp-slp-30.c: XFAIL SLP test for - vect_variable_length, expecting the test to be vectorized - without SLP instead. - * gcc.dg/vect/pr33953.c: Likewise. - * gcc.dg/vect/pr37027.c: Likewise. - * gcc.dg/vect/pr67790.c: Likewise. - * gcc.dg/vect/pr68445.c: Likewise. - * gcc.dg/vect/slp-1.c: Likewise. - * gcc.dg/vect/slp-10.c: Likewise. - * gcc.dg/vect/slp-12a.c: Likewise. - * gcc.dg/vect/slp-12b.c: Likewise. - * gcc.dg/vect/slp-12c.c: Likewise. - * gcc.dg/vect/slp-13-big-array.c: Likewise. - * gcc.dg/vect/slp-13.c: Likewise. - * gcc.dg/vect/slp-14.c: Likewise. - * gcc.dg/vect/slp-15.c: Likewise. - * gcc.dg/vect/slp-17.c: Likewise. - * gcc.dg/vect/slp-19b.c: Likewise. - * gcc.dg/vect/slp-2.c: Likewise. - * gcc.dg/vect/slp-20.c: Likewise. - * gcc.dg/vect/slp-21.c: Likewise. - * gcc.dg/vect/slp-22.c: Likewise. - * gcc.dg/vect/slp-24-big-array.c: Likewise. - * gcc.dg/vect/slp-24.c: Likewise. - * gcc.dg/vect/slp-28.c: Likewise. - * gcc.dg/vect/slp-39.c: Likewise. - * gcc.dg/vect/slp-42.c: Likewise. - * gcc.dg/vect/slp-6.c: Likewise. - * gcc.dg/vect/slp-7.c: Likewise. - * gcc.dg/vect/slp-cond-1.c: Likewise. - * gcc.dg/vect/slp-cond-2-big-array.c: Likewise. - * gcc.dg/vect/slp-cond-2.c: Likewise. - * gcc.dg/vect/slp-multitypes-1.c: Likewise. - * gcc.dg/vect/slp-multitypes-10.c: Likewise. - * gcc.dg/vect/slp-multitypes-12.c: Likewise. - * gcc.dg/vect/slp-multitypes-2.c: Likewise. - * gcc.dg/vect/slp-multitypes-4.c: Likewise. - * gcc.dg/vect/slp-multitypes-5.c: Likewise. - * gcc.dg/vect/slp-multitypes-8.c: Likewise. - * gcc.dg/vect/slp-multitypes-9.c: Likewise. - * gcc.dg/vect/slp-reduc-1.c: Likewise. - * gcc.dg/vect/slp-reduc-2.c: Likewise. - * gcc.dg/vect/slp-reduc-4.c: Likewise. - * gcc.dg/vect/slp-reduc-5.c: Likewise. - * gcc.dg/vect/slp-reduc-7.c: Likewise. - * gcc.dg/vect/slp-widen-mult-half.c: Likewise. - * gcc.dg/vect/vect-live-slp-1.c: Likewise. - * gcc.dg/vect/vect-live-slp-2.c: Likewise. - * gcc.dg/vect/vect-live-slp-3.c: Likewise. - -2018-01-13 Jakub Jelinek - - PR c/83801 - * gcc.dg/pr83801.c: New test. - -2018-01-13 Paul Thomas - - PR fortran/52162 - * gfortran.dg/bounds_check_19.f90: New test. - -2018-01-12 Jakub Jelinek - - * gcc.target/powerpc/float128-hw7.c: Use scan-assembler-times - instead of scan-assembler-not for xsnabsqp. - -2018-01-12 Jerry DeLisle - - PR libgfortran/83525 - * gfortran.dg/newunit_5.f90: New test. - -2018-01-12 Vladimir Makarov - - PR rtl-optimization/80481 - * g++.dg/pr80481.C: New. - -2018-01-12 Uros Bizjak - - PR target/83628 - * gcc.target/alpha/pr83628-3.c: New test. - -2018-01-12 Rainer Orth - - * lib/target-supports.exp (check_effective_target_avx512f): Also - check for __builtin_ia32_addsd_round, - __builtin_ia32_getmantsd_round. - * gcc.target/i386/i386.exp (check_effective_target_avx512f): Remove. - -2018-01-12 Segher Boessenkool - - PR target/83629 - * gcc.target/powerpc/pr83629.c: Require ilp32. - -2018-01-12 Richard Biener - - PR tree-optimization/80846 - * gcc.target/i386/pr80846-1.c: New testcase. - * gcc.target/i386/pr80846-2.c: Likewise. - -2018-01-12 Eric Botcazou - - * gcc.c-torture/execute/20180112-1.c: New test. - -2018-01-12 Tom de Vries - - * g++.dg/ext/label13.C: Add dg-require-effective-target indirect_jumps. - * g++.dg/ext/label13a.C: Same. - * g++.dg/ext/label14.C: Same. - * g++.dg/ext/label2.C: Same. - * g++.dg/ext/label3.C: Same. - * g++.dg/torture/pr42462.C: Same. - * g++.dg/torture/pr42739.C: Same. - * g++.dg/warn/Wunused-label-3.C: Same. - -2018-01-12 Tom de Vries - - * c-c++-common/dwarf2/vla1.c: Add dg-require-effective-target alloca. - * g++.dg/Walloca1.C: Same. - * g++.dg/cpp0x/pr70338.C: Same. - * g++.dg/cpp1y/lambda-generic-vla1.C: Same. - * g++.dg/cpp1y/vla10.C: Same. - * g++.dg/cpp1y/vla2.C: Same. - * g++.dg/cpp1y/vla6.C: Same. - * g++.dg/cpp1y/vla8.C: Same. - * g++.dg/debug/debug5.C: Same. - * g++.dg/debug/debug6.C: Same. - * g++.dg/debug/pr54828.C: Same. - * g++.dg/diagnostic/pr70105.C: Same. - * g++.dg/eh/cleanup5.C: Same. - * g++.dg/eh/spbp.C: Same. - * g++.dg/ext/tmplattr9.C: Same. - * g++.dg/ext/vla10.C: Same. - * g++.dg/ext/vla11.C: Same. - * g++.dg/ext/vla12.C: Same. - * g++.dg/ext/vla15.C: Same. - * g++.dg/ext/vla16.C: Same. - * g++.dg/ext/vla17.C: Same. - * g++.dg/ext/vla3.C: Same. - * g++.dg/ext/vla6.C: Same. - * g++.dg/ext/vla7.C: Same. - * g++.dg/init/array24.C: Same. - * g++.dg/init/new47.C: Same. - * g++.dg/init/pr55497.C: Same. - * g++.dg/opt/pr78201.C: Same. - * g++.dg/template/vla2.C: Same. - * g++.dg/torture/Wsizeof-pointer-memaccess1.C: Same. - * g++.dg/torture/Wsizeof-pointer-memaccess2.C: Same. - * g++.dg/torture/pr62127.C: Same. - * g++.dg/torture/pr67055.C: Same. - * g++.dg/torture/stackalign/eh-alloca-1.C: Same. - * g++.dg/torture/stackalign/eh-inline-2.C: Same. - * g++.dg/torture/stackalign/eh-vararg-1.C: Same. - * g++.dg/torture/stackalign/eh-vararg-2.C: Same. - * g++.dg/warn/Wplacement-new-size-5.C: Same. - * g++.dg/warn/Wsizeof-pointer-memaccess-1.C: Same. - * g++.dg/warn/Wvla-1.C: Same. - * g++.dg/warn/Wvla-3.C: Same. - * g++.old-deja/g++.ext/array2.C: Same. - * g++.old-deja/g++.ext/constructor.C: Same. - * g++.old-deja/g++.law/builtin1.C: Same. - * g++.old-deja/g++.other/crash12.C: Same. - * g++.old-deja/g++.other/eh3.C: Same. - * g++.old-deja/g++.pt/array6.C: Same. - * g++.old-deja/g++.pt/dynarray.C: Same. - -2018-01-12 Rainer Orth - - * g++.dg/cpp0x/inh-ctor30.C: Allow for alternate mangled form. - -2018-01-12 Rainer Orth - - PR libfortran/67412 - * gfortran.dg/execute_command_line_2.f90: Remove dg-xfail-run-if - on *-*-solaris2.10. - -2018-01-12 Rainer Orth - - * lib/target-supports.exp (check_effective_target_branch_cost): - Accept all x86 targets. - -2018-01-12 Martin Liska - - PR ipa/83054 - * g++.dg/warn/pr83054.C: New test. - -2018-01-11 Bill Schmidt - - * gcc.target/powerpc/spec-barr-1.c: New file. - -2018-01-11 H.J. Lu - - PR target/83330 - * gcc.target/i386/pr83330.c: New test. - -2018-01-11 Steven G. Kargl - - PR fortran/79383 - * gfortran.dg/dtio_31.f03: New test. - * gfortran.dg/dtio_32.f03: New test. - -2018-01-11 David Malcolm - - PR c++/43486 - * g++.dg/wrappers: New subdirectory. - * g++.dg/wrappers/README: New file. - * g++.dg/wrappers/alloc.C: New test case. - * g++.dg/wrappers/cow-istream-string.C: New test case. - * g++.dg/wrappers/cp-stdlib.C: New test case. - * g++.dg/wrappers/sanitizer_coverage_libcdep_new.C: New test case. - * g++.dg/wrappers/wrapper-around-type-pack-expansion.C: New test case. - -2018-01-11 Jan Hubicka - - PR middle-end/83718 - * g++.dg/torture/pr83718.C: New testcase. - -2018-01-11 Martin Jambor - - PR ipa/83178 - * g++.dg/ipa/devirt-22.C: Adjust scan-dump-times count. - -2018-01-11 Bin Cheng - - PR tree-optimization/83695 - * gcc.dg/tree-ssa/pr83695.c: New test. - -2018-01-11 Kyrylo Tkachov - - * gcc.target/arm/simd/fp16fml_lane_high.c: New test. - * gcc.target/arm/simd/fp16fml_lane_low.c: New test. - -2018-01-11 Kyrylo Tkachov - - * gcc.target/arm/multilib.exp: Add combination tests for fp16fml. - * gcc.target/arm/simd/fp16fml_high.c: New test. - * gcc.target/arm/simd/fp16fml_low.c: Likewise. - * lib/target-supports.exp - (check_effective_target_arm_fp16fml_neon_ok_nocache, - check_effective_target_arm_fp16fml_neon_ok, - add_options_for_arm_fp16fml_neon): New procedures. - -2018-01-11 Kyrylo Tkachov - - * gcc.target/arm/multilib.exp: Add some -march=armv8.4-a - combination tests. - -2018-01-11 Richard Biener - - PR tree-optimization/83435 - * gcc.dg/graphite/pr83435.c: New testcase. - -2018-01-11 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.target/aarch64/pr70044.c: Allow "mov x29, sp" too. - -2018-01-11 Tamar Christina - - * gcc.target/aarch64/advsimd-intrinsics/vdot-compile-2.c: New. - -2018-01-11 Sudakshina Das - - PR target/82096 - * gcc.c-torture/compile/pr82096.c: New test. - -2018-01-11 Ed Schonberg - - * gnat.dg/bip_overlay.adb, gnat.dg/bip_overlay.ads: New testcase. - -2018-01-11 Hristian Kirtchev - - * gnat.dg/protected_func.adb, gnat.dg/protected_func.ads: New testcase. - -2018-01-11 Justin Squirek - - * gnat.dg/expr_func4.adb: New testcase. - -2018-01-11 Hristian Kirtchev - - * gnat.dg/pure_subp_body.adb, gnat.dg/pure_subp_body_pkg.ads: New - testcase. - -2018-01-11 Bob Duff - - * gnat.dg/protected_null.adb: New testcase. - -2018-01-11 Ed Schonberg - - * gnat.dg/expr_func3.adb, gnat.dg/expr_func3.ads: New testcase. - -2018-01-11 Ed Schonberg - - * gnat.dg/fixedpnt2.adb, gnat.dg/fixedpnt2.ads: New testcase. - -2018-01-11 Justin Squirek - - * gnat.dg/loopvar.adb: New testcase. - -2018-01-10 Jan Hubicka - - PR middle-end/83189 - * gfortran.fortran-torture/compile/pr83189.f90: New testcase. - -2018-01-10 Jan Hubicka - - * gcc.c-torture/compile/pr83575.c: New testcase. - -2018-01-10 Michael Collison - - * gcc.target/aarch64/fp16_fmul_high_1.c: New testcase. - * gcc.target/aarch64/fp16_fmul_high_2.c: New testcase. - * gcc.target/aarch64/fp16_fmul_high_3.c: New testcase. - * gcc.target/aarch64/fp16_fmul_high.h: New shared testcase. - * gcc.target/aarch64/fp16_fmul_lane_high_1.c: New testcase. - * gcc.target/aarch64/fp16_fmul_lane_high_1.c: New testcase. - * gcc.target/aarch64/fp16_fmul_lane_high_1.c: New testcase. - * gcc.target/aarch64/fp16_fmul_lane_high.h: New shared testcase. - * gcc.target/aarch64/fp16_fmul_low_1.c: New testcase. - * gcc.target/aarch64/fp16_fmul_low_2.c: New testcase. - * gcc.target/aarch64/fp16_fmul_low_2.c: New testcase. - * gcc.target/aarch64/fp16_fmul_low.h: New sharedtestcase. - * gcc.target/aarch64/fp16_fmul_lane_low_1.c: New testcase. - * gcc.target/aarch64/fp16_fmul_lane_low_2.c: New testcase. - * gcc.target/aarch64/fp16_fmul_lane_low_3.c: New testcase. - * gcc.target/aarch64/fp16_fmul_lane_low.h: New shared testcase. - -2018-01-10 Michael Collison - - * gcc.target/aarch64/sha2.h: New shared testcase. - * gcc.target/aarch64/sha2_1.c: New testcase. - * gcc.target/aarch64/sha2_2.c: New testcase. - * gcc.target/aarch64/sha2_3.c: New testcase. - * gcc.target/aarch64/sha3.h: New shared testcase. - * gcc.target/aarch64/sha3_1.c: New testcase. - * gcc.target/aarch64/sha3_2.c: New testcase. - * gcc.target/aarch64/sha3_3.c: New testcase. - -2018-01-10 Michael Collison - - * gcc.target/aarch64/sm3_sm4.c: New testcase. - -2018-01-10 Martin Sebor - - PR tree-optimization/83781 - * gcc.dg/strlenopt-42.c: New test. - -2018-01-11 Martin Sebor - Prathamesh Kulkarni - - PR tree-optimization/83501 - PR tree-optimization/81703 - - * gcc.dg/strlenopt-39.c: New test-case. - * gcc.dg/pr81703.c: Likewise. - -2018-01-10 Eric Botcazou - - * gnat.dg/atomic10.adb: New test. - -2018-01-10 Steven G. Kargl - - PR fortran/82367 - * gfortran.dg/deferred_character_18.f90: New test. - -2018-01-10 Martin Sebor - - PR tree-optimization/83671 - * gcc.dg/strlenopt-40.c: New test. - * gcc.dg/strlenopt-41.c: New test. - -2018-01-10 Steven G. Kargl - - PR fortran/83093 - * gfortran.dg/allocate_with_typespec_7.f90: New test. - -2018-01-10 Peter Bergner - - PR target/83399 - * gcc.target/powerpc/pr83399.c: New test. - -2018-01-10 David Malcolm - - PR c++/43486 - * g++.dg/diagnostic/param-type-mismatch.C: Update expected results - to reflect that the arguments are correctly underlined. - * g++.dg/plugin/diagnostic-test-expressions-1.C: Add test coverage - for globals, params, locals and literals. - (test_sizeof): Directly test the location of "sizeof", rather than - when used in compound expressions. - (test_alignof): Likewise for "alignof". - (test_string_literals): Likewise for string literals. - (test_numeric_literals): Likewise for numeric literals. - (test_builtin_offsetof): Likewise for "__builtin_offsetof". - (test_typeid): Likewise for typeid. - (test_unary_plus): New. - * g++.dg/warn/Wformat-1.C: Add tests of pointer arithmetic on - format strings. - -2018-01-10 Uros Bizjak - - * gcc.target/i386/pr82618.c (dg-options): Add -mno-stv. - -2018-01-10 Aaron Sawdey - - * gcc.dg/memcmp-1.c: Reduce runtime to something reasonable. - -2018-01-10 Marek Polacek - - PR c++/82541 - * g++.dg/warn/Wduplicated-branches4.C: New test. - -2018-01-10 Jakub Jelinek - - PR c++/81327 - * g++.dg/Wclass-memaccess-2.C: Don't expect a warning when explicitly - cast to void *. - -2018-01-10 Paolo Carlini - - PR c++/81055 - * g++.dg/cpp0x/new2.C: New. - -2018-01-10 H.J. Lu - - PR target/83735 - * gcc.target/i386/pr83735.c: New test. - -2018-01-10 Christophe Lyon - - * lib/target-supports.exp (check_effective_target_branch_cost): - New function. - * gcc.dg/builtin-bswap-7.c: Use branch_cost effective target. - * gcc.dg/pr21643.c: Likewise. - * gcc.dg/pr46309.c: Likewise. - * gcc.dg/tree-ssa/phi-opt-11.c: Likewise. - * gcc.dg/tree-ssa/phi-opt-2.c: Likewise. - * gcc.dg/tree-ssa/reassoc-32.c: Likewise. - * gcc.dg/tree-ssa/reassoc-33.c: Likewise. - * gcc.dg/tree-ssa/reassoc-34.c: Likewise. - * gcc.dg/tree-ssa/reassoc-35.c: Likewise. - * gcc.dg/tree-ssa/reassoc-36.c: Likewise. - * gcc.dg/tree-ssa/ssa-ifcombine-13.c: Likewise. - * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-1.c: Likewise. - * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-2.c: Likewise. - * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-3.c: Likewise. - * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-4.c: Likewise. - * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-5.c: Likewise. - * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-6.c: Likewise. - -2018-01-10 Segher Boessenkool - - PR target/83629 - * gcc.target/powerpc/pr83629.c: New testcase. - -2018-01-10 Richard Biener - - PR testsuite/78768 - * gcc.dg/pr78768.c: Un-XFAIL. - -2018-01-10 Richard Biener - - PR debug/82425 - * gcc.dg/guality/inline-params-2.c: Un-XFAIL for slim LTO. - -2018-01-10 Richard Sandiford - - PR tree-optimization/83753 - * gcc.dg/torture/pr83753.c: New test. - -2018-01-09 Jan Hubicka - - * gcc.target/i386/avx2-gather-1.c: Add -march. - * gcc.target/i386/avx2-gather-2.c: Add -march. - * gcc.target/i386/avx2-gather-3.c: Add -march. - * gcc.target/i386/avx2-gather-4.c: Add -march. - * gcc.target/i386/avx2-gather-5.c: Add -march. - * gcc.target/i386/avx2-gather-6.c: Add -march. - * gcc.target/i386/avx512f-gather-1.c: Add -march. - * gcc.target/i386/avx512f-gather-2.c: Add -march. - * gcc.target/i386/avx512f-gather-3.c: Add -march. - * gcc.target/i386/avx512f-gather-4.c: Add -march. - * gcc.target/i386/avx512f-gather-5.c: Add -march. - * gcc.target/i386/avx512f-i32gatherd512-1.c: Add -march. - * gcc.target/i386/avx512f-i32gatherd512-2.c: Add -march. - * gcc.target/i386/avx512f-i32gatherpd512-1.c: Add -march. - * gcc.target/i386/avx512f-i32gatherpd512-2.c: Add -march. - * gcc.target/i386/avx512f-i32gatherps512-1.c: Add -march. - -2018-01-09 H.J. Lu - - PR target/78585: - * gcc.target/i386/pr78585.c: New test. - -2018-01-09 Jakub Jelinek - - PR c++/83734 - * g++.dg/cpp0x/pr83734.C: New test. - -2018-01-09 Carl Love - - * gcc.target/powerpc/builtins-1.c (main): Add tests for vec_mergee and - vec_mergeo builtins with float, double, long long, unsigned long long, - bool long long arguments. - * gcc.target/powerpc/builtins-3-runnable.c (main): Add test for - vec_float2 with double arguments. - * gcc.target/powerpc/builtins-mergew-mergow.c: New runable test for the - vec_mergew and vec_mergow builtins. - -2018-01-09 Steven G. Kargl - - PR fortran/83742 - * gfortran.dg/contiguous_6.f90: New test. - -2018-01-09 Richard Biener - - PR tree-optimization/83668 - * gcc.dg/graphite/pr83668.c: New testcase. - -2018-01-09 Joseph Myers - - PR tree-optimization/64811 - * gcc.dg/torture/inf-compare-1.c, gcc.dg/torture/inf-compare-2.c, - gcc.dg/torture/inf-compare-3.c, gcc.dg/torture/inf-compare-4.c, - gcc.dg/torture/inf-compare-5.c, gcc.dg/torture/inf-compare-6.c, - gcc.dg/torture/inf-compare-7.c, gcc.dg/torture/inf-compare-8.c: - New tests. - * gcc.c-torture/execute/ieee/fp-cmp-7.x: New file. - -2018-01-09 Georg-Johann Lay - - PR target/79883 - * gcc.target/avr/torture/pr57631.c (dg-warning): Quote 'signal'. - -2018-01-09 Tamar Christina - - PR target/82641 - * gcc.target/arm/pragma_fpu_attribute.c: Rewrite to use - no NEON and require softfp or hard float-abi. - * gcc.target/arm/pragma_fpu_attribute_2.c: Likewise. - -2018-01-09 Richard Biener - - PR tree-optimization/83572 - * gcc.dg/graphite/pr83572.c: New testcase. - -2018-01-09 Jakub Jelinek - - PR target/83507 - * gcc.dg/sms-13.c: New test. - -2018-01-08 Steven G. Kargl - - PR fortran/83741 - * gfortran.dg/allocate_assumed_charlen_3.f90: New test. - -2018-01-08 Chih-Mao Chen - Monk Chiang - - * gcc.target/riscv/save-restore-1.c: New. - -2018-01-08 Bill Schmidt - - PR target/83677 - * gcc.target/powerpc/pr83677.c: New file. - -2018-01-08 Jeff Law - - PR rtl-optimizatin/81308 - * g++.dg/pr81308-1.C: New test. - * g++.dg/pr81308-2.C: New test. - -2018-01-08 Vidya Praveen - - PR target/83663 - Revert r255946 - * gcc.target/aarch64/vect-slp-dup.c: New. - -2018-01-08 Kyrylo Tkachov - - * gcc.target/arm/multilib.exp: Add fp16, dotprod and armv8.3-a - combination tests. - -2018-01-08 Richard Biener - - PR tree-optimization/83563 - * gcc.dg/graphite/pr83563.c: New testcase. - -2018-01-08 Richard Biener - - PR middle-end/83713 - * g++.dg/torture/pr83713.C: New testcase. - -2018-01-08 Tom de Vries - - * gcc.dg/tree-ssa/ssa-dom-cse-2.c: Xfail scan for nvptx. - -2018-01-08 Richard Biener - - PR tree-optimization/83685 - * gcc.dg/torture/pr83685.c: New testcase. - -2018-01-08 Richard Biener - - PR lto/83719 - * gcc.dg/lto/pr83719_0.c: New testcase. - -2018-01-08 Tom de Vries - - * gcc.dg/graphite/interchange-7.c: Add dg-require-stack-size. - * gcc.dg/graphite/run-id-1.c: Same. - * gcc.dg/tree-ssa/loop-interchange-4.c: Same. - -2018-01-08 Paul Thomas - - PR fortran/83611 - * gfortran.dg/pdt_15.f03: Bump count of 'n.data = 0B' to 8. - * gfortran.dg/pdt_26.f03: Bump count of '_malloc' to 9. - * gfortran.dg/pdt_27.f03: New test. - - PR fortran/83731 - * gfortran.dg/pdt_28.f03: New test. - -2018-01-08 Tom de Vries - - * c-c++-common/builtins.c: Require effective target alloca. - * gcc.dg/Wrestrict.c: Same. - * gcc.dg/tree-ssa/loop-interchange-15.c: Same. - -2018-01-08 Richard Biener - - PR middle-end/83580 - * gcc.dg/torture/pr83580.c: New testcase. - -2018-01-08 Richard Biener - - PR middle-end/83517 - * gcc.dg/pr83517.c: New testcase. - -2018-01-06 Aldy Hernandez - - PR middle-end/81897 - * gcc.dg/uninit-pr81897.c: New test. - -2018-01-06 Martin Sebor - - PR tree-optimization/83640 - * gcc.dg/Wrestrict-6.c: New test. - * gcc.dg/pr83640.c: New test. - -2018-01-06 Richard Sandiford - - * gcc.target/aarch64/reg-alloc-1.c: New test. - -2018-01-06 Janne Blomqvist - - PR fortran/50892 - * gfortran.dg/char_pointer_assign_icb_1.f90: New test. - -2018-01-06 Jakub Jelinek - - PR debug/83480 - * gcc.dg/pr83480.c: New test. - - PR rtl-optimization/83682 - * gcc.target/i386/pr83682.c: New test. - -2018-01-05 Janne Blomqvist - - PR fortran/78534 - PR fortran/66310 - * gfortran.dg/char_cast_1.f90: Update scan pattern. - * gfortran.dg/dependency_49.f90: Likewise. - * gfortran.dg/repeat_4.f90: Use integers of kind C_SIZE_T. - * gfortran.dg/repeat_7.f90: New test for PR 66310. - * gfortran.dg/scan_2.f90: Handle potential cast in assignment. - * gfortran.dg/string_1.f90: Limit to ilp32 targets. - * gfortran.dg/string_1_lp64.f90: New test. - * gfortran.dg/string_3.f90: Limit to ilp32 targets. - * gfortran.dg/string_3_lp64.f90: New test. - -2018-01-05 Jakub Jelinek - - PR target/83604 - * gcc.target/i386/sse-26.c: New test. - - PR target/83604 - * gcc.target/i386/pr83604.c: New test. - -2018-01-05 Richard Sandiford - - * gcc.dg/vect/vect-align-4.c: New test. - * gcc.dg/vect/vect-nb-iter-ub-2.c (cc): Remove alignment attribute - and redefine as a structure with an unaligned member "b". - (foo): Update accordingly. - -2018-01-05 Sudakshina Das - - PR target/82439 - * gcc.target/aarch64/bics_5.c: New test. - * gcc.target/arm/bics_5.c: Likewise. - -2018-01-05 Jakub Jelinek - - PR tree-optimization/83605 - * gcc.dg/pr83605.c: New test. - -2018-01-04 Jakub Jelinek - - PR target/83554 - * gcc.target/i386/pr83554.c: New test. - - PR ipa/82352 - * g++.dg/ipa/pr82352.C (size_t): Define to __SIZE_TYPE__ instead of - long unsigned int. - -2018-01-04 Thomas Koenig - - PR fortran/83683 - PR fortran/45689 - * gfortran.dg/eoshift_8.f90: New test. - * gfortran.dg/simplify_eoshift_1.f90: New test. - -2018-01-04 Jakub Jelinek - - PR debug/83585 - * gcc.dg/pr83585.c: New test. - -2018-01-04 Nathan Sidwell - - PR c++/83667 - * g++.dg/ipa/pr83667.C: Fix regex, require alias. - -2018-01-04 Jakub Jelinek - - PR debug/83666 - * gcc.dg/pr83666.c: New test. - -2018-01-04 Uros Bizjak - - PR target/83628 - * gcc.target/alpha/pr83628-1.c: New test. - * gcc.target/alpha/pr83628-2.c: Ditto. - -2018-01-04 Martin Liska - - PR ipa/82352 - * g++.dg/ipa/pr82352.C: New test. - -2018-01-04 Jakub Jelinek - - * gcc.dg/vect-opt-info-1.c: Moved to ... - * gcc.dg/vect/nodump-vect-opt-info-1.c: ... here. Only run on - vect_int targets, use dg-additional-options instead of dg-options and - use relative line numbers instead of absolute. - -2018-01-03 Martin Sebor - - PR tree-optimization/83655 - * gcc.dg/Wrestrict-5.c: New test. - * c-c++-common/builtins.c: New test. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.target/aarch64/vect-movi.c (movi_float_lsl24): New function. - (main): Call it. - -2018-01-03 Jeff Law - - PR target/83641 - * gcc.target/i386/stack-check-17.c: New test. - * gcc.target/i386/stack-check-12.c: Drop unnecessary asm. - -2018-01-03 Jakub Jelinek - - PR debug/83621 - * gcc.dg/pr83621.c: New test. - - PR debug/83645 - * gcc.dg/pr83645.c: New test. - -2018-01-03 Martin Sebor - - PR tree-optimization/83603 - * gcc.dg/Wrestrict-4.c: New test. - - PR c/83559 - * gcc.dg/const-2.c: New test. - * gcc.dg/pure-3.c: New test. - -2018-01-03 Martin Sebor - - * gcc.dg/Wrestrict-3.c: New test. - -2018-01-03 Jakub Jelinek - - PR c++/83555 - * g++.dg/opt/pr83555.C: New test. - * g++.dg/ubsan/pr83555.C: New test. - -2018-01-03 David Malcolm - - PR c/82050 - * gcc.dg/plugin/expensive-selftests-1.c: Update regexp to handle - the !CHECKING_P case by expecting a note. - * gcc.dg/plugin/expensive_selftests_plugin.c (plugin_init): Issue - a note for the !CHECKING_P case, and move the return statement - outside of #if CHECKING_P guard. - -2018-01-03 Jeff Law - - PR middle-end/83654 - * gcc.target/i386/stack-check-18.c: New test. - * gcc.target/i386/stack-check-19.c: New test. - -2018-01-03 Martin Sebor - - PR tree-optimization/83501 - * c-c++-common/Warray-bounds-3.c: Remove xfail. - -2018-01-03 Prathamesh Kulkarni - - PR tree-optimization/83501 - * gcc.dg/tree-ssa/pr83501-1.c: New test. - -2018-01-03 Nathan Sidwell - - PR c++/83667 - * g++.dg/ipa/pr83667.C: New. - -2018-01-03 Martin Liska - - PR tree-optimization/83593 - * gcc.dg/pr83593.c: New test. - -2018-01-03 Martin Liska - - PR ipa/83549 - * g++.dg/ipa/pr83549.C: New test. - -2018-01-03 Marek Polacek - - PR c++/83592 - * g++.dg/warn/mvp2.C: New test. - -2018-01-03 Jakub Jelinek - - PR preprocessor/83602 - * g++.dg/cpp/pr83602.C: New test. - - PR c++/83634 - * g++.dg/parse/pr83634.C: New test. - -2018-01-03 Thomas Koenig - - PR fortran/83664 - * gfortran.dg/eoshift_7.f90: New test. - -2018-01-03 Jan Beulich - - * gcc.target/i386/avx512vl-no-vmovdqu8.c, - gcc.target/i386/avx512vl-no-vmovdqu16.c: New. - -2018-01-03 Jakub Jelinek +2019-01-01 Jakub Jelinek Update copyright years. - -2018-01-03 Martin Liska - - PR ipa/83594 - * gcc.dg/ipa/pr83594.c: New test. - -2018-01-03 Richard Sandiford - Alan Hayward - David Sherwood - - * gcc.dg/vect-opt-info-1.c: New test. - -2018-01-02 Michael Meissner - - * gcc.target/powerpc/float128-hw2.c: Add tests for ceilf128, - floorf128, truncf128, and roundf128. - * gcc.target/powerpc/float128-hw5.c: New tests for _Float128 - optimizations added in match.pd. - * gcc.target/powerpc/float128-hw6.c: Likewise. - * gcc.target/powerpc/float128-hw7.c: Likewise. - * gcc.target/powerpc/float128-hw8.c: Likewise. - * gcc.target/powerpc/float128-hw9.c: Likewise. - * gcc.target/powerpc/float128-hw10.c: Likewise. - * gcc.target/powerpc/float128-hw11.c: Likewise. - -2018-01-02 Jakub Jelinek - - PR c++/83556 - * g++.dg/cpp0x/pr83556.C: New test. - -2018-01-02 Thomas Koenig - - PR fortran/45689 - PR fortran/83650 - * gfortran.dg/simplify_cshift_1.f90: Correct erroneous case. - * gfortran.dg/simplify_cshift_4.f90: New test. - -2018-01-02 Marek Polacek - - PR c++/81860 - * g++.dg/cpp0x/inh-ctor30.C: New test. - - PR c++/83644 - * g++.dg/cpp1z/pr83644.C: New test. - -2018-01-01 Paul Thomas - - PR fortran/83076 - * gfortran.dg/coarray_45.f90: New test. - - PR fortran/83319 - * gfortran.dg/coarray_46.f90: New test. - -2018-01-01 Jakub Jelinek - - PR tree-optimization/83581 - * gcc.dg/pr83581.c: New test. - - PR c/83595 - * gcc.dg/pr83595.c: New test. - - PR middle-end/83608 - * g++.dg/opt/pr83608.C: New test. - - PR middle-end/83609 - * gcc.dg/pr83609.c: New test. - * g++.dg/opt/pr83609.C: New test. - - PR middle-end/83623 - * gcc.dg/pr83623.c: New test. - - * gcc.target/i386/i386.exp - (check_effective_target_avx512vpopcntdqvl): New proc. - * gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c: Use - avx512vpopcntdqvl effective target rather than avx512vpopcntdq. - * gcc.target/i386/avx512vpopcntdqvl-vpopcntq-1.c: Likewise. -Copyright (C) 2018 Free Software Foundation, Inc. +Copyright (C) 2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/ChangeLog-2018 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/ChangeLog-2018 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/ChangeLog-2018 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/ChangeLog-2018 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,22433 @@ +2018-12-31 Thomas Koenig + + PR fortran/82995 + * gfortran.dg/optional_absent_4.f90: New test. + * gfortran.dg/optional_absent_5.f90: New test. + +2018-12-31 Martin Liska + + * g++.dg/tree-prof/devirt.C: Fix scan pattern and test options. + +2018-12-31 Martin Liska + + * g++.dg/predict-2.C: New test. + * g++.dg/predict-3.C: New test. + * g++.dg/predict-4.C: New test. + * gcc.dg/tree-ssa/attr-hotcold-2.c: Adjust test-case. + +2018-12-30 H.J. Lu + + PR testsuite/88639 + * gfortran.dg/ieee/ieee_10.f90: Use dg-additional-options + instead of dg-options. + +2018-12-29 Dominique d'Humieres + + * g++.dg/abi/key2.C: Silence the [-Wreturn-type] warning. + +2018-12-29 Steven G. Kargl + + * gfortran.dg/ieee/ieee_11.F90: New test. + +2018-12-29 Jozef Lawrynowicz + + * gcc.target/msp430/critical-interrupt.c: New test. + +2018-12-29 Steven G. Kargl + + PR fortran/88342 + * gfortran.dg/ieee/ieee_10.f90: New test. + +2018-12-29 Dominique d'Humieres + + PR tree-optimization/68356 + PR target/81210 + PR target/81693 + * gcc.dg/torture/pr68264.c: Skip on darwin. + * gcc.dg/torture/pr68037-1.c: Likewise. + * gcc.dg/torture/pr68037-2.c: Likewise. + * gcc.dg/torture/pr68037-3.c: Likewise. + * gcc.dg/torture/pr25967-1.c: Likewise. + * gcc.dg/torture/pr25967-2.c: Likewise. + +2018-12-29 Jakub Jelinek + + PR ipa/88586 + * g++.dg/gomp/pr88586.C: New test. + +2018-12-28 David Edelsohn + + * c-c++-common/ident-1b.c: XFAIL AIX and Darwin. + * c-c++-common/ident-2b.c: Likewise. + +2018-12-28 H.J. Lu + + * gcc.target/x86_64/abi/asm-support-darwin.s: Remove .file + directive. + * gcc.target/x86_64/abi/asm-support.S: Likewise. + * gcc.target/x86_64/abi/avx/asm-support-darwin.s: Likewise. + * gcc.target/x86_64/abi/avx/asm-support.S: Likewise. + * gcc.target/x86_64/abi/avx512f/asm-support.S: Likewise. + +2018-12-27 Jan Hubicka + + * g++.dg/ipa/devirt-53.C: New testcase. + +2018-12-27 Steven G. Kargl + + PR fortran/81027 + * gfortran.dg/pr81027.f90: New test. + * gfortran.dg/initialization_7.f90: Update error message. + +2018-12-27 Steven G. Kargl + + * libgomp.fortran/aligned1.f03: Fix invalid code that now causes + an error after r267415. + +2018-12-27 Martin Liska + + PR c++/88263 + * g++.dg/gcov/pr88263.C: New test. + +2018-12-26 Steven G. Kargl + + PR fortran/85357 + * gfortran.df/pr85357.f90: New test. + +2018-12-24 Steven G. Kargl + + PR fortran/45513 + PR fortran/81509 + * gfortran.dg/graphite/id-26.f03: Fix non-conforming use of IAND. + * gfortran.dg/pr81509_1.f90: New test. + * gfortran.dg/pr81509_2.f90: New test. + +2018-12-24 Steven G. Kargl + + * gfortran.dg/ieee/ieee_9.f90: XFAIL on arm*-*-gnueabi[hf]. + +2018-12-24 Jan Hubicka + + PR lto/88140 + * gcc.c-torture/pr88140.c: New testcase. + +2018-12-24 Iain Sandoe + + PR testsuite/67974 + * gcc.target/x86_64/abi/avx/asm-support-darwin.s: New. + +2018-12-24 Iain Sandoe + + * c-c++-common/ident-0a.c: Skip for powerpc-darwin. + * c-c++-common/ident-0b.c: Likewise. + * c-c++-common/ident-1a.c: Likewise. + * c-c++-common/ident-1b.c: Likewise. + * c-c++-common/ident-2a.c: Likewise. + * c-c++-common/ident-2b.c: Likewise. + +2018-12-23 Paul Thomas + + PR fortran/77703 + * gfortran.dg/ptr_func_assign_5.f08 : New test. + +2018-12-22 Steven G. Kargl + + PR fortran/88328 + * gfortran.dg/pr88328.f90: New test. + +2018-12-21 Jan Hubicka + + * g++.dg/ipa/devirt-30.C: Add dg-do. + * g++.dg/lto/devirt-1_0.C: New testcase. + * g++.dg/lto/devirt-2_0.C: New testcase. + * g++.dg/lto/devirt-3_0.C: New testcase. + * g++.dg/lto/devirt-4_0.C: New testcase. + * g++.dg/lto/devirt-5_0.C: New testcase. + * g++.dg/lto/devirt-6_0.C: New testcase. + * g++.dg/lto/devirt-13_0.C: New testcase. + * g++.dg/lto/devirt-14_0.C: New testcase. + * g++.dg/lto/devirt-19_0.C: New testcase. + * g++.dg/lto/devirt-22_0.C: New testcase. + * g++.dg/lto/devirt-23_0.C: New testcase. + * g++.dg/lto/devirt-30_0.C: New testcase. + * g++.dg/lto/devirt-34_0.C: New testcase. + +2018-12-26 Steven G . Kargl + + PR fortran/85798 + * gfortran.dg/pr85798.f90: New test. + +2018-12-21 Steven G. Kargl + + PR fortran/88169 + * gfortran.dg/pr88169_1.f90: new test. + * gfortran.dg/pr88169_2.f90: Ditto. + * gfortran.dg/pr88169_3.f90: Ditto. + +2018-12-21 Steven G. Kargl + + PR fortran/69121 + * gfortran.dg/ieee/ieee_9.f90: New test. + +2018-12-21 Jakub Jelinek + + PR c++/86524 + PR c++/88446 + * g++.dg/cpp1y/constexpr-86524.C: New test. + * g++.dg/cpp2a/is-constant-evaluated4.C: New test. + * g++.dg/cpp2a/is-constant-evaluated5.C: New test. + * g++.dg/cpp2a/is-constant-evaluated6.C: New test. + + PR middle-end/85594 + PR middle-end/88553 + * gcc.dg/gomp/pr85594.c: New test. + * gcc.dg/gomp/pr88553.c: New test. + +2018-12-15 Jan Hubicka + + PR ipa/88561 + * g++.dg/tree-prof/devirt.C: New testcase. + +2018-12-21 Paul Thomas + + PR fortran/87881 + * gfortran.dg/inquiry_part_ref_4.f90: New test. + +2018-12-21 Andreas Krebbel + + * gcc.target/s390/vector/fp-signedint-convert-1.c: New test. + * gcc.target/s390/vector/fp-unsignedint-convert-1.c: New test. + +2018-12-21 Jakub Jelinek + + PR rtl-optimization/88563 + * gcc.dg/pr88563.c: New test. + + PR c++/87125 + * g++.dg/cpp0x/pr87125.C: New test. + +2018-12-21 Thomas Preud'homme + + * gcc.target/arm/size-optimization-ieee-1.c: Skip if passing + -mfloat-abi=softfp or -mfloat-abi=hard. + * gcc.target/arm/size-optimization-ieee-2.c: Likewise. + * gcc.target/arm/size-optimization-ieee-3.c: Likewise. + +2018-12-21 Jakub Jelinek + + PR target/88547 + * gcc.target/i386/pr88547-1.c: Expect only 2 knotb and 2 knotw + insns instead of 4, check for vpminud, vpminuq and no vpsubd or + vpsubq. + * gcc.target/i386/sse2-pr88547-1.c: New test. + * gcc.target/i386/sse2-pr88547-2.c: New test. + * gcc.target/i386/sse4_1-pr88547-1.c: New test. + * gcc.target/i386/sse4_1-pr88547-2.c: New test. + * gcc.target/i386/avx2-pr88547-1.c: New test. + * gcc.target/i386/avx2-pr88547-2.c: New test. + * gcc.target/i386/avx512f-pr88547-2.c: New test. + * gcc.target/i386/avx512vl-pr88547-1.c: New test. + * gcc.target/i386/avx512vl-pr88547-2.c: New test. + * gcc.target/i386/avx512vl-pr88547-3.c: New test. + * gcc.target/i386/avx512f_cond_move.c (y): Change from unsigned int + array to int array. + +2018-12-20 Marek Polacek + + PR c++/88196 - ICE with class non-type template parameter. + * g++.dg/cpp0x/ptrmem-cst-arg1.C: Tweak dg-error. + * g++.dg/cpp2a/nontype-class10.C: New test. + * g++.dg/template/pr54858.C: Tweak dg-error. + +2018-12-20 H.J. Lu + + PR c/51628 + * c-c++-common/pr51628-1.c: New test. + * c-c++-common/pr51628-2.c: Likewise. + * c-c++-common/pr51628-3.c: Likewise. + * c-c++-common/pr51628-4.c: Likewise. + * c-c++-common/pr51628-5.c: Likewise. + * c-c++-common/pr51628-6.c: Likewise. + * c-c++-common/pr51628-7.c: Likewise. + * c-c++-common/pr51628-8.c: Likewise. + * c-c++-common/pr51628-9.c: Likewise. + * c-c++-common/pr51628-10.c: Likewise. + * c-c++-common/pr51628-11.c: Likewise. + * c-c++-common/pr51628-12.c: Likewise. + * c-c++-common/pr51628-13.c: Likewise. + * c-c++-common/pr51628-14.c: Likewise. + * c-c++-common/pr51628-15.c: Likewise. + * c-c++-common/pr51628-26.c: Likewise. + * c-c++-common/pr51628-27.c: Likewise. + * c-c++-common/pr51628-28.c: Likewise. + * c-c++-common/pr51628-29.c: Likewise. + * c-c++-common/pr51628-30.c: Likewise. + * c-c++-common/pr51628-31.c: Likewise. + * c-c++-common/pr51628-32.c: Likewise. + * gcc.dg/pr51628-17.c: Likewise. + * gcc.dg/pr51628-18.c: Likewise. + * gcc.dg/pr51628-19.c: Likewise. + * gcc.dg/pr51628-20.c: Likewise. + * gcc.dg/pr51628-21.c: Likewise. + * gcc.dg/pr51628-22.c: Likewise. + * gcc.dg/pr51628-23.c: Likewise. + * gcc.dg/pr51628-24.c: Likewise. + * gcc.dg/pr51628-25.c: Likewise. + * c-c++-common/asan/misalign-1.c: Add + -Wno-address-of-packed-member. + * c-c++-common/asan/misalign-2.c: Likewise. + * c-c++-common/ubsan/align-2.c: Likewise. + * c-c++-common/ubsan/align-4.c: Likewise. + * c-c++-common/ubsan/align-6.c: Likewise. + * c-c++-common/ubsan/align-7.c: Likewise. + * c-c++-common/ubsan/align-8.c: Likewise. + * c-c++-common/ubsan/align-10.c: Likewise. + * g++.dg/ubsan/align-2.C: Likewise. + * gcc.target/i386/avx512bw-vmovdqu16-2.c: Likewise. + * gcc.target/i386/avx512f-vmovdqu32-2.c: Likewise. + * gcc.target/i386/avx512f-vmovdqu64-2.c: Likewise. + * gcc.target/i386/avx512vl-vmovdqu16-2.c: Likewise. + * gcc.target/i386/avx512vl-vmovdqu32-2.c: Likewise. + * gcc.target/i386/avx512vl-vmovdqu64-2.c: Likewise. + +2018-12-20 Vladimir Makarov + + PR target/88457 + * gcc.target/powerpc/pr88457.c: New. + +2018-12-20 Jakub Jelinek + + PR c++/88180 + * g++.dg/parse/pr88180.C: New test. + * g++.dg/pr85039-1.C: Don't expect diagnostics inside of the type + definition's NSDMIs. + +2018-12-20 Richard Sandiford + + * gcc.target/aarch64/pr64946.c: Force nosve. + * gcc.target/aarch64/ssadv16qi.c: Likewise. + * gcc.target/aarch64/usadv16qi.c: Likewise. + * gcc.target/aarch64/vect-abs-compile.c: Likewise. + * gcc.target/aarch64/sve/abs_1.c: New test. + +2018-12-20 Richard Sandiford + + * gcc.target/aarch64/sve/fmla_2.c: New test. + * gcc.target/aarch64/sve/fmla_2_run.c: Likewise + +2018-12-20 Martin Sebor + + PR tree-optimization/84053 + * gcc.dg/Warray-bounds-36.c: New test. + +2018-12-20 David Malcolm + + PR c++/87504 + * c-c++-common/Wtautological-compare-8.c: New test. + +2018-12-20 Richard Biener + + PR tree-optimization/84362 + * g++.dg/vect/pr84362.cc: New testcase. + +2018-12-20 Jakub Jelinek + + PR target/88547 + * gcc.target/i386/pr88547-1.c: New test. + +2018-12-19 Steven G. Kargl + + PR fortran/87992 + * gfortran.dg/pr87992.f90: New test. + +2018-12-19 Uros Bizjak + + * gcc.target/i386/avx512dq-pr82855.c: Update scan-assembler pattern. + +2018-12-19 Tony Wang + Thomas Preud'homme + + * lib/lto.exp (lto-execute): Define output_file and testname_with_flags + to same value as execname. + (scan-symbol): Move and rename to ... + * lib/gcc-dg.exp (scan-symbol-common): This. Adapt into a + helper function returning true or false if a symbol is present. + (scan-symbol): New procedure. + (scan-symbol-not): Likewise. + * gcc.target/arm/size-optimization-ieee-1.c: New testcase. + * gcc.target/arm/size-optimization-ieee-2.c: Likewise. + * gcc.target/arm/size-optimization-ieee-3.c: Likewise. + +2018-12-19 Segher Boessenkool + + * g++.dg/asm-qual-3.C: New testcase. + * gcc.dg/asm-qual-3.c: New testcase. + +2018-12-19 Segher Boessenkool + + * g++.dg/asm-qual-1.C: New testcase. + * g++.dg/asm-qual-2.C: New testcase. + * gcc.dg/asm-qual-1.c: Update. + +2018-12-19 David Malcolm + + PR c++/88375 + * g++.dg/init/pr88375-2.C: New test. + * g++.dg/init/pr88375.C: New test. + +2018-12-19 David Malcolm + + * c-c++-common/Wtautological-compare-ranges.c: New test. + * g++.dg/cpp0x/pr51420.C: Add -fdiagnostics-show-caret and update + expected output. + * g++.dg/diagnostic/bad-binary-ops.C: Update expected output from + 1-location form to 3-location form, with labelling of ranges with + types. Add examples of id-expression nodes with namespaces. + * g++.dg/diagnostic/param-type-mismatch-2.C: Likewise. + +2018-12-19 David Malcolm + + PR c++/43064 + PR c++/43486 + * c-c++-common/pr51712.c (valid2): Mark xfail as passing on C++. + * g++.dg/cpp0x/constexpr-47969.C: Update column of expected error. + * g++.dg/cpp0x/constexpr-ex2.C: Likewise. + * g++.dg/cpp0x/scoped_enum2.C: Likewise. + * g++.dg/cpp1z/decomp48.C: Update expected location of warning + for named local variables to use that of the local variable. + * g++.dg/ext/vla1.C: Update column. + * g++.dg/init/array43.C: Update expected column to be that of the + initializer. + * g++.dg/init/initializer-string-too-long.C: New test. + * g++.dg/init/new44.C: Add "-ftrack-macro-expansion=0". + * g++.dg/init/pr43064-1.C: New test. + * g++.dg/init/pr43064-2.C: New test. + * g++.dg/init/pr43064-3.C: New test. + * g++.dg/other/fold1.C: Update column of expected error. + * g++.dg/parse/crash36.C: Likewise. + * g++.dg/plugin/diagnostic-test-expressions-1.C: Add negative + integer and float expressions. + * g++.dg/template/defarg6.C: Move expected error to the default + argument; add expected message about where instantiated. + * g++.dg/wrappers/Wparentheses.C: New test. + * g++.old-deja/g++.bugs/900402_02.C: Update column of expected + error. + +2018-12-19 Paul A. Clarke + + * gcc.target/powerpc/ssse3-check.h: Enable tests to run. + * gcc.target/powerpc/ssse3-pabsb.c: Code fixes for strict aliasing + issues. + * gcc.target/powerpc/ssse3-pabsd.c: Likewise. + * gcc.target/powerpc/ssse3-palignr.c: Likewise. + * gcc.target/powerpc/ssse3-phaddd.c: Likewise. + * gcc.target/powerpc/ssse3-phaddsw.c: Likewise. + * gcc.target/powerpc/ssse3-phaddw.c: Likewise. + * gcc.target/powerpc/ssse3-phsubd.c: Likewise. + * gcc.target/powerpc/ssse3-phsubw.c: Likewise. + * gcc.target/powerpc/ssse3-pmulhrsw.c: Likewise. + * gcc.target/powerpc/ssse3-pshufb.c: Likewise. + * gcc.target/powerpc/ssse3-psignb.c: Likewise. + * gcc.target/powerpc/ssse3-psignd.c: Likewise. + * gcc.target/powerpc/ssse3-psignw.c: Likewise. + * gcc.target/powerpc/ssse3-vals.h: Provide input data as a union. + +2018-12-19 Thomas Preud'homme + + * gcc.target/arm/cmse/baseline/softfp.c: Force an FPU. + +2018-12-19 Tom de Vries + + * gcc.dg/goacc/nvptx-merged-loop.c: Move to + libgomp/testsuite/libgomp.oacc-c-c++-common. + * gcc.dg/goacc/nvptx-sese-1.c: Same. + +2018-12-19 Tom de Vries + + * lib/scanoffloadrtl.exp: New file. + * gcc.dg-selftests/dg-final.exp (dg_final_directive_check_num_args): Add + offload-rtl. + +2018-12-19 Richard Biener + + PR tree-optimization/88533 + Revert + 2018-04-30 Richard Biener + + PR tree-optimization/28364 + PR tree-optimization/85275 + * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Adjust. + + * gcc.dg/tree-ssa/copy-headers-6.c: New testcase. + * gcc.dg/tree-ssa/copy-headers-7.c: Likewise. + * gcc.dg/tree-ssa/ivopt_mult_1.c: Un-XFAIL. + * gcc.dg/tree-ssa/ivopt_mult_2.c: Likewise. + +2018-12-19 Jakub Jelinek + + PR target/88541 + * gcc.target/i386/avx-vpclmulqdq-1.c: New test. + + PR c++/87934 + * g++.dg/cpp0x/constexpr-87934.C: New test. + +2018-12-19 Alexandre Oliva + + PR testsuite/86153 + PR middle-end/83239 + * gcc.dg/vrp-overflow-1.c: New. + + PR c++/87012 + * g++.dg/cpp0x/pr87012.C: New. + + PR c++/88146 + * g++.dg/cpp0x/inh-ctor32.C: New. + +2018-12-18 Jakub Jelinek + + PR rtl-optimization/87759 + * gcc.target/i386/pr87759.c: Require int128 effective target. + +2018-12-18 Vladimir Makarov + + PR rtl-optimization/87759 + * gcc.target/i386/pr87759.c: New. + +2018-12-18 Jakub Jelinek + + PR target/88464 + * gcc.target/i386/avx512f-pr88464-5.c: New test. + * gcc.target/i386/avx512f-pr88464-6.c: New test. + * gcc.target/i386/avx512f-pr88464-7.c: New test. + * gcc.target/i386/avx512f-pr88464-8.c: New test. + * gcc.target/i386/avx512vl-pr88464-5.c: New test. + * gcc.target/i386/avx512vl-pr88464-6.c: New test. + * gcc.target/i386/avx512vl-pr88464-7.c: New test. + * gcc.target/i386/avx512vl-pr88464-8.c: New test. + * gcc.target/i386/avx512vl-pr88464-9.c: New test. + * gcc.target/i386/avx512vl-pr88464-10.c: New test. + * gcc.target/i386/avx512vl-pr88464-11.c: New test. + * gcc.target/i386/avx512vl-pr88464-12.c: New test. + * gcc.target/i386/avx512vl-pr88464-13.c: New test. + * gcc.target/i386/avx512vl-pr88464-14.c: New test. + * gcc.target/i386/avx512vl-pr88464-15.c: New test. + * gcc.target/i386/avx512vl-pr88464-16.c: New test. + +2018-12-18 Kyrylo Tkachov + + * lib/target-supports.exp (check_effective_target_vect_usad_char): + Add non-SVE aarch64 to supported list. + +2018-12-18 Jakub Jelinek + + PR target/88513 + PR target/88514 + * gcc.target/i386/avx512f-pr88513-1.c: New test. + * gcc.target/i386/avx512f-pr88513-2.c: New test. + * gcc.target/i386/avx512vl-pr88464-1.c: New test. + * gcc.target/i386/avx512vl-pr88464-2.c: New test. + * gcc.target/i386/avx512vl-pr88464-3.c: New test. + * gcc.target/i386/avx512vl-pr88464-4.c: New test. + * gcc.target/i386/avx512vl-pr88513-1.c: New test. + * gcc.target/i386/avx512vl-pr88513-2.c: New test. + * gcc.target/i386/avx512vl-pr88513-3.c: New test. + * gcc.target/i386/avx512vl-pr88513-4.c: New test. + * gcc.target/i386/avx512vl-pr88514-1.c: New test. + * gcc.target/i386/avx512vl-pr88514-2.c: New test. + * gcc.target/i386/avx512vl-pr88514-3.c: New test. + +2018-12-18 Wei Xiao + + * g++.target/i386/mv16.C: Handle new march. + * gcc.target/i386/builtin_target.c: Ditto. + +2018-12-17 Peter Bergner + + PR target/87870 + * gcc.target/powerpc/pr87870.c: New test. + +2018-12-17 Jakub Jelinek + + PR c++/88410 + * g++.dg/cpp0x/pr88410.C: New test. + +2018-12-17 Steve Ellcey + + * gcc.target/aarch64/torture/aarch64-torture.exp: New file. + * gcc.target/aarch64/torture/simd-abi-1.c: New test. + * gcc.target/aarch64/torture/simd-abi-2.c: Ditto. + * gcc.target/aarch64/torture/simd-abi-3.c: Ditto. + * gcc.target/aarch64/torture/simd-abi-4.c: Ditto. + * gcc.target/aarch64/torture/simd-abi-5.c: Ditto. + * gcc.target/aarch64/torture/simd-abi-6.c: Ditto. + * gcc.target/aarch64/torture/simd-abi-7.c: Ditto. + +2018-12-17 Martin Sebor + + * gcc.dg/tree-ssa/builtin-snprintf-4.c: Adjust for ILP32. + +2018-12-17 Senthil Kumar Selvaraj + + PR rtl-optimization/88253 + * gcc.target/avr/pr88253.c: New test. + +2018-12-17 Richard Sandiford + + * gcc.dg/loop-versioning-1.c: New test. + * gcc.dg/loop-versioning-10.c: Likewise. + * gcc.dg/loop-versioning-11.c: Likewise. + * gcc.dg/loop-versioning-2.c: Likewise. + * gcc.dg/loop-versioning-3.c: Likewise. + * gcc.dg/loop-versioning-4.c: Likewise. + * gcc.dg/loop-versioning-5.c: Likewise. + * gcc.dg/loop-versioning-6.c: Likewise. + * gcc.dg/loop-versioning-7.c: Likewise. + * gcc.dg/loop-versioning-8.c: Likewise. + * gcc.dg/loop-versioning-9.c: Likewise. + * gfortran.dg/loop_versioning_1.f90: Likewise. + * gfortran.dg/loop_versioning_2.f90: Likewise. + * gfortran.dg/loop_versioning_3.f90: Likewise. + * gfortran.dg/loop_versioning_4.f90: Likewise. + * gfortran.dg/loop_versioning_5.f90: Likewise. + * gfortran.dg/loop_versioning_6.f90: Likewise. + * gfortran.dg/loop_versioning_7.f90: Likewise. + * gfortran.dg/loop_versioning_8.f90: Likewise. + +2018-12-16 Steven G. Kargl + + PR fortran/88116 + * gfortran.dg/pr88116_1.f90: New test. + * gfortran.dg/pr88116_2.f90: Ditto. + + PR fortran/88467 + * gfortran.dg/pr88467.f90: New test. + +2018-12-16 Steven G. Kargl + + * gfortran.dg/pr88138.f90: Remove extraneous 's' in comment. + +2018-12-16 Thomas Koenig + + PR fortran/88363 + * intent_out_13.f90: New test. + +2018-12-15 H.J. Lu + + PR target/88483 + * gcc.target/i386/stackalign/pr88483.c: Removed. Revert + reversion 267133. + +2018-12-15 Steven G. Kargl + + PR fortran/87944 + * gfortran.dg/pr87994_1.f90: New test. + * gfortran.dg/pr87994_2.f90: Ditto. + * gfortran.dg/pr87994_3.f90: Ditto. + +2018-12-16 Jakub Jelinek + + PR c++/88482 + * g++.dg/eh/builtin5.C: New test. + * g++.dg/eh/builtin6.C: New test. + * g++.dg/eh/builtin7.C: New test. + * g++.dg/eh/builtin8.C: New test. + * g++.dg/eh/builtin9.C: New test. + * g++.dg/eh/builtin10.C: New test. + * g++.dg/eh/builtin11.C: New test. + * g++.dg/parse/crash55.C: Adjust expected diagnostics. + +2018-12-15 Steven G. Kargl + + PR fortran/88138 + * gfortran.dg/pr88138.f90: new test. + +2018-12-15 Jakub Jelinek + + PR tree-optimization/88464 + PR target/88498 + * gcc.target/i386/avx512f-pr88462-1.c: Rename to ... + * gcc.target/i386/avx512f-pr88464-1.c: ... this. Fix up PR number. + Expect 4 vectorized loops instead of 3. + (f4): New function. + * gcc.target/i386/avx512f-pr88462-2.c: Rename to ... + * gcc.target/i386/avx512f-pr88464-2.c: ... this. Fix up PR number + and #include. + (avx512f_test): Prepare arguments for f4 and check the results. + * gcc.target/i386/avx512f-pr88464-3.c: New test. + * gcc.target/i386/avx512f-pr88464-4.c: New test. + +2018-12-15 Paolo Carlini + + PR c++/84644 + * g++.dg/cpp0x/decltype68.C: New. + * g++.dg/cpp0x/decltype-33838.C: Adjust. + * g++.dg/template/spec32.C: Likewise. + * g++.dg/template/ttp22.C: Likewise. + +2018-12-15 Jakub Jelinek + + PR target/88489 + * gcc.target/i386/avx512vl-vfixupimmsd-2.c: New test. + * gcc.target/i386/avx512vl-vfixupimmss-2.c: New test. + + PR rtl-optimization/88478 + * g++.dg/opt/pr88478.C: New test. + +2018-12-14 Martin Sebor + + PR tree-optimization/88372 + * gcc.dg/Walloc-size-larger-than-18.c: New test. + * gcc.dg/builtin-object-size-19.c: Same. + +2018-12-14 Martin Sebor + + PR tree-optimization/87096 + * gcc.dg/tree-ssa/builtin-snprintf-4.c: New test. + +2018-12-14 Alexandre Oliva + + PR c++/87814 + * g++.dg/cpp1z/pr87814.C: New. + +2018-12-14 H.J. Lu + + * gcc.target/i386/cf_check-1.c: New test. + * gcc.target/i386/cf_check-2.c: Likewise. + * gcc.target/i386/cf_check-3.c: Likewise. + * gcc.target/i386/cf_check-4.c: Likewise. + * gcc.target/i386/cf_check-5.c: Likewise. + +2018-12-14 Thomas Schwinge + Cesar Philippidis + + * c-c++-common/goacc/note-parallelism.c: New test. + * gfortran.dg/goacc/note-parallelism.f90: New test. + * c-c++-common/goacc/classify-kernels-unparallelized.c: Update. + * c-c++-common/goacc/classify-kernels.c: Likewise. + * c-c++-common/goacc/classify-parallel.c: Likewise. + * c-c++-common/goacc/classify-routine.c: Likewise. + * c-c++-common/goacc/kernels-1.c: Likewise. + * c-c++-common/goacc/kernels-double-reduction-n.c: Likewise. + * c-c++-common/goacc/kernels-double-reduction.c: Likewise. + * gfortran.dg/goacc/classify-kernels-unparallelized.f95: Likewise. + * gfortran.dg/goacc/classify-kernels.f95: Likewise. + * gfortran.dg/goacc/classify-parallel.f95: Likewise. + * gfortran.dg/goacc/classify-routine.f95: Likewise. + * gfortran.dg/goacc/kernels-loop-inner.f95: Likewise. + +2018-12-14 Alexandre Oliva + + PR c++/86823 + * g++.dg/pr86823.C: New. + +2018-12-14 Jakub Jelinek + + PR c++/82294 + PR c++/87436 + * g++.dg/tree-ssa/pr82294.C: New test. + * g++.dg/tree-ssa/pr87436.C: New test. + +2018-11-14 Thomas Preud'homme + + * gcc.target/arm/thumb2-slow-flash-data-2.c: Require arm_fp_ok + effective target. + * gcc.target/arm/thumb2-slow-flash-data-3.c: Likewise. + * gcc.target/arm/thumb2-slow-flash-data-4.c: Likewise. + * gcc.target/arm/thumb2-slow-flash-data-5.c: Likewise. + +2018-12-14 H.J. Lu + + PR target/88483 + * gcc.target/i386/stackalign/pr88483.c: New test. + +2018-12-14 Eric Botcazou + + * gnat.dg/max_size.adb: New test. + * gnat.dg/max_size_pkg.ads: Likewise. + +2018-12-14 Claudiu Zissulescu + + * gcc.target/arc/milli-1.c: New test. + +2018-12-13 Michael Ploujnikov + + * gcc.dg/lto/pr88297_0.c: New test. + * gcc.dg/lto/pr88297_1.c: New test. + +2018-12-13 Jakub Jelinek + + PR tree-optimization/88444 + * gcc.dg/tree-ssa/pr88444.c: New test. + + PR rtl-optimization/88470 + * gcc.target/i386/pr88470.c: New test. + +2018-12-13 Vladimir Makarov + + PR rtl-optimization/88414 + * gcc.target/i386/pr88414.c: New. + +2018-12-13 Marek Polacek + + PR c++/88216 - ICE with class type in non-type template parameter. + * g++.dg/cpp2a/nontype-class9.C: New test. + +2018-12-13 Jakub Jelinek + + PR rtl-optimization/88416 + * gcc.target/i386/pr88416.c: New test. + + PR tree-optimization/88464 + * gcc.target/i386/avx512f-pr88462-1.c: New test. + * gcc.target/i386/avx512f-pr88462-2.c: New test. + +2018-12-13 Nathan Sidwell + + PR c++/87531 + * g++.dg/lookup/pr87531-2.C: New. + +2018-12-13 Rainer Orth + + PR testsuite/88041 + * lib/gdc-dg.exp (gdc-dg-test): Strip gdc.test prefix. + * gdc.test/gdc-test.exp (gdc-do-test): Create $subdir link. + Include $subdir in filename. + Cleanup generated source. + * gdc.test/compilable/ddoc9676a.d (EXTRA_SOURCES): Don't use + absolute path. + * gdc.test/compilable/depsOutput9948.d: Likewise. + +2018-12-13 Jakub Jelinek + + PR testsuite/88454 + * gcc.dg/tree-ssa/split-path-5.c (__ctype_ptr__): Change type from + const char * to const signed char *. + (bmhi_init): Change pattern parameter's type the same. Use + __builtin_strlen instead of undeclared strlen. + +2018-12-13 Andreas Krebbel + + * gcc.target/s390/zvector/vec-double-1.c: New test. + * gcc.target/s390/zvector/vec-double-2.c: New test. + +2018-12-13 Wei Xiao + + * gcc.target/i386/funcspec-56.inc: Handle new march. + +2018-12-13 Jakub Jelinek + + PR target/88465 + * gcc.target/i386/avx512f-pr88465.c: New test. + * gcc.target/i386/avx512dq-pr88465.c: New test. + + PR target/88461 + * gcc.target/i386/pr88461.c: New test. + +2018-12-12 Paolo Carlini + + * g++.dg/other/static5.C: New. + +2018-12-12 Segher Boessenkool + + PR testsuite/88318 + * gcc.dg/independent-cloneids-1.c: Use ^ not \m. + +2018-12-12 Joel Brobecker + + * gcc.dg/lto/20100430-1_0.c: Add dg-require-profiling requirement. + +2018-12-12 Jakub Jelinek + + PR c++/88446 + * g++.dg/cpp2a/is-constant-evaluated3.C: New test. + + PR c++/88449 + * g++.dg/cpp2a/is-constant-evaluated1.C: Change from dg-do compile + to dg-do run. + (e): Adjust comment with correct expected value. + (main): Expect e == 1. + * g++.dg/cpp2a/is-constant-evaluated2.C: New test. + +2018-12-11 Steven G. Kargl + + PR fortran/88155 + * gfortran.dg/pr70870_1.f90: Update testcase to use -std=gnu. + * gfortran.dg/pr88155.f90: New test. + +2018-12-11 Steven G. Kargl + + PR fortran/88249 + * gfortran.dg/pr88249.f90: New test. + +2018-12-11 Jakub Jelinek + + PR tree-optimization/80520 + * gcc.dg/tree-ssa/split-path-11.c (foo): Make the test ilp32 target + clean. + +2018-12-11 Marek Polacek + + PR c++/86608 - reading constexpr volatile variable. + * g++.dg/cpp0x/constexpr-volatile2.C: New test. + * g++.dg/cpp0x/pr65327.C: Add dg-error. + +2018-12-11 Paolo Carlini + + * g++.dg/pr53037-4.C: Test the first two locations too. + +2018-12-11 Jakub Jelinek + + PR tree-optimization/88444 + * gcc.dg/pr88444.c: New test. + +2018-12-11 Dimitar Dimitrov + + * gcc.target/i386/pr52813.c: New test. + +2018-12-11 Jakub Jelinek + + PR target/88425 + * gcc.target/i386/pr88425.c: New test. + + PR sanitizer/88426 + * c-c++-common/ubsan/float-cast-overflow-11.c: New test. + +2018-12-11 Yannick Moy + + * gnat.dg/ghost4.adb: New testcase. + +2018-12-11 Ed Schonberg + + * gnat.dg/iter4.adb: New testcase. + +2018-12-11 Hristian Kirtchev + + * gnat.dg/valid4.adb, gnat.dg/valid4_pkg.adb, + gnat.dg/valid4_pkg.ads: New testcase. + +2018-12-11 Eric Botcazou + + * gnat.dg/packed_array.adb, gnat.dg/packed_array.ads, + gnat.dg/packed_array_pkg.ads: New testcase. + +2018-12-11 Hristian Kirtchev + + * gnat.dg/ghost3.adb, gnat.dg/ghost3.ads: New testcase. + +2018-12-11 Ed Schonberg + + * gnat.dg/bip_cu.adb, gnat.dg/bip_cu_constructor.adb, + gnat.dg/bip_cu_constructor.ads, gnat.dg/bip_cu_t.adb, + gnat.dg/bip_cu_t.ads: New testcase. + +2018-12-11 Hristian Kirtchev + + * gnat.dg/ghost2.adb, gnat.dg/ghost2.ads: New testcase. + +2018-12-11 Eric Botcazou + + * gnat.dg/atomic11.adb, gnat.dg/atomic11_pkg1.ads, + gnat.dg/atomic11_pkg2.ads: New testcase. + +2018-12-11 Ed Schonberg + + * gnat.dg/aspect1.adb, gnat.dg/aspect1_horizontal.adb, + gnat.dg/aspect1_horizontal.ads, gnat.dg/aspect1_vectors_2d.ads: + New testcase. + * gnat.dg/static_pred1.adb: Expect an error message. + +2018-12-11 Jakub Jelinek + + PR lto/86004 + * lib/target-supports.exp (check_effective_target_lto_incremental): + New. + * g++.dg/lto/pr69137_0.C: Require lto_incremental effective target. + * g++.dg/lto/pr65316_0.C: Likewise. + * g++.dg/lto/pr85176_0.C: Likewise. + * g++.dg/lto/pr79000_0.C: Likewise. + * g++.dg/lto/pr66180_0.C: Likewise. + * g++.dg/lto/pr65193_0.C: Likewise. + * g++.dg/lto/pr69077_0.C: Likewise. + * g++.dg/lto/pr68057_0.C: Likewise. + * g++.dg/lto/pr66705_0.C: Likewise. + * g++.dg/lto/pr65302_0.C: Likewise. + * g++.dg/lto/20091002-1_0.C: Likewise. + * g++.dg/lto/pr81940_0.C: Likewise. + * g++.dg/lto/pr64043_0.C: Likewise. + * g++.dg/lto/pr65549_0.C: Likewise. + * g++.dg/lto/pr69133_0.C: Likewise. + * gfortran.dg/lto/pr79108_0.f90: Likewise. + +2018-12-10 Jeff Law + + PR tree-optimization/80520 + * gcc.dg/tree-ssa/split-path-5.c: Update expected output. + * gcc.dg/tree-ssa/split-path-11.c: New test. + +2018-12-10 Steven G. Kargl + + PR fortran/97922 + * gfortran.dg/io_constraints_8.f90: Update error message. + * gfortran.dg/pr87922.f90: New test. + +2018-12-10 Martin Sebor + + PR tree-optimization/86196 + * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use + base size only of arrays. + +2018-12-10 Uros Bizjak + + * gcc.dg/sinatan-1.c: Use dg-add-options ieee. + +2018-12-10 Steven G. Kargl + + PR fortran/88269 + * gfortran.dg/pr88269.f90: New test. + +2018-12-10 Uros Bizjak + + PR target/88418 + * gcc.target/i386/pr88418.c: New test. + +2018-12-10 Richard Biener + + PR tree-optimization/88427 + * gcc.dg/pr88427.c: New testcase. + +2018-12-10 Jakub Jelinek + + PR ipa/87955 + * gcc.target/i386/pr87955.c: Add -msse2 -mfpmath=sse to dg-options. + +2018-12-10 Martin Jambor + + PR ipa/88214 + * gcc.dg/ipa/pr88214.c: New test. + +2018-12-10 Jakub Jelinek + + PR testsuite/88369 + * gcc.dg/vect/vect-ivdep-1.c: Prune versioning for alignment messages. + * gcc.dg/vect/vect-ivdep-2.c: Likewise. + * gcc.dg/vect/nodump-vect-opt-info-1.c: Likewise. + * g++.dg/vect/pr33426-ivdep.cc: Likewise. + * g++.dg/vect/pr33426-ivdep-2.cc: Likewise. + * g++.dg/vect/pr33426-ivdep-3.cc: Likewise. + * g++.dg/vect/pr33426-ivdep-4.cc: Likewise. + +2018-12-10 Richard Biener + + PR middle-end/88415 + * gcc.dg/gomp/pr88415.c: New testcase. + +2018-12-10 Eric Botcazou + + * c-c++-common/patchable_function_entry-decl.c: Pass -mcpu=gr6 for + Visium and remove other specific handling. + * c-c++-common/patchable_function_entry-default.c: Likewise. + * c-c++-common/patchable_function_entry-definition.c: Likewise. + +2018-12-09 Steven G. Kargl + + PR fortran/88205 + * gfortran.dg/pr88205.f90: New unit. + +2018-12-09 Iain Buclaw + + PR d/88039 + * gdc.test/gdc-test.exp (gdc-convert-args): Handle -D. + (dmd2dg): Check generated html in ddoc tests. + (gdc-do-test): Set dg-do-what-default to compile for ddoc tests. + +2018-12-09 Steven G. Kargl + + PR fortran/88206 + * gfortran.dg/pr88206.f90: New test. + +2018-12-09 Steven G. Kargl + + PR fortran/88228 + * gfortran.dg/pr88228.f90: New test. + +2018-12-09 Thomas Schwinge + + * gfortran.dg/goacc/combined-directives-3.f90: New file. + +2018-12-09 Cesar Philippidis + + * c-c++-common/goacc/combined-directives-3.c: New test. + * c-c++-common/goacc/loop-2-kernels.c (void K): Adjust test. + * c-c++-common/goacc/loop-2-parallel.c (void P): Adjust test. + * c-c++-common/goacc/loop-3.c (void p2): Adjust test. + +2018-12-09 Thomas Schwinge + + * gfortran.dg/goacc/loop-2-kernels.f95: Update. + * gfortran.dg/goacc/loop-2-parallel.f95: Likewise. + * gfortran.dg/goacc/nested-parallelism.f90: Likewise. + + * gfortran.dg/goacc/loop-2.f95: Split into... + * gfortran.dg/goacc/loop-2-kernels-nested.f95: ... this new file... + * gfortran.dg/goacc/loop-2-kernels-tile.f95: ..., and this new file... + * gfortran.dg/goacc/loop-2-kernels.f95: ..., and this new file... + * gfortran.dg/goacc/loop-2-parallel-3.f95: ..., and this new file... + * gfortran.dg/goacc/loop-2-parallel-nested.f95: ..., and this new + file... + * gfortran.dg/goacc/loop-2-parallel-tile.f95: ..., and this new file... + * gfortran.dg/goacc/loop-2-parallel.f95: ..., and this new file. + + PR fortran/88420 + * gfortran.dg/goacc/loop-1-2.f95: Update. + * gfortran.dg/goacc/loop-1.f95: Likewise. + +2018-12-08 Steven G. Kargl + + PR fortran/88048 + * gfortran.dg/pr88048.f90: New test. + +2018-12-08 Steven G. Kargl + + PR fortran/87945 + * gfortran.dg/pr87945_1.f90: New test. + * gfortran.dg/pr87945_2.f90: New test. + +2018-12-08 Steven G. Kargl + + PR fortran/88025 + * gfortran.dg/pr88025.f90: New test. + +2018-12-08 Steven G. Kargl + + * gfortran.dg/pr88357_1.f90: New test. + * gfortran.dg/pr88357_2.f90: New test. + +2018-12-08 Jakub Jelinek + + PR fortran/88304 + * gfortran.fortran-torture/compile/pr88304-2.f90: New test. + +2018-12-07 Paolo Carlini + + * g++.dg/other/bitfield7.C: New. + * g++.dg/parse/bitfield8.C: Likewise. + * g++.dg/parse/bitfield9.C: Likewise. + * g++.dg/pr53037-4.C: Test the locations too. + +2018-12-07 Peter Bergner + + PR target/87496 + * gcc.target/powerpc/pr87496.c: Rename from this... + * gcc.target/powerpc/pr87496-1.c: ...to this. Update comment. + * gcc.target/powerpc/pr87496-2.c: New test. + * gcc.target/powerpc/pr87496-3.c: New test. + +2018-12-07 Kyrylo Tkachov + + * gcc.target/aarch64/sve/override_sve_width_1.c: New test. + +2018-12-07 Jeff Law + + PR middle-end/87813 + * gcc.c-torture/builtins/strnlen.x: New file to filter -Og from + options to test. + +2018-12-07 Vladimir Makarov + + PR rtl-optimization/88349 + * gcc.target/mips/pr88349.c: New. + +2018-12-07 Jakub Jelinek + + PR c++/86669 + * g++.dg/cpp0x/initlist105.C: New test. + * g++.dg/cpp0x/initlist106.C: New test. + * g++.dg/other/pr86669.C: New test. + +2018-12-07 Richard Sandiford + + * gcc.target/aarch64/sve/pred_elim_2.c: New test. + +2018-12-07 Richard Sandiford + + * gcc.target/aarch64/sve/pred_elim_1.c: New test. + +2018-12-07 Rainer Orth + + * gcc.target/i386/ipa-stack-alignment-2.c: Add + -fomit-frame-pointer to dg-options. + +2018-12-07 Jakub Jelinek + + PR target/85593 + * gcc.target/i386/pr85593.c: New test. + + PR rtl-optimization/85770 + * gcc.target/i386/pr85770.c: Require int128 effective target. + + PR fortran/88377 + * gfortran.dg/gomp/pr88377.f90: New test. + + PR c/88367 + * gcc.dg/tree-ssa/pr88367.c: New test. + + PR c++/87506 + * g++.dg/cpp0x/constexpr-87506.C: New test. + +2018-12-06 Paolo Carlini + + * g++.dg/parse/bitfield7.C: New. + * g++.dg/other/bitfield2.C: Check location and type. + * g++.dg/parse/bitfield1.C: Likewise. + * g++.dg/parse/bitfield2.C: Likewise. + +2018-12-06 Alexandre Oliva + + PR c++/86747 + * g++.dg/pr86747.C: New. + + PR c++/86397 + * g++.dg/cpp0x/pr86397-1.C: New. + * g++.dg/cpp0x/pr86397-2.C: New. + +2018-12-06 Paul A. Clarke + + PR target/88316 + * gcc.target/powerpc/bmi-check.h: Remove test for + __BUILTIN_CPU_SUPPORTS__, thereby enabling test code to run. + * gcc.target/powerpc/bmi2-check.h: Likewise. + * gcc.target/powerpc/mmx-check.h: Likewise. + * gcc.target/powerpc/sse-check.h: Likewise. + * gcc.target/powerpc/sse2-check.h: Likewise. + * gcc.target/powerpc/sse3-check.h: Likewise. + +2018-12-06 Paul A. Clarke + + PR target/88316 + * gcc.target/powerpc/mmx-packssdw-1.c: Fixes for big-endian. + * gcc.target/powerpc/mmx-packsswb-1.c: Likewise. + * gcc.target/powerpc/mmx-packuswb-1.c: Likewise. + * gcc.target/powerpc/mmx-pmulhw-1.c: Likewise. + * gcc.target/powerpc/sse-cvtpi32x2ps-1.c: Likewise. + * gcc.target/powerpc/sse-cvtpu16ps-1.c: Likewise. + * gcc.target/powerpc/sse-cvtss2si-1.c: Likewise. + * gcc.target/powerpc/sse-cvtss2si-2.c: Likewise. + * gcc.target/powerpc/sse2-pshufhw-1.c: Likewise. + * gcc.target/powerpc/sse2-pshuflw-1.c: Likewise. + +2018-12-06 Marek Polacek + + PR c++/88373 - wrong parse error with ~. + * g++.dg/cpp2a/fn-template19.C: New test. + +2018-12-06 Richard Sandiford + + * gcc.dg/vect/vect-over-widen-23.c: Remove unwanted line. + +2018-12-06 Segher Boessenkool + + * c-c++-common/torture/asm-inline.c: New testcase. + * gcc.dg/asm-qual-2.c: Test asm inline, too. + +2018-12-06 Segher Boessenkool + + PR inline-asm/55681 + * gcc.dg/asm-qual-1.c: Test that "const" and "restrict" are refused. + * gcc.dg/asm-qual-2.c: New test, test that asm-qualifiers are allowed + in any order, but that duplicates are not allowed. + +2018-12-06 Jeff Law + + PR testsuite/86540 + * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Skip the post switch conversion + tests on aarch64. + * gcc.dg/tree-ssa/pr77445-2.c: Similarly. + +2018-12-06 David Malcolm + + PR c++/85110 + * g++.dg/diagnostic/missing-default-args.C: New test. + * g++.dg/diagnostic/param-type-mismatch-3.C: New test. + * g++.dg/diagnostic/param-type-mismatch.C: Add tests for invalid + references and incomplete types. + * g++.dg/warn/Wconversion-null-4.C: New test. + +2018-12-06 Jakub Jelinek + + PR target/87598 + * gcc.target/aarch64/asm-5.c: New test. + + PR tree-optimization/85726 + * gcc.dg/tree-ssa/pr85726-1.c: New test. + * gcc.dg/tree-ssa/pr85726-2.c: New test. + * gcc.dg/tree-ssa/pr85726-3.c: New test. + * gcc.dg/tree-ssa/pr85726-4.c: New test. + + PR fortran/88304 + * gfortran.fortran-torture/compile/pr88304.f90: New test. + +2018-12-06 Richard Biener + + PR middle-end/63184 + * c-c++-common/pr19807-2.c: Try link only on x86, add xfailed + optimized dump scanning. + * c-c++-common/pr19807-3.c: Likewise. + +2018-12-06 Paolo Carlini + + * g++.dg/parse/bitfield6b.C: New. + * g++.dg/parse/bitfield3.C: Test location and type. + +2018-12-06 Iain Sandoe + + * lib/c-compat.exp (compat-use-alt-compiler): + Handle -fno-diagnostics-show-line-numbers. + (compat_setup_dfp): Likewise. + +2018-12-05 Jeff Law + + PR rtl-optimization/85770 + * gcc.target/i386/pr85770.c: New test. + +2018-12-05 Martin Sebor + + PR c/87028 + * c-c++-common/Wstringop-truncation.c: Remove xfails. + * gcc.dg/Wstringop-truncation-5.c: New test. + * gcc.dg/strcmpopt_1.c: Adjust. + * gcc.dg/tree-ssa/pr79697.c: Same. + +2018-12-05 Richard Sandiford + + PR tree-optimization/88064 + * gcc.dg/vect/vect-over-widen-23.c: New test. + +2018-12-05 David Malcolm + + * lib/gcc-dg.exp (process-message): Change verbosity level of + "verbose" from 2 to 3. + (dg-locus): Likewise. + +2018-12-05 Richard Biener + + PR middle-end/63184 + * c-c++-common/pr19807-2.c: New testcase. + * c-c++-common/pr19807-3.c: Likewise. + +2018-12-05 Rainer Orth + + PR testsuite/88208 + * gcc.target/sparc/attr-aligned.c (MAXALIGN) + [__sparcv9 || __arch64__]: Define. + +2018-12-05 Rainer Orth + + * gcc.target/sparc/20181129-1.c: Compile with -std=c99. + * gcc.target/sparc/20181129-2.c: Likewise. + +2018-12-05 Jakub Jelinek + + PR tree-optimization/87360 + * g++.dg/opt/pr87360.C: New test. + * gfortran.dg/pr87360.f90: New test. + + PR c++/87897 + * g++.dg/init/const13.C: New test. + + PR sanitizer/88333 + * c-c++-common/asan/pr88333.c: New test. + +2018-12-05 Alexandre Oliva + + PR c++/85569 + * g++.dg/cpp1z/pr85569.C: New. + +2018-12-05 Chenghua Xu + + * gcc.target/mips/msa.c: Adjusted clti_.df $wn,$wn,5 + to clei_.df $wn,$wn,4 in test31. + +2018-12-04 Paolo Carlini + + PR c++/84636 + * g++.dg/parse/bitfield6.C: New. + +2018-12-04 Jakub Jelinek + + PR tree-optimization/87320 + * gcc.dg/pr87320.c: New test. + +2018-12-04 Jeff Law + + * gcc.dg/strlenopt-58.c: Handle targets with 2 byte wchar_t. + +2018-12-04 Martin Sebor + + * gcc.target/i386/attr-aligned-2.c: New test. + * gcc.target/i386/falign-functions-3.c: New test. + +2018-12-04 Jakub Jelinek + + PR target/88188 + * gcc.target/powerpc/pr88188-2.c: New test. + +2018-12-04 Marek Polacek + + PR c++/88184 - ICE when treating name as template-name. + * g++.dg/cpp2a/fn-template17.C: New test. + * g++.dg/cpp2a/fn-template18.C: New test. + +2018-12-04 David Edelsohn + + * gcc.dg/live-patching-2.c: Require LTO. + +2018-12-04 Iain Sandoe + + PR testsuite/88310 + * lib/target-supports.exp (check_effective_target_freorder): + Suppress warnings for missing profile. + +2018-12-04 Jakub Jelinek + + * g++.old-deja/g++.oliva/typename1.C: Don't expect any diagnostics + for C++2a. + * g++.old-deja/g++.oliva/typename2.C: Likewise. + + PR tree-optimization/88285 + * gcc.dg/predict-22.c: Only compile on freorder targets. + +2018-12-04 Julian Brown + + * c-c++-common/goacc/asyncwait-1: Update expected errors and add a + test for "wait (". + +2018-12-04 Jakub Jelinek + + PR c++/88103 + * g++.dg/cpp0x/rv-cond3.C: New test. + +2018-12-04 Richard Biener + + PR tree-optimization/88315 + * gcc.dg/vect/slp-reduc-sad.c: Adjust to provide non-trivial + initial value. + +2018-12-03 Jakub Jelinek + + PR middle-end/64242 + * gcc.c-torture/execute/pr64242.c (foo, bar): New functions. + (p): Make it void *volatile instead of volatile void *. + (q): New variable. + (main): Add a dummy 32-byte aligned variable and escape its address. + Don't require that the two __builtin_alloca (0) calls return the + same address, just require that their difference is smaller than + 1024 bytes. + +2018-12-03 Marek Polacek + + * g++.dg/cpp1y/lambda-generic-83856.C: Use __SIZE_TYPE__. + +2018-12-03 Ed Schonberg + + * gnat.dg/array33.adb: New testcase. + +2018-12-03 Eric Botcazou + + * gnat.dg/array32.adb, gnat.dg/array32.ads: New testcase. + +2018-12-03 Eric Botcazou + + * gnat.dg/generic_inst2.adb, gnat.dg/generic_inst2.ads, + gnat.dg/generic_inst2_c.ads: New testcase. + +2018-12-03 Eric Botcazou + + * gnat.dg/overload2.adb, gnat.dg/overload2_p.adb, + gnat.dg/overload2_p.ads, gnat.dg/overload2_q.adb, + gnat.dg/overload2_q.ads: New testcase. + +2018-12-03 Fritz Reese + Mark Eggleston + + PR fortran/87919 + * gfortran.dg/array_temporaries_5.f90: New test. + * gfortran.dg/dec_bitwise_ops_3.f90: Ditto. + * gfortran.dg/dec_d_lines_3.f: Ditto. + * gfortran.dg/dec_exp_4.f90: Ditto. + * gfortran.dg/dec_exp_5.f90: Ditto. + * gfortran.dg/dec_io_7.f90: Ditto. + * gfortran.dg/dec_structure_24.f90: Ditto. + * gfortran.dg/dec_structure_25.f90: Ditto. + * gfortran.dg/dec_structure_26.f90: Ditto. + * gfortran.dg/dec_structure_27.f90: Ditto. + * gfortran.dg/dec_type_print_3.f90: Ditto. + * gfortran.dg/init_flag_20.f90: Ditto. + +2018-12-03 Jeff Law + + * gcc.dg/pr59963-2.c: Make testnames unique. + * gcc.dg/tree-ssa/builtin-sprintf-warn-18.c: Likewise. + +2018-12-03 Ilya Leoshkevich + + * gcc.target/s390/nodatarel-1.c: Expect .LANCHOR0@GOTENT instead + of a@GOTENT. + * gcc.target/s390/section-anchors.c: New test. + * gcc.target/s390/section-anchors2.c: New test. + * gcc.target/s390/section-anchors3.c: New test. + +2018-12-03 Richard Biener + + PR tree-optimization/88301 + * gcc.dg/tree-ssa/evrp13.c: New testcase. + +2018-12-03 Jakub Jelinek + + PR tree-optimization/71109 + * gcc.c-torture/compile/pr71109.c: New test. + + PR target/88287 + * g++.target/aarch64/sve/vcond_1.C: Adjust for comparison + canonicalization. + +2018-12-03 Ilya Leoshkevich + + PR target/80080 + * gcc.target/s390/pr80080-4.c: New test. + +2018-12-02 Andi Kleen + + * gcc.target/i386/returninst1.c: Run on 64bit only. + * gcc.target/i386/returninst2.c: Dito. + * gcc.target/i386/returninst3.c: Dito. + +2018-12-02 Jakub Jelinek + + PR target/88278 + * gcc.target/i386/pr88278.c: New test. + * gcc.target/i386/pr53759.c: Don't expect vmovlps insn, expect vmovq + instead. + * gcc.target/i386/pr53759-2.c: New test. + + * c-c++-common/gomp/cancel-1.c (f2): Add various taskloop related + tests. + + PR sanitizer/88291 + * c-c++-common/asan/pr88291.c: New test. + + PR c++/88258 + * g++.dg/gomp/pr88258.C: New test. + +2018-12-01 Marek Polacek + + Implement P0634R3, Down with typename! + * g++.dg/cpp0x/alias-decl-43.C: Adjust dg-error. + * g++.dg/cpp0x/decltype67.C: Only expect error in c++17_down. + * g++.dg/cpp1z/typename1.C: New test. + * g++.dg/cpp2a/typename1.C: New test. + * g++.dg/cpp2a/typename10.C: New test. + * g++.dg/cpp2a/typename11.C: New test. + * g++.dg/cpp2a/typename2.C: New test. + * g++.dg/cpp2a/typename3.C: New test. + * g++.dg/cpp2a/typename4.C: New test. + * g++.dg/cpp2a/typename5.C: New test. + * g++.dg/cpp2a/typename6.C: New test. + * g++.dg/cpp2a/typename7.C: New test. + * g++.dg/cpp2a/typename8.C: New test. + * g++.dg/cpp2a/typename9.C: New test. + * g++.dg/diagnostic/missing-typename.C: Only run the test in + c++17_down. + * g++.dg/other/crash-9.C: Add template disambiguator. + * g++.dg/other/nontype-1.C: Only expect error in c++17_down. + * g++.dg/parse/crash13.C: Likewise. + * g++.dg/parse/error36.C: Likewise. + * g++.dg/parse/no-typename1.C: Likewise. + * g++.dg/parse/typedef2.C: Likewise. + * g++.dg/parse/typename11.C: Likewise. + * g++.dg/template/crash48.C: Adjust dg-error. + * g++.dg/template/dependent-name5.C: Only expect error in c++17_down. + Add dg-error. + * g++.dg/template/error29.C: Only expect error in c++17_down. + * g++.dg/template/nested5.C: Add template disambiguator. + * g++.dg/template/pr84789.C: Only expect error in c++17_down. + * g++.dg/template/static30.C: Add dg-error. + * g++.dg/template/typedef6.C: Adjust dg-error. + * g++.dg/template/typename3.C: Only expect error in c++17_down. + + PR c++/83856 + * g++.dg/cpp1y/lambda-generic-83856.C: New test. + + PR c++/79629 + * g++.dg/other/error35.C: New test. + + PR c++/87523 + * g++.dg/cpp1y/lambda-generic-87523.C: New test. + +2018-12-01 Jeff Law + + * gcc.dg/predict-22.c: Update expected output. + +2018-12-01 Jakub Jelinek + + PR target/54589 + * gcc.target/i386/pr54589.c: New test. + +2018-11-30 Jakub Jelinek + + PR testsuite/85368 + * lib/target-supports.exp (logical_op_short_circuit): Remove. + * gcc.dg/builtin-bswap-7.c: Remove logical_op_short_circuit + effective target, drop -mbranch-cost= options from the test and + instead pass --param logical-op-non-short-circuit=0 or + --param logical-op-non-short-circuit=1 depending on what the + tests meant to test. + * gcc.dg/pr21643.c: Likewise. + * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-2.c: Likewise. + * gcc.dg/tree-ssa/phi-opt-11.c: Likewise. + * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-1.c: Likewise. + * gcc.dg/tree-ssa/ssa-dom-thread-4.c: Likewise. + * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-3.c: Likewise. + * gcc.dg/tree-ssa/ssa-thread-14.c: Likewise. + * gcc.dg/tree-ssa/vrp47.c: Likewise. + * gcc.dg/tree-ssa/ssa-dom-thread-11.c: Likewise. + * gcc.dg/tree-ssa/ssa-dom-thread-16.c: Likewise. + * gcc.dg/tree-ssa/ssa-dom-thread-14.c: Likewise. + * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-5.c: Likewise. + * gcc.dg/tree-ssa/vrp87.c: Likewise. + * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-6.c: Likewise. + * gcc.dg/tree-ssa/phi-opt-2.c: Likewise. + * gcc.dg/tree-ssa/ssa-ifcombine-13.c: Likewise. + * gcc.dg/tree-ssa/ssa-thread-11.c: Likewise. + * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-4.c: Likewise. + * gcc.dg/tree-ssa/forwprop-28.c: Likewise. + * gcc.dg/binop-xor1.c: Likewise. + * gcc.dg/pr46309.c: Likewise. + * gcc.dg/tree-ssa/ssa-dom-thread-18.c: New test. + * gcc.dg/tree-ssa/reassoc-32.c: Add + --param logical-op-non-short-circuit=1 to dg-options. + * gcc.dg/tree-ssa/reassoc-33.c: Likewise. + * gcc.dg/tree-ssa/reassoc-34.c: Likewise. + * gcc.dg/tree-ssa/reassoc-35.c: Likewise. + * gcc.dg/tree-ssa/reassoc-36.c: Likewise. + +2018-11-30 Wilco Dijkstra + + PR middle-end/64242 + * gcc.c-torture/execute/pr64242.c: New test. + +2018-11-30 David Malcolm + + * g++.dg/parse/missing-parens-fixit.C: New test. + +2018-11-30 Michael Ploujnikov + + * gcc.dg/independent-cloneids-1.c: New test. + +2018-11-30 Jakub Jelinek + + PR debug/85550 + * g++.dg/debug/dwarf2/pr85550.C: New test. + +2018-11-30 Thomas Schwinge + + PR c/87924 + * c-c++-common/goacc/asyncwait-5.c: Update. + * gfortran.dg/goacc/asyncwait-5.f: Likewise. + + * c-c++-common/goacc/asyncwait-5.c: New file. + * gfortran.dg/goacc/asyncwait-5.f: Likewise. + +2018-11-30 Peter Bergner + + PR target/87496 + * gcc.target/powerpc/pr86324-1.c: Add dg-skip-if selector. + Add -mcpu=power7 option. + +2018-11-30 David Malcolm + + PR preprocessor/88257 + * c-c++-common/Wformat-pr88257.c: New test. + * c-c++-common/Wformat-pr88257.h: New test header. + * c-c++-common/empty.h: New test header. + +2018-11-30 Sam Tebbs + + * gcc.target/arm/neon-dotprod-restriction.c: New file. + * lib/target-supports.exp + (check_effective_target_arm_v8_2a_dotprod_neon_ok_nocache): Include + stdint.h. + +2018-11-30 Martin Liska + + PR sanitizer/81715 + * c-c++-common/asan/asan-stack-small.c: New test. + +2018-11-30 Richard Biener + + * gcc.dg/gimplefe-34.c: New testcase. + * gcc.dg/gimplefe-35.c: Likewise. + +2018-11-30 Martin Liska + + PR testsuite/88265 + * gfortran.dg/simd-builtins-1.f90: Restrict to 128b vectors. + * gfortran.dg/simd-builtins-6.f90: Likewise. + +2018-11-29 Andi Kleen + + * gcc.target/i386/fentryname2.c: New test. + * gcc.target/i386/fentryname3.c: New test. + +2018-11-29 Andi Kleen + + * gcc.target/i386/fentryname1.c: New test. + +2018-11-29 Andi Kleen + + * gcc.target/i386/returninst1.c: New test. + * gcc.target/i386/returninst2.c: New test. + * gcc.target/i386/returninst3.c: New test. + +2018-11-29 Eric Botcazou + + * gcc.target/sparc/20181129-1.c: New test. + * gcc.target/sparc/20181129-2.c: Likewise. + +2018-11-29 Jakub Jelinek + + PR target/88152 + * g++.target/i386/pr88152.C: New test. + +2018-11-29 Vladimir Makarov + + * gcc.target/i386/pr34256.c: Adjust the number of expected moves. + +2018-11-29 Paolo Carlini + + * g++.dg/cpp0x/constexpr-base6b.C: New. + * g++.dg/cpp0x/constexpr-47969.C: Test locations too. + * g++.dg/cpp0x/constexpr-48324.C: Likewise. + * g++.dg/cpp0x/constexpr-ex2.C: Likewise. + * g++.dg/cpp0x/scoped_enum2.C: Likewise. + * g++.dg/cpp1y/pr63996.C: Likewise. + * g++.dg/ext/constexpr-vla5.C: Likewise. + * g++.dg/ext/stmtexpr15.C: Likewise. + * g++.dg/ext/vla1.C: Likewise. + * g++.dg/other/fold1.C: Likewise. + * g++.dg/parse/array-size2.C: Likewise. + * g++.dg/parse/crash36.C: Likewise. + * g++.dg/ubsan/pr81530.C: Likewise. + * g++.dg/warn/Wvla-1.C: Likewise. + * g++.dg/warn/Wvla-2.C: Likewise. + * g++.old-deja/g++.brendan/array1.C: Likewise. + * g++.old-deja/g++.bugs/900402_02.C: Likewise. + * g++.old-deja/g++.law/init3.C: Likewise. + * g++.old-deja/g++.mike/p6149.C: Likewise. + +2018-11-29 David Malcolm + + PR c++/88121 + * g++.dg/lookup/suggestions-scoped-enums.C: New test. + * g++.dg/lookup/suggestions-unscoped-enums.C: New test. + +2018-11-29 Peter Bergner + + PR target/87496 + * gcc.target/powerpc/pr87496.c: New test. + +2018-11-29 Martin Sebor + + PR c/88172 + PR testsuite/88208 + * gcc.dg/attr-aligned-2.c: New test. + * gcc.dg/builtin-has-attribute.c: Adjust. + * c-c++-common/builtin-has-attribute-2.c: Same. + * c-c++-common/builtin-has-attribute-3.c: Same. + * c-c++-common/builtin-has-attribute-4.c: Same. + * c-c++-common/builtin-has-attribute-5.c: New test. + * gcc.target/aarch64/attr-aligned.c: Same. + * gcc.target/i386/attr-aligned.c: Same. + * gcc.target/powerpc/attr-aligned.c: Same. + * gcc.target/sparc/attr-aligned.c: Same. + +2018-11-29 qing zhao + + * gcc.dg/live-patching-1.c: New test. + * gcc.dg/live-patching-2.c: New test. + * gcc.dg/live-patching-3.c: New test. + * gcc.dg/tree-ssa/writeonly-3.c: New test. + * gcc.target/i386/ipa-stack-alignment-2.c: New test. + +2018-11-29 Giuliano Belinassi + + * gcc.dg/sinhatanh-1.c: New test. + * gcc.dg/sinhatanh-2.c: New test. + * gcc.dg/sinhatanh-3.c: New test. + +2018-11-29 Jakub Jelinek + + PR target/54700 + * g++.target/i386/sse4_1-pr54700-1.C: New test. + * g++.target/i386/sse4_1-pr54700-2.C: New test. + * g++.target/i386/avx-pr54700-1.C: New test. + * g++.target/i386/avx-pr54700-2.C: New test. + * g++.target/i386/avx2-pr54700-1.C: New test. + * g++.target/i386/avx2-pr54700-2.C: New test. + * g++.target/i386/sse4_1-check.h: New file. + * g++.target/i386/avx-check.h: New file. + * g++.target/i386/avx2-check.h: New file. + * g++.target/i386/m128-check.h: New file. + * g++.target/i386/m256-check.h: New file. + * g++.target/i386/avx-os-support.h: New file. + + PR target/88152 + * g++.dg/tree-ssa/pr88152-1.C: New test. + * g++.dg/tree-ssa/pr88152-2.C: New test. + + PR target/88234 + * gcc.dg/ubsan/pr88234.c: New test. + +2018-11-29 Richard Biener + + PR tree-optimization/88243 + * gcc.dg/torture/pr88243.c: New testcase. + +2018-11-29 Jakub Jelinek + + PR c++/87539 + * g++.dg/cpp0x/pr87539.C: New test. + +2018-11-28 Martin Sebor + + PR c/88065 + PR c/87297 + * c-c++-common/Wsizeof-pointer-memaccess4.c: New test. + +2018-11-28 Marek Polacek + + Implement P1094R2, Nested inline namespaces. + * g++.dg/cpp2a/nested-inline-ns1.C: New test. + * g++.dg/cpp2a/nested-inline-ns2.C: New test. + +2018-11-28 Nathan Sidwell + + PR c++/87531 + * g++.dg/lookup/pr87531.C: New. + +2018-11-28 Jan Hubicka + + * gcc.dg/predict-13.c: Update template. + * gcc.dg/predict-13b.c: New testcase. + * gcc.dg/predict-22.c: New testcase. + * gcc.dg/tree-ssa/ipa-split-4.c: Change abort to other function to + get sane profile. + +2018-11-28 Marek Polacek + + PR c++/88222 - ICE with bit-field with invalid type. + * g++.dg/ext/flexary31.C: New test. + +2018-11-28 David Edelsohn + + * g++.dg/debug/dwarf2/pr86900.C: XFAIL AIX. + * g++.dg/opt/pr83084.C: XFAIL AIX. + * gcc.dg/recip_sqrt_mult_[12345]: Do not add -fcompare-debug on AIX. + +2018-11-28 Richard Biener + + PR tree-optimization/88223 + * gcc.dg/torture/pr88223.c: New testcase. + +2018-11-28 Richard Biener + + PR tree-optimization/88217 + * g++.dg/pr88217.C: New testcase. + +2018-11-28 Richard Biener + + PR tree-optimization/79351 + * gcc.dg/torture/pr79351.c: New testcase. + +2018-11-28 Jakub Jelinek + + PR target/88189 + * gcc.target/i386/sse4_1-pr88189-1.c: New test. + * gcc.target/i386/sse4_1-pr88189-2.c: New test. + * gcc.target/i386/avx-pr88189-1.c: New test. + * gcc.target/i386/avx-pr88189-2.c: New test. + + PR c++/87476 + * g++.dg/cpp0x/pr87476-1.C: New test. + * g++.dg/cpp0x/pr87476-2.C: New test. + + PR c++/88215 + * c-c++-common/ubsan/pr88215.c: New test. + +2018-11-28 Richard Biener + + PR tree-optimization/88182 + * g++.dg/gomp/pr88182.C: Move from libgomp and use -fopenmp-simd. + +2018-11-27 Jakub Jelinek + + PR c++/88187 + * g++.dg/other/pr88187.C: New test. + + PR c++/88181 + * g++.dg/debug/pr88181.C: New test. + + PR middle-end/87157 + * gcc.dg/vect/costmodel/ppc/costmodel-vect-33.c (main1): Add noipa + attribute. + +2018-11-27 Martin Sebor + + PR 87756 + PR 88211 + PR 88226 + * gcc.dg/tree-ssa/builtin-fprintf-warn-1.c: Update/remove xfails. + * gcc.dg/tree-ssa/builtin-printf-warn-1.c: Same. + * gcc.dg/tree-ssa/user-printf-warn-1.c: Same. + +2018-11-27 Mike Gulick + + PR preprocessor/83173 + * gcc.dg/plugin/location-overflow-test-pr83173.c: New test. + * gcc.dg/plugin/location-overflow-test-pr83173.h: Header for + pr83173.c. + * gcc.dg/plugin/location-overflow-test-pr83173-1.h: Header for + pr83173.c. + * gcc.dg/plugin/location-overflow-test-pr83173-2.h: Header for + pr83173.c. + * gcc.dg/plugin/location_overflow_plugin.c: Use PLUGIN_PRAGMAS + instead of PLUGIN_START_UNIT. + * gcc.dg/plugin/plugin.exp: Enable new test. + +2018-11-27 Jakub Jelinek + + PR testsuite/85368 + * gcc.dg/tree-ssa/phi-opt-11.c: For branch_cost targets, expect 0 ifs + rather than 0 or 2 depending on logical_op_short_circuit. + + PR target/88188 + * gcc.target/powerpc/pr88188.c: New test. + +2018-11-27 Martin Liska + + * gfortran.dg/simd-builtins-1.f90: New test. + * gfortran.dg/simd-builtins-1.h: New test. + * gfortran.dg/simd-builtins-2.f90: New test. + * gfortran.dg/simd-builtins-3.f90: New test. + * gfortran.dg/simd-builtins-3.h: New test. + * gfortran.dg/simd-builtins-4.f: New test. + * gfortran.dg/simd-builtins-4.h: New test. + * gfortran.dg/simd-builtins-5.f: New test. + * gfortran.dg/simd-builtins-6.f90: New test. + +2018-11-27 Jozef Lawrynowicz + + * lib/target-supports.exp + (check_effective_target_logical_op_short_circuit): Add msp430. + (check_effective_target_int_eq_float): New. + (check_effective_target_ptr_eq_long): New. + * c-c++-common/pr41779.c: Require int_eq_float for dg-warning tests. + * c-c++-common/pr57371-2.c: XFAIL optimized dump scan when + sizeof (float) != sizeof (int). + * gcc.dg/pr84670-4.c: Require ptr_eq_long. + * gcc.dg/pr85859.c: Likewise. + * gcc.dg/Wno-frame-address.c: Skip for msp430-elf. + * gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise. + * gcc.dg/ifcvt-4.c: Likewise. + * gcc.dg/pr34856.c: Likewise. + * gcc.dg/builtin-apply2.c: Likewise. + * gcc.dg/tree-ssa/ssa-dse-26.c: Likewise. + * gcc.dg/attr-alloc_size-11.c: Remove dg-warning XFAIL for msp430. + * gcc.dg/tree-ssa/20040204-1.c: Likewise. + * gcc.dg/compat/struct-by-value-16a_x.c: Build at -O1 for msp430 + so it fits. + * gcc.dg/lto/20091013-1_0.c: Require ptr_eq_long. + * gcc.dg/lto/20091013-1_1.c: Remove xfail-if for when + sizeof(void *) != sizeof(long). + * gcc.dg/lto/20091013-1_2.c: Likewise. + * gcc.dg/tree-ssa/loop-1.c: Fix expected dg-final behaviour for msp430. + * gcc.dg/tree-ssa/gen-vect-25.c: Likewise. + * gcc.dg/tree-ssa/gen-vect-11.c: Likewise. + * gcc.dg/tree-ssa/loop-35.c: Likewise. + * gcc.dg/tree-ssa/pr23455.c: Likewise. + * gcc.dg/weak/typeof-2.c: Likewise. + * gcc.target/msp430/interrupt_fn_placement.c: Skip for 430 ISA. + * gcc.target/msp430/pr78818-data-region.c: Fix scan-assembler text. + * gcc.target/msp430/pr79242.c: Don't skip for -msmall. + * gcc.target/msp430/special-regs.c: Use "__asm__" instead of "asm". + +2018-11-26 Martin Sebor + + PR 87756 + * gcc.dg/warn-sprintf-no-nul-2.c: Move incomplete tests from here... + * gcc.dg/warn-sprintf-no-nul-3.c: ...to here and complete them. + +2018-11-26 Marek Polacek + + PR c++/88120 - ICE when calling save_expr in a template. + * g++.dg/cpp0x/pr88120.C: New test. + +2018-11-26 Jozef Lawrynowicz + + * c-c++-common/Warray-bounds-3.c (test_strcpy_bounds): Use long instead + of int if __SIZEOF_INT__ == 2. + * c-c++-common/Wrestrict.c: Test memcpy range with smaller length when + __SIZEOF_SIZE_T < 4. + * c-c++-common/rotate-8.c: Define smaller "large" constant when + __SIZEOF_INT__ == 2. + * gcc.dg/pr53037-1.c: Add dg-require-effective-target int32. + * gcc.dg/pr53037-2.c: Likewise. + * gcc.dg/pr53037-3.c: Likewise. + * gcc.dg/pr85512.c: Likewise. + * gcc.dg/pr59963-2.c: Add dg-warning for int16. + * gcc.dg/sancov/cmp0.c: Explicitly use __INT32_TYPE__ instead of int. + * gcc.dg/tree-ssa/addadd.c: Fix dg-final directives for int16. + * gcc.dg/tree-ssa/pr79327-2.c: Likewise. + * gcc.dg/tree-ssa/builtin-sprintf-2.c: Filter out invalid tests for + int16. + * gcc.dg/tree-ssa/builtin-sprintf-warn-10.c: Update sizes in dg-warning + directives for int16. + +2018-11-26 Jozef Lawrynowicz + + * lib/target-supports.exp (check_effective_target_newlib_nano_io): New. + * gcc.c-torture/execute/920501-8.c: Register undefined linker symbol + _printf_float for newlib_nano_io target. + * gcc.c-torture/execute/930513-1.c: Likewise. + * gcc.dg/torture/builtin-sprintf.c: Likewise. + * gcc.c-torture/execute/ieee/920810-1.x: New. + +2018-11-26 Jakub Jelinek + + PR target/88195 + * gcc.target/i386/pr88195.c: New test. + + PR testsuite/88090 + * obj-c++.dg/attributes/method-nonnull-1.mm (my_size_t): New typedef. + (MyArray::removeObjectAtIndex): Use my_size_t instead of size_t and + expect it in diagnostics. + + PR c++/86900 + * g++.dg/debug/dwarf2/pr86900.C: New test. + +2018-11-26 Jozef Lawrynowicz + + * gcc.c-torture/compile/20151204.c: Add dg-require-effective-target + size20plus. + * gcc.dg/pr34225.c: Likewise. + * gcc.dg/pr40971.c: Likewise. + * gcc.dg/pr69071.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-10.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-2.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-3.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-5.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-6.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-7.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-8.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-9.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-11.c: Add dg-require-effective-target + size32plus. + * gcc.dg/Walloc-size-larger-than-4.c: Likewise. + * gcc.dg/Walloc-size-larger-than-5.c: Likewise. + * gcc.dg/Walloc-size-larger-than-6.c: Likewise. + * gcc.dg/Walloc-size-larger-than-7.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-1.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-1b.c: Likewise. + * lib/target-supports.exp (check_effective_target_size20plus): New. + (check_effective_target_size32plus): Update comment. + +2018-11-26 Uros Bizjak + + PR target/88178 + * gcc.target/pr88178.c: New test. + +2018-11-26 Matthias Klose + + * jit.dg/test-long-names.c: Fix build with -Wformat-security. + +2018-11-25 Rainer Orth + + * lib/target-supports.exp (check_compile): Handle D. + (check_effective_target_d_runtime): New proc. + * lib/gdc-dg.exp (gdc-dg-test): Demote link and run tests to + compile unless d_runtime. + * gdc.dg/runnable.d: Skip unless d_runtime. + * gdc.dg/lto/lto.exp: Require d_runtime to run tests. + +2018-11-24 Paul Thomas + + PR fortran/88143 + * gfortran.dg/associate_46.f90: New test. + +2018-11-23 Jeff Law + + PR rtl-optimization/84768 + * gcc.c-torture/compile/pr84768.c: New test. + +2018-11-23 Vladimir Makarov + + * gcc.target/powerpc/pr70669.c: Use unary minus instead of + addition. + +2018-11-23 Jakub Jelinek + + PR tree-optimization/87756 + * gcc.dg/builtin-memchr-2.c: Scan the gimple dump instead of + optimized. + * gcc.dg/builtin-memchr-3.c: Likewise. + +2018-11-23 Martin Sebor + + PR tree-optimization/87756 + * gcc.dg/builtin-memchr-2.c: New test. + * gcc.dg/builtin-memchr-3.c: Same. + * gcc.dg/warn-sprintf-no-nul-2.c: Same. + +2018-11-23 Martin Sebor + + PR testsuite/88098 + * gcc.dg/Wbuiltin-declaration-mismatch-4.c: Adjust. + * gcc.dg/Wbuiltin-declaration-mismatch-5.c: New test. + * gcc.dg/torture/pr67222.c: Adjust. + +2018-11-23 Richard Biener + + PR tree-optimization/88149 + * g++.dg/torture/pr88149.C: New testcase. + +2018-11-23 Jakub Jelinek + + PR tree-optimization/86614 + * c-c++-common/Warray-bounds-2.c (wrap_strncpy_dstarray_diff_neg, + call_strncpy_dstarray_diff_neg): Don't expect late -Warray-bounds + warnings, just early ones from FE. Remove dg-prune-output. + * c-c++-common/Warray-bounds-6.c: New test. + + * gfortran.dg/pad_source_1.f: New test. + * gfortran.dg/pad_source_2.f: New test. + * gfortran.dg/pad_source_3.f: New test. + * gfortran.dg/pad_source_4.f: New test. + * gfortran.dg/pad_source_5.f: New test. + +2018-11-22 Jan Hubicka + + PR lto/88142 + * g++.dg/lto/odr-5_0.C: New testcase. + * g++.dg/lto/odr-5_1.C: New testcase. + +2018-11-22 Jan Hubicka + + * g++.dg/lto/odr-2_0.C: Drop dg-lto-options. + * g++.dg/lto/odr-3_0.C: Likewise; harden for optimizing compilatoin. + +2018-11-22 Jakub Jelinek + + PR tree-optimization/85794 + * gcc.dg/vect/O3-pr85794.c: New test. + +2018-11-22 Vladimir Makarov + + PR rtl-optimization/87718 + * gcc.target/i386/pr82361-1.c: Check only the first operand of + moves. + +2018-11-22 Thomas Preud'homme + + * gcc.target/arm/pr85434.c: New test. + +2018-11-22 Richard Biener + + PR tree-optimization/88148 + * gfortran.dg/pr88148.f90: New testcase. + +2018-11-22 Andreas Schwab + + * g++.dg/lto/odr-2_0.C: Remove extra brace + +2018-11-22 Martin Liska + + PR sanitizer/88017 + * gcc.dg/tsan/pr88017.c: New test. + +2018-11-21 Jakub Jelinek + + PR c++/88122 + * g++.dg/cpp0x/implicit15.C: New test. + + PR c++/87386 + * g++.dg/diagnostic/pr87386.C: New test. + * g++.dg/parse/error17.C: Adjust expected diagnostics. + + PR rtl-optimization/85925 + * gcc.c-torture/execute/20181120-1.c: Require effective target + int32plus. + (u): New variable. + (main): Compare d against u.f1 rather than 0x101. Use 0x4030201 + instead of 0x10101. + +018-11-21 Lokesh Janghel + + PR target/85667 + * gcc.target/pr85667-1.c: New testcase. + * gcc.target/pr85667-2.c: New testcase. + * gcc.target/pr85667-3.c: New testcase. + * gcc.target/pr85667-4.c: New testcase. + +2018-11-21 Jan Hubicka + + PR lto/87957 + * g++.dg/lto/odr-1_0.C: Extend by mismatched enum. + * g++.dg/lto/odr-1_1.C: Extend by mismatched enum. + * g++.dg/lto/odr-2_0.C: New. + * g++.dg/lto/odr-2_1.C: New. + * g++.dg/lto/odr-3_0.C: New. + * g++.dg/lto/odr-3_1.C: New. + +2018-11-21 Jakub Jelinek + + PR target/87839 + * gcc.target/aarch64/pr87839.c: New test. + +2018-11-21 Renlin Li + + PR middle-end/84877 + * gcc.dg/pr84877.c: New. + +2018-11-21 H.J. Lu + + PR target/87317 + * gcc.target/i386/pr87317-1.c: New file. + * gcc.target/i386/pr87317-2.c: Likewise. + * gcc.target/i386/pr87317-3.c: Likewise. + * gcc.target/i386/pr87317-4.c: Likewise. + * gcc.target/i386/pr87317-5.c: Likewise. + * gcc.target/i386/pr87317-6.c: Likewise. + * gcc.target/i386/pr87317-7.c: Likewise. + * gcc.target/i386/pr87317-8.c: Likewise. + * gcc.target/i386/pr87317-9.c: Likewise. + * gcc.target/i386/pr87317-10.c: Likewise. + * gcc.target/i386/pr87317-11.c: Likewise. + * gcc.target/i386/pr87317-12.c: Likewise. + * gcc.target/i386/pr87317-13.c: Likewise. + +2018-11-21 Tom de Vries + + PR driver/79855 + * lib/options.exp (check_for_options_with_filter): New proc. + * gcc.misc-tests/help.exp: Check that --help=params lines end with + period. + +2018-11-21 Jakub Jelinek + Mark Eggleston + + * gfortran.dg/include_10.f: New test. + * gfortran.dg/include_10.inc: New file. + * gfortran.dg/include_11.f: New test. + * gfortran.dg/include_12.f: New test. + * gfortran.dg/include_13.f90: New test. + * gfortran.dg/gomp/include_1.f: New test. + * gfortran.dg/gomp/include_1.inc: New file. + * gfortran.dg/gomp/include_2.f90: New test. + +2018-11-21 Andreas Krebbel + + * gcc.target/s390/vector/align-1.c: New test. + * gcc.target/s390/vector/align-2.c: New test. + +2018-11-20 Martin Sebor + + * c-c++-common/builtin-has-attribute-2.c: New test. + * c-c++-common/builtin-has-attribute-3.c: New test. + * c-c++-common/builtin-has-attribute-4.c: New test. + * c-c++-common/builtin-has-attribute.c: New test. + * gcc.dg/builtin-has-attribute.c: New test. + * gcc.target/i386/builtin-has-attribute.c: New test. + +2018-11-20 Jan Hubicka + + PR lto/84044 + * g++.dg/lto/odr-4_0.C: New testcase. + * g++.dg/lto/odr-4_1.C: New testcase. + +2018-11-20 Jakub Jelinek + + PR c++/88110 + * g++.dg/cpp2a/constexpr-virtual13.C: New test. + + PR tree-optimization/87895 + * gcc.dg/gomp/pr87895-1.c: New test. + * gcc.dg/gomp/pr87895-2.c: New test. + * gcc.dg/gomp/pr87895-3.c: New test. + +2018-11-20 Uros Bizjak + + PR target/88070 + * gcc.target/i386/pr88070.c: New test. + +2018-11-20 Andreas Krebbel + + * gcc.target/s390/flogr-1.c: New test. + +2018-11-20 Jan Hubicka + + PR lto/87997 + * g++.dg/torture/pr87997.C: New testcase. + +2018-11-20 Jan Hubicka + + PR ipa/87706 + * gcc.dg/ipa/ctor-empty-1.c: Update template. + +2018-11-20 Richard Biener + + PR tree-optimization/88074 + * gcc.dg/pr88074.c: New testcase. + +2018-11-20 Martin Liska + + * pr57362.C: Move to g++.target/i386 folder. + * pr57548.C: Likewise. + * pr59492.C: Likewise. + * pr82625.C: Likewise. + * pr85329-2.C: Likewise. + * pr85329.C: Likewise. + +2018-11-20 Richard Biener + + PR tree-optimization/88069 + * gcc.dg/pr88069.c: New testcase. + +2018-11-20 Martin Liska + + PR ipa/88093 + * gcc.target/i386/ipa-stack-alignment.c: Add + -fomit-frame-pointer. + +2018-11-20 Ilya Leoshkevich + + PR target/88083 + * gcc.target/s390/pr88083.c: New test. + +2018-11-20 Richard Biener + + PR middle-end/83215 + * g++.dg/tree-ssa/pr83215.C: New testcase. + +2018-11-20 Eric Botcazou + + * gcc.c-torture/execute/20181120-1.c: New test. + +2018-11-20 Richard Biener + + PR tree-optimization/88087 + * gcc.dg/tree-ssa/pr88087.c: New testcase. + +2018-11-19 Paul Koning + + * gcc.c-torture/execute/align-3.c: Skip if pdp11. + * gcc.c-torture/execute/pr23467.c: Ditto. + * gcc.c-torture/execute/pr36093.c: Ditto. + * gcc.c-torture/execute/pr43783.c: Ditto. + * gcc.dg/const-elim-2.c: Xfail if pdp11. + * gcc.dg/torture/pr36400.c: Ditto. + * gcc.dg/tree-ssa/loop-1.c: Xfail for pdp11. Add pdp11 to check + for jsr. + +2018-11-19 Paul Koning + + * lib/target-supports.exp (check_weak_available): Return "no" for + pdp11. + +2018-11-19 Marek Polacek + + PR c++/87781 - detect invalid elaborated-type-specifier. + * g++.dg/parse/elab3.C: New test. + * g++.dg/template/crash115.C: Adjust dg-error. + +2018-11-19 Peter Bergner + + PR rtl-optimization/88033 + * gcc.target/i386/pr88033.c: New test. + +2018-11-19 Kyrylo Tkachov + + * gcc.target/aarch64/sve/unroll-1.c: New test. + +2018-11-19 David Malcolm + + PR tree-optimization/87025 + * gcc.dg/pr87025.c: New test. + +2018-11-19 Jakub Jelinek + + PR tree-optimization/88071 + * gcc.dg/pr88071.c: New test. + + PR c++/60994 + * g++.dg/lookup/pr60994.C: New test. + + PR debug/87039 + * g++.dg/gomp/pr78363-4.C: New test. + * g++.dg/gomp/pr78363-5.C: New test. + * g++.dg/gomp/pr78363-6.C: New test. + * g++.dg/gomp/pr78363-7.C: New test. + +2018-11-19 Richard Biener + + PR lto/87229 + * g++.dg/lto/pr87229_0.C: New testcase. + +2018-11-19 Martin Liska + + PR lto/88077 + * gcc.dg/lto/pr88077_0.c: New test. + * gcc.dg/lto/pr88077_1.c: New test. + +2018-11-19 Martin Liska + + * g++.dg/gcov/pr84548.C: Remove remove-gcda. + * g++.dg/gcov/ternary.C: Likewise. + * lib/gcov.exp: Support pattern of following form: + count(1*). + +2018-11-19 Eric Botcazou + + * gcc.target/visium/overflow8.c: Remove -fno-if-conversion and + unrelated final test. + * gcc.target/visium/overflow16: Likewise. + * gcc.target/visium/overflow32.c: Likewise. + +2018-11-18 Paolo Carlini + + * g++.dg/template/crash91.C: Check location too. + +2018-11-19 Martin Liska + + PR gcov-profile/88045 + * g++.dg/gcov/pr88045.C: New test. + +2018-11-18 Thomas Koenig + + PR fortran/88073 + * gfortran.dg/where_7.f90: New test. + +2018-11-18 Thomas Koenig + + PR fortran/70260 + * gfortran.dg/proc_ptr_result_5.f90: Add dg-error directive. + * gfortran.dg/protected_4.f90: Split line to allow for extra error. + * gfortran.dg/protected_6.f90: Likewise. + * gfortran.dg/assign_11.f90: New test. + * gfortran.dg/pointer_assign_12.f90: New test. + +2018-11-17 Jakub Jelinek + + PR tree-optimization/87546 + * gcc.dg/vect/O3-pr87546.c: New test. + +2018-11-17 Jozef Lawrynowicz + + PR middle-end/87854 + * g++.dg/parse/concat1.C: Add dg-error for targets with size_t < 32 + bits. Update comment. + * gcc.dg/concat2.c: Likewise. + * gcc.c-torture/compile/pr46534.c: Likewise. + +2018-11-16 Jakub Jelinek + + PR c++/87269 + * g++.dg/lookup/pr87269.C (std::size_t): New typedef. + (operator"" _a) Change unsigned long type to std::size_t. + +2018-11-16 Michael Meissner + + * gcc.target/powerpc/fusion3.c: Delete. + * gcc.target/powerpc/fusion4.c: Delete. + +2018-11-16 Jakub Jelinek + + PR rtl-optimization/87475 + * g++.dg/opt/pr87475.C: New test. + +2018-11-16 Matthew Malcomson + + * gcc.c-torture/execute/printf-2.c: Skip on wrapped boards. + * gcc.c-torture/execute/user-printf.c: Likewise. + +2018-11-16 Nathan Sidwell + + PR c++/87269 + * g++.dg/lookup/pr87269.C: New. + +2018-11-16 Richard Biener + + PR testsuite/88053 + * g++.dg/lto/pr54625-2_0.c: Add -w. + +2018-11-16 Ilya Leoshkevich + + * gcc.target/s390/md/rXsbg_mode_sXl.c: Do not use arithmetic in + r{o,x}sbg expectations. + * gcc.target/s390/risbg-ll-2.c: Likewise. + +2018-11-16 Richard Biener + + PR testsuite/88053 + * g++.dg/lto/pr54625-1_0.c: Add -w. + +2018-11-15 Martin Sebor + + PR c++/87541 + PR c++/87542 + * g++.dg/ext/attr-alloc_size.C: New test. + * c-c++-common/pr71574.c: Adjust diagnostics. + * c-c++-common/attributes-1.c: Same. + * gcc.dg/attr-alloc_align-2.c: Same. + * gcc.dg/attr-alloc_align-4.c: New test. + * gcc.dg/attr-alloc_size-2.c: Adjust diagnostics. + * gcc.dg/attr-alloc_size.c: Same. + * gcc.dg/attr-assume_aligned-4.c: New test. + * gcc.dg/format/attr-3.c: Adjust diagnostics. + * gcc.dg/nonnull-2.c: Same. + * gcc.dg/torture/pr80612.c: Same. + * obj-c++.dg/attributes/method-format-1.mm: Same. + * obj-c++.dg/attributes/method-nonnull-1.mm: Same. + * objc.dg/attributes/method-format-1.m: same. + * objc.dg/attributes/method-nonnull-1.m: Same. + +2018-11-15 Martin Sebor + + PR c/83656 + * gcc.dg/20021006-1.c + * gcc.dg/Wbuiltin-declaration-mismatch.c: New test. + * gcc.dg/Wbuiltin-declaration-mismatch-2.c: New test. + * gcc.dg/Wbuiltin-declaration-mismatch-3.c: New test. + * gcc.dg/Wbuiltin-declaration-mismatch-4.c: New test. + * gcc.dg/Walloca-16.c: Adjust. + * gcc.dg/Wrestrict-4.c: Adjust. + * gcc.dg/Wrestrict-5.c: Adjust. + * gcc.dg/atomic/stdatomic-generic.c: Adjust. + * gcc.dg/atomic/stdatomic-lockfree.c: Adjust. + * gcc.dg/initpri1.c: Adjust. + * gcc.dg/pr15698-1.c: Adjust. + * gcc.dg/pr69156.c: Adjust. + * gcc.dg/pr83463.c: Adjust. + * gcc.dg/redecl-4.c: Adjust. + * gcc.dg/tls/thr-init-2.c: Adjust. + * gcc.dg/torture/pr55890-2.c: Adjust. + * gcc.dg/torture/pr55890-3.c: Adjust. + * gcc.dg/torture/pr67741.c: Adjust. + * gcc.dg/torture/stackalign/sibcall-1.c: Adjust. + * gcc.dg/torture/tls/thr-init-1.c: Adjust. + * gcc.dg/tree-ssa/builtins-folding-gimple-ub.c: Adjust. + +2018-11-15 Nathan Sidwell + + PR c++/86246 + PR c++/87989 + * g++.dg/template/pr86246.C: New. + * g++.dg/template/pr87989.C: New. + +2018-11-15 Paolo Carlini + + * g++.dg/cpp0x/constexpr-diag3.C: Check locations too. + * g++.dg/cpp0x/constexpr-ice19.C: Likewise. + * g++.dg/cpp0x/constexpr-nonlit2.C: Likewise. + * g++.dg/cpp1z/constexpr-lambda15.C: Likewise. + * g++.dg/ext/constexpr-vla5.C: Likewise. + * g++.dg/gomp/pr85134.C: Likewise. + +2018-11-15 Nathan Sidwell + + DR 2336 + * g++.dg/cpp1y/pr79393-3.C: New. + +2018-11-15 David Malcolm + + PR other/19165 + * c-c++-common/diagnostic-format-json-1.c: New test. + * c-c++-common/diagnostic-format-json-2.c: New test. + * c-c++-common/diagnostic-format-json-3.c: New test. + * c-c++-common/diagnostic-format-json-4.c: New test. + * c-c++-common/diagnostic-format-json-5.c: New test. + * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c + (custom_diagnostic_finalizer): Add diagnostic_t param. + * gcc.dg/plugin/location_overflow_plugin.c + (verify_unpacked_ranges): Likewise. + (verify_no_columns): Likewise. + * gfortran.dg/diagnostic-format-json-1.F90: New test. + * gfortran.dg/diagnostic-format-json-2.F90: New test. + * gfortran.dg/diagnostic-format-json-3.F90: New test. + +2018-11-15 Richard Biener + + PR middle-end/88029 + * gcc.dg/tree-ssa/pr88029.c: New testcase. + +2018-11-15 Richard Biener + + PR tree-optimization/88031 + * gcc.dg/pr88031.c: New testcase. + +2018-11-15 Wilco Dijkstra + + * gcc.target/aarch64/pr62178.c: Fix spaces. + +2018-11-15 Richard Biener + + PR tree-optimization/88030 + * gcc.dg/tsan/pr88030.c: New testcase. + +2018-11-15 Jakub Jelinek + + PR rtl-optimization/88018 + * g++.dg/tsan/pr88018.C: New test. + +2018-11-15 Richard Biener + + PR middle-end/87917 + * gcc.dg/tree-ssa/pr87917.c: New testcase. + +2018-11-15 Bin Cheng + + PR tree-optimization/84648 + * gcc.dg/tree-ssa/pr84648.c: New test. + * gcc.dg/pr68317.c: Add warning check on overflow. + +2018-11-14 Nathan Sidwell + + PR debug/88006 + PR debug/87462 + * g++.dg/debug/dwarf2/pr87462.C: New. + * g++.dg/debug/dwarf2/pr88006.C: New. + +2018-11-14 Paolo Carlini + + * g++.dg/cpp0x/nsdmi-union6.C: Test locations too. + * g++.dg/cpp0x/nsdmi6.C: Likewise. + * g++.dg/ext/flexary4.C: Likewise. + * g++.dg/ext/flexary9.C: Likewise. + * g++.dg/other/incomplete2.C: Likewise. + * g++.dg/parse/friend12.C: Likewise. + +2018-11-14 Jakub Jelinek + + P1236R1 - Signed integers are two's complement + * g++.dg/cpp2a/constexpr-shift1.C: New test. + * g++.dg/warn/permissive-1.C (enum A, enum D): Don't expect + diagnostics here for c++2a. + * g++.dg/cpp0x/constexpr-shift1.C (fn3, i3, fn4, i4): Don't expect + diagnostics here for c++2a. + * g++.dg/cpp0x/constexpr-60049.C (f3, x3, y3): Likewise. + * g++.dg/ubsan/cxx11-shift-1.C (main): Add some further tests. + * g++.dg/ubsan/cxx11-shift-2.C (main): Likewise. + * g++.dg/ubsan/cxx2a-shift-1.C: New test. + * g++.dg/ubsan/cxx2a-shift-2.C: New test. + +2018-11-14 Jeff Law + + * gcc.c-torture/compile/20181114.c: New test. + +2018-11-14 Richard Biener + + PR middle-end/87985 + * gcc.dg/pr87985.c: New testcase. + +2018-11-14 Ilya Leoshkevich + + * gcc.target/s390/mrecord-mcount.c (profileme): Expect .long in + 31-bit mode. + +2018-11-14 Ilya Leoshkevich + + * gcc.target/s390/global-array-almost-huge-element.c: Run only + in 64-bit mode. + * gcc.target/s390/global-array-almost-negative-huge-element.c: + Likewise. + * gcc.target/s390/global-array-even-element.c: Likewise. + +2018-11-14 Wilco Dijkstra + Jackson Woodruff + + PR 71026/tree-optimization + * gcc.dg/div-cmp-1.c: New test. + * gcc.dg/div-cmp-2.c: New test. + +2018-11-14 Jakub Jelinek + + PR other/88007 + * gcc.dg/pr88007.c: New test. + + PR rtl-optimization/87817 + * gcc.target/i386/bmi2-bzhi-3.c (main): Add a couple of new tests. + +2018-11-14 Wilco Dijkstra + + * gcc.target/aarch64/pr62178.c: Relax scan-assembler checks. + +2018-11-14 Patrick Bernardi + + * gnat.dg/rt_signals.adb: New testcase. + +2018-11-14 Hristian Kirtchev + + * gnat.dg/ghost1.adb, gnat.dg/ghost1.ads: New testcase. + +2018-11-14 Javier Miranda + + * gnat.dg/equal5.adb, gnat.dg/equal5.ads: New testcase. + +2018-11-14 Eric Botcazou + + * gnat.dg/compile_time_error1.adb, + gnat.dg/compile_time_error1.ads, + gnat.dg/compile_time_error1_pkg.ads: New testcase. + +2018-11-14 Justin Squirek + + * gnat.dg/generic_pkg.adb: New testcase. + +2018-11-14 Ed Schonberg + + * gnat.dg/limited_aggr.adb, gnat.dg/limited_aggr.ads: New + testcase. + +2018-11-14 Justin Squirek + + * gnat.dg/enum5.adb: New testcase. + +2018-11-14 Hristian Kirtchev + + * gnat.dg/bip_exception.adb, gnat.dg/bip_exception.ads, + gnat.dg/bip_exception_pkg.ads: New testcase. + +2018-11-14 Hristian Kirtchev + + * gnat.dg/equal4.adb, gnat.dg/equal4.ads, + gnat.dg/equal4_controlled_filter.ads, + gnat.dg/equal4_full_selector_filter.ads, + gnat.dg/equal4_smart_pointers.ads: New testcase. + +2018-11-14 Piotr Trojanek + + * gnat.dg/generic_actuals.adb: New testcase. + +2018-11-14 Richard Biener + + PR tree-optimization/87974 + * g++.dg/opt/pr87974.C: New testcase. + +2018-11-14 Jakub Jelinek + + PR tree-optimization/87977 + * gcc.dg/recip_sqrt_mult_1.c: Add -fcompare-debug to dg-options. + * gcc.dg/recip_sqrt_mult_2.c: Likewise. + * gcc.dg/recip_sqrt_mult_3.c: Likewise. + * gcc.dg/recip_sqrt_mult_4.c: Likewise. + * gcc.dg/recip_sqrt_mult_5.c: Likewise. + +2018-11-13 Peter Bergner + + PR rtl-optimization/87507 + * gcc.target/powerpc/pr87507.c: New test. + * gcc.target/powerpc/pr68805.c: Update expected results. + +2018-11-13 Jakub Jelinek + + PR tree-optimization/87898 + * gcc.dg/gomp/pr87898.c: New test. + +2018-11-13 David Malcolm + + * g++.dg/plugin/comment_plugin.c: Replace "source_location" with + "location_t". + * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c: Likewise. + +2018-11-13 Martin Sebor + + PR middle-end/81824 + * gcc.dg/attr-copy-5.c: New test. + * gcc.dg/tls/diag-6.c: Adjust expected diagnostics. + +2018-11-13 Richard Biener + + PR tree-optimization/86991 + * gcc.dg/pr86991.c: New testcase. + +2018-11-13 David Malcolm + + PR ipa/87955 + * gcc.target/i386/pr87955.c: New test. + +2018-11-12 Aldy Hernandez + + * gcc.dg/tree-ssa/pr64130.c: Adjust for new value_range pretty + printer. + * gcc.dg/tree-ssa/vrp92.c: Same. + +2018-11-13 Richard Biener + + PR tree-optimization/87931 + * gcc.dg/graphite/pr87931.c: New testcase. + +2018-11-13 Martin Liska + + PR sanitizer/87930 + * gcc.target/i386/pr87930.c: New test. + +2018-11-13 Richard Biener + + PR tree-optimization/87962 + * gcc.dg/pr87962.c: New testcase. + +2018-11-13 Richard Biener + + PR tree-optimization/87967 + * g++.dg/opt/pr87967.C: New testcase. + +2018-11-13 Claudiu Zissulescu + + * gcc.target/arc/builtin_eh.c: New test. + +2018-11-13 Claudiu Zissulescu + + * gcc.target/arc/firq-1.c: Update test. + * gcc.target/arc/firq-3.c: Likewise. + * gcc.target/arc/firq-4.c: Likewise. + * gcc.target/arc/interrupt-6.c: Likewise. + +2018-11-13 Jakub Jelinek + + PR rtl-optimization/87918 + * gcc.target/i386/pr87918.c: New test. + +2018-11-13 Alan Modra + + * gcc.target/powerpc/rotmask.c: New. + +2018-11-13 Kugan Vivekanandarajah + + PR middle-end/86677 + PR middle-end/87528 + * g++.dg/tree-ssa/pr86544.C: Run only for target supporting popcount + pattern. + * gcc.dg/tree-ssa/popcount.c: Likewise. + * gcc.dg/tree-ssa/popcount2.c: Likewise. + * gcc.dg/tree-ssa/popcount3.c: Likewise. + * gcc.target/aarch64/popcount4.c: New test. + * lib/target-supports.exp (check_effective_target_popcountl): New. + +2018-11-12 Martin Liska + + PR gcov-profile/87442 + * gcc.dg/profile-filtering-1.c: New test. + * gcc.dg/profile-filtering-2.c: New test. + +2018-11-12 Martin Sebor + + PR c/81824 + * gcc.dg/Wattribute-alias.c: Require ifunc support. + +2018-11-12 Renlin Li + + PR target/87815 + * gcc.target/aarch64/sve/pr87815.c: New. + +2018-11-12 Sudakshina Das + + * gcc.target/arm/multilib.exp: Add some -march=armv8.5-a + combination tests. + +2018-11-11 Xianmiao Qu + + * gcc.target/csky/fnmul-1.c: New. + * gcc.target/csky/fnmul-2.c: New. + * gcc.target/csky/fnmul-3.c: New. + * gcc.target/csky/fnmul-4.c: New. + +2018-11-11 Uros Bizjak + + PR target/87928 + * gcc.target/i386/pr87928.c: New test. + +2018-11-09 Martin Sebor + + PR testsuite/87965 + * c-c++-common/pr60226.c: Adjust text of expected diagnostic. + * gcc.dg/pr39323-1.c: Ditto. + +2018-11-09 Paul Koning + + * gcc.dg/Walloca-16.c: Ignore conflicting types for built-in + warnings. + * gcc.dg/Wrestrict-4.c: Ditto. + * gcc.dg/Wrestrict-5.c: Ditto. + * gcc.dg/pr83463.c: Ditto. + * gcc.dg/torture/pr55890-2.c: Ditto. + * gcc.dg/torture/pr55890-3.c: Ditto. + * gcc.dg/torture/pr71816.c: Ditto. + +2018-11-09 Jakub Jelinek + + * c-c++-common/gomp/clauses-5.c: New test. + + * c-c++-common/gomp/requires-1.c: Prune not supported yet messages. + * c-c++-common/gomp/requires-2.c: Likewise. + * c-c++-common/gomp/requires-4.c: Likewise. + + * c-c++-common/gomp/lastprivate-conditional-1.c: New test. + * c-c++-common/gomp/lastprivate-conditional-2.c: New test. + +2018-11-09 Jeff Law + + gcc.dg/torture/stackalign/builtin-apply-2.c: Skip on v850. + +2018-11-09 Martin Sebor + + PR middle-end/81824 + * gcc.dg/Wattribute-alias.c: New test. + * gcc.dg/Wmissing-attributes.c: New test. + * gcc.dg/attr-copy.c: New test. + * gcc.dg/attr-copy-2.c: New test. + * gcc.dg/attr-copy-3.c: New test. + * gcc.dg/attr-copy-4.c: New test. + +2018-11-09 Martin Sebor + + PR c/87795 + * gcc.dg/attr-aligned.c: New test. + +2018-11-09 Martin Liska + + * gcc.target/i386/ipa-stack-alignment.c: New test. + +2018-11-09 Martin Liska + + * gcc.dg/tree-ssa/writeonly-2.c: New test. + +2018-11-09 Jakub Jelinek + + * gcc.dg/gomp/workshare-reduction-1.c: New test. + * gcc.dg/gomp/workshare-reduction-2.c: New test. + * gcc.dg/gomp/workshare-reduction-3.c: New test. + * gcc.dg/gomp/workshare-reduction-4.c: New test. + * gcc.dg/gomp/workshare-reduction-5.c: New test. + * gcc.dg/gomp/workshare-reduction-6.c: New test. + * gcc.dg/gomp/workshare-reduction-7.c: New test. + * gcc.dg/gomp/workshare-reduction-8.c: New test. + * gcc.dg/gomp/workshare-reduction-9.c: New test. + * gcc.dg/gomp/workshare-reduction-10.c: New test. + * gcc.dg/gomp/workshare-reduction-11.c: New test. + * gcc.dg/gomp/workshare-reduction-12.c: New test. + * gcc.dg/gomp/workshare-reduction-13.c: New test. + * gcc.dg/gomp/workshare-reduction-14.c: New test. + * gcc.dg/gomp/workshare-reduction-15.c: New test. + * gcc.dg/gomp/workshare-reduction-16.c: New test. + * gcc.dg/gomp/workshare-reduction-17.c: New test. + * gcc.dg/gomp/workshare-reduction-18.c: New test. + * gcc.dg/gomp/workshare-reduction-19.c: New test. + * gcc.dg/gomp/workshare-reduction-20.c: New test. + * gcc.dg/gomp/workshare-reduction-21.c: New test. + * gcc.dg/gomp/workshare-reduction-22.c: New test. + * gcc.dg/gomp/workshare-reduction-23.c: New test. + * gcc.dg/gomp/workshare-reduction-24.c: New test. + * gcc.dg/gomp/workshare-reduction-25.c: New test. + * gcc.dg/gomp/workshare-reduction-26.c: New test. + * gcc.dg/gomp/workshare-reduction-27.c: New test. + * gcc.dg/gomp/workshare-reduction-28.c: New test. + * gcc.dg/gomp/workshare-reduction-29.c: New test. + * gcc.dg/gomp/workshare-reduction-30.c: New test. + * gcc.dg/gomp/workshare-reduction-31.c: New test. + * gcc.dg/gomp/workshare-reduction-32.c: New test. + * gcc.dg/gomp/workshare-reduction-33.c: New test. + * gcc.dg/gomp/workshare-reduction-34.c: New test. + * gcc.dg/gomp/workshare-reduction-35.c: New test. + * gcc.dg/gomp/workshare-reduction-36.c: New test. + * gcc.dg/gomp/workshare-reduction-37.c: New test. + * gcc.dg/gomp/workshare-reduction-38.c: New test. + * gcc.dg/gomp/workshare-reduction-39.c: New test. + * gcc.dg/gomp/workshare-reduction-40.c: New test. + * gcc.dg/gomp/workshare-reduction-41.c: New test. + * gcc.dg/gomp/workshare-reduction-42.c: New test. + * gcc.dg/gomp/workshare-reduction-43.c: New test. + * gcc.dg/gomp/workshare-reduction-44.c: New test. + * gcc.dg/gomp/workshare-reduction-45.c: New test. + * gcc.dg/gomp/workshare-reduction-46.c: New test. + * gcc.dg/gomp/workshare-reduction-47.c: New test. + * gcc.dg/gomp/workshare-reduction-48.c: New test. + * gcc.dg/gomp/workshare-reduction-49.c: New test. + * gcc.dg/gomp/workshare-reduction-50.c: New test. + * gcc.dg/gomp/workshare-reduction-51.c: New test. + * gcc.dg/gomp/workshare-reduction-52.c: New test. + * gcc.dg/gomp/workshare-reduction-53.c: New test. + * gcc.dg/gomp/workshare-reduction-54.c: New test. + * gcc.dg/gomp/workshare-reduction-55.c: New test. + * gcc.dg/gomp/workshare-reduction-56.c: New test. + * gcc.dg/gomp/workshare-reduction-57.c: New test. + * gcc.dg/gomp/workshare-reduction-58.c: New test. + +2018-11-09 Stafford Horne + Richard Henderson + + * gcc.c-torture/execute/20101011-1.c: Adjust for OpenRISC. + * gcc.dg/20020312-2.c: Likewise. + * gcc.dg/attr-alloc_size-11.c: Likewise. + * gcc.dg/builtin-apply2.c: Likewise. + * gcc.dg/nop.h: Likewise. + * gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise. + * gcc.dg/tree-ssa/20040204-1.c: Likewise. + * gcc.dg/tree-ssa/reassoc-33.c: Likewise. + * gcc.dg/tree-ssa/reassoc-34.c: Likewise. + * gcc.dg/tree-ssa/reassoc-35.c: Likewise. + * gcc.dg/tree-ssa/reassoc-36.c: Likewise. + * lib/target-supports.exp + (check_effective_target_logical_op_short_circuit): Add or1k*-*-*. + * gcc.target/or1k/*: New. + +2018-11-09 Richard Biener + + PR tree-optimization/87621 + * g++.dg/vect/pr87621.cc: New testcase. + +2018-11-09 Alexandre Oliva + + PR rtl-optimization/86438 + * gcc.dg/torture/pr86438.c: New. + + PR target/87793 + * gcc.dg/pr87793.c: New. + +2018-11-09 Prathamesh Kulkarni + + * gcc.target/arm/neon-vect-div-1.c: New test. + * gcc.target/arm/neon-vect-div-2.c: Likewise. + +2018-11-08 Andi Kleen + + * gcc.target/i386/ptwrite1.c: New test. + * gcc.target/i386/ptwrite2.c: New test. + +2018-11-08 Jerry DeLisle + + PR libfortran/78351 + * gfortran.dg/read_legacy_comma.f90: New test. + +2018-11-08 Peter Bergner + + PR rtl-optimization/87600 + * gcc.dg/pr87600.h: New file. + * gcc.dg/pr87600-1.c: New test. + * gcc.dg/pr87600-2.c: Likewise. + +2018-11-08 Jakub Jelinek + + * c-c++-common/gomp/atomic-17.c: New test. + * c-c++-common/gomp/atomic-18.c: New test. + * c-c++-common/gomp/atomic-19.c: New test. + * c-c++-common/gomp/atomic-20.c: New test. + * c-c++-common/gomp/atomic-21.c: New test. + * c-c++-common/gomp/atomic-22.c: New test. + * c-c++-common/gomp/clauses-1.c (r2): New variable. + (foo): Add ntm argument and test if and nontemporal clauses on + constructs with simd. + (bar): Put taskloop simd inside of taskgroup with task_reduction, + use in_reduction clause instead of reduction. Add another + taskloop simd without nogroup clause, but with reduction clause and + a new in_reduction. Add ntm and i3 arguments. Test if and + nontemporal clauses on constructs with simd. Change if clauses on + some constructs from specific to the particular constituents to one + without a modifier. Add new tests for combined host teams and for + new parallel master and {,parallel }master taskloop{, simd} combined + constructs. + (baz): New function with host teams tests. + * gcc.dg/gomp/combined-1.c: Moved to ... + * c-c++-common/gomp/combined-1.c: ... here. Adjust expected library + call. + * c-c++-common/gomp/combined-2.c: New test. + * c-c++-common/gomp/combined-3.c: New test. + * c-c++-common/gomp/critical-1.c: New test. + * c-c++-common/gomp/critical-2.c: New test. + * c-c++-common/gomp/default-1.c: New test. + * c-c++-common/gomp/defaultmap-1.c: New test. + * c-c++-common/gomp/defaultmap-2.c: New test. + * c-c++-common/gomp/defaultmap-3.c: New test. + * c-c++-common/gomp/depend-5.c: New test. + * c-c++-common/gomp/depend-6.c: New test. + * c-c++-common/gomp/depend-iterator-1.c: New test. + * c-c++-common/gomp/depend-iterator-2.c: New test. + * c-c++-common/gomp/depobj-1.c: New test. + * c-c++-common/gomp/flush-1.c: New test. + * c-c++-common/gomp/flush-2.c: New test. + * c-c++-common/gomp/for-1.c: New test. + * c-c++-common/gomp/for-2.c: New test. + * c-c++-common/gomp/for-3.c: New test. + * c-c++-common/gomp/for-4.c: New test. + * c-c++-common/gomp/for-5.c: New test. + * c-c++-common/gomp/for-6.c: New test. + * c-c++-common/gomp/for-7.c: New test. + * c-c++-common/gomp/if-1.c (foo): Add some further tests. + * c-c++-common/gomp/if-2.c (foo): Likewise. Expect slightly different + diagnostics wording in one case. + * c-c++-common/gomp/if-3.c: New test. + * c-c++-common/gomp/master-combined-1.c: New test. + * c-c++-common/gomp/master-combined-2.c: New test. + * c-c++-common/gomp/nontemporal-1.c: New test. + * c-c++-common/gomp/nontemporal-2.c: New test. + * c-c++-common/gomp/reduction-task-1.c: New test. + * c-c++-common/gomp/reduction-task-2.c: New test. + * c-c++-common/gomp/requires-1.c: New test. + * c-c++-common/gomp/requires-2.c: New test. + * c-c++-common/gomp/requires-3.c: New test. + * c-c++-common/gomp/requires-4.c: New test. + * c-c++-common/gomp/schedule-modifiers-1.c (bar): Don't expect + diagnostics for nonmonotonic modifier with static, runtime or auto + schedule kinds. + * c-c++-common/gomp/simd7.c: New test. + * c-c++-common/gomp/target-data-1.c: New test. + * c-c++-common/gomp/taskloop-reduction-1.c: New test. + * c-c++-common/gomp/taskwait-depend-1.c: New test. + * c-c++-common/gomp/teams-1.c: New test. + * c-c++-common/gomp/teams-2.c: New test. + * gcc.dg/gomp/appendix-a/a.24.1.c: Update from OpenMP examples. Add + shared(c) clause. + * gcc.dg/gomp/atomic-5.c (f1): Add another expected error. + * gcc.dg/gomp/clause-1.c: Adjust expected diagnostics for const + qualified vars without mutable member no longer being predeterined + shared. + * gcc.dg/gomp/sharing-1.c: Likewise. + * g++.dg/gomp/clause-3.C: Likewise. + * g++.dg/gomp/member-2.C: Likewise. + * g++.dg/gomp/predetermined-1.C: Likewise. + * g++.dg/gomp/private-1.C: Likewise. + * g++.dg/gomp/sharing-1.C: Likewise. + * g++.dg/gomp/sharing-2.C: Likewise. Add a few tests with aggregate + const static data member without mutable elements. + * gcc.dg/gomp/for-4.c: Expected nonmonotonic functions in the dumps. + * gcc.dg/gomp/for-5.c: Likewise. + * gcc.dg/gomp/for-6.c: Change expected library call. + * gcc.dg/gomp/pr39495-2.c (foo): Don't expect errors on !=. + * gcc.dg/gomp/reduction-2.c: New test. + * gcc.dg/gomp/simd-1.c: New test. + * gcc.dg/gomp/teams-1.c: Adjust expected diagnostic lines. + * g++.dg/gomp/atomic-18.C: New test. + * g++.dg/gomp/atomic-19.C: New test. + * g++.dg/gomp/atomic-5.C (f1): Adjust expected lines of read-only + variable messages. Add another expected error. + * g++.dg/gomp/critical-3.C: New test. + * g++.dg/gomp/depend-iterator-1.C: New test. + * g++.dg/gomp/depend-iterator-2.C: New test. + * g++.dg/gomp/depobj-1.C: New test. + * g++.dg/gomp/doacross-1.C: New test. + * g++.dg/gomp/for-21.C: New test. + * g++.dg/gomp/for-4.C: Expected nonmonotonic functions in the dumps. + * g++.dg/gomp/for-5.C: Likewise. + * g++.dg/gomp/for-6.C: Change expected library call. + * g++.dg/gomp/loop-4.C: New test. + * g++.dg/gomp/pr33372-1.C: Adjust location of the expected + diagnostics. + * g++.dg/gomp/pr33372-3.C: Likewise. + * g++.dg/gomp/pr39495-2.C (foo): Don't expect errors on !=. + * g++.dg/gomp/simd-2.C: New test. + * g++.dg/gomp/tpl-atomic-2.C: Adjust expected diagnostic lines. + +2018-11-08 Uros Bizjak + + * gcc.dg/pr87874.c (em): Declare uint64_max as + const unsigned long long int. + +2018-11-08 Jozef Lawrynowicz + + * gcc.dg/attr-alloc_size-10.c: Fix calculation of USHRT_MAX to prevent + integer overflow when sizeof(short) == sizeof(int). + * gcc.dg/attr-alloc_size-11.c: Likewise. + * gcc.dg/attr-alloc_size-3.c: Likewise. + * gcc.dg/attr-alloc_size-5.c: Likewise. + * gcc.dg/builtin-stringop-chk-7.c: Likewise. + +2018-11-08 Jozef Lawrynowicz + + * c-c++-common/patchable_function_entry-decl.c: Add regex to search for + uppercase "NOP" instructions in assembler output. + * c-c++-common/patchable_function_entry-default.c: Likewise. + * c-c++-common/patchable_function_entry-definition.c: Likewise. + +2018-11-08 Jozef Lawrynowicz + + * c-c++-common/pr27336.c: Skip test if the target keeps null pointer + checks. + * gcc.dg/addr_equal-1.c: Likewise. + * gcc.dg/tree-ssa/pr78154.c: Likewise. + * gcc.dg/tree-ssa/vrp111.c: Likewise. + +2018-11-08 Jozef Lawrynowicz + + * lib/gcc-dg.exp (gcc-dg-prune): Add new regexps for when the size of + an output section is too large for a memory region, or a memory + region overflows. + +2018-11-08 Eric Botcazou + + * gnat.dg/null_pointer_deref1.adb: Remove -gnatp and add pragma. + * gnat.dg/null_pointer_deref2.adb: Likewise. + * gnat.dg/null_pointer_deref3.adb: Likewise. + * gnat.dg/opt74.adb: New test. + * gnat.dg/opt74_pkg.ad[sb]: New helper. + * gnat.dg/warn12.adb: Delete. + * gnat.dg/warn12_pkg.ads: Likewise. + +2018-11-08 David Malcolm + + PR ipa/86395 + * g++.dg/ipa/devirt-12.C: Add "-all" suffix to + "-fdump-ipa-inline". + * g++.dg/ipa/imm-devirt-1.C: Add "-optimized" suffix to + "-fdump-tree-einline". + * g++.dg/tree-prof/inline_mismatch_args.C: Add "-all" suffix to + "-fdump-tree-einline". + * g++.dg/tree-ssa/inline-1.C: Add "-optimized" suffix to + "-fdump-tree-einline". + * g++.dg/tree-ssa/inline-2.C: Likewise. + * g++.dg/tree-ssa/inline-3.C: Likewise. + * g++.dg/tree-ssa/inline-4.C: New test, based on inline-1.C, but + using "-fopt-info-inline". + * gcc.dg/ipa/fopt-info-inline-1.c: New test. + * gcc.dg/ipa/inline-4.c: Add "-all" suffix to + "-fdump-ipa-inline". Add "-fopt-info-inline" and dg-optimized + directive. + * gcc.dg/ipa/inline-7.c: Add "-optimized" suffix to + "-fdump-tree-einline". Add "-fopt-info-inline" and dg-optimized + directive. Update scan-tree-dump-times to reflect /order + suffixes. + * gcc.dg/ipa/inlinehint-4.c: Update scan-tree-dump-times to + reflect /order suffixes. + * gcc.dg/plugin/dump-1.c: Add "-loop" to "-fopt-info-note" to + avoid getting extra messages from inliner. + * gcc.dg/plugin/dump-2.c: Likewise. + * gcc.dg/pr26570.c: Add dg-prune-output to ignore new + "function body not available" missed optimization messages. + * gcc.dg/pr71969-2.c: Update scan-tree-dump-times to reflect + /order suffixes. + * gcc.dg/pr71969-3.c: Likewise. + * gcc.dg/tree-ssa/inline-11.c: Add "-all" suffix to + "-fdump-tree-einline". + * gcc.dg/tree-ssa/inline-3.c: Add "-optimized" suffix to + "-fdump-tree-einline". Update scan-tree-dump-times to reflect + /order suffixes. + * gcc.dg/tree-ssa/inline-4.c: Add "-optimized" suffix to + "-fdump-tree-einline". Add "-fopt-info-inline" and dg-optimized + directive. + * gcc.dg/tree-ssa/inline-8.c: Add "-optimized" suffix to + "-fdump-tree-einline". + * gfortran.dg/pr79966.f90: Update scan-ipa-dump to reflect /order + suffixes. + +2018-11-08 David Malcolm + + * gcc.dg/format/gcc_diag-10.c: Add coverage for %f. + +2018-11-08 David Malcolm + + * gcc.dg/format/gcc_diag-10.c (cgraph_node): New typedef. + (test_dump): Add testing of %C. + +2018-11-08 Eric Botcazou + + * g++.dg/other/pr87916.C: New test. + +2018-11-08 Richard Biener + + PR tree-optimization/87929 + * gcc.dg/pr87929.c: New testcase. + +2018-11-08 Martin Liska + + * gcc.dg/pr87811.c: Update scanned pattern. + * gcc.dg/pr87811-2.c: Likewise. + +2018-11-08 Rainer Orth + + * g++.dg/lto/pr87906_0.C: Use moon instead of possibly predefined + sun. + * g++.dg/lto/pr87906_1.C: Likewise. + +2018-11-08 Richard Biener + + PR tree-optimization/87913 + * gcc.dg/tree-ssa/phi-opt-20.c: New testcase. + +2018-11-08 Chenghua Xu + + * gcc.target/mips/mips.exp (mips-dg-options): + Add mips_option_dependency msoft-float vs no-mmi and + mips16/micromips vs no-mmi/ext/ext2 only gcc + config with Loongson target. + +2018-11-07 Jozef Lawrynowicz + + * gcc.c-torture/compile/pr65595.c: Change type of "num" argument to + memcpy from "unsigned long" to __SIZE_TYPE__. + +2018-11-07 Jozef Lawrynowicz + + PR c/87691 + * gcc.target/msp430/pr87691.c: New test. + +2018-11-07 Nikolai Merinov + + * gcc.dg/Wno-attribute-warning.c: New test. + +2018-11-07 Nathan Sidwell + + PR c++/87904 + * g++.dg/lookup/pr87904.C: New. + +2018-11-07 Uros Bizjak + + * gcc.dg/pr87874.c: Compile only for int128 effective target. + +2018-11-07 Richard Biener + + PR tree-optimization/87914 + * lib/target-supports.exp (check_effective_target_vect_var_shift): New. + (check_avx2_available): Likewise. + * g++.dg/vect/pr87914.cc: New testcase. + +2018-11-07 Chenghua Xu + + * gcc.target/mips/loongson-ctz.c: Fix typo. + * gcc.target/mips/loongson-dctz.c: Fix typo. + +2018-11-07 Jan Hubicka + + * g++.dg/lto/odr-1_1.C: Fix template. + +2018-11-07 Chenghua Xu + + * gcc.target/mips/loongson-ctz.c: New test. + * gcc.target/mips/loongson-dctz.c: Likewise. + * gcc.target/mips/mips.exp (mips_option_groups): Add + -mloongson-ext2 option. + +2018-11-07 Chenghua Xu + + * gcc.target/mips/mips.exp (mips_option_groups): Add + -mloongson-ext option. + (mips-dg-options): Add mips_option_dependency options + "-mmicromips" vs "-mno-loongson-ext", + +2018-11-07 Chenghua Xu + + * gcc.target/mips/loongson-shift-count-truncated-1.c + (dg-options): Run under -mloongson-mmi option. + Include loongson-mmiintrin.h instead of loongson.h. + * gcc.target/mips/loongson-simd.c: Likewise. + * gcc.target/mips/mips.exp (mips_option_groups): Add + -mloongson-mmi option. + (mips-dg-options): Add mips_option_dependency options "-mips16" vs + "-mno-loongson-mmi", "-mmicromips" vs "-mno-loongson-mmi", + "-msoft-float" vs "-mno-loongson-mmi". + (mips-dg-init): Add -mloongson-mmi option. + * lib/target-supports.exp: Rename check_mips_loongson_hw_available + to check_mips_loongson_mmi_hw_available. + Rename check_effective_target_mips_loongson_runtime to + check_effective_target_mips_loongson_mmi_runtime. + (check_effective_target_vect_int): Use mips_loongson_mmi instead + of mips_loongson when check et-is-effective-target. + (add_options_for_mips_loongson_mmi): New proc. + Rename check_effective_target_mips_loongson to + check_effective_target_mips_loongson_mmi. + (check_effective_target_vect_shift, + check_effective_target_whole_vector_shift, + check_effective_target_vect_no_int_min_max, + check_effective_target_vect_no_align, + check_effective_target_vect_short_mult, + check_vect_support_and_set_flags):Use mips_loongson_mmi instead + of mips_loongson when check et-is-effective-target. + +2018-11-07 Richard Biener + + PR lto/87906 + * g++.dg/lto/pr87906_0.C: New testcase. + * g++.dg/lto/pr87906_1.C: Likewise. + +2018-11-07 Alexandre Oliva + + PR rtl-optimization/87874 + * gcc.dg/pr87874.c: New. + +2018-11-06 Ilya Leoshkevich + + * gcc.target/s390/load-and-test-fp-1.c: Accept cdb. + +2018-11-06 Jozef Lawrynowicz + + * gcc.target/msp430/special-regs.c: New test. + +2018-11-06 Rainer Orth + + PR sanitizer/80953 + * c-c++-common/asan/alloca_loop_unpoisoning.c: Require alloca + support. + (foo): Use __builtin_alloca. + +2018-11-06 Jan Hubicka + + * gcc.dg/lto/tbaa-1.c: New testcase. + +2018-11-06 Richard Biener + + PR tree-optimization/87889 + * gcc.dg/pr87894.c: New testcase. + +2018-11-06 Andreas Krebbel + + PR target/87723 + * gcc.target/s390/pr87723.c: New test. + +2018-11-06 Richard Biener + + PR middle-end/18041 + * gcc.target/i386/pr18041-1.c: New testcase. + * gcc.target/i386/pr18041-2.c: Likewise. + +2018-11-06 Wei Xiao + + * gcc.target/i386/avx-1.c: Update tests for VFIXUPIMM* intrinsics. + * gcc.target/i386/avx512f-vfixupimmpd-1.c: Ditto. + * gcc.target/i386/avx512f-vfixupimmpd-2.c: Ditto. + * gcc.target/i386/avx512f-vfixupimmps-1.c: Ditto. + * gcc.target/i386/avx512f-vfixupimmsd-1.c: Ditto. + * gcc.target/i386/avx512f-vfixupimmsd-2.c: Ditto. + * gcc.target/i386/avx512f-vfixupimmss-1.c: Ditto. + * gcc.target/i386/avx512f-vfixupimmss-2.c: Ditto. + * gcc.target/i386/avx512vl-vfixupimmpd-1.c: Ditto. + * gcc.target/i386/avx512vl-vfixupimmps-1.c: Ditto. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-14.c: Ditto. + * gcc.target/i386/sse-22.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/testimm-10.c: Ditto. + * gcc.target/i386/testround-1.c: Ditto. + +2018-11-05 Paul Koning + + * lib/target-supports.exp: Add check for "inf" effective target + keyword. + * gcc.dg/builtins-44.c: Skip if no infinite support. + * gcc.dg/builtins-45.c: Ditto. + * gcc.dg/torture/builtin-complex-1.c: Ditto. + * gcc.dg/torture/builtin-cproj-1.c: Ditto. + * gcc.dg/torture/builtin-frexp-1.c: Ditto. + * gcc.dg/torture/builtin-ldexp-1.c: Ditto. + * gcc.dg/torture/builtin-logb-1.c: Ditto. + * gcc.dg/torture/builtin-math-2.c: Ditto. + * gcc.dg/torture/builtin-math-5.c: Ditto. + * gcc.dg/torture/builtin-math-7.c: Ditto. + * gcc.dg/torture/builtin-modf-1.c: Ditto. + * gcc.dg/torture/type-generic-1.c: Ditto. + +2018-11-05 Ilya Leoshkevich + + * gcc.target/s390/md/andc-splitter-1.c: Add colon to + expectations. + * gcc.target/s390/md/andc-splitter-2.c: Likewise. + * gcc.target/s390/md/setmem_long-1.c: Likewise. + +2018-11-05 Richard Biener + + PR tree-optimization/87873 + * gcc.dg/pr87873.c: New testcase. + +2018-11-05 Robin Dapp + + * gcc.target/s390/ifcvt-one-insn-bool.c: New test. + * gcc.target/s390/ifcvt-one-insn-char.c: New test. + +2018-11-05 Robin Dapp + + * gcc.dg/loop-8.c: On s390, always run the test with -march=zEC12. + +2018-11-05 Richard Biener + + * gcc.dg/pr41488.c: Scan ivcanon dump instead of sccp one. + * gcc.dg/tree-ssa/scev-7.c: Likewise. + +2018-11-05 Jakub Jelinek + + PR tree-optimization/87859 + * gcc.dg/store_merging_24.c: New test. + * gcc.dg/store_merging_25.c: New test. + + PR sanitizer/87837 + * c-c++-common/ubsan/pr87837.c: New test. + +2018-11-05 Martin Liska + + PR c/87811 + * gcc.dg/pr87811.c: New test. + * gcc.dg/pr87811-2.c: Likewise. + * gcc.dg/pr87811-3.c: Likewise. + +2018-11-05 Martin Liska + + PR gcov-profile/77698 + * gcc.dg/tree-prof/pr77698.c: New test. + +2018-11-04 Bernd Edlinger + + PR tree-optimization/86572 + * gcc.dg/pr86572.c: New test. + +2018-11-04 Bernd Edlinger + + PR tree-optimization/87672 + * gcc.dg/pr87672.c: New test. + +2018-11-04 Uros Bizjak + + PR middle-end/58372 + * g++.target/i386/pr58372.C: New test. + +2018-11-03 Sandra Loosemore + + PR target/87079 + * gcc.target/nios2/pr87079-1.c: New. + * gcc.target/nios2/pr87079-2.c: New. + +2018-11-02 Rainer Orth + + * gcc.dg/compat/pr83487-1_y.c: Move dg-skip-if ... + * gcc.dg/compat/pr83487-1_main.c: ... here. + * gcc.dg/compat/struct-by-value-10_main.c, + gcc.dg/compat/struct-by-value-10_x.c, + gcc.dg/compat/struct-by-value-11_main.c, + gcc.dg/compat/struct-by-value-11_x.c, + gcc.dg/compat/struct-by-value-12_main.c, + gcc.dg/compat/struct-by-value-12_x.c, + gcc.dg/compat/struct-by-value-13_main.c, + gcc.dg/compat/struct-by-value-13_x.c, + gcc.dg/compat/struct-by-value-14_main.c, + gcc.dg/compat/struct-by-value-14_x.c, + gcc.dg/compat/struct-by-value-15_main.c, + gcc.dg/compat/struct-by-value-15_x.c, + gcc.dg/compat/struct-by-value-17_main.c, + gcc.dg/compat/struct-by-value-17_x.c, + gcc.dg/compat/struct-by-value-18_main.c, + gcc.dg/compat/struct-by-value-18_x.c, + gcc.dg/compat/struct-by-value-2_main.c, + gcc.dg/compat/struct-by-value-2_x.c, + gcc.dg/compat/struct-by-value-22_main.c, + gcc.dg/compat/struct-by-value-22_x.c, + gcc.dg/compat/struct-by-value-3_main.c, + gcc.dg/compat/struct-by-value-3_x.c, + gcc.dg/compat/struct-by-value-4_main.c, + gcc.dg/compat/struct-by-value-4_x.c, + gcc.dg/compat/struct-by-value-5b_main.c, + gcc.dg/compat/struct-by-value-5b_x.c, + gcc.dg/compat/struct-by-value-6b_main.c, + gcc.dg/compat/struct-by-value-6b_x.c, + gcc.dg/compat/struct-by-value-6b_main.c, + gcc.dg/compat/struct-by-value-7b_x.c, + gcc.dg/compat/struct-by-value-7b_main.c, + gcc.dg/compat/struct-by-value-8_main.c, + gcc.dg/compat/struct-by-value-8_x.c, + gcc.dg/compat/struct-by-value-9_main.c, + gcc.dg/compat/struct-by-value-9_x.c, + gcc.dg/compat/struct-return-2_main.c, + gcc.dg/compat/struct-return-2_x.c: Likewise. + +2018-11-02 Nathan Sidwell + + * g++.dg/lookup/crash6.C: Adjust error + * g++.dg/parse/crash38.C: Likewise. + +2018-11-02 Andreas Schwab + + * gcc.c-torture/execute/20010904-2.c: Fix last change. + * gcc.dg/Wattributes-10.c: Likewise. + +2018-11-02 Richard Biener + + PR tree-optimization/87776 + * gcc.dg/torture/pr87776.c: New testcase. + +2018-11-01 Marek Polacek + + Implement P0846R0, ADL and function templates. + * g++.dg/addr_builtin-1.C: Adjust dg-error. + * g++.dg/cpp2a/fn-template1.C: New test. + * g++.dg/cpp2a/fn-template10.C: New test. + * g++.dg/cpp2a/fn-template11.C: New test. + * g++.dg/cpp2a/fn-template12.C: New test. + * g++.dg/cpp2a/fn-template13.C: New test. + * g++.dg/cpp2a/fn-template14.C: New test. + * g++.dg/cpp2a/fn-template15.C: New test. + * g++.dg/cpp2a/fn-template16.C: New test. + * g++.dg/cpp2a/fn-template2.C: New test. + * g++.dg/cpp2a/fn-template3.C: New test. + * g++.dg/cpp2a/fn-template4.C: New test. + * g++.dg/cpp2a/fn-template5.C: New test. + * g++.dg/cpp2a/fn-template6.C: New test. + * g++.dg/cpp2a/fn-template7.C: New test. + * g++.dg/cpp2a/fn-template8.C: New test. + * g++.dg/cpp2a/fn-template9.C: New test. + * g++.dg/parse/fn-template1.C: New test. + * g++.dg/parse/fn-template2.C: New test. + * g++.dg/parse/template19.C: Adjust dg-error. + * g++.dg/template/pr61745.C: Add target to dg-error. + +2017-11-01 Thomas Koenig + + PR fortran/54613 + * gfortran.dg/findloc_1.f90: Actually commit. + * gfortran.dg/findloc_2.f90: Actually commit. + * gfortran.dg/findloc_3.f90: Actually commit. + * gfortran.dg/findloc_4.f90: Actually commit. + * gfortran.dg/findloc_5.f90: Actually commit. + * gfortran.dg/findloc_6.f90: Actually commit. + +2018-11-01 Paul Thomas + + PR fortran/40196 + * gfortran.dg/inquiry_part_ref_1.f08: New test. + * gfortran.dg/inquiry_part_ref_2.f90: New test. + * gfortran.dg/inquiry_part_ref_3.f90: New test. + +2018-11-01 Paul Koning + + * gcc.c-torture/execute/20010904-1.c: Align 2 if pdp11. + * gcc.c-torture/execute/20010904-2.c: Ditto. + * c-c++-common/builtin-arith-overflow-2.c: Skip if pdp11. + * gcc.dg/Walloc-size-larger-than-4.c: Ditto. + * gcc.dg/Walloc-size-larger-than-5.c: Ditto. + * gcc.dg/Walloc-size-larger-than-6.c: Ditto. + * gcc.dg/Walloc-size-larger-than-7.c: Ditto. + * gcc.dg/Walloca-14.c: Ditto. + * gcc.dg/Wlarger-than3.c: Ditto. + * gcc.dg/compat/pr83487-1_y.c: Ditto. + * gcc.dg/compat/struct-by-value-2_x.c: Ditto. + * gcc.dg/compat/struct-by-value-3_x.c: Ditto. + * gcc.dg/compat/struct-by-value-4_x.c: Ditto. + * gcc.dg/compat/struct-by-value-5b_x.c: Ditto. + * gcc.dg/compat/struct-by-value-6b_x.c: Ditto. + * gcc.dg/compat/struct-by-value-7b_x.c: Ditto. + * gcc.dg/compat/struct-by-value-8_x.c: Ditto. + * gcc.dg/compat/struct-by-value-9_x.c: Ditto. + * gcc.dg/compat/struct-by-value-10_x.c: Ditto. + * gcc.dg/compat/struct-by-value-11_x.c: Ditto. + * gcc.dg/compat/struct-by-value-12_x.c: Ditto. + * gcc.dg/compat/struct-by-value-13_x.c: Ditto. + * gcc.dg/compat/struct-by-value-14_x.c: Ditto. + * gcc.dg/compat/struct-by-value-15_x.c: Ditto. + * gcc.dg/compat/struct-by-value-16_x.c: Ditto. + * gcc.dg/compat/struct-by-value-17_x.c: Ditto. + * gcc.dg/compat/struct-by-value-18_x.c: Ditto. + * gcc.dg/compat/struct-by-value-22_x.c: Ditto. + * gcc.dg/compat/struct-return-2_x.c: Ditto. + * gcc.dg/falign-labels-1.c: Ditto. + * gcc.dg/long_branch.c: Ditto. + * gcc.dg/nextafter-1.c: Ditto. + * gcc.dg/pr35045.c: Ditto. + * gcc.dg/pr48616.c: Ditto. + * gcc.dg/pr84100.c: Ditto. + * gcc.dg/tree-ssa/builtin-sprintf-9.c: Ditto. + * gcc.dg/tree-ssa/builtin-sprintf-warn-10.c: Ditto. + * gcc.dg/tree-ssa/builtin-sprintf.c: Ditto. + * gcc.dg/Wattributes-10.c: Expect error if pdp11. + * gcc.dg/attr-alloc_size-11.c: Don't XFAIL if pdp11. + * gcc.dg/builtin-inf-1.c: Add pdp11 to warnings about INF. + * gcc.dg/builtins-1.c: Ditto. + +2018-11-01 Thomas Koenig + + PR fortran/46020 + * gfortran.dg/bind_c_18.f90: Adjust error message. + +2018-11-01 Marek Polacek + + * g++.dg/cpp1z/constexpr-lambda22.C: New test, + +2018-11-01 Jozef Lawrynowicz + + * gcc.dg/tree-ssa/cunroll-13.c: Add missing cast from literal to int32. + +2018-11-30 Jan Hubicka + + * g++.dg/lto/pr84805_1.C: Update template. + * g++.dg/lto/pr84805_0.C: Update template. + * g++.dg/lto/pr84805_1b.C: Update template. + * g++.dg/lto/pr84805_0b.C: Update template. + +2018-11-01 Jakub Jelinek + + PR tree-optimization/87826 + * gcc.dg/pr87826.c: New test. + +2018-11-01 Thomas Koenig + + PR fortran/46020 + * gfortran.dg/bind_c_usage_7.f90: Adjust error message. + * gfortran.dg/bind_c_usage_32.f90: New test. + +2018-11-01 Nathan Sidwell + + * g++.dg/abi/anon5.C: New. + +2018-11-01 Jakub Jelinek + + PR d/87824 + * gdc.dg/simd.d: Add -Wno-psabi. + * gdc.dg/compilable.d: Likewise. + +2018-11-01 Martin Liska + Jason Merrill + + PR c++/64266 + PR bootstrap/70422 + PR ipa/81277 + * g++.dg/cpp0x/constexpr-__func__2.C: Make it a compilation + test. + * g++.old-deja/g++.ext/pretty4.C: Remove as the run-time + assumptions are not longer valid. + +2018-10-31 Thomas Koenig + + PR fortran/20520 + * gfortran.dg/allocatable_uninitialized_1.f90: New test. + +2018-10-31 Nathan Sidwell + + * g++.dg/lookup/friend21.C: New. + +2018-10-31 Martin Liska + + PR driver/83193 + * gcc.target/aarch64/spellcheck_7.c: New test. + * gcc.target/aarch64/spellcheck_8.c: New test. + * gcc.target/aarch64/spellcheck_9.c: New test. + +2018-10-31 Nathan Sidwell + + * g++.dg/lookup/using60.C: New. + +2018-10-31 Richard Biener + + PR middle-end/70359 + PR middle-end/86270 + * gcc.target/i386/pr70359.c: New testcase. + * gcc.target/i386/pr86270.c: Likewise. + +2018-10-31 Claudiu Zissulescu + + * gcc.target/arc/jumptable.c: New test. + +2018-10-31 Claudiu Zissulescu + + * gcc.target/arc/tls-gd.c: New file. + * gcc.target/arc/tls-ie.c: Likewise. + * gcc.target/arc/tls-ld.c: Likewise. + * gcc.target/arc/tls-le.c: Likewise. + * gcc.target/arc/tls-1.c: Update test. + +2018-10-31 Claudiu Zissulescu + + * gcc.target/arc/mulsi3_highpart-2.c: Update test. + +2018-10-31 Martin Liska + + * c-c++-common/ubsan/pr63839.c: Update to new sanitizer message. + * c-c++-common/ubsan/unreachable-1.c (main): Likewise. + * c-c++-common/ubsan/unreachable-2.c: Likewise. + * c-c++-common/ubsan/unreachable-4.c (main): Likewise. + +2018-10-31 Thomas Preud'homme + + PR target/87374 + * gcc.target/arm/movdi_movt.c: Skip if both -mslow-flash-data and + -mword-relocations would be passed when compiling the test. + * gcc.target/arm/movsi_movt.c: Likewise. + * gcc.target/arm/pr81863.c: Likewise. + * gcc.target/arm/thumb2-slow-flash-data-1.c: Likewise. + * gcc.target/arm/thumb2-slow-flash-data-2.c: Likewise. + * gcc.target/arm/thumb2-slow-flash-data-3.c: Likewise. + * gcc.target/arm/thumb2-slow-flash-data-4.c: Likewise. + * gcc.target/arm/thumb2-slow-flash-data-5.c: Likewise. + * gcc.target/arm/tls-disable-literal-pool.c: Likewise. + +2018-10-31 Richard Biener + + PR testsuite/87802 + * g++.dg/vect/slp-pr87105.cc: XFAIL for strict alignment targets. + +2018-10-30 Thomas Koenig + + PR fortran/85896 + * gfortran.dg/min_max_type.f90: New test. + +2018-10-30 Martin Sebor + + PR middle-end/87041 + * gcc.c-torture/execute/fprintf-2.c: New test. + * gcc.c-torture/execute/printf-2.c: Same. + * gcc.c-torture/execute/user-printf.c: Same. + * gcc.dg/tree-ssa/builtin-fprintf-warn-1.c: Same. + * gcc.dg/tree-ssa/builtin-printf-2.c: Same. + * gcc.dg/tree-ssa/builtin-printf-warn-1.c: Same. + * gcc.dg/tree-ssa/user-printf-warn-1.c: Same. + +2018-10-30 Marek Polacek + + Implement P0892R2, explicit(bool). + * g++.dg/cpp2a/explicit1.C: New test. + * g++.dg/cpp2a/explicit10.C: New test. + * g++.dg/cpp2a/explicit11.C: New test. + * g++.dg/cpp2a/explicit12.C: New test. + * g++.dg/cpp2a/explicit13.C: New test. + * g++.dg/cpp2a/explicit2.C: New test. + * g++.dg/cpp2a/explicit3.C: New test. + * g++.dg/cpp2a/explicit4.C: New test. + * g++.dg/cpp2a/explicit5.C: New test. + * g++.dg/cpp2a/explicit6.C: New test. + * g++.dg/cpp2a/explicit7.C: New test. + * g++.dg/cpp2a/explicit8.C: New test. + * g++.dg/cpp2a/explicit9.C: New test. + +2018-10-30 Segher Boessenkool + + PR rtl-optimization/87708 + * gcc.dg/ira-shrinkwrap-prep-1.c: xfail test. + * gcc.dg/ira-shrinkwrap-prep-2.c: xfail test. + +2018-10-30 Paolo Carlini + + * g++.dg/cpp1z/has-unique-obj-representations1.C: Test location too. + * g++.dg/ext/flexarray-mangle-2.C: Likewise. + * g++.dg/ext/flexarray-mangle.C: Likewise. + * g++.dg/ext/flexarray-subst.C: Likewise. + * g++.dg/ext/flexary10.C: Likewise. + * g++.dg/ext/flexary11.C: Likewise. + * g++.dg/ext/flexary14.C: Likewise. + * g++.dg/ext/flexary16.C: Likewise. + * g++.dg/ext/flexary26.C: Likewise. + * g++.dg/ext/flexary27.C: Likewise. + * g++.dg/ext/flexary7.C: Likewise. + * g++.dg/ext/pr71290.C: Likewise. + +2018-10-30 Paul Koning + + * gcc.dg/tree-ssa/attr-alias.c: Skip if no weak support. + +2018-10-30 Michael Ploujnikov + + * gcc.dg/tree-prof/cold_partition_label.c: Update for cold + section names without numbers. + * gcc.dg/tree-prof/section-attr-1.c: Ditto. + * gcc.dg/tree-prof/section-attr-2.c: Ditto. + * gcc.dg/tree-prof/section-attr-3.c: Ditto. + +2018-10-29 David Malcolm + + PR c++/87721 + * c-c++-common/substring-location-PR-87721.c: New test. + * gcc.dg/plugin/diagnostic-test-string-literals-1.c: Add test for + PR 87721. + * gcc.dg/plugin/diagnostic_plugin_test_string_literals.c + (test_string_literals): Fold the index arguments before checking + for INTEGER_CST. + +2018-10-29 David Malcolm + + * c-c++-common/spellcheck-reserved.c: Update expected output for + C++ for merger of "did you mean" suggestions into the error + message. + * g++.dg/ext/builtin3.C: Update expected output for merger of "did + you mean" suggestion into the error. + * g++.dg/lookup/error1.C: Likewise. + * g++.dg/lookup/pr77549.C: Likewise. + * g++.dg/lookup/pr80913.C: Likewise. + * g++.dg/lookup/suggestions1.C: Likewise. + * g++.dg/lookup/suggestions2.C: New test. + * g++.dg/overload/koenig1.C: Update expected output as above. + * g++.dg/spellcheck-identifiers-2.C: Likewise. + * g++.dg/spellcheck-identifiers.C: Likewise. + * g++.dg/spellcheck-ns.C: New test. + * g++.dg/spellcheck-pr77829.C: Update expected output as above. + * g++.dg/spellcheck-pr78656.C: Likewise. + * g++.dg/spellcheck-pr79298.C: Likewise, adding + -fdiagnostics-show-caret to options. + * g++.dg/spellcheck-pr80177.C: Likewise. + * g++.dg/spellcheck-single-vs-multiple.C: New test. + * g++.dg/spellcheck-typenames.C: Update expected output as above. + * g++.dg/template/static10.C: Likewise. + * g++.old-deja/g++.mike/ns5.C: Likewise. + * g++.old-deja/g++.mike/ns7.C: Likewise. + * g++.old-deja/g++.ns/koenig5.C: Likewise. + * g++.old-deja/g++.other/lineno5.C: Likewise. + +2018-10-29 Paolo Carlini + + * g++.dg/cpp0x/auto24.C: Test location too. + * g++.dg/cpp0x/auto3.C: Likewise. + * g++.dg/cpp0x/auto42.C: Likewise. + * g++.dg/cpp0x/initlist57.C: Likewise. + * g++.dg/cpp0x/initlist75.C: Likewise. + * g++.dg/cpp0x/initlist80.C: Likewise. + * g++.dg/cpp0x/lambda/lambda-ice13.C: Likewise. + * g++.old-deja/g++.brendan/array-refs.C: Likewise. + * g++.old-deja/g++.bugs/900322_01.C: Likewise. + * g++.old-deja/g++.bugs/900519_07.C: Likewise. + * g++.old-deja/g++.other/typeck1.C: Likewise. + +2018-10-29 Kugan Vivekanandarajah + + PR middle-end/87469 + * g++.dg/pr87469.C: New test. + +2018-10-29 Marek Polacek + + PR c++/87594 - constexpr rejects-valid with range-based for. + * g++.dg/cpp1y/constexpr-loop8.C: New test. + +2018-10-29 Richard Biener + + PR tree-optimization/87785 + * gcc.dg/torture/20181029-1.c: New testcase. + * gcc.dg/torture/20181029-2.c: Likewise. + +2018-10-29 Richard Biener + + PR tree-optimization/87790 + * gcc.dg/pr87790.c: New testcase. + +2018-10-29 Martin Liska + + * g++.dg/gcov/gcov-8.C: Do not check intermediate format. + * lib/gcov.exp: Remove legacy verify-intermediate. + +2018-10-28 Kugan Vivekanandarajah + + * gcc.dg/gimplefe-30.c: New test. + * gcc.dg/gimplefe-31.c: New test. + * gcc.dg/gimplefe-32.c: New test. + * gcc.dg/gimplefe-33.c: New test. + +2018-10-28 Iain Buclaw + + * gcc.misc-tests/help.exp: Add D to option descriptions check. + * gdc.dg/asan/asan.exp: New file. + * gdc.dg/asan/gdc272.d: New test. + * gdc.dg/compilable.d: New test. + * gdc.dg/dg.exp: New file. + * gdc.dg/gdc254.d: New test. + * gdc.dg/gdc260.d: New test. + * gdc.dg/gdc270a.d: New test. + * gdc.dg/gdc270b.d: New test. + * gdc.dg/gdc282.d: New test. + * gdc.dg/gdc283.d: New test. + * gdc.dg/imports/gdc170.d: New test. + * gdc.dg/imports/gdc231.d: New test. + * gdc.dg/imports/gdc239.d: New test. + * gdc.dg/imports/gdc241a.d: New test. + * gdc.dg/imports/gdc241b.d: New test. + * gdc.dg/imports/gdc251a.d: New test. + * gdc.dg/imports/gdc251b.d: New test. + * gdc.dg/imports/gdc253.d: New test. + * gdc.dg/imports/gdc254a.d: New test. + * gdc.dg/imports/gdc256.d: New test. + * gdc.dg/imports/gdc27.d: New test. + * gdc.dg/imports/gdcpkg256/package.d: New test. + * gdc.dg/imports/runnable.d: New test. + * gdc.dg/link.d: New test. + * gdc.dg/lto/lto.exp: New file. + * gdc.dg/lto/ltotests_0.d: New test. + * gdc.dg/lto/ltotests_1.d: New test. + * gdc.dg/runnable.d: New test. + * gdc.dg/simd.d: New test. + * gdc.test/gdc-test.exp: New file. + * lib/gdc-dg.exp: New file. + * lib/gdc.exp: New file. + +2017-10-28 Thomas Koenig + + PR fortran/54613 + * gfortran.dg/findloc_1.f90: New test. + * gfortran.dg/findloc_2.f90: New test. + * gfortran.dg/findloc_3.f90: New test. + * gfortran.dg/findloc_4.f90: New test. + * gfortran.dg/findloc_5.f90: New test. + * gfortran.dg/findloc_6.f90: New test. + +2018-10-26 Bill Schmidt + Jinsong Ji + + * gcc.target/powerpc/sse-addss-1.c: Call abort under DEBUG also; + formatting cleanup. + * gcc.target/powerpc/sse-pavgw-1.c: Likewise. + * gcc.target/powerpc/sse2-addsd-1.c: Likewise. + * gcc.target/powerpc/sse2-cvtdq2pd-1.c: Likewise. + * gcc.target/powerpc/sse2-cvtpd2dq-1.c: Likewise. + * gcc.target/powerpc/sse2-cvtpd2ps-1.c: Likewise. + * gcc.target/powerpc/sse2-cvtps2dq-1.c: Likewise. + * gcc.target/powerpc/sse2-cvtps2pd-1.c: Likewise. + * gcc.target/powerpc/sse2-cvtsd2si-1.c: Likewise. + * gcc.target/powerpc/sse2-cvtsd2si-2.c: Likewise. + * gcc.target/powerpc/sse2-cvtsd2ss-1.c: Likewise. + * gcc.target/powerpc/sse2-cvtss2sd-1.c: Likewise. + * gcc.target/powerpc/sse2-cvttpd2dq-1.c: Likewise. + * gcc.target/powerpc/sse2-cvttsd2si-1.c: Likewise. + * gcc.target/powerpc/sse2-divpd-1.c: Likewise. + * gcc.target/powerpc/sse2-divsd-1.c: Likewise. + * gcc.target/powerpc/sse2-maxsd-1.c: Likewise. + * gcc.target/powerpc/sse2-minsd-1.c: Likewise. + * gcc.target/powerpc/sse2-movmskpd-1.c: Likewise. + * gcc.target/powerpc/sse2-movq-1.c: Likewise. + * gcc.target/powerpc/sse2-movsd-3.c: Likewise. + * gcc.target/powerpc/sse2-mulpd-1.c: Likewise. + * gcc.target/powerpc/sse2-mulsd-1.c: Likewise. + * gcc.target/powerpc/sse2-packssdw-1.c: Likewise. + * gcc.target/powerpc/sse2-packsswb-1.c: Likewise. + * gcc.target/powerpc/sse2-packuswb-1.c: Likewise. + * gcc.target/powerpc/sse2-paddsb-1.c: Likewise. + * gcc.target/powerpc/sse2-paddsw-1.c: Likewise. + * gcc.target/powerpc/sse2-paddusb-1.c: Likewise. + * gcc.target/powerpc/sse2-pmovmskb-1.c: Likewise. + * gcc.target/powerpc/sse2-pmulhw-1.c: Likewise. + * gcc.target/powerpc/sse2-pmuludq1.c: Likewise. + * gcc.target/powerpc/sse2-psadbw-1.c: Likewise. + * gcc.target/powerpc/sse2-pshufd-1.c: Likewise. + * gcc.target/powerpc/sse2-pshufhw-1.c: Likewise. + * gcc.target/powerpc/sse2-pshuflw-1.c: Likewise. + * gcc.target/powerpc/sse2-pslld-2.c: Likewise. + * gcc.target/powerpc/sse2-pslldq-1.c: Likewise. + * gcc.target/powerpc/sse2-psrld-1.c: Likewise. + * gcc.target/powerpc/sse2-psrld-2.c: Likewise. + * gcc.target/powerpc/sse2-psrldq-1.c: Likewise. + * gcc.target/powerpc/sse2-psubusb-1.c: Likewise. + * gcc.target/powerpc/sse2-sqrtpd-1.c: Likewise. + * gcc.target/powerpc/sse2-subsd-1.c: Likewise. + +2018-10-26 Paul A. Clarke + + * gcc.target/powerpc/ssse3-check.h: New file. + * gcc.target/powerpc/ssse3-vals.h: New file. + * gcc.target/powerpc/ssse3-pabsb.c: New file. + * gcc.target/powerpc/ssse3-pabsd.c: New file. + * gcc.target/powerpc/ssse3-pabsw.c: New file. + * gcc.target/powerpc/ssse3-palignr.c: New file. + * gcc.target/powerpc/ssse3-phaddd.c: New file. + * gcc.target/powerpc/ssse3-phaddsw.c: New file. + * gcc.target/powerpc/ssse3-phaddw.c: New file. + * gcc.target/powerpc/ssse3-phsubd.c: New file. + * gcc.target/powerpc/ssse3-phsubsw.c: New file. + * gcc.target/powerpc/ssse3-phsubw.c: New file. + * gcc.target/powerpc/ssse3-pmaddubsw.c: New file. + * gcc.target/powerpc/ssse3-pmulhrsw.c: New file. + * gcc.target/powerpc/ssse3-pshufb.c: New file. + * gcc.target/powerpc/ssse3-psignb.c: New file. + * gcc.target/powerpc/ssse3-psignd.c: New file. + * gcc.target/powerpc/ssse3-psignw.c: New file. + +2018-10-26 Paul A. Clarke + + * gcc.target/powerpc/mmx-packs.c: Enable 32 bit execution. + * gcc.target/powerpc/mmx-packssdw-1.c: Likewise. + * gcc.target/powerpc/mmx-packsswb-1.c: Likewise. + * gcc.target/powerpc/mmx-packs.c: Likewise. + * gcc.target/powerpc/mmx-packssdw-1.c: Likewise. + * gcc.target/powerpc/mmx-packsswb-1.c: Likewise. + * gcc.target/powerpc/mmx-paddb-1.c: Likewise. + * gcc.target/powerpc/mmx-paddd-1.c: Likewise. + * gcc.target/powerpc/mmx-paddsb-1.c: Likewise. + * gcc.target/powerpc/mmx-paddsw-1.c: Likewise. + * gcc.target/powerpc/mmx-paddusb-1.c: Likewise. + * gcc.target/powerpc/mmx-paddusw-1.c: Likewise. + * gcc.target/powerpc/mmx-paddw-1.c: Likewise. + * gcc.target/powerpc/mmx-pcmpeqb-1.c: Likewise. + * gcc.target/powerpc/mmx-pcmpeqd-1.c: Likewise. + * gcc.target/powerpc/mmx-pcmpeqw-1.c: Likewise. + * gcc.target/powerpc/mmx-pcmpgtb-1.c: Likewise. + * gcc.target/powerpc/mmx-pcmpgtd-1.c: Likewise. + * gcc.target/powerpc/mmx-pcmpgtw-1.c: Likewise. + * gcc.target/powerpc/mmx-pmaddwd-1.c: Likewise. + * gcc.target/powerpc/mmx-pmulhw-1.c: Likewise. + * gcc.target/powerpc/mmx-pmullw-1.c: Likewise. + * gcc.target/powerpc/mmx-pslld-1.c: Likewise. + * gcc.target/powerpc/mmx-psllw-1.c: Likewise. + * gcc.target/powerpc/mmx-psrad-1.c: Likewise. + * gcc.target/powerpc/mmx-psraw-1.c: Likewise. + * gcc.target/powerpc/mmx-psrld-1.c: Likewise. + * gcc.target/powerpc/mmx-psrlw-1.c: Likewise. + * gcc.target/powerpc/mmx-psubb-2.c: Likewise. + * gcc.target/powerpc/mmx-psubd-2.c: Likewise. + * gcc.target/powerpc/mmx-psubsb-1.c: Likewise. + * gcc.target/powerpc/mmx-psubsw-1.c: Likewise. + * gcc.target/powerpc/mmx-psubusb-1.c: Likewise. + * gcc.target/powerpc/mmx-psubusw-1.c: Likewise. + * gcc.target/powerpc/mmx-psubw-2.c: Likewise. + * gcc.target/powerpc/mmx-punpckhbw-1.c: Likewise. + * gcc.target/powerpc/mmx-punpckhdq-1.c: Likewise. + * gcc.target/powerpc/mmx-punpckhwd-1.c: Likewise. + * gcc.target/powerpc/mmx-punpcklbw-1.c: Likewise. + * gcc.target/powerpc/mmx-punpckldq-1.c: Likewise. + * gcc.target/powerpc/mmx-punpcklwd-1.c: Likewise. + * gcc.target/powerpc/pr37191.c: Likewise. + * gcc.target/powerpc/sse-addps-1.c: Likewise. + * gcc.target/powerpc/sse-addss-1.c: Likewise. + * gcc.target/powerpc/sse-andnps-1.c: Likewise. + * gcc.target/powerpc/sse-andps-1.c: Likewise. + * gcc.target/powerpc/sse-cmpss-1.c: Likewise. + * gcc.target/powerpc/sse-cvtpi16ps-1.c: Likewise. + * gcc.target/powerpc/sse-cvtpi32ps-1.c: Likewise. + * gcc.target/powerpc/sse-cvtpi32x2ps-1.c: Likewise. + * gcc.target/powerpc/sse-cvtpi8ps-1.c: Likewise. + * gcc.target/powerpc/sse-cvtpspi16-1.c: Likewise. + * gcc.target/powerpc/sse-cvtpspi8-1.c: Likewise. + * gcc.target/powerpc/sse-cvtpu16ps-1.c: Likewise. + * gcc.target/powerpc/sse-cvtpu8ps-1.c: Likewise. + * gcc.target/powerpc/sse-cvtsi2ss-1.c: Likewise. + * gcc.target/powerpc/sse-cvtsi2ss-2.c: Likewise. + * gcc.target/powerpc/sse-cvtss2si-1.c: Likewise. + * gcc.target/powerpc/sse-cvtss2si-2.c: Likewise. + * gcc.target/powerpc/sse-cvttss2si-1.c: Likewise. + * gcc.target/powerpc/sse-cvttss2si-2.c: Likewise. + * gcc.target/powerpc/sse-divps-1.c: Likewise. + * gcc.target/powerpc/sse-divss-1.c: Likewise. + * gcc.target/powerpc/sse-maxps-1.c: Likewise. + * gcc.target/powerpc/sse-maxps-2.c: Likewise. + * gcc.target/powerpc/sse-maxss-1.c: Likewise. + * gcc.target/powerpc/sse-minps-1.c: Likewise. + * gcc.target/powerpc/sse-minps-2.c: Likewise. + * gcc.target/powerpc/sse-minss-1.c: Likewise. + * gcc.target/powerpc/sse-movaps-1.c: Likewise. + * gcc.target/powerpc/sse-movaps-2.c: Likewise. + * gcc.target/powerpc/sse-movhlps-1.c: Likewise. + * gcc.target/powerpc/sse-movhps-1.c: Likewise. + * gcc.target/powerpc/sse-movhps-2.c: Likewise. + * gcc.target/powerpc/sse-movlhps-1.c: Likewise. + * gcc.target/powerpc/sse-movlps-1.c: Likewise. + * gcc.target/powerpc/sse-movlps-2.c: Likewise. + * gcc.target/powerpc/sse-movmskb-1.c: Likewise. + * gcc.target/powerpc/sse-movmskps-1.c: Likewise. + * gcc.target/powerpc/sse-movss-1.c: Likewise. + * gcc.target/powerpc/sse-movss-2.c: Likewise. + * gcc.target/powerpc/sse-movss-3.c: Likewise. + * gcc.target/powerpc/sse-mulps-1.c: Likewise. + * gcc.target/powerpc/sse-mulss-1.c: Likewise. + * gcc.target/powerpc/sse-orps-1.c: Likewise. + * gcc.target/powerpc/sse-pavgw-1.c: Likewise. + * gcc.target/powerpc/sse-pmaxsw-1.c: Likewise. + * gcc.target/powerpc/sse-pmaxub-1.c: Likewise. + * gcc.target/powerpc/sse-pminsw-1.c: Likewise. + * gcc.target/powerpc/sse-pminub-1.c: Likewise. + * gcc.target/powerpc/sse-pmulhuw-1.c: Likewise. + * gcc.target/powerpc/sse-psadbw-1.c: Likewise. + * gcc.target/powerpc/sse-rcpps-1.c: Likewise. + * gcc.target/powerpc/sse-rsqrtps-1.c: Likewise. + * gcc.target/powerpc/sse-shufps-1.c: Likewise. + * gcc.target/powerpc/sse-sqrtps-1.c: Likewise. + * gcc.target/powerpc/sse-subps-1.c: Likewise. + * gcc.target/powerpc/sse-subss-1.c: Likewise. + * gcc.target/powerpc/sse-ucomiss-1.c: Likewise. + * gcc.target/powerpc/sse-ucomiss-2.c: Likewise. + * gcc.target/powerpc/sse-ucomiss-3.c: Likewise. + * gcc.target/powerpc/sse-ucomiss-4.c: Likewise. + * gcc.target/powerpc/sse-ucomiss-5.c: Likewise. + * gcc.target/powerpc/sse-ucomiss-6.c: Likewise. + * gcc.target/powerpc/sse-unpckhps-1.c: Likewise. + * gcc.target/powerpc/sse-unpcklps-1.c: Likewise. + * gcc.target/powerpc/sse-xorps-1.c: Likewise. + * gcc.target/powerpc/sse2-addpd-1.c: Likewise. + * gcc.target/powerpc/sse2-addsd-1.c: Likewise. + * gcc.target/powerpc/sse2-andnpd-1.c: Likewise. + * gcc.target/powerpc/sse2-andpd-1.c: Likewise. + * gcc.target/powerpc/sse2-cmppd-1.c: Likewise. + * gcc.target/powerpc/sse2-cmpsd-1.c: Likewise. + * gcc.target/powerpc/sse2-comisd-1.c: Likewise. + * gcc.target/powerpc/sse2-comisd-2.c: Likewise. + * gcc.target/powerpc/sse2-comisd-3.c: Likewise. + * gcc.target/powerpc/sse2-comisd-4.c: Likewise. + * gcc.target/powerpc/sse2-comisd-5.c: Likewise. + * gcc.target/powerpc/sse2-comisd-6.c: Likewise. + * gcc.target/powerpc/sse2-cvtdq2pd-1.c: Likewise. + * gcc.target/powerpc/sse2-cvtdq2ps-1.c: Likewise. + * gcc.target/powerpc/sse2-cvtpd2dq-1.c: Likewise. + * gcc.target/powerpc/sse2-cvtpd2ps-1.c: Likewise. + * gcc.target/powerpc/sse2-cvtps2dq-1.c: Likewise. + * gcc.target/powerpc/sse2-cvtps2pd-1.c: Likewise. + * gcc.target/powerpc/sse2-cvtsd2si-1.c: Likewise. + * gcc.target/powerpc/sse2-cvtsd2si-2.c: Likewise. + * gcc.target/powerpc/sse2-cvtsd2ss-1.c: Likewise. + * gcc.target/powerpc/sse2-cvtsi2sd-1.c: Likewise. + * gcc.target/powerpc/sse2-cvtsi2sd-2.c: Likewise. + * gcc.target/powerpc/sse2-cvtss2sd-1.c: Likewise. + * gcc.target/powerpc/sse2-cvttpd2dq-1.c: Likewise. + * gcc.target/powerpc/sse2-cvttps2dq-1.c: Likewise. + * gcc.target/powerpc/sse2-cvttsd2si-1.c: Likewise. + * gcc.target/powerpc/sse2-cvttsd2si-2.c: Likewise. + * gcc.target/powerpc/sse2-divpd-1.c: Likewise. + * gcc.target/powerpc/sse2-divsd-1.c: Likewise. + * gcc.target/powerpc/sse2-maxpd-1.c: Likewise. + * gcc.target/powerpc/sse2-maxsd-1.c: Likewise. + * gcc.target/powerpc/sse2-minpd-1.c: Likewise. + * gcc.target/powerpc/sse2-minsd-1.c: Likewise. + * gcc.target/powerpc/sse2-mmx.c: Likewise. + * gcc.target/powerpc/sse2-movhpd-1.c: Likewise. + * gcc.target/powerpc/sse2-movhpd-2.c: Likewise. + * gcc.target/powerpc/sse2-movlpd-1.c: Likewise. + * gcc.target/powerpc/sse2-movlpd-2.c: Likewise. + * gcc.target/powerpc/sse2-movmskpd-1.c: Likewise. + * gcc.target/powerpc/sse2-movq-1.c: Likewise. + * gcc.target/powerpc/sse2-movq-2.c: Likewise. + * gcc.target/powerpc/sse2-movq-3.c: Likewise. + * gcc.target/powerpc/sse2-movsd-1.c: Likewise. + * gcc.target/powerpc/sse2-movsd-2.c: Likewise. + * gcc.target/powerpc/sse2-movsd-3.c: Likewise. + * gcc.target/powerpc/sse2-mulpd-1.c: Likewise. + * gcc.target/powerpc/sse2-mulsd-1.c: Likewise. + * gcc.target/powerpc/sse2-orpd-1.c: Likewise. + * gcc.target/powerpc/sse2-packssdw-1.c: Likewise. + * gcc.target/powerpc/sse2-packsswb-1.c: Likewise. + * gcc.target/powerpc/sse2-packuswb-1.c: Likewise. + * gcc.target/powerpc/sse2-paddb-1.c: Likewise. + * gcc.target/powerpc/sse2-paddd-1.c: Likewise. + * gcc.target/powerpc/sse2-paddq-1.c: Likewise. + * gcc.target/powerpc/sse2-paddsb-1.c: Likewise. + * gcc.target/powerpc/sse2-paddsw-1.c: Likewise. + * gcc.target/powerpc/sse2-paddusb-1.c: Likewise. + * gcc.target/powerpc/sse2-paddusw-1.c: Likewise. + * gcc.target/powerpc/sse2-paddw-1.c: Likewise. + * gcc.target/powerpc/sse2-pand-1.c: Likewise. + * gcc.target/powerpc/sse2-pandn-1.c: Likewise. + * gcc.target/powerpc/sse2-pavgb-1.c: Likewise. + * gcc.target/powerpc/sse2-pavgw-1.c: Likewise. + * gcc.target/powerpc/sse2-pcmpeqb-1.c: Likewise. + * gcc.target/powerpc/sse2-pcmpeqd-1.c: Likewise. + * gcc.target/powerpc/sse2-pcmpeqw-1.c: Likewise. + * gcc.target/powerpc/sse2-pcmpgtb-1.c: Likewise. + * gcc.target/powerpc/sse2-pcmpgtd-1.c: Likewise. + * gcc.target/powerpc/sse2-pcmpgtw-1.c: Likewise. + * gcc.target/powerpc/sse2-pextrw.c: Likewise. + * gcc.target/powerpc/sse2-pinsrw.c: Likewise. + * gcc.target/powerpc/sse2-pmaddwd-1.c: Likewise. + * gcc.target/powerpc/sse2-pmaxsw-1.c: Likewise. + * gcc.target/powerpc/sse2-pmaxub-1.c: Likewise. + * gcc.target/powerpc/sse2-pminsw-1.c: Likewise. + * gcc.target/powerpc/sse2-pminub-1.c: Likewise. + * gcc.target/powerpc/sse2-pmovmskb-1.c: Likewise. + * gcc.target/powerpc/sse2-pmulhuw-1.c: Likewise. + * gcc.target/powerpc/sse2-pmulhw-1.c: Likewise. + * gcc.target/powerpc/sse2-pmullw-1.c: Likewise. + * gcc.target/powerpc/sse2-pmuludq-1.c: Likewise. + * gcc.target/powerpc/sse2-por-1.c: Likewise. + * gcc.target/powerpc/sse2-psadbw-1.c: Likewise. + * gcc.target/powerpc/sse2-pshufd-1.c: Likewise. + * gcc.target/powerpc/sse2-pshufhw-1.c: Likewise. + * gcc.target/powerpc/sse2-pshuflw-1.c: Likewise. + * gcc.target/powerpc/sse2-pslld-1.c: Likewise. + * gcc.target/powerpc/sse2-pslld-2.c: Likewise. + * gcc.target/powerpc/sse2-pslldq-1.c: Likewise. + * gcc.target/powerpc/sse2-psllq-1.c: Likewise. + * gcc.target/powerpc/sse2-psllq-2.c: Likewise. + * gcc.target/powerpc/sse2-psllw-1.c: Likewise. + * gcc.target/powerpc/sse2-psllw-2.c: Likewise. + * gcc.target/powerpc/sse2-psrad-1.c: Likewise. + * gcc.target/powerpc/sse2-psrad-2.c: Likewise. + * gcc.target/powerpc/sse2-psraw-1.c: Likewise. + * gcc.target/powerpc/sse2-psraw-2.c: Likewise. + * gcc.target/powerpc/sse2-psrld-1.c: Likewise. + * gcc.target/powerpc/sse2-psrld-2.c: Likewise. + * gcc.target/powerpc/sse2-psrldq-1.c: Likewise. + * gcc.target/powerpc/sse2-psrlq-1.c: Likewise. + * gcc.target/powerpc/sse2-psrlq-2.c: Likewise. + * gcc.target/powerpc/sse2-psrlw-1.c: Likewise. + * gcc.target/powerpc/sse2-psrlw-2.c: Likewise. + * gcc.target/powerpc/sse2-psubb-1.c: Likewise. + * gcc.target/powerpc/sse2-psubd-1.c: Likewise. + * gcc.target/powerpc/sse2-psubq-1.c: Likewise. + * gcc.target/powerpc/sse2-psubsb-1.c: Likewise. + * gcc.target/powerpc/sse2-psubsw-1.c: Likewise. + * gcc.target/powerpc/sse2-psubusb-1.c: Likewise. + * gcc.target/powerpc/sse2-psubusw-1.c: Likewise. + * gcc.target/powerpc/sse2-psubw-1.c: Likewise. + * gcc.target/powerpc/sse2-punpckhbw-1.c: Likewise. + * gcc.target/powerpc/sse2-punpckhdq-1.c: Likewise. + * gcc.target/powerpc/sse2-punpckhqdq-1.c: Likewise. + * gcc.target/powerpc/sse2-punpckhwd-1.c: Likewise. + * gcc.target/powerpc/sse2-punpcklbw-1.c: Likewise. + * gcc.target/powerpc/sse2-punpckldq-1.c: Likewise. + * gcc.target/powerpc/sse2-punpcklqdq-1.c: Likewise. + * gcc.target/powerpc/sse2-punpcklwd-1.c: Likewise. + * gcc.target/powerpc/sse2-pxor-1.c: Likewise. + * gcc.target/powerpc/sse2-shufpd-1.c: Likewise. + * gcc.target/powerpc/sse2-sqrtpd-1.c: Likewise. + * gcc.target/powerpc/sse2-subpd-1.c: Likewise. + * gcc.target/powerpc/sse2-subsd-1.c: Likewise. + * gcc.target/powerpc/sse2-ucomisd-1.c: Likewise. + * gcc.target/powerpc/sse2-ucomisd-2.c: Likewise. + * gcc.target/powerpc/sse2-ucomisd-3.c: Likewise. + * gcc.target/powerpc/sse2-ucomisd-4.c: Likewise. + * gcc.target/powerpc/sse2-ucomisd-5.c: Likewise. + * gcc.target/powerpc/sse2-ucomisd-6.c: Likewise. + * gcc.target/powerpc/sse2-unpckhpd-1.c: Likewise. + * gcc.target/powerpc/sse2-unpcklpd-1.c: Likewise. + * gcc.target/powerpc/sse2-xorpd-1.c: Likewise. + * gcc.target/powerpc/sse3-addsubpd.c: Likewise. + * gcc.target/powerpc/sse3-addsubps.c: Likewise. + * gcc.target/powerpc/sse3-haddpd.c: Likewise. + * gcc.target/powerpc/sse3-haddps.c: Likewise. + * gcc.target/powerpc/sse3-hsubpd.c: Likewise. + * gcc.target/powerpc/sse3-hsubps.c: Likewise. + * gcc.target/powerpc/sse3-lddqu.c: Likewise. + * gcc.target/powerpc/sse3-movddup.c: Likewise. + * gcc.target/powerpc/sse3-movshdup.c: Likewise. + * gcc.target/powerpc/sse3-movsldup.c: Likewise. + * gcc.target/powerpc/mmx-packuswb-1.c: Likewise. Also, add + ommitted "-mpower8-vector" to dg-options. + +2018-10-26 Jan Hubicka + + * g++.dg/lto/odr-1_0.C: Fix template. + * g++.dg/lto/odr-1_1.C: Fix template. + +2018-10-26 Richard Biener + + PR tree-optimization/87105 + * g++.dg/vect/slp-pr87105.cc: Adjust. + * gcc.dg/torture/20181024-1.c: New testcase. + * g++.dg/opt/20181025-1.C: Likewise. + +2018-10-26 Richard Biener + + PR testsuite/87754 + * g++.dg/lto/odr-1_0.C: Fix pattern. + +2018-10-26 Richard Biener + + PR tree-optimization/87746 + * gcc.dg/pr87746.c: New testcase. + +2018-10-26 Rainer Orth + + * gcc.dg/pr78973-2.c: Remove xfail on dg-warning. + +2018-10-25 Carl Love + + * gcc.target/powerpc/float128-cmp2-runnable.c: New test file. + +2018-10-25 Martin Liska + + PR testsuite/87739 + * gcc.dg/tree-ssa/pr84436-5.c (foo): Use signed char. + +2018-10-25 Martin Liska + + PR other/87735 + * gcc.dg/tree-prof/time-profiler-1.c: Revert. + * gcc.dg/tree-prof/time-profiler-2.c: Likewise. + * gcc.dg/tree-prof/time-profiler-3.c: Likewise. + +2018-10-25 Ilya Leoshkevich + + * gcc.target/s390/global-array-almost-huge-element.c: New test. + * gcc.target/s390/global-array-almost-negative-huge-element.c: New test. + * gcc.target/s390/global-array-element-pic.c: New test. + * gcc.target/s390/global-array-even-element.c: New test. + * gcc.target/s390/global-array-huge-element.c: New test. + * gcc.target/s390/global-array-negative-huge-element.c: New test. + * gcc.target/s390/global-array-odd-element.c: New test. + +2018-10-25 Jan Hubicka + + * g++.dg/lto/odr-1_0.C: New test. + * g++.dg/lto/odr-1_1.C: New test. + +2018-10-25 Thomas Preud'homme + + + * gcc.dg/sibcall-9.c: Make v static. + * gcc.dg/sibcall-10.c: Likewise. + +2018-10-25 Richard Biener + + PR tree-optimization/87665 + PR tree-optimization/87745 + * gfortran.dg/20181025-1.f: New testcase. + +2018-10-25 Jakub Jelinek + + PR fortran/87725 + * c-c++-common/gomp/schedule-modifiers-1.c (bar): Separate modifier + from kind with a colon rather than comma. + * gfortran.dg/gomp/schedule-modifiers-1.f90: New test. + * gfortran.dg/gomp/schedule-modifiers-2.f90: New test. + +2018-10-24 Michael Meissner + + * gcc.target/powerpc/float128-math.c: New test to make sure the + long double built-in function names use the f128 form if the user + switched from IBM long double to IEEE long double. + * gcc.target/powerpc/ppc-fortran/ieee128-math.f90: Likewise. + +2018-10-24 Jakub Jelinek + + PR c++/86288 + * g++.dg/cpp0x/gen-attrs-66.C: New test. + +2018-10-24 Martin Sebor + + PR c++/84851 + * g++.dg/Wclass-memaccess-4.C: Remove XFAIL. + +2018-10-24 Martin Liska + + PR tree-optimization/84436 + * gcc.dg/tree-ssa/pr84436-1.c: New test. + * gcc.dg/tree-ssa/pr84436-2.c: New test. + * gcc.dg/tree-ssa/pr84436-3.c: New test. + * gcc.dg/tree-ssa/pr84436-4.c: New test. + * gcc.dg/tree-ssa/pr84436-5.c: New test. + +2018-10-24 Ilya Leoshkevich + + * gcc.target/s390/20181024-1.c: New test. + +2018-10-24 Richard Biener + + PR tree-optimization/87105 + * gcc.dg/vect/bb-slp-39.c: New testcase. + * gfortran.dg/vect/pr83232.f90: Un-XFAIL. + +2018-10-24 Richard Biener + + PR tree-optimization/84013 + * gcc.dg/tree-ssa/restrict-9.c: New testcase. + +2018-10-24 Richard Biener + + PR tree-optimization/87665 + * gcc.dg/torture/pr87665.c: New testcase. + +2018-10-23 Jakub Jelinek + + * g++.dg/cpp2a/lambda-this3.C: Limit dg-bogus directives to c++17_down + only. Add expected warnings and messages for c++2a. + +2018-10-23 Richard Biener + + PR tree-optimization/87105 + PR tree-optimization/87608 + * g++.dg/tree-ssa/phiopt-1.C: New testcase. + g++.dg/vect/slp-pr87105.cc: Likewise. + * g++.dg/tree-ssa/pr21463.C: Scan phiopt2 because this testcase + relies on phiprop run before. + * g++.dg/tree-ssa/pr30738.C: Likewise. + * g++.dg/tree-ssa/pr57380.C: Likewise. + * gcc.dg/tree-ssa/pr84859.c: Likewise. + * gcc.dg/tree-ssa/pr45397.c: Scan phiopt2 because phiopt1 is + confused by copies in the IL left by EVRP. + * gcc.dg/tree-ssa/phi-opt-5.c: Likewise, this time confused + by predictors. + * gcc.dg/tree-ssa/phi-opt-12.c: Scan phiopt2. + * gcc.dg/pr24574.c: Likewise. + * g++.dg/tree-ssa/pr86544.C: Scan phiopt4. + +2018-10-23 Richard Biener + + PR tree-optimization/87700 + * gcc.dg/torture/pr87700.c: New testcase. + +2018-10-23 Richard Biener + + PR tree-optimization/87693 + * gcc.dg/torture/pr87693.c: New testcase. + +2018-10-23 Paul Thomas + + PR fortran/85603 + * gfortran.dg/deferred_character_23.f90 : Check reallocation is + occurring as it should and a regression caused by version 1 of + this patch. + +2018-10-22 Yury Gribov + + PR tree-optimization/87633 + * g++.dg/pr87633.C: New test. + +2018-10-22 Marek Polacek + + PR testsuite/87694 + * g++.dg/concepts/memfun-err.C: Make it a compile test. + +2018-10-22 Richard Biener + + * gcc.dg/tree-ssa/evrp12.c: New testcase. + * gcc.dg/predict-6.c: Adjust. + * gcc.dg/tree-ssa/vrp33.c: Disable EVRP. + * gcc.dg/tree-ssa/vrp02.c: Likewise. + * gcc.dg/tree-ssa/cunroll-9.c: Likewise. + +2018-10-22 Martin Liska + + PR tree-optimization/87686 + * g++.dg/tree-ssa/pr87686.C: New test. + +2018-10-22 Jakub Jelinek + + * g++.target/i386/i386.exp: Use g++-dg-runtest to iterate + properly -std= options. + +2018-10-22 Richard Biener + + * gcc.dg/graphite/scop-4.c: Avoid out-of-bound access. + +2018-10-22 Eric Botcazou + + * gnat.dg/sso14.adb: New test. + * gnat.dg/sso15.adb: Likewise. + +2018-10-22 Eric Botcazou + + * gnat.dg/warn19.ad[sb]: New test. + * gnat.dg/warn19_pkg.ads: New helper. + +2018-10-22 Richard Biener + + PR tree-optimization/87640 + * gcc.dg/torture/pr87640.c: New testcase. + +2018-10-22 Ilya Leoshkevich + + * gcc.target/s390/litpool-int.c: New test. + +2018-10-22 H.J. Lu + + PR target/72782 + * gcc.target/i386/avx512f-andn-di-zmm-1.c: New test. + * gcc.target/i386/avx512f-andn-si-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-andn-si-zmm-2.c: Likewise. + * gcc.target/i386/avx512f-andn-si-zmm-3.c: Likewise. + * gcc.target/i386/avx512f-andn-si-zmm-4.c: Likewise. + * gcc.target/i386/avx512f-andn-si-zmm-5.c: Likewise. + * gcc.target/i386/avx512vl-andn-si-xmm-1.c: Likewise. + * gcc.target/i386/avx512vl-andn-si-ymm-1.c: Likewise. + +2018-10-22 H.J. Lu + + PR target/72782 + * gcc.target/i386/avx512f-and-di-zmm-1.c: New test. + * gcc.target/i386/avx512f-and-si-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-and-si-zmm-2.c: Likewise. + * gcc.target/i386/avx512f-and-si-zmm-3.c: Likewise. + * gcc.target/i386/avx512f-and-si-zmm-4.c: Likewise. + * gcc.target/i386/avx512f-and-si-zmm-5.c: Likewise. + * gcc.target/i386/avx512f-and-si-zmm-6.c: Likewise. + * gcc.target/i386/avx512f-or-di-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-or-si-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-or-si-zmm-2.c: Likewise. + * gcc.target/i386/avx512f-or-si-zmm-3.c: Likewise. + * gcc.target/i386/avx512f-or-si-zmm-4.c: Likewise. + * gcc.target/i386/avx512f-or-si-zmm-5.c: Likewise. + * gcc.target/i386/avx512f-or-si-zmm-6.c: Likewise. + * gcc.target/i386/avx512f-xor-di-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-xor-si-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-xor-si-zmm-2.c: Likewise. + * gcc.target/i386/avx512f-xor-si-zmm-3.c: Likewise. + * gcc.target/i386/avx512f-xor-si-zmm-4.c: Likewise. + * gcc.target/i386/avx512f-xor-si-zmm-5.c: Likewise. + * gcc.target/i386/avx512f-xor-si-zmm-6.c: Likewise. + * gcc.target/i386/avx512vl-and-si-xmm-1.c: Likewise. + * gcc.target/i386/avx512vl-and-si-ymm-1.c: Likewise. + * gcc.target/i386/avx512vl-or-si-xmm-1.c: Likewise. + * gcc.target/i386/avx512vl-or-si-ymm-1.c: Likewise. + * gcc.target/i386/avx512vl-xor-si-xmm-1.c: Likewise. + * gcc.target/i386/avx512vl-xor-si-ymm-1.c: Likewise. + +2018-10-22 H.J. Lu + + PR target/72782 + * gcc.target/i386/avx512f-add-di-zmm-1.c: New test. + * gcc.target/i386/avx512f-add-si-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-add-si-zmm-2.c: Likewise. + * gcc.target/i386/avx512f-add-si-zmm-3.c: Likewise. + * gcc.target/i386/avx512f-add-si-zmm-4.c: Likewise. + * gcc.target/i386/avx512f-add-si-zmm-5.c: Likewise. + * gcc.target/i386/avx512f-add-si-zmm-6.c: Likewise. + * gcc.target/i386/avx512f-sub-di-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-sub-si-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-sub-si-zmm-2.c: Likewise. + * gcc.target/i386/avx512f-sub-si-zmm-3.c: Likewise. + * gcc.target/i386/avx512f-sub-si-zmm-4.c: Likewise. + * gcc.target/i386/avx512f-sub-si-zmm-5.c: Likewise. + * gcc.target/i386/avx512vl-add-si-xmm-1.c: Likewise. + * gcc.target/i386/avx512vl-add-si-ymm-1.c: Likewise. + * gcc.target/i386/avx512vl-sub-si-xmm-1.c: Likewise. + * gcc.target/i386/avx512vl-sub-si-ymm-1.c: Likewise. + +2018-10-21 H.J. Lu + + PR target/72782 + * gcc.target/i386/avx-1.c (__builtin_ia32_vfmsubpd512_mask): New. + (__builtin_ia32_vfmsubpd512_maskz): Likewise. + (__builtin_ia32_vfmsubps512_mask): Likewise. + (__builtin_ia32_vfmsubps512_maskz): Likewise. + (__builtin_ia32_vfnmaddpd512_mask3): Likewise. + (__builtin_ia32_vfnmaddpd512_maskz): Likewise. + (__builtin_ia32_vfnmaddps512_mask3): Likewise. + (__builtin_ia32_vfnmaddps512_maskz): Likewise. + (__builtin_ia32_vfnmsubpd512_maskz): Likewise. + (__builtin_ia32_vfnmsubps512_maskz): Likewise. + * gcc.target/i386/sse-13.c + (__builtin_ia32_vfmsubpd512_mask): Likewise. + (__builtin_ia32_vfmsubpd512_maskz): Likewise. + (__builtin_ia32_vfmsubps512_mask): Likewise. + (__builtin_ia32_vfmsubps512_maskz): Likewise. + (__builtin_ia32_vfnmaddpd512_mask3): Likewise. + (__builtin_ia32_vfnmaddpd512_maskz): Likewise. + (__builtin_ia32_vfnmaddps512_mask3): Likewise. + (__builtin_ia32_vfnmaddps512_maskz): Likewise. + (__builtin_ia32_vfnmsubpd512_maskz): Likewise. + (__builtin_ia32_vfnmsubps512_maskz): Likewise. + * gcc.target/i386/sse-23.c + (__builtin_ia32_vfmsubpd512_mask): Likewise. + (__builtin_ia32_vfmsubpd512_maskz): Likewise. + (__builtin_ia32_vfmsubps512_mask): Likewise. + (__builtin_ia32_vfmsubps512_maskz): Likewise. + (__builtin_ia32_vfnmaddpd512_mask3): Likewise. + (__builtin_ia32_vfnmaddpd512_maskz): Likewise. + (__builtin_ia32_vfnmaddps512_mask3): Likewise. + (__builtin_ia32_vfnmaddps512_maskz): Likewise. + (__builtin_ia32_vfnmsubpd512_maskz): Likewise. + (__builtin_ia32_vfnmsubps512_maskz): Likewise. + +2018-10-21 H.J. Lu + + PR target/72782 + * gcc.target/i386/avx512f-fnmsub-df-zmm-1.c: New test. + * gcc.target/i386/avx512f-fnmsub-sf-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-fnmsub-sf-zmm-2.c: Likewise. + * gcc.target/i386/avx512f-fnmsub-sf-zmm-3.c: Likewise. + * gcc.target/i386/avx512f-fnmsub-sf-zmm-4.c: Likewise. + * gcc.target/i386/avx512f-fnmsub-sf-zmm-5.c: Likewise. + * gcc.target/i386/avx512f-fnmsub-sf-zmm-6.c: Likewise. + * gcc.target/i386/avx512f-fnmsub-sf-zmm-7.c: Likewise. + * gcc.target/i386/avx512f-fnmsub-sf-zmm-8.c: Likewise. + * gcc.target/i386/avx512vl-fnmsub-sf-xmm-1.c: Likewise. + * gcc.target/i386/avx512vl-fnmsub-sf-ymm-1.c: Likewise. + +2018-10-21 H.J. Lu + + PR target/72782 + * gcc.target/i386/avx512f-fnmadd-df-zmm-1.c: New test. + * gcc.target/i386/avx512f-fnmadd-sf-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-fnmadd-sf-zmm-2.c: Likewise. + * gcc.target/i386/avx512f-fnmadd-sf-zmm-3.c: Likewise. + * gcc.target/i386/avx512f-fnmadd-sf-zmm-4.c: Likewise. + * gcc.target/i386/avx512f-fnmadd-sf-zmm-5.c: Likewise. + * gcc.target/i386/avx512f-fnmadd-sf-zmm-6.c: Likewise. + * gcc.target/i386/avx512f-fnmadd-sf-zmm-7.c: Likewise. + * gcc.target/i386/avx512f-fnmadd-sf-zmm-8.c: Likewise. + * gcc.target/i386/avx512vl-fnmadd-sf-xmm-1.c: Likewise. + * gcc.target/i386/avx512vl-fnmadd-sf-ymm-1.c: Likewise. + +2018-10-21 H.J. Lu + + PR target/72782 + * gcc.target/i386/avx512f-fmsub-df-zmm-1.c: New test. + * gcc.target/i386/avx512f-fmsub-sf-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-fmsub-sf-zmm-2.c: Likewise. + * gcc.target/i386/avx512f-fmsub-sf-zmm-3.c: Likewise. + * gcc.target/i386/avx512f-fmsub-sf-zmm-4.c: Likewise. + * gcc.target/i386/avx512f-fmsub-sf-zmm-5.c: Likewise. + * gcc.target/i386/avx512f-fmsub-sf-zmm-6.c: Likewise. + * gcc.target/i386/avx512f-fmsub-sf-zmm-7.c: Likewise. + * gcc.target/i386/avx512f-fmsub-sf-zmm-8.c: Likewise. + * gcc.target/i386/avx512vl-fmsub-sf-xmm-1.c: Likewise. + * gcc.target/i386/avx512vl-fmsub-sf-ymm-1.c: Likewise. + +2018-10-21 Paul Thomas + + PR fortran/71880 + * gfortran.dg/deferred_character_31.f90 : New test. + +2018-10-21 H.J. Lu + + PR target/72782 + * gcc.target/i386/avx512f-mul-df-zmm-1.c: New test. + * gcc.target/i386/avx512f-mul-sf-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-mul-sf-zmm-2.c: Likewise. + * gcc.target/i386/avx512f-mul-sf-zmm-3.c: Likewise. + * gcc.target/i386/avx512f-mul-sf-zmm-4.c: Likewise. + * gcc.target/i386/avx512f-mul-sf-zmm-5.c: Likewise. + * gcc.target/i386/avx512f-mul-sf-zmm-6.c: Likewise. + * gcc.target/i386/avx512vl-mul-sf-xmm-1.c: Likewise. + * gcc.target/i386/avx512vl-mul-sf-ymm-1.c: Likewise. + +2018-10-21 H.J. Lu + + PR target/87662 + * gcc.target/i386/pr87662.c + +2018-10-20 H.J. Lu + + PR target/72782 + * gcc.target/i386/avx512f-div-df-zmm-1.c: New test. + * gcc.target/i386/avx512f-div-sf-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-div-sf-zmm-2.c: Likewise. + * gcc.target/i386/avx512f-div-sf-zmm-3.c: Likewise. + * gcc.target/i386/avx512f-div-sf-zmm-4.c: Likewise. + * gcc.target/i386/avx512f-div-sf-zmm-5.c: Likewise. + * gcc.target/i386/avx512vl-div-sf-xmm-1.c: Likewise. + * gcc.target/i386/avx512vl-div-sf-ymm-1.c: Likewise. + +2018-10-20 Marek Polacek + + * g++.dg/*.C: Use target c++17 instead of explicit dg-options. + * lib/g++-dg.exp: Don't test C++11 by default. Add C++17 to + the list of default stds to test. + +2018-10-20 Jakub Jelinek + + PR middle-end/87647 + * gcc.c-torture/compile/pr87647.c: New test. + +2018-10-19 Jakub Jelinek + + PR middle-end/85488 + PR middle-end/87649 + * c-c++-common/gomp/doacross-2.c: New test. + * c-c++-common/gomp/sink-3.c: Expect another error during error + recovery. + +2018-10-19 Segher Boessenkool + + * gcc.target/powerpc/safe-indirect-jump-2.c: Do not check assigned CR + field number. + * gcc.target/powerpc/safe-indirect-jump-3.c: Ditto. + +2018-10-19 Richard Biener + + PR middle-end/87645 + * gcc.dg/torture/pr87645.c: New testcase. + +2018-10-19 Richard Biener + + PR target/87657 + * gcc.target/i386/pr87657.c: New testcase. + +2018-10-19 H.J. Lu + + PR target/72782 + * gcc.target/i386/avx512-binop-1.h: New file. + * gcc.target/i386/avx512-binop-2.h: Likewise. + * gcc.target/i386/avx512-binop-3.h: Likewise. + * gcc.target/i386/avx512-binop-4.h: Likewise. + * gcc.target/i386/avx512-binop-5.h: Likewise. + * gcc.target/i386/avx512-binop-6.h: Likewise. + * gcc.target/i386/avx512f-add-df-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-add-sf-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-add-sf-zmm-2.c: Likewise. + * gcc.target/i386/avx512f-add-sf-zmm-3.c: Likewise. + * gcc.target/i386/avx512f-add-sf-zmm-4.c: Likewise. + * gcc.target/i386/avx512f-add-sf-zmm-5.c: Likewise. + * gcc.target/i386/avx512f-add-sf-zmm-6.c: Likewise. + * gcc.target/i386/avx512f-sub-df-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-sub-sf-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-sub-sf-zmm-2.c: Likewise. + * gcc.target/i386/avx512f-sub-sf-zmm-3.c: Likewise. + * gcc.target/i386/avx512f-sub-sf-zmm-4.c: Likewise. + * gcc.target/i386/avx512f-sub-sf-zmm-5.c: Likewise. + * gcc.target/i386/avx512vl-add-sf-xmm-1.c: Likewise. + * gcc.target/i386/avx512vl-add-sf-ymm-1.c: Likewise. + * gcc.target/i386/avx512vl-sub-sf-xmm-1.c: Likewise. + * gcc.target/i386/avx512vl-sub-sf-ymm-1.c: Likewise. + +2018-10-19 Ilya Leoshkevich + + PR rtl-optimization/87596 + * gcc.target/i386/pr87596.c: New test. + +2018-10-19 Eric Botcazou + + * gnat.dg/frame_overflow2.adb: New test. + +2018-10-18 H.J. Lu + + PR target/72782 + * gcc.target/i386/avx512-fma-1.h: New file. + * gcc.target/i386/avx512-fma-2.h: Likewise. + * gcc.target/i386/avx512-fma-3.h: Likewise. + * gcc.target/i386/avx512-fma-4.h: Likewise. + * gcc.target/i386/avx512-fma-5.h: Likewise. + * gcc.target/i386/avx512-fma-6.h: Likewise. + * gcc.target/i386/avx512-fma-7.h: Likewise. + * gcc.target/i386/avx512-fma-8.h: Likewise. + * gcc.target/i386/avx512f-fmadd-df-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-fmadd-sf-zmm-1.c: Likewise. + * gcc.target/i386/avx512f-fmadd-sf-zmm-2.c: Likewise. + * gcc.target/i386/avx512f-fmadd-sf-zmm-3.c: Likewise. + * gcc.target/i386/avx512f-fmadd-sf-zmm-4.c: Likewise. + * gcc.target/i386/avx512f-fmadd-sf-zmm-5.c: Likewise. + * gcc.target/i386/avx512f-fmadd-sf-zmm-6.c: Likewise. + * gcc.target/i386/avx512f-fmadd-sf-zmm-7.c: Likewise. + * gcc.target/i386/avx512f-fmadd-sf-zmm-8.c: Likewise. + * gcc.target/i386/avx512vl-fmadd-sf-xmm-1.c: Likewise. + * gcc.target/i386/avx512vl-fmadd-sf-ymm-1.c: Likewise. + +2018-10-18 Tobias Burnus + + PR fortran/87625 + * gfortran.dg/realloc_on_assign_31.f90: New file. + +2018-10-18 David Malcolm + + PR tree-optimization/87562 + * c-c++-common/substring-location-PR-87562-1-a.h: New file. + * c-c++-common/substring-location-PR-87562-1-b.h: New file. + * c-c++-common/substring-location-PR-87562-1.c: New test. + * gcc.dg/plugin/diagnostic-test-string-literals-1.c: Add test for + PR 87562. + * gcc.dg/plugin/pr87562-a.h: New file. + * gcc.dg/plugin/pr87562-b.h: New file. + +2018-10-18 Paul Thomas + + PR fortran/58618 + * gfortran.dg/associate_45.f90 : New test. + +2018-10-18 Paul Thomas + + PR fortran/58618 + * gfortran.dg/deferred_character_30.f90 : New test. + +2018-10-18 Richard Biener + + PR middle-end/87087 + * gcc.dg/torture/pr87087.c: New testcase. + * gcc.dg/graphite/pr84204.c: XFAIL. + * gcc.dg/graphite/pr85935.c: Likewise. + +2018-10-18 H.J. Lu + + PR target/87537 + * gcc.target/i386/pr87537-1.c: New test. + +2018-10-17 Joseph Myers + + * gcc.dg/c11-static-assert-7.c, gcc.dg/c11-static-assert-8.c, + gcc.dg/c11-static-assert-9.c, gcc.dg/c2x-static-assert-1.c, + gcc.dg/c2x-static-assert-2.c, gcc.dg/c99-static-assert-2.c, + gcc.dg/gnu2x-static-assert-1.c: New tests. + * gcc.dg/missing-symbol-3.c: Update expected fix-it text. + +2018-10-17 Tobias Burnus + + PR fortran/87632 + * gfortran.dg/select_type_47.f90: New. + +2018-10-17 Eric Botcazou + + * gcc.c-torture/execute/pr87623.c: New test. + +2018-10-17 Paolo Carlini + + PR c++/84705 + * g++.dg/cpp0x/pr84705.C: New. + +2018-10-17 Paul Thomas + + PR fortran/56386 + PR fortran/58906 + PR fortran/77385 + * gfortran.dg/associate_44.f90 : New test. + + PR fortran/80260 + * gfortran.dg/select_type_45.f90 : New test. + + PR fortran/82077 + * gfortran.dg/select_type_46.f90 : New test. + +2018-10-16 Tobias Burnus + + PR fortran/67125 + * gfortran.dg/allocate_with_source_26.f90: Extend + testcase with polymorphic variables. + +2018-10-16 Tobias Burnus + + PR fortran/67125 + * gfortran.dg/allocate_with_source_26.f90: New. + +2018-10-15 David Malcolm + + * gcc.dg/missing-header-fixit-3.c: Update expected indentation + to reflect minimum margin width. + * gcc.dg/missing-header-fixit-4.c: Likewise. + * gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c: + Likewise. + * gcc.dg/plugin/diagnostic-test-show-locus-color-line-numbers.c: + Likewise. + * gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers-2.c: + New test. + * gcc.dg/plugin/plugin.exp (plugin_test_list): Add it. + +2018-10-15 Tobias Burnus + + PR fortran/87597 + * gfortran.dg/inline_matmul_24.f90: Tweak scan-tree. + +2018-10-15 Renlin Li + + PR target/87563 + * gcc.target/aarch64/sve/pr87563.c: New. + +2018-10-15 Paul Thomas + Tobias Burnus + + PR fortran/87566 + * gfortran.dg/select_type_44.f90: New test. + * gfortran.dg/associate_42.f90: New test. + +2018-10-15 Bin Cheng + + PR tree-optimization/87022 + * gcc.dg/tree-ssa/pr87022.c: New test. + +2018-10-15 Richard Biener + + PR middle-end/87610 + * gcc.dg/torture/restrict-6.c: New testcase. + +2018-10-15 Andreas Krebbel + + * g++.dg/vec-init-1.C: New test. + +2018-10-14 H.J. Lu + + PR target/87599 + * gcc.target/i386/pr87599.c: New test. + +2018-10-14 H.J. Lu + + PR target/87572 + * gcc.target/i386/pr87572.c: New test. + +2018-10-14 Paul Thomas + + PR fortran/83146 + * gfortran.dg/associate_43.f90: New test. + +2018-10-14 Anthony Green + + * gcc.c-torture/execute/20101011-1.c: Adjust for moxie. + +2018-10-12 Yury Gribov + + PR middle-end/81376 + * c-c++-common/pr81376.c: New test. + * gcc.target/i386/387-ficom-2.c: Update test. + * gcc.target/i386/387-ficom-2.c: Ditto. + +2018-10-12 Tobias Burnus + + PR fortran/87597 + * gfortran.dg/inline_matmul_24.f90: New. + +2018-10-12 Tobias Burnus + + PR fortran/58787 + * gfortran.dg/goacc/pr77765.f90: Modify dg-error. + * gfortran.dg/interface_42.f90: Ditto. + * gfortran.dg/internal_references_1.f90: Ditto. + * gfortran.dg/invalid_procedure_name.f90: Ditto. + * gfortran.dg/pr65453.f90: Ditto. + * gfortran.dg/pr77414.f90: Ditto. + * gfortran.dg/pr78741.f90: Ditto. + * gfortran.dg/same_name_2.f90: Ditto. + +2018-10-12 Wilco Dijkstra + + * gcc.target/aarch64/popcnt.c: Test zero-extended popcount. + * gcc.target/aarch64/vec_zeroextend.c: Test zero-extended vectors. + +2018-10-11 Will Schmidt + + * gcc.target/powerpc/fold-vec-insert-char-p8.c: New. + * gcc.target/powerpc/fold-vec-insert-char-p9.c: New. + * gcc.target/powerpc/fold-vec-insert-double.c: New. + * gcc.target/powerpc/fold-vec-insert-float-p8.c: New. + * gcc.target/powerpc/fold-vec-insert-float-p9.c: New. + * gcc.target/powerpc/fold-vec-insert-int-p8.c: New. + * gcc.target/powerpc/fold-vec-insert-int-p9.c: New. + * gcc.target/powerpc/fold-vec-insert-longlong.c: New. + * gcc.target/powerpc/fold-vec-insert-short-p8.c: New. + * gcc.target/powerpc/fold-vec-insert-short-p9.c: New. + +2018-10-11 Will Schmidt + + * gcc.target/powerpc/fold-vec-extract-char.p7.c: New. + * gcc.target/powerpc/fold-vec-extract-char.p8.c: New. + * gcc.target/powerpc/fold-vec-extract-char.p9.c: New. + * gcc.target/powerpc/fold-vec-extract-double.p7.c: New. + * gcc.target/powerpc/fold-vec-extract-double.p8.c: New. + * gcc.target/powerpc/fold-vec-extract-double.p9.c: New. + * gcc.target/powerpc/fold-vec-extract-float.p7.c: New. + * gcc.target/powerpc/fold-vec-extract-float.p8.c: New. + * gcc.target/powerpc/fold-vec-extract-float.p9.c: New. + * gcc.target/powerpc/fold-vec-extract-int.p7.c: New. + * gcc.target/powerpc/fold-vec-extract-int.p8.c: New. + * gcc.target/powerpc/fold-vec-extract-int.p9.c: New. + * gcc.target/powerpc/fold-vec-extract-longlong.p7.c: New. + * gcc.target/powerpc/fold-vec-extract-longlong.p8.c: New. + * gcc.target/powerpc/fold-vec-extract-longlong.p9.c: New. + * gcc.target/powerpc/fold-vec-extract-short.p7.c: New. + * gcc.target/powerpc/fold-vec-extract-short.p8.c: New. + * gcc.target/powerpc/fold-vec-extract-short.p9.c: New. + +2018-10-11 Will Schmidt + + * gcc.target/powerpc/fold-vec-select-char.c: New. + * gcc.target/powerpc/fold-vec-select-double.c: New. + * gcc.target/powerpc/fold-vec-select-float.c: New. + * gcc.target/powerpc/fold-vec-select-int.c: New. + * gcc.target/powerpc/fold-vec-select-longlong.c: New. + * gcc.target/powerpc/fold-vec-select-short.c: New. + +2018-10-09 Giuliano Belinassi + + PR tree-optimization/86829 + * gcc.dg/sinatan-1.c: New test. + * gcc.dg/sinatan-2.c: New test. + * gcc.dg/sinatan-3.c: New test. + +2018-10-11 Will Schmidt + + * gcc.target/powerpc/fold-vec-mergeeo-floatdouble.c: New. + * gcc.target/powerpc/fold-vec-mergeeo-int.c: New. + * gcc.target/powerpc/fold-vec-mergeeo-longlong.c: New. + +2018-10-11 Tobias Burnus + + Revert: + 2018-10-09 Tobias Burnus + + PR fortran/83522 + * gfortran.dg/actual_array_substr_1.f90: Add dg-error, + change to dg-do compile. + * gfortran.dg/actual_array_substr_2.f90: Ditto. + * gfortran.dg/array_initializer_1.f90: Use array + element not size-one section. + * gfortran.dg/array_substring.f90: New. + +2018-10-11 Wilco Dijkstra + + PR target/87511 + * gcc.target/aarch64/pr87511.c: Add new test. + +2018-10-11 David Malcolm + + PR c++/84993 + * g++.dg/torture/accessor-fixits-9.C: New test. + +2018-10-11 Nathan Sidwell + + * g++.dg/parse/close-brace.C: New. + * g++.dg/cpp0x/noexcept16.C: Avoid warning. + * g++.old-deja/g++.other/crash32.C: Add another error + +2018-10-11 Jakub Jelinek + + PR c++/85070 + * g++.dg/cpp0x/pr85070.C: Change effective target for diagnostics from + c++14_only to c++14. + +2018-10-11 David Malcolm + + * lib/multiline.exp (dg-begin-multiline-output): Issue an error if + there hasn't been a dg-end-multiline-output since the last + dg-begin-multiline-output. + (dg-end-multiline-output): Issue an error if there hasn't been a + dg-begin-multiline-output. Reset _multiline_last_beginning_line + as soon possible. Rename "line" to "last_line". + +2018-10-11 Andrew Stubbs + + * selftests/repeat.rtl: New file. + +2018-10-11 Jakub Jelinek + + PR c++/87582 + * g++.dg/cpp1z/decomp48.C: New test. + +2018-10-11 David Malcolm + + * g++.dg/diagnostic/macro-arg-count.C: Move to... + * c-c++-common/cpp/macro-arg-count-1.c: ...here, generalizing + output for C vs C++. Expect notes showing the definitions of the + macros. + * c-c++-common/cpp/macro-arg-count-2.c: New test, adapted from the + above. + +2018-10-11 Martin Jambor + + * gcc.dg/warn-abs-1.c: Guard tests assuming size of long double is + greater that the size of double by target large_long double. + +2018-10-11 Jakub Jelinek + + * g++.dg/cpp2a/feat-cxx2a.C: New test. + + PR c++/87547 + * g++.dg/rtti/typeid12.C: New test. + +2018-10-10 Eric Botcazou + + * g++.dg/other/pr87574.C: New test. + +2018-10-10 Marek Polacek + + PR c++/87567 - constexpr rejects call to non-constexpr function. + * g++.dg/cpp1y/constexpr-loop7.C: New test. + +2018-10-10 Paul A. Clarke + + PR target/87579 + * gcc.target/powerpc/sse3-check.h: Remove duplicated code. + * gcc.target/powerpc/sse3-addsubps.c: Likewise. + * gcc.target/powerpc/sse3-addsubpd.c: Likewise. + * gcc.target/powerpc/sse3-haddps.c: Likewise. + * gcc.target/powerpc/sse3-hsubps.c: Likewise. + * gcc.target/powerpc/sse3-haddpd.c: Likewise. + * gcc.target/powerpc/sse3-hsubpd.c: Likewise. + * gcc.target/powerpc/sse3-lddqu.c: Likewise. + * gcc.target/powerpc/sse3-movsldup.c: Likewise. + * gcc.target/powerpc/sse3-movshdup.c: Likewise. + * gcc.target/powerpc/sse3-movddup.c: Likewise. + * gcc.target/powerpc/pr37191.c: Likewise. +2018-10-10 Martin Sebor + + PR c/54391 + * gcc.dg/transparent-union-6.c: New. + +2018-10-10 Martin Sebor + + * gcc.c-torture/execute/memchr-1.c: Avoid assuming 4-byte wchar_t. + Add a test for 2-byte wchar_t. + * gcc.dg/builtin-memchr.c: New test. + +2018-10-10 Uros Bizjak + + PR target/87573 + * gcc.target/i386/pr87573.c: New test. + +2018-10-10 Jakub Jelinek + + PR target/87550 + * gcc.target/i386/pr87550.c: New test. + + PR c/87286 + * gcc.dg/pr87286.c: Add -Wno-psabi to dg-options. + +2018-10-09 Paolo Carlini + + PR c++/84423 + * g++.dg/concepts/pr84423-1.C: New. + * g++.dg/concepts/pr84423-2.C: Likewise. + * g++.dg/cpp0x/auto39.C: Test location too. + * g++.dg/cpp0x/auto9.C: Likewise. + * g++.dg/cpp1y/pr60384.C: Likewise. + +2018-10-09 Paul A. Clarke + + * gcc.target/powerpc/sse3-check.h: New file. + * gcc.target/powerpc/sse3-addsubps.c: New file. + * gcc.target/powerpc/sse3-addsubpd.c: New file. + * gcc.target/powerpc/sse3-haddps.c: New file. + * gcc.target/powerpc/sse3-hsubps.c: New file. + * gcc.target/powerpc/sse3-haddpd.c: New file. + * gcc.target/powerpc/sse3-hsubpd.c: New file. + * gcc.target/powerpc/sse3-lddqu.c: New file. + * gcc.target/powerpc/sse3-movsldup.c: New file. + * gcc.target/powerpc/sse3-movshdup.c: New file. + * gcc.target/powerpc/sse3-movddup.c: New file. + * gcc.target/powerpc/pr37191.c: New file. + +2018-10-09 Tobias Burnus + + PR fortran/83522 + * gfortran.dg/actual_array_substr_1.f90: Add dg-error, + change to dg-do compile. + * gfortran.dg/actual_array_substr_2.f90: Ditto. + * gfortran.dg/array_initializer_1.f90: Use array + element not size-one section. + * gfortran.dg/array_substring.f90: New. + +2018-10-09 Eric Botcazou + + * gnat.dg/derived_type5.adb, gnat.dg/derived_type5_pkg.ads: New + testcase. + +2018-10-09 Eric Botcazou + + * gnat.dg/warn17.adb: New testcase. + +2018-10-09 Eric Botcazou + + * gnat.dg/inline14.adb, gnat.dg/inline14_pkg.adb, + gnat.dg/inline14_pkg.ads: New testcase. + +2018-10-09 Ed Schonberg + + * gnat.dg/warn18.adb: New testcase. + +2018-10-09 Martin Liska + + * c-c++-common/asan/pr64820.c: Add line number to scanned + pattern. + * c-c++-common/asan/use-after-return-1.c: Likewise. + * g++.dg/asan/function-argument-1.C (main): Likewise. + * g++.dg/asan/function-argument-2.C (main): Likewise. + * g++.dg/asan/function-argument-3.C (main): Likewise. + * g++.dg/asan/use-after-scope-1.C (main): Likewise. + * g++.dg/asan/use-after-scope-2.C (main): Likewise. + * g++.dg/asan/use-after-scope-types-1.C (main): Likewise. + * g++.dg/asan/use-after-scope-types-2.C (main): Likewise. + * g++.dg/asan/use-after-scope-types-3.C (main): Likewise. + * g++.dg/asan/use-after-scope-types-4.C (main): Likewise. + * g++.dg/asan/use-after-scope-types-5.C (main): Likewise. + * gcc.dg/asan/pr78541.c (main): Likewise. + * gcc.dg/asan/use-after-scope-1.c (main): Likewise. + * gcc.dg/asan/use-after-scope-10.c (main): Likewise. + * gcc.dg/asan/use-after-scope-2.c (main): Likewise. + * gcc.dg/asan/use-after-scope-3.c (main): Likewise. + * gcc.dg/asan/use-after-scope-5.c (main): Likewise. + * gcc.dg/asan/use-after-scope-9.c (main): Likewise. + +2018-10-09 Paul Thomas + + PR fortran/87151 + * gfortran.dg/deferred_type_component_3.f90: New test. + + PR fortran/80931 + * gfortran.dg/deferred_character_28.f90: New test. + * gfortran.dg/deferred_character_29.f90: New test (note that + this test appears in PR83196 comment #4 by mistake). + +2018-10-08 Eric Botcazou + + * gcc.target/i386/vararg-loc.c: Accept a column number. + +2018-10-08 Martin Liska + + * gcc.target/i386/i386.exp: Move procedures to + target-supports.exp. + * g++.target/i386/i386.exp: New file. + * gcc.target/i386/mv*.C: Move here tests and remove + target filter in these tests. + +2018-10-08 Cesar Philippidis + + * gfortran.dg/contiguous_4.f90: Adjust. + * gfortran.dg/contiguous_4.f90: New test. + +2018-10-08 Paul Thomas + + PR fortran/86372 + * gfortran.dg/associate_41.f90: New test. + +2018-10-08 Rainer Orth + + * gcc.dg/merge-all-constants-2.c: Require string_merging support. + * gnat.dg/string_merge1.adb: Likewise. + * gnat.dg/string_merge2.adb: Likewise. + +2018-10-08 Rainer Orth + + * c-c++-common/Wprio-ctor-dtor.c: Require init_priority support. + +2018-10-08 Martin Liska + + * g++.dg/ext/pr82625.C: Add dg-compile filter. + +2018-10-08 Paolo Carlini + + PR c++/71128 + * g++.dg/concepts/pr71128.C: New. + +2018-10-08 Richard Sandiford + + PR c/87286 + * gcc.dg/pr87286.c: New test. + +2018-10-06 Thomas Koenig + + PR fortran/86111 + * gfortran.dg/array_constructor_type_23.f90: New test. + +2018-10-06 Paul Thomas + + PR fortran/83999 + * gfortran.dg/elemental_function_4.f90 : New test. + +2018-10-05 Peter Bergner + + PR rtl-optimization/86939 + PR rtl-optimization/87479 + * gcc.target/powerpc/pr86939.c: New test. + * gcc/testsuite/gcc.target/i386/pr49095.c: Fix expected results. + +2018-10-05 Bernd Edlinger + + * gnat.dg/string_merge1.adb: Fix test expectations. + * gnat.dg/string_merge2.adb: Likewise. + +2018-10-05 David Malcolm + + PR c++/56856 + * g++.dg/ext/builtin4.C: Set expected location for warning to the + correct location within the format string. + * g++.dg/plugin/plugin.exp (plugin_test_list): Add the plugin and + files for testing locations within string literal locations from + the C frontend. + * g++.dg/warn/Wformat-method.C: New test. + * g++.dg/warn/Wformat-pr71863.C: New test. + * g++.dg/warn/Wformat-ranges-c++11.C: New test. + * g++.dg/warn/Wformat-ranges.C: New test, based on + gcc.dg/format/diagnostic-ranges.c. + * gcc.dg/plugin/diagnostic-test-string-literals-1.c + (test_multitoken_macro): Generalize expected output to work with + both C and C++. + * gcc.dg/plugin/diagnostic-test-string-literals-2.c + (test_stringified_token_1): Likewise. + (test_stringified_token_3): Likewise. + +2018-10-05 David Malcolm + + * lib/multiline.exp (proc dg-end-multiline-output): Check argument + count. If there's a 3rd argument, use dg-process-target on it, + bailing out, or recording expected failures as "maybe_x". + (proc handle-multiline-outputs): Extract "maybe_x", and use it + to convert pass/fail into xpass/xfail. + +2018-10-05 Martin Sebor + + PR tree-optimization/87490 + * gcc.dg/pr87490.c: New test. + * gcc.dg/warn-strnlen-no-nul-2.c: Same. + +2018-10-05 Steve Ellcey + + PR tree-optimization/71625 + * /gcc.target/aarch64/vclz.c (test_vclz_s8): Add noinline attribute. + (test_vclz_s16): Ditto. + (test_vclz_s32): Ditto. + (test_vclzq_s8): Ditto. + (test_vclzq_s16): Ditto. + (test_vclzq_s32): Ditto. + (test_vclz_u8): Ditto. + (test_vclz_u16): Ditto. + (test_vclz_u32): Ditto. + (test_vclzq_u8): Ditto. + (test_vclzq_u16): Ditto. + (test_vclzq_u32): Ditto. + * gcc.target/aarch64/vneg_s.c (test_vneg_s8): Ditto. + (test_vneg_s16): Ditto. + (test_vneg_s32): Ditto. + (test_vneg_s64): Ditto. + (test_vnegd_s64): Ditto. + (test_vnegq_s8): Ditto. + (test_vnegq_s16): Ditto. + (test_vnegq_s32): Ditto. + (test_vnegq_s64): Ditto. + +2018-10-05 Segher Boessenkool + + PR target/87509 + * gcc.target/powerpc/test_fpscr_drn_builtin.c: Use hard_dfp instead + of dfp_hw. Don't include . + * gcc.target/powerpc/test_fpscr_drn_builtin_error.c: Ditto. Require + lp64. + * gcc.target/powerpc/test_fpscr_rn_builtin.c: Don't include . + * gcc.target/powerpc/test_fpscr_rn_builtin_error.c: Ditto. + * gcc.target/powerpc/test_mffsl.c: Ditto. + +2018-10-04 Vinay Kumar + + * c-c++-common/Wprio-ctor-dtor.c: New test. + +2018-10-04 David Malcolm + + * gcc.dg/vect/nodump-vect-opt-info-2.c: New test. + * gcc.dg/vect/vect-alias-check-4.c: Add "-fopt-info-vec-all" to + dg-additional-options. Add dg-message and dg-missed directives + to verify that -fopt-info messages are written at the correct + locations. + +2018-10-04 David Malcolm + + * gcc.dg/plugin/dump-1.c: Update expected output for test_scopes + due to "-internals" not being selected. + * gcc.dg/plugin/dump-2.c: New test, based on dump-1.c, with + "-internals" added to re-enable the output from test_scopes. + * gcc.dg/plugin/plugin.exp (plugin_test_list): Add dump-2.c. + +2018-10-04 Bernd Edlinger + + * gnat.dg/string_merge1.adb: New test. + * gnat.dg/string_merge2.adb: New test. + * gcc.dg/merge-all-constants-1.c: Adjust test. + * gcc.dg/merge-all-constants-2.c: New test. + +2018-10-04 Bill Seurer + + PR target/87486 + * gcc.target/powerpc/undef-bool-2.c: Fix expected error output. + +2018-10-04 Martin Liska + + PR c/87483 + * gcc.dg/pr87483.c: New test. + +2018-10-04 Martin Liska + + PR ipa/82625 + * g++.dg/ext/pr82625.C: New test. + +2018-10-04 David Malcolm + + * gcc.dg/plugin/dump-1.c: New test. + * gcc.dg/plugin/dump_plugin.c: New test plugin. + * gcc.dg/plugin/plugin.exp (plugin_test_list): Add the above. + +2018-10-04 Peter Bergner + + PR rtl-optimization/87466 + * gcc.target/powerpc/pr87466.c: New test. + +2018-10-04 Prathamesh Kulkarni + + PR tree-optimization/85787 + * gcc.dg/ipa/propmalloc-4.c: New test. + +2018-10-04 Richard Biener + + * gcc.dg/tree-ssa/cunroll-15.c: Add XFAILs for arm and powerpc. + +2018-10-03 Ian Lance Taylor + + * go.test/go-test.exp (go-set-goarch): Use amd64p32 on x32. + +2018-10-03 Martin Sebor + + * gcc.dg/warn-sprintf-no-nul.c: New test. + +2018-10-03 Martin Liska + + PR gcov-profile/86109 + * g++.dg/gcov/pr86109.C: New test. + +2018-10-02 Marc Glisse + + * gcc.dg/tree-ssa/muldiv-1.c: New file. + * gcc.dg/tree-ssa/muldiv-2.c: Likewise. + +2018-10-02 Segher Boessenkool + + PR target/87081 + * gcc.target/powerpc/vec-init-6.c: Fix expected asm. + +2018-10-01 Martin Sebor + + * gcc.dg/warn-strnlen-no-nul.c: New. + +2018-10-01 Carl Love + + PR 69431 + * gcc.target/powerpc/test_mffsl-p9.c: New file. + * gcc.target/powerpc/test_fpscr_rn_builtin.c: New file. + * gcc.target/powerpc/test_fpscr_drn_builtin.c: New file. + * gcc.target/powerpc/test_fpscr_rn_builtin_error.c: New file. + * gcc.target/powerpc/test_fpscr_drn_builtin_error.c: New file. + +2018-10-01 Paul Thomas + + PR fortran/65677 + * gfortran.dg/dependency_52.f90 : Expand the test to check both + the call to adjustl and direct assignment of the substring. + +2018-10-01 Richard Biener + + PR tree-optimization/87465 + * gcc.dg/tree-ssa/cunroll-15.c: New testcase. + +2018-10-01 Tamar Christina + + PR target/86486 + * gcc.dg/pr82788.c: Skip for AArch64. + * gcc.dg/guality/vla-1.c: Turn off stack-clash. + * gcc.target/aarch64/subsp.c: Likewise. + * gcc.dg/params/blocksort-part.c: Skip stack-clash checks + on AArch64. + * gcc.dg/stack-check-10.c: Add AArch64 specific checks. + * gcc.dg/stack-check-12.c: ILP32 fixup. + * gcc.dg/stack-check-5.c: Add AArch64 specific checks. + * gcc.dg/stack-check-6a.c: Skip on AArch64, we don't support this. + * lib/target-supports.exp + (check_effective_target_frame_pointer_for_non_leaf): AArch64 does not + require frame pointer for non-leaf functions. + +2018-10-01 Tamar Christina + + PR target/86486 + * gcc.target/aarch64/stack-check-alloca-1.c: New. + * gcc.target/aarch64/stack-check-alloca-10.c: New. + * gcc.target/aarch64/stack-check-alloca-2.c: New. + * gcc.target/aarch64/stack-check-alloca-3.c: New. + * gcc.target/aarch64/stack-check-alloca-4.c: New. + * gcc.target/aarch64/stack-check-alloca-5.c: New. + * gcc.target/aarch64/stack-check-alloca-6.c: New. + * gcc.target/aarch64/stack-check-alloca-7.c: New. + * gcc.target/aarch64/stack-check-alloca-8.c: New. + * gcc.target/aarch64/stack-check-alloca-9.c: New. + * gcc.target/aarch64/stack-check-alloca.h: New. + * gcc.target/aarch64/stack-check-14.c: New. + * gcc.target/aarch64/stack-check-15.c: New. + +2018-10-01 Tamar Christina + + PR target/86486 + * gcc.target/aarch64/stack-check-prologue-16.c: New test + * gcc.target/aarch64/stack-check-cfa-3.c: New test. + * gcc.target/aarch64/sve/struct_vect_24.c: New test. + * gcc.target/aarch64/sve/struct_vect_24_run.c: New test. + +2018-10-01 Jeff Law + Richard Sandiford + Tamar Christina + + PR target/86486 + * gcc.target/aarch64/stack-check-12.c: New. + * gcc.target/aarch64/stack-check-13.c: New. + * gcc.target/aarch64/stack-check-cfa-1.c: New. + * gcc.target/aarch64/stack-check-cfa-2.c: New. + * gcc.target/aarch64/stack-check-prologue-1.c: New. + * gcc.target/aarch64/stack-check-prologue-10.c: New. + * gcc.target/aarch64/stack-check-prologue-11.c: New. + * gcc.target/aarch64/stack-check-prologue-12.c: New. + * gcc.target/aarch64/stack-check-prologue-13.c: New. + * gcc.target/aarch64/stack-check-prologue-14.c: New. + * gcc.target/aarch64/stack-check-prologue-15.c: New. + * gcc.target/aarch64/stack-check-prologue-2.c: New. + * gcc.target/aarch64/stack-check-prologue-3.c: New. + * gcc.target/aarch64/stack-check-prologue-4.c: New. + * gcc.target/aarch64/stack-check-prologue-5.c: New. + * gcc.target/aarch64/stack-check-prologue-6.c: New. + * gcc.target/aarch64/stack-check-prologue-7.c: New. + * gcc.target/aarch64/stack-check-prologue-8.c: New. + * gcc.target/aarch64/stack-check-prologue-9.c: New. + * gcc.target/aarch64/stack-check-prologue.h: New. + * lib/target-supports.exp + (check_effective_target_supports_stack_clash_protection): Add AArch64. + +2018-10-01 Tamar Christina + + * lib/target-supports.exp (check_cached_effective_target_indexed): New. + (check_cached_effective_target, clear_effective_target_cache): Cleanup. + (check_compile): Support values already Boolean. + (check_alias_available, check_gc_sections_available, + check_profiling_available, check_effective_target_vect_cmdline_needed, + check_effective_target_vect_int, + check_effective_target_vect_intfloat_cvt, + check_effective_target_vect_doubleint_cvt, + check_effective_target_vect_intdouble_cvt, + check_effective_target_vect_uintfloat_cvt, + check_effective_target_vect_floatint_cvt, + check_effective_target_vect_floatuint_cvt, + check_effective_target_vect_peeling_profitable, + check_effective_target_vect_simd_clones, + check_effective_target_vect_peeling_profitable, + check_effective_target_vect_simd_clones, + check_effective_target_vect_shift, + check_effective_target_vect_bswap, + check_effective_target_vect_shift_char, + check_effective_target_vect_float, + check_effective_target_vect_double, + check_effective_target_vect_long_long, + check_effective_target_vect_no_int_min_max, + check_effective_target_vect_no_int_add, + check_effective_target_vect_no_bitwise, + check_effective_target_vect_perm, + check_effective_target_vect_perm_byte, + check_effective_target_vect_perm_short, + check_effective_target_xorsign, + check_effective_target_vect_widen_sum_hi_to_si_pattern, + check_effective_target_vect_widen_sum_hi_to_si, + check_effective_target_vect_widen_sum_qi_to_hi, + check_effective_target_vect_widen_sum_qi_to_si, + check_effective_target_vect_widen_mult_qi_to_hi, + check_effective_target_vect_widen_mult_hi_to_si, + check_effective_target_vect_widen_mult_qi_to_hi_pattern, + check_effective_target_vect_widen_mult_hi_to_si_pattern, + check_effective_target_vect_widen_mult_si_to_di_pattern, + check_effective_target_vect_widen_shift, + check_effective_target_vect_sdot_qi, + check_effective_target_vect_udot_qi, + check_effective_target_vect_sdot_hi, + check_effective_target_vect_udot_hi, + check_effective_target_vect_usad_char, + check_effective_target_vect_pack_trunc, + check_effective_target_vect_unpack, + check_effective_target_unaligned_stack, + check_effective_target_vect_no_align, + check_effective_target_vect_hw_misalign, + check_effective_target_natural_alignment_32, + check_effective_target_natural_alignment_64, + check_effective_target_vect_element_align, + check_effective_target_vect_load_lanes **, + check_effective_target_vect_condition, + check_effective_target_vect_cond_mixed, + check_effective_target_vect_char_mult, + check_effective_target_vect_short_mult, + check_effective_target_vect_int_mult, + check_effective_target_vect_extract_even_odd, + check_effective_target_vect_interleave, + check_effective_target_vect_stridedN, + check_effective_target_vect_call_copysignf, + check_effective_target_sqrt_insn, + check_effective_target_vect_call_sqrtf, + check_effective_target_vect_call_btrunc, + check_effective_target_vect_call_btruncf, + check_effective_target_vect_call_ceil, + check_effective_target_vect_call_ceilf, + check_effective_target_vect_call_floor, + check_effective_target_vect_call_floorf, + check_effective_target_vect_call_lceil, + check_effective_target_vect_call_lfloor, + check_effective_target_vect_call_nearbyint, + check_effective_target_vect_call_nearbyintf, + check_effective_target_vect_call_round, + check_effective_target_vect_call_roundf, + check_effective_target_section_anchors, + check_effective_target_bswap, + check_effective_target_sync_int_long, + check_effective_target_sync_char_short, + check_effective_target_tiny, + check_effective_target_pie_copyreloc, + check_effective_target_got32x_reloc, + check_effective_target_tls_get_addr_via_got): Use new caching. + +2018-10-01 MCC CS + + PR tree-optimization/87261 + * gcc.dg/pr87261.c: New test. + +2018-10-01 Claudiu Zissulescu + + * gcc.target/arc/tph_addx.c: New test. + +2018-10-01 Claudiu Zissulescu + + * gcc.target/arc/tmac-3.c: New file. + +2018-09-30 Paul Thomas + + PR fortran/87359 + * gfortran.dg/associate_40.f90 : New test. + +2018-09-30 Paul Thomas + + PR fortran/70752 + PR fortran/72709 + * gfortran.dg/deferred_character_25.f90 : New test. + * gfortran.dg/deferred_character_26.f90 : New test. + * gfortran.dg/deferred_character_27.f90 : New test to verify + that PR82617 remains fixed. + +2018-09-30 Paul Thomas + + PR fortran/70149 + * gfortran.dg/deferred_character_24.f90 : New test. + +2018-09-29 H.J. Lu + + PR target/87370 + * gcc.target/i386/pr87370.c: New test. + +2018-09-29 Paul Thomas + + PR fortran/65667 + * gfortran.dg/dependency_52.f90 : New test. + +2018-09-29 Jakub Jelinek + + PR target/87467 + * gcc.target/i386/avx512f-abspd-1.c (SIZE): Divide by two. + (CALC): Use double instead of float. + (TEST): Adjust to test _mm512_abs_pd and _mm512_mask_abs_pd rather than + _mm512_abs_ps and _mm512_mask_abs_ps. + +2018-09-28 David Malcolm + + * c-c++-common/unroll-1.c: Update expected output from "note" to + "optimized". + * c-c++-common/unroll-2.c: Likewise. + * c-c++-common/unroll-3.c: Likewise. + * g++.dg/tree-ssa/dom-invalid.C: Update expected output from + dg-message to dg-missed. Convert param from -fopt-info to + -fopt-info-missed-ipa. + * g++.dg/tree-ssa/pr81408.C: Update expected output from + dg-message to dg-missed. + * g++.dg/vect/slp-pr56812.cc: Update expected output from + dg-message to dg-optimized. + * gcc.dg/pr26570.c: Update expected output from dg-message to + dg-missed. Convert param from -fopt-info to + -fopt-info-missed-ipa. + * gcc.dg/pr32773.c: Likewise. + * gcc.dg/tree-ssa/pr19210-1.c: Update expected output from + dg-message to dg-missed. + * gcc.dg/unroll-2.c: Update expected output from dg-message to + dg-optimized. + * gcc.dg/vect/nodump-vect-opt-info-1.c: Likewise. Convert param + from -fopt-info to -fopt-info-vec. + * gfortran.dg/directive_unroll_1.f90: Update expected output from + "note" to "optimized". + * gfortran.dg/directive_unroll_2.f90: Likewise. + * gfortran.dg/directive_unroll_3.f90: Likewise. + * gnat.dg/unroll4.adb: Likewise. + * lib/gcc-dg.exp (dg-optimized): New procedure. + (dg-missed): New procedure. + +2018-09-28 Joseph Myers + + PR c/87390 + * gcc.dg/torture/fp-int-convert.h (TEST_I_F_VAL): Convert integer + values explicitly to target type for comparison. + +2018-09-28 Steve Ellcey + + PR testsuite/87433 + * gcc.target/aarch64/ashltidisi.c: Expect 3 asr instructions + instead of 4. + +2018-09-28 Steve Ellcey + + PR testsuite/87433 + * gcc.dg/zero_bits_compound-1.c: Do not run on aarch64*-*-*. + +2018-09-28 Eric Botcazou + + * gcc.target/sparc/20160229-1.c: Minor tweak. + * gcc.target/sparc/cbcond-2.c: Likewise. + * gcc.target/sparc/movcc-1.c: Add -mcpu=v9 option. + * gcc.target/sparc/movcc-2.c: Minor tweak. + * gcc.target/sparc/overflow-3.c: Likewise. + * gcc.target/sparc/overflow-4.c: Add -mno-vis4 option. + * gcc.target/sparc/overflow-5.c: Minor tweak. + * gcc.target/sparc/setcc-4.c: Add -mno-vis4 option. + +2018-09-27 Segher Boessenkool + + * g++.dg/ext/altivec-6.C: Change the vec_splat second argument to a + valid value, in the "vector bool int" case. + +2018-09-27 Uros Bizjak + + * gcc.dg/rtl/x86_64/dfinit.c: Update scan-rtl-dump string. + * gcc.dg/rtl/x86_64/times-two.c.before-df.c: Ditto. + * gcc.target/i386/pr79804.c (foo): Use register "19", not "20". + +2018-09-27 Martin Liska + + * g++.dg/pr60518.C: Add -Wno-missing-profile. + * g++.dg/torture/pr59265.C: Likewise. + * g++.dg/tree-prof/morefunc.C: Likewise. + * g++.dg/tree-ssa/dom-invalid.C: Likewise. + * gcc.dg/pr26570.c: Likewise. + * gcc.dg/pr32773.c: Likewise. + * gcc.dg/pr40209.c: Likewise. + * gcc.dg/pr51957-1.c: Likewise. + * gcc.dg/pr80747.c: Likewise. + * gcc.target/aarch64/pr62262.c: Likewise. + +2018-09-27 Richard Biener + + PR testsuite/87451 + * gcc.dg/debug/dwarf2/inline5.c: Deal with different comment characters. + +2018-09-27 Richard Biener + + PR debug/37801 + PR debug/87440 + * gcc.dg/debug/dwarf2/inline2.c: Adjust. + * gcc.dg/debug/dwarf2/inline4.c: New testcase. + +2018-09-27 Paolo Carlini + + PR c++/67544 + * g++.dg/concepts/pr67544.C: New. + +2018-09-27 Paolo Carlini + + PR c++/84940 + * g++.dg/expr/unary4.C: New. + +2018-09-26 Indu Bhagat + + PR gcov-profile/86957 + * gcc.dg/Wmissing-profile.c: New test. + +2018-09-26 Joseph Myers + + PR c/87390 + * gcc.target/i386/excess-precision-9.c, + gcc.target/i386/excess-precision-10.c: New tests. + +2018-09-26 Richard Biener + + PR debug/87443 + * gcc.dg/debug/dwarf2/inline5.c: New testcase. + +2018-09-26 Martin Jambor + + PR c/87347 + * gcc.dg/pr87347.c: New test. + +2018-09-26 Paolo Carlini + + PR c++/71131 + * g++.dg/concepts/pr71131.C: New. + +2018-09-26 Paolo Carlini + + PR c++/71127 + * g++.dg/concepts/pr71127.C: New. + +2018-09-26 Paolo Carlini + + PR c++/67655 + * g++.dg/concepts/pr67655.C: New. + +2018-09-26 Thomas Quinot + + * gnat.dg/sso13.adb: New testcase. + +2018-09-26 Justin Squirek + + * gnat.dg/warn16.adb: New testcase. + +2018-09-26 Hristian Kirtchev + + * gnat.dg/elab7.adb, gnat.dg/elab7_pkg1.adb, + gnat.dg/elab7_pkg1.ads, gnat.dg/elab7_pkg2.adb, + gnat.dg/elab7_pkg2.ads: New testcase. + +2018-09-26 Javier Miranda + + * gnat.dg/interface8.adb, gnat.dg/interface8.ads: New testcase. + +2018-09-26 Ed Schonberg + + * gnat.dg/predicate2-containers.ads, + gnat.dg/predicate2-project-name_values.ads, + gnat.dg/predicate2-project-registry-attribute.ads, + gnat.dg/predicate2-project-registry.ads, + gnat.dg/predicate2-project-typ-set.ads, + gnat.dg/predicate2-project-typ.ads, + gnat.dg/predicate2-project.ads, + gnat.dg/predicate2-source_reference.ads, gnat.dg/predicate2.ads, + gnat.dg/predicate2_main.adb: New testcase. + +2018-09-26 Hristian Kirtchev + + * gnat.dg/dynhash1.adb: New testcase. + +2018-09-26 Hristian Kirtchev + + * gnat.dg/sets1.adb: New testcase. + * gnat.dg/dynhash.adb, gnat.dg/linkedlist.adb: Update testcases + to new API. + +2018-09-26 Thomas Quinot + + * gnat.dg/sso12.adb: New testcase. + +2018-09-26 Justin Squirek + + * gnat.dg/expr_func8.adb: New testcase. + +2018-09-26 Ed Schonberg + + * gnat.dg/predicate3.adb, gnat.dg/predicate3_pkg.ads: New + testcase. + +2018-09-26 Paolo Carlini + + PR c++/67656 + * g++.dg/concepts/pr67656.C: New. + +2018-09-26 Eric Botcazou + + * gnat.dg/addr12.adb, gnat.dg/addr12_a.adb, + gnat.dg/addr12_a.ads, gnat.dg/addr12_b.adb, + gnat.dg/addr12_b.ads, gnat.dg/addr12_c.ads: New testcase. + +2018-09-26 Eric Botcazou + + * g++.dg/other/vthunk1.C: Rename to... + * g++.dg/other/thunk1.C: ...this. + * g++.dg/other/thunk2a.C: New test. + * g++.dg/other/thunk2b.C: Likewise. + +2018-09-25 Jim Wilson + + * gcc.target/riscv/weak-1.c: New. + +2018-09-25 Jeff Law + + * gcc.dg/warn-stpcpy-no-nul.c: Drop unnecessary xfails. + * gcc.dg/warn-stplen-no-nul.c: Likewise. + +2018-09-25 Alexandre Oliva + + * gnat.dg/dinst.adb: Adjust for locviews. + +2018-09-25 Will Schmidt + + * g++.dg/ext/altivec-6.C: Updated vec_splat() calls. + * gcc.target/powerpc/fold-vec-splat-char.c: Remove invalid + vec_splat calls from recently added tests. Update instruction counts. + * gcc.target/powerpc/fold-vec-splat-floatdouble.c: Same. + * gcc.target/powerpc/fold-vec-splat-int.c: Same. + * gcc.target/powerpc/fold-vec-splat-longlong.c: Same. + * gcc.target/powerpc/fold-vec-splat-pixel.c: Same. + * gcc.target/powerpc/fold-vec-splat-short.c: Same. + +2018-09-25 Marek Polacek + + PR c++/87425 + * g++.dg/cpp2a/constexpr-virtual12.C: New test. + +2018-09-25 Jakub Jelinek + + PR c++/87398 + * g++.dg/other/pr87398.C: New test. + * g++.dg/cpp2a/constexpr-virtual10.C: New test. + * g++.dg/cpp2a/constexpr-virtual11.C: New test. + +2018-09-25 Martin Jambor + + PR testsuite/87339 + * gcc.dg/warn-abs-1.c: Do not test _Float128. Remove dg-skip-if and + float125 target. + * gcc.target/i386/warn-abs-3.c: New test. + +2018-09-25 Paolo Carlini + + PR c++/81246 + * g++.dg/cpp0x/pr81246.C: New. + +2018-09-25 H.J. Lu + + PR target/82699 + * gcc.target/i386/pr82699-5.c: Add -fno-pic for ia32. + * gcc.target/i386/pr82699-6.c: Add -fno-pic. + +2018-09-25 Jakub Jelinek + + * gfortran.dg/coarray_lock_7.f90: Adjust scan-tree-dump-times for + ILP32. + +2018-09-25 Richard Biener + + PR tree-optimization/87402 + * gcc.dg/torture/pr87402.c: New testcase. + +2018-09-25 H.J. Lu + + PR testsuite/70150 + * gcc.dg/20020312-2.c (dg-additional-options): Set to "-no-pie" + for pie_enabled target. + * gcc.dg/uninit-19.c: Check pie_enabled for PIC. + * gcc.target/i386/pr34256.c: Likewise. + +2018-09-24 Paolo Carlini + + PR c++/85070 + * g++.dg/cpp0x/pr85070.C: New. + +2018-09-24 H.J. Lu + + PR target/82699 + * gcc.target/i386/pr82699-1.c: New file. + * gcc.target/i386/pr82699-2.c: Likewise. + * gcc.target/i386/pr82699-3.c: Likewise. + * gcc.target/i386/pr82699-4.c: Likewise. + * gcc.target/i386/pr82699-5.c: Likewise. + * gcc.target/i386/pr82699-6.c: Likewise. + +2018-09-24 Thomas Koenig + + PR fortran/87401 + * gfortran.dg/intent_out_12.f90: New test. + +2018-09-24 Will Schmidt + + PR testsuite/86952 + * gcc.target/powerpc/p8-vec-xl-xst-v2.c: Add and + update expected codegen + +2018-09-24 Cesar Philippidis + + * gfortran.dg/goacc/nested-parallelism.f90: New test. + +2018-09-24 Ilya Leoshkevich + + PR target/80080 + * gcc.target/s390/risbg-ll-3.c: Expect conditional returns. + * gcc.target/s390/zvector/vec-cmp-2.c: Likewise. + +2018-09-24 Martin Liska + + PR sanitizer/85774 + * g++.dg/asan/pr85774.C: New test. + +2018-09-24 Alexandre Oliva + + PR middle-end/87054 + * gcc.dg/pr87054.c: Adjust for no __int128 on x86. + +2018-09-23 Thomas Koenig + + PR fortran/87395 + * gfortran.dg/intent_out_11.f90: New test. + +2018-09-23 Janne Blomqvist + + * gfortran.dg/coarray_lib_alloc_4.f90: Fix scan patterns. + * gfortran.dg/coarray_lock_7.f90: Likewise. + +2018-09-23 Thomas Koenig + + PR fortran/87395 + * gfortran.dg/intent_out_10.f90: New test. + +2018-09-22 Thomas Koenig + + PR fortran/41453 + * gfortran.dg/intent_optimize_2.f90: New test. + +2018-09-22 Jerry DeLisle + + PR fortran/87318 + * gfortran.dg/dtio_1.f90: Update test to valid code. + +2018-09-22 Paul Thomas + + PR fortran/85603 + * gfortran.dg/deferred_character_23.f90 : New test. + +2018-09-21 Jeff Law + + * gcc.dg/tree-ssa/vrp113.c: Disable EVRP. + * gcc.dg/tree-ssa/vrp120.c: New test. + +2018-09-21 Marek Polacek + + PR c++/87372 - __func__ constexpr evaluation. + * g++.dg/cpp1y/func_constexpr2.C: New test. + +2018-09-21 Paul Thomas + + PR fortran/77325 + * gfortran.dg/deferred_character_22.f90 : New test. + +2018-09-21 Paul Thomas + + PR fortran/87359 + * gfortran.dg/finalize_33.f90 : New test. + +2018-09-21 David Malcolm + + PR tree-optimization/87309 + * gcc.dg/pr87309.c: New test. + +2018-09-21 Eric Botcazou + + * c-c++-common/dump-ada-spec-14.c: New test. + +2018-09-21 Eric Botcazou + + * gcc.dg/nested-func-11.c: New test. + + * lib/target-supports.exp (check_effective_target_tls_runtime): Make + more robust and remove target-specific handling. + +2018-09-21 Eric Botcazou + + * gcc.c-torture/execute/20180921-1.c: New test. + +2018-09-20 Marek Polacek + + PR c++/87109 - wrong ctor with maybe-rvalue semantics. + * g++.dg/cpp0x/ref-qual19.C: Adjust the expected results. + * g++.dg/cpp0x/ref-qual20.C: New test. + +2018-09-20 Allan Sandfeld Jensen + + * g++.dg/ipa/pr64059.C: Removed now redundant -nostdlib. + * g++.dg/lto/20081109-1_0.C: Likewise. + * g++.dg/lto/20090302_0.C: Likewise. + * g++.dg/lto/pr45621_0.C: Likewise. + * g++.dg/lto/pr60567_0.C: Likewise. + * g++.dg/lto/pr62026.C: Likewise. + * gcc.dg/lto/pr45736_0.c: Likewise. + * gcc.dg/lto/pr52634_0.c: Likewise. + * gfortran.dg/lto/20091016-1_0.f90: Likewise. + * gfortran.dg/lto/pr79108_0.f90: Likewise. + +2018-09-20 Alexandre Oliva + + PR middle-end/87054 + * gcc.dg/pr87054.c: New. + +2018-09-20 Richard Sandiford + + PR tree-optimization/87288 + * gcc.dg/vect/pr87288-1.c: New test. + * gcc.dg/vect/pr87288-2.c: Likewise, + * gcc.dg/vect/pr87288-3.c: Likewise. + +2018-09-20 Richard Sandiford + + PR tree-optimization/86877 + * gfortran.dg/vect/vect-8-epilogue.F90: New test. + +2018-09-19 Marek Polacek + + * g++.dg/conversion/op4.C: Add dg-warning. + * g++.dg/warn/Wclass-conversion1.C: New test. + * g++.dg/warn/Wclass-conversion2.C: New test. + * g++.dg/warn/Wconversion5.C: Remove file. + * g++.dg/warn/conversion-function-1.C: Use -Wno-class-converison. + * g++.old-deja/g++.bugs/900215_01.C: Adjust dg-warning. + * g++.old-deja/g++.jason/conversion5.C: Likewise. + +2018-09-19 Paolo Carlini + + PR c++/87324 + * g++.dg/cpp0x/desig5.C: New. + +2018-09-19 Paul Thomas + + PR fortran/84109 + * gfortran.dg/elemental_function_3.f90 : New test. + +2018-09-19 Marek Polacek + + PR c++/87357 - missing -Wconversion warning + * g++.dg/warn/Wconversion5.C: New test. + +2018-09-19 Matthew Malcomson + + * gcc.target/aarch64/atomic-store.c: New. + +2018-09-19 Richard Biener + + PR tree-optimization/87349 + PR tree-optimization/87342 + * gcc.dg/torture/pr87349-1.c: New testcase. + * gcc.dg/torture/pr87349-2.c: Likewise. + * gcc.dg/torture/pr87342.c: Likewise. + +2018-09-18 Thomas Koenig + + PR fortran/29550 + * gfortran.dg/inline_matmul_13.f90: Adjust count for + _gfortran_matmul. + * gfortran.dg/inline_matmul_16.f90: Likewise. + * gfortran.dg/promotion_2.f90: Add -fblas-matmul-limit=1. Scan + for dgemm instead of dgemm_. Add call to random_number to make + standard conforming. + * gfortran.dg/matmul_blas_1.f90: New test. + * gfortran.dg/matmul_bounds_14.f: New test. + * gfortran.dg/matmul_bounds_15.f: New test. + * gfortran.dg/matmul_bounds_16.f: New test. + * gfortran.dg/blas_gemm_routines.f: New test / additional file for + preceding tests. + +2018-09-18 Paul Thomas + + PR fortran/87239 + * gfortran.dg/elemental_function_2.f90 : New test. + +2018-09-18 Paul Thomas + + PR fortran/87336 + * gfortran.dg/pointer_array_10.f90 : New test. + * gfortran.dg/assign_10.f90 : Increase 'parm' count to 20. + * gfortran.dg/transpose_optimization_2.f90 : Increase 'parm' + count to 72. + +2018-09-18 Paolo Carlini + + PR c++/85065 + * g++.dg/concepts/pr85065.C: New. + +2018-09-18 Kyrylo Tkachov + + PR testsuite/87339 + * gcc.dg/warn-abs-1.c: Require float128 target. + Skip if large_long_double newlib target. + +2018-09-18 Nathan Sidwell + + PR c++/86881 + * g++.dg/warn/pr86881.C: New. + +2018-09-18 Kyrylo Tkachov + + * gcc.target/aarch64/spellcheck_1.c: + Make architecture suggestion optional. + * gcc.target/aarch64/spellcheck_4.c: + Likewise. + +2018-09-18 Kyrylo Tkachov + + * gcc.target/aarch64/combine_bfxil.c: Avoid passing pointers to + functions. + +2018-09-17 Cesar Philippidis + Bernd Schmidt + + * gcc.target/nvptx/atomic-fetch-2.c: Rename to ... + * gcc.target/nvptx/atomic_fetch-2.c: ... this. + * gcc.target/nvptx/atomic_fetch-3.c: New test. + +2018-09-17 Richard Biener + + PR tree-optimization/87328 + * gcc.dg/torture/pr87328.c: New testcase. + +2018-09-17 Martin Jambor + + PR c/63886 + * gcc.dg/warn-abs-1.c: New test. + * gcc.dg/dfp/warn-abs-2.c: Likewise. + +2018-09-17 Bernd Edlinger + + * gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp: Don't pass + TEST_ALWAYS_FLAGS to HOSTCXX. + +2018-09-17 Paul Thomas + + PR fortran/64120 + * gfortran.dg/allocatable_scalar_14.f90 : New test. + +2018-09-17 Richard Biener + + PR tree-optimization/87301 + * gcc.dg/torture/pr87301.c: New testcase. + +2018-09-17 Paul Thomas + + PR fortran/85954 + * gfortran.dg/deferred_character_21.f90 : New test. + +2018-09-16 Janus Weil + + PR fortran/86484 + PR fortran/84543 + * gfortran.dg/class_assign_2.f90: New test case. + * gfortran.dg/class_assign_3.f90: New test case. + +2018-09-16 Thomas Koenig + + PR fortran/37802 + * gfortran.dg/matmul_bounds_13.f90: New test case. + * gfortran.dg/inline_matmul_15.f90: Adjust test for runtime + error. + * gfortran.dg/matmul_5.f90: Likewise. + * gfortran.dg/matmul_bounds_10.f90: Likewise. + * gfortran.dg/matmul_bounds_11.f90: Likewise. + * gfortran.dg/matmul_bounds_2.f90: Likewise. + * gfortran.dg/matmul_bounds_4.f90: Likewise. + * gfortran.dg/matmul_bounds_5.f90: Likewise. + +2018-09-15 Eric Botcazou + + * gcc.c-torture/compile/20180915-1.c: New test. + +2018-09-14 David Malcolm + + PR c/82967 + * c-c++-common/attributes-1.c: Remove bogus suggestion from + dg-prune-output. + * gcc.dg/diagnostic-token-ranges.c (undeclared_identifier): Remove + bogus suggestion. + * gcc.dg/spellcheck-identifiers-4.c: New test. + +2018-09-14 Bernd Edlinger + + * gcc.dg/warn-strlen-no-nul.c: Add some missing test cases. + +2018-09-14 Martin Sebor + + * gcc.dg/warn-stpcpy-no-nul.c: New test. + +2018-09-14 Martin Sebor + Jeff Law + + * gcc.dg/warn-strcpy-no-nul.c: New test. + +2018-09-14 Martin Sebor + + c++/61941 + * g++.dg/pr61941.C: New test. + +2018-09-14 Kyrylo Tkachov + + * gcc.target/aarch64/combine_bfi_1.c: Scan for bfi instruction + rather than pattern name in combine dump. + +2018-09-14 Sam Tebbs + + PR target/85628 + * gcc.target/aarch64/combine_bfxil.c (combine_zero_extended_int, foo6): + New functions. + +2018-09-14 Kyrylo Tkachov + + PR tree-optimization/87259 + * gcc.dg/pr87259.c: New test. + +2018-09-13 Martin Sebor + Jeff Law + + * gcc.dg/warn-strlen-no-nul.c: New test. + +2018-09-13 Richard Biener + + PR tree-optimization/87263 + * gcc.dg/torture/pr87263.c: New testcase. + * gcc.dg/torture/ssa-fre-2.c: Likewise. + * gcc.dg/torture/ssa-fre-3.c: Likewise. + * gcc.dg/torture/ssa-fre-4.c: Likewise. + +2018-09-13 Omar Sandoval + Tom de Vries + + PR debug/86985 + * gcc.dg/guality/zero-length-array.c: New test. + +2018-09-13 Sam Tebbs + + PR target/85628 + * gcc.target/aarch64/combine_bfxil.c: New file. + * gcc.target/aarch64/combine_bfxil_2.c: New file. + +2018-09-13 Jakub Jelinek + Kyrylo Tkachov + + PR middle-end/87290 + * gcc.target/i386/pr87290.c: New test. + * gcc.c-torture/execute/pr87290.c: New test. + +2018-09-13 Jakub Jelinek + + PR tree-optimization/87287 + * gcc.dg/tree-ssa/pr87287.c: New test. + +2018-09-12 David Malcolm + + PR c++/85110 + * g++.dg/cpp0x/explicit4.C: Update expected output to reflect + special-casing of diagnostic for a single non-viable candidate due + to a bad argument. + * g++.dg/diagnostic/param-type-mismatch-2.C: Likewise. + Add test coverage for an unmatched overloaded operator. + * g++.dg/expr/pmf-1.C: Likewise. + * g++.old-deja/g++.bugs/900330_02.C: Likewise. + * g++.old-deja/g++.jason/conversion11.C: Likewise. + * g++.old-deja/g++.law/arg11.C: Likewise. + * g++.old-deja/g++.law/arm9.C: Likewise. + * g++.old-deja/g++.robertl/eb131.C: Likewise. + +2018-09-12 Paul Thomas + + PR fortran/87284 + * gfortran.dg/allocate_with_mold_2.f90: New test. + +2018-09-12 Jakub Jelinek + + PR middle-end/82853 + * gcc.target/i386/pr82853-1.c: New test. + * gcc.target/i386/pr82853-2.c: New test. + +2018-09-12 Richard Biener + + PR tree-optimization/87280 + * gcc.dg/torture/pr87280.c: New testcase. + +2018-09-12 Richard Biener + + PR tree-optimization/87266 + * gcc.dg/torture/pr87266-1.c: New testcase. + * gcc.dg/torture/pr87266-2.c: Likewise. + * gcc.dg/torture/pr87266-3.c: Likewise. + * gcc.dg/torture/pr87266-4.c: Likewise. + +2018-09-12 Andreas Krebbel + + * gcc.target/s390/dfp_to_bfp_rounding.c: New test. + +2018-09-12 Jakub Jelinek + Andreas Krebbel + + PR tree-optimization/86844 + * gcc.c-torture/execute/pr86844.c: New test. + * gcc.dg/store_merging_22.c: New test. + * gcc.dg/store_merging_23.c: New test. + +2018-09-12 Jakub Jelinek + + PR middle-end/87248 + * c-c++-common/torture/pr87248.c: New test. + +2018-09-11 Janus Weil + + PR fortran/87172 + * gfortran.dg/iso_c_binding_only_2.f90: New test case. + +2018-09-11 Paul Thomas + + PR fortran/87277 + * gfortran.dg/select_type_43.f90: New test. + +2018-09-11 Nathan Sidwell + + * gcc.dg/driver-specs.c: New. + +2018-09-11 Joey Ye + + * lib/gcov.exp (verify-intermediate): Add missing close. + +2018-09-11 Janus Weil + + PR fortran/86830 + * gfortran.dg/typebound_call_30.f90: New test case. + +2018-09-10 Janus Weil + + PR fortran/85395 + * gfortran.dg/proc_ptr_comp_52.f90: New test case. + +2018-09-08 Marek Polacek + + PR c++/87150 - wrong ctor with maybe-rvalue semantics. + * g++.dg/cpp0x/move-return2.C: New test. + +2018-09-08 Marek Polacek + + * c-c++-common/array-init.c: Add dg-prune-output. + * g++.dg/cpp0x/lambda/lambda-const-this.C: Add dg-warning. + * g++.dg/cpp0x/lambda/lambda-in-class-neg.C: Likewise. + * g++.dg/cpp0x/lambda/lambda-in-class.C: Likewise. + * g++.dg/cpp0x/lambda/lambda-nested.C: Likewise. + * g++.dg/cpp0x/lambda/lambda-nsdmi1.C: Likewise. + * g++.dg/cpp0x/lambda/lambda-nsdmi4.C: Likewise. + * g++.dg/cpp0x/lambda/lambda-this.C: Likewise. + * g++.dg/cpp0x/lambda/lambda-this17.C: Likewise. + * g++.dg/cpp0x/lambda/lambda-this18.C: Likewise. + * g++.dg/cpp0x/lambda/lambda-this2.C: Likewise. + * g++.dg/cpp0x/lambda/lambda-this8.C: Likewise. + * g++.dg/cpp1y/pr64382.C: Likewise. + * g++.dg/cpp1y/pr77739.C: Likewise. + * g++.dg/cpp1z/lambda-this1.C: Likewise. + * g++.dg/cpp1z/lambda-this2.C: Likewise. + * g++.dg/template/crash84.C: Adjust dg-error. + +2018-09-07 Marek Polacek + + * g++.dg/cpp1z/direct-enum-init1.C: Remove "inside" from diagnostic + messages. + +2018-09-07 Marek Polacek + + PR c++/87152 - range-based for loops with initializer broken in templates. + * g++.dg/cpp2a/range-for11.C: New test. + * g++.dg/cpp2a/range-for12.C: New test. + * g++.dg/cpp2a/range-for13.C: New test. + * g++.dg/cpp2a/range-for14.C: New test. + * g++.dg/cpp2a/range-for15.C: New test. + * g++.dg/cpp2a/range-for16.C: New test. + * g++.dg/cpp2a/range-for17.C: New test. + * g++.dg/cpp2a/range-for18.C: New test. + * g++.dg/parse/error61.C (foo): Adjust dg-error. + +2018-09-06 Will Schmidt + + PR target/86731 + * gcc.target/powerpc/pr86731.c: New test. + * gcc.target/powerpc/pr86731-longlong.c: New test. + * gcc.target/powerpc/pr86731-fwrapv.c: New test. + * gcc.target/powerpc/pr86731-fwrapv-longlong.c: New test. + * gcc.target/powerpc/pr86731-nogimplefold.c: New test. + * gcc.target/powerpc/pr86731-nogimplefold-longlong.c: New test. + +2018-09-06 Ilya Leoshkevich + + PR target/80080 + * gcc.target/s390/pr80080-3.c: New test. + * gcc.target/s390/s390.exp: Make sure the new test passes + on all optimization levels. + +2018-09-05 Marek Polacek + + PR c++/86982, -Wreturn-local-addr and std::move and std::forward. + * g++.dg/warn/Wreturn-local-addr-5.C: New test. + +2018-09-05 Cesar Philippidis + Bernd Schmidt + + * gcc.target/nvptx/atomic_fetch-1.c: New test. + * gcc.target/nvptx/atomic_fetch-1.c: New test. + +2018-09-05 Marek Polacek + + PR c++/87109, wrong overload with ref-qualifiers. + * g++.dg/cpp0x/ref-qual19.C: New test. + +2018-09-05 Bernhard Reutner-Fischer + + PR testsuite/52665 + * lib/gcc-dg.exp (gcc-dg-test-1): Iterate over _required_options. + * lib/target-supports.exp (scan-assembler_required_options, + scan-assembler-not_required_options, + scan-assembler-times_required_options): Add -fno-ident. + * lib/scanasm.exp (scan-assembler-times): Fix error message. + * c-c++-common/ident-0a.c: New test. + * c-c++-common/ident-0b.c: New test. + * c-c++-common/ident-1a.c: New test. + * c-c++-common/ident-1b.c: New test. + * c-c++-common/ident-2a.c: New test. + * c-c++-common/ident-2b.c: New test. + +2018-09-05 Kyrylo Tkachov + + * gcc.dg/recip_sqrt_mult_1.c: New test. + * gcc.dg/recip_sqrt_mult_2.c: Likewise. + * gcc.dg/recip_sqrt_mult_3.c: Likewise. + * gcc.dg/recip_sqrt_mult_4.c: Likewise. + * gcc.dg/recip_sqrt_mult_5.c: Likewise. + * g++.dg/recip_sqrt_mult_1.C: Likewise. + * g++.dg/recip_sqrt_mult_2.C: Likewise. + +2018-09-05 Martin Liska + + PR tree-optimization/87205 + * gcc.dg/tree-ssa/pr87205-2.c: New test. + * gcc.dg/tree-ssa/pr87205.c: New test. + +2018-09-05 Richard Biener + + PR tree-optimization/87217 + * gfortran.dg/pr87217.f: New testcase. + +2018-09-05 Pádraig Brady p@draigbrady.com + + PR c++/87137 + * g++.dg/abi/pr87137.C: New. + + PR c++/87185 + * g++.dg/pr87185.C: New. + +2018-09-05 Martin Liska + + PR testsuite/87216 + * gcc.dg/tree-prof/pr59521-3.c: Update scanned pattern + to support Darwin names. + +2018-09-05 Martin Liska + + * g++.dg/gcov/loop.C: Update test to support new format. + +2018-09-04 H.J. Lu + + PR debug/86593 + * g++.dg/pr86593.C: New test. + +2018-09-04 Jakub Jelinek + + PR target/87198 + * gcc.target/i386/pr87198.c: New test. + +2018-09-04 Rainer Orth + + PR target/86744 + * gcc.target/i386/addr-sel-1.c: Don't xfail "b\\+1" scan. + +2018-09-04 Richard Biener + + PR tree-optimization/87211 + * gcc.dg/torture/pr87211.c: New testcase. + +2018-09-04 Richard Biener + + PR tree-optimization/87176 + * gcc.dg/torture/pr87176.c: New testcase. + * gcc.dg/torture/ssa-fre-1.c: Likewise. + +2018-09-03 Jerry DeLisle + + * gfortran.dg/modulo_check: New test. + +2018-09-03 Richard Biener + + PR tree-optimization/87177 + * gcc.dg/torture/pr87177.c: New testcase. + * gcc.dg/torture/pr87177-2.c: Likewise. + +2018-09-03 Richard Biener + + PR tree-optimization/87200 + * gcc.dg/torture/pr87200.c: New testcase. + +2018-09-03 Richard Biener + + PR tree-optimization/87197 + * gcc.dg/torture/pr87197.c: New testcase. + + PR tree-optimization/87169 + * gcc.dg/torture/pr87169.c: New testcase. + +2018-09-03 Martin Liska + + PR driver/83193 + * gcc.dg/completion-4.c: New test. + +2018-09-03 Paolo Carlini + + PR c++/84980 + * g++.dg/concepts/pr84980.C: New. + +2018-09-03 Martin Liska + + PR middle-end/59521 + * c-c++-common/pr59521-1.c: New test. + * c-c++-common/pr59521-2.c: New test. + * gcc.dg/tree-prof/pr59521-3.c: New test. + +2018-09-02 Bernd Edlinger + + * c-c++-common/array-init.c: New test. + * g++.dg/init/string2.C: Remove selector. + +2018-09-01 Michael Matz + + PR tree-optimization/87074 + * gcc.dg/pr87074.c: New test. + +2018-08-31 Richard Biener + + PR tree-optimization/87168 + * gcc.dg/torture/pr87168.c: New testcase. + +2018-08-31 Vlad Lazar + + * gcc.target/aarch64/scalar_intrinsics.c (test_vnegd_s64): New. + * gcc.target/aarch64/vneg_s.c (RUN_TEST_SCALAR): New. + (test_vnegd_s64): Likewise. + * gcc.target/aarch64/vnegd_64.c: New. + * gcc.target/aarch64/vabsd_64.c: New. + * gcc.tartget/aarch64/vabs_intrinsic_3.c: New. + +2018-08-31 Nathan Sidwell + + PR c++/87155 + PR c++/84707 + * g++.dg/cpp0x/pr87155.C: New. + * g++.dg/cpp0x/inline-ns10.C: Adjust. + +2018-08-31 Jakub Jelinek + + PR middle-end/87138 + * gcc.target/i386/avx512bw-pr87138.c: New test. + +2018-08-31 Paul Thomas + + PR fortran/86328 + PR fortran/86760 + * gfortran.dg/pr86328.f90 : New test. + in comment 12 of the PR. + * gfortran.dg/pr86760.f90 : New test. + +2018-08-30 Sandra Loosemore + + * g++.dg/cpp0x/noexcept30.C: Make dependence on + -fdelete-null-pointer-checks explicit. + * g++.dg/cpp1y/constexpr-82218.C: Likewise. + * g++.dg/expr/pmf-3.C: Likewise. + * g++.dg/ext/attr-returns-nonnull.C: Likewise. + * g++.dg/tree-ssa/lifetime-dse1.C: Likewise. + * g++.dg/tree-ssa/pr61034.C: Likewise. + * gcc.dg/addr_equal-1.c: Likewise. + * gcc.dg/ipa/pr85734.c: Likewise. + * gcc.dg/ipa/propmalloc-1.c: Likewise. + * gcc.dg/ipa/propmalloc-2.c: Likewise. + * gcc.dg/ipa/propmalloc-3.c: Likewise. + * gcc.dg/tree-ssa/pr78154.c: Likewise. + * gcc.dg/tree-ssa/pr83648.c: Likewise. + +2018-08-30 Martin Sebor + + PR testsuite/87158 + * gcc.c-torture/execute/memchr-1.c: Correct big-endian expectations. + +2018-08-30 Qing Zhao + + PR testsuite/86519 + * gcc.dg/strcmpopt_6.c: Remove. + * gcc.target/aarch64/strcmpopt_6.c: New testcase. + * gcc.target/i386/strcmpopt_6.c: Likewise. + +2018-08-30 Richard Biener + + PR tree-optimization/87147 + * gcc.dg/torture/pr87147.c: New testcase. + +2018-08-30 Tamar Christina + + * gcc.target/aarch64/large_struct_copy_2.c: New. + +2018-08-29 Bernd Edlinger + + PR middle-end/87053 + * gcc.c-torture/execute/pr87053.c: New test. + +2018-08-29 Jakub Jelinek + + PR c++/87095 + * g++.dg/ubsan/vptr-13.C: New test. + +2018-08-29 Paolo Carlini + + PR c++/85265 + * g++.dg/concepts/pr85265.C: New. + +2018-08-29 Martin Sebor + Bernd Edlinger + + PR tree-optimization/86714 + PR tree-optimization/86711 + * gcc.c-torture/execute/memchr-1.c: New test. + * gcc.c-torture/execute/pr86714.c: New test. + * gcc.c-torture/execute/widechar-3.c: New test. + * gcc.dg/strlenopt-58.c: New test. + +2018-08-29 Richard Biener + + PR tree-optimization/87132 + * gcc.dg/torture/pr87132.c: New testcase. + +2018-08-29 David Malcolm + + PR c++/85110 + * g++.dg/diagnostic/param-type-mismatch-2.C: Update expected + output to reflect underlining of pertinent parameter in decl + for "no known conversion" messages. + +2018-08-29 Jakub Jelinek + + PR c++/87122 + * g++.dg/cpp1z/decomp47.C: New test. + +2018-08-29 Matthew Malcomson + + * gcc.target/aarch64/simd/vect_su_add_sub.c: Use 32 and 64-bit types + where appropriate. + +2018-08-29 Richard Biener + + PR tree-optimization/87117 + * gfortran.dg/pr87117.f90: New testcase. + +2018-08-29 Richard Biener + + PR tree-optimization/87126 + * gcc.dg/tree-ssa/pr87126.c: New testcase. + +2018-08-28 MCC CS + + PR tree-optimization/87009 + * gcc.dg/pr87009.c: New test. + +2018-08-28 Martin Sebor + + PR middle-end/86631 + * g++.dg/Walloca1.C: Adjust. + +2018-08-28 Paolo Carlini + + PR c++/86546 + * g++.dg/other/switch4.C: New. + +2018-08-28 Richard Biener + + PR tree-optimization/87124 + * g++.dg/torture/pr87124.C: New testcase. + +2017-08-28 Paul Thomas + + PR fortran/80477 + * gfortran.dg/class_result_7.f90: New test. + * gfortran.dg/class_result_8.f90: New test. + * gfortran.dg/class_result_9.f90: New test. + + PR fortran/86481 + * gfortran.dg/allocate_with_source_25.f90: New test. + +2018-08-28 Jakub Jelinek + + PR middle-end/87099 + * gcc.dg/pr87099.c: New test. + +2018-08-28 Richard Sandiford + + PR testsuite/87078 + * gcc.dg/vect/slp-37.c: Restrict scan tests to vect_hw_misalign. + +2018-08-28 Richard Biener + + PR tree-optimization/87117 + * gcc.dg/pr87117-1.c: New testcase. + +2018-08-28 Richard Biener + + PR tree-optimization/87117 + * gcc.dg/pr87117-2.c: New testcase. + +2018-08-28 Richard Biener + + PR tree-optimization/87117 + * gcc.dg/lvalue-5.c: New testcase. + +2018-08-27 Jeff Law + + PR tree-optimization/87110 + * gcc.c-torture/compile/pr87110.c: New test. + +2018-08-27 Martin Sebor + + PR tree-optimization/86914 + * gcc.dg/strlenopt-57.c: New test. + +2018-08-27 Martin Sebor + + PR tree-optimization/87112 + * gcc.dg/pr87112.c: New test. + +2018-08-27 David Malcolm + + PR c++/63392 + * g++.dg/diagnostic/missing-typename.C: New test. + +2018-08-27 Jeff Law + + * gcc.c-torture/compile/dse.c: New test. + +2018-08-27 Jakub Jelinek + + PR c++/86993 + * g++.dg/diagnostic/pr86993.C: New test. + +2018-08-27 Richard Biener + + PR tree-optimization/86927 + * gcc.dg/vect/pr86927.c: New testcase. + +2018-08-27 David Malcolm + + PR c++/87091 + * gcc.dg/empty.h: New file. + * gcc.dg/fixits-pr84852-1.c: Update for move of fix-it hint to + top of file and removal of redundant second printing of warning + location. + * gcc.dg/fixits-pr84852-2.c: Likewise. + * gcc.dg/missing-header-fixit-3.c: Likewise. + * gcc.dg/missing-header-fixit-4.c: New test. + * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c: Update for + conversion of show_caret_p to a tri-state. + +2018-08-27 David Malcolm + + PR c++/87091 + * g++.dg/pr85523.C: Extend expected output to show line + before line-insertion fix-it hint. + * gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c + (test_fixit_insert_newline): Add previous line to expected output. + * gcc.dg/plugin/diagnostic-test-show-locus-bw.c: Likewise. + * gcc.dg/plugin/diagnostic-test-show-locus-color.c: Likewise. + +2018-08-27 Martin Liska + + PR sanitizer/86962 + * gcc.dg/asan/pr86962.c: New test. + +2018-08-27 Martin Liska + + * gcc.dg/tree-prof/val-prof-10.c: New test. + +2018-08-27 Martin Liska + + PR tree-optimization/86847 + * gcc.dg/tree-ssa/switch-3.c: New test. + * gcc.dg/tree-ssa/vrp105.c: Remove. + +2018-08-27 Martin Liska + + * gcc.dg/tree-ssa/switch-2.c: New test. + +2018-08-27 Richard Biener + + * g++.dg/torture/20180705-1.C: New testcase. + * gcc.dg/tree-ssa/ssa-fre-67.c: Likewise. + * gcc.dg/tree-ssa/ssa-ccp-14.c: Scan FRE dump. + * gcc.dg/tree-ssa/ssa-fre-46.c: Use -O2. + * gcc.dg/tree-ssa/vrp92.c: Disable FRE. + * gcc.dg/pr83666.c: Drop --param=sccvn-max-scc-size option. + * gcc.dg/pr85195.c: Likewise. + * gcc.dg/pr85467.c: Likewise. + * gcc.dg/torture/pr81790.c: Likewise. + + * gfortran.dg/reassoc_4.f: Change max-completely-peeled-insns + param to current default. + +2018-08-27 Jakub Jelinek + + PR rtl-optimization/87065 + * gcc.target/i386/pr87065.c: New test. + +2018-08-26 Marek Polacek + + PR c++/87080 + * g++.dg/cpp0x/Wpessimizing-move5.C: New test. + + PR c++/87029, Implement -Wredundant-move. + * g++.dg/cpp0x/Wredundant-move1.C: New test. + * g++.dg/cpp0x/Wredundant-move2.C: New test. + * g++.dg/cpp0x/Wredundant-move3.C: New test. + * g++.dg/cpp0x/Wredundant-move4.C: New test. + +2018-08-25 Thomas Koenig + + PR libfortran/86704 + * gfortran.dg/matmul_19.f90: New test. + +2018-08-25 Janus Weil + + PR fortran/86545 + * gfortran.dg/generic_35.f90: New test case. + +2018-08-24 David Malcolm + + PR c++/87091 + * gcc.dg/missing-header-fixit-3.c: Update for changes to how + line spans are printed with -fdiagnostics-show-line-numbers. + +2018-08-24 Thomas Koenig + + PR fortran/86837 + * gfortran.dg/implied_do_io_6.f90: New test. + +2018-08-24 H.J. Lu + + PR middle-end/87092 + * gcc.dg/pr87092.c: New test. + +2018-08-24 Marek Polacek + + PR c++/67012 + PR c++/86942 + * g++.dg/cpp0x/auto52.C: New test. + * g++.dg/cpp1y/auto-fn52.C: New test. + * g++.dg/cpp1y/auto-fn53.C: New test. + * g++.dg/cpp1y/auto-fn54.C: New test. + +2018-08-24 Richard Sandiford + + * lib/target-supports.exp (vect_perm_supported): Only return + false for variable-length vectors if the permute size is not + a power of 2. + (check_effective_target_vect_perm) + (check_effective_target_vect_perm_byte) + (check_effective_target_vect_perm_short): Remove check for + variable-length vectors. + * gcc.dg/vect/slp-23.c: Add an XFAIL for variable-length SVE. + * gcc.dg/vect/slp-perm-10.c: Likewise. + * gcc.dg/vect/slp-perm-9.c: Add an XFAIL for variable-length vectors. + +2018-08-24 Richard Sandiford + + * gcc.target/aarch64/sve/bswap_1.c: New test. + * gcc.target/aarch64/sve/bswap_2.c: Likewise. + * gcc.target/aarch64/sve/bswap_3.c: Likewise. + +2018-08-24 Richard Sandiford + + * gcc.target/aarch64/sve/slp_perm_1.c: New test. + * gcc.target/aarch64/sve/slp_perm_2.c: Likewise. + * gcc.target/aarch64/sve/slp_perm_3.c: Likewise. + * gcc.target/aarch64/sve/slp_perm_4.c: Likewise. + * gcc.target/aarch64/sve/slp_perm_5.c: Likewise. + * gcc.target/aarch64/sve/slp_perm_6.c: Likewise. + * gcc.target/aarch64/sve/slp_perm_7.c: Likewise. + +2018-08-24 H.J. Lu + + PR debug/79342 + * gcc.dg/pr79342.: New test. + +2018-08-23 Martin Sebor + + PR tree-optimization/87072 + * gcc.dg/Warray-bounds-35.c: New test. + +2018-08-23 Richard Biener + + PR middle-end/87024 + * gcc.dg/pr87024.c: New testcase. + +2018-08-23 Richard Sandiford + + * gcc.dg/vect/no-vfa-vect-depend-2.c: Remove XFAIL. + * gcc.dg/vect/no-vfa-vect-depend-3.c: Likewise. + * gcc.dg/vect/pr65947-13.c: Update for vect_fold_extract_last. + * gcc.dg/vect/pr80631-2.c: Likewise. + +2017-08-23 Paul Thomas + + PR fortran/86863 + * gfortran.dg/submodule_32.f08: New test. + +2018-08-22 Janus Weil + + PR fortran/86935 + * gfortran.dg/associate_3.f90: Update error message. + * gfortran.dg/associate_39.f90: New test case. + +2018-08-22 Janus Weil + + PR fortran/86888 + * gfortran.dg/alloc_comp_basics_6.f90: Update an error message and add + an additional case. + * gfortran.dg/alloc_comp_basics_7.f90: New test case. + * gfortran.dg/class_17.f03: Update error message. + * gfortran.dg/class_55.f90: Ditto. + * gfortran.dg/dtio_11.f90: Update error messages. + * gfortran.dg/implicit_actual.f90: Add an error message. + * gfortran.dg/typebound_proc_12.f90: Update error message. + +2018-08-22 Martin Sebor + + PR middle-end/87052 + * gcc.dg/pr87052.c: New test. + * gcc.dg/tree-ssa/dump-3.c: Adjust. + +2018-08-22 Szabolcs Nagy + + * gfortran.dg/max_fmax_aarch64.f90: Rename to... + * gfortran.dg/max_expr.f90: ...this. + * gfortran.dg/min_fmin_aarch64.f90: Rename to... + * gfortran.dg/min_expr.f90: ...this. + +2018-08-22 Richard Sandiford + + PR tree-optimization/86725 + * gcc.dg/vect/no-scevccp-pr86725-2.c: New test. + * gcc.dg/vect/no-scevccp-pr86725-3.c: Likewise. + * gcc.dg/vect/no-scevccp-pr86725-4.c: Likewise. + * gcc.dg/vect/no-scevccp-pr86725-5.c: Likewise. + +2018-08-22 Richard Sandiford + + PR tree-optimization/86725 + * gcc.dg/vect/no-scevccp-pr86725-1.c: New test. + +2018-08-22 Richard Sandiford + + * gcc.dg/vect/vect-avg-16.c: New test. + * gcc.dg/vect/slp-37.c: Expect the loop to be vectorized. + * gcc.dg/vect/vect-strided-u8-i8-gap4.c, + * gcc.dg/vect/vect-strided-u8-i8-gap4-big-array.c: Likewise for + the second loop in main1. + +2018-08-22 Iain Sandoe + + * gcc.dg/lto/pr85248_0.c (test_alias): + Stringify __USER_LABEL_PREFIX__. + (test_noreturn): Likewise. + +2018-08-22 Richard Biener + + PR tree-optimization/86988 + * g++.dg/pr86988.C: New testcase. + +2018-08-22 Richard Biener + + PR tree-optimization/86945 + * tree-cfg.c (generate_range_test): Use unsigned arithmetic. + +2018-08-21 Janne Blomqvist + + * gfortran.dg/nan_1.f90: Remove tests that test MAX/MIN with NaNs. + +2018-08-21 Nicolas Koenig + Thomas Koenig + + PR fortran/25829 + * gfortran.dg/f2003_inquire_1.f03: Add write statement. + * gfortran.dg/f2003_io_1.f03: Add wait statement. + +2018-08-21 Marek Polacek + + PR c++/86981, Implement -Wpessimizing-move. + * g++.dg/cpp0x/Wpessimizing-move1.C: New test. + * g++.dg/cpp0x/Wpessimizing-move2.C: New test. + * g++.dg/cpp0x/Wpessimizing-move3.C: New test. + * g++.dg/cpp0x/Wpessimizing-move4.C: New test. + * g++.dg/cpp1z/Wpessimizing-move1.C: New test. + + PR c++/65043 + * g++.dg/concepts/pr67595.C: Add dg-warning. + * g++.dg/cpp0x/Wnarrowing11.C: New test. + * g++.dg/cpp0x/Wnarrowing12.C: New test. + * g++.dg/cpp0x/rv-cast5.C: Add static_cast. + + PR c++/86499 + * g++.dg/cpp0x/lambda/lambda-non-local.C: New test. + * g++.dg/cpp0x/lambda/lambda-this10.C: Adjust dg-error. + +2018-08-21 Ed Schonberg + + * gnat.dg/expr_func7.adb, gnat.dg/expr_func7.ads: New testcase. + +2018-08-21 Ed Schonberg + + * gnat.dg/expr_func6.adb, gnat.dg/expr_func6.ads: New testcase. + +2018-08-21 Javier Miranda + + * gnat.dg/spark2.adb, gnat.dg/spark2.ads: New testcase. + +2018-08-21 Ed Schonberg + + * gnat.dg/prot6.adb, gnat.dg/prot6.ads: New testcase. + +2018-08-21 Ed Schonberg + + * gnat.dg/access5.adb, gnat.dg/access5.ads: New testcase. + +2018-08-21 Eric Botcazou + + * gnat.dg/rep_clause7.adb: New testcase. + +2018-08-21 Ed Schonberg + + * gnat.dg/task1.adb, gnat.dg/task1.ads, gnat.dg/task1_pkg.adb, + gnat.dg/task1_pkg.ads: New testcase. + +2018-08-21 Hristian Kirtchev + + * gnat.dg/linkedlist.adb: New testcase. + +2018-08-21 Hristian Kirtchev + + * gnat.dg/elab6.adb, gnat.dg/elab6.ads, gnat.dg/elab6_pkg.adb, + gnat.dg/elab6_pkg.ads: New testcase. + +2018-08-21 Ed Schonberg + + * gnat.dg/expr_func5.adb: New testcase. + +2018-08-21 Hristian Kirtchev + + * gnat.dg/dynhash.adb: New testcase. + +2018-08-21 Javier Miranda + + * gnat.dg/enum4.adb: New testcase. + +2018-08-21 Tamar Christina + + * gcc.target/aarch64/large_struct_copy.c: New test. + +2018-08-21 Szabolcs Nagy + + * g++.dg/torture/pr86763.C: Restrict to *-*-linux*. + +2018-08-21 Bernd Edlinger + + PR middle-end/86121 + * gcc.dg/Wstringop-overflow-6.c: Remove xfail. + +2018-08-21 Tom de Vries + + * gcc.c-torture/unsorted/dump-noaddr.x: Use -gno-record-gcc-switches + to avoid mismatch in .debug and .earlydebug dump files. + +2018-08-20 Michael Meissner + + PR target/87033 + * gcc.target/powerpc/pr87033.c: New test. + +2018-08-20 Martin Sebor + + PR tree-optimization/87034 + * gcc.dg/builtin-sprintf-warn-20.c: New test. + +2018-08-20 David Malcolm + + PR other/84889 + * gcc.dg/plugin/diagnostic-group-test-1.c: New test. + * gcc.dg/plugin/diagnostic_group_plugin.c: New test. + * gcc.dg/plugin/plugin.exp (plugin_test_list): Add the new tests. + +2018-08-20 H.J. Lu + + PR target/87014 + * g++.dg/torture/pr87014.C: New file. + +2018-08-20 Bernd Edlinger + + PR target/86984 + * gcc.target/alpha/pr86984.c: New test. + +2018-08-20 Richard Biener + + PR tree-optimization/78655 + * gcc.dg/tree-ssa/evrp11.c: New testcase. + +2018-08-18 Iain Sandoe + + * gcc.dg/debug/dwarf2/pr80263.c: Suppress pubtypes output + for Darwin. + +2018-08-18 Iain Sandoe + + * g++.dg/debug/dwarf2/pr85302.C: Skip unsupported split DWARF + test on Darwin. + * g++.dg/debug/dwarf2/pr85302.C: Likewise. + * gcc.dg/lto/pr83719_0.c: Likewise. + +2018-08-17 Martin Sebor + + PR testsuite/86996 + * gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Adjust. + +2018-08-17 David Malcolm + + * g++.dg/conversion/Wwrite-strings.C: New test. + +2018-08-17 Sandra Loosemore + Chung-Lin Tang + Xianmiao Qu + + C-SKY port: Testsuite + + * g++.dg/Wno-frame-address.C: Adjust for C-SKY. + * g++.dg/torture/type-generic-1.C: Likewise. + * gcc.c-torture/compile/20000804-1.c: Likewise. + * gcc.c-torture/execute/20101011-1.c: Likewise. + * gcc.c-torture/execute/ieee/mul-subnormal-single-1.x: Likewise. + * gcc.dg/20020312-2.c: Likewise. + * gcc.dg/Wno-frame-address.c: Likewise. + * gcc.dg/c11-true_min-1.c: Likewise. + * gcc.dg/sibcall-10.c: Likewise. + * gcc.dg/sibcall-9.c: Likewise. + * gcc.dg/stack-usage-1.c: Likewise. + * gcc.dg/torture/float32-tg-3.c: Likewise. + * gcc.dg/torture/float32x-tg-3.c: Likewise. + * gcc.dg/torture/float64-tg-3.c: Likewise. + * gcc.dg/torture/float64x-tg-3.c: Likewise. + * gcc.dg/torture/type-generic-1.c: Likewise. + * gcc.target/csky/*: New. + * lib/target-supports.exp (check_profiling_available): Add + csky-*-elf. + (check_effective_target_hard_float): Handle C-SKY targets with + single-precision hard float only. + (check_effective_target_logical_op_short_circuit): Handle C-SKY. + +2018-08-17 David Malcolm + + * gcc.dg/format/gcc_diag-1.c: Fix typo. Add test coverage for + gcc_dump_printf. + * gcc.dg/format/gcc_diag-10.c: Add gimple typedef. Add test + coverage for gcc_dump_printf. + +2018-08-17 Martin Liska + + * g++.dg/opt/mpx.C: Fix scanned pattern. + * gcc.target/i386/mpx.c: Likewise. + * g++.dg/warn/Wunreachable-code-1.C: Remove. + * g++.dg/warn/Wunreachable-code-2.C: Likewise. + * gcc.dg/torture/pr52969.c: Likewise. + * g++.dg/warn/pr31246-2.C: Likewise. + * g++.dg/warn/pr31246.C: Likewise. + * gcc.dg/pr33092.c: Likewise. + * g++.dg/opt/eh1.C: Remove a deprecated option. + * g++.dg/template/inline1.C: Likewise. + * g++.dg/tree-ssa/pr81408.C: Likewise. + * gcc.dg/pr41837.c: Likewise. + * gcc.dg/pr41841.c: Likewise. + * gcc.dg/pr42250.c: Likewise. + * gcc.dg/pr43084.c: Likewise. + * gcc.dg/pr43317.c: Likewise. + * gcc.dg/pr51879-18.c: Likewise. + * gcc.dg/torture/pr36066.c: Likewise. + * gcc.dg/tree-ssa/ifc-8.c: Likewise. + * gcc.dg/tree-ssa/ifc-cd.c: Likewise. + * gcc.dg/tree-ssa/pr19210-1.c: Likewise. + * gcc.dg/tree-ssa/pr45122.c: Likewise. + * gcc.target/i386/pr45352-2.c: Likewise. + * gcc.target/i386/zee.c: Likewise. + * gfortran.dg/auto_char_len_2.f90: Likewise. + * gfortran.dg/auto_char_len_4.f90: Likewise. + * gfortran.dg/c_ptr_tests_15.f90: Likewise. + * gfortran.dg/char_array_structure_constructor.f90: Likewise. + * gfortran.dg/gomp/pr47331.f90: Likewise. + * gfortran.dg/pr40999.f: Likewise. + * gfortran.dg/pr41011.f: Likewise. + * gfortran.dg/pr42051.f03: Likewise. + * gfortran.dg/pr46804.f90: Likewise. + * gfortran.dg/pr83149_1.f90: Likewise. + * gfortran.dg/pr83149_b.f90: Likewise. + * gfortran.dg/whole_file_1.f90: Likewise. + * gfortran.dg/whole_file_10.f90: Likewise. + * gfortran.dg/whole_file_11.f90: Likewise. + * gfortran.dg/whole_file_12.f90: Likewise. + * gfortran.dg/whole_file_13.f90: Likewise. + * gfortran.dg/whole_file_14.f90: Likewise. + * gfortran.dg/whole_file_15.f90: Likewise. + * gfortran.dg/whole_file_16.f90: Likewise. + * gfortran.dg/whole_file_17.f90: Likewise. + * gfortran.dg/whole_file_18.f90: Likewise. + * gfortran.dg/whole_file_19.f90: Likewise. + * gfortran.dg/whole_file_2.f90: Likewise. + * gfortran.dg/whole_file_20.f03: Likewise. + * gfortran.dg/whole_file_3.f90: Likewise. + * gfortran.dg/whole_file_4.f90: Likewise. + * gfortran.dg/whole_file_5.f90: Likewise. + * gfortran.dg/whole_file_6.f90: Likewise. + * gfortran.dg/whole_file_7.f90: Likewise. + * gfortran.dg/whole_file_8.f90: Likewise. + * gfortran.dg/whole_file_9.f90: Likewise. + * gcc.dg/vect/vect.exp: Likewise. + +2018-08-17 Richard Biener + + PR middle-end/86505 + * gcc.dg/torture/pr86505.c: New testcase. + +2018-08-16 Martin Sebor + + PR tree-optimization/86853 + * gcc.dg/tree-ssa/builtin-sprintf-10.c: New test. + * gcc.dg/tree-ssa/builtin-sprintf-11.c: New test. + * gcc.dg/tree-ssa/builtin-sprintf-warn-18.c: Adjust. + +2018-08-16 David Malcolm + + * gcc.dg/missing-header-fixit-3.c: New test. + +2018-08-16 David Malcolm + + * gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c + (test_fixit_insert_newline): Update expected output to show '+' + characters in margin of line-insertion fix-it hint. + +2018-08-16 Nathan Sidwell + + * gcc.dg/cpp/macsyntx.c: Adjust expected errors. + * gcc.dg/cpp/macsyntx2.c: likewise. + +2018-08-15 Uros Bizjak + + PR testsuite/86745 + * gcc.target/i386/avx-cvt-2.c: Loosen scan-assembler strings. + * gcc.target/i386/avx-cvt-2.c: Ditto. + +2018-08-16 David Malcolm + + PR c++/70693 + * c-c++-common/Wmisleading-indentation-pr70693.c: New test. + +2018-08-16 Vlad Lazar + + * gcc.target/aarch64/imm_choice_comparison.c: New test. + +2018-08-16 Iain Sandoe + + * gcc.dg/memcmp-1.c (lib_memcmp): Apply __USER_LABEL_PREFIX__. + (lib_strncmp): Likewise. + +2018-08-16 Iain Sandoe + + * c-c++-common/asan/pointer-subtract-3.c: Skip for Darwin. + * c-c++-common/asan/pointer-subtract-4.c: Likewise. + * g++.dg/torture/pr44295.C : Likewise. + +2018-08-16 Iain Sandoe + + PR testsuite/78544 + * gcc.dg/tree-prof/section-attr-1.c: Add Darwin-specific section + attributes and matching. + * gcc.dg/tree-prof/section-attr-2.c: Likewise. + * gcc.dg/tree-prof/section-attr-3.c: Likewise. + +2018-08-16 Iain Sandoe + + * gcc.dg/asan/pr81923.c: Stringify __USER_LABEL_PREFIX__. + +2018-08-15 Uros Bizjak + + * gcc.target/i386/rop1.c: Remove. + * gcc.target/i386/pr83554 (dg-options): Remove -mmitigate-rop. + +2018-08-15 Will Schmidt + + * gcc.target/powerpc/fold-vec-splat-char.c: New. + * gcc.target/powerpc/fold-vec-splat-floatdouble.c: New. + * gcc.target/powerpc/fold-vec-splat-int.c: New. + * gcc.target/powerpc/fold-vec-splat-longlong.c: New. + * gcc.target/powerpc/fold-vec-splat-pixel.c: New. + * gcc.target/powerpc/fold-vec-splat-short.c: New. + +2018-08-15 David Malcolm + + * g++.dg/diagnostic/aka3.C: New test. + * g++.dg/diagnostic/param-type-mismatch-2.C: Update expected + output to show range labels. + * g++.dg/diagnostic/param-type-mismatch.C: Likewise. + * g++.dg/plugin/plugin.exp (plugin_test_list): Add... + * g++.dg/plugin/show-template-tree-color-labels.C: New test. + * gcc.dg/bad-binary-ops.c: Update expected output to show range + labels. Add an "aka" example. + * gcc.dg/cpp/pr66415-1.c: Update expected output to show range + labels. + * gcc.dg/format/diagnostic-ranges.c: Likewise. + * gcc.dg/format/pr72858.c: Likewise. + * gcc.dg/format/pr78498.c: Likewise. + * gcc.dg/param-type-mismatch.c: Add "-Wpointer-sign" to options. + Update expected output to show range labels. Add examples of + -Wincompatible-pointer-types and -Wpointer-sign for parameters. + * gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c: + Update expected output to show range labels. + * gcc.dg/plugin/diagnostic-test-show-locus-bw.c: Likewise. + (test_very_wide_line): Adjust so that label is at left-clipping + boundary. + (test_very_wide_line_2): New test. + * gcc.dg/plugin/diagnostic-test-show-locus-color-line-numbers.c: + Update expected output to show range labels. + * gcc.dg/plugin/diagnostic-test-show-locus-color.c: Likewise. + * gcc.dg/plugin/diagnostic-test-show-locus-no-labels.c: New test. + * gcc.dg/plugin/diagnostic_plugin_show_trees.c (show_tree): Update + for new param to gcc_rich_location::add_expr. + * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c (add_range): + Add "label" param. + (test_show_locus): Add examples of labels to various tests. Tweak + the "very wide_line" test case and duplicate it, to cover the + boundary values for clipping of labels against the left-margin. + * gcc.dg/plugin/plugin.exp (plugin_test_list): Add + diagnostic-test-show-locus-no-labels.c. + * gcc.dg/pr69554-1.c: Update expected output to show range labels. + Update line numbers of dg-locus directives. + * gcc.dg/pr69627.c: Update expected output to show range labels. + * lib/multiline.exp (proc _build_multiline_regex): Remove + special-case handling of lines with trailing '|'. + +2018-08-15 Qing Zhao + + PR testsuite/86519 + * gcc.dg/strcmpopt_6.c: Scan the assembly file instead of + the .expand file. + +2018-08-15 Prathamesh Kulkarni + + * gcc.dg/wmain.c: New test. + +2018-08-15 Iain Sandoe + + PR c/19315 + * gcc.dg/graphite/pr82451.c: Make array 'a' an extern. + * gcc.dg/redecl-10.c: Expect warnings for the static vars with + unknown size. + +2018-08-15 Martin Liska + + PR tree-optimization/86925 + * gcc.dg/predict-20.c: New test. + * gcc.dg/predict-21.c: New test. + +2018-08-15 Paolo Carlini + + * g++.dg/init/goto3.C: Adjust for error instead of permerror. + +2018-08-14 Allan Sandfeld Jensen + + * gcc.target/i386/sse2-movs.c: New test. + +2018-08-14 Martin Sebor + + PR tree-optimization/86650 + * gcc.dg/Warray-bounds-34.c: New test. + +2018-08-14 Janus Weil + + PR fortran/86116 + * gfortran.dg/generic_34.f90: New test case. + +2018-08-13 Marek Polacek + + PR c++/57891 + * g++.dg/cpp0x/Wnarrowing6.C: New test. + * g++.dg/cpp0x/Wnarrowing7.C: New test. + * g++.dg/cpp0x/Wnarrowing8.C: New test. + * g++.dg/cpp0x/Wnarrowing9.C: New test. + * g++.dg/cpp0x/Wnarrowing10.C: New test. + * g++.dg/cpp0x/constexpr-47969.C: Adjust dg-error. + * g++.dg/cpp0x/constexpr-ex2.C: Likewise. + * g++.dg/cpp0x/constexpr-targ.C: Likewise. + * g++.dg/cpp0x/scoped_enum2.C: Likewise. + * g++.dg/ext/stmtexpr15.C: Likewise. + * g++.dg/gomp/pr47963.C: Likewise. + * g++.dg/init/new37.C: Likewise. + * g++.dg/init/new43.C: Likewise. + * g++.dg/other/fold1.C: Likewise. + * g++.dg/parse/array-size2.C: Likewise. + * g++.dg/template/dependent-name3.C: Likewise. + * g++.dg/cpp0x/constexpr-data2.C: Add dg-error. + * g++.dg/other/vrp1.C: Likewise. + * g++.dg/template/char1.C: Likewise. + +2018-08-13 Segher Boessenkool + + * gcc.target/powerpc/pr56605.c: The generated code can have an AND + instead of a ZERO_EXTEND. + +2018-08-13 Martin Sebor + + PR tree-optimization/71625 + * c-c++-common/attr-nonstring-3.c: Temporarily xfail a test case. + * g++.dg/init/string2.C: New test. + * g++.dg/init/string3.C: New test. + * g++.dg/init/string4.C: New test. + * gcc.dg/init-string-3.c: New test. + * gcc.dg/strlenopt-55.c: New test. + * gcc.dg/strlenopt-56.c: New test. + +2018-08-13 Marek Polacek + + P0806R2 - Deprecate implicit capture of this via [=] + * g++.dg/cpp2a/lambda-this1.C: New test. + * g++.dg/cpp2a/lambda-this2.C: New test. + * g++.dg/cpp2a/lambda-this3.C: New test. + +2018-08-13 Marek Polacek + + PR c++/86915 + * g++.dg/diagnostic/auto1.C: New test. + +2018-08-12 Paul Thomas + + PR fortran/66679 + * gfortran.dg/transfer_class_3.f90: New test. + +2018-08-12 Paul Thomas + + PR fortran/86906 + * gfortran.dg/use_rename_9.f90: New test. + +2018-08-11 Jakub Jelinek + + PR tree-optimization/86835 + * gcc.dg/pr86835.c: New test. + +2018-08-10 Janus Weil + + PR fortran/57160 + * gfortran.dg/actual_pointer_function_1.f90: Fix invalid test case. + * gfortran.dg/inline_matmul_23.f90: Add option "-ffrontend-optimize". + * gfortran.dg/short_circuiting_2.f90: New test case. + * gfortran.dg/short_circuiting_3.f90: New test case. + +2018-08-10 Alexander Monakov + + PR target/82418 + * gcc.target/i386/pr82418.c: New test. + +2018-08-10 Martin Liska + + PR target/83610 + * gcc.dg/predict-17.c: New test. + * gcc.dg/predict-18.c: New test. + * gcc.dg/predict-19.c: New test. + +2018-08-10 Martin Liska + + PR tree-optimization/85799 + * gcc.dg/pr85799.c: New test. + +2018-08-09 Jeff Law + + PR middle-end/86897 + * gcc.dg/uninit-suppress_2.c: Disable DOM. + +2018-08-09 Richard Sandiford + + * gcc.target/aarch64/sve/reduc_8.c: New test. + +2018-08-09 David Malcolm + + PR other/84889 + * gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c: New + test. + * gcc.dg/plugin/diagnostic-test-show-locus-color-line-numbers.c: + New test. + * gcc.dg/plugin/plugin.exp (plugin_test_list): Add the new tests. + * lib/prune.exp: Add -fno-diagnostics-show-line-numbers to + TEST_ALWAYS_FLAGS. + +2018-08-09 Richard Sandiford + + PR tree-optimization/86858 + * gcc.dg/vect/pr86858.c: New test. + +2018-08-09 Richard Sandiford + + PR tree-optimization/86871 + * gcc.dg/vect/pr86871.c: New test. + +2018-08-09 Paolo Carlini + + * g++.old-deja/g++.mike/p784.C: Add -fpermissive. + +2018-08-09 Andreas Krebbel + + * gcc.target/s390/target-attribute/tattr-arch-tune-1.c: Decrement + arch and tune numbers by 2. + * gcc.target/s390/target-attribute/tattr-arch-tune-2.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-1.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-10.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-11.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-12.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-13.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-14.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-15.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-16.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-17.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-18.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-19.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-2.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-20.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-21.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-22.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-23.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-24.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-25.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-26.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-27.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-28.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-29.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-3.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-30.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-31.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-32.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-4.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-5.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-6.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-7.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-8.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m31-9.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-1.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-10.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-11.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-12.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-13.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-14.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-15.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-16.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-17.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-18.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-19.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-2.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-20.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-21.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-22.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-23.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-24.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-25.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-26.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-27.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-28.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-29.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-3.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-30.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-31.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-32.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-33.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-4.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-5.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-6.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-7.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-8.c: Likewise. + * gcc.target/s390/target-attribute/tattr-m64-9.c: Likewise. + +2018-08-09 Andreas Krebbel + + PR target/84332 + * gcc.target/s390/pr84332.c: New testcase. + +2018-08-08 Andreas Schwab + + PR target/46179 + * gcc.target/m68k/tls-dimode.c: New file. + +2018-08-08 Nathan Sidwell + + * c-c++-common/inc-from-1a.h, c-c++-common/inc-from-1b.h, + c-c++-common/inc-from-1.c: New + +2018-08-08 Andreas Krebbel + + PR target/85295 + * gcc.target/s390/TI-constants-lra.c: New testcase. + * gcc.target/s390/TI-constants-nolra.c: New testcase. + +2018-08-08 Ilya Leoshkevich + + * gcc.target/s390/hotpatch-8.c: Remove. + * gcc.target/s390/hotpatch-9.c: Remove. + * gcc.target/s390/mnop-mcount-m31-fpic.c: Remove. + * gcc.target/s390/mnop-mcount-m31.c: Remove. + +2018-08-08 Jakub Jelinek + + P0595R1 - is_constant_evaluated + * g++.dg/cpp2a/is-constant-evaluated1.C: New test. + + PR c++/86836 + * g++.dg/cpp1z/decomp46.C: New test. + + PR c++/86738 + * g++.dg/opt/pr86738.C: New test. + +2018-08-07 Richard Sandiford + + PR target/86838 + * gcc.target/aarch64/frecpe_1.c: New test. + * gcc.target/aarch64/frecpe_2.c: Likewise. + +2018-08-07 Paolo Carlini + + PR c++/59480, DR 136 + * g++.dg/other/friend8.C: New. + * g++.dg/other/friend9.C: Likewise. + * g++.dg/other/friend10.C: Likewise. + * g++.dg/other/friend11.C: Likewise. + * g++.dg/other/friend12.C: Likewise. + * g++.dg/other/friend13.C: Likewise. + * g++.dg/other/friend14.C: Likewise. + * g++.dg/other/friend15.C: Likewise. + * g++.dg/parse/defarg4.C: Compile with -fpermissive -w. + * g++.dg/parse/defarg8.C: Likewise. + +2018-08-07 Martin Liska + + PR middle-end/83023 + * gcc.dg/predict-16.c: New test. + * g++.dg/predict-1.C: New test. + +2018-08-07 Steve Ellcey + Rainer Orth + + PR tree-optimization/80925 + * gcc.dg/vect/no-section-anchors-vect-69.c: Expect 3 loops + vectorized on !vect_hw_misalign targets. + +2018-08-06 Marek Polacek + + PR c++/86767 + * g++.dg/cpp1y/constexpr-86767.C: New test. + +2018-08-06 Uros Bizjak + + * g++.dg/torture/pr86763.C (dg-additional-options): Add -lrt + for target *-*-linux-gnu. + +2018-08-06 Alan Hayward + + * gcc.target/aarch64/sve/tls_preserve_1.c: New test. + * gcc.target/aarch64/sve/tls_preserve_2.c: New test. + * gcc.target/aarch64/sve/tls_preserve_3.c: New test. + +2018-08-06 Andreas Krebbel + + * gcc.target/s390/nomemloopunroll-1.c: New test. + +2018-08-05 H.J. Lu + + PR target/86386 + * gcc.target/i386/pr86386.c: New file. + +2018-08-04 Tom de Vries + + * lib/gcc-gdb-test.exp: Use absolute line number in pass/fail line. + +2018-08-04 Andreas Schwab + + * gcc.dg/guality/const-volatile.c: Remove duplicate test + "type:cvip". + +2018-08-04 Janus Weil + + PR fortran/45521 + * gfortran.dg/interface_assignment_6.f90: New test case. + +2018-08-04 Uros Bizjak + + PR testsuite/86153 + * g++.dg/pr83239.C (dg-options): Add -finline-limit=500. + +2018-08-03 David Malcolm + Jonathan Wakely + + PR c++/85523 + * g++.dg/pr85523.C: New test. + +2018-08-03 Bogdan Harjoc + + PR c/86690 + * gcc.dg/union-duplicate-field.c: New test. + +2018-08-03 Jason Merrill + + PR c++/86706 + * g++.dg/template/pr86706.C: New test. + +2018-08-03 Richard Sandiford + + * gcc.dg/vect/bb-slp-over-widen-1.c: Expect AVG_FLOOR to be used + on vect_avg_qi targets. + * gcc.dg/vect/bb-slp-over-widen-2.c: Likewise. + * gcc.dg/vect/bb-slp-pow-1.c: New test. + * gcc.dg/vect/vect-avg-15.c: Likewise. + +2018-08-03 Martin Liska + + * gcc.dg/predict-1.c: Adjust scanned pattern to cover 2 digits. + * gcc.dg/predict-13.c: Likewise. + * gcc.dg/predict-3.c: Likewise. + * gcc.dg/predict-4.c: Likewise. + * gcc.dg/predict-5.c: Likewise. + * gcc.dg/predict-6.c: Likewise. + * gcc.dg/predict-9.c: Likewise. + * gfortran.dg/predict-1.f90: Likewise. + +2018-08-02 Richard Biener + + PR c++/86763 + * g++.dg/torture/pr86763.C: New testcase. + +2018-08-02 Richard Biener + + PR tree-optimization/86816 + * g++.dg/torture/pr86816.C: New testcase. + +2018-08-02 Richard Sandiford + + * gcc.target/aarch64/f16_mov_immediate_1.c: Expect fmov immediate + to be used. + * gcc.target/aarch64/f16_mov_immediate_2.c: Likewise. + * gcc.target/aarch64/f16_mov_immediate_3.c: Force +nofp16. + * gcc.target/aarch64/sve/single_1.c: Except fmov immediate to be used + for .h. + * gcc.target/aarch64/sve/single_2.c: Likewise. + * gcc.target/aarch64/sve/single_3.c: Likewise. + * gcc.target/aarch64/sve/single_4.c: Likewise. + +2018-08-02 Jackson Woodruff + + PR target/86014 + * gcc.target/aarch64/ldp_stp_13.c: New test. + +2018-08-01 Martin Sebor + + PR tree-optimization/86650 + * gcc.dg/format/gcc_diag-10.c: Adjust. + +2018-08-01 Richard Sandiford + + * gcc.target/aarch64/sve/var_stride_2.c: Update expected form + of range check. + * gcc.target/aarch64/sve/var_stride_4.c: Likewise. + +2018-08-01 Richard Sandiford + + PR target/86753 + * gcc.target/aarch64/sve/vcond_4.c: XFAIL positive tests. + * gcc.target/aarch64/sve/vcond_5.c: Likewise. + +2018-08-01 Richard Sandiford + + * gcc.dg/pointer-range-check-1.c: New test. + * gcc.dg/pointer-range-check-2.c: Likewise. + +2018-08-01 Richard Sandiford + + PR tree-optimization/86749 + * gcc.dg/vect/pr86749.c: New test. + +2018-08-01 Paolo Carlini + + PR c++/86661 + * g++.dg/lookup/name-clash12.C: New. + +2018-08-01 Richard Biener + + * gcc.dg/tree-ssa/ssa-fre-68.c: New testcase. + +2018-08-01 Uros Bizjak + + * gcc.dg/plugin/poly-int-07_plugin.c (dg-options): Use -O0. + +2018-08-01 Uros Bizjak + + * gcc.dg/tree-ssa/pr84512.c: Xfail on alpha*-*-*. + +2018-08-01 Martin Liska + + * gcc.dg/tree-prof/stringop-1.c: Adjust scanned pattern. + * gcc.dg/tree-prof/stringop-2.c: Likewise. + * gcc.dg/tree-prof/val-prof-1.c: Likewise. + * gcc.dg/tree-prof/val-prof-2.c: Likewise. + * gcc.dg/tree-prof/val-prof-3.c: Likewise. + * gcc.dg/tree-prof/val-prof-4.c: Likewise. + * gcc.dg/tree-prof/val-prof-5.c: Likewise. + * gcc.dg/tree-prof/val-prof-7.c: Likewise. + +2018-08-01 Martin Liska + + PR value-prof/35543 + * gcc.dg/tree-prof/val-prof-7.c: Add __builtin_memmove. + +2018-08-01 Sam Tebbs + + * gcc.target/aarch64/extract_zero_extend.c: New file. + +2018-08-01 Jakub Jelinek + + PR c/85704 + * gcc.c-torture/compile/pr85704.c: New test. + +2018-07-31 Alexandre Oliva + Olivier Hainque + + * gnat.dg/dinst.adb: New. + * gnat.dg/dinst_pkg.ads, gnat.dg/dinst_pkg.adb: New. + +2018-07-31 David Malcolm + + * gcc.dg/format/gcc_diag-1.c (foo): Update the %v tests for + tdiag and cxxdiag. + * gcc.dg/format/gcc_diag-10.c (test_diag): Update tests of %G + and %K. + +2018-07-31 Richard Earnshaw + + * c-c++-common/spec-barrier-1.c: New test. + * c-c++-common/spec-barrier-2.c: New test. + * gcc.dg/spec-barrier-3.c: New test. + +2018-07-31 Martin Sebor + + PR tree-optimization/86741 + * gcc.dg/Warray-bounds-33.c: New test. + +2018-07-31 Andreas Krebbel + + * gcc.target/s390/memset-1.c: Improve testcase. + +2018-07-31 Tom de Vries + + PR debug/86687 + * g++.dg/guality/pr86687.C: New test. + +2018-07-31 Jakub Jelinek + + P1008R1 - prohibit aggregates with user-declared constructors + * g++.dg/ext/is_aggregate.C: Add tests with deleted or defaulted ctor. + * g++.dg/cpp0x/defaulted1.C (main): Ifdef out for C++2a B b = {1};. + * g++.dg/cpp0x/deleted2.C: Expect error for C++2a. + * g++.dg/cpp2a/aggr1.C: New test. + * g++.dg/cpp2a/aggr2.C: New test. + +2018-07-31 Segher Boessenkool + + PR target/86640 + * gcc.target/arm/pr86640.c: New testcase. + +2018-07-31 Martin Liska + + PR gcov-profile/85338 + PR gcov-profile/85350 + PR gcov-profile/85372 + * gcc.misc-tests/gcov-pr85338.c: New test. + * gcc.misc-tests/gcov-pr85350.c: New test. + * gcc.misc-tests/gcov-pr85372.c: New test. + +2018-07-31 Martin Liska + + PR gcov-profile/83813 + PR gcov-profile/84758 + PR gcov-profile/85217 + PR gcov-profile/85332 + * gcc.misc-tests/gcov-pr83813.c: New test. + * gcc.misc-tests/gcov-pr84758.c: New test. + * gcc.misc-tests/gcov-pr85217.c: New test. + * gcc.misc-tests/gcov-pr85332.c: New test. + +2018-07-31 Ed Schonberg + + * gnat.dg/prot5.adb, gnat.dg/prot5_pkg.adb, + gnat.dg/prot5_pkg.ads: New testcase. + +2018-07-31 Justin Squirek + + * gnat.dg/addr11.adb: New testcase. + +2018-07-31 Hristian Kirtchev + + * gnat.dg/global.adb, gnat.dg/global.ads: New testcase. + +2018-07-31 Gary Dismukes + + * gnat.dg/block_ext_return_assert_failure.adb: New testcase. + +2018-07-31 Ed Schonberg + + * gnat.dg/iter3.adb: New testcase. + +2018-07-31 Andre Vieira + + Revert 'AsyncI/O patch committed' + 2018-07-25 Nicolas Koenig + Thomas Koenig + + PR fortran/25829 + * gfortran.dg/f2003_inquire_1.f03: Add write statement. + * gfortran.dg/f2003_io_1.f03: Add wait statement. + +2018-07-30 Segher Boessenkool + + PR rtl-optimization/85160 + * gcc.target/powerpc/combine-2-2.c: New testcase. + +2018-07-27 Martin Sebor + + PR tree-optimization/86696 + * g++.dg/pr86696.C: New test. + +2018-07-27 David Malcolm + + PR tree-optimization/86636 + * gcc.c-torture/compile/pr86636.c: Add dg-do compile. + Add dg-require-effective-target pthread. + +2018-07-26 Qing Zhao + + * gcc.dg/strcmpopt_5.c: Change to O2 to enable the transformation. + * gcc.dg/strcmpopt_6.c: Likewise. + +2018-07-26 Pat Haugen + + PR target/86612 + * gcc.target/powerpc/pr58673-2.c: Call strdup. + +2018-07-26 Martin Sebor + + PR tree-optimization/86043 + PR tree-optimization/86042 + * gcc/testsuite/gcc.dg/attr-nonstring-2.c: Xfail test cases due to + pr86688. + * gcc.dg/strlenopt-44.c: New test. + +2018-07-26 Martin Liska + + PR gcov-profile/86536 + * gcc.misc-tests/gcov-pr86536.c: New test. + +2018-07-25 Martin Sebor + + * gcc.c-torture/execute/builtins/strnlen.c: Remove DejaGnu directives + ignored by the test harness. + +2018-07-25 Nicolas Koenig + Thomas Koenig + + PR fortran/25829 + * gfortran.dg/f2003_inquire_1.f03: Add write statement. + * gfortran.dg/f2003_io_1.f03: Add wait statement. + +2018-07-25 Jakub Jelinek + + PR c++/85515 + * g++.dg/pr85515-2.C: Add expected dg-error. + * g++.dg/cpp0x/range-for36.C: New test. + +2018-07-25 Claudiu Zissulescu + + * gcc.target/arc/uncached-1.c: New test. + * gcc.target/arc/uncached-2.c: Likewise. + +2018-07-24 Martin Sebor + + PR tree-optimization/86622 + PR tree-optimization/86532 + * gcc.c-torture/execute/strlen-2.c: New test. + * gcc.c-torture/execute/strlen-3.c: New test. + * gcc.c-torture/execute/strlen-4.c: New test. + +2018-07-24 David Malcolm + + PR tree-optimization/86636 + * gcc.c-torture/compile/pr86636.c: New test. + +2018-07-24 Matthew Malcomson + + * gcc.target/aarch64/simd/vect_su_add_sub.c: New. + +2018-07-24 Jakub Jelinek + + PR middle-end/86627 + * gcc.target/i386/pr86627.c: New test. + + PR testsuite/86649 + * g++.dg/tree-ssa-/pr19476-1.C: Check dom2 dump instead of ccp1. + * g++.dg/tree-ssa-/pr19476-5.C: Likewise. + * g++.dg/tree-ssa-/pr19476-6.C: New test. + * g++.dg/tree-ssa-/pr19476-7.C: New test. + +2018-07-23 Carl Love + + PR 86591 + * gcc.target/powerpc/altivec-1-runnable.c: Move vector double tests to + file altivec-2-runnable.c. + * gcc.target/powerpc/altivec-2-runnable.c: Add vector double tests. + * gcc.target/powerpc/buitlins-1.c: Remove dg-final check for xxlor. + Update dg-final test for __divdi3 and __udivdi3 instructions. Update + comments for instruction generated by vec_mergeh, vec_perm, vec_round, + vec_cts, vec_ctu, vec_cpsgn tests. + +2018-07-23 Bernd Edlinger + + PR c/86617 + * gcc.dg/pr86617.c: New test. + +2018-07-23 Jakub Jelinek + + PR c++/86569 + * g++.dg/warn/Wnonnull-compare-9.C: New test. + +2018-07-20 Martin Sebor + + PR middle-end/82063 + * c-c++-common/pr68657-1.c: Adjust. + * c-c++-common/pr68657-2.c: Same. + * c-c++-common/pr68657-3.c: Same. + * c-c++-common/pr68833-1.c: Same. + * gcc.dg/Walloc-size-larger-than-16.c: Same. + * gcc.dg/Walloca-larger-than.c: New test. + * gcc.dg/Walloca-larger-than-2.c: New test. + * gcc.dg/Wframe-larger-than-2.c: New test. + * gcc.dg/Wlarger-than3.c: New test. + * gcc.dg/Wvla-larger-than-3.c: New test. + * gcc.dg/pr42611.c: Adjust. + * gnat.dg/frame_overflow.adb: Same. + +2018-07-20 Martin Sebor + + PR tree-optimization/86613 + PR tree-optimization/86611 + * c-c++-common/Warray-bounds-2.c: Undefine macros and + prune duplicate warnings. + * gcc.dg/Warray-bounds-31.c: Xfail test cases with + data-model-dependencies. + * gcc.dg/Warray-bounds-32.c: Ditto. + +2018-07-20 Richard Biener + + PR debug/86585 + * g++.dg/lto/pr86585_0.C: New testcase. + * g++.dg/lto/pr86585_1.C: Likewise. + +2018-07-19 Martin Sebor + + PR tree-optimization/83776 + PR tree-optimization/84047 + * gcc.dg/Warray-bounds-29.c: New test. + * gcc.dg/Warray-bounds-30.c: New test. + * gcc.dg/Warray-bounds-31.c: New test. + * gcc.dg/Warray-bounds-32.c: New test. + +2018-07-19 Michael Collison + Richard Henderson + + * gcc.target/aarch64/builtin_sadd_128.c: New testcase. + * gcc.target/aarch64/builtin_saddl.c: New testcase. + * gcc.target/aarch64/builtin_saddll.c: New testcase. + * gcc.target/aarch64/builtin_uadd_128.c: New testcase. + * gcc.target/aarch64/builtin_uaddl.c: New testcase. + * gcc.target/aarch64/builtin_uaddll.c: New testcase. + * gcc.target/aarch64/builtin_ssub_128.c: New testcase. + * gcc.target/aarch64/builtin_ssubl.c: New testcase. + * gcc.target/aarch64/builtin_ssubll.c: New testcase. + * gcc.target/aarch64/builtin_usub_128.c: New testcase. + * gcc.target/aarch64/builtin_usubl.c: New testcase. + * gcc.target/aarch64/builtin_usubll.c: New testcase. + +2018-07-19 Paolo Carlini + + Revert fix for c++/59480 (and testsuite followup) + + 2018-07-19 Paolo Carlini + + * g++.old-deja/g++.mike/p784.C: Add -fpermissive. + + 2019-07-18 Paolo Carlini + + PR c++/59480, DR 136 + * g++.dg/other/friend8.C: New. + * g++.dg/other/friend9.C: Likewise. + * g++.dg/other/friend10.C: Likewise. + * g++.dg/other/friend11.C: Likewise. + * g++.dg/other/friend12.C: Likewise. + * g++.dg/parse/defarg4.C: Compile with -fpermissive -w. + * g++.dg/parse/defarg8.C: Likewise. + +2018-07-19 Andre Vieira + + * gcc.target/aarch64/profile.c: New test. + +2018-07-19 Andre Vieira + + PR target/83009 + * gcc/target/aarch64/store_v2vec_lanes.c: Add extra tests. + +2018-07-19 H.J. Lu + + PR target/86560 + * gcc.target/i386/pr86560-4.c: New test. + * gcc.target/i386/pr86560-5.c: Likewise. + +2018-07-19 H.J. Lu + + PR target/86560 + * gcc.target/i386/pr86560-1.c: New test. + * gcc.target/i386/pr86560-2.c: Likewise. + * gcc.target/i386/pr86560-3.c: Likewise. + +2018-07-19 Kyrylo Tkachov + + * gfortran.dg/max_fmax_aarch64.f90: New test. + * gfortran.dg/min_fmin_aarch64.f90: Likewise. + * gfortran.dg/minmax_integer.f90: Likewise. + +2018-07-19 Paolo Carlini + + * g++.old-deja/g++.mike/p784.C: Add -fpermissive. + +2018-07-18 Kugan Vivekanandarajah + + PR middle-end/86544 + * g++.dg/tree-ssa/pr86544.C: New test. + +2018-07-18 Jakub Jelinek + + PR c++/86550 + * g++.dg/cpp0x/lambda/lambda-86550.C: New test. + +2018-07-18 Bernd Edlinger + + PR 69558 + * c-c++-common/cpp/diagnostic-pragma-2.c: New test. + * c-c++-common/pr69558.c: Remove xfail. + * gcc.dg/cpp/builtin-macro-1.c: Adjust test expectations. + * gcc.dg/pr61817-1.c: Likewise. + * gcc.dg/pr61817-2.c: Likewise. + * g++.dg/plugin/pragma_plugin.c: Warn at expansion_point_location. + +2018-07-18 Janus Weil + + PR fortran/85599 + * gfortran.dg/function_optimize_5.f90: Add option + '-faggressive-function-elimination' and update dg-warning clauses. + * gfortran.dg/short_circuiting.f90: New test. + +2018-07-18 Marek Polacek + + PR c++/86190 - bogus -Wsign-conversion warning + * g++.dg/warn/Wsign-conversion-3.C: New test. + * g++.dg/warn/Wsign-conversion-4.C: New test. + +2018-07-18 Paolo Carlini + + PR c++/59480, DR 136 + * g++.dg/other/friend8.C: New. + * g++.dg/other/friend9.C: Likewise. + * g++.dg/other/friend10.C: Likewise. + * g++.dg/other/friend11.C: Likewise. + * g++.dg/other/friend12.C: Likewise. + * g++.dg/parse/defarg4.C: Compile with -fpermissive -w. + * g++.dg/parse/defarg8.C: Likewise. + +2018-07-18 Paolo Carlini + + * g++.dg/ext/uow-3.C: Adjust. + * g++.dg/ext/uow-4.C: Likewise. + * g++.dg/lookup/name-clash11.C: Likewise. + * g++.dg/lookup/name-clash7.C: Likewise. + * g++.dg/lookup/redecl1.C: Likewise. + * g++.dg/warn/changes-meaning.C: Likewise. + * g++.old-deja/g++.jason/scoping8.C: Likewise. + * g++.old-deja/g++.law/nest1.C: Likewise. + +2018-07-18 Richard Biener + + PR debug/86523 + * g++.dg/lto/pr86523-3_0.C: New testcase. + +2018-07-17 Andreas Schwab + + * gcc.target/m68k/mulsi_highpart.c: New test. + +2018-07-17 Jakub Jelinek + + * gcc.dg/cpp/pr61854-c90.c (foo): Expect a note, rather than error. + * gcc.dg/cpp/pr61854-c94.c (foo): Likewise. + * gcc.dg/cpp/pr61854-4.c (foo): Likewise. + * gcc.dg/cpp/pr61854-8.c: New test. + +2018-07-17 David Edelsohn + + * gcc.target/powerpc/pr85456.c: Require longdouble128. + +2018-07-17 Fritz Reese + + PR fortran/83184 + * gfortran.dg/dec_structure_23.f90: Oops, "un-fix" error messages. + +2018-07-17 Will Schmidt + + * gcc.target/powerpc/fold-vec-unpack-char.c: New. + * gcc.target/powerpc/fold-vec-unpack-float.c: New. + * gcc.target/powerpc/fold-vec-unpack-int.c: New. + * gcc.target/powerpc/fold-vec-unpack-pixel.c: New. + * gcc.target/powerpc/fold-vec-unpack-short.c: New. + +2018-07-17 David Edelsohn + + * gcc.target/powerpc/pr57150.c: Require longdouble128. + * gcc.target/powerpc/pr79916.c: Require dfp. + +2018-07-17 Richard Biener + + PR lto/86456 + * g++.dg/debug/dwarf2/pr86456.C: New testcase. + +2018-07-17 Robin Dapp + + * gcc.target/s390/function-align1.c: New test. + * gcc.target/s390/function-align2.c: New test. + * gcc.target/s390/function-align3.c: New test. + +2018-07-17 Eric Botcazou + + * gnat.dg/discr55.adb: New test. + +2018-07-17 Rainer Orth + + * gcc.target/i386/vartrack-1.c (dg-options): Add + -fomit-frame-pointer. + +2018-07-17 Rainer Orth + + * g++.dg/lto/pr86523-1_0.C: Require fpic, shared support. + (dg-lto-options): Add -fPIC. + * g++.dg/lto/pr86523-2_0.C: Likewise. + +2018-07-17 Martin Liska + + * gcc.target/powerpc/loop_align.c: Update scanned pattern. + +2018-07-17 Ed Schonberg + + * gnat.dg/generic_call_cw.adb, gnat.dg/generic_call_iface.adb: New + testcase. + +2018-07-17 Eric Botcazou + + * gnat.dg/sso10.adb, gnat.dg/sso10_pkg.ads: New testcase. + +2018-07-17 Patrick Bernardi + + * gnat.dg/memorytest.adb: New testcase. + +2018-07-17 Hristian Kirtchev + + * gnat.dg/config_pragma1.adb, gnat.dg/config_pragma1_pkg.ads: + New testcase. + +2018-07-17 Ed Schonberg + + * gnat.dg/equal3.adb: New testcase. + +2018-07-17 Justin Squirek + + * gnat.dg/split_args.adb: New testcase. + +2018-07-17 Ed Schonberg + + * gnat.dg/discr54.adb, gnat.dg/discr54_pkg.ads: New testcase. + +2018-07-17 Hristian Kirtchev + + * gnat.dg/bip_case_expr.adb, gnat.dg/bip_case_expr_pkg.ads: + New testcase. + +2018-07-16 Carl Love + + PR target/86414 + Forgot the PR number on the commit log. + + 2018-07-16 Carl Love + + PR target/86414 + * gcc.target/powerpc/divkc3-2.c: Add dg-require-effective-target + longdouble128. + * gcc.target/powerpc/divkc3-3.c: Ditto. + * gcc.target/powerpc/mulkc3-2.c: Ditto. + * gcc.target/powerpc/mulkc3-3.c: Ditto. + * gcc.target/powerpc/fold-vec-mergehl-double.c: Update counts. + * gcc.target/powerpc/pr85456.c: Make check Linux and AIX specific. + +2018-07-16 Segher Boessenkool + + * gcc.target/powerpc/convert-fp-128.c: New testcase. + * gcc.target/powerpc/convert-fp-64.c: New testcase. + +2018-07-16 Segher Boessenkool + + * lib/target-supports.exp (check_effective_target_longdouble64, + check_effective_target_ppc_float128, + check_effective_target_ppc_float128_insns, + check_effective_target_powerpc_vsx): New. + +2018-07-16 Segher Boessenkool + + * lib/target-supports.exp (check_ppc_float128_hw_available): Fix + syntax error. + +2018-07-16 Jakub Jelinek + + PR tree-optimization/86526 + * gcc.c-torture/compile/pr86526.c: New test. + +2018-07-16 Carl Love + + * gcc.target/powerpc/divkc3-2.c: Add dg-require-effective-target + longdouble128. + * gcc.target/powerpc/divkc3-3.c: Ditto. + * gcc.target/powerpc/mulkc3-2.c: Ditto. + * gcc.target/powerpc/mulkc3-3.c: Ditto. + * gcc.target/powerpc/fold-vec-mergehl-double.c: Update counts. + * gcc.target/powerpc/pr85456.c: Make check Linux and AIX specific. + +2018-07-16 Fritz Reese + + PR fortran/83184 + * gfortran.dg/assumed_rank_14.f90: New testcase. + * gfortran.dg/assumed_rank_15.f90: New testcase. + * gfortran.dg/dec_structure_8.f90: Update error messages. + * gfortran.dg/dec_structure_23.f90: Update error messages. + +2018-07-16 Bernd Edlinger + + PR middle-end/86528 + * gcc.c-torture/execute/pr86528.c: New test. + * gcc.dg/Wrestrict-10.c (test_arr_strcat_2): Fix typo. + +2018-07-16 Paolo Carlini + + * g++.dg/template/spec40.C: New. + * g++.dg/parse/ptrmem8.C: Likewise. + +2018-07-16 Ilya Leoshkevich + + * gcc.target/s390/mnop-mcount-m31-fpic.c: New testcase. + * gcc.target/s390/mnop-mcount-m31-mzarch.c: New testcase. + * gcc.target/s390/mnop-mcount-m31.c: New testcase. + * gcc.target/s390/mnop-mcount-m64-mfentry.c: New testcase. + * gcc.target/s390/mnop-mcount-m64.c: New testcase. + +2018-07-16 Ilya Leoshkevich + + * gcc.target/s390/mrecord-mcount.c: New testcase. + +2018-07-16 Ilya Leoshkevich + + * gcc.target/s390/mfentry-m64.c: New testcase. + +2018-07-16 Hristian Kirtchev + + * gnat.dg/abstract_state1.adb, gnat.dg/abstract_state1.ads: New + testcase. + +2018-07-16 Hristian Kirtchev + + * gnat.dg/validity_check3.adb, gnat.dg/validity_check3.ads: New + testcase. + +2018-07-16 Hristian Kirtchev + + * gnat.dg/wide_wide_value1.adb: New testcase. + +2018-07-16 Javier Miranda + + * gnat.dg/bit_order1.adb: New testcase. + +2018-07-16 Javier Miranda + + * gnat.dg/iter2.adb, gnat.dg/iter2.ads: New testcase. + +2018-07-16 Richard Biener + + PR lto/86523 + * g++.dg/lto/pr86523-1_0.C: New testcase. + * g++.dg/lto/pr86523-2_0.C: Likewise. + +2018-07-16 Martin Liska + + PR ipa/86529 + * g++.dg/ipa/pr86529.C: New test. + +2018-07-16 Tom de Vries + + PR debug/86455 + * gcc.target/i386/vartrack-1.c: New test. + +2018-07-16 Eric Botcazou + + * gnat.dg/opt73.adb: New test. + +2018-07-16 Jakub Jelinek + + PR c++/3698 + PR c++/86208 + * g++.dg/opt/pr3698.C: New test. + +2018-07-16 Richard Biener + + PR ipa/86389 + * gcc.dg/torture/pr86389.c: Require trampolines. + +2018-07-15 Tom de Vries + + * lib/gcc-gdb-test.exp (guality_minimal_options): New proc. + * lib/gfortran-dg.exp (gfortran-dg-runtest): Don't call torture-init if + already called. + * g++.dg/guality/guality.exp: Ensure Og is part of torture options. + * gcc.dg/guality/guality.exp: Same. + * gfortran.dg/guality/guality.exp: Same. + +2018-07-13 H.J. Lu + Sunil K Pandey + + PR target/84413 + * gcc.target/i386/pr84413-1.c: New test. + * gcc.target/i386/pr84413-2.c: Likewise. + * gcc.target/i386/pr84413-3.c: Likewise. + +2018-07-13 Bill Schmidt + Steve Munroe + + * gcc.target/powerpc/sse2-pand-1.c: New file. + * gcc.target/powerpc/sse2-pandn-1.c: Likewise. + * gcc.target/powerpc/sse2-por-1.c: Likewise. + * gcc.target/powerpc/sse2-pxor-1.c: Likewise. + +2018-07-13 Nathan Sidwell + + PR c++/86374 + * g++.dg/pr86374.C: New. + +2018-07-13 Qing Zhao + + PR middle-end/78809 + * gcc.dg/strcmpopt_5.c: New test. + * gcc.dg/strcmpopt_6.c: New test. + +2018-07-13 Richard Biener + + PR middle-end/85974 + * gcc.c-torture/compile/930326-1.c: Adjust to cover widening. + +2018-07-13 Tom de Vries + + * gcc.dg/guality/clztest.c: Add -fno-ipa-icf in dg-options. + * gcc.dg/guality/ctztest.c: Same. + * gcc.dg/guality/sra-1.c: Same. + +2018-07-13 Tom de Vries + + * gcc.dg/vla-1.c: Update. + +2018-07-13 Tom de Vries + + * gcc.src/maintainers.exp: New file. + +2018-07-13 Kugan Vivekanandarajah + + PR middle-end/86489 + * gcc.dg/pr86489.c: New test. + +2018-07-12 Martin Sebor + + PR testsuite/86510 + g++.dg/warn/pr86453.C: Adjust. + +2018-07-12 Jim Wilson + + * gnat.dg/warn5.adb: Expect warning for riscv*-*-*. + +2018-07-12 Kito Cheng + + * gcc.target/riscv/interrupt-conflict-mode.c: New. + +2018-07-12 Jakub Jelinek + + * c-c++-common/gomp/declare-target-3.c: New test. + * g++.dg/gomp/declare-target-2.C: New test. + +2018-07-12 Martin Sebor + + PR c/86453 + * c-c++-common/Wattributes.c: Adjust. + * gcc.dg/Wattributes-10.c: New test. + * g++.dg/Wattributes-3.C: Adjust. + * gcc.dg/Wattributes-6.c: Adjust. + * gcc.dg/pr18079.c: Adjust. + * gcc.dg/torture/pr42363.c: Adjust. + +2018-07-12 Julia Koval + + * gcc.target/i386/avx512vl-vpclmulqdq-2.c: Remove 128bit + version. + +2018-07-12 Richard Sandiford + + * gcc.dg/vect/vect-cond-arith-6.c: New test. + * gcc.target/aarch64/sve/cond_arith_4.c: Likewise. + * gcc.target/aarch64/sve/cond_arith_4_run.c: Likewise. + * gcc.target/aarch64/sve/cond_arith_5.c: Likewise. + * gcc.target/aarch64/sve/cond_arith_5_run.c: Likewise. + * gcc.target/aarch64/sve/slp_14.c: Likewise. + * gcc.target/aarch64/sve/slp_14_run.c: Likewise. + +2018-07-12 Richard Sandiford + + * gcc.dg/vect/vect-cond-arith-4.c: New test. + * gcc.dg/vect/vect-cond-arith-5.c: Likewise. + * gcc.target/aarch64/sve/cond_arith_1.c: Likewise. + * gcc.target/aarch64/sve/cond_arith_1_run.c: Likewise. + * gcc.target/aarch64/sve/cond_arith_2.c: Likewise. + * gcc.target/aarch64/sve/cond_arith_2_run.c: Likewise. + * gcc.target/aarch64/sve/cond_arith_3.c: Likewise. + * gcc.target/aarch64/sve/cond_arith_3_run.c: Likewise. + +2018-07-12 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.dg/vect/vect-fma-2.c: New test. + * gcc.target/aarch64/sve/reduc_4.c: Likewise. + * gcc.target/aarch64/sve/reduc_6.c: Likewise. + * gcc.target/aarch64/sve/reduc_7.c: Likewise. + +2018-07-12 Richard Sandiford + + * gcc.dg/vect/vect-cond-arith-3.c: New test. + * gcc.target/aarch64/sve/vcond_13.c: Likewise. + * gcc.target/aarch64/sve/vcond_13_run.c: Likewise. + * gcc.target/aarch64/sve/vcond_14.c: Likewise. + * gcc.target/aarch64/sve/vcond_14_run.c: Likewise. + * gcc.target/aarch64/sve/vcond_15.c: Likewise. + * gcc.target/aarch64/sve/vcond_15_run.c: Likewise. + * gcc.target/aarch64/sve/vcond_16.c: Likewise. + * gcc.target/aarch64/sve/vcond_16_run.c: Likewise. + +2018-07-12 Richard Sandiford + + * gcc.dg/vect/vect-cond-arith-2.c: New test. + * gcc.target/aarch64/sve/loop_add_6.c: Likewise. + +2018-07-12 Richard Biener + + PR target/84829 + * gcc.target/i386/pr84829.c: New testcase. + +2018-07-12 Jakub Jelinek + + * gcc.dg/torture/20180712-1.c: New test. + + PR tree-optimization/86492 + * gcc.c-torture/execute/pr86492.c: New test. + +2018-07-12 Richard Biener + + PR c/86453 + * g++.dg/warn/pr86453.C: New testcase. + +2018-07-12 Richard Biener + + PR middle-end/86479 + * gcc.dg/graphite/pr86479.c: New testcase. + +2018-07-11 Jakub Jelinek + + * gcc.target/i386/avx512bw-vpcmpb-2.c (CMP): Use SIZE macro instead + of hardcoding size. Cast (rel) to MASK_TYPE. + * gcc.target/i386/avx512bw-vpcmpub-2.c (CMP): Likewise. + * gcc.target/i386/avx512f-vinserti32x4-3.c: New test. + * gcc.target/i386/avx512f-vinsertf32x4-3.c: New test. + * gcc.target/i386/avx512vl-vpcmpnequb-2.c: New test. + * gcc.target/i386/avx512vl-vpcmpgeub-2.c: New test. + * gcc.target/i386/avx512vl-vpcmpleb-2.c: New test. + * gcc.target/i386/avx512vl-vpcmpgeb-2.c: New test. + * gcc.target/i386/avx512vl-vpcmpltb-2.c: New test. + * gcc.target/i386/avx512vl-vpcmpltub-2.c: New test. + * gcc.target/i386/avx512vl-vpcmpleub-2.c: New test. + * gcc.target/i386/avx512vl-vpcmpneqb-2.c: New test. + * gcc.target/i386/avx512vl-vpcmpnequw-2.c: New test. + * gcc.target/i386/avx512vl-vpcmpgeuw-2.c: New test. + * gcc.target/i386/avx512vl-vpcmplew-2.c: New test. + * gcc.target/i386/avx512vl-vpcmpgew-2.c: New test. + * gcc.target/i386/avx512vl-vpcmpltw-2.c: New test. + * gcc.target/i386/avx512vl-vpcmpltuw-2.c: New test. + * gcc.target/i386/avx512vl-vpcmpleuw-2.c: New test. + * gcc.target/i386/avx512vl-vpcmpneqw-2.c: New test. + +2018-07-11 Grazvydas Ignotas + + * gcc.target/i386/avx512bw-vpcmpb-2.c (SIZE): Define to + (AVX512F_LEN / 8) instead of (AVX512F_LEN / 16). + * gcc.target/i386/avx512bw-vpcmpub-2.c (SIZE): Likewise. + +2018-07-10 Mark Wielaard + + PR debug/86459 + * gcc.dg/pr86459.c: New test. + +2018-07-10 Martin Sebor + + PR testsuite/86461 + * gcc.c-torture/execute/builtins/strlen-3.c: Adjust. + +2018-07-10 Martin Liska + + PR testsuite/86445 + * gcc.dg/pr84100.c: Change it back to dg-bogus. + +2018-07-10 Jakub Jelinek + + PR sanitizer/86406 + * g++.dg/ubsan/pr86406.C: New test. + + PR fortran/86421 + * gfortran.dg/vect/pr86421.f90: New test. + +2018-07-09 Martin Sebor + + PR tree-optimization/86415 + * gcc.dg/strlenopt-53.c: New test. + +2018-07-09 Martin Sebor + + PR middle-end/77357 + * gcc.dg/strlenopt-49.c: New test. + * gcc.dg/strlenopt-50.c: New test. + * gcc.dg/strlenopt-51.c: New test. + * gcc.dg/strlenopt-52.c: New test. + * gcc.c-torture/execute/builtins/strlen-3.c: Adjust. + +2018-07-09 Jakub Jelinek + + PR c/86420 + * gcc.dg/nextafter-1.c (TEST): Adjust the tests that expect denormals + to be returned and when first argument is not 0, so that they don't do + anything for NEED_EXC or NEED_ERRNO. + +2018-07-09 Tom de Vries + + * gcc.dg/guality/asm-1.c: Use relative line numbers where obvious. + * gcc.dg/guality/bswaptest.c: Same. + * gcc.dg/guality/clztest.c: Same. + * gcc.dg/guality/csttest.c: Same. + * gcc.dg/guality/ctztest.c: Same. + * gcc.dg/guality/drap.c: Same. + * gcc.dg/guality/nrv-1.c: Same. + * gcc.dg/guality/pr41353-1.c: Same. + * gcc.dg/guality/pr41353-2.c: Same. + * gcc.dg/guality/pr41404-1.c: Same. + * gcc.dg/guality/pr43051-1.c: Same. + * gcc.dg/guality/pr43077-1.c: Same. + * gcc.dg/guality/pr43177.c: Same. + * gcc.dg/guality/pr43329-1.c: Same. + * gcc.dg/guality/pr43479.c: Same. + * gcc.dg/guality/pr43593.c: Same. + * gcc.dg/guality/pr45003-1.c: Same. + * gcc.dg/guality/pr45003-2.c: Same. + * gcc.dg/guality/pr45003-3.c: Same. + * gcc.dg/guality/pr48437.c: Same. + * gcc.dg/guality/pr48466.c: Same. + * gcc.dg/guality/pr49888.c: Same. + * gcc.dg/guality/pr54200.c: Same. + * gcc.dg/guality/pr54519-1.c: Same. + * gcc.dg/guality/pr54519-2.c: Same. + * gcc.dg/guality/pr54519-3.c: Same. + * gcc.dg/guality/pr54519-4.c: Same. + * gcc.dg/guality/pr54519-5.c: Same. + * gcc.dg/guality/pr54519-6.c: Same. + * gcc.dg/guality/pr54551.c: Same. + * gcc.dg/guality/pr54693-2.c: Same. + * gcc.dg/guality/pr54693.c: Same. + * gcc.dg/guality/pr54796.c: Same. + * gcc.dg/guality/pr54970.c: Same. + * gcc.dg/guality/pr67192.c: Same. + * gcc.dg/guality/pr69947.c: Same. + * gcc.dg/guality/pr78726.c: Same. + * gcc.dg/guality/rotatetest.c: Same. + * gcc.dg/guality/sra-1.c: Same. + * gcc.dg/guality/vla-2.c: Same. + +2018-07-09 Paolo Carlini + + * g++.dg/diagnostic/long-short.C: New. + * g++.dg/diagnostic/signed-unsigned.C: Likewise. + * g++.dg/diagnostic/virtual-friend.C: Likewise. + * g++.old-deja/g++.brendan/crash11.C: Adjust. + +2018-07-09 Tom de Vries + + * gcc.dg/vla-1.c: New test. + +2018-07-07 Tom de Vries + + * gcc.misc-tests/options.exp (check_for_all_options): Clean up dump + files. + (get_dump_flags): New proc. + (toplevel): Test all dump flags. + +2018-07-07 Eric Botcazou + + * gnat.dg/stack_usage6.adb: New test. + * gnat.dg/stack_usage6_pkg.ads: New helper. + +2018-07-07 Eric Botcazou + + * gnat.dg/pure_function3a.adb: New test. + * gnat.dg/pure_function3b.adb: Likewise. + * gnat.dg/pure_function3c.adb: Likewise. + * gnat.dg/pure_function3_pkg.ads: New helper. + +2018-07-07 Jakub Jelinek + + PR target/84711 + * gcc.dg/vect/pr84711.c: Remove unnecessary sse + dg-require-effective-target. Add -msse not just on i386-*, but + on all i?86-* and x86_64-*. + +2018-07-06 Kugan Vivekanandarajah + + * gcc.dg/tree-ssa/phi-opt-16.c: New test. + * gcc.dg/tree-ssa/phi-opt-17.c: New test. + * gcc.dg/tree-ssa/phi-opt-18.c: New test. + * gcc.dg/tree-ssa/phi-opt-19.c: New test. + * gcc.dg/tree-ssa/popcount3.c: New test. + +2018-07-06 Kugan Vivekanandarajah + + * gcc.dg/tree-ssa/pr64183.c: Disable final value replacement + to preserve the test. + * gcc.target/i386/pr85073.c: Likewise. + +2018-07-06 Jakub Jelinek + + PR tree-optimization/86401 + * gcc.dg/tree-ssa/pr86401-1.c: New test. + * gcc.dg/tree-ssa/pr86401-2.c: New test. + * c-c++-common/rotate-9.c: New test. + +2018-07-06 Peter Bergner + + PR target/86324 + gcc.target/powerpc/pr86324-1.c: New test. + gcc.target/powerpc/pr86324-2.c: Likewise. + +2018-07-06 Tamar Christina + + PR target/84711 + * gcc.dg/vect/pr84711.c: Add -msse for i686 targets. + +2018-07-06 Tamar Christina + + * gcc.target/aarch64/struct_cpy.c: Remove ;. + +2018-07-05 Jeff Law + + * gcc.dg/tree-ssa/asm-2.c (REGISTER): Override for v850 too. + +2018-07-05 Paul Thomas + + PR fortran/86408 + * gfortran.dg/deferred_character_20.f90: New test. + +2018-07-05 Fritz Reese + + PR fortran/83183 + PR fortran/86325 + * gfortran.dg/init_flag_18.f90: New testcase. + * gfortran.dg/init_flag_19.f03: New testcase. + +2018-07-05 Carl Love + * gcc.target/altivec-1-runnable.c: New test file. + * gcc.target/altivec-2-runnable.c: New test file. + * gcc.target/vsx-7.c (main2): Change expected expected instruction + for tests. + +2018-07-05 Martin Sebor + + PR c++/86400 + * gcc.dg/strlenopt-47.c: New test. + * gcc.dg/strlenopt-48.c: New test. + +2018-07-05 Tamar Christina + + PR target/84711 + * gcc.target/arm/big-endian-subreg.c: New. + +2018-07-05 Tamar Christina + + PR target/84711 + * gcc.dg/vect/pr84711.c: New. + +2018-07-05 Tamar Christina + + * gcc.target/aarch64/struct_cpy.c: New. + +2018-07-05 Christophe Lyon + + * c-c++-common/unroll-1.c: Remove 'note:' in matching string. + * c-c++-common/unroll-2.c: Likewise. + * g++.dg/cdce3.C: Likewise. + * g++.dg/ext/unroll-1.C: Likewise. + * g++.dg/ext/unroll-2.C: Likewise. + * g++.dg/ext/unroll-3.C: Likewise. + * gcc.dg/cdce1.c: Likewise. + * gcc.dg/cdce2.c: Likewise. + * gcc.dg/gomp/pr68128-1.c: Likewise. + * gcc.dg/vect/pr46032.c: Likewise. + * gcc.dg/vect/vect-cond-10.c: Likewise. + * gcc.dg/vect/vect-cond-8.c: Likewise. + * gcc.dg/vect/vect-cond-9.c: Likewise. + * gcc.dg/vect/vect-mask-load-1.c: Likewise. + * gcc.dg/vect/vect-mask-loadstore-1.c: Likewise. + * gcc.target/i386/avx-cvt-2.c: Likewise. + * gcc.target/i386/avx-cvt-3.c: Likewise. + * gcc.target/i386/avx2-cvt-2.c: Likewise. + * gcc.target/i386/avx2-gather-2.c: Likewise. + * gcc.target/i386/avx2-gather-6.c: Likewise. + * gcc.target/i386/avx512f-gather-2.c: Likewise. + * gcc.target/i386/sse2-cvt-2.c: Likewise. + * gfortran.dg/directive_unroll_1.f90: Likewise. + * gfortran.dg/directive_unroll_2.f90: Likewise. + * gnat.dg/unroll2.adb: Likewise. + * gnat.dg/unroll3.adb: Likewise. + +2018-07-05 Tom de Vries + + * lib/gcc-dg.exp (dg-final): Simplify tcl code. + +2018-07-04 Martin Sebor + + PR tree-optimization/86274 + * gcc.dg/tree-ssa/builtin-sprintf-9.c: Fix typo. + +2018-07-04 Jerry DeLisle + + PR fortran/82009 + * gfortran.dg/block_16.f08. New test. + +2018-07-04 Aldy Hernandez + + * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Adjust test because aarch64 + has a slightly different IL that provides more threading + opportunities. + +2018-07-04 Martin Liska + + PR middle-end/66240 + PR target/45996 + PR c/84100 + * gcc.dg/pr84100.c (foo): + * gcc.target/i386/falign-functions-2.c: New test. + * gcc.target/i386/falign-functions.c: New test. + +2018-07-04 Martin Liska + + * gcc.dg/pr47793.c: Remove. + +2018-07-04 Richard Sandiford + + * gcc.dg/vect/bb-slp-over-widen-1.c: Fix name of dump file for + final scan test. + * gcc.dg/vect/bb-slp-over-widen-2.c: Likewise. + +2018-07-03 H.J. Lu + + PR target/85620 + * gcc.target/i386/pr85620-1.c: New test. + * gcc.target/i386/pr85620-2.c: Likewise. + * gcc.target/i386/pr85620-3.c: Likewise. + * gcc.target/i386/pr85620-4.c: Likewise. + +2018-07-03 Martin Sebor + + PR tree-optimization/86274 + * gcc.dg/tree-ssa/builtin-sprintf-9.c: New test. + * gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Adjust. + * gcc.dg/tree-ssa/builtin-sprintf-warn-10.c: Same. + * gcc.dg/tree-ssa/builtin-sprintf-warn-15.c: Same. + * gcc.dg/tree-ssa/builtin-sprintf-warn-7.c: Same. + * gcc.dg/tree-ssa/builtin-sprintf.c: Same. + * gcc.dg/tree-ssa/pr83198.c: Same. + +2018-07-03 Paolo Carlini + + * g++.dg/other/locations1.C: New. + * g++.dg/tls/locations1.C: Likewise. + * g++.dg/diagnostic/virtual-constexpr.C: Likewise. + * g++.dg/diagnostic/virtual-static.C: Likewise. + * g++.dg/concepts/fn-concept2.C: Test the locations too. + * g++.dg/cpp0x/constexpr-virtual5.C: Likewise. + * g++.dg/cpp0x/pr51463.C: Likewise. + * g++.dg/other/typedef1.C: Likewise. + * g++.dg/parse/dtor13.C: Likewise. + * g++.dg/template/error44.C: Likewise. + * g++.dg/template/typedef4.C: Likewise. + * g++.dg/template/typedef5.C: Likewise. + * g++.dg/tls/diag-2.C: Likewise. + * g++.old-deja/g++.brendan/crash11.C: Likewise. + +2018-07-03 Marek Polacek + + PR c++/86201 + * g++.dg/diagnostic/pr86201.C: New test. + +2018-07-03 Uros Bizjak + + PR target/85694 + * gcc.target/i386/pr85694.c: New test. + +2018-07-03 Richard Sandiford + + PR tree-optimization/85694 + * lib/target-supports.exp (check_effective_target_vect_avg_qi): + Return true for AArch64 without SVE. + * gcc.target/aarch64/vect_hadd_1.h: New file. + * gcc.target/aarch64/vect_shadd_1.c: New test. + * gcc.target/aarch64/vect_srhadd_1.c: Likewise. + * gcc.target/aarch64/vect_uhadd_1.c: Likewise. + * gcc.target/aarch64/vect_urhadd_1.c: Likewise. + +2018-07-03 Marek Polacek + + PR middle-end/86202 + * gcc.dg/Wint-conversion-2.c: New test. + + PR c++/84306 + * g++.dg/overload/conv-op3.C: New test. + +2018-07-03 Richard Biener + + PR ipa/86389 + * gcc.dg/torture/pr86389.c: New testcase. + +2018-07-03 Richard Sandiford + + PR tree-optimization/85694 + * lib/target-supports.exp (check_effective_target_vect_avg_qi): New + proc. + * gcc.dg/vect/vect-avg-1.c: New test. + * gcc.dg/vect/vect-avg-2.c: Likewise. + * gcc.dg/vect/vect-avg-3.c: Likewise. + * gcc.dg/vect/vect-avg-4.c: Likewise. + * gcc.dg/vect/vect-avg-5.c: Likewise. + * gcc.dg/vect/vect-avg-6.c: Likewise. + * gcc.dg/vect/vect-avg-7.c: Likewise. + * gcc.dg/vect/vect-avg-8.c: Likewise. + * gcc.dg/vect/vect-avg-9.c: Likewise. + * gcc.dg/vect/vect-avg-10.c: Likewise. + * gcc.dg/vect/vect-avg-11.c: Likewise. + * gcc.dg/vect/vect-avg-12.c: Likewise. + * gcc.dg/vect/vect-avg-13.c: Likewise. + * gcc.dg/vect/vect-avg-14.c: Likewise. + +2018-07-03 Richard Sandiford + + * gcc.dg/vect/vect-over-widen-5.c: Test that the extensions + get split into two for use by the over-widening pattern. + * gcc.dg/vect/vect-over-widen-6.c: Likewise. + * gcc.dg/vect/vect-over-widen-7.c: Likewise. + * gcc.dg/vect/vect-over-widen-8.c: Likewise. + * gcc.dg/vect/vect-over-widen-9.c: Likewise. + * gcc.dg/vect/vect-over-widen-10.c: Likewise. + * gcc.dg/vect/vect-over-widen-11.c: Likewise. + * gcc.dg/vect/vect-over-widen-12.c: Likewise. + * gcc.dg/vect/vect-over-widen-13.c: Likewise. + * gcc.dg/vect/vect-over-widen-14.c: Likewise. + * gcc.dg/vect/vect-over-widen-15.c: Likewise. + * gcc.dg/vect/vect-over-widen-16.c: Likewise. + * gcc.dg/vect/vect-over-widen-22.c: New test. + +2018-07-03 Richard Sandiford + + * gcc.dg/vect/vect-widen-mult-u8-u32.c: Check specifically for a + widen_mult pattern. + * gcc.dg/vect/vect-over-widen-1.c: Update the scan tests for new + over-widening messages. + * gcc.dg/vect/vect-over-widen-1-big-array.c: Likewise. + * gcc.dg/vect/vect-over-widen-2.c: Likewise. + * gcc.dg/vect/vect-over-widen-2-big-array.c: Likewise. + * gcc.dg/vect/vect-over-widen-3.c: Likewise. + * gcc.dg/vect/vect-over-widen-3-big-array.c: Likewise. + * gcc.dg/vect/vect-over-widen-4.c: Likewise. + * gcc.dg/vect/vect-over-widen-4-big-array.c: Likewise. + * gcc.dg/vect/bb-slp-over-widen-1.c: New test. + * gcc.dg/vect/bb-slp-over-widen-2.c: Likewise. + * gcc.dg/vect/vect-over-widen-5.c: Likewise. + * gcc.dg/vect/vect-over-widen-6.c: Likewise. + * gcc.dg/vect/vect-over-widen-7.c: Likewise. + * gcc.dg/vect/vect-over-widen-8.c: Likewise. + * gcc.dg/vect/vect-over-widen-9.c: Likewise. + * gcc.dg/vect/vect-over-widen-10.c: Likewise. + * gcc.dg/vect/vect-over-widen-11.c: Likewise. + * gcc.dg/vect/vect-over-widen-12.c: Likewise. + * gcc.dg/vect/vect-over-widen-13.c: Likewise. + * gcc.dg/vect/vect-over-widen-14.c: Likewise. + * gcc.dg/vect/vect-over-widen-15.c: Likewise. + * gcc.dg/vect/vect-over-widen-16.c: Likewise. + * gcc.dg/vect/vect-over-widen-17.c: Likewise. + * gcc.dg/vect/vect-over-widen-18.c: Likewise. + * gcc.dg/vect/vect-over-widen-19.c: Likewise. + * gcc.dg/vect/vect-over-widen-20.c: Likewise. + * gcc.dg/vect/vect-over-widen-21.c: Likewise. + +2018-07-03 Richard Sandiford + + * gcc.dg/vect/vect-mixed-size-cond-1.c: New test. + +2018-07-02 Jim Wilson + + * gcc.target/riscv/interrupt-debug.c: New. + +2018-07-02 Paolo Carlini + + * g++.dg/diagnostic/thread-thread_local.C: New. + +2018-07-02 Martin Liska + + PR testsuite/86366 + * gcc.dg/profile-dir-1.c: Fix scanned pattern. + * gcc.dg/profile-dir-2.c: Likewise. + * gcc.dg/profile-dir-3.c: Likewise. + +2018-07-02 Christophe Lyon + + * gcc.target/arm/arm-soft-strd-even.c: Skip if -mfloat-abi is + overriden. + +2018-07-02 Richard Biener + + PR tree-optimization/86363 + * gcc.dg/torture/pr86363.c: New testcase. + +2018-07-02 Martin Liska + + * gcc.dg/completion-1.c: New test. + * gcc.dg/completion-2.c: New test. + * gcc.dg/completion-3.c: New test. + +2018-07-02 Paul Thomas + + PR fortran/82969 + PR fortran/86242 + * gfortran.dg/proc_ptr_50.f90: New test. + +2018-07-02 Paul Thomas + + PR fortran/45305 + * gfortran.dg/scalarize_parameter_array_2.f90: New test. + +2018-07-02 Martin Liska + + PR ipa/86279 + * gcc.dg/ipa/pr86279.c: New test. + +2018-07-02 Martin Liska + + PR ipa/86323 + * g++.dg/ipa/pr86323.C: New test. + +2018-07-01 Tom de Vries + + revert: + 2018-07-01 Tom de Vries + + * gcc.dg/guality/prevent-optimization.h (VOLATILE): Define. + * gcc.dg/guality/vla-1.c (f1): Mark local vla a as VOLATILE. + +2018-07-01 Tom de Vries + + * lib/gcc-gdb-test.exp (gdb-test): Handle '@' prefix in line number + argument. + * gcc.dg/guality/const-volatile.c: Replace gdb-test line nrs 50 and 58 + with @main. + +2018-07-01 Tom de Vries + + * gcc.dg/guality/prevent-optimization.h (VOLATILE): Define. + * gcc.dg/guality/vla-1.c (f1): Mark local vla a as VOLATILE. + +2018-07-01 Tom de Vries + + * lib/gcc-dg.exp (get-absolute-line): Handle '.'. + * gcc.dg/guality/vla-1.c: Use relative line numbers. + +2018-07-01 Tom de Vries + + * gcc.dg-selftests/dg-final.exp (verify_call_1): Factor out of ... + (verify_call): ... here. Move to toplevel. + (verify_call_np, dg_final_directive_check_utils): New proc. + (toplevel): Call dg_final_directive_check_utils. + * lib/gcc-dg.exp (get-absolute-line): Fix typo in variable reference. + +2018-06-30 Jim Wilson + + * gcc.target/riscv/shift-shift-1.c: New. + * gcc.target/riscv/shift-shift-2.c: New. + * gcc.target/riscv/shift-shift-3.c: New. + +2018-06-30 Richard Sandiford + + * gcc.dg/vect/vect-widen-mult-extern-1.c: New test. + +2018-06-30 Richard Sandiford + + * gcc.dg/vect/vect-widen-mult-sum.c: Remove xfail. + * gcc.dg/vect/no-scevccp-outer-6.c: Don't match widened multiplications + by 4 in the computation of a[i]. + * gcc.dg/vect/vect-mult-const-pattern-1.c: Test specifically for the + main multiplication constant. + * gcc.dg/vect/vect-mult-const-pattern-2.c: Likewise. + * gcc.dg/vect/vect-widen-mult-const-s16.c: Likewise. + * gcc.dg/vect/vect-widen-mult-const-u16.c: Likewise. Expect the + pattern to cast the result to int. + * gcc.dg/vect/vect-reduc-dot-1.c: New test. + * gcc.dg/vect/vect-reduc-dot-2.c: Likewise. + * gcc.dg/vect/vect-reduc-dot-3.c: Likewise. + * gcc.dg/vect/vect-reduc-dot-4.c: Likewise. + * gcc.dg/vect/vect-reduc-dot-5.c: Likewise. + * gcc.dg/vect/vect-reduc-dot-6.c: Likewise. + * gcc.dg/vect/vect-reduc-dot-7.c: Likewise. + * gcc.dg/vect/vect-reduc-dot-8.c: Likewise. + * gcc.dg/vect/vect-reduc-sad-1.c: Likewise. + * gcc.dg/vect/vect-reduc-sad-2.c: Likewise. + * gcc.dg/vect/vect-reduc-sad-3.c: Likewise. + * gcc.dg/vect/vect-reduc-sad-4.c: Likewise. + * gcc.dg/vect/vect-reduc-sad-5.c: Likewise. + * gcc.dg/vect/vect-reduc-sad-6.c: Likewise. + * gcc.dg/vect/vect-reduc-sad-7.c: Likewise. + * gcc.dg/vect/vect-reduc-sad-8.c: Likewise. + * gcc.dg/vect/vect-widen-mult-1.c: Likewise. + * gcc.dg/vect/vect-widen-mult-2.c: Likewise. + * gcc.dg/vect/vect-widen-mult-3.c: Likewise. + * gcc.dg/vect/vect-widen-mult-4.c: Likewise. + +2018-06-30 Richard Sandiford + + * gcc.dg/vect/vect-reduc-dot-u16b.c: Remove xfail and update the + test for vectorization along the lines described in the comment. + +2018-06-30 Tom de Vries + + * gcc.dg/guality/guality.exp (guality_transform_options): New proc. + (toplevel): Apply guality_transform_options on DG_TORTURE_OPTIONS and + LTO_TORTURE_OPTIONS. + * gcc.dg/guality/prevent-optimization.h: New file. + * gcc.dg/guality/pr45882.c: Include prevent-optimization.h. + (a): Replace __attribute__((used)) with ATTRIBUTE_USED. + +2018-06-30 Tom de Vries + + * gcc.dg/guality/pr45882.c (foo): Use relative line numbers. + * lib/gcc-dg.exp (dg-final): New proc. + * lib/gcc-gdb-test.exp (gdb-test): Add and handle additional line number + argument. + +2018-06-29 Martin Sebor + + * gcc.dg/strlenopt-46.c: Define strnlen for targets like Solaris 10 + that don't define the function. + +2018-06-29 Marek Polacek + + PR c++/86184 + * g++.dg/ext/cond3.C: New test. + +2018-06-29 Kyrylo Tkachov + + * gcc.target/arm/arm-soft-strd-even.c: New test. + +2018-06-29 Tom de Vries + + * gcc.dg/guality/pr45882.c (foo): Add line number var for breakpoint + line, and use it. + * lib/gcc-dg.exp (get-absolute-line): Factor out of ... + (process-message): ... here. + * lib/gcc-gdb-test.exp (gdb-test): Use get-absolute-line. + +2018-06-29 Martin Liska + + PR tree-optimization/86263 + * gcc.dg/tree-ssa/pr86263.c: New test. + +2018-06-28 Carl Love + + * gcc.target/p9-extract-1.c: Add test case. + * gcc.target/builtins-3-p9-runnable.c: Add test case to match + name in ABI. + +2018-06-28 Uros Bizjak + + PR target/86348 + * gcc.target/i386/pr86348.c: New test. + +2018-06-28 Wilco Dijkstra + + * gcc.target/aarch64/f16_mov_immediate_3.c: Fix testcase. + +2018-06-28 Fritz Reese + + PR fortran/82865 + * gfortran.dg/dec_type_print_2.f03: New testcase. + +2018-06-28 David Pagan + + PR c/55976 + * gcc.dg/noncompile/pr55976-1.c: Add dg-prune-output for extraneous + message causing unexpected test FAIL. + +2018-06-28 Martin Liska + + * gcc.dg/tree-ssa/switch-1.c: New test. + +2018-06-28 Eric Botcazou + + * gnat.dg/debug15.adb: New test. + +2018-06-27 David Malcolm + + PR c++/86329 + * g++.dg/lookup/pr86329.C: New test. + +2018-06-27 Carl Love + + * gcc.target/vsx-vector-abss.c: New file to test vec_abss. + +2018-06-27 Tamar Christina + + PR target/85769 + * gcc.target/aarch64/f16_mov_immediate_3.c: New. + +2018-06-26 Kelvin Nilsen + + * gcc.target/powerpc/builtins-1.c: Correct a comment. + +2018-06-26 Will Schmidt + + * gcc.target/powerpc/fold-vec-neg-int.p8.c: Specify powerpc_p8vector_ok + requirement for this test. + * gcc.target/powerpc/fold-vec-neg-int.c: Specify powerpc_p8vector_ok + requirement, and -mpower8-vector compile option. + +2018-06-26 Jakub Jelinek + + PR target/86314 + * gcc.dg/pr86314.c: New test. + + PR debug/86257 + * gcc.target/i386/pr86257.c: Add -mtls-dialect=gnu to dg-options. + +2018-06-26 Rainer Orth + + * gcc.target/i386/pr86257.c: Require 64-bit. + +2018-06-26 Rainer Orth + + * g++.dg/pr86082.C: Require IBM1047 support. + +2018-06-26 Richard Biener + + PR middle-end/86271 + * gcc.dg/pr86271.c: New testcase. + +2018-06-26 Alexandre Oliva + + PR debug/86064 + * gcc.dg/pr86064.c: New. + +2018-06-25 Jeff Law + + * lib/target-supports.exp + (check_effective_target_logical_op_short_circuit): Add v850. + +2018-06-25 Martin Sebor + + PR tree-optimization/86204 + * gcc.dg/strlenopt-46.c: New test. + +2018-06-25 Martin Sebor + + PR tree-optimization/85700 + * gcc.dg/Wstringop-truncation-4.c: New test. + +2018-06-25 Fritz Reese + + PR fortran/82972 + PR fortran/83088 + PR fortran/85851 + * gfortran.dg/init_flag_17.f90: New testcase. + +2018-06-25 Carl Love + + * gcc.target/powerpc/p9-extract-1.c: Make second argument of + vec_extract a signed int. Add vec_extract tests for bool char + and bool int. + * gcc.target/powerpc/p9-extract-4.c: New test file for long long + vec_extract tests. + +2018-06-25 Tom de Vries + + * lib/gcc-gdb-test.exp (report_gdb): Handle gdb -v failure. + +2018-06-25 Jakub Jelinek + + PR target/84786 + * gcc.target/i386/avx512f-pr84786-3.c: New test. + +2018-06-25 Eric Botcazou + + * gnat.dg/sso9.adb: New testcase. + * gnat.dg/sso9_pkg.ads: Likewise. + +2018-06-25 Tom de Vries + + PR debug/86257 + * gcc.target/i386/pr86257.c: New test. + +2018-06-25 Andreas Krebbel + + PR C++/86082 + * g++.dg/pr86082.C: New test. + +2018-06-24 Tom de Vries + + * g++.dg/guality/guality.exp: Don't use which on gdb arg to report_gdb. + * gcc.dg/guality/guality.exp: Same. + * gfortran.dg/guality/guality.exp: Same. + * lib/gcc-gdb-test.exp: Do early out if which gdb fails. + +2018-06-23 Paolo Carlini + + * g++.dg/concepts/locations1.C: New. + * g++.dg/cpp0x/locations1.C: Likewise. + * g++.dg/cpp1z/inline-var2.C: Test locations too. + * g++.dg/cpp1z/inline-var3.C: Likewise. + +2018-06-22 Paul Thomas + + PR fortran/86281 + * gfortran.dg/assumed_charlen_function_7.f90: Add -std=legacy. + +2018-06-22 Kelvin Nilsen + + * gcc.target/powerpc/builtins-3-p8.c (test_pack_float): Remove + this test. + * gcc.target/powerpc/builtins-9.c: New test. + * gcc.target/powerpc/fold-vec-pack-double.c: Modify dg directives + to expect different code generation on big-endian vs. + little-endian targets. + +2018-06-22 Tom de Vries + + * g++.dg/guality/guality.exp (guality_gdb_name): Default to + $rootme/../gdb/gdb, if available. + * gcc.dg/guality/guality.exp (guality_gdb_name): Same. + * gfortran.dg/guality/guality.exp (guality_gdb_name): Same. + +2018-06-22 Tom de Vries + + * lib/gcc-gdb-test.exp (report_gdb): New proc. + * g++.dg/guality/guality.exp: Use report_gdb. + * gcc.dg/guality/guality.exp: Same. + * gfortran.dg/guality/guality.exp: Same. + +2018-06-22 Jakub Jelinek + + PR c++/85662 + * g++.dg/ext/offsetof3.C: New test. + +2018-06-22 Carl Love + + * gcc.target/powerpc/altivec-7.c: Add qualifiers for counts on AIX + versus Linux. Change checks for xxlnor, xxland and xxlxor to also look + for the vnor, vand and vxor instructions. + * gcc.target/powerpc/builtins-1.c: Move vec_or tests to a new file. + Remove counts for xxlor. Fix match on bl __divdi3 and bl __udivdi3. + * gcc.target/powerpc/builtins-4.c: Fix matching for vsl instructions. + * gcc.target/powerpc/builtins-5.c: New test file for vec_or test cases. + * gcc.target/powerpc/vsx-vector-6.p7.c: Fix xxlnor BE expected count. + Add -dp to dg-options, update expected counts. + +2018-06-22 Paul Koning + + * gcc.c-torture/execute/builtins/lib/chk.c: Use smaller alignment + if pdp11. + * gcc.c-torture/compile/20010518-2.c: Skip if pdp11 -mint32. + * gcc.c-torture/compile/20040101-1.c: Ditto. + * gcc.c-torture/compile/20050622-1.c: Ditto. + * gcc.c-torture/compile/20080625-1.c: Ditto. + * gcc.c-torture/compile/20090107-1.c: Ditto. + * gcc.c-torture/compile/920501-12.c: Ditto. + * gcc.c-torture/compile/920501-4.c: Ditto. + * gcc.c-torture/compile/961203-1.c: Ditto. + * gcc.c-torture/compile/limits-externdecl.c: Ditto. + * gcc.c-torture/compile/pr25310.c: Ditto. + +2018-06-22 Cesar Philippidis + James Norris + Thomas Schwinge + Tom de Vries + + * c-c++-common/goacc/deviceptr-4.c: New file. + * c-c++-common/goacc/kernels-counter-var-redundant-load.c: + Likewise. + * c-c++-common/goacc/kernels-loop-data-2.c: Likewise. + * c-c++-common/goacc/kernels-loop-data-enter-exit-2.c: Likewise. + * c-c++-common/goacc/kernels-loop-data-enter-exit.c: Likewise. + * c-c++-common/goacc/kernels-loop-data-update.c: Likewise. + * c-c++-common/goacc/kernels-loop-data.c: Likewise. + * c-c++-common/goacc/kernels-parallel-loop-data-enter-exit.c: + Likewise. + * c-c++-common/goacc/parallel-reduction.c: Likewise. + * c-c++-common/goacc/private-reduction-1.c: Likewise. + * gfortran.dg/goacc/kernels-parallel-loop-data-enter-exit.f95: + Likewise. + * gfortran.dg/goacc/modules.f95: Likewise. + * gfortran.dg/goacc/routine-8.f90: Likewise. + * gfortran.dg/goacc/routine-level-of-parallelism-1.f90: Likewise. + +2018-06-21 Michael Meissner + + * gcc.target/powerpc/pack02.c: Use __ibm128 instead of long double + if the long double format is IEEE 128-bit for tests that are + explicitly testing IBM extended double support. Use the + appropriate pack and unpack built-in functions. Change calls from + __builtin_isinfl to __builtin_isinf since the later supports all + floating point types. + * gcc.target/powerpc/pr57150.c: Likewise. + * gcc.target/powerpc/pr60203.c: Likewise. + * gcc.target/powerpc/pr67808.c: Likewise. + * gcc.target/powerpc/pr70117.c: Likewise. + * gcc.target/powerpc/tfmode_off.c: Likewise. + +2018-06-21 Paul Thomas + + PR fortran/49630 + * gfortran.dg/assumed_charlen_function_7.f90: New test. + +2018-06-21 Paul Thomas + + PR fortran/83118 + * gfortran.dg/unlimited_polymorphic_30.f03: New test. + +2018-06-21 Tom de Vries + + * gcc.dg/guality/pr45882.c (a): Add used attribute. + +2018-06-21 Tom de Vries + + PR tree-optimization/85859 + * gcc.dg/pr85859.c: New test. + +2018-06-21 Richard Biener + + PR tree-optimization/86232 + * gcc.dg/torture/pr86232.c: New testcase. + +2018-06-21 Andre Vieira + + * gcc/gcc.target/aarch64/aes_xor_combine.c: New test. + +2018-06-21 Andre Vieira + + * gcc/gcc.target/aarch64/aes_2.c: New test. + +2018-06-20 Than McIntosh + + PR libgcc/86213 + * gcc.dg/split-8.c: New. + +2018-06-20 Kelvin Nilsen + + * gcc.target/powerpc/builtins-1.c: Adjust dg directives to scan + for vpkudus in place of vpksdus. + * gcc.target/powerpc/builtins-3-p8.c: Likewise. + +2018-06-20 Nathan Sidwell + + PR c++/85634 + * g++.dg/lookup/pr85634-2.C: New. + +2018-06-20 Paolo Carlini + + * g++.dg/template/friend65.C: New. + * g++.dg/cpp0x/main1.C: Likewise. + * g++.dg/other/main2.C: Likewise. + * g++.dg/other/main3.C: Likewise. + * g++.dg/template/friend42.C: Test location too. + * g++.dg/concepts/decl-diagnose.C: Likewise. + * g++.dg/warn/main-2.C: Update. + +2018-06-20 Chung-Lin Tang + Thomas Schwinge + Cesar Philippidis + + * c-c++-common/goacc/declare-1.c: Update test case to utilize OpenACC + 2.5 data clause semantics. + * c-c++-common/goacc/declare-2.c: Likewise. + * c-c++-common/goacc/default-4.c: Likewise. + * c-c++-common/goacc/finalize-1.c: New test. + * c-c++-common/goacc/kernels-alias-2.c: Update test case to utilize + OpenACC 2.5 data clause semantics. + * c-c++-common/goacc/kernels-alias.c: Likewise. + * c-c++-common/goacc/routine-5.c: Likewise. + * c-c++-common/goacc/update-if_present-1.c: New test. + * c-c++-common/goacc/update-if_present-2.c: New test. + * g++.dg/goacc/template.C: Update test case to utilize OpenACC + 2.5 data clause semantics. + * gfortran.dg/goacc/combined-directives.f90: Likewise. + * gfortran.dg/goacc/data-tree.f95: Likewise. + * gfortran.dg/goacc/declare-2.f95: Likewise. + * gfortran.dg/goacc/default-4.f: Likewise. + * gfortran.dg/goacc/enter-exit-data.f95: Likewise. + * gfortran.dg/goacc/finalize-1.f: New test. + * gfortran.dg/goacc/kernels-alias-2.f95: Update test case to utilize + OpenACC 2.5 data clause semantics. + * gfortran.dg/goacc/kernels-alias.f95: Likewise. + * gfortran.dg/goacc/kernels-tree.f95: Likewise. + * gfortran.dg/goacc/nested-function-1.f90: Likewise. + * gfortran.dg/goacc/parallel-tree.f95: Likewise. + * gfortran.dg/goacc/reduction-promotions.f90: Likewise. + * gfortran.dg/goacc/update-if_present-1.f90: New test. + * gfortran.dg/goacc/update-if_present-2.f90: New test. + +2018-06-20 Jakub Jelinek + + PR c++/86210 + * g++.dg/warn/Wnonnull4.C: New test. + +2018-06-20 Marek Polacek + + PR c++/86240 + * g++.dg/pr86240.C: New test. + +2018-06-20 Jakub Jelinek + + PR debug/86194 + * gcc.target/i386/pr86194.c: New test. + + PR tree-optimization/86231 + * gcc.dg/tree-ssa/vrp119.c: New test. + * gcc.c-torture/execute/pr86231.c: New test. + +2018-06-20 Tom de Vries + + PR tree-optimization/86097 + * gcc.dg/autopar/pr86097.c: New test. + +2018-06-20 Nathan Sidwell + + PR c++/85634 + * g++.dg/lookup/pr85634.C: New. + +2018-06-20 Kyrylo Tkachov + + * gcc.target/aarch64/ldp_stp_q.c: New test. + * gcc.target/aarch64/stp_vec_128_1.c: Likewise. + * gcc.target/aarch64/ldp_stp_q_disable.c: Likewise. + +2018-06-20 Martin Liska + + * gcc.dg/tree-ssa/vrp104.c: Grep just for GIMPLE IL. + +2018-06-19 Martin Sebor + + PR tree-optimization/48560 + * gcc.dg/Warray-bounds-28.c: New test. + +2018-06-19 Martin Sebor + + PR middle-end/85602 + * c-c++-common/attr-nonstring-8.c: Adjust text of expected warning + to also match C++. + +2018-06-19 Jan Hubicka + + * g++.dg/lto/pr84805_0.C: Update template. + * g++.dg/lto/pr84805_1.C: Update template. + +2018-06-19 Eric Botcazou + + * gnat.dg/aggr24.adb: New test. + * gnat.dg/aggr24_pkg.ad[sb]: New helper. + +2018-06-19 Richard Biener + + PR tree-optimization/86179 + * gcc.dg/pr86179.c: New testcase. + +2018-06-18 Martin Sebor + + PR middle-end/85602 + * gcc.dg/attr-nonstring-2.c: Adjust text of expected warning. + * c-c++-common/attr-nonstring-8.c: New test. + +2018-06-18 Martin Sebor + + PR tree-optimization/81384 + * gcc.c-torture/execute/builtins/lib/strnlen.c: New test. + * gcc.c-torture/execute/builtins/strnlen-lib.c: New test. + * gcc.c-torture/execute/builtins/strnlen.c: New test. + * gcc.dg/attr-nonstring-2.c: New test. + * gcc.dg/attr-nonstring-3.c: New test. + * gcc.dg/attr-nonstring-4.c: New test. + * gcc.dg/strlenopt-45.c: New test. + * gcc.dg/strlenopt.h (strnlen): Declare. + +2018-06-18 Wilco Dijkstra + + PR tree-optimization/86076 + * gcc.dg/pr86076.c: Add target pthread for bare-metal targets. + +2018-06-18 Wilco Dijkstra + + PR tree-optimization/64946 + * gcc.target/aarch64/vect-abs-compile.c: Remove xfail. + +2018-06-17 Eric Botcazou + + * gcc.dg/debug/dwarf2/pr37726.c: Move to... + * gcc.dg/guality/pr37726.c: ...here and turn into GDB test. + * gnat.dg/stack_usage5.adb: New test. + +2018-06-16 Kugan Vivekanandarajah + + PR middle-end/82479 + * gcc.dg/tree-ssa/popcount.c: New test. + * gcc.dg/tree-ssa/popcount2.c: New test. + +2018-06-16 Kugan Vivekanandarajah + + PR middle-end/64946 + * gcc.dg/absu.c: New test. + * gcc.dg/gimplefe-29.c: New test. + * gcc.target/aarch64/pr64946.c: New test. + +2018-06-15 Jakub Jelinek + + PR c/86093 + * c-c++-common/pr86093.c: New test. + + PR middle-end/85878 + * gfortran.fortran-torture/compile/pr85878.f90: New test. + + PR middle-end/86123 + * gcc.c-torture/compile/pr86123.c: New test. + +2018-06-15 Tom de Vries + + * gcc.dg-selftests/dg-final.exp: Force sequential execution. + +2018-06-15 Nick Clifton + + PR 84195 + * gcc.c-torture/compile/pr84195.c: New test. + +2018-06-15 Richard Biener + + PR middle-end/86159 + * g++.dg/pr86159.C: New testcase. + +2018-06-15 Richard Biener + + PR middle-end/86076 + * gcc.dg/pr86076.c: New testcase. + +2018-06-14 Marek Polacek + + PR c++/86063 + * g++.dg/cpp0x/gen-attrs-65.C: New test. + +2018-06-14 Jakub Jelinek + + PR target/86048 + * gcc.target/i386/pr86048.c: Require sse2 effective target. Add + -msse2 to dg-options. + + PR middle-end/86122 + * gcc.c-torture/compile/pr86122.c: New test. + + P0624R2 - Default constructible and assignable stateless lambdas + * g++.dg/cpp2a/lambda1.C: New test. + * g++.dg/cpp0x/lambda/lambda-ice2.C: Adjust expected diagnostics + for -std=c++2a. + +2018-06-14 Paolo Carlini + + * g++.dg/other/static3.C: New. + * g++.dg/other/static4.C: Likewise. + * g++.dg/warn/Wshadow-15.C: Likewise. + * g++.dg/cpp0x/gnu_fext-numeric-literals.C: Test locations too. + * g++.dg/cpp0x/std_fext-numeric-literals.C: Likewise. + * g++.dg/cpp0x/std_fno-ext-numeric-literals.C: Likewise. + * g++.dg/cpp0x/udlit-args-neg.C: Likewise. + * g++.dg/cpp0x/udlit-clink-neg.C: Likewise. + * g++.dg/cpp0x/udlit-extern-c.C: Likewise. + * g++.dg/cpp0x/udlit-member-neg.C: Likewise. + +2018-06-14 Jakub Jelinek + + PR target/85945 + * gcc.c-torture/compile/pr85945.c: New test. + +2018-06-14 Richard Biener + + PR ipa/86124 + * gcc.dg/pr86124.c: New testcase. + +2018-06-13 Martin Sebor + + PR tree-optimization/86114 + * gcc.dg/pr86114.c: New test. + +2018-06-13 Steven G. Kargl + + PR fortran/86110 + * gfortran.dg/pr86110.f90: New test. + +2018-06-13 Cesar Philippidis + + PR fortran/85703 + * gfortran.dg/goacc/pr85703.f90: New test. + * gfortran.dg/gomp/pr85703.f90: New test. + +2018-06-13 Cesar Philippidis + + PR fortran/85702 + * gfortran.dg/goacc/pr85702.f90: New test. + +2018-06-13 Eric Botcazou + + * gcc.target/i386/pr86048.c: New test. + +2018-06-12 Claudiu Zissulescu + + * gcc.target/arc/fma-1.c: New test. + +2018-06-12 Claudiu Zissulescu + + * gcc.target/arc/pr9001107555.c: New file. + +2018-06-12 Richard Sandiford + + * g++.dg/torture/aarch64-vect-init-1.C: New test. + +2018-06-12 Paolo Carlini + + * g++.dg/init/delete3.C: New. + * g++.dg/init/new49.C: Likewise. + * g++.dg/init/new25.C: Test locations too. + * g++.dg/template/new4.C: Likewise. + * g++.old-deja/g++.jason/operator.C: Likewise. + +2018-06-12 Marek Polacek + + Core issue 1331 - const mismatch with defaulted copy constructor + * g++.dg/cpp0x/defaulted15.C (struct F): Remove dg-error. + * g++.dg/cpp0x/defaulted52.C: New test. + * g++.dg/cpp0x/defaulted53.C: New test. + * g++.dg/cpp0x/defaulted54.C: New test. + * g++.dg/cpp0x/defaulted55.C: New test. + * g++.dg/cpp0x/defaulted56.C: New test. + * g++.dg/cpp0x/defaulted57.C: New test. + * g++.dg/cpp0x/defaulted58.C: New test. + * g++.dg/cpp0x/defaulted59.C: New test. + * g++.dg/cpp0x/defaulted60.C: New test. + +2018-06-12 David Malcolm + + PR other/69968 + * gcc.dg/spellcheck-transposition.c: New test. + +2018-06-12 Steven G. Kargl + + PR fortran/44491 + * gfortran.dg/pr44491.f90: New testcase + +2018-06-12 Martin Sebor + + PR tree-optimization/85259 + * gcc.dg/Wstringop-overflow-5.c: New test. + * gcc.dg/Wstringop-overflow-6.c: New test. + +2018-06-12 Martin Sebor + + PR c/85931 + * gcc.dg/Wstringop-truncation-3.c: New test. + +2018-06-12 Will Schmidt + + * gcc.target/powerpc/p8-vec-xl-xst-v2.c: New. + * gcc.target/powerpc/p8-vec-xl-xst.c: Disable gimple-folding. + * gcc.target/powerpc/swaps-p8-17.c: Same. + +2018-06-12 Will Schmidt + + * gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c: New. + * gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c: New. + * gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c: New. + * gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c: New. + * gcc.target/powerpc/fold-vec-store-vec_vsx_st-longlong.c: New. + * gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c: New. + +2018-06-12 Will Schmidt + + * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c: New. + * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c: New. + * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c: New. + * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c: New. + * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c: New. + * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c: New. + +2018-06-12 Will Schmidt + + * gcc.target/powerpc/fold-vec-store-vec_xst-char.c: New. + * gcc.target/powerpc/fold-vec-store-vec_xst-double.c: New. + * gcc.target/powerpc/fold-vec-store-vec_xst-float.c: New. + * gcc.target/powerpc/fold-vec-store-vec_xst-int.c: New. + * gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c: New. + * gcc.target/powerpc/fold-vec-store-vec_xst-short.c: New. + +2018-06-12 Will Schmidt + + * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c: New. + * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c: New. + * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c: New. + * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c: New. + * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c: New. + * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c: New. + +2018-06-12 Will Schmidt + + * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c: New. + * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-double.c: New. + * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-float.c: New. + * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c: New. + * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-longlong.c: New. + * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-short.c: New. + +2018-06-12 Will Schmidt + + * gcc.target/powerpc/fold-vec-load-vec_xl-char.c: New testcase. + * gcc.target/powerpc/fold-vec-load-vec_xl-double.c: New testcase. + * gcc.target/powerpc/fold-vec-load-vec_xl-float.c: New testcase. + * gcc.target/powerpc/fold-vec-load-vec_xl-int.c: New testcase. + * gcc.target/powerpc/fold-vec-load-vec_xl-longlong.c: New testcase. + * gcc.target/powerpc/fold-vec-load-vec_xl-short.c: New testcase. + +2018-06-12 Martin Liska + + * g++.dg/opt/mpx.C: New test. + * gcc.target/i386/mpx.c: New test. + +2018-06-12 Claudiu Zissulescu + + * gcc.target/arc/builtin_simdarc.c: Update test. + * gcc.target/arc/mulsi3_highpart-2.c: Likewise. + * gcc.target/arc/tumaddsidi4.c: Likewise. + +2018-06-12 Eric Botcazou + + * gnat.dg/opt72a.ad[sb]: New test. + * gnat.dg/opt72_pkg.ads: New helper. + +2018-06-12 Tom de Vries + + * gcc.dg-selftests/dg-final.exp: New file. + +2018-06-11 Paolo Carlini + + * g++.dg/lookup/new2.C: Test locations too. + * g++.dg/other/ellipsis1.C: Likewise. + * g++.dg/other/operator1.C: Likewise. + * g++.dg/other/operator2.C: Likewise. + * g++.dg/overload/operator2.C: Likewise. + * g++.dg/parse/defarg11.C: Likewise. + * g++.dg/parse/operator4.C: Likewise. + * g++.dg/template/error30.C: Likewise. + * g++.dg/template/explicit-args3.C: Likewise. + * g++.dg/warn/effc1.C: Likewise. + * g++.old-deja/g++.brendan/prepost2.C: Likewise. + * g++.old-deja/g++.brendan/prepost3.C: Likewise. + * g++.old-deja/g++.bugs/900215_01.C: Likewise. + * g++.old-deja/g++.jason/conversion5.C: Likewise. + * g++.old-deja/g++.jason/operator.C: Likewise. + +2018-06-11 Martin Sebor + + PR tree-optimization/86083 + * gcc.dg/strlenopt-44.c: New test. + +2018-06-11 Janus Weil + + PR fortran/45521 + * gfortran.dg/generic_32.f90: New test. + * gfortran.dg/generic_33.f90: New test. + +2018-06-11 Carl Love + * gcc.target/powerpc/altivec-7.c (main): Remove tests + vec_unpackh(vecubi[0]) and vec_unpackl(vecubi[0]) returning + long long bool. Remove duplicate dg-final for xxlxor. Update + dg-final instruction counts. + * gcc.target/powerpc/altivec-37.c (main): New file for + tests vec_unpackh and vec_unpackl returning long long bool and + long long int. + +2018-06-11 Martin Liska + + PR tree-optimization/86089 + * gcc.dg/tree-ssa/pr86089.c: New test. + +2018-06-11 Julia Koval + + * gcc.target/i386/avx512fvl-vaes-1.c: Remove 128bit versions from test. + * gcc.target/i386/vpclmulqdq.c: Ditto. + +2018-06-11 Olivier Hainque + + * gnat.dg/lang-dw2.adb: New test. + * gnat.dg/lang-dw3.adb: New test. + +2018-06-11 Hristian Kirtchev + + * gnat.dg/assertion_policy1.adb, gnat.dg/assertion_policy1_pkg.adb, + gnat.dg/assertion_policy1_pkg.ads: New testcase. + +2018-06-11 Ed Schonberg + + * gnat.dg/predicate1.adb: New testcase. + +2018-06-11 Yannick Moy + + * gnat.dg/spark1.adb, gnat.dg/spark1.ads: New testcase. + +2018-06-11 Hristian Kirtchev + + * gnat.dg/gnat_array_split1.adb, gnat.dg/gnat_array_split1.ads: New + testcase. + +2018-06-11 Javier Miranda + + * gnat.dg/prot4.adb: New testcase. + +2018-06-11 Yannick Moy + + * gnat.dg/part_of1-instantiation.adb, + gnat.dg/part_of1-instantiation.ads, + gnat.dg/part_of1-private_generic.adb, + gnat.dg/part_of1-private_generic.ads, gnat.dg/part_of1.ads: New + testcase. + +2018-06-11 Piotr Trojanek + + * gnat.dg/contract1.adb: New testcase. + +2018-06-11 Javier Miranda + + * gnat.dg/aggr23.adb, gnat.dg/aggr23_q.adb, gnat.dg/aggr23_tt.ads: New + testcase. + +2018-06-11 Ed Schonberg + + * gnat.dg/inline_always1.adb: New testcase. + +2018-06-11 Ed Schonberg + + * gnat.dg/nested_generic2.adb, gnat.dg/nested_generic2.ads, + gnat.dg/nested_generic2_g1.adb, gnat.dg/nested_generic2_g1.ads, + gnat.dg/nested_generic2_g2.ads: New testcase. + +2018-06-10 Paolo Carlini + + * g++.dg/template/friend64.C: New. + * g++.old-deja/g++.other/friend4.C: Test the location too. + * g++.old-deja/g++.pt/crash23.C: Likewise. + +2018-06-10 Thomas Koenig + + * gfortran.dg/inline_matmul_23.f90: New test. + +2018-06-10 Janus Weil + + PR fortran/85088 + * gfortran.dg/intent_decl_1.f90: New test case. + +2018-06-09 Steven G. Kargl + + * gfortran.dg/ieee/ieee_4.f90: xfail on i?86-*-freebsd* + * gfortran.dg/ieee/large_4.f90: Ditto. + * gfortran.dg/round_4.f90: Ditto. + +2018-06-09 Steven G. Kargl + + PR fortran/38351 + * gfortran.dg/pr38351.f90: New test. + * gfortran.dg/typebound_operator_4.f03: Adjust for new error message. + +2018-06-09 Steven G. Kargl + + PR fortran/85138 + PR fortran/85996 + PR fortran/86051 + * gfortran.dg/pr85138_1.f90: New test. + * gfortran.dg/pr85138_2.f90: Ditto. + * gfortran.dg/pr85996.f90: Ditto. + +2018-06-09 Steven G. Kargl + + PR fortran/78278 + * gfortran.dg/data_bounds_1.f90: Add -std=gnu option. + * gfortran.dg/data_char_1.f90: Ditto. + * gfortran.dg/pr78571.f90: Ditto. + * gfortran.dg/pr78278.f90: New test. + +2018-06-09 Steven G. Kargl + + PR fortran/63514 + * gfortran.dg/pr63514.f90: New test. + +2018-06-08 Thomas Koenig + + PR fortran/85631 + * gfortran.dg/bounds_check_20.f90: New test. + +2018-06-08 Carl Love + + * gcc.target/powerpc/p8vector-builtin-3.c: Add vec_pack test. Update + vpkudum counts. + * gcc.target/powerpc/p9-extract-3.c: Make second argument of + vec_extract a signed int. + * gcc.target/powerpc/vec-cmp.c: Add vec_cmple, vec_cmpge tests. Update, + vcmpgtsb, vcmpgtub, vcmpgtsh, vcmpgtuh, vcmpgtsw, vcmpgtsw, vcmpgtuw, + vcmpgtsd, vcmpgtud. + * gcc.target/powerpc/vsx-extract-4.c: Make second argument of + vec_extract a signed int. + * gcc.target/powerpc/vsx-extract-5.c: Make second argument of + vec_extract a signed int. + * gcc.target/powerpc/vsx-vector-7.c (foo): Add tests for vec_sel and + vec_xor builtins. Update xxsel, xxlxor counts. + +2018-06-08 Steven G. Kargl + + PR fortran/86059 + * gfortran.dg/associate_30.f90: Remove code tested ... + * gfortran.dg/pr67803.f90: Ditto. + * gfortran.dg/pr67805.f90: Ditto. + * gfortran.dg/pr86059.f90: ... here. New test. + +2018-06-08 Steven G. Kargl + + PR fortran/78571 + * gfortran.dg/pr78571.f90: New test. + +2018-06-08 Peter Bergner + + PR target/85755 + * gcc.target/powerpc/pr85755.c: New test. + +2018-06-08 Carl Love + + * gcc.target/powerpc/vsx-vector-6-be.p7.c: Rename this file to + vsx-vector-6.p7.c. + * gcc.target/powerpc/vsx-vector-6-le.p9.c: Rename this file to + vsx-vector-6.p9.c. + * gcc.target/powerpc/vsx-vector-6-be.p8.c: Move instruction counts + for BE system that are different then for an LE system from this file + into vsx-vector-6-le.c using be target qualifier. Remove this file. + * gcc.target/powerpc/vsx-vector-6-le.c: Add le qualifiers as needed for + the various instruction counts. Rename file to vsx-vector-6.p8.c. + +2018-06-08 Martin Liska + + * gcc.dg/ipa/ipa-icf-38.c: Scan optimized tree dump. + +2018-06-08 Martin Liska + + * g++.dg/dg.exp: Do not use mpx.exp. + * g++.dg/lto/lto.exp: Likewise. + * g++.dg/lto/pr69729_0.C: Remove. + * g++.dg/opt/pr71529.C: Remove. + * g++.dg/pr63995-1.C: Remove. + * g++.dg/pr68270.C: Remove. + * g++.dg/pr71624.C: Remove. + * g++.dg/pr71633.C: Remove. + * g++.dg/pr79761.C: Remove. + * g++.dg/pr79764.C: Remove. + * g++.dg/pr79769.C: Remove. + * gcc.dg/lto/chkp-privatize-1_0.c: Remove. + * gcc.dg/lto/chkp-privatize-2_0.c: Remove. + * gcc.dg/lto/chkp-privatize_0.c: Remove. + * gcc.dg/lto/chkp-removed-alias_0.c: Remove. + * gcc.dg/lto/chkp-static-bounds_0.c: Remove. + * gcc.dg/lto/chkp-wrap-asm-name_0.c: Remove. + * gcc.dg/lto/lto.exp: Do not use mpx.exp. + * gcc.dg/lto/pr66221_0.c: Remove. + * gcc.target/i386/chkp-always_inline.c: Remove. + * gcc.target/i386/chkp-bndret.c: Remove. + * gcc.target/i386/chkp-builtins-1.c: Remove. + * gcc.target/i386/chkp-builtins-2.c: Remove. + * gcc.target/i386/chkp-builtins-3.c: Remove. + * gcc.target/i386/chkp-builtins-4.c: Remove. + * gcc.target/i386/chkp-const-check-1.c: Remove. + * gcc.target/i386/chkp-const-check-2.c: Remove. + * gcc.target/i386/chkp-hidden-def.c: Remove. + * gcc.target/i386/chkp-label-address.c: Remove. + * gcc.target/i386/chkp-lifetime-1.c: Remove. + * gcc.target/i386/chkp-narrow-bounds.c: Remove. + * gcc.target/i386/chkp-pr69044.c: Remove. + * gcc.target/i386/chkp-remove-bndint-1.c: Remove. + * gcc.target/i386/chkp-remove-bndint-2.c: Remove. + * gcc.target/i386/chkp-strchr.c: Remove. + * gcc.target/i386/chkp-strlen-1.c: Remove. + * gcc.target/i386/chkp-strlen-2.c: Remove. + * gcc.target/i386/chkp-strlen-3.c: Remove. + * gcc.target/i386/chkp-strlen-4.c: Remove. + * gcc.target/i386/chkp-strlen-5.c: Remove. + * gcc.target/i386/chkp-stropt-1.c: Remove. + * gcc.target/i386/chkp-stropt-10.c: Remove. + * gcc.target/i386/chkp-stropt-11.c: Remove. + * gcc.target/i386/chkp-stropt-12.c: Remove. + * gcc.target/i386/chkp-stropt-13.c: Remove. + * gcc.target/i386/chkp-stropt-14.c: Remove. + * gcc.target/i386/chkp-stropt-15.c: Remove. + * gcc.target/i386/chkp-stropt-16.c: Remove. + * gcc.target/i386/chkp-stropt-17.c: Remove. + * gcc.target/i386/chkp-stropt-2.c: Remove. + * gcc.target/i386/chkp-stropt-3.c: Remove. + * gcc.target/i386/chkp-stropt-4.c: Remove. + * gcc.target/i386/chkp-stropt-5.c: Remove. + * gcc.target/i386/chkp-stropt-6.c: Remove. + * gcc.target/i386/chkp-stropt-7.c: Remove. + * gcc.target/i386/chkp-stropt-8.c: Remove. + * gcc.target/i386/chkp-stropt-9.c: Remove. + * gcc.target/i386/i386.exp: Do not use mpx.exp. + * gcc.target/i386/indirect-thunk-11.c: Remove. + * gcc.target/i386/indirect-thunk-12.c: Remove. + * gcc.target/i386/indirect-thunk-attr-12.c: Remove. + * gcc.target/i386/indirect-thunk-attr-13.c: Remove. + * gcc.target/i386/indirect-thunk-bnd-1.c: Remove. + * gcc.target/i386/indirect-thunk-bnd-2.c: Remove. + * gcc.target/i386/indirect-thunk-bnd-3.c: Remove. + * gcc.target/i386/indirect-thunk-bnd-4.c: Remove. + * gcc.target/i386/interrupt-bnd-err-1.c: Remove. + * gcc.target/i386/interrupt-bnd-err-2.c: Remove. + * gcc.target/i386/mpx/alloca-1-lbv.c: Remove. + * gcc.target/i386/mpx/alloca-1-nov.c: Remove. + * gcc.target/i386/mpx/alloca-1-ubv.c: Remove. + * gcc.target/i386/mpx/arg-addr-1-lbv.c: Remove. + * gcc.target/i386/mpx/arg-addr-1-nov.c: Remove. + * gcc.target/i386/mpx/arg-addr-1-ubv.c: Remove. + * gcc.target/i386/mpx/bitfields-1-lbv.c: Remove. + * gcc.target/i386/mpx/bitfields-1-nov.c: Remove. + * gcc.target/i386/mpx/bitfields-1-ubv.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-chk-ptr-bounds-1-lbv.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-chk-ptr-bounds-1-nov.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-chk-ptr-bounds-1-ubv.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-chk-ptr-bounds-2.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-chk-ptr-lbounds-1-lbv.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-chk-ptr-lbounds-1-nov.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-chk-ptr-lbounds-2.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-chk-ptr-ubounds-1-nov.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-chk-ptr-ubounds-1-ubv.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-chk-ptr-ubounds-2.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-1.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-2-lbv.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-2-nov.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-2-ubv.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-3.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-get-ptr-lbound-1.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-get-ptr-lbound-2.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-get-ptr-ubound-1.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-get-ptr-ubound-2.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-init-ptr-bounds-1.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-init-ptr-bounds-2-nov.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-init-ptr-bounds-3.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-1.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-2-lbv.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-2-nov.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-2-ubv.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-3-lbv.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-3-nov.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-3-ubv.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-4.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-null-ptr-bounds-1-bbv.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-1.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-2-lbv.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-2-nov.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-2-ubv.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-3.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-store-ptr-bounds-1-lbv.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-store-ptr-bounds-1-nov.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-store-ptr-bounds-1-ubv.c: Remove. + * gcc.target/i386/mpx/builtin-bnd-store-ptr-bounds-2.c: Remove. + * gcc.target/i386/mpx/calloc-1-lbv.c: Remove. + * gcc.target/i386/mpx/calloc-1-nov.c: Remove. + * gcc.target/i386/mpx/calloc-1-ubv.c: Remove. + * gcc.target/i386/mpx/chkp-fix-calls-1.c: Remove. + * gcc.target/i386/mpx/chkp-fix-calls-2.c: Remove. + * gcc.target/i386/mpx/chkp-fix-calls-3.c: Remove. + * gcc.target/i386/mpx/chkp-fix-calls-4.c: Remove. + * gcc.target/i386/mpx/chkp-thunk-comdat-1.cc: Remove. + * gcc.target/i386/mpx/chkp-thunk-comdat-2.cc: Remove. + * gcc.target/i386/mpx/chkp-thunk-comdat-3.c: Remove. + * gcc.target/i386/mpx/fastcall-1-lbv.c: Remove. + * gcc.target/i386/mpx/fastcall-1-nov.c: Remove. + * gcc.target/i386/mpx/fastcall-1-ubv.c: Remove. + * gcc.target/i386/mpx/fastcall-2-lbv.c: Remove. + * gcc.target/i386/mpx/fastcall-2-nov.c: Remove. + * gcc.target/i386/mpx/fastcall-2-ubv.c: Remove. + * gcc.target/i386/mpx/field-addr-1-lbv.c: Remove. + * gcc.target/i386/mpx/field-addr-1-nov.c: Remove. + * gcc.target/i386/mpx/field-addr-1-ubv.c: Remove. + * gcc.target/i386/mpx/field-addr-10-lbv.c: Remove. + * gcc.target/i386/mpx/field-addr-10-nov.c: Remove. + * gcc.target/i386/mpx/field-addr-10-ubv.c: Remove. + * gcc.target/i386/mpx/field-addr-2-lbv.c: Remove. + * gcc.target/i386/mpx/field-addr-2-nov.c: Remove. + * gcc.target/i386/mpx/field-addr-2-ubv.c: Remove. + * gcc.target/i386/mpx/field-addr-3-lbv.c: Remove. + * gcc.target/i386/mpx/field-addr-3-nov.c: Remove. + * gcc.target/i386/mpx/field-addr-3-ubv.c: Remove. + * gcc.target/i386/mpx/field-addr-4-lbv.c: Remove. + * gcc.target/i386/mpx/field-addr-4-nov.c: Remove. + * gcc.target/i386/mpx/field-addr-4-ubv.c: Remove. + * gcc.target/i386/mpx/field-addr-5-lbv.c: Remove. + * gcc.target/i386/mpx/field-addr-5-nov.c: Remove. + * gcc.target/i386/mpx/field-addr-5-ubv.c: Remove. + * gcc.target/i386/mpx/field-addr-6-lbv.c: Remove. + * gcc.target/i386/mpx/field-addr-6-nov.c: Remove. + * gcc.target/i386/mpx/field-addr-6-ubv.c: Remove. + * gcc.target/i386/mpx/field-addr-7-lbv.c: Remove. + * gcc.target/i386/mpx/field-addr-7-nov.c: Remove. + * gcc.target/i386/mpx/field-addr-7-ubv.c: Remove. + * gcc.target/i386/mpx/field-addr-8-lbv.c: Remove. + * gcc.target/i386/mpx/field-addr-8-nov.c: Remove. + * gcc.target/i386/mpx/field-addr-8-ubv.c: Remove. + * gcc.target/i386/mpx/field-addr-9-lbv.c: Remove. + * gcc.target/i386/mpx/field-addr-9-nov.c: Remove. + * gcc.target/i386/mpx/field-addr-9-ubv.c: Remove. + * gcc.target/i386/mpx/frame-address-1-nov.c: Remove. + * gcc.target/i386/mpx/hard-reg-1-nov.c: Remove. + * gcc.target/i386/mpx/hard-reg-2-lbv.c: Remove. + * gcc.target/i386/mpx/hard-reg-2-nov.c: Remove. + * gcc.target/i386/mpx/hard-reg-2-ubv.c: Remove. + * gcc.target/i386/mpx/if-stmt-1-lbv.c: Remove. + * gcc.target/i386/mpx/if-stmt-1-nov.c: Remove. + * gcc.target/i386/mpx/if-stmt-1-ubv.c: Remove. + * gcc.target/i386/mpx/if-stmt-2-lbv.c: Remove. + * gcc.target/i386/mpx/if-stmt-2-nov.c: Remove. + * gcc.target/i386/mpx/if-stmt-2-ubv.c: Remove. + * gcc.target/i386/mpx/label-address-1.c: Remove. + * gcc.target/i386/mpx/legacy-1-nov.c: Remove. + * gcc.target/i386/mpx/macro.c: Remove. + * gcc.target/i386/mpx/malloc-1-lbv.c: Remove. + * gcc.target/i386/mpx/malloc-1-nov.c: Remove. + * gcc.target/i386/mpx/malloc-1-ubv.c: Remove. + * gcc.target/i386/mpx/memcpy-1.c: Remove. + * gcc.target/i386/mpx/memmove-1.c: Remove. + * gcc.target/i386/mpx/memmove-2.c: Remove. + * gcc.target/i386/mpx/memmove-zero-length.c: Remove. + * gcc.target/i386/mpx/mpx-check.h: Remove. + * gcc.target/i386/mpx/mpx-os-support.h: Remove. + * gcc.target/i386/mpx/mpx.exp: Remove. + * gcc.target/i386/mpx/nested-function-1-lbv.c: Remove. + * gcc.target/i386/mpx/nested-function-1-nov.c: Remove. + * gcc.target/i386/mpx/nested-function-1-ubv.c: Remove. + * gcc.target/i386/mpx/pointer-arg-1-lbv.c: Remove. + * gcc.target/i386/mpx/pointer-arg-1-nov.c: Remove. + * gcc.target/i386/mpx/pointer-arg-1-ubv.c: Remove. + * gcc.target/i386/mpx/pointer-arg-2-lbv.c: Remove. + * gcc.target/i386/mpx/pointer-arg-2-nov.c: Remove. + * gcc.target/i386/mpx/pointer-arg-2-ubv.c: Remove. + * gcc.target/i386/mpx/pointer-arg-3-lbv.c: Remove. + * gcc.target/i386/mpx/pointer-arg-3-nov.c: Remove. + * gcc.target/i386/mpx/pointer-arg-3-ubv.c: Remove. + * gcc.target/i386/mpx/pointer-arg-4-lbv.c: Remove. + * gcc.target/i386/mpx/pointer-arg-4-nov.c: Remove. + * gcc.target/i386/mpx/pointer-arg-4-ubv.c: Remove. + * gcc.target/i386/mpx/pointer-arg-5-lbv.c: Remove. + * gcc.target/i386/mpx/pointer-arg-5-nov.c: Remove. + * gcc.target/i386/mpx/pointer-arg-5-ubv.c: Remove. + * gcc.target/i386/mpx/pointer-diff-1.c: Remove. + * gcc.target/i386/mpx/pointer-store-1-lbv.c: Remove. + * gcc.target/i386/mpx/pointer-store-1-nov.c: Remove. + * gcc.target/i386/mpx/pointer-store-1-ubv.c: Remove. + * gcc.target/i386/mpx/pr65508.c: Remove. + * gcc.target/i386/mpx/pr65531.cc: Remove. + * gcc.target/i386/mpx/pr66048.cc: Remove. + * gcc.target/i386/mpx/pr66134.c: Remove. + * gcc.target/i386/mpx/pr66566.c: Remove. + * gcc.target/i386/mpx/pr66567.c: Remove. + * gcc.target/i386/mpx/pr66568.c: Remove. + * gcc.target/i386/mpx/pr66569.c: Remove. + * gcc.target/i386/mpx/pr66581.c: Remove. + * gcc.target/i386/mpx/pr68337-1.c: Remove. + * gcc.target/i386/mpx/pr68337-2.c: Remove. + * gcc.target/i386/mpx/pr68416.c: Remove. + * gcc.target/i386/mpx/pr78339.c: Remove. + * gcc.target/i386/mpx/pr79631.c: Remove. + * gcc.target/i386/mpx/pr79633.c: Remove. + * gcc.target/i386/mpx/pr79753.c: Remove. + * gcc.target/i386/mpx/pr79770.c: Remove. + * gcc.target/i386/mpx/pr79987.c: Remove. + * gcc.target/i386/mpx/pr79988.c: Remove. + * gcc.target/i386/mpx/realloc-1-lbv.c: Remove. + * gcc.target/i386/mpx/realloc-1-nov.c: Remove. + * gcc.target/i386/mpx/realloc-1-ubv.c: Remove. + * gcc.target/i386/mpx/realloc-2-lbv.c: Remove. + * gcc.target/i386/mpx/realloc-2-nov.c: Remove. + * gcc.target/i386/mpx/realloc-2-ubv.c: Remove. + * gcc.target/i386/mpx/reference-1-lbv.cpp: Remove. + * gcc.target/i386/mpx/reference-1-nov.cpp: Remove. + * gcc.target/i386/mpx/reference-1-ubv.cpp: Remove. + * gcc.target/i386/mpx/reference-2-lbv.cpp: Remove. + * gcc.target/i386/mpx/reference-2-nov.cpp: Remove. + * gcc.target/i386/mpx/reference-2-ubv.cpp: Remove. + * gcc.target/i386/mpx/reference-3-lbv.cpp: Remove. + * gcc.target/i386/mpx/reference-3-nov.cpp: Remove. + * gcc.target/i386/mpx/reference-3-ubv.cpp: Remove. + * gcc.target/i386/mpx/reference-4-lbv.cpp: Remove. + * gcc.target/i386/mpx/reference-4-nov.cpp: Remove. + * gcc.target/i386/mpx/reference-4-ubv.cpp: Remove. + * gcc.target/i386/mpx/return-pointer-1-lbv.c: Remove. + * gcc.target/i386/mpx/return-pointer-1-nov.c: Remove. + * gcc.target/i386/mpx/return-pointer-1-ubv.c: Remove. + * gcc.target/i386/mpx/return-struct-1-lbv.c: Remove. + * gcc.target/i386/mpx/return-struct-1-nov.c: Remove. + * gcc.target/i386/mpx/return-struct-1-ubv.c: Remove. + * gcc.target/i386/mpx/return-struct-2-lbv.c: Remove. + * gcc.target/i386/mpx/return-struct-2-nov.c: Remove. + * gcc.target/i386/mpx/return-struct-2-ubv.c: Remove. + * gcc.target/i386/mpx/return-struct-3-lbv.c: Remove. + * gcc.target/i386/mpx/return-struct-3-nov.c: Remove. + * gcc.target/i386/mpx/return-struct-3-ubv.c: Remove. + * gcc.target/i386/mpx/return-struct-4-lbv.c: Remove. + * gcc.target/i386/mpx/return-struct-4-nov.c: Remove. + * gcc.target/i386/mpx/return-struct-4-ubv.c: Remove. + * gcc.target/i386/mpx/return-struct-5-lbv.c: Remove. + * gcc.target/i386/mpx/return-struct-5-nov.c: Remove. + * gcc.target/i386/mpx/return-struct-5-ubv.c: Remove. + * gcc.target/i386/mpx/return-struct-6-lbv.c: Remove. + * gcc.target/i386/mpx/return-struct-6-nov.c: Remove. + * gcc.target/i386/mpx/return-struct-6-ubv.c: Remove. + * gcc.target/i386/mpx/sincos-1-nov.c: Remove. + * gcc.target/i386/mpx/static-array-1-lbv.c: Remove. + * gcc.target/i386/mpx/static-array-1-nov.c: Remove. + * gcc.target/i386/mpx/static-array-1-ubv.c: Remove. + * gcc.target/i386/mpx/static-init-1-lbv.c: Remove. + * gcc.target/i386/mpx/static-init-1-nov.c: Remove. + * gcc.target/i386/mpx/static-init-1-ubv.c: Remove. + * gcc.target/i386/mpx/static-init-2-lbv.c: Remove. + * gcc.target/i386/mpx/static-init-2-nov.c: Remove. + * gcc.target/i386/mpx/static-init-2-ubv.c: Remove. + * gcc.target/i386/mpx/static-init-3-lbv.c: Remove. + * gcc.target/i386/mpx/static-init-3-nov.c: Remove. + * gcc.target/i386/mpx/static-init-3-ubv.c: Remove. + * gcc.target/i386/mpx/static-init-4-lbv.c: Remove. + * gcc.target/i386/mpx/static-init-4-nov.c: Remove. + * gcc.target/i386/mpx/static-init-4-ubv.c: Remove. + * gcc.target/i386/mpx/static-init-5-lbv.c: Remove. + * gcc.target/i386/mpx/static-init-5-nov.c: Remove. + * gcc.target/i386/mpx/static-init-5-ubv.c: Remove. + * gcc.target/i386/mpx/static-init-6-lbv.c: Remove. + * gcc.target/i386/mpx/static-init-6-nov.c: Remove. + * gcc.target/i386/mpx/static-init-6-ubv.c: Remove. + * gcc.target/i386/mpx/static-string-1-lbv.c: Remove. + * gcc.target/i386/mpx/static-string-1-nov.c: Remove. + * gcc.target/i386/mpx/static-string-1-ubv.c: Remove. + * gcc.target/i386/mpx/struct-arg-1-lbv.c: Remove. + * gcc.target/i386/mpx/struct-arg-1-nov.c: Remove. + * gcc.target/i386/mpx/struct-arg-1-ubv.c: Remove. + * gcc.target/i386/mpx/struct-arg-10-lbv.c: Remove. + * gcc.target/i386/mpx/struct-arg-10-nov.c: Remove. + * gcc.target/i386/mpx/struct-arg-10-ubv.c: Remove. + * gcc.target/i386/mpx/struct-arg-2-lbv.c: Remove. + * gcc.target/i386/mpx/struct-arg-2-nov.c: Remove. + * gcc.target/i386/mpx/struct-arg-2-ubv.c: Remove. + * gcc.target/i386/mpx/struct-arg-3-lbv.c: Remove. + * gcc.target/i386/mpx/struct-arg-3-nov.c: Remove. + * gcc.target/i386/mpx/struct-arg-3-ubv.c: Remove. + * gcc.target/i386/mpx/struct-arg-4-lbv.c: Remove. + * gcc.target/i386/mpx/struct-arg-4-nov.c: Remove. + * gcc.target/i386/mpx/struct-arg-4-ubv.c: Remove. + * gcc.target/i386/mpx/struct-arg-5-lbv.c: Remove. + * gcc.target/i386/mpx/struct-arg-5-nov.c: Remove. + * gcc.target/i386/mpx/struct-arg-5-ubv.c: Remove. + * gcc.target/i386/mpx/struct-arg-6-lbv.c: Remove. + * gcc.target/i386/mpx/struct-arg-6-nov.c: Remove. + * gcc.target/i386/mpx/struct-arg-6-ubv.c: Remove. + * gcc.target/i386/mpx/struct-arg-7-lbv.c: Remove. + * gcc.target/i386/mpx/struct-arg-7-nov.c: Remove. + * gcc.target/i386/mpx/struct-arg-7-ubv.c: Remove. + * gcc.target/i386/mpx/struct-arg-8-lbv.c: Remove. + * gcc.target/i386/mpx/struct-arg-8-nov.c: Remove. + * gcc.target/i386/mpx/struct-arg-8-ubv.c: Remove. + * gcc.target/i386/mpx/struct-arg-9-lbv.c: Remove. + * gcc.target/i386/mpx/struct-arg-9-nov.c: Remove. + * gcc.target/i386/mpx/struct-arg-9-ubv.c: Remove. + * gcc.target/i386/mpx/struct-copy-1-lbv.c: Remove. + * gcc.target/i386/mpx/struct-copy-1-nov.c: Remove. + * gcc.target/i386/mpx/struct-copy-1-ubv.c: Remove. + * gcc.target/i386/mpx/struct-copy-2-lbv.c: Remove. + * gcc.target/i386/mpx/struct-copy-2-nov.c: Remove. + * gcc.target/i386/mpx/struct-copy-2-ubv.c: Remove. + * gcc.target/i386/mpx/thread-local-var-1-lbv.c: Remove. + * gcc.target/i386/mpx/thread-local-var-1-nov.c: Remove. + * gcc.target/i386/mpx/thread-local-var-1-ubv.c: Remove. + * gcc.target/i386/mpx/union-arg-1-lbv.c: Remove. + * gcc.target/i386/mpx/union-arg-1-nov.c: Remove. + * gcc.target/i386/mpx/union-arg-1-ubv.c: Remove. + * gcc.target/i386/mpx/va-arg-pack-1-lbv.c: Remove. + * gcc.target/i386/mpx/va-arg-pack-1-nov.c: Remove. + * gcc.target/i386/mpx/va-arg-pack-1-ubv.c: Remove. + * gcc.target/i386/mpx/va-arg-pack-2-lbv.c: Remove. + * gcc.target/i386/mpx/va-arg-pack-2-nov.c: Remove. + * gcc.target/i386/mpx/va-arg-pack-2-ubv.c: Remove. + * gcc.target/i386/mpx/vararg-1-lbv.c: Remove. + * gcc.target/i386/mpx/vararg-1-nov.c: Remove. + * gcc.target/i386/mpx/vararg-1-ubv.c: Remove. + * gcc.target/i386/mpx/vararg-2-lbv.c: Remove. + * gcc.target/i386/mpx/vararg-2-nov.c: Remove. + * gcc.target/i386/mpx/vararg-2-ubv.c: Remove. + * gcc.target/i386/mpx/vararg-3-lbv.c: Remove. + * gcc.target/i386/mpx/vararg-3-nov.c: Remove. + * gcc.target/i386/mpx/vararg-3-ubv.c: Remove. + * gcc.target/i386/mpx/vararg-4-lbv.c: Remove. + * gcc.target/i386/mpx/vararg-4-nov.c: Remove. + * gcc.target/i386/mpx/vararg-4-ubv.c: Remove. + * gcc.target/i386/mpx/vararg-5-lbv.c: Remove. + * gcc.target/i386/mpx/vararg-5-nov.c: Remove. + * gcc.target/i386/mpx/vararg-5-ubv.c: Remove. + * gcc.target/i386/mpx/vararg-6-lbv.c: Remove. + * gcc.target/i386/mpx/vararg-6-nov.c: Remove. + * gcc.target/i386/mpx/vararg-6-ubv.c: Remove. + * gcc.target/i386/mpx/vararg-7-lbv.c: Remove. + * gcc.target/i386/mpx/vararg-7-nov.c: Remove. + * gcc.target/i386/mpx/vararg-7-ubv.c: Remove. + * gcc.target/i386/mpx/vararg-8-lbv.c: Remove. + * gcc.target/i386/mpx/vararg-8-nov.c: Remove. + * gcc.target/i386/mpx/vararg-8-ubv.c: Remove. + * gcc.target/i386/mpx/vla-1-lbv.c: Remove. + * gcc.target/i386/mpx/vla-1-nov.c: Remove. + * gcc.target/i386/mpx/vla-1-ubv.c: Remove. + * gcc.target/i386/mpx/vla-2-lbv.c: Remove. + * gcc.target/i386/mpx/vla-2-nov.c: Remove. + * gcc.target/i386/mpx/vla-2-ubv.c: Remove. + * gcc.target/i386/mpx/vla-trailing-1-lbv.c: Remove. + * gcc.target/i386/mpx/vla-trailing-1-nov.c: Remove. + * gcc.target/i386/mpx/vla-trailing-1-ubv.c: Remove. + * gcc.target/i386/pr63995-2.c: Remove. + * gcc.target/i386/pr64805.c: Remove. + * gcc.target/i386/pr65044.c: Remove. + * gcc.target/i386/pr65167.c: Remove. + * gcc.target/i386/pr65183.c: Remove. + * gcc.target/i386/pr65184.c: Remove. + * gcc.target/i386/pr65523.c: Remove. + * gcc.target/i386/pr70876.c: Remove. + * gcc.target/i386/pr70877.c: Remove. + * gcc.target/i386/pr71458.c: Remove. + * gcc.target/i386/pr80880.c: Remove. + * gcc.target/i386/ret-thunk-25.c: Remove. + * gcc.target/i386/thunk-retbnd.c: Remove. + * lib/mpx-dg.exp: Remove. + * gcc.target/i386/funcspec-56.inc: Adjust test case. + +2018-06-07 Carl Love + + * gcc.target/powerpc/builtins-3-p9-runnable.c: Add debug print + statements. + +2018-06-07 Carl Love + + * gcc.target/powerpc/vsu/vec-cntlz-lsbb-2.c (dg-error): Update expected + error message. + +2018-06-07 Marek Polacek + + PR c/85318 + * gcc.dg/Wc90-c99-compat-10.c: New test. + * gcc.dg/Wc90-c99-compat-11.c: New test. + * gcc.dg/Wc90-c99-compat-12.c: New test. + * gcc.dg/Wc90-c99-compat-9.c: New test. + +2018-06-07 Paul Koning + + * gcc.c-torture/compile/20180605-1.c: New test. + +2018-06-07 Steven G. Kargl + + PR fortran/86045 + * gfortran.dg/pr86045.f90: New test. + +2018-06-07 Marek Polacek + + * g++.dg/cpp0x/range-for9.C: Adjust dg-error. + +2018-06-07 Olga Makhotina + + * gcc.target/i386/funcspec-56.inc: Test arch=tremont. + +2018-06-07 Jozef Lawrynowicz + + * gcc.target/msp430/msp430i-device-symbol.c: New test. + * gcc.target/msp430/msp430f-device-symbol.c: New test. + * gcc.target/msp430/msp430.h: New test header file. + +2018-06-07 Jakub Jelinek + + PR tree-optimization/69615 + * gcc.dg/tree-ssa/pr69615.c: New test. + +2018-06-07 Richard Biener + + PR tree-optimization/85935 + * gcc.dg/graphite/pr85935.c: New testcase. + +2018-06-04 Carl Love + + * gcc.target/powerpc/builtins-8-p9-runnable.c: Add additional + debug print statements. Fix a few formating issues. + +2018-06-06 Michael Meissner + + PR target/85657 + * gcc.target/powerpc/pr85657-4.c: New tests. + * gcc.target/powerpc/pr85657-5.c: Likewise. + * gcc.target/powerpc/pr85657-6.c: Likewise. + +2018-06-06 Thomas Koenig + + PR fortran/85641 + * gfortran.dg/realloc_on_assign_30.f90: New test. + +2018-06-06 Carl Love + * gcc.target/powerpc/builtins-7-p9-runnable.c: Change first + argument to vui_arg. + +2018-06-06 Carl Love + + * gcc.target/powerpc/builtins-3.c: Move tests requiring -mvsx + to builtins-4.c. + * gcc.target/powerpc/builtins-4.c: New test file for tests + that need -mvsx. + +2018-06-06 Michael Meissner + + PR target/85657 + * g++.dg/pr85657.C: Only test whether __ibm128 and long double can + be used in templates. Don't check for them in overloaded functions. + +2018-06-06 Jim Wilson + + * gcc.target/riscv/interrupt-5.c (sub3): Add new test. + * gcc.target/riscv/interrupt-mmode.c: New. + * gcc.target/riscv/interrupt-smode.c: New. + * gcc.target/riscv/interrupt-umode.c: New. + +2018-06-06 Marek Polacek + + PR c++/85977 + * g++.dg/cpp0x/initlist102.C: New test. + * g++.dg/cpp0x/initlist103.C: New test. + * g++.dg/cpp0x/initlist104.C: New test. + +2018-06-06 Eric Botcazou + + * gcc.dg/torture/pr86066.c: New test. + +2018-06-06 Richard Biener + + PR tree-optimization/86062 + * g++.dg/tree-ssa/pr86062.C: New testcase. + +2018-06-06 Jozef Lawrynowicz + + * gcc.target/msp430/function-attributes-4.c: New test. + * gcc.target/msp430/static-interrupts.c: New test. + +2018-06-05 Steve Ellcey + + PR target/79924 + * gcc.target/aarch64/mgeneral-regs_1.c: Update error message. + * gcc.target/aarch64/mgeneral-regs_2.c: Ditto. + * gcc.target/aarch64/mgeneral-regs_3.c: Ditto. + * gcc.target/aarch64/nofp_1.c: Ditto. + +2018-06-05 Andre Vieira + + * gcc.target/arm/cmse/cmse-1c99.c: New test. + +2018-06-05 Cesar Philippidis + + PR fortran/85701 + * gfortran.dg/goacc/pr85701.f90: New test. + +2018-06-05 Marek Polacek + + PR c++/85976 + * g++.dg/cpp0x/alias-decl-64.C: New test. + +2018-06-05 Richard Biener + + PR tree-optimization/86046 + * gcc.dg/pr86046.c: New testcase. + +2018-06-05 Richard Biener + + PR tree-optimization/86047 + * gcc.dg/pr86047.c: New testcase. + +2018-06-05 Kyrylo Tkachov + + PR target/81497 + * g++.target/arm/arm.exp: New file. + * g++.target/arm/pr81497.C: Likewise. + +2018-06-05 Andreas Krebbel + + * gcc.target/s390/htm-builtins-compile-4.c: New test. + +2018-06-04 Eric Botcazou + + * gcc.dg/store_merging_21.c: New test. + * gnat.dg/opt71b.adb: Likewise. + * gnat.dg/opt71.adb: Rename into... + * gnat.dg/opt71a.adb: ...this. + +2018-06-04 Richard Biener + + PR tree-optimization/85955 + * gcc.dg/pr85955.c: New testcase. + +2018-06-04 Steven G. Kargl + + PR fortran/85981 + * gfortran.dg/allocate_alloc_opt_14.f90: New test. + * gfortran.dg/allocate_alloc_opt_1.f90: Update error string. + * gfortran.dg/allocate_stat_2.f90: Ditto. + * gfortran.dg/deallocate_alloc_opt_1.f90: Ditto. + +2018-06-04 Richard Sandiford + + * gcc.target/aarch64/sve/extract_5.c: New test. + +2018-06-04 Jakub Jelinek + + PR target/85832 + PR target/86036 + * gcc.target/i386/avx512f-pr85832.c: Expect vptestnm rather than + vptestm. + * gcc.target/i386/avx512vl-pr85832.c: Likewise. + * gcc.target/i386/avx512vlbw-pr85832.c: Likewise. + * gcc.target/i386/avx512bw-pr85832.c: Likewise. + * gcc.target/i386/avx512bw-pr86036.c: New test. + +2018-06-04 Richard Biener + + PR tree-optimization/86038 + * gcc.dg/pr86038.c: New testcase. + +2018-06-04 Jakub Jelinek + + PR tree-optimization/69615 + * gcc.dg/pr69615.c: New test. + + PR c++/86025 + * c-c++-common/gomp/pr86025.c: New test. + +2018-06-03 Andreas Schwab + + * gcc.target/powerpc/altivec-7.c: Remove extra brace. + +2018-06-03 Eric Botcazou + + * gcc.dg/torture/pr86034.c: New test. + +2018-06-03 Paul Thomas + + PR fortran/36497 + * gfortran.dg/cray_pointer_12.f90: New test. + +2018-06-02 Steven G. Kargl + + PR fortran/85938 + * gfortran.dg/pr85938.f90: Fixed by revision r261081 + +2018-06-02 Eric Botcazou + + * gnat.dg/specs/opt3.ads: New test. + * gnat.dg/specs/opt3_pkg.ads: New helper. + +2018-06-02 Eric Botcazou + + * gnat.dg/discr53.ad[sb]: New test. + * gnat.dg/discr53_pkg.ads: New helper. + +2018-06-01 Carl Love + + * gcc.target/powerpc/vsx-vector-6-be.p7.c: New test file. + * gcc.target/powerpc/vsx-vector-6-be.p8.c: New test file. + +2018-06-01 Carl Love + + * gcc.target/powerpc/altivec-12.c (main): Fix declaration of ucz + to make it consistent with the naming convention in the file. + * gcc.target/powerpc/altivec-7-be.c: Move BE specific checks + to altivec-7.c. Delete file. + * gcc.target/powerpc/altivec-7-le.c: Move LE specific checks + to altivec-7.c. Delete file. + * gcc.target/powerpc/altivec-7.h: Move to altivec-7.c. + * gcc.target/powerpc/altivec-7.c (main): Add vec_unpackh and + vec_unpackl tests. Update instruction counts. + * gcc.target/powerpc/builtins-1-le.c: Move LE specific checks to + tests to builtins-1.c. + * gcc.target/powerpc/builtins-1-be.c: Move BE specific + tests to builtins-1.c. + * gcc.target/powerpc/builtins-1.h: Move to file builtins-1.c. + * gcc.target/powerpc/builtins-1.c (main): Add test case for vec_and. + vec_round, vec_rsqrt, vec_rsqrte, vec_mergee, vec_mergh, vec_mergo. + Remove vec_ctf tests returning double. Remove vec_cts with + double args. Remove vec_sel with invalid arguments. Add tests for + vec_splat. + Add instruction counts for new tests. + * gcc.target/powerpc/builtins-3-runnable.c (main): Add test for + vec_doublee, vec_doubleo, vec_doublel, vec_doubleh, vec_signed, + vec_unsigned. + * gcc.target/powerpc/builtins-3.c: Add tests test_sll_vuill_vuill_vuc, + test_sll_vsill_vsill_vuc. + * gcc.target/powerpc/p9-xxbr-2.c (rev_bool_long_long): Added test for + vec_revb. + * gcc.target/powerpc/vsx-7.h: Rename to vsx-7.c. Remove redundant + tests from altivec-7.h. + * gcc.target/powerpc/vsx-7-be.c: Remove file. + * gcc.target/powerpc/vsx-builtin-7.c: Add test functions splat_sc_s8, + splat_uc_u8, splat_ssi_s16, splat_usi_s16, splat_si_s32, splat_ui_u32, + splat_sll, splat_uc, splat_int128, splat_uint128. + Make second argument of vec_extract and vec_insert a signed int. + * gcc.target/powerpc/vsx-vector-5.c (vrint): Add vrint test for float + argument. + +2018-06-01 Eric Botcazou + + * gcc.dg/store_merging_20.c: New test. + * gnat.dg/opt71.adb: Likewise. + * gnat.dg/opt71_pkg.ads: New helper. + +2018-06-01 Carl Love + + * gcc.target/powerpc/altivec-35.c (foo): Add builtin test vec_madds. + * gcc.target/powerpc/builtins-6-runnable.c (main): Fix typo for output. + Add vec_xst_be for signed and unsigned arguments. + +2018-06-01 Steven G. Kargl + + PR fortran/85816 + PR fortran/85975 + * gfortran.dg/pr85816.f90: New test. + * gfortran.dg/pr85975.f90: New test. + +2018-06-01 Steven G. Kargl + + PR fortran/63570 + * gfortran.dg/random_init_1.f90: New test. + * gfortran.dg/random_init_2.f90: New test. + * gfortran.dg/random_init_3.f90: New test. + * gfortran.dg/random_init_4.f90: New test. + * gfortran.dg/random_init_5.f90: New test. + * gfortran.dg/random_init_6.f90: New test. + +2018-06-01 Richard Sandiford + + PR tree-optimization/85989 + * gcc.dg/torture/pr85989.c: New test. + +2018-06-01 Richard Biener + + PR middle-end/86017 + * gcc.dg/tree-ssa/pr86017.c: New testcase. + +2018-06-01 Richard Biener + + PR ipa/85960 + * gcc.dg/ipa/ipa-pta-19.c: New testcase. + +2018-05-31 Qing Zhao + + PR middle-end/78809 + * gcc.dg/strcmpopt_2.c: New test. + * gcc.dg/strcmpopt_3.c: New test. + + PR middle-end/83026 + * gcc.dg/strcmpopt_3.c: New test. + +2018-05-31 Jakub Jelinek + + PR target/85984 + * gcc.target/i386/pr85984.c: New test. + +2018-05-31 Martin Sebor + + PR c/82063 + * gcc.dg/Walloc-size-larger-than-1.c: New test. + * gcc.dg/Walloc-size-larger-than-10.c: New test. + * gcc.dg/Walloc-size-larger-than-11.c: New test. + * gcc.dg/Walloc-size-larger-than-12.c: New test. + * gcc.dg/Walloc-size-larger-than-13.c: New test. + * gcc.dg/Walloc-size-larger-than-14.c: New test. + * gcc.dg/Walloc-size-larger-than-15.c: New test. + * gcc.dg/Walloc-size-larger-than-16.c: New test. + * gcc.dg/Walloc-size-larger-than-17.c: New test. + * gcc.dg/Walloc-size-larger-than-2.c: New test. + * gcc.dg/Walloc-size-larger-than-3.c: New test. + * gcc.dg/Walloc-size-larger-than-4.c: New test. + * gcc.dg/Walloc-size-larger-than-5.c: New test. + * gcc.dg/Walloc-size-larger-than-6.c: New test. + * gcc.dg/Walloc-size-larger-than-7.c: New test. + * gcc.dg/Walloc-size-larger-than-8.c: New test. + * gcc.dg/Walloc-size-larger-than-9.c: New test. + * gcc.dg/Walloc-size-larger-than.c: New test. + +2018-05-31 Chung-Lin Tang + Cesar Philippidis + + PR middle-end/85879 + * gfortran.dg/goacc/pr77371-1.f90: New test. + * gfortran.dg/goacc/pr77371-2.f90: New test. + * gfortran.dg/goacc/pr85879.f90: New test. + +2018-05-31 Eric Botcazou + + * gnat.dg/stack_usage1.adb: Replace -fstack-usage with -Wstack-usage. + * gnat.dg/stack_usage1b.adb: Likewise. + * gnat.dg/stack_usage1c.adb: Likewise. + * gnat.dg/stack_usage3.adb: Likewise. + * gnat.dg/stack_usage1_pkg.adb: Delete. + +2018-05-31 Eric Botcazou + + * gcc.dg/store_merging_10.c: Turn dg-do compile into dg-do run. + * gcc.dg/store_merging_11.c: Likewise. + * gcc.dg/store_merging_13.c: Likewise. + * gcc.dg/store_merging_14.c: Likewise. + * gcc.dg/store_merging_15.c: Likewise. + * gcc.dg/store_merging_16.c: Likewise. Remove local variable. + +2018-05-31 Ed Schonberg + + * gnat.dg/limited1.adb, gnat.dg/limited1_inner.adb, + gnat.dg/limited1_inner.ads, gnat.dg/limited1_outer.adb, + gnat.dg/limited1_outer.ads: New testcase. + +2018-05-31 Hristian Kirtchev + + * gnat.dg/tampering_check1.adb, gnat.dg/tampering_check1_ivectors.ads, + gnat.dg/tampering_check1_trim.adb, gnat.dg/tampering_check1_trim.ads: + New testcase. + +2018-05-31 Eric Botcazou + + * gnat.dg/size_clause1.adb: New testcase. + +2018-05-31 Javier Miranda + + * gnat.dg/tagged1.adb, gnat.dg/tagged1.ads: New testcase. + +2018-05-31 Sameera Deshpande + + * gcc.target/aarch64/advsimd-intrinsics/vld1x3.c: New test for + vld1x3 intrinsics for aarch64. + * gcc.target/aarch64/advsimd-intrinsics/vst1x2.c: New test for + vst1x2 intrinsics for aarch64. + * gcc.target/aarch64/advsimd-intrinsics/vst1x3.c: New test for + vst1x3 intrinsics for aarch64. + +2018-05-30 Jonathan Wakely + + PR c++/77777 + * g++.dg/diagnostic/pr77777.C: New test. + +2018-05-30 David Pagan + + PR c/55976 + * gcc.dg/noncompile/pr55976-1.c: New test. + * gcc.dg/noncompile/pr55976-2.c: New test. + +2018-05-30 Jan Hubicka + + * gcc.dg/lto/20111213-1_0.c: Fix template. + * gcc.dg/lto/20100603-1_0.c: Fix template. + * gcc.dg/lto/20100603-2_0.c: Fix template. + * gcc.dg/lto/20100603-3_0.c: Fix template. + + * g++.dg/lto/20081109-1_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/20081118_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/20081119-1_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/20081120-1_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/20081120-2_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/20081123_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/20081204-1_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/20081219_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/20090302_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/20090313_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/20091002-2_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/20091002-3_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/20091026-1_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/20100724-1_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/20101010-4_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/20101015-2_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/20110311-1_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/pr45621_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/pr48042_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/pr48354-1_0.C: Add -flinker-output=nolto-rel. + * g++.dg/lto/pr54625-1_0.c: Add -flinker-output=nolto-rel. + * g++.dg/lto/pr54625-2_0.c: Add -flinker-output=nolto-rel. + * g++.dg/lto/pr68811_0.C: Add -flinker-output=nolto-rel. + * g++.dg/torture/pr43760.C: New test. Add -flinker-output=nolto-rel. + * gcc.dg/lto/20081120-1_0.c: Add -flinker-output=nolto-rel. + * gcc.dg/lto/20081120-2_0.c: Add -flinker-output=nolto-rel. + * gcc.dg/lto/20081126_0.c: Add -flinker-output=nolto-rel. + * gcc.dg/lto/20081204-1_0.c: Add -flinker-output=nolto-rel. + * gcc.dg/lto/20081204-2_0.c: Add -flinker-output=nolto-rel. + * gcc.dg/lto/20081212-1_0.c: Add -flinker-output=nolto-rel. + * gcc.dg/lto/20081224_0.c: Add -flinker-output=nolto-rel. + * gcc.dg/lto/20090116_0.c: Add -flinker-output=nolto-rel. + * gcc.dg/lto/20090126-1_0.c: Add -flinker-output=nolto-rel. + * gcc.dg/lto/20090126-2_0.c: Add -flinker-output=nolto-rel. + * gcc.dg/lto/20090206-1_0.c: Add -flinker-output=nolto-rel. + * gcc.dg/lto/20090219_0.c: Add -flinker-output=nolto-rel. + * gcc.dg/lto/20091013-1_0.c: Add -flinker-output=nolto-rel. + * gcc.dg/lto/20091014-1_0.c: Add -flinker-output=nolto-rel. + * gcc.dg/lto/20091015-1_0.c: Add -flinker-output=nolto-rel. + * gcc.dg/lto/20091016-1_0.c: Add -flinker-output=nolto-rel. + * gcc.dg/lto/20091020-1_0.c: Add -flinker-output-nolto-rel. + * gcc.dg/lto/20091020-2_0.c: Add -flinker-output-nolto-rel. + * gcc.dg/lto/20091027-1_0.c: Add -flinker-output-nolto-rel. + * gcc.dg/lto/20100426_0.c: Add -flinker-output-nolto-rel. + * gcc.dg/lto/20100430-1_0.c: Add -flinker-output-nolto-rel. + * gcc.dg/lto/20100603-1_0.c: Add -flinker-output-nolto-rel. + * gcc.dg/lto/20100603-2_0.c: Add -flinker-output-nolto-rel. + * gcc.dg/lto/20100603-3_0.c: Add -flinker-output-nolto-rel. + * gcc.dg/lto/20111213-1_0.c: Add -flinker-output-nolto-rel. + * gcc.dg/lto/pr45736_0.c: Add -flinker-output-nolto-rel. + * gcc.dg/lto/pr52634_0.c: Add -flinker-output-nolto-rel. + * gcc.dg/lto/pr54702_0.c: Add -flinker-output-nolto-rel. + * gcc.dg/lto/pr59323-2_0.c: Add -flinker-output-nolto-rel. + * gcc.dg/lto/pr59323_0.c: Add -flinker-output-nolto-rel. + * gcc.dg/lto/pr60820_0.c: Add -flinker-output-nolto-rel. + * gcc.dg/lto/pr81406_0.c: Add -flinker-output-nolto-rel. + * gcc.dg/lto/pr83388_0.c: Add -flinker-output-nolto-rel. + * gfortran.dg/lto/20091016-1_0.f90: Add -flinker-output-nolto-rel. + * gfortran.dg/lto/20091028-1_0.f90: Add -flinker-output-nolto-rel. + * gfortran.dg/lto/20091028-2_0.f90: Add -flinker-output-nolto-rel. + * gfortran.dg/lto/pr46911_0.f: Add -flinker-output-nolto-rel. + * gfortran.dg/lto/pr47839_0.f90: Add -flinker-output-nolto-rel. + +2018-05-30 Andre Vieira + + Revert: + * gcc/target/aarch64/store_v2vec_lanes.c: Add extra tests. + +2017-05-30 Jackson Woodruff + + * gcc.target/aarch64/simd/ldp_stp_9: New. + * gcc.target/aarch64/simd/ldp_stp_10: New. + * gcc.target/aarch64/simd/ldp_stp_11: New. + * gcc.target/aarch64/simd/ldp_stp_12: New. + +2018-05-30 Ed Schonberg + + * gnat.dg/tls1.adb, gnat.dg/tls1_pkg.ads: New testcase. + +2018-05-30 Hristian Kirtchev + + * gnat.dg/synchronized1.adb, gnat.dg/synchronized1.ads: New testcase. + +2018-05-29 Uros Bizjak + + PR target/85950 + * gcc.target/i386/pr85950.c: New test. + +2018-05-29 Marek Polacek + + PR c++/85883 + * g++.dg/cpp1z/class-deduction55.C: New test. + * g++.dg/cpp1z/class-deduction56.C: New test. + * g++.dg/cpp1z/class-deduction57.C: New test. + +2018-05-29 Jakub Jelinek + + PR c++/85952 + * g++.dg/warn/Wunused-var-33.C: New test. + + PR target/85918 + * gcc.target/i386/avx512dq-pr85918.c: Add -mprefer-vector-width=512 + and -fno-vect-cost-model options. Add aligned(64) attribute to the + arrays. Add suffix 1 to all functions and use 4 iterations rather + than N. Add functions with conversions to and from float. + Add new set of functions with 8 iterations and another one + with 16 iterations, expect 24 vectorized loops instead of just 4. + * gcc.target/i386/avx512dq-pr85918-2.c: New test. + +2018-05-29 Javier Miranda + + * gnat.dg/equal2.adb: New testcase. + +2018-05-29 Ed Schonberg + + * gnat.dg/float_attributes_overflows.adb: New testcase. + +2018-05-29 Pascal Obry + + * gnat.dg/normalize_pathname.adb: New testcase. + +2018-05-29 Tom de Vries + + * lib/scanasm.exp (scan-assembler-times): Use proc name in error + message. + * lib/scanipa.exp (scan-ipa-dump-times): Same. + * lib/scanrtl.exp (scan-rtl-dump-times): Same. + * lib/scantree.exp (scan-tree-dump-times): Same. + +2018-05-29 Tom de Vries + + * lib/scanasm.exp (scan-stack-usage, scan-stack-usage-not) + (scan-ada-spec, scan-ada-spec-not, scan-lto-assembler): + Use proc name as first argument to dg-scan. + +2018-05-29 Tom de Vries + + * lib/scanasm.exp (scan-hidden, scan-not-hidden): Handle being called + with no arguments. + +2018-05-28 Richard Biener + + PR tree-optimization/85934 + * gcc.target/i386/pr85934.c: New testcase. + +2018-05-28 Eric Botcazou + + * gnat.dg/renaming12.adb, gnat.dg/renaming12.ads: New testcase. + +2018-05-28 Eric Botcazou + + * gnat.dg/rep_clause6.adb, gnat.dg/rep_clause6.ads: New testcase. + +2018-05-28 Ed Schonberg + + * gnat.dg/fixedpnt5.adb: New testcase. + +2018-05-28 Justin Squirek + + * gnat.dg/array31.adb: New testcase. + +2018-05-28 Justin Squirek + + * gnat.dg/warn15-core-main.adb, gnat.dg/warn15-core.ads, + gnat.dg/warn15-interfaces.ads, gnat.dg/warn15.ads: New testcase. + +2018-05-27 Steven G. Kargl + + * gfortran.dg/data_stmt_pointer.f90: new test. + +2018-05-27 Jakub Jelinek + + PR target/85918 + * gcc.target/i386/avx512dq-pr85918.c: New test. + +2018-05-25 Jim Wilson + + * gcc.target/riscv/interrupt-1.c: New. + * gcc.target/riscv/interrupt-2.c: New. + * gcc.target/riscv/interrupt-3.c: New. + * gcc.target/riscv/interrupt-4.c: New. + * gcc.target/riscv/interrupt-5.c: New. + +2018-05-25 Steven G. Kargl + + PR fortran/85786 + * gfortran.dg/pr85786.f90: New test. + +2018-05-25 Paul Koning + + * gcc.c-torture/compile/20151204.c: Skip if pdp11. + * gcc.c-torture/compile/pr55921.c: Ditto. + * gcc.c-torture/compile/pr60655-1.c: Ditto. + * gcc.c-torture/compile/vector-align-1.c: Add max alignment if pdp11. + +2018-05-25 Jakub Jelinek + + PR target/85832 + * gcc.target/i386/avx512f-pr85832.c: New test. + * gcc.target/i386/avx512vl-pr85832.c: New test. + * gcc.target/i386/avx512bw-pr85832.c: New test. + * gcc.target/i386/avx512vlbw-pr85832.c: New test. + +2018-05-25 Bin Cheng + + PR tree-optimization/85720 + * gcc.dg/tree-ssa/pr85720.c: New test. + * gcc.target/i386/avx256-unaligned-store-2.c: Disable loop pattern + distribution. + +2018-05-25 Martin Liska + + PR testsuite/85911 + * gcc.dg/tree-prof/update-loopch.c: Do not scan + for 'Removing basic block'. + +2018-05-25 Patrick Bernardi + + * gnat.dg/sec_stack1.adb: New testcase. + +2018-05-25 Ed Schonberg + + * gnat.dg/fixedpnt4.adb: New testcase. + +2018-05-25 Javier Miranda + + * gnat.dg/interface7.adb: New testcase. + +2018-05-25 Hristian Kirtchev + + * gnat.dg/sec_stack2.adb: New testcase. + +2018-05-25 Ed Schonberg + + * gnat.dg/interface6.adb: New testcase. + +2018-05-25 Ed Schonberg + + * gnat.dg/static_pred1.adb, gnat.dg/static_pred1.ads: New testcase. + +2018-05-25 Richard Sandiford + + * lib/target-supports.exp + (check_effective_target_vect_double_cond_arith): Include + multiplication and division. + * gcc.dg/vect/pr53773.c: Do not expect a scalar tail when using + fully-masked loops with a fixed vector length. + * gcc.dg/vect/vect-cond-arith-1.c: Add multiplication and division + tests. + * gcc.target/aarch64/sve/vcond_8.c: Likewise. + * gcc.target/aarch64/sve/vcond_9.c: Likewise. + * gcc.target/aarch64/sve/vcond_12.c: Add multiplication tests. + +2018-05-25 Richard Sandiford + + * gcc.target/aarch64/sve/div_1.c: New test. + * gcc.target/aarch64/sve/div_1_run.c: Likewise. + * gcc.target/aarch64/sve/mul_highpart_2.c: Likewise. + * gcc.target/aarch64/sve/mul_highpart_2_run.c: Likewise. + +2018-05-25 Richard Sandiford + + * gcc.dg/vect/bb-slp-div-1.c: New XFAILed test. + +2018-05-25 Richard Sandiford + + * lib/target-supports.exp + (check_effective_target_vect_double_cond_arith): New proc. + * gcc.dg/vect/vect-cond-arith-1.c: New test. + * gcc.target/aarch64/sve/vcond_8.c: Likewise. + * gcc.target/aarch64/sve/vcond_8_run.c: Likewise. + * gcc.target/aarch64/sve/vcond_9.c: Likewise. + * gcc.target/aarch64/sve/vcond_9_run.c: Likewise. + * gcc.target/aarch64/sve/vcond_12.c: Likewise. + * gcc.target/aarch64/sve/vcond_12_run.c: Likewise. + +2018-05-25 Janus Weil + + PR fortran/85839 + * gfortran.dg/f2018_obs.f90: New test case. + +2018-05-24 Steven G. Kargl + + PR fortran/85543 + * gfortran.dg/pr85543.f90: New test. + +2018-05-24 Steven G. Kargl + + PR fortran/85780 + * gfortran.dg/pr85780.f90: New test. + +2018-05-24 Steven G. Kargl + + PR fortran/85779 + * gfortran.dg/pr85779_1.f90: New test. + * gfortran.dg/pr85779_2.f90: Ditto. + * gfortran.dg/pr85779_3.f90: Ditto. + +2018-05-24 Steven G. Kargl + + PR fortran/85895 + + * gfortran.dg/coarray_3.f90: Fix invalid testcase. + * gfortran.dg/pr85895.f90: New test. + +2018-05-24 Uros Bizjak + + * gcc.target/i386/avx512f-vcvtusi2sd64-1.c: Update scan string. + * gcc.target/i386/avx512f-vcvtusi2ss64-1.c: Ditto. + +2018-05-24 Roger Sayle + + * gcc.dg/fold-popcount-1.c: New testcase. + * gcc.dg/fold-popcount-2.c: New testcase. + * gcc.dg/fold-popcount-3.c: New testcase. + * gcc.dg/fold-popcount-4.c: New testcase. + +2018-05-24 Marek Polacek + + PR c++/85847 + * g++.dg/cpp0x/new3.C: New test. + +2018-05-24 Javier Miranda + + * gnat.dg/discr52.adb: New testcase. + +2018-05-24 Ed Schonberg + + * gnat.dg/others1.adb: New testcase. + +2018-05-24 Justin Squirek + + * gnat.dg/raise_expr.adb: New testcase. + +2018-05-24 Hristian Kirtchev + + * gnat.dg/formal_containers.adb: New testcase. + +2018-05-24 Rainer Orth + + * gcc.target/i386/pr85345.c: Require ifunc support. + +2018-05-24 Richard Sandiford + + * gcc.dg/vect/vect-fma-1.c: New test. + +2018-05-24 Rainer Orth + + * gcc.dg/tree-prof/update-loopch.c: Fix dumpfile name in + scan-tree-dump*. + +2018-05-24 Andre Vieira + + PR target/83009 + * gcc/target/aarch64/store_v2vec_lanes.c: Add extra tests. + +2018-05-23 Jozef Lawrynowicz + + PR target/78849 + * gcc.target/msp430/msp430.exp: Remove -pedantic-errors from + DEFAULT_CFLAGS. + * gcc.target/msp430/pr78849.c: New test. + +2018-05-23 Marek Polacek + + * g++.dg/cpp2a/range-for8.C: New test. + * g++.dg/cpp2a/range-for9.C: New test. + * g++.dg/cpp2a/range-for10.C: New test. + +2017-05-23 Segher Boessenkool + + * lib/target-supports.exp (check_effective_target_be): New. + (check_effective_target_le): New. + +2018-05-23 Marek Polacek + + * g++.dg/cpp2a/range-for1.C: New test. + * g++.dg/cpp2a/range-for2.C: New test. + * g++.dg/cpp2a/range-for3.C: New test. + * g++.dg/cpp2a/range-for4.C: New test. + * g++.dg/cpp2a/range-for5.C: New test. + * g++.dg/cpp2a/range-for6.C: New test. + * g++.dg/cpp2a/range-for7.C: New test. + +2018-05-23 Uros Bizjak + + * gcc.target/i386/cvt-3.c: New test. + +2018-05-23 Uros Bizjak + + * gcc.target/i386/cvt-2.c: New test. + +2018-05-23 Alexander Monakov + + * gcc.dg/pr79985.c: New testcase. + +2018-05-23 Richard Biener + + * gcc.dg/tree-ssa/ssa-fre-66.c: New testcase. + +2018-05-23 Sudakshina Das + + PR target/84882 + * gcc.target/aarch64/pr84882.c: New test. + * gcc.target/aarch64/target_attr_18.c: Likewise. + +2018-05-23 Richard Sandiford + + PR tree-optimization/85853 + * gfortran.dg/vect/pr85853.f90: New test. + +2018-05-23 Hristian Kirtchev + + * gnat.dg/import2.adb: New testcase. + +2018-05-23 Ed Schonberg + + * gnat.dg/discr51.adb: New testcase. + +2018-05-23 Javier Miranda + + * gnat.dg/valid_scalars1.adb: New testcase. + +2018-05-23 Ed Schonberg + + * gnat.dg/iter1.adb, gnat.dg/iter1.ads: New testcase. + +2018-05-23 Hristian Kirtchev + + * gnat.dg/elab5.adb, gnat.dg/elab5_pkg.adb, gnat.dg/elab5_pkg.ads: New + testcase. + +2018-05-23 Hristian Kirtchev + + * gnat.dg/elab4.adb, gnat.dg/elab4_pkg.adb, gnat.dg/elab4_pkg.ads: New + testcase. + +2018-05-23 Bob Duff + + * gnat.dg/addr10.adb: New testcase. + +2018-05-23 Richard Biener + + PR middle-end/85874 + * gcc.dg/Wstrict-overflow-27.c: New testcase. + +2018-05-23 Yury Gribov + + PR tree-optimization/85822 + * c-c++-common/pr85822.c: New test. + +2018-05-23 Richard Biener + + * gcc.dg/tree-ssa/ssa-fre-65.c: New testcase. + +2018-05-22 Janus Weil + + PR fortran/85841 + * gfortran.dg/pr30667.f: Add option "-std=legacy". + +2018-05-22 Martin Sebor + + PR middle-end/85359 + * gcc.dg/attr-nonstring.c: New test. + +2018-05-22 H.J. Lu + + PR target/85345 + * gcc.target/i386/pr85345.c: New test. + +2018-05-22 Luis Machado + + * gcc.target/aarch64/lsl_asr_sbfiz.c: New test. + +2018-05-22 Janus Weil + + PR fortran/85841 + * gfortran.dg/gomp/appendix-a/a.6.1.f90: Replace dg-options by + dg-additional-options. + * gfortran.dg/graphite/block-2.f: Ditto. + * gfortran.dg/graphite/id-19.f: Ditto. + * gfortran.dg/vect/Ofast-pr50414.f90: Ditto. + * gfortran.dg/vect/cost-model-pr34445a.f: Ditto. + * gfortran.dg/vect/pr52580.f: Ditto. + +2018-05-22 Jackson Woodruff + + * gcc.target/aarch64/ldp_stp_6.c: New. + * gcc.target/aarch64/ldp_stp_7.c: New. + * gcc.target/aarch64/ldp_stp_8.c: New. + +2018-05-22 Martin Sebor + + PR c/85623 + * c-c++-common/attr-nonstring-3.c: Adjust. + * c-c++-common/attr-nonstring-4.c: Adjust. + * c-c++-common/attr-nonstring-6.c: New test. + +2018-05-22 Martin Sebor + + PR tree-optimization/85826 + * gcc.dg/Wrestrict-17.c: New test. + +2018-05-22 Richard Sandiford + + * gcc.dg/torture/pr85862.c: Rename to... + * gcc.dg/torture/pr85852.c: ...this. + +2018-05-22 Justin Squirek + + * gnat.dg/warn14.adb: New testcase. + +2018-05-22 Hristian Kirtchev + + * gnat.dg/controlled8.adb: New testcase. + +2018-05-22 Patrick Bernardi + + * gnat.dg/discr50.adb: New testcase. + +2018-05-22 Ed Schonberg + + * gnat.dg/discr49.adb, gnat.dg/discr49_rec1.adb, + gnat.dg/discr49_rec1.ads, gnat.dg/discr49_rec2.adb, + gnat.dg/discr49_rec2.ads: New testcase. + +2018-05-22 Ed Schonberg + + * gnat.dg/gen_formal_pkg.adb, gnat.dg/gen_formal_pkg_a.ads, + gnat.dg/gen_formal_pkg_b.ads, gnat.dg/gen_formal_pkg_w.ads: New + testcase. + +2018-05-22 Ed Schonberg + + * gnat.dg/fixedpnt3.adb: New testcase. + +2018-05-22 Justin Squirek + + * gnat.dg/pure_function1.adb, gnat.dg/pure_function1.ads, + gnat.dg/pure_function2.adb, gnat.dg/pure_function2.ads: New testcases. + +2018-05-22 Richard Sandiford + + PR middle-end/85862 + * gcc.dg/torture/pr85862.c: New test. + +2018-05-22 Richard Biener + + PR tree-optimization/85834 + * g++.dg/torture/pr85834.C: New testcase. + * gcc.dg/tree-ssa/ssa-fre-64.c: Likewise. + +2018-05-22 Martin Liska + + PR ipa/85607 + * g++.dg/ipa/pr85607.C: New test. + +2018-05-22 Richard Biener + + PR tree-optimization/85863 + * gfortran.fortran-torture/compile/pr85863.f: New testcase. + +2018-05-22 Janus Weil + + PR fortran/85841 + * gfortran.dg/assumed_rank_5.f90: Update error message. + * gfortran.dg/assumed_type_4.f90: Ditto. + * gfortran.dg/bind_c_array_params.f03: Ditto. + * gfortran.dg/bind_c_usage_28.f90: Ditto. + * gfortran.dg/c_funloc_tests_5.f03: Ditto. + * gfortran.dg/c_funloc_tests_6.f90: Ditto. + * gfortran.dg/c_loc_tests_11.f03: Ditto. + * gfortran.dg/coarray_atomic_2.f90: Ditto. + * gfortran.dg/coarray_collectives_2.f90: Ditto. + * gfortran.dg/coarray_collectives_10.f90: Ditto. + * gfortran.dg/coarray_collectives_13.f90: Ditto. + * gfortran.dg/rank_3.f90: Ditto. + * gfortran.dg/error_stop_4.f90: Replace -std=f2008ts by -std=f2008. + * gfortran.dg/implicit_14.f90: Ditto. + +2018-05-21 Christian Groessler + + * gcc.c-torture/compile/simd-5.c: Fix comment. + +2018-05-21 Michael Meissner + + PR target/85657 + * gcc.target/powerpc/pr85657-1.c: New test for converting between + __float128, __ibm128, and long double. + * gcc.target/powerpc/pr85657-2.c: Likewise. + * gcc.target/powerpc/pr85657-3.c: Likewise. + * g++.dg/pr85667.C: New test to make sure __ibm128 is + implementated as a separate type internally, and is not just an + alias for long double. + +2018-05-21 Richard Sandiford + + PR tree-optimization/85814 + * gcc.dg/torture/pr85814.c: New test. + +2018-05-21 Paolo Carlini + + PR c++/84588 + * g++.dg/cpp0x/cond1.C: New. + * g++.dg/cpp1y/pr84588-1.C: Likewise. + * g++.dg/cpp1y/pr84588-2.C: Likewise. + * g++.dg/cpp1y/pr84588-3.C: Likewise. + * g++.dg/parse/cond6.C: Likewise. + * g++.dg/parse/cond7.C: Likewise. + * g++.dg/parse/cond8.C: Likewise. + * g++.dg/cpp1z/decomp16.C: Update. + * g++.old-deja/g++.jason/cond.C: Likewise. + +2018-05-21 Steven G. Kargl + + ChangeLog for r260480 + * gfortran.dg/graphite/block-2.f: Adjust testcase for new gfortran + warnings for deleted and obsolescent features. + * gfortran.dg/graphite/id-19.f: Ditto. + * gfortran.dg/graphite/id-20.f: Ditto. + * gfortran.dg/graphite/id-27.f90: Ditto. + * gfortran.dg/graphite/pr82449.f: Ditto. + +2018-05-21 Kyrylo Tkachov + + * gcc.target/aarch64/vec_init_1.c: Scan for LD1 instead of INS for + tiny and large memory models. + +2018-04-04 Ed Schonberg + + * gnat.dg/suppress_initialization.adb, + gnat.dg/suppress_initialization_pkg.ads: New testcase. + +2018-04-04 Ed Schonberg + + * gnat.dg/exit1.adb: New testcase. + +2018-04-04 Ed Schonberg + + * gnat.dg/array30.adb: New testcase. + +2018-04-04 Hristian Kirtchev + + * gnat.dg/sync2.adb, gnat.dg/sync2.ads: New testcase. + +2018-05-21 Kyrylo Tkachov + + * gcc.c-torture/execute/ssad-run.c: New test. + * gcc.c-torture/execute/usad-run.c: Likewise. + * gcc.target/aarch64/ssadv16qi.c: Likewise. + * gcc.target/aarch64/usadv16qi.c: Likewise. + +2018-05-21 Tamar Christina + + * gcc.target/gcc.target/aarch64/sha3.h (veor3q_u8, veor3q_u32, + veor3q_u64, veor3q_s8, veor3q_s16, veor3q_s32, veor3q_s64, vbcaxq_u8, + vbcaxq_u32, vbcaxq_u64, vbcaxq_s8, vbcaxq_s16, vbcaxq_s32, + vbcaxq_s64): New. + * gcc.target/gcc.target/aarch64/sha3_1.c: Likewise. + * gcc.target/gcc.target/aarch64/sha3_1.c: Likewise. + * gcc.target/gcc.target/aarch64/sha3_1.c: Likewise. + +2018-05-21 Janus Weil + + PR fortran/85841 + * gfortran.dg/g77/19990826-3.f: Add option "-std=legacy". + * gfortran.dg/g77/20020307-1.f: Ditto. + * gfortran.dg/g77/980310-3.f: Ditto. + * gfortran.dg/goacc/loop-1-2.f95: Ditto. + * gfortran.dg/goacc/loop-1.f95: Ditto. + * gfortran.dg/gomp/appendix-a/a.6.1.f90: Ditto. + * gfortran.dg/gomp/appendix-a/a.6.2.f90: Ditto. + * gfortran.dg/gomp/do-1.f90: Ditto. + * gfortran.dg/gomp/omp_do1.f90: Ditto. + * gfortran.dg/pr17229.f: Ditto. + * gfortran.dg/pr37243.f: Ditto. + * gfortran.dg/pr49721-1.f: Ditto. + * gfortran.dg/pr58484.f: Ditto. + * gfortran.dg/pr81175.f: Ditto. + * gfortran.dg/pr81723.f: Ditto. + * gfortran.dg/predcom-2.f: Ditto. + * gfortran.dg/vect/Ofast-pr50414.f90: Ditto. + * gfortran.dg/vect/cost-model-pr34445a.f: Ditto. + * gfortran.dg/vect/fast-math-mgrid-resid.f: Ditto. + * gfortran.dg/vect/pr52580.f: Ditto. + +2018-05-20 Paul Thomas + + PR fortran/80657 + * gfortran.dg/char_result_18.f90: New test. + +2018-05-20 Paul Thomas + + PR fortran/49636 + * gfortran.dg/associate_38.f90: New test. + +2018-05-20 Paul Thomas + + PR fortran/82275 + * gfortran.dg/select_type_42.f90: New test. + +2018-05-19 Paul Thomas + + PR fortran/82923 + * gfortran.dg/allocate_assumed_charlen_4.f90: New test. Note + that the patch fixes PR66694 & PR82617, although the testcases + are not explicitly included. + +2018-05-18 Kito Cheng + + * gcc.dg/stack-usage-1.c: Add support for rv32e. + +2018-05-18 Marc Glisse + + PR c++/82899 + * g++.dg/pr82899.C: New testcase. + +2018-05-18 Martin Liska + + * gcc.dg/pr68766.c: Change pruned output. + +2018-05-18 Cesar Philippidis + + PR c++/85782 + * c-c++-common/goacc/pr85782.c: New test. + +2018-05-18 Sudakshina Das + + * gcc.target/aarch64/sve/slp_5.c: Remove xfail for tld1d and tld2d. + +2018-05-18 Kyrylo Tkachov + + * gcc.target/arm/pr62554.c: Delete. + * gcc.target/arm/pr69610-1.c: Likewise. + * gcc.target/arm/pr69610-2.c: Likewise. + +2018-05-18 Kyrylo Tkachov + + * gcc.target/arm/pr40887.c: Update comment. + * lib/target-supports.exp: Don't generate effective target checks + and related helpers for armv5. Update comment. + * gcc.target/arm/armv5_thumb_isa.c: Delete. + * gcc.target/arm/di-longlong64-sync-withhelpers.c: Update effective + target check and options. + +2018-05-18 Prathamesh Kulkarni + + PR middle-end/85817 + * gcc.dg/tree-ssa/pr83648.c: Change scan-tree-dump to + scan-tree-dump-not for h. + +2018-05-18 Richard Biener + + * gcc.dg/tree-ssa/pr21559.c: Adjust. + * gcc.dg/tree-ssa/pr45397.c: Likewise. + * gcc.dg/tree-ssa/pr61839_1.c: Likewise. + * gcc.dg/tree-ssa/pr61839_2.c: Likewise. + * gcc.dg/tree-ssa/pr61839_4.c: Likewise. + * gcc.dg/tree-ssa/vrp17.c: Likewise. + * gcc.dg/tree-ssa/vrp18.c: Likewise. + * gcc.dg/tree-ssa/vrp23.c: Likewise. + * gcc.dg/tree-ssa/vrp24.c: Likewise. + * gcc.dg/tree-ssa/vrp58.c: Likewise. + * gcc.dg/vrp-min-max-1.c: Likewise. + * gcc.dg/vrp-min-max-3.c: New testcase. + +2018-05-18 Richard Biener + + * gcc.dg/tree-ssa/ssa-dse-35.c: New testcase. + * gcc.dg/graphite/scop-10.c: Adjust to avoid dead code. + * gcc.dg/graphite/scop-6.c: Likewise. + * gcc.dg/graphite/scop-7.c: Likewise. + * gcc.dg/graphite/scop-8.c: Likewise. + * gcc.dg/graphite/scop-9.c: Likewise. + +2018-05-18 Kyrylo Tkachov + + * gcc.target/aarch64/vect-init-ld1.c: New test. + +2018-05-18 Martin Liska + + * gcc.dg/tree-ssa/vrp104.c: Adjust dump file that is scanned. + * gcc.dg/tree-prof/update-loopch.c: Likewise. + +2018-05-18 Martin Liska + + * gcc.dg/ipa/ipa-icf-39.c: New test. + * gcc.dg/pr68766.c: Adjust pruned output. + +2018-05-18 Richard Sandiford + + * lib/target-supports.exp (check_effective_target_scalar_all_fma): + New proc. + * gcc.dg/fma-1.c: New test. + * gcc.dg/fma-2.c: Likewise. + * gcc.dg/fma-3.c: Likewise. + * gcc.dg/fma-4.c: Likewise. + * gcc.dg/fma-5.c: Likewise. + * gcc.dg/fma-6.c: Likewise. + * gcc.dg/fma-7.c: Likewise. + * gcc.dg/gimplefe-26.c: Use .FMA instead of __FMA and require + scalar_all_fma. + * gfortran.dg/reassoc_7.f: Pass -ffp-contract=off. + * gfortran.dg/reassoc_8.f: Likewise. + * gfortran.dg/reassoc_9.f: Likewise. + * gfortran.dg/reassoc_10.f: Likewise. + +2018-05-17 Jim Wilson + + * gcc.target/riscv/switch-qi.c: New. + * gcc.target/riscv/switch-si.c: New. + +2018-05-17 Pat Haugen + + PR target/85698 + * gcc.target/powerpc/pr85698.c: New test. + +2018-05-17 Richard Biener + + * gcc.dg/tree-ssa/ssa-fre-63.c: New testcase. + +2018-05-17 Bin Cheng + + PR tree-optimization/85793 + * gcc.dg/vect/pr85793.c: New test. + +2018-05-17 Richard Sandiford + + * gcc.dg/gimplefe-28.c: New test. + * gcc.dg/asan/use-after-scope-9.c: Adjust expected output for + internal function calls. + * gcc.dg/goacc/loop-processing-1.c: Likewise. + +2018-05-17 Martin Liska + + * gcc.dg/plugin/ggcplug.c (plugin_init): Do not use + space in between 'G_' and '('. + +2018-05-17 Jakub Jelinek + + PR target/85323 + * gcc.target/i386/pr85323-7.c: New test. + * gcc.target/i386/pr85323-8.c: New test. + * gcc.target/i386/pr85323-9.c: New test. + + PR target/85323 + * gcc.target/i386/pr85323-4.c: New test. + * gcc.target/i386/pr85323-5.c: New test. + * gcc.target/i386/pr85323-6.c: New test. + + PR target/85323 + * gcc.target/i386/pr85323-1.c: New test. + * gcc.target/i386/pr85323-2.c: New test. + * gcc.target/i386/pr85323-3.c: New test. + + * gcc.target/i386/avx512f-set-v32hi-1.c: New test. + * gcc.target/i386/avx512f-set-v32hi-2.c: New test. + * gcc.target/i386/avx512f-set-v32hi-3.c: New test. + * gcc.target/i386/avx512f-set-v32hi-4.c: New test. + * gcc.target/i386/avx512f-set-v32hi-5.c: New test. + * gcc.target/i386/avx512f-set-v64qi-1.c: New test. + * gcc.target/i386/avx512f-set-v64qi-2.c: New test. + * gcc.target/i386/avx512f-set-v64qi-3.c: New test. + * gcc.target/i386/avx512f-set-v64qi-4.c: New test. + * gcc.target/i386/avx512f-set-v64qi-5.c: New test. + * gcc.target/i386/avx512f-setzero-1.c: New test. + +2018-05-17 James Greenhalgh + + * gcc.target/aarch64/vect-slp-dup.c: New. + +2018-05-17 Paolo Carlini + + PR c++/85713 + * g++.dg/cpp1y/lambda-generic-85713-2.C: New. + +2018-05-17 Olga Makhotina + + * gcc.target/i386/builtin_target.c: Test goldmont-plus. + * gcc.target/i386/funcspec-56.inc: Tests for arch=goldmont-plus. + +2018-05-17 Richard Biener + + PR tree-optimization/85757 + * gcc.dg/tree-ssa/ssa-dse-34.c: New testcase. + +2018-05-16 Marek Polacek + + PR c++/85363 + * g++.dg/cpp0x/initlist-throw1.C: New test. + * g++.dg/cpp0x/initlist-throw2.C: New test. + +2018-05-16 Carl Love + + * gcc.target/powerpc/vsx-vector-6-be.c: Remove file. + * gcc.target/powerpc/vsx-vector-6-le.c (dg-final): Update counts for + xvcmpeqdp., xvcmpgtdp., xvcmpgedp., xxlxor, xvrdpi. + +2018-05-16 Richard Biener + + * gcc.dg/tree-ssa/ssa-dse-32.c: New testcase. + * gcc.dg/tree-ssa/ssa-dse-33.c: Likewise. + * gcc.dg/uninit-pr81897-2.c: Use -fno-tree-dse. + +2018-05-16 Richard Sandiford + + * gcc.target/aarch64/sve/vcond_10.c: New test. + * gcc.target/aarch64/sve/vcond_10_run.c: Likewise. + * gcc.target/aarch64/sve/vcond_11.c: Likewise. + * gcc.target/aarch64/sve/vcond_11_run.c: Likewise. + +2018-05-15 Martin Sebor + + PR tree-optimization/85753 + * gcc.dg/Wrestrict-10.c: Adjust. + * gcc.dg/Wrestrict-16.c: New test. + +2018-05-15 Martin Sebor + + PR middle-end/85643 + * c-c++-common/attr-nonstring-7.c: New test. + +2018-05-15 Richard Biener + + * gcc.dg/tree-ssa/ssa-dse-31.c: New testcase. + +2018-05-15 Prathamesh Kulkarni + + PR tree-optimization/83648 + * gcc.dg/tree-ssa/pr83648.c: New test. + * gcc.dg/tree-ssa/pr83648-2.c: Likewise. + +2018-05-14 Prathamesh Kulkarni + + PR ipa/85734 + * gcc.dg/ipa/pr85734.c: New test. + +2018-05-14 Eric Botcazou + + PR target/85756 + * gnat.dg/opt70.adb: New test. + * gnat.dg/opt70_pkg.ad[sb]: New helper. + +2018-05-14 Kyrylo Tkachov + + * gcc.target/aarch64/crypto-fuse-1.c: New test. + * gcc.target/aarch64/crypto-fuse-2.c: Likewise. + +2018-05-14 Wilco Dijkstra + + * gcc.target/aarch64/vmov_n_1.c: Update test. + * gcc.target/aarch64/vfp-1.c: Update test. + +2018-05-14 Jakub Jelinek + + PR target/85756 + * gcc.c-torture/execute/pr85756.c: New test. + +2018-05-14 Sebastian Peryt + + * gcc.target/i386/cldemote-1.c: New test. + +2018-05-13 Paul Thomas + + PR fortran/85742 + * gfortran.dg/assumed_type_9.f90 : New test. + +2018-05-11 Steven G. Kargl + + PR fortran/85542 + * gfortran.dg/pr85542.f90: New test. + +2018-05-11 Martin Jambor + + PR ipa/85655 + * g++.dg/lto/pr85655_0.C: New test. + +2018-05-11 Sebastian Peryt + + * gcc.target/i386/tpause-1.c: New test. + * gcc.target/i386/umonitor-1.c: New test. + +2018-05-11 Jakub Jelinek + + PR c/85696 + * c-c++-common/gomp/pr85696.c: New test. + +2018-05-11 Allan Sandfeld Jensen + Jakub Jelinek + + PR tree-optimization/85692 + * gcc.target/i386/pr85692.c: New test. + +2018-05-11 Martin Liska + + PR sanitizer/85556 + * c-c++-common/ubsan/attrib-6.c: New test. + +2018-05-10 Steven G. Kargl + + PR fortran/85687 + * gfortran.dg/pr85687.f90: new test. + +2018-05-10 Steven G. Kargl + + PR fortran/85521 + * gfortran.dg/pr85521_1.f90: New test. + * gfortran.dg/pr85521_2.f90: New test. + +2018-05-10 Steven G. Kargl + + PR fortran/70870 + * gfortran.dg/pr70870_1.f90: New test. + +2018-05-10 Uros Bizjak + + * gcc.target/i386/xgetsetbv.c: Check also variable arguments. + +2018-05-10 Jakub Jelinek + + PR c++/85662 + * g++.dg/ext/offsetof2.C: New test. + +2018-05-10 Paul Thomas + + PR fortran/68846 + * gfortran.dg/temporary_3.f90 : New test. + + PR fortran/70864 + * gfortran.dg/temporary_2.f90 : New test. + +2018-05-10 Segher Boessenkool + + * gcc.dg/vmx/extract-be-order.c: Delete testcase. + * gcc.dg/vmx/extract-vsx-be-order.c: Delete testcase. + * gcc.dg/vmx/insert-be-order.c: Delete testcase. + * gcc.dg/vmx/insert-vsx-be-order.c: Delete testcase. + * gcc.dg/vmx/ld-be-order.c: Delete testcase. + * gcc.dg/vmx/ld-vsx-be-order.c: Delete testcase. + * gcc.dg/vmx/lde-be-order.c: Delete testcase. + * gcc.dg/vmx/ldl-be-order.c: Delete testcase. + * gcc.dg/vmx/ldl-vsx-be-order.c: Delete testcase. + * gcc.dg/vmx/merge-be-order.c: Delete testcase. + * gcc.dg/vmx/merge-vsx-be-order.c: Delete testcase. + * gcc.dg/vmx/mult-even-odd-be-order.c: Delete testcase. + * gcc.dg/vmx/pack-be-order.c: Delete testcase. + * gcc.dg/vmx/perm-be-order.c: Delete testcase. + * gcc.dg/vmx/splat-be-order.c: Delete testcase. + * gcc.dg/vmx/splat-vsx-be-order.c: Delete testcase. + * gcc.dg/vmx/st-be-order.c: Delete testcase. + * gcc.dg/vmx/st-vsx-be-order.c: Delete testcase. + * gcc.dg/vmx/ste-be-order.c: Delete testcase. + * gcc.dg/vmx/stl-be-order.c: Delete testcase. + * gcc.dg/vmx/stl-vsx-be-order.c: Delete testcase. + * gcc.dg/vmx/sum2s-be-order.c: Delete testcase. + * gcc.dg/vmx/unpack-be-order.c: Delete testcase. + * gcc.dg/vmx/vsums-be-order.c: Delete testcase. + * gcc.target/powerpc/vec-setup-be-double.c: Delete testcase. + * gcc.target/powerpc/vec-setup-be-long.c: Delete testcase. + * gcc.target/powerpc/vec-setup.h: Remove -maltivec=be support. + +2018-05-10 Jakub Jelinek + + PR tree-optimization/85699 + * gcc.dg/nextafter-1.c (NO_LONG_DOUBLE): Define if not defined. Use + !NO_LONG_DOUBLE instead of __LDBL_MANT_DIG__ != 106. + * gcc.dg/nextafter-2.c: Include stdlib.h. For glibc < 2.24 define + NO_LONG_DOUBLE to 1 before including nextafter-1.c. + +2018-05-10 Eric Botcazou + + * g++.dg/tls/pr85400.C: New test. + +2018-05-09 Paolo Carlini + + PR c++/85713 + * g++.dg/cpp1y/lambda-generic-85713.C: New. + +2018-05-09 Carl Love + + * gcc.target/powerpc/builtins-8-runnable.c: New builtin test file. + +2018-05-09 Paolo Carlini + + PR c++/85713 + Revert: + 2018-05-08 Paolo Carlini + + PR c++/84588 + * g++.dg/cpp1y/pr84588.C: New. + +2018-05-09 Andreas Schwab + + * gcc.target/aarch64/sve/vcond_6.c: Add missing brace. + +2018-05-09 Richard Sandiford + + * gcc.target/aarch64/store_lane_spill_1.c: New test. + * gcc.target/aarch64/sve/store_lane_spill_1.c: Likewise. + +2018-05-08 Carl Love + * gcc.target/powerpc/builtins-8-p9-runnable.c: Add new test file. + +2018-05-08 Paolo Carlini + + PR c++/84588 + * g++.dg/cpp1y/pr84588.C: New. + +2018-05-08 Marek Polacek + + PR c++/85695 + * g++.dg/cpp1z/constexpr-if22.C: New test. + +2018-05-08 Uros Bizjak + + PR target/85693 + * gcc.target/i386/pr85693.c: New test. + +2018-05-08 Jakub Jelinek + + PR target/85683 + * gcc.target/i386/pr49095.c: Add -masm=att to dg-options. Add + scan-assembler-times checking that except for [fh]*xor other functions + don't use any load instructions. + +2018-05-08 Olga Makhotina + + * gcc.target/i386/builtin_target.c: Test goldmont. + * gcc.target/i386/funcspec-56.inc: Tests for arch=goldmont and + arch=silvermont. + +2018-05-08 Jakub Jelinek + + PR target/85572 + * g++.dg/other/sse2-pr85572-1.C: New test. + * g++.dg/other/sse2-pr85572-2.C: New test. + * g++.dg/other/sse4-pr85572-1.C: New test. + * g++.dg/other/avx2-pr85572-1.C: New test. + + PR target/85317 + * gcc.target/i386/pr85317.c: New test. + * gcc.target/i386/avx2-vpmovmskb-2.c (avx2_test): Add asm volatile + optimization barrier to avoid optimizing away the expected insn. + + PR target/85480 + * gcc.target/i386/avx512dq-pr85480-1.c: New test. + * gcc.target/i386/avx512dq-pr85480-2.c: New test. + +2018-05-08 Richard Sandiford + + * g++.dg/other/sve_const_pred_1.C: Rename to... + * g++.target/aarch64/sve/const_pred_1.C: ...this. Remove aarch64 + target selectors and explicit -march options. + * g++.dg/other/sve_const_pred_2.C: Rename to... + * g++.target/aarch64/sve/const_pred_2.C: ...this and adjust likewise. + * g++.dg/other/sve_const_pred_3.C: Rename to... + * g++.target/aarch64/sve/const_pred_3.C: ...this and adjust likewise. + * g++.dg/other/sve_const_pred_4.C: Rename to... + * g++.target/aarch64/sve/const_pred_4.C: ...this and adjust likewise. + * g++.dg/other/sve_tls_2.C: Rename to... + * g++.target/aarch64/sve/tls_2.C: ...this and adjust likewise. + * g++.dg/other/sve_vcond_1.C: Rename to... + * g++.target/aarch64/sve/vcond_1.C: ...this and adjust likewise. + * g++.dg/other/sve_vcond_1_run.C: Rename to... + * g++.target/aarch64/sve/vcond_1_run.C: ...this and adjust likewise. + +2018-05-08 Richard Sandiford + + PR testsuite/85586 + * gcc.dg/vect/pr85586.c: Restrict LOOP VECTORIZED test to + !vect_no_align. + +2018-05-08 Paolo Carlini + + PR c++/57429 + * g++.dg/cpp0x/deleted14.C: New. + +2018-05-08 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.target/aarch64/sve/vcond_6.c: Do not expect any ANDs. + XFAIL the BIC test. + * gcc.target/aarch64/sve/vcond_7.c: New test. + * gcc.target/aarch64/sve/vcond_7_run.c: Likewise. + +2018-05-08 Paolo Carlini + + PR c++/70563 + * g++.dg/cpp0x/sfinae62.C: New. + +2018-05-08 Richard Sandiford + + * gcc.target/aarch64/sve/vcond_6.c (LOOP): Unconditionally + load from src[i]. + +2018-05-08 Paolo Carlini + + PR c++/80691 + * g++.dg/cpp0x/narrowing1.C: New. + +2018-05-08 Richard Biener + + PR middle-end/85588 + * gcc.dg/torture/pr85574.c: Rename to... + * gcc.dg/torture/pr85588.c: ... this. + +2018-05-08 Thomas Koenig + + PR fortran/54613 + * gfortran.dg/minmaxloc_12.f90: New test case. + * gfortran.dg/minmaxloc_13.f90: New test case. + +2018-05-07 Nathan Sidwell + + * g++.dg/cpp0x/range-for10.C: Delete. + * g++.dg/ext/forscope1.C: Delete. + * g++.dg/ext/forscope2.C: Delete. + * g++.dg/template/for1.C: Delete. + +2018-05-07 Jeff Law + + * gfortran.dg/linefile.f90: New test. + +2018-05-07 Christophe Lyon + + * gcc.dg/nextafter-2.c: Add c99_runtime effective target + and options. + +2018-05-06 Jakub Jelinek + + PR c++/85659 + * g++.dg/ext/asm14.C: New test. + * g++.dg/ext/asm15.C: New test. + * g++.dg/ext/asm16.C: New test. + +2018-05-06 Michael Eager + + * gcc.target/microblaze/others/picdtr.c: Correct option + -fPIE -mpic-data-is-text-relative. + +2018-05-06 Andrew Sadek + + * gcc.target/microblaze/others/picdtr.c: Add test for + -fPIE -mpic-data-is-text-relative. + +2018-05-06 Andre Vehreschild + + PR fortran/85507 + * gfortran.dg/coarray_dependency_1.f90: New test. + * gfortran.dg/coarray_lib_comm_1.f90: Fix counting caf-expressions. + +2018-05-04 Pekka Jääskeläinen + + * brig.dg/test/gimple/smoke_test.hsail: Fix the test + to match the currently produced gimple. + +2018-05-04 Carl Love + + * gcc.target/powerpc/vsx-vector-6.h (foo): Add test for vec_max, + vec_trunc. + * gcc.target/powerpc/vsx-vector-6-le.c (dg-final): Update xvcmpeqdp, + xvcmpgtdp, xvcmpgedp counts. Add xxsel counts. + * gcc.target/powerpc/vsx-vector-6-be.c (dg-final): Update xvcmpgtdp, + xvcmpgedp counts. Add xxsel counts. + +2018-05-04 Richard Biener + + PR middle-end/85627 + * g++.dg/torture/pr85627.C: New testcase. + +2018-05-04 Richard Biener + + PR middle-end/85574 + * gcc.dg/torture/pr85574.c: New testcase. + * gcc.dg/torture/pr57656.c: Use dg-additional-options. + +2018-05-04 Jakub Jelinek + + PR libstdc++/85466 + * gcc.dg/nextafter-1.c: New test. + * gcc.dg/nextafter-2.c: New test. + * gcc.dg/nextafter-3.c: New test. + * gcc.dg/nextafter-4.c: New test. + +2018-05-03 Nathan Sidwell + + Remove -ffriend-injection. + * g++.old-deja/g++.jason/scoping15.C: Delete. + * g++.old-deja/g++.mike/net43.C: Delete. + +2018-05-03 Jakub Jelinek + + PR target/85530 + * gcc.target/i386/avx512f-vpmullq-1.c: New test. + * gcc.target/i386/avx512f-vpmullq-2.c: New test. + * gcc.target/i386/avx512dq-vpmullq-3.c: New test. + * gcc.target/i386/avx512dq-vpmullq-4.c: New test. + +2018-05-03 Tom de Vries + + PR testsuite/85106 + * lib/scanoffloadtree.exp: New file. + +2018-05-03 Richard Biener + + PR tree-optimization/85615 + * gcc.dg/torture/pr85615.c: New testcase. + +2018-05-03 Kyrylo Tkachov + + PR tree-optimization/70291 + * gcc.dg/complex-6.c: New test. + * gcc.dg/complex-7.c: Likewise. + +2018-05-03 Richard Biener + + PR testsuite/85579 + * fortran.dg/pr51434.f90: Truncate transfer argument. + +2018-05-02 Jakub Jelinek + + PR target/85582 + * gcc.c-torture/execute/pr85582-3.c: New test. + +2018-05-02 Paolo Carlini + Jason Merrill + + PR c++/68374 + * g++.dg/warn/Wshadow-13.C: New. + * g++.dg/warn/Wshadow-14.C: Likewise. + +2018-05-02 Tom de Vries + + PR libgomp/82428 + * c-c++-common/goacc/builtin-goacc-parlevel-id-size-2.c: New test. + * c-c++-common/goacc/builtin-goacc-parlevel-id-size.c: New test. + +2018-05-02 David Pagan + + PR c/30552 + * gcc.dg/noncompile/pr30552-1.c: New test. + * gcc.dg/noncompile/pr30552-2.c: New test. + * gcc.dg/noncompile/pr30552-3.c: New test. + * gcc.dg/noncompile/pr30552-4.c: New test. + +2018-05-02 Richard Biener + + PR tree-optimization/85597 + * gcc.dg/vect/pr85597.c: New testcase. + +2018-05-02 Tom de Vries + + PR testsuite/85106 + * gcc.dg/ipa/ipa-icf-38.c: Use scan-ltrans-tree-dump. + * lib/scanltranstree.exp: New file. + * lib/target-supports.exp (scan-ltrans-tree-dump_required_options) + (scan-ltrans-tree-dump-times_required_options) + (scan-ltrans-tree-dump-not_required_options) + (scan-ltrans-tree-dump-dem_required_options) + (scan-ltrans-tree-dump-dem-not_required_options): New proc. + * lib/gcc-dg.exp: Include scanltranstree.exp. + +2018-05-02 Tom de Vries + + PR testsuite/85106 + * gcc.dg/ipa/ipa-icf-38.c: New test. + * gcc.dg/ipa/ipa-icf-38a.c: New test. + * lib/scandump.exp (dump-base): New proc. + (scan-dump, scan-dump-times, scan-dump-not, scan-dump-dem) + (scan-dump-dem-not): Add and handle parameter for suffix of the dump + base. + * lib/scanipa.exp: Add "" argument to scan-dump calls. + * lib/scanlang.exp: Same. + * lib/scanrtl.exp: Same. + * lib/scantree.exp: Same. + * lib/scanwpaipa.exp: New file. + * lib/gcc-dg.exp: Include scanwpaipa.exp. + +2018-05-02 Richard Biener + + PR middle-end/85567 + * gcc.dg/torture/pr85567.c: New testcase. + +2018-05-02 Jakub Jelinek + + PR target/85582 + * gcc.c-torture/execute/pr85582-1.c: New test. + * gcc.c-torture/execute/pr85582-2.c: New test. + +2018-05-02 Richard Sandiford + + PR tree-optimization/85586 + * gcc.dg/vect/pr85586.c: New test. + +2018-05-01 Marc Glisse + + PR tree-optimization/85143 + * gcc.dg/tree-ssa/minmax-loopend.c: Extend and split... + * gcc.dg/tree-ssa/minmax-loopend-2.c: ... here. + +2018-05-01 David Malcolm + + PR c/84258 + * c-c++-common/Wformat-pr84258.c: New test. + +2018-05-01 Prathamesh Kulkarni + + PR tree-optimization/82665 + * gcc.dg/tree-ssa/pr82665.c: New test. + +2018-04-30 David Malcolm + + PR c++/85523 + * gcc.dg/plugin/diagnostic-test-show-locus-generate-patch.c + (test_add_fixit_insert_formatted_single_line): New function. + (test_add_fixit_insert_formatted_multiline): New function. + Extend expected output of generated patch to include fix-it hints + for these. + * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c: Include + "gcc-rich-location.h". Add test coverage for + gcc_rich_location::add_fixit_insert_formatted. + +2018-04-30 David Malcolm + + * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c + (test_show_locus): Update for location_get_source_line returning a + char_span. Use char_span for handling words in the + "test_many_nested_locations" fix-it example. + +2018-04-30 Claudiu Zissulescu + + * gcc.target/arc/interrupt-8.c: Update test. + * gcc.target/arc/loop-4.c: Likewise. + * gcc.target/arc/loop-hazard-1.c: Likewise. + * gcc.target/arc/sdata-3.c: Likewise. + +2018-04-30 Claudiu Zissulescu + + * gcc.target/arc/store-merge-1.c: New test. + * gcc.target/arc/add_n-combine.c: Update test. + +2018-04-30 Andrew Sadek + + Microblaze Target: PIC data text relative + + * gcc.target/microblaze/others/data_var1.c: Include + PIC case of r20 base register. + * gcc.target/microblaze/others/data_var2.c: Ditto. + * gcc.target/microblaze/others/picdtr.c: Add new + test case for -mpic-is-data-text-relative. + * gcc.target/microblaze/others/sdata_var1.c: Add + * gcc.target/microblaze/others/sdata_var2.c: Ditto. + * gcc.target/microblaze/others/sdata_var3.c: Ditto. + * gcc.target/microblaze/others/sdata_var4.c: Ditto. + * gcc.target/microblaze/others/sdata_var5.c: Ditto. + * gcc.target/microblaze/others/sdata_var6.c: Ditto. + * gcc.target/microblaze/others/string_cst1_gpopt.c: + Ditto. + * gcc.target/microblaze/others/string_cst2_gpopt.c: + Ditto. + +2018-04-30 Richard Biener + + PR tree-optimization/28364 + PR tree-optimization/85275 + * gcc.dg/tree-ssa/copy-headers-5.c: New testcase. + * gcc.dg/tree-ssa/predcom-8.c: Likewise. + * gcc.dg/tree-ssa/cunroll-13.c: Rewrite to gimple testcase. + * gcc.dg/tree-ssa/ivopt_mult_1.c: XFAIL. + * gcc.dg/tree-ssa/ivopt_mult_1g.c: Add gimple variant that + still passes. + * gcc.dg/tree-ssa/ivopt_mult_2.c: XFAIL. + * gcc.dg/tree-ssa/ivopt_mult_2g.c: Add gimple variant that + still passes. + * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Adjust. + * gcc.dg/tree-ssa/20030710-1.c: Likewise. + * gcc.dg/tree-ssa/20030711-1.c: Likewise. + +2018-04-28 Uros Bizjak + + PR target/84431 + * gcc.target/i386/pr84431.c: New test. + +2018-04-27 Martin Jambor + + PR ipa/85549 + * g++.dg/ipa/pr85549.C: New test. + +2018-04-27 Jakub Jelinek + + PR c++/85553 + * g++.dg/cpp0x/Wzero-as-null-pointer-constant-3.C: Add dg-bogus + directive. + * g++.dg/cpp0x/constexpr-85553.C: New test. + +2018-04-27 David Malcolm + + PR c++/85515 + * g++.dg/pr85515-1.C: New test. + * g++.dg/pr85515-2.C: New test. + +2018-04-27 Paolo Carlini + + PR c++/84691 + * g++.dg/cpp0x/friend3.C: New. + +2018-04-27 Kyrylo Tkachov + + PR target/82518 + * lib/target-supports.exp (check_effective_target_vect_load_lanes): + Use check_effective_target_arm_little_endian. + +2018-04-27 Jakub Jelinek + + PR tree-optimization/85529 + * gcc.c-torture/execute/pr85529-1.c: New test. + * gcc.c-torture/execute/pr85529-2.c: New test. + * gcc.dg/pr85529.c: New test. + +2018-04-26 Maciej W. Rozycki + + * gcc.target/mips/data-sym-pool.c (dg-options): Match `ld' and + `.dword' in addition to `lw' and `.word'. + +2018-04-26 Maciej W. Rozycki + + * gcc.target/mips/data-sym-pool.c (dg-options): Add `-mplt'. + +2018-04-26 Eric Botcazou + + * gnat.dg/loop_optimization24.adb: New test. + +2018-04-26 Richard Biener + + PR tree-optimization/85116 + * gcc.dg/tree-ssa/copy-headers-2.c: New testcase. + * gcc.dg/tree-ssa/copy-headers-3.c: Likewise. + * gcc.dg/tree-ssa/copy-headers-4.c: Likewise. + * gcc.dg/tree-ssa/loadpre6.c: Adjust. + +2018-04-25 Sebastian Peryt + + PR target/85473 + * gcc.target/i386/pr85473-1.c: New test. + * gcc.target/i386/pr85473-2.c: New test. + +2018-04-25 Nathan Sidwell + Jakub Jelinek + + PR c++/85437 + PR c++/49171 + * g++.dg/cpp0x/addressof1.C: Make reinterpret cases runtime checks. + * g++.dg/cpp0x/constexpr-cast.C: Remove xfails + * g++.dg/cpp0x/constexpr-nullptr-2.C: Likewise. + * g++.dg/cpp0x/constexpr-pmf1.C: Check when optimized. + * g++.dg/cpp0x/pr85437-1.C: New. + * g++.dg/cpp0x/pr85437-2.C: New. + * g++.dg/cpp0x/pr85437-3.C: New. + * g++.dg/cpp0x/pr85437-4.C: New. + +2018-04-24 Steven G. Kargl + + PR fortran/85520 + * gfortran.dg/pr85520.f90: New test. + +2018-04-24 Kyrylo Tkachov + + PR target/85512 + * gcc.dg/pr85512.c: New test. + +2018-04-24 H.J. Lu + + PR target/85485 + * g++.dg/cet-notrack-1.C (dg-options): Remove -mcet. + * g++.dg/torture/pr85334.C (dg-additional-options): Likwise. + * gcc.dg/pr85388-1.c (dg-options): Likwise. + * gcc.dg/pr85388-2.c (dg-options): Likwise. + * gcc.dg/pr85388-3.c (dg-options): Likwise. + * gcc.dg/pr85388-4.c (dg-options): Likwise. + * gcc.dg/pr85388-5.c (dg-options): Likwise. + * gcc.dg/pr85388-6.c (dg-options): Likwise. + * gcc.dg/torture/pr85397-1.c (dg-additional-options): Likwise. + * gcc.target/i386/attr-nocf-check-1a.c (dg-options): Likwise. + * gcc.target/i386/attr-nocf-check-3a.c (dg-options): Likwise. + * gcc.target/i386/cet-label.c (dg-options): Likwise. + * gcc.target/i386/cet-label-2.c (dg-options): Likwise. + * gcc.target/i386/cet-notrack-1b.c (dg-options): Likwise. + * gcc.target/i386/cet-notrack-2a.c (dg-options): Likwise. + * gcc.target/i386/cet-notrack-2b.c (dg-options): Likwise. + * gcc.target/i386/cet-notrack-3.c (dg-options): Likwise. + * gcc.target/i386/cet-notrack-4b.c (dg-options): Likwise. + * gcc.target/i386/cet-notrack-5a.c (dg-options): Likwise. + * gcc.target/i386/cet-notrack-5b.c (dg-options): Likwise. + * gcc.target/i386/cet-notrack-6a.c (dg-options): Likwise. + * gcc.target/i386/cet-notrack-6b.c (dg-options): Likwise. + * gcc.target/i386/cet-notrack-7.c (dg-options): Likwise. + * gcc.target/i386/cet-notrack-icf-2.c (dg-options): Likwise. + * gcc.target/i386/cet-notrack-icf-4.c (dg-options): Likwise. + * gcc.target/i386/cet-property-1.c (dg-options): Likwise. + * gcc.target/i386/cet-property-2.c (dg-options): Likwise. + * gcc.target/i386/cet-sjlj-1.c (dg-options): Likwise. + * gcc.target/i386/cet-sjlj-2.c (dg-options): Likwise. + * gcc.target/i386/cet-sjlj-3.c (dg-options): Likwise. + * gcc.target/i386/cet-sjlj-4.c (dg-options): Likwise. + * gcc.target/i386/cet-sjlj-5.c (dg-options): Likwise. + * gcc.target/i386/cet-sjlj-6a.c (dg-options): Likwise. + * gcc.target/i386/cet-sjlj-6b.c (dg-options): Likwise. + * gcc.target/i386/cet-switch-1.c (dg-options): Likwise. + * gcc.target/i386/cet-switch-2.c (dg-options): Likwise. + * gcc.target/i386/cet-switch-3.c (dg-options): Likwise. + * gcc.target/i386/indirect-thunk-11.c (dg-options): Likwise. + * gcc.target/i386/indirect-thunk-12.c (dg-options): Likwise. + * gcc.target/i386/indirect-thunk-attr-12.c (dg-options): Likwise. + * gcc.target/i386/indirect-thunk-attr-13.c (dg-options): Likwise. + * gcc.target/i386/indirect-thunk-attr-14.c (dg-options): Likwise. + * gcc.target/i386/indirect-thunk-attr-15.c (dg-options): Likwise. + * gcc.target/i386/indirect-thunk-attr-16.c (dg-options): Likwise. + * gcc.target/i386/indirect-thunk-extern-8.c (dg-options): Likwise. + * gcc.target/i386/indirect-thunk-extern-9.c (dg-options): Likwise. + * gcc.target/i386/indirect-thunk-extern-10.c (dg-options): Likwise. + * gcc.target/i386/pr82659-1.c (dg-options): Likwise. + * gcc.target/i386/pr82659-2.c (dg-options): Likwise. + * gcc.target/i386/pr82659-3.c (dg-options): Likwise. + * gcc.target/i386/pr82659-4.c (dg-options): Likwise. + * gcc.target/i386/pr82659-5.c (dg-options): Likwise. + * gcc.target/i386/pr82659-6.c (dg-options): Likwise. + * gcc.target/i386/pr84146.c (dg-options): Likwise. + * gcc.target/i386/pr85403.c (dg-options): Likwise. + * gcc.target/i386/pr85404.c (dg-options): Likwise. + * gcc.target/i386/cet-intrin-3.c (dg-options): Replace -mcet + with -mshstk. + * gcc.target/i386/cet-intrin-5.c (dg-options): Likwise. + * gcc.target/i386/cet-intrin-6.c (dg-options): Likwise. + * gcc.target/i386/cet-intrin-7.c (dg-options): Likwise. + * gcc.target/i386/cet-intrin-8.c (dg-options): Likwise. + * gcc.target/i386/cet-intrin-9.c (dg-options): Likwise. + * gcc.target/i386/cet-intrin-10.c (dg-options): Likwise. + * gcc.target/i386/cet-rdssp-1.c (dg-options): Likwise. + * (dg-options): Likwise. + * gcc.target/i386/cet-notrack-1a.c (dg-options): Remove + -mno-cet. + * gcc.target/i386/cet-notrack-4a.c (dg-options): Likwise. + * gcc.target/i386/cet-label-3.c: Removed. + * gcc.target/i386/cet-property-3.c: Likwise. + * gcc.target/i386/cet-sjlj-7.c: Likwise. + +2018-04-24 Jakub Jelinek + + PR target/85511 + * gcc.target/i386/pr85511.c: New test. + + PR target/85503 + * g++.dg/ext/pr85503.C: New test. + + PR target/85508 + * gcc.target/i386/pr85508.c: New test. + +2018-04-24 Andreas Krebbel + + PR tree-optimization/85478 + * g++.dg/pr85478.C: New test. + +2018-04-23 Eric Botcazou + + * g++.dg/torture/pr85496.C: New test. + +2018-04-23 Andrey Belevantsev + + PR rtl-optimization/85423 + * gcc.dg/pr85423.c: New test. + +2018-04-20 Martin Sebor + + PR c/85365 + * gcc.dg/Wrestrict-15.c: New test. + +2018-04-20 Michael Meissner + + PR target/85456 + * gcc.target/powerpc/pr85456.c: New test. + +2018-04-20 Bill Schmidt + + * g++.dg/ext/undef-bool-1.C: Require lp64. + * gcc.target/powerpc/undef-bool-2.c: Likewise. + +2018-04-20 Jeff Law + + * gcc.dg/stack-check-5.c: Improve dg-skip-if selector for the + stack protector. + * gcc.dg/stack-check-6.c: Likewise. + * gcc.dg/stack-check-6a.c: Likewise. + * gcc.target/i386/stack-check-17.c: Add dg-skip-if selector. + * gcc.target/i386/stack-check-18.c: Likewise. + * gcc.target/i386/stack-check-19.c: Likewise. + +2018-04-20 Kyrylo Tkachov + + PR testsuite/85483 + * gcc.target/aarch64/sve/vcond_1.c: Move to... + * g++.dg/other/sve_vcond_1.C: ... Here. Add target directives. + * gcc.target/aarch64/sve/vcond_1_run.c: Move to... + * g++.dg/other/sve_vcond_1_run.C: ... Here. Change include file name. + +2018-04-20 H.J. Lu + + PR target/85469 + * gcc.target/i386/pr85044.c (dg-options): Remove -mibt. + * gcc.target/i386/sse-26.c (dg-options): Remove -mno-ibt. + +2018-04-20 Richard Biener + + PR middle-end/85475 + * gcc.dg/torture/pr85475.c: New testcase. + +2018-04-20 Martin Jambor + + ipa/85449 + * gcc.dg/ipa/pr85449.c: New test. + +2018-04-20 Martin Jambor + + ipa/85447 + * g++.dg/ipa/pr85447.C: New file. + * gcc.dg/ipa/ipcp-self-recursion-1.c: Likewise. + +2018-04-20 Jakub Jelinek + + PR c++/85462 + * g++.dg/cpp0x/pr85462.C: New test. + +2018-04-19 H.J. Lu + + * gcc.target/i386/pr85404.c: Require CET target. + +2018-04-19 Jakub Jelinek + + PR tree-optimization/85467 + * gcc.dg/pr85467.c: New test. + +2018-04-19 Paolo Carlini + + PR c++/84611 + * g++.dg/parse/crash68.C: New. + +2018-04-19 H.J. Lu + + PR libgcc/85334 + * g++.dg/torture/pr85334.C: New test. + +2018-04-19 Jonathan Wakely + + PR c++/85464 - missing location for -Wignored-qualifiers diagnostic + * g++.dg/diagnostic/pr85464.C: New. + +2018-04-19 H.J. Lu + + PR target/85397 + * gcc.dg/torture/pr85397-1.c: New test. + * gcc.target/i386/cet-sjlj-6a.c: Adjusted. + * gcc.target/i386/cet-sjlj-6b.c: Likewise. + +2018-04-19 H.J. Lu + + PR target/85404 + * gcc.target/i386/pr85404.c: New test. + +2018-04-19 H.J. Lu + + PR target/85417 + * c-c++-common/attr-nocf-check-1.c: Compile with + -fcf-protection=none. + * c-c++-common/attr-nocf-check-3.c: Likewise. + * gcc.dg/march-generic.c: Likewise. + * gcc.target/i386/align-limit.c: Likewise. + * gcc.target/i386/cet-notrack-icf-1.c: Likewise. + * gcc.target/i386/cet-notrack-icf-3.c: Likewise. + * gcc.target/i386/cet-property-2.c: Likewise. + * gcc.target/i386/ret-thunk-26.c: Likewise. + * c-c++-common/fcf-protection-1.c: Remove dg-error for x86 + targets. + * c-c++-common/fcf-protection-2.c: Likewise. + * c-c++-common/fcf-protection-3.c: Likewise. + * c-c++-common/fcf-protection-5.c: Likewise. + * c-c++-common/fcf-protection-6.c: Likewise. + * c-c++-common/fcf-protection-7.c: Likewise. + * gcc.target/i386/cet-label-3.c: New test. + * gcc.target/i386/cet-property-3.c: Likewise. + * gcc.target/i386/cet-sjlj-7.c: Likewise. + * gcc.target/i386/pr85417-1.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-7.c: Also expect + __x86_indirect_thunk_nt_(r|e)ax + * gcc.target/i386/indirect-thunk-extern-7.c: Likewise. + * gcc.target/i386/pr85403.c: Remove dg-error, + +2018-04-19 Sebastian Peryt + + * gcc.target/i386/movdir-1.c: New test. + +2018-04-19 Richard Biener + + PR middle-end/85455 + * gcc.dg/pr85455.c: New testcase. + +2018-04-19 Christophe Lyon + + * g++.dg/lto/pr85405_0.C: Require shared and fpic effective + targets. + * g++.dg/lto/pr85405b_0.C: Likewise. + * g++.dg/lto/pr84805_0.C: Likewise. + +2018-04-18 Martin Liska + + PR ipa/83983 + PR ipa/85391 + * g++.dg/lto/pr83121_1.C (struct Environment): Adjust expected + output. + +2018-04-18 H.J. Lu + + PR target/85388 + * gcc.dg/pr85388-1.c: New test. + * gcc.dg/pr85388-2.c: Likewise. + * gcc.dg/pr85388-3.c: Likewise. + * gcc.dg/pr85388-4.c: Likewise. + * gcc.dg/pr85388-5.c: Likewise. + * gcc.dg/pr85388-6.c: Likewise. + +2018-04-18 Jan Hubicka + Martin Liska + + * g++.dg/lto/pr83121_0.C: Update template. + * g++.dg/lto/pr83121_1.C: Update template. + * g++.dg/lto/pr84805_0.C: Update template. + * g++.dg/lto/pr84805_1.C: Update template. + * g++.dg/lto/pr84805_2.C: Update template. + +2018-04-18 Paolo Carlini + + PR c++/84630 + * g++.dg/cpp0x/pr84630.C: New. + +2018-04-18 Jakub Jelinek + + PR c++/84463 + * g++.dg/cpp0x/constexpr-nullptr-1.C: Add -O1 to dg-options. + * g++.dg/cpp0x/constexpr-nullptr-2.C: Expect different diagnostics + in two cases. Uncomment two other tests and add expected dg-error for + them. + * g++.dg/init/struct2.C: Cast to int rather than long to avoid + -Wnarrowing diagnostics on some targets for c++11. + * g++.dg/parse/array-size2.C: Remove xfail. + * g++.dg/cpp0x/constexpr-84463.C: New test. + +2018-04-17 Bill Schmidt + + * gcc.target/powerpc/undef-bool-2.c: Add -mvsx. + * gcc.target/g++.dg/ext/undef-bool-1.C: Likewise. + +2018-04-17 Jakub Jelinek + + PR testsuite/85326 + * g++.dg/other/pr81422.C: Require effective target tls and c++11. + * g++.dg/other/pr60675.C: Likewise. Remove -std=c++11 from dg-options. + * g++.dg/other/sve_tls_2.C: Require effective target tls. + +2018-04-13 Kelvin Nilsen + + * gcc.target/powerpc/bfp/scalar-extract-sig-5.c: Simplify to + prevent cascading of errors and change expected error message. + * gcc.target/powerpc/bfp/scalar-test-neg-4.c: Restrict this test + to 64-bit targets. + * gcc.target/powerpc/bfp/scalar-test-data-class-8.c: Likewise. + * gcc.target/powerpc/bfp/scalar-test-data-class-9.c: Likewise. + * gcc.target/powerpc/bfp/scalar-test-data-class-10.c: Likewise. + * gcc.target/powerpc/bfp/scalar-insert-exp-11.c: Change expected + error message. + * gcc.target/powerpc/bfp/scalar-extract-exp-5.c: Likewise. + +2018-04-17 Jakub Jelinek + + PR target/85430 + * gcc.dg/pr85430.c: New test. + +2018-04-17 Kyrylo Tkachov + + PR testsuite/85326 + * gcc.target/arm/pr54300.C: Move to... + * g++.dg/other/pr54300.C: ... Here. Add target directives. + * gcc.target/arm/pr55073.C: Move to... + * g++.dg/other/pr55073.C: ... Here. Add target directives. + * gcc.target/arm/pr56184.C: Move to... + * g++.dg/other/pr56184.C: ... Here. Add target directives. + * gcc.target/arm/pr59985.C: Move to... + * g++.dg/other/pr59985.C: ... Here. Add target directives. + * gcc.target/aarch64/pr60675.C: Move to... + * g++.dg/other/pr60675.C: ... Here. Add target directives. + * gcc.target/aarch64/pr81422.C: Move to... + * g++.dg/other/pr81422.C: ... Here. Add target directives. + * gcc.target/aarch64/sve/const_pred_1.C: Move to... + * g++.dg/other/sve_const_pred_1.C: ... Here. Add target directives. + * gcc.target/aarch64/sve/const_pred_2.C: Move to... + * g++.dg/other/sve_const_pred_2.C: ... Here. Add target directives. + * gcc.target/aarch64/sve/const_pred_3.C: Move to... + * g++.dg/other/sve_const_pred_3.C: ... Here. Add target directives. + * gcc.target/aarch64/sve/const_pred_4.C: Move to... + * g++.dg/other/sve_const_pred_4.C: ... Here. Add target directives. + * gcc.target/aarch64/sve/tls_2.C: Move to... + * g++.dg/other/sve_tls_2.C: ... Here. Add target directives. + * gcc.target/aarch64/pr81414.C: Rename to... + * gcc.target/aarch64/pr81414.c: ... This. + * gcc.target/aarch64/simd/pr67896.C: Rename to... + * gcc.target/aarch64/simd/pr67896.c: ... This. Update error expected + messages. + * gcc.target/aarch64/sve/vcond_1.C: Rename to... + * gcc.target/aarch64/sve/vcond_1.c: ... This. Avoid use of stdint.h. + * gcc.target/aarch64/sve/vcond_1_run.C: Rename to... + * gcc.target/aarch64/sve/vcond_1_run.c: ... This. Update include + file name. + +2018-04-17 Jakub Jelinek + + PR middle-end/85414 + * gcc.dg/pr85414.c: New test. + +2018-04-17 Martin Jambor + + PR ipa/85421 + * g++.dg/ipa/pr85421.C: New test. + +2018-04-17 Martin Liska + + PR lto/85405 + * g++.dg/lto/pr85405b_0.C: New test. + * g++.dg/lto/pr85405b_1.C: New test. + +2018-04-17 Martin Liska + + PR lto/85405 + * g++.dg/lto/pr85405_0.C: New test. + * g++.dg/lto/pr85405_1.C: New test. + +2018-04-17 Martin Liska + + PR ipa/85329 + * g++.dg/ext/pr85329-2.C: New test. + * g++.dg/ext/pr85329.C: New test. + * gcc.target/i386/mvc12.c: New test. + +2018-04-16 Alexandre Oliva + + PR c++/85039 + * g++.dg/pr85039-1.C: New. + * g++.dg/pr85039-2.C: New. + * g++.dg/parse/semicolon3.C: Remove test_offsetof. + +2018-04-16 Bill Schmidt + + PR target/85080 + * gcc.dg/vect/costmodel/ppc/costmodel-pr37194.c: Skip dump checks + if the target supports efficient unaligned storage accesses. + +2018-04-16 Aaron Sawdey + + PR target/83660 + * gcc.target/powerpc/pr83660.C: New test. + +2018-04-16 H.J. Lu + + PR target/85403 + * gcc.target/i386/pr85403.c: New test. + +2018-04-16 Olga Makhotina + + PR target/84331 + * gcc.target/i386/funcspec-56.inc: Test arch=skylake. + +2018-04-16 Paolo Carlini + Jason Merrill + + PR c++/85112 + * g++.dg/cpp0x/pr85112.C: New. + +2018-04-15 Bill Schmidt + + PR testsuite/85326 + * g++.dg/ext/undef-bool-1.C: New file. + * gcc.target/powerpc/powerpc.exp: Remove .C support. + * gcc.target/powerpc/undef-bool-1.C: Remove file. + +2018-04-14 Segher Boessenkool + + PR target/85293 + * gcc.target/powerpc/pr80098-2.c: Remove -mdirect-move. Remove the + corresponding dg-error clause. + * gcc.target/powerpc/pr80098-3.c: Ditto. + * gcc.target/powerpc/pr80103-1.c: Delete. + +2018-04-14 Andre Vehreschild + + PR fortran/81773 + PR fortran/83606 + * gfortran.dg/coarray/get_to_indexed_array_1.f90: New test. + * gfortran.dg/coarray/get_to_indirect_array.f90: New test. + +2018-04-14 Thomas Koenig + + PR fortran/85387 + * gfortran.dg/implied_do_io_5.f90: New test. + +2018-04-13 Paul A. Clarke + + PR target/83402 + * gcc.target/powerpc/sse2-psllw-1.c: Refactor and add tests for + several values: positive, negative, and zero. + * gcc.target/powerpc/sse2-pslld-1.c: Same. + * gcc.target/powerpc/sse2-psllq-1.c: Same. + +2018-04-13 Vladimir Makarov + + PR rtl-optimization/79916 + * gcc.target/powerpc/pr79916.c: New. + +2018-04-13 Jakub Jelinek + + PR rtl-optimization/85393 + * g++.dg/opt/pr85393.C: New test. + * g++.dg/opt/pr85393-aux.cc: New file. + + PR rtl-optimization/85376 + * gcc.dg/pr85376.c: New test. + +2018-04-13 Andrey Belevantsev + + PR rtl-optimization/83852 + * gcc.dg/pr83852.c: New testcase. + +2018-04-13 Andreas Krebbel + + PR testsuite/85326 + * gcc.target/s390/pr77822-1.C: Rename to ... + * gcc.target/s390/pr77822-1.c: ... this. Add asm scan check. + * gcc.target/s390/pr77822-2.c: Add asm scan check. + * gcc.target/s390/s390.exp: Remove C from testcase regexps. + +2018-04-13 Jan Hubicka + + PR lto/71991 + * gcc.target/i386/pr71991.c: New testcase. + +2018-04-13 Martin Liska + Jakub Jelinek + + PR middle-end/81657 + * gcc.dg/string-opt-1.c: Remove bogus comment. Expect a mempcpy + call. + +2018-04-12 David Malcolm + + PR c++/85385 + * g++.dg/diagnostic/macro-arg-count.C: New test. + +2018-04-12 Thomas Koenig + + PR fortran/83064 + PR testsuite/85346 + * gfortran.dg/do_concurrent_5.f90: Dynamically allocate main work + array and move test to libgomp/testsuite/libgomp.fortran. + * gfortran.dg/do_concurrent_6.f90: New test. + +2018-04-12 Marek Polacek + + PR c++/85258 + * g++.dg/parse/error61.C: New test. + +2018-04-12 Kelvin Nilsen + + PR target/85347 + * gcc.target/powerpc/vec-ldl-1.c: Change dejagnu directives to + specify -mvsx on gcc command line. + +2018-04-12 Jakub Jelinek + + PR target/85328 + * gcc.target/i386/pr85328.c: New test. + +2018-04-12 Andreas Krebbel + + * gcc.target/s390/nobp-no-dwarf2-cfi.c: New test. + +2018-04-12 Jakub Jelinek + + PR rtl-optimization/85342 + * gcc.target/i386/pr85342.c: New test. + +2018-04-11 Jason Merrill + + * lib/asan-dg.exp (check_effective_target_fsanitize_address): False + if ulimit -v is set. + +2018-04-11 Bin Cheng + + PR testsuite/85190 + * gcc.dg/vect/pr81196.c: Remove function with undefined behavior. + +2018-04-11 Paolo Carlini + + * g++.dg/warn/Wzero-as-null-pointer-constant-7.C: Move... + * g++.dg/cpp0x/Wzero-as-null-pointer-constant-3.C: ... here. + +2018-04-11 Jakub Jelinek + + PR c++/70808 + * g++.dg/warn/Wzero-as-null-pointer-constant-7.C: Require c++11 + effective target. + +2018-04-11 Alexander Monakov + + PR target/84301 + * gcc.target/i386/pr84301.c: New test. + +2018-04-11 Jakub Jelinek + + PR tree-optimization/85331 + * gcc.c-torture/execute/pr85331.c: New test. + +2018-04-11 Marek Polacek + + PR c++/85032 + * g++.dg/cpp0x/pr51225.C: Adjust error message. + * g++.dg/cpp1z/constexpr-if21.C: New test. + +2018-04-11 Jakub Jelinek + + PR target/85281 + * gcc.target/i386/pr85281.c: New test. + +2018-04-11 Alexander Monakov + + PR rtl-optimization/84659 + * gcc.dg/pr84659.c: New test. + +2018-04-11 Jakub Jelinek + + PR debug/85302 + * g++.dg/debug/dwarf2/pr85302.C: New test. + +2018-04-11 Thomas Preud'homme + + PR target/85261 + * config/arm/arm-builtins.c (arm_expand_builtin): Force input operand + into register. + +2018-04-10 Paolo Carlini + + PR c++/70808 + * g++.dg/warn/Wzero-as-null-pointer-constant-7.C: New. + +2018-04-10 Segher Boessenkool + + * gcc.target/powerpc/dfmode_off.c: Add -fno-asynchronous-unwind-tables. + * gcc.target/powerpc/dimode_off.c: Ditto. + * gcc.target/powerpc/tfmode_off.c: Ditto. + * gcc.target/powerpc/timode_off.c: Ditto. + +2018-04-10 Kelvin Nilsen + + * gcc.target/powerpc/vec-ldl-1.c: New test. + * gcc.dg/vmx/ops-long-1.c: Correct test programs to reflect + corrections to ABI implementation. + +2018-04-10 Thomas Schwinge + + PR target/85056 + * gcc.target/nvptx/pr85056.c (main): Initialize "sum". + +2018-04-10 Jakub Jelinek + + PR rtl-optimization/85300 + * gcc.dg/pr85300.c: New test. + +2018-04-10 David Malcolm + + PR c++/85110 + * g++.dg/cpp1z/direct-enum-init1.C: Update for the cases + where we now show the pertinent parameter. + * g++.dg/diagnostic/aka2.C: Likewise. + * g++.dg/diagnostic/param-type-mismatch-2.C: Likewise. + +2018-04-10 Jakub Jelinek + + PR fortran/85313 + * gfortran.dg/gomp/pr85313.f90: New test. + +2018-04-10 Paolo Carlini + + PR c++/24314 + * g++.dg/parse/template29.C: New. + +2018-04-10 Bin Cheng + + PR testsuite/85190 + * gcc.dg/vect/pr81196.c: Adjust pointer for aligned access. + +2018-04-10 Jakub Jelinek + + PR target/85177 + PR target/85255 + * gcc.target/i386/avx512f-pr85177.c: New test. + * gcc.target/i386/avx512f-pr85255.c: New test. + +2018-04-10 Richard Sandiford + + PR tree-optimization/85286 + * gcc.dg/vect/pr85286.c: New test. + +2018-04-10 Kyrylo Tkachov + + PR target/85173 + * gcc.target/arm/pr85173.c: New test. + +2018-04-10 Jakub Jelinek + + PR lto/85248 + * gcc.dg/lto/pr85248_0.c: New test. + * gcc.dg/lto/pr85248_1.c: New test. + +2018-04-09 Jan Hubicka + + PR lto/85078 + * g++.dg/torture/pr85078.C: New. + +2018-04-09 Paolo Carlini + + PR c++/85227 + * g++.dg/cpp1z/decomp44.C: New. + * g++.dg/cpp1z/decomp45.C: Likewise. + +2018-04-09 Thomas Koenig + + PR fortran/83064 + * gfortran.dg/do_concurrent_5.f90: New test. + * gfortran.dg/vect/vect-do-concurrent-1.f90: Adjust dg-bogus + message. + +2018-04-09 Thomas Koenig + + PR fortran/51260 + * gfortran.dg/parameter_array_element_3.f90: New test. + +2018-04-09 Jakub Jelinek + + PR c++/85194 + * g++.dg/cpp1z/decomp43.C: New test. + + PR rtl-optimization/80463 + * g++.dg/pr80463.C: Add -w to dg-options. + +2018-04-09 Richard Biener + + PR tree-optimization/85284 + * gcc.dg/torture/pr85284.c: New testcase. + +2018-04-09 Andrey Belevantsev + + PR rtl-optimization/80463 + PR rtl-optimization/83972 + PR rtl-optimization/83480 + + * gcc.dg/pr80463.c: New test. + * g++.dg/pr80463.C: Likewise. + * gcc.dg/pr83972.c: Likewise. + +2018-04-09 Andrey Belevantsev + + PR rtl-optimization/83913 + * gcc.dg/pr83913.c: New test. + +2018-04-09 Andrey Belevantsev + + PR rtl-optimization/83962 + * gcc.dg/pr83962.c: New test. + +2018-04-09 Andrey Belevantsev + + PR rtl-optimization/83530 + * gcc.dg/pr83530.c: New test. + +2018-04-07 Thomas Koenig + + PR middle-end/82976 + * gfortran.dg/realloc_on_assign_16a.f90: New test. + +2018-04-07 Jakub Jelinek + + PR tree-optimization/85257 + * gcc.dg/pr85257.c: New test. + +2018-04-06 Eric Botcazou + + * g++.dg/opt/pr85196.C: New test. + +2018-04-06 David Malcolm + + PR c++/84269 + * g++.dg/lookup/missing-std-include-6.C: Move std::array and + std::tuple here since they need C++11. + * g++.dg/lookup/missing-std-include-8.C: New test. + * g++.dg/lookup/missing-std-include.C: Move std::array and + std::tuple test to missing-std-include-6.C to avoid failures + with C++98. + +2018-04-06 Jakub Jelinek + + PR debug/85252 + * gcc.dg/debug/pr85252.c: New test. + + PR rtl-optimization/84872 + * gcc.dg/graphite/pr84872.c: New test. + + PR c++/85210 + * g++.dg/cpp1z/decomp42.C: New test. + +2018-04-06 David Malcolm + + PR c++/85021 + * g++.dg/lookup/missing-std-include-7.C: New test. + +2018-04-06 Tamar Christina + + * gcc.dg/struct-simple.c: Revert r254862. + * lib/target-supports.exp + (check_effective_target_word_mode_no_slow_unalign): Likewise. + +2018-04-06 Richard Biener + + PR middle-end/85244 + * gcc.dg/torture/pr85244-1.c: New testcase. + * gcc.dg/torture/pr85244-2.c: Likewise. + +2018-04-06 Jakub Jelinek + + PR sanitizer/85213 + * c-c++-common/ubsan/pr85213.c: New test. + +2018-04-06 Richard Biener + + PR middle-end/85180 + * gcc.dg/pr85180.c: New testcase. + +2018-04-06 Andreas Krebbel + + * gcc.target/s390/vector/vcond-shift.c: Use the proper conditions + to trigger the optimization. Do some cleanup and function + renaming. Add more test functions. + +2018-04-06 Andreas Krebbel + + * gcc.target/s390/s390.exp: Remove -O0 from list of torture + options. + * gcc.target/s390/hotpatch-1.c: Skip when building without + optimization. + * gcc.target/s390/hotpatch-10.c: Likewise. + * gcc.target/s390/hotpatch-11.c: Likewise. + * gcc.target/s390/hotpatch-12.c: Likewise. + * gcc.target/s390/hotpatch-13.c: Likewise. + * gcc.target/s390/hotpatch-14.c: Likewise. + * gcc.target/s390/hotpatch-15.c: Likewise. + * gcc.target/s390/hotpatch-16.c: Likewise. + * gcc.target/s390/hotpatch-17.c: Likewise. + * gcc.target/s390/hotpatch-18.c: Likewise. + * gcc.target/s390/hotpatch-19.c: Likewise. + * gcc.target/s390/hotpatch-2.c: Likewise. + * gcc.target/s390/hotpatch-3.c: Likewise. + * gcc.target/s390/hotpatch-4.c: Likewise. + * gcc.target/s390/hotpatch-5.c: Likewise. + * gcc.target/s390/hotpatch-6.c: Likewise. + * gcc.target/s390/hotpatch-7.c: Likewise. + * gcc.target/s390/hotpatch-8.c: Likewise. + * gcc.target/s390/hotpatch-9.c: Likewise. + +2018-04-06 Andreas Krebbel + + * c-c++-common/Wattributes.c: Disable warning for s390* target and + check for an error instead. + * gcc.dg/Wattributes-6.c: Likewise. + +2018-04-05 Jakub Jelinek + + PR c++/85209 + * g++.dg/cpp1z/decomp39.C: New test. + * g++.dg/cpp1z/decomp40.C: New test. + + PR c++/85208 + * g++.dg/cpp1z/decomp41.C: New test. + + PR middle-end/85195 + * gcc.dg/pr85195.c: New test. + +2018-04-05 Paolo Carlini + + PR c++/80956 + * g++.dg/cpp0x/initlist100.C: New. + * g++.dg/cpp0x/initlist101.C: Likewise. + +2018-04-05 Paolo Carlini + + PR c++/84792 + * g++.dg/other/pr84792-1.C: New. + * g++.dg/other/pr84792-2.C: Likewise. + +2018-04-05 Uros Bizjak + + PR target/85193 + * gcc.target/i386/pr85193.c: New test. + +2018-04-05 Alexandre Oliva + + PR c++/84979 + * g++.dg/concepts/pr84979.C: New. + * g++.dg/concepts/pr84979-2.C: New. + * g++.dg/concepts/pr84979-3.C: New. + +2018-04-04 Paolo Carlini + + PR c++/80026 + * g++.dg/cpp0x/variadic174.C: New. + +2018-04-04 Jakub Jelinek + + PR inline-asm/85172 + * g++.dg/ext/builtin13.C: New test. + * g++.dg/ext/atomic-4.C: New test. + + PR c++/85146 + * g++.dg/ext/bases2.C: Expect extra error diagnostics. + * g++.dg/ext/bases3.C: New test. + +2018-04-04 Thomas Preud'homme + + PR target/85203 + * gcc.target/arm/cmse/cmse-1.c: Tighten cmse_nonsecure_caller RTL scan + to match a single insn of the baz function. Move scan directives at + the end of the file below the functions they are trying to test for + better readability. + * gcc.target/arm/cmse/cmse-16.c: New testcase. + +2018-04-04 Peter Bergner + + PR rtl-optimization/84878 + * gcc.target/powerpc/pr84878.c: New test. + +2018-04-04 Michael Matz + + * gcc.dg/Wstringop-overflow-4.c: New test. + * c-c++-common/Wstringop-truncation-4.c: Adjust. + +2018-04-04 Jakub Jelinek + + PR testsuite/85189 + * g++.dg/inherit/override-attribs.C: Use dg-message instead of dg-error + for the diagnostics of overridden functions. Adjust for new wording. + +2018-04-04 Richard Biener + + PR lto/85176 + * g++.dg/lto/pr85176_0.C: New testcase. + +2018-04-04 Richard Biener + + PR testsuite/85191 + * lib/target-supports.exp (check_effective_target_vect_perm_short): + Fix typo. + +2018-04-04 Martin Liska + + PR sanitizer/85174 + * c-c++-common/asan/pointer-compare-1.c: Disable section anchors + and msdata as a workaround for powerpc. + +2018-04-04 Richard Biener + + PR tree-optimization/85168 + * gcc.dg/torture/pr85168.c: New testcase. + +2018-04-04 Alexandre Oliva + + PR c++/84943 + * g++.dg/pr84943.C: New. + * g++.dg/pr84943-2.C: New. + +2018-04-03 Jakub Jelinek + + PR rtl-optimization/85167 + * gcc.dg/pr85167.c: New test. + + PR tree-optimization/85156 + * c-c++-common/pr85156.c: New test. + * gcc.c-torture/execute/pr85156.c: New test. + +2018-04-03 Bill Schmidt + + * gcc.target/powerpc/powerpc.exp: Add .C suffix for main loop. + * gcc.target/powerpc/undef-bool-1.C: New file. + * gcc.target/powerpc/undef-bool-2.c: New file. + +2018-04-03 Paolo Carlini + + PR c++/84768 + * g++.dg/cpp1z/class-deduction52.C: New. + +2018-04-03 Jakub Jelinek + + PR c++/85147 + * g++.dg/cpp0x/pr85147.C: New test. + + PR c++/85140 + * g++.dg/cpp0x/gen-attrs-64.C: New test. + + PR c++/85134 + * g++.dg/gomp/pr85134.C: New test. + * g++.dg/cpp0x/constexpr-ice19.C: Expect one further error. + + PR target/85169 + * gcc.c-torture/execute/pr85169.c: New test. + * gcc.target/i386/avx512f-pr85169.c: New test. + * gcc.target/i386/avx512bw-pr85169.c: New test. + +2018-04-03 Segher Boessenkool + + PR target/85126 + * gcc.target/powerpc/pr69946: Adjust comment. Remove + scan-assembler-times clause. + +2018-04-03 Christophe Lyon + + * gcc.target/arm/armv8_2-fp16-move-1.c: Move -mfloat-abi=hard to + dg-additional-options. + +2018-04-03 Segher Boessenkool + + * gcc.target/powerpc/pr82015.c: Use __vector instead of vector. + +2018-04-03 Richard Biener + + PR testsuite/85154 + * gcc.dg/vect/vect-95.c: Remove scan for alignment peeling. + +2018-04-02 Jim Wilson + + * gcc.target/riscv/pr84660.c: New. + * gcc.target/riscv/shift-and-1.c: New. + * gcc.target/riscv/shift-and-2.c: New. + +2018-04-02 Thomas Koenig + + PR fortran/85102 + * gfortran.dg/array_simplify_2.f90: New test. + +2018-04-01 Jakub Jelinek + + PR middle-end/85090 + * gcc.target/i386/avx512f-pr85090-1.c: New test. + * gcc.target/i386/avx512f-pr85090-2.c: New test. + * gcc.target/i386/avx512f-pr85090-3.c: New test. + * gcc.target/i386/avx512bw-pr85090-2.c: New test. + * gcc.target/i386/avx512bw-pr85090-3.c: New test. + +2018-03-31 Alexandre Oliva + + PR c++/85027 + * g++.dg/pr85027.C: New. + +2018-03-31 Segher Boessenkool + + PR target/83315 + * gcc.target/powerpc/sse-maxps-2.c: New test. + * gcc.target/powerpc/sse-minps-2.c: New test. + +2018-03-30 Jakub Jelinek + + PR c++/84791 + * g++.dg/gomp/pr84791.C: New test. + +2018-03-30 Paul Thomas + + PR fortran/84931 + * gfortran.dg/array_constructor_53.f90: New test. + +2018-03-30 Thomas Koenig + + PR fortran/85130 + * gfortran.dg/substr_6.f90: Remove illegal test for + out-of-bounds substring. + +2017-03-30 Thomas Koenig + + PR fortran/85111 + * gfortran.dg/zero_sized_10.f90: New test. + +2018-03-29 David Malcolm + + PR c++/84269 + * g++.dg/lookup/missing-std-include-6.C: New test. + * g++.dg/lookup/missing-std-include.C: Add std::pair and + std::tuple tests. + * g++.dg/spellcheck-reswords.C: Expect a hint about . + * g++.dg/spellcheck-stdlib.C: Add tests for names in , + , , and . + +2018-03-29 Vladimir Makarov + + PR inline-asm/84985 + * gcc.target/i386/pr84985.c: New. + +2018-03-29 David Malcolm + + PR c++/85110 + * g++.dg/diagnostic/param-type-mismatch-2.C: New test. + +2018-03-29 Jakub Jelinek + + PR c++/85108 + * g++.dg/warn/Wunused-var-31.C: New test. + + PR c/85094 + * c-c++-common/Wduplicated-branches-14.c: New test. + +2018-03-29 Paolo Carlini + + PR c++/84606 + * g++.dg/cpp0x/pr84606.C: New. + +2018-03-29 Carl Love + + Revert + 2017-09-27 Carl Love + + * gcc.target/powerpc/builtin-fctid-fctiw-runnable.c: New test file + for the __builtin_fctid and __builtin_fctiw. + +2018-03-28 Peter Bergner + + PR target/84912 + * gcc.target/powerpc/extend-divide-1.c (div_weo): Remove test for + deleted builtin function. + (div_weuo): Likewise. + * gcc.target/powerpc/extend-divide-2.c (div_deo): Likewise. + (div_deuo): Likewise. + +2018-03-28 Paolo Carlini + + PR c++/85028 + * g++.dg/other/default13.C: New. + +2018-03-28 Jakub Jelinek + + PR target/85095 + * gcc.target/i386/pr85095-1.c: New test. + * gcc.target/i386/pr85095-2.c: New test. + * gcc.c-torture/execute/pr85095.c: New test. + + PR tree-optimization/82004 + * gcc.dg/pr82004.c: New test. + +2018-03-28 Jakub Jelinek + Martin Liska + + PR sanitizer/85081 + * g++.dg/asan/pr85081.C: New test. + +2018-03-28 Alexandre Oliva + + PR c++/84789 + * g++.dg/template/pr84789.C: Adjust for testing with + -fconcepts too. + + PR c++/84973 + * g++.dg/template/pr84973.C: New. + * g++.dg/template/pr84973-2.C: New. + * g++.dg/template/pr84973-3.C: New. + + PR c++/84968 + * g++.dg/eh/pr84968.C: New. + +2018-03-27 Michael Meissner + + PR target/84914 + * gcc.target/powerpc/mulkc-2.c: New tests to make sure complex + long double multiply/divide uses the correct function. + * gcc.target/powerpc/mulkc-3.c: Likewise. + * gcc.target/powerpc/divkc-2.c: Likewise. + * gcc.target/powerpc/divkc-3.c: Likewise. + +2018-03-27 Paolo Carlini + + PR c++/85067 + * g++.dg/cpp0x/defaulted51.C: New. + * g++.dg/cpp0x/constexpr-68754.C: Adjust. + +2018-03-27 Jakub Jelinek + + PR c++/85077 + * g++.dg/ext/vector35.C: New test. + + PR c++/85061 + * g++.dg/ext/builtin-offsetof3.C: New test. + + PR c++/85076 + * g++.dg/cpp1y/pr85076.C: New test. + +2018-03-27 Thomas Koenig + + PR fortran/85084 + * gfortran.dg/matmul_rank_1.f90: New test. + +2018-03-27 Thomas Koenig + Harald Anlauf + + * gfortran.dg/structure_constructor_15.f90: New test. + +2018-03-27 Volker Reichelt + + * g++.dg/cpp0x/defaulted2.C: Use dg-message instead of dg-error + for the diagnostics of overridden functions. Adjust for new wording. + * g++.dg/cpp0x/implicit1.C: Likewise. + * g++.dg/cpp0x/override1.C: Likewise. + * g++.dg/cpp1y/auto-fn18.C: Likewise. + * g++.dg/eh/shadow1.C: Likewise. + * g++.dg/inherit/covariant12.C: Likewise. + * g++.dg/inherit/covariant14.C: Likewise. + * g++.dg/inherit/covariant15.C: Likewise. + * g++.dg/inherit/covariant16.C: Likewise. + * g++.dg/inherit/covariant22.C: Likewise. + * g++.dg/inherit/crash3.C: Likewise. + * g++.dg/inherit/error2.C: Likewise. + * g++.dg/template/crash100.C: Likewise. + * g++.old-deja/g++.eh/spec6.C: Likewise. + * g++.old-deja/g++.mike/p811.C: Likewise. + * g++.old-deja/g++.other/virtual11.C: Likewise. + * g++.old-deja/g++.other/virtual4.C: Likewise. + +2018-03-27 H.J. Lu + + PR target/85044 + * gcc.target/i386/pr85044.c: New test. + +2018-03-27 Martin Sebor + + PR testsuite/83462 + * c-c++-common/Warray-bounds-4.c: Disable assertion for targets + other than x86. + +2018-03-27 Kyrylo Tkachov + + PR target/83009 + * gcc.target/aarch64/store_v2vec_lanes.c: XFAIL for ilp32. + +2018-03-27 Ramana Radhakrishnan + + PR target/81863 + * gcc.target/arm/pr81863.c: New test. + +2018-03-27 Cesar Philippidis + + PR target/85056 + * gcc.target/nvptx/pr85056.c: New test. + * gcc.target/nvptx/pr85056a.c: New test. + +2018-03-27 Richard Biener + + PR testsuite/82847 + * lib/target-supports.exp (check_ssse3_available): New function. + (check_effective_target_vect_perm_short): Enable for x86 if + check_ssse3_available. + +2018-03-27 Richard Biener + + PR tree-optimization/85082 + * gfortran.dg/pr85082.f90: New testcase. + +2018-03-27 Chenghua Xu + + * gcc.target/mips/umips-stroe16-2.c: Change "length = 2" + to "l=2" in dg-final. + +2018-03-27 Chenghua Xu + + * gcc.target/mips/fix-r4000-1.c: Delete "[^\n]+" in dg-final. + * gcc.target/mips/fix-r4000-2.c: Likewise. + * gcc.target/mips/fix-r4000-3.c: Likewise. + * gcc.target/mips/fix-r4000-4.c: Likewise. + * gcc.target/mips/fix-r4000-5.c: Likewise. + * gcc.target/mips/fix-r4000-6.c: Likewise. + * gcc.target/mips/fix-r4000-7.c: Likewise. + * gcc.target/mips/fix-r4000-8.c: Likewise. + * gcc.target/mips/fix-r4000-9.c: Likewise. + * gcc.target/mips/fix-r4000-10.c: Likewise. + * gcc.target/mips/fix-r4000-7.c: Change dg-final + "mulditi3_r4000" instead of "mulditi3". + * gcc.target/mips/fix-r4000-8.c: Change dg-final + "umulditi3_r4000" instead of "umulditi3". + +2018-03-27 Jakub Jelinek + + PR c++/85068 + * g++.dg/inherit/covariant22.C: New test. + +2018-03-27 Richard Biener + + PR testsuite/84004 + * gcc.dg/vect/vect-95.c: Never expect the loop to be peeled for + alignment. + +2018-03-27 Paolo Carlini + Jason Merrill + + PR c++/84632 + * g++.dg/init/array49.C: New. + * g++.dg/torture/pr70499.C: Adjust. + +2018-03-26 Uros Bizjak + + PR target/85073 + * gcc.target/i386/pr85073.c: New test. + +2018-03-26 Richard Biener + + PR testsuite/85066 + * gcc.dg/vect/costmodel/x86_64/costmodel-pr84986.c: Use long long + instead of long. + +2018-03-26 Thomas Koenig + + PR fortran/66709 + * gfortran.dg/parameter_array_format.f90: New test. + +2018-03-25 Thomas Koenig + Neil Carlson + + PR fortran/84381 + * gfortran.dg/literal_character_constant_1.inc: Replace + call abort by STOP n. + * gfortran.dg/overload_1.f90: Likewise. + +2018-03-25 Seth Johnson + Dominique d'Humieres + + PR fortran/84924 + * gfortran.dg/scalar_pointer_1.f90: New test. + +2018-03-25 Tom de Vries + + * gcc.dg/tree-ssa/vrp104.c: Make scan-tree-dump-times pattern more + precise. + +2018-03-24 Jerry DeLisle + + PR fortran/69497 + * gfortran.dg/pr89497.f90: New test. + +2018-03-24 Thomas Koenig + + PR fortran/70068 + * gfortran.dg/substr_7.f90: New test. + +2018-03-24 Steven G. Kargl + + PR fortran/42651 + * gfortran.dg/pr42651.f90: New test. + * gfortran.dg/func_result_7.f90: Update error message. + +2018-03-24 Richard Sandiford + + PR tree-optimization/84005 + * gcc.dg/vect/bb-slp-1.c: Make sure there is no message about + failing to force the alignment. + +2018-03-23 Peter Bergner + + * gcc.target/powerpc/builtins-1-le.c : Rename duplicate test + from this to... + : ...this. + +2018-03-23 Peter Bergner + + * gcc.target/powerpc/builtins-1-le.c: Filter out gimple folding disabled + message. Fix scan-assembler patterns. + +2018-03-23 Jakub Jelinek + + PR c++/85015 + * g++.dg/cpp0x/pr85015.C: New test. + + PR c++/84942 + * g++.dg/cpp1y/pr84942.C: New test. + +2018-03-23 Vladimir Makarov + + PR inline-asm/85030 + * gcc.target/i386/pr85030.c: New. + +2018-03-23 Kyrylo Tkachov + + PR target/85026 + * g++.dg/pr85026.C: New test. + +2018-03-23 David Edelsohn + + * g++.dg/debug/pr84704.C: XFAIL AIX. + +2018-03-23 Sudakshina Das + + PR target/84826 + * gcc.target/arm/pr84826.c: Add dg directive. + +2018-03-23 Marek Polacek + + PR c++/85033 + * g++.dg/ext/builtin-offsetof2.C: New test. + + PR c++/85045 + * g++.dg/cpp0x/Wnarrowing5.C: New test. + * gcc.dg/pr85045.c: New test. + +2018-03-23 Eric Botcazou + + PR debug/85020 + * gnat.dg/lto22.adb: New test. + * gnat.dg/lto22_pkg1.ad[sb]: New helper. + * gnat.dg/lto22_pkg2.ads: Likewise. + +2018-03-23 Jakub Jelinek + + PR c/80778 + * gcc.dg/lto/pr80778_0.c: New test. + + PR inline-asm/85034 + * gcc.target/i386/pr85034.c: New test. + + PR inline-asm/85022 + * c-c++-common/torture/pr85022.c: New test. + + PR sanitizer/85029 + * g++.dg/ubsan/pr85029.C: New test. + +2018-03-23 Alexandre Oliva + + PR c++/71251 + * g++.dg/cpp0x/pr71251.C: New. + + PR c++/84789 + * g++.dg/template/pr84789.C: New. + * g++.dg/template/pr84789-2.C: New. + * g++.dg/template/pr84789-3.C: New. + * g++.dg/parse/dtor11.C: Accept alternate error message. + + PR c++/84729 + * g++.dg/pr84729.C: New. + * g++.old-deja/g++.ext/arrnew2.C: Require error. + * g++.old-deja/g++.robertl/eb58.C: Likewise. + * g++.old-deja/g++.robertl/eb63.C: Likewise. + +2018-03-22 Steven G. Kargl + + PR fortran/84922 + * gfortran.dg/interface_42.f90: New test. + * gfortran.dg/interface_43.f90: New test. + +2018-03-22 Sudakshina Das + + PR target/84826 + * gcc.target/arm/pr84826.c: New test. + +2018-03-22 Christophe Lyon + + * gcc.target/arm/addr-modes-float.c: Move dg-do before + dg-require-effective-target. + * gcc.target/arm/addr-modes-int.c: Likewise. + * gcc.target/nios2/lo-addr-tls.c: Likewise. + +2018-03-22 Kelvin Nilsen + + PR target/84760 + * gcc.target/powerpc/altivec-ld-1.c: New test. + +2018-03-22 Bin Cheng + + * gcc.dg/graphite/pr83126.c: Require pthread for the test. + +2018-03-22 Jakub Jelinek + + PR inline-asm/84941 + * gcc.dg/pr84941.c: New test. + +2018-03-22 Tom de Vries + + PR tree-optimization/84956 + * gcc.dg/pr84956.c: New test. + +2018-03-22 Marek Polacek + + PR c++/84854 + * g++.dg/cpp1z/constexpr-if15.C: New test. + * g++.dg/cpp1z/constexpr-if16.C: New test. + +2018-03-21 Joseph Myers + + * gcc.dg/builtin-tgmath-3.c: New test. + +2018-03-21 Alexandre Oliva + + PR c++/71965 + * g++.dg/concepts/pr71965.C: New. + + PR c++/84610 + PR c++/84642 + * g++.dg/cpp0x/pr84610.C: New. + * g++.dg/cpp0x/pr84642.C: New. + +2018-03-21 Jakub Jelinek + + PR c/84999 + * c-c++-common/pr84999.c: New test. + +2018-03-21 Paolo Carlini + + PR c++/84972 + * g++.dg/ext/desig10.C: New. + +2018-03-21 Thomas Koenig + Harald Anlauf + + PR fortran/84957 + * gfortran.dg/pr84957.f90: New test. + +2018-03-21 Jakub Jelinek + + PR tree-optimization/84960 + * gcc.c-torture/compile/pr84960.c: New test. + +2018-03-21 Richard Sandiford + + PR tree-optimization/84811 + * gcc.dg/torture/pr84811.c: New test. + +2018-03-21 Jakub Jelinek + + PR tree-optimization/84982 + * c-c++-common/pr84982.c: New test. + + PR c++/84961 + * c-c++-common/pr43690.c: Don't expect errors on "m" (--x) and + "m" (++x) in C++. + * g++.dg/torture/pr84961-1.C: New test. + * g++.dg/torture/pr84961-2.C: New test. + +2018-03-21 Nathan Sidwell + + PR c++/85008 + * g++.dg/pr85008.C: New. + +2018-03-21 Janne Blomqvist + + PR fortran/84615 + * gfortran.dg/char_result_17.f90: New test. + +2018-03-21 David Malcolm + + PR c++/84994 + * g++.dg/other/accessor-fixits-1.C: Move to... + * g++.dg/torture/accessor-fixits-1.C: ...here. + * g++.dg/other/accessor-fixits-2.C: Move to... + * g++.dg/torture/accessor-fixits-2.C: ...here. + * g++.dg/other/accessor-fixits-3.C: Move to... + * g++.dg/torture/accessor-fixits-3.C: ...here. + * g++.dg/other/accessor-fixits-4.C: Move to... + * g++.dg/torture/accessor-fixits-4.C: ...here. + * g++.dg/other/accessor-fixits-5.C: Move to... + * g++.dg/torture/accessor-fixits-5.C: ...here. + * g++.dg/torture/accessor-fixits-6.C: New testcase. + * g++.dg/torture/accessor-fixits-7.C: New testcase. + * g++.dg/torture/accessor-fixits-8.C: New testcase. + +2018-03-21 Rainer Orth + + * gcc.dg/tree-ssa/pr84512.c: xfail on 64-bit SPARC. + +2018-03-21 Sudakshina Das + + PR target/82989 + * gcc.target/arm/pr82989.c: Change dg scan-assembly directives. + +2018-03-21 Nathan Sidwell + + PR c++/84804 + * g++.dg/lookup/pr84804.C: New. + +2018-03-21 Martin Sebor + + PR c++/84850 + * g++.dg/Wclass-memaccess-3.C: New test. + * g++.dg/Wclass-memaccess-4.C: New test. + +2018-03-21 David Malcolm + + PR c++/84892 + * g++.dg/other/accessor-fixits-1.C + (test_access_const_t1_color): New. + (test_deref_const_t1_color): New. + * g++.dg/other/accessor-fixits-5.C: New testcase. + +2018-03-21 Tom de Vries + + PR tree-optimization/83126 + * gcc.dg/graphite/pr83126.c: New test. + +2018-03-21 Nathan Sidwell + + * g++.dg/ext/anon-struct6.C: Adjust. + * g++.dg/ext/deprecate-1.C: New. + * g++.dg/ext/deprecate-2.C: New. + * g++.dg/lookup/pr84602.C: Adjust. + * g++.dg/lookup/pr84962.C: Adjust. + * g++.old-deja/g++.other/anon4.C + + PR c++/84836 + * g++.dg/lookup/pr84836.C: New. + +2018-03-21 Bin Cheng + + PR tree-optimization/84969 + * gcc.dg/tree-ssa/pr84969.c: New test. + +2018-03-21 Jakub Jelinek + + PR rtl-optimization/84989 + * gcc.target/i386/pr84989.c: New test. + +2018-03-21 Christophe Lyon + + * gcc.target/arm/pr82518.c: Require arm_neon_hw. + +2018-03-21 Martin Liska + + PR ipa/84963 + * gfortran.dg/goacc/pr84963.f90: New test. + +2018-03-21 Marek Polacek + + PR c++/71638, ICE with NSDMI and reference. + * g++.dg/cpp0x/nsdmi14.C: New test. + * g++.dg/cpp1y/nsdmi-aggr10.C: New test. + +2018-03-21 Chenghua Xu + + * gcc.dg/vect/vect-strided-shift-1.c: Add dg-skip-if for + MIPS with -mpaired-single directives. + +2018-03-20 Steven G. Kargl + + PR fortran/85001 + * gfortran.dg/interface_41.f90: New test. + +2018-03-20 Jakub Jelinek + + PR debug/84875 + * gcc.dg/pr84875.c: New test. + +2018-03-20 Marek Polacek + + PR c++/84978, ICE with NRVO. + * g++.dg/opt/nrv19.C: New test. + +2018-03-20 Kyrylo Tkachov + + PR target/82518 + * lib/target-supports.exp (check_effective_target_vect_load_lanes): + Disable for armeb targets. + * gcc.target/arm/pr82518.c: New test. + +2018-03-20 Nathan Sidwell + + PR c++/84962 + * g++.dg/lookup/pr84962.C: New. + + PR c++/84970 + * g++.dg/lookup/pr84970.C: New. + +2018-03-20 Richard Biener + + PR target/84986 + * gcc.dg/vect/costmodel/x86_64/costmodel-pr84986.c: New testcase. + +2018-03-20 Martin Liska + + PR ipa/84825 + * g++.dg/ipa/pr84825.C: New test. + +2018-03-20 Martin Liska + + * gcc.dg/lto/chkp-ctor-merge_0.c: Remove. + +2018-03-20 Jakub Jelinek + + PR target/84845 + * gcc.c-torture/compile/pr84845.c: New test. + +2018-03-20 Sudakshina Das + + PR target/82989 + * gcc.target/arm/pr82989.c: New test. + +2018-03-20 Jakub Jelinek + + PR target/84945 + * gcc.target/i386/pr84945.c: New test. + +2018-03-20 Christophe Lyon + + PR target/81647 + * gcc.target/aarch64/pr81647.c: Require fenv_exceptions. + +2018-03-20 Jakub Jelinek + + PR c/84953 + * gcc.dg/pr84953.c: New test. + +2018-03-19 Marek Polacek + + PR c++/84925 + * g++.dg/cpp1z/lambda-__func__.C: New test. + + PR c++/84927 + * g++.dg/cpp1y/nsdmi-aggr9.C: New test. + +2018-03-19 Maxim Ostapenko + + PR sanitizer/78651 + * g++.dg/asan/pr78651.C: New test. + +2018-03-19 Tom de Vries + + * gcc.dg/tree-ssa/pr84512.c: Don't require effective target + vect_int_mult. Add nvptx xfail for PR84958. + +2018-03-19 Nathan Sidwell + + PR c++/84835 + * g++.dg/cpp1y/pr84835.C: New. + +2018-03-19 Sudakshina Das + + PR target/81647 + * gcc.target/aarch64/pr81647.c: New. + +2018-03-19 Richard Biener + + PR tree-optimization/84933 + * g++.dg/pr84933.C: New testcase. + +2018-03-19 Richard Biener + + PR tree-optimization/84859 + * gcc.dg/tree-ssa/pr84859.c: New testcase. + * gcc.dg/tree-ssa/pr35286.c: Disable cselim. + * gcc.dg/tree-ssa/split-path-6.c: Likewise. + * gcc.dg/tree-ssa/split-path-7.c: Likewise. + +2018-03-19 Nathan Sidwell + + PR c++/84812 + * g++.dg/lookup/pr84812.C: New. + +2018-03-19 Richard Biener + + PR tree-optimization/84929 + * gcc.dg/torture/pr84929.c: New testcase. + +2018-03-19 Tamar Christina + + PR target/84711 + * gcc.target/arm/big-endian-subreg.c: Delete. + +2018-03-19 Thomas Koenig + + PR fortran/84931 + * gfortran.dg/array_constructor_52.f90: New test. + +2018-03-17 Steven G. Kargl + + PR fortran/77414 + * gfortran.dg/pr77414.f90: New test. + * gfortran.dg/internal_references_1.f90: Adjust error message. + +2018-03-18 Steven G. Kargl + + PR fortran/65453 + * gfortran.dg/pr65453.f90: New test. + +2018-03-18 Richard Sandiford + + PR tree-optimization/84913 + * gfortran.dg/vect/pr84913.f90: New test. + +2018-03-18 Thomas Koenig + + PR fortran/79929 + * gfortran.dg/warn_concat.f90: New test. + +2018-03-16 Jakub Jelinek + + PR target/84899 + * gcc.dg/pr84899.c: New test. + +2018-03-16 Steven G. Kargl + + PR fortran/69395 + * gfortran.dg/pr69395.f90: Add test for max dimensions + +2018-03-16 Vladimir Makarov + + PR target/84876 + * gcc.target/i386/pr84876.c: New test. + +2018-03-16 Martin Liska + + PR ipa/84833 + * gcc.target/i386/mvc11.c: New test. + +2018-03-16 Martin Liska + + PR ipa/84722 + * gcc.target/i386/mvc10.c: New test. + +2018-03-16 Jakub Jelinek + + PR c++/79937 + PR c++/82410 + * g++.dg/cpp1y/pr79937-1.C: New test. + * g++.dg/cpp1y/pr79937-2.C: New test. + * g++.dg/cpp1y/pr79937-3.C: New test. + * g++.dg/cpp1y/pr79937-4.C: New test. + * g++.dg/cpp1y/pr82410.C: New test. + +2018-03-16 Tom de Vries + + * gcc.dg/tree-ssa/pr84512.c: Require effective target vect_int_mult. + +2018-03-16 Tom de Vries + + * gcc.dg/builtin-unreachable-6.c: Require effective target label_values. + +2018-03-16 Jakub Jelinek + + PR c++/84874 + * g++.dg/cpp2a/desig8.C: New test. + + PR tree-optimization/84841 + * gcc.dg/pr84841.c: New test. + + PR c++/84874 + * g++.dg/cpp2a/desig7.C: New test. + +2018-03-16 Mark Doffman + Jim MacArthur + + * gfortran.dg/automatic_1.f90: New test. + * gfortran.dg/automatic_repeat.f90: New test + * gfortran.dg/automatic_save.f90: New test. + * gfortran.dg/vax_structure.f90: New test. + +2018-03-15 Steven G. Kargl + + PR fortran/78741 + * gfortran.dg/pr78741.f90: New test. + +2018-03-15 Steven G. Kargl + + PR fortran/69395 + * gfortran.dg/pr69395.f90: New test. + +2018-03-15 Jakub Jelinek + + PR c++/79085 + * g++.dg/opt/pr79085.C: New test. + +2018-03-15 H.J. Lu + + PR target/84574 + * gcc.target/i386/ret-thunk-9.c: Expect __x86_return_thunk + label instead of __x86_indirect_thunk label. + +2018-03-15 Jakub Jelinek + + PR c++/84222 + * g++.dg/warn/deprecated.C (T::member3): Change dg-warning to dg-bogus. + * g++.dg/warn/deprecated-6.C (T::member3): Likewise. + * g++.dg/warn/deprecated-13.C: New test. + +2018-03-15 Olga Makhotina + + * gcc.target/i386/sgx.c (_enclv_u32): Test new intrinsic. + +2018-03-15 Richard Biener + + PR c/84873 + * c-c++-common/pr84873.c: New testcase. + +2018-03-15 Tamar Christina + + PR target/84711 + * gcc.target/arm/big-endian-subreg.c: New. + +2018-03-15 Jakub Jelinek + + PR target/84860 + * gcc.c-torture/compile/pr84860.c: New test. + +2018-03-15 Julia Koval + + * gcc.target/i386/builtin_target.c (check_intel_cpu_model): Add + cannonlake. + (check_features): Add avx512vbmi2, gfni, vpclmulqdq, avx512vnni, + avx512bitalg. + +2018-03-15 Jakub Jelinek + + PR c/84853 + * gcc.dg/pr84853.c: New test. + +2018-03-14 Carl Love + + * gcc.target/powerpc/builtins-7-runnable.c: New test file. + +2018-03-14 Martin Liska + + PR ipa/8480 + * g++.dg/lto/pr84805_0.C: New test. + * g++.dg/lto/pr84805_1.C: New test. + * g++.dg/lto/pr84805_2.C: New test. + +2018-03-14 David Malcolm + + PR c/84852 + * gcc.dg/fixits-pr84852-1.c: New test. + * gcc.dg/fixits-pr84852-2.c: New test. + +2018-03-14 Thomas Preud'homme + + * lib/scanasm.exp (scan-assembler-times): Move FAIL debug info into a + separate verbose message. + * lib/scandump.exp (scan-dump-times): Likewise. + +2018-03-14 Julia Koval + + * g++.dg/ext/mv16.C: Split up icelake on icelake client and icelake + server. + * gcc.target/i386/funcspec-56.inc: Ditto. + +2018-03-14 Richard Sandiford + + * gcc.target/aarch64/sve/mul_highpart_1_run.c: Restrict to + aarch64_sve_hw. + +2018-03-14 Jakub Jelinek + + PR sanitizer/83392 + * c-c++-common/ubsan/ptr-overflow-sanitization-1.c: Adjust expected + check count from 17 to 14. + + PR target/84844 + * gcc.target/i386/pr84844.c: New test. + +2018-03-14 Richard Biener + + PR tree-optimization/84830 + * gcc.dg/torture/pr84830.c: New testcase. + +2018-03-14 Marek Polacek + + PR c++/84596 + * g++.dg/cpp0x/static_assert15.C: New test. + +2018-03-13 Steven G. Kargl + + PR fortran/61775 + * gfortran.dg/pr61775.f90: New test. + +2018-03-13 Jakub Jelinek + + PR c++/84843 + * g++.dg/ext/pr84843-1.C: New test. + * g++.dg/ext/pr84843-2.C: New test. + +2018-03-13 David Pagan + + PR c/46921 + * gcc.dg/pr46921.c: New test. + +2018-03-13 Martin Sebor + + PR tree-optimization/84725 + * c-c++-common/Wstringop-truncation-4.c: New test. + * c-c++-common/attr-nonstring-5.c: New test. + +2018-03-13 Richard Sandiford + + * gcc.target/aarch64/sve/unpack_fcvt_signed_1.c: Expect zips rather + than unpacks. + * gcc.target/aarch64/sve/unpack_fcvt_unsigned_1.c: Likewise. + * gcc.target/aarch64/sve/unpack_float_1.c: Likewise. + +2018-03-13 Richard Sandiford + + * gcc.target/aarch64/sve/tls_1.c: New test. + * gcc.target/aarch64/sve/tls_2.C: Likewise. + +2018-03-13 Richard Sandiford + + * gcc.target/aarch64/sve/mul_highpart_1.c: New test. + * gcc.target/aarch64/sve/mul_highpart_1_run.c: Likewise. + +2018-03-13 Martin Liska + + PR ipa/84658. + * g++.dg/ipa/pr84658.C: New test. + +2018-03-13 Jakub Jelinek + + PR middle-end/84834 + * gcc.dg/pr84834.c: New test. + + PR target/84827 + * gcc.target/i386/pr84827.c: New test. + + PR target/84828 + * g++.dg/ext/pr84828.C: New test. + + PR target/84786 + * gcc.target/i386/avx512f-pr84786-1.c: New test. + * gcc.target/i386/avx512f-pr84786-2.c: New test. + + PR c++/84808 + * g++.dg/cpp1y/constexpr-84808.C: New test. + + PR c++/84704 + * g++.dg/debug/pr84704.C: New test. + +2018-03-12 Renlin Li + + * gcc.target/aarch64/movi_hf.c: New. + * gcc.target/aarch64/f16_mov_immediate_1.c: Update. + * gcc.target/aarch64/f16_mov_immediate_2.c: Update. + +2018-03-12 Martin Sebor + + PR tree-optimization/83456 + * c-c++-common/Wrestrict-2.c: Remove test cases. + * c-c++-common/Wrestrict.c: Same. + * gcc.dg/Wrestrict-12.c: New test. + * gcc.dg/Wrestrict-14.c: New test. + +2018-03-12 H.J. Lu + + * g++.dg/pr84821.C: New test. + +2018-03-12 H.J. Lu + + * gcc.dg/pr84799.c: New test. + +2018-03-12 Richard Biener + + PR tree-optimization/84803 + * gcc.dg/torture/pr84803.c: New testcase. + +2018-03-12 Jakub Jelinek + + PR c++/84813 + * g++.dg/debug/pr84813.C: New test. + +2018-03-11 Paul Thomas + + PR fortran/84546 + * gfortran.dg/unlimited_polymorphic_29.f90: New test. + +2018-03-11 Steven G. Kargl + + PR fortran/83939 + * gfortran.dg/pr83939.f90 + +2018-03-11 Thomas Koenig + + PR fortran/66128 + * gfortran.dg/zero_sized_9.f90: New test. + +2018-03-11 Jakub Jelinek + + PR debug/58150 + * g++.dg/debug/dwarf2/enum2.C: New test. + +2018-03-10 Steven G. Kargl + + PR fortran/84734 + * gfortran.dg/pr84734.f90: New test. + +2018-03-10 Eric Botcazou + + * gnat.dg/prot3.adb: New test. + * gnat.dg/prot3_pkg.ad[sb]: New helper. + +2018-03-09 Jason Merrill + Paolo Carlini + + PR c++/71169 + PR c++/71832 + * g++.dg/cpp0x/pr71169.C: New. + * g++.dg/cpp0x/pr71169-2.C: Likewise. + * g++.dg/cpp0x/pr71832.C: Likewise. + +2018-03-09 Peter Bergner + + PR target/83969 + * gcc.target/powerpc/pr83969.c: New test. + +2018-03-09 Jakub Jelinek + + PR target/84772 + * gcc.dg/pr84772.c: New test. + + PR c++/84076 + * g++.dg/warn/Wformat-2.C: New test. + + PR c++/84767 + * g++.dg/ext/vla18.C: New test. + +2018-03-09 Martin Sebor + + PR tree-optimization/84526 + * gcc.dg/Wrestrict-10.c: New test. + * gcc.dg/Wrestrict-11.c: New test. + +2018-03-09 Alexandre Oliva + + PR rtl-optimization/84682 + * gcc.dg/torture/pr84682-1.c: New. + * gcc.dg/torture/pr84682-2.c: New. + * gcc.dg/torture/pr84682-3.c: New. + +2018-03-09 Jakub Jelinek + + PR c++/84724 + * g++.dg/ext/pr84724.C: New test. + +2018-03-09 Vladimir Makarov + + PR target/83712 + * gcc.target/arm/pr83712.c: New. + +2018-03-09 Richard Biener + + PR tree-optimization/84775 + * gcc.dg/torture/pr84775.c: New testcase. + +2018-03-09 Jakub Jelinek + + PR debug/84404 + * gcc.dg/graphite/pr84404.c: Only compile on pthread effective + targets. + +2018-03-09 Eric Botcazou + + * gcc.c-torture/compile/20180309-1.c: New test. + +2018-03-08 Jakub Jelinek + + PR c++/80598 + * g++.dg/warn/Wunused-function4.C: New test. + + PR inline-asm/84742 + * gcc.target/i386/pr84742-1.c: New test. + * gcc.target/i386/pr84742-2.c: New test. + +2018-03-08 Kyrylo Tkachov + + PR target/84748 + * gcc.c-torture/execute/pr84748.c: New test. + +2018-03-08 Richard Biener + + PR middle-end/84552 + * gcc.dg/graphite/pr84552.c: New testcase. + +2018-03-08 Richard Biener + + PR tree-optimization/84178 + * gcc.dg/torture/pr84178-2.c: New testcase. + +2018-03-08 David Malcolm + + PR tree-optimization/84178 + * gcc.c-torture/compile/pr84178-1.c: New test. + +2018-03-08 Thomas Schwinge + + * lib/target-supports.exp: Do not return zero from a ifunc + function. + +2018-03-08 Richard Biener + + PR tree-optimization/84746 + * gcc.dg/torture/pr84746.c: New testcase. + + +2018-03-08 Alexandre Oliva + PR debug/84404 + PR debug/84408 + * gcc.dg/graphite/pr84404.c: New. + +2018-03-08 Jakub Jelinek + + PR tree-optimization/84740 + * gcc.dg/torture/pr84740.c: New test. + + PR tree-optimization/84739 + * gcc.dg/pr84739.c: New test. + +2018-03-07 Martin Sebor + + PR tree-optimization/83519 + * gcc.dg/Wrestrict-13.c: New test. + +2018-03-07 Steven G. Kargl + + PR fortran/64124 + PR fortran/70409 + * gfortran.dg/pr64124.f90: New tests. + * gfortran.dg/pr70409.f90: New tests. + +2018-03-07 Segher Boessenkool + + PR target/82411 + * gcc.target/powerpc/ppc-sdata-2.c: Skip if -mno-readonly-in-sdata. + +2018-03-07 Martin Sebor + + PR tree-optimization/84526 + * gcc.dg/Wrestrict-10.c: New test. + +2018-03-07 Martin Sebor + + PR tree-optimization/84468 + * g++.dg/warn/Wstringop-truncation-2.C: New test. + * gcc.dg/Wstringop-truncation.c: New test. + * gcc.dg/Wstringop-truncation-2.c: New test. + +2018-03-07 Jakub Jelinek + + PR fortran/84565 + * gfortran.dg/pr84565.f90: New test. + + PR middle-end/84723 + * gcc.target/i386/pr84723-1.c: New test. + * gcc.target/i386/pr84723-2.c: New test. + * gcc.target/i386/pr84723-3.c: New test. + * gcc.target/i386/pr84723-4.c: New test. + * gcc.target/i386/pr84723-5.c: New test. + +2018-03-06 Steven G. Kargl + + PR fortran/64107 + * gfortran.dg/pr64107.f90: New test. + +2017-03-06 Thomas Koenig + + PR fortran/84697 + PR fortran/66128 + * gfortran.dg/minmaxloc_zerosize_1.f90: New test. + +2018-03-06 Marek Polacek + + PR c++/84684 + * g++.dg/cpp1z/constexpr-84684.C: New test. + +2018-03-06 Jakub Jelinek + + PR c/84721 + * gcc.dg/pr84721.c: New test. + + PR target/84710 + * gcc.dg/pr84710.c: New test. + +2018-03-06 Steven G. Kargl + + PR fortran/56667 + * gfortran.dg/implied_do_2.f90: New test. + * gfortran.dg/coarray_8.f90: Update for new error message. + +2018-03-06 Jakub Jelinek + + PR inline-asm/84683 + * g++.dg/ext/pr84683.C: New test. + + PR tree-optimization/84687 + * gcc.dg/pr84687.c: New test. + +2018-03-06 Alexandre Oliva + + PR c++/84231 + * g++.dg/pr84231.C: New. + + PR c++/84593 + * g++.dg/cpp1y/pr84593.C: New. + + PR c++/84492 + * g++.dg/pr84492.C: New. + +2018-03-05 Bill Schmidt + + * gcc.target/powerpc/spec-barr-1.c: Change called function name to + __builtin_ppc_speculation_barrier. + +2018-03-05 Jakub Jelinek + + PR target/84700 + * gcc.target/powerpc/pr84700.c: New test. + +2018-03-05 Nathan Sidwell + + PR c++/84702 + * g++.dg/lookup/pr84702.C: New. + +2018-03-05 Jakub Jelinek + + PR target/84564 + * gcc.target/i386/pr84564.c: New test. + +2018-03-05 Marek Polacek + + PR c++/84707 + * g++.dg/cpp0x/inline-ns10.C: New test. + +2018-03-05 Nathan Sidwell + + PR c++/84694 + * g++.dg/template/pr84694.C: New. + +2018-03-05 Jakub Jelinek + + PR target/84524 + * gcc.c-torture/execute/pr84524.c: New test. + * gcc.target/i386/avx512bw-pr84524.c: New test. + +2018-03-05 Peter Bergner + + PR target/84264 + * g++.dg/pr84264.C: New test. + +2018-03-05 Paolo Carlini + + PR c++/84618 + * g++.dg/cpp0x/lambda/lambda-ice29.C: New. + * g++.dg/cpp0x/lambda/lambda-ice17.C: Adjust. + * g++.dg/cpp0x/lambda/lambda-ice23.C: Likewise. + +2018-03-05 Olga Makhotina + + * g++.dg/other/i386-2.C: Add -mpconfig and -mwbnoinvd. + * g++.dg/other/i386-3.C: Ditto. + * gcc.target/i386/sse-12.c: Ditto. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-14.c: Ditto. + * gcc.target/i386/sse-23.c: Add pconfig and wbnoinvd. + * gcc.target/i386/wbinvd-1.c: New test. + * gcc.target/i386/wbnoinvd-1.c: Ditto. + * gcc.target/i386/pconfig-1.c: Ditto. + +2018-03-05 Pádraig Brady + Nathan Sidwell + + PR c++/84497 + * g++.dg/cpp0x/pr84497.C: New. + +2018-03-05 Richard Biener + + PR tree-optimization/84670 + * gcc.dg/pr84670-1.c: New testcase. + * gcc.dg/pr84670-2.c: Likewise. + * gcc.dg/pr84670-3.c: Likewise. + * gcc.dg/pr84670-4.c: Likewise. + +2018-03-05 Richard Biener + + PR tree-optimization/84650 + * gcc.dg/graphite/pr84650.c: New testcase. + +2018-03-05 Paolo Carlini + + PR c++/82022 + * g++.dg/cpp1z/constexpr-lambda20.C: New. + +2018-03-03 Harald Anlauf + + PR fortran/71085 + * gfortran.dg/pr71085.f90: New test. + +2018-03-03 Steven G. Kargl + + PR fortran/66128 + * gfortran.dg/zero_sized_8.f90: Really commit New test. + +2018-03-03 Steven G. Kargl + + PR fortran/51434 + * gfortran.dg/pr51434.f90: New test. + +2018-03-03 Paolo Carlini + + PR c++/61358 + * g++.dg/cpp0x/lambda/lambda-61358.C: New. + +2018-03-03 Paolo Carlini + + PR c++/67370 + * g++.dg/cpp0x/lambda/lambda-67370.C: New. + +2018-03-03 Paolo Carlini + + PR c++/71464 + * g++.dg/torture/pr71464.C: New. + +2018-03-03 Paul Thomas + + PR fortran/80965 + * gfortran.dg/select_type_41.f90: New test. + +2018-03-02 Paolo Carlini + + PR c++/61135 + * g++.dg/cpp0x/lambda/lambda-61135.C: New. + +2018-03-02 Marek Polacek + + PR c++/84578 + * g++.dg/ext/flexary29.C: New test. + +2018-03-02 Jakub Jelinek + + * c-c++-common/Warray-bounds-2.c: Fix a comment typo. + +2018-03-02 Paolo Carlini + + PR c++/81812 + * g++.dg/torture/pr81812.C: New. + +2018-03-02 Marek Polacek + + PR c++/84171 + * g++.dg/warn/Wsign-compare-8.C: New test. + + PR c++/84663 + * g++.dg/parse/array-size3.C: New test. + + PR c++/84664 + * g++.dg/cpp0x/lambda/lambda-ice28.C: New test. + +2018-03-02 Jakub Jelinek + + PR c++/84662 + * g++.dg/cpp1y/pr84662.C: New test. + +2018-03-02 Thomas Schwinge + + * g++.dg/lto/20080915_0.C: Don't use "dg-lto-options". + * g++.dg/lto/20080907_0.C: Use "#pragma GCC" instead of + "dg-lto-options". + * g++.dg/lto/20101010-1_0.C: Likewise. + * g++.dg/lto/20101010-2_0.C: Likewise. + +2018-03-02 Jakub Jelinek + + PR ipa/84628 + * gcc.dg/pr84628.c: New test. + + PR target/56540 + * gcc.target/ia64/pr56540.c: New test. + +2018-03-02 Will Schmidt + + * gcc.target/powerpc/altivec-7-be.c: Remove VSX content, allow + 32-bit target. + * gcc.target/powerpc/altivec-7.h: Remove VSX content. + * gcc.target/powerpc/vsx-7-be.c: New test (VSX content). + * gcc.target/powerpc/vsx-7.h: New include (VSX content). + * gcc.target/powerpc/altivec-7-le.c: Add vsx-7.h include. + +2018-03-02 Marek Polacek + + PR c++/84590 + * c-c++-common/ubsan/shift-11.c: New test. + +2018-03-02 Richard Sandiford + + * gcc.dg/vect/vect-alias-check-13.c: New test. + +2018-03-02 Jakub Jelinek + + PR target/84614 + * gcc.dg/pr84614.c: New test. + + PR inline-asm/84625 + * gcc.target/i386/pr84625.c: New test. + +2018-03-02 Richard Biener + + PR tree-optimization/84427 + * gcc.dg/torture/pr84427.c: New testcase. + +2018-03-01 Peter Bergner + + PR target/84534 + * gcc.target/powerpc/vec-setup-be-long.c: Add dg-xfail-run-if on + powerpc64le*-*-linux*. + * gcc.target/powerpc/vsx-vector-6-le.c: Do not count xxlor's. + * gcc.target/powerpc/vsx-vector-6-le.p9.c: Likewise. + +2018-03-01 Martin Sebor + + PR c++/84294 + * g++.dg/ext/attr-const.C: Remove xfail. + * g++.dg/ext/attr-malloc-3.C: New test. + * g++.dg/ext/attr-noinline-3.C: New test. + * g++.dg/ext/attr-noreturn-3.C: New test. + * g++.dg/ext/attr-nothrow-3.C: New test. + * g++.dg/ext/attr-pure.C: Remove xfail. + +2018-03-02 Jakub Jelinek + + PR sanitizer/70875 + * gcc.dg/ubsan/bounds-3.c: Add -fno-sanitize-recover=bounds to + dg-options and dg-shouldfail "ubsan" directive. + +2018-03-01 Marek Polacek + Jason Merrill + + PR c++/84582 + * g++.dg/cpp1y/auto-fn15.C: Extend testing. + * g++.dg/cpp1z/static1.C: New test. + * g++.dg/template/static37.C: New test. + +2018-03-01 Nathan Sidwell + + PR c++/84434 + * g++.dg/template/pr84434.C: New. + +2018-03-01 Thomas Preud'homme + + * gcc.target/arm/copysign_softfloat_1.c: Remove dg-add-options and add + -mthumb to the command-line. + +2018-03-01 Marek Polacek + + PR c++/84596 + * g++.dg/cpp0x/static_assert14.C: New test. + +2018-03-01 Paolo Carlini + + PR c++/79410 + * g++.dg/torture/pr79410.C: New. + +2018-03-01 Martin Liska + + PR sanitizer/82484 + * gcc.dg/asan/pr82484.c: New test. + +2018-03-01 Richard Biener + + PR debug/84645 + * gfortran.dg/lto/pr84645_0.f90: New testcase. + +2018-03-01 Paul Thomas + + PR fortran/84219 + * gfortran.dg/coarray_47.f90: New test. + +2018-03-01 Paul Thomas + + PR fortran/84538 + * gfortran.dg/class_array_23.f03: New test. + +2018-03-01 Richard Sandiford + + PR rtl-optimization/84528 + * gcc.dg/torture/pr84538.c: Rename to... + * gcc.dg/torture/pr84528.c: ...this. + +2018-03-01 Richard Sandiford + + PR rtl-optimization/84528 + * gcc.dg/torture/pr84538.c: New test. + +2018-02-28 Martin Sebor + + * c-c++-common/Warray-bounds-2.c: Declare helper static to avoid + -fpic test failures. + * c-c++-common/Wrestrict-2.c: Same. + * c-c++-common/Wstringop-truncation.c: Same. + * gcc.dg/Warray-bounds-22.c: Same. + * gcc.dg/Wstringop-overflow.c: Same. + * gcc.dg/attr-alloc_size-3.c (unsigned_range): Same. + (signed_range): Same. + (unsigned_anti_range): Same. + * gcc.dg/attr-alloc_size-4.c (unsigned_range): Same. + (signed_range): Same. + (unsigned_anti_range): Same. + * gcc.dg/attr-alloc_size-7.c: Same. + * gcc.dg/attr-alloc_size-8.c: Same. + * gcc.dg/builtin-alloc-size.c: Same. + * gcc.dg/builtin-stpncpy.c: Same. + * gcc.dg/builtins-nonnull.c: Same. + * gcc.dg/nonnull-4.c (g16_1_3_5_7_11_13): Same. + * gcc.dg/pr79214.c: Same. + * gcc.dg/tree-ssa/builtin-snprintf-warn-1.c: Same. + * gcc.dg/tree-ssa/builtin-snprintf-warn-2.c: Same. + * gcc.dg/tree-ssa/builtin-sprintf-5.c: Same. + * gcc.dg/tree-ssa/builtin-sprintf-warn-11.c: Same. + * gcc.dg/tree-ssa/builtin-sprintf-warn-12.c: Same. + * gcc.dg/tree-ssa/builtin-sprintf-warn-13.c: Same. + * gcc.dg/tree-ssa/builtin-sprintf-warn-14.c: Same. + * gcc.dg/tree-ssa/builtin-sprintf-warn-15.c: Same. + * gcc.dg/tree-ssa/builtin-sprintf-warn-19.c: Same. + * gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Same. + * gcc.dg/tree-ssa/builtin-sprintf-warn-9.c: Same. + +2018-02-28 David Edelsohn + + PR target/84014 + * gcc.target/powerpc/pr84014.c: Use ilp32, not -m32 option. + +2018-02-28 Jakub Jelinek + + PR c++/84609 + * g++.dg/cpp0x/pr84609.C: New test. + +2018-02-28 Martin Sebor + + PR testsuite/84617 + * g++.dg/ext/attr-malloc-3.C: New test. + * g++.dg/ext/attr-const.C: Adjust. Xfail assertions failing due + to pre-existing problems. + * g++.dg/ext/attr-pure.C: Same. + +2018-02-28 Paul Thomas + + PR fortran/83901 + * gfortran.dg/associate_37.f90: New test. + + PR fortran/83344 + * gfortran.dg/associate_36.f90: Add Steve Kargl as contributer. + +2018-02-28 Jakub Jelinek + + PR target/52991 + * gcc.dg/bf-ms-layout.c: Revert 2012-04-26 changes. + * gcc.dg/bf-ms-layout-2.c: Revert 2012-02-23 changes. + * gcc.dg/bf-ms-layout-4.c: New test. + * gcc.dg/bf-ms-layout-5.c: New test. + +2018-02-28 Peter Bergner + + PR target/83399 + * gcc.target/powerpc/pr83399.c: Only run on Linux. + +2018-02-28 Richard Biener + + PR tree-optimization/84584 + * gcc.dg/graphite/pr84584.c: New testcase. + +2018-02-28 Jonathan Wakely + + PR preprocessor/84517 + * g++.dg/cpp0x/udlit-macros.C: Expect a warning for ""__FILE__. + +2018-02-28 Eric Botcazou + + * c-c++-common/dump-ada-spec-12.c: New test. + * c-c++-common/dump-ada-spec-13.c: Likewise. + +2018-02-28 Eric Botcazou + + * c-c++-common/dump-ada-spec-11.c: New test. + +2018-02-28 Martin Liska + + PR testsuite/84597 + * g++.dg/ext/timevar1.C: Fix pruned patterns. + * g++.dg/ext/timevar2.C: Likewise. + +2018-02-28 Eric Botcazou + + * c-c++-common/dump-ada-spec-8.c: New test. + * c-c++-common/dump-ada-spec-9.c: Likewise. + * c-c++-common/dump-ada-spec-10.c: Likewise. + +2018-02-28 Richard Biener + + PR middle-end/84607 + * gcc.dg/pr84607.c: New testcase. + +2018-02-28 Nathan Sidwell + + PR c++/84602 + * g++.dg/lookup/pr84602.C: New. + +2018-02-28 Jakub Jelinek + + PR c++/83871 + PR c++/83503 + * g++.dg/ext/attr-warning.C: Remove -fdump-tree-optimized from + dg-options. + * g++.dg/ext/attr-nonnull.C: Likewise. + * g++.dg/ext/attr-noinline.C: Fix syntax in scan-tree-dump-not + directives. + * g++.dg/ext/attr-noinline-2.C: Likewise. + * g++.dg/ext/attr-noreturn-2.C: Use -fdump-tree-optimized instead of + -fdump-tree-eh in dg-options. + +2018-02-28 Alan Modra + + * lib/prune.exp (prune_gcc_output): Match lower case "in function" + GNU ld message. + * g++.dg/other/anon5.C: Match lower case "bad value" GNU ld message. + +2018-02-27 Martin Sebor + + PR c++/83871 + PR c++/83503 + * g++.dg/Wmissing-attributes.C: New test. + * g++.dg/ext/attr-const-pure.C: New test. + * g++.dg/ext/attr-const.C: New test. + * g++.dg/ext/attr-deprecated-2.C: New test. + * g++.dg/ext/attr-malloc-2.C: New test. + * g++.dg/ext/attr-malloc.C: New test. + * g++.dg/ext/attr-noinline-2.C: New test. + * g++.dg/ext/attr-noinline.C: New test. + * g++.dg/ext/attr-nonnull.C: New test. + * g++.dg/ext/attr-noreturn-2.C: New test. + * g++.dg/ext/attr-noreturn.C: New test. + * g++.dg/ext/attr-nothrow-2.C: New test. + * g++.dg/ext/attr-nothrow.C: New test. + * g++.dg/ext/attr-optimize.C: New test. + * g++.dg/ext/attr-pure.C: New test. + * g++.dg/ext/attr-returns-nonnull.C: New test. + * g++.dg/ext/attr-warning.C: New test. + +2018-02-27 Nathan Sidwell + + PR c++/84426 + * g++.dg/lookup/pr84426.C: New. + +2018-02-27 Richard Biener + + PR tree-optimization/84512 + * gcc.dg/tree-ssa/pr84512.c: New testcase. + +2018-02-27 Martin Liska + + PR gcov-profile/84548 + * g++.dg/gcov/pr84548.C: New test. + +2018-02-27 Jakub Jelinek + + PR target/84575 + * gcc.target/i386/pr84309.c: Add -mno-avx2 to dg-options. + +2018-02-26 Jakub Jelinek + + PR c++/84558 + * g++.dg/cpp1y/pr84558.C: New test. + +2018-02-26 Paolo Carlini + + PR c++/84540 + * g++.dg/cpp0x/alignas14.C: New. + * g++.dg/cpp0x/alignas15.C: Likewise. + +2018-02-26 Jakub Jelinek + + PR c++/84557 + * g++.dg/gomp/pr84557.C: New test. + +2018-02-26 Marek Polacek + + PR c++/84325 + * g++.dg/cpp1z/pr84325.C: New test. + +2018-02-26 Carl Love + + * gcc.target/powerpc/builtins-3.c: Move vec_neg builtin tests to + Power 8 test file. + * gcc.target/powerpc/builtins-3-p8.c: Add vec_neg builtin tests. + * gcc.target/powerpc/fold-vec-neg-char.c(dg-options): Add -mcpu=power8. + * gcc.target/powerpc/fold-vec-neg-floatdouble.c(dg-options): Add + -mcpu=power8. + * gcc.target/powerpc/fold-vec-neg-int.c(dg-options): Remove file. + * gcc.target/powerpc/fold-vec-neg-short.c(dg-options): Add + -mcpu=power8. + +2018-02-26 H.J. Lu + + PR target/84039 + * gcc.target/i386/indirect-thunk-1.c: Updated. + * gcc.target/i386/indirect-thunk-2.c: Likewise. + * gcc.target/i386/indirect-thunk-3.c: Likewise. + * gcc.target/i386/indirect-thunk-4.c: Likewise. + * gcc.target/i386/indirect-thunk-5.c: Likewise. + * gcc.target/i386/indirect-thunk-6.c: Likewise. + * gcc.target/i386/indirect-thunk-7.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-1.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-2.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-3.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-4.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-5.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-6.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-7.c: Likewise. + * gcc.target/i386/indirect-thunk-bnd-1.c: Likewise. + * gcc.target/i386/indirect-thunk-bnd-2.c: Likewise. + * gcc.target/i386/indirect-thunk-bnd-3.c: Likewise. + * gcc.target/i386/indirect-thunk-bnd-4.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-1.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-2.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-3.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-4.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-5.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-6.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-7.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-1.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-2.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-3.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-4.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-5.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-6.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-7.c: Likewise. + * gcc.target/i386/ret-thunk-9.c: Likewise. + * gcc.target/i386/ret-thunk-10.c: Likewise. + * gcc.target/i386/ret-thunk-11.c: Likewise. + * gcc.target/i386/ret-thunk-12.c: Likewise. + * gcc.target/i386/ret-thunk-13.c: Likewise. + * gcc.target/i386/ret-thunk-14.c: Likewise. + * gcc.target/i386/ret-thunk-15.c: Likewise. + +2018-02-26 Eric Botcazou + + * gcc.c-torture/execute/20180226-1.c: New test. + +2018-02-26 Richard Sandiford + + PR tree-optimization/83965 + * gcc.dg/vect/pr83965-2.c: New test. + +2018-02-26 Tom de Vries + + * gcc.c-torture/compile/regs-arg-size.c (swprintf): Declare. + +2018-02-26 H.J. Lu + + PR target/84530 + * gcc.target/i386/ret-thunk-22.c: New test. + * gcc.target/i386/ret-thunk-23.c: Likewise. + * gcc.target/i386/ret-thunk-24.c: Likewise. + * gcc.target/i386/ret-thunk-25.c: Likewise. + * gcc.target/i386/ret-thunk-26.c: Likewise. + +2018-02-26 Paolo Carlini + + PR c++/84533 + * g++.dg/cpp1z/pr84533.C: New. + +2018-02-26 Marek Polacek + + PR c++/84537 + * g++.dg/parse/error60.C: New test. + +2018-02-26 Jakub Jelinek + + PR c++/84556 + * g++.dg/gomp/pr84556.C: New test. + * g++.dg/vect/pr84556.cc: New test. + +2018-02-26 Dominique d'Humieres + + PR fortran/32957 + * gfortran.dg/c_f_pointer_shape_tests_2.f03: Use explicit KIND c_int. + * gfortran.dg/c_f_pointer_shape_tests_4.f03: Likewise. + * gfortran.dg/c_funloc_tests_3.f03: Likewise. + * gfortran.dg/c_loc_test.f90: Likewise. + * gfortran.dg/c_loc_tests_2.f03: Likewise. + * gfortran.dg/proc_decl_17.f90: Likewise. + * gfortran.dg/proc_ptr_8.f90: Likewise. + +2018-02-26 Ramana Radhakrishnan + + PR target/84521 + * gcc.target/aarch64/lr_free_2.c: Revert changes in + r254814 disabling -fomit-frame-pointer by default. + * gcc.target/aarch64/spill_1.c: Likewise. + * gcc.target/aarch64/test_frame_11.c: Likewise. + * gcc.target/aarch64/test_frame_12.c: Likewise. + * gcc.target/aarch64/test_frame_13.c: Likewise. + * gcc.target/aarch64/test_frame_14.c: Likewise. + * gcc.target/aarch64/test_frame_15.c: Likewise. + * gcc.target/aarch64/test_frame_3.c: Likewise. + * gcc.target/aarch64/test_frame_5.c: Likewise. + * gcc.target/aarch64/test_frame_9.c: Likewise. + +2018-02-25 Steven G. Kargl + + PR fortran/83633 + * gfortran.dg/explicit_shape_1.f90: New test. + * gfortran.dg/automatic_module_variable.f90: Update regex. + * gfortran.dg/bad_automatic_objects_1.f90: Ditto. + * gfortran.dg/constant_shape.f90: Ditto. + * gfortran.dg/dec_structure_23.f90: Ditto. + * gfortran.dg/pr78240.f90: Ditto. + +2018-02-25 Paul Thomas + + PR fortran/84523 + * gfortran.dg/pr84523.f90: New test. + +2018-02-25 Thomas Koenig + + PR fortran/78238 + * gfortran.dg/select_type_40.f90: New test. + +2018-02-24 Steven G. Kargl + + PR fortran/30792 + * gfortran.dg/data_substring.f90: New test. + +2018-02-24 Marek Polacek + + PR c++/83692 + * g++.dg/cpp1z/constexpr-83692.C: New test. + +2018-02-23 Steven G. Kargl + + PR fortran/84346 + * gfortran.dg/statement_function_1.f90: Update test. + +2018-02-23 Jerry DeLisle + + PR fortran/84506 + * gfortran.dg/inquire_19.f90: New test. + +2018-02-23 Paul Thomas + + PR fortran/83149 + * gfortran.dg/pr83149_b.f90: New test. + * gfortran.dg/pr83149_a.f90: Additional source for previous. + +2018-02-23 Carl Love + + * gcc.target/powerpc/builtins-3-runnable.c: Move tests for vec_float2, + vec_signed2 and vec_unsigned2 to new Power 8 test file. + * gcc.target/powerpc/builtins-3-runnable-p8.c: New test file for + Power 8 tests. + +2018-02-23 Will Schmidt + + * gcc.target/powerpc/pr80695-p9.c: Update dg-requires stanza. + * gcc.target/powerpc/pr80695-p8.c: Update dg-requires stanza. + +2018-02-23 Will Schmidt + + * gcc.target/powerpc/fold-vec-mult-int128-p9.c: Add maddld insn to + expected output. + +2018-02-23 Paul Thomas + + PR fortran/83149 + * gfortran.dg/pr83149_1.f90: New test. + * gfortran.dg/pr83149.f90: Additional source for previous. + +2018-02-23 Segher Boessenkool + + PR testsuite/80551 + * c-c++-common/tsan/race_on_mutex.c: Change regexp to allow + __GI___pthread_mutex_init as well. + +2018-02-23 Paul Thomas + + PR fortran/83148 + * gfortran.dg/class_68.f90: New test. + +2018-02-22 Thomas Koenig + + PR fortran/59781 + * gfortran.dg/derived_init_5.f90: New test. + +2018-02-22 Jakub Jelinek + + PR target/82851 + * gcc.target/i386/avx2-vpaddq-3.c: Add -mtune=generic to dg-options. + * gcc.target/i386/avx2-vpsubq-3.c: Likewise. + +2018-02-22 Vladimir Makarov + + PR target/81572 + * gcc.target/powerpc/pr81572.c: New. + +2018-02-22 Andreas Schwab + + * go.test/go-test.exp (go-set-goarch): Recognize riscv64-*-*. + +2018-02-22 Martin Sebor + + PR tree-optimization/84480 + * c-c++-common/Wstringop-truncation.c: Adjust text of expected warnings. + * g++.dg/warn/Wstringop-truncation-1.C: New test. + +2018-02-22 H.J. Lu + + PR target/84176 + * gcc.target/i386/indirect-thunk-11.c: New test. + * gcc.target/i386/indirect-thunk-12.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-12.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-13.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-14.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-15.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-16.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-10.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-8.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-9.c: Likewise. + +2018-02-22 Steve Ellcey + + PR target/83335 + * gcc.target/aarch64/asm-2.c: Add dg-error for + ILP32 mode. + * gcc.target/aarch64/asm-4.c: New test. + +2018-02-22 Thomas Preud'homme + + * gcc.target/arm/multilib.exp: Add tests for Armv8-R multilib mappings. + +2018-02-22 Marek Polacek + + PR c++/84493 + * g++.dg/parse/error59.C: New test. + +2018-02-22 Tom de Vries + + * gcc.c-torture/execute/pr82210.c: Require effective target alloca. + +2018-02-22 Paolo Carlini + + PR c++/77655 + * g++.dg/cpp0x/pr77655.C: New. + +2018-02-22 Jakub Jelinek + + PR c++/84496 + * g++.dg/cpp1y/pr84496.C: New test. + + PR target/84502 + * g++.dg/torture/pr84502.C: New test. + + PR tree-optimization/84503 + * gcc.dg/pr84503-1.c: New test. + * gcc.dg/pr84503-2.c: New test. + +2018-02-21 Jakub Jelinek + + PR tree-optimization/84478 + * gcc.c-torture/execute/pr84478.c: New test. + +2018-02-20 Martin Sebor + + PR middle-end/84095 + * c-c++-common/Warray-bounds-3.c: Adjust text of expected warnings. + * c-c++-common/Wrestrict.c: Same. + * gcc.dg/Wrestrict-6.c: Same. + * gcc.dg/Warray-bounds-27.c: New test. + * gcc.dg/Wrestrict-8.c: New test. + * gcc.dg/Wrestrict-9.c: New test. + * gcc.dg/pr84095.c: New test. + +2018-02-20 Thomas Koenig + + * gfortran.dg/structure_constructor_14.f90: Adjust STOP number. + +2018-02-20 Thomas Koenig + + PR fortran/48890 + PR fortran/83823 + * gfortran.dg/structure_constructor_14.f90: New test. + +2018-02-20 Jeff Law + + PR middle-end/82123 + PR tree-optimization/81592 + PR middle-end/79257 + * gcc.dg/pr81592.c: New test. + * gcc.dg/pr82123.c: New test. + * gcc.dg/builtin-unreachable-6.c: Turn off VRP. + +2018-02-20 Jakub Jelinek + + PR c++/84488 + * g++.dg/warn/Wunused-var-30.C: New test. + +2018-02-20 Richard Sandiford + + PR tree-optimization/84419 + * gcc.dg/vect/pr84419.c: New test. + +2018-02-20 Jakub Jelinek + + PR middle-end/82004 + * gfortran.dg/pr82004.f90: New test. + +2018-02-20 Siddhesh Poyarekar + + * g++.dg/warn/Wimplicit-fallthrough-3.C: New test case. + +2018-02-20 Martin Liska + + PR c/84310 + PR target/79747 + * gcc.target/i386/pr84310.c: New test. + * gcc.target/i386/pr84310-2.c: Likewise. + +2018-02-20 Paolo Carlini + + PR c++/84446 + * g++.dg/cpp0x/lambda/lambda-ice27.C: New. + +2018-02-20 Jakub Jelinek + + PR c++/84445 + * g++.dg/cpp1z/launder7.C: New test. + + PR c++/84449 + * g++.dg/cpp0x/constexpr-84449.C: New test. + + PR c++/84455 + * g++.dg/cpp0x/lambda/lambda-ice26.C: New test. + +2018-02-19 Paul Thomas + + PR fortran/83344 + PR fortran/83975 + * gfortran.dg/associate_22.f90: Enable commented out test. + * gfortran.dg/associate_36.f90: New test. + +2018-02-19 Jakub Jelinek + + PR target/84146 + * gcc.target/i386/pr84146.c: Add -fcompare-debug to dg-options. + +2017-02-19 Uros Bizjak + + * gcc.target/i386/pr70023.c (dg-do): Compile only for target int128. + (dg-options): Use -mavx instead of -w. + +2018-02-19 Jakub Jelinek + + PR c++/84444 + * g++.dg/cpp1z/launder8.C: New test. + + PR c++/84448 + * g++.dg/gomp/pr84448.C: New test. + + PR c++/84430 + * g++.dg/gomp/pr84430.C: New test. + + PR tree-optimization/84452 + * gcc.dg/pr84452.c: New test. + + PR c++/79064 + * g++.dg/template/overload15.C (f): Use 0u - 1ll instead of 0u - 1l. + +2018-02-19 Thomas Koenig + + PR fortran/35339 + * gfortran.dg/implied_do_io_4.f90: New test. + +2018-02-19 Andre Vehreschild + + * gfortran.dg/coarray_alloc_comp_6.f08: New test. + * gfortran.dg/coarray_alloc_comp_7.f08: New test. + * gfortran.dg/coarray_alloc_comp_8.f08: New test. + +2018-02-19 Carl Love + + * gcc.target/powerpc/fold-vec-neg-int.p7.c: Remove test file. + +2018-01-16 Sebastian Peryt + + PR target/84460 + * gcc.target/i386/pr57193.c: Add -mtune=generic. + +2018-02-19 Paolo Carlini + + PR c++/84348 + * g++.dg/cpp0x/auto50.C: New. + * g++.dg/parse/friend12.C: Adjust. + +2018-02-18 Jerry DeLisle + + PR libgfortran/84389 + * gfortran.dg/dtio_33.f90: New test. + +2018-02-18 Jerry DeLisle + + PR libgfortran/84412 + * gfortran.dg/inquire_18.f90: New test. + +2018-02-18 Janus Weil + + PR fortran/84381 + * gfortran.dg/io_real_boz2.f90: Remove option "-fall-intrinsics". + * gfortran.dg/pointer_intent_3.f90: Ditto. + * gfortran.dg/proc_ptr_common_1.f90: Ditto. + * gfortran.dg/protected_3.f90: Ditto. + * gfortran.dg/protected_4.f90: Ditto. + * gfortran.dg/protected_5.f90: Ditto. + * gfortran.dg/protected_6.f90: Ditto. + +2018-02-18 Paul Thomas + + PR fortran/80945 + * gfortran.dg/associate_35.f90: Remove error, add stop n's and + change to run. + +2018-02-17 Thomas Koenig + + PR fortran/84270 + * gfortran.dg/inline_matmul_22.f90: New test. + +2018-02-17 Thomas Koenig + + PR fortran/84381 + * gfortran.dg/abort_shoulfail.f90: New test. + * gcc.target/powerpc/ppc-fortran/pr80108-1.f90: Replace CALL ABORT + by STOP n. + * gfortran.dg/PR19754_2.f90: Likewise. + * gfortran.dg/PR19872.f: Likewise. + * gfortran.dg/PR49268.f90: Likewise. + * gfortran.dg/Wall.f90: Likewise. + * gfortran.dg/Wno-all.f90: Likewise. + * gfortran.dg/achar_1.f90: Likewise. + * gfortran.dg/achar_2.f90: Likewise. + * gfortran.dg/achar_4.f90: Likewise. + * gfortran.dg/achar_6.F90: Likewise. + * gfortran.dg/actual_array_constructor_1.f90: Likewise. + * gfortran.dg/actual_array_constructor_2.f90: Likewise. + * gfortran.dg/actual_array_constructor_3.f90: Likewise. + * gfortran.dg/actual_array_offset_1.f90: Likewise. + * gfortran.dg/actual_array_result_1.f90: Likewise. + * gfortran.dg/actual_array_substr_1.f90: Likewise. + * gfortran.dg/actual_array_substr_2.f90: Likewise. + * gfortran.dg/actual_pointer_function_1.f90: Likewise. + * gfortran.dg/actual_procedure_1.f90: Likewise. + * gfortran.dg/adjustl_1.f90: Likewise. + * gfortran.dg/advance_1.f90: Likewise. + * gfortran.dg/advance_4.f90: Likewise. + * gfortran.dg/advance_5.f90: Likewise. + * gfortran.dg/advance_6.f90: Likewise. + * gfortran.dg/aint_anint_1.f90: Likewise. + * gfortran.dg/aliasing_array_result_1.f90: Likewise. + * gfortran.dg/aliasing_dummy_1.f90: Likewise. + * gfortran.dg/aliasing_dummy_4.f90: Likewise. + * gfortran.dg/aliasing_dummy_5.f90: Likewise. + * gfortran.dg/alloc_comp_assign_1.f90: Likewise. + * gfortran.dg/alloc_comp_assign_10.f90: Likewise. + * gfortran.dg/alloc_comp_assign_11.f90: Likewise. + * gfortran.dg/alloc_comp_assign_12.f03: Likewise. + * gfortran.dg/alloc_comp_assign_13.f08: Likewise. + * gfortran.dg/alloc_comp_assign_14.f08: Likewise. + * gfortran.dg/alloc_comp_assign_15.f03: Likewise. + * gfortran.dg/alloc_comp_assign_2.f90: Likewise. + * gfortran.dg/alloc_comp_assign_3.f90: Likewise. + * gfortran.dg/alloc_comp_assign_4.f90: Likewise. + * gfortran.dg/alloc_comp_assign_5.f90: Likewise. + * gfortran.dg/alloc_comp_assign_6.f90: Likewise. + * gfortran.dg/alloc_comp_assign_7.f90: Likewise. + * gfortran.dg/alloc_comp_assign_8.f90: Likewise. + * gfortran.dg/alloc_comp_assign_9.f90: Likewise. + * gfortran.dg/alloc_comp_auto_array_1.f90: Likewise. + * gfortran.dg/alloc_comp_auto_array_2.f90: Likewise. + * gfortran.dg/alloc_comp_basics_1.f90: Likewise. + * gfortran.dg/alloc_comp_basics_2.f90: Likewise. + * gfortran.dg/alloc_comp_basics_5.f90: Likewise. + * gfortran.dg/alloc_comp_bounds_1.f90: Likewise. + * gfortran.dg/alloc_comp_class_1.f90: Likewise. + * gfortran.dg/alloc_comp_class_2.f90: Likewise. + * gfortran.dg/alloc_comp_class_4.f03: Likewise. + * gfortran.dg/alloc_comp_class_5.f03: Likewise. + * gfortran.dg/alloc_comp_constructor_1.f90: Likewise. + * gfortran.dg/alloc_comp_constructor_2.f90: Likewise. + * gfortran.dg/alloc_comp_constructor_3.f90: Likewise. + * gfortran.dg/alloc_comp_constructor_4.f90: Likewise. + * gfortran.dg/alloc_comp_constructor_5.f90: Likewise. + * gfortran.dg/alloc_comp_constructor_6.f90: Likewise. + * gfortran.dg/alloc_comp_constructor_7.f90: Likewise. + * gfortran.dg/alloc_comp_deep_copy_1.f03: Likewise. + * gfortran.dg/alloc_comp_deep_copy_2.f03: Likewise. + * gfortran.dg/alloc_comp_deep_copy_3.f03: Likewise. + * gfortran.dg/alloc_comp_default_init_1.f90: Likewise. + * gfortran.dg/alloc_comp_default_init_2.f90: Likewise. + * gfortran.dg/alloc_comp_initializer_1.f90: Likewise. + * gfortran.dg/alloc_comp_initializer_4.f03: Likewise. + * gfortran.dg/alloc_comp_optional_1.f90: Likewise. + * gfortran.dg/alloc_comp_result_1.f90: Likewise. + * gfortran.dg/alloc_comp_result_2.f90: Likewise. + * gfortran.dg/alloc_comp_scalar_1.f90: Likewise. + * gfortran.dg/alloc_comp_transformational_1.f90: Likewise. + * gfortran.dg/allocatable_dummy_1.f90: Likewise. + * gfortran.dg/allocatable_dummy_3.f90: Likewise. + * gfortran.dg/allocatable_function_1.f90: Likewise. + * gfortran.dg/allocatable_function_10.f90: Likewise. + * gfortran.dg/allocatable_function_3.f90: Likewise. + * gfortran.dg/allocatable_function_5.f90: Likewise. + * gfortran.dg/allocatable_function_6.f90: Likewise. + * gfortran.dg/allocatable_function_7.f90: Likewise. + * gfortran.dg/allocatable_function_8.f90: Likewise. + * gfortran.dg/allocatable_scalar_1.f90: Likewise. + * gfortran.dg/allocatable_scalar_10.f90: Likewise. + * gfortran.dg/allocatable_scalar_12.f90: Likewise. + * gfortran.dg/allocatable_scalar_13.f90: Likewise. + * gfortran.dg/allocatable_scalar_3.f90: Likewise. + * gfortran.dg/allocatable_scalar_4.f90: Likewise. + * gfortran.dg/allocatable_scalar_5.f90: Likewise. + * gfortran.dg/allocatable_scalar_6.f90: Likewise. + * gfortran.dg/allocatable_scalar_7.f90: Likewise. + * gfortran.dg/allocatable_scalar_8.f90: Likewise. + * gfortran.dg/allocatable_scalar_9.f90: Likewise. + * gfortran.dg/allocate_alloc_opt_10.f90: Likewise. + * gfortran.dg/allocate_alloc_opt_3.f90: Likewise. + * gfortran.dg/allocate_alloc_opt_6.f90: Likewise. + * gfortran.dg/allocate_assumed_charlen_1.f90: Likewise. + * gfortran.dg/allocate_assumed_charlen_2.f90: Likewise. + * gfortran.dg/allocate_class_3.f90: Likewise. + * gfortran.dg/allocate_deferred_char_scalar_1.f03: Likewise. + * gfortran.dg/allocate_deferred_char_scalar_2.f03: Likewise. + * gfortran.dg/allocate_derived_5.f90: Likewise. + * gfortran.dg/allocate_with_arrayspec_1.f90: Likewise. + * gfortran.dg/allocate_with_mold_1.f90: Likewise. + * gfortran.dg/allocate_with_source_1.f90: Likewise. + * gfortran.dg/allocate_with_source_10.f08: Likewise. + * gfortran.dg/allocate_with_source_11.f08: Likewise. + * gfortran.dg/allocate_with_source_12.f03: Likewise. + * gfortran.dg/allocate_with_source_15.f03: Likewise. + * gfortran.dg/allocate_with_source_16.f90: Likewise. + * gfortran.dg/allocate_with_source_17.f03: Likewise. + * gfortran.dg/allocate_with_source_18.f03: Likewise. + * gfortran.dg/allocate_with_source_2.f90: Likewise. + * gfortran.dg/allocate_with_source_20.f03: Likewise. + * gfortran.dg/allocate_with_source_22.f03: Likewise. + * gfortran.dg/allocate_with_source_23.f03: Likewise. + * gfortran.dg/allocate_with_source_24.f90: Likewise. + * gfortran.dg/allocate_with_source_5.f90: Likewise. + * gfortran.dg/allocate_with_source_6.f90: Likewise. + * gfortran.dg/allocate_with_source_7.f08: Likewise. + * gfortran.dg/allocate_with_source_8.f08: Likewise. + * gfortran.dg/allocate_with_source_9.f08: Likewise. + * gfortran.dg/allocate_zerosize_1.f90: Likewise. + * gfortran.dg/allocate_zerosize_3.f: Likewise. + * gfortran.dg/altreturn_3.f90: Likewise. + * gfortran.dg/altreturn_5.f90: Likewise. + * gfortran.dg/altreturn_7.f90: Likewise. + * gfortran.dg/and_or_xor.f90: Likewise. + * gfortran.dg/anint_1.f90: Likewise. + * gfortran.dg/any_all_1.f90: Likewise. + * gfortran.dg/anyallcount_1.f90: Likewise. + * gfortran.dg/append_1.f90: Likewise. + * gfortran.dg/argument_checking_1.f90: Likewise. + * gfortran.dg/argument_checking_2.f90: Likewise. + * gfortran.dg/argument_checking_8.f90: Likewise. + * gfortran.dg/arithmetic_if.f90: Likewise. + * gfortran.dg/array_1.f90: Likewise. + * gfortran.dg/array_2.f90: Likewise. + * gfortran.dg/array_alloc_1.f90: Likewise. + * gfortran.dg/array_alloc_2.f90: Likewise. + * gfortran.dg/array_alloc_3.f90: Likewise. + * gfortran.dg/array_assignment_1.F90: Likewise. + * gfortran.dg/array_assignment_5.f90: Likewise. + * gfortran.dg/array_constructor_1.f90: Likewise. + * gfortran.dg/array_constructor_10.f90: Likewise. + * gfortran.dg/array_constructor_11.f90: Likewise. + * gfortran.dg/array_constructor_12.f90: Likewise. + * gfortran.dg/array_constructor_15.f90: Likewise. + * gfortran.dg/array_constructor_16.f90: Likewise. + * gfortran.dg/array_constructor_17.f90: Likewise. + * gfortran.dg/array_constructor_19.f90: Likewise. + * gfortran.dg/array_constructor_23.f: Likewise. + * gfortran.dg/array_constructor_24.f: Likewise. + * gfortran.dg/array_constructor_32.f90: Likewise. + * gfortran.dg/array_constructor_36.f90: Likewise. + * gfortran.dg/array_constructor_39.f90: Likewise. + * gfortran.dg/array_constructor_4.f90: Likewise. + * gfortran.dg/array_constructor_40.f90: Likewise. + * gfortran.dg/array_constructor_44.f90: Likewise. + * gfortran.dg/array_constructor_45.f90: Likewise. + * gfortran.dg/array_constructor_46.f90: Likewise. + * gfortran.dg/array_constructor_47.f90: Likewise. + * gfortran.dg/array_constructor_49.f90: Likewise. + * gfortran.dg/array_constructor_5.f90: Likewise. + * gfortran.dg/array_constructor_50.f90: Likewise. + * gfortran.dg/array_constructor_6.f90: Likewise. + * gfortran.dg/array_constructor_7.f90: Likewise. + * gfortran.dg/array_constructor_8.f90: Likewise. + * gfortran.dg/array_constructor_9.f90: Likewise. + * gfortran.dg/array_constructor_type_1.f03: Likewise. + * gfortran.dg/array_constructor_type_10.f03: Likewise. + * gfortran.dg/array_constructor_type_11.f03: Likewise. + * gfortran.dg/array_constructor_type_12.f03: Likewise. + * gfortran.dg/array_constructor_type_13.f90: Likewise. + * gfortran.dg/array_constructor_type_14.f03: Likewise. + * gfortran.dg/array_constructor_type_16.f03: Likewise. + * gfortran.dg/array_constructor_type_2.f03: Likewise. + * gfortran.dg/array_constructor_type_22.f03: Likewise. + * gfortran.dg/array_constructor_type_3.f03: Likewise. + * gfortran.dg/array_constructor_type_4.f03: Likewise. + * gfortran.dg/array_constructor_type_5.f03: Likewise. + * gfortran.dg/array_constructor_type_6.f03: Likewise. + * gfortran.dg/array_constructor_type_7.f03: Likewise. + * gfortran.dg/array_function_1.f90: Likewise. + * gfortran.dg/array_function_5.f90: Likewise. + * gfortran.dg/array_initializer_1.f90: Likewise. + * gfortran.dg/array_initializer_2.f90: Likewise. + * gfortran.dg/array_memcpy_5.f90: Likewise. + * gfortran.dg/array_memset_2.f90: Likewise. + * gfortran.dg/array_reference_1.f90: Likewise. + * gfortran.dg/array_return_value_1.f90: Likewise. + * gfortran.dg/array_section_1.f90: Likewise. + * gfortran.dg/array_temporaries_3.f90: Likewise. + * gfortran.dg/arrayio_1.f90: Likewise. + * gfortran.dg/arrayio_10.f90: Likewise. + * gfortran.dg/arrayio_11.f90: Likewise. + * gfortran.dg/arrayio_12.f90: Likewise. + * gfortran.dg/arrayio_13.f90: Likewise. + * gfortran.dg/arrayio_14.f90: Likewise. + * gfortran.dg/arrayio_16.f90: Likewise. + * gfortran.dg/arrayio_2.f90: Likewise. + * gfortran.dg/arrayio_3.f90: Likewise. + * gfortran.dg/arrayio_4.f90: Likewise. + * gfortran.dg/arrayio_5.f90: Likewise. + * gfortran.dg/arrayio_6.f90: Likewise. + * gfortran.dg/arrayio_7.f90: Likewise. + * gfortran.dg/arrayio_8.f90: Likewise. + * gfortran.dg/arrayio_9.f90: Likewise. + * gfortran.dg/arrayio_derived_1.f90: Likewise. + * gfortran.dg/assign_10.f90: Likewise. + * gfortran.dg/assign_9.f90: Likewise. + * gfortran.dg/assign_func_dtcomp_1.f90: Likewise. + * gfortran.dg/assignment_1.f90: Likewise. + * gfortran.dg/associate_1.f03: Likewise. + * gfortran.dg/associate_11.f90: Likewise. + * gfortran.dg/associate_13.f90: Likewise. + * gfortran.dg/associate_15.f90: Likewise. + * gfortran.dg/associate_17.f90: Likewise. + * gfortran.dg/associate_18.f08: Likewise. + * gfortran.dg/associate_19.f03: Likewise. + * gfortran.dg/associate_20.f03: Likewise. + * gfortran.dg/associate_22.f90: Likewise. + * gfortran.dg/associate_23.f90: Likewise. + * gfortran.dg/associate_24.f90: Likewise. + * gfortran.dg/associate_25.f90: Likewise. + * gfortran.dg/associate_27.f90: Likewise. + * gfortran.dg/associate_28.f90: Likewise. + * gfortran.dg/associate_32.f03: Likewise. + * gfortran.dg/associate_33.f03: Likewise. + * gfortran.dg/associate_34.f90: Likewise. + * gfortran.dg/associate_6.f03: Likewise. + * gfortran.dg/associate_7.f03: Likewise. + * gfortran.dg/associate_8.f03: Likewise. + * gfortran.dg/associate_9.f03: Likewise. + * gfortran.dg/associated_1.f90: Likewise. + * gfortran.dg/associated_2.f90: Likewise. + * gfortran.dg/associated_5.f90: Likewise. + * gfortran.dg/associated_6.f90: Likewise. + * gfortran.dg/associated_target_3.f90: Likewise. + * gfortran.dg/associated_target_4.f90: Likewise. + * gfortran.dg/associated_target_5.f03: Likewise. + * gfortran.dg/associated_target_6.f03: Likewise. + * gfortran.dg/assumed_dummy_1.f90: Likewise. + * gfortran.dg/assumed_rank_1.f90: Likewise. + * gfortran.dg/assumed_rank_10.f90: Likewise. + * gfortran.dg/assumed_rank_2.f90: Likewise. + * gfortran.dg/assumed_rank_7.f90: Likewise. + * gfortran.dg/assumed_rank_8.f90: Likewise. + * gfortran.dg/assumed_rank_9.f90: Likewise. + * gfortran.dg/assumed_rank_bounds_1.f90: Likewise. + * gfortran.dg/assumed_rank_bounds_2.f90: Likewise. + * gfortran.dg/assumed_shape_ranks_2.f90: Likewise. + * gfortran.dg/assumed_type_2.f90: Likewise. + * gfortran.dg/atan2_1.f90: Likewise. + * gfortran.dg/auto_array_1.f90: Likewise. + * gfortran.dg/auto_char_dummy_array_1.f90: Likewise. + * gfortran.dg/auto_char_dummy_array_3.f90: Likewise. + * gfortran.dg/auto_char_len_3.f90: Likewise. + * gfortran.dg/auto_char_pointer_array_result_1.f90: Likewise. + * gfortran.dg/auto_internal_assumed.f90: Likewise. + * gfortran.dg/auto_pointer_array_result_1.f90: Likewise. + * gfortran.dg/auto_save_2.f90: Likewise. + * gfortran.dg/automatic_default_init_1.f90: Likewise. + * gfortran.dg/backslash_1.f90: Likewise. + * gfortran.dg/backslash_2.f90: Likewise. + * gfortran.dg/backslash_3.f: Likewise. + * gfortran.dg/backspace_1.f: Likewise. + * gfortran.dg/backspace_10.f90: Likewise. + * gfortran.dg/backspace_11.f90: Likewise. + * gfortran.dg/backspace_2.f: Likewise. + * gfortran.dg/backspace_3.f: Likewise. + * gfortran.dg/backspace_4.f: Likewise. + * gfortran.dg/backspace_5.f: Likewise. + * gfortran.dg/backspace_6.f: Likewise. + * gfortran.dg/backspace_7.f90: Likewise. + * gfortran.dg/backspace_8.f: Likewise. + * gfortran.dg/backspace_9.f: Likewise. + * gfortran.dg/bessel_1.f90: Likewise. + * gfortran.dg/bessel_2.f90: Likewise. + * gfortran.dg/bessel_5.f90: Likewise. + * gfortran.dg/bessel_6.f90: Likewise. + * gfortran.dg/bessel_7.f90: Likewise. + * gfortran.dg/bind_c_dts_2.f03: Likewise. + * gfortran.dg/bind_c_dts_3.f03: Likewise. + * gfortran.dg/bind_c_usage_15.f90: Likewise. + * gfortran.dg/bind_c_usage_16.f03: Likewise. + * gfortran.dg/bind_c_usage_17.f90: Likewise. + * gfortran.dg/bind_c_usage_24.f90: Likewise. + * gfortran.dg/binding_c_table_15_1.f03: Likewise. + * gfortran.dg/binding_label_tests_16.f03: Likewise. + * gfortran.dg/binding_label_tests_23.f90: Likewise. + * gfortran.dg/bit_comparison_1.F90: Likewise. + * gfortran.dg/bit_comparison_2.F90: Likewise. + * gfortran.dg/block_1.f08: Likewise. + * gfortran.dg/block_13.f08: Likewise. + * gfortran.dg/block_14.f90: Likewise. + * gfortran.dg/block_2.f08: Likewise. + * gfortran.dg/block_6.f08: Likewise. + * gfortran.dg/block_7.f08: Likewise. + * gfortran.dg/block_8.f08: Likewise. + * gfortran.dg/blockdata_1.f90: Likewise. + * gfortran.dg/bound_1.f90: Likewise. + * gfortran.dg/bound_2.f90: Likewise. + * gfortran.dg/bound_3.f90: Likewise. + * gfortran.dg/bound_4.f90: Likewise. + * gfortran.dg/bound_5.f90: Likewise. + * gfortran.dg/bound_6.f90: Likewise. + * gfortran.dg/bound_7.f90: Likewise. + * gfortran.dg/bound_8.f90: Likewise. + * gfortran.dg/bound_9.f90: Likewise. + * gfortran.dg/bound_simplification_1.f90: Likewise. + * gfortran.dg/bound_simplification_3.f90: Likewise. + * gfortran.dg/bound_simplification_4.f90: Likewise. + * gfortran.dg/bound_simplification_5.f90: Likewise. + * gfortran.dg/bound_simplification_6.f90: Likewise. + * gfortran.dg/bounds_check_1.f90: Likewise. + * gfortran.dg/bounds_check_12.f90: Likewise. + * gfortran.dg/bounds_check_14.f90: Likewise. + * gfortran.dg/bounds_check_15.f90: Likewise. + * gfortran.dg/bounds_check_19.f90: Likewise. + * gfortran.dg/bounds_check_8.f90: Likewise. + * gfortran.dg/bounds_check_9.f90: Likewise. + * gfortran.dg/bounds_check_fail_2.f90: Likewise. + * gfortran.dg/bounds_check_fail_3.f90: Likewise. + * gfortran.dg/bounds_check_fail_4.f90: Likewise. + * gfortran.dg/boz_1.f90: Likewise. + * gfortran.dg/boz_11.f90: Likewise. + * gfortran.dg/boz_13.f90: Likewise. + * gfortran.dg/boz_14.f90: Likewise. + * gfortran.dg/boz_15.f90: Likewise. + * gfortran.dg/boz_3.f90: Likewise. + * gfortran.dg/boz_6.f90: Likewise. + * gfortran.dg/boz_9.f90: Likewise. + * gfortran.dg/byte_1.f90: Likewise. + * gfortran.dg/byte_2.f90: Likewise. + * gfortran.dg/c_assoc.f90: Likewise. + * gfortran.dg/c_assoc_2.f03: Likewise. + * gfortran.dg/c_assoc_3.f90: Likewise. + * gfortran.dg/c_by_val_1.f: Likewise. + * gfortran.dg/c_by_val_5.f90: Likewise. + * gfortran.dg/c_char_tests.f03: Likewise. + * gfortran.dg/c_char_tests_2.f03: Likewise. + * gfortran.dg/c_f_pointer_complex.f03: Likewise. + * gfortran.dg/c_f_pointer_logical.f03: Likewise. + * gfortran.dg/c_f_pointer_shape_tests_2.f03: Likewise. + * gfortran.dg/c_f_pointer_shape_tests_4.f03: Likewise. + * gfortran.dg/c_f_pointer_shape_tests_5.f90: Likewise. + * gfortran.dg/c_f_pointer_tests.f90: Likewise. + * gfortran.dg/c_f_pointer_tests_4.f90: Likewise. + * gfortran.dg/c_kind_int128_test2.f03: Likewise. + * gfortran.dg/c_kind_params.f90: Likewise. + * gfortran.dg/c_loc_test_20.f90: Likewise. + * gfortran.dg/c_loc_tests_2.f03: Likewise. + * gfortran.dg/c_ptr_tests_14.f90: Likewise. + * gfortran.dg/c_ptr_tests_15.f90: Likewise. + * gfortran.dg/c_size_t_test.f03: Likewise. + * gfortran.dg/c_sizeof_1.f90: Likewise. + * gfortran.dg/c_sizeof_5.f90: Likewise. + * gfortran.dg/c_sizeof_6.f90: Likewise. + * gfortran.dg/char4_iunit_1.f03: Likewise. + * gfortran.dg/char4_iunit_2.f03: Likewise. + * gfortran.dg/char_allocation_1.f90: Likewise. + * gfortran.dg/char_array_constructor.f90: Likewise. + * gfortran.dg/char_array_structure_constructor.f90: Likewise. + * gfortran.dg/char_assign_1.f90: Likewise. + * gfortran.dg/char_associated_1.f90: Likewise. + * gfortran.dg/char_cast_2.f90: Likewise. + * gfortran.dg/char_comparison_1.f: Likewise. + * gfortran.dg/char_component_initializer_1.f90: Likewise. + * gfortran.dg/char_component_initializer_2.f90: Likewise. + * gfortran.dg/char_cons_len.f90: Likewise. + * gfortran.dg/char_conversion.f90: Likewise. + * gfortran.dg/char_cshift_1.f90: Likewise. + * gfortran.dg/char_cshift_2.f90: Likewise. + * gfortran.dg/char_decl_2.f90: Likewise. + * gfortran.dg/char_eoshift_1.f90: Likewise. + * gfortran.dg/char_eoshift_2.f90: Likewise. + * gfortran.dg/char_eoshift_3.f90: Likewise. + * gfortran.dg/char_eoshift_4.f90: Likewise. + * gfortran.dg/char_eoshift_5.f90: Likewise. + * gfortran.dg/char_expr_1.f90: Likewise. + * gfortran.dg/char_expr_3.f90: Likewise. + * gfortran.dg/char_initialiser_actual.f90: Likewise. + * gfortran.dg/char_length_12.f90: Likewise. + * gfortran.dg/char_length_14.f90: Likewise. + * gfortran.dg/char_length_15.f90: Likewise. + * gfortran.dg/char_length_17.f90: Likewise. + * gfortran.dg/char_length_20.f90: Likewise. + * gfortran.dg/char_length_21.f90: Likewise. + * gfortran.dg/char_length_5.f90: Likewise. + * gfortran.dg/char_length_6.f90: Likewise. + * gfortran.dg/char_length_7.f90: Likewise. + * gfortran.dg/char_length_8.f90: Likewise. + * gfortran.dg/char_pack_1.f90: Likewise. + * gfortran.dg/char_pack_2.f90: Likewise. + * gfortran.dg/char_pointer_assign.f90: Likewise. + * gfortran.dg/char_pointer_assign_3.f90: Likewise. + * gfortran.dg/char_pointer_comp_assign.f90: Likewise. + * gfortran.dg/char_pointer_dependency.f90: Likewise. + * gfortran.dg/char_pointer_dummy.f90: Likewise. + * gfortran.dg/char_pointer_func.f90: Likewise. + * gfortran.dg/char_reshape_1.f90: Likewise. + * gfortran.dg/char_result_1.f90: Likewise. + * gfortran.dg/char_result_12.f90: Likewise. + * gfortran.dg/char_result_13.f90: Likewise. + * gfortran.dg/char_result_14.f90: Likewise. + * gfortran.dg/char_result_15.f90: Likewise. + * gfortran.dg/char_result_2.f90: Likewise. + * gfortran.dg/char_result_3.f90: Likewise. + * gfortran.dg/char_result_4.f90: Likewise. + * gfortran.dg/char_result_5.f90: Likewise. + * gfortran.dg/char_result_6.f90: Likewise. + * gfortran.dg/char_result_7.f90: Likewise. + * gfortran.dg/char_result_8.f90: Likewise. + * gfortran.dg/char_spread_1.f90: Likewise. + * gfortran.dg/char_transpose_1.f90: Likewise. + * gfortran.dg/char_type_len.f90: Likewise. + * gfortran.dg/char_unpack_1.f90: Likewise. + * gfortran.dg/char_unpack_2.f90: Likewise. + * gfortran.dg/character_array_constructor_1.f90: Likewise. + * gfortran.dg/character_comparison_1.f90: Likewise. + * gfortran.dg/character_comparison_2.f90: Likewise. + * gfortran.dg/character_comparison_3.f90: Likewise. + * gfortran.dg/character_comparison_4.f90: Likewise. + * gfortran.dg/character_comparison_5.f90: Likewise. + * gfortran.dg/character_comparison_6.f90: Likewise. + * gfortran.dg/character_comparison_7.f90: Likewise. + * gfortran.dg/character_comparison_8.f90: Likewise. + * gfortran.dg/character_comparison_9.f90: Likewise. + * gfortran.dg/charlen_15.f90: Likewise. + * gfortran.dg/charlen_16.f90: Likewise. + * gfortran.dg/chkbits.f90: Likewise. + * gfortran.dg/chmod_1.f90: Likewise. + * gfortran.dg/chmod_2.f90: Likewise. + * gfortran.dg/chmod_3.f90: Likewise. + * gfortran.dg/class_1.f03: Likewise. + * gfortran.dg/class_18.f03: Likewise. + * gfortran.dg/class_19.f03: Likewise. + * gfortran.dg/class_35.f90: Likewise. + * gfortran.dg/class_46.f03: Likewise. + * gfortran.dg/class_48.f90: Likewise. + * gfortran.dg/class_51.f90: Likewise. + * gfortran.dg/class_52.f90: Likewise. + * gfortran.dg/class_6.f03: Likewise. + * gfortran.dg/class_63.f90: Likewise. + * gfortran.dg/class_64.f90: Likewise. + * gfortran.dg/class_65.f90: Likewise. + * gfortran.dg/class_66.f90: Likewise. + * gfortran.dg/class_67.f90: Likewise. + * gfortran.dg/class_9.f03: Likewise. + * gfortran.dg/class_alias.f90: Likewise. + * gfortran.dg/class_allocate_1.f03: Likewise. + * gfortran.dg/class_allocate_10.f03: Likewise. + * gfortran.dg/class_allocate_13.f90: Likewise. + * gfortran.dg/class_allocate_14.f90: Likewise. + * gfortran.dg/class_allocate_15.f90: Likewise. + * gfortran.dg/class_allocate_19.f03: Likewise. + * gfortran.dg/class_allocate_21.f90: Likewise. + * gfortran.dg/class_allocate_22.f90: Likewise. + * gfortran.dg/class_allocate_3.f03: Likewise. + * gfortran.dg/class_allocate_4.f03: Likewise. + * gfortran.dg/class_allocate_5.f90: Likewise. + * gfortran.dg/class_allocate_6.f03: Likewise. + * gfortran.dg/class_allocate_7.f03: Likewise. + * gfortran.dg/class_allocate_8.f03: Likewise. + * gfortran.dg/class_allocate_9.f03: Likewise. + * gfortran.dg/class_array_1.f03: Likewise. + * gfortran.dg/class_array_14.f90: Likewise. + * gfortran.dg/class_array_15.f03: Likewise. + * gfortran.dg/class_array_16.f90: Likewise. + * gfortran.dg/class_array_2.f03: Likewise. + * gfortran.dg/class_array_20.f03: Likewise. + * gfortran.dg/class_array_21.f03: Likewise. + * gfortran.dg/class_array_3.f03: Likewise. + * gfortran.dg/class_array_4.f03: Likewise. + * gfortran.dg/class_array_7.f03: Likewise. + * gfortran.dg/class_array_8.f03: Likewise. + * gfortran.dg/class_array_9.f03: Likewise. + * gfortran.dg/class_defined_operator_1.f03: Likewise. + * gfortran.dg/class_dummy_1.f03: Likewise. + * gfortran.dg/class_optional_1.f90: Likewise. + * gfortran.dg/class_optional_2.f90: Likewise. + * gfortran.dg/class_result_5.f90: Likewise. + * gfortran.dg/class_result_6.f90: Likewise. + * gfortran.dg/class_to_type_1.f03: Likewise. + * gfortran.dg/class_to_type_2.f90: Likewise. + * gfortran.dg/class_to_type_3.f03: Likewise. + * gfortran.dg/class_to_type_4.f90: Likewise. + * gfortran.dg/coarray/alloc_comp_1.f90: Likewise. + * gfortran.dg/coarray/alloc_comp_4.f90: Likewise. + * gfortran.dg/coarray/allocate_errgmsg.f90: Likewise. + * gfortran.dg/coarray/atomic_1.f90: Likewise. + * gfortran.dg/coarray/atomic_2.f90: Likewise. + * gfortran.dg/coarray/codimension.f90: Likewise. + * gfortran.dg/coarray/coindexed_1.f90: Likewise. + * gfortran.dg/coarray/collectives_1.f90: Likewise. + * gfortran.dg/coarray/collectives_2.f90: Likewise. + * gfortran.dg/coarray/collectives_3.f90: Likewise. + * gfortran.dg/coarray/collectives_4.f90: Likewise. + * gfortran.dg/coarray/cosubscript_1.f90: Likewise. + * gfortran.dg/coarray/dummy_1.f90: Likewise. + * gfortran.dg/coarray/event_1.f90: Likewise. + * gfortran.dg/coarray/event_2.f90: Likewise. + * gfortran.dg/coarray/get_array.f90: Likewise. + * gfortran.dg/coarray/image_index_1.f90: Likewise. + * gfortran.dg/coarray/image_index_2.f90: Likewise. + * gfortran.dg/coarray/image_index_3.f90: Likewise. + * gfortran.dg/coarray/lib_realloc_1.f90: Likewise. + * gfortran.dg/coarray/lock_1.f90: Likewise. + * gfortran.dg/coarray/lock_2.f90: Likewise. + * gfortran.dg/coarray/move_alloc_1.f90: Likewise. + * gfortran.dg/coarray/poly_run_1.f90: Likewise. + * gfortran.dg/coarray/poly_run_2.f90: Likewise. + * gfortran.dg/coarray/poly_run_3.f90: Likewise. + * gfortran.dg/coarray/ptr_comp_3.f08: Likewise. + * gfortran.dg/coarray/registering_1.f90: Likewise. + * gfortran.dg/coarray/scalar_alloc_1.f90: Likewise. + * gfortran.dg/coarray/scalar_alloc_2.f90: Likewise. + * gfortran.dg/coarray/send_array.f90: Likewise. + * gfortran.dg/coarray/send_char_array_1.f90: Likewise. + * gfortran.dg/coarray/sendget_array.f90: Likewise. + * gfortran.dg/coarray/subobject_1.f90: Likewise. + * gfortran.dg/coarray/sync_1.f90: Likewise. + * gfortran.dg/coarray/sync_3.f90: Likewise. + * gfortran.dg/coarray/this_image_1.f90: Likewise. + * gfortran.dg/coarray/this_image_2.f90: Likewise. + * gfortran.dg/coarray_13.f90: Likewise. + * gfortran.dg/coarray_15.f90: Likewise. + * gfortran.dg/coarray_16.f90: Likewise. + * gfortran.dg/coarray_2.f90: Likewise. + * gfortran.dg/coarray_23.f90: Likewise. + * gfortran.dg/coarray_40.f90: Likewise. + * gfortran.dg/coarray_alloc_comp_1.f08: Likewise. + * gfortran.dg/coarray_alloc_comp_2.f08: Likewise. + * gfortran.dg/coarray_allocate_10.f08: Likewise. + * gfortran.dg/coarray_allocate_2.f08: Likewise. + * gfortran.dg/coarray_allocate_3.f08: Likewise. + * gfortran.dg/coarray_allocate_4.f08: Likewise. + * gfortran.dg/coarray_allocate_5.f08: Likewise. + * gfortran.dg/coarray_allocate_7.f08: Likewise. + * gfortran.dg/coarray_allocate_8.f08: Likewise. + * gfortran.dg/coarray_allocate_9.f08: Likewise. + * gfortran.dg/coarray_lib_alloc_4.f90: Likewise. + * gfortran.dg/coarray_lib_comm_1.f90: Likewise. + * gfortran.dg/coarray_lib_realloc_1.f90: Likewise. + * gfortran.dg/coarray_lib_token_1.f90: Likewise. + * gfortran.dg/coarray_lib_token_2.f90: Likewise. + * gfortran.dg/coarray_ptr_comp_1.f08: Likewise. + * gfortran.dg/coarray_ptr_comp_2.f08: Likewise. + * gfortran.dg/coarray_send_by_ref_1.f08: Likewise. + * gfortran.dg/coarray_stat_2.f90: Likewise. + * gfortran.dg/coarray_subobject_1.f90: Likewise. + * gfortran.dg/coindexed_1.f90: Likewise. + * gfortran.dg/comma.f: Likewise. + * gfortran.dg/comma_format_extension_3.f: Likewise. + * gfortran.dg/comma_format_extension_4.f: Likewise. + * gfortran.dg/common_2.f90: Likewise. + * gfortran.dg/common_4.f90: Likewise. + * gfortran.dg/common_align_1.f90: Likewise. + * gfortran.dg/common_align_2.f90: Likewise. + * gfortran.dg/common_equivalence_1.f: Likewise. + * gfortran.dg/common_pointer_1.f90: Likewise. + * gfortran.dg/common_resize_1.f: Likewise. + * gfortran.dg/complex_intrinsic_1.f90: Likewise. + * gfortran.dg/complex_intrinsic_3.f90: Likewise. + * gfortran.dg/complex_intrinsic_5.f90: Likewise. + * gfortran.dg/complex_intrinsic_7.f90: Likewise. + * gfortran.dg/complex_read.f90: Likewise. + * gfortran.dg/complex_write.f90: Likewise. + * gfortran.dg/constant_substring.f: Likewise. + * gfortran.dg/constructor_2.f90: Likewise. + * gfortran.dg/constructor_3.f90: Likewise. + * gfortran.dg/constructor_6.f90: Likewise. + * gfortran.dg/contained_1.f90: Likewise. + * gfortran.dg/contained_3.f90: Likewise. + * gfortran.dg/contained_equivalence_1.f90: Likewise. + * gfortran.dg/contained_module_proc_1.f90: Likewise. + * gfortran.dg/continuation_1.f90: Likewise. + * gfortran.dg/continuation_11.f90: Likewise. + * gfortran.dg/continuation_12.f90: Likewise. + * gfortran.dg/continuation_13.f90: Likewise. + * gfortran.dg/continuation_14.f: Likewise. + * gfortran.dg/continuation_8.f90: Likewise. + * gfortran.dg/convert_2.f90: Likewise. + * gfortran.dg/convert_implied_open.f90: Likewise. + * gfortran.dg/count_init_expr.f03: Likewise. + * gfortran.dg/cr_lf.f90: Likewise. + * gfortran.dg/cray_pointers_10.f90: Likewise. + * gfortran.dg/cray_pointers_2.f90: Likewise. + * gfortran.dg/cray_pointers_5.f90: Likewise. + * gfortran.dg/cray_pointers_7.f90: Likewise. + * gfortran.dg/cray_pointers_8.f90: Likewise. + * gfortran.dg/cshift_1.f90: Likewise. + * gfortran.dg/cshift_2.f90: Likewise. + * gfortran.dg/cshift_large_1.f90: Likewise. + * gfortran.dg/cshift_nan_1.f90: Likewise. + * gfortran.dg/csqrt_2.f: Likewise. + * gfortran.dg/data_array_1.f90: Likewise. + * gfortran.dg/data_char_1.f90: Likewise. + * gfortran.dg/data_char_2.f90: Likewise. + * gfortran.dg/data_char_3.f90: Likewise. + * gfortran.dg/data_derived_1.f90: Likewise. + * gfortran.dg/data_implied_do_1.f90: Likewise. + * gfortran.dg/data_namelist_conflict.f90: Likewise. + * gfortran.dg/deallocate_alloc_opt_3.f90: Likewise. + * gfortran.dg/deallocate_stat.f90: Likewise. + * gfortran.dg/deallocate_stat_2.f90: Likewise. + * gfortran.dg/debug/pr37738.f: Likewise. + * gfortran.dg/dec_bitwise_ops_1.f90: Likewise. + * gfortran.dg/dec_bitwise_ops_2.f90: Likewise. + * gfortran.dg/dec_exp_1.f90: Likewise. + * gfortran.dg/dec_init_1.f90: Likewise. + * gfortran.dg/dec_init_2.f90: Likewise. + * gfortran.dg/dec_init_3.f90: Likewise. + * gfortran.dg/dec_init_4.f90: Likewise. + * gfortran.dg/dec_io_1.f90: Likewise. + * gfortran.dg/dec_io_2.f90: Likewise. + * gfortran.dg/dec_io_2a.f90: Likewise. + * gfortran.dg/dec_io_6.f90: Likewise. + * gfortran.dg/dec_loc_rval_1.f90: Likewise. + * gfortran.dg/dec_logical_xor_1.f90: Likewise. + * gfortran.dg/dec_math.f90: Likewise. + * gfortran.dg/dec_parameter_1.f: Likewise. + * gfortran.dg/dec_parameter_2.f90: Likewise. + * gfortran.dg/dec_static_1.f90: Likewise. + * gfortran.dg/dec_static_2.f90: Likewise. + * gfortran.dg/dec_structure_1.f90: Likewise. + * gfortran.dg/dec_structure_10.f90: Likewise. + * gfortran.dg/dec_structure_18.f90: Likewise. + * gfortran.dg/dec_structure_19.f90: Likewise. + * gfortran.dg/dec_structure_2.f90: Likewise. + * gfortran.dg/dec_structure_22.f90: Likewise. + * gfortran.dg/dec_structure_3.f90: Likewise. + * gfortran.dg/dec_structure_4.f90: Likewise. + * gfortran.dg/dec_structure_5.f90: Likewise. + * gfortran.dg/dec_structure_6.f90: Likewise. + * gfortran.dg/dec_structure_7.f90: Likewise. + * gfortran.dg/dec_union_1.f90: Likewise. + * gfortran.dg/dec_union_2.f90: Likewise. + * gfortran.dg/dec_union_3.f90: Likewise. + * gfortran.dg/dec_union_4.f90: Likewise. + * gfortran.dg/dec_union_5.f90: Likewise. + * gfortran.dg/default_format_1.f90: Likewise. + * gfortran.dg/default_format_2.f90: Likewise. + * gfortran.dg/default_format_denormal_1.f90: Likewise. + * gfortran.dg/default_format_denormal_2.f90: Likewise. + * gfortran.dg/default_initialization_3.f90: Likewise. + * gfortran.dg/default_initialization_4.f90: Likewise. + * gfortran.dg/default_initialization_5.f90: Likewise. + * gfortran.dg/deferred_character_1.f90: Likewise. + * gfortran.dg/deferred_character_10.f90: Likewise. + * gfortran.dg/deferred_character_11.f90: Likewise. + * gfortran.dg/deferred_character_12.f90: Likewise. + * gfortran.dg/deferred_character_13.f90: Likewise. + * gfortran.dg/deferred_character_14.f90: Likewise. + * gfortran.dg/deferred_character_15.f90: Likewise. + * gfortran.dg/deferred_character_16.f90: Likewise. + * gfortran.dg/deferred_character_2.f90: Likewise. + * gfortran.dg/deferred_character_3.f90: Likewise. + * gfortran.dg/deferred_character_4.f90: Likewise. + * gfortran.dg/deferred_character_5.f90: Likewise. + * gfortran.dg/deferred_character_6.f90: Likewise. + * gfortran.dg/deferred_character_7.f90: Likewise. + * gfortran.dg/deferred_character_8.f90: Likewise. + * gfortran.dg/deferred_character_9.f90: Likewise. + * gfortran.dg/deferred_character_assignment_1.f90: Likewise. + * gfortran.dg/deferred_type_component_1.f90: Likewise. + * gfortran.dg/deferred_type_component_2.f90: Likewise. + * gfortran.dg/deferred_type_param_2.f90: Likewise. + * gfortran.dg/deferred_type_param_4.f90: Likewise. + * gfortran.dg/deferred_type_param_5.f90: Likewise. + * gfortran.dg/deferred_type_param_6.f90: Likewise. + * gfortran.dg/deferred_type_param_8.f90: Likewise. + * gfortran.dg/deferred_type_param_9.f90: Likewise. + * gfortran.dg/deferred_type_proc_pointer_1.f90: Likewise. + * gfortran.dg/deferred_type_proc_pointer_2.f90: Likewise. + * gfortran.dg/defined_assignment_1.f90: Likewise. + * gfortran.dg/defined_assignment_10.f90: Likewise. + * gfortran.dg/defined_assignment_11.f90: Likewise. + * gfortran.dg/defined_assignment_2.f90: Likewise. + * gfortran.dg/defined_assignment_3.f90: Likewise. + * gfortran.dg/defined_assignment_4.f90: Likewise. + * gfortran.dg/defined_assignment_5.f90: Likewise. + * gfortran.dg/defined_assignment_8.f90: Likewise. + * gfortran.dg/defined_assignment_9.f90: Likewise. + * gfortran.dg/dependency_2.f90: Likewise. + * gfortran.dg/dependency_21.f90: Likewise. + * gfortran.dg/dependency_22.f90: Likewise. + * gfortran.dg/dependency_23.f90: Likewise. + * gfortran.dg/dependency_24.f90: Likewise. + * gfortran.dg/dependency_25.f90: Likewise. + * gfortran.dg/dependency_26.f90: Likewise. + * gfortran.dg/dependency_39.f90: Likewise. + * gfortran.dg/dependency_40.f90: Likewise. + * gfortran.dg/dependency_41.f90: Likewise. + * gfortran.dg/dependency_42.f90: Likewise. + * gfortran.dg/dependency_43.f90: Likewise. + * gfortran.dg/dependency_44.f90: Likewise. + * gfortran.dg/dependency_45.f90: Likewise. + * gfortran.dg/dependency_50.f90: Likewise. + * gfortran.dg/dependency_51.f90: Likewise. + * gfortran.dg/dependent_decls_1.f90: Likewise. + * gfortran.dg/der_array_1.f90: Likewise. + * gfortran.dg/der_array_io_1.f90: Likewise. + * gfortran.dg/der_array_io_2.f90: Likewise. + * gfortran.dg/der_array_io_3.f90: Likewise. + * gfortran.dg/der_io_1.f90: Likewise. + * gfortran.dg/der_io_3.f90: Likewise. + * gfortran.dg/der_pointer_2.f90: Likewise. + * gfortran.dg/derived_comp_array_ref_1.f90: Likewise. + * gfortran.dg/derived_comp_array_ref_2.f90: Likewise. + * gfortran.dg/derived_comp_array_ref_4.f90: Likewise. + * gfortran.dg/derived_comp_array_ref_7.f90: Likewise. + * gfortran.dg/derived_constructor_char_3.f90: Likewise. + * gfortran.dg/derived_constructor_comps_1.f90: Likewise. + * gfortran.dg/derived_constructor_comps_4.f90: Likewise. + * gfortran.dg/derived_constructor_comps_5.f90: Likewise. + * gfortran.dg/derived_constructor_comps_6.f90: Likewise. + * gfortran.dg/derived_external_function_1.f90: Likewise. + * gfortran.dg/derived_init_1.f90: Likewise. + * gfortran.dg/derived_init_2.f90: Likewise. + * gfortran.dg/derived_init_3.f90: Likewise. + * gfortran.dg/derived_init_4.f90: Likewise. + * gfortran.dg/derived_pointer_null_1.f90: Likewise. + * gfortran.dg/derived_pointer_recursion_2.f90: Likewise. + * gfortran.dg/dev_null.F90: Likewise. + * gfortran.dg/dfloat_1.f90: Likewise. + * gfortran.dg/dim_sum_1.f90: Likewise. + * gfortran.dg/dim_sum_2.f90: Likewise. + * gfortran.dg/dim_sum_3.f90: Likewise. + * gfortran.dg/direct_io_10.f: Likewise. + * gfortran.dg/direct_io_11.f90: Likewise. + * gfortran.dg/direct_io_12.f90: Likewise. + * gfortran.dg/direct_io_2.f90: Likewise. + * gfortran.dg/direct_io_3.f90: Likewise. + * gfortran.dg/direct_io_4.f90: Likewise. + * gfortran.dg/direct_io_5.f90: Likewise. + * gfortran.dg/direct_io_6.f90: Likewise. + * gfortran.dg/direct_io_7.f90: Likewise. + * gfortran.dg/direct_io_8.f90: Likewise. + * gfortran.dg/direct_io_9.f: Likewise. + * gfortran.dg/do_1.f90: Likewise. + * gfortran.dg/do_3.F90: Likewise. + * gfortran.dg/do_concurrent_2.f90: Likewise. + * gfortran.dg/do_concurrent_4.f90: Likewise. + * gfortran.dg/do_corner_warn.f90: Likewise. + * gfortran.dg/do_iterator_2.f90: Likewise. + * gfortran.dg/dollar_edit_descriptor_1.f: Likewise. + * gfortran.dg/dollar_edit_descriptor_2.f: Likewise. + * gfortran.dg/dos_eol.f: Likewise. + * gfortran.dg/dot_product_1.f03: Likewise. + * gfortran.dg/dot_product_2.f90: Likewise. + * gfortran.dg/dot_product_4.f90: Likewise. + * gfortran.dg/dshift_1.F90: Likewise. + * gfortran.dg/dshift_2.F90: Likewise. + * gfortran.dg/dtio_1.f90: Likewise. + * gfortran.dg/dtio_10.f90: Likewise. + * gfortran.dg/dtio_12.f90: Likewise. + * gfortran.dg/dtio_14.f90: Likewise. + * gfortran.dg/dtio_15.f90: Likewise. + * gfortran.dg/dtio_16.f90: Likewise. + * gfortran.dg/dtio_17.f90: Likewise. + * gfortran.dg/dtio_19.f90: Likewise. + * gfortran.dg/dtio_2.f90: Likewise. + * gfortran.dg/dtio_20.f03: Likewise. + * gfortran.dg/dtio_22.f90: Likewise. + * gfortran.dg/dtio_24.f90: Likewise. + * gfortran.dg/dtio_25.f90: Likewise. + * gfortran.dg/dtio_26.f03: Likewise. + * gfortran.dg/dtio_27.f90: Likewise. + * gfortran.dg/dtio_28.f03: Likewise. + * gfortran.dg/dtio_3.f90: Likewise. + * gfortran.dg/dtio_30.f03: Likewise. + * gfortran.dg/dtio_31.f03: Likewise. + * gfortran.dg/dtio_32.f03: Likewise. + * gfortran.dg/dtio_4.f90: Likewise. + * gfortran.dg/dtio_5.f90: Likewise. + * gfortran.dg/dtio_7.f90: Likewise. + * gfortran.dg/dtio_8.f90: Likewise. + * gfortran.dg/dtio_9.f90: Likewise. + * gfortran.dg/dummy_procedure_3.f90: Likewise. + * gfortran.dg/dummy_procedure_7.f90: Likewise. + * gfortran.dg/dup_save_1.f90: Likewise. + * gfortran.dg/dup_save_2.f90: Likewise. + * gfortran.dg/dynamic_dispatch_1.f03: Likewise. + * gfortran.dg/dynamic_dispatch_11.f03: Likewise. + * gfortran.dg/dynamic_dispatch_12.f90: Likewise. + * gfortran.dg/dynamic_dispatch_2.f03: Likewise. + * gfortran.dg/dynamic_dispatch_3.f03: Likewise. + * gfortran.dg/dynamic_dispatch_4.f03: Likewise. + * gfortran.dg/dynamic_dispatch_5.f03: Likewise. + * gfortran.dg/dynamic_dispatch_7.f03: Likewise. + * gfortran.dg/dynamic_dispatch_8.f03: Likewise. + * gfortran.dg/dynamic_dispatch_9.f03: Likewise. + * gfortran.dg/e_d_fmt.f90: Likewise. + * gfortran.dg/edit_real_1.f90: Likewise. + * gfortran.dg/elemental_by_value_1.f90: Likewise. + * gfortran.dg/elemental_dependency_1.f90: Likewise. + * gfortran.dg/elemental_dependency_4.f90: Likewise. + * gfortran.dg/elemental_dependency_5.f90: Likewise. + * gfortran.dg/elemental_dependency_6.f90: Likewise. + * gfortran.dg/elemental_optional_args_2.f90: Likewise. + * gfortran.dg/elemental_optional_args_3.f90: Likewise. + * gfortran.dg/elemental_optional_args_4.f90: Likewise. + * gfortran.dg/elemental_optional_args_5.f03: Likewise. + * gfortran.dg/elemental_optional_args_6.f90: Likewise. + * gfortran.dg/elemental_optional_args_7.f90: Likewise. + * gfortran.dg/elemental_scalar_args_1.f90: Likewise. + * gfortran.dg/elemental_scalar_args_2.f90: Likewise. + * gfortran.dg/elemental_subroutine_1.f90: Likewise. + * gfortran.dg/elemental_subroutine_10.f90: Likewise. + * gfortran.dg/elemental_subroutine_11.f90: Likewise. + * gfortran.dg/elemental_subroutine_2.f90: Likewise. + * gfortran.dg/elemental_subroutine_3.f90: Likewise. + * gfortran.dg/elemental_subroutine_7.f90: Likewise. + * gfortran.dg/elemental_subroutine_9.f90: Likewise. + * gfortran.dg/empty_format_1.f90: Likewise. + * gfortran.dg/endfile.f: Likewise. + * gfortran.dg/endfile.f90: Likewise. + * gfortran.dg/endfile_2.f90: Likewise. + * gfortran.dg/entry_1.f90: Likewise. + * gfortran.dg/entry_10.f90: Likewise. + * gfortran.dg/entry_12.f90: Likewise. + * gfortran.dg/entry_13.f90: Likewise. + * gfortran.dg/entry_14.f90: Likewise. + * gfortran.dg/entry_16.f90: Likewise. + * gfortran.dg/entry_3.f90: Likewise. + * gfortran.dg/entry_6.f90: Likewise. + * gfortran.dg/entry_9.f90: Likewise. + * gfortran.dg/entry_array_specs_2.f: Likewise. + * gfortran.dg/enum_1.f90: Likewise. + * gfortran.dg/enum_9.f90: Likewise. + * gfortran.dg/eof_1.f90: Likewise. + * gfortran.dg/eof_2.f90: Likewise. + * gfortran.dg/eof_4.f90: Likewise. + * gfortran.dg/eof_5.f90: Likewise. + * gfortran.dg/eor_handling_1.f90: Likewise. + * gfortran.dg/eor_handling_2.f90: Likewise. + * gfortran.dg/eor_handling_3.f90: Likewise. + * gfortran.dg/eor_handling_4.f90: Likewise. + * gfortran.dg/eor_handling_5.f90: Likewise. + * gfortran.dg/eoshift_3.f90: Likewise. + * gfortran.dg/eoshift_4.f90: Likewise. + * gfortran.dg/eoshift_5.f90: Likewise. + * gfortran.dg/eoshift_6.f90: Likewise. + * gfortran.dg/eoshift_large_1.f90: Likewise. + * gfortran.dg/equiv_6.f90: Likewise. + * gfortran.dg/equiv_7.f90: Likewise. + * gfortran.dg/equiv_9.f90: Likewise. + * gfortran.dg/equiv_constraint_4.f90: Likewise. + * gfortran.dg/erf_2.F90: Likewise. + * gfortran.dg/erf_3.F90: Likewise. + * gfortran.dg/erfc_scaled_1.f90: Likewise. + * gfortran.dg/error_format_2.f90: Likewise. + * gfortran.dg/error_recovery_5.f90: Likewise. + * gfortran.dg/execute_command_line_2.f90: Likewise. + * gfortran.dg/execute_command_line_3.f90: Likewise. + * gfortran.dg/exit_1.f08: Likewise. + * gfortran.dg/exit_3.f08: Likewise. + * gfortran.dg/exponent_1.f90: Likewise. + * gfortran.dg/exponent_2.f90: Likewise. + * gfortran.dg/extended_char_comparison_1.f: Likewise. + * gfortran.dg/extends_1.f03: Likewise. + * gfortran.dg/extends_16.f90: Likewise. + * gfortran.dg/extends_2.f03: Likewise. + * gfortran.dg/extends_3.f03: Likewise. + * gfortran.dg/extends_4.f03: Likewise. + * gfortran.dg/extends_type_of_1.f03: Likewise. + * gfortran.dg/extends_type_of_2.f03: Likewise. + * gfortran.dg/external_procedures_3.f90: Likewise. + * gfortran.dg/f2003_inquire_1.f03: Likewise. + * gfortran.dg/f2003_io_1.f03: Likewise. + * gfortran.dg/f2003_io_4.f03: Likewise. + * gfortran.dg/f2003_io_5.f03: Likewise. + * gfortran.dg/f2003_io_6.f03: Likewise. + * gfortran.dg/f2003_io_7.f03: Likewise. + * gfortran.dg/f2c_1.f90: Likewise. + * gfortran.dg/f2c_2.f90: Likewise. + * gfortran.dg/f2c_3.f90: Likewise. + * gfortran.dg/f2c_4.f90: Likewise. + * gfortran.dg/f2c_6.f90: Likewise. + * gfortran.dg/f2c_7.f90: Likewise. + * gfortran.dg/f2c_9.f90: Likewise. + * gfortran.dg/fgetc_1.f90: Likewise. + * gfortran.dg/fgetc_2.f90: Likewise. + * gfortran.dg/filename_null.f90: Likewise. + * gfortran.dg/finalize_12.f90: Likewise. + * gfortran.dg/finalize_13.f90: Likewise. + * gfortran.dg/finalize_15.f90: Likewise. + * gfortran.dg/finalize_17.f90: Likewise. + * gfortran.dg/finalize_18.f90: Likewise. + * gfortran.dg/finalize_25.f90: Likewise. + * gfortran.dg/finalize_29.f08: Likewise. + * gfortran.dg/finalize_31.f90: Likewise. + * gfortran.dg/float_1.f90: Likewise. + * gfortran.dg/flush_1.f90: Likewise. + * gfortran.dg/fmt_bz_bn.f: Likewise. + * gfortran.dg/fmt_bz_bn_err.f: Likewise. + * gfortran.dg/fmt_cache_1.f: Likewise. + * gfortran.dg/fmt_cache_2.f: Likewise. + * gfortran.dg/fmt_cache_3.f90: Likewise. + * gfortran.dg/fmt_colon.f90: Likewise. + * gfortran.dg/fmt_e.f90: Likewise. + * gfortran.dg/fmt_en.f90: Likewise. + * gfortran.dg/fmt_error_10.f: Likewise. + * gfortran.dg/fmt_error_9.f: Likewise. + * gfortran.dg/fmt_exhaust.f90: Likewise. + * gfortran.dg/fmt_f0_1.f90: Likewise. + * gfortran.dg/fmt_f_an_p.f: Likewise. + * gfortran.dg/fmt_fw_d.f90: Likewise. + * gfortran.dg/fmt_g.f: Likewise. + * gfortran.dg/fmt_g0_1.f08: Likewise. + * gfortran.dg/fmt_g0_2.f08: Likewise. + * gfortran.dg/fmt_g0_4.f08: Likewise. + * gfortran.dg/fmt_g0_5.f08: Likewise. + * gfortran.dg/fmt_g0_6.f08: Likewise. + * gfortran.dg/fmt_g0_7.f08: Likewise. + * gfortran.dg/fmt_g_1.f90: Likewise. + * gfortran.dg/fmt_int_sign.f90: Likewise. + * gfortran.dg/fmt_l.f90: Likewise. + * gfortran.dg/fmt_missing_period_2.f: Likewise. + * gfortran.dg/fmt_missing_period_3.f: Likewise. + * gfortran.dg/fmt_p_1.f90: Likewise. + * gfortran.dg/fmt_pf.f90: Likewise. + * gfortran.dg/fmt_read.f90: Likewise. + * gfortran.dg/fmt_read_bz_bn.f90: Likewise. + * gfortran.dg/fmt_t_1.f90: Likewise. + * gfortran.dg/fmt_t_2.f90: Likewise. + * gfortran.dg/fmt_t_3.f90: Likewise. + * gfortran.dg/fmt_t_4.f90: Likewise. + * gfortran.dg/fmt_t_5.f90: Likewise. + * gfortran.dg/fmt_t_6.f: Likewise. + * gfortran.dg/fmt_t_7.f: Likewise. + * gfortran.dg/fmt_t_9.f: Likewise. + * gfortran.dg/fmt_tl.f: Likewise. + * gfortran.dg/fmt_unlimited.f90: Likewise. + * gfortran.dg/fmt_white.f: Likewise. + * gfortran.dg/fmt_zero_digits.f90: Likewise. + * gfortran.dg/fold_nearest.f90: Likewise. + * gfortran.dg/forall_1.f90: Likewise. + * gfortran.dg/forall_10.f90: Likewise. + * gfortran.dg/forall_12.f90: Likewise. + * gfortran.dg/forall_13.f90: Likewise. + * gfortran.dg/forall_15.f90: Likewise. + * gfortran.dg/forall_4.f90: Likewise. + * gfortran.dg/forall_5.f90: Likewise. + * gfortran.dg/forall_6.f90: Likewise. + * gfortran.dg/forall_7.f90: Likewise. + * gfortran.dg/fraction.f90: Likewise. + * gfortran.dg/fseek.f90: Likewise. + * gfortran.dg/ftell_1.f90: Likewise. + * gfortran.dg/ftell_2.f90: Likewise. + * gfortran.dg/ftell_3.f90: Likewise. + * gfortran.dg/func_assign_2.f90: Likewise. + * gfortran.dg/func_assign_3.f90: Likewise. + * gfortran.dg/func_derived_1.f90: Likewise. + * gfortran.dg/func_derived_2.f90: Likewise. + * gfortran.dg/func_derived_3.f90: Likewise. + * gfortran.dg/func_result_1.f90: Likewise. + * gfortran.dg/func_result_2.f90: Likewise. + * gfortran.dg/func_result_6.f90: Likewise. + * gfortran.dg/function_charlen_2.f90: Likewise. + * gfortran.dg/function_charlen_3.f: Likewise. + * gfortran.dg/function_kinds_1.f90: Likewise. + * gfortran.dg/function_kinds_4.f90: Likewise. + * gfortran.dg/function_optimize_10.f90: Likewise. + * gfortran.dg/function_optimize_11.f90: Likewise. + * gfortran.dg/function_optimize_12.f90: Likewise. + * gfortran.dg/function_optimize_4.f90: Likewise. + * gfortran.dg/function_optimize_8.f90: Likewise. + * gfortran.dg/g77/13037.f: Likewise. + * gfortran.dg/g77/1832.f: Likewise. + * gfortran.dg/g77/19981119-0.f: Likewise. + * gfortran.dg/g77/19990313-0.f: Likewise. + * gfortran.dg/g77/19990313-1.f: Likewise. + * gfortran.dg/g77/19990313-2.f: Likewise. + * gfortran.dg/g77/19990313-3.f: Likewise. + * gfortran.dg/g77/19990419-1.f: Likewise. + * gfortran.dg/g77/19990826-0.f: Likewise. + * gfortran.dg/g77/19990826-2.f: Likewise. + * gfortran.dg/g77/20000503-1.f: Likewise. + * gfortran.dg/g77/20001111.f: Likewise. + * gfortran.dg/g77/20010116.f: Likewise. + * gfortran.dg/g77/20010216-1.f: Likewise. + * gfortran.dg/g77/20010430.f: Likewise. + * gfortran.dg/g77/20010610.f: Likewise. + * gfortran.dg/g77/6177.f: Likewise. + * gfortran.dg/g77/7388.f: Likewise. + * gfortran.dg/g77/947.f: Likewise. + * gfortran.dg/g77/970625-2.f: Likewise. + * gfortran.dg/g77/971102-1.f: Likewise. + * gfortran.dg/g77/980628-0.f: Likewise. + * gfortran.dg/g77/980628-1.f: Likewise. + * gfortran.dg/g77/980628-10.f: Likewise. + * gfortran.dg/g77/980628-2.f: Likewise. + * gfortran.dg/g77/980628-3.f: Likewise. + * gfortran.dg/g77/980628-7.f: Likewise. + * gfortran.dg/g77/980628-8.f: Likewise. + * gfortran.dg/g77/980628-9.f: Likewise. + * gfortran.dg/g77/980701-0.f: Likewise. + * gfortran.dg/g77/980701-1.f: Likewise. + * gfortran.dg/g77/cabs.f: Likewise. + * gfortran.dg/g77/claus.f: Likewise. + * gfortran.dg/g77/complex_1.f: Likewise. + * gfortran.dg/g77/cpp3.F: Likewise. + * gfortran.dg/g77/cpp4.F: Likewise. + * gfortran.dg/g77/cpp5.F: Likewise. + * gfortran.dg/g77/dcomplex.f: Likewise. + * gfortran.dg/g77/dnrm2.f: Likewise. + * gfortran.dg/g77/erfc.f: Likewise. + * gfortran.dg/g77/f77-edit-i-in.f: Likewise. + * gfortran.dg/g77/f77-edit-t-in.f: Likewise. + * gfortran.dg/g77/f90-intrinsic-bit.f: Likewise. + * gfortran.dg/g77/f90-intrinsic-mathematical.f: Likewise. + * gfortran.dg/g77/f90-intrinsic-numeric.f: Likewise. + * gfortran.dg/g77/int8421.f: Likewise. + * gfortran.dg/g77/intrinsic-unix-bessel.f: Likewise. + * gfortran.dg/g77/intrinsic-unix-erf.f: Likewise. + * gfortran.dg/g77/le.f: Likewise. + * gfortran.dg/g77/short.f: Likewise. + * gfortran.dg/gamma_1.f90: Likewise. + * gfortran.dg/gamma_4.f90: Likewise. + * gfortran.dg/gamma_5.f90: Likewise. + * gfortran.dg/generic_13.f90: Likewise. + * gfortran.dg/generic_15.f90: Likewise. + * gfortran.dg/generic_19.f90: Likewise. + * gfortran.dg/generic_20.f90: Likewise. + * gfortran.dg/generic_23.f03: Likewise. + * gfortran.dg/generic_25.f90: Likewise. + * gfortran.dg/generic_27.f90: Likewise. + * gfortran.dg/generic_31.f90: Likewise. + * gfortran.dg/generic_4.f90: Likewise. + * gfortran.dg/global_vars_c_init.f90: Likewise. + * gfortran.dg/global_vars_f90_init.f90: Likewise. + * gfortran.dg/gnu_logical_1.F: Likewise. + * gfortran.dg/goacc/fixed-1.f: Likewise. + * gfortran.dg/goacc/fixed-2.f: Likewise. + * gfortran.dg/goacc/gang-static.f95: Likewise. + * gfortran.dg/goacc/kernels-loop-2.f95: Likewise. + * gfortran.dg/goacc/kernels-loop-data-2.f95: Likewise. + * gfortran.dg/goacc/kernels-loop-data-enter-exit-2.f95: Likewise. + * gfortran.dg/goacc/kernels-loop-data-enter-exit.f95: Likewise. + * gfortran.dg/goacc/kernels-loop-data-update.f95: Likewise. + * gfortran.dg/goacc/kernels-loop-data.f95: Likewise. + * gfortran.dg/goacc/kernels-loop-n.f95: Likewise. + * gfortran.dg/goacc/kernels-loop.f95: Likewise. + * gfortran.dg/goacc/omp-fixed.f: Likewise. + * gfortran.dg/gomp/crayptr5.f90: Likewise. + * gfortran.dg/gomp/pr48794-2.f90: Likewise. + * gfortran.dg/gomp/pr48794.f90: Likewise. + * gfortran.dg/gomp/pr72744.f90: Likewise. + * gfortran.dg/gomp/pr77665.f90: Likewise. + * gfortran.dg/gomp/workshare2.f90: Likewise. + * gfortran.dg/gomp/workshare3.f90: Likewise. + * gfortran.dg/goto_1.f: Likewise. + * gfortran.dg/goto_2.f90: Likewise. + * gfortran.dg/goto_4.f90: Likewise. + * gfortran.dg/goto_6.f: Likewise. + * gfortran.dg/graphite/id-26.f03: Likewise. + * gfortran.dg/graphite/id-pr45370.f90: Likewise. + * gfortran.dg/graphite/pr29581.f90: Likewise. + * gfortran.dg/graphite/pr29832.f90: Likewise. + * gfortran.dg/graphite/run-id-1.f: Likewise. + * gfortran.dg/graphite/run-id-2.f90: Likewise. + * gfortran.dg/graphite/run-id-3.f90: Likewise. + * gfortran.dg/hollerith.f90: Likewise. + * gfortran.dg/hollerith4.f90: Likewise. + * gfortran.dg/hollerith6.f90: Likewise. + * gfortran.dg/hollerith8.f90: Likewise. + * gfortran.dg/hollerith_1.f90: Likewise. + * gfortran.dg/hollerith_character_array_constructor.f90: Likewise. + * gfortran.dg/hollerith_f95.f90: Likewise. + * gfortran.dg/hollerith_legacy.f90: Likewise. + * gfortran.dg/host_assoc_call_3.f90: Likewise. + * gfortran.dg/host_assoc_function_1.f90: Likewise. + * gfortran.dg/host_assoc_function_3.f90: Likewise. + * gfortran.dg/host_assoc_function_4.f90: Likewise. + * gfortran.dg/host_assoc_function_9.f90: Likewise. + * gfortran.dg/host_dummy_index_1.f90: Likewise. + * gfortran.dg/hypot_1.f90: Likewise. + * gfortran.dg/iall_iany_iparity_1.f90: Likewise. + * gfortran.dg/iargc.f90: Likewise. + * gfortran.dg/ibits.f90: Likewise. + * gfortran.dg/ichar_1.f90: Likewise. + * gfortran.dg/ichar_2.f90: Likewise. + * gfortran.dg/ieee/ieee_1.F90: Likewise. + * gfortran.dg/ieee/ieee_2.f90: Likewise. + * gfortran.dg/ieee/ieee_3.f90: Likewise. + * gfortran.dg/ieee/ieee_4.f90: Likewise. + * gfortran.dg/ieee/ieee_6.f90: Likewise. + * gfortran.dg/ieee/ieee_7.f90: Likewise. + * gfortran.dg/ieee/ieee_8.f90: Likewise. + * gfortran.dg/ieee/intrinsics_1.f90: Likewise. + * gfortran.dg/ieee/intrinsics_2.F90: Likewise. + * gfortran.dg/ieee/large_1.f90: Likewise. + * gfortran.dg/ieee/large_2.f90: Likewise. + * gfortran.dg/ieee/large_3.F90: Likewise. + * gfortran.dg/ieee/large_4.f90: Likewise. + * gfortran.dg/ieee/rounding_1.f90: Likewise. + * gfortran.dg/ieee/underflow_1.f90: Likewise. + * gfortran.dg/impl_do_var_data.f90: Likewise. + * gfortran.dg/implicit_10.f90: Likewise. + * gfortran.dg/implicit_12.f90: Likewise. + * gfortran.dg/implicit_class_1.f90: Likewise. + * gfortran.dg/implicit_pure_1.f90: Likewise. + * gfortran.dg/implied_do_1.f90: Likewise. + * gfortran.dg/implied_do_io_1.f90: Likewise. + * gfortran.dg/implied_do_io_2.f90: Likewise. + * gfortran.dg/implied_do_io_3.f90: Likewise. + * gfortran.dg/implied_shape_1.f08: Likewise. + * gfortran.dg/import.f90: Likewise. + * gfortran.dg/import4.f90: Likewise. + * gfortran.dg/impure_1.f08: Likewise. + * gfortran.dg/index.f90: Likewise. + * gfortran.dg/index_2.f90: Likewise. + * gfortran.dg/init_flag_1.f90: Likewise. + * gfortran.dg/init_flag_10.f90: Likewise. + * gfortran.dg/init_flag_15.f03: Likewise. + * gfortran.dg/init_flag_2.f90: Likewise. + * gfortran.dg/init_flag_3.f90: Likewise. + * gfortran.dg/init_flag_4.f90: Likewise. + * gfortran.dg/init_flag_5.f90: Likewise. + * gfortran.dg/init_flag_6.f90: Likewise. + * gfortran.dg/init_flag_7.f90: Likewise. + * gfortran.dg/init_flag_9.f90: Likewise. + * gfortran.dg/initialization_11.f90: Likewise. + * gfortran.dg/initialization_19.f90: Likewise. + * gfortran.dg/initialization_2.f90: Likewise. + * gfortran.dg/initialization_22.f90: Likewise. + * gfortran.dg/initialization_27.f90: Likewise. + * gfortran.dg/initialization_5.f90: Likewise. + * gfortran.dg/initialization_6.f90: Likewise. + * gfortran.dg/inline_matmul_1.f90: Likewise. + * gfortran.dg/inline_matmul_10.f90: Likewise. + * gfortran.dg/inline_matmul_11.f90: Likewise. + * gfortran.dg/inline_matmul_13.f90: Likewise. + * gfortran.dg/inline_matmul_14.f90: Likewise. + * gfortran.dg/inline_matmul_16.f90: Likewise. + * gfortran.dg/inline_matmul_17.f90: Likewise. + * gfortran.dg/inline_matmul_18.f90: Likewise. + * gfortran.dg/inline_matmul_19.f90: Likewise. + * gfortran.dg/inline_matmul_2.f90: Likewise. + * gfortran.dg/inline_matmul_20.f90: Likewise. + * gfortran.dg/inline_matmul_22.f90: Likewise. + * gfortran.dg/inline_matmul_3.f90: Likewise. + * gfortran.dg/inline_matmul_4.f90: Likewise. + * gfortran.dg/inline_matmul_5.f90: Likewise. + * gfortran.dg/inline_matmul_6.f90: Likewise. + * gfortran.dg/inline_matmul_7.f90: Likewise. + * gfortran.dg/inline_matmul_8.f90: Likewise. + * gfortran.dg/inline_matmul_9.f90: Likewise. + * gfortran.dg/inline_sum_1.f90: Likewise. + * gfortran.dg/inline_sum_3.f90: Likewise. + * gfortran.dg/inline_sum_5.f90: Likewise. + * gfortran.dg/inquire-complex.f90: Likewise. + * gfortran.dg/inquire.f90: Likewise. + * gfortran.dg/inquire_10.f90: Likewise. + * gfortran.dg/inquire_13.f90: Likewise. + * gfortran.dg/inquire_15.f90: Likewise. + * gfortran.dg/inquire_16.f90: Likewise. + * gfortran.dg/inquire_17.f90: Likewise. + * gfortran.dg/inquire_5.f90: Likewise. + * gfortran.dg/inquire_6.f90: Likewise. + * gfortran.dg/inquire_7.f90: Likewise. + * gfortran.dg/inquire_9.f90: Likewise. + * gfortran.dg/inquire_internal.f90: Likewise. + * gfortran.dg/inquire_recl_f2018.f90: Likewise. + * gfortran.dg/inquire_size.f90: Likewise. + * gfortran.dg/int_1.f90: Likewise. + * gfortran.dg/int_conv_1.f90: Likewise. + * gfortran.dg/int_range_io_1.f90: Likewise. + * gfortran.dg/integer_exponentiation_2.f90: Likewise. + * gfortran.dg/integer_exponentiation_3.F90: Likewise. + * gfortran.dg/integer_exponentiation_5.F90: Likewise. + * gfortran.dg/integer_plus.f90: Likewise. + * gfortran.dg/intent_out_2.f90: Likewise. + * gfortran.dg/intent_out_5.f90: Likewise. + * gfortran.dg/intent_out_6.f90: Likewise. + * gfortran.dg/interface_12.f90: Likewise. + * gfortran.dg/interface_19.f90: Likewise. + * gfortran.dg/interface_4.f90: Likewise. + * gfortran.dg/interface_5.f90: Likewise. + * gfortran.dg/interface_9.f90: Likewise. + * gfortran.dg/interface_assignment_1.f90: Likewise. + * gfortran.dg/interface_assignment_2.f90: Likewise. + * gfortran.dg/internal_dummy_2.f08: Likewise. + * gfortran.dg/internal_dummy_3.f08: Likewise. + * gfortran.dg/internal_dummy_4.f08: Likewise. + * gfortran.dg/internal_pack_1.f90: Likewise. + * gfortran.dg/internal_pack_10.f90: Likewise. + * gfortran.dg/internal_pack_12.f90: Likewise. + * gfortran.dg/internal_pack_13.f90: Likewise. + * gfortran.dg/internal_pack_14.f90: Likewise. + * gfortran.dg/internal_pack_15.f90: Likewise. + * gfortran.dg/internal_pack_2.f90: Likewise. + * gfortran.dg/internal_pack_3.f90: Likewise. + * gfortran.dg/internal_pack_4.f90: Likewise. + * gfortran.dg/internal_pack_6.f90: Likewise. + * gfortran.dg/internal_pack_8.f90: Likewise. + * gfortran.dg/internal_readwrite_1.f90: Likewise. + * gfortran.dg/internal_readwrite_2.f90: Likewise. + * gfortran.dg/internal_readwrite_3.f90: Likewise. + * gfortran.dg/intrinsic_actual_1.f: Likewise. + * gfortran.dg/intrinsic_actual_2.f90: Likewise. + * gfortran.dg/intrinsic_actual_4.f90: Likewise. + * gfortran.dg/intrinsic_argument_conformance_2.f90: Likewise. + * gfortran.dg/intrinsic_char_1.f90: Likewise. + * gfortran.dg/intrinsic_ifunction_1.f90: Likewise. + * gfortran.dg/intrinsic_intkinds_1.f90: Likewise. + * gfortran.dg/intrinsic_modulo_1.f90: Likewise. + * gfortran.dg/intrinsic_pack_1.f90: Likewise. + * gfortran.dg/intrinsic_pack_2.f90: Likewise. + * gfortran.dg/intrinsic_pack_3.f90: Likewise. + * gfortran.dg/intrinsic_pack_5.f90: Likewise. + * gfortran.dg/intrinsic_product_1.f90: Likewise. + * gfortran.dg/intrinsic_sign_1.f90: Likewise. + * gfortran.dg/intrinsic_sign_2.f90: Likewise. + * gfortran.dg/intrinsic_spread_1.f90: Likewise. + * gfortran.dg/intrinsic_spread_2.f90: Likewise. + * gfortran.dg/intrinsic_spread_3.f90: Likewise. + * gfortran.dg/intrinsic_unpack_1.f90: Likewise. + * gfortran.dg/intrinsic_unpack_2.f90: Likewise. + * gfortran.dg/intrinsic_unpack_3.f90: Likewise. + * gfortran.dg/intrinsic_verify_1.f90: Likewise. + * gfortran.dg/intrinsics_kind_argument_1.f90: Likewise. + * gfortran.dg/io_err_1.f90: Likewise. + * gfortran.dg/io_real_boz.f90: Likewise. + * gfortran.dg/iomsg_1.f90: Likewise. + * gfortran.dg/iostat_1.f90: Likewise. + * gfortran.dg/iostat_2.f90: Likewise. + * gfortran.dg/iostat_4.f90: Likewise. + * gfortran.dg/is_iostat_end_eor_1.f90: Likewise. + * gfortran.dg/ishft_1.f90: Likewise. + * gfortran.dg/ishft_2.f90: Likewise. + * gfortran.dg/ishft_4.f90: Likewise. + * gfortran.dg/isnan_1.f90: Likewise. + * gfortran.dg/isnan_2.f90: Likewise. + * gfortran.dg/iso_c_binding_rename_1.f03: Likewise. + * gfortran.dg/iso_c_binding_rename_2.f03: Likewise. + * gfortran.dg/iso_fortran_env_1.f90: Likewise. + * gfortran.dg/iso_fortran_env_3.f90: Likewise. + * gfortran.dg/iso_fortran_env_5.f90: Likewise. + * gfortran.dg/iso_fortran_env_6.f90: Likewise. + * gfortran.dg/itime_idate_1.f: Likewise. + * gfortran.dg/itime_idate_2.f: Likewise. + * gfortran.dg/large_integer_kind_1.f90: Likewise. + * gfortran.dg/large_integer_kind_2.f90: Likewise. + * gfortran.dg/large_real_kind_1.f90: Likewise. + * gfortran.dg/large_real_kind_2.F90: Likewise. + * gfortran.dg/large_real_kind_3.F90: Likewise. + * gfortran.dg/large_real_kind_form_io_1.f90: Likewise. + * gfortran.dg/large_real_kind_form_io_2.f90: Likewise. + * gfortran.dg/large_recl.f90: Likewise. + * gfortran.dg/large_unit_1.f90: Likewise. + * gfortran.dg/large_unit_2.f90: Likewise. + * gfortran.dg/largeequiv_1.f90: Likewise. + * gfortran.dg/leadz_trailz_1.f90: Likewise. + * gfortran.dg/leadz_trailz_2.f90: Likewise. + * gfortran.dg/leadz_trailz_3.f90: Likewise. + * gfortran.dg/list_read_1.f90: Likewise. + * gfortran.dg/list_read_10.f90: Likewise. + * gfortran.dg/list_read_11.f90: Likewise. + * gfortran.dg/list_read_12.f90: Likewise. + * gfortran.dg/list_read_13.f: Likewise. + * gfortran.dg/list_read_14.f90: Likewise. + * gfortran.dg/list_read_2.f90: Likewise. + * gfortran.dg/list_read_3.f90: Likewise. + * gfortran.dg/list_read_4.f90: Likewise. + * gfortran.dg/list_read_5.f90: Likewise. + * gfortran.dg/list_read_6.f90: Likewise. + * gfortran.dg/list_read_7.f90: Likewise. + * gfortran.dg/list_read_8.f90: Likewise. + * gfortran.dg/list_read_9.f90: Likewise. + * gfortran.dg/loc_2.f90: Likewise. + * gfortran.dg/logical_1.f90: Likewise. + * gfortran.dg/logical_dot_product.f90: Likewise. + * gfortran.dg/logical_temp_io.f90: Likewise. + * gfortran.dg/logical_temp_io_kind8.f90: Likewise. + * gfortran.dg/lrshift_1.f90: Likewise. + * gfortran.dg/ltime_gmtime_1.f90: Likewise. + * gfortran.dg/ltime_gmtime_2.f90: Likewise. + * gfortran.dg/lto/pr40725_0.f03: Likewise. + * gfortran.dg/lto/pr41576_1.f90: Likewise. + * gfortran.dg/make_unit.f90: Likewise. + * gfortran.dg/mapping_1.f90: Likewise. + * gfortran.dg/mapping_2.f90: Likewise. + * gfortran.dg/mapping_3.f90: Likewise. + * gfortran.dg/masklr_1.F90: Likewise. + * gfortran.dg/masklr_2.F90: Likewise. + * gfortran.dg/matmul_1.f90: Likewise. + * gfortran.dg/matmul_10.f90: Likewise. + * gfortran.dg/matmul_12.f90: Likewise. + * gfortran.dg/matmul_16.f90: Likewise. + * gfortran.dg/matmul_17.f90: Likewise. + * gfortran.dg/matmul_18.f90: Likewise. + * gfortran.dg/matmul_2.f90: Likewise. + * gfortran.dg/matmul_3.f90: Likewise. + * gfortran.dg/matmul_4.f90: Likewise. + * gfortran.dg/matmul_6.f90: Likewise. + * gfortran.dg/matmul_8.f03: Likewise. + * gfortran.dg/matmul_9.f90: Likewise. + * gfortran.dg/matmul_bounds_12.f90: Likewise. + * gfortran.dg/matmul_bounds_6.f90: Likewise. + * gfortran.dg/matmul_const.f90: Likewise. + * gfortran.dg/maxloc_1.f90: Likewise. + * gfortran.dg/maxloc_2.f90: Likewise. + * gfortran.dg/maxloc_3.f90: Likewise. + * gfortran.dg/maxloc_4.f90: Likewise. + * gfortran.dg/maxloc_string_1.f90: Likewise. + * gfortran.dg/maxlocval_1.f90: Likewise. + * gfortran.dg/maxlocval_2.f90: Likewise. + * gfortran.dg/maxlocval_3.f90: Likewise. + * gfortran.dg/maxlocval_4.f90: Likewise. + * gfortran.dg/maxval_char_1.f90: Likewise. + * gfortran.dg/maxval_char_2.f90: Likewise. + * gfortran.dg/maxval_char_3.f90: Likewise. + * gfortran.dg/maxval_char_4.f90: Likewise. + * gfortran.dg/maxval_parameter_1.f90: Likewise. + * gfortran.dg/mclock.f90: Likewise. + * gfortran.dg/merge_bits_1.F90: Likewise. + * gfortran.dg/merge_bits_2.F90: Likewise. + * gfortran.dg/merge_char_1.f90: Likewise. + * gfortran.dg/merge_init_expr.f90: Likewise. + * gfortran.dg/min_max_optional_1.f90: Likewise. + * gfortran.dg/min_max_optional_5.f90: Likewise. + * gfortran.dg/minloc_1.f90: Likewise. + * gfortran.dg/minloc_2.f90: Likewise. + * gfortran.dg/minloc_3.f90: Likewise. + * gfortran.dg/minloc_4.f90: Likewise. + * gfortran.dg/minloc_string_1.f90: Likewise. + * gfortran.dg/minlocval_1.f90: Likewise. + * gfortran.dg/minlocval_2.f90: Likewise. + * gfortran.dg/minlocval_3.f90: Likewise. + * gfortran.dg/minlocval_4.f90: Likewise. + * gfortran.dg/minmax_char_1.f90: Likewise. + * gfortran.dg/minmaxloc_1.f90: Likewise. + * gfortran.dg/minmaxloc_10.f90: Likewise. + * gfortran.dg/minmaxloc_11.f90: Likewise. + * gfortran.dg/minmaxloc_12.f90: Likewise. + * gfortran.dg/minmaxloc_13.f90: Likewise. + * gfortran.dg/minmaxloc_2.f90: Likewise. + * gfortran.dg/minmaxloc_3.f90: Likewise. + * gfortran.dg/minmaxloc_4.f90: Likewise. + * gfortran.dg/minmaxloc_5.f90: Likewise. + * gfortran.dg/minmaxloc_6.f90: Likewise. + * gfortran.dg/minmaxloc_7.f90: Likewise. + * gfortran.dg/minmaxloc_8.f90: Likewise. + * gfortran.dg/minmaxval_1.f90: Likewise. + * gfortran.dg/minval_char_1.f90: Likewise. + * gfortran.dg/minval_char_2.f90: Likewise. + * gfortran.dg/minval_char_3.f90: Likewise. + * gfortran.dg/minval_char_4.f90: Likewise. + * gfortran.dg/minval_char_5.f90: Likewise. + * gfortran.dg/minval_parameter_1.f90: Likewise. + * gfortran.dg/missing_optional_dummy_1.f90: Likewise. + * gfortran.dg/missing_optional_dummy_2.f90: Likewise. + * gfortran.dg/missing_optional_dummy_6.f90: Likewise. + * gfortran.dg/missing_parens_1.f90: Likewise. + * gfortran.dg/missing_parens_2.f90: Likewise. + * gfortran.dg/mod_large_1.f90: Likewise. + * gfortran.dg/mod_sign0_1.f90: Likewise. + * gfortran.dg/module_blank_common.f90: Likewise. + * gfortran.dg/module_commons_1.f90: Likewise. + * gfortran.dg/module_commons_3.f90: Likewise. + * gfortran.dg/module_double_reuse.f90: Likewise. + * gfortran.dg/module_equivalence_1.f90: Likewise. + * gfortran.dg/module_equivalence_2.f90: Likewise. + * gfortran.dg/module_equivalence_3.f90: Likewise. + * gfortran.dg/module_equivalence_5.f90: Likewise. + * gfortran.dg/module_interface_1.f90: Likewise. + * gfortran.dg/module_nan.f90: Likewise. + * gfortran.dg/module_private_array_refs_1.f90: Likewise. + * gfortran.dg/module_procedure_1.f90: Likewise. + * gfortran.dg/module_read_1.f90: Likewise. + * gfortran.dg/module_read_2.f90: Likewise. + * gfortran.dg/module_widestring_1.f90: Likewise. + * gfortran.dg/move_alloc.f90: Likewise. + * gfortran.dg/move_alloc_10.f90: Likewise. + * gfortran.dg/move_alloc_13.f90: Likewise. + * gfortran.dg/move_alloc_14.f90: Likewise. + * gfortran.dg/move_alloc_15.f90: Likewise. + * gfortran.dg/move_alloc_16.f90: Likewise. + * gfortran.dg/move_alloc_2.f90: Likewise. + * gfortran.dg/move_alloc_5.f90: Likewise. + * gfortran.dg/move_alloc_6.f90: Likewise. + * gfortran.dg/move_alloc_9.f90: Likewise. + * gfortran.dg/multiple_allocation_1.f90: Likewise. + * gfortran.dg/multiple_allocation_3.f90: Likewise. + * gfortran.dg/mvbits_1.f90: Likewise. + * gfortran.dg/mvbits_2.f90: Likewise. + * gfortran.dg/mvbits_3.f90: Likewise. + * gfortran.dg/mvbits_4.f90: Likewise. + * gfortran.dg/mvbits_7.f90: Likewise. + * gfortran.dg/mvbits_8.f90: Likewise. + * gfortran.dg/namelist_11.f: Likewise. + * gfortran.dg/namelist_12.f: Likewise. + * gfortran.dg/namelist_13.f90: Likewise. + * gfortran.dg/namelist_14.f90: Likewise. + * gfortran.dg/namelist_15.f90: Likewise. + * gfortran.dg/namelist_16.f90: Likewise. + * gfortran.dg/namelist_17.f90: Likewise. + * gfortran.dg/namelist_18.f90: Likewise. + * gfortran.dg/namelist_19.f90: Likewise. + * gfortran.dg/namelist_20.f90: Likewise. + * gfortran.dg/namelist_21.f90: Likewise. + * gfortran.dg/namelist_22.f90: Likewise. + * gfortran.dg/namelist_23.f90: Likewise. + * gfortran.dg/namelist_24.f90: Likewise. + * gfortran.dg/namelist_26.f90: Likewise. + * gfortran.dg/namelist_27.f90: Likewise. + * gfortran.dg/namelist_28.f90: Likewise. + * gfortran.dg/namelist_29.f90: Likewise. + * gfortran.dg/namelist_37.f90: Likewise. + * gfortran.dg/namelist_38.f90: Likewise. + * gfortran.dg/namelist_39.f90: Likewise. + * gfortran.dg/namelist_40.f90: Likewise. + * gfortran.dg/namelist_41.f90: Likewise. + * gfortran.dg/namelist_42.f90: Likewise. + * gfortran.dg/namelist_43.f90: Likewise. + * gfortran.dg/namelist_44.f90: Likewise. + * gfortran.dg/namelist_47.f90: Likewise. + * gfortran.dg/namelist_48.f90: Likewise. + * gfortran.dg/namelist_49.f90: Likewise. + * gfortran.dg/namelist_50.f90: Likewise. + * gfortran.dg/namelist_51.f90: Likewise. + * gfortran.dg/namelist_52.f90: Likewise. + * gfortran.dg/namelist_54.f90: Likewise. + * gfortran.dg/namelist_55.f90: Likewise. + * gfortran.dg/namelist_56.f90: Likewise. + * gfortran.dg/namelist_57.f90: Likewise. + * gfortran.dg/namelist_58.f90: Likewise. + * gfortran.dg/namelist_59.f90: Likewise. + * gfortran.dg/namelist_60.f90: Likewise. + * gfortran.dg/namelist_61.f90: Likewise. + * gfortran.dg/namelist_64.f90: Likewise. + * gfortran.dg/namelist_65.f90: Likewise. + * gfortran.dg/namelist_69.f90: Likewise. + * gfortran.dg/namelist_70.f90: Likewise. + * gfortran.dg/namelist_71.f90: Likewise. + * gfortran.dg/namelist_72.f: Likewise. + * gfortran.dg/namelist_73.f90: Likewise. + * gfortran.dg/namelist_77.f90: Likewise. + * gfortran.dg/namelist_78.f90: Likewise. + * gfortran.dg/namelist_79.f90: Likewise. + * gfortran.dg/namelist_80.f90: Likewise. + * gfortran.dg/namelist_81.f90: Likewise. + * gfortran.dg/namelist_82.f90: Likewise. + * gfortran.dg/namelist_84.f90: Likewise. + * gfortran.dg/namelist_85.f90: Likewise. + * gfortran.dg/namelist_86.f90: Likewise. + * gfortran.dg/namelist_87.f90: Likewise. + * gfortran.dg/namelist_88.f90: Likewise. + * gfortran.dg/namelist_89.f90: Likewise. + * gfortran.dg/namelist_90.f: Likewise. + * gfortran.dg/namelist_95.f90: Likewise. + * gfortran.dg/namelist_char_only.f90: Likewise. + * gfortran.dg/namelist_empty.f90: Likewise. + * gfortran.dg/namelist_internal.f90: Likewise. + * gfortran.dg/namelist_use.f90: Likewise. + * gfortran.dg/namelist_use_only.f90: Likewise. + * gfortran.dg/namelist_utf8.f90: Likewise. + * gfortran.dg/nan_1.f90: Likewise. + * gfortran.dg/nan_2.f90: Likewise. + * gfortran.dg/nan_3.f90: Likewise. + * gfortran.dg/nan_6.f90: Likewise. + * gfortran.dg/nan_7.f90: Likewise. + * gfortran.dg/nearest_1.f90: Likewise. + * gfortran.dg/nearest_2.f90: Likewise. + * gfortran.dg/nearest_3.f90: Likewise. + * gfortran.dg/negative-z-descriptor.f90: Likewise. + * gfortran.dg/negative_automatic_size.f90: Likewise. + * gfortran.dg/negative_unit.f: Likewise. + * gfortran.dg/negative_unit2.f90: Likewise. + * gfortran.dg/negative_unit_int8.f: Likewise. + * gfortran.dg/nested_array_constructor_2.f90: Likewise. + * gfortran.dg/nested_array_constructor_3.f90: Likewise. + * gfortran.dg/nested_array_constructor_4.f90: Likewise. + * gfortran.dg/nested_modules_1.f90: Likewise. + * gfortran.dg/nested_modules_2.f90: Likewise. + * gfortran.dg/nested_modules_3.f90: Likewise. + * gfortran.dg/nesting_1.f90: Likewise. + * gfortran.dg/new_line.f90: Likewise. + * gfortran.dg/newunit_1.f90: Likewise. + * gfortran.dg/newunit_3.f90: Likewise. + * gfortran.dg/newunit_5.f90.f90: Likewise. + * gfortran.dg/nint_1.f90: Likewise. + * gfortran.dg/nint_2.f90: Likewise. + * gfortran.dg/no_arg_check_2.f90: Likewise. + * gfortran.dg/no_range_check_1.f90: Likewise. + * gfortran.dg/no_range_check_2.f90: Likewise. + * gfortran.dg/no_range_check_3.f90: Likewise. + * gfortran.dg/noadv_size.f90: Likewise. + * gfortran.dg/nonreturning_statements.f90: Likewise. + * gfortran.dg/norm2_1.f90: Likewise. + * gfortran.dg/norm2_3.f90: Likewise. + * gfortran.dg/nosigned_zero_1.f90: Likewise. + * gfortran.dg/nosigned_zero_2.f90: Likewise. + * gfortran.dg/nosigned_zero_3.f90: Likewise. + * gfortran.dg/null_4.f90: Likewise. + * gfortran.dg/null_9.f90: Likewise. + * gfortran.dg/nullify_3.f90: Likewise. + * gfortran.dg/oldstyle_1.f90: Likewise. + * gfortran.dg/open_access_append_1.f90: Likewise. + * gfortran.dg/open_access_append_2.f90: Likewise. + * gfortran.dg/open_errors.f90: Likewise. + * gfortran.dg/open_negative_unit_1.f90: Likewise. + * gfortran.dg/open_new.f90: Likewise. + * gfortran.dg/open_readonly_1.f90: Likewise. + * gfortran.dg/operator_1.f90: Likewise. + * gfortran.dg/optional_absent_1.f90: Likewise. + * gfortran.dg/optional_absent_2.f90: Likewise. + * gfortran.dg/optional_absent_3.f90: Likewise. + * gfortran.dg/optional_class_1.f90: Likewise. + * gfortran.dg/optional_dim_2.f90: Likewise. + * gfortran.dg/optional_dim_3.f90: Likewise. + * gfortran.dg/output_exponents_1.f90: Likewise. + * gfortran.dg/overload_1.f90: Likewise. + * gfortran.dg/overload_2.f90: Likewise. + * gfortran.dg/overwrite_1.f: Likewise. + * gfortran.dg/pad_no.f90: Likewise. + * gfortran.dg/parameter_array_init_1.f90: Likewise. + * gfortran.dg/parameter_array_init_2.f90: Likewise. + * gfortran.dg/parameter_array_init_4.f90: Likewise. + * gfortran.dg/parameter_array_init_5.f90: Likewise. + * gfortran.dg/parameter_array_section_2.f90: Likewise. + * gfortran.dg/parens_3.f90: Likewise. + * gfortran.dg/parens_5.f90: Likewise. + * gfortran.dg/parens_6.f90: Likewise. + * gfortran.dg/parent_result_ref_1.f90: Likewise. + * gfortran.dg/parent_result_ref_2.f90: Likewise. + * gfortran.dg/parent_result_ref_3.f90: Likewise. + * gfortran.dg/parent_result_ref_4.f90: Likewise. + * gfortran.dg/parity_1.f90: Likewise. + * gfortran.dg/past_eor.f90: Likewise. + * gfortran.dg/pdt_1.f03: Likewise. + * gfortran.dg/pdt_10.f03: Likewise. + * gfortran.dg/pdt_11.f03: Likewise. + * gfortran.dg/pdt_12.f03: Likewise. + * gfortran.dg/pdt_13.f03: Likewise. + * gfortran.dg/pdt_14.f03: Likewise. + * gfortran.dg/pdt_15.f03: Likewise. + * gfortran.dg/pdt_19.f03: Likewise. + * gfortran.dg/pdt_20.f03: Likewise. + * gfortran.dg/pdt_22.f03: Likewise. + * gfortran.dg/pdt_23.f03: Likewise. + * gfortran.dg/pdt_25.f03: Likewise. + * gfortran.dg/pdt_26.f03: Likewise. + * gfortran.dg/pdt_27.f03: Likewise. + * gfortran.dg/pdt_28.f03: Likewise. + * gfortran.dg/pdt_3.f03: Likewise. + * gfortran.dg/pdt_4.f03: Likewise. + * gfortran.dg/pdt_5.f03: Likewise. + * gfortran.dg/pdt_7.f03: Likewise. + * gfortran.dg/pointer_1.f90: Likewise. + * gfortran.dg/pointer_array_1.f90: Likewise. + * gfortran.dg/pointer_array_3.f90: Likewise. + * gfortran.dg/pointer_array_4.f90: Likewise. + * gfortran.dg/pointer_array_5.f90: Likewise. + * gfortran.dg/pointer_array_6.f90: Likewise. + * gfortran.dg/pointer_array_7.f90: Likewise. + * gfortran.dg/pointer_array_8.f90: Likewise. + * gfortran.dg/pointer_array_9.f90: Likewise. + * gfortran.dg/pointer_array_component_1.f90: Likewise. + * gfortran.dg/pointer_array_component_2.f90: Likewise. + * gfortran.dg/pointer_assign_10.f90: Likewise. + * gfortran.dg/pointer_assign_11.f90: Likewise. + * gfortran.dg/pointer_assign_4.f90: Likewise. + * gfortran.dg/pointer_assign_8.f90: Likewise. + * gfortran.dg/pointer_assign_9.f90: Likewise. + * gfortran.dg/pointer_check_10.f90: Likewise. + * gfortran.dg/pointer_check_9.f90: Likewise. + * gfortran.dg/pointer_function_actual_1.f90: Likewise. + * gfortran.dg/pointer_function_actual_2.f90: Likewise. + * gfortran.dg/pointer_function_result_1.f90: Likewise. + * gfortran.dg/pointer_init_1.f90: Likewise. + * gfortran.dg/pointer_init_3.f90: Likewise. + * gfortran.dg/pointer_init_4.f90: Likewise. + * gfortran.dg/pointer_init_5.f90: Likewise. + * gfortran.dg/pointer_init_8.f90: Likewise. + * gfortran.dg/pointer_intent_1.f90: Likewise. + * gfortran.dg/pointer_intent_4.f90: Likewise. + * gfortran.dg/pointer_intent_5.f90: Likewise. + * gfortran.dg/pointer_remapping_10.f90: Likewise. + * gfortran.dg/pointer_remapping_4.f03: Likewise. + * gfortran.dg/pointer_remapping_5.f08: Likewise. + * gfortran.dg/pointer_remapping_9.f90: Likewise. + * gfortran.dg/pointer_target_1.f90: Likewise. + * gfortran.dg/pointer_target_2.f90: Likewise. + * gfortran.dg/popcnt_poppar_1.F90: Likewise. + * gfortran.dg/popcnt_poppar_2.F90: Likewise. + * gfortran.dg/power.f90: Likewise. + * gfortran.dg/power1.f90: Likewise. + * gfortran.dg/power_3.f90: Likewise. + * gfortran.dg/power_4.f90: Likewise. + * gfortran.dg/power_5.f90: Likewise. + * gfortran.dg/pr12884.f: Likewise. + * gfortran.dg/pr15129.f90: Likewise. + * gfortran.dg/pr15140.f90: Likewise. + * gfortran.dg/pr15324.f90: Likewise. + * gfortran.dg/pr15332.f: Likewise. + * gfortran.dg/pr15957.f90: Likewise. + * gfortran.dg/pr15959.f90: Likewise. + * gfortran.dg/pr16597.f90: Likewise. + * gfortran.dg/pr16861.f90: Likewise. + * gfortran.dg/pr16938.f90: Likewise. + * gfortran.dg/pr17090.f90: Likewise. + * gfortran.dg/pr17143.f90: Likewise. + * gfortran.dg/pr17164.f90: Likewise. + * gfortran.dg/pr17229.f: Likewise. + * gfortran.dg/pr17285.f90: Likewise. + * gfortran.dg/pr17286.f90: Likewise. + * gfortran.dg/pr17472.f: Likewise. + * gfortran.dg/pr17612.f90: Likewise. + * gfortran.dg/pr17706.f90: Likewise. + * gfortran.dg/pr18025.f90: Likewise. + * gfortran.dg/pr18122.f90: Likewise. + * gfortran.dg/pr18210.f90: Likewise. + * gfortran.dg/pr18392.f90: Likewise. + * gfortran.dg/pr19155.f: Likewise. + * gfortran.dg/pr19216.f: Likewise. + * gfortran.dg/pr19467.f90: Likewise. + * gfortran.dg/pr19657.f: Likewise. + * gfortran.dg/pr19926.f90: Likewise. + * gfortran.dg/pr19928-1.f90: Likewise. + * gfortran.dg/pr19928-2.f90: Likewise. + * gfortran.dg/pr20086.f90: Likewise. + * gfortran.dg/pr20124.f90: Likewise. + * gfortran.dg/pr20163-2.f: Likewise. + * gfortran.dg/pr20480.f90: Likewise. + * gfortran.dg/pr20755.f: Likewise. + * gfortran.dg/pr20950.f: Likewise. + * gfortran.dg/pr21177.f90: Likewise. + * gfortran.dg/pr21730.f: Likewise. + * gfortran.dg/pr22491.f: Likewise. + * gfortran.dg/pr25603.f: Likewise. + * gfortran.dg/pr26246_2.f90: Likewise. + * gfortran.dg/pr32136.f90: Likewise. + * gfortran.dg/pr32533.f90: Likewise. + * gfortran.dg/pr33794.f90: Likewise. + * gfortran.dg/pr35662.f90: Likewise. + * gfortran.dg/pr35944-1.f90: Likewise. + * gfortran.dg/pr35944-2.f90: Likewise. + * gfortran.dg/pr35983.f90: Likewise. + * gfortran.dg/pr39865.f90: Likewise. + * gfortran.dg/pr41212.f90: Likewise. + * gfortran.dg/pr43808.f90: Likewise. + * gfortran.dg/pr44592.f90: Likewise. + * gfortran.dg/pr44735.f90: Likewise. + * gfortran.dg/pr45308.f03: Likewise. + * gfortran.dg/pr46297.f: Likewise. + * gfortran.dg/pr46588.f90: Likewise. + * gfortran.dg/pr46665.f90: Likewise. + * gfortran.dg/pr46804.f90: Likewise. + * gfortran.dg/pr47008.f03: Likewise. + * gfortran.dg/pr47614.f: Likewise. + * gfortran.dg/pr47878.f90: Likewise. + * gfortran.dg/pr49103.f90: Likewise. + * gfortran.dg/pr50069_1.f90: Likewise. + * gfortran.dg/pr50769.f90: Likewise. + * gfortran.dg/pr52608.f90: Likewise. + * gfortran.dg/pr55086_2.f90: Likewise. + * gfortran.dg/pr55086_2_tfat.f90: Likewise. + * gfortran.dg/pr55086_aliasing_dummy_4_tfat.f90: Likewise. + * gfortran.dg/pr55330.f90: Likewise. + * gfortran.dg/pr56015.f90: Likewise. + * gfortran.dg/pr57910.f90: Likewise. + * gfortran.dg/pr59700.f90: Likewise. + * gfortran.dg/pr62125.f90: Likewise. + * gfortran.dg/pr64530.f90: Likewise. + * gfortran.dg/pr65429.f90: Likewise. + * gfortran.dg/pr65450.f90: Likewise. + * gfortran.dg/pr65504.f90: Likewise. + * gfortran.dg/pr65903.f90: Likewise. + * gfortran.dg/pr66311.f90: Likewise. + * gfortran.dg/pr66864.f90: Likewise. + * gfortran.dg/pr67140.f90: Likewise. + * gfortran.dg/pr67524.f90: Likewise. + * gfortran.dg/pr67885.f90: Likewise. + * gfortran.dg/pr68053.f90: Likewise. + * gfortran.dg/pr68566.f90: Likewise. + * gfortran.dg/pr69514_1.f90: Likewise. + * gfortran.dg/pr69514_2.f90: Likewise. + * gfortran.dg/pr69739.f90: Likewise. + * gfortran.dg/pr70673.f90: Likewise. + * gfortran.dg/pr71523_2.f90: Likewise. + * gfortran.dg/pr71764.f90: Likewise. + * gfortran.dg/pr78092.f90: Likewise. + * gfortran.dg/pr82973.f90: Likewise. + * gfortran.dg/pr83864.f90: Likewise. + * gfortran.dg/pr83874.f90: Likewise. + * gfortran.dg/pr84088.f90: Likewise. + * gfortran.dg/pr84155.f90: Likewise. + * gfortran.dg/proc_decl_12.f90: Likewise. + * gfortran.dg/proc_decl_13.f90: Likewise. + * gfortran.dg/proc_decl_15.f90: Likewise. + * gfortran.dg/proc_decl_17.f90: Likewise. + * gfortran.dg/proc_decl_18.f90: Likewise. + * gfortran.dg/proc_decl_2.f90: Likewise. + * gfortran.dg/proc_decl_5.f90: Likewise. + * gfortran.dg/proc_decl_9.f90: Likewise. + * gfortran.dg/proc_ptr_1.f90: Likewise. + * gfortran.dg/proc_ptr_10.f90: Likewise. + * gfortran.dg/proc_ptr_12.f90: Likewise. + * gfortran.dg/proc_ptr_18.f90: Likewise. + * gfortran.dg/proc_ptr_19.f90: Likewise. + * gfortran.dg/proc_ptr_21.f90: Likewise. + * gfortran.dg/proc_ptr_22.f90: Likewise. + * gfortran.dg/proc_ptr_23.f90: Likewise. + * gfortran.dg/proc_ptr_25.f90: Likewise. + * gfortran.dg/proc_ptr_26.f90: Likewise. + * gfortran.dg/proc_ptr_3.f90: Likewise. + * gfortran.dg/proc_ptr_36.f90: Likewise. + * gfortran.dg/proc_ptr_47.f90: Likewise. + * gfortran.dg/proc_ptr_48.f90: Likewise. + * gfortran.dg/proc_ptr_5.f90: Likewise. + * gfortran.dg/proc_ptr_6.f90: Likewise. + * gfortran.dg/proc_ptr_7.f90: Likewise. + * gfortran.dg/proc_ptr_8.f90: Likewise. + * gfortran.dg/proc_ptr_common_1.f90: Likewise. + * gfortran.dg/proc_ptr_comp_1.f90: Likewise. + * gfortran.dg/proc_ptr_comp_11.f90: Likewise. + * gfortran.dg/proc_ptr_comp_12.f90: Likewise. + * gfortran.dg/proc_ptr_comp_13.f90: Likewise. + * gfortran.dg/proc_ptr_comp_14.f90: Likewise. + * gfortran.dg/proc_ptr_comp_15.f90: Likewise. + * gfortran.dg/proc_ptr_comp_16.f90: Likewise. + * gfortran.dg/proc_ptr_comp_17.f90: Likewise. + * gfortran.dg/proc_ptr_comp_18.f90: Likewise. + * gfortran.dg/proc_ptr_comp_19.f90: Likewise. + * gfortran.dg/proc_ptr_comp_2.f90: Likewise. + * gfortran.dg/proc_ptr_comp_29.f90: Likewise. + * gfortran.dg/proc_ptr_comp_45.f90: Likewise. + * gfortran.dg/proc_ptr_comp_47.f90: Likewise. + * gfortran.dg/proc_ptr_comp_5.f90: Likewise. + * gfortran.dg/proc_ptr_comp_6.f90: Likewise. + * gfortran.dg/proc_ptr_comp_8.f90: Likewise. + * gfortran.dg/proc_ptr_comp_9.f90: Likewise. + * gfortran.dg/proc_ptr_comp_pass_1.f90: Likewise. + * gfortran.dg/proc_ptr_comp_pass_2.f90: Likewise. + * gfortran.dg/proc_ptr_comp_pass_3.f90: Likewise. + * gfortran.dg/proc_ptr_comp_pass_5.f90: Likewise. + * gfortran.dg/proc_ptr_result_1.f90: Likewise. + * gfortran.dg/proc_ptr_result_3.f90: Likewise. + * gfortran.dg/proc_ptr_result_6.f90: Likewise. + * gfortran.dg/proc_ptr_result_7.f90: Likewise. + * gfortran.dg/proc_ptr_result_8.f90: Likewise. + * gfortran.dg/product_init_expr.f03: Likewise. + * gfortran.dg/promotion.f90: Likewise. + * gfortran.dg/promotion_3.f90: Likewise. + * gfortran.dg/promotion_4.f90: Likewise. + * gfortran.dg/protected_1.f90: Likewise. + * gfortran.dg/protected_2.f90: Likewise. + * gfortran.dg/ptr-func-1.f90: Likewise. + * gfortran.dg/ptr-func-2.f90: Likewise. + * gfortran.dg/ptr_func_assign_1.f08: Likewise. + * gfortran.dg/ptr_func_assign_2.f08: Likewise. + * gfortran.dg/ptr_func_assign_3.f08: Likewise. + * gfortran.dg/pure_byref_1.f90: Likewise. + * gfortran.dg/pure_byref_2.f90: Likewise. + * gfortran.dg/pure_byref_3.f90: Likewise. + * gfortran.dg/quad_2.f90: Likewise. + * gfortran.dg/quad_3.f90: Likewise. + * gfortran.dg/random_3.f90: Likewise. + * gfortran.dg/random_4.f90: Likewise. + * gfortran.dg/random_7.f90: Likewise. + * gfortran.dg/read_2.f90: Likewise. + * gfortran.dg/read_3.f90: Likewise. + * gfortran.dg/read_4.f90: Likewise. + * gfortran.dg/read_5.f90: Likewise. + * gfortran.dg/read_bad_advance.f90: Likewise. + * gfortran.dg/read_bang.f90: Likewise. + * gfortran.dg/read_bang4.f90: Likewise. + * gfortran.dg/read_comma.f: Likewise. + * gfortran.dg/read_dir.f90: Likewise. + * gfortran.dg/read_empty_file.f: Likewise. + * gfortran.dg/read_eof_1.f90: Likewise. + * gfortran.dg/read_eof_2.f90: Likewise. + * gfortran.dg/read_eof_3.f90: Likewise. + * gfortran.dg/read_eof_4.f90: Likewise. + * gfortran.dg/read_eof_5.f90: Likewise. + * gfortran.dg/read_eof_6.f: Likewise. + * gfortran.dg/read_eof_7.f90: Likewise. + * gfortran.dg/read_eof_8.f90: Likewise. + * gfortran.dg/read_eof_all.f90: Likewise. + * gfortran.dg/read_eor.f90: Likewise. + * gfortran.dg/read_float_1.f90: Likewise. + * gfortran.dg/read_float_2.f03: Likewise. + * gfortran.dg/read_float_3.f90: Likewise. + * gfortran.dg/read_float_4.f90: Likewise. + * gfortran.dg/read_infnan_1.f90: Likewise. + * gfortran.dg/read_list_eof_1.f90: Likewise. + * gfortran.dg/read_logical.f90: Likewise. + * gfortran.dg/read_many_1.f: Likewise. + * gfortran.dg/read_no_eor.f90: Likewise. + * gfortran.dg/read_noadvance.f90: Likewise. + * gfortran.dg/read_repeat.f90: Likewise. + * gfortran.dg/read_repeat_2.f90: Likewise. + * gfortran.dg/read_size_noadvance.f90: Likewise. + * gfortran.dg/read_x_eof.f90: Likewise. + * gfortran.dg/read_x_past.f: Likewise. + * gfortran.dg/readwrite_unf_direct_eor_1.f90: Likewise. + * gfortran.dg/real_const_1.f: Likewise. + * gfortran.dg/real_const_2.f90: Likewise. + * gfortran.dg/real_const_3.f90: Likewise. + * gfortran.dg/real_do_1.f90: Likewise. + * gfortran.dg/real_index_1.f90: Likewise. + * gfortran.dg/realloc_on_assign_1.f03: Likewise. + * gfortran.dg/realloc_on_assign_10.f90: Likewise. + * gfortran.dg/realloc_on_assign_11.f90: Likewise. + * gfortran.dg/realloc_on_assign_12.f90: Likewise. + * gfortran.dg/realloc_on_assign_16.f90: Likewise. + * gfortran.dg/realloc_on_assign_17.f90: Likewise. + * gfortran.dg/realloc_on_assign_18.f90: Likewise. + * gfortran.dg/realloc_on_assign_2.f03: Likewise. + * gfortran.dg/realloc_on_assign_23.f90: Likewise. + * gfortran.dg/realloc_on_assign_25.f90: Likewise. + * gfortran.dg/realloc_on_assign_26.f90: Likewise. + * gfortran.dg/realloc_on_assign_27.f08: Likewise. + * gfortran.dg/realloc_on_assign_28.f90: Likewise. + * gfortran.dg/realloc_on_assign_29.f90: Likewise. + * gfortran.dg/realloc_on_assign_3.f03: Likewise. + * gfortran.dg/realloc_on_assign_4.f03: Likewise. + * gfortran.dg/realloc_on_assign_5.f03: Likewise. + * gfortran.dg/realloc_on_assign_7.f03: Likewise. + * gfortran.dg/record_marker_1.f90: Likewise. + * gfortran.dg/record_marker_2.f: Likewise. + * gfortran.dg/record_marker_3.f90: Likewise. + * gfortran.dg/recursive_alloc_comp_1.f08: Likewise. + * gfortran.dg/recursive_alloc_comp_2.f08: Likewise. + * gfortran.dg/recursive_alloc_comp_3.f08: Likewise. + * gfortran.dg/recursive_alloc_comp_4.f08: Likewise. + * gfortran.dg/recursive_check_7.f90: Likewise. + * gfortran.dg/recursive_reference_1.f90: Likewise. + * gfortran.dg/recursive_reference_2.f90: Likewise. + * gfortran.dg/recursive_stack.f90: Likewise. + * gfortran.dg/reduction.f90: Likewise. + * gfortran.dg/repack_arrays_1.f90: Likewise. + * gfortran.dg/repeat_1.f90: Likewise. + * gfortran.dg/repeat_2.f90: Likewise. + * gfortran.dg/repeat_3.f90: Likewise. + * gfortran.dg/repeat_6.f90: Likewise. + * gfortran.dg/reshape-alloc.f90: Likewise. + * gfortran.dg/reshape-complex.f90: Likewise. + * gfortran.dg/reshape.f90: Likewise. + * gfortran.dg/reshape_2.f90: Likewise. + * gfortran.dg/reshape_7.f90: Likewise. + * gfortran.dg/reshape_empty_1.f03: Likewise. + * gfortran.dg/reshape_pad_1.f90: Likewise. + * gfortran.dg/reshape_rank7.f90: Likewise. + * gfortran.dg/reshape_transpose_1.f90: Likewise. + * gfortran.dg/reshape_zerosize_3.f90: Likewise. + * gfortran.dg/result_default_init_1.f90: Likewise. + * gfortran.dg/result_in_spec_1.f90: Likewise. + * gfortran.dg/result_in_spec_2.f90: Likewise. + * gfortran.dg/ret_array_1.f90: Likewise. + * gfortran.dg/ret_pointer_1.f90: Likewise. + * gfortran.dg/ret_pointer_2.f90: Likewise. + * gfortran.dg/rewind_1.f90: Likewise. + * gfortran.dg/round_1.f03: Likewise. + * gfortran.dg/round_2.f03: Likewise. + * gfortran.dg/round_3.f08: Likewise. + * gfortran.dg/round_4.f90: Likewise. + * gfortran.dg/rrspacing_1.f90: Likewise. + * gfortran.dg/runtime_warning_1.f90: Likewise. + * gfortran.dg/same_type_as_2.f03: Likewise. + * gfortran.dg/save_1.f90: Likewise. + * gfortran.dg/save_5.f90: Likewise. + * gfortran.dg/save_6.f90: Likewise. + * gfortran.dg/scalar_mask_1.f90: Likewise. + * gfortran.dg/scalar_mask_2.f90: Likewise. + * gfortran.dg/scalarize_parameter_array_1.f90: Likewise. + * gfortran.dg/scale_1.f90: Likewise. + * gfortran.dg/scan_1.f90: Likewise. + * gfortran.dg/scan_2.f90: Likewise. + * gfortran.dg/secnds-1.f: Likewise. + * gfortran.dg/secnds.f: Likewise. + * gfortran.dg/select_1.f90: Likewise. + * gfortran.dg/select_2.f90: Likewise. + * gfortran.dg/select_3.f90: Likewise. + * gfortran.dg/select_5.f90: Likewise. + * gfortran.dg/select_char_1.f90: Likewise. + * gfortran.dg/select_char_2.f90: Likewise. + * gfortran.dg/select_type_13.f03: Likewise. + * gfortran.dg/select_type_14.f03: Likewise. + * gfortran.dg/select_type_15.f03: Likewise. + * gfortran.dg/select_type_19.f03: Likewise. + * gfortran.dg/select_type_2.f03: Likewise. + * gfortran.dg/select_type_26.f03: Likewise. + * gfortran.dg/select_type_27.f03: Likewise. + * gfortran.dg/select_type_28.f03: Likewise. + * gfortran.dg/select_type_3.f03: Likewise. + * gfortran.dg/select_type_35.f03: Likewise. + * gfortran.dg/select_type_36.f03: Likewise. + * gfortran.dg/select_type_37.f03: Likewise. + * gfortran.dg/select_type_39.f03: Likewise. + * gfortran.dg/select_type_4.f90: Likewise. + * gfortran.dg/select_type_5.f03: Likewise. + * gfortran.dg/select_type_6.f03: Likewise. + * gfortran.dg/select_type_7.f03: Likewise. + * gfortran.dg/select_type_8.f03: Likewise. + * gfortran.dg/selected_char_kind_1.f90: Likewise. + * gfortran.dg/selected_char_kind_4.f90: Likewise. + * gfortran.dg/selected_kind_1.f90: Likewise. + * gfortran.dg/selected_real_kind_2.f90: Likewise. + * gfortran.dg/shape_2.f90: Likewise. + * gfortran.dg/shape_4.f90: Likewise. + * gfortran.dg/shape_5.f90: Likewise. + * gfortran.dg/shape_7.f90: Likewise. + * gfortran.dg/shape_8.f90: Likewise. + * gfortran.dg/shape_9.f90: Likewise. + * gfortran.dg/shift-kind_2.f90: Likewise. + * gfortran.dg/shiftalr_1.F90: Likewise. + * gfortran.dg/shiftalr_2.F90: Likewise. + * gfortran.dg/simpleif_1.f90: Likewise. + * gfortran.dg/simplify_argN_1.f90: Likewise. + * gfortran.dg/simplify_cshift_1.f90: Likewise. + * gfortran.dg/simplify_cshift_4.f90: Likewise. + * gfortran.dg/simplify_eoshift_1.f90: Likewise. + * gfortran.dg/simplify_modulo.f90: Likewise. + * gfortran.dg/single_char_string.f90: Likewise. + * gfortran.dg/size_dim.f90: Likewise. + * gfortran.dg/size_optional_dim_1.f90: Likewise. + * gfortran.dg/sizeof.f90: Likewise. + * gfortran.dg/sizeof_4.f90: Likewise. + * gfortran.dg/slash_1.f90: Likewise. + * gfortran.dg/sms-1.f90: Likewise. + * gfortran.dg/sms-2.f90: Likewise. + * gfortran.dg/spec_expr_7.f90: Likewise. + * gfortran.dg/specifics_1.f90: Likewise. + * gfortran.dg/spellcheck-procedure_1.f90: Likewise. + * gfortran.dg/spellcheck-procedure_2.f90: Likewise. + * gfortran.dg/spread_init_expr.f03: Likewise. + * gfortran.dg/spread_scalar_source.f90: Likewise. + * gfortran.dg/spread_shape_1.f90: Likewise. + * gfortran.dg/stat_1.f90: Likewise. + * gfortran.dg/stat_2.f90: Likewise. + * gfortran.dg/stfunc_1.f90: Likewise. + * gfortran.dg/stfunc_4.f90: Likewise. + * gfortran.dg/stfunc_6.f90: Likewise. + * gfortran.dg/storage_size_1.f08: Likewise. + * gfortran.dg/storage_size_3.f08: Likewise. + * gfortran.dg/storage_size_4.f90: Likewise. + * gfortran.dg/streamio_1.f90: Likewise. + * gfortran.dg/streamio_10.f90: Likewise. + * gfortran.dg/streamio_11.f90: Likewise. + * gfortran.dg/streamio_12.f90: Likewise. + * gfortran.dg/streamio_13.f90: Likewise. + * gfortran.dg/streamio_14.f90: Likewise. + * gfortran.dg/streamio_15.f90: Likewise. + * gfortran.dg/streamio_16.f90: Likewise. + * gfortran.dg/streamio_17.f90: Likewise. + * gfortran.dg/streamio_2.f90: Likewise. + * gfortran.dg/streamio_3.f90: Likewise. + * gfortran.dg/streamio_4.f90: Likewise. + * gfortran.dg/streamio_5.f90: Likewise. + * gfortran.dg/streamio_6.f90: Likewise. + * gfortran.dg/streamio_7.f90: Likewise. + * gfortran.dg/streamio_8.f90: Likewise. + * gfortran.dg/streamio_9.f90: Likewise. + * gfortran.dg/string_0xfe_0xff_1.f90: Likewise. + * gfortran.dg/string_4.f90: Likewise. + * gfortran.dg/string_array_constructor_2.f90: Likewise. + * gfortran.dg/string_assign_2.f90: Likewise. + * gfortran.dg/string_compare_1.f90: Likewise. + * gfortran.dg/string_compare_2.f90: Likewise. + * gfortran.dg/string_compare_3.f90: Likewise. + * gfortran.dg/string_ctor_1.f90: Likewise. + * gfortran.dg/string_length_1.f90: Likewise. + * gfortran.dg/string_length_2.f90: Likewise. + * gfortran.dg/string_length_3.f90: Likewise. + * gfortran.dg/string_length_4.f90: Likewise. + * gfortran.dg/string_null_compare_1.f: Likewise. + * gfortran.dg/string_pad_trunc.f90: Likewise. + * gfortran.dg/structure_constructor_1.f03: Likewise. + * gfortran.dg/structure_constructor_11.f90: Likewise. + * gfortran.dg/structure_constructor_13.f03: Likewise. + * gfortran.dg/structure_constructor_2.f03: Likewise. + * gfortran.dg/structure_constructor_5.f03: Likewise. + * gfortran.dg/submodule_1.f08: Likewise. + * gfortran.dg/submodule_11.f08: Likewise. + * gfortran.dg/submodule_14.f08: Likewise. + * gfortran.dg/submodule_15.f08: Likewise. + * gfortran.dg/submodule_17.f08: Likewise. + * gfortran.dg/submodule_18.f08: Likewise. + * gfortran.dg/submodule_19.f08: Likewise. + * gfortran.dg/submodule_2.f08: Likewise. + * gfortran.dg/submodule_27.f08: Likewise. + * gfortran.dg/submodule_28.f08: Likewise. + * gfortran.dg/submodule_29.f08: Likewise. + * gfortran.dg/submodule_30.f08: Likewise. + * gfortran.dg/submodule_6.f08: Likewise. + * gfortran.dg/submodule_7.f08: Likewise. + * gfortran.dg/submodule_8.f08: Likewise. + * gfortran.dg/subnormal_1.f90: Likewise. + * gfortran.dg/subref_array_pointer_1.f90: Likewise. + * gfortran.dg/subref_array_pointer_2.f90: Likewise. + * gfortran.dg/subref_array_pointer_4.f90: Likewise. + * gfortran.dg/substr_2.f: Likewise. + * gfortran.dg/substr_3.f: Likewise. + * gfortran.dg/substr_4.f: Likewise. + * gfortran.dg/substr_5.f90: Likewise. + * gfortran.dg/substr_6.f90: Likewise. + * gfortran.dg/substr_alloc_string_comp_1.f90: Likewise. + * gfortran.dg/sum_init_expr.f03: Likewise. + * gfortran.dg/sum_zero_array_1.f90: Likewise. + * gfortran.dg/system_clock_3.f08: Likewise. + * gfortran.dg/t_editing.f: Likewise. + * gfortran.dg/team_change_1.f90: Likewise. + * gfortran.dg/team_end_1.f90: Likewise. + * gfortran.dg/team_number_1.f90: Likewise. + * gfortran.dg/temporary_1.f90: Likewise. + * gfortran.dg/test_com_block.f90: Likewise. + * gfortran.dg/test_only_clause.f90: Likewise. + * gfortran.dg/tiny_1.f90: Likewise. + * gfortran.dg/tiny_2.f90: Likewise. + * gfortran.dg/tl_editing.f90: Likewise. + * gfortran.dg/transfer_array_intrinsic_1.f90: Likewise. + * gfortran.dg/transfer_array_intrinsic_2.f90: Likewise. + * gfortran.dg/transfer_array_intrinsic_3.f90: Likewise. + * gfortran.dg/transfer_array_intrinsic_4.f90: Likewise. + * gfortran.dg/transfer_assumed_size_1.f90: Likewise. + * gfortran.dg/transfer_class_2.f90: Likewise. + * gfortran.dg/transfer_intrinsic_2.f90: Likewise. + * gfortran.dg/transfer_intrinsic_3.f90: Likewise. + * gfortran.dg/transfer_intrinsic_5.f90: Likewise. + * gfortran.dg/transfer_resolve_1.f90: Likewise. + * gfortran.dg/transfer_simplify_1.f90: Likewise. + * gfortran.dg/transfer_simplify_10.f90: Likewise. + * gfortran.dg/transfer_simplify_11.f90: Likewise. + * gfortran.dg/transfer_simplify_2.f90: Likewise. + * gfortran.dg/transfer_simplify_3.f90: Likewise. + * gfortran.dg/transfer_simplify_4.f90: Likewise. + * gfortran.dg/transfer_simplify_8.f90: Likewise. + * gfortran.dg/transfer_simplify_9.f90: Likewise. + * gfortran.dg/transpose_1.f90: Likewise. + * gfortran.dg/transpose_3.f03: Likewise. + * gfortran.dg/transpose_4.f90: Likewise. + * gfortran.dg/transpose_conjg_1.f90: Likewise. + * gfortran.dg/transpose_intrinsic_func_call_1.f90: Likewise. + * gfortran.dg/transpose_optimization_2.f90: Likewise. + * gfortran.dg/trim_1.f90: Likewise. + * gfortran.dg/trim_optimize_1.f90: Likewise. + * gfortran.dg/trim_optimize_2.f90: Likewise. + * gfortran.dg/trim_optimize_3.f90: Likewise. + * gfortran.dg/trim_optimize_4.f90: Likewise. + * gfortran.dg/trim_optimize_5.f90: Likewise. + * gfortran.dg/trim_optimize_6.f90: Likewise. + * gfortran.dg/trim_optimize_7.f90: Likewise. + * gfortran.dg/trim_optimize_8.f90: Likewise. + * gfortran.dg/type_to_class_1.f03: Likewise. + * gfortran.dg/type_to_class_2.f03: Likewise. + * gfortran.dg/type_to_class_3.f03: Likewise. + * gfortran.dg/type_to_class_4.f03: Likewise. + * gfortran.dg/type_to_class_5.f03: Likewise. + * gfortran.dg/typebound_assignment_5.f03: Likewise. + * gfortran.dg/typebound_assignment_6.f03: Likewise. + * gfortran.dg/typebound_assignment_7.f90: Likewise. + * gfortran.dg/typebound_call_1.f03: Likewise. + * gfortran.dg/typebound_call_13.f03: Likewise. + * gfortran.dg/typebound_call_18.f03: Likewise. + * gfortran.dg/typebound_call_19.f03: Likewise. + * gfortran.dg/typebound_call_2.f03: Likewise. + * gfortran.dg/typebound_call_20.f03: Likewise. + * gfortran.dg/typebound_call_3.f03: Likewise. + * gfortran.dg/typebound_generic_5.f03: Likewise. + * gfortran.dg/typebound_generic_6.f03: Likewise. + * gfortran.dg/typebound_generic_9.f03: Likewise. + * gfortran.dg/typebound_operator_12.f03: Likewise. + * gfortran.dg/typebound_operator_13.f03: Likewise. + * gfortran.dg/typebound_operator_15.f90: Likewise. + * gfortran.dg/typebound_operator_20.f90: Likewise. + * gfortran.dg/typebound_operator_3.f03: Likewise. + * gfortran.dg/typebound_operator_6.f03: Likewise. + * gfortran.dg/typebound_operator_7.f03: Likewise. + * gfortran.dg/typebound_operator_8.f03: Likewise. + * gfortran.dg/typebound_operator_9.f03: Likewise. + * gfortran.dg/typebound_proc_19.f90: Likewise. + * gfortran.dg/typebound_proc_20.f90: Likewise. + * gfortran.dg/typebound_proc_23.f90: Likewise. + * gfortran.dg/typebound_proc_27.f03: Likewise. + * gfortran.dg/typebound_proc_35.f90: Likewise. + * gfortran.dg/typebound_proc_36.f90: Likewise. + * gfortran.dg/unf_io_convert_1.f90: Likewise. + * gfortran.dg/unf_io_convert_2.f90: Likewise. + * gfortran.dg/unf_io_convert_3.f90: Likewise. + * gfortran.dg/unf_io_convert_4.f90: Likewise. + * gfortran.dg/unf_read_corrupted_1.f90: Likewise. + * gfortran.dg/unf_read_corrupted_2.f90: Likewise. + * gfortran.dg/unf_short_record_1.f90: Likewise. + * gfortran.dg/unformatted_recl_1.f90: Likewise. + * gfortran.dg/unformatted_subrecord_1.f90: Likewise. + * gfortran.dg/unit_1.f90: Likewise. + * gfortran.dg/unlimited_fmt_1.f08: Likewise. + * gfortran.dg/unlimited_polymorphic_1.f03: Likewise. + * gfortran.dg/unlimited_polymorphic_13.f90: Likewise. + * gfortran.dg/unlimited_polymorphic_14.f90: Likewise. + * gfortran.dg/unlimited_polymorphic_17.f90: Likewise. + * gfortran.dg/unlimited_polymorphic_18.f90: Likewise. + * gfortran.dg/unlimited_polymorphic_20.f90: Likewise. + * gfortran.dg/unlimited_polymorphic_21.f90: Likewise. + * gfortran.dg/unlimited_polymorphic_22.f90: Likewise. + * gfortran.dg/unlimited_polymorphic_23.f90: Likewise. + * gfortran.dg/unlimited_polymorphic_24.f03: Likewise. + * gfortran.dg/unlimited_polymorphic_25.f90: Likewise. + * gfortran.dg/unlimited_polymorphic_26.f90: Likewise. + * gfortran.dg/unlimited_polymorphic_3.f03: Likewise. + * gfortran.dg/unlimited_polymorphic_5.f90: Likewise. + * gfortran.dg/unlimited_polymorphic_6.f90: Likewise. + * gfortran.dg/unpack_init_expr.f03: Likewise. + * gfortran.dg/use_10.f90: Likewise. + * gfortran.dg/use_11.f90: Likewise. + * gfortran.dg/use_13.f90: Likewise. + * gfortran.dg/use_24.f90: Likewise. + * gfortran.dg/use_27.f90: Likewise. + * gfortran.dg/use_5.f90: Likewise. + * gfortran.dg/use_allocated_1.f90: Likewise. + * gfortran.dg/use_only_1.f90: Likewise. + * gfortran.dg/use_only_4.f90: Likewise. + * gfortran.dg/use_rename_2.f90: Likewise. + * gfortran.dg/use_rename_4.f90: Likewise. + * gfortran.dg/used_dummy_types_1.f90: Likewise. + * gfortran.dg/used_interface_ref.f90: Likewise. + * gfortran.dg/used_types_5.f90: Likewise. + * gfortran.dg/utf8_1.f03: Likewise. + * gfortran.dg/utf8_2.f03: Likewise. + * gfortran.dg/value_1.f90: Likewise. + * gfortran.dg/value_2.f90: Likewise. + * gfortran.dg/value_4.f90: Likewise. + * gfortran.dg/value_6.f03: Likewise. + * gfortran.dg/value_7.f03: Likewise. + * gfortran.dg/value_test.f90: Likewise. + * gfortran.dg/vect/fast-math-pr33299.f90: Likewise. + * gfortran.dg/vect/no-fre-no-copy-prop-O3-pr51704.f90: Likewise. + * gfortran.dg/vect/pr60510.f: Likewise. + * gfortran.dg/vect/pr69882.f90: Likewise. + * gfortran.dg/vect/pr69980.f90: Likewise. + * gfortran.dg/vect/vect-5.f90: Likewise. + * gfortran.dg/vect/vect-alias-check-1.F90: Likewise. + * gfortran.dg/vector_subscript_1.f90: Likewise. + * gfortran.dg/vector_subscript_2.f90: Likewise. + * gfortran.dg/vector_subscript_3.f90: Likewise. + * gfortran.dg/vector_subscript_5.f90: Likewise. + * gfortran.dg/verify_2.f90: Likewise. + * gfortran.dg/volatile10.f90: Likewise. + * gfortran.dg/where_1.f90: Likewise. + * gfortran.dg/where_operator_assign_1.f90: Likewise. + * gfortran.dg/where_operator_assign_2.f90: Likewise. + * gfortran.dg/where_operator_assign_3.f90: Likewise. + * gfortran.dg/whole_file_13.f90: Likewise. + * gfortran.dg/whole_file_2.f90: Likewise. + * gfortran.dg/widechar_2.f90: Likewise. + * gfortran.dg/widechar_4.f90: Likewise. + * gfortran.dg/widechar_5.f90: Likewise. + * gfortran.dg/widechar_6.f90: Likewise. + * gfortran.dg/widechar_8.f90: Likewise. + * gfortran.dg/widechar_IO_1.f90: Likewise. + * gfortran.dg/widechar_IO_2.f90: Likewise. + * gfortran.dg/widechar_IO_3.f90: Likewise. + * gfortran.dg/widechar_IO_4.f90: Likewise. + * gfortran.dg/widechar_compare_1.f90: Likewise. + * gfortran.dg/widechar_intrinsics_10.f90: Likewise. + * gfortran.dg/widechar_intrinsics_4.f90: Likewise. + * gfortran.dg/widechar_intrinsics_5.f90: Likewise. + * gfortran.dg/widechar_intrinsics_6.f90: Likewise. + * gfortran.dg/widechar_intrinsics_7.f90: Likewise. + * gfortran.dg/widechar_intrinsics_8.f90: Likewise. + * gfortran.dg/widechar_intrinsics_9.f90: Likewise. + * gfortran.dg/widechar_select_1.f90: Likewise. + * gfortran.dg/winapi.f90: Likewise. + * gfortran.dg/write_0_pe_format.f90: Likewise. + * gfortran.dg/write_back.f: Likewise. + * gfortran.dg/write_check3.f90: Likewise. + * gfortran.dg/write_direct_eor.f90: Likewise. + * gfortran.dg/write_padding.f90: Likewise. + * gfortran.dg/write_recursive.f90: Likewise. + * gfortran.dg/write_rewind_1.f: Likewise. + * gfortran.dg/write_rewind_2.f: Likewise. + * gfortran.dg/write_zero_array.f90: Likewise. + * gfortran.dg/x_slash_1.f: Likewise. + * gfortran.dg/x_slash_2.f: Likewise. + * gfortran.dg/zero_array_components_1.f90: Likewise. + * gfortran.dg/zero_length_1.f90: Likewise. + * gfortran.dg/zero_length_2.f90: Likewise. + * gfortran.dg/zero_sized_1.f90: Likewise. + * gfortran.dg/zero_sized_3.f90: Likewise. + * gfortran.fortran-torture/compile/nested.f90: Likewise. + * gfortran.fortran-torture/compile/parameter_1.f90: Likewise. + * gfortran.fortran-torture/execute/a_edit_1.f90: Likewise. + * gfortran.fortran-torture/execute/adjustr.f90: Likewise. + * gfortran.fortran-torture/execute/allocate.f90: Likewise. + * gfortran.fortran-torture/execute/alternate_return.f90: Likewise. + * gfortran.fortran-torture/execute/args.f90: Likewise. + * gfortran.fortran-torture/execute/arithmeticif.f90: Likewise. + * gfortran.fortran-torture/execute/arrayarg.f90: Likewise. + * gfortran.fortran-torture/execute/arrayarg2.f90: Likewise. + * gfortran.fortran-torture/execute/arraysave.f90: Likewise. + * gfortran.fortran-torture/execute/assumed_size.f90: Likewise. + * gfortran.fortran-torture/execute/backspace.f90: Likewise. + * gfortran.fortran-torture/execute/bounds.f90: Likewise. + * gfortran.fortran-torture/execute/character_passing.f90: Likewise. + * gfortran.fortran-torture/execute/character_select_1.f90: Likewise. + * gfortran.fortran-torture/execute/cmplx.f90: Likewise. + * gfortran.fortran-torture/execute/common.f90: Likewise. + * gfortran.fortran-torture/execute/common_2.f90: Likewise. + * gfortran.fortran-torture/execute/common_init_1.f90: Likewise. + * gfortran.fortran-torture/execute/common_size.f90: Likewise. + * gfortran.fortran-torture/execute/constructor.f90: Likewise. + * gfortran.fortran-torture/execute/contained.f90: Likewise. + * gfortran.fortran-torture/execute/contained2.f90: Likewise. + * gfortran.fortran-torture/execute/contained_3.f90: Likewise. + * gfortran.fortran-torture/execute/csqrt_1.f90: Likewise. + * gfortran.fortran-torture/execute/data.f90: Likewise. + * gfortran.fortran-torture/execute/data_2.f90: Likewise. + * gfortran.fortran-torture/execute/data_3.f90: Likewise. + * gfortran.fortran-torture/execute/data_4.f90: Likewise. + * gfortran.fortran-torture/execute/dep_fails.f90: Likewise. + * gfortran.fortran-torture/execute/der_init.f90: Likewise. + * gfortran.fortran-torture/execute/der_init_2.f90: Likewise. + * gfortran.fortran-torture/execute/der_init_3.f90: Likewise. + * gfortran.fortran-torture/execute/der_init_4.f90: Likewise. + * gfortran.fortran-torture/execute/der_init_5.f90: Likewise. + * gfortran.fortran-torture/execute/der_io.f90: Likewise. + * gfortran.fortran-torture/execute/der_point.f90: Likewise. + * gfortran.fortran-torture/execute/der_type.f90: Likewise. + * gfortran.fortran-torture/execute/direct_io.f90: Likewise. + * gfortran.fortran-torture/execute/elemental.f90: Likewise. + * gfortran.fortran-torture/execute/empty_format.f90: Likewise. + * gfortran.fortran-torture/execute/emptyif.f90: Likewise. + * gfortran.fortran-torture/execute/entry_1.f90: Likewise. + * gfortran.fortran-torture/execute/entry_10.f90: Likewise. + * gfortran.fortran-torture/execute/entry_11.f90: Likewise. + * gfortran.fortran-torture/execute/entry_2.f90: Likewise. + * gfortran.fortran-torture/execute/entry_3.f90: Likewise. + * gfortran.fortran-torture/execute/entry_4.f90: Likewise. + * gfortran.fortran-torture/execute/entry_5.f90: Likewise. + * gfortran.fortran-torture/execute/entry_6.f90: Likewise. + * gfortran.fortran-torture/execute/entry_7.f90: Likewise. + * gfortran.fortran-torture/execute/entry_8.f90: Likewise. + * gfortran.fortran-torture/execute/entry_9.f90: Likewise. + * gfortran.fortran-torture/execute/enum_1.f90: Likewise. + * gfortran.fortran-torture/execute/enum_2.f90: Likewise. + * gfortran.fortran-torture/execute/enum_3.f90: Likewise. + * gfortran.fortran-torture/execute/enum_4.f90: Likewise. + * gfortran.fortran-torture/execute/equiv_1.f90: Likewise. + * gfortran.fortran-torture/execute/equiv_2.f90: Likewise. + * gfortran.fortran-torture/execute/equiv_3.f90: Likewise. + * gfortran.fortran-torture/execute/equiv_4.f90: Likewise. + * gfortran.fortran-torture/execute/equiv_init_1.f90: Likewise. + * gfortran.fortran-torture/execute/f2_edit_1.f90: Likewise. + * gfortran.fortran-torture/execute/forall.f90: Likewise. + * gfortran.fortran-torture/execute/forall_1.f90: Likewise. + * gfortran.fortran-torture/execute/forall_2.f90: Likewise. + * gfortran.fortran-torture/execute/forall_3.f90: Likewise. + * gfortran.fortran-torture/execute/forall_4.f90: Likewise. + * gfortran.fortran-torture/execute/forall_5.f90: Likewise. + * gfortran.fortran-torture/execute/forall_6.f90: Likewise. + * gfortran.fortran-torture/execute/forall_7.f90: Likewise. + * gfortran.fortran-torture/execute/function_module_1.f90: Likewise. + * gfortran.fortran-torture/execute/getarg_1.f90: Likewise. + * gfortran.fortran-torture/execute/hollerith.f90: Likewise. + * gfortran.fortran-torture/execute/in-pack.f90: Likewise. + * gfortran.fortran-torture/execute/initialization_1.f90: Likewise. + * gfortran.fortran-torture/execute/initializer.f90: Likewise. + * gfortran.fortran-torture/execute/inquire_1.f90: Likewise. + * gfortran.fortran-torture/execute/inquire_2.f90: Likewise. + * gfortran.fortran-torture/execute/inquire_3.f90: Likewise. + * gfortran.fortran-torture/execute/inquire_4.f90: Likewise. + * gfortran.fortran-torture/execute/inquire_5.f90: Likewise. + * gfortran.fortran-torture/execute/integer_select.f90: Likewise. + * gfortran.fortran-torture/execute/integer_select_1.f90: Likewise. + * gfortran.fortran-torture/execute/internal_write.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_abs.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_achar.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_aint_anint.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_anyall.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_associated.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_associated_2.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_bitops.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_count.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_cshift.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_dim.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_dotprod.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_dprod.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_dummy.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_eoshift.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_fraction_exponent.f90: + Likewise. + * gfortran.fortran-torture/execute/intrinsic_index.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_integer.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_leadz.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_len.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_matmul.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_merge.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_minmax.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_mmloc.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_mmloc_2.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_mmloc_3.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_mmloc_4.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_mmval.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_mod_ulo.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_mvbits.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_nearest.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_pack.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_present.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_product.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_rrspacing.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_scale.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_set_exponent.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_shape.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_si_kind.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_sign.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_size.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_spacing.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_spread.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_sr_kind.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_sum.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_trailz.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_transpose.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_trim.f90: Likewise. + * gfortran.fortran-torture/execute/intrinsic_unpack.f90: Likewise. + * gfortran.fortran-torture/execute/iolength_1.f90: Likewise. + * gfortran.fortran-torture/execute/iolength_2.f90: Likewise. + * gfortran.fortran-torture/execute/iolength_3.f90: Likewise. + * gfortran.fortran-torture/execute/list_read_1.f90: Likewise. + * gfortran.fortran-torture/execute/logical_select_1.f90: Likewise. + * gfortran.fortran-torture/execute/mainsub.f90: Likewise. + * gfortran.fortran-torture/execute/math.f90: Likewise. + * gfortran.fortran-torture/execute/module_init_1.f90: Likewise. + * gfortran.fortran-torture/execute/module_interface_2.f90: Likewise. + * gfortran.fortran-torture/execute/nan_inf_fmt.f90: Likewise. + * gfortran.fortran-torture/execute/nestcons.f90: Likewise. + * gfortran.fortran-torture/execute/nullarg.f90: Likewise. + * gfortran.fortran-torture/execute/optstring_1.f90: Likewise. + * gfortran.fortran-torture/execute/parameter_1.f90: Likewise. + * gfortran.fortran-torture/execute/parameter_2.f90: Likewise. + * gfortran.fortran-torture/execute/partparm.f90: Likewise. + * gfortran.fortran-torture/execute/plusconst_1.f90: Likewise. + * gfortran.fortran-torture/execute/power.f90: Likewise. + * gfortran.fortran-torture/execute/pr19269-1.f90: Likewise. + * gfortran.fortran-torture/execute/pr23373-1.f90: Likewise. + * gfortran.fortran-torture/execute/pr23373-2.f90: Likewise. + * gfortran.fortran-torture/execute/pr32140.f90: Likewise. + * gfortran.fortran-torture/execute/pr40021.f: Likewise. + * gfortran.fortran-torture/execute/pr43390.f90: Likewise. + * gfortran.fortran-torture/execute/pr54767.f90: Likewise. + * gfortran.fortran-torture/execute/pr57396.f90: Likewise. + * gfortran.fortran-torture/execute/procarg.f90: Likewise. + * gfortran.fortran-torture/execute/ptr.f90: Likewise. + * gfortran.fortran-torture/execute/random_1.f90: Likewise. + * gfortran.fortran-torture/execute/random_2.f90: Likewise. + * gfortran.fortran-torture/execute/random_init.f90: Likewise. + * gfortran.fortran-torture/execute/read_eof.f90: Likewise. + * gfortran.fortran-torture/execute/read_null_string.f90: Likewise. + * gfortran.fortran-torture/execute/retarray.f90: Likewise. + * gfortran.fortran-torture/execute/retarray_2.f90: Likewise. + * gfortran.fortran-torture/execute/save_1.f90: Likewise. + * gfortran.fortran-torture/execute/save_2.f90: Likewise. + * gfortran.fortran-torture/execute/scalarize.f90: Likewise. + * gfortran.fortran-torture/execute/scalarize2.f90: Likewise. + * gfortran.fortran-torture/execute/scalarize3.f90: Likewise. + * gfortran.fortran-torture/execute/select_1.f90: Likewise. + * gfortran.fortran-torture/execute/seq_io.f90: Likewise. + * gfortran.fortran-torture/execute/slash_edit.f90: Likewise. + * gfortran.fortran-torture/execute/spec_abs.f90: Likewise. + * gfortran.fortran-torture/execute/specifics.f90: Likewise. + * gfortran.fortran-torture/execute/st_function.f90: Likewise. + * gfortran.fortran-torture/execute/st_function_1.f90: Likewise. + * gfortran.fortran-torture/execute/st_function_2.f90: Likewise. + * gfortran.fortran-torture/execute/stack_varsize.f90: Likewise. + * gfortran.fortran-torture/execute/straret.f90: Likewise. + * gfortran.fortran-torture/execute/strarray_1.f90: Likewise. + * gfortran.fortran-torture/execute/strarray_2.f90: Likewise. + * gfortran.fortran-torture/execute/strarray_3.f90: Likewise. + * gfortran.fortran-torture/execute/strarray_4.f90: Likewise. + * gfortran.fortran-torture/execute/strcmp.f90: Likewise. + * gfortran.fortran-torture/execute/strcommon_1.f90: Likewise. + * gfortran.fortran-torture/execute/string.f90: Likewise. + * gfortran.fortran-torture/execute/strlen.f90: Likewise. + * gfortran.fortran-torture/execute/strret.f90: Likewise. + * gfortran.fortran-torture/execute/t_edit.f90: Likewise. + * gfortran.fortran-torture/execute/test_slice.f90: Likewise. + * gfortran.fortran-torture/execute/transfer1.f90: Likewise. + * gfortran.fortran-torture/execute/transfer2.f90: Likewise. + * gfortran.fortran-torture/execute/unopened_unit_1.f90: Likewise. + * gfortran.fortran-torture/execute/userop.f90: Likewise. + * gfortran.fortran-torture/execute/where17.f90: Likewise. + * gfortran.fortran-torture/execute/where18.f90: Likewise. + * gfortran.fortran-torture/execute/where19.f90: Likewise. + * gfortran.fortran-torture/execute/where20.f90: Likewise. + * gfortran.fortran-torture/execute/where21.f90: Likewise. + * gfortran.fortran-torture/execute/where_1.f90: Likewise. + * gfortran.fortran-torture/execute/where_10.f90: Likewise. + * gfortran.fortran-torture/execute/where_11.f90: Likewise. + * gfortran.fortran-torture/execute/where_14.f90: Likewise. + * gfortran.fortran-torture/execute/where_15.f90: Likewise. + * gfortran.fortran-torture/execute/where_16.f90: Likewise. + * gfortran.fortran-torture/execute/where_2.f90: Likewise. + * gfortran.fortran-torture/execute/where_3.f90: Likewise. + * gfortran.fortran-torture/execute/where_4.f90: Likewise. + * gfortran.fortran-torture/execute/where_5.f90: Likewise. + * gfortran.fortran-torture/execute/where_6.f90: Likewise. + * gfortran.fortran-torture/execute/where_7.f90: Likewise. + * gfortran.fortran-torture/execute/where_8.f90: Likewise. + * gfortran.fortran-torture/execute/write_a_1.f90: Likewise. + * gfortran.fortran-torture/execute/write_logical.f90: Likewise. + * gfortran.dg/extends_type_of_3.f90: Likewise. Adjust tree scans. + * gfortran.dg/inline_transpose_1.f90: Likewise. + +2018-02-17 Paul Thomas + + PR fortran/84115 + * gfortran.dg/associate_35.f90: Remove error, add STOP n and + change to dg-run. + +2018-02-16 Eric Botcazou + + PR ada/84277 + * gnat.dg/array11.adb (Array11): Tweak index and remove warning. + * gnat.dg/dispatch1.adb: Rename into... + * gnat.dg/disp1.adb: ...this. + * gnat.dg/dispatch1_p.ads: Rename into... + * gnat.dg/disp1_pkg.ads: ...this. + * gnat.dg/disp2.adb: Rename into... + * gnat.dg/dispatch2.adb: ...this. + * gnat.dg/dispatch2_p.ads: Rename into... + * gnat.dg/disp2_pkg.ads: ...this. + * gnat.dg/dispatch2_p.adb: Rename into... + * gnat.dg/disp2_pkg.adb: this. + * gnat.dg/generic_dispatch.adb: Rename into... + * gnat.dg/generic_disp.adb: this. + * gnat.dg/generic_dispatch_p.ads: Rename into... + * gnat.dg/generic_disp_pkg.ads: ...this. + * gnat.dg/generic_dispatch_p.adb: Rename into... + * gnat.dg/generic_disp_pkg.adb: ...this. + * gnat.dg/null_pointer_deref1.adb (Null_Pointer_Deref1): Robustify. + * gnat.dg/null_pointer_deref2.adb (Null_Pointer_Deref2): Likewise. + * gnat.dg/object_overflow1.adb: Tweak index. + * gnat.dg/object_overflow2.adb: Likewise. + * gnat.dg/object_overflow3.adb: Likewise. + * gnat.dg/object_overflow4.adb: Likewise. + * gnat.dg/object_overflow5.adb: Likewise. + +2018-02-16 Jakub Jelinek + + PR ipa/84425 + * gcc.c-torture/compile/pr84425.c: New test. + +2018-02-16 Marek Polacek + Jakub Jelinek + + PR c++/84192 + * g++.dg/cpp1y/constexpr-84192.C: New test. + +2018-02-16 Martin Sebor + + PR c++/79064 + * g++.dg/overload15.C: New test. + +2018-02-16 Yury Gribov + + PR target/81535 + * gcc.dg/pr56727-1.c: Prevent tailcalls and update for powerpc*-*-*. + * gcc.dg/pr56727-2.c: Ditto. + * gcc.target/powerpc/pr79439.c: Renamed to... + * gcc.target/powerpc/pr79439-1.c: ...this. + * gcc.target/powerpc/pr79439-2.c: New test. + * gcc.target/powerpc/pr79439-3.c: New test. + +2018-02-16 Will Schmidt + + target/pr84371 + * gcc.target/powerpc/builtins-3-p8.c: Update stanzas. + * gcc.target/powerpc/builtins-3-p9.c: Update stanzas, Enhance test. + * gcc.target/powerpc/builtins-3-runnable.c: Update stanzas. + * gcc.target/powerpc/builtins-3-vec_reve_runnable.c: Same. + * gcc.target/powerpc/builtins-3.c: Same. + +2018-02-16 Nathan Sidwell + + * g++.old-deja/g++.jason/scoping15.C: Fix dg-warning. + +2018-02-16 Vladimir Makarov + + PR rtl-optimization/70023 + * gcc.target/i386/pr70023.c: New. + +2018-02-16 Carl Love + + * gcc.target/powerpc/p9-vinsert4b-1.c: Remove test file for non-ABI + tests. + * gcc.target/powerpc/p9-vinsert4b-2.c: Remove test file for non-ABI + tests. + +2018-02-16 Carl Love + + * gcc.target/powerpc/builtins-7-p9-runnable.c: New runnable test file + for the ABI definitions for vec_extract4b and vec_insert4b. + +2018-02-16 Nathan Sidwell + + * g++.old-deja/g++.jason/scoping15.C: Expect warnings. + * g++.old-deja/g++.mike/net43.C: Likewise. + +2018-02-16 Paolo Carlini + + PR c++/82468 + * g++.dg/cpp1z/class-deduction48.C: New. + +2018-02-16 Nathan Sidwell + + PR c++/84375 + * g++.dg/lookup/pr84375.C: New. + +2018-02-14 Oleg Endo + + PR target/83831 + * gcc.target/rx/pr83831.c (test_3, test_6): Adjust test cases. + +2018-02-16 Richard Biener + + PR tree-optimization/84417 + * gcc.dg/torture/pr84417.c: New testcase. + +2018-02-16 Jakub Jelinek + + PR target/84272 + * g++.dg/opt/pr84272.C: New test. + + PR rtl-optimization/83723 + * gcc.dg/pr83723.c: New test. + +2018-02-16 Richard Biener + + PR tree-optimization/84399 + * gcc.dg/graphite/pr84399.c: New testcase. + +2018-02-16 Richard Biener + + PR tree-optimization/84190 + * g++.dg/torture/pr84190.C: New testcase. + +2018-02-15 Martin Sebor + + * gcc.dg/lto/README (dg-lto-warning, dg-lto-message): Document new + directives. + +2018-02-15 Janus Weil + + PR fortran/84409 + * gfortran.dg/dtio_21.f03: Add an error message. + * gfortran.dg/dtio_22.f90: Fix invalid test case. + +2018-02-15 Thomas Koenig + + PR fortran/84381 + * gfortran.dg/stop_shouldfail.f90: New test. + +2018-02-15 Paolo Carlini + + PR c++/84330 + * g++.dg/concepts/pr84330.C: New. + +2018-02-15 Tom de Vries + + * gcc.dg/Wstringop-overflow-3.c: Require effective target alloca. + +2018-02-15 Tom de Vries + + * gcc.c-torture/compile/pr84136.c: Require effective target + indirect_jumps. + +2018-02-15 Jakub Jelinek + + PR tree-optimization/84383 + * gcc.c-torture/compile/pr84383.c: New test. + + PR tree-optimization/84334 + * gcc.dg/pr84334.c: New test. + +2018-02-14 Carl Love + + * gcc.target/powerpc/builtins-4-int128-runnable.c + (dg-require-effective-target): Change vsx_hw to p8vector_hw. + (dg-options): Change -maltivec -mvsx to -mpower8-vector. + +2018-02-14 Martin Sebor + + PR tree-optimization/83698 + * gcc.dg/Wrestrict-7.c: New test. + * c-c++-common/Wrestrict.c: Adjust expected values for strcat. + * gcc.target/i386/chkp-stropt-17.c: Same. + +2018-02-14 Martin Sebor + + PR c/84108 + * gcc.dg/Wattributes-8.c: New test. + +2018-02-14 Janus Weil + + PR fortran/84385 + * gfortran.dg/allocate_with_source_22.f03: Fix invalid test case. + * gfortran.dg/allocate_with_source_23.f90: Ditto. + * gfortran.dg/select_type_1.f03: Extend test case. + +2017-02-14 Uros Bizjak + + * gcc.target/i386/pr57193.c (dg-do): Remove target selector. + (dg-options): Use -O2 -msse2 -mno-sse3. + +2018-02-14 Kelvin Nilsen + + * gcc.dg/vmx/extract-be-order.c: Disable -maltivec=be warning so + this test case still works ok. + * gcc.dg/vmx/extract-vsx-be-order.c: Likewise. + * gcc.dg/vmx/insert-be-order.c: Likewise. + * gcc.dg/vmx/insert-vsx-be-order.c: Likewise. + * gcc.dg/vmx/ld-be-order.c: Likewise. + * gcc.dg/vmx/ld-vsx-be-order.c: Likewise. + * gcc.dg/vmx/lde-be-order.c: Likewise. + * gcc.dg/vmx/ldl-be-order.c: Likewise. + * gcc.dg/vmx/ldl-vsx-be-order.c: Likewise. + * gcc.dg/vmx/merge-be-order.c: Likewise. + * gcc.dg/vmx/merge-vsx-be-order.c: Likewise. + * gcc.dg/vmx/mult-even-odd-be-order.c: Likewise. + * gcc.dg/vmx/pack-be-order.c: Likewise. + * gcc.dg/vmx/perm-be-order.c: Likewise. + * gcc.dg/vmx/splat-be-order.c: Likewise. + * gcc.dg/vmx/splat-vsx-be-order.c: Likewise. + * gcc.dg/vmx/st-be-order.c: Likewise. + * gcc.dg/vmx/st-vsx-be-order.c: Likewise. + * gcc.dg/vmx/ste-be-order.c: Likewise. + * gcc.dg/vmx/stl-be-order.c: Likewise. + * gcc.dg/vmx/stl-vsx-be-order.c: Likewise. + * gcc.dg/vmx/sum2s-be-order.c: Likewise. + * gcc.dg/vmx/unpack-be-order.c: Likewise. + * gcc.dg/vmx/vsums-be-order.c: Likewise. + * gcc.target/powerpc/vec-setup-be-long.c: Likewise. + +2018-02-14 Paolo Carlini + + PR c++/84350 + * g++.dg/cpp0x/auto49.C: New. + +2018-02-14 Nathan Sidwell + + * g++.dg/template/instantiate5.C: Adjust required-from loc. + +2018-02-14 Will Schmidt + + * gcc.target/powerpc/altivec-consts.c: Update compile stanzas. + * gcc.target/powerpc/le-altivec-consts.c: Same. + +2018-02-14 Will Schmidt + + PR target/84220 + * gcc.target/powerpc/pr84220-sld.c: New test. + * gcc.target/powerpc/pr84220-sld2.c: New test. + * gcc.target/powerpc/pr84220-sldw.c: New test. + * gcc.target/powerpc/pr84220-xxperm.c: New test. + * gcc.target/powerpc/pr84220-xxsld.c: New test. + +2018-02-14 Igor Tsimbalist + + PR target/84239 + * gcc.target/i386/cet-intrin-3.c: Use new _get_ssp and + _inc_ssp intrinsics. + * gcc.target/i386/cet-intrin-4.c: Likewise. + * gcc.target/i386/cet-rdssp-1.c: Remove argument from + __builtin_ia32_rdssp[d|q]. + +2018-02-14 Richard Sandiford + + PR tree-optimization/84357 + * gcc.dg/vect/pr84357.c: New test. + +2018-02-14 Oleg Endo + + PR target/83831 + * gcc.target/rx/pr83831.c: New tests. + +2018-02-14 Jozef Lawrynowicz + + PR target/79242 + * gcc.target/msp430/pr79242.c: New test. + +2018-02-13 Peter Bergner + + PR target/84372 + * gcc.target/powerpc/lvsl-lvsr.c: Also match lxv when compiling + with -mcpu=power9. + +2018-02-13 Peter Bergner + + PR target/84279 + * g++.dg/pr84279.C: New test. + +2018-02-13 Segher Boessenkool + + PR rtl-optimization/84169 + * gcc.c-torture/execute/pr84169.c: New. + +2018-02-13 Peter Bergner + + PR target/84370 + * gcc.target/powerpc/builtins-3-p9-runnable.c: Remove deprecated option. + +2018-02-13 Peter Bergner + + PR target/84365 + * gcc.target/powerpc/altivec-7-le.c: Also match lxv when compiling + with -mcpu=power9. + +2018-02-13 Jakub Jelinek + + PR c++/84364 + * g++.dg/warn/effc4.C: New test. + +2018-02-13 Paolo Carlini + + PR c++/84333 + * g++.dg/template/sizeof16.C: New. + * g++.dg/template/sizeof17.C: Likewise. + +2018-02-13 Janus Weil + + PR fortran/84313 + * gfortran.dg/proc_ptr_common_1.f90: Fix invalid test case, + add necessary compiler options. + * gfortran.dg/proc_ptr_common_2.f90: Add missing error message. + +2018-02-13 Jakub Jelinek + + PR c/82210 + * gcc.c-torture/execute/pr82210.c: New test. + + PR middle-end/84309 + * gcc.dg/pr84309-2.c: New test. + +2018-02-12 Richard Sandiford + + PR tree-optimization/84321 + * gcc.dg/pr84321.c: New test. + +2018-02-13 Vladimir Makarov + + PR target/84359 + * gcc.target/i386/pr57193.c: Add -march=x86-64. + +2018-02-13 Paolo Bonzini + + PR sanitizer/84340 + * gcc.dg/asan/pr84307.c: Remove test. + +2018-02-13 Sebastian Perta + + * gcc.target/rl78/test_auto_vector.c: New test. + +2018-02-13 Richard Sandiford + + PR c/84305 + * gcc.c-torture/compile/pr84305.c: New test. + +2018-02-13 Jakub Jelinek + + PR target/84335 + * gcc.target/i386/pr84335.c: New test. + + PR tree-optimization/84339 + * gcc.c-torture/execute/pr84339.c: New test. + + PR middle-end/84309 + * gcc.dg/pr84309.c: New test. + * gcc.target/i386/pr84309.c: New test. + + PR target/84336 + * gcc.target/i386/pr84336.c: New test. + +2018-02-12 Jakub Jelinek + + PR c++/84341 + * c-c++-common/gomp/pr84341.c: New test. + +2018-02-12 Thomas Koenig + + PR fortran/68746 + * gfortran.dg/read_dir.f90: Re-add dg-do run. + +2018-02-12 Thomas Koenig + + PR fortran/68746 + * gfortran.dg/read_dir.f90: Remove xfails. Also allow iostat + of zero for read. + +2018-02-12 Jeff Law + + * gcc.c-torture/compile/reg-args-size.c: New test. + +2018-02-12 Carl Love + + * gcc.target/powerpc/builtins-4-runnable.c (main): Move int128 and + uint128 tests to new testfile. + * gcc.target/powerpc/builtins-4-int128-runnable.c: New testfile for + int128 and uint128 tests. + * gcc.target/powerpc/powerpc.exp: Add builtins-4-int128-runnable.c to + list of torture tests. + +2018-02-12 Janus Weil + + PR fortran/84273 + * gfortran.dg/proc_ptr_47.f90: Fix invalid test case. + * gfortran.dg/proc_ptr_comp_pass_4.f90: Fix and extend test case. + +2018-02-12 Tamar Christina + + PR target/82641 + * gcc.target/arm/pragma_arch_switch_2.c: Use armv5te. + +2018-02-12 Paolo Bonzini + + PR sanitizer/84307 + * gcc.dg/asan/pr84307.c: New test. + +2018-02-12 Nathan Sidwell + + * g++.dg/parse/pr84263.C: New. + +2018-02-12 Paolo Carlini + + PR c++/79626 + * g++.dg/template/crash129.C: New. + +2018-02-12 Olga Makhotina + + PR target/83828 + * gcc.target/i386/avx512bitalg-vpopcntb-1.c: Fix test. + * gcc.target/i386/avx512bitalg-vpopcntw-1.c: Ditto. + * gcc.target/i386/avx512bitalg-vpshufbitqmb-1.c: Ditto. + * gcc.target/i386/avx512vpopcntdq-vpopcntd-1.c: Ditto. + * gcc.target/i386/avx512vpopcntdq-vpopcntq-1.c: Ditto. + +2018-02-12 Olga Makhotina + + * gcc.target/i386/avx512f-vscalefsd-1.c (_mm_mask_scalef_round_sd, + _mm_maskz_scalef_round_sd): Test new intrinsics. + * gcc.target/i386/avx512f-vscalefsd-2.c (_mm_scalef_round_sd, + (_mm_mask_scalef_round_sd, _mm_maskz_scalef_round_sd): Test new + intrinsics. + * gcc.target/i386/avx512f-vscalefss-1.c (_mm_mask_scalef_round_ss, + _mm_maskz_scalef_round_ss): Test new intrinsics. + * gcc.target/i386/avx512f-vscalefss-2.c (_mm_scalef_round_ss, + _mm_mask_scalef_round_ss, _mm_maskz_scalef_round_ss): Test new + intrinsics. + * gcc.target/i386/avx-1.c (__builtin_ia32_scalefsd_round, + __builtin_ia32_scalefss_round): Remove builtin. + (__builtin_ia32_scalefsd_mask_round, + __builtin_ia32_scalefss_mask_round): Test new builtin. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + +2018-02-12 Olga Makhotina + + * gcc.target/i386/avx512f-vsqrtsd-1.c (_mm_mask_sqrt_round_sd) + (_mm_maskz_sqrt_round_sd): Test new intrinsics. + * gcc.target/i386/avx512f-vsqrtsd-2.c (_mm_sqrt_round_sd) + (_mm_mask_sqrt_round_sd, _mm_maskz_sqrt_round_sd): Test new intrinsics. + * gcc.target/i386/avx512f-vsqrtss-1.c (_mm_mask_sqrt_round_ss) + (_mm_maskz_sqrt_round_ss): Test new intrinsics. + * gcc.target/i386/avx512f-vsqrtss-2.c (_mm_sqrt_round_ss) + (_mm_mask_sqrt_round_ss,      _mm_maskz_sqrt_round_ss): Test new + intrinsics. + * gcc.target/i386/avx-1.c (__builtin_ia32_sqrtsd_round) + (__builtin_ia32_sqrtss_round): Remove builtins. + (__builtin_ia32_sqrtsd_mask_round) + (__builtin_ia32_sqrtss_mask_round): Test new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + +2018-02-11 Francois-Xavier Coudert + + PR fortran/35299 + * gfortran.dg/statement_function_3.f: New test. + +2018-02-11 Steven G. Kargl + + PR fortran/54223 + PR fortran/84276 + * gfortran.dg/statement_function_1.f90: New test. + * gfortran.dg/statement_function_2.f90: New test. + +2018-02-11 Paul Thomas + + PR fortran/84074 + * gfortran.dg/type_to_class_5.f03: New test. + +2018-02-10 Paul Thomas + + PR fortran/56691 + * gfortran.dg/type_to_class_4.f03: New test. + +2018-02-10 Alan Modra + + PR target/84300 + * gcc.dg/pr84300.c: New. + +2018-02-10 Jakub Jelinek + + PR sanitizer/83987 + * g++.dg/ubsan/pr83987-2.C: New test. + +2018-02-09 Sebastian Perta + + * gcc.target/rx/movsicc.c: New test. + +2018-02-09 Peter Bergner + + PR target/83926 + * gcc.target/powerpc/pr83926.c: Filter out gimple folding disabled + message. + +2018-02-09 Will Schmidt + + * gcc.target/powerpc/vsx-vector-6-le.c: Update CPU target. + * gcc.target/powerpc/vsx-vector-6-le.p9.c: New. + +2018-02-09 Nathan Sidwell + + PR c/84293 + * c-c++-common/pr84293.h: New. + * c-c++-common/pr84293.c: New. + +2018-02-09 Vladimir Makarov + + PR rtl-optimization/57193 + * gcc.target/i386/pr57193.c: New. + +2018-02-09 Jakub Jelinek + + PR target/84226 + * gcc.target/powerpc/pr84226.c: New test. + +2018-02-09 Peter Bergner + + * gcc.target/powerpc/builtins-1-be.c : Rename duplicate test + from this to... + : ...this. + +2018-02-09 Martin Sebor + + PR lto/84212 + * gcc.dg/lto/pr84212_0.c: New test file. + * gcc.dg/lto/pr84212_1.c: Same. + +2018-02-09 Peter Bergner + + PR target/83926 + * gcc.target/powerpc/pr83926.c: New test. + * gcc.target/powerpc/builtins-1-be.c: Filter out gimple folding disabled + message. Fix test for running in 32-bit mode. + +2018-02-09 Tamar Christina + + PR target/82641 + * gcc.target/arm/pragma_arch_switch_2.c: Use armv6 and armv5t. + +2018-02-09 Andreas Krebbel + + PR target/PR84295 + * gcc.target/s390/pr84295.c: New test. + +2018-02-09 Paolo Carlini + + PR c++/77522 + * g++.dg/cpp1y/lambda-init16.C: New. + +2018-02-09 Eric Botcazou + + * gnat.dg/sso8.adb: New test. + * gnat.dg/sso8_pkg.ads: New helper. + +2018-02-09 Richard Biener + + PR tree-optimization/84278 + * gcc.target/i386/pr84278.c: Adjust regex. + +2018-02-09 Jakub Jelinek + + PR tree-optimization/84232 + * gcc.dg/tree-ssa/ssa-dom-cse-2.c: Add -mtune-generic on x86. + + PR debug/84252 + * gcc.target/aarch64/pr84252.c: New test. + + PR middle-end/84237 + * gcc.dg/pr84237.c: New test. + +2018-02-09 Marek Polacek + Jakub Jelinek + + PR c++/83659 + * g++.dg/torture/pr83659.C: New test. + +2018-02-08 David Malcolm + + PR tree-optimization/84136 + * gcc.c-torture/compile/pr84136.c: New test. + +2018-02-08 Sergey Shalnov + + PR target/83008 + * gcc.target/i386/pr83008.c: New test. + +2018-02-08 Peter Bergner + + PR target/81143 + * gcc.target/powerpc/pr79799-2.c: Use __LITTLE_ENDIAN__. + +2018-02-08 Paolo Carlini + + PR c++/83806 + * g++.dg/warn/Wunused-parm-11.C: New. + +2018-02-08 Marek Polacek + + PR tree-optimization/84238 + * gcc.dg/Wstringop-overflow-3.c: New test. + +2018-02-08 Nathan Sidwell + + * g++.dg/cpp0x/initlist93.C: Adjust diagnostic. + +2018-02-08 Richard Sandiford + + PR tree-optimization/84265 + * gcc.dg/vect/pr84265.c: New test. + +2018-02-08 Richard Sandiford + + PR tree-optimization/81635 + * gcc.dg/vect/bb-slp-pr81635-3.c: New test. + * gcc.dg/vect/bb-slp-pr81635-4.c: Likewise. + +2018-02-08 Andreas Krebbel + + * gcc.target/s390/nobp-function-pointer-attr.c: New test. + * gcc.target/s390/nobp-function-pointer-nothunk.c: New test. + * gcc.target/s390/nobp-function-pointer-z10.c: New test. + * gcc.target/s390/nobp-function-pointer-z900.c: New test. + * gcc.target/s390/nobp-indirect-jump-attr.c: New test. + * gcc.target/s390/nobp-indirect-jump-inline-attr.c: New test. + * gcc.target/s390/nobp-indirect-jump-inline-z10.c: New test. + * gcc.target/s390/nobp-indirect-jump-inline-z900.c: New test. + * gcc.target/s390/nobp-indirect-jump-nothunk.c: New test. + * gcc.target/s390/nobp-indirect-jump-z10.c: New test. + * gcc.target/s390/nobp-indirect-jump-z900.c: New test. + * gcc.target/s390/nobp-return-attr-all.c: New test. + * gcc.target/s390/nobp-return-attr-neg.c: New test. + * gcc.target/s390/nobp-return-mem-attr.c: New test. + * gcc.target/s390/nobp-return-mem-nothunk.c: New test. + * gcc.target/s390/nobp-return-mem-z10.c: New test. + * gcc.target/s390/nobp-return-mem-z900.c: New test. + * gcc.target/s390/nobp-return-reg-attr.c: New test. + * gcc.target/s390/nobp-return-reg-mixed.c: New test. + * gcc.target/s390/nobp-return-reg-nothunk.c: New test. + * gcc.target/s390/nobp-return-reg-z10.c: New test. + * gcc.target/s390/nobp-return-reg-z900.c: New test. + * gcc.target/s390/nobp-table-jump-inline-z10.c: New test. + * gcc.target/s390/nobp-table-jump-inline-z900.c: New test. + * gcc.target/s390/nobp-table-jump-z10.c: New test. + * gcc.target/s390/nobp-table-jump-z900.c: New test. + +2018-02-08 Richard Biener + + PR tree-optimization/84233 + * g++.dg/torture/pr84233.C: New testcase. + +2018-02-08 Richard Biener + + PR tree-optimization/84278 + * gcc.target/i386/pr84278.c: New testcase. + +2018-02-08 Wilco Dijkstra + + PR rtl-optimization/84068 + PR rtl-optimization/83459 + * gcc.dg/pr84068.c: New test. + +2018-02-08 Richard Biener + + * g++.dg/vect/slp-pr56812.cc: Allow either basic-block or + loop vectorization to happen. + +2018-02-08 Paolo Carlini + + PR c++/83204 + * g++.dg/cpp0x/lambda/lambda-ice25.C: New. + +2018-02-07 Will Schmidt + + * gcc.target/powerpc/vsxcopy.c: Update scan-assembler stanzas. + +2018-02-07 Michael Meissner + + PR target/84154 + * gcc.target/powerpc/pr84154-1.c: New tests. + * gcc.target/powerpc/pr84154-2.c: Likewise. + * gcc.target/powerpc/pr84154-3.c: Likewise. + +2018-02-07 Will Schmidt + + * gcc.target/powerpc/builtins-mergew-mergeow.c: Update dg-requires. + +2018-02-07 Jakub Jelinek + + PR c++/84082 + * g++.dg/template/incomplete11.C: New test. + * g++.dg/parse/crash67.C: Expect an incomplete type diagnostics too. + +2018-02-07 Steven G. Kargl + + PR fortran/82994 + * gfortran.dg/deallocate_error_3.f90: New test. + * gfortran.dg/deallocate_error_4.f90: New test. + +2018-02-07 Thomas Koenig + + PR fortran/68560 + * gfortran.dg/shape_9.f90: New test. + +2018-02-07 Steven G. Kargl + + PR fortran/82049 + * gfortran.dg/assumed_charlen_parameter.f90: New test. + +2018-02-07 David Malcolm + + PR c++/81610 + PR c++/80567 + * g++.dg/spellcheck-reswords.C: New test case. + * g++.dg/spellcheck-stdlib.C: Remove xfail from dg-bogus + suggestion of "if". + +2018-02-07 Martin Liska + + PR c++/84059. + * g++.dg/ext/mv26.C: New test. + +2018-02-07 Tom de Vries + + * gcc.dg/pr83844.c: Require effective target alloca. + +2018-02-07 Tom de Vries + + * gcc.dg/torture/pr83055.c: Require effective target global_constructor. + +2018-02-07 H.J. Lu + + PR target/84243 + * gcc.target/i386/cet-intrin-4.c (dg-options): Use + -fcf-protection=return. + +2018-02-07 Tom de Vries + + PR libgomp/84217 + * c-c++-common/goacc/pr84217.c: New test. + * gfortran.dg/goacc/pr84217.f90: New test. + +2018-02-07 Richard Biener + + PR tree-optimization/84204 + * gcc.dg/graphite/pr84204.c: New testcase. + + PR tree-optimization/84205 + * gcc.dg/graphite/pr84205.c: New testcase. + + PR tree-optimization/84223 + * gfortran.dg/graphite/pr84223.f90: New testcase. + +2018-02-07 Paolo Carlini + + PR c++/71662 + * g++.dg/cpp0x/scoped_enum7.C: New. + +2018-02-07 Christophe Lyon + + PR tree-optimization/83008 + * gcc.dg/cse_recip.c: Add -fno-tree-slp-vectorize. + +2018-02-07 Jakub Jelinek + + PR tree-optimization/84235 + * gcc.c-torture/execute/ieee/pr84235.c: New test. + +2018-02-07 Rainer Orth + + PR testsuite/84243 + * c-c++-common/fcf-protection-6.c: Only pass -mshstk on x86 + targets. + * c-c++-common/fcf-protection-7.c: Likewise for -mibt. + +2018-02-06 Jakub Jelinek + + PR target/84146 + * gcc.target/i386/pr84146.c: New test. + +2018-02-06 Michael Collison + + * gcc.target/arm/pr7676.c: New testcase for incorrect splitting. + +2018-02-06 Bill Schmidt + + * gcc.target/powerpc/safe-indirect-jump-1.c: Detect deprecation + warning for -mno-speculate-indirect-jumps. + * gcc.target/powerpc/safe-indirect-jump-2.c: Likewise. + * gcc.target/powerpc/safe-indirect-jump-3.c: Likewise. + * gcc.target/powerpc/safe-indirect-jump-4.c: Likewise. + * gcc.target/powerpc/safe-indirect-jump-5.c: Likewise. + * gcc.target/powerpc/safe-indirect-jump-6.c: Likewise. + * gcc.target/powerpc/safe-indirect-jump-7.c: Likewise. + +2018-02-06 Igor Tsimbalist + + PR target/84145 + * c-c++-common/fcf-protection-1.c: Change a compared message. + * c-c++-common/fcf-protection-2.c: Likewise. + * c-c++-common/fcf-protection-3.c: Likewise. + * c-c++-common/fcf-protection-5.c: Likewise. + * c-c++-common/fcf-protection-6.c: New test. + * c-c++-common/fcf-protection-7.c: Likewise. + +2018-02-06 Marek Polacek + + PR tree-optimization/84228 + * c-c++-common/Wstringop-truncation-3.c: New test. + +2018-02-06 Tamar Christina + + PR target/82641 + * gcc.target/arm/pragma_arch_switch_2.c: New. + +2018-02-06 Rainer Orth + + PR target/79975 + * gcc.dg/rtl/x86_64/final.c: Add -fdwarf2-cfi-asm to dg-options. + +2018-02-05 Martin Sebor + + PR tree-optimization/83369 + * gcc.dg/Wnonnull.c: New test. + +2018-02-05 Richard Sandiford + + * lib/lto.exp (lto_handle_diagnostics): Remove messages_by_file + argument and use dg-messages-by-file instead. Expect it to be + an array rather than a dict. + (lto-link-and-maybe-run): Remove messages_by_file argument and + use an upvar for dg-messages-by-file. Update call to + lto_handle_diagnostics. + (lt-get-options): Treat dg-messages-by-file as an array + rather than a dict. + (lto-get-options-main): Likewise. Set the entry rather than appending. + (lto-execute): Treat dg-messages-by-file as an array rather than + a dict. Update call to lto-link-and-maybe-run. + +2018-02-05 Paolo Carlini + + PR c++/82782 + * g++.dg/cpp1z/inline-var4.C: New. + +2018-02-05 Martin Liska + + * c-c++-common/asan/pointer-compare-1.c: Adjust ASAN_OPTIONS + options. + * c-c++-common/asan/pointer-compare-2.c: Likewise. + * c-c++-common/asan/pointer-subtract-1.c: Likewise. + * c-c++-common/asan/pointer-subtract-2.c: Likewise. + * c-c++-common/asan/pointer-subtract-3.c: Likewise. + * c-c++-common/asan/pointer-subtract-4.c: Likewise. + * c-c++-common/asan/pointer-compare-3.c: New test. + +2018-02-05 Richard Sandiford + + * gcc.target/aarch64/sve/vcond_4.c: Remove XFAILs. + * gcc.target/aarch64/sve/vcond_5.c: Likewise. + +2018-02-05 Olga Makhotina + + * gcc.target/i386/avx512dq-vrangesd-1.c (_mm_mask_range_sd, + _mm_maskz_range_sd, _mm_mask_range_round_sd, + _mm_maskz_range_round_sd): Test new intrinsics. + * gcc.target/i386/avx512dq-vrangesd-2.c (_mm_range_sd, + _mm_mask_range_sd, _mm_maskz_range_sd, _mm_range_round_sd, + _mm_mask_range_round_sd, _mm_maskz_range_round_sd): Test new intrinsics. + * gcc.target/i386/avx512dq-vrangess-1.c (_mm_mask_range_ss, + _mm_maskz_range_ss, _mm_mask_range_round_ss, + _mm_maskz_range_round_ss): Test new intrinsics. + * gcc.target/i386/avx512dq-vrangess-2.c (_mm_range_ss, + _mm_mask_range_ss, _mm_maskz_range_ss, _mm_range_round_ss, + _mm_mask_range_round_ss, _mm_maskz_range_round_ss): Test new intrinsics. + * gcc.target/i386/avx-1.c (__builtin_ia32_rangesd128_round, + __builtin_ia32_rangess128_round): Remove builtins. + (__builtin_ia32_rangesd128_mask_round, + __builtin_ia32_rangess128_mask_round): Test new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + +2018-02-04 Jan Hubicka + + PR middle-end/79966 + * gfortran.dg/pr79966.f90: New testcase + +2018-02-04 Dominique d'Humieres + + PR fortran/84094 + * gfortran.dg/associate_23.f90: Fix invalid code. + * gfortran.dg/intrinsic_actual_4.f90: Likewise. + * gfortran.dg/matmul_3.f90: Likewise. + * gfortran.dg/transfer_array_intrinsic_2.f90: Likewise. + +2018-02-04 Paul Thomas + + PR fortran/84115 + * gfortran.dg/associate_34.f90: New test. + * gfortran.dg/associate_35.f90: New test. + +2018-02-03 Paul Thomas + + PR fortran/84141 + PR fortran/84155 + * gfortran.dg/pr84155.f90: New test. + +2017-02-02 Uros Bizjak + + * gfortran.dg/dec_parameter_1.f (sub1): Remove statement with no effect. + * gfortran.dg/dec_parameter_2.f90 (sub1): Ditto. + +2018-02-02 Will Schmidt + + * gcc.target/powerpc/vec-cmpne-long.c: Add p8vector_hw require to + dg-do run stanza. + +2018-02-02 Will Schmidt + + * gcc.target/powerpc/fold-vec-abs-int.p9.c: Add powerpc_p9vector_ok + requirement. + * gcc.target/powerpc/fold-vec-abs-int-fwrapv.p9.c: Same. + * gcc.target/powerpc/fold-vec-cmp-char.p9.c: Same. + * gcc.target/powerpc/fold-vec-neg-int.p9.c: Same. + +2018-02-02 Georg-Johann Lay + + PR testsuite/52641 + * gcc.c-torture/execute/pr83362.c: Make work for int16. + * gcc.dg/Wsign-conversion.c: Dito. + * gcc.dg/attr-alloc_size-4.c: Dito. + * gcc.dg/pr81020.c: Dito. + * gcc.dg/pr81192.c: Dito. + * gcc.dg/pr83463.c (dg-options): Add -Wno-pointer-to-int-cast. + * gcc.dg/attr-alloc_size-11.c: Also special-case avr. + * gcc.dg/pr83844.c: Restrict to int32plus. + * gcc.dg/attr-alloc_size-3.c: Restrict to size32plus. + * gcc.dg/tree-ssa/ldist-25.c: Dito. + * gcc.dg/tree-ssa/ldist-27.c: Dito. + * gcc.dg/tree-ssa/ldist-28.c: Dito. + * gcc.dg/tree-ssa/ldist-29.c: Dito. + * gcc.dg/tree-ssa/ldist-30.c: Dito. + * gcc.dg/tree-ssa/ldist-31.c: Dito. + * gcc.dg/tree-ssa/ldist-32.c: Dito. + * gcc.dg/tree-ssa/ldist-33.c: Dito. + * gcc.dg/tree-ssa/ldist-34.c: Dito. + * gcc.dg/tree-ssa/ldist-35.c: Dito. + * gcc.dg/tree-ssa/ldist-36.c: Dito. + +2018-02-02 Julia Koval + + * gcc.target/i386/funcspec-56.inc: Handle new march. + * g++.dg/ext/mv16.C: Ditto. + +2018-02-02 Georg-Johann Lay + + * lib/target-supports.exp + (check_effective_target_keeps_null_pointer_checks): No more + special-case avr. + * gcc.dg/tree-ssa/pr21086.c (dg-final): Special-case avr. + * gcc.dg/ifcvt-4.c: Skip avr. + * gcc.dg/pr53037-1.c: Dito. + * gcc.dg/pr53037-2.c: Dito. + * gcc.dg/pr53037-3.c: Dito. + * gcc.dg/pr63387-2.c: Dito. + * gcc.dg/pr63387.c: Dito. + * gcc.dg/sancov/cmp0.c: Dito. + * gcc.dg/tree-ssa/loop-interchange-1.c: Dito. + * gcc.dg/tree-ssa/loop-interchange-10.c: Dito. + * gcc.dg/tree-ssa/loop-interchange-11.c: Dito. + * gcc.dg/tree-ssa/loop-interchange-1b.c: Dito. + * gcc.dg/tree-ssa/loop-interchange-2.c: Dito. + * gcc.dg/tree-ssa/loop-interchange-3.c: Dito. + * gcc.dg/tree-ssa/loop-interchange-4.c: Dito. + * gcc.dg/tree-ssa/loop-interchange-5.c: Dito. + * gcc.dg/tree-ssa/loop-interchange-6.c: Dito. + * gcc.dg/tree-ssa/loop-interchange-7.c: Dito. + * gcc.dg/tree-ssa/loop-interchange-8.c: Dito. + * gcc.dg/tree-ssa/loop-interchange-9.c: Dito. + * gcc.dg/tree-ssa/pr82059.c: Dito. + * gcc.c-torture/execute/pr70460.c: Dito. + +2018-02-02 Georg-Johann Lay + + PR testsuite/52641 + * gcc.c-torture/execute/pr81913.c: Use types that also work for int16. + * gcc.c-torture/execute/20180112-1.c: Dito. + * gcc.c-torture/execute/pr81503.c: Dito. + * gcc.dg/store_merging_12.c: Dito. + * gcc.dg/tree-ssa/loop-niter-1.c: Dito. + * gcc.dg/tree-ssa/loop-niter-2.c: Dito. + * gcc.dg/tree-ssa/pr80898.c: Dito. + * gcc.dg/tree-ssa/pr82363.c: Dito. + * gcc.dg/utf16-4.c: Also allow "short unsigned int" in dg-warning. + * gcc.dg/tree-ssa/pr81346-5.c: Special-case int16. + * gcc.dg/tree-ssa/ssa-sink-11.c: Dito. + * gcc.dg/tree-ssa/ssa-sink-12.c: Dito. + * gcc.dg/torture/pr81814.c: Restrict to int32plus. + * gcc.dg/tree-ssa/pr80803.c: Dito. + * gcc.dg/tree-ssa/pr80898-2.c: Dito. + * gcc.dg/tree-ssa/pr81346-4.c: Dito. + * gcc.dg/tree-ssa/vrp114.c: Dito. + * gcc.dg/tree-ssa/pr82574.c: Restrict to size32plus. + * gcc.dg/tree-ssa/ssa-dom-thread-13.c: Dito. + * gcc.dg/tree-ssa/ssa-sink-15.c: Dito. + +2018-02-02 Igor Tsimbalist + + PR target/84066 + * gcc.target/i386/cet-sjlj-6a.c: New test. + * gcc.target/i386/cet-sjlj-6b.c: Likewise. + +2018-02-01 Marek Polacek + + PR c++/84125 + * g++.dg/cpp1y/lambda-generic-84125.C: New test. + +2018-01-30 Jeff Law + + PR target/84128 + * gcc.target/i386/pr84128.c: New test. + +2018-02-01 Georg-Johann Lay + + * gcc.dg/tree-ssa/vrp111.c (dg-options): Add + -fdelete-null-pointer-checks. + +2018-02-01 Paolo Carlini + + PR c++/83796 + * g++.dg/cpp0x/abstract-default1.C: New. + +2018-02-01 Richard Sandiford + + PR tree-optimization/81635 + * gcc.dg/vect/bb-slp-pr81635-1.c: New test. + * gcc.dg/vect/bb-slp-pr81635-2.c: Likewise. + +2018-02-01 Richard Sandiford + + PR target/83370 + * gcc.target/aarch64/pr83370.c: New. + +2018-02-01 Richard Biener + + * gcc.dg/graphite/pr35356-1.c: Adjust. + +2018-02-01 Richard Sandiford + + PR testsuite/83846 + * gcc.target/aarch64/sve/aarch64-sve.exp: Only do *_run tests + for ILP32. + * gcc.target/aarch64/sve/clastb_2_run.c (main): Use TYPE instead + of hard-coding the choice. + * gcc.target/aarch64/sve/clastb_4_run.c (main): Likewise. + * gcc.target/aarch64/sve/clastb_5_run.c (main): Likewise. + * gcc.target/aarch64/sve/clastb_3_run.c (main): Likewise. Generalize + memset call. + * gcc.target/aarch64/sve/const_pred_1.C: Include stdint.h and use + stdint.h types. + * gcc.target/aarch64/sve/const_pred_2.C: Likewise. + * gcc.target/aarch64/sve/const_pred_3.C: Likewise. + * gcc.target/aarch64/sve/const_pred_4.C: Likewise. + * gcc.target/aarch64/sve/load_const_offset_2.c: Likewise. + * gcc.target/aarch64/sve/logical_1.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_load_1.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_load_2.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_load_3.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_load_4.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_load_5.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_load_6.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_load_7.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_load_8.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_store_1.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_store_2.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_store_3.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_store_4.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_1.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_2.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_2_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_3.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_3_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_4.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_4_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_7.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_8.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_8_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_9.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_9_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_10.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_10_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_11.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_11_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_12.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_12_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_13.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_13_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_14.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_18.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_19.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_20.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_21.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_22.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_23.c: Likewise. + * gcc.target/aarch64/sve/popcount_1.c (popcount_64): Use + __builtin_popcountll rather than __builtin_popcountl. + +2018-02-01 Richard Sandiford + + * gcc.target/aarch64/sve/slp_2.c: Expect LD1RQ to be used instead + of LD1R[HWD] for multi-element constants on big-endian targets. + * gcc.target/aarch64/sve/slp_3.c: Likewise. + * gcc.target/aarch64/sve/slp_4.c: Likewise. + +2018-02-01 Richard Sandiford + + * gcc.target/aarch64/sve/slp_2.c: Expect LD1RQD rather than LD1RQB. + * gcc.target/aarch64/sve/slp_3.c: Expect LD1RQW rather than LD1RQB. + * gcc.target/aarch64/sve/slp_4.c: Expect LD1RQH rather than LD1RQB. + +2018-02-01 Jakub Jelinek + + PR tree-optimization/81661 + PR tree-optimization/84117 + * gcc.dg/pr81661.c: New test. + * gfortran.dg/pr84117.f90: New test. + +2018-02-01 Janne Blomqvist + + PR fortran/83705 + * gfortran.dg/repeat_7.f90: Catch warning message. + +2018-01-31 Ian Lance Taylor + + * go.go-torture/execute/printnil.go: New test. + +2018-01-31 Rainer Orth + + * lib/target-supports.exp (check_effective_target_comdat_group): + Allow for Solaris as comdat syntax. + + * g++.dg/debug/dwarf2/nested-4.C: Xfail scan-assembler-times on + Solaris with comdat_group support and as. + +2018-01-31 Marek Polacek + + PR c/81779 + * gcc.dg/pr81779.c: New test. + +2018-01-31 Jakub Jelinek + + PR fortran/84116 + * gfortran.dg/gomp/pr84116.f90: New test. + + PR c++/83993 + * g++.dg/init/pr83993-2.C: New test. + + PR c++/83993 + * g++.dg/init/pr83993-1.C: New test. + * g++.dg/cpp0x/pr83993.C: New test. + +2018-01-31 Paul Thomas + + PR fortran/84088 + * gfortran.dg/pr84088.f90: New test. + +2018-01-31 Vladimir Makarov + + PR target/82444 + * gcc.target/i386/pr82444.c: New. + +2018-01-31 Will Schmidt + + * gcc.target/powerpc/altivec-13.c: Remove VSX-requiring built-ins. + * gcc.target/powerpc/vsx-13.c: New. + +2018-01-31 Paolo Carlini + + PR c++/84092 + * g++.dg/cpp1y/var-templ57.C: New. + +2018-01-31 Marek Polacek + + PR c++/84138 + * g++.dg/diagnostic/pr84138.C: New test. + +2018-01-31 Janne Blomqvist + + PR fortran/78534 + * gfortran.dg/allocate_deferred_char_scalar_1.f03: Prune + -Wstringop-overflow warnings due to spurious warning with -O1. + * gfortran.dg/char_cast_1.f90: Update dump scan pattern. + * gfortran.dg/transfer_intrinsic_1.f90: Likewise. + +2018-01-31 Richard Biener + + PR tree-optimization/84132 + * g++.dg/torture/pr84132.C: New testcase. + +2018-01-31 Jan Hubicka + + * g++.dg/torture/pr81360.C: Drop unintended -O2 from dg-options and + dg-final scan. + +2018-01-31 Julia Koval + + PR target/83618 + * gcc.target/i386/rdpid.c: Remove "eax". + +2018-01-31 Kyrylo Tkachov + + PR tree-optimization/64946 + * gcc.target/aarch64/vect-abs-compile.c: XFAIL byte and half-word + scan-assembler checks. + +2018-01-31 Eric Botcazou + + * gcc.c-torture/execute/20180131-1.c: New test. + +2018-01-31 Claudiu Zissulescu + + * gcc.target/arc/taux-1.c: New test. + * gcc.target/arc/taux-2.c: Likewise. + +2018-01-31 Claudiu Zissulescu + + * gcc.target/arc/uncached.c: New test. + +2018-01-31 Rainer Orth + + PR lto/83954 + * gnat.dg/lto20.adb: Remove dg-excess-errors. + +2018-01-31 Jakub Jelinek + + PR preprocessor/69869 + * gcc.dg/cpp/trad/pr69869.c: New test. + + PR c/84100 + * gcc.dg/pr84100.c: New test. + +2018-01-30 Jeff Law + + PR target/84064 + * gcc.target/i386/pr84064: New test. + +2018-01-30 Thomas Koenig + + PR fortran/84134 + * gfortran.dg/data_implied_do_2.f90: New test. + +2018-01-30 Janus Weil + + * gfortran.dg/pr68318_1.f90: Add closing bracket in dejagnu directive. + +2018-01-30 Thomas Koenig + + PR fortran/84133 + * gfortran.dg/inline_matmul_21.f90: New test case. + +2018-01-30 Rainer Orth + + * g++.dg/torture/pr81360.C: Add -fdump-ipa-icf to dg-options. + +2018-01-30 Vladimir Makarov + + PR target/84112 + * gcc.target/powerpc/pr84112.c: New. + +2018-01-30 Jakub Jelinek + + PR rtl-optimization/83986 + * gcc.dg/pr83986.c: New test. + +2018-01-30 Bill Seurer + + PR 58684 + * gcc.dg/torture/inf-compare-1.c: Add xfail. + * gcc.dg/torture/inf-compare-2.c: Add xfail. + * gcc.dg/torture/inf-compare-3.c: Add xfail. + * gcc.dg/torture/inf-compare-4.c: Add xfail. + +2018-01-30 Jakub Jelinek + + PR tree-optimization/84111 + * gcc.c-torture/compile/pr84111.c: New test. + +2018-01-30 Jan Hubicka + + PR ipa/83179 + * gcc.dg/ipa/inline-2.c: Fix template. + * gcc.dg/ipa/inline-3.c: Fix template. + +2018-01-30 Jan Hubicka + + PR ipa/81360 + * g++.dg/torture/pr81360.C: New testcase. + +2018-01-30 Jan Hubicka + + PR lto/83954 + * gcc.dg/lto/pr83954.h: New testcase. + * gcc.dg/lto/pr83954_0.c: New testcase. + * gcc.dg/lto/pr83954_1.c: New testcase. + +2018-01-30 Rainer Orth + + PR bootstrap/84017 + * gcc.dg/debug/dwarf2/prod-options.c: Add -fno-merge-debug-strings + to dg-options. + Simplify DW_AT_producer scan. + +2018-01-30 Kyrylo Tkachov + + * gcc.dg/tree-ssa/ssa-dom-cse-2.c: XFAIL on !arm_neon arm targets. + +2018-01-30 Kirill Yukhin + + PR target/83828 + * gcc.target/i386/avx512bitalg-vpopcntb-1.c: Fix test. + * gcc.target/i386/avx512bitalg-vpopcntw-1.c: Ditto. + * gcc.target/i386/avx512bitalgvl-vpopcntb-1.c: Ditto. + * gcc.target/i386/avx512bitalgvl-vpopcntw-1.c: Ditto. + +2018-01-29 Jeff Law + + PR testsuite/81010 + * gcc.target/powerpc/pr56605.c: Update various dg- directives to + better match other tests which require vsx. Verify the zero + extension is part of the test in the combiner dump. + +2018-01-29 Marek Polacek + + PR c/83966 + * gcc.dg/format/Wsuggest-attribute-1.c: New test. + + PR c++/83996 + * g++.dg/ext/pr83996.C: New test. + +2018-01-29 Richard Biener + + PR tree-optimization/84057 + * gcc.dg/graphite/pr84057.c: New testcase. + +2018-01-29 Thomas Koenig + + PR fortran/84073 + * gfortran.dg/bind_c_usage_31.f90: New test. + +2018-01-27 Paolo Carlini + + PR c++/83924 + * g++.dg/warn/Wduplicated-branches5.C: New. + +2018-01-26 Sebastian Perta + + * gcc.target/rl78/test_addsi3_internal.c: New test. + +2018-01-26 Segher Boessenkool + + * gcc.target/powerpc/safe-indirect-jump-1.c: Build on all targets. + Make expected output depend on whether we expect sibcalls or not. + * gcc.target/powerpc/safe-indirect-jump-8.c: Delete (merged into + safe-indirect-jump-1.c). + +2018-01-26 Damian Rouson + Alessandro Fanfarillo + Soren Rasmussen + + Fortran 2018 teams tests. + + * gfortran.dg/team_number_1.f90: new test for team_number. + * gfortran.dg/team_change_1.f90: new test for change team. + * gfortran.dg/team_end_1.f90: new test for end team. + * gfortran.dg/team_form_1.f90: new test for form team. + +2018-01-26 Steven G. Kargl + + PR fortran/83998 + * gfortran.dg/dot_product_4.f90 + +2018-01-26 Martin Sebor + + PR tree-optimization/83896 + * gcc.dg/strlenopt-43.c: New. + +2018-01-26 Will Schmidt + + * gcc.target/powerpc/fold-vec-abs-int.c: Remove scan-assembler stanzas. + * gcc.target/powerpc/fold-vec-abs-int-fwrap.c: Same. + * gcc.target/powerpc/fold-vec-abs-int.p7.c: New. + * gcc.target/powerpc/fold-vec-abs-int.p8.c: New. + * gcc.target/powerpc/fold-vec-abs-int.p9.c: New. + * gcc.target/powerpc/fold-vec-abs-int-fwrapv.p7.c: New. + * gcc.target/powerpc/fold-vec-abs-int-fwrapv.p8.c: New. + * gcc.target/powerpc/fold-vec-abs-int-fwrapv.p9.c: New. + * gcc.target/powerpc/fold-vec-abs-longlong.c: Remove scan-assembler + stanzas. + * gcc.target/powerpc/fold-vec-abs-longlong-fwrap.c: Same. + * gcc.target/powerpc/fold-vec-abs-longlong.p7.c: New. + * gcc.target/powerpc/fold-vec-abs-longlong.p8.c: New. + * gcc.target/powerpc/fold-vec-abs-longlong.p9.c: New. + * gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.p7.c: New. + * gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.p8.c: New. + * gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.p9.c: New. + * gcc.target/powerpc/fold-vec-abs-short.c: Add xxspltib to valid + instruction list. + * gcc.target/powerpc/fold-vec-abs-short-fwrapv.c: Same. + +2018-01-26 Will Schmidt + + * gcc.target/powerpc/fold-vec-cmp-int.c: Delete. + * gcc.target/powerpc/fold-vec-cmp-int.h: New. + * gcc.target/powerpc/fold-vec-cmp-int.p7.c: New. + * gcc.target/powerpc/fold-vec-cmp-int.p8.c: New. + * gcc.target/powerpc/fold-vec-cmp-int.p9.c: New. + * gcc.target/powerpc/fold-vec-cmp-short.c: Delete. + * gcc.target/powerpc/fold-vec-cmp-short.h: New. + * gcc.target/powerpc/fold-vec-cmp-short.p8.c: New. + * gcc.target/powerpc/fold-vec-cmp-short.p9.c: New. + * gcc.target/powerpc/fold-vec-cmp-char.c: Delete. + * gcc.target/powerpc/fold-vec-cmp-char.h: New. + * gcc.target/powerpc/fold-vec-cmp-char.p8.c: New. + * gcc.target/powerpc/fold-vec-cmp-char.p9.c: New. + +2018-01-26 Martin Liska + + * lib/target-supports.exp: Return a value, otherwise -Wreturn-type + warning is seen. + +2018-01-26 Will Schmidt + + * gcc.target/powerpc/fold-vec-neg-longlong.h: New. + * gcc.target/powerpc/fold-vec-neg-longlong.p8.c: New. + * gcc.target/powerpc/fold-vec-neg-longlong.p9.c: New. + * gcc.target/powerpc/fold-vec-neg-longlong.c: Delete. + * gcc.target/powerpc/fold-vec-neg-int.c: Remove scan-assembler stanzas. + * gcc.target/powerpc/fold-vec-neg-int.p7.c: New. + * gcc.target/powerpc/fold-vec-neg-int.p8.c: New. + * gcc.target/powerpc/fold-vec-neg-int.p9.c: New. + +2018-01-26 Richard Biener + + PR rtl-optimization/84003 + * g++.dg/torture/pr77745.C: Mark foo noinline to trigger + latent bug in DSE if NOINLINE is appropriately defined. + * g++.dg/torture/pr77745-2.C: New testcase including pr77745.C + and defining NOINLINE. + +2018-01-26 Kyrylo Tkachov + + * gcc.target/aarch64/advsimd-intrinsics/vld1x2.c: Make float64 + tests specific to aarch64. XFAIL test on arm. + +2018-01-26 Jakub Jelinek + + PR rtl-optimization/83985 + * gcc.dg/pr83985.c: New test. + + PR c/83989 + * c-c++-common/Wrestrict-3.c: New test. + +2018-01-26 Claudiu Zissulescu + + * gcc.target/arc/tdelegitimize_addr.c: New test. + +2018-01-26 Claudiu Zissulescu + + * gcc.target/arc/jli-1.c: New file. + * gcc.target/arc/jli-2.c: Likewise. + +2018-01-26 Szabolcs Nagy + + * gcc.target/aarch64/sve/peel_ind_1.c: Match (adrp|adr) in + scan-assembler. + * gcc.target/aarch64/sve/peel_ind_2.c: Likewise. + * gcc.target/aarch64/sve/peel_ind_3.c: Likewise. + +2018-01-26 Richard Biener + + PR tree-optimization/81082 + * gcc.dg/vect/pr81082.c: New testcase. + * gcc.dg/tree-ssa/loop-15.c: XFAIL the (int)((unsigned)n + -1U) * n + n + simplification to n * n. + +2018-01-26 Rainer Orth + + * gcc.target/i386/mcount_pic.c: Only xfail get_pc_thunk scan on + Solaris 10. + * gcc.target/i386/pr63620.c: Likewise. + +2018-01-26 Julia Koval + + * gcc.target/i386/avx512bitalg-vpshufbitqmb-1.c: Add + -mavx512f -mavx512bw. + * gcc.target/i386/avx512bitalgvl-vpshufbitqmb-1.c: Add -mavx512bw. + * gcc.target/i386/i386.exp: Fix types. + +2018-01-26 Alan Modra + + PR target/84033 + * gcc.target/powerpc/swaps-p8-46.c: New. + +2018-25-01 Paul Thomas + + PR fortran/37577 + * gfortran.dg/coarray_18.f90: Allow dimension 15 for F2008. + * gfortran.dg/coarray_lib_this_image_2.f90: Change 'array1' to + 'array01' in the tree dump comparison. + * gfortran.dg/coarray_lib_token_4.f90: Likewise. + * gfortran.dg/inline_sum_1.f90: Similar - allow two digits. + * gfortran.dg/rank_1.f90: Allow dimension 15 for F2008. + +2018-01-25 Jan Hubicka + + PR middle-end/83055 + * gcc.dg/torture/pr83055.c: New testcase. + +2018-01-25 Jakub Jelinek + + PR c++/84031 + * g++.dg/cpp1z/decomp36.C: New test. + + PR middle-end/83977 + * c-c++-common/gomp/pr83977-1.c: Add -w to dg-options. + +2018-01-25 Richard Sandiford + + * gcc.dg/vect/vect-reduc-or_1.c: Require whole_vector_shift for + the shift dump line. + * gcc.dg/vect/vect-reduc-or_2.c: Likewise. + +2018-01-24 Michael Meissner + + PR target/81550 + * gcc.target/powerpc/loop_align.c: Use unsigned long for the loop + index instead of int, which allows IVOPTs to properly optimize the + loop. + +2018-01-24 David Malcolm + + PR jit/82846 + * jit.dg/test-alignment.c (create_aligned_code): Fix return type + of "fn_type" typedef. + * jit.dg/test-alignment.cc (verify_aligned_code): Likewise. + +2018-01-24 Ian Lance Taylor + + * go.go-torture/execute/names-1.go: New test. + +2018-01-19 Jeff Law + + PR target/83994 + * gcc.target/i386/pr83994.c: New test. + +2018-01-24 Vladimir Makarov + + PR target/84014 + * gcc.target/powerpc/pr84014.c: New. + +2018-01-24 Jakub Jelinek + + PR middle-end/83977 + * c-c++-common/gomp/pr83977-1.c: New test. + * c-c++-common/gomp/pr83977-2.c: New test. + * c-c++-common/gomp/pr83977-3.c: New test. + * gfortran.dg/gomp/pr83977.f90: New test. + +2018-01-24 Richard Sandiford + + PR testsuite/83889 + * gcc.dg/vect/pr79920.c: Remove explicit dg-do run. + * gcc.dg/vect/pr80631-1.c: Likewise. + * gcc.dg/vect/pr80631-2.c: Likewise. + * gcc.dg/vect/pr81410.c: Likewise. + * gcc.dg/vect/pr81633.c: Likewise. + * gcc.dg/vect/pr81815.c: Likewise. + * gcc.dg/vect/pr82108.c: Likewise. + * gcc.dg/vect/pr83857.c: Likewise. + * gcc.dg/vect/vect-alias-check-8.c: Likewise. + * gcc.dg/vect/vect-alias-check-9.c: Likewise. + * gcc.dg/vect/vect-alias-check-10.c: Likewise. + * gcc.dg/vect/vect-alias-check-11.c: Likewise. + * gcc.dg/vect/vect-alias-check-12.c: Likewise. + * gcc.dg/vect/vect-reduc-11.c: Likewise. + * gcc.dg/vect/vect-tail-nomask-1.c: Likewise. + * gcc.dg/vect/vect-reduc-in-order-1.c: Remove dg-do run and use + dg-xfail-run-if instead. + * gcc.dg/vect/vect-reduc-in-order-2.c: Likewise. + * gcc.dg/vect/vect-reduc-in-order-3.c: Likewise. + * gcc.dg/vect/vect-reduc-in-order-4.c: Likewise. + * gcc.dg/vect/vect-reduc-or_1.c: Remove conditional dg-do run. + * gcc.dg/vect/vect-reduc-or_2.c: Likewise. + +2018-01-24 Richard Sandiford + + PR tree-optimization/83979 + * g++.dg/pr83979.c: New test. + +2018-01-24 Kyrylo Tkachov + + * gcc.dg/lto/20110201-1_0.c: Remove explicit -mfloat-abi=softfp + option. Add arm_neon_ok_no_float_abi check. + +2018-01-24 Richard Biener + + PR tree-optimization/83176 + * gcc.dg/graphite/pr83176.c: New testcase. + +2018-01-24 Richard Biener + + PR tree-optimization/82819 + * gcc.dg/graphite/pr82819.c: New testcase. + +2018-01-23 Paolo Carlini + + PR c++/83921 + * g++.dg/cpp1y/constexpr-83921-1.C: New. + * g++.dg/cpp1y/constexpr-83921-2.C: Likewise. + * g++.dg/cpp1y/constexpr-83921-3.C: Likewise. + * g++.dg/ext/stmtexpr20.C: Likewise. + * g++.dg/ext/stmtexpr21.C: Likewise. + +2018-01-23 David Malcolm + + PR c++/83974 + * g++.dg/warn/pr83974.C: New test case. + +2018-01-23 Jakub Jelinek + + PR sanitizer/83987 + * g++.dg/ubsan/pr83987.C: New test. + +2018-01-23 Paul Thomas + + PR fortran/83866 + * gfortran.dg/pdt_29.f03: New test. + +2018-01-23 Paul Thomas + + PR fortran/83898 + * gfortran.dg/associate_33.f03: New test. + +2018-01-23 Martin Liska + + PR lto/81440 + * gcc.dg/lto/pr81440.h: New test. + * gcc.dg/lto/pr81440_0.c: New test. + * gcc.dg/lto/pr81440_1.c: New test. + +2018-01-23 Nathan Sidwell + + PR c++/83988 + * g++.dg/template/pr83988.C: New. + +2018-01-23 Jakub Jelinek + + PR c++/82882 + PR c++/83978 + * g++.dg/cpp0x/pr82882.C: New test. + * g++.dg/cpp0x/pr83978.C: New test. + + PR c++/83958 + * g++.dg/cpp1z/decomp35.C: New test. + +2018-01-23 Nathan Sidwell + + * g++.dg/cpp0x/range-for10.C: Adjust. + * g++.dg/ext/forscope1.C: Adjust. + * g++.dg/ext/forscope2.C: Adjust. + * g++.dg/template/for1.C: Adjust. + +2018-01-23 David Malcolm + + PR tree-optimization/83510 + * gcc.c-torture/compile/pr83510.c: New test case. + +2018-01-23 Richard Sandiford + + PR testsuite/83888 + * lib/target-supports.exp (check_effective_target_vect_float): Say + that the result only holds when -funsafe-math-optimizations is on. + (check_effective_target_vect_float_strict): New procedure. + * gcc.dg/vect/no-fast-math-vect16.c: Use vect_float_strict instead + of vect_float. + * gcc.dg/vect/vect-reduc-6.c: Likewise. + +2018-01-23 Richard Sandiford + + PR tree-optimization/83965 + * gcc.dg/vect/pr83965.c: New test. + +2018-01-23 Richard Biener + + PR tree-optimization/83963 + * gfortran.dg/graphite/pr83963.f: New testcase. + * gcc.dg/graphite/pr83963-2.c: Likewise. + +2018-01-23 Jakub Jelinek + + PR c++/83918 + * g++.dg/cpp1z/pr83918.C: New test. + +2018-01-22 Jakub Jelinek + + PR tree-optimization/83957 + * gcc.dg/autopar/pr83957.c: New test. + + PR tree-optimization/83081 + * gcc.dg/predict-8.c: Adjust expected probability. + +2018-01-22 Michael Meissner + + PR target/83862 + * gcc.target/powerpc/pr83862.c: New test. + +2018-01-22 Carl Love + + * gcc.target/powerpc/powerpc.exp: Add torture tests for + builtins-4-runnable.c, builtins-6-runnable.c, + builtins-5-p9-runnable.c, builtins-6-p9-runnable.c. + * gcc.target/powerpc/builtins-6-runnable.c: New test file. + * gcc.target/powerpc/builtins-4-runnable.c: Add additional tests + for signed/unsigned 128-bit and long long int loads. + +2018-01-22 Marek Polacek + + PR c++/81933 + * g++.dg/cpp1y/constexpr-empty4.C: New test. + +2018-01-22 Will Schmidt + + * gcc.target/powerpc/fold-vec-abs-short-fwrap.c: Add xxspltib to + scan-asembler valid instructions list. + * gcc.target/powerpc/fold-vec-abs-short.c: Same. + * gcc.target/powerpc/fold-vec-shift-left-longlong.c: Clean up + power8-vector requirement and option. + * gcc.target/powerpc/fold-vec-shift-left-fwrapv.c: Same. + +2018-01-22 Janne Blomqvist + + PR 78534 + PR 83704 + * gfortran.dg/string_1.f90: Remove printing the length. + +2018-01-22 Richard Biener + + PR tree-optimization/83963 + * gcc.dg/graphite/pr83963.c: New testcase. + +2018-01-22 Sudakshina Das + + * gcc.c-torture/compile/pr82096.c: Add dg-skip-if and + dg-require-effective-target directives. + +2018-01-22 Kyrylo Tkachov + + * lib/target-supports.exp (check_effective_target_arm_softfloat): + New procedure. + * gcc.target/arm/copysign_softfloat_1.c: Allow running everywhere. + Adjust scan-assembler checks for soft-float. + +2018-01-21 Bill Schmidt + + PR target/83946 + * gcc.target/powerpc/safe-indirect-jump-8.c: Skip for AIX. + +2018-01-21 John David Anglin + + * gcc.dg/pr83621.c: Add -fno-common additional option on hppa*-&-hpux*. + * gcc.dg/pr83623.c: Likewise. + * gcc.dg/pr83666.c: Likewise. + +2018-01-21 Bill Schmidt + David Edelsohn + + PR target/83946 + * gcc.target/powerpc/safe-indirect-jump-1.c: Change expected + assembly output from "crset eq" to "crset 2". + * gcc.target/powerpc/safe-indirect-jump-2.c: Change expected + assembly output from . to $. + * gcc.target/powerpc/safe-indirect-jump-3.c: Likewise. + * gcc.target/powerpc/safe-indirect-jump-1.c: Change expected + assembly output from "crset eq" to "crset 2". + * gcc.target/powerpc/safe-indirect-jump-8.c: Change expected + assembly output from "crset eq" to "crset 2", and from . to $. + +2018-01-20 Steven G. Kargl + + PR fortran/83900 + * gfortran.dg/matmul_18.f90: New test. + +2018-01-20 Richard Sandiford + + PR tree-optimization/83940 + * gcc.dg/torture/pr83940.c: New test. + +2018-01-20 Jakub Jelinek + + PR middle-end/83945 + * gcc.dg/tls/pr83945.c: New test. + + PR target/83930 + * gcc.dg/pr83930.c: New test. + +2018-01-19 Steven G. Kargl + + PR fortran/83900 + * gfortran.dg/matmul_17.f90: New test. + +2018-01-19 Steven G. Kargl + + PR fortran/80768 + * gfortran.dg/num_images_1.f90: New test that tests fix in r250734. + +2018-01-19 Jakub Jelinek + + PR c++/81167 + * g++.dg/cpp0x/pr81167.C: New test. + + PR c++/83919 + * g++.dg/cpp0x/pr83919.C: New test. + +2018-01-19 Jeff Law + Jakub Jelinek + + * gcc.dg/stack-check-16.c: New test. + +2018-01-19 Cesar Philippidis + + PR target/83790 + * gcc.target/nvptx/indirect_call.c: New test. + +2018-01-19 Rainer Orth + + * g++.dg/torture/pr83619.C: Remove dg-message. + +2018-01-19 Martin Liska + + * gcc.dg/predict-1.c: Adjust expected probability. + * gcc.dg/predict-3.c: Likewise. + * gcc.dg/predict-5.c: Likewise. + * gcc.dg/predict-6.c: Likewise. + * gcc.dg/predict-9.c: Likewise. + +2018-01-19 Richard Sandiford + + PR tree-optimization/83922 + * gcc.dg/pr83922.c: New test. + +2018-01-19 Richard Sandiford + + PR tree-optimization/83914 + * gcc.dg/vect/pr83914.c: New test. + +2018-01-19 Kyrylo Tkachov + + * gcc.target/arm/negdi-1.c: Remove bogus assembler scan for negs. + * gcc.target/arm/negdi-2.c: Likewise. + * gcc.target/arm/thumb-16bit-ops.c: Replace scan for NEGS with RSBS. + +2018-01-19 Kyrylo Tkachov + + * gcc.target/arm/pr40956.c: Adjust scan-assembler pattern. + +2018-01-19 Kyrylo Tkachov + + * gcc.target/arm/pr79058.c: Add arm_arm_ok check and -marm to options. + +2018-01-18 John David Anglin + + * gcc.dg/torture/pr52451.c (main): Skip long double test on + hppa*-*-hpux*. + +2018-01-18 Jakub Jelinek + + PR ipa/83619 + PR testsuite/83934 + * g++.dg/torture/pr83619.C (e): Define before first use instead of + forward declaration. + +2018-01-18 Carl Love + + * gcc.target/powerpc/builtins-6.h (foo): Add missing closing bracket + to the function. + +2018-01-18 Paolo Carlini + + PR c++/81013 + * g++.dg/inherit/union3.C: New. + +2018-01-18 Christophe Lyon + + * gcc.dg/rtl/arm/stl-cond.c: Enable on arm*. + +2018-01-18 Jan Hubicka + + PR ipa/83619 + * g++.dg/torture/pr83619.C: New testcase. + +2018-01-18 Christophe Lyon + + * lib/target-supports.exp (check_effective_target_arm_arch_FUNC_ok): + Add function body to force error messages in some configurations. + +2018-01-18 Kyrylo Tkachov + + * gcc.target/arm/pr70278.c: Add effective target checks for armv4t + and arm_thumb1_ok. + +2018-01-18 Boris Kolpackov + + PR other/70268 + * c-c++-common/ffile-prefix-map.c: New test. + * c-c++-common/fmacro-prefix-map.c: New test. + * c-c++-common/cpp/ffile-prefix-map.c: New test. + * c-c++-common/cpp/fmacro-prefix-map.c: New test. + +2018-01-18 Martin Liska + + * gcc.target/i386/indirect-thunk-3.c: Remove duplicate options. + * gcc.target/i386/indirect-thunk-4.c: Likewise. + * gcc.target/i386/indirect-thunk-6.c: Likewise. + * gcc.target/i386/indirect-thunk-bnd-4.c: Likewise. + * gcc.target/i386/ret-thunk-10.c: Likewise. + * gcc.target/i386/ret-thunk-11.c: Likewise. + * gcc.target/i386/ret-thunk-12.c: Likewise. + * gcc.target/i386/ret-thunk-15.c: Likewise. + * gcc.target/i386/ret-thunk-9.c: Likewise. + +2018-01-18 Christophe Lyon + + * gcc.target/arm/xor-and.c: Fix dg-options and dg-add-options + order. + +2018-01-18 Nathan Sidwell + + PR c++/83160 + * g++.dg/cpp0x/pr83160.C: New. + +2018-01-18 Richard Biener + + PR tree-optimization/83887 + * gcc.dg/graphite/pr83887.c: New testcase. + * gfortran.dg/graphite/pr83887.f90: Likewise. + * gfortran.dg/graphite/pr83887.f: Likewise. + +2018-01-18 Kyrylo Tkachov + + PR target/65578 + * gcc.target/arm/builtin-bswap.x: New file. + * gcc.target/arm/builtin-bswap-1.c: Include the above. Add checks + and options for armv6t2. + * gcc.target/arm/builtin-bswap-2.c: Include the above. Add checks + and options for Thumb1. + * gcc.target/arm/builtin-bswap16.x: New file. + * gcc.target/arm/builtin-bswap16-1.c: Include the above. Add checks + and options for armv6t2. + * gcc.target/arm/builtin-bswap16-2.c: Include the above. Add checks + and options for Thumb1. + +2018-01-18 Christophe Lyon + + * gcc.target/arm/pr40887.c: Fix dg-options and dg-add-options + order. + +2018-01-18 Jakub Jelinek + + PR c/61240 + * gcc.dg/pr61240.c: New test. + +2018-01-17 Harald Anlauf + + PR fortran/83864 + * gfortran.dg/pr83864.f90: New test. + +2018-01-17 Jeff Law + + PR testsuite/83883 + * gcc.dg/tree-ssa/ssa-dse-26.c: Tighten expected output. + +2018-01-17 Bill Schmidt + + * gcc.target/powerpc/safe-indirect-jump-1.c: Remove endian + restriction, but still restrict to 64-bit. + * gcc.target/powerpc/safe-indirect-jump-7.c: New file. + * gcc.target/powerpc/safe-indirect-jump-8.c: New file. + +2018-01-17 Harald Anlauf + + PR fortran/83874 + * gfortran.dg/pr83874.f90: New test. + +2018-01-18 Jakub Jelinek + + PR c++/83824 + * g++.dg/cpp0x/pr83824.C: New test. + +2018-01-17 Michael Meissner + + * gcc.target/powerpc/gnuattr1.c: New test to make sure we set the + appropriate .gnu_attribute for the long double type, if we use the + long double type, but do not generate any calls. + * gcc.target/powerpc/gnuattr2.c: Likewise. + * gcc.target/powerpc/gnuattr3.c: Likewise. + +2018-01-17 Paolo Carlini + + PR c++/78344 + * g++.dg/cpp0x/alignas13.C: New. + +2018-01-17 Jakub Jelinek + + PR c++/83897 + * g++.dg/cpp0x/pr83897.C: New test. + +2018-01-17 Jan Hubicka + + PR ipa/83051 + * gcc.c-torture/compile/pr83051-2.c: New testcase. + +2018-01-17 Paolo Carlini + + PR c++/81054 + * g++.dg/cpp0x/constexpr-ice19.C: New. + +2018-01-17 Will Schmidt + + * gcc.target/powerpc/fold-vec-mergehl-char.c: New. + * gcc.target/powerpc/fold-vec-mergehl-double.c: New. + * gcc.target/powerpc/fold-vec-mergehl-float.c: New. + * gcc.target/powerpc/fold-vec-mergehl-int.c: New. + * gcc.target/powerpc/fold-vec-mergehl-longlong.c: New. + * gcc.target/powerpc/fold-vec-mergehl-pixel.c: New. + * gcc.target/powerpc/fold-vec-mergehl-short.c: New. + * gcc.target/powerpc/builtins-1-be-folded.c: New. + * gcc.target/powerpc/builtins-1-le-folded.c: New. + * gcc.target/powerpc/builtins-1.fold.h: New. + +2018-01-17 Will Schmidt + + * gcc.target/powerpc/builtins-1-be.c: Disable gimple-folding. + * gcc.target/powerpc/builtins-1-le.c: Disable gimple-folding. + +2018-01-17 Kyrylo Tkachov + + * gcc.target/arm/g2.c: Add -marm to dg-options. + * gcc.target/arm/scd42-2.c: Likewise. + +2018-01-17 Nathan Sidwell + + PR c++/83287 + * g++.dg/lookup/pr83287-2.C: New. + +2018-01-17 David Malcolm + + PR c++/83814 + PR c++/83902 + * g++.dg/wrappers/pr83814.C: New test case. + * g++.dg/wrappers/pr83902.C: New test case. + +2018-01-17 David Malcolm + + PR lto/83121 + * g++.dg/lto/pr83121_0.C: New test case. + * g++.dg/lto/pr83121_1.C: New test case. + * lib/lto.exp (lto_handle_diagnostics_for_file): New procedure, + adapted from DejaGnu's dg-test. + (lto_handle_diagnostics): New procedure. + (lto_prune_warns): Ignore informational notes. + (lto-link-and-maybe-run): Add "messages_by_file" param. + Call lto_handle_diagnostics. Avoid issuing "unresolved" for + "execute" when "link" fails if "execute" was not specified. + (lto-can-handle-directive): New procedure. + (lto-get-options-main): Call lto-can-handle-directive. Add a + dg-messages local, using it to set the caller's + dg-messages-by-file for the given source file. + (lto-get-options): Likewise. + (lto-execute): Add dg-messages-by-file local, and pass it to + lto-link-and-maybe-run. + +2018-01-17 Wilco Dijkstra + Richard Sandiford + + PR target/79041 + PR target/82964 + * gcc.target/aarch64/pr79041-2.c: Improve test, disable with fpic. + * gcc.target/aarch64/pr78733.c: Improve test, disable with fpic. + +2018-01-17 Kyrylo Tkachov + + * lib/target-supports.exp: Fix -march arguments in arm arch effective + target check autogenerator for armv8.1-a and armv8.2-a. + +2018-01-17 Carl Love + + * gcc.target/powerpc/builtins-6-p9-runnable.c: Add additional tests. + Add debug print statements. + * gcc.target/powerpc/builtins-5-p9-runnable.c: Add test to do + 16 byte vector load followed by a partial vector load. + +2018-01-17 David Malcolm + + PR c++/83799 + * g++.dg/wrappers/pr83799.C: New test case. + +2018-01-17 Nathan Sidwell + + PR c++/83739 + * g++.dg/cpp1y/pr83739.C: New. + +2018-01-17 Eric Botcazou + + * gcc.target/visium/overflow8.c: Pass -fno-if-conversion. + * gcc.target/visium/overflow16.c: Likewise. + * gcc.target/visium/overflow32.c: Likewise. + +2018-01-17 Eric Botcazou + + * gcc.dg/ipa/inlinehint-4.c: Also pass --param inline-unit-growth=20. + +2018-01-17 Kyrylo Tkachov + + * gcc.dg/rtl/arm/stl-cond.c: New test. + * gcc.target/arm/stl-cond.c: Delete. + +2018-01-17 Kyrylo Tkachov + + * gcc.target/arm/pr40887.c: Add armv5te effective target checks and + directives. + +2018-01-17 Jakub Jelinek + + PR tree-optimization/83843 + * gcc.dg/store_merging_18.c: Don't expect "Merging successful" on arm. + * gcc.dg/store_merging_19.c: New test. + +2018-01-17 Kyrylo Tkachov + + * gcc.target/arm/xor-and.c: Fix armv6 effective target checks + and options. + +2018-01-17 Jakub Jelinek + + PR rtl-optimization/83771 + * gcc.dg/pr83771.c: New test. + +2018-01-17 Eric Botcazou + + PR tree-optimization/81184 + * gcc.dg/pr21643.c: Adjust dg-final line for logical_op_short_circuit + targets. + * gcc.dg/tree-ssa/phi-opt-11.c: Likewise. + +2018-01-17 Eric Botcazou + + * c-c++-common/Wrestrict.c (test_strcpy_range): Revert latest change. + +2018-01-16 Sebastian Peryt + + PR target/83546 + * gcc.target/i386/pr83546.c: New test. + +2018-01-16 Eric Botcazou + + * c-c++-common/Warray-bounds-3.c (test_memmove_bounds): Fix mismatch. + +2018-01-16 Eric Botcazou + + * c-c++-common/Wrestrict.c (test_strcpy_range): Bump string size of one + test and add dg-warning for the -Wstringop-overflow warning. + +2018-01-16 Eric Botcazou + + * c-c++-common/Warray-bounds-4.c (test_strcpy_bounds_memarray_range): + XFAIL last test on SPARC and Visium. + +2018-01-16 Vladimir Makarov + + PR rtl-optimization/80481 + * g++.dg/pr80481.C: Exclude solaris. + +2018-01-16 Eric Botcazou + + * c-c++-common/patchable_function_entry-decl.c: Use 3 NOPs on Visium. + * c-c++-common/patchable_function_entry-default.c: 4 NOPs on Visium. + * c-c++-common/patchable_function_entry-definition.c: 2 NOPs on Visium. + +2018-01-16 Eric Botcazou + + * gcc.dg/tree-ssa/ldist-27.c: Skip on Visium. + * gcc.dg/tree-ssa/loop-interchange-1.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-1b.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-2.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-3.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-4.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-5.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-6.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-7.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-8.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-9.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-10.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-11.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-14.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-15.c: Likewise. + +2018-01-16 Eric Botcazou + + PR testsuite/77734 + * gcc.dg/plugin/must-tail-call-1.c: Pass -fdelayed-branch on SPARC. + +2018-01-16 Bill Schmidt + + * gcc.target/powerpc/safe-indirect-jump-1.c: New file. + * gcc.target/powerpc/safe-indirect-jump-2.c: New file. + * gcc.target/powerpc/safe-indirect-jump-3.c: New file. + * gcc.target/powerpc/safe-indirect-jump-4.c: New file. + * gcc.target/powerpc/safe-indirect-jump-5.c: New file. + * gcc.target/powerpc/safe-indirect-jump-6.c: New file. + +2018-01-16 Richard Sandiford + + PR tree-optimization/83857 + * gcc.dg/vect/pr83857.c: New test. + +2018-01-16 Richard Biener + + PR tree-optimization/83867 + * gcc.dg/vect/pr83867.c: New testcase. + +2018-01-16 Jakub Jelinek + + PR c/83844 + * gcc.dg/pr83844.c: New test. + +2018-01-16 Richard Sandiford + + * gcc.dg/torture/pr83847.c: New test. + +2018-01-16 Jakub Jelinek + + PR rtl-optimization/86620 + * gcc.dg/pr64935-2.c: Use --param=max-sched-ready-insns=1 + instead of --param=max-sched-ready-insns=0. + * gcc.target/i386/pr83620.c: New test. + * gcc.dg/pr83620.c: New test. + + PR tree-optimization/83843 + * gcc.dg/store_merging_18.c: New test. + + PR c++/83817 + * g++.dg/cpp1y/pr83817.C: New test. + + PR c++/83825 + * g++.dg/template/pr83825.C: New test. + +2018-01-16 Richard Biener + + * gcc.dg/graphite/pr83435.c: Restrict to target pthread. + +2018-01-16 Richard Biener + + PR testsuite/82132 + * gcc.dg/vect/vect-tail-nomask-1.c: Copy posix_memalign boiler-plate + from gcc.dg/torture/pr60092.c. + +2018-01-15 Martin Sebor + + PR c++/83588 + * g++.dg/ext/flexary28.C: New test. + +2018-01-15 Louis Krupp + + PR fortran/82257 + * gfortran.dg/unlimited_polymorphic_28.f90: New test. + +2018-01-15 Martin Sebor + + PR testsuite/83869 + * c-c++-common/attr-nonstring-3.c: Work around bug c++/74762. + +2018-01-15 Thomas Koenig + + PR fortran/54613 + * gfortran.dg/minmaxloc_9.f90: New test. + * gfortran.dg/minmaxloc_10.f90: New test. + * gfortran.dg/minmaxloc_11.f90: New test. + +2018-01-15 H.J. Lu + + PR target/83839 + * gcc.target/i386/indirect-thunk-1.c: Scan for "push" only on Linux. + * gcc.target/i386/indirect-thunk-2.c: Likewise. + * gcc.target/i386/indirect-thunk-3.c: Likewise. + * gcc.target/i386/indirect-thunk-4.c: Likewise. + * gcc.target/i386/indirect-thunk-7.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-1.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-2.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-5.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-6.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-7.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-1.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-2.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-3.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-4.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-7.c: Likewise. + * gcc.target/i386/indirect-thunk-register-1.c: Likewise. + * gcc.target/i386/indirect-thunk-register-3.c: Likewise. + * gcc.target/i386/indirect-thunk-register-4.c: Likewise. + * gcc.target/i386/ret-thunk-10.c: Likewise. + * gcc.target/i386/ret-thunk-11.c: Likewise. + * gcc.target/i386/ret-thunk-12.c: Likewise. + * gcc.target/i386/ret-thunk-13.c: Likewise. + * gcc.target/i386/ret-thunk-14.c: Likewise. + * gcc.target/i386/ret-thunk-15.c: Likewise. + * gcc.target/i386/ret-thunk-9.c: Don't check the + __x86_return_thunk label. Scan for "push" only for Linux. + +2018-01-15 Richard Sandiford + + PR testsuite/79920 + * gcc.dg/vect/pr79920.c: Restrict reduction test to vect_double + +2018-01-15 Kyrylo Tkachov + + PR target/83687 + * gcc.target/arm/neon-combine-sub-abs-into-vabd.c: Delete integer + tests. + * gcc.target/arm/pr83687.c: New test. + +2018-01-15 Georg-Johann Lay + + Adjust tests to AVR_TINY. + + * gcc.target/avr/progmem.h (pgm_read_char): Handle AVR_TINY. + * gcc.target/avr/pr52472.c: Add "! avr_tiny" target filter. + * gcc.target/avr/pr71627.c: Same. + * gcc.target/avr/torture/addr-space-1-0.c: Same. + * gcc.target/avr/torture/addr-space-1-1.c: Same. + * gcc.target/avr/torture/addr-space-1-x.c: Same. + * gcc.target/avr/torture/addr-space-2-0.c: Same. + * gcc.target/avr/torture/addr-space-2-1.c: Same. + * gcc.target/avr/torture/addr-space-2-x.c: Same. + * gcc.target/avr/torture/sat-hr-plus-minus.c: Same. + * gcc.target/avr/torture/sat-k-plus-minus.c: Same. + * gcc.target/avr/torture/sat-llk-plus-minus.c: Same. + * gcc.target/avr/torture/sat-r-plus-minus.c: Same. + * gcc.target/avr/torture/sat-uhr-plus-minus.c: Same. + * gcc.target/avr/torture/sat-uk-plus-minus.c: Same. + * gcc.target/avr/torture/sat-ullk-plus-minus.c: Same. + * gcc.target/avr/torture/sat-ur-plus-minus.c: Same. + * gcc.target/avr/torture/pr61055.c: Same. + * gcc.target/avr/torture/builtins-3-absfx.c: Only use __flash if + available. + * gcc.target/avr/torture/int24-mul.c: Same. + * gcc.target/avr/torture/pr51782-1.c: Same. + * gcc.target/avr/torture/pr61443.c: Same. + * gcc.target/avr/torture/builtins-2.c: Factor out addr-space stuff... + * gcc.target/avr/torture/builtins-2-flash.c: ...to this new test. + +2018-01-15 Georg-Johann Lay + + PR c/83801 + PR c/83729 + * gcc.target/avr/torture/pr83729.c: New test. + * gcc.target/avr/torture/pr83801.c: New test. + +2018-01-15 Jakub Jelinek + + PR middle-end/82694 + * gcc.dg/no-strict-overflow-7.c: Revert 2017-08-01 changes. + * gcc.dg/tree-ssa/pr81388-1.c: Likewise. + +2018-01-10 Martin Sebor + + PR other/83508 + * gcc.dg/Wstringop-overflow-2.c: New test. + +2018-01-14 Jerry DeLisle + + PR libgfortran/83811 + * gfortran.dg/fmt_e.f90: New test. + +2018-01-14 H.J. Lu + + * gcc.target/i386/indirect-thunk-10.c: New test. + * gcc.target/i386/indirect-thunk-8.c: Likewise. + * gcc.target/i386/indirect-thunk-9.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-10.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-11.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-9.c: Likewise. + * gcc.target/i386/ret-thunk-17.c: Likewise. + * gcc.target/i386/ret-thunk-18.c: Likewise. + * gcc.target/i386/ret-thunk-19.c: Likewise. + * gcc.target/i386/ret-thunk-20.c: Likewise. + * gcc.target/i386/ret-thunk-21.c: Likewise. + +2018-01-14 H.J. Lu + + * gcc.target/i386/indirect-thunk-register-4.c: New test. + +2018-01-14 H.J. Lu + + * gcc.target/i386/indirect-thunk-1.c (dg-options): Add + -mno-indirect-branch-register. + * gcc.target/i386/indirect-thunk-2.c: Likewise. + * gcc.target/i386/indirect-thunk-3.c: Likewise. + * gcc.target/i386/indirect-thunk-4.c: Likewise. + * gcc.target/i386/indirect-thunk-5.c: Likewise. + * gcc.target/i386/indirect-thunk-6.c: Likewise. + * gcc.target/i386/indirect-thunk-7.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-1.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-2.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-3.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-4.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-5.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-6.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-7.c: Likewise. + * gcc.target/i386/indirect-thunk-bnd-1.c: Likewise. + * gcc.target/i386/indirect-thunk-bnd-2.c: Likewise. + * gcc.target/i386/indirect-thunk-bnd-3.c: Likewise. + * gcc.target/i386/indirect-thunk-bnd-4.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-1.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-2.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-3.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-4.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-5.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-6.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-7.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-1.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-2.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-3.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-4.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-5.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-6.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-7.c: Likewise. + * gcc.target/i386/ret-thunk-10.c: Likewise. + * gcc.target/i386/ret-thunk-11.c: Likewise. + * gcc.target/i386/ret-thunk-12.c: Likewise. + * gcc.target/i386/ret-thunk-13.c: Likewise. + * gcc.target/i386/ret-thunk-14.c: Likewise. + * gcc.target/i386/ret-thunk-15.c: Likewise. + * gcc.target/i386/ret-thunk-9.c: Likewise. + * gcc.target/i386/indirect-thunk-register-1.c: New test. + * gcc.target/i386/indirect-thunk-register-2.c: Likewise. + * gcc.target/i386/indirect-thunk-register-3.c: Likewise. + +2018-01-14 H.J. Lu + + * gcc.target/i386/indirect-thunk-1.c (dg-options): Add + -mfunction-return=keep. + * gcc.target/i386/indirect-thunk-2.c: Likewise. + * gcc.target/i386/indirect-thunk-3.c: Likewise. + * gcc.target/i386/indirect-thunk-4.c: Likewise. + * gcc.target/i386/indirect-thunk-5.c: Likewise. + * gcc.target/i386/indirect-thunk-6.c: Likewise. + * gcc.target/i386/indirect-thunk-7.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-1.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-2.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-3.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-4.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-5.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-6.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-7.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-8.c: Likewise. + * gcc.target/i386/indirect-thunk-bnd-1.c: Likewise. + * gcc.target/i386/indirect-thunk-bnd-2.c: Likewise. + * gcc.target/i386/indirect-thunk-bnd-3.c: Likewise. + * gcc.target/i386/indirect-thunk-bnd-4.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-1.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-2.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-3.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-4.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-5.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-6.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-7.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-1.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-2.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-3.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-4.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-5.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-6.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-7.c: Likewise. + * gcc.target/i386/ret-thunk-1.c: New test. + * gcc.target/i386/ret-thunk-10.c: Likewise. + * gcc.target/i386/ret-thunk-11.c: Likewise. + * gcc.target/i386/ret-thunk-12.c: Likewise. + * gcc.target/i386/ret-thunk-13.c: Likewise. + * gcc.target/i386/ret-thunk-14.c: Likewise. + * gcc.target/i386/ret-thunk-15.c: Likewise. + * gcc.target/i386/ret-thunk-16.c: Likewise. + * gcc.target/i386/ret-thunk-2.c: Likewise. + * gcc.target/i386/ret-thunk-3.c: Likewise. + * gcc.target/i386/ret-thunk-4.c: Likewise. + * gcc.target/i386/ret-thunk-5.c: Likewise. + * gcc.target/i386/ret-thunk-6.c: Likewise. + * gcc.target/i386/ret-thunk-7.c: Likewise. + * gcc.target/i386/ret-thunk-8.c: Likewise. + * gcc.target/i386/ret-thunk-9.c: Likewise. + +2018-01-14 H.J. Lu + + * gcc.target/i386/indirect-thunk-1.c: New test. + * gcc.target/i386/indirect-thunk-2.c: Likewise. + * gcc.target/i386/indirect-thunk-3.c: Likewise. + * gcc.target/i386/indirect-thunk-4.c: Likewise. + * gcc.target/i386/indirect-thunk-5.c: Likewise. + * gcc.target/i386/indirect-thunk-6.c: Likewise. + * gcc.target/i386/indirect-thunk-7.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-1.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-2.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-3.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-4.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-5.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-6.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-7.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-8.c: Likewise. + * gcc.target/i386/indirect-thunk-bnd-1.c: Likewise. + * gcc.target/i386/indirect-thunk-bnd-2.c: Likewise. + * gcc.target/i386/indirect-thunk-bnd-3.c: Likewise. + * gcc.target/i386/indirect-thunk-bnd-4.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-1.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-2.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-3.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-4.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-5.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-6.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-7.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-1.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-2.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-3.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-4.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-5.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-6.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-7.c: Likewise. + +2018-01-14 Jan Hubicka + + PR ipa/83051 + * gcc.c-torture/compile/pr83051.c: New testcase. + +2018-01-14 Prathamesh Kulkarni + + PR tree-optimization/83501 + * gcc.dg/strlenopt-39.c: Restrict to i?86 and x86_64-*-* targets. + +2018-01-10 Kelvin Nilsen + + * gcc.target/powerpc/pr48857.c: Modify dejagnu directives to look + for lvx and stvx instead of lxvd2x and stxvd2x and require + little-endian target. Add comments. + * gcc.target/powerpc/swaps-p8-28.c: Add functions for more + comprehensive testing. + * gcc.target/powerpc/swaps-p8-29.c: Likewise. + * gcc.target/powerpc/swaps-p8-30.c: Likewise. + * gcc.target/powerpc/swaps-p8-31.c: Likewise. + * gcc.target/powerpc/swaps-p8-32.c: Likewise. + * gcc.target/powerpc/swaps-p8-33.c: Likewise. + * gcc.target/powerpc/swaps-p8-34.c: Likewise. + * gcc.target/powerpc/swaps-p8-35.c: Likewise. + * gcc.target/powerpc/swaps-p8-36.c: Likewise. + * gcc.target/powerpc/swaps-p8-37.c: Likewise. + * gcc.target/powerpc/swaps-p8-38.c: Likewise. + * gcc.target/powerpc/swaps-p8-39.c: Likewise. + * gcc.target/powerpc/swaps-p8-40.c: Likewise. + * gcc.target/powerpc/swaps-p8-41.c: Likewise. + * gcc.target/powerpc/swaps-p8-42.c: Likewise. + * gcc.target/powerpc/swaps-p8-43.c: Likewise. + * gcc.target/powerpc/swaps-p8-44.c: Likewise. + * gcc.target/powerpc/swaps-p8-45.c: Likewise. + * gcc.target/powerpc/vec-extract-2.c: Add comment and remove + scan-assembler-not directives that forbid lvx and xxpermdi. + * gcc.target/powerpc/vec-extract-3.c: Likewise. + * gcc.target/powerpc/vec-extract-5.c: Likewise. + * gcc.target/powerpc/vec-extract-6.c: Likewise. + * gcc.target/powerpc/vec-extract-7.c: Likewise. + * gcc.target/powerpc/vec-extract-8.c: Likewise. + * gcc.target/powerpc/vec-extract-9.c: Likewise. + * gcc.target/powerpc/vsx-vector-6-le.c: Change + scan-assembler-times directives to reflect different numbers of + expected xxlnor, xxlor, xvcmpgtdp, and xxland instructions. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.dg/vect/bb-slp-cond-1.c: Expect loop vectorization rather + than SLP vectorization. + * gcc.dg/vect/vect-alias-check-10.c: New test. + * gcc.dg/vect/vect-alias-check-11.c: Likewise. + * gcc.dg/vect/vect-alias-check-12.c: Likewise. + * gcc.dg/vect/vect-alias-check-8.c: Likewise. + * gcc.dg/vect/vect-alias-check-9.c: Likewise. + * gcc.target/aarch64/sve/strided_load_8.c: Likewise. + * gcc.target/aarch64/sve/var_stride_1.c: Likewise. + * gcc.target/aarch64/sve/var_stride_1.h: Likewise. + * gcc.target/aarch64/sve/var_stride_1_run.c: Likewise. + * gcc.target/aarch64/sve/var_stride_2.c: Likewise. + * gcc.target/aarch64/sve/var_stride_2_run.c: Likewise. + * gcc.target/aarch64/sve/var_stride_3.c: Likewise. + * gcc.target/aarch64/sve/var_stride_3_run.c: Likewise. + * gcc.target/aarch64/sve/var_stride_4.c: Likewise. + * gcc.target/aarch64/sve/var_stride_4_run.c: Likewise. + * gcc.target/aarch64/sve/var_stride_5.c: Likewise. + * gcc.target/aarch64/sve/var_stride_5_run.c: Likewise. + * gcc.target/aarch64/sve/var_stride_6.c: Likewise. + * gcc.target/aarch64/sve/var_stride_6_run.c: Likewise. + * gcc.target/aarch64/sve/var_stride_7.c: Likewise. + * gcc.target/aarch64/sve/var_stride_7_run.c: Likewise. + * gcc.target/aarch64/sve/var_stride_8.c: Likewise. + * gcc.target/aarch64/sve/var_stride_8_run.c: Likewise. + * gfortran.dg/vect/vect-alias-check-1.F90: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * lib/target-supports.exp (check_effective_target_vect_scatter_store): + New proc. + * gcc.dg/vect/pr25413a.c: Expect both loops to be optimized on + targets with scatter stores. + * gcc.dg/vect/vect-71.c: Restrict XFAIL to targets without scatter + stores. + * gcc.target/aarch64/sve/mask_scatter_store_1.c: New test. + * gcc.target/aarch64/sve/mask_scatter_store_2.c: Likewise. + * gcc.target/aarch64/sve/scatter_store_1.c: Likewise. + * gcc.target/aarch64/sve/scatter_store_2.c: Likewise. + * gcc.target/aarch64/sve/scatter_store_3.c: Likewise. + * gcc.target/aarch64/sve/scatter_store_4.c: Likewise. + * gcc.target/aarch64/sve/scatter_store_5.c: Likewise. + * gcc.target/aarch64/sve/scatter_store_6.c: Likewise. + * gcc.target/aarch64/sve/scatter_store_7.c: Likewise. + * gcc.target/aarch64/sve/strided_store_1.c: Likewise. + * gcc.target/aarch64/sve/strided_store_2.c: Likewise. + * gcc.target/aarch64/sve/strided_store_3.c: Likewise. + * gcc.target/aarch64/sve/strided_store_4.c: Likewise. + * gcc.target/aarch64/sve/strided_store_5.c: Likewise. + * gcc.target/aarch64/sve/strided_store_6.c: Likewise. + * gcc.target/aarch64/sve/strided_store_7.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.target/aarch64/sve/reduc_strict_3.c: Expect FADDA to be used + for double_reduc1. + * gcc.target/aarch64/sve/strided_load_4.c: New test. + * gcc.target/aarch64/sve/strided_load_5.c: Likewise. + * gcc.target/aarch64/sve/strided_load_6.c: Likewise. + * gcc.target/aarch64/sve/strided_load_7.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.target/aarch64/sve/strided_load_1.c: New test. + * gcc.target/aarch64/sve/strided_load_2.c: Likewise. + * gcc.target/aarch64/sve/strided_load_3.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.target/aarch64/sve/gather_load_1.c: New test. + * gcc.target/aarch64/sve/gather_load_2.c: Likewise. + * gcc.target/aarch64/sve/gather_load_3.c: Likewise. + * gcc.target/aarch64/sve/gather_load_4.c: Likewise. + * gcc.target/aarch64/sve/gather_load_5.c: Likewise. + * gcc.target/aarch64/sve/gather_load_6.c: Likewise. + * gcc.target/aarch64/sve/gather_load_7.c: Likewise. + * gcc.target/aarch64/sve/mask_gather_load_1.c: Likewise. + * gcc.target/aarch64/sve/mask_gather_load_2.c: Likewise. + * gcc.target/aarch64/sve/mask_gather_load_3.c: Likewise. + * gcc.target/aarch64/sve/mask_gather_load_4.c: Likewise. + * gcc.target/aarch64/sve/mask_gather_load_5.c: Likewise. + * gcc.target/aarch64/sve/mask_gather_load_6.c: Likewise. + * gcc.target/aarch64/sve/mask_gather_load_7.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.dg/vect/no-fast-math-vect16.c: Expect the test to pass and + check for a message about using in-order reductions. + * gcc.dg/vect/pr79920.c: Expect both loops to be vectorized and + check for a message about using in-order reductions. + * gcc.dg/vect/trapv-vect-reduc-4.c: Expect all three loops to be + vectorized and check for a message about using in-order reductions. + Expect targets with variable-length vectors to fall back to the + fixed-length mininum. + * gcc.dg/vect/vect-reduc-6.c: Expect the loop to be vectorized and + check for a message about using in-order reductions. + * gcc.dg/vect/vect-reduc-in-order-1.c: New test. + * gcc.dg/vect/vect-reduc-in-order-2.c: Likewise. + * gcc.dg/vect/vect-reduc-in-order-3.c: Likewise. + * gcc.dg/vect/vect-reduc-in-order-4.c: Likewise. + * gcc.target/aarch64/sve/reduc_strict_1.c: New test. + * gcc.target/aarch64/sve/reduc_strict_1_run.c: Likewise. + * gcc.target/aarch64/sve/reduc_strict_2.c: Likewise. + * gcc.target/aarch64/sve/reduc_strict_2_run.c: Likewise. + * gcc.target/aarch64/sve/reduc_strict_3.c: Likewise. + * gcc.target/aarch64/sve/slp_13.c: Add floating-point types. + * gfortran.dg/vect/vect-8.f90: Expect 22 loops to be vectorized if + vect_fold_left_plus. + +2018-01-13 Richard Sandiford + + * gcc.target/aarch64/sve/spill_1.c: Also test that no predicates + are spilled. + * gcc.target/aarch64/sve/spill_2.c: New test. + * gcc.target/aarch64/sve/spill_3.c: Likewise. + * gcc.target/aarch64/sve/spill_4.c: Likewise. + * gcc.target/aarch64/sve/spill_5.c: Likewise. + * gcc.target/aarch64/sve/spill_6.c: Likewise. + * gcc.target/aarch64/sve/spill_7.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.target/aarch64/sve/struct_vect_18.c: Check the number + of branches. + * gcc.target/aarch64/sve/struct_vect_19.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_20.c: New test. + * gcc.target/aarch64/sve/struct_vect_20_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_21.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_21_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_22.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_22_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_23.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_23_run.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.target/aarch64/sve/struct_vect_18.c: New test. + * gcc.target/aarch64/sve/struct_vect_18_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_19.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_19_run.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * lib/target-supports.exp + (check_effective_target_vect_fold_extract_last): New proc. + * gcc.dg/vect/pr65947-1.c: Update dump messages. Add markup + for fold_extract_last. + * gcc.dg/vect/pr65947-2.c: Likewise. + * gcc.dg/vect/pr65947-3.c: Likewise. + * gcc.dg/vect/pr65947-4.c: Likewise. + * gcc.dg/vect/pr65947-5.c: Likewise. + * gcc.dg/vect/pr65947-6.c: Likewise. + * gcc.dg/vect/pr65947-9.c: Likewise. + * gcc.dg/vect/pr65947-10.c: Likewise. + * gcc.dg/vect/pr65947-12.c: Likewise. + * gcc.dg/vect/pr65947-14.c: Likewise. + * gcc.dg/vect/pr80631-1.c: Likewise. + * gcc.target/aarch64/sve/clastb_1.c: New test. + * gcc.target/aarch64/sve/clastb_1_run.c: Likewise. + * gcc.target/aarch64/sve/clastb_2.c: Likewise. + * gcc.target/aarch64/sve/clastb_2_run.c: Likewise. + * gcc.target/aarch64/sve/clastb_3.c: Likewise. + * gcc.target/aarch64/sve/clastb_3_run.c: Likewise. + * gcc.target/aarch64/sve/clastb_4.c: Likewise. + * gcc.target/aarch64/sve/clastb_4_run.c: Likewise. + * gcc.target/aarch64/sve/clastb_5.c: Likewise. + * gcc.target/aarch64/sve/clastb_5_run.c: Likewise. + * gcc.target/aarch64/sve/clastb_6.c: Likewise. + * gcc.target/aarch64/sve/clastb_6_run.c: Likewise. + * gcc.target/aarch64/sve/clastb_7.c: Likewise. + * gcc.target/aarch64/sve/clastb_7_run.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.target/aarch64/sve/live_1.c: New test. + * gcc.target/aarch64/sve/live_1_run.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.target/aarch64/sve/nopeel_1.c: New test. + * gcc.target/aarch64/sve/peel_ind_1.c: Likewise. + * gcc.target/aarch64/sve/peel_ind_1_run.c: Likewise. + * gcc.target/aarch64/sve/peel_ind_2.c: Likewise. + * gcc.target/aarch64/sve/peel_ind_2_run.c: Likewise. + * gcc.target/aarch64/sve/peel_ind_3.c: Likewise. + * gcc.target/aarch64/sve/peel_ind_3_run.c: Likewise. + * gcc.target/aarch64/sve/peel_ind_4.c: Likewise. + * gcc.target/aarch64/sve/peel_ind_4_run.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * lib/target-supports.exp (check_effective_target_vect_fully_masked): + New proc. + * gcc.dg/vect/slp-3.c: Expect all loops to be vectorized if + vect_fully_masked. + * gcc.target/aarch64/sve/loop_add_4.c: New test. + * gcc.target/aarch64/sve/loop_add_4_run.c: Likewise. + * gcc.target/aarch64/sve/loop_add_5.c: Likewise. + * gcc.target/aarch64/sve/loop_add_5_run.c: Likewise. + * gcc.target/aarch64/sve/miniloop_1.c: Likewise. + * gcc.target/aarch64/sve/miniloop_2.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.dg/tree-ssa/scev-9.c: Expected REFERENCE ADDRESS + instead of just ADDRESS. + * gcc.dg/tree-ssa/scev-10.c: Likewise. + * gcc.dg/tree-ssa/scev-11.c: Likewise. + * gcc.dg/tree-ssa/scev-12.c: Likewise. + * gcc.target/aarch64/sve/index_offset_1.c: New test. + * gcc.target/aarch64/sve/index_offset_1_run.c: Likewise. + * gcc.target/aarch64/sve/loop_add_2.c: Likewise. + * gcc.target/aarch64/sve/loop_add_3.c: Likewise. + * gcc.target/aarch64/sve/while_1.c: Check for indexed addressing modes. + * gcc.target/aarch64/sve/while_2.c: Likewise. + * gcc.target/aarch64/sve/while_3.c: Likewise. + * gcc.target/aarch64/sve/while_4.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.dg/vect/pr60482.c: Remove XFAIL for variable-length vectors. + * gcc.target/aarch64/sve/reduc_1.c: Expect the loop operations + to be predicated. + * gcc.target/aarch64/sve/slp_5.c: Check for a fully-masked loop. + * gcc.target/aarch64/sve/slp_7.c: Likewise. + * gcc.target/aarch64/sve/reduc_5.c: New test. + * gcc.target/aarch64/sve/slp_13.c: Likewise. + * gcc.target/aarch64/sve/slp_13_run.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.dg/tree-ssa/cunroll-10.c: Disable vectorization. + * gcc.dg/tree-ssa/peel1.c: Likewise. + * gcc.dg/vect/vect-load-lanes-peeling-1.c: Remove XFAIL for + variable-length vectors. + * gcc.target/aarch64/sve/vcond_6.c: XFAIL test for AND. + * gcc.target/aarch64/sve/vec_bool_cmp_1.c: Expect BIC instead of NOT. + * gcc.target/aarch64/sve/slp_1.c: Check for a fully-masked loop. + * gcc.target/aarch64/sve/slp_2.c: Likewise. + * gcc.target/aarch64/sve/slp_3.c: Likewise. + * gcc.target/aarch64/sve/slp_4.c: Likewise. + * gcc.target/aarch64/sve/slp_6.c: Likewise. + * gcc.target/aarch64/sve/slp_8.c: New test. + * gcc.target/aarch64/sve/slp_8_run.c: Likewise. + * gcc.target/aarch64/sve/slp_9.c: Likewise. + * gcc.target/aarch64/sve/slp_9_run.c: Likewise. + * gcc.target/aarch64/sve/slp_10.c: Likewise. + * gcc.target/aarch64/sve/slp_10_run.c: Likewise. + * gcc.target/aarch64/sve/slp_11.c: Likewise. + * gcc.target/aarch64/sve/slp_11_run.c: Likewise. + * gcc.target/aarch64/sve/slp_12.c: Likewise. + * gcc.target/aarch64/sve/slp_12_run.c: Likewise. + * gcc.target/aarch64/sve/ld1r_2.c: Likewise. + * gcc.target/aarch64/sve/ld1r_2_run.c: Likewise. + * gcc.target/aarch64/sve/while_1.c: Likewise. + * gcc.target/aarch64/sve/while_2.c: Likewise. + * gcc.target/aarch64/sve/while_3.c: Likewise. + * gcc.target/aarch64/sve/while_4.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * lib/target-supports.exp (check_effective_target_vect_logical_reduc): + New proc. + * gcc.dg/vect/vect-reduc-or_1.c: Also run for vect_logical_reduc + and add an associated scan-dump test. Prevent vectorization + of the first two loops. + * gcc.dg/vect/vect-reduc-or_2.c: Likewise. + * gcc.target/aarch64/sve/reduc_1.c: Add AND, IOR and XOR reductions. + * gcc.target/aarch64/sve/reduc_2.c: Likewise. + * gcc.target/aarch64/sve/reduc_1_run.c: Likewise. + (INIT_VECTOR): Tweak initial value so that some bits are always set. + * gcc.target/aarch64/sve/reduc_2_run.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.dg/vect/pr37027.c: Remove XFAIL for variable-length vectors. + * gcc.dg/vect/pr67790.c: Likewise. + * gcc.dg/vect/slp-reduc-1.c: Likewise. + * gcc.dg/vect/slp-reduc-2.c: Likewise. + * gcc.dg/vect/slp-reduc-3.c: Likewise. + * gcc.dg/vect/slp-reduc-5.c: Likewise. + * gcc.target/aarch64/sve/slp_5.c: New test. + * gcc.target/aarch64/sve/slp_5_run.c: Likewise. + * gcc.target/aarch64/sve/slp_6.c: Likewise. + * gcc.target/aarch64/sve/slp_6_run.c: Likewise. + * gcc.target/aarch64/sve/slp_7.c: Likewise. + * gcc.target/aarch64/sve/slp_7_run.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.dg/vect/no-scevccp-slp-30.c: Don't XFAIL for vect_variable_length + && vect_load_lanes + * gcc.dg/vect/slp-1.c: Likewise. + * gcc.dg/vect/slp-10.c: Likewise. + * gcc.dg/vect/slp-12b.c: Likewise. + * gcc.dg/vect/slp-12c.c: Likewise. + * gcc.dg/vect/slp-17.c: Likewise. + * gcc.dg/vect/slp-19b.c: Likewise. + * gcc.dg/vect/slp-20.c: Likewise. + * gcc.dg/vect/slp-21.c: Likewise. + * gcc.dg/vect/slp-22.c: Likewise. + * gcc.dg/vect/slp-23.c: Likewise. + * gcc.dg/vect/slp-24-big-array.c: Likewise. + * gcc.dg/vect/slp-24.c: Likewise. + * gcc.dg/vect/slp-28.c: Likewise. + * gcc.dg/vect/slp-39.c: Likewise. + * gcc.dg/vect/slp-6.c: Likewise. + * gcc.dg/vect/slp-7.c: Likewise. + * gcc.dg/vect/slp-cond-1.c: Likewise. + * gcc.dg/vect/slp-cond-2-big-array.c: Likewise. + * gcc.dg/vect/slp-cond-2.c: Likewise. + * gcc.dg/vect/slp-multitypes-1.c: Likewise. + * gcc.dg/vect/slp-multitypes-8.c: Likewise. + * gcc.dg/vect/slp-multitypes-9.c: Likewise. + * gcc.dg/vect/slp-multitypes-10.c: Likewise. + * gcc.dg/vect/slp-multitypes-12.c: Likewise. + * gcc.dg/vect/slp-perm-6.c: Likewise. + * gcc.dg/vect/slp-widen-mult-half.c: Likewise. + * gcc.dg/vect/vect-live-slp-1.c: Likewise. + * gcc.dg/vect/vect-live-slp-2.c: Likewise. + * gcc.dg/vect/pr33953.c: Don't XFAIL for vect_variable_length. + * gcc.dg/vect/slp-12a.c: Likewise. + * gcc.dg/vect/slp-14.c: Likewise. + * gcc.dg/vect/slp-15.c: Likewise. + * gcc.dg/vect/slp-multitypes-2.c: Likewise. + * gcc.dg/vect/slp-multitypes-4.c: Likewise. + * gcc.dg/vect/slp-multitypes-5.c: Likewise. + * gcc.target/aarch64/sve/slp_1.c: New test. + * gcc.target/aarch64/sve/slp_1_run.c: Likewise. + * gcc.target/aarch64/sve/slp_2.c: Likewise. + * gcc.target/aarch64/sve/slp_2_run.c: Likewise. + * gcc.target/aarch64/sve/slp_3.c: Likewise. + * gcc.target/aarch64/sve/slp_3_run.c: Likewise. + * gcc.target/aarch64/sve/slp_4.c: Likewise. + * gcc.target/aarch64/sve/slp_4_run.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.dg/vect/vect-ooo-group-1.c: New test. + * gcc.target/aarch64/sve/mask_struct_load_1.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_load_1_run.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_load_2.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_load_2_run.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_load_3.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_load_3_run.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_load_4.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_load_5.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_load_6.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_load_7.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_load_8.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_store_1.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_store_1_run.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_store_2.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_store_2_run.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_store_3.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_store_3_run.c: Likewise. + * gcc.target/aarch64/sve/mask_struct_store_4.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.target/aarch64/sve/struct_move_1.c: New test. + * gcc.target/aarch64/sve/struct_move_2.c: Likewise. + * gcc.target/aarch64/sve/struct_move_3.c: Likewise. + * gcc.target/aarch64/sve/struct_move_4.c: Likewise. + * gcc.target/aarch64/sve/struct_move_5.c: Likewise. + * gcc.target/aarch64/sve/struct_move_6.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_1.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_1_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_2.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_2_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_3.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_3_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_4.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_4_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_5.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_5_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_6.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_6_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_7.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_7_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_8.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_8_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_9.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_9_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_10.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_10_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_11.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_11_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_12.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_12_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_13.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_13_run.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_14.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_15.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_16.c: Likewise. + * gcc.target/aarch64/sve/struct_vect_17.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * lib/target-supports.exp (check_effective_target_vect_load_lanes): + Return true for SVE too. + * g++.dg/vect/pr36648.cc: XFAIL for variable-length vectors + if load/store lanes are supported. + * gcc.dg/vect/slp-10.c: Likewise. + * gcc.dg/vect/slp-12c.c: Likewise. + * gcc.dg/vect/slp-17.c: Likewise. + * gcc.dg/vect/slp-33.c: Likewise. + * gcc.dg/vect/slp-6.c: Likewise. + * gcc.dg/vect/slp-cond-1.c: Likewise. + * gcc.dg/vect/slp-multitypes-11-big-array.c: Likewise. + * gcc.dg/vect/slp-multitypes-11.c: Likewise. + * gcc.dg/vect/slp-multitypes-12.c: Likewise. + * gcc.dg/vect/slp-perm-5.c: Remove XFAIL for variable-length SVE. + * gcc.dg/vect/slp-perm-6.c: Likewise. + * gcc.dg/vect/slp-perm-9.c: Likewise. + * gcc.dg/vect/slp-reduc-6.c: Remove XFAIL for variable-length vectors. + * gcc.dg/vect/vect-load-lanes-peeling-1.c: Expect an epilogue loop + for variable-length vectors. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.target/aarch64/sve/vec_bool_cmp_1.c: New test. + * gcc.target/aarch64/sve/vec_bool_cmp_1_run.c: Likweise. + +2018-01-13 Richard Sandiford + + * g++.target/aarch64/sve/aarch64-sve.exp: New harness. + * g++.target/aarch64/sve/catch_1.C: New test. + * g++.target/aarch64/sve/catch_2.C: Likewise. + * g++.target/aarch64/sve/catch_3.C: Likewise. + * g++.target/aarch64/sve/catch_4.C: Likewise. + * g++.target/aarch64/sve/catch_5.C: Likewise. + * g++.target/aarch64/sve/catch_6.C: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * lib/target-supports.exp (check_effective_target_aarch64_asm_sve_ok): + New proc. + * gcc.target/aarch64/bic_imm_1.c: Use #pragma GCC target "+nosve". + * gcc.target/aarch64/fmaxmin.c: Likewise. + * gcc.target/aarch64/fmul_fcvt_2.c: Likewise. + * gcc.target/aarch64/orr_imm_1.c: Likewise. + * gcc.target/aarch64/pr62178.c: Likewise. + * gcc.target/aarch64/pr71727-2.c: Likewise. + * gcc.target/aarch64/saddw-1.c: Likewise. + * gcc.target/aarch64/saddw-2.c: Likewise. + * gcc.target/aarch64/uaddw-1.c: Likewise. + * gcc.target/aarch64/uaddw-2.c: Likewise. + * gcc.target/aarch64/uaddw-3.c: Likewise. + * gcc.target/aarch64/vect-add-sub-cond.c: Likewise. + * gcc.target/aarch64/vect-compile.c: Likewise. + * gcc.target/aarch64/vect-faddv-compile.c: Likewise. + * gcc.target/aarch64/vect-fcm-eq-d.c: Likewise. + * gcc.target/aarch64/vect-fcm-eq-f.c: Likewise. + * gcc.target/aarch64/vect-fcm-ge-d.c: Likewise. + * gcc.target/aarch64/vect-fcm-ge-f.c: Likewise. + * gcc.target/aarch64/vect-fcm-gt-d.c: Likewise. + * gcc.target/aarch64/vect-fcm-gt-f.c: Likewise. + * gcc.target/aarch64/vect-fmax-fmin-compile.c: Likewise. + * gcc.target/aarch64/vect-fmaxv-fminv-compile.c: Likewise. + * gcc.target/aarch64/vect-fmovd-zero.c: Likewise. + * gcc.target/aarch64/vect-fmovd.c: Likewise. + * gcc.target/aarch64/vect-fmovf-zero.c: Likewise. + * gcc.target/aarch64/vect-fmovf.c: Likewise. + * gcc.target/aarch64/vect-fp-compile.c: Likewise. + * gcc.target/aarch64/vect-ld1r-compile-fp.c: Likewise. + * gcc.target/aarch64/vect-ld1r-compile.c: Likewise. + * gcc.target/aarch64/vect-movi.c: Likewise. + * gcc.target/aarch64/vect-mull-compile.c: Likewise. + * gcc.target/aarch64/vect-reduc-or_1.c: Likewise. + * gcc.target/aarch64/vect-vaddv.c: Likewise. + * gcc.target/aarch64/vect_saddl_1.c: Likewise. + * gcc.target/aarch64/vect_smlal_1.c: Likewise. + * gcc.target/aarch64/vector_initialization_nostack.c: XFAIL for + fixed-length SVE. + * gcc.target/aarch64/sve/aarch64-sve.exp: New file. + * gcc.target/aarch64/sve/arith_1.c: New test. + * gcc.target/aarch64/sve/const_pred_1.C: Likewise. + * gcc.target/aarch64/sve/const_pred_2.C: Likewise. + * gcc.target/aarch64/sve/const_pred_3.C: Likewise. + * gcc.target/aarch64/sve/const_pred_4.C: Likewise. + * gcc.target/aarch64/sve/cvtf_signed_1.c: Likewise. + * gcc.target/aarch64/sve/cvtf_signed_1_run.c: Likewise. + * gcc.target/aarch64/sve/cvtf_unsigned_1.c: Likewise. + * gcc.target/aarch64/sve/cvtf_unsigned_1_run.c: Likewise. + * gcc.target/aarch64/sve/dup_imm_1.c: Likewise. + * gcc.target/aarch64/sve/dup_imm_1_run.c: Likewise. + * gcc.target/aarch64/sve/dup_lane_1.c: Likewise. + * gcc.target/aarch64/sve/ext_1.c: Likewise. + * gcc.target/aarch64/sve/ext_2.c: Likewise. + * gcc.target/aarch64/sve/extract_1.c: Likewise. + * gcc.target/aarch64/sve/extract_2.c: Likewise. + * gcc.target/aarch64/sve/extract_3.c: Likewise. + * gcc.target/aarch64/sve/extract_4.c: Likewise. + * gcc.target/aarch64/sve/fabs_1.c: Likewise. + * gcc.target/aarch64/sve/fcvtz_signed_1.c: Likewise. + * gcc.target/aarch64/sve/fcvtz_signed_1_run.c: Likewise. + * gcc.target/aarch64/sve/fcvtz_unsigned_1.c: Likewise. + * gcc.target/aarch64/sve/fcvtz_unsigned_1_run.c: Likewise. + * gcc.target/aarch64/sve/fdiv_1.c: Likewise. + * gcc.target/aarch64/sve/fdup_1.c: Likewise. + * gcc.target/aarch64/sve/fdup_1_run.c: Likewise. + * gcc.target/aarch64/sve/fmad_1.c: Likewise. + * gcc.target/aarch64/sve/fmla_1.c: Likewise. + * gcc.target/aarch64/sve/fmls_1.c: Likewise. + * gcc.target/aarch64/sve/fmsb_1.c: Likewise. + * gcc.target/aarch64/sve/fmul_1.c: Likewise. + * gcc.target/aarch64/sve/fneg_1.c: Likewise. + * gcc.target/aarch64/sve/fnmad_1.c: Likewise. + * gcc.target/aarch64/sve/fnmla_1.c: Likewise. + * gcc.target/aarch64/sve/fnmls_1.c: Likewise. + * gcc.target/aarch64/sve/fnmsb_1.c: Likewise. + * gcc.target/aarch64/sve/fp_arith_1.c: Likewise. + * gcc.target/aarch64/sve/frinta_1.c: Likewise. + * gcc.target/aarch64/sve/frinti_1.c: Likewise. + * gcc.target/aarch64/sve/frintm_1.c: Likewise. + * gcc.target/aarch64/sve/frintp_1.c: Likewise. + * gcc.target/aarch64/sve/frintx_1.c: Likewise. + * gcc.target/aarch64/sve/frintz_1.c: Likewise. + * gcc.target/aarch64/sve/fsqrt_1.c: Likewise. + * gcc.target/aarch64/sve/fsubr_1.c: Likewise. + * gcc.target/aarch64/sve/index_1.c: Likewise. + * gcc.target/aarch64/sve/index_1_run.c: Likewise. + * gcc.target/aarch64/sve/ld1r_1.c: Likewise. + * gcc.target/aarch64/sve/load_const_offset_1.c: Likewise. + * gcc.target/aarch64/sve/load_const_offset_2.c: Likewise. + * gcc.target/aarch64/sve/load_const_offset_3.c: Likewise. + * gcc.target/aarch64/sve/load_scalar_offset_1.c: Likewise. + * gcc.target/aarch64/sve/logical_1.c: Likewise. + * gcc.target/aarch64/sve/loop_add_1.c: Likewise. + * gcc.target/aarch64/sve/loop_add_1_run.c: Likewise. + * gcc.target/aarch64/sve/mad_1.c: Likewise. + * gcc.target/aarch64/sve/maxmin_1.c: Likewise. + * gcc.target/aarch64/sve/maxmin_1_run.c: Likewise. + * gcc.target/aarch64/sve/maxmin_strict_1.c: Likewise. + * gcc.target/aarch64/sve/maxmin_strict_1_run.c: Likewise. + * gcc.target/aarch64/sve/mla_1.c: Likewise. + * gcc.target/aarch64/sve/mls_1.c: Likewise. + * gcc.target/aarch64/sve/mov_rr_1.c: Likewise. + * gcc.target/aarch64/sve/msb_1.c: Likewise. + * gcc.target/aarch64/sve/mul_1.c: Likewise. + * gcc.target/aarch64/sve/neg_1.c: Likewise. + * gcc.target/aarch64/sve/nlogical_1.c: Likewise. + * gcc.target/aarch64/sve/nlogical_1_run.c: Likewise. + * gcc.target/aarch64/sve/pack_1.c: Likewise. + * gcc.target/aarch64/sve/pack_1_run.c: Likewise. + * gcc.target/aarch64/sve/pack_fcvt_signed_1.c: Likewise. + * gcc.target/aarch64/sve/pack_fcvt_signed_1_run.c: Likewise. + * gcc.target/aarch64/sve/pack_fcvt_unsigned_1.c: Likewise. + * gcc.target/aarch64/sve/pack_fcvt_unsigned_1_run.c: Likewise. + * gcc.target/aarch64/sve/pack_float_1.c: Likewise. + * gcc.target/aarch64/sve/pack_float_1_run.c: Likewise. + * gcc.target/aarch64/sve/popcount_1.c: Likewise. + * gcc.target/aarch64/sve/popcount_1_run.c: Likewise. + * gcc.target/aarch64/sve/reduc_1.c: Likewise. + * gcc.target/aarch64/sve/reduc_1_run.c: Likewise. + * gcc.target/aarch64/sve/reduc_2.c: Likewise. + * gcc.target/aarch64/sve/reduc_2_run.c: Likewise. + * gcc.target/aarch64/sve/reduc_3.c: Likewise. + * gcc.target/aarch64/sve/rev_1.c: Likewise. + * gcc.target/aarch64/sve/revb_1.c: Likewise. + * gcc.target/aarch64/sve/revh_1.c: Likewise. + * gcc.target/aarch64/sve/revw_1.c: Likewise. + * gcc.target/aarch64/sve/shift_1.c: Likewise. + * gcc.target/aarch64/sve/single_1.c: Likewise. + * gcc.target/aarch64/sve/single_2.c: Likewise. + * gcc.target/aarch64/sve/single_3.c: Likewise. + * gcc.target/aarch64/sve/single_4.c: Likewise. + * gcc.target/aarch64/sve/spill_1.c: Likewise. + * gcc.target/aarch64/sve/store_scalar_offset_1.c: Likewise. + * gcc.target/aarch64/sve/subr_1.c: Likewise. + * gcc.target/aarch64/sve/trn1_1.c: Likewise. + * gcc.target/aarch64/sve/trn2_1.c: Likewise. + * gcc.target/aarch64/sve/unpack_fcvt_signed_1.c: Likewise. + * gcc.target/aarch64/sve/unpack_fcvt_signed_1_run.c: Likewise. + * gcc.target/aarch64/sve/unpack_fcvt_unsigned_1.c: Likewise. + * gcc.target/aarch64/sve/unpack_fcvt_unsigned_1_run.c: Likewise. + * gcc.target/aarch64/sve/unpack_float_1.c: Likewise. + * gcc.target/aarch64/sve/unpack_float_1_run.c: Likewise. + * gcc.target/aarch64/sve/unpack_signed_1.c: Likewise. + * gcc.target/aarch64/sve/unpack_signed_1_run.c: Likewise. + * gcc.target/aarch64/sve/unpack_unsigned_1.c: Likewise. + * gcc.target/aarch64/sve/unpack_unsigned_1_run.c: Likewise. + * gcc.target/aarch64/sve/uzp1_1.c: Likewise. + * gcc.target/aarch64/sve/uzp1_1_run.c: Likewise. + * gcc.target/aarch64/sve/uzp2_1.c: Likewise. + * gcc.target/aarch64/sve/uzp2_1_run.c: Likewise. + * gcc.target/aarch64/sve/vcond_1.C: Likewise. + * gcc.target/aarch64/sve/vcond_1_run.C: Likewise. + * gcc.target/aarch64/sve/vcond_2.c: Likewise. + * gcc.target/aarch64/sve/vcond_2_run.c: Likewise. + * gcc.target/aarch64/sve/vcond_3.c: Likewise. + * gcc.target/aarch64/sve/vcond_4.c: Likewise. + * gcc.target/aarch64/sve/vcond_4_run.c: Likewise. + * gcc.target/aarch64/sve/vcond_5.c: Likewise. + * gcc.target/aarch64/sve/vcond_5_run.c: Likewise. + * gcc.target/aarch64/sve/vcond_6.c: Likewise. + * gcc.target/aarch64/sve/vcond_6_run.c: Likewise. + * gcc.target/aarch64/sve/vec_init_1.c: Likewise. + * gcc.target/aarch64/sve/vec_init_1_run.c: Likewise. + * gcc.target/aarch64/sve/vec_init_2.c: Likewise. + * gcc.target/aarch64/sve/vec_perm_1.c: Likewise. + * gcc.target/aarch64/sve/vec_perm_1_run.c: Likewise. + * gcc.target/aarch64/sve/vec_perm_1_overrange_run.c: Likewise. + * gcc.target/aarch64/sve/vec_perm_const_1.c: Likewise. + * gcc.target/aarch64/sve/vec_perm_const_1_overrun.c: Likewise. + * gcc.target/aarch64/sve/vec_perm_const_1_run.c: Likewise. + * gcc.target/aarch64/sve/vec_perm_const_single_1.c: Likewise. + * gcc.target/aarch64/sve/vec_perm_const_single_1_run.c: Likewise. + * gcc.target/aarch64/sve/vec_perm_single_1.c: Likewise. + * gcc.target/aarch64/sve/vec_perm_single_1_run.c: Likewise. + * gcc.target/aarch64/sve/zip1_1.c: Likewise. + * gcc.target/aarch64/sve/zip2_1.c: Likewise. + +2018-01-13 Richard Sandiford + Alan Hayward + David Sherwood + + * lib/target-supports.exp (check_effective_target_aarch64_sve) + (aarch64_sve_bits, check_effective_target_aarch64_sve_hw) + (aarch64_sve_hw_bits, check_effective_target_aarch64_sve256_hw): + New procedures. + (check_effective_target_vect_perm): Handle SVE. + (check_effective_target_vect_perm_byte): Likewise. + (check_effective_target_vect_perm_short): Likewise. + (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise. + (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. + (check_effective_target_vect_widen_mult_hi_to_si): Likewise. + (check_effective_target_vect_element_align_preferred): Likewise. + (check_effective_target_vect_align_stack_vars): Likewise. + (check_effective_target_vect_load_lanes): Likewise. + (check_effective_target_vect_masked_store): Likewise. + (available_vector_sizes): Use aarch64_sve_bits for SVE. + * gcc.dg/vect/tree-vect.h (VECTOR_BITS): Define appropriately for SVE. + * gcc.dg/tree-ssa/ssa-dom-cse-2.c: Add SVE XFAIL. + * gcc.dg/vect/bb-slp-pr69907.c: Likewise. + * gcc.dg/vect/no-vfa-vect-depend-2.c: Likewise. + * gcc.dg/vect/no-vfa-vect-depend-3.c: Likewise. + * gcc.dg/vect/slp-23.c: Likewise. + * gcc.dg/vect/slp-perm-5.c: Likewise. + * gcc.dg/vect/slp-perm-6.c: Likewise. + * gcc.dg/vect/slp-perm-9.c: Likewise. + * gcc.dg/vect/slp-reduc-3.c: Likewise. + * gcc.dg/vect/vect-114.c: Likewise. + * gcc.dg/vect/vect-mult-const-pattern-1.c: Likewise. + * gcc.dg/vect/vect-mult-const-pattern-2.c: Likewise. + +2018-01-13 Richard Sandiford + + * gcc.dg/vect/no-scevccp-slp-30.c: XFAIL SLP test for + vect_variable_length, expecting the test to be vectorized + without SLP instead. + * gcc.dg/vect/pr33953.c: Likewise. + * gcc.dg/vect/pr37027.c: Likewise. + * gcc.dg/vect/pr67790.c: Likewise. + * gcc.dg/vect/pr68445.c: Likewise. + * gcc.dg/vect/slp-1.c: Likewise. + * gcc.dg/vect/slp-10.c: Likewise. + * gcc.dg/vect/slp-12a.c: Likewise. + * gcc.dg/vect/slp-12b.c: Likewise. + * gcc.dg/vect/slp-12c.c: Likewise. + * gcc.dg/vect/slp-13-big-array.c: Likewise. + * gcc.dg/vect/slp-13.c: Likewise. + * gcc.dg/vect/slp-14.c: Likewise. + * gcc.dg/vect/slp-15.c: Likewise. + * gcc.dg/vect/slp-17.c: Likewise. + * gcc.dg/vect/slp-19b.c: Likewise. + * gcc.dg/vect/slp-2.c: Likewise. + * gcc.dg/vect/slp-20.c: Likewise. + * gcc.dg/vect/slp-21.c: Likewise. + * gcc.dg/vect/slp-22.c: Likewise. + * gcc.dg/vect/slp-24-big-array.c: Likewise. + * gcc.dg/vect/slp-24.c: Likewise. + * gcc.dg/vect/slp-28.c: Likewise. + * gcc.dg/vect/slp-39.c: Likewise. + * gcc.dg/vect/slp-42.c: Likewise. + * gcc.dg/vect/slp-6.c: Likewise. + * gcc.dg/vect/slp-7.c: Likewise. + * gcc.dg/vect/slp-cond-1.c: Likewise. + * gcc.dg/vect/slp-cond-2-big-array.c: Likewise. + * gcc.dg/vect/slp-cond-2.c: Likewise. + * gcc.dg/vect/slp-multitypes-1.c: Likewise. + * gcc.dg/vect/slp-multitypes-10.c: Likewise. + * gcc.dg/vect/slp-multitypes-12.c: Likewise. + * gcc.dg/vect/slp-multitypes-2.c: Likewise. + * gcc.dg/vect/slp-multitypes-4.c: Likewise. + * gcc.dg/vect/slp-multitypes-5.c: Likewise. + * gcc.dg/vect/slp-multitypes-8.c: Likewise. + * gcc.dg/vect/slp-multitypes-9.c: Likewise. + * gcc.dg/vect/slp-reduc-1.c: Likewise. + * gcc.dg/vect/slp-reduc-2.c: Likewise. + * gcc.dg/vect/slp-reduc-4.c: Likewise. + * gcc.dg/vect/slp-reduc-5.c: Likewise. + * gcc.dg/vect/slp-reduc-7.c: Likewise. + * gcc.dg/vect/slp-widen-mult-half.c: Likewise. + * gcc.dg/vect/vect-live-slp-1.c: Likewise. + * gcc.dg/vect/vect-live-slp-2.c: Likewise. + * gcc.dg/vect/vect-live-slp-3.c: Likewise. + +2018-01-13 Jakub Jelinek + + PR c/83801 + * gcc.dg/pr83801.c: New test. + +2018-01-13 Paul Thomas + + PR fortran/52162 + * gfortran.dg/bounds_check_19.f90: New test. + +2018-01-12 Jakub Jelinek + + * gcc.target/powerpc/float128-hw7.c: Use scan-assembler-times + instead of scan-assembler-not for xsnabsqp. + +2018-01-12 Jerry DeLisle + + PR libgfortran/83525 + * gfortran.dg/newunit_5.f90: New test. + +2018-01-12 Vladimir Makarov + + PR rtl-optimization/80481 + * g++.dg/pr80481.C: New. + +2018-01-12 Uros Bizjak + + PR target/83628 + * gcc.target/alpha/pr83628-3.c: New test. + +2018-01-12 Rainer Orth + + * lib/target-supports.exp (check_effective_target_avx512f): Also + check for __builtin_ia32_addsd_round, + __builtin_ia32_getmantsd_round. + * gcc.target/i386/i386.exp (check_effective_target_avx512f): Remove. + +2018-01-12 Segher Boessenkool + + PR target/83629 + * gcc.target/powerpc/pr83629.c: Require ilp32. + +2018-01-12 Richard Biener + + PR tree-optimization/80846 + * gcc.target/i386/pr80846-1.c: New testcase. + * gcc.target/i386/pr80846-2.c: Likewise. + +2018-01-12 Eric Botcazou + + * gcc.c-torture/execute/20180112-1.c: New test. + +2018-01-12 Tom de Vries + + * g++.dg/ext/label13.C: Add dg-require-effective-target indirect_jumps. + * g++.dg/ext/label13a.C: Same. + * g++.dg/ext/label14.C: Same. + * g++.dg/ext/label2.C: Same. + * g++.dg/ext/label3.C: Same. + * g++.dg/torture/pr42462.C: Same. + * g++.dg/torture/pr42739.C: Same. + * g++.dg/warn/Wunused-label-3.C: Same. + +2018-01-12 Tom de Vries + + * c-c++-common/dwarf2/vla1.c: Add dg-require-effective-target alloca. + * g++.dg/Walloca1.C: Same. + * g++.dg/cpp0x/pr70338.C: Same. + * g++.dg/cpp1y/lambda-generic-vla1.C: Same. + * g++.dg/cpp1y/vla10.C: Same. + * g++.dg/cpp1y/vla2.C: Same. + * g++.dg/cpp1y/vla6.C: Same. + * g++.dg/cpp1y/vla8.C: Same. + * g++.dg/debug/debug5.C: Same. + * g++.dg/debug/debug6.C: Same. + * g++.dg/debug/pr54828.C: Same. + * g++.dg/diagnostic/pr70105.C: Same. + * g++.dg/eh/cleanup5.C: Same. + * g++.dg/eh/spbp.C: Same. + * g++.dg/ext/tmplattr9.C: Same. + * g++.dg/ext/vla10.C: Same. + * g++.dg/ext/vla11.C: Same. + * g++.dg/ext/vla12.C: Same. + * g++.dg/ext/vla15.C: Same. + * g++.dg/ext/vla16.C: Same. + * g++.dg/ext/vla17.C: Same. + * g++.dg/ext/vla3.C: Same. + * g++.dg/ext/vla6.C: Same. + * g++.dg/ext/vla7.C: Same. + * g++.dg/init/array24.C: Same. + * g++.dg/init/new47.C: Same. + * g++.dg/init/pr55497.C: Same. + * g++.dg/opt/pr78201.C: Same. + * g++.dg/template/vla2.C: Same. + * g++.dg/torture/Wsizeof-pointer-memaccess1.C: Same. + * g++.dg/torture/Wsizeof-pointer-memaccess2.C: Same. + * g++.dg/torture/pr62127.C: Same. + * g++.dg/torture/pr67055.C: Same. + * g++.dg/torture/stackalign/eh-alloca-1.C: Same. + * g++.dg/torture/stackalign/eh-inline-2.C: Same. + * g++.dg/torture/stackalign/eh-vararg-1.C: Same. + * g++.dg/torture/stackalign/eh-vararg-2.C: Same. + * g++.dg/warn/Wplacement-new-size-5.C: Same. + * g++.dg/warn/Wsizeof-pointer-memaccess-1.C: Same. + * g++.dg/warn/Wvla-1.C: Same. + * g++.dg/warn/Wvla-3.C: Same. + * g++.old-deja/g++.ext/array2.C: Same. + * g++.old-deja/g++.ext/constructor.C: Same. + * g++.old-deja/g++.law/builtin1.C: Same. + * g++.old-deja/g++.other/crash12.C: Same. + * g++.old-deja/g++.other/eh3.C: Same. + * g++.old-deja/g++.pt/array6.C: Same. + * g++.old-deja/g++.pt/dynarray.C: Same. + +2018-01-12 Rainer Orth + + * g++.dg/cpp0x/inh-ctor30.C: Allow for alternate mangled form. + +2018-01-12 Rainer Orth + + PR libfortran/67412 + * gfortran.dg/execute_command_line_2.f90: Remove dg-xfail-run-if + on *-*-solaris2.10. + +2018-01-12 Rainer Orth + + * lib/target-supports.exp (check_effective_target_branch_cost): + Accept all x86 targets. + +2018-01-12 Martin Liska + + PR ipa/83054 + * g++.dg/warn/pr83054.C: New test. + +2018-01-11 Bill Schmidt + + * gcc.target/powerpc/spec-barr-1.c: New file. + +2018-01-11 H.J. Lu + + PR target/83330 + * gcc.target/i386/pr83330.c: New test. + +2018-01-11 Steven G. Kargl + + PR fortran/79383 + * gfortran.dg/dtio_31.f03: New test. + * gfortran.dg/dtio_32.f03: New test. + +2018-01-11 David Malcolm + + PR c++/43486 + * g++.dg/wrappers: New subdirectory. + * g++.dg/wrappers/README: New file. + * g++.dg/wrappers/alloc.C: New test case. + * g++.dg/wrappers/cow-istream-string.C: New test case. + * g++.dg/wrappers/cp-stdlib.C: New test case. + * g++.dg/wrappers/sanitizer_coverage_libcdep_new.C: New test case. + * g++.dg/wrappers/wrapper-around-type-pack-expansion.C: New test case. + +2018-01-11 Jan Hubicka + + PR middle-end/83718 + * g++.dg/torture/pr83718.C: New testcase. + +2018-01-11 Martin Jambor + + PR ipa/83178 + * g++.dg/ipa/devirt-22.C: Adjust scan-dump-times count. + +2018-01-11 Bin Cheng + + PR tree-optimization/83695 + * gcc.dg/tree-ssa/pr83695.c: New test. + +2018-01-11 Kyrylo Tkachov + + * gcc.target/arm/simd/fp16fml_lane_high.c: New test. + * gcc.target/arm/simd/fp16fml_lane_low.c: New test. + +2018-01-11 Kyrylo Tkachov + + * gcc.target/arm/multilib.exp: Add combination tests for fp16fml. + * gcc.target/arm/simd/fp16fml_high.c: New test. + * gcc.target/arm/simd/fp16fml_low.c: Likewise. + * lib/target-supports.exp + (check_effective_target_arm_fp16fml_neon_ok_nocache, + check_effective_target_arm_fp16fml_neon_ok, + add_options_for_arm_fp16fml_neon): New procedures. + +2018-01-11 Kyrylo Tkachov + + * gcc.target/arm/multilib.exp: Add some -march=armv8.4-a + combination tests. + +2018-01-11 Richard Biener + + PR tree-optimization/83435 + * gcc.dg/graphite/pr83435.c: New testcase. + +2018-01-11 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.target/aarch64/pr70044.c: Allow "mov x29, sp" too. + +2018-01-11 Tamar Christina + + * gcc.target/aarch64/advsimd-intrinsics/vdot-compile-2.c: New. + +2018-01-11 Sudakshina Das + + PR target/82096 + * gcc.c-torture/compile/pr82096.c: New test. + +2018-01-11 Ed Schonberg + + * gnat.dg/bip_overlay.adb, gnat.dg/bip_overlay.ads: New testcase. + +2018-01-11 Hristian Kirtchev + + * gnat.dg/protected_func.adb, gnat.dg/protected_func.ads: New testcase. + +2018-01-11 Justin Squirek + + * gnat.dg/expr_func4.adb: New testcase. + +2018-01-11 Hristian Kirtchev + + * gnat.dg/pure_subp_body.adb, gnat.dg/pure_subp_body_pkg.ads: New + testcase. + +2018-01-11 Bob Duff + + * gnat.dg/protected_null.adb: New testcase. + +2018-01-11 Ed Schonberg + + * gnat.dg/expr_func3.adb, gnat.dg/expr_func3.ads: New testcase. + +2018-01-11 Ed Schonberg + + * gnat.dg/fixedpnt2.adb, gnat.dg/fixedpnt2.ads: New testcase. + +2018-01-11 Justin Squirek + + * gnat.dg/loopvar.adb: New testcase. + +2018-01-10 Jan Hubicka + + PR middle-end/83189 + * gfortran.fortran-torture/compile/pr83189.f90: New testcase. + +2018-01-10 Jan Hubicka + + * gcc.c-torture/compile/pr83575.c: New testcase. + +2018-01-10 Michael Collison + + * gcc.target/aarch64/fp16_fmul_high_1.c: New testcase. + * gcc.target/aarch64/fp16_fmul_high_2.c: New testcase. + * gcc.target/aarch64/fp16_fmul_high_3.c: New testcase. + * gcc.target/aarch64/fp16_fmul_high.h: New shared testcase. + * gcc.target/aarch64/fp16_fmul_lane_high_1.c: New testcase. + * gcc.target/aarch64/fp16_fmul_lane_high_1.c: New testcase. + * gcc.target/aarch64/fp16_fmul_lane_high_1.c: New testcase. + * gcc.target/aarch64/fp16_fmul_lane_high.h: New shared testcase. + * gcc.target/aarch64/fp16_fmul_low_1.c: New testcase. + * gcc.target/aarch64/fp16_fmul_low_2.c: New testcase. + * gcc.target/aarch64/fp16_fmul_low_2.c: New testcase. + * gcc.target/aarch64/fp16_fmul_low.h: New sharedtestcase. + * gcc.target/aarch64/fp16_fmul_lane_low_1.c: New testcase. + * gcc.target/aarch64/fp16_fmul_lane_low_2.c: New testcase. + * gcc.target/aarch64/fp16_fmul_lane_low_3.c: New testcase. + * gcc.target/aarch64/fp16_fmul_lane_low.h: New shared testcase. + +2018-01-10 Michael Collison + + * gcc.target/aarch64/sha2.h: New shared testcase. + * gcc.target/aarch64/sha2_1.c: New testcase. + * gcc.target/aarch64/sha2_2.c: New testcase. + * gcc.target/aarch64/sha2_3.c: New testcase. + * gcc.target/aarch64/sha3.h: New shared testcase. + * gcc.target/aarch64/sha3_1.c: New testcase. + * gcc.target/aarch64/sha3_2.c: New testcase. + * gcc.target/aarch64/sha3_3.c: New testcase. + +2018-01-10 Michael Collison + + * gcc.target/aarch64/sm3_sm4.c: New testcase. + +2018-01-10 Martin Sebor + + PR tree-optimization/83781 + * gcc.dg/strlenopt-42.c: New test. + +2018-01-11 Martin Sebor + Prathamesh Kulkarni + + PR tree-optimization/83501 + PR tree-optimization/81703 + + * gcc.dg/strlenopt-39.c: New test-case. + * gcc.dg/pr81703.c: Likewise. + +2018-01-10 Eric Botcazou + + * gnat.dg/atomic10.adb: New test. + +2018-01-10 Steven G. Kargl + + PR fortran/82367 + * gfortran.dg/deferred_character_18.f90: New test. + +2018-01-10 Martin Sebor + + PR tree-optimization/83671 + * gcc.dg/strlenopt-40.c: New test. + * gcc.dg/strlenopt-41.c: New test. + +2018-01-10 Steven G. Kargl + + PR fortran/83093 + * gfortran.dg/allocate_with_typespec_7.f90: New test. + +2018-01-10 Peter Bergner + + PR target/83399 + * gcc.target/powerpc/pr83399.c: New test. + +2018-01-10 David Malcolm + + PR c++/43486 + * g++.dg/diagnostic/param-type-mismatch.C: Update expected results + to reflect that the arguments are correctly underlined. + * g++.dg/plugin/diagnostic-test-expressions-1.C: Add test coverage + for globals, params, locals and literals. + (test_sizeof): Directly test the location of "sizeof", rather than + when used in compound expressions. + (test_alignof): Likewise for "alignof". + (test_string_literals): Likewise for string literals. + (test_numeric_literals): Likewise for numeric literals. + (test_builtin_offsetof): Likewise for "__builtin_offsetof". + (test_typeid): Likewise for typeid. + (test_unary_plus): New. + * g++.dg/warn/Wformat-1.C: Add tests of pointer arithmetic on + format strings. + +2018-01-10 Uros Bizjak + + * gcc.target/i386/pr82618.c (dg-options): Add -mno-stv. + +2018-01-10 Aaron Sawdey + + * gcc.dg/memcmp-1.c: Reduce runtime to something reasonable. + +2018-01-10 Marek Polacek + + PR c++/82541 + * g++.dg/warn/Wduplicated-branches4.C: New test. + +2018-01-10 Jakub Jelinek + + PR c++/81327 + * g++.dg/Wclass-memaccess-2.C: Don't expect a warning when explicitly + cast to void *. + +2018-01-10 Paolo Carlini + + PR c++/81055 + * g++.dg/cpp0x/new2.C: New. + +2018-01-10 H.J. Lu + + PR target/83735 + * gcc.target/i386/pr83735.c: New test. + +2018-01-10 Christophe Lyon + + * lib/target-supports.exp (check_effective_target_branch_cost): + New function. + * gcc.dg/builtin-bswap-7.c: Use branch_cost effective target. + * gcc.dg/pr21643.c: Likewise. + * gcc.dg/pr46309.c: Likewise. + * gcc.dg/tree-ssa/phi-opt-11.c: Likewise. + * gcc.dg/tree-ssa/phi-opt-2.c: Likewise. + * gcc.dg/tree-ssa/reassoc-32.c: Likewise. + * gcc.dg/tree-ssa/reassoc-33.c: Likewise. + * gcc.dg/tree-ssa/reassoc-34.c: Likewise. + * gcc.dg/tree-ssa/reassoc-35.c: Likewise. + * gcc.dg/tree-ssa/reassoc-36.c: Likewise. + * gcc.dg/tree-ssa/ssa-ifcombine-13.c: Likewise. + * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-1.c: Likewise. + * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-2.c: Likewise. + * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-3.c: Likewise. + * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-4.c: Likewise. + * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-5.c: Likewise. + * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-6.c: Likewise. + +2018-01-10 Segher Boessenkool + + PR target/83629 + * gcc.target/powerpc/pr83629.c: New testcase. + +2018-01-10 Richard Biener + + PR testsuite/78768 + * gcc.dg/pr78768.c: Un-XFAIL. + +2018-01-10 Richard Biener + + PR debug/82425 + * gcc.dg/guality/inline-params-2.c: Un-XFAIL for slim LTO. + +2018-01-10 Richard Sandiford + + PR tree-optimization/83753 + * gcc.dg/torture/pr83753.c: New test. + +2018-01-09 Jan Hubicka + + * gcc.target/i386/avx2-gather-1.c: Add -march. + * gcc.target/i386/avx2-gather-2.c: Add -march. + * gcc.target/i386/avx2-gather-3.c: Add -march. + * gcc.target/i386/avx2-gather-4.c: Add -march. + * gcc.target/i386/avx2-gather-5.c: Add -march. + * gcc.target/i386/avx2-gather-6.c: Add -march. + * gcc.target/i386/avx512f-gather-1.c: Add -march. + * gcc.target/i386/avx512f-gather-2.c: Add -march. + * gcc.target/i386/avx512f-gather-3.c: Add -march. + * gcc.target/i386/avx512f-gather-4.c: Add -march. + * gcc.target/i386/avx512f-gather-5.c: Add -march. + * gcc.target/i386/avx512f-i32gatherd512-1.c: Add -march. + * gcc.target/i386/avx512f-i32gatherd512-2.c: Add -march. + * gcc.target/i386/avx512f-i32gatherpd512-1.c: Add -march. + * gcc.target/i386/avx512f-i32gatherpd512-2.c: Add -march. + * gcc.target/i386/avx512f-i32gatherps512-1.c: Add -march. + +2018-01-09 H.J. Lu + + PR target/78585: + * gcc.target/i386/pr78585.c: New test. + +2018-01-09 Jakub Jelinek + + PR c++/83734 + * g++.dg/cpp0x/pr83734.C: New test. + +2018-01-09 Carl Love + + * gcc.target/powerpc/builtins-1.c (main): Add tests for vec_mergee and + vec_mergeo builtins with float, double, long long, unsigned long long, + bool long long arguments. + * gcc.target/powerpc/builtins-3-runnable.c (main): Add test for + vec_float2 with double arguments. + * gcc.target/powerpc/builtins-mergew-mergow.c: New runable test for the + vec_mergew and vec_mergow builtins. + +2018-01-09 Steven G. Kargl + + PR fortran/83742 + * gfortran.dg/contiguous_6.f90: New test. + +2018-01-09 Richard Biener + + PR tree-optimization/83668 + * gcc.dg/graphite/pr83668.c: New testcase. + +2018-01-09 Joseph Myers + + PR tree-optimization/64811 + * gcc.dg/torture/inf-compare-1.c, gcc.dg/torture/inf-compare-2.c, + gcc.dg/torture/inf-compare-3.c, gcc.dg/torture/inf-compare-4.c, + gcc.dg/torture/inf-compare-5.c, gcc.dg/torture/inf-compare-6.c, + gcc.dg/torture/inf-compare-7.c, gcc.dg/torture/inf-compare-8.c: + New tests. + * gcc.c-torture/execute/ieee/fp-cmp-7.x: New file. + +2018-01-09 Georg-Johann Lay + + PR target/79883 + * gcc.target/avr/torture/pr57631.c (dg-warning): Quote 'signal'. + +2018-01-09 Tamar Christina + + PR target/82641 + * gcc.target/arm/pragma_fpu_attribute.c: Rewrite to use + no NEON and require softfp or hard float-abi. + * gcc.target/arm/pragma_fpu_attribute_2.c: Likewise. + +2018-01-09 Richard Biener + + PR tree-optimization/83572 + * gcc.dg/graphite/pr83572.c: New testcase. + +2018-01-09 Jakub Jelinek + + PR target/83507 + * gcc.dg/sms-13.c: New test. + +2018-01-08 Steven G. Kargl + + PR fortran/83741 + * gfortran.dg/allocate_assumed_charlen_3.f90: New test. + +2018-01-08 Chih-Mao Chen + Monk Chiang + + * gcc.target/riscv/save-restore-1.c: New. + +2018-01-08 Bill Schmidt + + PR target/83677 + * gcc.target/powerpc/pr83677.c: New file. + +2018-01-08 Jeff Law + + PR rtl-optimizatin/81308 + * g++.dg/pr81308-1.C: New test. + * g++.dg/pr81308-2.C: New test. + +2018-01-08 Vidya Praveen + + PR target/83663 - Revert r255946 + * gcc.target/aarch64/vect-slp-dup.c: New. + +2018-01-08 Kyrylo Tkachov + + * gcc.target/arm/multilib.exp: Add fp16, dotprod and armv8.3-a + combination tests. + +2018-01-08 Richard Biener + + PR tree-optimization/83563 + * gcc.dg/graphite/pr83563.c: New testcase. + +2018-01-08 Richard Biener + + PR middle-end/83713 + * g++.dg/torture/pr83713.C: New testcase. + +2018-01-08 Tom de Vries + + * gcc.dg/tree-ssa/ssa-dom-cse-2.c: Xfail scan for nvptx. + +2018-01-08 Richard Biener + + PR tree-optimization/83685 + * gcc.dg/torture/pr83685.c: New testcase. + +2018-01-08 Richard Biener + + PR lto/83719 + * gcc.dg/lto/pr83719_0.c: New testcase. + +2018-01-08 Tom de Vries + + * gcc.dg/graphite/interchange-7.c: Add dg-require-stack-size. + * gcc.dg/graphite/run-id-1.c: Same. + * gcc.dg/tree-ssa/loop-interchange-4.c: Same. + +2018-01-08 Paul Thomas + + PR fortran/83611 + * gfortran.dg/pdt_15.f03: Bump count of 'n.data = 0B' to 8. + * gfortran.dg/pdt_26.f03: Bump count of '_malloc' to 9. + * gfortran.dg/pdt_27.f03: New test. + + PR fortran/83731 + * gfortran.dg/pdt_28.f03: New test. + +2018-01-08 Tom de Vries + + * c-c++-common/builtins.c: Require effective target alloca. + * gcc.dg/Wrestrict.c: Same. + * gcc.dg/tree-ssa/loop-interchange-15.c: Same. + +2018-01-08 Richard Biener + + PR middle-end/83580 + * gcc.dg/torture/pr83580.c: New testcase. + +2018-01-08 Richard Biener + + PR middle-end/83517 + * gcc.dg/pr83517.c: New testcase. + +2018-01-06 Aldy Hernandez + + PR middle-end/81897 + * gcc.dg/uninit-pr81897.c: New test. + +2018-01-06 Martin Sebor + + PR tree-optimization/83640 + * gcc.dg/Wrestrict-6.c: New test. + * gcc.dg/pr83640.c: New test. + +2018-01-06 Richard Sandiford + + * gcc.target/aarch64/reg-alloc-1.c: New test. + +2018-01-06 Janne Blomqvist + + PR fortran/50892 + * gfortran.dg/char_pointer_assign_icb_1.f90: New test. + +2018-01-06 Jakub Jelinek + + PR debug/83480 + * gcc.dg/pr83480.c: New test. + + PR rtl-optimization/83682 + * gcc.target/i386/pr83682.c: New test. + +2018-01-05 Janne Blomqvist + + PR fortran/78534 + PR fortran/66310 + * gfortran.dg/char_cast_1.f90: Update scan pattern. + * gfortran.dg/dependency_49.f90: Likewise. + * gfortran.dg/repeat_4.f90: Use integers of kind C_SIZE_T. + * gfortran.dg/repeat_7.f90: New test for PR 66310. + * gfortran.dg/scan_2.f90: Handle potential cast in assignment. + * gfortran.dg/string_1.f90: Limit to ilp32 targets. + * gfortran.dg/string_1_lp64.f90: New test. + * gfortran.dg/string_3.f90: Limit to ilp32 targets. + * gfortran.dg/string_3_lp64.f90: New test. + +2018-01-05 Jakub Jelinek + + PR target/83604 + * gcc.target/i386/sse-26.c: New test. + + PR target/83604 + * gcc.target/i386/pr83604.c: New test. + +2018-01-05 Richard Sandiford + + * gcc.dg/vect/vect-align-4.c: New test. + * gcc.dg/vect/vect-nb-iter-ub-2.c (cc): Remove alignment attribute + and redefine as a structure with an unaligned member "b". + (foo): Update accordingly. + +2018-01-05 Sudakshina Das + + PR target/82439 + * gcc.target/aarch64/bics_5.c: New test. + * gcc.target/arm/bics_5.c: Likewise. + +2018-01-05 Jakub Jelinek + + PR tree-optimization/83605 + * gcc.dg/pr83605.c: New test. + +2018-01-04 Jakub Jelinek + + PR target/83554 + * gcc.target/i386/pr83554.c: New test. + + PR ipa/82352 + * g++.dg/ipa/pr82352.C (size_t): Define to __SIZE_TYPE__ instead of + long unsigned int. + +2018-01-04 Thomas Koenig + + PR fortran/83683 + PR fortran/45689 + * gfortran.dg/eoshift_8.f90: New test. + * gfortran.dg/simplify_eoshift_1.f90: New test. + +2018-01-04 Jakub Jelinek + + PR debug/83585 + * gcc.dg/pr83585.c: New test. + +2018-01-04 Nathan Sidwell + + PR c++/83667 + * g++.dg/ipa/pr83667.C: Fix regex, require alias. + +2018-01-04 Jakub Jelinek + + PR debug/83666 + * gcc.dg/pr83666.c: New test. + +2018-01-04 Uros Bizjak + + PR target/83628 + * gcc.target/alpha/pr83628-1.c: New test. + * gcc.target/alpha/pr83628-2.c: Ditto. + +2018-01-04 Martin Liska + + PR ipa/82352 + * g++.dg/ipa/pr82352.C: New test. + +2018-01-04 Jakub Jelinek + + * gcc.dg/vect-opt-info-1.c: Moved to ... + * gcc.dg/vect/nodump-vect-opt-info-1.c: ... here. Only run on + vect_int targets, use dg-additional-options instead of dg-options and + use relative line numbers instead of absolute. + +2018-01-03 Martin Sebor + + PR tree-optimization/83655 + * gcc.dg/Wrestrict-5.c: New test. + * c-c++-common/builtins.c: New test. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.target/aarch64/vect-movi.c (movi_float_lsl24): New function. + (main): Call it. + +2018-01-03 Jeff Law + + PR target/83641 + * gcc.target/i386/stack-check-17.c: New test. + * gcc.target/i386/stack-check-12.c: Drop unnecessary asm. + +2018-01-03 Jakub Jelinek + + PR debug/83621 + * gcc.dg/pr83621.c: New test. + + PR debug/83645 + * gcc.dg/pr83645.c: New test. + +2018-01-03 Martin Sebor + + PR tree-optimization/83603 + * gcc.dg/Wrestrict-4.c: New test. + + PR c/83559 + * gcc.dg/const-2.c: New test. + * gcc.dg/pure-3.c: New test. + +2018-01-03 Martin Sebor + + * gcc.dg/Wrestrict-3.c: New test. + +2018-01-03 Jakub Jelinek + + PR c++/83555 + * g++.dg/opt/pr83555.C: New test. + * g++.dg/ubsan/pr83555.C: New test. + +2018-01-03 David Malcolm + + PR c/82050 + * gcc.dg/plugin/expensive-selftests-1.c: Update regexp to handle + the !CHECKING_P case by expecting a note. + * gcc.dg/plugin/expensive_selftests_plugin.c (plugin_init): Issue + a note for the !CHECKING_P case, and move the return statement + outside of #if CHECKING_P guard. + +2018-01-03 Jeff Law + + PR middle-end/83654 + * gcc.target/i386/stack-check-18.c: New test. + * gcc.target/i386/stack-check-19.c: New test. + +2018-01-03 Martin Sebor + + PR tree-optimization/83501 + * c-c++-common/Warray-bounds-3.c: Remove xfail. + +2018-01-03 Prathamesh Kulkarni + + PR tree-optimization/83501 + * gcc.dg/tree-ssa/pr83501-1.c: New test. + +2018-01-03 Nathan Sidwell + + PR c++/83667 + * g++.dg/ipa/pr83667.C: New. + +2018-01-03 Martin Liska + + PR tree-optimization/83593 + * gcc.dg/pr83593.c: New test. + +2018-01-03 Martin Liska + + PR ipa/83549 + * g++.dg/ipa/pr83549.C: New test. + +2018-01-03 Marek Polacek + + PR c++/83592 + * g++.dg/warn/mvp2.C: New test. + +2018-01-03 Jakub Jelinek + + PR preprocessor/83602 + * g++.dg/cpp/pr83602.C: New test. + + PR c++/83634 + * g++.dg/parse/pr83634.C: New test. + +2018-01-03 Thomas Koenig + + PR fortran/83664 + * gfortran.dg/eoshift_7.f90: New test. + +2018-01-03 Jan Beulich + + * gcc.target/i386/avx512vl-no-vmovdqu8.c, + gcc.target/i386/avx512vl-no-vmovdqu16.c: New. + +2018-01-03 Jakub Jelinek + + Update copyright years. + +2018-01-03 Martin Liska + + PR ipa/83594 + * gcc.dg/ipa/pr83594.c: New test. + +2018-01-03 Richard Sandiford + Alan Hayward + David Sherwood + + * gcc.dg/vect-opt-info-1.c: New test. + +2018-01-02 Michael Meissner + + * gcc.target/powerpc/float128-hw2.c: Add tests for ceilf128, + floorf128, truncf128, and roundf128. + * gcc.target/powerpc/float128-hw5.c: New tests for _Float128 + optimizations added in match.pd. + * gcc.target/powerpc/float128-hw6.c: Likewise. + * gcc.target/powerpc/float128-hw7.c: Likewise. + * gcc.target/powerpc/float128-hw8.c: Likewise. + * gcc.target/powerpc/float128-hw9.c: Likewise. + * gcc.target/powerpc/float128-hw10.c: Likewise. + * gcc.target/powerpc/float128-hw11.c: Likewise. + +2018-01-02 Jakub Jelinek + + PR c++/83556 + * g++.dg/cpp0x/pr83556.C: New test. + +2018-01-02 Thomas Koenig + + PR fortran/45689 + PR fortran/83650 + * gfortran.dg/simplify_cshift_1.f90: Correct erroneous case. + * gfortran.dg/simplify_cshift_4.f90: New test. + +2018-01-02 Marek Polacek + + PR c++/81860 + * g++.dg/cpp0x/inh-ctor30.C: New test. + + PR c++/83644 + * g++.dg/cpp1z/pr83644.C: New test. + +2018-01-01 Paul Thomas + + PR fortran/83076 + * gfortran.dg/coarray_45.f90: New test. + + PR fortran/83319 + * gfortran.dg/coarray_46.f90: New test. + +2018-01-01 Jakub Jelinek + + PR tree-optimization/83581 + * gcc.dg/pr83581.c: New test. + + PR c/83595 + * gcc.dg/pr83595.c: New test. + + PR middle-end/83608 + * g++.dg/opt/pr83608.C: New test. + + PR middle-end/83609 + * gcc.dg/pr83609.c: New test. + * g++.dg/opt/pr83609.C: New test. + + PR middle-end/83623 + * gcc.dg/pr83623.c: New test. + + * gcc.target/i386/i386.exp + (check_effective_target_avx512vpopcntdqvl): New proc. + * gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c: Use + avx512vpopcntdqvl effective target rather than avx512vpopcntdq. + * gcc.target/i386/avx512vpopcntdqvl-vpopcntq-1.c: Likewise. + +Copyright (C) 2018 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/config/default.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/config/default.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/config/default.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/config/default.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/compile/compile.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/compile/compile.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/compile/compile.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/compile/compile.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Expect driver script for GCC Regression Tests -# Copyright (C) 1993-2018 Free Software Foundation, Inc. +# Copyright (C) 1993-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/execute/execute.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/execute/execute.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/execute/execute.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/execute/execute.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2018 Free Software Foundation, Inc. +# Copyright (C) 1991-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ # # Expect driver script for GCC Regression Tests -# Copyright (C) 1993-2018 Free Software Foundation, Inc. +# Copyright (C) 1993-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/pr88140.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/pr88140.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/pr88140.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/pr88140.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,8 @@ +typedef struct { +} a; + +typedef struct { + a *b[0]; +} c; + +void d() { ((c *)0)->b[0] = 0; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ # # Expect driver script for GCC Regression Tests -# Copyright (C) 1993-2018 Free Software Foundation, Inc. +# Copyright (C) 1993-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/asan/asan.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/asan/asan.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/asan/asan.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/asan/asan.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/asm-qual-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/asm-qual-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/asm-qual-1.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/asm-qual-1.c 2018-12-29 02:41:34.000000000 +0000 @@ -8,9 +8,7 @@ { asm volatile (""); - asm const (""); /* { dg-error {expected '\(' before 'const'} } */ - /* { dg-error {expected identifier} {} {target *-*-*} .-1 } */ + asm const (""); /* { dg-error {'const' is not an asm qualifier} } */ - asm restrict (""); /* { dg-error {expected '\(' before 'restrict'} } */ - /* { dg-error {expected identifier} {} {target *-*-*} .-1 } */ + asm restrict (""); /* { dg-error {'restrict' is not an asm qualifier} } */ } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/asm-qual-3.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/asm-qual-3.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/asm-qual-3.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/asm-qual-3.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,9 @@ +/* Test that asm-qualifiers are not allowed on toplevel asm. */ +/* { dg-do compile } */ +/* { dg-options "-std=gnu99" } */ + +asm const (""); /* { dg-error {expected '\(' before 'const'} } */ +asm volatile (""); /* { dg-error {expected '\(' before 'volatile'} } */ +asm restrict (""); /* { dg-error {expected '\(' before 'restrict'} } */ +asm inline (""); /* { dg-error {expected '\(' before 'inline'} } */ +asm goto (""); /* { dg-error {expected '\(' before 'goto'} } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/atomic/atomic.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/atomic/atomic.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/atomic/atomic.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/atomic/atomic.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/autopar/autopar.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/autopar/autopar.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/autopar/autopar.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/autopar/autopar.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/builtin-object-size-19.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/builtin-object-size-19.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/builtin-object-size-19.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/builtin-object-size-19.c 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,101 @@ +/* PR tree-optimization/88372 - alloc_size attribute is ignored + on function pointers { dg-do compile } + { dg-options "-O2 -fdump-tree-optimized" } */ + +typedef __SIZE_TYPE__ size_t; + +#define ATTR(...) __attribute__ ((__VA_ARGS__)) +#define CONCAT(x, y) x ## y +#define CAT(x, y) CONCAT (x, y) +#define FAILNAME(name) CAT (call_ ## name ##_on_line_, __LINE__) + +#define FAIL(name) do { \ + extern void FAILNAME (name) (void); \ + FAILNAME (name)(); \ + } while (0) + +/* Macro to emit a call to function named + call_in_true_branch_not_eliminated_on_line_NNN() + for each call that's expected to be eliminated. The dg-final + scan-tree-dump-time directive at the bottom of the test verifies + that no such call appears in output. */ +#define ELIM(expr) \ + if (!(expr)) FAIL (in_true_branch_not_eliminated); else (void)0 + +void sink (void*); + +#define T(alloc, n) do { \ + void *p = alloc; \ + sink (p); \ + ELIM (n == __builtin_object_size (p, 0)); \ + ELIM (n == __builtin_object_size (p, 1)); \ + ELIM (n == __builtin_object_size (p, 2)); \ + ELIM (n == __builtin_object_size (p, 3)); \ + } while (0) + + +ATTR (alloc_size (1)) void* (*alloc_1_x)(size_t, size_t); +ATTR (alloc_size (2)) void* (*alloc_x_2)(size_t, size_t); + +/* Verify that things work when attribute alloc_size is applied + to a typedef that is then used to declared a pointer. */ +typedef ATTR (alloc_size (1, 2)) void* (alloc_1_2_t)(size_t, size_t); + +void test_alloc_ptr (alloc_1_2_t *alloc_1_2) +{ + T (alloc_1_x (0, 0), 0); + T (alloc_1_x (1, 0), 1); + T (alloc_1_x (3, 0), 3); + T (alloc_1_x (9, 5), 9); + + T (alloc_x_2 (0, 0), 0); + T (alloc_x_2 (1, 0), 0); + T (alloc_x_2 (0, 1), 1); + T (alloc_x_2 (9, 5), 5); + + T (alloc_1_2 (0, 0), 0); + T (alloc_1_2 (1, 0), 0); + T (alloc_1_2 (0, 1), 0); + T (alloc_1_2 (9, 5), 45); +} + +/* Verify that object size is detected even in indirect calls via + function pointers to built-in allocation functions, even without + explicit use of attribute alloc_size on the pointers. */ + +typedef void *(allocfn_1) (size_t); +typedef void *(allocfn_1_2) (size_t, size_t); + +static inline void * +call_alloc (allocfn_1 *fn1, allocfn_1_2 *fn2, size_t n1, size_t n2) +{ + return fn1 ? fn1 (n1) : fn2 (n1, n2); +} + +static inline void * +call_malloc (size_t n) +{ + return call_alloc (__builtin_malloc, 0, n, 0); +} + +static inline void * +call_calloc (size_t n1, size_t n2) +{ + return call_alloc (0, __builtin_calloc, n1, n2); +} + +void test_builtin_ptr (void) +{ + T (call_malloc (0), 0); + T (call_malloc (1), 1); + T (call_malloc (9), 9); + + T (call_calloc (0, 0), 0); + T (call_calloc (0, 1), 0); + T (call_calloc (1, 0), 0); + T (call_calloc (1, 1), 1); + T (call_calloc (1, 3), 3); + T (call_calloc (2, 3), 6); +} + +/* { dg-final { scan-tree-dump-not "not_eliminated" "optimized" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/charset/charset.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/charset/charset.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/charset/charset.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/charset/charset.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/compat/compat.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/compat/compat.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/compat/compat.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/compat/compat.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/cpp/assembl2.S gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/cpp/assembl2.S --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/cpp/assembl2.S 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/cpp/assembl2.S 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. */ +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. */ /* { dg-do preprocess } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/cpp/cpp.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/cpp/cpp.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/cpp/cpp.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/cpp/cpp.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/cpp/trad/trad.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/cpp/trad/trad.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/cpp/trad/trad.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/cpp/trad/trad.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/debug/debug.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/debug/debug.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/debug/debug.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/debug/debug.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/dfp/dfp.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/dfp/dfp.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/dfp/dfp.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/dfp/dfp.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/dg.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/fixed-point/fixed-point.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/fixed-point/fixed-point.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/fixed-point/fixed-point.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/fixed-point/fixed-point.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/format/format.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/format/format.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/format/format.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/format/format.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/goacc/goacc.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/goacc/goacc.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/goacc/goacc.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/goacc/goacc.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/goacc/nvptx-merged-loop.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/goacc/nvptx-merged-loop.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/goacc/nvptx-merged-loop.c 2015-11-22 17:52:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/goacc/nvptx-merged-loop.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -/* { dg-do link } */ -/* { dg-require-effective-target offload_nvptx } */ -/* { dg-options "-fopenacc -O2 -foffload=-fdump-rtl-mach\\ -dumpbase\\ nvptx-merged-loop.c\\ -Wa,--no-verify" } */ - -#define N (32*32*32+17) -void __attribute__ ((noinline)) Foo (int *ary) -{ - int ix; - -#pragma acc parallel num_workers(32) vector_length(32) copyout(ary[0:N]) - { - /* Loop partitioning should be merged. */ -#pragma acc loop worker vector - for (unsigned ix = 0; ix < N; ix++) - { - ary[ix] = ix; - } - } -} - -int main () -{ - int ary[N]; - - Foo (ary); - - return 0; -} - -/* { dg-final { scan-rtl-dump "Merging loop .* into " "mach" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/goacc/nvptx-sese-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/goacc/nvptx-sese-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/goacc/nvptx-sese-1.c 2015-11-22 17:52:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/goacc/nvptx-sese-1.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -/* { dg-do link } */ -/* { dg-require-effective-target offload_nvptx } */ -/* { dg-options "-fopenacc -O2 -foffload=-fdump-rtl-mach\\ -dumpbase\\ nvptx-sese-1.c\\ -Wa,--no-verify" } */ - -#pragma acc routine seq -int __attribute__((noinline)) foo (int x) -{ - return x & 2; -} - -int main () -{ - int r = 0; - -#pragma acc parallel copy(r) vector_length(32) - { -#pragma acc loop vector reduction (+:r) - for (int i = 00; i < 40; i++) - r += i; - - /* This piece is a multi-block SESE region */ - if (foo (r)) - r *= 2; - - if (r & 1) /* to here. */ -#pragma acc loop vector reduction (+:r) - for (int i = 00; i < 40; i++) - r += i; - } - - return 0; -} - -/* Match {N->N(.N)+} */ -/* { dg-final { scan-rtl-dump "SESE regions:.* \[0-9\]+{\[0-9\]+->\[0-9\]+(\\.\[0-9\]+)+}" "mach" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/goacc-gomp/goacc-gomp.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/goacc-gomp/goacc-gomp.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/goacc-gomp/goacc-gomp.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/goacc-gomp/goacc-gomp.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/gomp/gomp.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/gomp/gomp.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/gomp/gomp.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/gomp/gomp.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/gomp/pr85594.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/gomp/pr85594.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/gomp/pr85594.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/gomp/pr85594.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,5 @@ +/* PR middle-end/85594 */ +/* { dg-do compile } */ +/* { dg-additional-options "-fwrapv" } */ + +#include "pr81768-2.c" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/gomp/pr88553.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/gomp/pr88553.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/gomp/pr88553.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/gomp/pr88553.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,5 @@ +/* PR middle-end/88553 */ +/* { dg-do compile } */ +/* { dg-additional-options "-O1 -ftree-loop-vectorize -fwrapv" } */ + +#include "pr81768-2.c" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/graphite/graphite.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/graphite/graphite.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/graphite/graphite.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/graphite/graphite.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/ipa/ipa.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/ipa/ipa.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/ipa/ipa.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/ipa/ipa.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-10.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-10.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-10.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-10.c 2018-12-18 00:25:21.000000000 +0000 @@ -0,0 +1,52 @@ +/* { dg-options "-O3 -fdump-tree-lversion-details" } */ + +/* Test that we can version a gather-like operation in which a variable + stride is applied to the index. */ + +int +f1 (int *x, int *index, int step, int n) +{ + int res = 0; + for (int i = 0; i < n; ++i) + res += x[index[i] * step]; + return res; +} + +int +f2 (int *x, int *index, int step, int n) +{ + int res = 0; + for (int i = 0; i < n; ++i) + { + int *ptr = x + index[i] * step; + res += *ptr; + } + return res; +} + +int x[1000]; + +int +g1 (int *index, int step, int n) +{ + int res = 0; + for (int i = 0; i < n; ++i) + res += x[index[i] * step]; + return res; +} + +int +g2 (int *index, int step, int n) +{ + int res = 0; + for (int i = 0; i < n; ++i) + { + int *ptr = x + index[i] * step; + res += *ptr; + } + return res; +} + +/* { dg-final { scan-tree-dump-times {address term [^\n]* \* loop-invariant} 4 "lversion" } } */ +/* { dg-final { scan-tree-dump-times {want to version containing loop} 4 "lversion" } } */ +/* { dg-final { scan-tree-dump-times {versioned this loop} 4 "lversion" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-11.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-11.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-11.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-11.c 2018-12-18 00:25:21.000000000 +0000 @@ -0,0 +1,29 @@ +/* { dg-options "-O3 -fdump-tree-lversion-details" } */ + +/* Test that we don't try to version for something that is never 1. */ + +void +f1 (double *x, int stepx, int n) +{ + if (stepx == 1) + for (int i = 0; i < n; ++i) + x[i] = 100; + else + for (int i = 0; i < n; ++i) + x[stepx * i] = 100; +} + +void +f2 (double *x, int stepx, int n) +{ + if (stepx <= 1) + for (int i = 0; i < n; ++i) + x[i] = 100; + else + for (int i = 0; i < n; ++i) + x[stepx * i] = 100; +} + +/* { dg-final { scan-tree-dump-times {want to version containing loop} 2 "lversion" } } */ +/* { dg-final { scan-tree-dump-times {can never be 1} 2 "lversion" } } */ +/* { dg-final { scan-tree-dump-not {versioned} "lversion" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-12.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-12.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-12.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-12.c 2018-12-18 00:25:21.000000000 +0000 @@ -0,0 +1,149 @@ +/* { dg-options "-O3 -fdump-tree-lversion-details" } */ + +/* Test that we don't try to version for a step of 1 when that would + cause the iterations to overlap. */ + +void +f1 (unsigned short *x, int stepx, int n) +{ + for (int i = 0; i < n; ++i) + { + x[i * stepx] = 100; + x[i * stepx + 1] = 99; + } +} + +void +f2 (unsigned short *x, int stepx, int n) +{ + for (int i = 0; i < n; i += stepx) + { + x[i] = 100; + x[i + 1] = 99; + } +} + +void +f3 (unsigned short *x, int stepx, int n) +{ + for (int i = 0; i < n; ++i) + { + x[i * stepx - 16] = 100; + x[i * stepx - 15] = 99; + } +} + +void +f4 (unsigned short *x, int stepx, int n) +{ + for (int i = 0; i < n; i += stepx) + { + x[i - 16] = 100; + x[i - 15] = 99; + } +} + +void +f5 (unsigned short *x, int stepx, int n) +{ + for (int i = 0; i < n; ++i) + { + x[i * stepx - 16] = 100; + x[i * stepx + 15] = 99; + } +} + +void +f6 (unsigned short *x, int stepx, int n) +{ + for (int i = 0; i < n; i += stepx) + { + x[i - 16] = 100; + x[i + 15] = 99; + } +} + +void +f7 (unsigned short *x, int stepx, int n) +{ + for (unsigned short *y = x; y < x + n; y += stepx) + { + y[0] = 100; + y[1] = 99; + } +} + +unsigned short x[1000]; + +void +g1 (int stepx, int n) +{ + for (int i = 0; i < n; ++i) + { + x[i * stepx] = 100; + x[i * stepx + 1] = 99; + } +} + +void +g2 (int stepx, int n) +{ + for (int i = 0; i < n; i += stepx) + { + x[i] = 100; + x[i + 1] = 99; + } +} + +void +g3 (int stepx, int n) +{ + for (int i = 0; i < n; ++i) + { + x[i * stepx - 16] = 100; + x[i * stepx - 15] = 99; + } +} + +void +g4 (int stepx, int n) +{ + for (int i = 0; i < n; i += stepx) + { + x[i - 16] = 100; + x[i - 15] = 99; + } +} + +void +g5 (int stepx, int n) +{ + for (int i = 0; i < n; ++i) + { + x[i * stepx - 16] = 100; + x[i * stepx + 15] = 99; + } +} + +void +g6 (int stepx, int n) +{ + for (int i = 0; i < n; i += stepx) + { + x[i - 16] = 100; + x[i + 15] = 99; + } +} + +void +g7 (int stepx, int n) +{ + for (unsigned short *y = x; y < x + n; y += stepx) + { + y[0] = 100; + y[1] = 99; + } +} + +/* { dg-final { scan-tree-dump-not {want to version} "lversion" } } */ +/* { dg-final { scan-tree-dump-not {versioned} "lversion" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-13.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-13.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-13.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-13.c 2018-12-18 00:25:21.000000000 +0000 @@ -0,0 +1,109 @@ +/* { dg-options "-O3 -fdump-tree-lversion-details" } */ + +/* Test that we do version for a step of 1 when that would lead the + iterations to access consecutive groups. */ + +void +f1 (unsigned short *x, int stepx, int n) +{ + for (int i = 0; i < n; ++i) + { + x[i * stepx * 2] = 100; + x[i * stepx * 2 + 1] = 99; + } +} + +void +f2 (unsigned short *x, int stepx, int n) +{ + for (int i = 0; i < n; i += stepx * 2) + { + x[i] = 100; + x[i + 1] = 99; + } +} + +void +f3 (unsigned short *x, int stepx, int n) +{ + for (int i = 0; i < n; ++i) + { + x[i * stepx * 2 - 16] = 100; + x[i * stepx * 2 - 15] = 99; + } +} + +void +f4 (unsigned short *x, int stepx, int n) +{ + for (int i = 0; i < n; i += stepx * 2) + { + x[i - 16] = 100; + x[i - 15] = 99; + } +} + +void +f5 (unsigned short *x, int stepx, int n) +{ + for (unsigned short *y = x; y < x + n; y += stepx * 2) + { + y[0] = 100; + y[1] = 99; + } +} + +unsigned short x[1000]; + +void +g1 (int stepx, int n) +{ + for (int i = 0; i < n; ++i) + { + x[i * stepx * 2] = 100; + x[i * stepx * 2 + 1] = 99; + } +} + +void +g2 (int stepx, int n) +{ + for (int i = 0; i < n; i += stepx * 2) + { + x[i] = 100; + x[i + 1] = 99; + } +} + +void +g3 (int stepx, int n) +{ + for (int i = 0; i < n; ++i) + { + x[i * stepx * 2 - 16] = 100; + x[i * stepx * 2 - 15] = 99; + } +} + +void +g4 (int stepx, int n) +{ + for (int i = 0; i < n; i += stepx * 2) + { + x[i - 16] = 100; + x[i - 15] = 99; + } +} + +void +g5 (int stepx, int n) +{ + for (unsigned short *y = x; y < x + n; y += stepx * 2) + { + y[0] = 100; + y[1] = 99; + } +} + +/* { dg-final { scan-tree-dump-times {want to version containing loop} 10 "lversion" } } */ +/* { dg-final { scan-tree-dump-times {versioned this loop} 10 "lversion" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-14.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-14.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-14.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-14.c 2018-12-18 00:25:21.000000000 +0000 @@ -0,0 +1,149 @@ +/* { dg-options "-O3 -fdump-tree-lversion-details" } */ + +/* Test that we don't try to version for a step of 1 when that would + cause the iterations to leave a gap between accesses. */ + +void +f1 (unsigned short *x, int stepx, int n) +{ + for (int i = 0; i < n; ++i) + { + x[i * stepx * 4] = 100; + x[i * stepx * 4 + 1] = 99; + } +} + +void +f2 (unsigned short *x, int stepx, int n) +{ + for (int i = 0; i < n; i += stepx * 4) + { + x[i] = 100; + x[i + 1] = 99; + } +} + +void +f3 (unsigned short *x, int stepx, int n) +{ + for (int i = 0; i < n; ++i) + { + x[i * stepx * 4 - 16] = 100; + x[i * stepx * 4 - 15] = 99; + } +} + +void +f4 (unsigned short *x, int stepx, int n) +{ + for (int i = 0; i < n; i += stepx * 4) + { + x[i - 16] = 100; + x[i - 15] = 99; + } +} + +void +f5 (unsigned short *x, int stepx, int n) +{ + for (int i = 0; i < n; ++i) + { + x[i * stepx * 64 - 16] = 100; + x[i * stepx * 64 + 15] = 99; + } +} + +void +f6 (unsigned short *x, int stepx, int n) +{ + for (int i = 0; i < n; i += stepx * 64) + { + x[i - 16] = 100; + x[i + 15] = 99; + } +} + +void +f7 (unsigned short *x, int stepx, int n) +{ + for (unsigned short *y = x; y < x + n; y += stepx * 4) + { + y[0] = 100; + y[1] = 99; + } +} + +unsigned short x[1000]; + +void +g1 (int stepx, int n) +{ + for (int i = 0; i < n; ++i) + { + x[i * stepx * 4] = 100; + x[i * stepx * 4 + 1] = 99; + } +} + +void +g2 (int stepx, int n) +{ + for (int i = 0; i < n; i += stepx * 4) + { + x[i] = 100; + x[i + 1] = 99; + } +} + +void +g3 (int stepx, int n) +{ + for (int i = 0; i < n; ++i) + { + x[i * stepx * 4 - 16] = 100; + x[i * stepx * 4 - 15] = 99; + } +} + +void +g4 (int stepx, int n) +{ + for (int i = 0; i < n; i += stepx * 4) + { + x[i - 16] = 100; + x[i - 15] = 99; + } +} + +void +g5 (int stepx, int n) +{ + for (int i = 0; i < n; ++i) + { + x[i * stepx * 64 - 16] = 100; + x[i * stepx * 64 + 15] = 99; + } +} + +void +g6 (int stepx, int n) +{ + for (int i = 0; i < n; i += stepx * 64) + { + x[i - 16] = 100; + x[i + 15] = 99; + } +} + +void +g7 (int stepx, int n) +{ + for (unsigned short *y = x; y < x + n; y += stepx * 4) + { + y[0] = 100; + y[1] = 99; + } +} + +/* { dg-final { scan-tree-dump-not {want to version} "lversion" } } */ +/* { dg-final { scan-tree-dump-not {versioned} "lversion" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-1.c 2018-12-18 00:25:21.000000000 +0000 @@ -0,0 +1,92 @@ +/* { dg-options "-O3 -fdump-tree-lversion-details" } */ + +/* The simplest IV case. */ + +void +f1 (double *x, int stepx, int n) +{ + for (int i = 0; i < n; ++i) + x[stepx * i] = 100; +} + +void +f2 (double *x, int stepx, int limit) +{ + for (int i = 0; i < limit; i += stepx) + x[i] = 100; +} + +void +f3 (double *x, int stepx, int limit) +{ + for (double *y = x; y < x + limit; y += stepx) + *y = 100; +} + +void +f4 (double *x, int stepx, unsigned int n) +{ + for (unsigned int i = 0; i < n; ++i) + x[stepx * i] = 100; +} + +void +f5 (double *x, int stepx, unsigned int limit) +{ + for (unsigned int i = 0; i < limit; i += stepx) + x[i] = 100; +} + +void +f6 (double *x, int stepx, unsigned int limit) +{ + for (double *y = x; y < x + limit; y += stepx) + *y = 100; +} + +double x[10000]; + +void +g1 (int stepx, int n) +{ + for (int i = 0; i < n; ++i) + x[stepx * i] = 100; +} + +void +g2 (int stepx, int limit) +{ + for (int i = 0; i < limit; i += stepx) + x[i] = 100; +} + +void +g3 (int stepx, int limit) +{ + for (double *y = x; y < x + limit; y += stepx) + *y = 100; +} + +void +g4 (int stepx, unsigned int n) +{ + for (unsigned int i = 0; i < n; ++i) + x[stepx * i] = 100; +} + +void +g5 (int stepx, unsigned int limit) +{ + for (unsigned int i = 0; i < limit; i += stepx) + x[i] = 100; +} + +void +g6 (int stepx, unsigned int limit) +{ + for (double *y = x; y < x + limit; y += stepx) + *y = 100; +} + +/* { dg-final { scan-tree-dump-times {want to version containing loop} 12 "lversion" } } */ +/* { dg-final { scan-tree-dump-times {versioned this loop} 12 "lversion" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-2.c 2018-12-18 00:25:21.000000000 +0000 @@ -0,0 +1,73 @@ +/* { dg-options "-O3 -fdump-tree-lversion-details" } */ + +/* Versioning for step == 1 in these loops would allow loop interchange, + but otherwise isn't worthwhile. At the moment we decide not to version. */ + +void +f1 (double x[][100], int step, int n) +{ + for (int i = 0; i < n; ++i) + for (int j = 0; j < n; ++j) + x[j * step][i] = 100; +} + +void +f2 (double x[][100], int step, int n) +{ + for (int i = 0; i < n; ++i) + for (int j = 0; j < n; ++j) + x[j][i * step] = 100; +} + +void +f3 (double x[][100], int step, int limit) +{ + for (int i = 0; i < 100; ++i) + for (int j = 0; j < limit; j += step) + x[j][i] = 100; +} + +void +f4 (double x[][100], int step, int limit) +{ + for (int i = 0; i < limit; i += step) + for (int j = 0; j < 100; ++j) + x[j][i] = 100; +} + +double x[100][100]; + +void +g1 (int step, int n) +{ + for (int i = 0; i < n; ++i) + for (int j = 0; j < n; ++j) + x[j * step][i] = 100; +} + +void +g2 (int step, int n) +{ + for (int i = 0; i < n; ++i) + for (int j = 0; j < n; ++j) + x[j][i * step] = 100; +} + +void +g3 (int step, int limit) +{ + for (int i = 0; i < 100; ++i) + for (int j = 0; j < limit; j += step) + x[j][i] = 100; +} + +void +g4 (int step, int limit) +{ + for (int i = 0; i < limit; i += step) + for (int j = 0; j < 100; ++j) + x[j][i] = 100; +} + +/* { dg-final { scan-tree-dump-not {want to version} "lversion" } } */ +/* { dg-final { scan-tree-dump-not {versioned} "lversion" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-3.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-3.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-3.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-3.c 2018-12-18 00:25:21.000000000 +0000 @@ -0,0 +1,24 @@ +/* { dg-options "-O3 -fdump-tree-lversion-details" } */ + +/* Versioning these loops for when both steps are 1 allows loop + interchange, but otherwise isn't worthwhile. At the moment we decide + not to version. */ + +void +f1 (double x[][100], int step1, int step2, int n) +{ + for (int i = 0; i < n; ++i) + for (int j = 0; j < n; ++j) + x[j * step1][i * step2] = 100; +} + +void +f2 (double x[][100], int step1, int step2, int limit) +{ + for (int i = 0; i < limit; i += step1) + for (int j = 0; j < limit; j += step2) + x[j][i] = 100; +} + +/* { dg-final { scan-tree-dump-not {want to version} "lversion" } } */ +/* { dg-final { scan-tree-dump-not {versioned} "lversion" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-4.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-4.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-4.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-4.c 2018-12-18 00:25:21.000000000 +0000 @@ -0,0 +1,39 @@ +/* { dg-options "-O3 -fdump-tree-lversion-details" } */ + +/* These shouldn't be versioned; it's extremely likely that the code + is emulating two-dimensional arrays. */ + +void +f1 (double *x, int step, int n) +{ + for (int i = 0; i < n; ++i) + for (int j = 0; j < n; ++j) + x[i * step + j] = 100; +} + +void +f2 (double *x, int step, int n) +{ + for (int i = 0; i < n; ++i) + for (int j = 0; j < n; ++j) + x[j * step + i] = 100; +} + +void +f3 (double *x, int *offsets, int step, int n) +{ + for (int i = 0; i < n; ++i) + for (int j = 0; j < n; ++j) + x[i * step + j + offsets[i]] = 100; +} + +void +f4 (double *x, int *offsets, int step, int n) +{ + for (int i = 0; i < n; ++i) + for (int j = 0; j < n; ++j) + x[j * step + i + offsets[i]] = 100; +} + +/* { dg-final { scan-tree-dump-not {want to version} "lversion" } } */ +/* { dg-final { scan-tree-dump-not {versioned} "lversion" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-5.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-5.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-5.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-5.c 2018-12-18 00:25:21.000000000 +0000 @@ -0,0 +1,17 @@ +/* { dg-options "-O3 -fdump-tree-lversion-details" } */ + +/* There's no information about whether STEP1 or STEP2 is innermost, + so we should assume the code is sensible and version for the inner + evolution, i.e. when STEP2 is 1. */ + +void +f1 (double *x, int step1, int step2, int n) +{ + for (int i = 0; i < n; ++i) + for (int j = 0; j < n; ++j) + x[i * step1 + j * step2] = 100; +} + +/* { dg-final { scan-tree-dump-times {want to version containing loop for when step2} 1 "lversion" } } */ +/* { dg-final { scan-tree-dump-times {want to version containing loop} 1 "lversion" } } */ +/* { dg-final { scan-tree-dump-times {versioned this loop} 1 "lversion" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-6.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-6.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-6.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-6.c 2018-12-18 00:25:21.000000000 +0000 @@ -0,0 +1,31 @@ +/* { dg-options "-O3 -fdump-tree-lversion-details" } */ + +/* The read from y in f1 will be hoisted to the outer loop. In general + it's not worth versioning outer loops when the inner loops don't also + benefit. + + This test is meant to be a slight counterexample, since versioning + does lead to cheaper outer-loop vectorization. However, the benefit + isn't enough to justify the cost. */ + +void +f1 (double *restrict x, double *restrict y, int step, int n) +{ + for (int i = 0; i < n; ++i) + for (int j = 0; j < n; ++j) + x[i + j] = y[i * step]; +} + +/* A similar example in which the read can't be hoisted, but could + for example be handled by vectorizer alias checks. */ + +void +f2 (double *x, double *y, int step, int n) +{ + for (int i = 0; i < n; ++i) + for (int j = 0; j < n; ++j) + x[i + j] = y[i * step]; +} + +/* { dg-final { scan-tree-dump-not {want to version} "lversion" } } */ +/* { dg-final { scan-tree-dump-not {versioned} "lversion" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-7.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-7.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-7.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-7.c 2018-12-18 00:25:21.000000000 +0000 @@ -0,0 +1,32 @@ +/* { dg-options "-O3 -fdump-tree-lversion-details" } */ + +/* Check that versioning can handle arrays of structures. */ + +struct foo { + int a, b, c; +}; + +void +f1 (struct foo *x, int stepx, int n) +{ + for (int i = 0; i < n; ++i) + { + x[stepx * i].a = 1; + x[stepx * i].b = 2; + x[stepx * i].c = 3; + } +} + +void +f2 (struct foo *x, int stepx, int limit) +{ + for (int i = 0; i < limit; i += stepx) + { + x[i].a = 1; + x[i].b = 2; + x[i].c = 3; + } +} + +/* { dg-final { scan-tree-dump-times {want to version containing loop} 2 "lversion" } } */ +/* { dg-final { scan-tree-dump-times {versioned this loop} 2 "lversion" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-8.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-8.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-8.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-8.c 2018-12-18 00:25:21.000000000 +0000 @@ -0,0 +1,43 @@ +/* { dg-options "-O3 -fdump-tree-lversion-details" } */ + +/* Versioning for step == 1 in these loops would allow loop interchange, + but otherwise isn't worthwhile. At the moment we decide not to version. */ + +struct foo { + int a[100]; +}; + +void +f1 (struct foo *x, int step, int n) +{ + for (int i = 0; i < n; ++i) + for (int j = 0; j < n; ++j) + x[j * step].a[i] = 100; +} + +void +f2 (struct foo *x, int step, int n) +{ + for (int i = 0; i < n; ++i) + for (int j = 0; j < n; ++j) + x[j].a[i * step] = 100; +} + +void +f3 (struct foo *x, int step, int limit) +{ + for (int i = 0; i < 100; ++i) + for (int j = 0; j < limit; j += step) + x[j].a[i] = 100; +} + +void +f4 (struct foo *x, int step, int limit) +{ + for (int i = 0; i < limit; i += step) + for (int j = 0; j < 100; ++j) + x[j].a[i] = 100; +} + +/* { dg-final { scan-tree-dump-not {want to version} "lversion" } } */ +/* { dg-final { scan-tree-dump-not {versioned} "lversion" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-9.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-9.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-9.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/loop-versioning-9.c 2018-12-18 00:25:21.000000000 +0000 @@ -0,0 +1,48 @@ +/* { dg-options "-O3 -fdump-tree-lversion-details" } */ + +/* Check that versioning can handle small groups of accesses. */ + +void +f1 (int *x, int *y, int step, int n) +{ + for (int i = 0; i < n; ++i) + x[i] = y[i * step * 2] + y[i * step * 2 + 1]; +} + +void +f2 (int *x, int *y, __INTPTR_TYPE__ step, int n) +{ + for (int i = 0; i < n; ++i) + x[i] = y[i * step * 2] + y[i * step * 2 + 1]; +} + +void +f3 (int *x, int *y, int step, int n) +{ + for (int i = 0; i < n; ++i) + x[i] = y[i * step * 3] + y[i * step * 3 + 2]; +} + +void +f4 (int *x, int *y, __INTPTR_TYPE__ step, int n) +{ + for (int i = 0; i < n; ++i) + x[i] = y[i * step * 3] + y[i * step * 3 + 2]; +} + +void +f5 (int *x, int *y, int step, int n) +{ + for (int i = 0; i < n; ++i) + x[i] = y[i * step * 4] + y[i * step * 4 + 3]; +} + +void +f6 (int *x, int *y, __INTPTR_TYPE__ step, int n) +{ + for (int i = 0; i < n; ++i) + x[i] = y[i * step * 4] + y[i * step * 4 + 3]; +} + +/* { dg-final { scan-tree-dump-times {want to version containing loop} 6 "lversion" } } */ +/* { dg-final { scan-tree-dump-times {versioned this loop} 6 "lversion" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/lto/lto.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/lto/lto.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/lto/lto.exp 2018-06-08 18:00:49.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/lto/lto.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/noncompile/noncompile.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/noncompile/noncompile.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/noncompile/noncompile.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/noncompile/noncompile.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/params/params.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/params/params.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/params/params.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/params/params.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2016-2018 Free Software Foundation, Inc. +# Copyright (C) 2016-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pch/pch.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pch/pch.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pch/pch.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pch/pch.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/plugin/plugin.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/plugin/plugin.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/plugin/plugin.exp 2018-11-28 13:52:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/plugin/plugin.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-17.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-17.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-17.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-17.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,10 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O -Wno-incompatible-pointer-types" } */ + +struct A { + int i; +} __attribute__ ((packed)); + +long* f8 (struct A *p) { return &p->i; } +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-18.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-18.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-18.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-18.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,23 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +void foo (int *); + +int * +bar (int n, int k, void *ptr) +{ + struct A + { + int c[k]; + int x[n]; + } __attribute__ ((packed, aligned (4))); + struct A *p = (struct A *) ptr; + + int *p0, *p1; + p0 = p->x; + foo (p0); + p1 = &p->x[1]; + foo (p1); + return &p->x[1]; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-19.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-19.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-19.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-19.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,26 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +void foo (int *); + +int * +bar (int n, int k, void *ptr) +{ + struct A + { + char c[k]; + int x[n]; + } __attribute__ ((packed)); + struct A *p = (struct A *) ptr; + + int *p0, *p1; + p0 = p->x; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + foo (p0); + p1 = &p->x[1]; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ + foo (p1); + return &p->x[1]; +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-20.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-20.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-20.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-20.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,11 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O -Wno-incompatible-pointer-types" } */ + +struct B { int i; }; +struct C { struct B b; } __attribute__ ((packed)); + +extern struct C *p; + +long* g8 (void) { return p; } +/* { dg-warning "may may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-21.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-21.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-21.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-21.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,11 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O -Wno-incompatible-pointer-types" } */ + +struct B { int i; }; +struct C { struct B b; } __attribute__ ((packed)); + +extern struct C p[]; + +long* g8 (void) { return p; } +/* { dg-warning "may may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-22.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-22.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-22.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-22.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,9 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O -Wno-incompatible-pointer-types" } */ + +struct B { int i; }; +struct C { struct B b; } __attribute__ ((packed)); + +int* g4 (struct C *p) { return &p->b; } +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-23.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-23.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-23.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-23.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,9 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O -Wno-incompatible-pointer-types" } */ + +struct A { + int i; +} __attribute__ ((packed)); + +char* f0 (struct A *p) { return &p->i; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-24.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-24.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-24.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-24.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,10 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O -Wno-incompatible-pointer-types" } */ + +struct A { + int i; +} __attribute__ ((packed)); + +short* f2 (struct A *p) { return &p->i; } +/* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-25.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-25.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-25.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr51628-25.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,9 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O -Wno-incompatible-pointer-types" } */ + +struct B { int i; }; +struct C { struct B b; } __attribute__ ((packed)); + +long* g8 (struct C *p) { return p; } +/* { dg-warning "may may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr88563.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr88563.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr88563.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/pr88563.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,15 @@ +/* PR rtl-optimization/88563 */ +/* { dg-do run { target int128 } } */ +/* { dg-options "-O2 -fno-code-hoisting -fno-tree-ccp -fno-tree-dominator-opts -fno-tree-forwprop -fno-tree-fre -fno-tree-pre -fno-tree-vrp" } */ + +int +main () +{ +#if __SIZEOF_LONG_LONG__ == 8 && __SIZEOF_INT128__ == 16 && __CHAR_BIT__ == 8 + unsigned __int128 a = 5; + __builtin_mul_overflow (0xffffffffffffffffULL, (unsigned long long) a, &a); + if (a != ((unsigned __int128)4 << 64 | 0xfffffffffffffffb)) + __builtin_abort (); +#endif + return 0; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/README gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/README --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/README 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/README 2019-01-02 08:05:16.000000000 +0000 @@ -16,7 +16,7 @@ 4) Send bugs, comments, etc. to dje@cygnus.com. -Copyright (C) 1997-2018 Free Software Foundation, Inc. +Copyright (C) 1997-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/rtl/rtl.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/rtl/rtl.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/rtl/rtl.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/rtl/rtl.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2016-2018 Free Software Foundation, Inc. +# Copyright (C) 2016-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/sancov/sancov.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/sancov/sancov.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/sancov/sancov.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/sancov/sancov.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2015-2018 Free Software Foundation, Inc. +# Copyright (C) 2015-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/special/mips-abi.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/special/mips-abi.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/special/mips-abi.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/special/mips-abi.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/special/special.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/special/special.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/special/special.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/special/special.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/sso/sso.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/sso/sso.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/sso/sso.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/sso/sso.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/strlenopt-40.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/strlenopt-40.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/strlenopt-40.c 2018-01-14 10:48:33.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/strlenopt-40.c 2019-01-02 08:05:16.000000000 +0000 @@ -105,46 +105,53 @@ /* Verify that the expression involving the strlen call as well as whatever depends on it is eliminated from the test output. All these expressions must be trivially true. */ - ELIM_TRUE (strlen (a7_3[0]) < sizeof a7_3[0]); - ELIM_TRUE (strlen (a7_3[1]) < sizeof a7_3[1]); - ELIM_TRUE (strlen (a7_3[6]) < sizeof a7_3[6]); - ELIM_TRUE (strlen (a7_3[i]) < sizeof a7_3[i]); - - ELIM_TRUE (strlen (a5_7[0]) < sizeof a5_7[0]); - ELIM_TRUE (strlen (a5_7[1]) < sizeof a5_7[1]); - ELIM_TRUE (strlen (a5_7[4]) < sizeof a5_7[4]); - ELIM_TRUE (strlen (a5_7[i]) < sizeof a5_7[0]); - - ELIM_TRUE (strlen (ax_3[0]) < sizeof ax_3[0]); - ELIM_TRUE (strlen (ax_3[1]) < sizeof ax_3[1]); - ELIM_TRUE (strlen (ax_3[9]) < sizeof ax_3[9]); - ELIM_TRUE (strlen (ax_3[i]) < sizeof ax_3[i]); + ELIM_TRUE (strlen (a7_3[0]) < sizeof a7_3); + ELIM_TRUE (strlen (a7_3[1]) < sizeof a7_3 - sizeof *a7_3); + ELIM_TRUE (strlen (a7_3[6]) < sizeof a7_3 - 5 * sizeof *a7_3); + ELIM_TRUE (strlen (a7_3[i]) < sizeof a7_3); + + ELIM_TRUE (strlen (a5_7[0]) < sizeof a5_7); + ELIM_TRUE (strlen (a5_7[1]) < sizeof a5_7 - sizeof *a5_7); + ELIM_TRUE (strlen (a5_7[4]) < sizeof a5_7 - 3 * sizeof *a5_7); + ELIM_TRUE (strlen (a5_7[i]) < sizeof a5_7); + + /* Even when treating a multi-dimensional array as a single string + the length must be less DIFF_MAX - (ax_3[i] - ax_3[0]) but GCC + doesn't do that computation yet so avoid testing it. */ + ELIM_TRUE (strlen (ax_3[0]) < DIFF_MAX); + ELIM_TRUE (strlen (ax_3[1]) < DIFF_MAX); + ELIM_TRUE (strlen (ax_3[9]) < DIFF_MAX); + ELIM_TRUE (strlen (ax_3[i]) < DIFF_MAX); ELIM_TRUE (strlen (a3) < sizeof a3); ELIM_TRUE (strlen (a7) < sizeof a7); ELIM_TRUE (strlen (ax) != DIFF_MAX); - ELIM_TRUE (strlen (ax) != DIFF_MAX - 1); - ELIM_TRUE (strlen (ax) < DIFF_MAX - 1); + /* ELIM_TRUE (strlen (ax) != DIFF_MAX - 1); */ + /* ELIM_TRUE (strlen (ax) < DIFF_MAX - 1); */ } void elim_pointer_to_arrays (void) { - ELIM_TRUE (strlen (*pa7) < 7); - ELIM_TRUE (strlen (*pa5) < 5); - ELIM_TRUE (strlen (*pa3) < 3); - - ELIM_TRUE (strlen ((*pa7_3)[0]) < 3); - ELIM_TRUE (strlen ((*pa7_3)[1]) < 3); - ELIM_TRUE (strlen ((*pa7_3)[6]) < 3); - - ELIM_TRUE (strlen ((*pax_3)[0]) < 3); - ELIM_TRUE (strlen ((*pax_3)[1]) < 3); - ELIM_TRUE (strlen ((*pax_3)[9]) < 3); - - ELIM_TRUE (strlen ((*pa5_7)[0]) < 7); - ELIM_TRUE (strlen ((*pa5_7)[1]) < 7); - ELIM_TRUE (strlen ((*pa5_7)[4]) < 7); + /* Unfortunately, GCC cannot be trusted not to misuse a pointer + to a smaller array to point to an object of a bigger type so + the strlen range optimization must assume each array pointer + points effectively to an array of an unknown bound. */ + ELIM_TRUE (strlen (*pa7) < DIFF_MAX); + ELIM_TRUE (strlen (*pa5) < DIFF_MAX); + ELIM_TRUE (strlen (*pa3) < DIFF_MAX); + + ELIM_TRUE (strlen ((*pa7_3)[0]) < DIFF_MAX); + ELIM_TRUE (strlen ((*pa7_3)[1]) < DIFF_MAX); + ELIM_TRUE (strlen ((*pa7_3)[6]) < DIFF_MAX); + + ELIM_TRUE (strlen ((*pax_3)[0]) < DIFF_MAX); + ELIM_TRUE (strlen ((*pax_3)[1]) < DIFF_MAX); + ELIM_TRUE (strlen ((*pax_3)[9]) < DIFF_MAX); + + ELIM_TRUE (strlen ((*pa5_7)[0]) < DIFF_MAX); + ELIM_TRUE (strlen ((*pa5_7)[1]) < DIFF_MAX); + ELIM_TRUE (strlen ((*pa5_7)[4]) < DIFF_MAX); } void elim_global_arrays_and_strings (int i) @@ -176,65 +183,33 @@ void elim_member_arrays_obj (int i) { - ELIM_TRUE (strlen (ma0_3_5_7[0][0][0].a3) < 3); - ELIM_TRUE (strlen (ma0_3_5_7[0][0][1].a3) < 3); - ELIM_TRUE (strlen (ma0_3_5_7[0][0][2].a3) < 3); - ELIM_TRUE (strlen (ma0_3_5_7[0][0][6].a3) < 3); + ELIM_TRUE (strlen (ma0_3_5_7[0][0][0].a3) < sizeof ma0_3_5_7); + ELIM_TRUE (strlen (ma0_3_5_7[0][0][1].a3) < sizeof ma0_3_5_7); + ELIM_TRUE (strlen (ma0_3_5_7[0][0][2].a3) < sizeof ma0_3_5_7); + ELIM_TRUE (strlen (ma0_3_5_7[0][0][6].a3) < sizeof ma0_3_5_7); - ELIM_TRUE (strlen (ma0_3_5_7[1][0][0].a3) < 3); - ELIM_TRUE (strlen (ma0_3_5_7[2][0][1].a3) < 3); + ELIM_TRUE (strlen (ma0_3_5_7[1][0][0].a3) < sizeof ma0_3_5_7); + ELIM_TRUE (strlen (ma0_3_5_7[2][0][1].a3) < sizeof ma0_3_5_7); - ELIM_TRUE (strlen (ma0_3_5_7[1][1][0].a3) < 3); - ELIM_TRUE (strlen (ma0_3_5_7[2][4][6].a3) < 3); + ELIM_TRUE (strlen (ma0_3_5_7[1][1][0].a3) < sizeof ma0_3_5_7); + ELIM_TRUE (strlen (ma0_3_5_7[2][4][6].a3) < sizeof ma0_3_5_7); - ELIM_TRUE (strlen (ma0_3_5_7[0][0][0].a5) < 5); - ELIM_TRUE (strlen (ma0_3_5_7[0][0][1].a5) < 5); - ELIM_TRUE (strlen (ma0_3_5_7[0][0][2].a5) < 5); - ELIM_TRUE (strlen (ma0_3_5_7[0][0][6].a5) < 5); + ELIM_TRUE (strlen (ma0_3_5_7[0][0][0].a5) < sizeof ma0_3_5_7); + ELIM_TRUE (strlen (ma0_3_5_7[0][0][1].a5) < sizeof ma0_3_5_7); + ELIM_TRUE (strlen (ma0_3_5_7[0][0][2].a5) < sizeof ma0_3_5_7); + ELIM_TRUE (strlen (ma0_3_5_7[0][0][6].a5) < sizeof ma0_3_5_7); - ELIM_TRUE (strlen (ma0_3_5_7[1][0][0].a5) < 5); - ELIM_TRUE (strlen (ma0_3_5_7[2][0][1].a5) < 5); + ELIM_TRUE (strlen (ma0_3_5_7[1][0][0].a5) < sizeof ma0_3_5_7); + ELIM_TRUE (strlen (ma0_3_5_7[2][0][1].a5) < sizeof ma0_3_5_7); - ELIM_TRUE (strlen (ma0_3_5_7[1][1][0].a5) < 5); - ELIM_TRUE (strlen (ma0_3_5_7[2][4][6].a5) < 5); + ELIM_TRUE (strlen (ma0_3_5_7[1][1][0].a5) < sizeof ma0_3_5_7); + ELIM_TRUE (strlen (ma0_3_5_7[2][4][6].a5) < sizeof ma0_3_5_7); - ELIM_TRUE (strlen (ma0_3_5_7[0][0][0].a7_3[0]) < 3); - ELIM_TRUE (strlen (ma0_3_5_7[2][4][6].a7_3[2]) < 3); + ELIM_TRUE (strlen (ma0_3_5_7[0][0][0].a7_3[0]) < sizeof ma0_3_5_7); + ELIM_TRUE (strlen (ma0_3_5_7[2][4][6].a7_3[2]) < sizeof ma0_3_5_7); - ELIM_TRUE (strlen (ma0_3_5_7[0][0][0].a5_7[0]) < 7); - ELIM_TRUE (strlen (ma0_3_5_7[2][4][6].a5_7[4]) < 7); -} - -void elim_member_arrays_ptr (struct MemArrays0 *ma0, - struct MemArraysX *max, - struct MemArrays7 *ma7, - int i) -{ - ELIM_TRUE (strlen (ma0->a7_3[0]) < 3); - ELIM_TRUE (strlen (ma0->a7_3[1]) < 3); - ELIM_TRUE (strlen (ma0->a7_3[6]) < 3); - ELIM_TRUE (strlen (ma0->a7_3[6]) < 3); - ELIM_TRUE (strlen (ma0->a7_3[i]) < 3); - ELIM_TRUE (strlen (ma0->a7_3[i]) < 3); - - ELIM_TRUE (strlen (ma0->a5_7[0]) < 7); - ELIM_TRUE (strlen (ma0[0].a5_7[0]) < 7); - ELIM_TRUE (strlen (ma0[1].a5_7[0]) < 7); - ELIM_TRUE (strlen (ma0[1].a5_7[4]) < 7); - ELIM_TRUE (strlen (ma0[9].a5_7[0]) < 7); - ELIM_TRUE (strlen (ma0[9].a5_7[4]) < 7); - - ELIM_TRUE (strlen (ma0->a3) < sizeof ma0->a3); - ELIM_TRUE (strlen (ma0->a5) < sizeof ma0->a5); - ELIM_TRUE (strlen (ma0->a0) < DIFF_MAX - 1); - - ELIM_TRUE (strlen (max->a3) < sizeof max->a3); - ELIM_TRUE (strlen (max->a5) < sizeof max->a5); - ELIM_TRUE (strlen (max->ax) < DIFF_MAX - 1); - - ELIM_TRUE (strlen (ma7->a3) < sizeof max->a3); - ELIM_TRUE (strlen (ma7->a5) < sizeof max->a5); - ELIM_TRUE (strlen (ma7->a7) < DIFF_MAX - 1); + ELIM_TRUE (strlen (ma0_3_5_7[0][0][0].a5_7[0]) < sizeof ma0_3_5_7); + ELIM_TRUE (strlen (ma0_3_5_7[2][4][6].a5_7[4]) < sizeof ma0_3_5_7); } @@ -255,11 +230,27 @@ KEEP (strlen (a5_7[4]) < 6); KEEP (strlen (a5_7[i]) < 6); + /* Verify also that tests (and strlen calls) are not eliminated + for results greater than what would the size of the innermost + array suggest might be possible (in case the element array is + not nul-terminated), even though such calls are undefined. */ + KEEP (strlen (a5_7[0]) > sizeof a5_7 - 2); + KEEP (strlen (a5_7[1]) > sizeof a5_7 - sizeof a5_7[1] - 2); + KEEP (strlen (a5_7[i]) > sizeof a5_7 - 2); + KEEP (strlen (ax_3[0]) < 2); KEEP (strlen (ax_3[1]) < 2); KEEP (strlen (ax_3[2]) < 2); KEEP (strlen (ax_3[i]) < 2); + /* Here again, verify that the ax_3 matrix is treated essentially + as a flat array of unknown bound for the benefit of all the + undefined code out there that might rely on it. */ + KEEP (strlen (ax_3[0]) > 3); + KEEP (strlen (ax_3[1]) > 9); + KEEP (strlen (ax_3[2]) > 99); + KEEP (strlen (ax_3[i]) > 999); + KEEP (strlen (a3) < 2); KEEP (strlen (a7) < 6); @@ -274,24 +265,48 @@ KEEP (strlen (ax) < 1); } -void keep_pointer_to_arrays (void) +void keep_pointer_to_arrays (int i) { KEEP (strlen (*pa7) < 6); KEEP (strlen (*pa5) < 4); KEEP (strlen (*pa3) < 2); + /* Since GCC cannot be trusted not to misuse a pointer to a smaller + array to point to an object of a larger type verify that the bound + in a pointer to an array of a known bound isn't relied on for + the strlen range optimization. If GCC is fixed to avoid these + misuses these tests can be removed. */ + KEEP (strlen (*pa7) > sizeof *pa7); + KEEP (strlen (*pa5) > sizeof *pa5); + KEEP (strlen (*pa3) > sizeof *pa3); + KEEP (strlen ((*pa7_3)[0]) < 2); KEEP (strlen ((*pa7_3)[1]) < 2); KEEP (strlen ((*pa7_3)[6]) < 2); + KEEP (strlen ((*pa7_3)[i]) < 2); + + /* Same as above. */ + KEEP (strlen ((*pa7_3)[0]) > sizeof *pa7_3); + KEEP (strlen ((*pa7_3)[i]) > sizeof *pa7_3); KEEP (strlen ((*pax_3)[0]) < 2); KEEP (strlen ((*pax_3)[1]) < 2); KEEP (strlen ((*pax_3)[9]) < 2); + KEEP (strlen ((*pax_3)[i]) < 2); + + /* Same as above. */ + KEEP (strlen ((*pax_3)[0]) > 3); + KEEP (strlen ((*pax_3)[i]) > 333); KEEP (strlen ((*pa5_7)[0]) < 6); KEEP (strlen ((*pa5_7)[1]) < 6); KEEP (strlen ((*pa5_7)[4]) < 6); -} + KEEP (strlen ((*pa5_7)[i]) < 6); + + /* Same as above. */ + KEEP (strlen ((*pa5_7)[0]) > sizeof *pa5_7); + KEEP (strlen ((*pa5_7)[i]) > sizeof *pa5_7); + } void keep_global_arrays_and_strings (int i) { @@ -306,6 +321,12 @@ KEEP (strlen (i < 0 ? a7 : "123") < 5); KEEP (strlen (i < 0 ? a7 : "123456") < 6); KEEP (strlen (i < 0 ? a7 : "1234567") < 6); + + /* Verify that a matrix is treated as a flat array even in a conditional + expression (i.e., don't assume that a7_3[0] is nul-terminated, even + though calling strlen() on such an array is undefined). */ + KEEP (strlen (i < 0 ? a7_3[0] : "") > 7); + KEEP (strlen (i < 0 ? a7_3[i] : "") > 7); } void keep_member_arrays_obj (int i) @@ -337,6 +358,12 @@ KEEP (strlen (ma0_3_5_7[0][0][0].a5_7[0]) < 6); KEEP (strlen (ma0_3_5_7[2][4][6].a5_7[4]) < 6); + + /* Again, verify that the .a3 array isn't assumed to necessarily + be nul-terminated. */ + KEEP (strlen (ma0_3_5_7[0][0][0].a3) > 2); + KEEP (strlen (ma0_3_5_7[0][0][6].a3) > 2); + KEEP (strlen (ma0_3_5_7[0][0][i].a3) > 2); } void keep_member_arrays_ptr (struct MemArrays0 *ma0, @@ -353,6 +380,11 @@ KEEP (strlen (ma0->a7_3[i]) < 2); KEEP (strlen (ma0->a7_3[i]) < 2); + /* Again, verify that the member array isn't assumed to necessarily + be nul-terminated. */ + KEEP (strlen (ma0->a7_3[0]) > sizeof ma0->a7_3); + KEEP (strlen (ma0->a7_3[i]) > sizeof ma0->a7_3); + KEEP (strlen (ma0->a5_7[0]) < 5); KEEP (strlen (ma0[0].a5_7[0]) < 5); KEEP (strlen (ma0[1].a5_7[0]) < 5); @@ -361,6 +393,9 @@ KEEP (strlen (ma0[i].a5_7[4]) < 5); KEEP (strlen (ma0[i].a5_7[i]) < 5); + /* Same as above. */ + KEEP (strlen (ma0[i].a5_7[i]) > sizeof ma0[i].a5_7); + KEEP (strlen (ma0->a0) < DIFF_MAX - 2); KEEP (strlen (ma0->a0) < 999); KEEP (strlen (ma0->a0) < 1); @@ -389,5 +424,5 @@ /* { dg-final { scan-tree-dump-times "call_in_true_branch_not_eliminated_" 0 "optimized" } } { dg-final { scan-tree-dump-times "call_in_false_branch_not_eliminated_" 0 "optimized" } } - { dg-final { scan-tree-dump-times "call_made_in_true_branch_on_line_1\[0-9\]\[0-9\]\[0-9\]" 92 "optimized" } } - { dg-final { scan-tree-dump-times "call_made_in_false_branch_on_line_1\[0-9\]\[0-9\]\[0-9\]" 92 "optimized" } } */ + { dg-final { scan-tree-dump-times "call_made_in_true_branch_on_line_1\[0-9\]\[0-9\]\[0-9\]" 119 "optimized" } } + { dg-final { scan-tree-dump-times "call_made_in_false_branch_on_line_1\[0-9\]\[0-9\]\[0-9\]" 119 "optimized" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/strlenopt-48.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/strlenopt-48.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/strlenopt-48.c 2018-07-09 11:23:03.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/strlenopt-48.c 2019-01-02 08:05:16.000000000 +0000 @@ -11,7 +11,7 @@ { extern char a[2][1]; int n = strlen (a[1]); - if (n) + if (n >= sizeof a) abort(); } @@ -19,7 +19,7 @@ { extern char b[3][2][1]; int n = strlen (b[2][1]); - if (n) + if (n >= sizeof b) abort(); } @@ -27,7 +27,7 @@ { extern char c[4][3][2][1]; int n = strlen (c[3][2][1]); - if (n) + if (n >= sizeof c) abort(); } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/strlenopt-51.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/strlenopt-51.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/strlenopt-51.c 2018-07-13 06:43:23.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/strlenopt-51.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,16 +1,17 @@ /* PR tree-optimization/77357 - strlen of constant strings not folded { dg-do compile } - { dg-options "-O2 -Wall -fdump-tree-gimple -fdump-tree-optimized" } */ + { dg-options "-O0 -Wall -fdump-tree-gimple" } */ #include "strlenopt.h" #define CONCAT(x, y) x ## y #define CAT(x, y) CONCAT (x, y) -#define FAILNAME(name) CAT (call_ ## name ##_on_line_, __LINE__) +#define FAILNAME(name, counter) \ + CAT (CAT (CAT (call_ ## name ##_on_line_, __LINE__), _), counter) -#define FAIL(name) do { \ - extern void FAILNAME (name) (void); \ - FAILNAME (name)(); \ +#define FAIL(name, counter) do { \ + extern void FAILNAME (name, counter) (void); \ + FAILNAME (name, counter)(); \ } while (0) /* Macro to emit a call to funcation named @@ -19,19 +20,7 @@ scan-tree-dump-time directive at the bottom of the test verifies that no such call appears in output. */ #define ELIM(expr) \ - if (!(expr)) FAIL (in_true_branch_not_eliminated); else (void)0 - -/* Macro to emit a call to a function named - call_made_in_{true,false}_branch_on_line_NNN() - for each call that's expected to be retained. The dg-final - scan-tree-dump-time directive at the bottom of the test verifies - that the expected number of both kinds of calls appears in output - (a pair for each line with the invocation of the KEEP() macro. */ -#define KEEP(expr) \ - if (expr) \ - FAIL (made_in_true_branch); \ - else \ - FAIL (made_in_false_branch) + if (!(expr)) FAIL (in_true_branch_not_eliminated, __COUNTER__); else (void)0 #define T(s, n) ELIM (strlen (s) == n) @@ -53,7 +42,7 @@ const char a9[][9] = { S0, S1, S2, S3, S4, S5, S6, S7, S8 }; -void test_elim_a9 (int i) +void test_elim_a9 (unsigned i) { ELIM (strlen (&a9[0][i]) > 0); ELIM (strlen (&a9[1][i]) > 1); @@ -75,10 +64,10 @@ { S5, S6, S7, S8, S0, S1, S2, S3, S4 }, { S6, S7, S8, S0, S1, S2, S3, S4, S5 }, { S7, S8, S0, S1, S2, S3, S4, S5, S6 }, - { S8, S0, S2, S2, S3, S4, S5, S6, S7 } + { S8, S0, S1, S2, S3, S4, S5, S6, S7 } }; -void test_elim_a9_9 (int i) +void test_elim_a9_9 (unsigned i) { #undef T #define T(I) \ @@ -95,27 +84,4 @@ T (0); T (1); T (2); T (3); T (4); T (5); T (6); T (7); T (8); } -#line 1000 - -void test_keep_a9_9 (int i) -{ -#undef T -#define T(I) \ - KEEP (strlen (&a9_9[i][I][0]) > (1 + I) % 9); \ - KEEP (strlen (&a9_9[i][I][1]) > (1 + I) % 9); \ - KEEP (strlen (&a9_9[i][I][2]) > (2 + I) % 9); \ - KEEP (strlen (&a9_9[i][I][3]) > (3 + I) % 9); \ - KEEP (strlen (&a9_9[i][I][4]) > (4 + I) % 9); \ - KEEP (strlen (&a9_9[i][I][5]) > (5 + I) % 9); \ - KEEP (strlen (&a9_9[i][I][6]) > (6 + I) % 9); \ - KEEP (strlen (&a9_9[i][I][7]) > (7 + I) % 9); \ - KEEP (strlen (&a9_9[i][I][8]) > (8 + I) % 9) - - T (0); T (1); T (2); T (3); T (4); T (5); T (6); T (7); T (8); -} - -/* { dg-final { scan-tree-dump-times "strlen" 72 "gimple" } } - { dg-final { scan-tree-dump-times "strlen" 63 "optimized" } } - - { dg-final { scan-tree-dump-times "call_made_in_true_branch_on_line_1\[0-9\]\[0-9\]\[0-9\]" 72 "optimized" } } - { dg-final { scan-tree-dump-times "call_made_in_false_branch_on_line_1\[0-9\]\[0-9\]\[0-9\]" 81 "optimized" } } */ +/* { dg-final { scan-tree-dump-times "strlen" 0 "gimple" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/strlenopt-59.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/strlenopt-59.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/strlenopt-59.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/strlenopt-59.c 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,73 @@ +/* Verify that strlen() calls with constant conditional expressions are + eliminated as expected. + + { dg-do compile } + { dg-options "-O1 -fdump-tree-optimized" } */ + +extern void abort (void); +extern __SIZE_TYPE__ strlen (const char*); + + +#define CAT(x, y) x ## y +#define CONCAT(x, y) CAT (x, y) +#define FAILNAME(name) CONCAT (call_ ## name ##_on_line_, __LINE__) + +#define FAIL(name) do { \ + extern void FAILNAME (name) (void); \ + FAILNAME (name)(); \ + } while (0) + +/* Macros to emit a call to funcation named + call_failed_to_be_eliminated_on_line_NNN() + for each call that's expected to be eliminated. The dg-final + scan-tree-dump-time directive at the bottom of the test verifies + that no such call appears in output. */ +#define ELIM(expr) \ + if ((expr)) FAIL (test_not_eliminated); else (void)0 + +extern char a3[3]; +extern char a7[7]; + +struct MemArrays { char a[7], b[9]; }; + +struct MemArrays ma; + +void test_elim_condexpr (int i) +{ + ELIM (6 < strlen (i ? "" : "123456")); + ELIM (6 < strlen (i ? "123456" : "")); + + ELIM (4 < strlen (i < 1 ? "a" : i == 1 ? "ab" : "abc")); + + ELIM (3 < strlen (i ? "" : a3)); + ELIM (3 < strlen (i ? a3 : "1")); + + ELIM (6 < strlen (i ? "12" : a7)); + ELIM (6 < strlen (i ? a7 : "123")); + + ELIM (6 < strlen (i ? "1234" : a7)); + ELIM (7 < strlen (i ? a7 : "1234567")); + + ELIM (3 < strlen (i < 1 ? "a" : i == 1 ? "ab" : a3)); + ELIM (3 < strlen (i < 1 ? "a" : i == 1 ? a3 : "abc")); + ELIM (3 < strlen (i < 1 ? a3 : i == 1 ? "a" : "abc")); + + ELIM (6 < strlen (i < 1 ? "a" : i == 1 ? "ab" : a7)); + ELIM (6 < strlen (i < 1 ? "a" : i == 1 ? a7 : "abc")); + ELIM (6 < strlen (i < 1 ? a7 : i == 1 ? "a" : "abc")); + + ELIM (6 < strlen (i < 1 ? "a" : i == 1 ? a7 : a3)); + ELIM (6 < strlen (i < 1 ? a7 : i == 1 ? "a" : a3)); + + { + enum { maxlen = sizeof ma - 1 }; + ELIM (maxlen < strlen (ma.a)); + } + + { + enum { maxlen = sizeof ma - __builtin_offsetof (struct MemArrays, b) - 1 }; + ELIM (maxlen < strlen (ma.b)); + } +} + +/* { dg-final { scan-tree-dump-times "test_not_eliminated_" 0 "optimized" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tls/tls.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tls/tls.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tls/tls.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tls/tls.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tm/tm.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tm/tm.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tm/tm.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tm/tm.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr25967-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr25967-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr25967-1.c 2017-08-07 23:22:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr25967-1.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,5 @@ /* { dg-do run { target i?86-*-* x86_64-*-* } } */ +/* { dg-skip-if "PR81693 sp not aligned to 16 bytes" { "*-*-darwin*" } } */ /* { dg-options "-mgeneral-regs-only" } */ extern void exit (int); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr25967-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr25967-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr25967-2.c 2017-08-07 23:22:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr25967-2.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,5 @@ /* { dg-do run { target i?86-*-* x86_64-*-* } } */ +/* { dg-skip-if "PR81693 sp not aligned to 16 bytes" { "*-*-darwin*" } } */ /* { dg-options "-mgeneral-regs-only" } */ extern void exit (int); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr68037-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr68037-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr68037-1.c 2016-06-18 20:24:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr68037-1.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,5 @@ /* { dg-do run { target i?86-*-* x86_64-*-* } } */ +/* { dg-skip-if "PR81210 sp not aligned to 16 bytes" { *-*-darwin* } } */ /* { dg-options "-mgeneral-regs-only" } */ extern void exit (int); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr68037-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr68037-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr68037-2.c 2016-06-18 20:24:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr68037-2.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,5 @@ /* { dg-do run { target i?86-*-* x86_64-*-* } } */ +/* { dg-skip-if "PR81210 sp not aligned to 16 bytes" { *-*-darwin* } } */ /* { dg-options "-mgeneral-regs-only" } */ extern void exit (int); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr68037-3.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr68037-3.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr68037-3.c 2016-06-18 20:24:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr68037-3.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,5 @@ /* { dg-do run { target i?86-*-* x86_64-*-* } } */ +/* { dg-skip-if "PR81210 sp not aligned to 16 bytes" { *-*-darwin* } } */ /* { dg-options "-mgeneral-regs-only" } */ #include diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr68264.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr68264.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr68264.c 2016-01-28 18:21:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/pr68264.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,5 @@ /* { dg-do run } */ +/* { dg-skip-if "PR68356 no math-errno on darwin" { "*-*-darwin*" } } */ /* { dg-add-options ieee } */ /* { dg-require-effective-target fenv_exceptions } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/stackalign/stackalign.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/stackalign/stackalign.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/stackalign/stackalign.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/stackalign/stackalign.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/tls/tls.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/tls/tls.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/tls/tls.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/torture/tls/tls.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/attr-hotcold-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/attr-hotcold-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/attr-hotcold-2.c 2017-07-31 13:50:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/attr-hotcold-2.c 2019-01-02 08:05:16.000000000 +0000 @@ -19,9 +19,9 @@ /* { dg-final { scan-tree-dump-times "hot label heuristics" 1 "profile_estimate" } } */ /* { dg-final { scan-tree-dump-times "cold label heuristics" 1 "profile_estimate" } } */ -/* { dg-final { scan-tree-dump-times "combined heuristics: 0\\\..*" 1 "profile_estimate" } } */ +/* { dg-final { scan-tree-dump-times "combined heuristics: 10.00%" 1 "profile_estimate" } } */ /* Note: we're attempting to match some number > 6000, i.e. > 60%. The exact number ought to be tweekable without having to juggle the testcase around too much. */ -/* { dg-final { scan-tree-dump-times "combined heuristics: \[6-9\]\[0-9\]\\\..*" 1 "profile_estimate" } } */ +/* { dg-final { scan-tree-dump-times "combined heuristics: 90.00%" 1 "profile_estimate" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-4.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-4.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-4.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-4.c 2018-12-18 00:25:21.000000000 +0000 @@ -0,0 +1,161 @@ +/* PR tree-optimization/87096 - "Optimised" snprintf is not POSIX conformant + Verify that calls to snprintf with size in excess of INT_MAX are not + treated as successful. + It would be valid for GCC to fold some of these calls to a negative + value provided it also arranged to set errno to EOVERFLOW. If that + is ever implemented this test will need to be adjusted. + { dg-do compile } + { dg-options "-O2 -Wall -fdump-tree-optimized -ftrack-macro-expansion=0" } */ + +#include "../range.h" + +typedef __builtin_va_list va_list; + +extern int snprintf (char*, size_t, const char*, ...); +extern int vsnprintf (char*, size_t, const char*, va_list); + +#define CAT(x, y) x ## y +#define CONCAT(x, y) CAT (x, y) +#define FAILNAME(name) CONCAT (call_ ## name ##_on_line_, __LINE__) + +#define FAIL(name) do { \ + extern void FAILNAME (name) (void); \ + FAILNAME (name)(); \ + } while (0) + +/* Macro to emit a call to function named + call_in_true_branch_not_eliminated_on_line_NNN() + for each expression that's expected to fold to false but that + GCC does not fold. The dg-final scan-tree-dump-time directive + at the bottom of the test verifies that no such call appears + in output. */ +#define ELIM(expr) \ + if ((expr)) FAIL (in_true_branch_not_eliminated); else (void)0 + +/* Macro to emit a call to a function named + call_made_in_{true,false}_branch_on_line_NNN() + for each call that's expected to be retained. The dg-final + scan-tree-dump-time directive at the bottom of the test verifies + that the expected number of both kinds of calls appears in output + (a pair for each line with the invocation of the KEEP() macro. */ +#define KEEP(expr) \ + if (expr) \ + FAIL (made_in_true_branch); \ + else \ + FAIL (made_in_false_branch) + +extern void sink (int, ...); +#define sink(...) sink (0, __VA_ARGS__) + +#define WARN(N, expr) \ + do { \ + char a[N]; \ + expr; \ + sink (a); \ + } while (0) + + +static const size_t imax = __INT_MAX__; +static const size_t imaxp1 = imax + 1; + +#if __PTRDIFF_MAX__ == __INT_MAX__ +/* Make the test pass on ILP32 the same way it does on LP64. */ +static const size_t dmax = __PTRDIFF_MAX__ + (size_t)1; +#else +static const size_t dmax = __PTRDIFF_MAX__; +#endif +static const size_t dmaxp1 = dmax + 1; + +static const size_t szmax = __SIZE_MAX__; +static const size_t szmaxm1 = __SIZE_MAX__ - 1; + + +void test_size_cst (char **d) +{ + ELIM (0 > snprintf (*d++, imax, "%s", "")); + + KEEP (0 > snprintf (*d++, imaxp1, "%s", "")); /* { dg-warning "\\\[-Wformat-truncation=]" } */ + + KEEP (0 > snprintf (*d++, dmax, "%s", "")); /* { dg-warning "\\\[-Wformat-truncation=]" } */ + KEEP (0 > snprintf (*d++, dmaxp1, "%s", "")); /* { dg-warning "\\\[-Wformat-truncation=]" } */ + KEEP (0 > snprintf (*d++, szmaxm1, "%s", "")); /* { dg-warning "\\\[-Wformat-truncation=]" } */ + KEEP (0 > snprintf (*d++, szmax, "%s", "")); /* { dg-warning "\\\[-Wformat-truncation=]" } */ +} + + +void test_size_cst_va (char **d, va_list va) +{ + ELIM (0 > vsnprintf (*d++, imax, " ", va)); + + KEEP (0 > vsnprintf (*d++, imaxp1, " ", va)); /* { dg-warning "\\\[-Wformat-truncation=]" } */ + + KEEP (0 > vsnprintf (*d++, dmax, " ", va)); /* { dg-warning "\\\[-Wformat-truncation=]" } */ + KEEP (0 > vsnprintf (*d++, dmaxp1, " ", va)); /* { dg-warning "\\\[-Wformat-truncation=]" } */ + KEEP (0 > vsnprintf (*d++, szmaxm1, " ", va)); /* { dg-warning "\\\[-Wformat-truncation=]" } */ + KEEP (0 > vsnprintf (*d++, szmax, " ", va)); /* { dg-warning "\\\[-Wformat-truncation=]" } */ +} + + +void test_size_range (char **d) +{ + size_t r = UR (imax - 1, imax); + ELIM (0 > snprintf (*d++, r, "%s", "")); + + r = UR (imax, imax + 1); + KEEP (0 > snprintf (*d++, r, "%s", "")); + + r = UR (imaxp1, imaxp1 + 1); + KEEP (0 > snprintf (*d++, r, "%s", "")); /* { dg-warning "specified bound range \\\[\[0-9\]+, \[0-9\]+] exceeds .INT_MAX." } */ + + r = UR (dmax, dmaxp1); + KEEP (0 > snprintf (*d++, r, "%s", "")); /* { dg-warning "\\\[-Wformat-truncation=]" } */ + + r = UR (dmaxp1, dmaxp1 + 1); + KEEP (0 > snprintf (*d++, r, "%s", "")); /* { dg-warning "\\\[-Wformat-truncation=]" } */ + + r = UR (szmaxm1, szmax); + KEEP (0 > snprintf (*d++, r, "%s", "")); /* { dg-warning "\\\[-Wformat-truncation=]" } */ +} + + +void test_size_range_va (char **d, va_list va) +{ + size_t r = UR (imax - 1, imax); + ELIM (0 > vsnprintf (*d++, r, " ", va)); + + r = UR (imax, imax + 1); + KEEP (0 > vsnprintf (*d++, r, " ", va)); + + r = UR (imaxp1, imaxp1 + 1); + KEEP (0 > vsnprintf (*d++, r, " ", va)); /* { dg-warning "specified bound range \\\[\[0-9\]+, \[0-9\]+] exceeds .INT_MAX." } */ + + r = UR (dmax, dmaxp1); + KEEP (0 > vsnprintf (*d++, r, " ", va)); /* { dg-warning "\\\[-Wformat-truncation=]" } */ + + r = UR (dmaxp1, dmaxp1 + 1); + KEEP (0 > vsnprintf (*d++, r, " ", va)); /* { dg-warning "\\\[-Wformat-truncation=]" } */ + + r = UR (szmaxm1, szmax); + KEEP (0 > vsnprintf (*d++, r, " ", va)); /* { dg-warning "\\\[-Wformat-truncation=]" } */ +} + + +void test_size_varying (char **d, size_t n) +{ + KEEP (0 > snprintf (*d++, n, "%s", "")); + + n += 1; + KEEP (0 > snprintf (*d++, n, "%s", "")); +} + + +void test_size_varying_va (char **d, size_t n, va_list va) +{ + KEEP (0 > vsnprintf (*d++, n, " ", va)); + + n += 1; + KEEP (0 > vsnprintf (*d++, n, " ", va)); +} + +/* { dg-final { scan-tree-dump-times " = snprintf" 12 "optimized"} } + { dg-final { scan-tree-dump-times " = vsnprintf" 12 "optimized"} } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-5.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-5.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-5.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-5.c 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,51 @@ +/* + { dg-do compile } + { dg-options "-O2 -Wall -fdump-tree-optimized" } */ + +typedef __SIZE_TYPE__ size_t; + +extern void abort (void); +extern int snprintf (char*, size_t, const char*, ...); + +const char s0[] = ""; +const char s1[] = "a"; +const char s2[] = "ab"; + +extern char ax[]; +extern const char* const ptr; + +#define CAT(x, y) x ## y +#define CONCAT(x, y) CAT (x, y) +#define TEST CONCAT (test_on_line_, __LINE__) + +#define KEEP(expr) do { \ + if ((expr)) { \ + extern void TEST (void); \ + TEST (); \ + } \ + } while (0) + + +void test_literal (int i) +{ + KEEP (0 < snprintf (0, 0, "%s", i ? "" : ax)); + KEEP (1 < snprintf (0, 0, "%s", i ? ax : "1")); + KEEP (2 < snprintf (0, 0, "%s", i ? "12" : ptr)); + + KEEP (1 > snprintf (0, 0, "%s", i ? "" : ax)); + KEEP (1 > snprintf (0, 0, "%s", i ? ax : "1")); + KEEP (2 > snprintf (0, 0, "%s", i ? "12" : ptr)); +} + +void test_cststr (int i) +{ + KEEP (0 < snprintf (0, 0, "%s", i ? s0 : ax)); + KEEP (1 < snprintf (0, 0, "%s", i ? ax : s1)); + KEEP (2 < snprintf (0, 0, "%s", i ? s2 : ptr)); + + KEEP (1 > snprintf (0, 0, "%s", i ? s0 : ax)); + KEEP (1 > snprintf (0, 0, "%s", i ? ax : s1)); + KEEP (2 > snprintf (0, 0, "%s", i ? s2 : ptr)); +} + +/* { dg-final { scan-tree-dump-times "test_on_line_" 12 "optimized" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/copy-headers-6.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/copy-headers-6.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/copy-headers-6.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/copy-headers-6.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-ch2-details" } */ + +int is_sorted(int *a, int n) +{ + for (int i = 0; i < n - 1; i++) + if (a[i] > 0) + return 0; + return 1; +} + +/* Verify we apply loop header copying but only copy the IV test and + not the alternate exit test. */ + +/* { dg-final { scan-tree-dump "is now do-while loop" "ch2" } } */ +/* { dg-final { scan-tree-dump-times " if " 3 "ch2" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/copy-headers-7.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/copy-headers-7.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/copy-headers-7.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/copy-headers-7.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-ch2-details --param logical-op-non-short-circuit=0" } */ + +int is_sorted(int *a, int n, int m, int k) +{ + for (int i = 0; i < n - 1 && m && k > i; i++) + if (a[i] > a[i + 1]) + return 0; + return 1; +} + +/* Verify we apply loop header copying but only copy the IV tests and + the invariant test, not the alternate exit test. */ + +/* { dg-final { scan-tree-dump "is now do-while loop" "ch2" } } */ +/* { dg-final { scan-tree-dump-times "Will duplicate bb" 3 "ch2" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_1.c 2018-04-30 13:48:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_1.c 2018-12-29 02:41:34.000000000 +0000 @@ -20,4 +20,4 @@ return s; } -/* { dg-final { scan-tree-dump-times "Replacing" 1 "ivopts" { xfail *-*-* } } } */ +/* { dg-final { scan-tree-dump-times "Replacing" 1 "ivopts" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_2.c 2018-04-30 13:48:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/ivopt_mult_2.c 2018-12-29 02:41:34.000000000 +0000 @@ -21,4 +21,4 @@ return s; } -/* { dg-final { scan-tree-dump-times "Replacing" 2 "ivopts" { xfail *-*-* } } } */ +/* { dg-final { scan-tree-dump-times "Replacing" 2 "ivopts" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/pr79376.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/pr79376.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/pr79376.c 2017-04-24 00:27:54.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/pr79376.c 2019-01-02 08:05:16.000000000 +0000 @@ -40,7 +40,18 @@ int n = __builtin_snprintf (0, 0, "%-s", s); - ASSERT (0 <= n && n < 3); + /* Since it's undefined to pass an unterminated array to a %s + directive it would be valid to assume that S above is not + longer than sizeof (A->A3) but the optimization isn't done + because the GIMPLE representation of the %s argument isn't + suffficiently reliable not to confuse it for some other + array. The argument length is therefore assumed to be in + the range [0, PTRDIFF_MAX - 2] and the sprintf result to be + as big as INT_MAX and possibly even negative if the function + were to fail due to a single directive resulting in more than + the 4,095 byte maximum required to be supported. + ASSERT (0 <= n && n < 3); + */ ASSERT_MAYBE (0 == n); ASSERT_MAYBE (1 == n); @@ -52,7 +63,7 @@ int n = __builtin_snprintf (0, 0, "%-s", s); - ASSERT (0 <= n && n < 5); + /* ASSERT (0 <= n && n < 5); */ ASSERT_MAYBE (0 == n); ASSERT_MAYBE (1 == n); @@ -69,7 +80,7 @@ int n = __builtin_snprintf (0, 0, "%-s", s); - ASSERT (0 <= n && n < 3); + /* ASSERT (0 <= n && n < 3); */ ASSERT_MAYBE (0 == n); ASSERT_MAYBE (1 == n); @@ -81,7 +92,7 @@ int n = __builtin_snprintf (0, 0, "%-s", s); - ASSERT (0 <= n && n < 5); + /* ASSERT (0 <= n && n < 5); */ ASSERT_MAYBE (0 == n); ASSERT_MAYBE (1 == n); @@ -95,7 +106,7 @@ int n = __builtin_snprintf (0, 0, "%-s", s); - ASSERT (0 <= n && n < 5); + /* ASSERT (0 <= n && n < 5); */ ASSERT_MAYBE (0 == n); ASSERT_MAYBE (1 == n); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c 2018-12-29 02:41:34.000000000 +0000 @@ -2,7 +2,7 @@ /* { dg-options "-O2 -fdump-tree-thread1-stats -fdump-tree-thread2-stats -fdump-tree-dom2-stats -fdump-tree-thread3-stats -fdump-tree-dom3-stats -fdump-tree-vrp2-stats -fno-guess-branch-probability" } */ /* { dg-final { scan-tree-dump "Jumps threaded: 16" "thread1" } } */ /* { dg-final { scan-tree-dump "Jumps threaded: 9" "thread2" } } */ -/* { dg-final { scan-tree-dump "Jumps threaded: 1" "dom2" } } */ +/* { dg-final { scan-tree-dump-not "Jumps threaded" "dom2" } } */ /* aarch64 has the highest CASE_VALUES_THRESHOLD in GCC. It's high enough to change decisions in switch expansion which in turn can expose new jump threading opportunities. Skip the later tests on aarch64. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tsan/tsan.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tsan/tsan.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/tsan/tsan.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/tsan/tsan.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/ubsan/ubsan.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/ubsan/ubsan.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/ubsan/ubsan.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/ubsan/ubsan.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/costmodel/ppc/ppc-costmodel-vect.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/costmodel/ppc/ppc-costmodel-vect.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/costmodel/ppc/ppc-costmodel-vect.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/costmodel/ppc/ppc-costmodel-vect.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/costmodel/spu/spu-costmodel-vect.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/costmodel/spu/spu-costmodel-vect.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/costmodel/spu/spu-costmodel-vect.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/costmodel/spu/spu-costmodel-vect.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/slp-43.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/slp-43.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/slp-43.c 2017-07-28 03:11:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/slp-43.c 2018-12-18 00:25:21.000000000 +0000 @@ -1,5 +1,5 @@ /* { dg-require-effective-target vect_int } */ -/* { dg-additional-options "-O3" } */ +/* { dg-additional-options "-O3 -fno-version-loops-for-strides" } */ #include #include "tree-vect.h" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/slp-45.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/slp-45.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/slp-45.c 2017-07-28 03:11:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/slp-45.c 2018-12-18 00:25:21.000000000 +0000 @@ -1,5 +1,5 @@ /* { dg-require-effective-target vect_int } */ -/* { dg-additional-options "-O3" } */ +/* { dg-additional-options "-O3 -fno-version-loops-for-strides" } */ #include #include "tree-vect.h" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/vect.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/vect.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/vect.exp 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vect/vect.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vmx/vmx.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vmx/vmx.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vmx/vmx.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vmx/vmx.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vrp-overflow-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vrp-overflow-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vrp-overflow-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vrp-overflow-1.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,151 @@ +/* { dg-do run } */ +/* { dg-options "-O2 -fno-tree-forwprop" } */ + +extern void __attribute__((noreturn)) unreachable (void); + +int fle22 (int a) +{ + unsigned i = a / 4; + unsigned j = i - 2; + + if (j == 7) /* A dynamic range excludes a value from j for the rest of f1. */ + return -1; + + if (i <= 2) /* This dynamic range cannot be combined or compared with that of j. */ + return 0; + + if (i <= j) /* And so we couldn't compute this result. */ + unreachable (); + + return 1; +} + +int fle32 (int a) +{ + unsigned i = a / 4; + unsigned j = i - 3; + + if (j == 7) /* A dynamic range excludes a value from j for the rest of f1. */ + return -1; + + if (i <= 2) /* This dynamic range cannot be combined or compared with that of j. */ + return 0; + + if (i <= j) /* And so we couldn't compute this result. */ + unreachable (); + + return 1; +} + +int flt22 (int a) +{ + unsigned i = a / 4; + unsigned j = i - 2; + + if (j == 7) + return -1; + + if (i <= 2) + return 0; + + if (i < j) + unreachable (); + + return 1; +} + +int flt32 (int a) +{ + unsigned i = a / 4; + unsigned j = i - 3; + + if (j == 7) + return -1; + + if (i <= 2) + return 0; + + if (i < j) + unreachable (); + + return 1; +} + +int fgt22 (int a) +{ + unsigned i = a / 4; + unsigned j = i + 2; + + if (j == -7) + return -1; + + if (i >= -3) + return 0; + + if (i > j) + unreachable (); + + return 1; +} + +int fgt32 (int a) +{ + unsigned i = a / 4; + unsigned j = i + 3; + + if (j == -7) + return -1; + + if (i >= -3) + return 0; + + if (i > j) + unreachable (); + + return 1; +} + +int fge22 (int a) +{ + unsigned i = a / 4; + unsigned j = i + 2; + + if (j == -7) + return -1; + + if (i >= -3) + return 0; + + if (i >= j) + unreachable (); + + return 1; +} + +int fge32 (int a) +{ + unsigned i = a / 4; + unsigned j = i + 3; + + if (j == -7) + return -1; + + if (i >= -3) + return 0; + + if (i >= j) + unreachable (); + + return 1; +} + +int main (int argc, char *argv[]) { + fle22 (argc); + fle32 (argc); + flt22 (argc); + flt32 (argc); + fgt22 (argc); + fgt32 (argc); + fge22 (argc); + fge32 (argc); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vxworks/vxworks.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vxworks/vxworks.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/vxworks/vxworks.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/vxworks/vxworks.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/Walloc-size-larger-than-18.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/Walloc-size-larger-than-18.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/Walloc-size-larger-than-18.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/Walloc-size-larger-than-18.c 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,93 @@ +/* PR tree-optimization/88372 - alloc_size attribute is ignored + on function pointers + Verify that calls via function pointers declared alloc_size + with zero or excessive size trigger either -Walloc-zero or + -Walloc-size-larger-than warnings. + { dg-do compile } + { dg-options "-O2 -Wall -Walloc-zero -ftrack-macro-expansion=0" } */ + +#define ATTR(...) __attribute__ ((__VA_ARGS__)) + +typedef __SIZE_TYPE__ size_t; + + +void sink (void*); + +#define T(call) sink (call) + +ATTR (alloc_size (1)) void* (*ai1)(int, int); +ATTR (alloc_size (2)) void* (*ai2)(int, int); +ATTR (alloc_size (1, 2)) void* (*ai1_2)(int, int); + +ATTR (alloc_size (1)) void* (*asz1)(size_t, size_t); +ATTR (alloc_size (2)) void* (*asz2)(size_t, size_t); +ATTR (alloc_size (1, 2)) void* (*asz1_2)(size_t, size_t); + + +void test_alloc_ptr_zero (void) +{ + T (asz1 (0, 0)); /* { dg-warning "argument 1 value is zero" } */ + T (asz1 (0, 1)); /* { dg-warning "argument 1 value is zero" } */ + T (asz1 (1, 0)); + T (asz1 (1, 1)); + + T (asz2 (0, 0)); /* { dg-warning "argument 2 value is zero" } */ + T (asz2 (0, 1)); + T (asz2 (1, 0)); /* { dg-warning "argument 2 value is zero" } */ + T (asz2 (1, 1)); + + T (asz1_2 (0, 0)); /* { dg-warning "argument \[12\] value is zero" } */ + T (asz1_2 (1, 0)); /* { dg-warning "argument 2 value is zero" } */ + T (asz1_2 (0, 1)); /* { dg-warning "argument 1 value is zero" } */ + T (asz1_2 (1, 1)); +} + + +void test_alloc_ptr_negative (int n) +{ + T (ai1 (-1, -1)); /* { dg-warning "argument 1 value .-1. is negative" } */ + T (ai1 (-2, 1)); /* { dg-warning "argument 1 value .-2. is negative" } */ + T (ai1 ( 1, -1)); + T (ai1 ( 1, 1)); + + T (ai2 (-1, -3)); /* { dg-warning "argument 2 value .-3. is negative" } */ + T (ai2 (-1, 1)); + T (ai2 ( 1, -4)); /* { dg-warning "argument 2 value .-4. is negative" } */ + T (ai2 ( 1, 1)); + + T (ai1_2 (-5, -6)); /* { dg-warning "argument \[12\] value .-\[56\]. is negative" } */ + T (ai1_2 ( 1, -7)); /* { dg-warning "argument 2 value .-7. is negative" } */ + T (ai1_2 (-8, 1)); /* { dg-warning "argument 1 value .-8. is negative" } */ + T (ai1_2 ( 1, 1)); + + if (n > -1) + n = -1; + + /* Also verify a simple range. */ + T (ai1_2 ( 1, n)); /* { dg-warning "argument 2 range \\\[-\[0-9\]+, -1] is negative" } */ + T (ai1_2 ( n, 1)); /* { dg-warning "argument 1 range \\\[-\[0-9\]+, -1] is negative" } */ +} + +void test_alloc_ptr_too_big (void) +{ + size_t x = (__SIZE_MAX__ >> 1) + 1; + size_t y = __SIZE_MAX__ / 5; + + T (asz1 (x, x)); /* { dg-warning "argument 1 value .\[0-9\]+. exceeds" } */ + T (asz1 (x, 1)); /* { dg-warning "argument 1 value .\[0-9\]+. exceeds" } */ + T (asz1 (1, x)); + T (asz1 (1, 1)); + + T (asz2 (x, x)); /* { dg-warning "argument 2 value .\[0-9\]+. exceeds" } */ + T (asz2 (x, 1)); + T (asz2 (1, x)); /* { dg-warning "argument 2 value .\[0-9\]+. exceeds" } */ + T (asz2 (1, 1)); + + T (asz1_2 (x, x)); /* { dg-warning "argument \[12\] value .\[0-9\]+. exceeds" } */ + T (asz1_2 (y, 3)); /* { dg-warning "product .\[0-9\]+ \\\* 3. of arguments 1 and 2 exceeds" } */ + T (asz1_2 (y, y)); /* { dg-warning "product .\[0-9\]+ \\\* \[0-9\]+. of arguments 1 and 2 exceeds" } */ + T (asz1_2 (1, x)); /* { dg-warning "argument 2 value .\[0-9\]+. exceeds" } */ + T (asz1_2 (x, 1)); /* { dg-warning "argument 1 value .\[0-9\]+. exceeds" } */ + T (asz1_2 (1, 1)); + +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/Warray-bounds-36.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/Warray-bounds-36.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/Warray-bounds-36.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/Warray-bounds-36.c 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,27 @@ +/* PR tree-optimization/84053] missing -Warray-bounds accessing + a local array across inlined function boundaries + { dg-do compile } + { dg-options "-O2 -Wall" } */ + +int deref (const int *p, int i) +{ + return p[i]; // { dg-warning "array subscript \\\[3, \[0-9\]+] is outside array bounds of .int\\\[2\\\]." "ilp33" { xfail ilp32 } } + + // There should also be an inlining context here. PR 86650 tracks + // its absence. +} + +int deref_3_plus (const int *p, int i) +{ + if (i < 3) + i = 3; + + return deref (p, i); +} + +int deref_a (int i) +{ + int a[] = { 2, 3 }; + + return deref_3_plus (a, i); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/weak/weak.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/weak/weak.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg/weak/weak.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg/weak/weak.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg-selftests/dg-final.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg-selftests/dg-final.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.dg-selftests/dg-final.exp 2018-07-09 11:23:03.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.dg-selftests/dg-final.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,6 +25,7 @@ load_lib "scanwpaipa.exp" load_lib "scanltranstree.exp" load_lib "scanoffloadtree.exp" +load_lib "scanoffloadrtl.exp" load_lib "gcc-dg.exp" proc verify_call_1 { args } { @@ -82,7 +83,8 @@ verify_call $proc_name $too_few "too few arguments" } - foreach kind [list "tree" "rtl" "ipa" "ltrans-tree" "wpa-ipa" "offload-tree"] { + foreach kind [list "tree" "rtl" "ipa" "ltrans-tree" "wpa-ipa" \ + "offload-tree" "offload-rtl"] { verify_args scan-$kind-dump 2 3 verify_args scan-$kind-dump-times 3 4 verify_args scan-$kind-dump-not 2 3 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/acker1.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/acker1.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/acker1.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/acker1.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/arm-isr.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/arm-isr.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/arm-isr.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/arm-isr.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/bprob.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/bprob.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/bprob.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/bprob.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/dectest.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/dectest.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/dectest.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/dectest.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/dhry.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/dhry.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/dhry.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/dhry.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/gcov.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/gcov.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/gcov.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/gcov.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/godump.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/godump.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/godump.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/godump.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/help.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/help.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/help.exp 2018-11-22 10:29:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/help.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/linkage.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/linkage.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/linkage.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/linkage.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1988-2018 Free Software Foundation, Inc. +# Copyright (C) 1988-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/matrix1.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/matrix1.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/matrix1.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/matrix1.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/mg-2.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/mg-2.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/mg-2.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/mg-2.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/mg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/mg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/mg.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/mg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/options.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/options.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/options.exp 2018-07-09 11:23:03.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/options.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/output.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/output.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/output.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/output.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/sieve.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/sieve.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/sieve.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/sieve.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/sort2.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/sort2.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/sort2.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.misc-tests/sort2.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.src/maintainers.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.src/maintainers.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.src/maintainers.exp 2018-07-21 17:29:11.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.src/maintainers.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # Contributed by ARM Ltd. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/aarch64.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/aarch64.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/aarch64.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/aarch64.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Specific regression driver for AArch64. -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # Contributed by ARM Ltd. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/acle/acle.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/acle/acle.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/acle/acle.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/acle/acle.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/fp16/fp16.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/fp16/fp16.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/fp16/fp16.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/fp16/fp16.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Tests of 16-bit floating point (__fp16), for both ARM and AArch64. -# Copyright (C) 2015-2018 Free Software Foundation, Inc. +# Copyright (C) 2015-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/pr64946.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/pr64946.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/pr64946.c 2018-06-17 03:58:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/pr64946.c 2018-12-29 02:41:33.000000000 +0000 @@ -1,7 +1,8 @@ - /* { dg-do compile } */ /* { dg-options "-O3" } */ +#pragma GCC target "+nosve" + signed char a[100],b[100]; void absolute_s8 (void) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/simd/simd.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/simd/simd.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/simd/simd.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/simd/simd.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Specific regression driver for AArch64 SIMD instructions. -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # Contributed by ARM Ltd. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/ssadv16qi.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/ssadv16qi.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/ssadv16qi.c 2018-05-21 12:22:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/ssadv16qi.c 2018-12-29 02:41:33.000000000 +0000 @@ -1,6 +1,8 @@ /* { dg-do compile } */ /* { dg-options "-O3" } */ +#pragma GCC target "+nosve" + #define N 1024 signed char pix1[N], pix2[N]; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp 2018-02-04 08:44:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Specific regression driver for AArch64 SVE. -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # Contributed by ARM Ltd. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/sve/abs_1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/sve/abs_1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/sve/abs_1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/sve/abs_1.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,21 @@ +/* { dg-do assemble { target aarch64_asm_sve_ok } } */ +/* { dg-options "-O3 --save-temps" } */ + +#include + +#define DO_OPS(TYPE) \ +void vneg_##TYPE (TYPE *dst, TYPE *src, int count) \ +{ \ + for (int i = 0; i < count; ++i) \ + dst[i] = src[i] < 0 ? -src[i] : src[i]; \ +} + +DO_OPS (int8_t) +DO_OPS (int16_t) +DO_OPS (int32_t) +DO_OPS (int64_t) + +/* { dg-final { scan-assembler-times {\tabs\tz[0-9]+\.b, p[0-7]/m, z[0-9]+\.b\n} 1 } } */ +/* { dg-final { scan-assembler-times {\tabs\tz[0-9]+\.h, p[0-7]/m, z[0-9]+\.h\n} 1 } } */ +/* { dg-final { scan-assembler-times {\tabs\tz[0-9]+\.s, p[0-7]/m, z[0-9]+\.s\n} 1 } } */ +/* { dg-final { scan-assembler-times {\tabs\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d\n} 1 } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/sve/fmla_2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/sve/fmla_2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/sve/fmla_2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/sve/fmla_2.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,19 @@ +/* { dg-options "-O3" } */ + +#include + +#define N 55 + +void __attribute__ ((noipa)) +f (double *restrict a, double *restrict b, double *restrict c, + double *restrict d, double *restrict e, int64_t *restrict cond) +{ + for (int i = 0; i < N; ++i) + { + a[i] = cond[i] ? __builtin_fma (c[i], d[i], e[i]) : e[i]; + b[i] = cond[i] ? __builtin_fma (c[i], e[i], d[i]) : d[i]; + } +} + +/* { dg-final { scan-assembler-times {\tfmla\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 2 } } */ +/* { dg-final { scan-assembler-not {\tfmad\t} } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/sve/fmla_2_run.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/sve/fmla_2_run.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/sve/fmla_2_run.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/sve/fmla_2_run.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,28 @@ +/* { dg-do run { target aarch64_sve_hw } } */ +/* { dg-options "-O3" } */ + +#include "fmla_2.c" + +int __attribute__ ((optimize (1))) +main (void) +{ + double a[N], b[N], c[N], d[N], e[N]; + int64_t cond[N]; + + for (int i = 0; i < N; ++i) + { + c[i] = i + i % 5; + d[i] = i + i % 7; + e[i] = i + i % 9; + cond[i] = i % 3; + } + + f (a, b, c, d, e, cond); + + for (int i = 0; i < N; ++i) + if (a[i] != (cond[i] ? __builtin_fma (c[i], d[i], e[i]) : e[i]) + || b[i] != (cond[i] ? __builtin_fma (c[i], e[i], d[i]) : d[i])) + __builtin_abort (); + + return 0; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/aarch64-torture.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/aarch64-torture.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/aarch64-torture.exp 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/aarch64-torture.exp 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,41 @@ +# Copyright (C) 2018-2019 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# . + +# GCC testsuite that uses the `gcc-dg.exp' driver, looping over +# optimization options. + +# Exit immediately if this isn't a Aarch64 target. +if { ![istarget aarch64*-*-*] } then { + return +} + +# Load support procs. +load_lib gcc-dg.exp + +# If a testcase doesn't have special options, use these. +global DEFAULT_CFLAGS +if ![info exists DEFAULT_CFLAGS] then { + set DEFAULT_CFLAGS " -ansi -pedantic-errors" +} + +# Initialize `dg'. +dg-init + +# Main loop. +gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "" $DEFAULT_CFLAGS + +# All done. +dg-finish diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-1.c 2018-12-18 00:25:20.000000000 +0000 @@ -0,0 +1,41 @@ +/* { dg-do compile } */ + +void __attribute__ ((aarch64_vector_pcs)) +f (void) +{ + /* Clobber all fp/simd regs and verify that the correct ones are saved + and restored in the prologue and epilogue of a SIMD function. */ + __asm__ __volatile__ ("" ::: "q0", "q1", "q2", "q3"); + __asm__ __volatile__ ("" ::: "q4", "q5", "q6", "q7"); + __asm__ __volatile__ ("" ::: "q8", "q9", "q10", "q11"); + __asm__ __volatile__ ("" ::: "q12", "q13", "q14", "q15"); + __asm__ __volatile__ ("" ::: "q16", "q17", "q18", "q19"); + __asm__ __volatile__ ("" ::: "q20", "q21", "q22", "q23"); + __asm__ __volatile__ ("" ::: "q24", "q25", "q26", "q27"); + __asm__ __volatile__ ("" ::: "q28", "q29", "q30", "q31"); +} + +/* { dg-final { scan-assembler {\sstp\tq8, q9} } } */ +/* { dg-final { scan-assembler {\sstp\tq10, q11} } } */ +/* { dg-final { scan-assembler {\sstp\tq12, q13} } } */ +/* { dg-final { scan-assembler {\sstp\tq14, q15} } } */ +/* { dg-final { scan-assembler {\sstp\tq16, q17} } } */ +/* { dg-final { scan-assembler {\sstp\tq18, q19} } } */ +/* { dg-final { scan-assembler {\sstp\tq20, q21} } } */ +/* { dg-final { scan-assembler {\sstp\tq22, q23} } } */ +/* { dg-final { scan-assembler {\sldp\tq8, q9} } } */ +/* { dg-final { scan-assembler {\sldp\tq10, q11} } } */ +/* { dg-final { scan-assembler {\sldp\tq12, q13} } } */ +/* { dg-final { scan-assembler {\sldp\tq14, q15} } } */ +/* { dg-final { scan-assembler {\sldp\tq16, q17} } } */ +/* { dg-final { scan-assembler {\sldp\tq18, q19} } } */ +/* { dg-final { scan-assembler {\sldp\tq20, q21} } } */ +/* { dg-final { scan-assembler {\sldp\tq22, q23} } } */ +/* { dg-final { scan-assembler-not {\sstp\tq[034567]} } } */ +/* { dg-final { scan-assembler-not {\sldp\tq[034567]} } } */ +/* { dg-final { scan-assembler-not {\sstp\tq2[456789]} } } */ +/* { dg-final { scan-assembler-not {\sldp\tq2[456789]} } } */ +/* { dg-final { scan-assembler-not {\sstp\td} } } */ +/* { dg-final { scan-assembler-not {\sldp\td} } } */ +/* { dg-final { scan-assembler-not {\sstr\t} } } */ +/* { dg-final { scan-assembler-not {\sldr\t} } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-2.c 2018-12-18 00:25:20.000000000 +0000 @@ -0,0 +1,33 @@ +/* { dg-do compile } */ + +void +f (void) +{ + /* Clobber all fp/simd regs and verify that the correct ones are saved + and restored in the prologue and epilogue of a normal non-SIMD function. */ + __asm__ __volatile__ ("" ::: "q0", "q1", "q2", "q3"); + __asm__ __volatile__ ("" ::: "q4", "q5", "q6", "q7"); + __asm__ __volatile__ ("" ::: "q8", "q9", "q10", "q11"); + __asm__ __volatile__ ("" ::: "q12", "q13", "q14", "q15"); + __asm__ __volatile__ ("" ::: "q16", "q17", "q18", "q19"); + __asm__ __volatile__ ("" ::: "q20", "q21", "q22", "q23"); + __asm__ __volatile__ ("" ::: "q24", "q25", "q26", "q27"); + __asm__ __volatile__ ("" ::: "q28", "q29", "q30", "q31"); +} + +/* { dg-final { scan-assembler {\sstp\td8, d9} } } */ +/* { dg-final { scan-assembler {\sstp\td10, d11} } } */ +/* { dg-final { scan-assembler {\sstp\td12, d13} } } */ +/* { dg-final { scan-assembler {\sstp\td14, d15} } } */ +/* { dg-final { scan-assembler {\sldp\td8, d9} } } */ +/* { dg-final { scan-assembler {\sldp\td10, d11} } } */ +/* { dg-final { scan-assembler {\sldp\td12, d13} } } */ +/* { dg-final { scan-assembler {\sldp\td14, d15} } } */ +/* { dg-final { scan-assembler-not {\sstp\tq} } } */ +/* { dg-final { scan-assembler-not {\sldp\tq} } } */ +/* { dg-final { scan-assembler-not {\sstp\tq[01234567]} } } */ +/* { dg-final { scan-assembler-not {\sldp\tq[01234567]} } } */ +/* { dg-final { scan-assembler-not {\sstp\tq1[6789]} } } */ +/* { dg-final { scan-assembler-not {\sldp\tq1[6789]} } } */ +/* { dg-final { scan-assembler-not {\sstr\t} } } */ +/* { dg-final { scan-assembler-not {\sldr\t} } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-3.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-3.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-3.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-3.c 2018-12-18 00:25:20.000000000 +0000 @@ -0,0 +1,34 @@ +/* { dg-do compile } */ + +extern void g (void); + +void __attribute__ ((aarch64_vector_pcs)) +f (void) +{ + g(); +} + +/* { dg-final { scan-assembler {\sstp\tq8, q9} } } */ +/* { dg-final { scan-assembler {\sstp\tq10, q11} } } */ +/* { dg-final { scan-assembler {\sstp\tq12, q13} } } */ +/* { dg-final { scan-assembler {\sstp\tq14, q15} } } */ +/* { dg-final { scan-assembler {\sstp\tq16, q17} } } */ +/* { dg-final { scan-assembler {\sstp\tq18, q19} } } */ +/* { dg-final { scan-assembler {\sstp\tq20, q21} } } */ +/* { dg-final { scan-assembler {\sstp\tq22, q23} } } */ +/* { dg-final { scan-assembler {\sldp\tq8, q9} } } */ +/* { dg-final { scan-assembler {\sldp\tq10, q11} } } */ +/* { dg-final { scan-assembler {\sldp\tq12, q13} } } */ +/* { dg-final { scan-assembler {\sldp\tq14, q15} } } */ +/* { dg-final { scan-assembler {\sldp\tq16, q17} } } */ +/* { dg-final { scan-assembler {\sldp\tq18, q19} } } */ +/* { dg-final { scan-assembler {\sldp\tq20, q21} } } */ +/* { dg-final { scan-assembler {\sldp\tq22, q23} } } */ +/* { dg-final { scan-assembler-not {\sstp\tq[034567]} } } */ +/* { dg-final { scan-assembler-not {\sldp\tq[034567]} } } */ +/* { dg-final { scan-assembler-not {\sstp\tq2[456789]} } } */ +/* { dg-final { scan-assembler-not {\sldp\tq2[456789]} } } */ +/* { dg-final { scan-assembler-not {\sstp\td} } } */ +/* { dg-final { scan-assembler-not {\sldp\td} } } */ +/* { dg-final { scan-assembler-not {\sstr\t} } } */ +/* { dg-final { scan-assembler-not {\sldr\t} } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-4.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-4.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-4.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-4.c 2018-12-18 00:25:20.000000000 +0000 @@ -0,0 +1,34 @@ +/* dg-do run */ +/* { dg-additional-options "-std=c99" } */ + + + +/* There is nothing special about the calculations here, this is just + a test that can be compiled and run. */ + +extern void abort (void); + +__Float64x2_t __attribute__ ((noinline, aarch64_vector_pcs)) +foo(__Float64x2_t a, __Float64x2_t b, __Float64x2_t c, + __Float64x2_t d, __Float64x2_t e, __Float64x2_t f, + __Float64x2_t g, __Float64x2_t h, __Float64x2_t i) +{ + __Float64x2_t w, x, y, z; + w = a + b * c; + x = d + e * f; + y = g + h * i; + return w + x * y; +} + + +int main() +{ + __Float64x2_t a, b, c, d; + a = (__Float64x2_t) { 1.0, 2.0 }; + b = (__Float64x2_t) { 3.0, 4.0 }; + c = (__Float64x2_t) { 5.0, 6.0 }; + d = foo (a, b, c, (a+b), (b+c), (a+c), (a-b), (b-c), (a-c)) + a + b + c; + if (d[0] != 337.0 || d[1] != 554.0) + abort (); + return 0; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-5.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-5.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-5.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-5.c 2018-12-18 00:25:20.000000000 +0000 @@ -0,0 +1,22 @@ +/* { dg-do compile } */ + +void __attribute__ ((aarch64_vector_pcs)) +f (void) +{ + /* Clobber some fp/simd regs and verify that only those are saved + and restored in the prologue and epilogue of a SIMD function. */ + __asm__ __volatile__ ("" ::: "q8", "q9", "q10", "q11"); +} + +/* { dg-final { scan-assembler {\sstp\tq8, q9} } } */ +/* { dg-final { scan-assembler {\sstp\tq10, q11} } } */ +/* { dg-final { scan-assembler-not {\sstp\tq[034567]} } } */ +/* { dg-final { scan-assembler-not {\sldp\tq[034567]} } } */ +/* { dg-final { scan-assembler-not {\sstp\tq1[23456789]} } } */ +/* { dg-final { scan-assembler-not {\sldp\tq1[23456789]} } } */ +/* { dg-final { scan-assembler-not {\sstp\tq2[456789]} } } */ +/* { dg-final { scan-assembler-not {\sldp\tq2[456789]} } } */ +/* { dg-final { scan-assembler-not {\sstp\td} } } */ +/* { dg-final { scan-assembler-not {\sldp\td} } } */ +/* { dg-final { scan-assembler-not {\sstr\t} } } */ +/* { dg-final { scan-assembler-not {\sldr\t} } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-6.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-6.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-6.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-6.c 2018-12-18 00:25:20.000000000 +0000 @@ -0,0 +1,24 @@ +/* { dg-do compile } */ + +void __attribute__ ((aarch64_vector_pcs)) +f (void) +{ + /* Clobber some fp/simd regs and verify that only those are saved + and restored in the prologue and epilogue of a SIMD function. */ + __asm__ __volatile__ ("" ::: "q8", "q10", "q11"); +} + +/* { dg-final { scan-assembler {\sstp\tq8, q10} } } */ +/* { dg-final { scan-assembler {\sstr\tq11} } } */ +/* { dg-final { scan-assembler-not {\sstp\tq[0345679]} } } */ +/* { dg-final { scan-assembler-not {\sldp\tq[0345679]} } } */ +/* { dg-final { scan-assembler-not {\sstp\tq1[123456789]} } } */ +/* { dg-final { scan-assembler-not {\sldp\tq1[123456789]} } } */ +/* { dg-final { scan-assembler-not {\sstp\tq2[456789]} } } */ +/* { dg-final { scan-assembler-not {\sldp\tq2[456789]} } } */ +/* { dg-final { scan-assembler-not {\sstp\td} } } */ +/* { dg-final { scan-assembler-not {\sldp\td} } } */ +/* { dg-final { scan-assembler-not {\sstr\tq[023456789]} } } */ +/* { dg-final { scan-assembler-not {\sldr\tq[023456789]} } } */ +/* { dg-final { scan-assembler-not {\sstr\tq1[023456789]} } } */ +/* { dg-final { scan-assembler-not {\sldr\tq1[023456789]} } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-7.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-7.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-7.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/torture/simd-abi-7.c 2018-12-18 00:25:20.000000000 +0000 @@ -0,0 +1,24 @@ +/* { dg-do compile } */ + +void __attribute__ ((aarch64_vector_pcs)) +f (void) +{ + /* Clobber some fp/simd regs and verify that only those are saved + and restored in the prologue and epilogue of a SIMD function. */ + __asm__ __volatile__ ("" ::: "q8", "q9", "q11"); +} + +/* { dg-final { scan-assembler {\sstp\tq8, q9} } } */ +/* { dg-final { scan-assembler {\sstr\tq11} } } */ +/* { dg-final { scan-assembler-not {\sstp\tq[034567]} } } */ +/* { dg-final { scan-assembler-not {\sldp\tq[034567]} } } */ +/* { dg-final { scan-assembler-not {\sstp\tq1[0123456789]} } } */ +/* { dg-final { scan-assembler-not {\sldp\tq1[0123456789]} } } */ +/* { dg-final { scan-assembler-not {\sstp\tq2[456789]} } } */ +/* { dg-final { scan-assembler-not {\sldp\tq2[456789]} } } */ +/* { dg-final { scan-assembler-not {\sstp\td} } } */ +/* { dg-final { scan-assembler-not {\sldp\td} } } */ +/* { dg-final { scan-assembler-not {\sstr\tq[023456789]} } } */ +/* { dg-final { scan-assembler-not {\sldr\tq[023456789]} } } */ +/* { dg-final { scan-assembler-not {\sstr\tq1[023456789]} } } */ +/* { dg-final { scan-assembler-not {\sldr\tq1[023456789]} } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/usadv16qi.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/usadv16qi.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/usadv16qi.c 2018-05-21 12:22:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/usadv16qi.c 2018-12-29 02:41:33.000000000 +0000 @@ -1,6 +1,8 @@ /* { dg-do compile } */ /* { dg-options "-O3" } */ +#pragma GCC target "+nosve" + #define N 1024 unsigned char pix1[N], pix2[N]; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/vect-abs-compile.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/vect-abs-compile.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/vect-abs-compile.c 2018-06-22 07:37:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/aarch64/vect-abs-compile.c 2018-12-29 02:41:33.000000000 +0000 @@ -1,7 +1,8 @@ - /* { dg-do compile } */ /* { dg-options "-O3 -fno-vect-cost-model" } */ +#pragma GCC target "+nosve" + #define N 16 #include "vect-abs.x" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/alpha/alpha.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/alpha/alpha.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/alpha/alpha.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/alpha/alpha.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arc/arc.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arc/arc.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arc/arc.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arc/arc.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arc/milli-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arc/milli-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arc/milli-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arc/milli-1.c 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,23 @@ +/* { dg-do compile } */ +/* { dg-options "-Os" } */ + +/* Test if we restore correctly blink when using millicode. */ +extern void bar (void); + +void foo (void) +{ + __asm__ volatile ( "" : : : "r13","r14","r15","r16","r17","r18","r20","r21"); + bar(); +} + +void foo2 (void) +{ + bar(); + __asm__ volatile ( "" : : : "r13","r14","r15","r16","r17","r18","r20","r21"); +} + +/* { dg-final { scan-assembler-not "st.*r13,\\\[sp" } } */ +/* { dg-final { scan-assembler-not "st.*r14,\\\[sp" } } */ +/* { dg-final { scan-assembler-not "st.*r15,\\\[sp" } } */ +/* { dg-final { scan-assembler "ld.*blink,\\\[sp,32" } } */ +/* { dg-final { scan-assembler "mov_s.*r12,32" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/aapcs/aapcs.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/aapcs/aapcs.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/aapcs/aapcs.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/aapcs/aapcs.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/acle/acle.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/acle/acle.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/acle/acle.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/acle/acle.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/arm.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/arm.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/arm.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/arm.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/cmse/baseline/softfp.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/cmse/baseline/softfp.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/cmse/baseline/softfp.c 2017-11-18 12:02:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/cmse/baseline/softfp.c 2018-12-29 02:41:33.000000000 +0000 @@ -1,5 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-mcmse -mfloat-abi=softfp" } */ +/* Force an FPU to test that it is ignored for Thumb-1 -like targets and that + no clearing of VFP register occurs. */ +/* { dg-options "-mcmse -mfloat-abi=softfp -mfpu=fpv5-d16" } */ double __attribute__ ((cmse_nonsecure_call)) (*bar) (float, double); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/cmse/cmse.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/cmse/cmse.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/cmse/cmse.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/cmse/cmse.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/lto/lto.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/lto/lto.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/lto/lto.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/lto/lto.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/multilib.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/multilib.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/multilib.exp 2018-11-13 05:13:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/multilib.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2018 Free Software Foundation, Inc. +# Copyright (C) 2017-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/pure-code/pure-code.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/pure-code/pure-code.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/pure-code/pure-code.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/pure-code/pure-code.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/simd/simd.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/simd/simd.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/simd/simd.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/simd/simd.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/size-optimization-ieee-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/size-optimization-ieee-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/size-optimization-ieee-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/size-optimization-ieee-1.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,34 @@ +/* { dg-do link { target arm_soft_ok } } */ +/* { dg-skip-if "Feature is -mfloat-abi=soft only" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=soft" } } */ +/* { dg-options "-mfloat-abi=soft" } */ + +int +foo (void) +{ + volatile float a; + volatile float b; + volatile float c = a * b; + return 0; +} + +int +bar (void) +{ + volatile double a; + volatile double b; + volatile double c = a * b; + return 0; +} + +int +main (void) +{ + foo (); + bar (); + return 0; +} + +/* { dg-final { scan-symbol "__aeabi_fmul" } } */ +/* { dg-final { scan-symbol "__aeabi_dmul" } } */ +/* { dg-final { scan-symbol-not "__aeabi_fdiv" } } */ +/* { dg-final { scan-symbol-not "__aeabi_ddiv" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/size-optimization-ieee-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/size-optimization-ieee-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/size-optimization-ieee-2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/size-optimization-ieee-2.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,32 @@ +/* { dg-do link { target arm_soft_ok } } */ +/* { dg-skip-if "Feature is -mfloat-abi=soft only" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=soft" } } */ +/* { dg-options "-mfloat-abi=soft" } */ + +int +foo (void) +{ + volatile float a; + volatile float b; + volatile float c = a / b; + return 0; +} + +int +bar (void) +{ + volatile double a; + volatile double b; + volatile double c = a / b; + return 0; +} + +int +main (void) +{ + foo (); + bar (); + return 0; +} + +/* { dg-final { scan-symbol "__aeabi_fdiv" } } */ +/* { dg-final { scan-symbol "__aeabi_ddiv" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/size-optimization-ieee-3.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/size-optimization-ieee-3.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/size-optimization-ieee-3.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/size-optimization-ieee-3.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,34 @@ +/* { dg-do link { target arm_soft_ok } } */ +/* { dg-skip-if "Feature is -mfloat-abi=soft only" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=soft" } } */ +/* { dg-options "-mfloat-abi=soft" } */ + +int +foo (void) +{ + volatile float a; + volatile float b; + volatile float c = a * b + a / b; + return 0; +} + +int +bar (void) +{ + volatile double a; + volatile double b; + volatile double c = a * b + a / b; + return 0; +} + +int +main (void) +{ + foo (); + bar (); + return 0; +} + +/* { dg-final { scan-symbol "__aeabi_fmul" } } */ +/* { dg-final { scan-symbol "__aeabi_dmul" } } */ +/* { dg-final { scan-symbol "__aeabi_fdiv" } } */ +/* { dg-final { scan-symbol "__aeabi_ddiv" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-2.c 2018-10-31 16:04:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-2.c 2018-12-16 02:30:45.000000000 +0000 @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-require-effective-target arm_cortex_m } */ /* { dg-require-effective-target arm_thumb2_ok } */ +/* { dg-require-effective-target arm_fp_ok } */ /* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mcpu=*" } { "-mcpu=cortex-m4" "-mcpu=cortex-m7" } } */ /* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */ /* { dg-skip-if "-mslow-flash-data and -mword-relocations incompatible" { *-*-* } { "-mword-relocations" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-3.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-3.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-3.c 2018-10-31 16:04:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-3.c 2018-12-16 02:30:45.000000000 +0000 @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-require-effective-target arm_cortex_m } */ /* { dg-require-effective-target arm_thumb2_ok } */ +/* { dg-require-effective-target arm_fp_ok } */ /* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mcpu=*" } { "-mcpu=cortex-m4" "-mcpu=cortex-m7" } } */ /* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */ /* { dg-skip-if "-mslow-flash-data and -mword-relocations incompatible" { *-*-* } { "-mword-relocations" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-4.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-4.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-4.c 2018-10-31 16:04:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-4.c 2018-12-16 02:30:45.000000000 +0000 @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-require-effective-target arm_cortex_m } */ /* { dg-require-effective-target arm_thumb2_ok } */ +/* { dg-require-effective-target arm_fp_ok } */ /* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mcpu=*" } { "-mcpu=cortex-m4" "-mcpu=cortex-m7" } } */ /* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */ /* { dg-skip-if "-mslow-flash-data and -mword-relocations incompatible" { *-*-* } { "-mword-relocations" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-5.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-5.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-5.c 2018-10-31 16:04:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-5.c 2018-12-16 02:30:45.000000000 +0000 @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-require-effective-target arm_cortex_m } */ /* { dg-require-effective-target arm_thumb2_ok } */ +/* { dg-require-effective-target arm_fp_ok } */ /* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mcpu=*" } { "-mcpu=cortex-m4" "-mcpu=cortex-m7" } } */ /* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */ /* { dg-skip-if "-mslow-flash-data and -mword-relocations incompatible" { *-*-* } { "-mword-relocations" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/avr/avr.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/avr/avr.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/avr/avr.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/avr/avr.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/avr/mmcu/avr-mmcu.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/avr/mmcu/avr-mmcu.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/avr/mmcu/avr-mmcu.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/avr/mmcu/avr-mmcu.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/avr/pr88253.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/avr/pr88253.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/avr/pr88253.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/avr/pr88253.c 2018-12-18 00:25:20.000000000 +0000 @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-options "-Os -w" } */ + +static int aRead() __attribute__((always_inline)); +static int aRead() { + unsigned char h,l; + l = (*(volatile unsigned char *)(0x78)) ; + h = (*(volatile unsigned char *)(0x79)) ; + return (h<<8) | l; +} + +int main() { + volatile unsigned char x; + x = aRead()^42; + } + /* { dg-final { scan-assembler "lds r\\d+,121" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/avr/torture/avr-torture.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/avr/torture/avr-torture.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/avr/torture/avr-torture.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/avr/torture/avr-torture.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/bfin/bfin.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/bfin/bfin.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/bfin/bfin.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/bfin/bfin.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/bfin/builtins/bfin-builtins.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/bfin/builtins/bfin-builtins.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/bfin/builtins/bfin-builtins.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/bfin/builtins/bfin-builtins.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/cris/cris.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/cris/cris.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/cris/cris.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/cris/cris.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/cris/torture/cris-torture.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/cris/torture/cris-torture.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/cris/torture/cris-torture.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/cris/torture/cris-torture.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/csky/csky.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/csky/csky.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/csky/csky.exp 2018-08-20 09:40:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/csky/csky.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # GCC testsuite for C-SKY targets. -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by C-SKY Microsystems and Mentor Graphics. # # This program is free software; you can redistribute it and/or modify diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/epiphany/epiphany.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/epiphany/epiphany.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/epiphany/epiphany.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/epiphany/epiphany.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/frv/frv.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/frv/frv.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/frv/frv.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/frv/frv.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/h8300/h8300.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/h8300/h8300.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/h8300/h8300.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/h8300/h8300.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/hppa/hppa.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/hppa/hppa.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/hppa/hppa.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/hppa/hppa.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx2-pr88547-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx2-pr88547-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx2-pr88547-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx2-pr88547-1.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,115 @@ +/* PR target/88547 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -mavx2 -mno-xop -mno-avx512f" } */ +/* { dg-final { scan-assembler-not "vpmingt\[bwd]\[\t ]" } } */ +/* { dg-final { scan-assembler-times "vpminub\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "vpminsb\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "vpminuw\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "vpminsw\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "vpminud\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "vpminsd\[\t ]" 2 } } */ + +typedef signed char v32qi __attribute__((vector_size(32))); +typedef unsigned char v32uqi __attribute__((vector_size(32))); +typedef short v16hi __attribute__((vector_size(32))); +typedef unsigned short v16uhi __attribute__((vector_size(32))); +typedef int v8si __attribute__((vector_size(32))); +typedef unsigned v8usi __attribute__((vector_size(32))); +typedef long long v4di __attribute__((vector_size(32))); +typedef unsigned long long v4udi __attribute__((vector_size(32))); + +__attribute__((noipa)) v32qi +f1 (v32qi x, v32qi y) +{ + return x <= y; +} + +__attribute__((noipa)) v32uqi +f2 (v32uqi x, v32uqi y) +{ + return x <= y; +} + +__attribute__((noipa)) v32qi +f3 (v32qi x, v32qi y) +{ + return x >= y; +} + +__attribute__((noipa)) v32uqi +f4 (v32uqi x, v32uqi y) +{ + return x >= y; +} + +__attribute__((noipa)) v16hi +f5 (v16hi x, v16hi y) +{ + return x <= y; +} + +__attribute__((noipa)) v16uhi +f6 (v16uhi x, v16uhi y) +{ + return x <= y; +} + +__attribute__((noipa)) v16hi +f7 (v16hi x, v16hi y) +{ + return x >= y; +} + +__attribute__((noipa)) v16uhi +f8 (v16uhi x, v16uhi y) +{ + return x >= y; +} + +__attribute__((noipa)) v8si +f9 (v8si x, v8si y) +{ + return x <= y; +} + +__attribute__((noipa)) v8usi +f10 (v8usi x, v8usi y) +{ + return x <= y; +} + +__attribute__((noipa)) v8si +f11 (v8si x, v8si y) +{ + return x >= y; +} + +__attribute__((noipa)) v8usi +f12 (v8usi x, v8usi y) +{ + return x >= y; +} + +__attribute__((noipa)) v4di +f13 (v4di x, v4di y) +{ + return x <= y; +} + +__attribute__((noipa)) v4udi +f14 (v4udi x, v4udi y) +{ + return x <= y; +} + +__attribute__((noipa)) v4di +f15 (v4di x, v4di y) +{ + return x >= y; +} + +__attribute__((noipa)) v4udi +f16 (v4udi x, v4udi y) +{ + return x >= y; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx2-pr88547-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx2-pr88547-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx2-pr88547-2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx2-pr88547-2.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,90 @@ +/* { dg-do run } */ +/* { dg-require-effective-target avx2 } */ +/* { dg-options "-O2 -mavx2" } */ + +#ifndef CHECK +#define CHECK "avx2-check.h" +#endif + +#ifndef TEST +#define TEST avx2_test +#endif + +#include CHECK + +#include "avx2-pr88547-1.c" + +#define NUM 256 + +#define TEST_SIGNED(vtype, type, N, fn, op) \ +do \ + { \ + union { vtype x[NUM / N]; type i[NUM]; } dst, src1, src2; \ + int i, sign = 1; \ + type res; \ + for (i = 0; i < NUM; i++) \ + { \ + src1.i[i] = i * i * sign; \ + src2.i[i] = (i + 20) * sign; \ + sign = -sign; \ + } \ + for (i = 0; i < NUM; i += N) \ + dst.x[i / N] = fn (src1.x[i / N], src2.x[i / N]); \ + \ + for (i = 0; i < NUM; i++) \ + { \ + res = src1.i[i] op src2.i[i] ? -1 : 0; \ + if (res != dst.i[i]) \ + abort (); \ + } \ + } \ +while (0) + +#define TEST_UNSIGNED(vtype, type, N, fn, op) \ +do \ + { \ + union { vtype x[NUM / N]; type i[NUM]; } dst, src1, src2; \ + int i; \ + type res; \ + \ + for (i = 0; i < NUM; i++) \ + { \ + src1.i[i] = i * i; \ + src2.i[i] = i + 20; \ + if ((i % 4)) \ + src2.i[i] |= (1ULL << (sizeof (type) \ + * __CHAR_BIT__ - 1)); \ + } \ + \ + for (i = 0; i < NUM; i += N) \ + dst.x[i / N] = fn (src1.x[i / N], src2.x[i / N]); \ + \ + for (i = 0; i < NUM; i++) \ + { \ + res = src1.i[i] op src2.i[i] ? -1 : 0; \ + if (res != dst.i[i]) \ + abort (); \ + } \ + } \ +while (0) + +static void +TEST (void) +{ + TEST_SIGNED (v32qi, signed char, 32, f1, <=); + TEST_UNSIGNED (v32uqi, unsigned char, 32, f2, <=); + TEST_SIGNED (v32qi, signed char, 32, f3, >=); + TEST_UNSIGNED (v32uqi, unsigned char, 32, f4, >=); + TEST_SIGNED (v16hi, short int, 16, f5, <=); + TEST_UNSIGNED (v16uhi, unsigned short int, 16, f6, <=); + TEST_SIGNED (v16hi, short int, 16, f7, >=); + TEST_UNSIGNED (v16uhi, unsigned short int, 16, f8, >=); + TEST_SIGNED (v8si, int, 8, f9, <=); + TEST_UNSIGNED (v8usi, unsigned int, 8, f10, <=); + TEST_SIGNED (v8si, int, 8, f11, >=); + TEST_UNSIGNED (v8usi, unsigned int, 8, f12, >=); + TEST_SIGNED (v4di, long long int, 4, f13, <=); + TEST_UNSIGNED (v4udi, unsigned long long int, 4, f14, <=); + TEST_SIGNED (v4di, long long int, 4, f15, >=); + TEST_UNSIGNED (v4udi, unsigned long long int, 4, f16, >=); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu16-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu16-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu16-2.c 2014-12-14 14:58:33.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu16-2.c 2018-12-29 02:41:33.000000000 +0000 @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mavx512bw" } */ +/* { dg-options "-O2 -mavx512bw -Wno-address-of-packed-member" } */ /* { dg-require-effective-target avx512bw } */ #define AVX512BW diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512dq-pr82855.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512dq-pr82855.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512dq-pr82855.c 2017-11-08 18:09:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512dq-pr82855.c 2018-12-29 02:41:33.000000000 +0000 @@ -1,7 +1,7 @@ /* PR target/82855 */ /* { dg-do compile } */ /* { dg-options "-O2 -mavx512vl -mavx512dq" } */ -/* { dg-final { scan-assembler {\mktestb\M} } } */ +/* { dg-final { scan-assembler {\mkortestb\M} } } */ #include diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f_cond_move.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f_cond_move.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f_cond_move.c 2014-12-14 14:58:33.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f_cond_move.c 2018-12-29 02:41:33.000000000 +0000 @@ -3,7 +3,7 @@ /* { dg-final { scan-assembler-times "(?:vpblendmd|vmovdqa32)\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 8 } } */ unsigned int x[128]; -unsigned int y[128]; +int y[128]; void foo () diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88462-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88462-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88462-1.c 2018-12-14 05:16:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88462-1.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -/* PR tree-optimization/88462 */ -/* { dg-do compile } */ -/* { dg-options "-O3 -mavx512f -mprefer-vector-width=512 -mtune=skylake-avx512 -fdump-tree-vect-details" } */ -/* { dg-final { scan-tree-dump-times "loop vectorized using 64 byte vectors" 3 "vect" } } */ -/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 3 "vect" } } */ - -__attribute__((noipa)) void -f1 (double * __restrict__ a, const double * __restrict__ b, const int * __restrict__ c, int n) -{ - int i; -#pragma GCC ivdep - for (i = 0; i < n; ++i) - if (a[i] > 10.0) - a[i] = b[c[i]]; -} - -__attribute__((noipa)) void -f2 (double * __restrict__ a, const double * __restrict__ b, const long * __restrict__ c, int n) -{ - int i; -#pragma GCC ivdep - for (i = 0; i < n; ++i) - if (a[i] > 10.0) - a[i] = b[c[i]]; -} - -__attribute__((noipa)) void -f3 (float * __restrict__ a, const float * __restrict__ b, const int * __restrict__ c, int n) -{ - int i; -#pragma GCC ivdep - for (i = 0; i < n; ++i) - if (a[i] > 10.0f) - a[i] = b[c[i]]; -} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88462-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88462-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88462-2.c 2018-12-14 05:16:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88462-2.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,51 +0,0 @@ -/* PR tree-optimization/88462 */ -/* { dg-do run { target { avx512f } } } */ -/* { dg-options "-O3 -mavx512f -mprefer-vector-width=512 -mtune=skylake-avx512" } */ - -#include "avx512f-check.h" - -#include "avx512f-pr88462-1.c" - -static void -avx512f_test (void) -{ - double a[1024], b[1024]; - float c[1024], f[1024]; - int d[1024]; - long e[1024]; - int i; - for (i = 0; i < 1024; i++) - { - asm volatile ("" : "+g" (i)); - a[i] = (i % 3) != 0 ? 15.0 : -5.0; - b[i] = 2 * i; - d[i] = (i % 3) ? 1023 - i : __INT_MAX__; - } - f1 (a, b, d, 1024); - for (i = 0; i < 1024; i++) - { - asm volatile ("" : "+g" (i)); - if (a[i] != ((i % 3) != 0 ? (1023 - i) * 2.0 : -5.0)) - abort (); - a[i] = (i % 3) != 1 ? 15.0 : -5.0; - b[i] = 3 * i; - e[i] = (i % 3) != 1 ? 1023 - i : __LONG_MAX__; - } - f2 (a, b, e, 1024); - for (i = 0; i < 1024; i++) - { - asm volatile ("" : "+g" (i)); - if (a[i] != ((i % 3) != 1 ? (1023 - i) * 3.0 : -5.0)) - abort (); - c[i] = (i % 3) != 2 ? 15.0f : -5.0f; - d[i] = (i % 3) != 2 ? 1023 - i : __INT_MAX__; - f[i] = 4 * i; - } - f3 (c, f, d, 1024); - for (i = 0; i < 1024; i++) - { - asm volatile ("" : "+g" (i)); - if (c[i] != ((i % 3) != 2 ? (1023 - i) * 4.0f : -5.0f)) - abort (); - } -} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-1.c 2018-12-16 02:30:45.000000000 +0000 @@ -0,0 +1,45 @@ +/* PR tree-optimization/88464 */ +/* { dg-do compile } */ +/* { dg-options "-O3 -mavx512f -mprefer-vector-width=512 -mtune=skylake-avx512 -fdump-tree-vect-details" } */ +/* { dg-final { scan-tree-dump-times "loop vectorized using 64 byte vectors" 4 "vect" } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ + +__attribute__((noipa)) void +f1 (double * __restrict__ a, const double * __restrict__ b, const int * __restrict__ c, int n) +{ + int i; +#pragma GCC ivdep + for (i = 0; i < n; ++i) + if (a[i] > 10.0) + a[i] = b[c[i]]; +} + +__attribute__((noipa)) void +f2 (double * __restrict__ a, const double * __restrict__ b, const long * __restrict__ c, int n) +{ + int i; +#pragma GCC ivdep + for (i = 0; i < n; ++i) + if (a[i] > 10.0) + a[i] = b[c[i]]; +} + +__attribute__((noipa)) void +f3 (float * __restrict__ a, const float * __restrict__ b, const int * __restrict__ c, int n) +{ + int i; +#pragma GCC ivdep + for (i = 0; i < n; ++i) + if (a[i] > 10.0f) + a[i] = b[c[i]]; +} + +__attribute__((noipa)) void +f4 (float * __restrict__ a, const float * __restrict__ b, const long * __restrict__ c, int n) +{ + int i; +#pragma GCC ivdep + for (i = 0; i < n; ++i) + if (a[i] > 10.0f) + a[i] = b[c[i]]; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-2.c 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,61 @@ +/* PR tree-optimization/88464 */ +/* { dg-do run { target { avx512f } } } */ +/* { dg-options "-O3 -mavx512f -mprefer-vector-width=512 -mtune=skylake-avx512" } */ + +#include "avx512f-check.h" + +#include "avx512f-pr88464-1.c" + +static void +avx512f_test (void) +{ + double a[1024], b[1024]; + float c[1024], f[1024]; + int d[1024]; + long e[1024]; + int i; + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + a[i] = (i % 3) != 0 ? 15.0 : -5.0; + b[i] = 2 * i; + d[i] = (i % 3) ? 1023 - i : __INT_MAX__; + } + f1 (a, b, d, 1024); + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + if (a[i] != ((i % 3) != 0 ? (1023 - i) * 2.0 : -5.0)) + abort (); + a[i] = (i % 3) != 1 ? 15.0 : -5.0; + b[i] = 3 * i; + e[i] = (i % 3) != 1 ? 1023 - i : __LONG_MAX__; + } + f2 (a, b, e, 1024); + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + if (a[i] != ((i % 3) != 1 ? (1023 - i) * 3.0 : -5.0)) + abort (); + c[i] = (i % 3) != 2 ? 15.0f : -5.0f; + d[i] = (i % 3) != 2 ? 1023 - i : __INT_MAX__; + f[i] = 4 * i; + } + f3 (c, f, d, 1024); + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + if (c[i] != ((i % 3) != 2 ? (1023 - i) * 4.0f : -5.0f)) + abort (); + c[i] = (i % 3) != 0 ? 15.0f : -5.0f; + e[i] = (i % 3) != 0 ? 1023 - i : __INT_MAX__; + f[i] = 5 * i; + } + f4 (c, f, e, 1024); + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + if (c[i] != ((i % 3) != 0 ? (1023 - i) * 5.0f : -5.0f)) + abort (); + } +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-3.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-3.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-3.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-3.c 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,45 @@ +/* PR tree-optimization/88464 */ +/* { dg-do compile } */ +/* { dg-options "-O3 -mavx512f -mprefer-vector-width=512 -mtune=skylake-avx512 -fdump-tree-vect-details" } */ +/* { dg-final { scan-tree-dump-times "loop vectorized using 64 byte vectors" 4 "vect" } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ + +__attribute__((noipa)) void +f1 (double * __restrict__ a, const double * __restrict__ b, const int * __restrict__ c, int n) +{ + int i; +#pragma GCC ivdep + for (i = 0; i < n; ++i) + if (b[i] > -2.0) + a[c[i]] = b[i]; +} + +__attribute__((noipa)) void +f2 (double * __restrict__ a, const double * __restrict__ b, const long * __restrict__ c, int n) +{ + int i; +#pragma GCC ivdep + for (i = 0; i < n; ++i) + if (b[i] > -2.0) + a[c[i]] = b[i]; +} + +__attribute__((noipa)) void +f3 (float * __restrict__ a, const float * __restrict__ b, const int * __restrict__ c, int n) +{ + int i; +#pragma GCC ivdep + for (i = 0; i < n; ++i) + if (b[i] > -2.0f) + a[c[i]] = b[i]; +} + +__attribute__((noipa)) void +f4 (float * __restrict__ a, const float * __restrict__ b, const long * __restrict__ c, int n) +{ + int i; +#pragma GCC ivdep + for (i = 0; i < n; ++i) + if (b[i] > -2.0f) + a[c[i]] = b[i]; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-4.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-4.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-4.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-4.c 2018-12-16 02:30:45.000000000 +0000 @@ -0,0 +1,61 @@ +/* PR tree-optimization/88464 */ +/* { dg-do run { target { avx512f } } } */ +/* { dg-options "-O3 -mavx512f -mprefer-vector-width=512 -mtune=skylake-avx512" } */ + +#include "avx512f-check.h" + +#include "avx512f-pr88464-3.c" + +static void +avx512f_test (void) +{ + double a[1024], b[1024]; + float c[1024], f[1024]; + int d[1024]; + long e[1024]; + int i; + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + a[i] = -5.0; + b[i] = (i % 3) != 0 ? 2.0 * i : -5.0; + d[i] = (i % 3) != 0 ? 1023 - i : __INT_MAX__; + } + f1 (a, b, d, 1024); + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + if (a[i] != ((i % 3) != 0 ? (1023 - i) * 2.0 : -5.0)) + abort (); + a[i] = -5.0; + b[i] = (i % 3) != 1 ? 3.0 * i : -5.0; + e[i] = (i % 3) != 1 ? 1023 - i : __LONG_MAX__; + } + f2 (a, b, e, 1024); + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + if (a[i] != ((i % 3) != 2 ? (1023 - i) * 3.0 : -5.0)) + abort (); + c[i] = -5.0f; + d[i] = (i % 3) != 2 ? 1023 - i : __INT_MAX__; + f[i] = (i % 3) != 2 ? 4.0f * i : -5.0f; + } + f3 (c, f, d, 1024); + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + if (c[i] != ((i % 3) != 1 ? (1023 - i) * 4.0f : -5.0f)) + abort (); + c[i] = -5.0f; + e[i] = (i % 3) != 0 ? 1023 - i : __INT_MAX__; + f[i] = (i % 3) != 0 ? 5.0f * i : -5.0f; + } + f4 (c, f, e, 1024); + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + if (c[i] != ((i % 3) != 0 ? (1023 - i) * 5.0f : -5.0f)) + abort (); + } +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-5.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-5.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-5.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-5.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,45 @@ +/* PR tree-optimization/88464 */ +/* { dg-do compile } */ +/* { dg-options "-O3 -mavx512f -mprefer-vector-width=512 -mtune=skylake-avx512 -fdump-tree-vect-details" } */ +/* { dg-final { scan-tree-dump-times "loop vectorized using 64 byte vectors" 4 "vect" } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ + +__attribute__((noipa)) void +f1 (long long * __restrict__ a, const long long * __restrict__ b, const int * __restrict__ c, int n) +{ + int i; +#pragma GCC ivdep + for (i = 0; i < n; ++i) + if (a[i] > 10) + a[i] = b[c[i]]; +} + +__attribute__((noipa)) void +f2 (long long * __restrict__ a, const long long * __restrict__ b, const long * __restrict__ c, int n) +{ + int i; +#pragma GCC ivdep + for (i = 0; i < n; ++i) + if (a[i] > 10) + a[i] = b[c[i]]; +} + +__attribute__((noipa)) void +f3 (int * __restrict__ a, const int * __restrict__ b, const int * __restrict__ c, int n) +{ + int i; +#pragma GCC ivdep + for (i = 0; i < n; ++i) + if (a[i] > 10) + a[i] = b[c[i]]; +} + +__attribute__((noipa)) void +f4 (int * __restrict__ a, const int * __restrict__ b, const long * __restrict__ c, int n) +{ + int i; +#pragma GCC ivdep + for (i = 0; i < n; ++i) + if (a[i] > 10) + a[i] = b[c[i]]; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-6.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-6.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-6.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-6.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,61 @@ +/* PR tree-optimization/88464 */ +/* { dg-do run { target { avx512f } } } */ +/* { dg-options "-O3 -mavx512f -mprefer-vector-width=512 -mtune=skylake-avx512" } */ + +#include "avx512f-check.h" + +#include "avx512f-pr88464-5.c" + +static void +avx512f_test (void) +{ + long long a[1024], b[1024]; + int c[1024], f[1024]; + int d[1024]; + long e[1024]; + int i; + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + a[i] = (i % 3) != 0 ? 15 : -5; + b[i] = 2 * i; + d[i] = (i % 3) ? 1023 - i : __INT_MAX__; + } + f1 (a, b, d, 1024); + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + if (a[i] != ((i % 3) != 0 ? (1023 - i) * 2 : -5)) + abort (); + a[i] = (i % 3) != 1 ? 15 : -5; + b[i] = 3 * i; + e[i] = (i % 3) != 1 ? 1023 - i : __LONG_MAX__; + } + f2 (a, b, e, 1024); + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + if (a[i] != ((i % 3) != 1 ? (1023 - i) * 3 : -5)) + abort (); + c[i] = (i % 3) != 2 ? 15 : -5; + d[i] = (i % 3) != 2 ? 1023 - i : __INT_MAX__; + f[i] = 4 * i; + } + f3 (c, f, d, 1024); + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + if (c[i] != ((i % 3) != 2 ? (1023 - i) * 4: -5)) + abort (); + c[i] = (i % 3) != 0 ? 15 : -5; + e[i] = (i % 3) != 0 ? 1023 - i : __INT_MAX__; + f[i] = 5 * i; + } + f4 (c, f, e, 1024); + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + if (c[i] != ((i % 3) != 0 ? (1023 - i) * 5 : -5)) + abort (); + } +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-7.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-7.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-7.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-7.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,45 @@ +/* PR tree-optimization/88464 */ +/* { dg-do compile } */ +/* { dg-options "-O3 -mavx512f -mprefer-vector-width=512 -mtune=skylake-avx512 -fdump-tree-vect-details" } */ +/* { dg-final { scan-tree-dump-times "loop vectorized using 64 byte vectors" 4 "vect" } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ + +__attribute__((noipa)) void +f1 (long long * __restrict__ a, const long long * __restrict__ b, const int * __restrict__ c, int n) +{ + int i; +#pragma GCC ivdep + for (i = 0; i < n; ++i) + if (b[i] > -2) + a[c[i]] = b[i]; +} + +__attribute__((noipa)) void +f2 (long long * __restrict__ a, const long long * __restrict__ b, const long * __restrict__ c, int n) +{ + int i; +#pragma GCC ivdep + for (i = 0; i < n; ++i) + if (b[i] > -2) + a[c[i]] = b[i]; +} + +__attribute__((noipa)) void +f3 (int * __restrict__ a, const int * __restrict__ b, const int * __restrict__ c, int n) +{ + int i; +#pragma GCC ivdep + for (i = 0; i < n; ++i) + if (b[i] > -2) + a[c[i]] = b[i]; +} + +__attribute__((noipa)) void +f4 (int * __restrict__ a, const int * __restrict__ b, const long * __restrict__ c, int n) +{ + int i; +#pragma GCC ivdep + for (i = 0; i < n; ++i) + if (b[i] > -2) + a[c[i]] = b[i]; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-8.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-8.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-8.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88464-8.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,61 @@ +/* PR tree-optimization/88464 */ +/* { dg-do run { target { avx512f } } } */ +/* { dg-options "-O3 -mavx512f -mprefer-vector-width=512 -mtune=skylake-avx512" } */ + +#include "avx512f-check.h" + +#include "avx512f-pr88464-7.c" + +static void +avx512f_test (void) +{ + long long a[1024], b[1024]; + int c[1024], f[1024]; + int d[1024]; + long e[1024]; + int i; + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + a[i] = -5; + b[i] = (i % 3) != 0 ? 2 * i : -5; + d[i] = (i % 3) != 0 ? 1023 - i : __INT_MAX__; + } + f1 (a, b, d, 1024); + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + if (a[i] != ((i % 3) != 0 ? (1023 - i) * 2 : -5)) + abort (); + a[i] = -5; + b[i] = (i % 3) != 1 ? 3 * i : -5; + e[i] = (i % 3) != 1 ? 1023 - i : __LONG_MAX__; + } + f2 (a, b, e, 1024); + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + if (a[i] != ((i % 3) != 2 ? (1023 - i) * 3 : -5)) + abort (); + c[i] = -5; + d[i] = (i % 3) != 2 ? 1023 - i : __INT_MAX__; + f[i] = (i % 3) != 2 ? 4 * i : -5; + } + f3 (c, f, d, 1024); + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + if (c[i] != ((i % 3) != 1 ? (1023 - i) * 4 : -5)) + abort (); + c[i] = -5; + e[i] = (i % 3) != 0 ? 1023 - i : __INT_MAX__; + f[i] = (i % 3) != 0 ? 5 * i : -5; + } + f4 (c, f, e, 1024); + for (i = 0; i < 1024; i++) + { + asm volatile ("" : "+g" (i)); + if (c[i] != ((i % 3) != 0 ? (1023 - i) * 5 : -5)) + abort (); + } +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88513-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88513-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88513-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88513-1.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,16 @@ +/* PR target/88513 */ +/* { dg-do run } */ +/* { dg-options "-O2 -fopenmp-simd -mavx512f -mtune=intel -mprefer-vector-width=512 -fno-vect-cost-model" } */ +/* { dg-require-effective-target avx512f } */ + +#define CHECK_H "avx512f-check.h" + +#include "../../gcc.dg/vect/pr59591-1.c" + +#include CHECK_H + +static void +test_512 (void) +{ + bar (); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88513-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88513-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88513-2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88513-2.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,16 @@ +/* PR target/88513 */ +/* { dg-do run } */ +/* { dg-options "-O2 -fopenmp-simd -mavx512f -mtune=intel -mprefer-vector-width=512 -fno-vect-cost-model" } */ +/* { dg-require-effective-target avx512f } */ + +#define CHECK_H "avx512f-check.h" + +#include "../../gcc.dg/vect/pr59591-2.c" + +#include CHECK_H + +static void +test_512 (void) +{ + bar (); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88547-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88547-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88547-2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-pr88547-2.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,82 @@ +/* { dg-do run } */ +/* { dg-require-effective-target avx512f } */ +/* { dg-options "-O2 -mavx512f" } */ + +#include "avx512-check.h" + +#include "pr88547-1.c" + +#define NUM 512 + +#define TEST_SIGNED(vtype, type, N, fn, op) \ +do \ + { \ + union { vtype x[NUM / N]; type i[NUM]; } dst, src1, src2; \ + int i, sign = 1; \ + type res; \ + for (i = 0; i < NUM; i++) \ + { \ + src1.i[i] = i * i * sign; \ + src2.i[i] = (i + 20) * sign; \ + sign = -sign; \ + } \ + for (i = 0; i < NUM; i += N) \ + dst.x[i / N] = fn (src1.x[i / N], src2.x[i / N]); \ + \ + for (i = 0; i < NUM; i++) \ + { \ + res = src1.i[i] op src2.i[i] ? -1 : 0; \ + if (res != dst.i[i]) \ + abort (); \ + } \ + } \ +while (0) + +#define TEST_UNSIGNED(vtype, type, N, fn, op) \ +do \ + { \ + union { vtype x[NUM / N]; type i[NUM]; } dst, src1, src2; \ + int i; \ + type res; \ + \ + for (i = 0; i < NUM; i++) \ + { \ + src1.i[i] = i * i; \ + src2.i[i] = i + 20; \ + if ((i % 4)) \ + src2.i[i] |= (1ULL << (sizeof (type) \ + * __CHAR_BIT__ - 1)); \ + } \ + \ + for (i = 0; i < NUM; i += N) \ + dst.x[i / N] = fn (src1.x[i / N], src2.x[i / N]); \ + \ + for (i = 0; i < NUM; i++) \ + { \ + res = src1.i[i] op src2.i[i] ? -1 : 0; \ + if (res != dst.i[i]) \ + abort (); \ + } \ + } \ +while (0) + +static void +test_512 (void) +{ + TEST_SIGNED (v64qi, signed char, 64, f1, <=); + TEST_UNSIGNED (v64uqi, unsigned char, 64, f2, <=); + TEST_SIGNED (v64qi, signed char, 64, f3, >=); + TEST_UNSIGNED (v64uqi, unsigned char, 64, f4, >=); + TEST_SIGNED (v32hi, short int, 32, f5, <=); + TEST_UNSIGNED (v32uhi, unsigned short int, 32, f6, <=); + TEST_SIGNED (v32hi, short int, 32, f7, >=); + TEST_UNSIGNED (v32uhi, unsigned short int, 32, f8, >=); + TEST_SIGNED (v16si, int, 16, f9, <=); + TEST_UNSIGNED (v16usi, unsigned int, 16, f10, <=); + TEST_SIGNED (v16si, int, 16, f11, >=); + TEST_UNSIGNED (v16usi, unsigned int, 16, f12, >=); + TEST_SIGNED (v8di, long long int, 8, f13, <=); + TEST_UNSIGNED (v8udi, unsigned long long int, 8, f14, <=); + TEST_SIGNED (v8di, long long int, 8, f15, >=); + TEST_UNSIGNED (v8udi, unsigned long long int, 8, f16, >=); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-vmovdqu32-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-vmovdqu32-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-vmovdqu32-2.c 2014-12-14 14:58:35.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-vmovdqu32-2.c 2018-12-29 02:41:33.000000000 +0000 @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -mavx512f -Wno-address-of-packed-member" } */ /* { dg-require-effective-target avx512f } */ #define AVX512F diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-vmovdqu64-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-vmovdqu64-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-vmovdqu64-2.c 2014-12-14 14:58:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512f-vmovdqu64-2.c 2018-12-29 02:41:33.000000000 +0000 @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mavx512f" } */ +/* { dg-options "-O2 -mavx512f -Wno-address-of-packed-member" } */ /* { dg-require-effective-target avx512f } */ #define AVX512F diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-10.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-10.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-10.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-10.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,20 @@ +/* PR tree-optimization/88464 */ +/* { dg-do run { target { avx512vl } } } */ +/* { dg-options "-O3 -mavx512vl -mprefer-vector-width=256 -mtune=skylake-avx512" } */ + +#define AVX512VL +#define AVX512F_LEN 512 +#define AVX512F_LEN_HALF 256 + +#include "avx512f-pr88464-6.c" + +static void +test_256 (void) +{ + avx512f_test (); +} + +static void +test_128 (void) +{ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-11.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-11.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-11.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-11.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,7 @@ +/* PR tree-optimization/88464 */ +/* { dg-do compile } */ +/* { dg-options "-O3 -mavx512vl -mprefer-vector-width=128 -mtune=skylake-avx512 -fdump-tree-vect-details" } */ +/* { dg-final { scan-tree-dump-times "loop vectorized using 16 byte vectors" 4 "vect" } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ + +#include "avx512f-pr88464-5.c" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-12.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-12.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-12.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-12.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,20 @@ +/* PR tree-optimization/88464 */ +/* { dg-do run { target { avx512vl } } } */ +/* { dg-options "-O3 -mavx512vl -mprefer-vector-width=128 -mtune=skylake-avx512" } */ + +#define AVX512VL +#define AVX512F_LEN 512 +#define AVX512F_LEN_HALF 256 + +#include "avx512f-pr88464-6.c" + +static void +test_256 (void) +{ + avx512f_test (); +} + +static void +test_128 (void) +{ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-13.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-13.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-13.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-13.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,7 @@ +/* PR tree-optimization/88464 */ +/* { dg-do compile } */ +/* { dg-options "-O3 -mavx512vl -mprefer-vector-width=256 -mtune=skylake-avx512 -fdump-tree-vect-details" } */ +/* { dg-final { scan-tree-dump-times "loop vectorized using 32 byte vectors" 4 "vect" } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ + +#include "avx512f-pr88464-7.c" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-14.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-14.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-14.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-14.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,20 @@ +/* PR tree-optimization/88464 */ +/* { dg-do run { target { avx512vl } } } */ +/* { dg-options "-O3 -mavx512vl -mprefer-vector-width=256 -mtune=skylake-avx512" } */ + +#define AVX512VL +#define AVX512F_LEN 512 +#define AVX512F_LEN_HALF 256 + +#include "avx512f-pr88464-8.c" + +static void +test_256 (void) +{ + avx512f_test (); +} + +static void +test_128 (void) +{ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-15.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-15.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-15.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-15.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,7 @@ +/* PR tree-optimization/88464 */ +/* { dg-do compile } */ +/* { dg-options "-O3 -mavx512vl -mprefer-vector-width=128 -fno-vect-cost-model -mtune=skylake-avx512 -fdump-tree-vect-details" } */ +/* { dg-final { scan-tree-dump-times "loop vectorized using 16 byte vectors" 4 "vect" } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ + +#include "avx512f-pr88464-7.c" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-16.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-16.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-16.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-16.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,20 @@ +/* PR tree-optimization/88464 */ +/* { dg-do run { target { avx512vl } } } */ +/* { dg-options "-O3 -mavx512vl -mprefer-vector-width=128 -fno-vect-cost-model -mtune=skylake-avx512" } */ + +#define AVX512VL +#define AVX512F_LEN 512 +#define AVX512F_LEN_HALF 256 + +#include "avx512f-pr88464-8.c" + +static void +test_256 (void) +{ + avx512f_test (); +} + +static void +test_128 (void) +{ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-1.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,7 @@ +/* PR tree-optimization/88464 */ +/* { dg-do compile } */ +/* { dg-options "-O3 -mavx512vl -mprefer-vector-width=256 -mtune=skylake-avx512 -fdump-tree-vect-details" } */ +/* { dg-final { scan-tree-dump-times "loop vectorized using 32 byte vectors" 4 "vect" } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ + +#include "avx512f-pr88464-1.c" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-2.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,20 @@ +/* PR tree-optimization/88464 */ +/* { dg-do run { target { avx512vl } } } */ +/* { dg-options "-O3 -mavx512vl -mprefer-vector-width=256 -mtune=skylake-avx512" } */ + +#define AVX512VL +#define AVX512F_LEN 512 +#define AVX512F_LEN_HALF 256 + +#include "avx512f-pr88464-2.c" + +static void +test_256 (void) +{ + avx512f_test (); +} + +static void +test_128 (void) +{ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-3.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-3.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-3.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-3.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,7 @@ +/* PR tree-optimization/88464 */ +/* { dg-do compile } */ +/* { dg-options "-O3 -mavx512vl -mprefer-vector-width=128 -mtune=skylake-avx512 -fdump-tree-vect-details" } */ +/* { dg-final { scan-tree-dump-times "loop vectorized using 16 byte vectors" 4 "vect" } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ + +#include "avx512f-pr88464-1.c" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-4.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-4.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-4.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-4.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,20 @@ +/* PR tree-optimization/88464 */ +/* { dg-do run { target { avx512vl } } } */ +/* { dg-options "-O3 -mavx512vl -mprefer-vector-width=128 -mtune=skylake-avx512" } */ + +#define AVX512VL +#define AVX512F_LEN 512 +#define AVX512F_LEN_HALF 256 + +#include "avx512f-pr88464-2.c" + +static void +test_256 (void) +{ + avx512f_test (); +} + +static void +test_128 (void) +{ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-5.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-5.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-5.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-5.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,7 @@ +/* PR tree-optimization/88464 */ +/* { dg-do compile } */ +/* { dg-options "-O3 -mavx512vl -mprefer-vector-width=256 -mtune=skylake-avx512 -fdump-tree-vect-details" } */ +/* { dg-final { scan-tree-dump-times "loop vectorized using 32 byte vectors" 4 "vect" } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ + +#include "avx512f-pr88464-3.c" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-6.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-6.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-6.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-6.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,20 @@ +/* PR tree-optimization/88464 */ +/* { dg-do run { target { avx512vl } } } */ +/* { dg-options "-O3 -mavx512vl -mprefer-vector-width=256 -mtune=skylake-avx512" } */ + +#define AVX512VL +#define AVX512F_LEN 512 +#define AVX512F_LEN_HALF 256 + +#include "avx512f-pr88464-4.c" + +static void +test_256 (void) +{ + avx512f_test (); +} + +static void +test_128 (void) +{ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-7.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-7.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-7.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-7.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,7 @@ +/* PR tree-optimization/88464 */ +/* { dg-do compile } */ +/* { dg-options "-O3 -mavx512vl -mprefer-vector-width=128 -fno-vect-cost-model -mtune=skylake-avx512 -fdump-tree-vect-details" } */ +/* { dg-final { scan-tree-dump-times "loop vectorized using 16 byte vectors" 4 "vect" } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ + +#include "avx512f-pr88464-3.c" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-8.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-8.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-8.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-8.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,20 @@ +/* PR tree-optimization/88464 */ +/* { dg-do run { target { avx512vl } } } */ +/* { dg-options "-O3 -mavx512vl -mprefer-vector-width=128 -fno-vect-cost-model -mtune=skylake-avx512" } */ + +#define AVX512VL +#define AVX512F_LEN 512 +#define AVX512F_LEN_HALF 256 + +#include "avx512f-pr88464-4.c" + +static void +test_256 (void) +{ + avx512f_test (); +} + +static void +test_128 (void) +{ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-9.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-9.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-9.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-9.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,7 @@ +/* PR tree-optimization/88464 */ +/* { dg-do compile } */ +/* { dg-options "-O3 -mavx512vl -mprefer-vector-width=256 -mtune=skylake-avx512 -fdump-tree-vect-details" } */ +/* { dg-final { scan-tree-dump-times "loop vectorized using 32 byte vectors" 4 "vect" } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ + +#include "avx512f-pr88464-5.c" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88513-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88513-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88513-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88513-1.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,24 @@ +/* PR target/88513 */ +/* { dg-do run } */ +/* { dg-options "-O2 -fopenmp-simd -mavx512vl -mtune=intel -mprefer-vector-width=128 -fno-vect-cost-model" } */ +/* { dg-require-effective-target avx512vl } */ + +#define AVX512VL +#define AVX512F_LEN 512 +#define AVX512F_LEN_HALF 256 +#define CHECK_H "avx512f-check.h" + +#include "../../gcc.dg/vect/pr59591-1.c" + +#include CHECK_H + +static void +test_256 (void) +{ + bar (); +} + +static void +test_128 (void) +{ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88513-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88513-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88513-2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88513-2.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,24 @@ +/* PR target/88513 */ +/* { dg-do run } */ +/* { dg-options "-O2 -fopenmp-simd -mavx512vl -mtune=intel -mprefer-vector-width=128 -fno-vect-cost-model" } */ +/* { dg-require-effective-target avx512vl } */ + +#define AVX512VL +#define AVX512F_LEN 512 +#define AVX512F_LEN_HALF 256 +#define CHECK_H "avx512f-check.h" + +#include "../../gcc.dg/vect/pr59591-2.c" + +#include CHECK_H + +static void +test_256 (void) +{ + bar (); +} + +static void +test_128 (void) +{ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88513-3.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88513-3.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88513-3.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88513-3.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,24 @@ +/* PR target/88513 */ +/* { dg-do run } */ +/* { dg-options "-O2 -fopenmp-simd -mavx512vl -mtune=intel -mprefer-vector-width=256 -fno-vect-cost-model" } */ +/* { dg-require-effective-target avx512vl } */ + +#define AVX512VL +#define AVX512F_LEN 512 +#define AVX512F_LEN_HALF 256 +#define CHECK_H "avx512f-check.h" + +#include "../../gcc.dg/vect/pr59591-1.c" + +#include CHECK_H + +static void +test_256 (void) +{ + bar (); +} + +static void +test_128 (void) +{ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88513-4.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88513-4.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88513-4.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88513-4.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,24 @@ +/* PR target/88513 */ +/* { dg-do run } */ +/* { dg-options "-O2 -fopenmp-simd -mavx512vl -mtune=intel -mprefer-vector-width=256 -fno-vect-cost-model" } */ +/* { dg-require-effective-target avx512vl } */ + +#define AVX512VL +#define AVX512F_LEN 512 +#define AVX512F_LEN_HALF 256 +#define CHECK_H "avx512f-check.h" + +#include "../../gcc.dg/vect/pr59591-2.c" + +#include CHECK_H + +static void +test_256 (void) +{ + bar (); +} + +static void +test_128 (void) +{ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88514-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88514-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88514-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88514-1.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,5 @@ +/* PR target/88514 */ +/* { dg-do assemble { target avx512vl } } */ +/* { dg-options "-Ofast -mavx512vl -mtune=intel -mprefer-vector-width=128" } */ + +#include "avx512vl-pr79299-1.c" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88514-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88514-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88514-2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88514-2.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,5 @@ +/* PR target/88514 */ +/* { dg-do assemble { target avx512vl } } */ +/* { dg-options "-Ofast -mavx512vl -mtune=intel -mprefer-vector-width=256" } */ + +#include "avx512vl-pr79299-1.c" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88514-3.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88514-3.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88514-3.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88514-3.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,5 @@ +/* PR target/88514 */ +/* { dg-do assemble { target avx512vl } } */ +/* { dg-options "-Ofast -mavx512vl -mtune=intel -mprefer-vector-width=512" } */ + +#include "avx512vl-pr79299-1.c" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88547-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88547-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88547-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88547-1.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,14 @@ +/* PR target/88547 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -mno-xop -mavx512vl -mno-avx512bw -mno-avx512dq" } */ +/* { dg-final { scan-assembler-not "vpmingt\[bwdq]\[\t ]" } } */ +/* { dg-final { scan-assembler-times "vpminub\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "vpminsb\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "vpminuw\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "vpminsw\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "vpminud\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "vpminsd\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "vpminuq\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "vpminsq\[\t ]" 2 } } */ + +#include "avx2-pr88547-1.c" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88547-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88547-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88547-2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88547-2.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,22 @@ +/* { dg-do run } */ +/* { dg-require-effective-target avx512vl } */ +/* { dg-require-effective-target avx512bw } */ +/* { dg-require-effective-target avx512dq } */ +/* { dg-options "-O2 -mavx512vl -mavx512bw -mavx512dq" } */ + +#define AVX512VL +#define AVX512BW +#define AVX512DQ + +#include "avx512f-pr88547-2.c" + +static void +test_256 (void) +{ + test_512 (); +} + +static void +test_128 (void) +{ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88547-3.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88547-3.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88547-3.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-pr88547-3.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,24 @@ +/* { dg-do run } */ +/* { dg-require-effective-target avx512vl } */ +/* { dg-require-effective-target avx512bw } */ +/* { dg-require-effective-target avx512dq } */ +/* { dg-options "-O2 -mavx512vl -mavx512bw -mavx512dq" } */ + +#define AVX512VL +#define AVX512BW +#define AVX512DQ +#define CHECK "avx512-check.h" +#define TEST test_512 + +#include "avx2-pr88547-2.c" + +static void +test_256 (void) +{ + return test_512 (); +} + +static void +test_128 (void) +{ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vfixupimmsd-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vfixupimmsd-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vfixupimmsd-2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vfixupimmsd-2.c 2018-12-16 02:30:45.000000000 +0000 @@ -0,0 +1,20 @@ +/* { dg-do run } */ +/* { dg-options "-mavx512vl -O2 -std=gnu99" } */ +/* { dg-require-effective-target avx512vl } */ +/* { dg-require-effective-target c99_runtime } */ + +#define AVX512VL +#define AVX512F_LEN 512 +#define AVX512F_LEN_HALF 256 +#include "avx512f-vfixupimmsd-2.c" + +static void +test_256 (void) +{ + test_512 (); +} + +static void +test_128 (void) +{ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vfixupimmss-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vfixupimmss-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vfixupimmss-2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vfixupimmss-2.c 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,20 @@ +/* { dg-do run } */ +/* { dg-options "-mavx512vl -O2 -std=gnu99" } */ +/* { dg-require-effective-target avx512vl } */ +/* { dg-require-effective-target c99_runtime } */ + +#define AVX512VL +#define AVX512F_LEN 512 +#define AVX512F_LEN_HALF 256 +#include "avx512f-vfixupimmss-2.c" + +static void +test_256 (void) +{ + test_512 (); +} + +static void +test_128 (void) +{ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vmovdqu16-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vmovdqu16-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vmovdqu16-2.c 2014-12-14 14:58:33.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vmovdqu16-2.c 2018-12-29 02:41:33.000000000 +0000 @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mavx512bw -mavx512vl" } */ +/* { dg-options "-O2 -mavx512bw -mavx512vl -Wno-address-of-packed-member" } */ /* { dg-require-effective-target avx512vl } */ /* { dg-require-effective-target avx512bw } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vmovdqu32-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vmovdqu32-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vmovdqu32-2.c 2014-12-14 14:58:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vmovdqu32-2.c 2018-12-29 02:41:33.000000000 +0000 @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mavx512vl" } */ +/* { dg-options "-O2 -mavx512vl -Wno-address-of-packed-member" } */ /* { dg-require-effective-target avx512vl } */ #define AVX512VL diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vmovdqu64-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vmovdqu64-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vmovdqu64-2.c 2014-12-14 14:58:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx512vl-vmovdqu64-2.c 2018-12-29 02:41:33.000000000 +0000 @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-O2 -mavx512vl" } */ +/* { dg-options "-O2 -mavx512vl -Wno-address-of-packed-member" } */ /* { dg-require-effective-target avx512vl } */ #define AVX512VL diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx-vpclmulqdq-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx-vpclmulqdq-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx-vpclmulqdq-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/avx-vpclmulqdq-1.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -mavx -mvpclmulqdq" } */ + +#include + +__m256i +foo (__m256i x, __m256i y) +{ + return _mm256_clmulepi64_epi128 (x, y, 0); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/builtin_target.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/builtin_target.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/builtin_target.c 2018-05-21 12:22:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/builtin_target.c 2018-12-19 03:56:58.000000000 +0000 @@ -108,10 +108,18 @@ assert (__builtin_cpu_is ("skylake")); break; case 0x55: - /* Skylake with AVX-512 support. */ - assert (__builtin_cpu_is ("corei7")); - assert (__builtin_cpu_is ("skylake-avx512")); - break; + { + unsigned int eax, ebx, ecx, edx; + __cpuid_count (7, 0, eax, ebx, ecx, edx); + assert (__builtin_cpu_is ("corei7")); + if (ecx & bit_AVX512VNNI) + /* Cascade Lake. */ + assert (__builtin_cpu_is ("cascadelake")); + else + /* Skylake with AVX-512 support. */ + assert (__builtin_cpu_is ("skylake-avx512")); + break; + } case 0x66: /* Cannon Lake. */ assert (__builtin_cpu_is ("cannonlake")); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-1.c 2018-12-16 02:30:45.000000000 +0000 @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fcf-protection -mmanual-endbr" } */ +/* { dg-final { scan-assembler-not {\mendbr} } } */ + +extern void bar (void) __attribute__((__cf_check__)); + +void +foo (void) +{ + bar (); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-2.c 2018-12-16 02:30:45.000000000 +0000 @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fcf-protection -mno-manual-endbr" } */ +/* { dg-final { scan-assembler-times {\mendbr} 1 } } */ + +extern void bar (void) __attribute__((__cf_check__)); + +void +foo (void) +{ + bar (); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-3.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-3.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-3.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-3.c 2018-12-16 02:30:45.000000000 +0000 @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fcf-protection=none" } */ +/* { dg-final { scan-assembler-not {\mendbr} } } */ + +extern void bar (void) __attribute__((__cf_check__)); + +void +foo (void) +{ + bar (); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-4.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-4.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-4.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-4.c 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fcf-protection -mmanual-endbr" } */ +/* { dg-final { scan-assembler-times {\mendbr} 1 } } */ + +extern void foo (void) __attribute__((__cf_check__)); + +void +foo (void) +{ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-5.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-5.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-5.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/cf_check-5.c 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fcf-protection -mmanual-endbr" } */ +/* { dg-final { scan-assembler-times {\mendbr} 1 } } */ + +__attribute__((__cf_check__)) +void +foo (void) +{ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/i386.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/i386.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/i386.exp 2018-10-15 11:36:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/i386.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/iamcu/abi-iamcu.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/iamcu/abi-iamcu.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/iamcu/abi-iamcu.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/iamcu/abi-iamcu.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2015-2018 Free Software Foundation, Inc. +# Copyright (C) 2015-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/pr87759.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/pr87759.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/pr87759.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/pr87759.c 2018-12-19 03:56:58.000000000 +0000 @@ -0,0 +1,39 @@ +/* PR rtl-optimization/87759 */ +/* { dg-do compile { target int128 } } */ +/* { dg-options "-O2 -w -fschedule-insns -fselective-scheduling -ftrapv -fno-dce -fno-expensive-optimizations -fno-ipa-ra -fno-tree-dce -fno-tree-ter" } */ + +int cc; + +void +rc (__int128 *oi) +{ + __int128 qz = (__int128)2 << cc; + + if (qz != 0) + { + if (cc != 0) + { + __int128 zp = 1; + + for (;;) + { + unsigned __int128 *ar = &cc; + int y5; + + if (oi != 0) + { + y3: + zp = *oi + *ar; + } + + y5 = (cc + 1) == ((*ar /= *oi) << ((zp >>= 128) / cc)); + qz += !!y5 ? 1 : qz == (*ar ^ zp + 1); + ++*oi; + } + } + else + ++qz; + } + + goto y3; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/pr88418.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/pr88418.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/pr88418.c 2018-12-10 19:27:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/pr88418.c 2018-12-29 02:41:33.000000000 +0000 @@ -1,6 +1,6 @@ /* PR target/88418 */ /* { dg-do compile } */ -/* { dg-options "-O1 -fpack-struct -msse4.1" } */ +/* { dg-options "-O1 -fpack-struct -msse4.1 -mno-avx" } */ typedef long long v2di __attribute__ ((__vector_size__ (16))); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/pr88547-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/pr88547-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/pr88547-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/pr88547-1.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,121 @@ +/* PR target/88547 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -mavx512vl -mavx512bw -mavx512dq" } */ +/* { dg-final { scan-assembler-not "vpternlog" } } */ +/* { dg-final { scan-assembler-times "vpmovm2b\[\t ]" 4 } } */ +/* { dg-final { scan-assembler-times "vpmovm2w\[\t ]" 4 } } */ +/* { dg-final { scan-assembler-times "vpmovm2d\[\t ]" 4 } } */ +/* { dg-final { scan-assembler-times "vpmovm2q\[\t ]" 4 } } */ +/* { dg-final { scan-assembler-times "knotb\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "knotw\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "knotd\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "knotq\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "vpminud\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "vpminuq\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-not "vpsubd\[\t ]" } } */ +/* { dg-final { scan-assembler-not "vpsubq\[\t ]" } } */ + +typedef signed char v64qi __attribute__((vector_size(64))); +typedef unsigned char v64uqi __attribute__((vector_size(64))); +typedef short v32hi __attribute__((vector_size(64))); +typedef unsigned short v32uhi __attribute__((vector_size(64))); +typedef int v16si __attribute__((vector_size(64))); +typedef unsigned v16usi __attribute__((vector_size(64))); +typedef long long v8di __attribute__((vector_size(64))); +typedef unsigned long long v8udi __attribute__((vector_size(64))); + +v64qi +f1 (v64qi x, v64qi y) +{ + return x <= y; +} + +v64uqi +f2 (v64uqi x, v64uqi y) +{ + return x <= y; +} + +v64qi +f3 (v64qi x, v64qi y) +{ + return x >= y; +} + +v64uqi +f4 (v64uqi x, v64uqi y) +{ + return x >= y; +} + +v32hi +f5 (v32hi x, v32hi y) +{ + return x <= y; +} + +v32uhi +f6 (v32uhi x, v32uhi y) +{ + return x <= y; +} + +v32hi +f7 (v32hi x, v32hi y) +{ + return x >= y; +} + +v32uhi +f8 (v32uhi x, v32uhi y) +{ + return x >= y; +} + +v16si +f9 (v16si x, v16si y) +{ + return x <= y; +} + +v16usi +f10 (v16usi x, v16usi y) +{ + return x <= y; +} + +v16si +f11 (v16si x, v16si y) +{ + return x >= y; +} + +v16usi +f12 (v16usi x, v16usi y) +{ + return x >= y; +} + +v8di +f13 (v8di x, v8di y) +{ + return x <= y; +} + +v8udi +f14 (v8udi x, v8udi y) +{ + return x <= y; +} + +v8di +f15 (v8di x, v8di y) +{ + return x >= y; +} + +v8udi +f16 (v8udi x, v8udi y) +{ + return x >= y; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/sse2-pr88547-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/sse2-pr88547-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/sse2-pr88547-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/sse2-pr88547-1.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,115 @@ +/* PR target/88547 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -msse2 -mno-sse3" } */ +/* { dg-final { scan-assembler-not "pmingtw\[\t ]" } } */ +/* { dg-final { scan-assembler-times "pminub\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "pminsw\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-not "pminsb\[\t ]" } } */ +/* { dg-final { scan-assembler-not "pminuw\[\t ]" } } */ +/* { dg-final { scan-assembler-not "pminud\[\t ]" } } */ +/* { dg-final { scan-assembler-not "pminuq\[\t ]" } } */ + +typedef signed char v16qi __attribute__((vector_size(16))); +typedef unsigned char v16uqi __attribute__((vector_size(16))); +typedef short v8hi __attribute__((vector_size(16))); +typedef unsigned short v8uhi __attribute__((vector_size(16))); +typedef int v4si __attribute__((vector_size(16))); +typedef unsigned v4usi __attribute__((vector_size(16))); +typedef long long v2di __attribute__((vector_size(16))); +typedef unsigned long long v2udi __attribute__((vector_size(16))); + +v16qi +f1 (v16qi x, v16qi y) +{ + return x <= y; +} + +v16uqi +f2 (v16uqi x, v16uqi y) +{ + return x <= y; +} + +v16qi +f3 (v16qi x, v16qi y) +{ + return x >= y; +} + +v16uqi +f4 (v16uqi x, v16uqi y) +{ + return x >= y; +} + +v8hi +f5 (v8hi x, v8hi y) +{ + return x <= y; +} + +v8uhi +f6 (v8uhi x, v8uhi y) +{ + return x <= y; +} + +v8hi +f7 (v8hi x, v8hi y) +{ + return x >= y; +} + +v8uhi +f8 (v8uhi x, v8uhi y) +{ + return x >= y; +} + +v4si +f9 (v4si x, v4si y) +{ + return x <= y; +} + +v4usi +f10 (v4usi x, v4usi y) +{ + return x <= y; +} + +v4si +f11 (v4si x, v4si y) +{ + return x >= y; +} + +v4usi +f12 (v4usi x, v4usi y) +{ + return x >= y; +} + +v2di +f13 (v2di x, v2di y) +{ + return x <= y; +} + +v2udi +f14 (v2udi x, v2udi y) +{ + return x <= y; +} + +v2di +f15 (v2di x, v2di y) +{ + return x >= y; +} + +v2udi +f16 (v2udi x, v2udi y) +{ + return x >= y; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/sse2-pr88547-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/sse2-pr88547-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/sse2-pr88547-2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/sse2-pr88547-2.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,90 @@ +/* { dg-do run } */ +/* { dg-require-effective-target sse2 } */ +/* { dg-options "-O2 -msse2" } */ + +#ifndef CHECK_H +#define CHECK_H "sse2-check.h" +#endif + +#ifndef TEST +#define TEST sse2_test +#endif + +#include CHECK_H + +#include "sse2-pr88547-1.c" + +#define NUM 256 + +#define TEST_SIGNED(vtype, type, N, fn, op) \ +do \ + { \ + union { vtype x[NUM / N]; type i[NUM]; } dst, src1, src2; \ + int i, sign = 1; \ + type res; \ + for (i = 0; i < NUM; i++) \ + { \ + src1.i[i] = i * i * sign; \ + src2.i[i] = (i + 20) * sign; \ + sign = -sign; \ + } \ + for (i = 0; i < NUM; i += N) \ + dst.x[i / N] = fn (src1.x[i / N], src2.x[i / N]); \ + \ + for (i = 0; i < NUM; i++) \ + { \ + res = src1.i[i] op src2.i[i] ? -1 : 0; \ + if (res != dst.i[i]) \ + abort (); \ + } \ + } \ +while (0) + +#define TEST_UNSIGNED(vtype, type, N, fn, op) \ +do \ + { \ + union { vtype x[NUM / N]; type i[NUM]; } dst, src1, src2; \ + int i; \ + type res; \ + \ + for (i = 0; i < NUM; i++) \ + { \ + src1.i[i] = i * i; \ + src2.i[i] = i + 20; \ + if ((i % 4)) \ + src2.i[i] |= (1ULL << (sizeof (type) \ + * __CHAR_BIT__ - 1)); \ + } \ + \ + for (i = 0; i < NUM; i += N) \ + dst.x[i / N] = fn (src1.x[i / N], src2.x[i / N]); \ + \ + for (i = 0; i < NUM; i++) \ + { \ + res = src1.i[i] op src2.i[i] ? -1 : 0; \ + if (res != dst.i[i]) \ + abort (); \ + } \ + } \ +while (0) + +static void +TEST (void) +{ + TEST_SIGNED (v16qi, signed char, 16, f1, <=); + TEST_UNSIGNED (v16uqi, unsigned char, 16, f2, <=); + TEST_SIGNED (v16qi, signed char, 16, f3, >=); + TEST_UNSIGNED (v16uqi, unsigned char, 16, f4, >=); + TEST_SIGNED (v8hi, short int, 8, f5, <=); + TEST_UNSIGNED (v8uhi, unsigned short int, 8, f6, <=); + TEST_SIGNED (v8hi, short int, 8, f7, >=); + TEST_UNSIGNED (v8uhi, unsigned short int, 8, f8, >=); + TEST_SIGNED (v4si, int, 4, f9, <=); + TEST_UNSIGNED (v4usi, unsigned int, 4, f10, <=); + TEST_SIGNED (v4si, int, 4, f11, >=); + TEST_UNSIGNED (v4usi, unsigned int, 4, f12, >=); + TEST_SIGNED (v2di, long long int, 2, f13, <=); + TEST_UNSIGNED (v2udi, unsigned long long int, 2, f14, <=); + TEST_SIGNED (v2di, long long int, 2, f15, >=); + TEST_UNSIGNED (v2udi, unsigned long long int, 2, f16, >=); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/sse4_1-pr88547-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/sse4_1-pr88547-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/sse4_1-pr88547-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/sse4_1-pr88547-1.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,12 @@ +/* PR target/88547 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -msse4.1 -mno-sse4.2" } */ +/* { dg-final { scan-assembler-not "pmingt\[bwd]\[\t ]" } } */ +/* { dg-final { scan-assembler-times "pminub\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "pminsb\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "pminuw\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "pminsw\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "pminud\[\t ]" 2 } } */ +/* { dg-final { scan-assembler-times "pminsd\[\t ]" 2 } } */ + +#include "sse2-pr88547-1.c" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/sse4_1-pr88547-2.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/sse4_1-pr88547-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/sse4_1-pr88547-2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/sse4_1-pr88547-2.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,8 @@ +/* { dg-do run } */ +/* { dg-require-effective-target sse4 } */ +/* { dg-options "-O2 -msse4.1" } */ + +#define CHECK_H "sse4_1-check.h" +#define TEST sse4_1_test + +#include "sse2-pr88547-2.c" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/stackalign/stackalign.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/stackalign/stackalign.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/stackalign/stackalign.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/i386/stackalign/stackalign.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/ia64/ia64.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/ia64/ia64.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/ia64/ia64.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/ia64/ia64.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/m68k/m68k.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/m68k/m68k.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/m68k/m68k.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/m68k/m68k.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/microblaze/microblaze.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/microblaze/microblaze.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/microblaze/microblaze.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/microblaze/microblaze.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/mips/inter/mips16-inter.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/mips/inter/mips16-inter.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/mips/inter/mips16-inter.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/mips/inter/mips16-inter.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/mips/mips.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/mips/mips.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/mips/mips.exp 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/mips/mips.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/mips/mips-nonpic/mips-nonpic.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/mips/mips-nonpic/mips-nonpic.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/mips/mips-nonpic/mips-nonpic.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/mips/mips-nonpic/mips-nonpic.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/mips/mips-nonpic/README gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/mips/mips-nonpic/README --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/mips/mips-nonpic/README 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/mips/mips-nonpic/README 2019-01-02 08:05:16.000000000 +0000 @@ -20,7 +20,7 @@ main-16.c address and call address and call PLT entry -Copyright (C) 2008-2018 Free Software Foundation, Inc. +Copyright (C) 2008-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/msp430/critical-interrupt.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/msp430/critical-interrupt.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/msp430/critical-interrupt.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/msp430/critical-interrupt.c 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-final { scan-assembler-not "attributes.*critical" } } */ + +void __attribute__((interrupt,critical)) +fn1 (void) +{ /* { dg-warning "critical attribute has no effect on interrupt functions" } */ +} + +void __attribute__((critical,interrupt)) +fn2 (void) +{ /* { dg-warning "critical attribute has no effect on interrupt functions" } */ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/msp430/msp430.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/msp430/msp430.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/msp430/msp430.exp 2018-05-28 08:24:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/msp430/msp430.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2015-2018 Free Software Foundation, Inc. +# Copyright (C) 2015-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/nds32/nds32.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/nds32/nds32.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/nds32/nds32.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/nds32/nds32.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Target test cases of Andes NDS32 cpu for GNU compiler -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by Andes Technology Corporation. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/nios2/nios2.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/nios2/nios2.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/nios2/nios2.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/nios2/nios2.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/nvptx/nvptx.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/nvptx/nvptx.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/nvptx/nvptx.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/nvptx/nvptx.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Specific regression driver for nvptx. -# Copyright (C) 2015-2018 Free Software Foundation, Inc. +# Copyright (C) 2015-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/or1k/or1k.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/or1k/or1k.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/or1k/or1k.exp 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/or1k/or1k.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2018 Free Software Foundation, Inc. +# Copyright (C) 2017-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/powerpc.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/powerpc.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/powerpc.exp 2018-04-23 08:51:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/powerpc.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/pr87870.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/pr87870.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/pr87870.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/pr87870.c 2018-12-18 00:25:20.000000000 +0000 @@ -0,0 +1,28 @@ +/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ +/* { dg-options "-O2" } */ + +__int128 +test0 (void) +{ + return 0; +} + +__int128 +test1 (void) +{ + return 1; +} + +__int128 +test2 (void) +{ + return -1; +} + +__int128 +test3 (void) +{ + return ((__int128)0xdeadbeefcafebabe << 64) | 0xfacefeedbaaaaaad; +} + +/* { dg-final { scan-assembler-not {\mld\M} } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/pr88457.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/pr88457.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/pr88457.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/pr88457.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,13 @@ +/* { dg-do compile { target { powerpc64*-*-* } } } */ +/* { dg-options "-m32 -mcpu=power7 -O1 -fexpensive-optimizations --param ira-max-conflict-table-size=0 --param max-cse-insns=3 -c -mcpu=e300c3" } */ + +__attribute__((target_clones("cpu=power9,default"))) +long mod_func (long a, long b) +{ + return a % b; +} + +long mod_func_or (long a, long b, long c) +{ + return mod_func (a, b) | c; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-check.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-check.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-check.h 2018-10-30 08:45:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-check.h 2018-12-29 02:41:33.000000000 +0000 @@ -19,24 +19,9 @@ int main () { -#ifdef __BUILTIN_CPU_SUPPORTS__ - /* Most SSE intrinsic operations can be implemented via VMX - instructions, but some operations may be faster / simpler - using the POWER8 VSX instructions. This is especially true - when we are transferring / converting to / from __m64 types. - The direct register transfer instructions from POWER8 are - especially important. So we test for arch_2_07. */ - if (__builtin_cpu_supports ("arch_2_07")) - { - do_test (); + do_test (); #ifdef DEBUG - printf ("PASSED\n"); + printf ("PASSED\n"); #endif - } -#ifdef DEBUG - else - printf ("SKIPPED\n"); -#endif -#endif /* __BUILTIN_CPU_SUPPORTS__ */ return 0; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pabsb.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pabsb.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pabsb.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pabsb.c 2018-12-29 02:41:33.000000000 +0000 @@ -18,61 +18,57 @@ #ifndef __AVX__ /* Test the 64-bit form */ static void -ssse3_test_pabsb (int *i1, int *r) +ssse3_test_pabsb (__m64 *i1, __m64 *r) { - __m64 t1 = *(__m64 *) i1; - *(__m64 *) r = _mm_abs_pi8 (t1); + *r = _mm_abs_pi8 (*i1); _mm_empty (); } #endif /* Test the 128-bit form */ static void -ssse3_test_pabsb128 (int *i1, int *r) +ssse3_test_pabsb128 (__m128i *i1, __m128i *r) { /* Assumes incoming pointers are 16-byte aligned */ - __m128i t1 = *(__m128i *) i1; - *(__m128i *) r = _mm_abs_epi8 (t1); + *r = _mm_abs_epi8 (*i1); } /* Routine to manually compute the results */ static void -compute_correct_result (int *i1, int *r) +compute_correct_result (signed char *i1, signed char *r) { - char *b1 = (char *) i1; - char *bout = (char *) r; int i; for (i = 0; i < 16; i++) - if (b1[i] < 0) - bout[i] = -b1[i]; + if (i1[i] < 0) + r[i] = -i1[i]; else - bout[i] = b1[i]; + r[i] = i1[i]; } static void TEST (void) { int i; - int r [4] __attribute__ ((aligned(16))); - int ck [4]; + union data r __attribute__ ((aligned(16))); + union data ck; int fail = 0; - for (i = 0; i < 256; i += 4) + for (i = 0; i < ARRAY_SIZE (vals); i++) { /* Manually compute the result */ - compute_correct_result(&vals[i + 0], ck); + compute_correct_result(&vals[i].b[0], &ck.b[0]); #ifndef __AVX__ /* Run the 64-bit tests */ - ssse3_test_pabsb (&vals[i + 0], &r[0]); - ssse3_test_pabsb (&vals[i + 2], &r[2]); - fail += chk_128 (ck, r); + ssse3_test_pabsb (&vals[i].ll[0], &r.ll[0]); + ssse3_test_pabsb (&vals[i].ll[1], &r.ll[1]); + fail += chk_128 (ck.m[0], r.m[0]); #endif /* Run the 128-bit tests */ - ssse3_test_pabsb128 (&vals[i + 0], r); - fail += chk_128 (ck, r); + ssse3_test_pabsb128 (&vals[i].m[0], &r.m[0]); + fail += chk_128 (ck.m[0], r.m[0]); } if (fail != 0) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pabsd.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pabsd.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pabsd.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pabsd.c 2018-12-29 02:41:33.000000000 +0000 @@ -19,21 +19,19 @@ #ifndef __AVX__ /* Test the 64-bit form */ static void -ssse3_test_pabsd (int *i1, int *r) +ssse3_test_pabsd (__m64 *i1, __m64 *r) { - __m64 t1 = *(__m64 *) i1; - *(__m64 *) r = _mm_abs_pi32 (t1); + *r = _mm_abs_pi32 (*i1); _mm_empty (); } #endif /* Test the 128-bit form */ static void -ssse3_test_pabsd128 (int *i1, int *r) +ssse3_test_pabsd128 (__m128i *i1, __m128i *r) { /* Assumes incoming pointers are 16-byte aligned */ - __m128i t1 = *(__m128i *) i1; - *(__m128i *) r = _mm_abs_epi32 (t1); + *r = _mm_abs_epi32 (*i1); } /* Routine to manually compute the results */ @@ -53,25 +51,25 @@ TEST (void) { int i; - int r [4] __attribute__ ((aligned(16))); - int ck [4]; + union data r __attribute__ ((aligned(16))); + union data ck; int fail = 0; - for (i = 0; i < 256; i += 4) + for (i = 0; i < ARRAY_SIZE (vals); i++) { /* Manually compute the result */ - compute_correct_result(&vals[i + 0], ck); + compute_correct_result(&vals[i].w[0], &ck.w[0]); #ifndef __AVX__ /* Run the 64-bit tests */ - ssse3_test_pabsd (&vals[i + 0], &r[0]); - ssse3_test_pabsd (&vals[i + 2], &r[2]); - fail += chk_128 (ck, r); + ssse3_test_pabsd (&vals[i].ll[0], &r.ll[0]); + ssse3_test_pabsd (&vals[i].ll[1], &r.ll[1]); + fail += chk_128 (ck.m[0], r.m[0]); #endif /* Run the 128-bit tests */ - ssse3_test_pabsd128 (&vals[i + 0], r); - fail += chk_128(ck, r); + ssse3_test_pabsd128 (&vals[i].m[0], &r.m[0]); + fail += chk_128(ck.m[0], r.m[0]); } if (fail != 0) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pabsw.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pabsw.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pabsw.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pabsw.c 2018-12-29 02:41:33.000000000 +0000 @@ -19,61 +19,57 @@ #ifndef __AVX__ /* Test the 64-bit form */ static void -ssse3_test_pabsw (int *i1, int *r) +ssse3_test_pabsw (__m64 *i1, __m64 *r) { - __m64 t1 = *(__m64 *) i1; - *(__m64 *) r = _mm_abs_pi16 (t1); + *r = _mm_abs_pi16 (*i1); _mm_empty (); } #endif /* Test the 128-bit form */ static void -ssse3_test_pabsw128 (int *i1, int *r) +ssse3_test_pabsw128 (__m128i *i1, __m128i *r) { /* Assumes incoming pointers are 16-byte aligned */ - __m128i t1 = *(__m128i *) i1; - *(__m128i *) r = _mm_abs_epi16 (t1); + *r = _mm_abs_epi16 (*i1); } /* Routine to manually compute the results */ static void -compute_correct_result (int *i1, int *r) +compute_correct_result (short *i1, short *r) { - short *s1 = (short *) i1; - short *sout = (short *) r; int i; for (i = 0; i < 8; i++) - if (s1[i] < 0) - sout[i] = -s1[i]; + if (i1[i] < 0) + r[i] = -i1[i]; else - sout[i] = s1[i]; + r[i] = i1[i]; } static void TEST (void) { int i; - int r [4] __attribute__ ((aligned(16))); - int ck [4]; + union data r __attribute__ ((aligned(16))); + union data ck; int fail = 0; - for (i = 0; i < 256; i += 4) + for (i = 0; i < ARRAY_SIZE (vals); i++) { /* Manually compute the result */ - compute_correct_result (&vals[i + 0], ck); + compute_correct_result (&vals[i].h[0], &ck.h[0]); #ifndef __AVX__ /* Run the 64-bit tests */ - ssse3_test_pabsw (&vals[i + 0], &r[0]); - ssse3_test_pabsw (&vals[i + 2], &r[2]); - fail += chk_128 (ck, r); + ssse3_test_pabsw (&vals[i].ll[0], &r.ll[0]); + ssse3_test_pabsw (&vals[i].ll[1], &r.ll[1]); + fail += chk_128 (ck.m[0], r.m[0]); #endif /* Run the 128-bit tests */ - ssse3_test_pabsw128 (&vals[i + 0], r); - fail += chk_128 (ck, r); + ssse3_test_pabsw128 (&vals[i].m[0], &r.m[0]); + fail += chk_128 (ck.m[0], r.m[0]); } if (fail != 0) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-palignr.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-palignr.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-palignr.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-palignr.c 2018-12-29 02:41:33.000000000 +0000 @@ -20,63 +20,60 @@ #ifndef __AVX__ /* Test the 64-bit form */ static void -ssse3_test_palignr (int *i1, int *i2, unsigned int imm, int *r) +ssse3_test_palignr (__m64 *i1, __m64 *i2, unsigned int imm, __m64 *r) { - __m64 t1 = *(__m64 *) i1; - __m64 t2 = *(__m64 *) i2; - switch (imm) { case 0: - *(__m64 *) r = _mm_alignr_pi8 (t1, t2, 0); + *r = _mm_alignr_pi8 (*i1, *i2, 0); break; case 1: - *(__m64 *) r = _mm_alignr_pi8 (t1, t2, 1); + *r = _mm_alignr_pi8 (*i1, *i2, 1); break; case 2: - *(__m64 *) r = _mm_alignr_pi8 (t1, t2, 2); + *r = _mm_alignr_pi8 (*i1, *i2, 2); break; case 3: - *(__m64 *) r = _mm_alignr_pi8 (t1, t2, 3); + *r = _mm_alignr_pi8 (*i1, *i2, 3); break; case 4: - *(__m64 *) r = _mm_alignr_pi8 (t1, t2, 4); + *r = _mm_alignr_pi8 (*i1, *i2, 4); break; case 5: - *(__m64 *) r = _mm_alignr_pi8 (t1, t2, 5); + *r = _mm_alignr_pi8 (*i1, *i2, 5); break; case 6: - *(__m64 *) r = _mm_alignr_pi8 (t1, t2, 6); + *r = _mm_alignr_pi8 (*i1, *i2, 6); break; case 7: - *(__m64 *) r = _mm_alignr_pi8 (t1, t2, 7); + *r = _mm_alignr_pi8 (*i1, *i2, 7); break; case 8: - *(__m64 *) r = _mm_alignr_pi8 (t1, t2, 8); + *r = _mm_alignr_pi8 (*i1, *i2, 8); break; case 9: - *(__m64 *) r = _mm_alignr_pi8 (t1, t2, 9); + *r = _mm_alignr_pi8 (*i1, *i2, 9); break; case 10: - *(__m64 *) r = _mm_alignr_pi8 (t1, t2, 10); + *r = _mm_alignr_pi8 (*i1, *i2, 10); break; case 11: - *(__m64 *) r = _mm_alignr_pi8 (t1, t2, 11); + *r = _mm_alignr_pi8 (*i1, *i2, 11); break; case 12: - *(__m64 *) r = _mm_alignr_pi8 (t1, t2, 12); + *r = _mm_alignr_pi8 (*i1, *i2, 12); break; case 13: - *(__m64 *) r = _mm_alignr_pi8 (t1, t2, 13); + *r = _mm_alignr_pi8 (*i1, *i2, 13); break; case 14: - *(__m64 *) r = _mm_alignr_pi8 (t1, t2, 14); + *r = _mm_alignr_pi8 (*i1, *i2, 14); break; case 15: - *(__m64 *) r = _mm_alignr_pi8 (t1, t2, 15); + *r = _mm_alignr_pi8 (*i1, *i2, 15); break; default: - *(__m64 *) r = _mm_alignr_pi8 (t1, t2, 16); + *r = _mm_alignr_pi8 (*i1, *i2, 16); break; } @@ -86,122 +83,120 @@ /* Test the 128-bit form */ static void -ssse3_test_palignr128 (int *i1, int *i2, unsigned int imm, int *r) +ssse3_test_palignr128 (__m128i *i1, __m128i *i2, unsigned int imm, __m128i *r) { /* Assumes incoming pointers are 16-byte aligned */ - __m128i t1 = *(__m128i *) i1; - __m128i t2 = *(__m128i *) i2; switch (imm) { case 0: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 0); + *r = _mm_alignr_epi8 (*i1, *i2, 0); break; case 1: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 1); + *r = _mm_alignr_epi8 (*i1, *i2, 1); break; case 2: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 2); + *r = _mm_alignr_epi8 (*i1, *i2, 2); break; case 3: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 3); + *r = _mm_alignr_epi8 (*i1, *i2, 3); break; case 4: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 4); + *r = _mm_alignr_epi8 (*i1, *i2, 4); break; case 5: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 5); + *r = _mm_alignr_epi8 (*i1, *i2, 5); break; case 6: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 6); + *r = _mm_alignr_epi8 (*i1, *i2, 6); break; case 7: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 7); + *r = _mm_alignr_epi8 (*i1, *i2, 7); break; case 8: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 8); + *r = _mm_alignr_epi8 (*i1, *i2, 8); break; case 9: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 9); + *r = _mm_alignr_epi8 (*i1, *i2, 9); break; case 10: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 10); + *r = _mm_alignr_epi8 (*i1, *i2, 10); break; case 11: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 11); + *r = _mm_alignr_epi8 (*i1, *i2, 11); break; case 12: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 12); + *r = _mm_alignr_epi8 (*i1, *i2, 12); break; case 13: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 13); + *r = _mm_alignr_epi8 (*i1, *i2, 13); break; case 14: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 14); + *r = _mm_alignr_epi8 (*i1, *i2, 14); break; case 15: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 15); + *r = _mm_alignr_epi8 (*i1, *i2, 15); break; case 16: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 16); + *r = _mm_alignr_epi8 (*i1, *i2, 16); break; case 17: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 17); + *r = _mm_alignr_epi8 (*i1, *i2, 17); break; case 18: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 18); + *r = _mm_alignr_epi8 (*i1, *i2, 18); break; case 19: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 19); + *r = _mm_alignr_epi8 (*i1, *i2, 19); break; case 20: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 20); + *r = _mm_alignr_epi8 (*i1, *i2, 20); break; case 21: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 21); + *r = _mm_alignr_epi8 (*i1, *i2, 21); break; case 22: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 22); + *r = _mm_alignr_epi8 (*i1, *i2, 22); break; case 23: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 23); + *r = _mm_alignr_epi8 (*i1, *i2, 23); break; case 24: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 24); + *r = _mm_alignr_epi8 (*i1, *i2, 24); break; case 25: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 25); + *r = _mm_alignr_epi8 (*i1, *i2, 25); break; case 26: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 26); + *r = _mm_alignr_epi8 (*i1, *i2, 26); break; case 27: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 27); + *r = _mm_alignr_epi8 (*i1, *i2, 27); break; case 28: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 28); + *r = _mm_alignr_epi8 (*i1, *i2, 28); break; case 29: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 29); + *r = _mm_alignr_epi8 (*i1, *i2, 29); break; case 30: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 30); + *r = _mm_alignr_epi8 (*i1, *i2, 30); break; case 31: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 31); + *r = _mm_alignr_epi8 (*i1, *i2, 31); break; default: - *(__m128i *) r = _mm_alignr_epi8 (t1, t2, 32); + *r = _mm_alignr_epi8 (*i1, *i2, 32); break; } } /* Routine to manually compute the results */ static void -compute_correct_result_128 (int *i1, int *i2, unsigned int imm, int *r) +compute_correct_result_128 (signed char *i1, signed char *i2, unsigned int imm, + signed char *r) { - char buf [32]; - char *bout = (char *) r; + signed char buf [32]; int i; memcpy (&buf[0], i2, 16); @@ -209,38 +204,38 @@ for (i = 0; i < 16; i++) if (imm >= 32 || imm + i >= 32) - bout[i] = 0; + r[i] = 0; else - bout[i] = buf[imm + i]; + r[i] = buf[imm + i]; } #ifndef __AVX__ static void -compute_correct_result_64 (int *i1, int *i2, unsigned int imm, int *r) +compute_correct_result_64 (signed char *i1, signed char *i2, unsigned int imm, + signed char *r) { - char buf [16]; - char *bout = (char *)r; + signed char buf [16]; int i; /* Handle the first half */ - memcpy (&buf[0], i2, 8); - memcpy (&buf[8], i1, 8); + memcpy (&buf[0], &i2[0], 8); + memcpy (&buf[8], &i1[0], 8); for (i = 0; i < 8; i++) if (imm >= 16 || imm + i >= 16) - bout[i] = 0; + r[i] = 0; else - bout[i] = buf[imm + i]; + r[i] = buf[imm + i]; /* Handle the second half */ - memcpy (&buf[0], &i2[2], 8); - memcpy (&buf[8], &i1[2], 8); + memcpy (&buf[0], &i2[8], 8); + memcpy (&buf[8], &i1[8], 8); for (i = 0; i < 8; i++) if (imm >= 16 || imm + i >= 16) - bout[i + 8] = 0; + r[i + 8] = 0; else - bout[i + 8] = buf[imm + i]; + r[i + 8] = buf[imm + i]; } #endif @@ -248,30 +243,35 @@ TEST (void) { int i; - int r [4] __attribute__ ((aligned(16))); - int ck [4]; + union data r __attribute__ ((aligned(16))); + union data ck; unsigned int imm; int fail = 0; - for (i = 0; i < 256; i += 8) + for (i = 0; i < ARRAY_SIZE (vals) - 1; i++) for (imm = 0; imm < 100; imm++) { #ifndef __AVX__ /* Manually compute the result */ - compute_correct_result_64 (&vals[i + 0], &vals[i + 4], imm, ck); + compute_correct_result_64 (&vals[i + 0].b[0], + &vals[i + 1].b[0], imm, &ck.b[0]); /* Run the 64-bit tests */ - ssse3_test_palignr (&vals[i + 0], &vals[i + 4], imm, &r[0]); - ssse3_test_palignr (&vals[i + 2], &vals[i + 6], imm, &r[2]); - fail += chk_128 (ck, r); + ssse3_test_palignr (&vals[i + 0].ll[0], + &vals[i + 1].ll[0], imm, &r.ll[0]); + ssse3_test_palignr (&vals[i + 0].ll[1], + &vals[i + 1].ll[1], imm, &r.ll[1]); + fail += chk_128 (ck.m[0], r.m[0]); #endif /* Recompute the results for 128-bits */ - compute_correct_result_128 (&vals[i + 0], &vals[i + 4], imm, ck); + compute_correct_result_128 (&vals[i + 0].b[0], + &vals[i + 1].b[0], imm, &ck.b[0]); /* Run the 128-bit tests */ - ssse3_test_palignr128 (&vals[i + 0], &vals[i + 4], imm, r); - fail += chk_128 (ck, r); + ssse3_test_palignr128 (&vals[i + 0].m[0], + &vals[i + 1].m[0], imm, &r.m[0]); + fail += chk_128 (ck.m[0], r.m[0]); } if (fail != 0) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phaddd.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phaddd.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phaddd.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phaddd.c 2018-12-29 02:41:33.000000000 +0000 @@ -19,23 +19,19 @@ #ifndef __AVX__ /* Test the 64-bit form */ static void -ssse3_test_phaddd (int *i1, int *i2, int *r) +ssse3_test_phaddd (__m64 *i1, __m64 *i2, __m64 *r) { - __m64 t1 = *(__m64 *) i1; - __m64 t2 = *(__m64 *) i2; - *(__m64 *) r = _mm_hadd_pi32 (t1, t2); + *r = _mm_hadd_pi32 (*i1, *i2); _mm_empty(); } #endif /* Test the 128-bit form */ static void -ssse3_test_phaddd128 (int *i1, int *i2, int *r) +ssse3_test_phaddd128 (__m128i *i1, __m128i *i2, __m128i *r) { /* Assumes incoming pointers are 16-byte aligned */ - __m128i t1 = *(__m128i *) i1; - __m128i t2 = *(__m128i *) i2; - *(__m128i *) r = _mm_hadd_epi32 (t1, t2); + *r = _mm_hadd_epi32 (*i1, *i2); } /* Routine to manually compute the results */ @@ -54,26 +50,25 @@ TEST (void) { int i; - int r [4] __attribute__ ((aligned(16))); - int ck [4]; + union data r __attribute__ ((aligned(16))); + union data ck; int fail = 0; - - for (i = 0; i < 256; i += 8) + for (i = 0; i < ARRAY_SIZE (vals) - 1; i++) { /* Manually compute the result */ - compute_correct_result (&vals[i + 0], &vals[i + 4], ck); + compute_correct_result (&vals[i + 0].w[0], &vals[i + 1].w[0], &ck.w[0]); #ifndef __AVX__ /* Run the 64-bit tests */ - ssse3_test_phaddd (&vals[i + 0], &vals[i + 2], &r[0]); - ssse3_test_phaddd (&vals[i + 4], &vals[i + 6], &r[2]); - fail += chk_128 (ck, r); + ssse3_test_phaddd (&vals[i + 0].ll[0], &vals[i + 0].ll[1], &r.ll[0]); + ssse3_test_phaddd (&vals[i + 1].ll[0], &vals[i + 1].ll[1], &r.ll[1]); + fail += chk_128 (ck.m[0], r.m[0]); #endif /* Run the 128-bit tests */ - ssse3_test_phaddd128 (&vals[i + 0], &vals[i + 4], r); - fail += chk_128 (ck, r); + ssse3_test_phaddd128 (&vals[i + 0].m[0], &vals[i + 1].m[0], &r.m[0]); + fail += chk_128 (ck.m[0], r.m[0]); } if (fail != 0) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phaddsw.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phaddsw.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phaddsw.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phaddsw.c 2018-12-29 02:41:33.000000000 +0000 @@ -19,23 +19,19 @@ #ifndef __AVX__ /* Test the 64-bit form */ static void -ssse3_test_phaddsw (int *i1, int *i2, int *r) +ssse3_test_phaddsw (__m64 *i1, __m64 *i2, __m64 *r) { - __m64 t1 = *(__m64 *) i1; - __m64 t2 = *(__m64 *) i2; - *(__m64 *) r = _mm_hadds_pi16 (t1, t2); + *r = _mm_hadds_pi16 (*i1, *i2); _mm_empty (); } #endif /* Test the 128-bit form */ static void -ssse3_test_phaddsw128 (int *i1, int *i2, int *r) +ssse3_test_phaddsw128 (__m128i *i1, __m128i *i2, __m128i *r) { /* Assumes incoming pointers are 16-byte aligned */ - __m128i t1 = *(__m128i *) i1; - __m128i t2 = *(__m128i *) i2; - *(__m128i *) r = _mm_hadds_epi16 (t1, t2); + *(__m128i *) r = _mm_hadds_epi16 (*i1, *i2); } static short @@ -52,42 +48,39 @@ /* Routine to manually compute the results */ static void -compute_correct_result (int *i1, int *i2, int *r) +compute_correct_result (short *i1, short *i2, short *r) { - short *s1 = (short *) i1; - short *s2 = (short *) i2; - short *sout = (short *) r; int i; for (i = 0; i < 4; i++) - sout[i] = signed_saturate_to_word(s1[2 * i] + s1[2 * i + 1]); + r[i + 0] = signed_saturate_to_word(i1[2 * i] + i1[2 * i + 1]); for (i = 0; i < 4; i++) - sout[i + 4] = signed_saturate_to_word(s2[2 * i] + s2[2 * i + 1]); + r[i + 4] = signed_saturate_to_word(i2[2 * i] + i2[2 * i + 1]); } static void TEST (void) { int i; - int r [4] __attribute__ ((aligned(16))); - int ck [4]; + union data r __attribute__ ((aligned(16))); + union data ck; int fail = 0; - for (i = 0; i < 256; i += 8) + for (i = 0; i < ARRAY_SIZE (vals) - 1; i++) { /* Manually compute the result */ - compute_correct_result (&vals[i + 0], &vals[i + 4], ck); + compute_correct_result (&vals[i + 0].h[0], &vals[i + 1].h[0], &ck.h[0]); #ifndef __AVX__ /* Run the 64-bit tests */ - ssse3_test_phaddsw (&vals[i + 0], &vals[i + 2], &r[0]); - ssse3_test_phaddsw (&vals[i + 4], &vals[i + 6], &r[2]); - fail += chk_128 (ck, r); + ssse3_test_phaddsw (&vals[i + 0].ll[0], &vals[i + 0].ll[1], &r.ll[0]); + ssse3_test_phaddsw (&vals[i + 1].ll[0], &vals[i + 1].ll[1], &r.ll[1]); + fail += chk_128 (ck.m[0], r.m[0]); #endif /* Run the 128-bit tests */ - ssse3_test_phaddsw128 (&vals[i + 0], &vals[i + 4], r); - fail += chk_128 (ck, r); + ssse3_test_phaddsw128 (&vals[i + 0].m[0], &vals[i + 1].m[0], &r.m[0]); + fail += chk_128 (ck.m[0], r.m[0]); } if (fail != 0) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phaddw.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phaddw.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phaddw.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phaddw.c 2018-12-29 02:41:33.000000000 +0000 @@ -19,64 +19,57 @@ #ifndef __AVX__ /* Test the 64-bit form */ static void -ssse3_test_phaddw (int *i1, int *i2, int *r) +ssse3_test_phaddw (__m64 *i1, __m64 *i2, __m64 *r) { - __m64 t1 = *(__m64 *) i1; - __m64 t2 = *(__m64 *) i2; - *(__m64 *) r = _mm_hadd_pi16 (t1, t2); + *r = _mm_hadd_pi16 (*i1, *i2); _mm_empty (); } #endif /* Test the 128-bit form */ static void -ssse3_test_phaddw128 (int *i1, int *i2, int *r) +ssse3_test_phaddw128 (__m128i *i1, __m128i *i2, __m128i *r) { /* Assumes incoming pointers are 16-byte aligned */ - __m128i t1 = *(__m128i *) i1; - __m128i t2 = *(__m128i *) i2; - *(__m128i *) r = _mm_hadd_epi16 (t1, t2); + *r = _mm_hadd_epi16 (*i1, *i2); } /* Routine to manually compute the results */ static void -compute_correct_result(int *i1, int *i2, int *r) +compute_correct_result(short *i1, short *i2, short *r) { - short *s1 = (short *) i1; - short *s2 = (short *) i2; - short *sout = (short *) r; int i; for (i = 0; i < 4; i++) - sout[i] = s1[2 * i] + s1[2 * i + 1]; + r[i] = i1[2 * i] + i1[2 * i + 1]; for (i = 0; i < 4; i++) - sout[i + 4] = s2[2 * i] + s2[2 * i + 1]; + r[i + 4] = i2[2 * i] + i2[2 * i + 1]; } static void TEST (void) { int i; - int r [4] __attribute__ ((aligned(16))); - int ck [4]; + union data r __attribute__ ((aligned(16))); + union data ck; int fail = 0; - for (i = 0; i < 256; i += 8) + for (i = 0; i < ARRAY_SIZE (vals) - 1; i++) { /* Manually compute the result */ - compute_correct_result (&vals[i + 0], &vals[i + 4], ck); + compute_correct_result (&vals[i + 0].h[0], &vals[i + 1].h[0], &ck.h[0]); #ifndef __AVX__ /* Run the 64-bit tests */ - ssse3_test_phaddw (&vals[i + 0], &vals[i + 2], &r[0]); - ssse3_test_phaddw (&vals[i + 4], &vals[i + 6], &r[2]); - fail += chk_128 (ck, r); + ssse3_test_phaddw (&vals[i + 0].ll[0], &vals[i + 0].ll[1], &r.ll[0]); + ssse3_test_phaddw (&vals[i + 1].ll[0], &vals[i + 1].ll[1], &r.ll[1]); + fail += chk_128 (ck.m[0], r.m[0]); #endif /* Run the 128-bit tests */ - ssse3_test_phaddw128 (&vals[i + 0], &vals[i + 4], r); - fail += chk_128 (ck, r); + ssse3_test_phaddw128 (&vals[i + 0].m[0], &vals[i + 1].m[0], &r.m[0]); + fail += chk_128 (ck.m[0], r.m[0]); } if (fail != 0) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phsubd.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phsubd.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phsubd.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phsubd.c 2018-12-29 02:41:33.000000000 +0000 @@ -19,23 +19,19 @@ #ifndef __AVX__ /* Test the 64-bit form */ static void -ssse3_test_phsubd (int *i1, int *i2, int *r) +ssse3_test_phsubd (__m64 *i1, __m64 *i2, __m64 *r) { - __m64 t1 = *(__m64 *) i1; - __m64 t2 = *(__m64 *) i2; - *(__m64 *) r = _mm_hsub_pi32(t1, t2); + *r = _mm_hsub_pi32 (*i1, *i2); _mm_empty (); } #endif /* Test the 128-bit form */ static void -ssse3_test_phsubd128 (int *i1, int *i2, int *r) +ssse3_test_phsubd128 (__m128i *i1, __m128i *i2, __m128i *r) { /* Assumes incoming pointers are 16-byte aligned */ - __m128i t1 = *(__m128i *) i1; - __m128i t2 = *(__m128i *) i2; - *(__m128i *) r = _mm_hsub_epi32 (t1, t2); + *(__m128i *) r = _mm_hsub_epi32 (*i1, *i2); } /* Routine to manually compute the results */ @@ -54,25 +50,25 @@ TEST (void) { int i; - int r [4] __attribute__ ((aligned(16))); - int ck [4]; + union data r __attribute__ ((aligned(16))); + union data ck; int fail = 0; - for (i = 0; i < 256; i += 8) + for (i = 0; i < ARRAY_SIZE (vals) - 1; i++) { /* Manually compute the result */ - compute_correct_result (&vals[i + 0], &vals[i + 4], ck); + compute_correct_result (&vals[i + 0].w[0], &vals[i + 1].w[0], &ck.w[0]); #ifndef __AVX__ /* Run the 64-bit tests */ - ssse3_test_phsubd (&vals[i + 0], &vals[i + 2], &r[0]); - ssse3_test_phsubd (&vals[i + 4], &vals[i + 6], &r[2]); - fail += chk_128 (ck, r); + ssse3_test_phsubd (&vals[i + 0].ll[0], &vals[i + 0].ll[1], &r.ll[0]); + ssse3_test_phsubd (&vals[i + 1].ll[0], &vals[i + 1].ll[1], &r.ll[1]); + fail += chk_128 (ck.m[0], r.m[0]); #endif /* Run the 128-bit tests */ - ssse3_test_phsubd128 (&vals[i + 0], &vals[i + 4], r); - fail += chk_128 (ck, r); + ssse3_test_phsubd128 (&vals[i + 0].m[0], &vals[i + 1].m[0], &r.m[0]); + fail += chk_128 (ck.m[0], r.m[0]); } if (fail != 0) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phsubsw.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phsubsw.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phsubsw.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phsubsw.c 2018-12-29 02:41:33.000000000 +0000 @@ -19,25 +19,19 @@ #ifndef __AVX__ /* Test the 64-bit form */ static void -ssse3_test_phsubsw (int *i1, int *i2, int *r) +ssse3_test_phsubsw (__m64 *i1, __m64 *i2, __m64 *r) { - __m64 t1 = *(__m64 *) i1; - __m64 t2 = *(__m64 *) i2; - - *(__m64 *) r = _mm_hsubs_pi16 (t1, t2); - + *(__m64 *) r = _mm_hsubs_pi16 (*i1, *i2); _mm_empty (); } #endif /* Test the 128-bit form */ static void -ssse3_test_phsubsw128 (int *i1, int *i2, int *r) +ssse3_test_phsubsw128 (__m128i *i1, __m128i *i2, __m128i *r) { /* Assumes incoming pointers are 16-byte aligned */ - __m128i t1 = *(__m128i *) i1; - __m128i t2 = *(__m128i *) i2; - *(__m128i *) r = _mm_hsubs_epi16 (t1, t2); + *r = _mm_hsubs_epi16 (*i1, *i2); } static short @@ -54,43 +48,40 @@ /* Routine to manually compute the results */ static void -compute_correct_result (int *i1, int *i2, int *r) +compute_correct_result (short *i1, short *i2, short *r) { - short *s1 = (short *) i1; - short *s2 = (short *) i2; - short *sout = (short *) r; int i; for (i = 0; i < 4; i++) - sout[i] = signed_saturate_to_word (s1[2 * i] - s1[2 * i + 1]); + r[i] = signed_saturate_to_word (i1[2 * i] - i1[2 * i + 1]); for (i = 0; i < 4; i++) - sout[i + 4] = signed_saturate_to_word (s2[2 * i] - s2[2 * i + 1]); + r[i + 4] = signed_saturate_to_word (i2[2 * i] - i2[2 * i + 1]); } static void TEST (void) { int i; - int r [4] __attribute__ ((aligned(16))); - int ck [4]; + union data r __attribute__ ((aligned(16))); + union data ck; int fail = 0; - for (i = 0; i < 256; i += 8) + for (i = 0; i < ARRAY_SIZE (vals) - 1; i++) { /* Manually compute the result */ - compute_correct_result (&vals[i + 0], &vals[i + 4], ck); + compute_correct_result (&vals[i + 0].h[0], &vals[i + 1].h[0], &ck.h[0]); #ifndef __AVX__ /* Run the 64-bit tests */ - ssse3_test_phsubsw (&vals[i + 0], &vals[i + 2], &r[0]); - ssse3_test_phsubsw (&vals[i + 4], &vals[i + 6], &r[2]); - fail += chk_128 (ck, r); + ssse3_test_phsubsw (&vals[i + 0].ll[0], &vals[i + 0].ll[1], &r.ll[0]); + ssse3_test_phsubsw (&vals[i + 1].ll[0], &vals[i + 1].ll[1], &r.ll[1]); + fail += chk_128 (ck.m[0], r.m[0]); #endif /* Run the 128-bit tests */ - ssse3_test_phsubsw128 (&vals[i + 0], &vals[i + 4], r); - fail += chk_128 (ck, r); + ssse3_test_phsubsw128 (&vals[i + 0].m[0], &vals[i + 1].m[0], &r.m[0]); + fail += chk_128 (ck.m[0], r.m[0]); } if (fail != 0) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phsubw.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phsubw.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phsubw.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-phsubw.c 2018-12-29 02:41:33.000000000 +0000 @@ -18,64 +18,56 @@ #ifndef __AVX__ /* Test the 64-bit form */ static void -ssse3_test_phsubw (int *i1, int *i2, int *r) +ssse3_test_phsubw (__m64 *i1, __m64 *i2, __m64 *r) { - __m64 t1 = *(__m64 *) i1; - __m64 t2 = *(__m64 *) i2; - *(__m64 *) r = _mm_hsub_pi16 (t1, t2); + *(__m64 *) r = _mm_hsub_pi16 (*i1, *i2); _mm_empty (); } #endif /* Test the 128-bit form */ static void -ssse3_test_phsubw128 (int *i1, int *i2, int *r) +ssse3_test_phsubw128 (__m128i *i1, __m128i *i2, __m128i *r) { /* Assumes incoming pointers are 16-byte aligned */ - __m128i t1 = *(__m128i *) i1; - __m128i t2 = *(__m128i *) i2; - - *(__m128i *) r = _mm_hsub_epi16 (t1, t2); + *(__m128i *) r = _mm_hsub_epi16 (*i1, *i2); } /* Routine to manually compute the results */ static void -compute_correct_result (int *i1, int *i2, int *r) +compute_correct_result (short *i1, short *i2, short *r) { - short *s1 = (short *) i1; - short *s2 = (short *) i2; - short *sout = (short *) r; int i; for (i = 0; i < 4; i++) - sout[i] = s1[2 * i] - s1[2 * i + 1]; + r[i] = i1[2 * i] - i1[2 * i + 1]; for (i = 0; i < 4; i++) - sout[i + 4] = s2[2 * i] - s2[2 * i + 1]; + r[i + 4] = i2[2 * i] - i2[2 * i + 1]; } static void TEST (void) { int i; - int r [4] __attribute__ ((aligned(16))); - int ck [4]; + union data r __attribute__ ((aligned(16))); + union data ck; int fail = 0; - for (i = 0; i < 256; i += 8) + for (i = 0; i < ARRAY_SIZE (vals) - 1; i++) { /* Manually compute the result */ - compute_correct_result (&vals[i + 0], &vals[i + 4], ck); + compute_correct_result (&vals[i + 0].h[0], &vals[i + 1].h[0], &ck.h[0]); #ifndef __AVX__ /* Run the 64-bit tests */ - ssse3_test_phsubw (&vals[i + 0], &vals[i + 2], &r[0]); - ssse3_test_phsubw (&vals[i + 4], &vals[i + 6], &r[2]); - fail += chk_128 (ck, r); + ssse3_test_phsubw (&vals[i + 0].ll[0], &vals[i + 0].ll[1], &r.ll[0]); + ssse3_test_phsubw (&vals[i + 1].ll[0], &vals[i + 1].ll[1], &r.ll[1]); + fail += chk_128 (ck.m[0], r.m[0]); #endif /* Run the 128-bit tests */ - ssse3_test_phsubw128 (&vals[i + 0], &vals[i + 4], r); - fail += chk_128 (ck, r); + ssse3_test_phsubw128 (&vals[i + 0].m[0], &vals[i + 1].m[0], &r.m[0]); + fail += chk_128 (ck.m[0], r.m[0]); } if (fail != 0) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pmaddubsw.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pmaddubsw.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pmaddubsw.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pmaddubsw.c 2018-12-29 02:41:33.000000000 +0000 @@ -19,23 +19,19 @@ #ifndef __AVX__ /* Test the 64-bit form */ static void -ssse3_test_pmaddubsw (int *i1, int *i2, int *r) +ssse3_test_pmaddubsw (__m64 *i1, __m64 *i2, __m64 *r) { - __m64 t1 = *(__m64 *) i1; - __m64 t2 = *(__m64 *) i2; - *(__m64 *) r = _mm_maddubs_pi16 (t1, t2); + *(__m64 *) r = _mm_maddubs_pi16 (*i1, *i2); _mm_empty (); } #endif /* Test the 128-bit form */ static void -ssse3_test_pmaddubsw128 (int *i1, int *i2, int *r) +ssse3_test_pmaddubsw128 (__m128i *i1, __m128i *i2, __m128i *r) { /* Assumes incoming pointers are 16-byte aligned */ - __m128i t1 = *(__m128i *) i1; - __m128i t2 = *(__m128i *) i2; - *(__m128i *) r = _mm_maddubs_epi16 (t1, t2); + *r = _mm_maddubs_epi16 (*i1, *i2); } static short @@ -52,19 +48,16 @@ /* Routine to manually compute the results */ static void -compute_correct_result (int *i1, int *i2, int *r) +compute_correct_result (unsigned char *i1, signed char *i2, short *r) { - unsigned char *ub1 = (unsigned char *) i1; - char *sb2 = (char *) i2; - short *sout = (short *) r; int t0; int i; for (i = 0; i < 8; i++) { - t0 = ((int) ub1[2 * i] * (int) sb2[2 * i] + - (int) ub1[2 * i + 1] * (int) sb2[2 * i + 1]); - sout[i] = signed_saturate_to_word (t0); + t0 = ((int) i1[2 * i] * (int) i2[2 * i] + + (int) i1[2 * i + 1] * (int) i2[2 * i + 1]); + r[i] = signed_saturate_to_word (t0); } } @@ -72,25 +65,25 @@ TEST (void) { int i; - int r [4] __attribute__ ((aligned(16))); - int ck [4]; + union data r __attribute__ ((aligned(16))); + union data ck; int fail = 0; - for (i = 0; i < 256; i += 8) + for (i = 0; i < ARRAY_SIZE (vals) - 1; i++) { /* Manually compute the result */ - compute_correct_result (&vals[i + 0], &vals[i + 4], ck); + compute_correct_result (&vals[i + 0].ub[0], &vals[i + 1].b[0], &ck.h[0]); #ifndef __AVX__ /* Run the 64-bit tests */ - ssse3_test_pmaddubsw (&vals[i + 0], &vals[i + 4], &r[0]); - ssse3_test_pmaddubsw (&vals[i + 2], &vals[i + 6], &r[2]); - fail += chk_128 (ck, r); + ssse3_test_pmaddubsw (&vals[i + 0].ll[0], &vals[i + 1].ll[0], &r.ll[0]); + ssse3_test_pmaddubsw (&vals[i + 0].ll[1], &vals[i + 1].ll[1], &r.ll[1]); + fail += chk_128 (ck.m[0], r.m[0]); #endif /* Run the 128-bit tests */ - ssse3_test_pmaddubsw128 (&vals[i + 0], &vals[i + 4], r); - fail += chk_128 (ck, r); + ssse3_test_pmaddubsw128 (&vals[i + 0].m[0], &vals[i + 1].m[0], &r.m[0]); + fail += chk_128 (ck.m[0], r.m[0]); } if (fail != 0) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pmulhrsw.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pmulhrsw.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pmulhrsw.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pmulhrsw.c 2018-12-29 02:41:33.000000000 +0000 @@ -19,39 +19,32 @@ #ifndef __AVX__ /* Test the 64-bit form */ static void -ssse3_test_pmulhrsw (int *i1, int *i2, int *r) +ssse3_test_pmulhrsw (__m64 *i1, __m64 *i2, __m64 *r) { - __m64 t1 = *(__m64 *) i1; - __m64 t2 = *(__m64 *) i2; - *(__m64 *) r = _mm_mulhrs_pi16 (t1, t2); + *r = _mm_mulhrs_pi16 (*i1, *i2); _mm_empty (); } #endif /* Test the 128-bit form */ static void -ssse3_test_pmulhrsw128 (int *i1, int *i2, int *r) +ssse3_test_pmulhrsw128 (__m128i *i1, __m128i *i2, __m128i *r) { /* Assumes incoming pointers are 16-byte aligned */ - __m128i t1 = *(__m128i *) i1; - __m128i t2 = *(__m128i *) i2; - *(__m128i *) r = _mm_mulhrs_epi16 (t1, t2); + *r = _mm_mulhrs_epi16 (*i1, *i2); } /* Routine to manually compute the results */ static void -compute_correct_result (int *i1, int *i2, int *r) +compute_correct_result (short *i1, short *i2, short *r) { - short *s1 = (short *) i1; - short *s2 = (short *) i2; - short *sout = (short *) r; int t0; int i; for (i = 0; i < 8; i++) { - t0 = (((int) s1[i] * (int) s2[i]) >> 14) + 1; - sout[i] = (short) (t0 >> 1); + t0 = (((int) i1[i] * (int) i2[i]) >> 14) + 1; + r[i] = (short) (t0 >> 1); } } @@ -59,25 +52,25 @@ TEST (void) { int i; - int r [4] __attribute__ ((aligned(16))); - int ck [4]; + union data r __attribute__ ((aligned(16))); + union data ck; int fail = 0; - for (i = 0; i < 256; i += 8) + for (i = 0; i < ARRAY_SIZE (vals) - 1; i++) { /* Manually compute the result */ - compute_correct_result (&vals[i + 0], &vals[i + 4], ck); + compute_correct_result (&vals[i + 0].h[0], &vals[i + 1].h[0], &ck.h[0]); #ifndef __AVX__ /* Run the 64-bit tests */ - ssse3_test_pmulhrsw (&vals[i + 0], &vals[i + 4], &r[0]); - ssse3_test_pmulhrsw (&vals[i + 2], &vals[i + 6], &r[2]); - fail += chk_128 (ck, r); + ssse3_test_pmulhrsw (&vals[i + 0].ll[0], &vals[i + 1].ll[0], &r.ll[0]); + ssse3_test_pmulhrsw (&vals[i + 0].ll[1], &vals[i + 1].ll[1], &r.ll[1]); + fail += chk_128 (ck.m[0], r.m[0]); #endif /* Run the 128-bit tests */ - ssse3_test_pmulhrsw128 (&vals[i + 0], &vals[i + 4], r); - fail += chk_128 (ck, r); + ssse3_test_pmulhrsw128 (&vals[i + 0].m[0], &vals[i + 1].m[0], &r.m[0]); + fail += chk_128 (ck.m[0], r.m[0]); } if (fail != 0) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pshufb.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pshufb.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pshufb.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-pshufb.c 2018-12-29 02:41:33.000000000 +0000 @@ -19,65 +19,55 @@ #ifndef __AVX__ /* Test the 64-bit form */ static void -ssse3_test_pshufb (int *i1, int *i2, int *r) +ssse3_test_pshufb (__m64 *i1, __m64 *i2, __m64 *r) { - __m64 t1 = *(__m64 *) i1; - __m64 t2 = *(__m64 *) i2; - *(__m64 *)r = _mm_shuffle_pi8 (t1, t2); + *r = _mm_shuffle_pi8 (*i1, *i2); _mm_empty (); } #endif /* Test the 128-bit form */ static void -ssse3_test_pshufb128 (int *i1, int *i2, int *r) +ssse3_test_pshufb128 (__m128i *i1, __m128i *i2, __m128i *r) { /* Assumes incoming pointers are 16-byte aligned */ - __m128i t1 = *(__m128i *) i1; - __m128i t2 = *(__m128i *) i2; - *(__m128i *)r = _mm_shuffle_epi8 (t1, t2); + *r = _mm_shuffle_epi8 (*i1, *i2); } #ifndef __AVX__ /* Routine to manually compute the results */ static void -compute_correct_result_64 (int *i1, int *i2, int *r) +compute_correct_result_64 (signed char *i1, signed char *i2, signed char *r) { - char *b1 = (char *) i1; - char *b2 = (char *) i2; - char *bout = (char *) r; int i; char select; for (i = 0; i < 16; i++) { - select = b2[i]; + select = i2[i]; if (select & 0x80) - bout[i] = 0; + r[i] = 0; else if (i < 8) - bout[i] = b1[select & 0x7]; + r[i] = i1[select & 0x7]; else - bout[i] = b1[8 + (select & 0x7)]; + r[i] = i1[8 + (select & 0x7)]; } } #endif static void -compute_correct_result_128 (int *i1, int *i2, int *r) +compute_correct_result_128 (signed char *i1, signed char *i2, signed char *r) { - char *b1 = (char *) i1; - char *b2 = (char *) i2; - char *bout = (char *) r; int i; char select; for (i = 0; i < 16; i++) { - select = b2[i]; + select = i2[i]; if (select & 0x80) - bout[i] = 0; + r[i] = 0; else - bout[i] = b1[select & 0xf]; + r[i] = i1[select & 0xf]; } } @@ -85,28 +75,28 @@ TEST (void) { int i; - int r [4] __attribute__ ((aligned(16))); - int ck [4]; + union data r __attribute__ ((aligned(16))); + union data ck; int fail = 0; - for (i = 0; i < 256; i += 8) + for (i = 0; i < ARRAY_SIZE (vals) - 1; i++) { #ifndef __AVX__ /* Manually compute the result */ - compute_correct_result_64 (&vals[i + 0], &vals[i + 4], ck); + compute_correct_result_64 (&vals[i + 0].b[0], &vals[i + 1].b[0], &ck.b[0]); /* Run the 64-bit tests */ - ssse3_test_pshufb (&vals[i + 0], &vals[i + 4], &r[0]); - ssse3_test_pshufb (&vals[i + 2], &vals[i + 6], &r[2]); - fail += chk_128 (ck, r); + ssse3_test_pshufb (&vals[i + 0].ll[0], &vals[i + 1].ll[0], &r.ll[0]); + ssse3_test_pshufb (&vals[i + 0].ll[1], &vals[i + 1].ll[1], &r.ll[1]); + fail += chk_128 (ck.m[0], r.m[0]); #endif /* Recompute the result for 128-bits */ - compute_correct_result_128 (&vals[i + 0], &vals[i + 4], ck); + compute_correct_result_128 (&vals[i + 0].b[0], &vals[i + 1].b[0], &ck.b[0]); /* Run the 128-bit tests */ - ssse3_test_pshufb128 (&vals[i + 0], &vals[i + 4], r); - fail += chk_128 (ck, r); + ssse3_test_pshufb128 (&vals[i + 0].m[0], &vals[i + 1].m[0], &r.m[0]); + fail += chk_128 (ck.m[0], r.m[0]); } if (fail != 0) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-psignb.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-psignb.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-psignb.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-psignb.c 2018-12-29 02:41:33.000000000 +0000 @@ -18,66 +18,59 @@ #ifndef __AVX__ /* Test the 64-bit form */ static void -ssse3_test_psignb (int *i1, int *i2, int *r) +ssse3_test_psignb (__m64 *i1, __m64 *i2, __m64 *r) { - __m64 t1 = *(__m64 *) i1; - __m64 t2 = *(__m64 *) i2; - *(__m64 *) r = _mm_sign_pi8 (t1, t2); + *r = _mm_sign_pi8 (*i1, *i2); _mm_empty (); } #endif /* Test the 128-bit form */ static void -ssse3_test_psignb128 (int *i1, int *i2, int *r) +ssse3_test_psignb128 (__m128i *i1, __m128i *i2, __m128i *r) { /* Assumes incoming pointers are 16-byte aligned */ - __m128i t1 = *(__m128i *) i1; - __m128i t2 = *(__m128i *) i2; - *(__m128i *) r = _mm_sign_epi8 (t1, t2); + *r = _mm_sign_epi8 (*i1, *i2); } /* Routine to manually compute the results */ static void -compute_correct_result (int *i1, int *i2, int *r) +compute_correct_result (signed char *i1, signed char *i2, signed char *r) { - char *b1 = (char *) i1; - char *b2 = (char *) i2; - char *bout = (char *) r; int i; for (i = 0; i < 16; i++) - if (b2[i] < 0) - bout[i] = -b1[i]; - else if (b2[i] == 0) - bout[i] = 0; + if (i2[i] < 0) + r[i] = -i1[i]; + else if (i2[i] == 0) + r[i] = 0; else - bout[i] = b1[i]; + r[i] = i1[i]; } static void TEST (void) { int i; - int r [4] __attribute__ ((aligned(16))); - int ck [4]; + union data r __attribute__ ((aligned(16))); + union data ck; int fail = 0; - for (i = 0; i < 256; i += 8) + for (i = 0; i < ARRAY_SIZE (vals) - 1; i++) { /* Manually compute the result */ - compute_correct_result (&vals[i + 0], &vals[i + 4], ck); + compute_correct_result (&vals[i + 0].b[0], &vals[i + 1].b[0], &ck.b[0]); #ifndef __AVX__ /* Run the 64-bit tests */ - ssse3_test_psignb (&vals[i + 0], &vals[i + 4], &r[0]); - ssse3_test_psignb (&vals[i + 2], &vals[i + 6], &r[2]); - fail += chk_128 (ck, r); + ssse3_test_psignb (&vals[i + 0].ll[0], &vals[i + 1].ll[0], &r.ll[0]); + ssse3_test_psignb (&vals[i + 0].ll[1], &vals[i + 1].ll[1], &r.ll[1]); + fail += chk_128 (ck.m[0], r.m[0]); #endif /* Run the 128-bit tests */ - ssse3_test_psignb128 (&vals[i + 0], &vals[i + 4], r); - fail += chk_128 (ck, r); + ssse3_test_psignb128 (&vals[i + 0].m[0], &vals[i + 1].m[0], &r.m[0]); + fail += chk_128 (ck.m[0], r.m[0]); } if (fail != 0) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-psignd.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-psignd.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-psignd.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-psignd.c 2018-12-29 02:41:33.000000000 +0000 @@ -18,23 +18,19 @@ #ifndef __AVX__ /* Test the 64-bit form */ static void -ssse3_test_psignd (int *i1, int *i2, int *r) +ssse3_test_psignd (__m64 *i1, __m64 *i2, __m64 *r) { - __m64 t1 = *(__m64 *) i1; - __m64 t2 = *(__m64 *) i2; - *(__m64 *) r = _mm_sign_pi32 (t1, t2); + *r = _mm_sign_pi32 (*i1, *i2); _mm_empty (); } #endif /* Test the 128-bit form */ static void -ssse3_test_psignd128 (int *i1, int *i2, int *r) +ssse3_test_psignd128 (__m128i *i1, __m128i *i2, __m128i *r) { /* Assumes incoming pointers are 16-byte aligned */ - __m128i t1 = *(__m128i *) i1; - __m128i t2 = *(__m128i *) i2; - *(__m128i *)r = _mm_sign_epi32 (t1, t2); + *r = _mm_sign_epi32 (*i1, *i2); } /* Routine to manually compute the results */ @@ -56,25 +52,25 @@ TEST (void) { int i; - int r [4] __attribute__ ((aligned(16))); - int ck [4]; + union data r __attribute__ ((aligned(16))); + union data ck; int fail = 0; - for (i = 0; i < 256; i += 8) + for (i = 0; i < ARRAY_SIZE (vals) - 1; i++) { /* Manually compute the result */ - compute_correct_result (&vals[i + 0], &vals[i + 4], ck); + compute_correct_result (&vals[i + 0].w[0], &vals[i + 1].w[0], &ck.w[0]); #ifndef __AVX__ /* Run the 64-bit tests */ - ssse3_test_psignd (&vals[i + 0], &vals[i + 4], &r[0]); - ssse3_test_psignd (&vals[i + 2], &vals[i + 6], &r[2]); - fail += chk_128 (ck, r); + ssse3_test_psignd (&vals[i + 0].ll[0], &vals[i + 1].ll[0], &r.ll[0]); + ssse3_test_psignd (&vals[i + 0].ll[1], &vals[i + 1].ll[1], &r.ll[1]); + fail += chk_128 (ck.m[0], r.m[0]); #endif /* Run the 128-bit tests */ - ssse3_test_psignd128 (&vals[i + 0], &vals[i + 4], r); - fail += chk_128 (ck, r); + ssse3_test_psignd128 (&vals[i + 0].m[0], &vals[i + 1].m[0], &r.m[0]); + fail += chk_128 (ck.m[0], r.m[0]); } if (fail != 0) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-psignw.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-psignw.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-psignw.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-psignw.c 2018-12-29 02:41:33.000000000 +0000 @@ -18,66 +18,59 @@ #ifndef __AVX__ /* Test the 64-bit form */ static void -ssse3_test_psignw (int *i1, int *i2, int *r) +ssse3_test_psignw (__m64 *i1, __m64 *i2, __m64 *r) { - __m64 t1 = *(__m64 *) i1; - __m64 t2 = *(__m64 *) i2; - *(__m64 *) r = _mm_sign_pi16 (t1, t2); + *r = _mm_sign_pi16 (*i1, *i2); _mm_empty (); } #endif /* Test the 128-bit form */ static void -ssse3_test_psignw128 (int *i1, int *i2, int *r) +ssse3_test_psignw128 (__m128i *i1, __m128i *i2, __m128i *r) { /* Assumes incoming pointers are 16-byte aligned */ - __m128i t1 = *(__m128i *) i1; - __m128i t2 = *(__m128i *) i2; - *(__m128i *) r = _mm_sign_epi16 (t1, t2); + *r = _mm_sign_epi16 (*i1, *i2); } /* Routine to manually compute the results */ static void -compute_correct_result (int *i1, int *i2, int *r) +compute_correct_result (short *i1, short *i2, short *r) { - short *s1 = (short *) i1; - short *s2 = (short *) i2; - short *sout = (short *) r; int i; for (i = 0; i < 8; i++) - if (s2[i] < 0) - sout[i] = -s1[i]; - else if (s2[i] == 0) - sout[i] = 0; + if (i2[i] < 0) + r[i] = -i1[i]; + else if (i2[i] == 0) + r[i] = 0; else - sout[i] = s1[i]; + r[i] = i1[i]; } static void TEST (void) { int i; - int r [4] __attribute__ ((aligned(16))); - int ck [4]; + union data r __attribute__ ((aligned(16))); + union data ck; int fail = 0; - for (i = 0; i < 256; i += 8) + for (i = 0; i < ARRAY_SIZE (vals) - 1; i++) { /* Manually compute the result */ - compute_correct_result (&vals[i + 0], &vals[i + 4], ck); + compute_correct_result (&vals[i + 0].h[0], &vals[i + 1].h[0], &ck.h[0]); #ifndef __AVX__ /* Run the 64-bit tests */ - ssse3_test_psignw (&vals[i + 0], &vals[i + 4], &r[0]); - ssse3_test_psignw (&vals[i + 2], &vals[i + 6], &r[2]); - fail += chk_128 (ck, r); + ssse3_test_psignw (&vals[i + 0].ll[0], &vals[i + 1].ll[0], &r.ll[0]); + ssse3_test_psignw (&vals[i + 0].ll[1], &vals[i + 1].ll[1], &r.ll[1]); + fail += chk_128 (ck.m[0], r.m[0]); #endif /* Run the 128-bit tests */ - ssse3_test_psignw128 (&vals[i + 0], &vals[i + 4], r); - fail += chk_128 (ck, r); + ssse3_test_psignw128 (&vals[i + 0].m[0], &vals[i + 1].m[0], &r.m[0]); + fail += chk_128 (ck.m[0], r.m[0]); } if (fail != 0) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-vals.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-vals.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-vals.h 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/ssse3-vals.h 2018-12-29 02:41:33.000000000 +0000 @@ -1,60 +1,83 @@ +#include + /* Routine to check correctness of the results */ static int -chk_128 (int *v1, int *v2) +chk_128 (__m128i v1, __m128i v2) { - int i; - int n_fails = 0; - - for (i = 0; i < 4; i++) - if (v1[i] != v2[i]) - n_fails += 1; - - return n_fails; + return (v1[0] != v2[0]) || (v1[1] != v2[1]); } -static int vals [256] __attribute__ ((aligned(16))) = +static union data { + int w[4]; + signed char b[16]; + unsigned char ub[16]; + short h[8]; + unsigned long long ll[2]; + __m128i m[1]; +} vals[] __attribute__ ((aligned(16))) = { - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5be800ee, 0x4f2d7b15, - 0x409d9291, 0xdd95f27f, 0x423986e3, 0x21a4d2cd, 0xa7056d84, 0x4f4e5a3b, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x73ef0244, 0xcd836329, 0x847f634f, 0xa7e3abcf, 0xb4c14764, 0x1ef42c06, - 0x504f29ac, 0x4ae7ca73, 0xaddde3c9, 0xf63ded2e, 0xa5d3553d, 0xa52ae05f, - 0x6fd3c83a, 0x7dc2b300, 0x76b05de7, 0xea8ebae5, 0x549568dd, 0x172f0358, - 0x917eadf0, 0x796fb0a7, 0xb39381af, 0xd0591d61, 0x731d2f17, 0xbc4b6f5d, - 0x8ec664c2, 0x3c199c19, 0x9c81db12, 0x6d85913b, 0x486107a9, 0xab6f4b26, - 0x5630d37c, 0x20836e85, 0x40d4e746, 0xdfbaba36, 0xbeacaa69, 0xb3c84083, - 0x8a688eb4, 0x08cde481, 0x66e7a190, 0x74ee1639, 0xb3942a19, 0xe0c40471, - 0x9b789489, 0x9751207a, 0x543a1524, 0x41da7ad6, 0x614bb563, 0xf86f57b1, - 0x69e62199, 0x2150cb12, 0x9ed74062, 0x429471f4, 0xad28502b, 0xf2e2d4d5, - 0x45b6ce09, 0xaaa5e649, 0xb46da484, 0x0a637515, 0xae7a3212, 0x5afc784c, - 0x776cfbbe, 0x9c542bb2, 0x64193aa8, 0x16e8a655, 0x4e3d2f92, 0xe05d7b72, - 0x89854ebc, 0x8c318814, 0xb81e76e0, 0x3f2625f5, 0x61b44852, 0x5209d7ad, - 0x842fe317, 0xd3cfcca1, 0x8d287cc7, 0x80f0c9a8, 0x4215f4e5, 0x563993d6, - 0x5d627433, 0xc4449e35, 0x5b4fe009, 0x3ef92286, 0xacbc8927, 0x549ab870, - 0x9ac5b959, 0xed8f1c91, 0x7ecf02cd, 0x989c0e8b, 0xa31d6918, 0x1dc2bcc1, - 0x99d3f3cc, 0x6857acc8, 0x45d7324a, 0xaebdf2e6, 0x7af2f2ae, 0x09716f73, - 0x7816e694, 0xc65493c0, 0x9f7e87bc, 0xaa96cd40, 0xbfb5bfc6, 0x01a2cce7, - 0x5f1d8c46, 0x45303efb, 0xb24607c3, 0xef2009a7, 0xba873753, 0xbefb14bc, - 0x74e53cd3, 0x70124708, 0x6eb4bdbd, 0xf3ba5e43, 0x4c94085f, 0x0c03e7e0, - 0x9a084931, 0x62735424, 0xaeee77c5, 0xdb34f90f, 0x6860cbdd, 0xaf77cf9f, - 0x95b28158, 0x23bd70d7, 0x9fbc3d88, 0x742e659e, 0x53bcfb48, 0xb8a63f6c, - 0x4dcf3373, 0x2b168627, 0x4fe20745, 0xd0af5e94, 0x22514e6a, 0xb8ef25c2, - 0x89ec781a, 0x13d9002b, 0x6d724500, 0x7fdbf63f, 0xb0e9ced5, 0xf919e0f3, - 0x00fef203, 0x8905d47a, 0x434e7517, 0x4aef8e2c, 0x689f51e8, 0xe513b7c3, - 0x72bbc5d2, 0x3a222f74, 0x05c3a0f9, 0xd5489d82, 0xb41fbe83, 0xec5d305f, - 0x5ea02b0b, 0xb176065b, 0xa8eb404e, 0x80349117, 0x210fd49e, 0x43898d0e, - 0x6c151b9c, 0x8742df18, 0x7b64de73, 0x1dbf52b2, 0x55c9cb19, 0xeb841f10, - 0x10b8ae76, 0x0764ecb6, 0xb7479018, 0x2672cb3f, 0x7ac9ac90, 0x4be5332c, - 0x8f1a0615, 0x4efb7a77, 0x16551a85, 0xdb2c3d66, 0x49179c07, 0x5dc4657e, - 0x5e76907e, 0xd7486a9c, 0x445204a4, 0x65cdc426, 0x33f86ded, 0xcba95dda, - 0x83351f16, 0xfedefad9, 0x639b620f, 0x86896a64, 0xba4099ba, 0x965f4a21, - 0x1247154f, 0x25604c42, 0x5862d692, 0xb1e9149e, 0x612516a5, 0x02c49bf8, - 0x631212bf, 0x9f69f54e, 0x168b63b0, 0x310a25ba, 0xa42a59cd, 0x084f0af9, - 0x44a06cec, 0x5c0cda40, 0xb932d721, 0x7c42bb0d, 0x213cd3f0, 0xedc7f5a4, - 0x7fb85859, 0x6b3da5ea, 0x61cd591e, 0xe8e9aa08, 0x4361fc34, 0x53d40d2a, - 0x0511ad1b, 0xf996b44c, 0xb5ead756, 0xc022138d, 0x6172adf1, 0xa4a0a3b4, - 0x8c2977b8, 0xa8e482ed, 0x04fcdd6b, 0x3f7b85d4, 0x4fca1e46, 0xa392ddca, - 0x569fc791, 0x346a706c, 0x543bf3eb, 0x895b3cde, 0x2146bb80, 0x26b3c168, - 0x929998db, 0x1ea472c9, 0x7207b36b, 0x6a8f10d4 + { { 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, + { { 0x5be800ee, 0x4f2d7b15, 0x409d9291, 0xdd95f27f } }, + { { 0x423986e3, 0x21a4d2cd, 0xa7056d84, 0x4f4e5a3b } }, + { { 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, + { { 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, + { { 0x00000000, 0x00000000, 0x00000000, 0x00000000 } }, + { { 0x73ef0244, 0xcd836329, 0x847f634f, 0xa7e3abcf } }, + { { 0xb4c14764, 0x1ef42c06, 0x504f29ac, 0x4ae7ca73 } }, + { { 0xaddde3c9, 0xf63ded2e, 0xa5d3553d, 0xa52ae05f } }, + { { 0x6fd3c83a, 0x7dc2b300, 0x76b05de7, 0xea8ebae5 } }, + { { 0x549568dd, 0x172f0358, 0x917eadf0, 0x796fb0a7 } }, + { { 0xb39381af, 0xd0591d61, 0x731d2f17, 0xbc4b6f5d } }, + { { 0x8ec664c2, 0x3c199c19, 0x9c81db12, 0x6d85913b } }, + { { 0x486107a9, 0xab6f4b26, 0x5630d37c, 0x20836e85 } }, + { { 0x40d4e746, 0xdfbaba36, 0xbeacaa69, 0xb3c84083 } }, + { { 0x8a688eb4, 0x08cde481, 0x66e7a190, 0x74ee1639 } }, + { { 0xb3942a19, 0xe0c40471, 0x9b789489, 0x9751207a } }, + { { 0x543a1524, 0x41da7ad6, 0x614bb563, 0xf86f57b1 } }, + { { 0x69e62199, 0x2150cb12, 0x9ed74062, 0x429471f4 } }, + { { 0xad28502b, 0xf2e2d4d5, 0x45b6ce09, 0xaaa5e649 } }, + { { 0xb46da484, 0x0a637515, 0xae7a3212, 0x5afc784c } }, + { { 0x776cfbbe, 0x9c542bb2, 0x64193aa8, 0x16e8a655 } }, + { { 0x4e3d2f92, 0xe05d7b72, 0x89854ebc, 0x8c318814 } }, + { { 0xb81e76e0, 0x3f2625f5, 0x61b44852, 0x5209d7ad } }, + { { 0x842fe317, 0xd3cfcca1, 0x8d287cc7, 0x80f0c9a8 } }, + { { 0x4215f4e5, 0x563993d6, 0x5d627433, 0xc4449e35 } }, + { { 0x5b4fe009, 0x3ef92286, 0xacbc8927, 0x549ab870 } }, + { { 0x9ac5b959, 0xed8f1c91, 0x7ecf02cd, 0x989c0e8b } }, + { { 0xa31d6918, 0x1dc2bcc1, 0x99d3f3cc, 0x6857acc8 } }, + { { 0x45d7324a, 0xaebdf2e6, 0x7af2f2ae, 0x09716f73 } }, + { { 0x7816e694, 0xc65493c0, 0x9f7e87bc, 0xaa96cd40 } }, + { { 0xbfb5bfc6, 0x01a2cce7, 0x5f1d8c46, 0x45303efb } }, + { { 0xb24607c3, 0xef2009a7, 0xba873753, 0xbefb14bc } }, + { { 0x74e53cd3, 0x70124708, 0x6eb4bdbd, 0xf3ba5e43 } }, + { { 0x4c94085f, 0x0c03e7e0, 0x9a084931, 0x62735424 } }, + { { 0xaeee77c5, 0xdb34f90f, 0x6860cbdd, 0xaf77cf9f } }, + { { 0x95b28158, 0x23bd70d7, 0x9fbc3d88, 0x742e659e } }, + { { 0x53bcfb48, 0xb8a63f6c, 0x4dcf3373, 0x2b168627 } }, + { { 0x4fe20745, 0xd0af5e94, 0x22514e6a, 0xb8ef25c2 } }, + { { 0x89ec781a, 0x13d9002b, 0x6d724500, 0x7fdbf63f } }, + { { 0xb0e9ced5, 0xf919e0f3, 0x00fef203, 0x8905d47a } }, + { { 0x434e7517, 0x4aef8e2c, 0x689f51e8, 0xe513b7c3 } }, + { { 0x72bbc5d2, 0x3a222f74, 0x05c3a0f9, 0xd5489d82 } }, + { { 0xb41fbe83, 0xec5d305f, 0x5ea02b0b, 0xb176065b } }, + { { 0xa8eb404e, 0x80349117, 0x210fd49e, 0x43898d0e } }, + { { 0x6c151b9c, 0x8742df18, 0x7b64de73, 0x1dbf52b2 } }, + { { 0x55c9cb19, 0xeb841f10, 0x10b8ae76, 0x0764ecb6 } }, + { { 0xb7479018, 0x2672cb3f, 0x7ac9ac90, 0x4be5332c } }, + { { 0x8f1a0615, 0x4efb7a77, 0x16551a85, 0xdb2c3d66 } }, + { { 0x49179c07, 0x5dc4657e, 0x5e76907e, 0xd7486a9c } }, + { { 0x445204a4, 0x65cdc426, 0x33f86ded, 0xcba95dda } }, + { { 0x83351f16, 0xfedefad9, 0x639b620f, 0x86896a64 } }, + { { 0xba4099ba, 0x965f4a21, 0x1247154f, 0x25604c42 } }, + { { 0x5862d692, 0xb1e9149e, 0x612516a5, 0x02c49bf8 } }, + { { 0x631212bf, 0x9f69f54e, 0x168b63b0, 0x310a25ba } }, + { { 0xa42a59cd, 0x084f0af9, 0x44a06cec, 0x5c0cda40 } }, + { { 0xb932d721, 0x7c42bb0d, 0x213cd3f0, 0xedc7f5a4 } }, + { { 0x7fb85859, 0x6b3da5ea, 0x61cd591e, 0xe8e9aa08 } }, + { { 0x4361fc34, 0x53d40d2a, 0x0511ad1b, 0xf996b44c } }, + { { 0xb5ead756, 0xc022138d, 0x6172adf1, 0xa4a0a3b4 } }, + { { 0x8c2977b8, 0xa8e482ed, 0x04fcdd6b, 0x3f7b85d4 } }, + { { 0x4fca1e46, 0xa392ddca, 0x569fc791, 0x346a706c } }, + { { 0x543bf3eb, 0x895b3cde, 0x2146bb80, 0x26b3c168 } }, + { { 0x929998db, 0x1ea472c9, 0x7207b36b, 0x6a8f10d4 } } }; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/vsu/vsu.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/vsu/vsu.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/vsu/vsu.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/powerpc/vsu/vsu.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/riscv/riscv.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/riscv/riscv.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/riscv/riscv.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/riscv/riscv.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2018 Free Software Foundation, Inc. +# Copyright (C) 2017-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/rl78/rl78.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/rl78/rl78.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/rl78/rl78.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/rl78/rl78.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2015-2018 Free Software Foundation, Inc. +# Copyright (C) 2015-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/rx/rx.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/rx/rx.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/rx/rx.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/rx/rx.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/s390/s390.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/s390/s390.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/s390/s390.exp 2018-09-08 14:39:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/s390/s390.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/s390/vector/fp-signedint-convert-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/s390/vector/fp-signedint-convert-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/s390/vector/fp-signedint-convert-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/s390/vector/fp-signedint-convert-1.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,26 @@ +/* { dg-compile } */ +/* { dg-options "-O3 -march=z13 -mzarch" } */ + +typedef long long __attribute__((vector_size(16))) v2di; +typedef double __attribute__((vector_size(16))) v2df; + +v2di longvec; +v2df doublevec; + +v2di +tolong (v2df a) +{ + v2di out = (v2di){ (long long)a[0], (long long)a[1] }; + return out; +} + +/* { dg-final { scan-assembler-times "vcgdb\t%v24,%v24,0,5" 1 } } */ + +v2df +todouble (v2di a) +{ + v2df out = (v2df){ (double)a[0], (double)a[1] }; + return out; +} + +/* { dg-final { scan-assembler-times "vcdgb\t%v24,%v24,0,0" 1 } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/s390/vector/fp-unsignedint-convert-1.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/s390/vector/fp-unsignedint-convert-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/s390/vector/fp-unsignedint-convert-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/s390/vector/fp-unsignedint-convert-1.c 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,26 @@ +/* { dg-compile } */ +/* { dg-options "-O3 -march=z13 -mzarch" } */ + +typedef unsigned long long __attribute__((vector_size(16))) v2di; +typedef double __attribute__((vector_size(16))) v2df; + +v2di longvec; +v2df doublevec; + +v2di +toulong (v2df a) +{ + v2di out = (v2di){ (unsigned long long)a[0], (unsigned long long)a[1] }; + return out; +} + +/* { dg-final { scan-assembler-times "vclgdb\t%v24,%v24,0,5" 1 } } */ + +v2df +todouble (v2di a) +{ + v2df out = (v2df){ (double)a[0], (double)a[1] }; + return out; +} + +/* { dg-final { scan-assembler-times "vcdlgb\t%v24,%v24,0,0" 1 } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/sh/sh.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/sh/sh.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/sh/sh.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/sh/sh.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/sh/torture/sh-torture.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/sh/torture/sh-torture.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/sh/torture/sh-torture.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/sh/torture/sh-torture.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/sparc/sparc.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/sparc/sparc.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/sparc/sparc.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/sparc/sparc.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/spu/ea/ea.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/spu/ea/ea.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/spu/ea/ea.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/spu/ea/ea.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/spu/spu.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/spu/spu.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/spu/spu.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/spu/spu.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/tic6x/builtins/c6x-builtins.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/tic6x/builtins/c6x-builtins.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/tic6x/builtins/c6x-builtins.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/tic6x/builtins/c6x-builtins.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/tic6x/tic6x.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/tic6x/tic6x.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/tic6x/tic6x.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/tic6x/tic6x.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/vax/vax.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/vax/vax.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/vax/vax.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/vax/vax.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/visium/visium.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/visium/visium.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/visium/visium.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/visium/visium.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Specific regression driver for Visium. -# Copyright (C) 2015-2018 Free Software Foundation, Inc. +# Copyright (C) 2015-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s 2014-12-14 06:35:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s 2018-12-29 02:41:33.000000000 +0000 @@ -1,4 +1,3 @@ - .file "snapshot.S" .text .p2align 4,,15 .globl _snapshot diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/asm-support.S gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/asm-support.S --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/asm-support.S 2014-12-14 06:35:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/asm-support.S 2018-12-29 02:41:33.000000000 +0000 @@ -1,4 +1,3 @@ - .file "snapshot.S" #ifdef __AVX__ .sse_check none #endif diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support-darwin.s gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support-darwin.s --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support-darwin.s 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support-darwin.s 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,76 @@ + .text + .p2align 4,,15 + .globl _snapshot +_snapshot: +LFB3: + movq %rax, _rax(%rip) + movq %rbx, _rbx(%rip) + movq %rcx, _rcx(%rip) + movq %rdx, _rdx(%rip) + movq %rdi, _rdi(%rip) + movq %rsi, _rsi(%rip) + movq %rbp, _rbp(%rip) + movq %rsp, _rsp(%rip) + movq %r8, _r8(%rip) + movq %r9, _r9(%rip) + movq %r10, _r10(%rip) + movq %r11, _r11(%rip) + movq %r12, _r12(%rip) + movq %r13, _r13(%rip) + movq %r14, _r14(%rip) + movq %r15, _r15(%rip) + vmovdqu %ymm0, _ymm_regs+0(%rip) + vmovdqu %ymm1, _ymm_regs+32(%rip) + vmovdqu %ymm2, _ymm_regs+64(%rip) + vmovdqu %ymm3, _ymm_regs+96(%rip) + vmovdqu %ymm4, _ymm_regs+128(%rip) + vmovdqu %ymm5, _ymm_regs+160(%rip) + vmovdqu %ymm6, _ymm_regs+192(%rip) + vmovdqu %ymm7, _ymm_regs+224(%rip) + vmovdqu %ymm8, _ymm_regs+256(%rip) + vmovdqu %ymm9, _ymm_regs+288(%rip) + vmovdqu %ymm10, _ymm_regs+320(%rip) + vmovdqu %ymm11, _ymm_regs+352(%rip) + vmovdqu %ymm12, _ymm_regs+384(%rip) + vmovdqu %ymm13, _ymm_regs+416(%rip) + vmovdqu %ymm14, _ymm_regs+448(%rip) + vmovdqu %ymm15, _ymm_regs+480(%rip) + jmp *_callthis(%rip) +LFE3: + .p2align 4,,15 + .globl _snapshot_ret +_snapshot_ret: + movq %rdi, _rdi(%rip) + subq $8, %rsp + call *_callthis(%rip) + addq $8, %rsp + movq %rax, _rax(%rip) + movq %rdx, _rdx(%rip) + vmovdqu %ymm0, _ymm_regs+0(%rip) + vmovdqu %ymm1, _ymm_regs+32(%rip) + fstpt _x87_regs(%rip) + fstpt _x87_regs+16(%rip) + fldt _x87_regs+16(%rip) + fldt _x87_regs(%rip) + ret + + .comm _callthis,8,3 + .comm _rax,8,3 + .comm _rbx,8,3 + .comm _rcx,8,3 + .comm _rdx,8,3 + .comm _rsi,8,3 + .comm _rdi,8,3 + .comm _rsp,8,3 + .comm _rbp,8,3 + .comm _r8,8,3 + .comm _r9,8,3 + .comm _r10,8,3 + .comm _r11,8,3 + .comm _r12,8,3 + .comm _r13,8,3 + .comm _r14,8,3 + .comm _r15,8,3 + .comm _ymm_regs,512,5 + .comm _x87_regs,128,5 + .comm _volatile_var,8,3 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S 2014-12-14 06:35:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S 2018-12-29 02:41:33.000000000 +0000 @@ -1,4 +1,3 @@ - .file "snapshot.S" .text .p2align 4,,15 .globl snapshot diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S 2014-12-14 06:35:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S 2018-12-29 02:41:33.000000000 +0000 @@ -1,4 +1,3 @@ - .file "snapshot.S" .text .p2align 4,,15 .globl snapshot diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Assembly proxy functions for ms_abi tests. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Daniel Santos This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp 2018-09-18 08:44:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Tests for ms_abi to sysv_abi calls. -# Copyright (C) 2016-2018 Free Software Foundation, Inc. +# Copyright (C) 2016-2019 Free Software Foundation, Inc. # Contributed by Daniel Santos # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/README.gcc gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/README.gcc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/README.gcc 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/x86_64/abi/README.gcc 2019-01-02 08:05:16.000000000 +0000 @@ -18,7 +18,7 @@ matz@suse.de -Copyright (C) 2005-2018 Free Software Foundation, Inc. +Copyright (C) 2005-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/xstormy16/xstormy16.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/xstormy16/xstormy16.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.target/xstormy16/xstormy16.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.target/xstormy16/xstormy16.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.test-framework/gen_directive_tests gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.test-framework/gen_directive_tests --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.test-framework/gen_directive_tests 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.test-framework/gen_directive_tests 2019-01-02 08:05:16.000000000 +0000 @@ -14,7 +14,7 @@ # This script has evolved and could be rewritten to be more compact. # # -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.test-framework/README gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.test-framework/README --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.test-framework/README 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.test-framework/README 2019-01-02 08:05:16.000000000 +0000 @@ -25,7 +25,7 @@ that passed and failed. -Copyright (C) 2005-2018 Free Software Foundation, Inc. +Copyright (C) 2005-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.test-framework/test-framework.awk gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.test-framework/test-framework.awk --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.test-framework/test-framework.awk 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.test-framework/test-framework.awk 2019-01-02 08:05:16.000000000 +0000 @@ -3,7 +3,7 @@ # of passing tests. # # -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.test-framework/test-framework.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.test-framework/test-framework.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gcc.test-framework/test-framework.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gcc.test-framework/test-framework.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gdc.dg/asan/asan.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gdc.dg/asan/asan.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gdc.dg/asan/asan.exp 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gdc.dg/asan/asan.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2018 Free Software Foundation, Inc. +# Copyright (C) 2017-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gdc.dg/dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gdc.dg/dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gdc.dg/dg.exp 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gdc.dg/dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2018 Free Software Foundation, Inc. +# Copyright (C) 2017-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gdc.dg/lto/lto.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gdc.dg/lto/lto.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gdc.dg/lto/lto.exp 2018-11-26 09:16:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gdc.dg/lto/lto.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2018 Free Software Foundation, Inc. +# Copyright (C) 2017-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gdc.test/gdc-test.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gdc.test/gdc-test.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gdc.test/gdc-test.exp 2018-12-14 05:16:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gdc.test/gdc-test.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/abi/key2.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/abi/key2.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/abi/key2.C 2016-11-28 16:46:55.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/abi/key2.C 2019-01-02 08:05:16.000000000 +0000 @@ -14,4 +14,4 @@ } c; inline void f::g() {} int sub(void) -{} +{return 0;} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/asan/asan.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/asan/asan.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/asan/asan.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/asan/asan.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/asm-qual-1.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/asm-qual-1.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/asm-qual-1.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/asm-qual-1.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,13 @@ +// Test that qualifiers other than volatile are disallowed on asm. +// { dg-do compile } +// { dg-options "-std=gnu++98" } + +void +f () +{ + asm volatile (""); + + asm const (""); // { dg-error {'const' is not an asm qualifier} } + + asm __restrict (""); // { dg-error {'__restrict' is not an asm qualifier} } +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/asm-qual-2.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/asm-qual-2.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/asm-qual-2.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/asm-qual-2.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,46 @@ +// Test that qualifiers on asm are allowed in any order. +// { dg-do compile } +// { dg-options "-std=c++98" } + +void +f () +{ + asm volatile goto ("" :::: lab); + asm volatile inline ("" :::); + asm inline volatile ("" :::); + asm inline goto ("" :::: lab); + asm goto volatile ("" :::: lab); + asm goto inline ("" :::: lab); + + asm volatile inline goto ("" :::: lab); + asm volatile goto inline ("" :::: lab); + asm inline volatile goto ("" :::: lab); + asm inline goto volatile ("" :::: lab); + asm goto volatile inline ("" :::: lab); + asm goto inline volatile ("" :::: lab); + + /* Duplicates are not allowed. */ + asm goto volatile volatile ("" :::: lab); /* { dg-error "" } */ + asm volatile goto volatile ("" :::: lab); /* { dg-error "" } */ + asm volatile volatile goto ("" :::: lab); /* { dg-error "" } */ + asm goto goto volatile ("" :::: lab); /* { dg-error "" } */ + asm goto volatile goto ("" :::: lab); /* { dg-error "" } */ + asm volatile goto goto ("" :::: lab); /* { dg-error "" } */ + + asm inline volatile volatile ("" :::); /* { dg-error "" } */ + asm volatile inline volatile ("" :::); /* { dg-error "" } */ + asm volatile volatile inline ("" :::); /* { dg-error "" } */ + asm inline inline volatile ("" :::); /* { dg-error "" } */ + asm inline volatile inline ("" :::); /* { dg-error "" } */ + asm volatile inline inline ("" :::); /* { dg-error "" } */ + + asm goto inline inline ("" :::: lab); /* { dg-error "" } */ + asm inline goto inline ("" :::: lab); /* { dg-error "" } */ + asm inline inline goto ("" :::: lab); /* { dg-error "" } */ + asm goto goto inline ("" :::: lab); /* { dg-error "" } */ + asm goto inline goto ("" :::: lab); /* { dg-error "" } */ + asm inline goto goto ("" :::: lab); /* { dg-error "" } */ + +lab: + ; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/asm-qual-3.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/asm-qual-3.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/asm-qual-3.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/asm-qual-3.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,12 @@ +// Test that asm-qualifiers are not allowed on toplevel asm. +// { dg-do compile } +// { dg-options "-std=gnu++98" } + +asm const (""); // { dg-error {expected '\(' before 'const'} } +asm volatile (""); // { dg-error {expected '\(' before 'volatile'} } +asm restrict (""); // { dg-error {expected '\(' before 'restrict'} } +asm inline (""); // { dg-error {expected '\(' before 'inline'} } +asm goto (""); // { dg-error {expected '\(' before 'goto'} } + +// There are many other things wrong with this code, so: +// { dg-excess-errors "" } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/bprob/bprob.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/bprob/bprob.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/bprob/bprob.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/bprob/bprob.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/charset/charset.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/charset/charset.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/charset/charset.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/charset/charset.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/compat/break/README gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/compat/break/README --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/compat/break/README 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/compat/break/README 2019-01-02 08:05:16.000000000 +0000 @@ -11,7 +11,7 @@ there is a warning for the construct. -Copyright (C) 2002-2018 Free Software Foundation, Inc. +Copyright (C) 2002-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/compat/compat.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/compat/compat.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/compat/compat.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/compat/compat.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/compat/struct-layout-1.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/compat/struct-layout-1.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/compat/struct-layout-1.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/compat/struct-layout-1.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/constexpr-47969.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/constexpr-47969.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/constexpr-47969.C 2018-11-29 22:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/constexpr-47969.C 2018-12-29 02:41:34.000000000 +0000 @@ -9,4 +9,4 @@ constexpr A a = A(); int ar[a]; // { dg-error "could not convert" } -// { dg-error "5:size of array .ar. has non-integral" "" { target c++11 } .-1 } +// { dg-error "8:size of array .ar. has non-integral" "" { target c++11 } .-1 } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/constexpr-87934.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/constexpr-87934.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/constexpr-87934.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/constexpr-87934.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,9 @@ +// PR c++/87934 +// { dg-do compile { target c++11 } } + +struct Foo +{ + enum { BAR } bar = BAR; +}; + +constexpr Foo foo{}; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/constexpr-ex2.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/constexpr-ex2.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/constexpr-ex2.C 2018-11-29 22:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/constexpr-ex2.C 2018-12-29 02:41:34.000000000 +0000 @@ -19,4 +19,4 @@ X x; // OK: unique conversion to int int ar[X::i]; // also OK int ary[a]; // { dg-error "could not convert" } ambiguous conversion -// { dg-error "5:size of array .ary. has non-integral" "" { target c++11 } .-1 } +// { dg-error "9:size of array .ary. has non-integral" "" { target c++11 } .-1 } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/decltype-33838.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/decltype-33838.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/decltype-33838.C 2014-12-14 06:46:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/decltype-33838.C 2018-12-16 02:30:47.000000000 +0000 @@ -2,5 +2,5 @@ // PR c++/33838 template struct A { - __decltype (T* foo()); // { dg-error "expected|no arguments|accept" } + __decltype (T* foo()); // { dg-error "expected|no arguments|declaration" } }; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/decltype68.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/decltype68.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/decltype68.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/decltype68.C 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,7 @@ +// PR c++/84644 +// { dg-do compile { target c++11 } } + +template +struct b { + decltype(a) __attribute__((break)); // { dg-error "declaration does not declare anything" } +}; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/inh-ctor32.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/inh-ctor32.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/inh-ctor32.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/inh-ctor32.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,229 @@ +// { dg-do compile { target c++11 } } +// Minimized from the testcase for PR c++/88146, +// then turned into multiple variants. + +// We issue an error when calling an inherited ctor with at least one +// argument passed through a varargs ellipsis, if the call is in an +// evaluated context. Even in nonevaluated contexts, we will +// instantiate constexpr templates (unlike non-constexpr templates), +// which might then issue errors that in nonevlauated contexts +// wouldn't be issued. + +// In these variants, the inherited ctor is constexpr, but it's only +// called in unevaluated contexts, so no error is issued. The +// templateness of the ctor doesn't matter, because the only call that +// passes args through the ellipsis is in a noexcept expr, that is not +// evaluated. The ctors in derived classes are created and +// instantiated, discarding arguments passed through the ellipsis when +// calling base ctors, but that's not reported: we only report a +// problem when *calling* ctors that behave this way. +namespace unevaled_call { + namespace no_arg_before_ellipsis { + namespace without_template { + struct foo { + constexpr foo(...) {} + }; + struct boo : foo { + using foo::foo; + }; + struct bar : boo { + using boo::boo; + }; + void f() noexcept(noexcept(bar{0})); + } + + namespace with_template { + struct foo { + template + constexpr foo(...) {} + }; + struct boo : foo { + using foo::foo; + }; + struct bar : boo { + using boo::boo; + }; + void f() noexcept(noexcept(bar{0})); + } + } + + namespace one_arg_before_ellipsis { + namespace without_template { + struct foo { + constexpr foo(int, ...) {} + }; + struct boo : foo { + using foo::foo; + }; + struct bar : boo { + using boo::boo; + }; + void f() noexcept(noexcept(bar{0,1})); + } + + namespace with_template { + struct foo { + template + constexpr foo(T, ...) {} + }; + struct boo : foo { + using foo::foo; + }; + struct bar : boo { + using boo::boo; + }; + void f() noexcept(noexcept(bar{0,1})); + } + } +} + +// In these variants, the inherited ctor is constexpr, and it's called +// in unevaluated contexts in ways that would otherwise trigger the +// sorry message. Here we check that the message is not issued at +// those calls, nor at subsequent calls that use the same ctor without +// passing arguments through its ellipsis. We check that it is issued +// later, when we pass the ctor arguments through the ellipsis. +namespace evaled_bad_call_in_u { + namespace one_arg_before_ellipsis { + namespace without_template { + struct foo { + constexpr foo(int, ...) {} + }; + struct boo : foo { + using foo::foo; + }; + struct bar : boo { + using boo::boo; + }; + void f() noexcept(noexcept(bar{0, 1})); + bar t(0); + bar u(0, 1); // { dg-message "sorry, unimplemented: passing arguments to ellipsis" } + } + + namespace with_template { + struct foo { + template + constexpr foo(T, ...) {} + }; + struct boo : foo { + using foo::foo; + }; + struct bar : boo { + using boo::boo; + }; + void f() noexcept(noexcept(bar{0,1})); + bar t(0); + bar u(0,1); // { dg-message "sorry, unimplemented: passing arguments to ellipsis" } + } + } + + namespace no_arg_before_ellipsis { + namespace without_template { + struct foo { + constexpr foo(...) {} + }; + struct boo : foo { + using foo::foo; + }; + struct bar : boo { + using boo::boo; + }; + void f() noexcept(noexcept(bar{0})); + bar u(0); // { dg-message "sorry, unimplemented: passing arguments to ellipsis" } + } + + namespace with_template { + struct foo { + template + constexpr foo(...) {} + }; + struct boo : foo { + using foo::foo; + }; + struct bar : boo { + using boo::boo; + }; + void f() noexcept(noexcept(bar{0})); + bar u(0); // { dg-message "sorry, unimplemented: passing arguments to ellipsis" } + } + } +} + +// Now, instead of instantiating a class that uses a derived ctor, we +// introduce another template ctor that will use the varargs ctor to +// initialize its base class. The idea is to verify that the error +// message is issued, even if the instantiation occurs in a +// nonevaluated context, e.g., for constexpr templates. In the +// inherited_derived_ctor, we check that even an inherited ctor of a +// constexpr ctor is instantiated and have an error message issued. +namespace derived_ctor { + namespace direct_derived_ctor { + namespace constexpr_noninherited_ctor { + struct foo { + template + constexpr foo(T, ...) {} + }; + struct boo : foo { + using foo::foo; + }; + struct bar : boo { + template + constexpr bar(T ... args) : boo(args...) {} // { dg-message "sorry, unimplemented: passing arguments to ellipsis" } + }; + void f() noexcept(noexcept(bar{0,1})); + } + + namespace no_constexpr_noninherited_ctor { + struct foo { + template + constexpr foo(T, ...) {} + }; + struct boo : foo { + using foo::foo; + }; + struct bar : boo { + template + /* constexpr */ bar(T ... args) : boo(args...) {} + }; + void f() noexcept(noexcept(bar{0,1})); + } + } + + namespace inherited_derived_ctor { + namespace constexpr_noninherited_ctor { + struct foo { + template + constexpr foo(T, ...) {} + }; + struct boo : foo { + using foo::foo; + }; + struct bor : boo { + template + constexpr bor(T ... args) : boo(args...) {} // { dg-message "sorry, unimplemented: passing arguments to ellipsis" } + }; + struct bar : bor { + using bor::bor; + }; + void f() noexcept(noexcept(bar{0,1})); // { dg-message "'constexpr' expansion" } + } + + namespace no_constexpr_noninherited_ctor { + struct foo { + template + constexpr foo(T, ...) {} + }; + struct boo : foo { + using foo::foo; + }; + struct bor : boo { + template + /* constexpr */ bor(T ... args) : boo(args...) {} + }; + struct bar : bor { + using bor::bor; + }; + void f() noexcept(noexcept(bar{0,1})); + } + } +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/pr51420.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/pr51420.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/pr51420.C 2016-06-18 20:24:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/pr51420.C 2018-12-29 02:41:34.000000000 +0000 @@ -1,8 +1,18 @@ // { dg-do compile { target c++11 } } +// { dg-options "-fdiagnostics-show-caret" } void foo() { float x = operator"" _F(); // { dg-error "13:'operator\"\"_F' was not declared in this scope" } + /* { dg-begin-multiline-output "" } + float x = operator"" _F(); + ^~~~~~~~~~~~~ + { dg-end-multiline-output "" } */ + float y = 0_F; // { dg-error "unable to find numeric literal operator" } + /* { dg-begin-multiline-output "" } + float y = 0_F; + ^~~ + { dg-end-multiline-output "" } */ } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/pr87012.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/pr87012.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/pr87012.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/pr87012.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,11 @@ +// { dg-do compile { target c++11 } } + +template +using ref = T&; + +int x; + +template class T, T> +struct X { }; + +struct Y : X { }; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/pr87125.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/pr87125.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/pr87125.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/pr87125.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,15 @@ +// PR c++/87125 +// { dg-do compile { target c++11 } } + +template +struct S { + template + constexpr S (U) noexcept (T ()) {} +}; +struct V : S { using S::S; }; + +bool +foo () +{ + return noexcept (V (0)); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/pr88410.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/pr88410.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/pr88410.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/pr88410.C 2018-12-18 00:25:21.000000000 +0000 @@ -0,0 +1,7 @@ +// PR c++/88410 +// { dg-do compile { target c++11 } } + +typedef __UINTPTR_TYPE__ uintptr_t; +const uintptr_t a = 32; +struct C { int b; int c; }; +uintptr_t d { uintptr_t (&reinterpret_cast(a)->c) - a }; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/ptrmem-cst-arg1.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/ptrmem-cst-arg1.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/ptrmem-cst-arg1.C 2014-12-14 06:46:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/ptrmem-cst-arg1.C 2018-12-29 02:41:34.000000000 +0000 @@ -5,5 +5,5 @@ struct B { int i; - A<&B::i> a; // { dg-error "could not convert template argument" } + A<&B::i> a; // { dg-error "could not convert" } }; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/scoped_enum2.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/scoped_enum2.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/scoped_enum2.C 2018-11-29 22:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp0x/scoped_enum2.C 2018-12-29 02:41:34.000000000 +0000 @@ -5,7 +5,7 @@ struct C { int arr[E::e]; // { dg-error "could not convert" } -// { dg-error "7:size of array .arr. has non-integral" "" { target c++11 } .-1 } +// { dg-error "14:size of array .arr. has non-integral" "" { target c++11 } .-1 } int arr2[E2::e2]; // OK int i: E::e; // { dg-error "could not convert|non-integral type" } int i2: E2::e2; // OK diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp1y/constexpr-86524.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp1y/constexpr-86524.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp1y/constexpr-86524.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp1y/constexpr-86524.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,41 @@ +// PR c++/86524 +// { dg-do run { target c++14 } } +// { dg-options "-O2" } + +extern "C" void abort (); +typedef __UINTPTR_TYPE__ uintptr_t; + +constexpr bool +foo (const int *x, const int *y) +{ + if (__builtin_constant_p (x < y)) + return x < y; + return (uintptr_t) x < (uintptr_t) y; +} + +void +bar () +{ + constexpr int x = 0; + static_assert (!(&x < &x)); + static_assert (!foo (&x, &x)); +} + +constexpr void +baz () +{ + constexpr int x = 0; + static_assert (!(&x < &x)); + static_assert (!foo (&x, &x)); +} + +int i, j; + +int +main () +{ + bar (); + baz (); + if (!(foo (&i, &j) ^ foo (&j, &i))) + abort (); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp1z/decomp48.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp1z/decomp48.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp1z/decomp48.C 2018-10-15 11:36:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp1z/decomp48.C 2018-12-29 02:41:34.000000000 +0000 @@ -18,7 +18,7 @@ { S v {1, 2}; auto& [s, t] = v; // { dg-warning "structured bindings only available with" "" { target c++14_down } } - return s; // { dg-warning "reference to local variable 'v' returned" } + return s; // { dg-warning "reference to local variable 'v' returned" "" { target *-*-* } .-1 } } int & @@ -33,7 +33,7 @@ { int a[3] = {1, 2, 3}; auto& [s, t, u] = a; // { dg-warning "structured bindings only available with" "" { target c++14_down } } - return s; // { dg-warning "reference to local variable 'a' returned" } + return s; // { dg-warning "reference to local variable 'a' returned" "" { target *-*-* } .-1 } } int & @@ -78,7 +78,7 @@ { S v {1, 2}; auto& [s, t] = v; // { dg-warning "structured bindings only available with" "" { target c++14_down } } - return &s; // { dg-warning "address of local variable 'v' returned" } + return &s; // { dg-warning "address of local variable 'v' returned" "" { target *-*-* } .-1 } } int * @@ -93,7 +93,7 @@ { int a[3] = {1, 2, 3}; auto& [s, t, u] = a; // { dg-warning "structured bindings only available with" "" { target c++14_down } } - return &s; // { dg-warning "address of local variable 'a' returned" } + return &s; // { dg-warning "address of local variable 'a' returned" "" { target *-*-* } .-1 } } int * diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp1z/pr87814.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp1z/pr87814.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp1z/pr87814.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp1z/pr87814.C 2018-12-16 02:30:51.000000000 +0000 @@ -0,0 +1,26 @@ +// { dg-do compile { target c++17 } } + +template +struct box { + template + constexpr box(E && e) + noexcept(noexcept(Element(e))) + {} +}; + +template +struct compressed_tuple_ : box ... { + template + constexpr compressed_tuple_(Args &&... args) + noexcept((noexcept(box(args)) && ...)) + : box(args)... + {} +}; + +struct adaptor_cursor : compressed_tuple_ { + using compressed_tuple_::compressed_tuple_; +}; + +int main() { + (void)noexcept(adaptor_cursor{(int*)0}); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated4.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated4.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated4.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated4.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,19 @@ +// P0595R2 +// { dg-do compile { target c++14 } } + +namespace std { + constexpr inline bool + is_constant_evaluated () noexcept + { + return __builtin_is_constant_evaluated (); + } +} + +constexpr int +foo () noexcept +{ + return std::is_constant_evaluated () ? 5 : 12; +} + +static_assert (std::is_constant_evaluated (), ""); +static_assert (foo () == 5, ""); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated5.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated5.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated5.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated5.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,41 @@ +// PR c++/86524 +// { dg-do run { target c++14 } } +// { dg-options "-O2" } + +extern "C" void abort (); +typedef __UINTPTR_TYPE__ uintptr_t; + +constexpr bool +foo (const int *x, const int *y) +{ + if (__builtin_is_constant_evaluated ()) + return x < y; + return (uintptr_t) x < (uintptr_t) y; +} + +void +bar () +{ + constexpr int x = 0; + static_assert (!(&x < &x)); + static_assert (!foo (&x, &x)); +} + +constexpr void +baz () +{ + constexpr int x = 0; + static_assert (!(&x < &x)); + static_assert (!foo (&x, &x)); +} + +int i, j; + +int +main () +{ + bar (); + baz (); + if (!(foo (&i, &j) ^ foo (&j, &i))) + abort (); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated6.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated6.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated6.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated6.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,29 @@ +// P0595R2 +// { dg-do compile { target c++14 } } + +namespace std { + constexpr inline bool + is_constant_evaluated () noexcept + { + return __builtin_is_constant_evaluated (); + } +} + +int a; + +constexpr bool +foo (int x) +{ + return __builtin_constant_p (x); +} + +constexpr bool +bar (int x) +{ + return __builtin_constant_p (x + a); +} + +static_assert (__builtin_constant_p (0) + 2 * std::is_constant_evaluated () == 3, ""); +static_assert (__builtin_constant_p (a) + 2 * std::is_constant_evaluated () == 2, ""); +static_assert (foo (0) + 2 * std::is_constant_evaluated () == 3, ""); +static_assert (bar (0) + 2 * std::is_constant_evaluated () == 2, ""); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp2a/nontype-class10.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp2a/nontype-class10.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp2a/nontype-class10.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/cpp2a/nontype-class10.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,6 @@ +// PR c++/88196 +// { dg-do compile { target c++2a } } + +struct C { C *c; }; +template struct D; +D <&C::c> d; // { dg-error "could not convert" } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/debug/debug.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/debug/debug.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/debug/debug.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/debug/debug.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/debug/dwarf2/dwarf2.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/debug/dwarf2/dwarf2.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/debug/dwarf2/dwarf2.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/debug/dwarf2/dwarf2.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/dfp/dfp.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/dfp/dfp.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/dfp/dfp.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/dfp/dfp.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/dg.exp 2018-06-08 18:00:49.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2018 Free Software Foundation, Inc. +# Copyright (C) 2000-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/diagnostic/bad-binary-ops.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/diagnostic/bad-binary-ops.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/diagnostic/bad-binary-ops.C 2016-01-01 20:16:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/diagnostic/bad-binary-ops.C 2018-12-29 02:41:34.000000000 +0000 @@ -11,7 +11,10 @@ /* { dg-begin-multiline-output "" } myvec[1] / ptr; - ~~~~~~~~~^~~~~ + ~~~~~~~~ ^ ~~~ + | | + | const int* + __m128 {aka float} { dg-end-multiline-output "" } */ } @@ -28,8 +31,12 @@ /* { dg-begin-multiline-output "" } return (some_function () ~~~~~~~~~~~~~~~~ + | + s + some_other_function ()); - ^~~~~~~~~~~~~~~~~~~~~~~~ + ^ ~~~~~~~~~~~~~~~~~~~~~~ + | + t { dg-end-multiline-output "" } */ } @@ -39,6 +46,52 @@ /* { dg-begin-multiline-output "" } return param_s && param_t; + ~~~~~~~ ^~ ~~~~~~~ + | | + s t + { dg-end-multiline-output "" } */ +/* { dg-begin-multiline-output "" } + return param_s && param_t; ~~~~~~~~^~~~~~~~~~ { dg-end-multiline-output "" } */ } + +namespace ns_4 +{ + struct s foo; + namespace inner { + struct t bar; + }; +}; + +int test_4a (void) +{ + return ns_4::foo && ns_4::inner::bar; // { dg-error "no match for .operator" } + /* { dg-begin-multiline-output "" } + return ns_4::foo && ns_4::inner::bar; + ~~~~~~~~~ ^~ ~~~~~~~~~~~~~~~~ + | | + s t + { dg-end-multiline-output "" } */ + + /* { dg-begin-multiline-output "" } + return ns_4::foo && ns_4::inner::bar; + ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ + { dg-end-multiline-output "" } */ +} + +int test_4b (void) +{ + return ::ns_4::foo && ns_4::inner::bar; // { dg-error "no match for .operator" } + /* { dg-begin-multiline-output "" } + return ::ns_4::foo && ns_4::inner::bar; + ~~~~~~~~~~~ ^~ ~~~~~~~~~~~~~~~~ + | | + s t + { dg-end-multiline-output "" } */ + + /* { dg-begin-multiline-output "" } + return ::ns_4::foo && ns_4::inner::bar; + ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ + { dg-end-multiline-output "" } */ +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/diagnostic/param-type-mismatch-2.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/diagnostic/param-type-mismatch-2.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/diagnostic/param-type-mismatch-2.C 2018-11-13 05:13:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/diagnostic/param-type-mismatch-2.C 2018-12-29 02:41:34.000000000 +0000 @@ -204,7 +204,9 @@ return v10_a - v10_b; // { dg-error "no match for" } /* { dg-begin-multiline-output "" } return v10_a - v10_b; - ~~~~~~^~~~~~~ + ~~~~~ ^ ~~~~~ + | | + s10 s10 { dg-end-multiline-output "" } */ // { dg-message "candidate" "" { target *-*-* } s10_operator } /* { dg-begin-multiline-output "" } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin10.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin10.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin10.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin10.C 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,29 @@ +// PR c++/88482 +// { dg-do compile } + +extern "C" void __cxa_throw (void *, void *, void (*) (void *)); +extern "C" float __cxa_get_exception_ptr (void *); // { dg-error "declared incorrectly" } +extern "C" void *__cxa_begin_catch (void *); +extern "C" void __cxa_end_catch (); +extern "C" void __cxa_rethrow (); +extern "C" void *__cxa_allocate_exception (__SIZE_TYPE__); +extern "C" int __cxa_free_exception (void *); // { dg-error "declared incorrectly" } + +struct S { S (); S (const S &); ~S (); }; + +int +foo (int x) +{ + if (x > 27) + throw 19; + try + { + if (x > 15) + throw S (); + } + catch (S s) + { + throw; + } + return x + 3; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin11.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin11.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin11.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin11.C 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,29 @@ +// PR c++/88482 +// { dg-do compile } + +extern "C" void __cxa_throw (float, void *, void (*) (void *)); // { dg-error "declared incorrectly" } +extern "C" void *__cxa_get_exception_ptr (void *); +extern "C" void *__cxa_begin_catch (int); // { dg-error "declared incorrectly" } +extern "C" void __cxa_end_catch (long long); // { dg-error "declared incorrectly" } +extern "C" void __cxa_rethrow (int); // { dg-error "declared incorrectly" } +extern "C" void *__cxa_allocate_exception (void *); // { dg-error "declared incorrectly" } +extern "C" void __cxa_free_exception (void *); + +struct S { S (); S (const S &); ~S (); }; + +int +foo (int x) +{ + if (x > 27) + throw 19; + try + { + if (x > 15) + throw S (); + } + catch (S s) + { + throw; + } + return x + 3; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin5.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin5.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin5.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin5.C 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,29 @@ +// PR c++/88482 +// { dg-do compile } + +extern "C" void __cxa_throw (void *, void *, void (*) (void *)); +extern "C" void *__cxa_get_exception_ptr (void *); +extern "C" void *__cxa_begin_catch (void *); +extern "C" void __cxa_end_catch (); +extern "C" void __cxa_rethrow (); +extern "C" void *__cxa_allocate_exception (__SIZE_TYPE__); +extern "C" void __cxa_free_exception (void *); + +struct S { S (); S (const S &); ~S (); }; + +int +foo (int x) +{ + if (x > 27) + throw 19; + try + { + if (x > 15) + throw S (); + } + catch (S s) + { + throw; + } + return x + 3; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin6.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin6.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin6.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin6.C 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,29 @@ +// PR c++/88482 +// { dg-do compile } + +float __cxa_throw; // { dg-error "declared incorrectly" } +extern "C" void *__cxa_get_exception_ptr (void *); +float __cxa_begin_catch; // { dg-error "declared incorrectly" } +float __cxa_end_catch; // { dg-error "declared incorrectly" } +float __cxa_rethrow; // { dg-error "declared incorrectly" } +float __cxa_allocate_exception; // { dg-error "declared incorrectly" } +extern "C" void __cxa_free_exception (void *); + +struct S { S (); S (const S &); ~S (); }; + +int +foo (int x) +{ + if (x > 27) + throw 19; + try + { + if (x > 15) + throw S (); + } + catch (S s) + { + throw; + } + return x + 3; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin7.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin7.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin7.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin7.C 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,29 @@ +// PR c++/88482 +// { dg-do compile } + +extern "C" void __cxa_throw (void *, void *, void (*) (void *)); +int __cxa_get_exception_ptr; // { dg-error "declared incorrectly" } +extern "C" void *__cxa_begin_catch (void *); +extern "C" void __cxa_end_catch (); +extern "C" void __cxa_rethrow (); +extern "C" void *__cxa_allocate_exception (__SIZE_TYPE__); +int __cxa_free_exception; // { dg-error "declared incorrectly" } + +struct S { S (); S (const S &); ~S (); }; + +int +foo (int x) +{ + if (x > 27) + throw 19; + try + { + if (x > 15) + throw S (); + } + catch (S s) + { + throw; + } + return x + 3; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin8.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin8.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin8.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin8.C 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,23 @@ +// PR c++/88482 +// { dg-do compile } + +#include + +struct S { S (); S (const S &); ~S (); }; + +int +foo (int x) +{ + if (x > 27) + throw 19; + try + { + if (x > 15) + throw S (); + } + catch (S s) + { + throw; + } + return x + 3; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin9.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin9.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin9.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/eh/builtin9.C 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,29 @@ +// PR c++/88482 +// { dg-do compile } + +extern "C" int __cxa_throw (void *, void *, void (*) (void *)); // { dg-error "declared incorrectly" } +extern "C" void *__cxa_get_exception_ptr (void *); +extern "C" double __cxa_begin_catch (void *); // { dg-error "declared incorrectly" } +extern "C" long *__cxa_end_catch (); // { dg-error "declared incorrectly" } +extern "C" char __cxa_rethrow (); // { dg-error "declared incorrectly" } +extern "C" void __cxa_allocate_exception (__SIZE_TYPE__); // { dg-error "declared incorrectly" } +extern "C" void __cxa_free_exception (void *); + +struct S { S (); S (const S &); ~S (); }; + +int +foo (int x) +{ + if (x > 27) + throw 19; + try + { + if (x > 15) + throw S (); + } + catch (S s) + { + throw; + } + return x + 3; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/expr/static_cast8.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/expr/static_cast8.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/expr/static_cast8.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/expr/static_cast8.C 2018-12-18 00:25:21.000000000 +0000 @@ -0,0 +1,27 @@ +// PR c++/52321 +struct A1; // { dg-message "note: class type 'A1' is incomplete" } +struct A2; // { dg-message "note: class type 'A2' is incomplete" } +struct B1; // { dg-message "note: class type 'B1' is incomplete" } +struct B2; // { dg-message "note: class type 'B2' is incomplete" } + +struct C { }; +extern C* c; + +void pointers(C* c, A2* a2, B1* b1) +{ + (void) static_cast(c); // { dg-error "invalid static_cast" } + (void) static_cast(a2); // { dg-error "invalid static_cast" } + (void) static_cast(b1); // { dg-error "invalid static_cast" } +} + +struct D1; // { dg-message "note: class type 'D1' is incomplete" } +struct D2; // { dg-message "note: class type 'D2' is incomplete" } +struct E1; // { dg-message "note: class type 'E1' is incomplete" } +struct E2; // { dg-message "note: class type 'E2' is incomplete" } + +void references(C& c, D2& d2, E1& e1) +{ + (void) static_cast(c); // { dg-error "invalid static_cast" } + (void) static_cast(d2); // { dg-error "invalid static_cast" } + (void) static_cast(e1); // { dg-error "invalid static_cast" } +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/ext/vla1.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/ext/vla1.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/ext/vla1.C 2018-11-29 22:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/ext/vla1.C 2018-12-29 02:41:34.000000000 +0000 @@ -19,7 +19,7 @@ B::B (int i) { struct S { - int ar[1][i]; // { dg-error "9:size of array .ar. is not an integral" "" { target c++11 } } + int ar[1][i]; // { dg-error "15:size of array .ar. is not an integral" "" { target c++11 } } // { dg-error "array bound" "" { target c++98_only } .-1 } } s; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/gcov/gcov.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/gcov/gcov.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/gcov/gcov.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/gcov/gcov.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/gcov/pr88263.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/gcov/pr88263.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/gcov/pr88263.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/gcov/pr88263.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,30 @@ +// PR gcov-profile/88263 +// { dg-options "-fprofile-arcs -ftest-coverage -std=c++11" } +// { dg-do run { target native } } + +#include + +namespace log { + +class Logstream { +public: + +private: + /// The logging stream + static thread_local std::ostringstream os_; +}; + +} + +namespace log { + +thread_local std::ostringstream Logstream::os_; + +} + +int main() +{ + return 0; +} + +// { dg-final { run-gcov pr88263.C } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/goacc/goacc.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/goacc/goacc.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/goacc/goacc.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/goacc/goacc.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/goacc-gomp/goacc-gomp.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/goacc-gomp/goacc-gomp.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/goacc-gomp/goacc-gomp.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/goacc-gomp/goacc-gomp.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/gomp/gomp.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/gomp/gomp.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/gomp/gomp.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/gomp/gomp.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/gomp/pr88586.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/gomp/pr88586.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/gomp/pr88586.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/gomp/pr88586.C 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,77 @@ +// PR ipa/88586 +// { dg-do compile { target lto } } +// { dg-options "-fopenmp -flto" } + +extern "C" int omp_get_cancellation (); +extern "C" int omp_get_thread_num (); +extern "C" void abort (); + +struct A { A (); ~A (); A (const A &); static int cnt1, cnt2, cnt3; int a; }; +int A::cnt1; +int A::cnt2; +int A::cnt3; +A::A () : a (0) +{ + #pragma omp atomic + cnt1++; +} +A::A (const A &x) : a (x.a) +{ + #pragma omp atomic + cnt2++; +} +A::~A () +{ + #pragma omp atomic + cnt3++; +} +#pragma omp declare reduction (+: A: omp_out.a += omp_in.a) + +void +foo (int x) +{ + A a, b[2]; + int d = 1; + long int e[2] = { 1L, 1L }; + int c = 0; + #pragma omp parallel + { + if (x && omp_get_thread_num () == 0) + { + for (int i = 0; i < 10000000; ++i) + asm volatile (""); + c = 1; + #pragma omp cancel parallel + } + #pragma omp for reduction (task, +: a, b) reduction (task, *: d, e) + for (int i = 0; i < 64; i++) + #pragma omp task in_reduction (+: a, b) in_reduction (*: d, e) + { + a.a++; + b[0].a += 2; + b[1].a += 3; + d *= ((i & 7) == 0) + 1; + e[0] *= ((i & 7) == 3) + 1; + e[1] *= ((i & 3) == 2) + 1; + } + if (x && omp_get_cancellation ()) + abort (); + } + if (!c) + { + if (a.a != 64 || b[0].a != 128 || b[1].a != 192) + abort (); + if (d != 256 || e[0] != 256L || e[1] != 65536L) + abort (); + } +} + +int +main () +{ + int c1 = A::cnt1, c2 = A::cnt2, c3 = A::cnt3; + volatile int zero = 0; + foo (zero); + if (A::cnt1 + A::cnt2 - c1 - c2 != A::cnt3 - c3) + abort (); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/graphite/graphite.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/graphite/graphite.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/graphite/graphite.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/graphite/graphite.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/init/array43.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/init/array43.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/init/array43.C 2017-04-24 00:28:07.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/init/array43.C 2018-12-29 02:41:34.000000000 +0000 @@ -1,2 +1,2 @@ -int a[] = 0; // { dg-error "5:initializer fails to determine size" } +int a[] = 0; // { dg-error "11:initializer fails to determine size" } // { dg-error "11:array must be initialized" "" { target *-*-* } .-1 } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/init/initializer-string-too-long.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/init/initializer-string-too-long.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/init/initializer-string-too-long.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/init/initializer-string-too-long.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,9 @@ +// { dg-options "-fdiagnostics-show-caret" } + +/* Verify that we highlight *which* string is too long. */ + +char test[3][4] = { "ok", "too long", "ok" }; // { dg-error "initializer-string for array of chars is too long" } +/* { dg-begin-multiline-output "" } + char test[3][4] = { "ok", "too long", "ok" }; + ^~~~~~~~~~ + { dg-end-multiline-output "" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/init/new44.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/init/new44.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/init/new44.C 2018-03-18 03:39:16.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/init/new44.C 2018-12-29 02:41:34.000000000 +0000 @@ -1,4 +1,5 @@ // { dg-do compile } +// { dg-options "-ftrack-macro-expansion=0" } // Test for PR c++/67927 - array new expression with excessive number // of elements not diagnosed. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr43064-1.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr43064-1.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr43064-1.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr43064-1.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,37 @@ +/* Verify that errors about member initializers appear at the bad value, + rather than on the last token of the final initializer. */ + +// { dg-do compile } +// { dg-options "-fdiagnostics-show-caret" } + +class X { + X() : bad(42), // { dg-error "invalid conversion from 'int' to 'void\\*'" } + good(42) + { } + + void* bad; + int good; + + /* { dg-begin-multiline-output "" } + X() : bad(42), + ^~ + | + int + { dg-end-multiline-output "" } */ +}; + +class Y { + Y() : bad(-1), // { dg-error "invalid conversion from 'int' to 'void\\*'" } + good(42) + { } + + void* bad; + int good; + + /* { dg-begin-multiline-output "" } + Y() : bad(-1), + ^~ + | + int + { dg-end-multiline-output "" } */ +}; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr43064-2.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr43064-2.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr43064-2.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr43064-2.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,34 @@ +/* Verify that warnings about member initializers appear at the bad value, + rather than on the last token of the final initializer. */ + +// { dg-do compile } +// { dg-options "-Wconversion-null -fdiagnostics-show-caret" } + +#define NULL ((void *)0) // { dg-error "invalid conversion from 'void\\*' to 'int'" } +/* { dg-begin-multiline-output "" } + #define NULL ((void *)0) + ~^~~~~~~~~~ + | + void* + { dg-end-multiline-output "" } */ + +class A +{ +public: + A(); + bool m_bool; + int m_int; + void *m_ptr; +}; + +A::A() + : m_bool(NULL), + m_int(NULL), // { dg-message "in expansion of macro 'NULL'" } + m_ptr(NULL) +{ +} + +/* { dg-begin-multiline-output "" } + m_int(NULL), + ^~~~ + { dg-end-multiline-output "" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr43064-3.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr43064-3.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr43064-3.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr43064-3.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,32 @@ +/* Verify that warnings about member initializers appear at the bad value, + rather than on the last token of the final initializer. */ + +// { dg-do compile } +// { dg-options "-Wconversion-null -fdiagnostics-show-caret" } + +#define NULL __null // { dg-warning "converting to non-pointer type 'int' from NULL" } +/* { dg-begin-multiline-output "" } + #define NULL __null + ^~~~~~ + { dg-end-multiline-output "" } */ + +class A +{ +public: + A(); + bool m_bool; + int m_int; + void *m_ptr; +}; + +A::A() + : m_bool(NULL), + m_int(NULL), // { dg-message "in expansion of macro 'NULL'" } + m_ptr(NULL) +{ +} + +/* { dg-begin-multiline-output "" } + m_int(NULL), + ^~~~ + { dg-end-multiline-output "" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr88375-2.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr88375-2.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr88375-2.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr88375-2.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,41 @@ +// { dg-do compile { target c++11 } } +// { dg-options "-fdiagnostics-show-caret" } + +enum struct a : int { + one, two +}; + +constexpr int fn () { return 42; } + +struct foo { + int e1, e2; + a e3; +} arr[] = { + { 3, a::two }, // { dg-error "11: cannot convert 'a' to 'int' in initialization" } + /* { dg-begin-multiline-output "" } + { 3, a::two }, + ~~~^~~ + | + a + { dg-end-multiline-output "" } */ + { 6, 7, fn() }, // { dg-error "13: cannot convert 'int' to 'a' in initialization" } + /* { dg-begin-multiline-output "" } + { 6, 7, fn() }, + ~~^~ + | + int + { dg-end-multiline-output "" } */ +}; + +struct bar { + const char *f1; + int f2; +} arr_2[] = { + { 42 }, // { dg-error "5: invalid conversion from 'int' to 'const char\\*'" } + /* { dg-begin-multiline-output "" } + { 42 }, + ^~ + | + int + { dg-end-multiline-output "" } */ +}; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr88375.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr88375.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr88375.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/init/pr88375.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,26 @@ +// { dg-do compile { target c++11 } } + +enum struct a : int { + one, two +}; + +constexpr int fn () { return 42; } + +struct foo { + int e1, e2; + a e3; +} arr[] = { + { 1, 2, a::one }, + { 3, a::two }, // { dg-error "11: cannot convert 'a' to 'int' in initialization" } + { 6, 7, 8 }, // { dg-error "11: cannot convert 'int' to 'a' in initialization" } + { 6, 7, fn() }, // { dg-error "13: cannot convert 'int' to 'a' in initialization" } +}; + +struct bar { + const char *f1; + int f2; +} arr_2[] = { + { "hello world", 42 }, + { 42 }, // { dg-error "5: invalid conversion from 'int' to 'const char\\*'" } + { "hello", "world" }, // { dg-error "14: invalid conversion from 'const char\\*' to 'int'" } +}; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/init/strlen.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/init/strlen.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/init/strlen.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/init/strlen.C 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,43 @@ +// Test to verify that the strlen() optimization doesn't make assumptions +// about the static type of the object pointed to by its argument. See +// the following thread for background: +// https://gcc.gnu.org/ml/gcc-patches/2018-08/msg00260.html + +// { dg-do run } +// { dg-options "-O2 -Wall -fdump-tree-optimized" } + +typedef __SIZE_TYPE__ size_t; + +void *operator new[] (size_t, void *p) { return p; } + +struct S { int x; char a[1]; char b[64]; }; + +__attribute__ ((noipa)) void +init (char *s) +{ + *s++ = '1'; + *s++ = '\0'; +} + +__attribute__ ((noipa)) void +test_dynamic_type (S *p) +{ + // The placement new call below isn't strictly valid because it + // creates an object that is larger than the space of the p->a + // subobject in which it is created. However, the corresponding + // GIMPLE considers it valid and there's apparently no way to + // distinguish invalid cases from ones like it that might be valid. + // If/when GIMPLE changes to make this possible this test can be + // removed. + char *q = new (p->a) char [16]; + + init (q); + + if (0 == __builtin_strlen (q)) + __builtin_abort(); +} + +int main () +{ + test_dynamic_type (new S); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/ipa/devirt-30.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/ipa/devirt-30.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/ipa/devirt-30.C 2015-05-31 17:55:56.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/ipa/devirt-30.C 2018-12-29 02:41:34.000000000 +0000 @@ -1,4 +1,5 @@ // PR c++/58678 +// { dg-do compile } // { dg-options "-O3 -fdump-ipa-devirt" } // We shouldn't speculatively devirtualize to ~B because B is an abstract diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/ipa/devirt-36.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/ipa/devirt-36.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/ipa/devirt-36.C 2015-05-31 17:55:56.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/ipa/devirt-36.C 2019-01-02 08:05:16.000000000 +0000 @@ -1,3 +1,4 @@ +/* { dg-do compile } */ /* { dg-options "-O2 -fdump-ipa-devirt-details -fdump-tree-fre1-details" } */ struct A {virtual int t(void) {return 1;}}; struct B:A {B(); virtual int t(void) {return 2;}}; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/ipa/devirt-53.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/ipa/devirt-53.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/ipa/devirt-53.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/ipa/devirt-53.C 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,58 @@ +// { dg-do assemble } +// { dg-options "-O2 -fdump-tree-fre1-details -std=c++11 -Wno-return-type" } +typedef unsigned a; +enum b : a; +class c { +public: + virtual a d(); +}; +using e = int; +class f; +class h { +public: + f *operator->(); +}; +class i { +public: + ~i() { j->d(); } + c *j; +}; +template class k : i { +public: + k(g *); +}; +class l; +class m { + virtual b n(const e &, l **); +}; +class o { +protected: + h p; +}; +class G { + virtual b r(const e &, l **); +}; +class l : G {}; +class q { +public: + q(l *); + template void s(t); +}; +class f : c { + a d(); + virtual b r(e); + +public: + class L : public l, o, m { + b r(const e &y, l **) { p->r(y); } + b n(const e &, l **) { k a = this; } + }; +}; +c u; +void fn1() { + c v; + k b(&u); + q(new f::L).s(v); +} +/* Check that f::d appears as possible target. */ +/* { dg-final { scan-tree-dump "f::d" "fre1" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-1_0.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-1_0.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-1_0.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-1_0.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,4 @@ +/* { dg-lto-do run } */ +/* { dg-lto-options { "-O3 -fno-early-inlining -fno-inline -fdump-ipa-cp -fdump-tree-optimized -flto" } } */ +#include "../ipa/devirt-1.C" +/* { dg-final { scan-wpa-ipa-dump "Discovered a virtual call to a known target.*foo" "cp" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-13_0.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-13_0.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-13_0.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-13_0.C 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,5 @@ +/* { dg-lto-do run } */ +/* Call to foo should be devirtualized because there are no derived types of A. */ +/* { dg-lto-options "-O2 -flto" } */ +#include "../ipa/devirt-13.C" +/* Ideally we should also { scan-tree-dump-times "OBJ_TYPE_REF" 0 "ssa"}. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-14_0.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-14_0.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-14_0.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-14_0.C 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,4 @@ +/* { dg-lto-do run } */ +/* { dg-lto-options "-O2 -fdump-tree-ssa" } */ +#include "../ipa/devirt-14.C" +/* Ideally we should also { scan-tree-dump-not "A.*foo" "ssa"} } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-19_0.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-19_0.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-19_0.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-19_0.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,5 @@ +/* { dg-lto-do link } */ +/* { dg-lto-options { "-O2 -fdump-ipa-cp -Wno-return-type -flto -r -nostdlib" } } */ +/* { dg-extra-ld-options "-flinker-output=nolto-rel" } */ +#include "../ipa/devirt-19.C" +/* { dg-final { scan-wpa-ipa-dump-times "Discovered a virtual call to a known target" 1 "cp" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-2_0.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-2_0.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-2_0.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-2_0.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,4 @@ +/* { dg-lto-do run } */ +/* { dg-lto-options { "-O3 -fno-early-inlining -fno-inline -fdump-ipa-cp -fdump-tree-optimized -flto" } } */ +#include "../ipa/devirt-2.C" +/* { dg-final { scan-wpa-ipa-dump "Discovered a virtual call to a known target.*foo" "cp" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-22_0.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-22_0.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-22_0.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-22_0.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,5 @@ +/* { dg-lto-do link } */ +/* { dg-lto-options { "-O3 -fno-early-inlining -fno-ipa-sra -fdump-ipa-cp -flto -r -nostdlib" } } */ +/* { dg-extra-ld-options "-flinker-output=nolto-rel" } */ +#include "../ipa/devirt-22.C" +/* { dg-final { scan-wpa-ipa-dump-times "Discovered a virtual call to a known target" 2 "cp" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-23_0.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-23_0.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-23_0.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-23_0.C 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,4 @@ +/* { dg-lto-do run } */ +/* { dg-lto-options { "-O3 -fno-early-inlining -fno-ipa-sra -fdump-ipa-cp -flto -fno-devirtualize-speculatively" } } */ +#include "../ipa/devirt-23.C" +/* { dg-final { scan-wpa-ipa-dump "Discovered a virtual call to" "cp" { xfail *-*-* } } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-30_0.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-30_0.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-30_0.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-30_0.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,5 @@ +/* { dg-lto-do link } */ +/* { dg-lto-options { "-O3 -fdump-ipa-devirt -flto -r -nostdlib" } } */ +/* { dg-extra-ld-options "-flinker-output=nolto-rel" } */ +#include "../ipa/devirt-30.C" +// { dg-final { scan-wpa-ipa-dump-not "Speculatively devirtualizing" "devirt" } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-3_0.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-3_0.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-3_0.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-3_0.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,4 @@ +/* { dg-lto-do run } */ +/* { dg-lto-options { "-O3 -fno-early-inlining -fno-inline -fdump-ipa-cp -fdump-tree-optimized -flto" } } */ +#include "../ipa/devirt-3.C" +/* { dg-final { scan-wpa-ipa-dump "Discovered a virtual call to a known target.*foo" "cp" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-34_0.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-34_0.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-34_0.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-34_0.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,6 @@ +/* { dg-lto-do link } */ +/* { dg-lto-options { "-O2 -fdump-ipa-devirt -flto -r -nostdlib" } } */ +/* { dg-extra-ld-options "-flinker-output=nolto-rel" } */ +#include "../ipa/devirt-34.C" +/* { dg-final { scan-wpa-ipa-dump "Speculative targets" "devirt" } } */ +/* { dg-final { scan-wpa-ipa-dump "1 speculatively devirtualized" "devirt" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-4_0.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-4_0.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-4_0.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-4_0.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,4 @@ +/* { dg-lto-do run } */ +/* { dg-lto-options { "-O3 -fno-early-inlining -fno-inline -fdump-ipa-cp -fdump-tree-optimized -flto" } } */ +#include "../ipa/devirt-4.C" +/* { dg-final { scan-wpa-ipa-dump "Discovered a virtual call to a known target.*foo" "cp" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-5_0.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-5_0.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-5_0.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-5_0.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,4 @@ +/* { dg-lto-do run } */ +/* { dg-lto-options { "-O3 -fno-early-inlining -fno-inline -fdump-ipa-cp -fdump-tree-optimized -flto" } } */ +#include "../ipa/devirt-5.C" +/* { dg-final { scan-wpa-ipa-dump "Discovered a virtual call to a known target.*foo" "cp" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-6_0.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-6_0.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-6_0.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/devirt-6_0.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,3 @@ +/* { dg-lto-do run } */ +/* { dg-lto-options { "-O3 -flto" } } */ +#include "../ipa/devirt-6.C" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/lto.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/lto.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/lto.exp 2018-06-08 18:00:49.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/lto/lto.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/opt/pr88478.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/opt/pr88478.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/opt/pr88478.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/opt/pr88478.C 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,17 @@ +// PR rtl-optimization/88478 +// { dg-do compile } +// { dg-options "-O2" } + +struct A { + bool b; + int s; + template + A (T, U) {} +}; +enum F {} f; + +A +foo () +{ + return A (false, f); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/other/fold1.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/other/fold1.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/other/fold1.C 2018-11-29 22:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/other/fold1.C 2018-12-29 02:41:34.000000000 +0000 @@ -4,5 +4,5 @@ struct A { static const int i = i; // { dg-error "not declared" } - int x[i]; // { dg-error "9:size of array .x. is not an integral constant-expression" } + int x[i]; // { dg-error "11:size of array .x. is not an integral constant-expression" } }; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/parse/crash36.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/parse/crash36.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/parse/crash36.C 2018-11-29 22:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/parse/crash36.C 2018-12-29 02:41:34.000000000 +0000 @@ -9,4 +9,4 @@ static const int i = sizeof (++t); // { dg-error "was not declared in this scope" } }; -int x[A ::i]; // { dg-error "5:size of array .x. is not an integral constant-expression" } +int x[A ::i]; // { dg-error "16:size of array .x. is not an integral constant-expression" } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/parse/crash55.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/parse/crash55.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/parse/crash55.C 2014-12-14 06:46:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/parse/crash55.C 2018-12-16 02:30:47.000000000 +0000 @@ -1,8 +1,8 @@ // PR c++/42038 -extern int __cxa_begin_catch; +extern int __cxa_begin_catch; // { dg-error "declared incorrectly" } void f(void) { - try { } catch (int) { } // { dg-error "cannot be used" } + try { } catch (int) { } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/parse/pr88180.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/parse/pr88180.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/parse/pr88180.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/parse/pr88180.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,12 @@ +// PR c++/88180 +// { dg-do compile } +// { dg-options "--param ggc-min-heapsize=1024" } + +struct d { + static d *b; +} * d::b(__builtin_offsetof(struct { // { dg-error "types may not be defined" } + int i; + struct a { // { dg-error "types may not be defined" } + int c() { return .1f; } + }; +}, i)); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/pch/pch.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/pch/pch.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/pch/pch.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/pch/pch.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/plugin/diagnostic-test-expressions-1.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/plugin/diagnostic-test-expressions-1.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/plugin/diagnostic-test-expressions-1.C 2018-01-14 10:48:35.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/plugin/diagnostic-test-expressions-1.C 2018-12-29 02:41:34.000000000 +0000 @@ -63,6 +63,13 @@ __emit_expression_range (0, 0); ^ { dg-end-multiline-output "" } */ + + __emit_expression_range (0, -273); /* { dg-warning "range" } */ +/* { dg-begin-multiline-output "" } + __emit_expression_range (0, -273); + ^~~~ + { dg-end-multiline-output "" } */ + } void test_character_constants (void) @@ -111,6 +118,13 @@ __emit_expression_range (0, 6.022140857e23l ); ^~~~~~~~~~~~~~~ { dg-end-multiline-output "" } */ + + __emit_expression_range (0, -273.15f); /* { dg-warning "range" } */ +/* { dg-begin-multiline-output "" } + __emit_expression_range (0, -273.15f); + ^~~~~~~~ + { dg-end-multiline-output "" } */ + } enum test_enum { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/plugin/plugin.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/plugin/plugin.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/plugin/plugin.exp 2018-10-15 11:36:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/plugin/plugin.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/pr85039-1.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/pr85039-1.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/pr85039-1.C 2018-04-23 08:51:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/pr85039-1.C 2018-12-29 02:41:34.000000000 +0000 @@ -5,9 +5,9 @@ __builtin_offsetof(struct { // { dg-error "types may not be defined" } int i; short b { - __builtin_offsetof(struct { // { dg-error "types may not be defined" } + __builtin_offsetof(struct { int j; - struct c { // { dg-error "types may not be defined" } + struct c { void d() { } }; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/pr86823.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/pr86823.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/pr86823.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/pr86823.C 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,15 @@ +// { dg-do compile } + +struct X { +private: + template + struct Y { + int data; + }; +public: + int value; +}; + +int main() { + typename X::Y a; // { dg-error "private" } +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/predict-2.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/predict-2.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/predict-2.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/predict-2.C 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-profile_estimate -std=c++11" } */ + +int a, b, c; + +void +bar() +{ + if (a == 123) + [[likely]] c = 5; + else + c = 5; +} + +/* { dg-final { scan-tree-dump "first match heuristics: 90.00%" "profile_estimate"} } */ +/* { dg-final { scan-tree-dump "hot label heuristics of edge .*->.*: 90.00%" "profile_estimate"} } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/predict-3.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/predict-3.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/predict-3.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/predict-3.C 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-profile_estimate -std=c++11" } */ + +int a, b, c; + +void +bar () +{ + switch (a) + { + case 3: __builtin_puts("a"); break; + case 42: __builtin_puts("e"); break; + [[likely]] case 333: __builtin_puts("i"); break; + } +} + +/* { dg-final { scan-tree-dump "default.*3.33%.*case 3.*3.33%.*case 42.*3.33%.*case 333.*90.00%" "profile_estimate"} } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/predict-4.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/predict-4.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/predict-4.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/predict-4.C 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-profile_estimate -std=c++11" } */ + +int a, b, c; + +void +bar () +{ + switch (a) + { + case 3: __builtin_puts("a"); break; + [[unlikely]] case 42: __builtin_puts("e"); break; + [[likely]] case 333: __builtin_puts("i"); break; + } +} + +/* { dg-final { scan-tree-dump "default.*4.98%.*case 3.*4.98%.*case 42.*0.05%.*case 333.*90.00%" "profile_estimate"} } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/README gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/README --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/README 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/README 2019-01-02 08:05:16.000000000 +0000 @@ -33,7 +33,7 @@ for an example. -Copyright (C) 2001-2018 Free Software Foundation, Inc. +Copyright (C) 2001-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/simulate-thread/simulate-thread.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/simulate-thread/simulate-thread.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/simulate-thread/simulate-thread.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/simulate-thread/simulate-thread.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/special/ecos.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/special/ecos.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/special/ecos.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/special/ecos.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/template/defarg6.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/template/defarg6.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/template/defarg6.C 2014-12-14 06:47:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/template/defarg6.C 2018-12-29 02:41:34.000000000 +0000 @@ -14,14 +14,12 @@ template struct D { - static void func (X &ref = a); // not an error at this point + static void func (X &ref = a); // { dg-error "cannot bind non-const lvalue reference" } }; void Foo (X & obj) { D::func (obj); - D::func (); // { dg-error "" } + D::func (); // { dg-message "when instantiating default argument for call" } } - -// { dg-prune-output "passing argument" } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/template/pr54858.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/template/pr54858.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/template/pr54858.C 2014-12-14 06:47:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/template/pr54858.C 2018-12-29 02:41:34.000000000 +0000 @@ -5,17 +5,17 @@ template struct B {}; template struct C { - A<0> c0; B, &C::c0> d0; // { dg-error "could not convert template argument" } - A<0> c1; B, &C::c1> d1; // { dg-error "could not convert template argument" } - A<0> c2; B, &C::c2> d2; // { dg-error "could not convert template argument" } - A<0> c3; B, &C::c3> d3; // { dg-error "could not convert template argument" } - A<0> c4; B, &C::c4> d4; // { dg-error "could not convert template argument" } - A<0> c5; B, &C::c5> d5; // { dg-error "could not convert template argument" } - A<0> c6; B, &C::c6> d6; // { dg-error "could not convert template argument" } - A<0> c7; B, &C::c7> d7; // { dg-error "could not convert template argument" } - A<0> c8; B, &C::c8> d8; // { dg-error "could not convert template argument" } - A<0> c9; B, &C::c9> d9; // { dg-error "could not convert template argument" } - A<0> ca; B, &C::ca> da; // { dg-error "could not convert template argument" } - A<0> cb; B, &C::cb> db; // { dg-error "could not convert template argument" } + A<0> c0; B, &C::c0> d0; // { dg-error "could not convert" } + A<0> c1; B, &C::c1> d1; // { dg-error "could not convert" } + A<0> c2; B, &C::c2> d2; // { dg-error "could not convert" } + A<0> c3; B, &C::c3> d3; // { dg-error "could not convert" } + A<0> c4; B, &C::c4> d4; // { dg-error "could not convert" } + A<0> c5; B, &C::c5> d5; // { dg-error "could not convert" } + A<0> c6; B, &C::c6> d6; // { dg-error "could not convert" } + A<0> c7; B, &C::c7> d7; // { dg-error "could not convert" } + A<0> c8; B, &C::c8> d8; // { dg-error "could not convert" } + A<0> c9; B, &C::c9> d9; // { dg-error "could not convert" } + A<0> ca; B, &C::ca> da; // { dg-error "could not convert" } + A<0> cb; B, &C::cb> db; // { dg-error "could not convert" } }; C e; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/template/spec32.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/template/spec32.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/template/spec32.C 2014-12-14 06:47:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/template/spec32.C 2018-12-16 02:31:00.000000000 +0000 @@ -2,5 +2,5 @@ struct A { - template class B> struct B<0>; // { dg-error "name of class shadows" } + template class B> struct B<0>; // { dg-error "declaration does not declare anything" } }; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/template/ttp22.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/template/ttp22.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/template/ttp22.C 2014-12-14 06:47:28.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/template/ttp22.C 2018-12-16 02:31:00.000000000 +0000 @@ -2,7 +2,7 @@ // { dg-do compile } template class A> -class A<0>; // { dg-error "shadows template template parameter" } +class A<0>; // { dg-error "declaration does not declare anything" } template class B> class B<0> {}; // { dg-error "shadows template template parameter" } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/tls/tls.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/tls/tls.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/tls/tls.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/tls/tls.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/tm/tm.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/tm/tm.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/tm/tm.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/tm/tm.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/torture/stackalign/stackalign.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/torture/stackalign/stackalign.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/torture/stackalign/stackalign.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/torture/stackalign/stackalign.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/tree-prof/devirt.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/tree-prof/devirt.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/tree-prof/devirt.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/tree-prof/devirt.C 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,123 @@ +/* { dg-options "-O3 -fdump-tree-dom3-details" } */ +struct nsISupports +{ + virtual int QueryInterface (const int &aIID, void **aInstancePtr) = 0; + virtual __attribute__((noinline, noclone)) unsigned AddRef (void) = 0; + virtual unsigned Release (void) = 0; +}; + +struct nsIObserver : public nsISupports +{ + virtual int Observe (nsISupports * aSubject, const char *aTopic, const unsigned short *aData) = 0; +}; + +struct nsISupportsWeakReference : public nsISupports +{ + virtual int GetWeakReference (void **_retval) = 0; +}; + +struct nsSupportsWeakReference : public nsISupportsWeakReference +{ + nsSupportsWeakReference () : mProxy (0) {} + virtual int GetWeakReference (void **_retval) override { return 0; } + ~nsSupportsWeakReference () {} + void NoticeProxyDestruction () { mProxy = nullptr; } + void *mProxy; + void ClearWeakReferences (); + bool HasWeakReferences () const { return !!mProxy; } +}; + +struct mozIPersonalDictionary : public nsISupports +{ + virtual int Load (void) = 0; + virtual int Save (void) = 0; + virtual int GetWordList (void **aWordList) = 0; + virtual int Check (const int &word, bool * _retval) = 0; + virtual int AddWord (const int &word) = 0; + virtual int RemoveWord (const int &word) = 0; + virtual int IgnoreWord (const int &word) = 0; + virtual int EndSession (void) = 0; +}; + +struct mozPersonalDictionary final + : public mozIPersonalDictionary, public nsIObserver, public nsSupportsWeakReference +{ + virtual int QueryInterface (const int &aIID, void **aInstancePtr) override; + virtual __attribute__((noinline, noclone)) unsigned AddRef (void) override; + virtual unsigned Release (void) override; + unsigned long mRefCnt; + virtual int Load (void) override { return 0; } + virtual int Save (void) override { return 0; } + virtual int GetWordList (void **aWordList) override { return 0; } + virtual int Check (const int &word, bool * _retval) override { return 0; } + virtual int AddWord (const int &word) override { return 0; } + virtual int RemoveWord (const int &word) override { return 0; } + virtual int IgnoreWord (const int &word) override { return 0; } + virtual int EndSession (void) override { return 0; } + virtual int Observe (nsISupports * aSubject, const char *aTopic, const unsigned short *aData) override { return 0; } + mozPersonalDictionary () : mRefCnt(0) {} + int Init () { return 0; } + virtual ~mozPersonalDictionary () {} + bool mIsLoaded; + bool mSavePending; + void *mFile; + char mMonitor[96]; + char mMonitorSave[96]; + char mDictionaryTable[32]; + char mIgnoreTable[32]; +}; + +unsigned +mozPersonalDictionary::AddRef (void) +{ + unsigned count = ++mRefCnt; + return count; +} + +unsigned +mozPersonalDictionary::Release (void) +{ + unsigned count = --mRefCnt; + if (count == 0) + { + mRefCnt = 1; + delete (this); + return 0; + } + return count; +} + +int +mozPersonalDictionary::QueryInterface (const int &aIID, void **aInstancePtr) +{ + nsISupports *foundInterface; + if (aIID == 122) + foundInterface = static_cast (this); + else + foundInterface = static_cast (this); + int status; + foundInterface->AddRef (); + *aInstancePtr = foundInterface; + return status; +} + +__attribute__((noipa)) int +foo (nsISupports *p, const int &i) +{ + void *q; + return p->QueryInterface (i, &q); +} + +int +main () +{ + mozPersonalDictionary m; + int j = 123; + for (int i = 0; i < 100000; i++) + foo (static_cast (&m), j); + if (m.mRefCnt != 100000) + __builtin_abort (); +} + +/* { dg-final-use-not-autofdo { scan-tree-dump-times "folding virtual function call to virtual unsigned int mozPersonalDictionary::_ZThn16" 1 "dom3" } } */ +/* { dg-final-use-not-autofdo { scan-tree-dump-times "folding virtual function call to virtual unsigned int mozPersonalDictionary::AddRef" 1 "dom3" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/tree-prof/tree-prof.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/tree-prof/tree-prof.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/tree-prof/tree-prof.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/tree-prof/tree-prof.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/tree-ssa/pr82294.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/tree-ssa/pr82294.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/tree-ssa/pr82294.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/tree-ssa/pr82294.C 2018-12-16 02:30:51.000000000 +0000 @@ -0,0 +1,13 @@ +// PR c++/82294 +// { dg-do compile { target c++11 } } +// { dg-options "-O2 -fdump-tree-gimple" } + +// Verify we don't "optimize" the ctor as copying a 1KB .rodata +// object into the variable. It is better to initialize it through +// a loop. +// { dg-final { scan-tree-dump-not "this->arr = " "gimple" } } + +struct S { int x; explicit constexpr S (); }; +constexpr S::S () : x{7} {} +struct T { S arr[256]; explicit T (); }; +T::T () {} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/tree-ssa/pr87436.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/tree-ssa/pr87436.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/tree-ssa/pr87436.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/tree-ssa/pr87436.C 2018-12-16 02:30:51.000000000 +0000 @@ -0,0 +1,25 @@ +// PR c++/87436 +// { dg-do compile { target { c++11 && size32plus } } } +// { dg-options "-O2 -fdump-tree-gimple" } + +// Verify we don't "optimize" the ctor as copying a 384MB .rodata +// object into the variable. It is better to initialize it through +// two nested loops. +// { dg-final { scan-tree-dump-not "this->arr = " "gimple" } } + +struct S { + int a = -1; + short b = 3; + int x = 0; + int y = 1; + int z = 42; + float f = 0.123f; +}; + +struct T { S arr[4096][4096]; }; + +T * +foo () +{ + return new T; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/tsan/tsan.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/tsan/tsan.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/tsan/tsan.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/tsan/tsan.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/ubsan/align-2.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/ubsan/align-2.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/ubsan/align-2.C 2014-12-14 14:58:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/ubsan/align-2.C 2018-12-29 02:41:34.000000000 +0000 @@ -1,6 +1,6 @@ // Limit this to known non-strict alignment targets. // { dg-do run { target { i?86-*-linux* x86_64-*-linux* } } } -// { dg-options "-fsanitize=alignment -Wall -Wno-unused-variable -std=c++11" } +// { dg-options "-fsanitize=alignment -Wall -Wno-unused-variable -Wno-address-of-packed-member -std=c++11" } typedef const long int L; struct S { long int l; char buf[1 + sizeof (int) + sizeof (L)]; } s; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/ubsan/ubsan.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/ubsan/ubsan.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/ubsan/ubsan.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/ubsan/ubsan.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/vect/pr84362.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/vect/pr84362.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/vect/pr84362.cc 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/vect/pr84362.cc 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,28 @@ +// { dg-do compile } +// { dg-require-effective-target c++11 } + +constexpr unsigned int capacity = 1000; + +struct vec +{ + int values[capacity]; + unsigned int _size = 0; + unsigned int size() const noexcept { return _size; } + void push(int x) + { + values[size()] = x; + ++_size; + } +}; + +int main() +{ + vec v; + for(unsigned int i{0}; i != capacity; ++i) + { + v.push(i); + } + asm volatile("" : : "g"(&v) : "memory"); +} + +// { dg-final { scan-tree-dump "vectorized 1 loops in function" "vect" { target vect_int } } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/vect/vect.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/vect/vect.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/vect/vect.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/vect/vect.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/wrappers/Wparentheses.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/wrappers/Wparentheses.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.dg/wrappers/Wparentheses.C 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.dg/wrappers/Wparentheses.C 2018-12-29 02:41:34.000000000 +0000 @@ -0,0 +1,10 @@ +// { dg-options "-Wparentheses" } + +extern char read_skip_spaces (); + +void test () +{ + char c; + while ((c = read_skip_spaces ()) && c != ']') + ; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/coarray/caf.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/coarray/caf.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/coarray/caf.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/coarray/caf.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/debug/debug.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/debug/debug.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/debug/debug.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/debug/debug.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/dg.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/g77/README gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/g77/README --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/g77/README 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/g77/README 2019-01-02 08:05:16.000000000 +0000 @@ -201,7 +201,7 @@ select_no_compile.f Y -Copyright (C) 2004-2018 Free Software Foundation, Inc. +Copyright (C) 2004-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/classify-kernels.f95 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/classify-kernels.f95 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/classify-kernels.f95 2017-05-12 16:25:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/classify-kernels.f95 2018-12-16 02:30:47.000000000 +0000 @@ -2,6 +2,7 @@ ! kernels. ! { dg-additional-options "-O2" } +! { dg-additional-options "-fopt-info-optimized-omp" } ! { dg-additional-options "-fdump-tree-ompexp" } ! { dg-additional-options "-fdump-tree-parloops1-all" } ! { dg-additional-options "-fdump-tree-oaccdevlow" } @@ -15,7 +16,7 @@ call setup(a, b) !$acc kernels copyin (a(0:n-1), b(0:n-1)) copyout (c(0:n-1)) - do i = 0, n - 1 + do i = 0, n - 1 ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } c(i) = a(i) + b(i) end do !$acc end kernels diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/classify-kernels-unparallelized.f95 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/classify-kernels-unparallelized.f95 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/classify-kernels-unparallelized.f95 2017-05-12 16:25:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/classify-kernels-unparallelized.f95 2018-12-16 02:30:47.000000000 +0000 @@ -2,6 +2,7 @@ ! OpenACC kernels. ! { dg-additional-options "-O2" } +! { dg-additional-options "-fopt-info-optimized-omp" } ! { dg-additional-options "-fdump-tree-ompexp" } ! { dg-additional-options "-fdump-tree-parloops1-all" } ! { dg-additional-options "-fdump-tree-oaccdevlow" } @@ -19,7 +20,7 @@ call setup(a, b) !$acc kernels copyin (a(0:n-1), b(0:n-1)) copyout (c(0:n-1)) - do i = 0, n - 1 + do i = 0, n - 1 ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } c(i) = a(f (i)) + b(f (i)) end do !$acc end kernels diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/classify-parallel.f95 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/classify-parallel.f95 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/classify-parallel.f95 2017-05-12 16:25:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/classify-parallel.f95 2018-12-16 02:30:47.000000000 +0000 @@ -2,6 +2,7 @@ ! parallel. ! { dg-additional-options "-O2" } +! { dg-additional-options "-fopt-info-optimized-omp" } ! { dg-additional-options "-fdump-tree-ompexp" } ! { dg-additional-options "-fdump-tree-oaccdevlow" } @@ -13,7 +14,7 @@ call setup(a, b) - !$acc parallel loop copyin (a(0:n-1), b(0:n-1)) copyout (c(0:n-1)) + !$acc parallel loop copyin (a(0:n-1), b(0:n-1)) copyout (c(0:n-1)) ! { dg-message "optimized: assigned OpenACC gang vector loop parallelism" } do i = 0, n - 1 c(i) = a(i) + b(i) end do diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/classify-routine.f95 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/classify-routine.f95 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/classify-routine.f95 2017-05-12 16:25:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/classify-routine.f95 2018-12-16 02:30:47.000000000 +0000 @@ -2,6 +2,7 @@ ! routine. ! { dg-additional-options "-O2" } +! { dg-additional-options "-fopt-info-optimized-omp" } ! { dg-additional-options "-fdump-tree-ompexp" } ! { dg-additional-options "-fdump-tree-oaccdevlow" } @@ -13,7 +14,7 @@ call setup(a, b) - !$acc loop + !$acc loop ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } do i = 0, n - 1 c(i) = a(i) + b(i) end do diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/goacc.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/goacc.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/goacc.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/goacc.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/kernels-loop-inner.f95 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/kernels-loop-inner.f95 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/kernels-loop-inner.f95 2016-02-24 11:55:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/kernels-loop-inner.f95 2018-12-16 02:30:47.000000000 +0000 @@ -1,4 +1,5 @@ ! { dg-additional-options "-O2" } +! { dg-additional-options "-fopt-info-optimized-omp" } program main implicit none @@ -6,7 +7,7 @@ integer :: a(100,100), b(100,100) integer :: i, j, d - !$acc kernels + !$acc kernels ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } do i=1,100 do j=1,100 a(i,j) = 1 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/note-parallelism.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/note-parallelism.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/note-parallelism.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/goacc/note-parallelism.f90 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,131 @@ +! Test the output of "-fopt-info-optimized-omp". + +! { dg-additional-options "-fopt-info-optimized-omp" } + +! See also "../../c-c++-common/goacc/note-parallelism.c". + +program test + implicit none + + integer x, y, z + + !$acc parallel + do x = 1, 10 + end do + !$acc end parallel + + !$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do x = 1, 10 + end do + + !$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelis" } + do x = 1, 10 + end do + + !$acc parallel loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do x = 1, 10 + end do + + !$acc parallel loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do x = 1, 10 + end do + + !$acc parallel loop gang vector ! { dg-message "optimized: assigned OpenACC gang vector loop parallelism" } + do x = 1, 10 + end do + + !$acc parallel loop gang worker ! { dg-message "optimized: assigned OpenACC gang worker loop parallelism" } + do x = 1, 10 + end do + + !$acc parallel loop worker vector ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } + do x = 1, 10 + end do + + !$acc parallel loop gang worker vector ! { dg-message "optimized: assigned OpenACC gang worker vector loop parallelism" } + do x = 1, 10 + end do + + !$acc parallel loop gang ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do x = 1, 10 + !$acc loop worker ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do y = 1, 10 + !$acc loop vector ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do z = 1, 10 + end do + end do + end do + + !$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang vector loop parallelism" } + do x = 1, 10 + end do + + !$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang worker loop parallelism" } + do x = 1, 10 + !$acc loop ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do y = 1, 10 + end do + end do + + !$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang loop parallelism" } + do x = 1, 10 + !$acc loop ! { dg-message "optimized: assigned OpenACC worker loop parallelism" } + do y = 1, 10 + !$acc loop ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do z = 1, 10 + end do + end do + end do + + !$acc parallel + do x = 1, 10 + !$acc loop ! { dg-message "optimized: assigned OpenACC gang worker loop parallelism" } + do y = 1, 10 + !$acc loop ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do z = 1, 10 + end do + end do + end do + !$acc end parallel + + !$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do x = 1, 10 + !$acc loop ! { dg-message "optimized: assigned OpenACC gang worker loop parallelism" } + do y = 1, 10 + !$acc loop ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do z = 1, 10 + end do + end do + end do + + !$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang worker loop parallelism" } + do x = 1, 10 + !$acc loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do y = 1, 10 + !$acc loop ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do z = 1, 10 + end do + end do + end do + + !$acc parallel loop ! { dg-message "optimized: assigned OpenACC gang worker loop parallelism" } + do x = 1, 10 + !$acc loop ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } + do y = 1, 10 + !$acc loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do z = 1, 10 + end do + end do + end do + + !$acc parallel loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do x = 1, 10 + !$acc loop ! { dg-message "optimized: assigned OpenACC gang vector loop parallelism" } + do y = 1, 10 + !$acc loop seq ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } + do z = 1, 10 + end do + end do + end do + +end program test diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/gomp/gomp.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/gomp/gomp.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/gomp/gomp.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/gomp/gomp.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/graphite/graphite.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/graphite/graphite.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/graphite/graphite.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/graphite/graphite.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/graphite/id-26.f03 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/graphite/id-26.f03 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/graphite/id-26.f03 2018-02-18 01:51:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/graphite/id-26.f03 2018-12-29 02:41:33.000000000 +0000 @@ -51,11 +51,11 @@ ! Attempt to create 64-byte aligned allocatable do i = 1, 64 allocate (c(1023 + i)) - if (iand (loc (c(1)), 63) == 0) exit + if (iand(int(loc(c(1)), 8), 63_8) == 0) exit deallocate (c) allocate (b(i)%a(1023 + i)) allocate (c(1023 + i)) - if (iand (loc (c(1)), 63) == 0) exit + if (iand(int(loc(c(1)), 8), 63_8) == 0) exit deallocate (c) end do if (allocated (c)) then diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ieee/ieee_10.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ieee/ieee_10.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ieee/ieee_10.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ieee/ieee_10.f90 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,35 @@ +! { dg-do run } +! { dg-additional-options "-ffpe-trap=overflow,invalid" } +! +! Use dg-additional-options rather than dg-options to avoid overwriting the +! default IEEE options which are passed by ieee.exp and necessary. +program foo + + use ieee_arithmetic + + implicit none + + real x + real(8) y + + x = ieee_value(x, ieee_signaling_nan) + if (.not. ieee_is_nan(x)) stop 1 + x = ieee_value(x, ieee_quiet_nan) + if (.not. ieee_is_nan(x)) stop 2 + + x = ieee_value(x, ieee_positive_inf) + if (ieee_is_finite(x)) stop 3 + x = ieee_value(x, ieee_negative_inf) + if (ieee_is_finite(x)) stop 4 + + y = ieee_value(y, ieee_signaling_nan) + if (.not. ieee_is_nan(y)) stop 5 + y = ieee_value(y, ieee_quiet_nan) + if (.not. ieee_is_nan(y)) stop 6 + + y = ieee_value(y, ieee_positive_inf) + if (ieee_is_finite(y)) stop 7 + y = ieee_value(y, ieee_negative_inf) + if (ieee_is_finite(y)) stop 8 + +end program foo diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ieee/ieee_11.F90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ieee/ieee_11.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ieee/ieee_11.F90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ieee/ieee_11.F90 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,74 @@ +! { dg-do run } +program foo + + use ieee_arithmetic + + implicit none + + call test04 + call test08 + call test10 + call test16 + + contains + + subroutine test04 + real(4) x, y + if (ieee_support_subnormal(x)) then + x = ieee_value(x, ieee_positive_subnormal) + y = ieee_value(y, ieee_positive_denormal) + if (x /= y) stop 1 + x = ieee_value(x, ieee_negative_subnormal) + y = ieee_value(y, ieee_negative_denormal) + if (x /= y) stop 2 + end if + end subroutine test04 + + subroutine test08 + real(8) x, y + if (ieee_support_subnormal(x)) then + x = ieee_value(x, ieee_positive_subnormal) + y = ieee_value(y, ieee_positive_denormal) + if (x /= y) stop 1 + x = ieee_value(x, ieee_negative_subnormal) + y = ieee_value(y, ieee_negative_denormal) + if (x /= y) stop 2 + end if + end subroutine test08 + +#ifdef __GFC_REAL_10__ + subroutine test10 + real(10) x, y + if (ieee_support_subnormal(x)) then + x = ieee_value(x, ieee_positive_subnormal) + y = ieee_value(y, ieee_positive_denormal) + if (x /= y) stop 1 + x = ieee_value(x, ieee_negative_subnormal) + y = ieee_value(y, ieee_negative_denormal) + if (x /= y) stop 2 + end if + end subroutine test10 +#else + subroutine test10 + end subroutine test10 +#endif + +#ifdef __GFC_REAL_16__ + subroutine test16 + real(16) x, y + if (ieee_support_subnormal(x)) then + x = ieee_value(x, ieee_positive_subnormal) + y = ieee_value(y, ieee_positive_denormal) + if (x /= y) stop 1 + x = ieee_value(x, ieee_negative_subnormal) + y = ieee_value(y, ieee_negative_denormal) + if (x /= y) stop 2 + end if + end subroutine test16 +#else + subroutine test16 + end subroutine test16 +#endif + + +end program foo diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ieee/ieee_9.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ieee/ieee_9.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ieee/ieee_9.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ieee/ieee_9.f90 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,70 @@ +! { dg-do run { xfail arm*-*-gnueabi arm*-*-gnueabihf } } +program foo + use ieee_arithmetic + use iso_fortran_env + integer i, p + real x + x = 4 + i = 4 + + if (int8 > 0) then + if (real32 > 0) then + p = int(ieee_scalb(real(x, real32), int(i, int8))) + if (p /= 64) stop 1 + endif + if (real64 > 0) then + p = int(ieee_scalb(real(x, real64), int(i, int8))) + if (p /= 64) stop 2 + endif + if (real128 > 0) then + p = int(ieee_scalb(real(x, real128), int(i, int8))) + if (p /= 64) stop 3 + end if + end if + + if (int16 > 0) then + if (real32 > 0) then + p = int(ieee_scalb(real(x, real32), int(i, int16))) + if (p /= 64) stop 4 + endif + if (real64 > 0) then + p = int(ieee_scalb(real(x, real64), int(i, int16))) + if (p /= 64) stop 5 + endif + if (real128 > 0) then + p = int(ieee_scalb(real(x, real128), int(i, int16))) + if (p /= 64) stop 6 + end if + end if + + if (int32 > 0) then + if (real32 > 0) then + p = int(ieee_scalb(real(x, real32), int(i, int32))) + if (p /= 64) stop 7 + endif + if (real64 > 0) then + p = int(ieee_scalb(real(x, real64), int(i, int32))) + if (p /= 64) stop 8 + endif + if (real128 > 0) then + p = int(ieee_scalb(real(x, real128), int(i, int32))) + if (p /= 64) stop 9 + end if + end if + + if (int64 > 0) then + if (real32 > 0) then + p = int(ieee_scalb(real(x, real32), int(i, int64))) + if (p /= 64) stop 10 + endif + if (real64 > 0) then + p = int(ieee_scalb(real(x, real64), int(i, int64))) + if (p /= 64) stop 11 + endif + if (real128 > 0) then + p = int(ieee_scalb(real(x, real128), int(i, int64))) + if (p /= 64) stop 12 + end if + end if + +end program foo diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ieee/ieee.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ieee/ieee.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ieee/ieee.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ieee/ieee.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/initialization_7.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/initialization_7.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/initialization_7.f90 2014-12-14 06:38:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/initialization_7.f90 2018-12-29 02:41:33.000000000 +0000 @@ -6,7 +6,7 @@ subroutine probleme(p) real(kind=8), dimension(:) :: p - integer :: nx = size(p, 1) ! { dg-error "Deferred array" } + integer :: nx = size(p, 1) ! { dg-error "Assumed-shape array" } integer :: nix nix = nx diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/inquiry_type_ref_4.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/inquiry_type_ref_4.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/inquiry_type_ref_4.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/inquiry_type_ref_4.f90 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,15 @@ +! { dg-do compile } +! { dg-options "-fdump-tree-original" } +! +! Check the fix for PR87881. +! + complex(8) :: zi = (0,-1_8) + character(2) :: chr ='ab' + if (zi%re%kind .ne. kind (real (zi))) stop 1 + if (chr%len%kind .ne. kind (len (chr))) stop 2 + +! After simplification there should only be the delarations for 'zi' and 'chr' + +! { dg-final { scan-tree-dump-times "zi" 1 "original" } } +! { dg-final { scan-tree-dump-times "chr" 1 "original" } } +end diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/intent_out_13.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/intent_out_13.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/intent_out_13.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/intent_out_13.f90 2018-12-17 01:12:15.000000000 +0000 @@ -0,0 +1,22 @@ +! { dg-do run } +! PR 88364 -- too much was clobbered on call. +module pr88364 + implicit none + type t + integer :: b = -1 + integer :: c = 2 + end type t +contains + subroutine f1 (x) + integer, intent(out) :: x + x = 5 + end subroutine f1 + subroutine f2 () + type(t) :: x + call f1 (x%b) + if (x%b .ne. 5 .or. x%c .ne. 2) stop 1 + end subroutine f2 +end module pr88364 + use pr88364 + call f2 +end diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_1.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_1.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_1.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_1.f90 2018-12-18 00:25:20.000000000 +0000 @@ -0,0 +1,28 @@ +! { dg-options "-O3 -fdump-tree-lversion-details" } + +! The simplest IV case. + +subroutine f1(x) + real :: x(:) + x(:) = 100 +end subroutine f1 + +subroutine f2(x, n, step) + integer :: n, step + real :: x(n * step) + do i = 1, n + x(i * step) = 100 + end do +end subroutine f2 + +subroutine f3(x, limit, step) + integer :: limit, step + real :: x(limit) + do i = 1, limit, step + x(i) = 100 + end do +end subroutine f3 + +! { dg-final { scan-tree-dump-times {likely to be the innermost dimension} 1 "lversion" } } +! { dg-final { scan-tree-dump-times {want to version containing loop} 3 "lversion" } } +! { dg-final { scan-tree-dump-times {versioned this loop} 3 "lversion" } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_2.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_2.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_2.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_2.f90 2018-12-18 00:25:20.000000000 +0000 @@ -0,0 +1,39 @@ +! { dg-options "-O3 -fdump-tree-lversion-details -fno-frontend-loop-interchange" } + +! We could version the loop for when the first dimension has a stride +! of 1, but at present there's no real benefit. The gimple loop +! interchange pass couldn't handle the versioned loop, and interchange +! is instead done by the frontend (but disabled by the options above). + +subroutine f1(x) + real :: x(:, :) + do i = lbound(x, 1), ubound(x, 1) + do j = lbound(x, 2), ubound(x, 2) + x(i, j) = 100 + end do + end do +end subroutine f1 + +subroutine f2(x, n, step) + integer :: n, step + real :: x(100, 100) + do i = 1, n + do j = 1, n + x(i * step, j) = 100 + end do + end do +end subroutine f2 + +subroutine f3(x, n, step) + integer :: n, step + real :: x(n * step, n) + do i = 1, n + do j = 1, n + x(i * step, j) = 100 + end do + end do +end subroutine f3 + +! { dg-final { scan-tree-dump-times {likely to be the innermost dimension} 1 "lversion" } } +! { dg-final { scan-tree-dump-not {want to version} "lversion" } } +! { dg-final { scan-tree-dump-not {versioned} "lversion" } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_3.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_3.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_3.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_3.f90 2018-12-18 00:25:20.000000000 +0000 @@ -0,0 +1,30 @@ +! { dg-options "-O3 -fdump-tree-lversion-details -fno-frontend-loop-interchange" } + +! Test a case in which the outer loop iterates over the inner dimension. +! The options above prevent the frontend from interchanging the loops. + +subroutine f1(x, limit, step, n) + integer :: limit, step, n + real :: x(limit, n) + do i = 1, limit, step + do j = 1, n + x(i, j) = 100 + end do + end do +end subroutine f1 + +subroutine f2(x, n, limit, step) + integer :: n, limit, step + real :: x(limit, n) + do i = 1, n + do j = 1, limit, step + x(j, i) = 100 + end do + end do +end subroutine f2 + +! FIXME: The frontend doesn't give us enough information to tell which loop +! is iterating over the innermost dimension, so we optimistically +! assume the inner one is. +! { dg-final { scan-tree-dump-not {want to version} "lversion" { xfail *-*-* } } } +! { dg-final { scan-tree-dump-not {versioned} "lversion" { xfail *-*-* } } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_4.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_4.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_4.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_4.f90 2018-12-18 00:25:20.000000000 +0000 @@ -0,0 +1,95 @@ +! { dg-options "-O3 -fdump-tree-lversion-details -fno-frontend-loop-interchange" } + +! Test cases in which versioning is useful for a two-dimensional array. + +subroutine f1(x) + real :: x(:, :) + x(:, :) = 100 +end subroutine f1 + +subroutine f2(x) + real :: x(:, :) + do i = lbound(x, 1), ubound(x, 1) + do j = lbound(x, 2), ubound(x, 2) + x(j, i) = 100 + end do + end do +end subroutine f2 + +subroutine f3(x, n, step) + integer :: n, step + real :: x(100, 100) + do i = 1, n + do j = 1, n + x(j * step, i) = 100 + end do + end do +end subroutine f3 + +subroutine f4(x, n, step) + integer :: n, step + real :: x(n * step, n) + do i = 1, n + do j = 1, n + x(j * step, i) = 100 + end do + end do +end subroutine f4 + +subroutine f5(x, n, limit, step) + integer :: n, limit, step + real :: x(limit, n) + do i = 1, n + do j = 1, limit, step + x(j, i) = 100 + end do + end do +end subroutine f5 + +subroutine f6(x, y) + real :: x(:, :), y(:) + do i = lbound(x, 1), ubound(x, 1) + do j = lbound(x, 2), ubound(x, 2) + x(j, i) = 100 + end do + y(i) = 200 + end do +end subroutine f6 + +subroutine f7(x, y, n, step) + integer :: n, step + real :: x(100, 100), y(100) + do i = 1, n + do j = 1, n + x(j * step, i) = 100 + end do + y(i * step) = 200 + end do +end subroutine f7 + +subroutine f8(x, y, n, step) + integer :: n, step + real :: x(n * step, n), y(n * step) + do i = 1, n + do j = 1, n + x(j * step, i) = 100 + end do + y(i * step) = 200 + end do +end subroutine f8 + +subroutine f9(x, n, limit, step) + integer :: n, limit, step + real :: x(limit, n), y(limit) + do i = 1, n + do j = 1, limit, step + x(j, i) = 100 + end do + y(i) = 200 + end do +end subroutine f9 + +! { dg-final { scan-tree-dump-times {likely to be the innermost dimension} 3 "lversion" } } +! { dg-final { scan-tree-dump-times {want to version containing loop} 9 "lversion" } } +! { dg-final { scan-tree-dump-times {hoisting check} 9 "lversion" } } +! { dg-final { scan-tree-dump-times {versioned this loop} 9 "lversion" } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_5.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_5.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_5.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_5.f90 2018-12-18 00:25:20.000000000 +0000 @@ -0,0 +1,57 @@ +! { dg-options "-O3 -fdump-tree-lversion-details -fno-frontend-loop-interchange" } + +! Make sure that in a "badly nested" loop, we don't treat the inner loop +! as iterating over the inner dimension with a variable stride. + +subroutine f1(x, n) + integer :: n + real :: x(100, 100) + do i = 1, n + do j = 1, n + x(i, j) = 100 + end do + end do +end subroutine f1 + +subroutine f2(x, n, step) + integer :: n, step + real :: x(100, 100) + do i = 1, n + do j = 1, n + x(i, j * step) = 100 + end do + end do +end subroutine f2 + +subroutine f3(x, n) + integer :: n + real :: x(n, n) + do i = 1, n + do j = 1, n + x(i, j) = 100 + end do + end do +end subroutine f3 + +subroutine f4(x, n, step) + integer :: n, step + real :: x(n, n * step) + do i = 1, n + do j = 1, n + x(i, j * step) = 100 + end do + end do +end subroutine f4 + +subroutine f5(x, n, limit, step) + integer :: n, limit, step + real :: x(n, limit) + do i = 1, n + do j = 1, limit, step + x(i, j) = 100 + end do + end do +end subroutine f5 + +! { dg-final { scan-tree-dump-not {want to version} "lversion" } } +! { dg-final { scan-tree-dump-not {versioned} "lversion" } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_6.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_6.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_6.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_6.f90 2018-12-18 00:25:20.000000000 +0000 @@ -0,0 +1,93 @@ +! { dg-options "-O3 -fdump-tree-lversion-details" } + +! Check that versioning can handle small groups of accesses. + +subroutine f1(x) + real :: x(:) + do i = lbound(x, 1), ubound(x, 1) / 2 + x(i * 2) = 100 + x(i * 2 + 1) = 101 + end do +end subroutine f1 + +subroutine f2(x, n, step) + integer :: n, step + real :: x(n * step * 2) + do i = 1, n + x(i * step * 2) = 100 + x(i * step * 2 + 1) = 101 + end do +end subroutine f2 + +subroutine f3(x, limit, step) + integer :: limit, step + real :: x(limit * 2) + do i = 1, limit, step + x(i * 2) = 100 + x(i * 2 + 1) = 101 + end do +end subroutine f3 + +subroutine f4(x) + real :: x(:) + do i = lbound(x, 1), ubound(x, 1) / 3 + x(i * 3) = 100 + x(i * 3 + 1) = 101 + x(i * 3 + 2) = 102 + end do +end subroutine f4 + +subroutine f5(x, n, step) + integer :: n, step + real :: x(n * step * 3) + do i = 1, n + x(i * step * 3) = 100 + x(i * step * 3 + 1) = 101 + x(i * step * 3 + 2) = 102 + end do +end subroutine f5 + +subroutine f6(x, limit, step) + integer :: limit, step + real :: x(limit * 3) + do i = 1, limit, step + x(i * 3) = 100 + x(i * 3 + 1) = 101 + x(i * 3 + 2) = 102 + end do +end subroutine f6 + +subroutine f7(x) + real :: x(:) + do i = lbound(x, 1), ubound(x, 1) / 4 + x(i * 4) = 100 + x(i * 4 + 1) = 101 + x(i * 4 + 2) = 102 + x(i * 4 + 3) = 103 + end do +end subroutine f7 + +subroutine f8(x, n, step) + integer :: n, step + real :: x(n * step * 4) + do i = 1, n + x(i * step * 4) = 100 + x(i * step * 4 + 1) = 101 + x(i * step * 4 + 2) = 102 + x(i * step * 4 + 3) = 103 + end do +end subroutine f8 + +subroutine f9(x, limit, step) + integer :: limit, step + real :: x(limit * 4) + do i = 1, limit, step + x(i * 4) = 100 + x(i * 4 + 1) = 101 + x(i * 4 + 2) = 102 + x(i * 4 + 3) = 103 + end do +end subroutine f9 + +! { dg-final { scan-tree-dump-times {want to version containing loop} 9 "lversion" } } +! { dg-final { scan-tree-dump-times {versioned this loop} 9 "lversion" } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_7.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_7.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_7.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_7.f90 2018-12-18 00:25:20.000000000 +0000 @@ -0,0 +1,67 @@ +! { dg-options "-O3 -fdump-tree-lversion-details" } + +! Check that versioning can handle small groups of accesses, with the +! group being a separate array dimension. + +subroutine f1(x, n, step) + integer :: n, step + real :: x(2, n * step) + do i = 1, n + x(1, i * step) = 100 + x(2, i * step) = 101 + end do +end subroutine f1 + +subroutine f2(x, limit, step) + integer :: limit, step + real :: x(2, limit) + do i = 1, limit, step + x(1, i) = 100 + x(2, i) = 101 + end do +end subroutine f2 + +subroutine f3(x, n, step) + integer :: n, step + real :: x(3, n * step) + do i = 1, n + x(1, i * step) = 100 + x(2, i * step) = 101 + x(3, i * step) = 102 + end do +end subroutine f3 + +subroutine f4(x, limit, step) + integer :: limit, step + real :: x(3, limit) + do i = 1, limit, step + x(1, i) = 100 + x(2, i) = 101 + x(3, i) = 102 + end do +end subroutine f4 + +subroutine f5(x, n, step) + integer :: n, step + real :: x(4, n * step) + do i = 1, n + x(1, i * step) = 100 + x(2, i * step) = 101 + x(3, i * step) = 102 + x(4, i * step) = 103 + end do +end subroutine f5 + +subroutine f6(x, limit, step) + integer :: limit, step + real :: x(4, limit) + do i = 1, limit, step + x(1, i) = 100 + x(2, i) = 101 + x(3, i) = 102 + x(4, i) = 103 + end do +end subroutine f6 + +! { dg-final { scan-tree-dump-times {want to version containing loop} 6 "lversion" } } +! { dg-final { scan-tree-dump-times {versioned this loop} 6 "lversion" } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_8.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_8.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_8.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/loop_versioning_8.f90 2018-12-18 00:25:20.000000000 +0000 @@ -0,0 +1,13 @@ +! { dg-options "-O3 -fdump-tree-lversion-details" } + +! Check that versioning is applied to a gather-like reduction operation. + +function f(x, index, n) + integer :: n + real :: x(:) + integer :: index(n) + f = sum(x(index(:))) +end function f + +! { dg-final { scan-tree-dump-times {want to version containing loop} 1 "lversion" } } +! { dg-final { scan-tree-dump-times {versioned this loop} 1 "lversion" } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/lto/lto.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/lto/lto.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/lto/lto.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/lto/lto.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/optional_absent_4.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/optional_absent_4.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/optional_absent_4.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/optional_absent_4.f90 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,96 @@ +! { dg-do run } +! PR 82995 - segfault passing on an optional argument; +! this tests the inline versions. +module y + implicit none +contains + + function sum_1 (input, mask) + logical, intent(in), optional :: mask(:) + integer, intent(in) :: input(:) + integer :: sum_1 + sum_1 = sum (input, mask) + end function sum_1 + + function sum_2 (input, mask) + logical, intent(in), optional :: mask + integer, intent(in) :: input(:) + integer :: sum_2 + sum_2 = sum(input, mask) + end function sum_2 + + function sum_3 (input, mask) + logical, intent(in), optional :: mask(:,:) + integer, intent(in) :: input(:,:) + integer :: sum_3 + sum_3 = sum (input, mask) + end function sum_3 + + function minval_1 (input, mask) + logical, intent(in), optional :: mask(:,:) + real, intent(in) :: input(:,:) + real :: minval_1 + minval_1 = minval (input, mask) + end function minval_1 + + function maxval_1 (input, mask) + logical, intent(in), optional :: mask + real, intent(in) :: input(:,:) + real :: maxval_1 + maxval_1 = maxval (input, mask) + end function maxval_1 + + function maxloc_1 (input, mask) + logical, intent(in), optional :: mask(:) + real, intent(in) :: input(:) + integer :: maxloc_1 + + maxloc_1 = maxloc(input, dim=1, mask=mask) + end function maxloc_1 + + function findloc_1 (input, val, mask) + logical, intent(in), optional :: mask (:) + integer, intent(in) :: input(:) + integer, intent(in) :: val + integer :: findloc_1 + + findloc_1 = findloc(input, val, dim=1, mask=mask) + end function findloc_1 + + function findloc_2 (input, val, mask) + logical, intent(in), optional :: mask + integer, intent(in) :: input(:) + integer, intent(in) :: val + integer :: findloc_2 + + findloc_2 = findloc(input, val, dim=1, mask=mask) + end function findloc_2 + +end module y + +program test_sum_1 + use y + implicit none + integer :: input(5) = [1,2,4,8,16] + integer :: i2(2,3) = reshape([1,2,4,8,16,32], [2,3]) + real :: r2(2,3) = reshape ([32.,16.,8.,4.,2.,1.], [2,3]) + real :: r1(6) = [2.,4.,8.,32.,1.,16.] + integer :: res + real :: rres + res = sum_1(input) + if (res /= 31) stop 1 + res = sum_2 (input) + if (res /= 31) stop 2 + res = sum_3 (i2) + if (res /= 63) stop 3 + rres = minval_1 (r2) + if (rres /= 1.0) stop 4 + rres = maxval_1 (r2) + if (rres /= 32.) stop 5 + res = maxloc_1 (r1) + if (res /= 4) stop 6 + res = findloc_1 (input, 8) + if (res /= 4) stop 7 + res = findloc_2 (input, 2) + if (res /= 2) stop 8 +end program test_sum_1 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/optional_absent_5.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/optional_absent_5.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/optional_absent_5.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/optional_absent_5.f90 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,144 @@ +! { dg-do run } +! PR 82995 - segfault passing on an optional argument; +! this tests the library versions. +module z + implicit none +contains + subroutine sum_1 (input, res, mask) + logical, intent(in), optional :: mask(:,:) + integer, intent(in) :: input(:,:) + integer, dimension(:), intent(out) :: res + res = sum (input, dim=1, mask=mask) + end subroutine sum_1 + + subroutine sum_2 (input, res, mask) + logical, intent(in), optional :: mask + integer, intent(in) :: input(:,:) + integer, dimension(:), intent(out) :: res + res = sum (input, dim=1, mask=mask) + end subroutine sum_2 + + subroutine maxloc_1 (input, res, mask) + logical, intent(in), optional :: mask(:,:) + integer, intent(in) :: input(:,:) + integer, dimension(:), intent(out) :: res + res = maxloc (input, dim=1, mask=mask) + end subroutine maxloc_1 + + subroutine minloc_1 (input, res, mask) + logical, intent(in), optional :: mask + integer, intent(in) :: input(:,:) + integer, dimension(:), intent(out) :: res + res = minloc (input, dim=1, mask=mask) + end subroutine minloc_1 + + subroutine maxloc_2 (input, res, mask) + logical, intent(in), optional :: mask(:,:) + integer, intent(in) :: input(:,:) + integer, dimension(:), intent(out) :: res + integer :: n + n = 1 + res = maxloc (input, dim=n, mask=mask) + end subroutine maxloc_2 + + subroutine findloc_1 (input, val, res, mask) + logical, intent(in), optional :: mask(:,:) + integer, intent(in) :: input(:,:) + integer, dimension(:), intent(out) :: res + integer, intent(in) :: val + res = findloc(input, val) + end subroutine findloc_1 + + subroutine findloc_2 (input, val, res, mask) + logical, intent(in), optional :: mask + integer, intent(in) :: input(:,:) + integer, dimension(:), intent(out) :: res + integer, intent(in) :: val + res = findloc(input, val) + end subroutine findloc_2 + + subroutine findloc_3 (input, val, res, mask) + logical, intent(in), optional :: mask(:,:) + integer, intent(in) :: input(:,:) + integer, dimension(:), intent(out) :: res + integer, intent(in) :: val + res = findloc(input, val, dim=1) + end subroutine findloc_3 + + subroutine findloc_4 (input, val, res, mask) + logical, intent(in), optional :: mask(:,:) + integer, intent(in) :: input(:,:) + integer, dimension(:), intent(out) :: res + integer, intent(in) :: val + integer :: n = 1 + res = findloc(input, val, dim=n) + end subroutine findloc_4 + + subroutine maxval_1 (input, res, mask) + logical, intent(in), optional :: mask + integer, intent(in) :: input(:,:) + integer, dimension(:), intent(out) :: res + res = maxval (input, dim=1, mask=mask) + end subroutine maxval_1 + + subroutine maxval_2 (input, res, mask) + logical, intent(in), optional :: mask + integer, intent(in) :: input(:,:) + integer, dimension(:), intent(out) :: res + integer :: n = 1 + res = maxval (input, dim=n, mask=mask) + end subroutine maxval_2 + + subroutine minval_1 (input, res, mask) + logical, intent(in), optional :: mask(:,:) + integer, intent(in) :: input(:,:) + integer, dimension(:), intent(out) :: res + res = minval (input, dim=1, mask=mask) + end subroutine minval_1 + + subroutine minval_2 (input, res, mask) + logical, intent(in), optional :: mask(:,:) + integer, intent(in) :: input(:,:) + integer, dimension(:), intent(out) :: res + integer :: n = 1 + res = minval (input, dim=n, mask=mask) + end subroutine minval_2 + +end module z + +program main + use z + implicit none + integer :: i2(2,3) = reshape([1,2,4,8,16,32], [2,3]) + integer, dimension(3) :: res3 + integer, dimension(2) :: res2 + call sum_1 (i2, res3) + if (any (res3 /= [3, 12, 48])) stop 1 + res3 = -2 + call sum_2 (i2, res3) + if (any (res3 /= [3, 12, 48])) stop 2 + call maxloc_1 (i2, res3) + if (any (res3 /= 2)) stop 3 + call minloc_1 (i2, res3) + if (any (res3 /= 1)) stop 4 + call maxloc_2 (i2, res3) + if (any (res3 /= 2)) stop 5 + call findloc_1 (i2, 4, res2) + if (any(res2 /= [1,2])) stop 6 + res2 = -1234 + call findloc_2 (i2, 4, res2) + if (any(res2 /= [1,2])) stop 7 + call findloc_3 (i2, 4, res3) + if (any(res3 /= [0,1,0])) stop 8 + call findloc_4 (i2, 4, res3) + if (any(res3 /= [0,1,0])) stop 9 + call maxval_1 (i2, res3) + if (any (res3 /= [2,8,32])) stop 10 + call minval_1 (i2, res3) + if (any (res3 /= [1,4,16])) stop 11 + call maxval_2 (i2, res3) + if (any (res3 /= [2,8,32])) stop 12 + call minval_2 (i2, res3) + if (any (res3 /= [1,4,16])) stop 13 + +end program main diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/power_7.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/power_7.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/power_7.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/power_7.f90 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,27 @@ +! { dg-do run } +! { dg-additional-options "-fdump-tree-original" } +! PR 85544 - this used to ICE. +program p + integer, parameter :: na = -3, ne = 10 + integer :: i, a(na:ne), b(na:ne) + integer :: v + a = [(i, i=na, ne)] + b = [2**a] + if (any (b /= [0,0,0,1,2,4,8,16,32,64,128,256,512,1024])) stop 1 + b = [1**a] + if (any (b /= 1)) stop 2 + b = [(-1)**a] + if (any (b /= [-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1]) )stop 3 + b = [8**a] + if (any (b /= [0,0,0,1,8,64,512,4096,32768,262144,2097152,16777216,& + 134217728,1073741824])) stop 4 + b = [4**a] + if (any (b /= [0,0,0,1,4,16,64,256,1024,4096,16384,65536,262144,1048576])) stop 5 + + v = 1 + do i=1,6 + v = v * 16 + if (v /= 16**i) stop 6 + end do + end program p +! { dg-final { scan-tree-dump-not "_gfortran_pow" "original" } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr81027.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr81027.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr81027.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr81027.f90 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,11 @@ +program badarray + implicit none + integer:: j(3) = [1,2,3] + call doubling(j) +contains + subroutine doubling( n) + integer,intent(in)::n(:) + integer::m = size(n) ! { dg-error "Assumed-shape array" } + print *, m ! { dg-error "has no IMPLICIT type" } + end subroutine doubling +end program badarray diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr81509_1.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr81509_1.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr81509_1.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr81509_1.f90 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,12 @@ +! { dg-do run } +! https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81509 +program foo +logical :: a = .false. +integer :: i = 42 +integer(8) :: k = 42 +if (kind(ieor(z'ade',i)) /= 4) call abort +if (kind(ior(i,z'1111')) /= 4) call abort +if (kind(ior(1_8,k)) /= 8) call abort +if (kind(iand(k,b'1111')) /= 8) call abort +end program foo + diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr81509_2.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr81509_2.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr81509_2.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr81509_2.f90 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,18 @@ +! { dg-do compile } +! https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81509 +! +program foo +logical :: a = .false. +integer :: i = 42 +integer(8) :: k +k = iand(z'aaaa', z'1234') ! { dg-error "cannot both be BOZ literal" } +k = and(z'aaaa', z'1234') ! { dg-error "cannot both be BOZ literal" } +k = and(1, z'1234') +k = and(i, z'1234') +k = ieor(z'ade',i) +k = ior(i,z'1111') +k = ior(i,k) ! { dg-error "different kind type parameters" } +k = and(i,k) +k = and(a,z'1234') ! { dg-error "must have the same type" } +end program foo + diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr85357.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr85357.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr85357.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr85357.f90 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,17 @@ +! { dg-do compile } +module base + implicit none +contains + subroutine summation(i) + integer, intent(in) :: i + end subroutine +end module + +module extended + use base + implicit none +contains + subroutine summation() ! { dg-error "is already defined" } + end subroutine ! { dg-error "Expecting END MODULE statement" } +end module +! { dg-prune-output "is already defined at" } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr85798.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr85798.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr85798.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr85798.f90 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,14 @@ +! { dg-do compile } +program p + type t + integer, allocatable :: a(:) + end type + type u + real x + type(t) y + end type + type(t) :: z + type(u) :: q + data z%a(1) / 789 / ! { dg-error "Allocatable component" } + data q%y%a(1) / 789 / ! { dg-error "Allocatable component" } +end diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr87992.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr87992.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr87992.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr87992.f90 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,5 @@ +! { dg-do compile } +subroutine s(x) + class(*), allocatable :: x + x = '' +end diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr87994_1.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr87994_1.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr87994_1.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr87994_1.f90 2018-12-17 01:12:15.000000000 +0000 @@ -0,0 +1,7 @@ +! { dg-do run } +! PR fortran/87994 +program p + real :: a, b + data b /a%kind/ + if (b /= kind(a)) stop 1 +end diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr87994_2.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr87994_2.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr87994_2.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr87994_2.f90 2018-12-17 01:12:15.000000000 +0000 @@ -0,0 +1,7 @@ +! { dg-do run } +! PR fortran/87994 +program p + real, parameter :: a = 1.0 + data b /a%kind/ + if (b /= kind(a)) stop 1 +end diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr87994_3.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr87994_3.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr87994_3.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr87994_3.f90 2018-12-17 01:12:15.000000000 +0000 @@ -0,0 +1,8 @@ +! { dg-do run } +! PR fortran/87994 +program p + integer, parameter :: a = 1 + integer :: b + data b /a%kind/ + if (b /= kind(a)) stop = 1 +end diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88116_1.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88116_1.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88116_1.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88116_1.f90 2018-12-17 01:12:15.000000000 +0000 @@ -0,0 +1,4 @@ +! { dg-do compile } +program p + print *, [integer :: 1, [integer(8) :: 2, ['3']]] ! { dg-error "Can't convert" } +end diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88116_2.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88116_2.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88116_2.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88116_2.f90 2018-12-17 01:12:15.000000000 +0000 @@ -0,0 +1,7 @@ +! { dg-do run } +program p + real :: a(2) = [real :: 1, [integer :: (real(k), k=2,1), 2]] + real :: b(1) = [real :: [integer :: (dble(k), k=1,0), 2]] + if (a(1) /= 1. .or. a(2) /= 2. .or. b(1) /= 2.) stop 1 +end + diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88138.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88138.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88138.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88138.f90 2018-12-17 01:12:15.000000000 +0000 @@ -0,0 +1,9 @@ +! { dg-do compile } +program p + type t + character :: c = 'c' + end type + type(t), parameter :: x = 1.e1 ! { dg-error "Incompatible initialization between a" } + print *, 'a' // x%c +end +! { dg-prune-output "has no IMPLICIT type" } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88169_1.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88169_1.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88169_1.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88169_1.f90 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,21 @@ +! { dg-do run } +module foo_nml + implicit none + real :: x = -1 + namelist /foo/ x +end module + +program main + use foo_nml, only: bar => foo, x + implicit none + integer fd + x = 42 + open(newunit=fd, file='tmp.dat', status='replace') + write(fd,nml=bar) + close(fd) + open(newunit=fd, file='tmp.dat', status='old') + read(fd,nml=bar) + if (x /= 42) stop 1 + close(fd) +end program +! { dg-final { cleanup-modules "foo_nml" } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88169_2.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88169_2.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88169_2.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88169_2.f90 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,31 @@ +! { dg-do run } +module foo_nml + implicit none + real :: x = -1 + namelist /foo/ x +end module +! +! Yes, implicit typing of local variable 'x'. +! +program main + use foo_nml, only: bar => foo + integer fd + x = 42 + open(newunit=fd, file='tmp.dat', status='replace') + write(fd,nml=bar) + close(fd) + open(newunit=fd, file='tmp.dat', status='old') + read(fd,nml=bar) + close(fd) + call bah + if (x /= 42) stop 1 +end program + +subroutine bah + use foo_nml + integer fd + open(newunit=fd, file='tmp.dat', status='old') + read(fd,nml=foo) + if (x /= -1) stop 2 + close(fd, status='delete') +end subroutine bah diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88169_3.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88169_3.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88169_3.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88169_3.f90 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,15 @@ +! { dg-do compile } +! { dg-options "-std=f95" } +module foo_nml + implicit none + real :: x = -1 + namelist /foo/ x +end module + +program main + use foo_nml, only: bar => foo, x + implicit none + real a + namelist /bar/a ! { dg-error "already is USE associated" } +end program +! { dg-final { cleanup-modules "foo_nml" } } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88328.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88328.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88328.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88328.f90 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,6 @@ +! { dg-do compile } +! PR fortran/88328 +program p + character(3), parameter :: a(0) = [character(3)::] + print a ! { dg-error "zero-sized array" } +end diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88467.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88467.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88467.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/pr88467.f90 2018-12-17 01:12:15.000000000 +0000 @@ -0,0 +1,4 @@ +! { dg-do compile } +program foo + print *, [integer :: 1, [integer(8) :: 2, '3']] ! { dg-error "Can't convert" } +end program foo diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/prof/prof.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/prof/prof.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/prof/prof.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/prof/prof.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ptr_func_assign_5.f08 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ptr_func_assign_5.f08 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ptr_func_assign_5.f08 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/ptr_func_assign_5.f08 2018-12-29 02:41:33.000000000 +0000 @@ -0,0 +1,45 @@ +! { dg-do run } +! +! Test the fix for PR77703, in which calls of the pointer function +! caused an ICE in 'gfc_trans_auto_character_variable'. +! +! Contributed by Gerhard Steinmetz +! +module m + implicit none + private + integer, parameter, public :: n = 2 + integer, parameter :: ell = 6 + + character(len=n*ell), target, public :: s + + public :: t +contains + function t( idx ) result( substr ) + integer, intent(in) :: idx + character(len=ell), pointer :: substr + + if ( (idx < 0).or.(idx > n) ) then + error stop + end if + substr => s((idx-1)*ell+1:idx*ell) + end function t +end module m + +program p + use m, only : s, t, n + integer :: i + + ! Define 's' + s = "123456789012" + + ! Then perform operations involving 't' + if (t(1) .ne. "123456") stop 1 + if (t(2) .ne. "789012") stop 2 + + ! Do the pointer function assignments + t(1) = "Hello " + if (s .ne. "Hello 789012") Stop 3 + t(2) = "World!" + if (s .ne. "Hello World!") Stop 4 +end program p diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/structure_constructor_16.f90 gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/structure_constructor_16.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/structure_constructor_16.f90 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/structure_constructor_16.f90 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,14 @@ +! { dg-do compile } +! { dg-additional-options "-Wcharacter-truncation" } +! PR 82743 - warnings were missing on truncation of structure +! constructors. +! Original test case by Simon Klüpfel +PROGRAM TEST + TYPE A + CHARACTER(LEN=1) :: C + END TYPE A + TYPE(A) :: A1 + A1=A("123") ! { dg-warning "CHARACTER expression will be truncated" } + A1=A(C="123") ! { dg-warning "CHARACTER expression will be truncated" } + A1%C="123" ! { dg-warning "CHARACTER expression will be truncated" } +END PROGRAM TEST diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/vect/vect.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/vect/vect.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.dg/vect/vect.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.dg/vect/vect.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.fortran-torture/compile/compile.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.fortran-torture/compile/compile.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.fortran-torture/compile/compile.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.fortran-torture/compile/compile.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Expect driver script for GCC Regression Tests -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.fortran-torture/execute/execute.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.fortran-torture/execute/execute.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gfortran.fortran-torture/execute/execute.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gfortran.fortran-torture/execute/execute.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gnat.dg/dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gnat.dg/dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gnat.dg/dg.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gnat.dg/dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gnat.dg/gcov/gcov.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gnat.dg/gcov/gcov.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gnat.dg/gcov/gcov.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gnat.dg/gcov/gcov.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gnat.dg/max_size.adb gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gnat.dg/max_size.adb --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gnat.dg/max_size.adb 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gnat.dg/max_size.adb 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,13 @@ +-- { dg-do run } + +with Max_Size_Pkg; use Max_Size_Pkg; + +procedure Max_Size is +begin + if Arr1'Max_Size_In_Storage_Elements /= 7 then + raise Program_Error; + end if; + if Arr2'Max_Size_In_Storage_Elements /= 24 then + raise Program_Error; + end if; +end; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gnat.dg/max_size_pkg.ads gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gnat.dg/max_size_pkg.ads --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gnat.dg/max_size_pkg.ads 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gnat.dg/max_size_pkg.ads 2018-12-16 02:30:47.000000000 +0000 @@ -0,0 +1,9 @@ +package Max_Size_Pkg is + + type Index is range 1 .. 5; + + type Arr1 is array (Index range <>) of Short_Short_Integer; + + type Arr2 is array (Index range <>) of Integer; + +end Max_Size_Pkg; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gnat.dg/specs/specs.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gnat.dg/specs/specs.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gnat.dg/specs/specs.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gnat.dg/specs/specs.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gnat.dg/sso/sso.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gnat.dg/sso/sso.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/gnat.dg/sso/sso.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/gnat.dg/sso/sso.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/go.dg/dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/go.dg/dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/go.dg/dg.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/go.dg/dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/go.go-torture/execute/execute.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/go.go-torture/execute/execute.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/go.go-torture/execute/execute.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/go.go-torture/execute/execute.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.old-deja/g++.brendan/README gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.old-deja/g++.brendan/README --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.old-deja/g++.brendan/README 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.old-deja/g++.brendan/README 2019-01-02 08:05:16.000000000 +0000 @@ -40,7 +40,7 @@ warnings - warning messages -Copyright (C) 1997-2018 Free Software Foundation, Inc. +Copyright (C) 1997-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.old-deja/g++.bugs/900402_02.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.old-deja/g++.bugs/900402_02.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.old-deja/g++.bugs/900402_02.C 2018-11-29 22:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.old-deja/g++.bugs/900402_02.C 2018-12-29 02:41:33.000000000 +0000 @@ -6,17 +6,17 @@ // keywords: arrays, array bound, zero length -typedef int array_type[0]; // { dg-error "13:ISO C\\+\\+ forbids zero-size array" } +typedef int array_type[0]; // { dg-error "24:ISO C\\+\\+ forbids zero-size array" } -int array_object_1[0]; // { dg-error "5:ISO C\\+\\+ forbids zero-size array" } +int array_object_1[0]; // { dg-error "20:ISO C\\+\\+ forbids zero-size array" } -void function_0 (int formal_array[0]) // { dg-error "22:ISO C\\+\\+ forbids zero-size array" } +void function_0 (int formal_array[0]) // { dg-error "35:ISO C\\+\\+ forbids zero-size array" } { } void function_2 () { - int local_object_array_0[0]; // { dg-error "7:ISO C\\+\\+ forbids zero-size array" } + int local_object_array_0[0]; // { dg-error "28:ISO C\\+\\+ forbids zero-size array" } } int main () { return 0; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.old-deja/g++.robertl/README gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.old-deja/g++.robertl/README --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.old-deja/g++.robertl/README 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.old-deja/g++.robertl/README 2019-01-02 08:05:16.000000000 +0000 @@ -18,7 +18,7 @@ Robert Lipe -Copyright (C) 1998-2018 Free Software Foundation, Inc. +Copyright (C) 1998-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.old-deja/old-deja.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.old-deja/old-deja.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.old-deja/old-deja.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.old-deja/old-deja.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1988-2018 Free Software Foundation, Inc. +# Copyright (C) 1988-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/go.test/go-test.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/go.test/go-test.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/go.test/go-test.exp 2018-10-04 06:31:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/go.test/go-test.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # Written by Ian Lance Taylor . # This program is free software; you can redistribute it and/or modify diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.target/aarch64/sve/aarch64-sve.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.target/aarch64/sve/aarch64-sve.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.target/aarch64/sve/aarch64-sve.exp 2018-01-14 10:48:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.target/aarch64/sve/aarch64-sve.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Specific regression driver for AArch64. -# Copyright (C) 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # Contributed by ARM Ltd. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.target/arm/arm.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.target/arm/arm.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.target/arm/arm.exp 2018-06-05 19:11:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.target/arm/arm.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # Specific regression driver for arm. -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.target/i386/i386.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.target/i386/i386.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.target/i386/i386.exp 2018-10-22 20:26:23.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.target/i386/i386.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.target/i386/mv16.C gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.target/i386/mv16.C --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/g++.target/i386/mv16.C 2018-10-15 11:36:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/g++.target/i386/mv16.C 2018-12-19 03:56:58.000000000 +0000 @@ -68,6 +68,10 @@ return 18; } +int __attribute__ ((target("arch=cascadelake"))) foo () { + return 19; +} + int main () { int val = foo (); @@ -94,6 +98,8 @@ assert (val == 17); else if (__builtin_cpu_is ("icelake-server")) assert (val == 18); + else if (__builtin_cpu_is ("cascadelake")) + assert (val == 19); else assert (val == 0); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/asan-dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/asan-dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/asan-dg.exp 2018-04-13 21:46:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/asan-dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/atomic-dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/atomic-dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/atomic-dg.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/atomic-dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/brig-dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/brig-dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/brig-dg.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/brig-dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/brig.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/brig.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/brig.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/brig.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/c-compat.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/c-compat.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/c-compat.exp 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/c-compat.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/clearcap.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/clearcap.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/clearcap.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/clearcap.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/compat.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/compat.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/compat.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/compat.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/copy-file.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/copy-file.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/copy-file.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/copy-file.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/c-torture.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/c-torture.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/c-torture.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/c-torture.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1992-2018 Free Software Foundation, Inc. +# Copyright (C) 1992-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/dejapatches.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/dejapatches.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/dejapatches.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/dejapatches.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/dg-pch.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/dg-pch.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/dg-pch.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/dg-pch.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/file-format.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/file-format.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/file-format.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/file-format.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/fortran-modules.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/fortran-modules.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/fortran-modules.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/fortran-modules.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/fortran-torture.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/fortran-torture.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/fortran-torture.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/fortran-torture.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gcc-defs.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gcc-defs.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gcc-defs.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gcc-defs.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gcc-dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gcc-dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gcc-dg.exp 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gcc-dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -1244,5 +1244,81 @@ return 0; } +# Helper function for scan-symbol and scan-symbol-not. It scans a symbol in +# the final executable and return 1 if present, otherwise fail. +# +# Argument 0 is the regexp to match. +# Argument 1 handles expected failures and the like +proc scan-symbol-common { scan_directive args } { + global nm + global base_dir + + # Access variable from gcc-dg-test-1 or lto-execute. + upvar 3 output_file output_file + + if { [llength $args] >= 2 } { + switch [dg-process-target [lindex $args 1]] { + "S" { } + "N" { return } + "F" { setup_xfail "*-*-*" } + "P" { } + } + } + + # Find nm like we find g++ in g++.exp. + if ![info exists nm] { + set nm [findfile $base_dir/../../../binutils/nm \ + $base_dir/../../../binutils/nm \ + [findfile $base_dir/../../nm $base_dir/../../nm \ + [findfile $base_dir/nm $base_dir/nm \ + [transform nm]]]] + verbose -log "nm is $nm" + } + + set output_file "[glob -nocomplain $output_file]" + if { $output_file == "" } { + fail "$scan_directive $args: output file does not exist" + return + } + + set fd [open "| $nm $output_file" r] + set text [read $fd] + close $fd + + if [regexp -- [lindex $args 0] $text] { + return 1 + } else { + return 0 + } +} + +# Utility for scanning a symbol in the final executable, invoked via dg-final. +# Call pass if pattern is present, otherwise fail. +# +# Argument 0 is the regexp to match. +# Argument 1 handles expected failures and the like +proc scan-symbol { args } { + set testcase [testname-for-summary] + if { [scan-symbol-common "scan-symbol" $args]} { + pass "$testcase scan-symbol $args" + } else { + fail "$testcase scan-symbol $args" + } +} + +# Utility for scanning a symbol in the final executable, invoked via dg-final. +# Call pass if pattern is absent, otherwise fail. +# +# Argument 0 is the regexp to match. +# Argument 1 handles expected failures and the like +proc scan-symbol-not { args } { + set testcase [testname-for-summary] + if { [scan-symbol-common "scan-symbol-not" $args]} { + fail "$testcase scan-symbol-not $args" + } else { + pass "$testcase scan-symbol-not $args" + } +} + set additional_prunes "" set dg_runtest_extra_prunes "" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gcc.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gcc.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gcc.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gcc.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1992-2018 Free Software Foundation, Inc. +# Copyright (C) 1992-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gcc-gdb-test.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gcc-gdb-test.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gcc-gdb-test.exp 2018-08-12 11:28:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gcc-gdb-test.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gcc-simulate-thread.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gcc-simulate-thread.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gcc-simulate-thread.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gcc-simulate-thread.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gcov.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gcov.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gcov.exp 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gcov.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gdc-dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gdc-dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gdc-dg.exp 2018-12-14 05:16:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gdc-dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gdc.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gdc.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gdc.exp 2018-10-29 10:34:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gdc.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/g++-dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/g++-dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/g++-dg.exp 2018-10-22 12:08:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/g++-dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/g++.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/g++.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/g++.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/g++.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1992-2018 Free Software Foundation, Inc. +# Copyright (C) 1992-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gfortran-dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gfortran-dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gfortran-dg.exp 2018-07-21 17:29:11.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gfortran-dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gfortran.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gfortran.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gfortran.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gfortran.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gnat-dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gnat-dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gnat-dg.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gnat-dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gnat.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gnat.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/gnat.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/gnat.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/go-dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/go-dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/go-dg.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/go-dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/go.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/go.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/go.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/go.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/go-torture.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/go-torture.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/go-torture.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/go-torture.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/lto.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/lto.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/lto.exp 2018-02-06 04:49:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/lto.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -712,6 +712,17 @@ # There's a unique name for each executable we generate. set execname "${execbase}-${count}1.exe" + + # The LTO tests don't use dg-test, so testname_with_flags and + # output_file need to be defined explicitly for each file. scan-symbol + # directives rely on both of these to be defined to find the symbol to + # scan and for the text to print in the PASS/FAIL since they can also + # be called from dg-test. testname_with_flags is also used via + # testname-for-summary when calling into generic function below to + # clean temporary files. + set output_file $execname + set testname_with_flags $execname + incr count file_on_host delete $execname @@ -774,11 +785,7 @@ } } - # Clean up after -save-temps. The LTO tests don't use dg-test, so - # testname-for-summary needs to be defined explicitly for each - # file that needs to be removed. - set testname_with_flags $execname - + # Clean up after -save-temps. eval "cleanup-saved-temps" for {set i 0} {$i < $num_srcs} {incr i} { @@ -801,52 +808,6 @@ } } -# Utility for scanning a symbol in the final executable, invoked via dg-final. -# Call pass if pattern is present, otherwise fail. -# -# Argument 0 is the regexp to match. -# Argument 1 handles expected failures and the like -proc scan-symbol { args } { - global nm - global base_dir - upvar 2 execname execname - - if { [llength $args] >= 2 } { - switch [dg-process-target [lindex $args 1]] { - "S" { } - "N" { return } - "F" { setup_xfail "*-*-*" } - "P" { } - } - } - - # Find nm like we find g++ in g++.exp. - if ![info exists nm] { - set nm [findfile $base_dir/../../../binutils/nm \ - $base_dir/../../../binutils/nm \ - [findfile $base_dir/../../nm $base_dir/../../nm \ - [findfile $base_dir/nm $base_dir/nm \ - [transform nm]]]] - verbose -log "nm is $nm" - } - - set output_file "[glob -nocomplain $execname]" - if { $output_file == "" } { - fail "scan-symbol $args: dump file does not exist" - return - } - - set fd [open "| $nm $output_file" r] - set text [read $fd] - close $fd - - if [regexp -- [lindex $args 0] $text] { - pass "scan-symbol $args" - } else { - fail "scan-symbol $args" - } -} - # Call pass if object readelf is ok, otherwise fail. # example: /* { dg-final { object-readelf Tag_ABI_enum_size int} } */ proc object-readelf { args } { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/mike-gcc.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/mike-gcc.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/mike-gcc.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/mike-gcc.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1988-2018 Free Software Foundation, Inc. +# Copyright (C) 1988-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/mike-g++.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/mike-g++.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/mike-g++.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/mike-g++.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1988-2018 Free Software Foundation, Inc. +# Copyright (C) 1988-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/multiline.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/multiline.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/multiline.exp 2018-10-15 11:36:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/multiline.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2015-2018 Free Software Foundation, Inc. +# Copyright (C) 2015-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/obj-c++-dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/obj-c++-dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/obj-c++-dg.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/obj-c++-dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/objc-dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/objc-dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/objc-dg.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/objc-dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/obj-c++.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/obj-c++.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/obj-c++.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/obj-c++.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/objc.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/objc.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/objc.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/objc.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1992-2018 Free Software Foundation, Inc. +# Copyright (C) 1992-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/objc-torture.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/objc-torture.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/objc-torture.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/objc-torture.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1992-2018 Free Software Foundation, Inc. +# Copyright (C) 1992-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/options.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/options.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/options.exp 2018-11-22 10:29:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/options.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/plugin-support.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/plugin-support.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/plugin-support.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/plugin-support.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/profopt.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/profopt.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/profopt.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/profopt.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/prune.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/prune.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/prune.exp 2018-08-12 11:28:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/prune.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scanasm.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scanasm.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scanasm.exp 2018-05-31 09:39:23.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scanasm.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2018 Free Software Foundation, Inc. +# Copyright (C) 2000-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scandump.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scandump.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scandump.exp 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scandump.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2018 Free Software Foundation, Inc. +# Copyright (C) 2000-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scanipa.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scanipa.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scanipa.exp 2018-05-31 09:39:23.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scanipa.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2018 Free Software Foundation, Inc. +# Copyright (C) 2000-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scanlang.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scanlang.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scanlang.exp 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scanlang.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2018 Free Software Foundation, Inc. +# Copyright (C) 2000-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scanltranstree.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scanltranstree.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scanltranstree.exp 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scanltranstree.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2018 Free Software Foundation, Inc. +# Copyright (C) 2000-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scanoffloadrtl.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scanoffloadrtl.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scanoffloadrtl.exp 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scanoffloadrtl.exp 2019-01-02 08:05:16.000000000 +0000 @@ -0,0 +1,147 @@ +# Copyright (C) 2018-2019 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# . + +# Various utilities for scanning offloading rtl dump output, used by +# libgomp.exp. + +load_lib scandump.exp + +# Utility for scanning compiler result, invoked via dg-final. +# Call pass if pattern is present, otherwise fail. +# +# Argument 0 is the regexp to match +# Argument 1 is the name of the dumped rtl pass +# Argument 2 handles expected failures and the like +proc scan-offload-rtl-dump { args } { + + if { [llength $args] < 2 } { + error "scan-offload-rtl-dump: too few arguments" + return + } + if { [llength $args] > 3 } { + error "scan-offload-rtl-dump: too many arguments" + return + } + if { [llength $args] >= 3 } { + scan-dump "offload-rtl" [lindex $args 0] \ + "\[0-9\]\[0-9\]\[0-9]r.[lindex $args 1]" ".o" \ + [lindex $args 2] + } else { + scan-dump "offload-rtl" [lindex $args 0] \ + "\[0-9\]\[0-9\]\[0-9]r.[lindex $args 1]" ".o" + } +} + +# Call pass if pattern is present given number of times, otherwise fail. +# Argument 0 is the regexp to match +# Argument 1 is number of times the regexp must be found +# Argument 2 is the name of the dumped rtl pass +# Argument 3 handles expected failures and the like +proc scan-offload-rtl-dump-times { args } { + + if { [llength $args] < 3 } { + error "scan-offload-rtl-dump-times: too few arguments" + return + } + if { [llength $args] > 4 } { + error "scan-offload-rtl-dump-times: too many arguments" + return + } + if { [llength $args] >= 4 } { + scan-dump-times "offload-rtl" [lindex $args 0] [lindex $args 1] \ + "\[0-9\]\[0-9\]\[0-9]r.[lindex $args 2]" ".o" \ + [lindex $args 3] + } else { + scan-dump-times "offload-rtl" [lindex $args 0] [lindex $args 1] \ + "\[0-9\]\[0-9\]\[0-9]r.[lindex $args 2]" ".o" + } +} + +# Call pass if pattern is not present, otherwise fail. +# +# Argument 0 is the regexp to match +# Argument 1 is the name of the dumped rtl pass +# Argument 2 handles expected failures and the like +proc scan-offload-rtl-dump-not { args } { + + if { [llength $args] < 2 } { + error "scan-offload-rtl-dump-not: too few arguments" + return + } + if { [llength $args] > 3 } { + error "scan-offload-rtl-dump-not: too many arguments" + return + } + if { [llength $args] >= 3 } { + scan-dump-not "offload-rtl" [lindex $args 0] \ + "\[0-9\]\[0-9\]\[0-9]r.[lindex $args 1]" ".o" \ + [lindex $args 2] + } else { + scan-dump-not "offload-rtl" [lindex $args 0] \ + "\[0-9\]\[0-9\]\[0-9]r.[lindex $args 1]" ".o" + } +} + +# Utility for scanning demangled compiler result, invoked via dg-final. +# Call pass if pattern is present, otherwise fail. +# +# Argument 0 is the regexp to match +# Argument 1 is the name of the dumped rtl pass +# Argument 2 handles expected failures and the like +proc scan-offload-rtl-dump-dem { args } { + + if { [llength $args] < 2 } { + error "scan-offload-rtl-dump-dem: too few arguments" + return + } + if { [llength $args] > 3 } { + error "scan-offload-rtl-dump-dem: too many arguments" + return + } + if { [llength $args] >= 3 } { + scan-dump-dem "offload-rtl" [lindex $args 0] \ + "\[0-9\]\[0-9\]\[0-9]r.[lindex $args 1]" ".o" \ + [lindex $args 2] + } else { + scan-dump-dem "offload-rtl" [lindex $args 0] \ + "\[0-9\]\[0-9\]\[0-9]r.[lindex $args 1]" ".o" + } +} + +# Call pass if demangled pattern is not present, otherwise fail. +# +# Argument 0 is the regexp to match +# Argument 1 is the name of the dumped rtl pass +# Argument 2 handles expected failures and the like +proc scan-offload-rtl-dump-dem-not { args } { + + if { [llength $args] < 2 } { + error "scan-offload-rtl-dump-dem-not: too few arguments" + return + } + if { [llength $args] > 3 } { + error "scan-offload-rtl-dump-dem-not: too many arguments" + return + } + if { [llength $args] >= 3 } { + scan-dump-dem-not "offload-rtl" [lindex $args 0] \ + "\[0-9\]\[0-9\]\[0-9]r.[lindex $args 1]" ".o" \ + [lindex $args 2] + } else { + scan-dump-dem-not "offload-rtl" [lindex $args 0] \ + "\[0-9\]\[0-9\]\[0-9]r.[lindex $args 1]" ".o" + } +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scanoffloadtree.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scanoffloadtree.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scanoffloadtree.exp 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scanoffloadtree.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scanrtl.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scanrtl.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scanrtl.exp 2018-05-31 09:39:23.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scanrtl.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scantree.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scantree.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scantree.exp 2018-05-31 09:39:23.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scantree.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2018 Free Software Foundation, Inc. +# Copyright (C) 2000-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scanwpaipa.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scanwpaipa.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/scanwpaipa.exp 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/scanwpaipa.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/target-libpath.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/target-libpath.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/target-libpath.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/target-libpath.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/target-supports-dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/target-supports-dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/target-supports-dg.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/target-supports-dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/target-supports.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/target-supports.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/target-supports.exp 2018-12-14 05:16:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/target-supports.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -5925,7 +5925,10 @@ proc check_effective_target_vect_usad_char { } { return [check_cached_effective_target_indexed vect_usad_char { - expr { [istarget i?86-*-*] || [istarget x86_64-*-*] }}] + expr { [istarget i?86-*-*] + || [istarget x86_64-*-*] + || ([istarget aarch64*-*-*] + && ![check_effective_target_aarch64_sve])}}] } # Return 1 if the target plus current options supports both signed diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/target-utils.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/target-utils.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/target-utils.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/target-utils.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/timeout-dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/timeout-dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/timeout-dg.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/timeout-dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/timeout.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/timeout.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/timeout.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/timeout.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/torture-options.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/torture-options.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/torture-options.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/torture-options.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/tsan-dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/tsan-dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/tsan-dg.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/tsan-dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/ubsan-dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/ubsan-dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/ubsan-dg.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/ubsan-dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2018 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/wrapper.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/wrapper.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/lib/wrapper.exp 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/lib/wrapper.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc/compile/compile.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc/compile/compile.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc/compile/compile.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc/compile/compile.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2018 Free Software Foundation, Inc. +# Copyright (C) 1991-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc/execute/exceptions/exceptions.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc/execute/exceptions/exceptions.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc/execute/exceptions/exceptions.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc/execute/exceptions/exceptions.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2018 Free Software Foundation, Inc. +# Copyright (C) 1991-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc/execute/execute.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc/execute/execute.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc/execute/execute.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc/execute/execute.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2018 Free Software Foundation, Inc. +# Copyright (C) 1991-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/attributes/attributes.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/attributes/attributes.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/attributes/attributes.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/attributes/attributes.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/dg.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # GCC Objective-C++ testsuite that uses the `dg.exp' driver. -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/lto/lto.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/lto/lto.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/lto/lto.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/lto/lto.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/plugin/plugin.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/plugin/plugin.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/plugin/plugin.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/plugin/plugin.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/property/property.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/property/property.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/property/property.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/property/property.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # GCC Objective-C++ testsuite that uses the `dg.exp' driver. -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/strings/strings.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/strings/strings.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/strings/strings.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/strings/strings.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ # String tests that only need to run at default optimization. -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/torture/strings/strings.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/torture/strings/strings.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/torture/strings/strings.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/obj-c++.dg/torture/strings/strings.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ # String tests that should be run at all optimization levels. -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/attributes/attributes.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/attributes/attributes.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/attributes/attributes.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/attributes/attributes.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/dg.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/dg.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/dg.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/dg.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # GCC Objective-C testsuite that uses the `dg.exp' driver. -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # GCC Objective-C testsuite that uses the `dg.exp' driver. -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/lto/lto.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/lto/lto.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/lto/lto.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/lto/lto.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/pch/pch.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/pch/pch.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/pch/pch.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/pch/pch.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/plugin/plugin.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/plugin/plugin.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/plugin/plugin.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/plugin/plugin.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/property/property.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/property/property.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/property/property.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/property/property.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # GCC Objective-C testsuite that uses the `dg.exp' driver. -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/special/special.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/special/special.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/special/special.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/special/special.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ # GCC Objective-C testsuite that uses the `dg.exp' driver. -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/strings/strings.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/strings/strings.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/strings/strings.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/strings/strings.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ # String tests that only need to run at default optimization. -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/torture/strings/strings.exp gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/torture/strings/strings.exp --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc.dg/torture/strings/strings.exp 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc.dg/torture/strings/strings.exp 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ # String tests that should be run at all optimization levels. -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Very simple root class for writing testcases. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Nicola Pero This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/README gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/README --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/README 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/README 2019-01-02 08:05:16.000000000 +0000 @@ -61,7 +61,7 @@ testsuite directory. -Copyright (C) 1998-2018 Free Software Foundation, Inc. +Copyright (C) 1998-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/README.compat gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/README.compat --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/README.compat 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/README.compat 2019-01-02 08:05:16.000000000 +0000 @@ -85,7 +85,7 @@ October 2002 -Copyright (C) 2002-2018 Free Software Foundation, Inc. +Copyright (C) 2002-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/README.gcc gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/README.gcc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/testsuite/README.gcc 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/testsuite/README.gcc 2019-01-02 08:05:16.000000000 +0000 @@ -80,7 +80,7 @@ If a test does not fit into the torture framework, use the dg framework. -Copyright (C) 1997-2018 Free Software Foundation, Inc. +Copyright (C) 1997-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/timevar.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/timevar.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/timevar.c 2018-03-06 16:37:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/timevar.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Timing variables for measuring compiler performance. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Alex Samuel This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/timevar.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/timevar.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/timevar.def 2018-01-14 10:48:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/timevar.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* This file contains the definitions for timing variables used to measure run-time performance of the compiler. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Alex Samuel This file is part of GCC. @@ -234,6 +234,7 @@ DEFTIMEVAR (TV_DSE2 , "dead store elim2") DEFTIMEVAR (TV_LOOP , "loop analysis") DEFTIMEVAR (TV_LOOP_INIT , "loop init") +DEFTIMEVAR (TV_LOOP_VERSIONING , "loop versioning") DEFTIMEVAR (TV_LOOP_MOVE_INVARIANTS , "loop invariant motion") DEFTIMEVAR (TV_LOOP_UNROLL , "loop unrolling") DEFTIMEVAR (TV_LOOP_DOLOOP , "loop doloop") diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/timevar.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/timevar.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/timevar.h 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/timevar.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Timing variables for measuring compiler performance. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Alex Samuel This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tlink.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tlink.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tlink.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tlink.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,7 +1,7 @@ /* Scan linker error messages for missing template instantiations and provide them. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. Contributed by Jason Merrill (jason@cygnus.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/toplev.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/toplev.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/toplev.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/toplev.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Top level of GCC compilers (cc1, cc1plus, etc.) - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/toplev.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/toplev.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/toplev.h 2018-07-09 11:23:03.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/toplev.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* toplev.h - Various declarations for functions found in toplev.c - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tracer.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tracer.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tracer.c 2018-06-04 16:10:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tracer.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ /* The tracer pass for the GNU compiler. Contributed by Jan Hubicka, SuSE Labs. Adapted to work on GIMPLE instead of RTL by Robert Kidd, UIUC. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tracer.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tracer.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tracer.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tracer.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for Tracer. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/trans-mem.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/trans-mem.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/trans-mem.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/trans-mem.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Passes for transactional memory support. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Richard Henderson and Aldy Hernandez . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/trans-mem.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/trans-mem.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/trans-mem.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/trans-mem.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Miscellaneous transactional memory support definitions. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Richard Henderson and Aldy Hernandez . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-affine.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-affine.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-affine.c 2018-12-10 19:27:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-affine.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Operations with affine combinations of trees. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-affine.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-affine.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-affine.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-affine.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Operations with affine combinations of trees. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree.c 2018-11-29 22:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Language-independent node constructors for parse phase of GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -2208,6 +2208,9 @@ tree build_complex (tree type, tree real, tree imag) { + gcc_assert (CONSTANT_CLASS_P (real)); + gcc_assert (CONSTANT_CLASS_P (imag)); + tree t = make_node (COMPLEX_CST); TREE_REALPART (t) = real; @@ -2506,11 +2509,13 @@ } /* Return 1 if EXPR is the integer constant zero or a complex constant - of zero. */ + of zero, or a location wrapper for such a constant. */ bool integer_zerop (const_tree expr) { + STRIP_ANY_LOCATION_WRAPPER (expr); + switch (TREE_CODE (expr)) { case INTEGER_CST: @@ -2528,11 +2533,13 @@ } /* Return 1 if EXPR is the integer constant one or the corresponding - complex constant. */ + complex constant, or a location wrapper for such a constant. */ bool integer_onep (const_tree expr) { + STRIP_ANY_LOCATION_WRAPPER (expr); + switch (TREE_CODE (expr)) { case INTEGER_CST: @@ -2550,11 +2557,14 @@ } /* Return 1 if EXPR is the integer constant one. For complex and vector, - return 1 if every piece is the integer constant one. */ + return 1 if every piece is the integer constant one. + Also return 1 for location wrappers for such a constant. */ bool integer_each_onep (const_tree expr) { + STRIP_ANY_LOCATION_WRAPPER (expr); + if (TREE_CODE (expr) == COMPLEX_CST) return (integer_onep (TREE_REALPART (expr)) && integer_onep (TREE_IMAGPART (expr))); @@ -2563,11 +2573,14 @@ } /* Return 1 if EXPR is an integer containing all 1's in as much precision as - it contains, or a complex or vector whose subparts are such integers. */ + it contains, or a complex or vector whose subparts are such integers, + or a location wrapper for such a constant. */ bool integer_all_onesp (const_tree expr) { + STRIP_ANY_LOCATION_WRAPPER (expr); + if (TREE_CODE (expr) == COMPLEX_CST && integer_all_onesp (TREE_REALPART (expr)) && integer_all_onesp (TREE_IMAGPART (expr))) @@ -2585,11 +2598,14 @@ == wi::to_wide (expr)); } -/* Return 1 if EXPR is the integer constant minus one. */ +/* Return 1 if EXPR is the integer constant minus one, or a location wrapper + for such a constant. */ bool integer_minus_onep (const_tree expr) { + STRIP_ANY_LOCATION_WRAPPER (expr); + if (TREE_CODE (expr) == COMPLEX_CST) return (integer_all_onesp (TREE_REALPART (expr)) && integer_zerop (TREE_IMAGPART (expr))); @@ -2598,11 +2614,13 @@ } /* Return 1 if EXPR is an integer constant that is a power of 2 (i.e., has only - one bit on). */ + one bit on), or a location wrapper for such a constant. */ bool integer_pow2p (const_tree expr) { + STRIP_ANY_LOCATION_WRAPPER (expr); + if (TREE_CODE (expr) == COMPLEX_CST && integer_pow2p (TREE_REALPART (expr)) && integer_zerop (TREE_IMAGPART (expr))) @@ -2615,11 +2633,14 @@ } /* Return 1 if EXPR is an integer constant other than zero or a - complex constant other than zero. */ + complex constant other than zero, or a location wrapper for such a + constant. */ bool integer_nonzerop (const_tree expr) { + STRIP_ANY_LOCATION_WRAPPER (expr); + return ((TREE_CODE (expr) == INTEGER_CST && wi::to_wide (expr) != 0) || (TREE_CODE (expr) == COMPLEX_CST @@ -2629,21 +2650,27 @@ /* Return 1 if EXPR is the integer constant one. For vector, return 1 if every piece is the integer constant minus one - (representing the value TRUE). */ + (representing the value TRUE). + Also return 1 for location wrappers for such a constant. */ bool integer_truep (const_tree expr) { + STRIP_ANY_LOCATION_WRAPPER (expr); + if (TREE_CODE (expr) == VECTOR_CST) return integer_all_onesp (expr); return integer_onep (expr); } -/* Return 1 if EXPR is the fixed-point constant zero. */ +/* Return 1 if EXPR is the fixed-point constant zero, or a location wrapper + for such a constant. */ bool fixed_zerop (const_tree expr) { + STRIP_ANY_LOCATION_WRAPPER (expr); + return (TREE_CODE (expr) == FIXED_CST && TREE_FIXED_CST (expr).data.is_zero ()); } @@ -2784,11 +2811,14 @@ } /* Return 1 if EXPR is the real constant zero. Trailing zeroes matter for - decimal float constants, so don't return 1 for them. */ + decimal float constants, so don't return 1 for them. + Also return 1 for location wrappers around such a constant. */ bool real_zerop (const_tree expr) { + STRIP_ANY_LOCATION_WRAPPER (expr); + switch (TREE_CODE (expr)) { case REAL_CST: @@ -2814,11 +2844,14 @@ /* Return 1 if EXPR is the real constant one in real or complex form. Trailing zeroes matter for decimal float constants, so don't return - 1 for them. */ + 1 for them. + Also return 1 for location wrappers around such a constant. */ bool real_onep (const_tree expr) { + STRIP_ANY_LOCATION_WRAPPER (expr); + switch (TREE_CODE (expr)) { case REAL_CST: @@ -2837,11 +2870,14 @@ } /* Return 1 if EXPR is the real constant minus one. Trailing zeroes - matter for decimal float constants, so don't return 1 for them. */ + matter for decimal float constants, so don't return 1 for them. + Also return 1 for location wrappers around such a constant. */ bool real_minus_onep (const_tree expr) { + STRIP_ANY_LOCATION_WRAPPER (expr); + switch (TREE_CODE (expr)) { case REAL_CST: @@ -5336,7 +5372,8 @@ return t; if (POINTER_TYPE_P (t)) return fld_incomplete_type_of (t, fld); - if (TREE_CODE (t) == ARRAY_TYPE) + /* FIXME: This triggers verification error, see PR88140. */ + if (TREE_CODE (t) == ARRAY_TYPE && 0) return fld_process_array_type (t, fld_simplified_type (TREE_TYPE (t), fld), fld_simplified_types, fld); return t; @@ -6154,7 +6191,12 @@ /* If we are the LTO frontend we have freed lang-specific data already. */ if (in_lto_p || (!flag_generate_lto && !flag_generate_offload)) - return 0; + { + /* Rebuild type inheritance graph even when not doing LTO to get + consistent profile data. */ + rebuild_type_inheritance_graph (); + return 0; + } fld_incomplete_types = new hash_map; fld_simplified_types = new hash_map; @@ -7106,6 +7148,9 @@ if (t1 == 0 || t2 == 0) return 0; + STRIP_ANY_LOCATION_WRAPPER (t1); + STRIP_ANY_LOCATION_WRAPPER (t2); + if (TREE_CODE (t1) == INTEGER_CST && TREE_CODE (t2) == INTEGER_CST && wi::to_widest (t1) == wi::to_widest (t2)) @@ -7266,6 +7311,15 @@ if (t1 == 0 || t2 == 0) return 0; + /* For location wrappers to be the same, they must be at the same + source location (and wrap the same thing). */ + if (location_wrapper_p (t1) && location_wrapper_p (t2)) + { + if (EXPR_LOCATION (t1) != EXPR_LOCATION (t2)) + return 0; + return simple_cst_equal (TREE_OPERAND (t1, 0), TREE_OPERAND (t2, 0)); + } + code1 = TREE_CODE (t1); code2 = TREE_CODE (t2); @@ -11226,11 +11280,14 @@ /* If the argument is INTEGER_CST, return it. If the argument is vector with all elements the same INTEGER_CST, return that INTEGER_CST. Otherwise - return NULL_TREE. */ + return NULL_TREE. + Look through location wrappers. */ tree uniform_integer_cst_p (tree t) { + STRIP_ANY_LOCATION_WRAPPER (t); + if (TREE_CODE (t) == INTEGER_CST) return t; @@ -12787,25 +12844,6 @@ return true; } -/* REF is OBJ_TYPE_REF, return the class the ref corresponds to. */ - -tree -obj_type_ref_class (const_tree ref) -{ - gcc_checking_assert (TREE_CODE (ref) == OBJ_TYPE_REF); - ref = TREE_TYPE (ref); - gcc_checking_assert (TREE_CODE (ref) == POINTER_TYPE); - ref = TREE_TYPE (ref); - /* We look for type THIS points to. ObjC also builds - OBJ_TYPE_REF with non-method calls, Their first parameter - ID however also corresponds to class type. */ - gcc_checking_assert (TREE_CODE (ref) == METHOD_TYPE - || TREE_CODE (ref) == FUNCTION_TYPE); - ref = TREE_VALUE (TYPE_ARG_TYPES (ref)); - gcc_checking_assert (TREE_CODE (ref) == POINTER_TYPE); - return TREE_TYPE (ref); -} - /* Lookup sub-BINFO of BINFO of TYPE at offset POS. */ static tree @@ -14646,6 +14684,11 @@ if (EXCEPTIONAL_CLASS_P (expr)) return expr; + /* If any auto_suppress_location_wrappers are active, don't create + wrappers. */ + if (suppress_location_wrappers > 0) + return expr; + tree_code code = (((CONSTANT_CLASS_P (expr) && TREE_CODE (expr) != STRING_CST) || (TREE_CODE (expr) == CONST_DECL && !TREE_STATIC (expr))) @@ -14656,6 +14699,8 @@ return wrapper; } +int suppress_location_wrappers; + /* Return the name of combined function FN, for debugging purposes. */ const char * @@ -15146,6 +15191,323 @@ check_strip_nops (wrapped_int_var, int_var); } +/* Test various tree predicates. Verify that location wrappers don't + affect the results. */ + +static void +test_predicates () +{ + /* Build various constants and wrappers around them. */ + + location_t loc = BUILTINS_LOCATION; + + tree i_0 = build_int_cst (integer_type_node, 0); + tree wr_i_0 = maybe_wrap_with_location (i_0, loc); + + tree i_1 = build_int_cst (integer_type_node, 1); + tree wr_i_1 = maybe_wrap_with_location (i_1, loc); + + tree i_m1 = build_int_cst (integer_type_node, -1); + tree wr_i_m1 = maybe_wrap_with_location (i_m1, loc); + + tree f_0 = build_real_from_int_cst (float_type_node, i_0); + tree wr_f_0 = maybe_wrap_with_location (f_0, loc); + tree f_1 = build_real_from_int_cst (float_type_node, i_1); + tree wr_f_1 = maybe_wrap_with_location (f_1, loc); + tree f_m1 = build_real_from_int_cst (float_type_node, i_m1); + tree wr_f_m1 = maybe_wrap_with_location (f_m1, loc); + + tree c_i_0 = build_complex (NULL_TREE, i_0, i_0); + tree c_i_1 = build_complex (NULL_TREE, i_1, i_0); + tree c_i_m1 = build_complex (NULL_TREE, i_m1, i_0); + + tree c_f_0 = build_complex (NULL_TREE, f_0, f_0); + tree c_f_1 = build_complex (NULL_TREE, f_1, f_0); + tree c_f_m1 = build_complex (NULL_TREE, f_m1, f_0); + + /* TODO: vector constants. */ + + /* Test integer_onep. */ + ASSERT_FALSE (integer_onep (i_0)); + ASSERT_FALSE (integer_onep (wr_i_0)); + ASSERT_TRUE (integer_onep (i_1)); + ASSERT_TRUE (integer_onep (wr_i_1)); + ASSERT_FALSE (integer_onep (i_m1)); + ASSERT_FALSE (integer_onep (wr_i_m1)); + ASSERT_FALSE (integer_onep (f_0)); + ASSERT_FALSE (integer_onep (wr_f_0)); + ASSERT_FALSE (integer_onep (f_1)); + ASSERT_FALSE (integer_onep (wr_f_1)); + ASSERT_FALSE (integer_onep (f_m1)); + ASSERT_FALSE (integer_onep (wr_f_m1)); + ASSERT_FALSE (integer_onep (c_i_0)); + ASSERT_TRUE (integer_onep (c_i_1)); + ASSERT_FALSE (integer_onep (c_i_m1)); + ASSERT_FALSE (integer_onep (c_f_0)); + ASSERT_FALSE (integer_onep (c_f_1)); + ASSERT_FALSE (integer_onep (c_f_m1)); + + /* Test integer_zerop. */ + ASSERT_TRUE (integer_zerop (i_0)); + ASSERT_TRUE (integer_zerop (wr_i_0)); + ASSERT_FALSE (integer_zerop (i_1)); + ASSERT_FALSE (integer_zerop (wr_i_1)); + ASSERT_FALSE (integer_zerop (i_m1)); + ASSERT_FALSE (integer_zerop (wr_i_m1)); + ASSERT_FALSE (integer_zerop (f_0)); + ASSERT_FALSE (integer_zerop (wr_f_0)); + ASSERT_FALSE (integer_zerop (f_1)); + ASSERT_FALSE (integer_zerop (wr_f_1)); + ASSERT_FALSE (integer_zerop (f_m1)); + ASSERT_FALSE (integer_zerop (wr_f_m1)); + ASSERT_TRUE (integer_zerop (c_i_0)); + ASSERT_FALSE (integer_zerop (c_i_1)); + ASSERT_FALSE (integer_zerop (c_i_m1)); + ASSERT_FALSE (integer_zerop (c_f_0)); + ASSERT_FALSE (integer_zerop (c_f_1)); + ASSERT_FALSE (integer_zerop (c_f_m1)); + + /* Test integer_all_onesp. */ + ASSERT_FALSE (integer_all_onesp (i_0)); + ASSERT_FALSE (integer_all_onesp (wr_i_0)); + ASSERT_FALSE (integer_all_onesp (i_1)); + ASSERT_FALSE (integer_all_onesp (wr_i_1)); + ASSERT_TRUE (integer_all_onesp (i_m1)); + ASSERT_TRUE (integer_all_onesp (wr_i_m1)); + ASSERT_FALSE (integer_all_onesp (f_0)); + ASSERT_FALSE (integer_all_onesp (wr_f_0)); + ASSERT_FALSE (integer_all_onesp (f_1)); + ASSERT_FALSE (integer_all_onesp (wr_f_1)); + ASSERT_FALSE (integer_all_onesp (f_m1)); + ASSERT_FALSE (integer_all_onesp (wr_f_m1)); + ASSERT_FALSE (integer_all_onesp (c_i_0)); + ASSERT_FALSE (integer_all_onesp (c_i_1)); + ASSERT_FALSE (integer_all_onesp (c_i_m1)); + ASSERT_FALSE (integer_all_onesp (c_f_0)); + ASSERT_FALSE (integer_all_onesp (c_f_1)); + ASSERT_FALSE (integer_all_onesp (c_f_m1)); + + /* Test integer_minus_onep. */ + ASSERT_FALSE (integer_minus_onep (i_0)); + ASSERT_FALSE (integer_minus_onep (wr_i_0)); + ASSERT_FALSE (integer_minus_onep (i_1)); + ASSERT_FALSE (integer_minus_onep (wr_i_1)); + ASSERT_TRUE (integer_minus_onep (i_m1)); + ASSERT_TRUE (integer_minus_onep (wr_i_m1)); + ASSERT_FALSE (integer_minus_onep (f_0)); + ASSERT_FALSE (integer_minus_onep (wr_f_0)); + ASSERT_FALSE (integer_minus_onep (f_1)); + ASSERT_FALSE (integer_minus_onep (wr_f_1)); + ASSERT_FALSE (integer_minus_onep (f_m1)); + ASSERT_FALSE (integer_minus_onep (wr_f_m1)); + ASSERT_FALSE (integer_minus_onep (c_i_0)); + ASSERT_FALSE (integer_minus_onep (c_i_1)); + ASSERT_TRUE (integer_minus_onep (c_i_m1)); + ASSERT_FALSE (integer_minus_onep (c_f_0)); + ASSERT_FALSE (integer_minus_onep (c_f_1)); + ASSERT_FALSE (integer_minus_onep (c_f_m1)); + + /* Test integer_each_onep. */ + ASSERT_FALSE (integer_each_onep (i_0)); + ASSERT_FALSE (integer_each_onep (wr_i_0)); + ASSERT_TRUE (integer_each_onep (i_1)); + ASSERT_TRUE (integer_each_onep (wr_i_1)); + ASSERT_FALSE (integer_each_onep (i_m1)); + ASSERT_FALSE (integer_each_onep (wr_i_m1)); + ASSERT_FALSE (integer_each_onep (f_0)); + ASSERT_FALSE (integer_each_onep (wr_f_0)); + ASSERT_FALSE (integer_each_onep (f_1)); + ASSERT_FALSE (integer_each_onep (wr_f_1)); + ASSERT_FALSE (integer_each_onep (f_m1)); + ASSERT_FALSE (integer_each_onep (wr_f_m1)); + ASSERT_FALSE (integer_each_onep (c_i_0)); + ASSERT_FALSE (integer_each_onep (c_i_1)); + ASSERT_FALSE (integer_each_onep (c_i_m1)); + ASSERT_FALSE (integer_each_onep (c_f_0)); + ASSERT_FALSE (integer_each_onep (c_f_1)); + ASSERT_FALSE (integer_each_onep (c_f_m1)); + + /* Test integer_truep. */ + ASSERT_FALSE (integer_truep (i_0)); + ASSERT_FALSE (integer_truep (wr_i_0)); + ASSERT_TRUE (integer_truep (i_1)); + ASSERT_TRUE (integer_truep (wr_i_1)); + ASSERT_FALSE (integer_truep (i_m1)); + ASSERT_FALSE (integer_truep (wr_i_m1)); + ASSERT_FALSE (integer_truep (f_0)); + ASSERT_FALSE (integer_truep (wr_f_0)); + ASSERT_FALSE (integer_truep (f_1)); + ASSERT_FALSE (integer_truep (wr_f_1)); + ASSERT_FALSE (integer_truep (f_m1)); + ASSERT_FALSE (integer_truep (wr_f_m1)); + ASSERT_FALSE (integer_truep (c_i_0)); + ASSERT_TRUE (integer_truep (c_i_1)); + ASSERT_FALSE (integer_truep (c_i_m1)); + ASSERT_FALSE (integer_truep (c_f_0)); + ASSERT_FALSE (integer_truep (c_f_1)); + ASSERT_FALSE (integer_truep (c_f_m1)); + + /* Test integer_nonzerop. */ + ASSERT_FALSE (integer_nonzerop (i_0)); + ASSERT_FALSE (integer_nonzerop (wr_i_0)); + ASSERT_TRUE (integer_nonzerop (i_1)); + ASSERT_TRUE (integer_nonzerop (wr_i_1)); + ASSERT_TRUE (integer_nonzerop (i_m1)); + ASSERT_TRUE (integer_nonzerop (wr_i_m1)); + ASSERT_FALSE (integer_nonzerop (f_0)); + ASSERT_FALSE (integer_nonzerop (wr_f_0)); + ASSERT_FALSE (integer_nonzerop (f_1)); + ASSERT_FALSE (integer_nonzerop (wr_f_1)); + ASSERT_FALSE (integer_nonzerop (f_m1)); + ASSERT_FALSE (integer_nonzerop (wr_f_m1)); + ASSERT_FALSE (integer_nonzerop (c_i_0)); + ASSERT_TRUE (integer_nonzerop (c_i_1)); + ASSERT_TRUE (integer_nonzerop (c_i_m1)); + ASSERT_FALSE (integer_nonzerop (c_f_0)); + ASSERT_FALSE (integer_nonzerop (c_f_1)); + ASSERT_FALSE (integer_nonzerop (c_f_m1)); + + /* Test real_zerop. */ + ASSERT_FALSE (real_zerop (i_0)); + ASSERT_FALSE (real_zerop (wr_i_0)); + ASSERT_FALSE (real_zerop (i_1)); + ASSERT_FALSE (real_zerop (wr_i_1)); + ASSERT_FALSE (real_zerop (i_m1)); + ASSERT_FALSE (real_zerop (wr_i_m1)); + ASSERT_TRUE (real_zerop (f_0)); + ASSERT_TRUE (real_zerop (wr_f_0)); + ASSERT_FALSE (real_zerop (f_1)); + ASSERT_FALSE (real_zerop (wr_f_1)); + ASSERT_FALSE (real_zerop (f_m1)); + ASSERT_FALSE (real_zerop (wr_f_m1)); + ASSERT_FALSE (real_zerop (c_i_0)); + ASSERT_FALSE (real_zerop (c_i_1)); + ASSERT_FALSE (real_zerop (c_i_m1)); + ASSERT_TRUE (real_zerop (c_f_0)); + ASSERT_FALSE (real_zerop (c_f_1)); + ASSERT_FALSE (real_zerop (c_f_m1)); + + /* Test real_onep. */ + ASSERT_FALSE (real_onep (i_0)); + ASSERT_FALSE (real_onep (wr_i_0)); + ASSERT_FALSE (real_onep (i_1)); + ASSERT_FALSE (real_onep (wr_i_1)); + ASSERT_FALSE (real_onep (i_m1)); + ASSERT_FALSE (real_onep (wr_i_m1)); + ASSERT_FALSE (real_onep (f_0)); + ASSERT_FALSE (real_onep (wr_f_0)); + ASSERT_TRUE (real_onep (f_1)); + ASSERT_TRUE (real_onep (wr_f_1)); + ASSERT_FALSE (real_onep (f_m1)); + ASSERT_FALSE (real_onep (wr_f_m1)); + ASSERT_FALSE (real_onep (c_i_0)); + ASSERT_FALSE (real_onep (c_i_1)); + ASSERT_FALSE (real_onep (c_i_m1)); + ASSERT_FALSE (real_onep (c_f_0)); + ASSERT_TRUE (real_onep (c_f_1)); + ASSERT_FALSE (real_onep (c_f_m1)); + + /* Test real_minus_onep. */ + ASSERT_FALSE (real_minus_onep (i_0)); + ASSERT_FALSE (real_minus_onep (wr_i_0)); + ASSERT_FALSE (real_minus_onep (i_1)); + ASSERT_FALSE (real_minus_onep (wr_i_1)); + ASSERT_FALSE (real_minus_onep (i_m1)); + ASSERT_FALSE (real_minus_onep (wr_i_m1)); + ASSERT_FALSE (real_minus_onep (f_0)); + ASSERT_FALSE (real_minus_onep (wr_f_0)); + ASSERT_FALSE (real_minus_onep (f_1)); + ASSERT_FALSE (real_minus_onep (wr_f_1)); + ASSERT_TRUE (real_minus_onep (f_m1)); + ASSERT_TRUE (real_minus_onep (wr_f_m1)); + ASSERT_FALSE (real_minus_onep (c_i_0)); + ASSERT_FALSE (real_minus_onep (c_i_1)); + ASSERT_FALSE (real_minus_onep (c_i_m1)); + ASSERT_FALSE (real_minus_onep (c_f_0)); + ASSERT_FALSE (real_minus_onep (c_f_1)); + ASSERT_TRUE (real_minus_onep (c_f_m1)); + + /* Test zerop. */ + ASSERT_TRUE (zerop (i_0)); + ASSERT_TRUE (zerop (wr_i_0)); + ASSERT_FALSE (zerop (i_1)); + ASSERT_FALSE (zerop (wr_i_1)); + ASSERT_FALSE (zerop (i_m1)); + ASSERT_FALSE (zerop (wr_i_m1)); + ASSERT_TRUE (zerop (f_0)); + ASSERT_TRUE (zerop (wr_f_0)); + ASSERT_FALSE (zerop (f_1)); + ASSERT_FALSE (zerop (wr_f_1)); + ASSERT_FALSE (zerop (f_m1)); + ASSERT_FALSE (zerop (wr_f_m1)); + ASSERT_TRUE (zerop (c_i_0)); + ASSERT_FALSE (zerop (c_i_1)); + ASSERT_FALSE (zerop (c_i_m1)); + ASSERT_TRUE (zerop (c_f_0)); + ASSERT_FALSE (zerop (c_f_1)); + ASSERT_FALSE (zerop (c_f_m1)); + + /* Test tree_expr_nonnegative_p. */ + ASSERT_TRUE (tree_expr_nonnegative_p (i_0)); + ASSERT_TRUE (tree_expr_nonnegative_p (wr_i_0)); + ASSERT_TRUE (tree_expr_nonnegative_p (i_1)); + ASSERT_TRUE (tree_expr_nonnegative_p (wr_i_1)); + ASSERT_FALSE (tree_expr_nonnegative_p (i_m1)); + ASSERT_FALSE (tree_expr_nonnegative_p (wr_i_m1)); + ASSERT_TRUE (tree_expr_nonnegative_p (f_0)); + ASSERT_TRUE (tree_expr_nonnegative_p (wr_f_0)); + ASSERT_TRUE (tree_expr_nonnegative_p (f_1)); + ASSERT_TRUE (tree_expr_nonnegative_p (wr_f_1)); + ASSERT_FALSE (tree_expr_nonnegative_p (f_m1)); + ASSERT_FALSE (tree_expr_nonnegative_p (wr_f_m1)); + ASSERT_FALSE (tree_expr_nonnegative_p (c_i_0)); + ASSERT_FALSE (tree_expr_nonnegative_p (c_i_1)); + ASSERT_FALSE (tree_expr_nonnegative_p (c_i_m1)); + ASSERT_FALSE (tree_expr_nonnegative_p (c_f_0)); + ASSERT_FALSE (tree_expr_nonnegative_p (c_f_1)); + ASSERT_FALSE (tree_expr_nonnegative_p (c_f_m1)); + + /* Test tree_expr_nonzero_p. */ + ASSERT_FALSE (tree_expr_nonzero_p (i_0)); + ASSERT_FALSE (tree_expr_nonzero_p (wr_i_0)); + ASSERT_TRUE (tree_expr_nonzero_p (i_1)); + ASSERT_TRUE (tree_expr_nonzero_p (wr_i_1)); + ASSERT_TRUE (tree_expr_nonzero_p (i_m1)); + ASSERT_TRUE (tree_expr_nonzero_p (wr_i_m1)); + + /* Test integer_valued_real_p. */ + ASSERT_FALSE (integer_valued_real_p (i_0)); + ASSERT_TRUE (integer_valued_real_p (f_0)); + ASSERT_TRUE (integer_valued_real_p (wr_f_0)); + ASSERT_TRUE (integer_valued_real_p (f_1)); + ASSERT_TRUE (integer_valued_real_p (wr_f_1)); + + /* Test integer_pow2p. */ + ASSERT_FALSE (integer_pow2p (i_0)); + ASSERT_TRUE (integer_pow2p (i_1)); + ASSERT_TRUE (integer_pow2p (wr_i_1)); + + /* Test uniform_integer_cst_p. */ + ASSERT_TRUE (uniform_integer_cst_p (i_0)); + ASSERT_TRUE (uniform_integer_cst_p (wr_i_0)); + ASSERT_TRUE (uniform_integer_cst_p (i_1)); + ASSERT_TRUE (uniform_integer_cst_p (wr_i_1)); + ASSERT_TRUE (uniform_integer_cst_p (i_m1)); + ASSERT_TRUE (uniform_integer_cst_p (wr_i_m1)); + ASSERT_FALSE (uniform_integer_cst_p (f_0)); + ASSERT_FALSE (uniform_integer_cst_p (wr_f_0)); + ASSERT_FALSE (uniform_integer_cst_p (f_1)); + ASSERT_FALSE (uniform_integer_cst_p (wr_f_1)); + ASSERT_FALSE (uniform_integer_cst_p (f_m1)); + ASSERT_FALSE (uniform_integer_cst_p (wr_f_m1)); + ASSERT_FALSE (uniform_integer_cst_p (c_i_0)); + ASSERT_FALSE (uniform_integer_cst_p (c_i_1)); + ASSERT_FALSE (uniform_integer_cst_p (c_i_m1)); + ASSERT_FALSE (uniform_integer_cst_p (c_f_0)); + ASSERT_FALSE (uniform_integer_cst_p (c_f_1)); + ASSERT_FALSE (uniform_integer_cst_p (c_f_m1)); +} + /* Check that string escaping works correctly. */ static void @@ -15199,6 +15561,7 @@ test_labels (); test_vector_cst_patterns (); test_location_wrappers (); + test_predicates (); test_escaped_strings (); } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-call-cdce.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-call-cdce.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-call-cdce.c 2018-09-08 14:39:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-call-cdce.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Conditional Dead Call Elimination pass for the GNU compiler. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Xinliang David Li This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-cfg.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-cfg.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-cfg.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-cfg.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Control flow functions for trees. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-cfgcleanup.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-cfgcleanup.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-cfgcleanup.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-cfgcleanup.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* CFG cleanup for trees. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-cfgcleanup.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-cfgcleanup.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-cfgcleanup.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-cfgcleanup.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for CFG cleanup for trees. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-cfg.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-cfg.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-cfg.h 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-cfg.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Data and Control Flow Analysis for Trees. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-chrec.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-chrec.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-chrec.c 2018-10-19 09:35:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-chrec.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Chains of recurrences. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Sebastian Pop This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-chrec.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-chrec.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-chrec.h 2018-04-30 13:48:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-chrec.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Chains of recurrences. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Sebastian Pop This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-complex.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-complex.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-complex.c 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-complex.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Lower complex number operations to scalar operations. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-core.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-core.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-core.h 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-core.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Core data structures for the 'tree' type. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-data-ref.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-data-ref.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-data-ref.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-data-ref.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Data references and dependences detectors. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Sebastian Pop This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-data-ref.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-data-ref.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-data-ref.h 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-data-ref.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Data references and dependences detectors. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Sebastian Pop This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree.def 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* This file contains the definitions and documentation for the tree codes used in GCC. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-dfa.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-dfa.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-dfa.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-dfa.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Data flow functions for trees. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-dfa.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-dfa.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-dfa.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-dfa.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for tree data flow functions. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-diagnostic.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-diagnostic.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-diagnostic.c 2018-11-14 18:47:07.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-diagnostic.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,7 +1,7 @@ /* Language-independent diagnostic subroutines for the GNU Compiler Collection that are only for use in the compilers proper and not the driver or other programs. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-diagnostic.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-diagnostic.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-diagnostic.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-diagnostic.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,7 +1,7 @@ /* Various declarations for language-independent diagnostics subroutines that are only for use in the compilers proper and not the driver or other programs. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-dump.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-dump.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-dump.c 2018-05-31 09:39:23.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-dump.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Tree-dumping functionality for intermediate representation. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Written by Mark Mitchell This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-dump.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-dump.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-dump.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-dump.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Tree-dumping functionality for intermediate representation. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Written by Mark Mitchell This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-eh.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-eh.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-eh.c 2018-10-31 16:04:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-eh.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Exception handling semantics and decomposition for trees. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-eh.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-eh.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-eh.h 2018-10-22 12:08:01.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-eh.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for exception handling. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-emutls.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-emutls.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-emutls.c 2018-01-23 00:38:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-emutls.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Lower TLS operations to emulation functions. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree.h 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for the ubiquitous 'tree' type for GNU compilers. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -131,6 +131,12 @@ #define CONSTANT_CLASS_P(NODE)\ (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_constant) +/* Nonzero if NODE represents a constant, or is a location wrapper + around such a node. */ + +#define CONSTANT_CLASS_OR_WRAPPER_P(NODE)\ + (CONSTANT_CLASS_P (tree_strip_any_location_wrapper (NODE))) + /* Nonzero if NODE represents a type. */ #define TYPE_P(NODE)\ @@ -1175,6 +1181,19 @@ extern tree maybe_wrap_with_location (tree, location_t); +extern int suppress_location_wrappers; + +/* A class for suppressing the creation of location wrappers. + Location wrappers will not be created during the lifetime + of an instance of this class. */ + +class auto_suppress_location_wrappers +{ + public: + auto_suppress_location_wrappers () { ++suppress_location_wrappers; } + ~auto_suppress_location_wrappers () { --suppress_location_wrappers; } +}; + /* In a TARGET_EXPR node. */ #define TARGET_EXPR_SLOT(NODE) TREE_OPERAND_CHECK_CODE (NODE, TARGET_EXPR, 0) #define TARGET_EXPR_INITIAL(NODE) TREE_OPERAND_CHECK_CODE (NODE, TARGET_EXPR, 1) @@ -5943,4 +5962,53 @@ && DECL_FUNCTION_CODE (node) == name); } +/* A struct for encapsulating location information about an operator + and the operation built from it. + + m_operator_loc is the location of the operator + m_combined_loc is the location of the compound expression. + + For example, given "a && b" the, operator location is: + a && b + ^~ + and the combined location is: + a && b + ~~^~~~ + Capturing this information allows for class binary_op_rich_location + to provide detailed information about e.g. type mismatches in binary + operations where enough location information is available: + + arg_0 op arg_1 + ~~~~~ ^~ ~~~~~ + | | + | arg1 type + arg0 type + + falling back to just showing the combined location: + + arg_0 op arg_1 + ~~~~~~^~~~~~~~ + + where it is not. */ + +struct op_location_t +{ + location_t m_operator_loc; + location_t m_combined_loc; + + /* 1-argument ctor, for constructing from a combined location. */ + op_location_t (location_t combined_loc) + : m_operator_loc (UNKNOWN_LOCATION), m_combined_loc (combined_loc) + {} + + /* 2-argument ctor, for distinguishing between the operator's location + and the combined location. */ + op_location_t (location_t operator_loc, location_t combined_loc) + : m_operator_loc (operator_loc), m_combined_loc (combined_loc) + {} + + /* Implicitly convert back to a location_t, using the combined location. */ + operator location_t () const { return m_combined_loc; } +}; + #endif /* GCC_TREE_H */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-hasher.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-hasher.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-hasher.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-hasher.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Hash Table Helper for Trees - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Lawrence Crowl This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-hash-traits.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-hash-traits.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-hash-traits.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-hash-traits.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Traits for hashing trees. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-if-conv.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-if-conv.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-if-conv.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-if-conv.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* If-conversion for vectorizer. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Devang Patel This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-if-conv.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-if-conv.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-if-conv.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-if-conv.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2016-2018 Free Software Foundation, Inc. +/* Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-inline.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-inline.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-inline.c 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-inline.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Tree inlining. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Alexandre Oliva This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-inline.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-inline.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-inline.h 2018-07-09 11:23:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-inline.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Tree inlining hooks and declarations. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Alexandre Oliva This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-into-ssa.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-into-ssa.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-into-ssa.c 2018-11-14 18:47:07.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-into-ssa.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Rewrite a program in Normal form into SSA. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-into-ssa.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-into-ssa.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-into-ssa.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-into-ssa.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for normal form into SSA. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-iterator.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-iterator.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-iterator.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-iterator.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Iterator routines for manipulating GENERIC and GIMPLE tree statements. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Andrew MacLeod This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-iterator.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-iterator.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-iterator.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-iterator.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Iterator routines for manipulating GENERIC tree statement list. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Andrew MacLeod This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-loop-distribution.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-loop-distribution.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-loop-distribution.c 2018-11-14 18:47:07.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-loop-distribution.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Loop distribution. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Georges-Andre Silber and Sebastian Pop . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-nested.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-nested.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-nested.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-nested.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Nested function decomposition for GIMPLE. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-nested.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-nested.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-nested.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-nested.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for Nested function decomposition for GIMPLE. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-nrv.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-nrv.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-nrv.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-nrv.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Language independent return value optimizations - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-object-size.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-object-size.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-object-size.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-object-size.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* __builtin_object_size (ptr, object_size_type) computation - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek This file is part of GCC. @@ -401,25 +401,28 @@ /* Compute __builtin_object_size for CALL, which is a GIMPLE_CALL. - Handles various allocation calls. OBJECT_SIZE_TYPE is the second - argument from __builtin_object_size. If unknown, return - unknown[object_size_type]. */ + Handles calls to functions declared with attribute alloc_size. + OBJECT_SIZE_TYPE is the second argument from __builtin_object_size. + If unknown, return unknown[object_size_type]. */ static unsigned HOST_WIDE_INT alloc_object_size (const gcall *call, int object_size_type) { - tree callee, bytes = NULL_TREE; - tree alloc_size; - int arg1 = -1, arg2 = -1; - gcc_assert (is_gimple_call (call)); - callee = gimple_call_fndecl (call); - if (!callee) + tree calltype; + if (tree callfn = gimple_call_fndecl (call)) + calltype = TREE_TYPE (callfn); + else + calltype = gimple_call_fntype (call); + + if (!calltype) return unknown[object_size_type]; - alloc_size = lookup_attribute ("alloc_size", - TYPE_ATTRIBUTES (TREE_TYPE (callee))); + /* Set to positions of alloc_size arguments. */ + int arg1 = -1, arg2 = -1; + tree alloc_size = lookup_attribute ("alloc_size", + TYPE_ATTRIBUTES (calltype)); if (alloc_size && TREE_VALUE (alloc_size)) { tree p = TREE_VALUE (alloc_size); @@ -429,19 +432,6 @@ arg2 = TREE_INT_CST_LOW (TREE_VALUE (TREE_CHAIN (p)))-1; } - if (DECL_BUILT_IN_CLASS (callee) == BUILT_IN_NORMAL) - switch (DECL_FUNCTION_CODE (callee)) - { - case BUILT_IN_CALLOC: - arg2 = 1; - /* fall through */ - case BUILT_IN_MALLOC: - CASE_BUILT_IN_ALLOCA: - arg1 = 0; - default: - break; - } - if (arg1 < 0 || arg1 >= (int)gimple_call_num_args (call) || TREE_CODE (gimple_call_arg (call, arg1)) != INTEGER_CST || (arg2 >= 0 @@ -449,6 +439,7 @@ || TREE_CODE (gimple_call_arg (call, arg2)) != INTEGER_CST))) return unknown[object_size_type]; + tree bytes = NULL_TREE; if (arg2 >= 0) bytes = size_binop (MULT_EXPR, fold_convert (sizetype, gimple_call_arg (call, arg1)), diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-object-size.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-object-size.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-object-size.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-object-size.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations for tree-object-size.c. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-outof-ssa.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-outof-ssa.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-outof-ssa.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-outof-ssa.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Convert a program in SSA form into Normal form. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Andrew Macleod This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-outof-ssa.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-outof-ssa.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-outof-ssa.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-outof-ssa.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Routines for expanding from SSA form to RTL. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-parloops.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-parloops.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-parloops.c 2018-11-14 18:47:09.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-parloops.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Loop autoparallelization. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Sebastian Pop Zdenek Dvorak and Razya Ladelsky . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-parloops.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-parloops.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-parloops.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-parloops.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for loop autoparallelization. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-pass.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-pass.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-pass.h 2018-12-04 09:51:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-pass.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for describing one tree-ssa optimization pass. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Richard Henderson This file is part of GCC. @@ -362,6 +362,7 @@ extern gimple_opt_pass *make_pass_tree_loop (gcc::context *ctxt); extern gimple_opt_pass *make_pass_tree_no_loop (gcc::context *ctxt); extern gimple_opt_pass *make_pass_tree_loop_init (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_loop_versioning (gcc::context *ctxt); extern gimple_opt_pass *make_pass_lim (gcc::context *ctxt); extern gimple_opt_pass *make_pass_linterchange (gcc::context *ctxt); extern gimple_opt_pass *make_pass_tree_unswitch (gcc::context *ctxt); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-phinodes.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-phinodes.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-phinodes.c 2018-11-20 10:31:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-phinodes.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic routines for manipulating PHIs - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-phinodes.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-phinodes.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-phinodes.h 2018-11-14 18:47:07.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-phinodes.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for PHI node routines - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-predcom.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-predcom.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-predcom.c 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-predcom.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Predictive commoning. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-pretty-print.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-pretty-print.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-pretty-print.c 2018-12-04 09:51:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-pretty-print.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Pretty formatting of GENERIC trees in C syntax. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Adapted from c-pretty-print.c by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-pretty-print.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-pretty-print.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-pretty-print.h 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-pretty-print.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ /* Various declarations for language-independent pretty-print subroutines that are only for use in the compilers proper and not the driver or other programs. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-profile.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-profile.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-profile.c 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-profile.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Calculate branch probabilities, and basic block execution counts. - Copyright (C) 1990-2018 Free Software Foundation, Inc. + Copyright (C) 1990-2019 Free Software Foundation, Inc. Contributed by James E. Wilson, UC Berkeley/Cygnus Support; based on some ideas from Dain Samples of UC Berkeley. Further mangling by Bob Manson, Cygnus Support. @@ -739,7 +739,8 @@ FOR_EACH_DEFINED_FUNCTION (node) { - if (!gimple_has_body_p (node->decl)) + bool thunk = false; + if (!gimple_has_body_p (node->decl) && !node->thunk.thunk_p) continue; /* Don't profile functions produced for builtin stuff. */ @@ -760,22 +761,43 @@ if (!include_source_file_for_profile (file)) continue; + if (node->thunk.thunk_p) + { + /* We can not expand variadic thunks to Gimple. */ + if (stdarg_p (TREE_TYPE (node->decl))) + continue; + thunk = true; + /* When generate profile, expand thunk to gimple so it can be + instrumented same way as other functions. */ + if (profile_arc_flag) + node->expand_thunk (false, true); + /* Read cgraph profile but keep function as thunk at profile-use + time. */ + else + { + read_thunk_profile (node); + continue; + } + } + push_cfun (DECL_STRUCT_FUNCTION (node->decl)); if (dump_file) dump_function_header (dump_file, cfun->decl, dump_flags); /* Local pure-const may imply need to fixup the cfg. */ - if (execute_fixup_cfg () & TODO_cleanup_cfg) + if (gimple_has_body_p (node->decl) + && (execute_fixup_cfg () & TODO_cleanup_cfg)) cleanup_tree_cfg (); - branch_prob (); + branch_prob (thunk); if (! flag_branch_probabilities && flag_profile_values) gimple_gen_ic_func_profiler (); if (flag_branch_probabilities + && !thunk && flag_profile_values && flag_value_profile_transformations) gimple_value_profile_transformations (); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-scalar-evolution.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-scalar-evolution.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-scalar-evolution.c 2018-11-13 05:13:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-scalar-evolution.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Scalar evolution detector. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Sebastian Pop This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-scalar-evolution.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-scalar-evolution.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-scalar-evolution.h 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-scalar-evolution.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Scalar evolution detector. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Sebastian Pop This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-sra.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-sra.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-sra.c 2018-10-22 12:08:01.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-sra.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,7 +1,7 @@ /* Scalar Replacement of Aggregates (SRA) converts some structure references into scalar references, exposing them to the scalar optimizers. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Martin Jambor This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-address.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-address.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-address.c 2018-01-14 10:48:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-address.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Memory address lowering and addressing mode selection. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-address.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-address.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-address.h 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-address.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for memory address lowering and mode selection. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-alias.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-alias.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-alias.c 2018-10-22 12:08:01.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-alias.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Alias analysis for trees. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. @@ -710,6 +710,7 @@ } else { + gcc_assert (POINTER_TYPE_P (TREE_TYPE (ptr))); ref->base = build2 (MEM_REF, char_type_node, ptr, null_pointer_node); ref->offset = 0; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-alias.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-alias.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-alias.h 2018-05-28 08:24:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-alias.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Tree based alias analysis and alias oracle. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Richard Guenther This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa.c 2018-11-28 13:52:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Miscellaneous SSA utility functions. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-ccp.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-ccp.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-ccp.c 2018-10-22 12:08:01.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-ccp.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Conditional constant propagation pass for the GNU compiler. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Adapted from original RTL SSA-CCP by Daniel Berlin Adapted to GIMPLE trees by Diego Novillo diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-ccp.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-ccp.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-ccp.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-ccp.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2016-2018 Free Software Foundation, Inc. +/* Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-coalesce.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-coalesce.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-coalesce.c 2018-11-05 08:45:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-coalesce.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Coalesce SSA_NAMES together for the out-of-ssa pass. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Andrew MacLeod This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-coalesce.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-coalesce.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-coalesce.h 2018-05-28 08:24:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-coalesce.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for tree-ssa-coalesce.c exports. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-copy.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-copy.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-copy.c 2018-10-23 14:46:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-copy.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Copy propagation and SSA_NAME replacement support routines. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-dce.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-dce.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-dce.c 2018-10-22 12:08:01.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-dce.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Dead code elimination pass for the GNU compiler. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Ben Elliston and Andrew MacLeod Adapted to use control dependence by Steven Bosscher, SUSE Labs. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-dce.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-dce.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-dce.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-dce.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2018 Free Software Foundation, Inc. +/* Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-dom.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-dom.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-dom.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-dom.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* SSA Dominator optimizations for trees - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-dom.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-dom.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-dom.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-dom.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for SSA dominator optimizations. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-dse.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-dse.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-dse.c 2018-09-08 14:39:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-dse.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Dead store elimination - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-forwprop.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-forwprop.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-forwprop.c 2018-10-22 12:08:01.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-forwprop.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Forward propagation of expressions for single use variables. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa.h 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for any pass which requires SSA routines. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-ifcombine.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-ifcombine.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-ifcombine.c 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-ifcombine.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Combining of if-expressions on trees. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Richard Guenther This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-live.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-live.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-live.c 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-live.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Liveness for SSA trees. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Andrew MacLeod This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-live.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-live.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-live.h 2018-05-28 08:24:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-live.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Routines for liveness in SSA trees. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Andrew MacLeod This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop.c 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Loop optimizations over tree-ssa. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-ch.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-ch.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-ch.c 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-ch.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Loop header copying on trees. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -34,6 +34,8 @@ #include "tree-ssa-scopedtables.h" #include "tree-ssa-threadedge.h" #include "tree-ssa-sccvn.h" +#include "tree-phinodes.h" +#include "ssa-iterators.h" #include "params.h" /* Duplicates headers of loops if they are small enough, so that the statements @@ -50,7 +52,6 @@ int *limit) { gimple_stmt_iterator bsi; - gimple *last; gcc_assert (!header->aux); @@ -99,8 +100,8 @@ return false; } - last = last_stmt (header); - if (gimple_code (last) != GIMPLE_COND) + gcond *last = dyn_cast (last_stmt (header)); + if (!last) { if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, @@ -109,10 +110,24 @@ return false; } - /* Count number of instructions and punt on calls. */ + for (gphi_iterator psi = gsi_start_phis (header); !gsi_end_p (psi); + gsi_next (&psi)) + { + gphi *phi = psi.phi (); + tree res = gimple_phi_result (phi); + if (INTEGRAL_TYPE_P (TREE_TYPE (res)) + || POINTER_TYPE_P (TREE_TYPE (res))) + gimple_set_uid (phi, 1 /* IV */); + else + gimple_set_uid (phi, 0); + } + + /* Count number of instructions and punt on calls. + Populate stmts INV/IV flag to later apply heuristics to the + kind of conditions we want to copy. */ for (bsi = gsi_start_bb (header); !gsi_end_p (bsi); gsi_next (&bsi)) { - last = gsi_stmt (bsi); + gimple *last = gsi_stmt (bsi); if (gimple_code (last) == GIMPLE_LABEL) continue; @@ -142,7 +157,52 @@ header->index); return false; } + + /* Classify the stmt based on whether its computation is based + on a IV or whether it is invariant in the loop. */ + gimple_set_uid (last, 0); + if (!gimple_vuse (last)) + { + bool inv = true; + bool iv = false; + ssa_op_iter i; + tree op; + FOR_EACH_SSA_TREE_OPERAND (op, last, i, SSA_OP_USE) + if (!SSA_NAME_IS_DEFAULT_DEF (op) + && flow_bb_inside_loop_p (loop, + gimple_bb (SSA_NAME_DEF_STMT (op)))) + { + if (!(gimple_uid (SSA_NAME_DEF_STMT (op)) & 2 /* INV */)) + inv = false; + if (gimple_uid (SSA_NAME_DEF_STMT (op)) & 1 /* IV */) + iv = true; + } + gimple_set_uid (last, (iv ? 1 : 0) | (inv ? 2 : 0)); + } } + + /* If the condition tests a non-IV loop variant we do not want to rotate + the loop further. Unless this is the original loop header. */ + tree lhs = gimple_cond_lhs (last); + tree rhs = gimple_cond_rhs (last); + if (header != loop->header + && ((TREE_CODE (lhs) == SSA_NAME + && !SSA_NAME_IS_DEFAULT_DEF (lhs) + && flow_bb_inside_loop_p (loop, gimple_bb (SSA_NAME_DEF_STMT (lhs))) + && gimple_uid (SSA_NAME_DEF_STMT (lhs)) == 0) + || (TREE_CODE (rhs) == SSA_NAME + && !SSA_NAME_IS_DEFAULT_DEF (rhs) + && flow_bb_inside_loop_p (loop, + gimple_bb (SSA_NAME_DEF_STMT (rhs))) + && gimple_uid (SSA_NAME_DEF_STMT (rhs)) == 0))) + { + if (dump_file && (dump_flags & TDF_DETAILS)) + fprintf (dump_file, + " Not duplicating bb %i: condition based on non-IV loop" + "variant.\n", header->index); + return false; + } + if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, " Will duplicate bb %i\n", header->index); return true; @@ -343,11 +403,6 @@ bbs[n_bbs++] = header; gcc_assert (bbs_size > n_bbs); header = exit->dest; - /* Make sure to stop copying after we copied the first exit test. - Without further heuristics we do not want to rotate the loop - any further. */ - if (loop_exits_from_bb_p (loop, exit->src)) - break; } if (!exit) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for SSA loop optimizations. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-im.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-im.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-im.c 2018-10-22 12:08:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-im.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Loop invariant motion. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -45,6 +45,9 @@ #include "gimple-fold.h" #include "tree-scalar-evolution.h" #include "tree-ssa-loop-niter.h" +#include "alias.h" +#include "builtins.h" +#include "tree-dfa.h" /* TODO: Support for predicated code motion. I.e. @@ -112,8 +115,9 @@ struct im_mem_ref { - unsigned id; /* ID assigned to the memory reference + unsigned id : 31; /* ID assigned to the memory reference (its index in memory_accesses.refs_list) */ + unsigned ref_canonical : 1; /* Whether mem.ref was canonicalized. */ hashval_t hash; /* Its hash value. */ /* The memory access itself and associated caching of alias-oracle @@ -149,9 +153,9 @@ struct mem_ref_hasher : nofree_ptr_hash { - typedef tree_node *compare_type; + typedef ao_ref *compare_type; static inline hashval_t hash (const im_mem_ref *); - static inline bool equal (const im_mem_ref *, const tree_node *); + static inline bool equal (const im_mem_ref *, const ao_ref *); }; /* A hash function for struct im_mem_ref object OBJ. */ @@ -166,9 +170,19 @@ memory reference OBJ2. */ inline bool -mem_ref_hasher::equal (const im_mem_ref *mem1, const tree_node *obj2) +mem_ref_hasher::equal (const im_mem_ref *mem1, const ao_ref *obj2) { - return operand_equal_p (mem1->mem.ref, (const_tree) obj2, 0); + if (obj2->max_size_known_p ()) + return (operand_equal_p (mem1->mem.base, obj2->base, 0) + && known_eq (mem1->mem.offset, obj2->offset) + && known_eq (mem1->mem.size, obj2->size) + && known_eq (mem1->mem.max_size, obj2->max_size) + && mem1->mem.volatile_p == obj2->volatile_p + && mem1->mem.ref_alias_set == obj2->ref_alias_set + && types_compatible_p (TREE_TYPE (mem1->mem.ref), + TREE_TYPE (obj2->ref))); + else + return operand_equal_p (mem1->mem.ref, obj2->ref, 0); } @@ -1356,11 +1370,15 @@ value is HASH and id is ID. */ static im_mem_ref * -mem_ref_alloc (tree mem, unsigned hash, unsigned id) +mem_ref_alloc (ao_ref *mem, unsigned hash, unsigned id) { im_mem_ref *ref = XOBNEW (&mem_ref_obstack, struct im_mem_ref); - ao_ref_init (&ref->mem, mem); + if (mem) + ref->mem = *mem; + else + ao_ref_init (&ref->mem, error_mark_node); ref->id = id; + ref->ref_canonical = false; ref->hash = hash; ref->stored = NULL; bitmap_initialize (&ref->indep_loop, &lim_bitmap_obstack); @@ -1436,17 +1454,79 @@ } else { - hash = iterative_hash_expr (*mem, 0); - slot = memory_accesses.refs->find_slot_with_hash (*mem, hash, INSERT); + /* We are looking for equal refs that might differ in structure + such as a.b vs. MEM[&a + 4]. So we key off the ao_ref but + make sure we can canonicalize the ref in the hashtable if + non-operand_equal_p refs are found. For the lookup we mark + the case we want strict equality with aor.max_size == -1. */ + ao_ref aor; + ao_ref_init (&aor, *mem); + ao_ref_base (&aor); + ao_ref_alias_set (&aor); + HOST_WIDE_INT offset, size, max_size; + poly_int64 saved_maxsize = aor.max_size, mem_off; + tree mem_base; + if (aor.max_size_known_p () + && aor.offset.is_constant (&offset) + && aor.offset.is_constant (&size) + && aor.offset.is_constant (&max_size) + && size == max_size + && (mem_base = get_addr_base_and_unit_offset (aor.ref, &mem_off))) + { + hash = iterative_hash_expr (ao_ref_base (&aor), 0); + hash = iterative_hash_host_wide_int (offset, hash); + hash = iterative_hash_host_wide_int (size, hash); + } + else + { + hash = iterative_hash_expr (aor.ref, 0); + aor.max_size = -1; + } + slot = memory_accesses.refs->find_slot_with_hash (&aor, hash, INSERT); + aor.max_size = saved_maxsize; if (*slot) { + if (!(*slot)->ref_canonical + && !operand_equal_p (*mem, (*slot)->mem.ref, 0)) + { + /* If we didn't yet canonicalize the hashtable ref (which + we'll end up using for code insertion) and hit a second + equal ref that is not structurally equivalent create + a canonical ref which is a bare MEM_REF. */ + if (TREE_CODE (*mem) == MEM_REF + || TREE_CODE (*mem) == TARGET_MEM_REF) + { + (*slot)->mem.ref = *mem; + (*slot)->mem.base_alias_set = ao_ref_base_alias_set (&aor); + } + else + { + tree ref_alias_type = reference_alias_ptr_type (*mem); + unsigned int ref_align = get_object_alignment (*mem); + tree ref_type = TREE_TYPE (*mem); + tree tmp = build_fold_addr_expr (unshare_expr (mem_base)); + if (TYPE_ALIGN (ref_type) != ref_align) + ref_type = build_aligned_type (ref_type, ref_align); + (*slot)->mem.ref + = fold_build2 (MEM_REF, ref_type, tmp, + build_int_cst (ref_alias_type, mem_off)); + if ((*slot)->mem.volatile_p) + TREE_THIS_VOLATILE ((*slot)->mem.ref) = 1; + gcc_checking_assert (TREE_CODE ((*slot)->mem.ref) == MEM_REF + && is_gimple_mem_ref_addr + (TREE_OPERAND ((*slot)->mem.ref, + 0))); + (*slot)->mem.base_alias_set = (*slot)->mem.ref_alias_set; + } + (*slot)->ref_canonical = true; + } ref = *slot; id = ref->id; } else { id = memory_accesses.refs_list.length (); - ref = mem_ref_alloc (*mem, hash, id); + ref = mem_ref_alloc (&aor, hash, id); memory_accesses.refs_list.safe_push (ref); *slot = ref; @@ -2472,7 +2552,7 @@ memory_accesses.refs_list.create (100); /* Allocate a special, unanalyzable mem-ref with ID zero. */ memory_accesses.refs_list.quick_push - (mem_ref_alloc (error_mark_node, 0, UNANALYZABLE_MEM_ID)); + (mem_ref_alloc (NULL, 0, UNANALYZABLE_MEM_ID)); memory_accesses.refs_in_loop.create (number_of_loops (cfun)); memory_accesses.refs_in_loop.quick_grow (number_of_loops (cfun)); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-ivcanon.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-ivcanon.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-ivcanon.c 2018-10-31 16:04:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-ivcanon.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Induction variable canonicalization and loop peeling. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-ivopts.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-ivopts.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-ivopts.c 2018-11-14 18:47:09.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-ivopts.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Induction variable optimizations. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-ivopts.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-ivopts.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-ivopts.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-ivopts.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for Induction variable optimizations. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-manip.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-manip.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-manip.c 2018-11-14 18:47:07.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-manip.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* High-level loop manipulation functions. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-manip.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-manip.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-manip.h 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-manip.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for High-level loop manipulation functions. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-niter.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-niter.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-niter.c 2018-11-23 09:37:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-niter.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Functions to determine/estimate number of iterations of a loop. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-niter.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-niter.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-niter.h 2018-11-23 09:37:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-niter.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for loop interation estimates. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-prefetch.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-prefetch.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-prefetch.c 2018-05-28 08:24:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-prefetch.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Array prefetching. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-split.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-split.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-split.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-split.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Loop splitting. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-unswitch.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-unswitch.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-loop-unswitch.c 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-loop-unswitch.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Loop unswitching. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-math-opts.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-math-opts.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-math-opts.c 2018-11-14 18:47:09.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-math-opts.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Global, SSA-based optimizations using mathematical identities. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssanames.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssanames.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssanames.c 2018-11-20 10:31:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssanames.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic routines for manipulating SSA_NAME expressions - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssanames.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssanames.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssanames.h 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssanames.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* SSA name expresssons routines - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-operands.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-operands.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-operands.c 2018-09-08 14:39:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-operands.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* SSA operands management for trees. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-operands.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-operands.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-operands.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-operands.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* SSA operand management for trees. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-phionlycprop.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-phionlycprop.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-phionlycprop.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-phionlycprop.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Const/Copy propagation originating from degenerate PHIs - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-phiopt.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-phiopt.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-phiopt.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-phiopt.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Optimization of PHI nodes by converting them into straightline code. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-phiprop.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-phiprop.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-phiprop.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-phiprop.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Backward propagation of indirect loads through PHIs. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Richard Guenther This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-pre.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-pre.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-pre.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-pre.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Full and partial redundancy elimination and code hoisting on SSA GIMPLE. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Daniel Berlin and Steven Bosscher diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-propagate.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-propagate.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-propagate.c 2018-10-22 20:26:23.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-propagate.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic SSA value propagation engine. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. @@ -1154,6 +1154,10 @@ /* Perform final substitution and folding of propagated values. + Process the whole function if BLOCK is null, otherwise only + process the blocks that BLOCK dominates. In the latter case, + it is the caller's responsibility to ensure that dominator + information is available and up-to-date. PROP_VALUE[I] contains the single value that should be substituted at every use of SSA name N_I. If PROP_VALUE is NULL, no values are @@ -1170,16 +1174,24 @@ Return TRUE when something changed. */ bool -substitute_and_fold_engine::substitute_and_fold (void) +substitute_and_fold_engine::substitute_and_fold (basic_block block) { if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "\nSubstituting values and folding statements\n\n"); memset (&prop_stats, 0, sizeof (prop_stats)); - calculate_dominance_info (CDI_DOMINATORS); + /* Don't call calculate_dominance_info when iterating over a subgraph. + Callers that are using the interface this way are likely to want to + iterate over several disjoint subgraphs, and it would be expensive + in enable-checking builds to revalidate the whole dominance tree + each time. */ + if (block) + gcc_assert (dom_info_state (CDI_DOMINATORS)); + else + calculate_dominance_info (CDI_DOMINATORS); substitute_and_fold_dom_walker walker (CDI_DOMINATORS, this); - walker.walk (ENTRY_BLOCK_PTR_FOR_FN (cfun)); + walker.walk (block ? block : ENTRY_BLOCK_PTR_FOR_FN (cfun)); /* We cannot remove stmts during the BB walk, especially not release SSA names there as that destroys the lattice of our callers. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-propagate.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-propagate.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-propagate.h 2018-10-15 11:36:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-propagate.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Data structures and function declarations for the SSA value propagation engine. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. @@ -104,7 +104,7 @@ virtual bool fold_stmt (gimple_stmt_iterator *) { return false; } virtual tree get_value (tree) { return NULL_TREE; } - bool substitute_and_fold (void); + bool substitute_and_fold (basic_block = NULL); bool replace_uses_in (gimple *); bool replace_phi_args_in (gphi *); }; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-reassoc.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-reassoc.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-reassoc.c 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-reassoc.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Reassociation for trees. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Daniel Berlin This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-sccvn.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-sccvn.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-sccvn.c 2018-12-04 09:51:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-sccvn.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* SCC value numbering for trees - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Daniel Berlin This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-sccvn.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-sccvn.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-sccvn.h 2018-09-08 14:39:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-sccvn.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Tree SCC value numbering - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Daniel Berlin This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-scopedtables.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-scopedtables.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-scopedtables.c 2018-10-22 12:08:01.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-scopedtables.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for SSA dominator optimizations. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-scopedtables.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-scopedtables.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-scopedtables.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-scopedtables.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for SSA dominator optimizations. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-sink.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-sink.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-sink.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-sink.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Code sinking for trees - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Daniel Berlin This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-strlen.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-strlen.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-strlen.c 2018-11-05 08:45:35.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-strlen.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* String length optimization - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek This file is part of GCC. @@ -1989,15 +1989,18 @@ lenrange[0] = lenrange[1] = wi::shwi (~sidx, prec); else { - tree range[2]; - get_range_strlen (src, range); - if (range[0] != NULL_TREE - && TREE_CODE (range[0]) == INTEGER_CST - && range[1] != NULL_TREE - && TREE_CODE (range[1]) == INTEGER_CST) - { - lenrange[0] = wi::to_wide (range[0], prec); - lenrange[1] = wi::to_wide (range[1], prec); + c_strlen_data lendata = { }; + get_range_strlen (src, &lendata, /* eltsize = */1); + if (TREE_CODE (lendata.minlen) == INTEGER_CST + && TREE_CODE (lendata.maxbound) == INTEGER_CST) + { + /* When LENDATA.MAXLEN is unknown, reset LENDATA.MINLEN + which stores the length of the shortest known string. */ + if (integer_all_onesp (lendata.maxlen)) + lenrange[0] = wi::shwi (0, prec); + else + lenrange[0] = wi::to_wide (lendata.minlen, prec); + lenrange[1] = wi::to_wide (lendata.maxbound, prec); } else { @@ -2114,6 +2117,13 @@ if (wi::to_wide (dstsize) != cntrange[1]) return false; + /* Avoid warning for strncpy(a, b, N) calls where the following + equalities hold: + N == sizeof a && N == sizeof b */ + if (tree srcsize = compute_objsize (src, 1)) + if (wi::to_wide (srcsize) == cntrange[1]) + return false; + if (cntrange[0] == cntrange[1]) return warning_at (callloc, OPT_Wstringop_truncation, "%G%qD specified bound %E equals destination size", diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-strlen.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-strlen.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-strlen.h 2018-06-22 07:37:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-strlen.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Declarations of tree-ssa-strlen API. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-structalias.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-structalias.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-structalias.c 2018-10-24 13:24:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-structalias.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Tree based points-to analysis - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Daniel Berlin This file is part of GCC. @@ -4697,7 +4697,7 @@ argpos = 1; break; case BUILT_IN_GOACC_PARALLEL: - /* __builtin_GOACC_parallel (device, fn, mapnum, hostaddrs, + /* __builtin_GOACC_parallel (flags_m, fn, mapnum, hostaddrs, sizes, kinds, ...). */ fnpos = 1; argpos = 3; @@ -5255,7 +5255,7 @@ argpos = 1; break; case BUILT_IN_GOACC_PARALLEL: - /* __builtin_GOACC_parallel (device, fn, mapnum, hostaddrs, + /* __builtin_GOACC_parallel (flags_m, fn, mapnum, hostaddrs, sizes, kinds, ...). */ fnpos = 1; argpos = 3; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-tail-merge.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-tail-merge.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-tail-merge.c 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-tail-merge.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Tail merging for gimple. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Tom de Vries (tom@codesourcery.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-ter.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-ter.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-ter.c 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-ter.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Routines for performing Temporary Expression Replacement (TER) in SSA trees. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Andrew MacLeod This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-ter.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-ter.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-ter.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-ter.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for tree-ssa-ter.c exports. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-threadbackward.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-threadbackward.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-threadbackward.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-threadbackward.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* SSA Jump Threading - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-threadedge.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-threadedge.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-threadedge.c 2018-11-13 05:13:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-threadedge.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* SSA Jump Threading - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Jeff Law This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-threadedge.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-threadedge.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-threadedge.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-threadedge.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for SSA jump threading. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-threadupdate.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-threadupdate.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-threadupdate.c 2018-11-24 08:30:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-threadupdate.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Thread edges through blocks and update the control flow and SSA graphs. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-threadupdate.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-threadupdate.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-threadupdate.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-threadupdate.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Communication between registering jump thread requests and updating the SSA/CFG for jump threading. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-uncprop.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-uncprop.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-uncprop.c 2018-09-08 14:39:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-uncprop.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Routines for discovering and unpropagating edge equivalences. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-uninit.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-uninit.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-ssa-uninit.c 2018-10-02 07:26:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-ssa-uninit.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Predicate aware uninitialized variable warning. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Xinliang David Li This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-stdarg.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-stdarg.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-stdarg.c 2018-09-08 14:39:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-stdarg.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Pass computing data for optimizing stdarg functions. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-stdarg.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-stdarg.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-stdarg.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-stdarg.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Header for a pass computing data for optimizing stdarg functions. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-streamer.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-streamer.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-streamer.c 2018-06-08 18:00:48.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-streamer.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,7 +1,7 @@ /* Miscellaneous utilities for tree streaming. Things that are used in both input and output are here. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-streamer.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-streamer.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-streamer.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-streamer.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Data structures and functions for streaming trees. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-streamer-in.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-streamer-in.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-streamer-in.c 2018-11-22 10:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-streamer-in.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Routines for reading trees from a file stream. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-streamer-out.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-streamer-out.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-streamer-out.c 2018-11-22 10:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-streamer-out.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Routines for emitting trees to a file stream. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Diego Novillo This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/treestruct.def gcc-snapshot-20190102/=unpacked-tar1=/gcc/treestruct.def --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/treestruct.def 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/treestruct.def 2019-01-02 08:05:17.000000000 +0000 @@ -1,7 +1,7 @@ /* This file contains the definitions for the tree structure enumeration used in GCC. -Copyright (C) 2005-2018 Free Software Foundation, Inc. +Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-switch-conversion.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-switch-conversion.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-switch-conversion.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-switch-conversion.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,6 +1,6 @@ /* Lower GIMPLE_SWITCH expressions to something more efficient than a jump table. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-switch-conversion.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-switch-conversion.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-switch-conversion.h 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-switch-conversion.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Tree switch conversion for GNU compiler. - Copyright (C) 2017 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-tailcall.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-tailcall.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-tailcall.c 2018-09-08 14:39:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-tailcall.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Tail call optimization on trees. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vect-data-refs.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vect-data-refs.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vect-data-refs.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vect-data-refs.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Data References Analysis and Manipulation Utilities for Vectorization. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Dorit Naishlos and Ira Rosen @@ -2158,6 +2158,20 @@ { do_versioning = false; break; + } + + /* Forcing alignment in the first iteration is no good if + we don't keep it across iterations. For now, just disable + versioning in this case. + ?? We could actually unroll the loop to achieve the required + overall step alignment, and forcing the alignment could be + done by doing some iterations of the non-vectorized loop. */ + if (!multiple_p (LOOP_VINFO_VECT_FACTOR (loop_vinfo) + * DR_STEP_ALIGNMENT (dr), + DR_TARGET_ALIGNMENT (dr_info))) + { + do_versioning = false; + break; } /* The rightmost bits of an aligned address must be zeros. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vect-generic.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vect-generic.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vect-generic.c 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vect-generic.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Lower vector operations to scalar operations. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vect-loop.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vect-loop.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vect-loop.c 2018-12-05 07:46:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vect-loop.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Loop Vectorization - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Dorit Naishlos and Ira Rosen diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vect-loop-manip.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vect-loop-manip.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vect-loop-manip.c 2018-11-14 18:47:08.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vect-loop-manip.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Vectorizer Specific Loop Manipulations - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Dorit Naishlos and Ira Rosen diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vector-builder.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vector-builder.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vector-builder.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vector-builder.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* A class for building vector tree constants. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vector-builder.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vector-builder.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vector-builder.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vector-builder.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* A class for building vector tree constants. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vectorizer.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vectorizer.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vectorizer.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vectorizer.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Vectorizer - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Dorit Naishlos This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vectorizer.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vectorizer.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vectorizer.h 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vectorizer.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Vectorizer - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Dorit Naishlos This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vect-patterns.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vect-patterns.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vect-patterns.c 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vect-patterns.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Analysis Utilities for Loop Vectorization. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Dorit Nuzman This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vect-slp.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vect-slp.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vect-slp.c 2018-11-27 09:27:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vect-slp.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* SLP - Basic Block Vectorization - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Dorit Naishlos and Ira Rosen diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vect-stmts.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vect-stmts.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vect-stmts.c 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vect-stmts.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Statement Analysis and Transformation for Vectorization - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Dorit Naishlos and Ira Rosen @@ -2655,6 +2655,7 @@ if (mask && TREE_CODE (masktype) == INTEGER_TYPE) masktype = build_same_sized_truth_vector_type (srctype); + tree mask_halftype = masktype; tree perm_mask = NULL_TREE; tree mask_perm_mask = NULL_TREE; if (known_eq (nunits, gather_off_nunits)) @@ -2690,13 +2691,16 @@ ncopies *= 2; - if (mask) + if (mask && masktype == real_masktype) { for (int i = 0; i < count; ++i) sel[i] = i | (count / 2); indices.new_vector (sel, 2, count); mask_perm_mask = vect_gen_perm_mask_checked (masktype, indices); } + else if (mask) + mask_halftype + = build_same_sized_truth_vector_type (gs_info->offset_vectype); } else gcc_unreachable (); @@ -2761,7 +2765,7 @@ { if (j == 0) vec_mask = vect_get_vec_def_for_operand (mask, stmt_info); - else + else if (modifier != NARROW || (j & 1) == 0) vec_mask = vect_get_vec_def_for_stmt_copy (loop_vinfo, vec_mask); @@ -2779,17 +2783,27 @@ mask_op = var; } } + if (modifier == NARROW && masktype != real_masktype) + { + var = vect_get_new_ssa_name (mask_halftype, vect_simple_var); + gassign *new_stmt + = gimple_build_assign (var, (j & 1) ? VEC_UNPACK_HI_EXPR + : VEC_UNPACK_LO_EXPR, + mask_op); + vect_finish_stmt_generation (stmt_info, new_stmt, gsi); + mask_op = var; + } src_op = mask_op; } tree mask_arg = mask_op; if (masktype != real_masktype) { - tree utype; - if (TYPE_MODE (real_masktype) == TYPE_MODE (masktype)) + tree utype, optype = TREE_TYPE (mask_op); + if (TYPE_MODE (real_masktype) == TYPE_MODE (optype)) utype = real_masktype; else - utype = lang_hooks.types.type_for_mode (TYPE_MODE (masktype), 1); + utype = lang_hooks.types.type_for_mode (TYPE_MODE (optype), 1); var = vect_get_new_ssa_name (utype, vect_scalar_var); mask_arg = build1 (VIEW_CONVERT_EXPR, utype, mask_op); gassign *new_stmt @@ -2801,7 +2815,7 @@ gcc_assert (TYPE_PRECISION (utype) <= TYPE_PRECISION (real_masktype)); var = vect_get_new_ssa_name (real_masktype, vect_scalar_var); - new_stmt = gimple_build_assign (var, NOP_EXPR, utype); + new_stmt = gimple_build_assign (var, NOP_EXPR, mask_arg); vect_finish_stmt_generation (stmt_info, new_stmt, gsi); mask_arg = var; } @@ -6361,7 +6375,8 @@ return false; } else if (memory_access_type != VMAT_LOAD_STORE_LANES - && (memory_access_type != VMAT_GATHER_SCATTER || gs_info.decl)) + && (memory_access_type != VMAT_GATHER_SCATTER + || (gs_info.decl && !VECTOR_BOOLEAN_TYPE_P (mask_vectype)))) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, @@ -6419,7 +6434,9 @@ tree vec_oprnd0 = NULL_TREE, vec_oprnd1 = NULL_TREE, src; tree arglist = TYPE_ARG_TYPES (TREE_TYPE (gs_info.decl)); tree rettype, srctype, ptrtype, idxtype, masktype, scaletype; - tree ptr, mask, var, scale, perm_mask = NULL_TREE; + tree ptr, var, scale, vec_mask; + tree mask_arg = NULL_TREE, mask_op = NULL_TREE, perm_mask = NULL_TREE; + tree mask_halfvectype = mask_vectype; edge pe = loop_preheader_edge (loop); gimple_seq seq; basic_block new_bb; @@ -6460,6 +6477,10 @@ perm_mask = vect_gen_perm_mask_checked (vectype, indices); gcc_assert (perm_mask != NULL_TREE); ncopies *= 2; + + if (mask) + mask_halfvectype + = build_same_sized_truth_vector_type (gs_info.offset_vectype); } else gcc_unreachable (); @@ -6482,10 +6503,11 @@ gcc_assert (!new_bb); } - /* Currently we support only unconditional scatter stores, - so mask should be all ones. */ - mask = build_int_cst (masktype, -1); - mask = vect_init_vector (stmt_info, mask, masktype, NULL); + if (mask == NULL_TREE) + { + mask_arg = build_int_cst (masktype, -1); + mask_arg = vect_init_vector (stmt_info, mask_arg, masktype, NULL); + } scale = build_int_cst (scaletype, gs_info.scale); @@ -6494,36 +6516,46 @@ { if (j == 0) { - src = vec_oprnd1 - = vect_get_vec_def_for_operand (op, stmt_info); - op = vec_oprnd0 - = vect_get_vec_def_for_operand (gs_info.offset, stmt_info); + src = vec_oprnd1 = vect_get_vec_def_for_operand (op, stmt_info); + op = vec_oprnd0 = vect_get_vec_def_for_operand (gs_info.offset, + stmt_info); + if (mask) + mask_op = vec_mask = vect_get_vec_def_for_operand (mask, + stmt_info); } else if (modifier != NONE && (j & 1)) { if (modifier == WIDEN) { - src = vec_oprnd1 - = vect_get_vec_def_for_stmt_copy (vinfo, vec_oprnd1); + src + = vec_oprnd1 = vect_get_vec_def_for_stmt_copy (vinfo, + vec_oprnd1); op = permute_vec_elements (vec_oprnd0, vec_oprnd0, perm_mask, stmt_info, gsi); + if (mask) + mask_op + = vec_mask = vect_get_vec_def_for_stmt_copy (vinfo, + vec_mask); } else if (modifier == NARROW) { src = permute_vec_elements (vec_oprnd1, vec_oprnd1, perm_mask, stmt_info, gsi); - op = vec_oprnd0 - = vect_get_vec_def_for_stmt_copy (vinfo, vec_oprnd0); + op = vec_oprnd0 = vect_get_vec_def_for_stmt_copy (vinfo, + vec_oprnd0); } else gcc_unreachable (); } else { - src = vec_oprnd1 - = vect_get_vec_def_for_stmt_copy (vinfo, vec_oprnd1); - op = vec_oprnd0 - = vect_get_vec_def_for_stmt_copy (vinfo, vec_oprnd0); + src = vec_oprnd1 = vect_get_vec_def_for_stmt_copy (vinfo, + vec_oprnd1); + op = vec_oprnd0 = vect_get_vec_def_for_stmt_copy (vinfo, + vec_oprnd0); + if (mask) + mask_op = vec_mask = vect_get_vec_def_for_stmt_copy (vinfo, + vec_mask); } if (!useless_type_conversion_p (srctype, TREE_TYPE (src))) @@ -6550,8 +6582,45 @@ op = var; } + if (mask) + { + tree utype; + mask_arg = mask_op; + if (modifier == NARROW) + { + var = vect_get_new_ssa_name (mask_halfvectype, + vect_simple_var); + gassign *new_stmt + = gimple_build_assign (var, (j & 1) ? VEC_UNPACK_HI_EXPR + : VEC_UNPACK_LO_EXPR, + mask_op); + vect_finish_stmt_generation (stmt_info, new_stmt, gsi); + mask_arg = var; + } + tree optype = TREE_TYPE (mask_arg); + if (TYPE_MODE (masktype) == TYPE_MODE (optype)) + utype = masktype; + else + utype = lang_hooks.types.type_for_mode (TYPE_MODE (optype), 1); + var = vect_get_new_ssa_name (utype, vect_scalar_var); + mask_arg = build1 (VIEW_CONVERT_EXPR, utype, mask_arg); + gassign *new_stmt + = gimple_build_assign (var, VIEW_CONVERT_EXPR, mask_arg); + vect_finish_stmt_generation (stmt_info, new_stmt, gsi); + mask_arg = var; + if (!useless_type_conversion_p (masktype, utype)) + { + gcc_assert (TYPE_PRECISION (utype) + <= TYPE_PRECISION (masktype)); + var = vect_get_new_ssa_name (masktype, vect_scalar_var); + new_stmt = gimple_build_assign (var, NOP_EXPR, mask_arg); + vect_finish_stmt_generation (stmt_info, new_stmt, gsi); + mask_arg = var; + } + } + gcall *new_stmt - = gimple_build_call (gs_info.decl, 5, ptr, mask, op, src, scale); + = gimple_build_call (gs_info.decl, 5, ptr, mask_arg, op, src, scale); stmt_vec_info new_stmt_info = vect_finish_stmt_generation (stmt_info, new_stmt, gsi); @@ -7284,7 +7353,7 @@ gimple *perm_stmt; tree scalar_dest = gimple_get_lhs (stmt_info->stmt); - if (TREE_CODE (scalar_dest) == SSA_NAME) + if (scalar_dest && TREE_CODE (scalar_dest) == SSA_NAME) perm_dest = vect_create_destination_var (scalar_dest, vectype); else perm_dest = vect_get_new_vect_var (vectype, vect_simple_var, NULL); @@ -10244,6 +10313,17 @@ optab1 = optab_for_tree_code (c1, vectype_out, optab_default); optab2 = optab_for_tree_code (c2, vectype_out, optab_default); } + else if (CONVERT_EXPR_CODE_P (code) + && VECTOR_BOOLEAN_TYPE_P (wide_vectype) + && VECTOR_BOOLEAN_TYPE_P (vectype) + && TYPE_MODE (wide_vectype) == TYPE_MODE (vectype) + && SCALAR_INT_MODE_P (TYPE_MODE (vectype))) + { + /* If the input and result modes are the same, a different optab + is needed where we pass in the number of units in vectype. */ + optab1 = vec_unpacks_sbool_lo_optab; + optab2 = vec_unpacks_sbool_hi_optab; + } else { optab1 = optab_for_tree_code (c1, vectype, optab_default); @@ -10263,12 +10343,16 @@ if (insn_data[icode1].operand[0].mode == TYPE_MODE (wide_vectype) && insn_data[icode2].operand[0].mode == TYPE_MODE (wide_vectype)) + { + if (!VECTOR_BOOLEAN_TYPE_P (vectype)) + return true; /* For scalar masks we may have different boolean vector types having the same QImode. Thus we add additional check for elements number. */ - return (!VECTOR_BOOLEAN_TYPE_P (vectype) - || known_eq (TYPE_VECTOR_SUBPARTS (vectype), - TYPE_VECTOR_SUBPARTS (wide_vectype) * 2)); + if (known_eq (TYPE_VECTOR_SUBPARTS (vectype), + TYPE_VECTOR_SUBPARTS (wide_vectype) * 2)) + return true; + } /* Check if it's a multi-step conversion that can be done using intermediate types. */ @@ -10298,8 +10382,21 @@ = lang_hooks.types.type_for_mode (intermediate_mode, TYPE_UNSIGNED (prev_type)); - optab3 = optab_for_tree_code (c1, intermediate_type, optab_default); - optab4 = optab_for_tree_code (c2, intermediate_type, optab_default); + if (VECTOR_BOOLEAN_TYPE_P (intermediate_type) + && VECTOR_BOOLEAN_TYPE_P (prev_type) + && intermediate_mode == prev_mode + && SCALAR_INT_MODE_P (prev_mode)) + { + /* If the input and result modes are the same, a different optab + is needed where we pass in the number of units in vectype. */ + optab3 = vec_unpacks_sbool_lo_optab; + optab4 = vec_unpacks_sbool_hi_optab; + } + else + { + optab3 = optab_for_tree_code (c1, intermediate_type, optab_default); + optab4 = optab_for_tree_code (c2, intermediate_type, optab_default); + } if (!optab3 || !optab4 || (icode1 = optab_handler (optab1, prev_mode)) == CODE_FOR_nothing @@ -10317,9 +10414,13 @@ if (insn_data[icode1].operand[0].mode == TYPE_MODE (wide_vectype) && insn_data[icode2].operand[0].mode == TYPE_MODE (wide_vectype)) - return (!VECTOR_BOOLEAN_TYPE_P (vectype) - || known_eq (TYPE_VECTOR_SUBPARTS (intermediate_type), - TYPE_VECTOR_SUBPARTS (wide_vectype) * 2)); + { + if (!VECTOR_BOOLEAN_TYPE_P (vectype)) + return true; + if (known_eq (TYPE_VECTOR_SUBPARTS (intermediate_type), + TYPE_VECTOR_SUBPARTS (wide_vectype) * 2)) + return true; + } prev_type = intermediate_type; prev_mode = intermediate_mode; @@ -10372,26 +10473,30 @@ { CASE_CONVERT: c1 = VEC_PACK_TRUNC_EXPR; + if (VECTOR_BOOLEAN_TYPE_P (narrow_vectype) + && VECTOR_BOOLEAN_TYPE_P (vectype) + && TYPE_MODE (narrow_vectype) == TYPE_MODE (vectype) + && SCALAR_INT_MODE_P (TYPE_MODE (vectype))) + optab1 = vec_pack_sbool_trunc_optab; + else + optab1 = optab_for_tree_code (c1, vectype, optab_default); break; case FIX_TRUNC_EXPR: c1 = VEC_PACK_FIX_TRUNC_EXPR; + /* The signedness is determined from output operand. */ + optab1 = optab_for_tree_code (c1, vectype_out, optab_default); break; case FLOAT_EXPR: c1 = VEC_PACK_FLOAT_EXPR; + optab1 = optab_for_tree_code (c1, vectype, optab_default); break; default: gcc_unreachable (); } - if (code == FIX_TRUNC_EXPR) - /* The signedness is determined from output operand. */ - optab1 = optab_for_tree_code (c1, vectype_out, optab_default); - else - optab1 = optab_for_tree_code (c1, vectype, optab_default); - if (!optab1) return false; @@ -10402,12 +10507,16 @@ *code1 = c1; if (insn_data[icode1].operand[0].mode == TYPE_MODE (narrow_vectype)) - /* For scalar masks we may have different boolean - vector types having the same QImode. Thus we - add additional check for elements number. */ - return (!VECTOR_BOOLEAN_TYPE_P (vectype) - || known_eq (TYPE_VECTOR_SUBPARTS (vectype) * 2, - TYPE_VECTOR_SUBPARTS (narrow_vectype))); + { + if (!VECTOR_BOOLEAN_TYPE_P (vectype)) + return true; + /* For scalar masks we may have different boolean + vector types having the same QImode. Thus we + add additional check for elements number. */ + if (known_eq (TYPE_VECTOR_SUBPARTS (vectype) * 2, + TYPE_VECTOR_SUBPARTS (narrow_vectype))) + return true; + } if (code == FLOAT_EXPR) return false; @@ -10459,9 +10568,15 @@ else intermediate_type = lang_hooks.types.type_for_mode (intermediate_mode, uns); - interm_optab - = optab_for_tree_code (VEC_PACK_TRUNC_EXPR, intermediate_type, - optab_default); + if (VECTOR_BOOLEAN_TYPE_P (intermediate_type) + && VECTOR_BOOLEAN_TYPE_P (prev_type) + && intermediate_mode == prev_mode + && SCALAR_INT_MODE_P (prev_mode)) + interm_optab = vec_pack_sbool_trunc_optab; + else + interm_optab + = optab_for_tree_code (VEC_PACK_TRUNC_EXPR, intermediate_type, + optab_default); if (!interm_optab || ((icode1 = optab_handler (optab1, prev_mode)) == CODE_FOR_nothing) || insn_data[icode1].operand[0].mode != intermediate_mode @@ -10473,9 +10588,13 @@ (*multi_step_cvt)++; if (insn_data[icode1].operand[0].mode == TYPE_MODE (narrow_vectype)) - return (!VECTOR_BOOLEAN_TYPE_P (vectype) - || known_eq (TYPE_VECTOR_SUBPARTS (intermediate_type) * 2, - TYPE_VECTOR_SUBPARTS (narrow_vectype))); + { + if (!VECTOR_BOOLEAN_TYPE_P (vectype)) + return true; + if (known_eq (TYPE_VECTOR_SUBPARTS (intermediate_type) * 2, + TYPE_VECTOR_SUBPARTS (narrow_vectype))) + return true; + } prev_mode = intermediate_mode; prev_type = intermediate_type; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vrp.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vrp.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vrp.c 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vrp.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for Value Range Propagation (VRP). - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Diego Novillo . This file is part of GCC. @@ -1173,15 +1173,14 @@ } -/* Return TRUE if *VR includes the value zero. */ +/* Return TRUE if *VR includes the value X. */ bool -range_includes_zero_p (const value_range_base *vr) +range_includes_p (const value_range_base *vr, HOST_WIDE_INT x) { if (vr->varying_p () || vr->undefined_p ()) return true; - tree zero = build_int_cst (vr->type (), 0); - return vr->may_contain_p (zero); + return vr->may_contain_p (build_int_cst (vr->type (), x)); } /* If *VR has a value range that is a single constant value return that, diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vrp.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vrp.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tree-vrp.h 2018-11-14 18:47:07.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tree-vrp.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for Value Range Propagation (VRP). - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -243,7 +243,7 @@ extern void register_edge_assert_for (tree, edge, enum tree_code, tree, tree, vec &); extern bool stmt_interesting_for_vrp (gimple *); -extern bool range_includes_zero_p (const value_range_base *); +extern bool range_includes_p (const value_range_base *, HOST_WIDE_INT); extern bool infer_value_range (gimple *, tree, tree_code *, tree *); extern bool vrp_bitmap_equal_p (const_bitmap, const_bitmap); @@ -285,4 +285,12 @@ extern void maybe_set_nonzero_bits (edge, tree); extern value_range_kind determine_value_range (tree, wide_int *, wide_int *); +/* Return TRUE if *VR includes the value zero. */ + +inline bool +range_includes_zero_p (const value_range_base *vr) +{ + return range_includes_p (vr, 0); +} + #endif /* GCC_TREE_VRP_H */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tsan.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/tsan.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tsan.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tsan.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* GCC instrumentation plugin for ThreadSanitizer. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Dmitry Vyukov This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tsan.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tsan.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tsan.h 2018-01-04 13:44:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tsan.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* ThreadSanitizer, a data race detector. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Dmitry Vyukov This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/tsystem.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/tsystem.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/tsystem.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/tsystem.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,6 +1,6 @@ /* Get common system includes and various definitions and declarations based on target macros. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/typeclass.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/typeclass.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/typeclass.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/typeclass.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Type class enum - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/typed-splay-tree.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/typed-splay-tree.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/typed-splay-tree.c 2018-06-17 03:58:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/typed-splay-tree.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Selftests for typed-splay-tree.h. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/typed-splay-tree.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/typed-splay-tree.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/typed-splay-tree.h 2018-06-17 03:58:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/typed-splay-tree.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* A typesafe wrapper around libiberty's splay-tree.h. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ubsan.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/ubsan.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ubsan.c 2018-09-08 14:39:46.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ubsan.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* UndefinedBehaviorSanitizer, undefined behavior detector. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Marek Polacek This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/ubsan.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/ubsan.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/ubsan.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/ubsan.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* UndefinedBehaviorSanitizer, undefined behavior detector. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Marek Polacek This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/unique-ptr-tests.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/unique-ptr-tests.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/unique-ptr-tests.cc 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/unique-ptr-tests.cc 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Unit tests for unique-ptr.h. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/valtrack.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/valtrack.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/valtrack.c 2018-12-14 05:16:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/valtrack.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Infrastructure for tracking user variable locations and values throughout compilation. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Alexandre Oliva . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/valtrack.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/valtrack.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/valtrack.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/valtrack.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,6 +1,6 @@ /* Infrastructure for tracking user variable locations and values throughout compilation. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Alexandre Oliva . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/value-prof.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/value-prof.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/value-prof.c 2018-10-22 12:08:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/value-prof.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Transformations based on profile information for values. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -627,11 +627,6 @@ gimple_stmt_iterator gsi; bool changed = false; - /* Autofdo does its own transformations for indirect calls, - and otherwise does not support value profiling. */ - if (flag_auto_profile) - return false; - FOR_EACH_BB_FN (bb, cfun) { for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi)) @@ -1193,7 +1188,7 @@ cgraph_node_map = new hash_map; FOR_EACH_DEFINED_FUNCTION (n) - if (n->has_gimple_body_p ()) + if (n->has_gimple_body_p () || n->thunk.thunk_p) { cgraph_node **val; if (local) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/value-prof.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/value-prof.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/value-prof.h 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/value-prof.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for transformations based on profile information for values. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -112,7 +112,8 @@ /* In profile.c. */ extern void init_branch_prob (void); -extern void branch_prob (void); +extern void branch_prob (bool); +extern void read_thunk_profile (struct cgraph_node *); extern void end_branch_prob (void); #endif /* GCC_VALUE_PROF_H */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/varasm.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/varasm.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/varasm.c 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/varasm.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Output variables, constants and external declarations, for GNU compiler. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/varasm.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/varasm.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/varasm.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/varasm.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations for varasm.h. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/varpool.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/varpool.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/varpool.c 2018-06-14 13:43:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/varpool.c 2019-01-02 08:05:19.000000000 +0000 @@ -1,5 +1,5 @@ /* Callgraph handling code. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Jan Hubicka This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/var-tracking.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/var-tracking.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/var-tracking.c 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/var-tracking.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Variable tracking routines for the GNU compiler. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/vec.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/vec.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/vec.c 2018-11-20 10:31:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/vec.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Vector API for GNU compiler. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Nathan Sidwell Re-implemented in C++ by Diego Novillo diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/vec.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/vec.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/vec.h 2018-11-09 12:59:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/vec.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Vector API for GNU compiler. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Nathan Sidwell Re-implemented in C++ by Diego Novillo diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/vec-perm-indices.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/vec-perm-indices.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/vec-perm-indices.c 2018-01-30 17:45:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/vec-perm-indices.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* A representation of vector permutation indices. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/vec-perm-indices.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/vec-perm-indices.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/vec-perm-indices.h 2018-04-11 21:23:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/vec-perm-indices.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* A representation of vector permutation indices. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/vector-builder.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/vector-builder.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/vector-builder.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/vector-builder.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* A class for building vector constant patterns. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/version.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/version.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/version.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/version.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/vmsdbg.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/vmsdbg.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/vmsdbg.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/vmsdbg.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for the data structures and codes used in VMS debugging. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/vmsdbgout.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/vmsdbgout.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/vmsdbgout.c 2018-01-23 00:38:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/vmsdbgout.c 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Output VMS debug format symbol table information from GCC. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Contributed by Douglas B. Rupp (rupp@gnat.com). Updated by Bernard W. Giroud (bgiroud@users.sourceforge.net). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/vr-values.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/vr-values.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/vr-values.c 2018-12-10 19:27:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/vr-values.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for Value Range Propagation (VRP). - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -2336,6 +2336,39 @@ op1 = wide_int_to_tree (TREE_TYPE (op0), 0); code = (code == GT_EXPR || code == GE_EXPR) ? EQ_EXPR : NE_EXPR; } + else + { + value_range vro, vri; + if (code == GT_EXPR || code == GE_EXPR) + { + vro.set (VR_ANTI_RANGE, TYPE_MIN_VALUE (TREE_TYPE (op0)), x); + vri.set (VR_RANGE, TYPE_MIN_VALUE (TREE_TYPE (op0)), x); + } + else if (code == LT_EXPR || code == LE_EXPR) + { + vro.set (VR_RANGE, TYPE_MIN_VALUE (TREE_TYPE (op0)), x); + vri.set (VR_ANTI_RANGE, TYPE_MIN_VALUE (TREE_TYPE (op0)), x); + } + else + gcc_unreachable (); + value_range *vr0 = get_value_range (op0); + /* If vro, the range for OP0 to pass the overflow test, has + no intersection with *vr0, OP0's known range, then the + overflow test can't pass, so return the node for false. + If it is the inverted range, vri, that has no + intersection, then the overflow test must pass, so return + the node for true. In other cases, we could proceed with + a simplified condition comparing OP0 and X, with LE_EXPR + for previously LE_ or LT_EXPR and GT_EXPR otherwise, but + the comments next to the enclosing if suggest it's not + generally profitable to do so. */ + vro.intersect (vr0); + if (vro.undefined_p ()) + return boolean_false_node; + vri.intersect (vr0); + if (vri.undefined_p ()) + return boolean_true_node; + } } if ((ret = vrp_evaluate_conditional_warnv_with_ops_using_ranges diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/vr-values.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/vr-values.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/vr-values.h 2018-11-13 05:13:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/vr-values.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for Value Range Propagation (VRP). - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/vtable-verify.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/vtable-verify.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/vtable-verify.c 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/vtable-verify.c 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/vtable-verify.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/vtable-verify.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/vtable-verify.h 2018-01-04 13:44:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/vtable-verify.h 2019-01-02 08:05:19.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/web.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/web.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/web.c 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/web.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* Web construction code for GNU compiler. Contributed by Jan Hubicka. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/wide-int-bitmask.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/wide-int-bitmask.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/wide-int-bitmask.h 2018-02-04 08:44:04.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/wide-int-bitmask.h 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Operation with 128 bit bitmask. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/wide-int.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/wide-int.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/wide-int.cc 2018-07-09 11:23:03.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/wide-int.cc 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Operations with very long integers. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Kenneth Zadeck This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/wide-int.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/wide-int.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/wide-int.h 2018-07-21 17:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/wide-int.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Operations with very long integers. -*- C++ -*- - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/wide-int-print.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/wide-int-print.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/wide-int-print.cc 2018-01-04 13:44:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/wide-int-print.cc 2019-01-02 08:05:16.000000000 +0000 @@ -1,5 +1,5 @@ /* Printing operations with very long integers. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Kenneth Zadeck This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/wide-int-print.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/wide-int-print.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/wide-int-print.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/wide-int-print.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Print wide integers. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/wide-int-range.cc gcc-snapshot-20190102/=unpacked-tar1=/gcc/wide-int-range.cc --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/wide-int-range.cc 2018-10-17 13:09:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/wide-int-range.cc 2019-01-02 08:05:18.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for range operations on wide ints. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/wide-int-range.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/wide-int-range.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/wide-int-range.h 2018-10-17 13:09:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/wide-int-range.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for range operations on wide ints. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/xcoff.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/xcoff.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/xcoff.h 2018-01-04 13:44:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/xcoff.h 2019-01-02 08:05:18.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2018 Free Software Foundation, Inc. +/* Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/xcoffout.c gcc-snapshot-20190102/=unpacked-tar1=/gcc/xcoffout.c --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/xcoffout.c 2018-11-28 13:52:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/xcoffout.c 2019-01-02 08:05:17.000000000 +0000 @@ -1,5 +1,5 @@ /* Output xcoff-format symbol table information from GNU compiler. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/gcc/xcoffout.h gcc-snapshot-20190102/=unpacked-tar1=/gcc/xcoffout.h --- gcc-snapshot-20181214/=unpacked-tar1=/gcc/xcoffout.h 2018-01-04 13:44:39.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/gcc/xcoffout.h 2019-01-02 08:05:17.000000000 +0000 @@ -1,6 +1,6 @@ /* XCOFF definitions. These are needed in dbxout.c, final.c, and xcoffout.h. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/ansidecl.h gcc-snapshot-20190102/=unpacked-tar1=/include/ansidecl.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/ansidecl.h 2018-05-05 11:58:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/ansidecl.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* ANSI and traditional C compatability macros - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software; you can redistribute it and/or modify diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/include/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/include/ChangeLog 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/ChangeLog 2019-01-02 08:05:14.000000000 +0000 @@ -1,3 +1,17 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + +2018-12-28 Thomas Schwinge + + * gomp-constants.h (GOACC_FLAG_HOST_FALLBACK) + (GOACC_FLAGS_MARSHAL_OP, GOACC_FLAGS_UNMARSHAL): Define. + +2018-12-22 Jason Merrill + + * demangle.h: Remove support for ancient GNU (pre-3.0), Lucid, + ARM, HP, and EDG demangling styles. + 2018-12-11 Nick Clifton PR 88409 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/demangle.h gcc-snapshot-20190102/=unpacked-tar1=/include/demangle.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/demangle.h 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/demangle.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Defs for interface to demanglers. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License @@ -53,20 +53,13 @@ */ #define DMGL_AUTO (1 << 8) -#define DMGL_GNU (1 << 9) -#define DMGL_LUCID (1 << 10) -#define DMGL_ARM (1 << 11) -#define DMGL_HP (1 << 12) /* For the HP aCC compiler; - same as ARM except for - template arguments, etc. */ -#define DMGL_EDG (1 << 13) #define DMGL_GNU_V3 (1 << 14) #define DMGL_GNAT (1 << 15) #define DMGL_DLANG (1 << 16) #define DMGL_RUST (1 << 17) /* Rust wraps GNU_V3 style mangling. */ /* If none of these are set, use 'current_demangling_style' as the default. */ -#define DMGL_STYLE_MASK (DMGL_AUTO|DMGL_GNU|DMGL_LUCID|DMGL_ARM|DMGL_HP|DMGL_EDG|DMGL_GNU_V3|DMGL_JAVA|DMGL_GNAT|DMGL_DLANG|DMGL_RUST) +#define DMGL_STYLE_MASK (DMGL_AUTO|DMGL_GNU_V3|DMGL_JAVA|DMGL_GNAT|DMGL_DLANG|DMGL_RUST) /* Disable a limit on the depth of recursion in mangled strings. Note if this limit is disabled then stack exhaustion is possible when @@ -92,11 +85,6 @@ no_demangling = -1, unknown_demangling = 0, auto_demangling = DMGL_AUTO, - gnu_demangling = DMGL_GNU, - lucid_demangling = DMGL_LUCID, - arm_demangling = DMGL_ARM, - hp_demangling = DMGL_HP, - edg_demangling = DMGL_EDG, gnu_v3_demangling = DMGL_GNU_V3, java_demangling = DMGL_JAVA, gnat_demangling = DMGL_GNAT, @@ -108,11 +96,6 @@ #define NO_DEMANGLING_STYLE_STRING "none" #define AUTO_DEMANGLING_STYLE_STRING "auto" -#define GNU_DEMANGLING_STYLE_STRING "gnu" -#define LUCID_DEMANGLING_STYLE_STRING "lucid" -#define ARM_DEMANGLING_STYLE_STRING "arm" -#define HP_DEMANGLING_STYLE_STRING "hp" -#define EDG_DEMANGLING_STYLE_STRING "edg" #define GNU_V3_DEMANGLING_STYLE_STRING "gnu-v3" #define JAVA_DEMANGLING_STYLE_STRING "java" #define GNAT_DEMANGLING_STYLE_STRING "gnat" @@ -123,11 +106,6 @@ #define CURRENT_DEMANGLING_STYLE current_demangling_style #define AUTO_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_AUTO) -#define GNU_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNU) -#define LUCID_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_LUCID) -#define ARM_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_ARM) -#define HP_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_HP) -#define EDG_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_EDG) #define GNU_V3_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNU_V3) #define JAVA_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_JAVA) #define GNAT_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNAT) @@ -147,17 +125,8 @@ extern char * cplus_demangle (const char *mangled, int options); -extern int -cplus_demangle_opname (const char *opname, char *result, int options); - -extern const char * -cplus_mangle_opname (const char *opname, int options); - /* Note: This sets global state. FIXME if you care about multi-threading. */ -extern void -set_cplus_marker_for_demangling (int ch); - extern enum demangling_styles cplus_demangle_set_style (enum demangling_styles style); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/dwarf2.def gcc-snapshot-20190102/=unpacked-tar1=/include/dwarf2.def --- gcc-snapshot-20181214/=unpacked-tar1=/include/dwarf2.def 2018-05-28 08:24:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/dwarf2.def 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* -*- c -*- Declarations and definitions of codes relating to the DWARF2 and DWARF3 symbolic debugging information formats. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Written by Gary Funck (gary@intrepid.com) The Ada Joint Program Office (AJPO), Florida State University and Silicon Graphics Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/dwarf2.h gcc-snapshot-20190102/=unpacked-tar1=/include/dwarf2.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/dwarf2.h 2018-02-10 19:55:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/dwarf2.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Declarations and definitions of codes relating to the DWARF2 and DWARF3 symbolic debugging information formats. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Written by Gary Funck (gary@intrepid.com) The Ada Joint Program Office (AJPO), Florida State University and Silicon Graphics Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/dyn-string.h gcc-snapshot-20190102/=unpacked-tar1=/include/dyn-string.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/dyn-string.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/dyn-string.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* An abstract string datatype. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Mark Mitchell (mark@markmitchell.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/environ.h gcc-snapshot-20190102/=unpacked-tar1=/include/environ.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/environ.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/environ.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Declare the environ system variable. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/fibheap.h gcc-snapshot-20190102/=unpacked-tar1=/include/fibheap.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/fibheap.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/fibheap.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* A Fibonacci heap datatype. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Daniel Berlin (dan@cgsoftware.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/filenames.h gcc-snapshot-20190102/=unpacked-tar1=/include/filenames.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/filenames.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/filenames.h 2019-01-02 08:05:14.000000000 +0000 @@ -5,7 +5,7 @@ use forward- and back-slash in path names interchangeably, and some of them have case-insensitive file names. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/floatformat.h gcc-snapshot-20190102/=unpacked-tar1=/include/floatformat.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/floatformat.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/floatformat.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* IEEE floating point support declarations, for GDB, the GNU Debugger. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of GDB. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/fnmatch.h gcc-snapshot-20190102/=unpacked-tar1=/include/fnmatch.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/fnmatch.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/fnmatch.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/gcc-c-fe.def gcc-snapshot-20190102/=unpacked-tar1=/include/gcc-c-fe.def --- gcc-snapshot-20181214/=unpacked-tar1=/include/gcc-c-fe.def 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/gcc-c-fe.def 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Interface between GCC C FE and GDB -*- c -*- - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/gcc-c-interface.h gcc-snapshot-20190102/=unpacked-tar1=/include/gcc-c-interface.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/gcc-c-interface.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/gcc-c-interface.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Interface between GCC C FE and GDB - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/gcc-cp-fe.def gcc-snapshot-20190102/=unpacked-tar1=/include/gcc-cp-fe.def --- gcc-snapshot-20181214/=unpacked-tar1=/include/gcc-cp-fe.def 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/gcc-cp-fe.def 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Interface between GCC C++ FE and GDB -*- c -*- - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/gcc-cp-interface.h gcc-snapshot-20190102/=unpacked-tar1=/include/gcc-cp-interface.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/gcc-cp-interface.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/gcc-cp-interface.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Interface between GCC C++ FE and GDB - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/gcc-interface.h gcc-snapshot-20190102/=unpacked-tar1=/include/gcc-interface.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/gcc-interface.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/gcc-interface.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Generic interface between GCC and GDB - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/gdb/gdb-index.h gcc-snapshot-20190102/=unpacked-tar1=/include/gdb/gdb-index.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/gdb/gdb-index.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/gdb/gdb-index.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Public attributes of the .gdb_index section. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GDB. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/getopt.h gcc-snapshot-20190102/=unpacked-tar1=/include/getopt.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/getopt.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/getopt.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations for getopt. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@gnu.org. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/gomp-constants.h gcc-snapshot-20190102/=unpacked-tar1=/include/gomp-constants.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/gomp-constants.h 2018-11-09 12:59:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/gomp-constants.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Communication between GCC and libgomp. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Mentor Embedded. @@ -197,6 +197,18 @@ /* Internal to libgomp. */ #define GOMP_TARGET_FLAG_UPDATE (1U << 31) + +/* OpenACC construct flags. */ + +/* Force host fallback execution. */ +#define GOACC_FLAG_HOST_FALLBACK (1 << 0) + +/* For legacy reasons, in the ABI, the GOACC_FLAGs are encoded as an inverted + bitmask. */ +#define GOACC_FLAGS_MARSHAL_OP BIT_NOT_EXPR +#define GOACC_FLAGS_UNMARSHAL(X) (~(X)) + + /* Versions of libgomp and device-specific plugins. GOMP_VERSION should be incremented whenever an ABI-incompatible change is introduced to the plugin interface defined in libgomp/libgomp.h. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/hashtab.h gcc-snapshot-20190102/=unpacked-tar1=/include/hashtab.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/hashtab.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/hashtab.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* An expandable hash tables datatype. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov (vmakarov@cygnus.com). This program is free software; you can redistribute it and/or modify diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/hsa.h gcc-snapshot-20190102/=unpacked-tar1=/include/hsa.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/hsa.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/hsa.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* HSA runtime API 1.0.1 representation description. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/leb128.h gcc-snapshot-20190102/=unpacked-tar1=/include/leb128.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/leb128.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/leb128.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Utilities for reading leb128 values. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/libiberty.h gcc-snapshot-20190102/=unpacked-tar1=/include/libiberty.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/libiberty.h 2018-08-02 03:04:25.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/libiberty.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Function declarations for libiberty. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Note - certain prototypes declared in this header file are for functions whoes implementation copyright does not belong to the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/longlong.h gcc-snapshot-20190102/=unpacked-tar1=/include/longlong.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/longlong.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/longlong.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* longlong.h -- definitions for mixed size 32/64 bit arithmetic. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/lto-symtab.h gcc-snapshot-20190102/=unpacked-tar1=/include/lto-symtab.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/lto-symtab.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/lto-symtab.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Data types used in the IL symbol table. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Rafael Espindola This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/md5.h gcc-snapshot-20190102/=unpacked-tar1=/include/md5.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/md5.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/md5.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* md5.h - Declaration of functions and data types used for MD5 sum computing library functions. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/objalloc.h gcc-snapshot-20190102/=unpacked-tar1=/include/objalloc.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/objalloc.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/objalloc.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* objalloc.h -- routines to allocate memory for objects - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Solutions. This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/obstack.h gcc-snapshot-20190102/=unpacked-tar1=/include/obstack.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/obstack.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/obstack.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* obstack.h - object stack macros - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/partition.h gcc-snapshot-20190102/=unpacked-tar1=/include/partition.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/partition.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/partition.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* List implementation of a partition of consecutive integers. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, LLC. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/plugin-api.h gcc-snapshot-20190102/=unpacked-tar1=/include/plugin-api.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/plugin-api.h 2018-05-02 07:13:06.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/plugin-api.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* plugin-api.h -- External linker plugin API. */ -/* Copyright (C) 2009-2018 Free Software Foundation, Inc. +/* Copyright (C) 2009-2019 Free Software Foundation, Inc. Written by Cary Coutant . This file is part of binutils. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/safe-ctype.h gcc-snapshot-20190102/=unpacked-tar1=/include/safe-ctype.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/safe-ctype.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/safe-ctype.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* replacement macros. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Zack Weinberg . This file is part of the libiberty library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/sha1.h gcc-snapshot-20190102/=unpacked-tar1=/include/sha1.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/sha1.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/sha1.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Declarations of functions and data types used for SHA1 sum library functions. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/simple-object.h gcc-snapshot-20190102/=unpacked-tar1=/include/simple-object.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/simple-object.h 2018-05-31 09:39:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/simple-object.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* simple-object.h -- simple routines to read and write object files - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/sort.h gcc-snapshot-20190102/=unpacked-tar1=/include/sort.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/sort.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/sort.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Sorting algorithms. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Mark Mitchell . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/splay-tree.h gcc-snapshot-20190102/=unpacked-tar1=/include/splay-tree.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/splay-tree.h 2018-05-31 09:39:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/splay-tree.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* A splay-tree datatype. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Mark Mitchell (mark@markmitchell.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/symcat.h gcc-snapshot-20190102/=unpacked-tar1=/include/symcat.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/symcat.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/symcat.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Symbol concatenation utilities. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/timeval-utils.h gcc-snapshot-20190102/=unpacked-tar1=/include/timeval-utils.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/timeval-utils.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/timeval-utils.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Basic struct timeval utilities. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/unique-ptr.h gcc-snapshot-20190102/=unpacked-tar1=/include/unique-ptr.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/unique-ptr.h 2018-10-30 08:45:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/unique-ptr.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* gnu::unique_ptr, a simple std::unique_ptr replacement for C++03. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/vtv-change-permission.h gcc-snapshot-20190102/=unpacked-tar1=/include/vtv-change-permission.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/vtv-change-permission.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/vtv-change-permission.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/xregex2.h gcc-snapshot-20190102/=unpacked-tar1=/include/xregex2.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/xregex2.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/xregex2.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* Definitions for data structures and routines for the regular expression library, version 0.12. - Copyright (C) 1985-2018 Free Software Foundation, Inc. + Copyright (C) 1985-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Its master source is NOT part of the C library, however. The master source lives in /gd/gnu/lib. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/include/xtensa-config.h gcc-snapshot-20190102/=unpacked-tar1=/include/xtensa-config.h --- gcc-snapshot-20181214/=unpacked-tar1=/include/xtensa-config.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/include/xtensa-config.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Xtensa configuration settings. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Bob Wilson (bob.wilson@acm.org) at Tensilica. This program is free software; you can redistribute it and/or modify diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/LAST_UPDATED gcc-snapshot-20190102/=unpacked-tar1=/LAST_UPDATED --- gcc-snapshot-20181214/=unpacked-tar1=/LAST_UPDATED 2018-12-14 05:16:31.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/LAST_UPDATED 2019-01-02 08:05:22.000000000 +0000 @@ -1,2 +1,2 @@ -Fri Dec 14 06:16:31 CET 2018 -Fri Dec 14 05:16:31 UTC 2018 (revision 267118) +Wed Jan 2 09:05:22 CET 2019 +Wed Jan 2 08:05:22 UTC 2019 (revision 267505) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libada/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/libada/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/libada/ChangeLog 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libada/ChangeLog 2019-01-02 08:05:20.000000000 +0000 @@ -1,3 +1,7 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + 2018-12-11 Eric Botcazou PR ada/88429 @@ -426,7 +430,7 @@ * New directory, new ChangeLog. -Copyright (C) 2003-2018 Free Software Foundation, Inc. +Copyright (C) 2003-2019 Free Software Foundation, Inc. This ChangeLog is free software; the Free Software Foundation gives unlimited permission to copy, distribute, and modify it. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libada/configure.ac gcc-snapshot-20190102/=unpacked-tar1=/libada/configure.ac --- gcc-snapshot-20181214/=unpacked-tar1=/libada/configure.ac 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libada/configure.ac 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ # Configure script for libada. -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libada/Makefile.in gcc-snapshot-20190102/=unpacked-tar1=/libada/Makefile.in --- gcc-snapshot-20181214/=unpacked-tar1=/libada/Makefile.in 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libada/Makefile.in 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ # Makefile for libada. -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/cas_n.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/cas_n.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/cas_n.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/cas_n.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/libatomic/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/ChangeLog 2018-11-01 16:06:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/ChangeLog 2019-01-02 08:05:14.000000000 +0000 @@ -1,3 +1,7 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + 2018-10-31 Joseph Myers PR bootstrap/82856 @@ -428,7 +432,7 @@ * Initial commit. -Copyright (C) 2012-2018 Free Software Foundation, Inc. +Copyright (C) 2012-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/arm/arm-config.h gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/arm/arm-config.h --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/arm/arm-config.h 2018-06-22 07:37:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/arm/arm-config.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/arm/exch_n.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/arm/exch_n.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/arm/exch_n.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/arm/exch_n.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/linux/aarch64/host-config.h gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/linux/aarch64/host-config.h --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/linux/aarch64/host-config.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/linux/aarch64/host-config.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2018 Free Software Foundation, Inc. +/* Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/linux/arm/host-config.h gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/linux/arm/host-config.h --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/linux/arm/host-config.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/linux/arm/host-config.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/linux/arm/init.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/linux/arm/init.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/linux/arm/init.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/linux/arm/init.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/linux/arm/load_n.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/linux/arm/load_n.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/linux/arm/load_n.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/linux/arm/load_n.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/linux/arm/store_n.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/linux/arm/store_n.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/linux/arm/store_n.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/linux/arm/store_n.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/mingw/host-config.h gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/mingw/host-config.h --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/mingw/host-config.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/mingw/host-config.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Kai Tietz . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/mingw/lock.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/mingw/lock.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/mingw/lock.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/mingw/lock.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Kai Tietz . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/posix/host-config.h gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/posix/host-config.h --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/posix/host-config.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/posix/host-config.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/posix/lock.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/posix/lock.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/posix/lock.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/posix/lock.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/rtems/host-config.h gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/rtems/host-config.h --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/rtems/host-config.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/rtems/host-config.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2016-2018 Free Software Foundation, Inc. +/* Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Sebastian Huber . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/rtems/lock.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/rtems/lock.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/rtems/lock.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/rtems/lock.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2016-2018 Free Software Foundation, Inc. +/* Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Sebastian Huber . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/s390/exch_n.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/s390/exch_n.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/s390/exch_n.c 2018-03-10 03:30:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/s390/exch_n.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Free Software Foundation, Inc. +/* Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Andreas Krebbel This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/x86/fenv.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/x86/fenv.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/x86/fenv.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/x86/fenv.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/x86/host-config.h gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/x86/host-config.h --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/x86/host-config.h 2018-05-28 08:24:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/x86/host-config.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/x86/init.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/x86/init.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/config/x86/init.c 2018-05-28 08:24:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/config/x86/init.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/configure.ac gcc-snapshot-20190102/=unpacked-tar1=/libatomic/configure.ac --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/configure.ac 2018-11-01 16:06:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/configure.ac 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ # Process this file with autoreconf to produce a configure script. -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # # This file is part of the GNU Atomic Library (libatomic). # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/configure.tgt gcc-snapshot-20190102/=unpacked-tar1=/libatomic/configure.tgt --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/configure.tgt 2018-03-10 03:30:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/configure.tgt 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ # -*- shell-script -*- -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by Richard Henderson . # # This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/exch_n.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/exch_n.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/exch_n.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/exch_n.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/fadd_n.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/fadd_n.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/fadd_n.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/fadd_n.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/fence.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/fence.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/fence.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/fence.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/fenv.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/fenv.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/fenv.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/fenv.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/flag.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/flag.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/flag.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/flag.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/fop_n.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/fop_n.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/fop_n.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/fop_n.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/gcas.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/gcas.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/gcas.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/gcas.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/gexch.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/gexch.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/gexch.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/gexch.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/glfree.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/glfree.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/glfree.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/glfree.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/gload.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/gload.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/gload.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/gload.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/gstore.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/gstore.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/gstore.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/gstore.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/host-config.h gcc-snapshot-20190102/=unpacked-tar1=/libatomic/host-config.h --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/host-config.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/host-config.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/libatomic_i.h gcc-snapshot-20190102/=unpacked-tar1=/libatomic/libatomic_i.h --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/libatomic_i.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/libatomic_i.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/load_n.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/load_n.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/load_n.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/load_n.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/Makefile.am gcc-snapshot-20190102/=unpacked-tar1=/libatomic/Makefile.am --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/Makefile.am 2018-11-01 16:06:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/Makefile.am 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -## Copyright (C) 2012-2018 Free Software Foundation, Inc. +## Copyright (C) 2012-2019 Free Software Foundation, Inc. ## Contributed by Richard Henderson . ## ## This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/store_n.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/store_n.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/store_n.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/store_n.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/tas_n.c gcc-snapshot-20190102/=unpacked-tar1=/libatomic/tas_n.c --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/tas_n.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/tas_n.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Atomic Library (libatomic). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libatomic/testsuite/config/default.exp gcc-snapshot-20190102/=unpacked-tar1=/libatomic/testsuite/config/default.exp --- gcc-snapshot-20181214/=unpacked-tar1=/libatomic/testsuite/config/default.exp 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libatomic/testsuite/config/default.exp 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/alloc.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/alloc.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/alloc.c 2018-11-27 09:27:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/alloc.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* alloc.c -- Memory allocation without mmap. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/allocfail.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/allocfail.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/allocfail.c 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/allocfail.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* allocfail.c -- Test for libbacktrace library - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/allocfail.sh gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/allocfail.sh --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/allocfail.sh 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/allocfail.sh 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ #!/bin/sh # allocfail.sh -- Test for libbacktrace library. -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -32,7 +32,6 @@ # POSSIBILITY OF SUCH DAMAGE. set -e -set -o pipefail if [ ! -f ./allocfail ]; then # Hard failure. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/atomic.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/atomic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/atomic.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/atomic.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* atomic.c -- Support for atomic functions if not present. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/backtrace.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/backtrace.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/backtrace.c 2018-04-23 08:51:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/backtrace.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* backtrace.c -- Entry point for stack backtrace library. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/backtrace.h gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/backtrace.h --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/backtrace.h 2018-10-15 11:36:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/backtrace.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* backtrace.h -- Public header file for stack backtrace library. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/backtrace-supported.h.in gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/backtrace-supported.h.in --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/backtrace-supported.h.in 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/backtrace-supported.h.in 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* backtrace-supported.h.in -- Whether stack backtrace is supported. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/btest.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/btest.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/btest.c 2018-02-01 10:03:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/btest.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* btest.c -- Test for libbacktrace library - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/ChangeLog 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/ChangeLog 2019-01-02 08:05:14.000000000 +0000 @@ -1,3 +1,41 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + +2018-12-29 Gerald Pfeifer + + * Makefile.am (xcoff_%.c): Use an actual newline instead of \n + in sed pattern. + * Makefile.in: Regenerate. + +2018-12-28 Tom de Vries + + * dwarf.c (build_address_map): Reuse unused units. + +2018-12-28 Tom de Vries + + * dwarf.c (build_address_map): Simplify by removing local variable + abbrevs. + +2018-12-28 Ian Lance Taylor + Tom de Vries + + PR libbacktrace/88063 + * dwarf.c (free_unit_addrs_vector): Remove. + (build_address_map): Keep track of allocated units in vector. Free + allocated units and corresponding abbrevs upon failure. Remove now + redundant call to free_unit_addrs_vector. Free addrs vector upon + failure. Free allocated unit vector. + +2018-12-28 Tom de Vries + + * dwarf.c (build_address_map): Free addrs vector upon failure. + +2018-12-14 Tom de Vries + + PR testsuite/88491 + * allocfail.sh: Remove "set -o pipefail". + 2018-12-12 Tom de Vries * Makefile.am (TESTS): Add allocfail.sh. @@ -1019,7 +1057,7 @@ * Initial implementation. -Copyright (C) 2012-2018 Free Software Foundation, Inc. +Copyright (C) 2012-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/configure.ac gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/configure.ac --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/configure.ac 2018-11-01 16:06:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/configure.ac 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ # configure.ac -- Backtrace configure script. -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/dwarf.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/dwarf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/dwarf.c 2018-11-30 09:21:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/dwarf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* dwarf.c -- Get file/line information from DWARF for backtraces. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without @@ -923,21 +923,6 @@ return 1; } -/* Free a unit address vector. */ - -static void -free_unit_addrs_vector (struct backtrace_state *state, - struct unit_addrs_vector *vec, - backtrace_error_callback error_callback, void *data) -{ - struct unit_addrs *addrs; - size_t i; - - addrs = (struct unit_addrs *) vec->vec.base; - for (i = 0; i < vec->count; ++i) - free_abbrevs (state, &addrs[i].u->abbrevs, error_callback, data); -} - /* Compare unit_addrs for qsort. When ranges are nested, make the smallest one sort last. */ @@ -1447,10 +1432,15 @@ void *data, struct unit_addrs_vector *addrs) { struct dwarf_buf info; - struct abbrevs abbrevs; + struct backtrace_vector units; + size_t units_count; + size_t i; + struct unit **pu; + size_t prev_addrs_count; memset (&addrs->vec, 0, sizeof addrs->vec); addrs->count = 0; + prev_addrs_count = 0; /* Read through the .debug_info section. FIXME: Should we use the .debug_aranges section? gdb and addr2line don't use it, but I'm @@ -1465,7 +1455,9 @@ info.data = data; info.reported_underflow = 0; - memset (&abbrevs, 0, sizeof abbrevs); + memset (&units, 0, sizeof units); + units_count = 0; + while (info.left > 0) { const unsigned char *unit_data_start; @@ -1496,17 +1488,28 @@ goto fail; } + pu = ((struct unit **) + backtrace_vector_grow (state, sizeof (struct unit *), + error_callback, data, &units)); + if (pu == NULL) + goto fail; + + u = ((struct unit *) + backtrace_alloc (state, sizeof *u, error_callback, data)); + if (u == NULL) + goto fail; + + *pu = u; + ++units_count; + + memset (&u->abbrevs, 0, sizeof u->abbrevs); abbrev_offset = read_offset (&unit_buf, is_dwarf64); if (!read_abbrevs (state, abbrev_offset, dwarf_abbrev, dwarf_abbrev_size, - is_bigendian, error_callback, data, &abbrevs)) + is_bigendian, error_callback, data, &u->abbrevs)) goto fail; addrsize = read_byte (&unit_buf); - u = ((struct unit *) - backtrace_alloc (state, sizeof *u, error_callback, data)); - if (u == NULL) - goto fail; u->unit_data = unit_buf.buf; u->unit_data_len = unit_buf.left; u->unit_data_offset = unit_buf.buf - unit_data_start; @@ -1517,8 +1520,6 @@ u->comp_dir = NULL; u->abs_filename = NULL; u->lineoff = 0; - u->abbrevs = abbrevs; - memset (&abbrevs, 0, sizeof abbrevs); /* The actual line number mappings will be read as needed. */ u->lines = NULL; @@ -1531,27 +1532,49 @@ dwarf_ranges, dwarf_ranges_size, is_bigendian, error_callback, data, u, addrs)) - { - free_abbrevs (state, &u->abbrevs, error_callback, data); - backtrace_free (state, u, sizeof *u, error_callback, data); - goto fail; - } + goto fail; if (unit_buf.reported_underflow) + goto fail; + + if (addrs->count > prev_addrs_count) + prev_addrs_count = addrs->count; + else { + /* Unit was not used; remove it from the vector. */ + --units_count; + units.size -= sizeof (u); + units.alc += sizeof (u); free_abbrevs (state, &u->abbrevs, error_callback, data); backtrace_free (state, u, sizeof *u, error_callback, data); - goto fail; } } if (info.reported_underflow) goto fail; + // We only kept the list of units to free them on failure. On + // success the units are retained, pointed to by the entries in + // addrs. + backtrace_vector_free (state, &units, error_callback, data); + return 1; fail: - free_abbrevs (state, &abbrevs, error_callback, data); - free_unit_addrs_vector (state, addrs, error_callback, data); + if (units_count > 0) + { + pu = (struct unit **) units.base; + for (i = 0; i < units_count; i++) + { + free_abbrevs (state, &pu[i]->abbrevs, error_callback, data); + backtrace_free (state, pu[i], sizeof **pu, error_callback, data); + } + backtrace_vector_free (state, &units, error_callback, data); + } + if (addrs->count > 0) + { + backtrace_vector_free (state, &addrs->vec, error_callback, data); + addrs->count = 0; + } return 0; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/edtest2.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/edtest2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/edtest2.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/edtest2.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* edtest2.c -- Test for libbacktrace storage allocation stress handling (p2) - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/edtest.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/edtest.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/edtest.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/edtest.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* edtest.c -- Test for libbacktrace storage allocation stress handling - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/elf.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/elf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/elf.c 2018-06-22 07:37:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/elf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* elf.c -- Get debug data from an ELF file for backtraces. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/fileline.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/fileline.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/fileline.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/fileline.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* fileline.c -- Get file and line number information in a backtrace. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/instrumented_alloc.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/instrumented_alloc.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/instrumented_alloc.c 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/instrumented_alloc.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* instrumented_alloc.c -- Memory allocation instrumented to fail when requested, for testing purposes. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/internal.h gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/internal.h --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/internal.h 2018-11-30 09:21:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/internal.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* internal.h -- Internal header file for stack backtrace library. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/Makefile.am gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/Makefile.am --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/Makefile.am 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/Makefile.am 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ # Makefile.am -- Backtrace Makefile. -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -105,7 +105,8 @@ xcoff_%.c: xcoff.c SEARCH='#error "Unknown BACKTRACE_XCOFF_SIZE"'; \ - REPLACE='#undef BACKTRACE_XCOFF_SIZE\n#define BACKTRACE_XCOFF_SIZE'; \ + REPLACE='#undef BACKTRACE_XCOFF_SIZE\ + #define BACKTRACE_XCOFF_SIZE'; \ $(SED) "s/^$$SEARCH\$$/$$REPLACE $*/" \ $(srcdir)/xcoff.c \ > $@ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/Makefile.in gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/Makefile.in --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/Makefile.in 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/Makefile.in 2019-01-02 08:05:22.000000000 +0000 @@ -1733,7 +1733,8 @@ @NATIVE_TRUE@xcoff_%.c: xcoff.c @NATIVE_TRUE@ SEARCH='#error "Unknown BACKTRACE_XCOFF_SIZE"'; \ -@NATIVE_TRUE@ REPLACE='#undef BACKTRACE_XCOFF_SIZE\n#define BACKTRACE_XCOFF_SIZE'; \ +@NATIVE_TRUE@ REPLACE='#undef BACKTRACE_XCOFF_SIZE\ +@NATIVE_TRUE@ #define BACKTRACE_XCOFF_SIZE'; \ @NATIVE_TRUE@ $(SED) "s/^$$SEARCH\$$/$$REPLACE $*/" \ @NATIVE_TRUE@ $(srcdir)/xcoff.c \ @NATIVE_TRUE@ > $@ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/mmap.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/mmap.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/mmap.c 2018-11-27 09:27:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/mmap.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* mmap.c -- Memory allocation with mmap. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/mmapio.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/mmapio.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/mmapio.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/mmapio.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* mmapio.c -- File views using mmap. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/nounwind.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/nounwind.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/nounwind.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/nounwind.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* backtrace.c -- Entry point for stack backtrace library. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/pecoff.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/pecoff.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/pecoff.c 2018-01-25 23:39:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/pecoff.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* pecoff.c -- Get debug data from a PE/COFFF file for backtraces. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Adapted from elf.c by Tristan Gingold, AdaCore. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/posix.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/posix.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/posix.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/posix.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* posix.c -- POSIX file I/O routines for the backtrace library. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/print.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/print.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/print.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/print.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* print.c -- Print the current backtrace. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/read.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/read.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/read.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/read.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* read.c -- File views without mmap. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/simple.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/simple.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/simple.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/simple.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* simple.c -- The backtrace_simple function. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/sort.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/sort.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/sort.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/sort.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* sort.c -- Sort without allocating memory - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/state.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/state.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/state.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/state.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* state.c -- Create the backtrace state. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/stest.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/stest.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/stest.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/stest.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* stest.c -- Test for libbacktrace internal sort function - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/test_format.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/test_format.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/test_format.c 2018-12-04 09:51:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/test_format.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* test_format.c -- Test for libbacktrace library - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/testlib.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/testlib.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/testlib.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/testlib.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* testlib.c -- test functions for libbacktrace library - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/testlib.h gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/testlib.h --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/testlib.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/testlib.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* testlib.h -- Header for test functions for libbacktrace library - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/ttest.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/ttest.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/ttest.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/ttest.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* ttest.c -- Test for libbacktrace library - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/unittest.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/unittest.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/unittest.c 2018-11-27 09:27:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/unittest.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* unittest.c -- Test for libbacktrace library - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/unknown.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/unknown.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/unknown.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/unknown.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* unknown.c -- used when backtrace configury does not know file format. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/xcoff.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/xcoff.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/xcoff.c 2018-08-02 03:04:25.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/xcoff.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* xcoff.c -- Get debug data from an XCOFF file for backtraces. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Adapted from elf.c. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/ztest.c gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/ztest.c --- gcc-snapshot-20181214/=unpacked-tar1=/libbacktrace/ztest.c 2018-01-17 05:41:16.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libbacktrace/ztest.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* ztest.c -- Test for libbacktrace inflate code. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. Redistribution and use in source and binary forms, with or without diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/callbacks.cc gcc-snapshot-20190102/=unpacked-tar1=/libcc1/callbacks.cc --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/callbacks.cc 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/callbacks.cc 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* Callback management. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/callbacks.hh gcc-snapshot-20190102/=unpacked-tar1=/libcc1/callbacks.hh --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/callbacks.hh 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/callbacks.hh 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* Callback management - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/libcc1/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/ChangeLog 2018-11-14 18:47:06.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/ChangeLog 2019-01-02 08:05:03.000000000 +0000 @@ -1,3 +1,7 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + 2018-11-13 David Malcolm * libcc1plugin.cc: Replace "source_location" with "location_t". diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/compiler-name.hh gcc-snapshot-20190102/=unpacked-tar1=/libcc1/compiler-name.hh --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/compiler-name.hh 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/compiler-name.hh 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* The names of the compilers we use. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/configure.ac gcc-snapshot-20190102/=unpacked-tar1=/libcc1/configure.ac --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/configure.ac 2018-11-01 16:06:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/configure.ac 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -dnl Copyright (C) 2014-2018 Free Software Foundation, Inc. +dnl Copyright (C) 2014-2019 Free Software Foundation, Inc. dnl dnl This file is part of GCC. dnl diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/connection.cc gcc-snapshot-20190102/=unpacked-tar1=/libcc1/connection.cc --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/connection.cc 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/connection.cc 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* Connect implementation - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/connection.hh gcc-snapshot-20190102/=unpacked-tar1=/libcc1/connection.hh --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/connection.hh 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/connection.hh 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* Plugin connection declarations - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/findcomp.cc gcc-snapshot-20190102/=unpacked-tar1=/libcc1/findcomp.cc --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/findcomp.cc 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/findcomp.cc 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* Find the correct compiler. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/findcomp.hh gcc-snapshot-20190102/=unpacked-tar1=/libcc1/findcomp.hh --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/findcomp.hh 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/findcomp.hh 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* Find the correct compiler. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/libcc1.cc gcc-snapshot-20190102/=unpacked-tar1=/libcc1/libcc1.cc --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/libcc1.cc 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/libcc1.cc 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* The library used by gdb. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/libcc1plugin.cc gcc-snapshot-20190102/=unpacked-tar1=/libcc1/libcc1plugin.cc --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/libcc1plugin.cc 2018-11-14 18:47:06.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/libcc1plugin.cc 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* Library interface to C front end - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/libcp1.cc gcc-snapshot-20190102/=unpacked-tar1=/libcc1/libcp1.cc --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/libcp1.cc 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/libcp1.cc 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* The library used by gdb. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/libcp1plugin.cc gcc-snapshot-20190102/=unpacked-tar1=/libcc1/libcp1plugin.cc --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/libcp1plugin.cc 2018-11-14 18:47:06.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/libcp1plugin.cc 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* Library interface to C++ front end. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. As it interacts with GDB through libcc1, they all become a single program as regards the GNU GPL's requirements. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/Makefile.am gcc-snapshot-20190102/=unpacked-tar1=/libcc1/Makefile.am --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/Makefile.am 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/Makefile.am 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -## Copyright (C) 2014-2018 Free Software Foundation, Inc. +## Copyright (C) 2014-2019 Free Software Foundation, Inc. ## This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/marshall.cc gcc-snapshot-20190102/=unpacked-tar1=/libcc1/marshall.cc --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/marshall.cc 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/marshall.cc 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* Marshalling and unmarshalling. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/marshall-c.hh gcc-snapshot-20190102/=unpacked-tar1=/libcc1/marshall-c.hh --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/marshall-c.hh 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/marshall-c.hh 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* Marshalling and unmarshalling of C-specific types. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/marshall-cp.hh gcc-snapshot-20190102/=unpacked-tar1=/libcc1/marshall-cp.hh --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/marshall-cp.hh 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/marshall-cp.hh 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* Marshalling and unmarshalling of C++-specific types. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/marshall.hh gcc-snapshot-20190102/=unpacked-tar1=/libcc1/marshall.hh --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/marshall.hh 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/marshall.hh 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* Marshalling and unmarshalling. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/names.cc gcc-snapshot-20190102/=unpacked-tar1=/libcc1/names.cc --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/names.cc 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/names.cc 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* String definitions. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/names.hh gcc-snapshot-20190102/=unpacked-tar1=/libcc1/names.hh --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/names.hh 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/names.hh 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* String declarations. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/rpc.hh gcc-snapshot-20190102/=unpacked-tar1=/libcc1/rpc.hh --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/rpc.hh 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/rpc.hh 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* RPC call and callback templates - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcc1/status.hh gcc-snapshot-20190102/=unpacked-tar1=/libcc1/status.hh --- gcc-snapshot-20181214/=unpacked-tar1=/libcc1/status.hh 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcc1/status.hh 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* status type definition - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/libcpp/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/ChangeLog 2018-11-28 13:52:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/ChangeLog 2019-01-02 08:05:20.000000000 +0000 @@ -1,3 +1,7 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + 2018-11-27 Mike Gulick PR preprocessor/83173 @@ -5717,7 +5721,7 @@ * include/symtab.h: Moved from gcc/hashtable.h. Change header guard name. -Copyright (C) 2004-2018 Free Software Foundation, Inc. +Copyright (C) 2004-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/charset.c gcc-snapshot-20190102/=unpacked-tar1=/libcpp/charset.c --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/charset.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/charset.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* CPP Library - charsets - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Broken out of c-lex.c Apr 2003, adding valid C99 UCN ranges. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/directives.c gcc-snapshot-20190102/=unpacked-tar1=/libcpp/directives.c --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/directives.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/directives.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* CPP Library. (Directive handling.) - Copyright (C) 1986-2018 Free Software Foundation, Inc. + Copyright (C) 1986-2019 Free Software Foundation, Inc. Contributed by Per Bothner, 1994-95. Based on CCCP program by Paul Rubin, June 1986 Adapted to ANSI C, Richard Stallman, Jan 1987 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/directives-only.c gcc-snapshot-20190102/=unpacked-tar1=/libcpp/directives-only.c --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/directives-only.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/directives-only.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* CPP Library - directive only preprocessing for distributed compilation. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Ollie Wild . This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/errors.c gcc-snapshot-20190102/=unpacked-tar1=/libcpp/errors.c --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/errors.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/errors.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Default error handlers for CPP Library. - Copyright (C) 1986-2018 Free Software Foundation, Inc. + Copyright (C) 1986-2019 Free Software Foundation, Inc. Written by Per Bothner, 1994. Based on CCCP program by Paul Rubin, June 1986 Adapted to ANSI C, Richard Stallman, Jan 1987 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/expr.c gcc-snapshot-20190102/=unpacked-tar1=/libcpp/expr.c --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/expr.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/expr.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Parse C expressions for cpplib. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. Contributed by Per Bothner, 1994. This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/files.c gcc-snapshot-20190102/=unpacked-tar1=/libcpp/files.c --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/files.c 2018-11-28 13:52:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/files.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Part of CPP library. File handling. - Copyright (C) 1986-2018 Free Software Foundation, Inc. + Copyright (C) 1986-2019 Free Software Foundation, Inc. Written by Per Bothner, 1994. Based on CCCP program by Paul Rubin, June 1986 Adapted to ANSI C, Richard Stallman, Jan 1987 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/identifiers.c gcc-snapshot-20190102/=unpacked-tar1=/libcpp/identifiers.c --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/identifiers.c 2018-08-20 09:41:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/identifiers.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Hash tables for the CPP library. - Copyright (C) 1986-2018 Free Software Foundation, Inc. + Copyright (C) 1986-2019 Free Software Foundation, Inc. Written by Per Bothner, 1994. Based on CCCP program by Paul Rubin, June 1986 Adapted to ANSI C, Richard Stallman, Jan 1987 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/include/cpplib.h gcc-snapshot-20190102/=unpacked-tar1=/libcpp/include/cpplib.h --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/include/cpplib.h 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/include/cpplib.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for CPP library. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. Written by Per Bothner, 1994-95. This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/include/line-map.h gcc-snapshot-20190102/=unpacked-tar1=/libcpp/include/line-map.h --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/include/line-map.h 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/include/line-map.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Map (unsigned int) keys to (source file, line, column) triples. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/include/mkdeps.h gcc-snapshot-20190102/=unpacked-tar1=/libcpp/include/mkdeps.h --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/include/mkdeps.h 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/include/mkdeps.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Dependency generator for Makefile fragments. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Zack Weinberg, Mar 2000 This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/include/symtab.h gcc-snapshot-20190102/=unpacked-tar1=/libcpp/include/symtab.h --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/include/symtab.h 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/include/symtab.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Hash tables. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/init.c gcc-snapshot-20190102/=unpacked-tar1=/libcpp/init.c --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/init.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/init.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* CPP Library. - Copyright (C) 1986-2018 Free Software Foundation, Inc. + Copyright (C) 1986-2019 Free Software Foundation, Inc. Contributed by Per Bothner, 1994-95. Based on CCCP program by Paul Rubin, June 1986 Adapted to ANSI C, Richard Stallman, Jan 1987 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/internal.h gcc-snapshot-20190102/=unpacked-tar1=/libcpp/internal.h --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/internal.h 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/internal.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Part of CPP library. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/lex.c gcc-snapshot-20190102/=unpacked-tar1=/libcpp/lex.c --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/lex.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/lex.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* CPP Library - lexical analysis. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Per Bothner, 1994-95. Based on CCCP program by Paul Rubin, June 1986 Adapted to ANSI C, Richard Stallman, Jan 1987 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/line-map.c gcc-snapshot-20190102/=unpacked-tar1=/libcpp/line-map.c --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/line-map.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/line-map.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Map (unsigned int) keys to (source file, line, column) triples. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/macro.c gcc-snapshot-20190102/=unpacked-tar1=/libcpp/macro.c --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/macro.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/macro.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Part of CPP library. (Macro and #define handling.) - Copyright (C) 1986-2018 Free Software Foundation, Inc. + Copyright (C) 1986-2019 Free Software Foundation, Inc. Written by Per Bothner, 1994. Based on CCCP program by Paul Rubin, June 1986 Adapted to ANSI C, Richard Stallman, Jan 1987 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/Makefile.in gcc-snapshot-20190102/=unpacked-tar1=/libcpp/Makefile.in --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/Makefile.in 2018-11-01 16:06:23.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/Makefile.in 2019-01-02 08:05:20.000000000 +0000 @@ -1,7 +1,7 @@ # @configure_input@ # Makefile for libcpp. Run 'configure' to generate Makefile from Makefile.in -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. #This file is part of libcpp. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/makeucnid.c gcc-snapshot-20190102/=unpacked-tar1=/libcpp/makeucnid.c --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/makeucnid.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/makeucnid.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Make ucnid.h from various sources. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -378,7 +378,7 @@ { static const char copyright[] = "\ /* Unicode characters and various properties.\n\ - Copyright (C) 2003-2018 Free Software Foundation, Inc.\n\ + Copyright (C) 2003-2019 Free Software Foundation, Inc.\n\ \n\ This program is free software; you can redistribute it and/or modify it\n\ under the terms of the GNU General Public License as published by the\n\ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/mkdeps.c gcc-snapshot-20190102/=unpacked-tar1=/libcpp/mkdeps.c --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/mkdeps.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/mkdeps.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Dependency generator for Makefile fragments. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Zack Weinberg, Mar 2000 This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/pch.c gcc-snapshot-20190102/=unpacked-tar1=/libcpp/pch.c --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/pch.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/pch.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Part of CPP library. (Precompiled header reading/writing.) - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/symtab.c gcc-snapshot-20190102/=unpacked-tar1=/libcpp/symtab.c --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/symtab.c 2018-11-09 12:59:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/symtab.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Hash tables. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/system.h gcc-snapshot-20190102/=unpacked-tar1=/libcpp/system.h --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/system.h 2018-05-28 08:24:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/system.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Get common system includes and various definitions and declarations based on autoconf macros. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/traditional.c gcc-snapshot-20190102/=unpacked-tar1=/libcpp/traditional.c --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/traditional.c 2018-11-14 18:47:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/traditional.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* CPP Library - traditional lexical analysis and macro expansion. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Neil Booth, May 2002 This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/ucnid.h gcc-snapshot-20190102/=unpacked-tar1=/libcpp/ucnid.h --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/ucnid.h 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/ucnid.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Unicode characters and various properties. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libcpp/ucnid.tab gcc-snapshot-20190102/=unpacked-tar1=/libcpp/ucnid.tab --- gcc-snapshot-20181214/=unpacked-tar1=/libcpp/ucnid.tab 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libcpp/ucnid.tab 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ ; Table of UCNs which are valid in identifiers. -; Copyright (C) 2003-2018 Free Software Foundation, Inc. +; Copyright (C) 2003-2019 Free Software Foundation, Inc. ; ; This program is free software; you can redistribute it and/or modify it ; under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/bid/bid2dpd_dpd2bid.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/bid/bid2dpd_dpd2bid.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/bid/bid2dpd_dpd2bid.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/bid/bid2dpd_dpd2bid.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/bid/bid2dpd_dpd2bid.h gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/bid/bid2dpd_dpd2bid.h --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/bid/bid2dpd_dpd2bid.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/bid/bid2dpd_dpd2bid.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/bid/bid-dpd.h gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/bid/bid-dpd.h --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/bid/bid-dpd.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/bid/bid-dpd.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/bid/decimal128.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/bid/decimal128.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/bid/decimal128.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/bid/decimal128.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/bid/decimal32.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/bid/decimal32.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/bid/decimal32.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/bid/decimal32.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/bid/decimal64.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/bid/decimal64.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/bid/decimal64.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/bid/decimal64.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/bid/host-ieee128.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/bid/host-ieee128.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/bid/host-ieee128.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/bid/host-ieee128.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* This is a software decimal floating point library. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/bid/host-ieee32.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/bid/host-ieee32.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/bid/host-ieee32.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/bid/host-ieee32.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* This is a software decimal floating point library. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/bid/host-ieee64.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/bid/host-ieee64.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/bid/host-ieee64.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/bid/host-ieee64.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* This is a software decimal floating point library. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/ChangeLog 2018-11-01 16:06:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/ChangeLog 2019-01-02 08:05:15.000000000 +0000 @@ -1,3 +1,7 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + 2018-10-31 Joseph Myers PR bootstrap/82856 @@ -698,7 +702,7 @@ * decDPD.h: Likewise. * decLibrary.c, decRound.c: Likewise. -Copyright (C) 2005-2018 Free Software Foundation, Inc. +Copyright (C) 2005-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/configure.ac gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/configure.ac --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/configure.ac 2018-11-01 16:06:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/configure.ac 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ # configure.ac for libdecnumber -*- Autoconf -*- # Process this file with autoconf to generate a configuration script. -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/dconfig.h gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/dconfig.h --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/dconfig.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/dconfig.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Configure decNumber for either host or target. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decBasic.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decBasic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decBasic.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decBasic.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Common base code for the decNumber C Library. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decCommon.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decCommon.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decCommon.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decCommon.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Common code for fixed-size types in the decNumber C Library. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decContext.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decContext.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decContext.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decContext.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Decimal context module for the decNumber C Library. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decContext.h gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decContext.h --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decContext.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decContext.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Decimal context header module for the decNumber C Library. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decDouble.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decDouble.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decDouble.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decDouble.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* decDouble module for the decNumber C Library. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decDouble.h gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decDouble.h --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decDouble.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decDouble.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* decDouble module header for the decNumber C Library. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decDPD.h gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decDPD.h --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decDPD.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decDPD.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Conversion lookup tables for the decNumber C Library. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decExcept.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decExcept.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decExcept.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decExcept.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Temporary library support for decimal floating point. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decExcept.h gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decExcept.h --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decExcept.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decExcept.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Temporary library support for decimal floating point. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decLibrary.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decLibrary.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decLibrary.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decLibrary.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Temporary library support for decimal floating point. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decNumber.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decNumber.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decNumber.c 2018-02-20 06:32:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decNumber.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Decimal number arithmetic module for the decNumber C Library. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decNumber.h gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decNumber.h --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decNumber.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decNumber.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Decimal number arithmetic module header for the decNumber C Library. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decNumberLocal.h gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decNumberLocal.h --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decNumberLocal.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decNumberLocal.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Local definitions for the decNumber C Library. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decPacked.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decPacked.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decPacked.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decPacked.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Packed decimal conversion module for the decNumber C Library. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decPacked.h gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decPacked.h --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decPacked.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decPacked.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Packed decimal conversion module header for the decNumber C Library. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decQuad.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decQuad.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decQuad.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decQuad.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* decQuad module for the decNumber C Library. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decQuad.h gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decQuad.h --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decQuad.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decQuad.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* decQuad module header for the decNumber C Library. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decRound.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decRound.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decRound.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decRound.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Internal testing support for rounding for decimal float. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decRound.h gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decRound.h --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decRound.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decRound.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Internal testing support for rounding for decimal float. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decSingle.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decSingle.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decSingle.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decSingle.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* decSingle module for the decNumber C Library. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decSingle.h gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decSingle.h --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/decSingle.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/decSingle.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* decSingle module header for the decNumber C Library. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/dpd/decimal128.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/dpd/decimal128.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/dpd/decimal128.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/dpd/decimal128.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Decimal 128-bit format module for the decNumber C Library. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/dpd/decimal128.h gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/dpd/decimal128.h --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/dpd/decimal128.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/dpd/decimal128.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Decimal 128-bit format module header for the decNumber C Library. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/dpd/decimal128Local.h gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/dpd/decimal128Local.h --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/dpd/decimal128Local.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/dpd/decimal128Local.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Local definitions for use with the decNumber C Library. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/dpd/decimal32.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/dpd/decimal32.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/dpd/decimal32.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/dpd/decimal32.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Decimal 32-bit format module for the decNumber C Library. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/dpd/decimal32.h gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/dpd/decimal32.h --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/dpd/decimal32.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/dpd/decimal32.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Decimal 32-bit format module header for the decNumber C Library. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/dpd/decimal64.c gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/dpd/decimal64.c --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/dpd/decimal64.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/dpd/decimal64.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Decimal 64-bit format module for the decNumber C Library. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/dpd/decimal64.h gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/dpd/decimal64.h --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/dpd/decimal64.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/dpd/decimal64.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Decimal 64-bit format module header for the decNumber C Library. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by IBM Corporation. Author Mike Cowlishaw. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/Makefile.in gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/Makefile.in --- gcc-snapshot-20181214/=unpacked-tar1=/libdecnumber/Makefile.in 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libdecnumber/Makefile.in 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ # @configure_input@ # Makefile for libdecnumber. Run 'configure' to generate Makefile from Makefile.in -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/libgcc/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/ChangeLog 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/ChangeLog 2019-01-02 08:05:14.000000000 +0000 @@ -1,3 +1,32 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + +2018-12-20 H.J. Lu + + * unwind-pe.h (read_encoded_value_with_base): Add GCC pragma + to ignore -Waddress-of-packed-member. + +2018-12-19 Thomas Preud'homme + + * /config/arm/lib1funcs.S (FUNC_START): Remove unused sp_section + parameter and corresponding code. + (ARM_FUNC_START): Likewise in both definitions. + Also update footer comment about condition that need to match with + gcc/config/arm/elf.h to also include libgcc/config/arm/t-arm. + * config/arm/ieee754-df.S (muldf3): Also build it if L_arm_muldf3 is + defined. Weakly define it in this case. + * config/arm/ieee754-sf.S (mulsf3): Likewise with L_arm_mulsf3. + * config/arm/t-elf (LIB1ASMFUNCS): Build _arm_muldf3.o and + _arm_mulsf3.o before muldiv versions if targeting Thumb-1 only. Add + comment to keep condition in sync with the one in + libgcc/config/arm/lib1funcs.S and gcc/config/arm/elf.h. + +2018-12-18 Wei Xiao + + * config/i386/cpuinfo.c (get_intel_cpu): Handle cascadelake. + * config/i386/cpuinfo.h: Add INTEL_COREI7_CASCADELAKE. + 2018-12-12 Rasmus Villemoes * config/rs6000/tramp.S (__trampoline_setup): Also emit .size @@ -9657,7 +9686,7 @@ shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. -Copyright (C) 2007-2018 Free Software Foundation, Inc. +Copyright (C) 2007-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/aarch64-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/aarch64-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/aarch64-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/aarch64-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2018 Free Software Foundation, Inc. +/* Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/crtfastmath.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/crtfastmath.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/crtfastmath.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/crtfastmath.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014-2018 Free Software Foundation, Inc. + * Copyright (C) 2014-2019 Free Software Foundation, Inc. * * This file is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/crti.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/crti.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ # Machine description for AArch64 architecture. -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # Contributed by ARM Ltd. # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/crtn.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/crtn.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ # Machine description for AArch64 architecture. -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # Contributed by ARM Ltd. # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/freebsd-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/freebsd-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/freebsd-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/freebsd-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for FreeBSD/ARM64 (aarch64). - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by John Marino This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/linux-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/linux-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2018 Free Software Foundation, Inc. +/* Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/sfp-exceptions.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/sfp-exceptions.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/sfp-exceptions.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/sfp-exceptions.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012-2018 Free Software Foundation, Inc. + * Copyright (C) 2012-2019 Free Software Foundation, Inc. * * This file is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/sfp-machine.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/sfp-machine.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/sfp-machine.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/sfp-machine.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Machine description for AArch64 architecture. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/sync-cache.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/sync-cache.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/sync-cache.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/sync-cache.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Machine description for AArch64 architecture. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/t-aarch64 gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/t-aarch64 --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/t-aarch64 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/t-aarch64 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ # Machine description for AArch64 architecture. -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by ARM Ltd. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/value-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/value-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/aarch64/value-unwind.h 2018-01-14 10:48:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/aarch64/value-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Store register values as _Unwind_Word type in DWARF2 EH unwind context. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/alpha/crtfastmath.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/alpha/crtfastmath.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/alpha/crtfastmath.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/alpha/crtfastmath.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2001-2018 Free Software Foundation, Inc. + * Copyright (C) 2001-2019 Free Software Foundation, Inc. * Contributed by Richard Henderson (rth@redhat.com) * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/alpha/libgcc-alpha-ldbl.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/alpha/libgcc-alpha-ldbl.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/alpha/libgcc-alpha-ldbl.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/alpha/libgcc-alpha-ldbl.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/alpha/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/alpha/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/alpha/linux-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/alpha/linux-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for Alpha Linux. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/alpha/qrnnd.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/alpha/qrnnd.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/alpha/qrnnd.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/alpha/qrnnd.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ # Alpha 21064 __udiv_qrnnd - # Copyright (C) 1992-2018 Free Software Foundation, Inc. + # Copyright (C) 1992-2019 Free Software Foundation, Inc. # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/alpha/vms-dwarf2eh.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/alpha/vms-dwarf2eh.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/alpha/vms-dwarf2eh.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/alpha/vms-dwarf2eh.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* VMS dwarf2 exception handling section sequentializer. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Douglas B. Rupp (rupp@gnat.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/alpha/vms-dwarf2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/alpha/vms-dwarf2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/alpha/vms-dwarf2.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/alpha/vms-dwarf2.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* VMS dwarf2 section sequentializer. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Douglas B. Rupp (rupp@gnat.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/alpha/vms-gcc_shell_handler.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/alpha/vms-gcc_shell_handler.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/alpha/vms-gcc_shell_handler.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/alpha/vms-gcc_shell_handler.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Static condition handler for Alpha/VMS. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/alpha/vms-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/alpha/vms-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/alpha/vms-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/alpha/vms-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Fallback frame unwinding for Alpha/VMS. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/asm.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/asm.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/asm.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/asm.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Assembler macros for the Synopsys DesignWare ARC CPU. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/crti.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/crti.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* .fini/.init stack frame setup for the Synopsys DesignWare ARC CPU. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/crtn.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/crtn.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Ensure .fini/.init return for the Synopsys DesignWare ARC CPU. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/crttls.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/crttls.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/crttls.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/crttls.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ ; newlib tls glue code for Synopsys DesignWare ARC cpu. -/* Copyright (C) 2016-2018 Free Software Foundation, Inc. +/* Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/divtab-arc700.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/divtab-arc700.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/divtab-arc700.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/divtab-arc700.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2018 Free Software Foundation, Inc. +/* Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/dp-hack.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/dp-hack.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/dp-hack.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/dp-hack.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/fp-hack.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/fp-hack.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/fp-hack.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/fp-hack.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/adddf3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/adddf3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/adddf3.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/adddf3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/addsf3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/addsf3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/addsf3.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/addsf3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600/divsf3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600/divsf3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600/divsf3.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600/divsf3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600/mulsf3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600/mulsf3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600/mulsf3.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600/mulsf3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-dsp/divdf3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-dsp/divdf3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-dsp/divdf3.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-dsp/divdf3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-dsp/divsf3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-dsp/divsf3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-dsp/divsf3.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-dsp/divsf3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-dsp/muldf3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-dsp/muldf3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-dsp/muldf3.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-dsp/muldf3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-dsp/mulsf3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-dsp/mulsf3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-dsp/mulsf3.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-dsp/mulsf3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-mul64/divdf3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-mul64/divdf3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-mul64/divdf3.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-mul64/divdf3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-mul64/divsf3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-mul64/divsf3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-mul64/divsf3.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-mul64/divsf3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-mul64/muldf3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-mul64/muldf3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-mul64/muldf3.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-mul64/muldf3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-mul64/mulsf3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-mul64/mulsf3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-mul64/mulsf3.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc600-mul64/mulsf3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc-ieee-754.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc-ieee-754.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc-ieee-754.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/arc-ieee-754.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/divdf3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/divdf3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/divdf3.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/divdf3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/divsf3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/divsf3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/divsf3.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/divsf3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/divsf3-stdmul.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/divsf3-stdmul.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/divsf3-stdmul.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/divsf3-stdmul.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/divtab-arc-df.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/divtab-arc-df.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/divtab-arc-df.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/divtab-arc-df.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/divtab-arc-sf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/divtab-arc-sf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/divtab-arc-sf.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/divtab-arc-sf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/eqdf2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/eqdf2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/eqdf2.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/eqdf2.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/eqsf2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/eqsf2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/eqsf2.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/eqsf2.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/extendsfdf2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/extendsfdf2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/extendsfdf2.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/extendsfdf2.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/fixdfsi.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/fixdfsi.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/fixdfsi.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/fixdfsi.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/fixsfsi.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/fixsfsi.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/fixsfsi.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/fixsfsi.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/fixunsdfsi.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/fixunsdfsi.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/fixunsdfsi.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/fixunsdfsi.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/floatsidf.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/floatsidf.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/floatsidf.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/floatsidf.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/floatsisf.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/floatsisf.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/floatsisf.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/floatsisf.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/floatunsidf.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/floatunsidf.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/floatunsidf.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/floatunsidf.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/gedf2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/gedf2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/gedf2.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/gedf2.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/gesf2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/gesf2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/gesf2.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/gesf2.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/gtdf2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/gtdf2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/gtdf2.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/gtdf2.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/gtsf2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/gtsf2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/gtsf2.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/gtsf2.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/muldf3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/muldf3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/muldf3.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/muldf3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/mulsf3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/mulsf3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/mulsf3.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/mulsf3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/orddf2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/orddf2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/orddf2.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/orddf2.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/ordsf2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/ordsf2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/ordsf2.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/ordsf2.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/truncdfsf2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/truncdfsf2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/truncdfsf2.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/truncdfsf2.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/uneqdf2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/uneqdf2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/uneqdf2.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/uneqdf2.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/uneqsf2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/uneqsf2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/ieee-754/uneqsf2.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/ieee-754/uneqsf2.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/initfini.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/initfini.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/initfini.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/initfini.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* .init/.fini section handling + C++ global constructor/destructor handling. This file is based on crtstuff.c, sol2-crti.asm, sol2-crtn.asm. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/lib1funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/lib1funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/lib1funcs.S 2018-10-31 16:04:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/lib1funcs.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ ; libgcc1 routines for Synopsys DesignWare ARC cpu. -/* Copyright (C) 1995-2018 Free Software Foundation, Inc. +/* Copyright (C) 1995-2019 Free Software Foundation, Inc. Contributor: Joern Rennecke on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/libgcc-excl.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/libgcc-excl.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/libgcc-excl.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/libgcc-excl.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ # Exclude libgcc.so symbols for the Synopsys DesignWare ARC CPU. -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # Contributor: Joern Rennecke # on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/linux-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/linux-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for ARC Linux. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/linux-unwind-reg.def gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/linux-unwind-reg.def --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/linux-unwind-reg.def 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/linux-unwind-reg.def 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2018 Free Software Foundation, Inc. +/* Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/t-arc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/t-arc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/t-arc 2018-10-31 16:04:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/t-arc 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ # GCC Makefile fragment for Synopsys DesignWare ARC -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # Contributor: Joern Rennecke # on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/t-arc-uClibc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/t-arc-uClibc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arc/t-arc-uClibc 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arc/t-arc-uClibc 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ # GCC Makefile fragment for the Synopsys DesignWare ARC700 CPU with uClibc. -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # Contributor: Joern Rennecke # on behalf of Synopsys Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/bpabi.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/bpabi.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/bpabi.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/bpabi.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Miscellaneous BPABI functions. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, LLC. This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/bpabi-lib.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/bpabi-lib.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/bpabi-lib.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/bpabi-lib.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Configuration file for ARM BPABI targets, library renames. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, LLC This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/bpabi.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/bpabi.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/bpabi.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/bpabi.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Miscellaneous BPABI functions. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, LLC. This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/bpabi-v6m.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/bpabi-v6m.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/bpabi-v6m.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/bpabi-v6m.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* Miscellaneous BPABI functions. Thumb-1 implementation, suitable for ARMv4T, ARMv6-M and ARMv8-M Baseline like ISA variants. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by CodeSourcery. This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/cmse.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/cmse.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/cmse.c 2018-05-21 12:22:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/cmse.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* ARMv8-M Security Extensions routines. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/cmse_nonsecure_call.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/cmse_nonsecure_call.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/cmse_nonsecure_call.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/cmse_nonsecure_call.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* CMSE wrapper function used to save, clear and restore callee saved registers for cmse_nonsecure_call's. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/crtfastmath.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/crtfastmath.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/crtfastmath.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/crtfastmath.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014-2018 Free Software Foundation, Inc. + * Copyright (C) 2014-2019 Free Software Foundation, Inc. * * This file is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/crti.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/crti.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # Written By Nick Clifton # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/crtn.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/crtn.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # Written By Nick Clifton # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/fp16.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/fp16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/fp16.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/fp16.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Half-float conversion routines. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by CodeSourcery. This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/freebsd-atomic.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/freebsd-atomic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/freebsd-atomic.c 2018-04-28 09:49:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/freebsd-atomic.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* FreeBSD specific atomic operations for ARM EABI. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/ieee754-df.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/ieee754-df.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/ieee754-df.S 2018-08-12 11:28:25.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/ieee754-df.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* ieee754-df.S double-precision floating point support for ARM - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Nicolas Pitre (nico@fluxnic.net) This file is free software; you can redistribute it and/or modify it @@ -617,7 +617,18 @@ #endif /* L_addsubdf3 */ -#ifdef L_arm_muldivdf3 +#if defined(L_arm_muldf3) || defined(L_arm_muldivdf3) + +@ Define multiplication as weak in _arm_muldf3.o so that it can be overriden +@ by the global definition in _arm_muldivdf3.o. This allows a program only +@ using multiplication to take the weak definition which does not contain the +@ division code. Programs using only division or both division and +@ multiplication will pull _arm_muldivdf3.o from which both the multiplication +@ and division are taken thanks to the override. +#ifdef L_arm_muldf3 +WEAK muldf3 +WEAK aeabi_dmul +#endif ARM_FUNC_START muldf3 ARM_FUNC_ALIAS aeabi_dmul muldf3 @@ -870,6 +881,8 @@ FUNC_END aeabi_dmul FUNC_END muldf3 +#ifdef L_arm_muldivdf3 + ARM_FUNC_START divdf3 ARM_FUNC_ALIAS aeabi_ddiv divdf3 CFI_START_FUNCTION @@ -1067,6 +1080,7 @@ FUNC_END divdf3 #endif /* L_muldivdf3 */ +#endif /* L_arm_muldf3 || L_arm_muldivdf3 */ #ifdef L_arm_cmpdf2 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/ieee754-sf.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/ieee754-sf.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/ieee754-sf.S 2018-08-12 11:28:25.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/ieee754-sf.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* ieee754-sf.S single-precision floating point support for ARM - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Nicolas Pitre (nico@fluxnic.net) This file is free software; you can redistribute it and/or modify it @@ -428,7 +428,18 @@ #endif /* L_addsubsf3 */ -#ifdef L_arm_muldivsf3 +#if defined(L_arm_mulsf3) || defined(L_arm_muldivsf3) + +@ Define multiplication as weak in _arm_mulsf3.o so that it can be overriden +@ by the global definition in _arm_muldivsf3.o. This allows a program only +@ using multiplication to take the weak definition which does not contain the +@ division code. Programs using only division or both division and +@ multiplication will pull _arm_muldivsf3.o from which both the multiplication +@ and division are taken thanks to the override. +#ifdef L_arm_mulsf3 +WEAK mulsf3 +WEAK aeabi_fmul +#endif ARM_FUNC_START mulsf3 ARM_FUNC_ALIAS aeabi_fmul mulsf3 @@ -613,6 +624,8 @@ FUNC_END aeabi_fmul FUNC_END mulsf3 +#ifdef L_arm_muldivsf3 + ARM_FUNC_START divsf3 ARM_FUNC_ALIAS aeabi_fdiv divsf3 CFI_START_FUNCTION @@ -756,6 +769,7 @@ FUNC_END divsf3 #endif /* L_muldivsf3 */ +#endif /* L_arm_mulsf3 || L_arm_muldivsf3 */ #ifdef L_arm_cmpsf2 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/lib1funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/lib1funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/lib1funcs.S 2018-09-08 14:39:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/lib1funcs.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ @ libgcc routines for ARM cpu. @ Division routines, written by Richard Earnshaw, (rearnsha@armltd.co.uk) -/* Copyright (C) 1995-2018 Free Software Foundation, Inc. +/* Copyright (C) 1995-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -359,12 +359,8 @@ #define THUMB_SYNTAX #endif -.macro FUNC_START name sp_section= - .ifc \sp_section, function_section - .section .text.__\name,"ax",%progbits - .else +.macro FUNC_START name .text - .endif .globl SYM (__\name) TYPE (__\name) .align 0 @@ -390,8 +386,8 @@ #if defined(__thumb2__) /* For Thumb-2 we build everything in thumb mode. */ -.macro ARM_FUNC_START name sp_section= - FUNC_START \name \sp_section +.macro ARM_FUNC_START name + FUNC_START \name .syntax unified .endm #define EQUIV .thumb_set @@ -422,12 +418,8 @@ #ifdef NOT_ISA_TARGET_32BIT #define EQUIV .thumb_set #else -.macro ARM_FUNC_START name sp_section= - .ifc \sp_section, function_section - .section .text.__\name,"ax",%progbits - .else +.macro ARM_FUNC_START name .text - .endif .globl SYM (__\name) TYPE (__\name) .align 0 @@ -2169,7 +2161,8 @@ .endm #ifndef __symbian__ -/* The condition here must match the one in gcc/config/arm/elf.h. */ +/* The condition here must match the one in gcc/config/arm/elf.h and + libgcc/config/arm/t-elf. */ #ifndef NOT_ISA_TARGET_32BIT #include "ieee754-df.S" #include "ieee754-sf.S" diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/libgcc-bpabi.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/libgcc-bpabi.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/libgcc-bpabi.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/libgcc-bpabi.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/libunwind.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/libunwind.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/libunwind.S 2018-06-22 07:37:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/libunwind.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Support functions for the unwinder. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/linux-atomic-64bit.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/linux-atomic-64bit.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/linux-atomic-64bit.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/linux-atomic-64bit.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* 64bit Linux-specific atomic operations for ARM EABI. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Based on linux-atomic.c 64 bit additions david.gilbert@linaro.org diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/linux-atomic.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/linux-atomic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/linux-atomic.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/linux-atomic.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Linux-specific atomic operations for ARM EABI. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by CodeSourcery. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/pr-support.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/pr-support.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/pr-support.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/pr-support.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* ARM EABI compliant unwinding routines - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/symbian-lib.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/symbian-lib.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/symbian-lib.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/symbian-lib.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Configuration file for Symbian OS on ARM processors, library renames. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/t-elf gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/t-elf --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/arm/t-elf 2014-12-14 06:33:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/arm/t-elf 2018-12-29 02:41:32.000000000 +0000 @@ -1,3 +1,19 @@ +ifeq (,$(findstring __symbian__,$(shell $(gcc_compile_bare) -dM -E - This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/avr/lib2funcs.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/avr/lib2funcs.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/avr/lib2funcs.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/avr/lib2funcs.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/bfin/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/bfin/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/bfin/crti.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/bfin/crti.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Specialized code needed to support construction and destruction of file-scope objects in C++ and Java code, and to support exception handling. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Analog Devices. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/bfin/crtlibid.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/bfin/crtlibid.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/bfin/crtlibid.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/bfin/crtlibid.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Provide a weak definition of the library ID, for the benefit of certain configure scripts. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/bfin/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/bfin/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/bfin/crtn.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/bfin/crtn.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Specialized code needed to support construction and destruction of file-scope objects in C++ and Java code, and to support exception handling. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Analog Devices. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/bfin/lib1funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/bfin/lib1funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/bfin/lib1funcs.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/bfin/lib1funcs.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* libgcc functions for Blackfin. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Analog Devices. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/bfin/libgcc-glibc.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/bfin/libgcc-glibc.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/bfin/libgcc-glibc.ver 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/bfin/libgcc-glibc.ver 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2018 Free Software Foundation, Inc. +# Copyright (C) 2000-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/bfin/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/bfin/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/bfin/linux-unwind.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/bfin/linux-unwind.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for Blackfin. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/c6x-abi.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/c6x-abi.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/c6x-abi.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/c6x-abi.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for C6X ABI versions of libgcc functions. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Bernd Schmidt This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/crti.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/crti.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2018 Free Software Foundation, Inc. +/* Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Bernd Schmidt . This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/crtn.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/crtn.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2018 Free Software Foundation, Inc. +/* Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Bernd Schmidt . This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/eqd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/eqd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/eqd.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/eqd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Software floating-point emulation. Return 1 iff a == b, 0 otherwise. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@cygnus.com) and Jakub Jelinek (jj@ultra.linux.cz). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/eqf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/eqf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/eqf.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/eqf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Software floating-point emulation. Return 1 iff a == b, 0 otherwise. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@cygnus.com) and Jakub Jelinek (jj@ultra.linux.cz). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/ged.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/ged.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/ged.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/ged.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Software floating-point emulation. Return 1 iff a >= b, 0 otherwise. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@cygnus.com) and Jakub Jelinek (jj@ultra.linux.cz). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/gef.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/gef.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/gef.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/gef.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Software floating-point emulation. Return 1 iff a >= b, 0 otherwise. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@cygnus.com) and Jakub Jelinek (jj@ultra.linux.cz). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/gtd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/gtd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/gtd.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/gtd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Software floating-point emulation. Return 1 iff a > b, 0 otherwise. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@cygnus.com) and Jakub Jelinek (jj@ultra.linux.cz). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/gtf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/gtf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/gtf.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/gtf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Software floating-point emulation. Return 1 iff a > b, 0 otherwise. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@cygnus.com) and Jakub Jelinek (jj@ultra.linux.cz). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/led.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/led.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/led.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/led.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Software floating-point emulation. Return 1 iff a <= b, 0 otherwise. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@cygnus.com) and Jakub Jelinek (jj@ultra.linux.cz). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/lef.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/lef.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/lef.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/lef.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Software floating-point emulation. Return 1 iff a <= b, 0 otherwise. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@cygnus.com) and Jakub Jelinek (jj@ultra.linux.cz). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/lib1funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/lib1funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/lib1funcs.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/lib1funcs.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2018 Free Software Foundation, Inc. +/* Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Bernd Schmidt . This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/libgcc-eabi.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/libgcc-eabi.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/libgcc-eabi.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/libgcc-eabi.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/ltd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/ltd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/ltd.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/ltd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Software floating-point emulation. Return 1 iff a < b, 0 otherwise. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@cygnus.com) and Jakub Jelinek (jj@ultra.linux.cz). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/ltf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/ltf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/ltf.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/ltf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Software floating-point emulation. Return 1 iff a < b, 0 otherwise. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Richard Henderson (rth@cygnus.com) and Jakub Jelinek (jj@ultra.linux.cz). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/pr-support.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/pr-support.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/pr-support.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/pr-support.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* C6X ABI compliant unwinding routines - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/sfp-machine.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/sfp-machine.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/sfp-machine.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/sfp-machine.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Soft-FP definitions for TI C6X. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This files is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/unwind-c6x.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/unwind-c6x.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/unwind-c6x.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/unwind-c6x.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* C6X EABI compliant unwinding routines. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/unwind-c6x.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/unwind-c6x.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/c6x/unwind-c6x.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/c6x/unwind-c6x.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for the C6X EABI unwinder - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cr16/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cr16/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cr16/crti.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cr16/crti.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ # Specialized code needed to support construction and destruction of # file-scope objects in C++ and Java code, and to support exception handling. -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by KPIT Cummins Infosystems Limited. # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cr16/crtlibid.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cr16/crtlibid.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cr16/crtlibid.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cr16/crtlibid.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ # Provide a weak definition of the library ID, for the benefit of certain # configure scripts. -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by KPIT Cummins Infosystems Limited. # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cr16/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cr16/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cr16/crtn.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cr16/crtn.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ # Specialized code needed to support construction and destruction of # file-scope objects in C++ and Java code, and to support exception handling. -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by KPIT Cummins Infosystems Limited. # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cr16/divmodhi3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cr16/divmodhi3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cr16/divmodhi3.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cr16/divmodhi3.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Libgcc Target specific implementation - Emulating div and mod. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by KPIT Cummins Infosystems Limited. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cr16/lib1funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cr16/lib1funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cr16/lib1funcs.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cr16/lib1funcs.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Libgcc Target specific implementation. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by KPIT Cummins Infosystems Limited. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cr16/t-cr16 gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cr16/t-cr16 --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cr16/t-cr16 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cr16/t-cr16 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Makefile fragment for building LIBGCC for the Renesas CR16 target. -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cr16/t-crtlibid gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cr16/t-crtlibid --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cr16/t-crtlibid 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cr16/t-crtlibid 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Makefile fragment for building LIBGCC for the Renesas CR16 target. -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cr16/unwind-cr16.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cr16/unwind-cr16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cr16/unwind-cr16.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cr16/unwind-cr16.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 exception handling and frame unwind runtime interface routines. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cr16/unwind-dw2.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cr16/unwind-dw2.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cr16/unwind-dw2.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cr16/unwind-dw2.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 frame unwind data structure. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cris/arit.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cris/arit.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cris/arit.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cris/arit.c 2019-01-02 08:05:15.000000000 +0000 @@ -2,7 +2,7 @@ Contributed by Axis Communications. Written by Hans-Peter Nilsson , c:a 1992. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cris/mulsi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cris/mulsi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cris/mulsi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cris/mulsi3.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2001-2018 Free Software Foundation, Inc. +;; Copyright (C) 2001-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cris/sfp-machine.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cris/sfp-machine.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cris/sfp-machine.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cris/sfp-machine.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Soft-FP definitions for CRIS. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cris/umulsidi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cris/umulsidi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/cris/umulsidi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/cris/umulsidi3.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -;; Copyright (C) 2001-2018 Free Software Foundation, Inc. +;; Copyright (C) 2001-2019 Free Software Foundation, Inc. ;; ;; This file is part of GCC. ;; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/csky/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/csky/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/csky/crti.S 2018-08-20 09:40:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/csky/crti.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Define _init and _fini entry points for C-SKY. -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # Contributed by C-SKY Microsystems and Mentor Graphics. # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/csky/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/csky/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/csky/crtn.S 2018-08-20 09:40:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/csky/crtn.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Terminate C-SKY .init and .fini sections. -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # Contributed by C-SKY Microsystems and Mentor Graphics. # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/csky/lib1funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/csky/lib1funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/csky/lib1funcs.S 2018-08-20 09:40:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/csky/lib1funcs.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* libgcc routines for C-SKY. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by C-SKY Microsystems and Mentor Graphics. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/csky/linux-atomic.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/csky/linux-atomic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/csky/linux-atomic.c 2018-08-20 09:40:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/csky/linux-atomic.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Linux-specific atomic operations for C-SKY. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by C-SKY Microsystems and Mentor Graphics. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/csky/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/csky/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/csky/linux-unwind.h 2018-11-20 10:31:12.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/csky/linux-unwind.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for C-SKY Linux. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by C-SKY Microsystems and Mentor Graphics. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/csky/t-csky gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/csky/t-csky --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/csky/t-csky 2018-08-20 09:40:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/csky/t-csky 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Makefile fragment for all C-SKY targets. -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # Contributed by C-SKY Microsystems and Mentor Graphics. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/csky/t-linux-csky gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/csky/t-linux-csky --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/csky/t-linux-csky 2018-08-20 09:40:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/csky/t-linux-csky 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Makefile fragment for C-SKY targets running Linux. -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # Contributed by C-SKY Microsystems and Mentor Graphics. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/darwin-64.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/darwin-64.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/darwin-64.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/darwin-64.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Functions shipped in the ppc64 and x86_64 version of libgcc_s.1.dylib in older Mac OS X versions, preserved for backwards compatibility. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/darwin-crt3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/darwin-crt3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/darwin-crt3.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/darwin-crt3.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* __cxa_atexit backwards-compatibility support for Darwin. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/darwin-crt-tm.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/darwin-crt-tm.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/darwin-crt-tm.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/darwin-crt-tm.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Provide the runtime infrastructure for the transactional memory lib. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Iain Sandoe This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/crtint.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/crtint.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/crtint.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/crtint.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # initialize config for -mfp-mode=int -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # Contributed by Embecosm on behalf of Adapteva, Inc. # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/crti.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/crti.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Start .init and .fini sections. -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # Contributed by Embecosm on behalf of Adapteva, Inc. # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/crtm1reg-r43.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/crtm1reg-r43.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/crtm1reg-r43.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/crtm1reg-r43.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # initialize config for -m1reg-r43 -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # Contributed by Embecosm on behalf of Adapteva, Inc. # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/crtm1reg-r63.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/crtm1reg-r63.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/crtm1reg-r63.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/crtm1reg-r63.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # initialize config for -m1reg-r63 -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # Contributed by Embecosm on behalf of Adapteva, Inc. # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/crtn.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/crtn.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # End .init and .fini sections. -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # Contributed by Embecosm on behalf of Adapteva, Inc. # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/crtrunc.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/crtrunc.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/crtrunc.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/crtrunc.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # initialize config for -mfp-mode=truncate -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # Contributed by Embecosm on behalf of Adapteva, Inc. # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/divsi3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/divsi3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/divsi3.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/divsi3.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic signed 32 bit division implementation. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/divsi3-float.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/divsi3-float.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/divsi3-float.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/divsi3-float.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Signed 32 bit division optimized for Epiphany. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/divsi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/divsi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/divsi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/divsi3.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Signed 32 bit division optimized for Epiphany. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/epiphany-asm.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/epiphany-asm.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/epiphany-asm.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/epiphany-asm.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2018 Free Software Foundation, Inc. +/* Copyright (C) 1995-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/eqsf2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/eqsf2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/eqsf2.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/eqsf2.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/fast_div.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/fast_div.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/fast_div.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/fast_div.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. +/* Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/gtesf2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/gtesf2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/gtesf2.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/gtesf2.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/ordsf2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/ordsf2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/ordsf2.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/ordsf2.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/uneqsf2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/uneqsf2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/uneqsf2.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/ieee-754/uneqsf2.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/modsi3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/modsi3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/modsi3.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/modsi3.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic signed 32 bit modulo implementation. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/modsi3-float.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/modsi3-float.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/modsi3-float.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/modsi3-float.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Unsigned 32 bit division optimized for Epiphany. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/modsi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/modsi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/modsi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/modsi3.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Signed 32 bit modulo optimized for Epiphany. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/mulsi3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/mulsi3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/mulsi3.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/mulsi3.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic 32 bit multiply. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/t-epiphany gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/t-epiphany --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/t-epiphany 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/t-epiphany 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # Contributed by Embecosm on behalf of Adapteva, Inc. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/udivsi3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/udivsi3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/udivsi3.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/udivsi3.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic unsigned 32 bit division implementation. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/udivsi3-float.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/udivsi3-float.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/udivsi3-float.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/udivsi3-float.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic unsigned 32 bit division implementation. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/udivsi3-float.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/udivsi3-float.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/udivsi3-float.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/udivsi3-float.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Unsigned 32 bit division optimized for Epiphany. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/udivsi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/udivsi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/udivsi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/udivsi3.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Unsigned 32 bit division optimized for Epiphany. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/umodsi3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/umodsi3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/umodsi3.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/umodsi3.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic unsigned 32 bit modulo implementation. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/umodsi3-float.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/umodsi3-float.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/umodsi3-float.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/umodsi3-float.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Unsigned 32 bit division optimized for Epiphany. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/umodsi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/umodsi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/epiphany/umodsi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/epiphany/umodsi3.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Unsigned 32 bit modulo optimized for Epiphany. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Embecosm on behalf of Adapteva, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/fr30/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/fr30/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/fr30/crti.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/fr30/crti.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ # crti.s for ELF -# Copyright (C) 1992-2018 Free Software Foundation, Inc. +# Copyright (C) 1992-2019 Free Software Foundation, Inc. # Written By David Vinayak Henkel-Wallace, June 1992 # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/fr30/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/fr30/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/fr30/crtn.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/fr30/crtn.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ # crtn.S for ELF -# Copyright (C) 1992-2018 Free Software Foundation, Inc. +# Copyright (C) 1992-2019 Free Software Foundation, Inc. # Written By David Vinayak Henkel-Wallace, June 1992 # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/fr30/lib1funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/fr30/lib1funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/fr30/lib1funcs.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/fr30/lib1funcs.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* libgcc routines for the FR30. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/frv/cmovd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/frv/cmovd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/frv/cmovd.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/frv/cmovd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Move double-word library function. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Red Hat, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/frv/cmovh.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/frv/cmovh.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/frv/cmovh.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/frv/cmovh.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Move half-word library function. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Red Hat, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/frv/cmovw.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/frv/cmovw.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/frv/cmovw.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/frv/cmovw.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Move word library function. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Red Hat, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/frv/elf-lib.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/frv/elf-lib.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/frv/elf-lib.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/frv/elf-lib.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Target macros for the FRV port of GCC. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/frv/frv-abi.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/frv/frv-abi.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/frv/frv-abi.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/frv/frv-abi.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Frv map GCC names to FR-V ABI. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Red Hat, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/frv/frvbegin.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/frv/frvbegin.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/frv/frvbegin.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/frv/frvbegin.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Frv initialization file linked before all user modules - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Red Hat, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/frv/frvend.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/frv/frvend.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/frv/frvend.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/frv/frvend.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Frv initialization file linked after all user modules - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Red Hat, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/frv/lib1funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/frv/lib1funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/frv/lib1funcs.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/frv/lib1funcs.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Library functions. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Red Hat, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/frv/libgcc-glibc.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/frv/libgcc-glibc.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/frv/libgcc-glibc.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/frv/libgcc-glibc.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ft32/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ft32/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ft32/crti.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ft32/crti.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ # crti.S for FT32 # -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ft32/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ft32/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ft32/crtn.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ft32/crtn.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ # crtn.S for FT32 # -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ft32/lib1funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ft32/lib1funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ft32/lib1funcs.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ft32/lib1funcs.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ # ieee754 sf routines for FT32 -/* Copyright (C) 1995-2018 Free Software Foundation, Inc. +/* Copyright (C) 1995-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/gthr-lynx.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/gthr-lynx.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/gthr-lynx.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/gthr-lynx.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* Threads compatibility routines for libgcc2 and libobjc for LynxOS. */ /* Compile this one with gcc. */ -/* Copyright (C) 2004-2018 Free Software Foundation, Inc. +/* Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/gthr-rtems.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/gthr-rtems.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/gthr-rtems.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/gthr-rtems.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* RTEMS threads compatibility routines for libgcc2 and libobjc. by: Rosimildo da Silva( rdasilva@connecttel.com ) */ /* Compile this one with gcc. */ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/gthr-vxworks.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/gthr-vxworks.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/gthr-vxworks.h 2018-10-30 08:45:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/gthr-vxworks.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Threads compatibility routines for libgcc2 and libobjc for VxWorks. */ /* Compile this one with gcc. */ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Mike Stump . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/h8300/clzhi2.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/h8300/clzhi2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/h8300/clzhi2.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/h8300/clzhi2.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* The implementation of __clzhi2. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/h8300/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/h8300/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/h8300/crti.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/h8300/crti.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2018 Free Software Foundation, Inc. +/* Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/h8300/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/h8300/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/h8300/crtn.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/h8300/crtn.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2018 Free Software Foundation, Inc. +/* Copyright (C) 2001-2019 Free Software Foundation, Inc. This file was adapted from glibc sources. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/h8300/ctzhi2.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/h8300/ctzhi2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/h8300/ctzhi2.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/h8300/ctzhi2.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* The implementation of __ctzhi2. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/h8300/fixunssfsi.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/h8300/fixunssfsi.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/h8300/fixunssfsi.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/h8300/fixunssfsi.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* More subroutines needed by GCC output code on some machines. */ /* Compile this one with gcc. */ -/* Copyright (C) 1989-2018 Free Software Foundation, Inc. +/* Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/h8300/lib1funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/h8300/lib1funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/h8300/lib1funcs.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/h8300/lib1funcs.S 2019-01-02 08:05:15.000000000 +0000 @@ -2,7 +2,7 @@ ;; Contributed by Steve Chamberlain ;; Optimizations by Toshiyasu Morita -/* Copyright (C) 1994-2018 Free Software Foundation, Inc. +/* Copyright (C) 1994-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/h8300/parityhi2.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/h8300/parityhi2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/h8300/parityhi2.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/h8300/parityhi2.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* The implementation of __parityhi2. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/h8300/popcounthi2.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/h8300/popcounthi2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/h8300/popcounthi2.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/h8300/popcounthi2.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* The implementation of __popcounthi2. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/h8300/sfp-machine.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/h8300/sfp-machine.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/h8300/sfp-machine.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/h8300/sfp-machine.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Soft-FP definitions for H8/300 - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/hardfp.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/hardfp.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/hardfp.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/hardfp.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Dummy floating-point routines for hard-float code. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/32/tf-signs.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/32/tf-signs.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/32/tf-signs.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/32/tf-signs.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/cpuinfo.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/cpuinfo.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/cpuinfo.c 2018-11-05 08:45:35.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/cpuinfo.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Get CPU type and Features for x86 processors. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Sriraman Tallam (tmsriram@google.com) This file is part of GCC. @@ -215,9 +215,17 @@ __cpu_model.__cpu_subtype = INTEL_COREI7_SKYLAKE; break; case 0x55: - /* Skylake with AVX-512 support. */ - __cpu_model.__cpu_type = INTEL_COREI7; - __cpu_model.__cpu_subtype = INTEL_COREI7_SKYLAKE_AVX512; + { + unsigned int eax, ebx, ecx, edx; + __cpu_model.__cpu_type = INTEL_COREI7; + __cpuid_count (7, 0, eax, ebx, ecx, edx); + if (ecx & bit_AVX512VNNI) + /* Cascade Lake. */ + __cpu_model.__cpu_subtype = INTEL_COREI7_CASCADELAKE; + else + /* Skylake with AVX-512 support. */ + __cpu_model.__cpu_subtype = INTEL_COREI7_SKYLAKE_AVX512; + } break; case 0x66: /* Cannon Lake. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/cpuinfo.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/cpuinfo.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/cpuinfo.h 2018-11-05 08:45:35.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/cpuinfo.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Get CPU type and Features for x86 processors. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Sriraman Tallam (tmsriram@google.com) This file is part of GCC. @@ -76,6 +76,7 @@ INTEL_COREI7_ICELAKE_CLIENT, INTEL_COREI7_ICELAKE_SERVER, AMDFAM17H_ZNVER2, + INTEL_COREI7_CASCADELAKE, CPU_SUBTYPE_MAX }; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/crtfastmath.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/crtfastmath.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/crtfastmath.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/crtfastmath.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2018 Free Software Foundation, Inc. + * Copyright (C) 2005-2019 Free Software Foundation, Inc. * * This file is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/crti.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/crti.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* crti.S for x86. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. Written By Fred Fish, Nov 1992 This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/crtn.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/crtn.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* crtn.S for x86. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. Written By Fred Fish, Nov 1992 This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/crtprec.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/crtprec.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/crtprec.c 2018-10-02 07:26:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/crtprec.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2007-2018 Free Software Foundation, Inc. + * Copyright (C) 2007-2019 Free Software Foundation, Inc. * * This file is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/cygming-crtbegin.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/cygming-crtbegin.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/cygming-crtbegin.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/cygming-crtbegin.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* crtbegin object for windows32 targets. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Danny Smith diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/cygming-crtend.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/cygming-crtend.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/cygming-crtend.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/cygming-crtend.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* crtend object for windows32 targets. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Danny Smith diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/cygwin.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/cygwin.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/cygwin.S 2018-03-06 16:36:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/cygwin.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* stuff needed for libgcc on win32. * - * Copyright (C) 1996-2018 Free Software Foundation, Inc. + * Copyright (C) 1996-2019 Free Software Foundation, Inc. * Written By Steve Chamberlain * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/darwin-lib.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/darwin-lib.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/darwin-lib.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/darwin-lib.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Target definitions for x86 running Darwin, library renames. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/dragonfly-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/dragonfly-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/dragonfly-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/dragonfly-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for DragonFly BSD: AMD x86-64 and x86. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by John Marino This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/elf-lib.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/elf-lib.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/elf-lib.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/elf-lib.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for Intel 386 ELF systems. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/enable-execute-stack-mingw32.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/enable-execute-stack-mingw32.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/enable-execute-stack-mingw32.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/enable-execute-stack-mingw32.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Implement __enable_execute_stack for Windows32. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/freebsd-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/freebsd-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/freebsd-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/freebsd-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for FreeBSD: AMD x86-64 and x86. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by John Marino This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/gthr-win32.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/gthr-win32.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/gthr-win32.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/gthr-win32.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* Implementation of W32-specific threads compatibility routines for libgcc2. */ -/* Copyright (C) 1999-2018 Free Software Foundation, Inc. +/* Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Mumit Khan . Modified and moved to separate file by Danny Smith . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/gthr-win32.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/gthr-win32.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/gthr-win32.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/gthr-win32.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* Threads compatibility routines for libgcc2 and libobjc. */ /* Compile this one with gcc. */ -/* Copyright (C) 1999-2018 Free Software Foundation, Inc. +/* Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Mumit Khan . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/i386-asm.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/i386-asm.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/i386-asm.h 2018-03-06 16:36:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/i386-asm.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Defines common perprocessor and assembly macros for use by various stubs. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Daniel Santos This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/libgcc-bsd.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/libgcc-bsd.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/libgcc-bsd.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/libgcc-bsd.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/libgcc-cygming.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/libgcc-cygming.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/libgcc-cygming.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/libgcc-cygming.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/libgcc-darwin.10.4.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/libgcc-darwin.10.4.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/libgcc-darwin.10.4.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/libgcc-darwin.10.4.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/libgcc-darwin.10.5.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/libgcc-darwin.10.5.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/libgcc-darwin.10.5.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/libgcc-darwin.10.5.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/libgcc-glibc.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/libgcc-glibc.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/libgcc-glibc.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/libgcc-glibc.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/libgcc-sol2.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/libgcc-sol2.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/libgcc-sol2.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/libgcc-sol2.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2018 Free Software Foundation, Inc. +# Copyright (C) 2010-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/linux-unwind.h 2018-04-25 04:13:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/linux-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for AMD x86-64 and x86. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/morestack.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/morestack.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/morestack.S 2018-04-23 08:51:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/morestack.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ # x86/x86_64 support for -fsplit-stack. -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # Contributed by Ian Lance Taylor . # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/resms64f.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/resms64f.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/resms64f.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/resms64f.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Epilogue stub for 64-bit ms/sysv clobbers: restore (with hard frame pointer) - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Daniel Santos This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/resms64fx.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/resms64fx.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/resms64fx.h 2018-03-06 16:36:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/resms64fx.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Epilogue stub for 64-bit ms/sysv clobbers: restore, leave and return - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Daniel Santos This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/resms64.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/resms64.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/resms64.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/resms64.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Epilogue stub for 64-bit ms/sysv clobbers: restore - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Daniel Santos This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/resms64x.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/resms64x.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/resms64x.h 2018-03-06 16:36:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/resms64x.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Epilogue stub for 64-bit ms/sysv clobbers: restore and return - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Daniel Santos This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/savms64f.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/savms64f.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/savms64f.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/savms64f.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Prologue stub for 64-bit ms/sysv clobbers: save (with hard frame pointer) - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Daniel Santos This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/savms64.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/savms64.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/savms64.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/savms64.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Prologue stub for 64-bit ms/sysv clobbers: save - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Daniel Santos This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/sfp-exceptions.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/sfp-exceptions.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/sfp-exceptions.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/sfp-exceptions.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012-2018 Free Software Foundation, Inc. + * Copyright (C) 2012-2019 Free Software Foundation, Inc. * * This file is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/shadow-stack-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/shadow-stack-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/shadow-stack-unwind.h 2018-08-02 03:04:25.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/shadow-stack-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* _Unwind_Frames_Extra with shadow stack for x86-64 and x86. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/sol2-c1.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/sol2-c1.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/sol2-c1.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/sol2-c1.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* crt1.s for Solaris 2, x86 - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. Written By Fred Fish, Nov 1992 This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/sol2-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/sol2-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/sol2-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/sol2-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for AMD x86-64 and x86. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/value-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/value-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/value-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/value-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Store register values as _Unwind_Word type in DWARF2 EH unwind context. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/w32-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/w32-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/i386/w32-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/i386/w32-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions for Dwarf2 EH unwind support for Windows32 targets - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Pascal Obry This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/crtbegin.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/crtbegin.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/crtbegin.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/crtbegin.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Jes Sorensen, This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/crtend.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/crtend.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/crtend.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/crtend.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Jes Sorensen, This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/crtfastmath.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/crtfastmath.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/crtfastmath.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/crtfastmath.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2018 Free Software Foundation, Inc. +/* Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by David Mosberger . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/crti.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/crti.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2018 Free Software Foundation, Inc. +# Copyright (C) 2000-2019 Free Software Foundation, Inc. # Written By Timothy Wall # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/crtn.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/crtn.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2018 Free Software Foundation, Inc. +# Copyright (C) 2000-2019 Free Software Foundation, Inc. # Written By Timothy Wall # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/fde-glibc.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/fde-glibc.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/fde-glibc.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/fde-glibc.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/fde-vms.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/fde-vms.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/fde-vms.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/fde-vms.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2018 Free Software Foundation, Inc. +/* Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Douglas B Rupp This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/lib1funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/lib1funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/lib1funcs.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/lib1funcs.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by James E. Wilson . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/libgcc-glibc.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/libgcc-glibc.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/libgcc-glibc.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/libgcc-glibc.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/libgcc-ia64.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/libgcc-ia64.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/libgcc-ia64.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/libgcc-ia64.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2018 Free Software Foundation, Inc. +# Copyright (C) 2000-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/linux-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/linux-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for IA64 Linux. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/quadlib.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/quadlib.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/quadlib.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/quadlib.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for long double support. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/sfp-exceptions.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/sfp-exceptions.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/sfp-exceptions.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/sfp-exceptions.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012-2018 Free Software Foundation, Inc. + * Copyright (C) 2012-2019 Free Software Foundation, Inc. * * This file is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/tf-signs.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/tf-signs.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/tf-signs.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/tf-signs.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/unwind-ia64.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/unwind-ia64.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/unwind-ia64.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/unwind-ia64.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Subroutines needed for unwinding IA-64 standard format stack frame info for exception handling. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Andrew MacLeod Andrew Haley David Mosberger-Tang diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/unwind-ia64.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/unwind-ia64.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/unwind-ia64.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/unwind-ia64.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 Free Software Foundation, Inc. +/* Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Andrew MacLeod Andrew Haley diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/vms-crtinit.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/vms-crtinit.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/vms-crtinit.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/vms-crtinit.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2018 Free Software Foundation, Inc. +/* Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/vms-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/vms-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/ia64/vms-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/ia64/vms-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for IA64 VMS. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/iq2000/lib2funcs.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/iq2000/lib2funcs.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/iq2000/lib2funcs.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/iq2000/lib2funcs.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2018 Free Software Foundation, Inc. +/* Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_addsub_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_addsub_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_addsub_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_addsub_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_addsub_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_addsub_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_addsub_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_addsub_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_addsub_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_addsub_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_addsub_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_addsub_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_2_str.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_2_str.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_2_str.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_2_str.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_2_str_macros.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_2_str_macros.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_2_str_macros.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_2_str_macros.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_2_str_tables.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_2_str_tables.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_2_str_tables.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_2_str_tables.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_add.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_add.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_add.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_add.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_compare.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_compare.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_compare.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_compare.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_div.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_div.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_div.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_div.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_fma.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_fma.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_fma.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_fma.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_logb.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_logb.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_logb.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_logb.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_minmax.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_minmax.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_minmax.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_minmax.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_mul.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_mul.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_mul.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_mul.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_next.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_next.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_next.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_next.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_noncomp.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_noncomp.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_noncomp.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_noncomp.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_quantize.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_quantize.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_quantize.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_quantize.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_rem.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_rem.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_rem.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_rem.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_round_integral.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_round_integral.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_round_integral.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_round_integral.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_scalb.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_scalb.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_scalb.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_scalb.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_sqrt.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_sqrt.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_sqrt.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_sqrt.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_string.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_string.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_string.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_string.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_to_int16.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_to_int16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_to_int16.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_to_int16.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_to_int32.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_to_int32.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_to_int32.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_to_int32.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_to_int64.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_to_int64.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_to_int64.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_to_int64.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_to_int8.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_to_int8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_to_int8.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_to_int8.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_to_uint16.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_to_uint16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_to_uint16.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_to_uint16.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_to_uint32.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_to_uint32.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_to_uint32.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_to_uint32.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_to_uint64.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_to_uint64.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_to_uint64.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_to_uint64.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_to_uint8.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_to_uint8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid128_to_uint8.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid128_to_uint8.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid32_to_bid128.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid32_to_bid128.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid32_to_bid128.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid32_to_bid128.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid32_to_bid64.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid32_to_bid64.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid32_to_bid64.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid32_to_bid64.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_add.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_add.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_add.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_add.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_compare.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_compare.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_compare.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_compare.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_div.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_div.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_div.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_div.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_fma.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_fma.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_fma.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_fma.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_logb.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_logb.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_logb.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_logb.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_minmax.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_minmax.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_minmax.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_minmax.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_mul.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_mul.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_mul.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_mul.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_next.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_next.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_next.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_next.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_noncomp.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_noncomp.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_noncomp.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_noncomp.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_quantize.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_quantize.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_quantize.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_quantize.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_rem.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_rem.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_rem.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_rem.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_round_integral.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_round_integral.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_round_integral.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_round_integral.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_scalb.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_scalb.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_scalb.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_scalb.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_sqrt.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_sqrt.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_sqrt.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_sqrt.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_string.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_string.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_string.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_string.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_to_bid128.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_to_bid128.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_to_bid128.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_to_bid128.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_to_int16.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_to_int16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_to_int16.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_to_int16.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_to_int32.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_to_int32.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_to_int32.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_to_int32.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_to_int64.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_to_int64.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_to_int64.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_to_int64.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_to_int8.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_to_int8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_to_int8.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_to_int8.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_to_uint16.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_to_uint16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_to_uint16.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_to_uint16.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_to_uint32.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_to_uint32.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_to_uint32.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_to_uint32.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_to_uint64.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_to_uint64.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_to_uint64.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_to_uint64.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_to_uint8.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_to_uint8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid64_to_uint8.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid64_to_uint8.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_b2d.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_b2d.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_b2d.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_b2d.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_binarydecimal.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_binarydecimal.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_binarydecimal.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_binarydecimal.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_conf.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_conf.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_conf.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_conf.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_convert_data.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_convert_data.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_convert_data.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_convert_data.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_decimal_data.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_decimal_data.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_decimal_data.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_decimal_data.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_decimal_globals.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_decimal_globals.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_decimal_globals.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_decimal_globals.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_div_macros.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_div_macros.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_div_macros.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_div_macros.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_dpd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_dpd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_dpd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_dpd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_flag_operations.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_flag_operations.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_flag_operations.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_flag_operations.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_from_int.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_from_int.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_from_int.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_from_int.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_functions.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_functions.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_functions.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_functions.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_gcc_intrinsics.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_gcc_intrinsics.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_gcc_intrinsics.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_gcc_intrinsics.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_inline_add.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_inline_add.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_inline_add.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_inline_add.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_internal.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_internal.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_internal.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_internal.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_round.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_round.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_round.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_round.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_sqrt_macros.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_sqrt_macros.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/bid_sqrt_macros.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/bid_sqrt_macros.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/ChangeLog 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/ChangeLog 2019-01-02 08:05:14.000000000 +0000 @@ -399,7 +399,7 @@ * inline_bid_add.h: Likewise. * sqrt_macros.h: Likewise. -Copyright (C) 2007-2018 Free Software Foundation, Inc. +Copyright (C) 2007-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_df.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_df.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_df.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_df.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_di.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_di.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_di.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_di.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_sf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_sf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_sf.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_sf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_si.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_si.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_si.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_si.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_tf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_tf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_tf.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_tf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_udi.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_udi.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_udi.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_udi.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_usi.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_usi.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_usi.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_usi.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_xf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_xf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_dd_to_xf.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_dd_to_xf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_df_to_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_df_to_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_df_to_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_df_to_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_df_to_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_df_to_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_df_to_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_df_to_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_df_to_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_df_to_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_df_to_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_df_to_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_di_to_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_di_to_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_di_to_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_di_to_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_di_to_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_di_to_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_di_to_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_di_to_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_di_to_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_di_to_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_di_to_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_di_to_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_div_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_div_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_div_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_div_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_div_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_div_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_div_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_div_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_div_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_div_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_div_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_div_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_eq_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_eq_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_eq_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_eq_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_eq_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_eq_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_eq_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_eq_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_eq_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_eq_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_eq_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_eq_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_ge_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_ge_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_ge_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_ge_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_ge_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_ge_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_ge_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_ge_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_ge_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_ge_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_ge_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_ge_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_gt_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_gt_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_gt_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_gt_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_gt_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_gt_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_gt_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_gt_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_gt_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_gt_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_gt_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_gt_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_isinfd128.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_isinfd128.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_isinfd128.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_isinfd128.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_isinfd32.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_isinfd32.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_isinfd32.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_isinfd32.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_isinfd64.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_isinfd64.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_isinfd64.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_isinfd64.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_le_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_le_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_le_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_le_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_le_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_le_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_le_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_le_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_le_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_le_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_le_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_le_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_lt_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_lt_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_lt_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_lt_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_lt_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_lt_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_lt_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_lt_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_lt_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_lt_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_lt_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_lt_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_mul_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_mul_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_mul_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_mul_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_mul_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_mul_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_mul_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_mul_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_mul_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_mul_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_mul_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_mul_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_ne_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_ne_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_ne_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_ne_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_ne_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_ne_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_ne_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_ne_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_ne_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_ne_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_ne_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_ne_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_df.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_df.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_df.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_df.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_di.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_di.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_di.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_di.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_sf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_sf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_sf.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_sf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_si.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_si.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_si.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_si.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_tf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_tf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_tf.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_tf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_udi.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_udi.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_udi.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_udi.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_usi.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_usi.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_usi.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_usi.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_xf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_xf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sd_to_xf.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sd_to_xf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sf_to_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sf_to_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sf_to_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sf_to_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sf_to_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sf_to_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sf_to_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sf_to_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sf_to_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sf_to_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_sf_to_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_sf_to_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_si_to_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_si_to_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_si_to_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_si_to_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_si_to_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_si_to_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_si_to_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_si_to_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_si_to_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_si_to_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_si_to_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_si_to_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_df.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_df.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_df.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_df.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_di.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_di.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_di.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_di.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_sf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_sf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_sf.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_sf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_si.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_si.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_si.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_si.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_tf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_tf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_tf.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_tf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_udi.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_udi.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_udi.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_udi.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_usi.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_usi.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_usi.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_usi.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_xf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_xf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_td_to_xf.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_td_to_xf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_tf_to_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_tf_to_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_tf_to_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_tf_to_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_tf_to_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_tf_to_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_tf_to_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_tf_to_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_tf_to_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_tf_to_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_tf_to_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_tf_to_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_udi_to_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_udi_to_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_udi_to_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_udi_to_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_udi_to_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_udi_to_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_udi_to_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_udi_to_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_udi_to_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_udi_to_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_udi_to_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_udi_to_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_unord_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_unord_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_unord_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_unord_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_unord_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_unord_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_unord_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_unord_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_unord_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_unord_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_unord_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_unord_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_usi_to_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_usi_to_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_usi_to_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_usi_to_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_usi_to_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_usi_to_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_usi_to_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_usi_to_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_usi_to_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_usi_to_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_usi_to_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_usi_to_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_xf_to_dd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_xf_to_dd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_xf_to_dd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_xf_to_dd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_xf_to_sd.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_xf_to_sd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_xf_to_sd.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_xf_to_sd.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_xf_to_td.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_xf_to_td.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libbid/_xf_to_td.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libbid/_xf_to_td.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libgcc-glibc.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libgcc-glibc.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/libgcc-glibc.ver 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/libgcc-glibc.ver 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2018 Free Software Foundation, Inc. +# Copyright (C) 2000-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/_ashlsi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/_ashlsi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/_ashlsi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/_ashlsi3.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ # _ashlsi3.S for Lattice Mico32 # Contributed by Jon Beniston and Richard Henderson. # -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/_ashrsi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/_ashrsi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/_ashrsi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/_ashrsi3.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ # _ashrsi3.S for Lattice Mico32 # Contributed by Jon Beniston and Richard Henderson. # -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/crti.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/crti.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ # crti.S for Lattice Mico32 # Contributed by Jon Beniston # -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/crtn.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/crtn.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ # crtn.S for Lattice Mico32 # Contributed by Jon Beniston # -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/_divsi3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/_divsi3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/_divsi3.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/_divsi3.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ /* _divsi3 for Lattice Mico32. Contributed by Jon Beniston - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/libgcc_lm32.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/libgcc_lm32.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/libgcc_lm32.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/libgcc_lm32.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ /* Integer arithmetic support for Lattice Mico32. Contributed by Jon Beniston - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/_lshrsi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/_lshrsi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/_lshrsi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/_lshrsi3.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ # _lshrsi3.S for Lattice Mico32 # Contributed by Jon Beniston and Richard Henderson. # -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/_modsi3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/_modsi3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/_modsi3.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/_modsi3.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ /* _modsi3 for Lattice Mico32. Contributed by Jon Beniston - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/_mulsi3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/_mulsi3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/_mulsi3.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/_mulsi3.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ /* _mulsi3 for Lattice Mico32. Contributed by Jon Beniston - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/_udivmodsi4.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/_udivmodsi4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/_udivmodsi4.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/_udivmodsi4.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ /* _udivmodsi4 for Lattice Mico32. Contributed by Jon Beniston - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/_udivsi3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/_udivsi3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/_udivsi3.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/_udivsi3.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ /* _udivsi3 for Lattice Mico32. Contributed by Jon Beniston - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/_umodsi3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/_umodsi3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/lm32/_umodsi3.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/lm32/_umodsi3.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ /* _umodsi3 for Lattice Mico32. Contributed by Jon Beniston - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m32c/lib1funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m32c/lib1funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m32c/lib1funcs.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m32c/lib1funcs.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* libgcc routines for R8C/M16C/M32C - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m32c/lib2funcs.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m32c/lib2funcs.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m32c/lib2funcs.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m32c/lib2funcs.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* libgcc routines for R8C/M16C/M32C - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m32c/trapv.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m32c/trapv.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m32c/trapv.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m32c/trapv.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* 16-bit trapping arithmetic routines for R8C/M16C/M32C - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m32r/initfini.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m32r/initfini.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m32r/initfini.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m32r/initfini.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* .init/.fini section handling + C++ global constructor/destructor handling. This file is based on crtstuff.c, sol2-crti.S, sol2-crtn.S. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m32r/libgcc-glibc.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m32r/libgcc-glibc.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m32r/libgcc-glibc.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m32r/libgcc-glibc.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m68k/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m68k/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m68k/crti.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m68k/crti.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Specialized code needed to support construction and destruction of file-scope objects in C++ and Java code, and to support exception handling. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Charles-Antoine Gauthier (charles.gauthier@iit.nrc.ca). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m68k/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m68k/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m68k/crtn.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m68k/crtn.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Specialized code needed to support construction and destruction of file-scope objects in C++ and Java code, and to support exception handling. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Charles-Antoine Gauthier (charles.gauthier@iit.nrc.ca). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m68k/lb1sf68.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m68k/lb1sf68.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m68k/lb1sf68.S 2018-05-28 08:24:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m68k/lb1sf68.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* libgcc routines for 68000 w/o floating-point hardware. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m68k/linux-atomic.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m68k/linux-atomic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m68k/linux-atomic.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m68k/linux-atomic.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Linux-specific atomic operations for m68k Linux. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Based on code contributed by CodeSourcery for ARM EABI Linux. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m68k/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m68k/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/m68k/linux-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/m68k/linux-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for Linux/m68k. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mcore/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mcore/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mcore/crti.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mcore/crti.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ # crti.S for ELF based systems -# Copyright (C) 1992-2018 Free Software Foundation, Inc. +# Copyright (C) 1992-2019 Free Software Foundation, Inc. # Written By David Vinayak Henkel-Wallace, June 1992 # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mcore/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mcore/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mcore/crtn.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mcore/crtn.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ # crtn.S for ELF based systems -# Copyright (C) 1992-2018 Free Software Foundation, Inc. +# Copyright (C) 1992-2019 Free Software Foundation, Inc. # Written By David Vinayak Henkel-Wallace, June 1992 # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mcore/lib1funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mcore/lib1funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mcore/lib1funcs.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mcore/lib1funcs.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* libgcc routines for the MCore. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/crti.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/crti.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* crti.s for __init, __fini This file supplies the prologue for __init and __fini routines - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Michael Eager . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/crtn.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/crtn.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* crtn.s for __init, __fini This file supplies the epilogue for __init and __fini routines - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Michael Eager . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/divsi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/divsi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/divsi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/divsi3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ ###################################- # -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # Contributed by Michael Eager . # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/divsi3_table.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/divsi3_table.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/divsi3_table.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/divsi3_table.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Table for software lookup divide for Xilinx MicroBlaze. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Michael Eager . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/moddi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/moddi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/moddi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/moddi3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ ################################### # -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # Contributed by Michael Eager . # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/modsi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/modsi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/modsi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/modsi3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ ################################### # -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # Contributed by Michael Eager . # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/muldi3_hard.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/muldi3_hard.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/muldi3_hard.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/muldi3_hard.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ ###################################- # -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # Contributed by Michael Eager . # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/mulsi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/mulsi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/mulsi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/mulsi3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ ###################################-*-asm*- # -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # Contributed by Michael Eager . # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/stack_overflow_exit.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/stack_overflow_exit.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/stack_overflow_exit.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/stack_overflow_exit.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ ###################################-*-asm*- # -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # # Contributed by Michael Eager . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/udivsi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/udivsi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/udivsi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/udivsi3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ ###################################- # -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # Contributed by Michael Eager . # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/umodsi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/umodsi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/microblaze/umodsi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/microblaze/umodsi3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ ################################### # -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # Contributed by Michael Eager . # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/crtfastmath.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/crtfastmath.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/crtfastmath.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/crtfastmath.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2018 Free Software Foundation, Inc. +/* Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/crti.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/crti.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2018 Free Software Foundation, Inc. +/* Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/crtn.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/crtn.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2018 Free Software Foundation, Inc. +/* Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/gthr-mipssde.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/gthr-mipssde.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/gthr-mipssde.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/gthr-mipssde.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* MIPS SDE threads compatibility routines for libgcc2 and libobjc. */ /* Compile this one with gcc. */ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Nigel Stephens This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/lib2funcs.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/lib2funcs.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/lib2funcs.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/lib2funcs.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* libgcc routines for MIPS - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. DMULT/DDIV replacement support by Juergen Urban, JuergenUrban@gmx.de. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/libgcc-mips16.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/libgcc-mips16.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/libgcc-mips16.ver 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/libgcc-mips16.ver 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/linux-unwind.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/linux-unwind.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for MIPS Linux. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/mips16.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/mips16.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/mips16.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/mips16.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* mips16 floating point support code - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Contributed by Cygnus Support This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/sfp-machine.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/sfp-machine.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/sfp-machine.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/sfp-machine.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* softfp machine description for MIPS. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/t-mips16 gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/t-mips16 --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/t-mips16 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/t-mips16 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/vr4120-div.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/vr4120-div.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mips/vr4120-div.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mips/vr4120-div.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Support file for -mfix-vr4120. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mmix/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mmix/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mmix/crti.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mmix/crti.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2018 Free Software Foundation, Inc. +/* Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Hans-Peter Nilsson This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mmix/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mmix/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/mmix/crtn.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/mmix/crtn.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2018 Free Software Foundation, Inc. +/* Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Hans-Peter Nilsson This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/moxie/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/moxie/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/moxie/crti.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/moxie/crti.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ # crti.S for moxie # -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/moxie/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/moxie/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/moxie/crtn.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/moxie/crtn.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ # crtn.S for moxie # -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/cmpsi2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/cmpsi2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/cmpsi2.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/cmpsi2.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2012-2018 Free Software Foundation, Inc. +; Copyright (C) 2012-2019 Free Software Foundation, Inc. ; Contributed by Red Hat. ; ; This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/epilogue.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/epilogue.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/epilogue.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/epilogue.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2012-2018 Free Software Foundation, Inc. +; Copyright (C) 2012-2019 Free Software Foundation, Inc. ; Contributed by Red Hat. ; ; This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/lib2bitcountHI.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/lib2bitcountHI.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/lib2bitcountHI.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/lib2bitcountHI.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* libgcc routines for MSP430 - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/lib2divHI.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/lib2divHI.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/lib2divHI.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/lib2divHI.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* HI mode divide routines for libgcc for MSP430 - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/lib2divQI.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/lib2divQI.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/lib2divQI.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/lib2divQI.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* QI mode divide routines for libgcc for MSP430 - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/lib2divSI.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/lib2divSI.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/lib2divSI.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/lib2divSI.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* SI mode divide routines for libgcc for MSP430 - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/lib2hw_mul.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/lib2hw_mul.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/lib2hw_mul.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/lib2hw_mul.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2014-2018 Free Software Foundation, Inc. +; Copyright (C) 2014-2019 Free Software Foundation, Inc. ; Contributed by Red Hat. ; ; This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/lib2mul.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/lib2mul.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/lib2mul.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/lib2mul.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* libgcc routines for MSP430 - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/lib2shift.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/lib2shift.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/lib2shift.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/lib2shift.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Shift functions for the GCC support library for the MSP430 - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/msp430-divmod.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/msp430-divmod.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/msp430-divmod.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/msp430-divmod.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* libgcc routines for MSP430 - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/msp430-mul.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/msp430-mul.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/msp430-mul.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/msp430-mul.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* libgcc routines for RL78 - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/slli.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/slli.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/slli.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/slli.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2012-2018 Free Software Foundation, Inc. +; Copyright (C) 2012-2019 Free Software Foundation, Inc. ; Contributed by Red Hat. ; ; This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/srai.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/srai.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/srai.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/srai.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2012-2018 Free Software Foundation, Inc. +; Copyright (C) 2012-2019 Free Software Foundation, Inc. ; Contributed by Red Hat. ; ; This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/srli.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/srli.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/srli.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/srli.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2012-2018 Free Software Foundation, Inc. +; Copyright (C) 2012-2019 Free Software Foundation, Inc. ; Contributed by Red Hat. ; ; This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/t-msp430 gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/t-msp430 --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/msp430/t-msp430 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/msp430/t-msp430 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Makefile fragment for building LIBGCC for the TI MSP430 processor. -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # Contributed by Red Hat. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/crtzero.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/crtzero.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/crtzero.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/crtzero.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* The startup code sample of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/initfini.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/initfini.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/initfini.c 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/initfini.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,7 +1,7 @@ /* .init/.fini section handling + C++ global constructor/destructor handling of Andes NDS32 cpu for GNU compiler. This file is based on crtstuff.c, sol2-crti.asm, sol2-crtn.asm. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/adj_intr_lvl.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/adj_intr_lvl.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/adj_intr_lvl.inc 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/adj_intr_lvl.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/excp_isr_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/excp_isr_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/excp_isr_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/excp_isr_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/excp_isr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/excp_isr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/excp_isr.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/excp_isr.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/intr_isr_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/intr_isr_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/intr_isr_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/intr_isr_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/intr_isr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/intr_isr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/intr_isr.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/intr_isr.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid00.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid00.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid00.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid00.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid01.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid01.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid01.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid01.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid02.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid02.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid02.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid02.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid03.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid03.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid03.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid03.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid04.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid04.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid04.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid04.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid05.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid05.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid05.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid05.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid06.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid06.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid06.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid06.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid07.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid07.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid07.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid07.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid08.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid08.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid08.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid08.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid09.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid09.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid09.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid09.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid10.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid10.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid10.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid10.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid11.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid11.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid11.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid11.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid12.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid12.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid12.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid12.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid13.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid13.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid13.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid13.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid14.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid14.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid14.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid14.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid15.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid15.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid15.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid15.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid16.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid16.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid16.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid16.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid17.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid17.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid17.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid17.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid18.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid18.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid18.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid18.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid19.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid19.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid19.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid19.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid20.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid20.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid20.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid20.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid21.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid21.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid21.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid21.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid22.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid22.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid22.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid22.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid23.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid23.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid23.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid23.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid24.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid24.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid24.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid24.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid25.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid25.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid25.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid25.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid26.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid26.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid26.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid26.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid27.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid27.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid27.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid27.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid28.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid28.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid28.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid28.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid29.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid29.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid29.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid29.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid30.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid30.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid30.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid30.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid31.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid31.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid31.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid31.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid32.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid32.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid32.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid32.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid33.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid33.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid33.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid33.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid34.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid34.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid34.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid34.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid35.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid35.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid35.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid35.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid36.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid36.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid36.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid36.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid37.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid37.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid37.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid37.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid38.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid38.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid38.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid38.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid39.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid39.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid39.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid39.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid40.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid40.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid40.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid40.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid41.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid41.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid41.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid41.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid42.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid42.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid42.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid42.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid43.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid43.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid43.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid43.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid44.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid44.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid44.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid44.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid45.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid45.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid45.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid45.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid46.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid46.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid46.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid46.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid47.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid47.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid47.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid47.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid48.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid48.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid48.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid48.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid49.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid49.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid49.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid49.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid50.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid50.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid50.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid50.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid51.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid51.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid51.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid51.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid52.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid52.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid52.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid52.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid53.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid53.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid53.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid53.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid54.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid54.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid54.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid54.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid55.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid55.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid55.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid55.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid56.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid56.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid56.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid56.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid57.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid57.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid57.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid57.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid58.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid58.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid58.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid58.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid59.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid59.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid59.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid59.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid60.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid60.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid60.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid60.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid61.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid61.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid61.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid61.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid62.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid62.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid62.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid62.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid63.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid63.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid63.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid63.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid64.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid64.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid64.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid64.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid65.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid65.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid65.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid65.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid66.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid66.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid66.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid66.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid67.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid67.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid67.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid67.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid68.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid68.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid68.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid68.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid69.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid69.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid69.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid69.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid70.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid70.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid70.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid70.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid71.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid71.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid71.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid71.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid72.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid72.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid72.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/jmptbl_vid72.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/nmih.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/nmih.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/nmih.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/nmih.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/reset_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/reset_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/reset_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/reset_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/reset.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/reset.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/reset.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/reset.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_all.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_all.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_all.inc 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_all.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs_00.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs_00.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs_00.inc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs_00.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs_01.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs_01.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs_01.inc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs_01.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs_02.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs_02.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs_02.inc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs_02.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs_03.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs_03.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs_03.inc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs_03.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs.inc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_fpu_regs.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_mac_regs.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_mac_regs.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_mac_regs.inc 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_mac_regs.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_partial.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_partial.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_partial.inc 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_partial.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_usr_regs.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_usr_regs.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_usr_regs.inc 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/restore_usr_regs.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_all.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_all.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_all.inc 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_all.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs_00.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs_00.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs_00.inc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs_00.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs_01.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs_01.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs_01.inc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs_01.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs_02.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs_02.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs_02.inc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs_02.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs_03.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs_03.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs_03.inc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs_03.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs.inc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_fpu_regs.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_mac_regs.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_mac_regs.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_mac_regs.inc 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_mac_regs.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_partial.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_partial.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_partial.inc 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_partial.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_usr_regs.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_usr_regs.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_usr_regs.inc 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/save_usr_regs.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid00_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid00_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid00_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid00_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid00.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid00.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid00.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid00.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid01_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid01_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid01_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid01_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid01.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid01.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid01.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid01.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid02_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid02_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid02_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid02_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid02.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid02.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid02.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid02.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid03_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid03_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid03_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid03_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid03.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid03.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid03.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid03.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid04_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid04_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid04_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid04_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid04.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid04.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid04.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid04.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid05_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid05_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid05_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid05_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid05.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid05.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid05.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid05.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid06_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid06_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid06_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid06_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid06.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid06.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid06.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid06.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid07_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid07_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid07_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid07_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid07.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid07.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid07.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid07.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid08_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid08_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid08_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid08_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid08.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid08.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid08.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid08.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid09_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid09_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid09_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid09_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid09.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid09.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid09.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid09.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid10_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid10_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid10_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid10_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid10.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid10.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid10.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid10.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid11_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid11_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid11_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid11_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid11.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid11.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid11.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid11.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid12_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid12_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid12_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid12_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid12.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid12.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid12.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid12.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid13_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid13_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid13_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid13_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid13.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid13.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid13.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid13.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid14_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid14_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid14_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid14_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid14.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid14.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid14.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid14.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid15_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid15_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid15_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid15_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid15.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid15.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid15.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid15.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid16_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid16_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid16_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid16_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid16.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid16.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid16.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid16.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid17_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid17_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid17_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid17_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid17.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid17.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid17.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid17.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid18_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid18_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid18_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid18_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid18.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid18.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid18.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid18.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid19_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid19_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid19_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid19_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid19.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid19.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid19.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid19.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid20_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid20_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid20_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid20_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid20.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid20.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid20.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid20.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid21_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid21_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid21_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid21_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid21.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid21.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid21.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid21.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid22_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid22_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid22_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid22_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid22.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid22.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid22.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid22.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid23_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid23_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid23_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid23_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid23.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid23.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid23.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid23.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid24_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid24_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid24_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid24_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid24.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid24.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid24.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid24.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid25_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid25_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid25_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid25_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid25.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid25.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid25.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid25.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid26_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid26_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid26_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid26_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid26.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid26.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid26.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid26.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid27_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid27_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid27_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid27_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid27.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid27.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid27.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid27.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid28_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid28_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid28_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid28_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid28.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid28.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid28.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid28.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid29_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid29_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid29_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid29_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid29.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid29.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid29.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid29.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid30_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid30_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid30_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid30_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid30.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid30.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid30.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid30.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid31_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid31_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid31_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid31_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid31.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid31.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid31.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid31.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid32_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid32_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid32_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid32_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid32.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid32.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid32.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid32.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid33_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid33_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid33_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid33_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid33.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid33.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid33.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid33.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid34_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid34_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid34_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid34_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid34.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid34.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid34.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid34.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid35_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid35_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid35_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid35_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid35.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid35.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid35.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid35.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid36_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid36_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid36_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid36_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid36.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid36.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid36.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid36.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid37_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid37_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid37_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid37_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid37.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid37.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid37.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid37.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid38_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid38_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid38_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid38_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid38.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid38.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid38.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid38.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid39_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid39_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid39_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid39_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid39.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid39.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid39.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid39.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid40_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid40_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid40_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid40_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid40.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid40.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid40.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid40.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid41_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid41_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid41_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid41_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid41.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid41.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid41.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid41.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid42_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid42_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid42_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid42_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid42.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid42.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid42.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid42.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid43_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid43_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid43_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid43_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid43.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid43.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid43.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid43.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid44_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid44_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid44_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid44_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid44.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid44.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid44.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid44.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid45_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid45_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid45_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid45_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid45.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid45.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid45.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid45.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid46_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid46_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid46_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid46_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid46.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid46.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid46.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid46.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid47_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid47_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid47_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid47_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid47.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid47.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid47.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid47.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid48_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid48_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid48_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid48_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid48.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid48.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid48.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid48.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid49_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid49_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid49_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid49_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid49.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid49.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid49.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid49.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid50_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid50_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid50_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid50_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid50.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid50.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid50.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid50.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid51_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid51_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid51_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid51_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid51.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid51.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid51.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid51.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid52_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid52_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid52_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid52_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid52.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid52.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid52.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid52.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid53_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid53_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid53_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid53_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid53.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid53.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid53.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid53.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid54_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid54_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid54_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid54_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid54.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid54.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid54.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid54.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid55_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid55_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid55_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid55_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid55.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid55.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid55.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid55.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid56_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid56_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid56_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid56_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid56.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid56.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid56.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid56.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid57_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid57_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid57_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid57_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid57.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid57.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid57.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid57.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid58_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid58_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid58_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid58_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid58.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid58.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid58.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid58.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid59_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid59_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid59_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid59_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid59.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid59.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid59.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid59.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid60_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid60_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid60_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid60_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid60.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid60.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid60.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid60.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid61_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid61_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid61_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid61_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid61.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid61.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid61.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid61.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid62_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid62_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid62_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid62_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid62.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid62.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid62.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid62.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid63_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid63_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid63_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid63_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid63.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid63.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid63.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid63.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid64_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid64_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid64_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid64_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid64.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid64.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid64.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid64.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid65_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid65_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid65_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid65_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid65.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid65.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid65.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid65.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid66_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid66_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid66_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid66_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid66.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid66.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid66.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid66.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid67_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid67_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid67_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid67_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid67.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid67.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid67.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid67.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid68_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid68_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid68_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid68_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid68.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid68.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid68.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid68.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid69_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid69_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid69_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid69_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid69.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid69.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid69.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid69.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid70_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid70_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid70_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid70_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid70.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid70.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid70.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid70.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid71_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid71_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid71_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid71_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid71.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid71.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid71.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid71.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid72_4b.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid72_4b.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid72_4b.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid72_4b.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid72.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid72.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid72.S 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/vec_vid72.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/wrh.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/wrh.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/isr-library/wrh.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/isr-library/wrh.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* c-isr library stuff of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/lib1asmsrc-mculib.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/lib1asmsrc-mculib.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/lib1asmsrc-mculib.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/lib1asmsrc-mculib.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* mculib libgcc routines of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/lib1asmsrc-newlib.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/lib1asmsrc-newlib.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/lib1asmsrc-newlib.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/lib1asmsrc-newlib.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* newlib libgcc routines of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/lib2csrc-mculib/_clzdi2.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/lib2csrc-mculib/_clzdi2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/lib2csrc-mculib/_clzdi2.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/lib2csrc-mculib/_clzdi2.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* mculib libgcc routines of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/lib2csrc-mculib/_clzsi2.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/lib2csrc-mculib/_clzsi2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/lib2csrc-mculib/_clzsi2.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/lib2csrc-mculib/_clzsi2.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* mculib libgcc routines of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/linux-atomic.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/linux-atomic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/linux-atomic.c 2018-06-04 16:10:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/linux-atomic.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Linux-specific atomic operations for NDS32 Linux. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/linux-unwind.h 2018-10-02 07:26:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/linux-unwind.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for NDS32 Linux signal frame. - Copyright (C) 2014-2015 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/sfp-machine.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/sfp-machine.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/sfp-machine.h 2018-04-25 12:10:55.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/sfp-machine.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Machine settings for software floating-point emulation of Andes NDS32 cpu for GNU compiler - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. This file is part of GNU C Library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/t-nds32 gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/t-nds32 --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/t-nds32 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/t-nds32 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Rules of libgcc and crtstuff of Andes NDS32 cpu for GNU compiler -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by Andes Technology Corporation. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/t-nds32-glibc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/t-nds32-glibc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/t-nds32-glibc 2018-10-02 07:26:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/t-nds32-glibc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Rules of glibc library makefile of Andes NDS32 cpu for GNU compiler -# Copyright (C) 2012-2015 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by Andes Technology Corporation. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/t-nds32-isr gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/t-nds32-isr --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/t-nds32-isr 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/t-nds32-isr 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Rules of c-isr library stuff of Andes NDS32 cpu for GNU compiler -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by Andes Technology Corporation. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/t-nds32-mculib gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/t-nds32-mculib --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/t-nds32-mculib 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/t-nds32-mculib 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Rules of mculib library makefile of Andes NDS32 cpu for GNU compiler -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by Andes Technology Corporation. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/t-nds32-newlib gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/t-nds32-newlib --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nds32/t-nds32-newlib 2018-04-25 12:10:55.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nds32/t-nds32-newlib 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Rules of newlib library makefile of Andes NDS32 cpu for GNU compiler -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by Andes Technology Corporation. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/crti.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/crti.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Jonah Graham (jgraham@altera.com). Contributed by Mentor Graphics, Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/crtn.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/crtn.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Jonah Graham (jgraham@altera.com). Contributed by Mentor Graphics, Inc. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/lib2-divmod.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/lib2-divmod.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/lib2-divmod.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/lib2-divmod.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Altera and Mentor Graphics, Inc. This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/lib2-divmod-hi.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/lib2-divmod-hi.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/lib2-divmod-hi.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/lib2-divmod-hi.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Altera and Mentor Graphics, Inc. This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/lib2-divtable.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/lib2-divtable.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/lib2-divtable.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/lib2-divtable.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Altera and Mentor Graphics, Inc. This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/lib2-mul.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/lib2-mul.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/lib2-mul.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/lib2-mul.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Altera and Mentor Graphics, Inc. This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/lib2-nios2.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/lib2-nios2.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/lib2-nios2.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/lib2-nios2.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Integer arithmetic support for Altera Nios II. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Altera and Mentor Graphics, Inc. This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/linux-atomic.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/linux-atomic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/linux-atomic.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/linux-atomic.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Linux-specific atomic operations for Nios II Linux. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/linux-unwind.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/linux-unwind.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for Nios II Linux. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/sfp-machine.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/sfp-machine.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/sfp-machine.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/sfp-machine.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Soft-FP definitions for Altera Nios II. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/tramp.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/tramp.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nios2/tramp.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nios2/tramp.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Altera and Mentor Graphics, Inc. This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nvptx/crt0.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nvptx/crt0.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nvptx/crt0.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nvptx/crt0.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nvptx/mgomp.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nvptx/mgomp.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nvptx/mgomp.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nvptx/mgomp.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Define shared memory arrays for -msoft-stack and -muniform-simt. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nvptx/nvptx-malloc.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nvptx/nvptx-malloc.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nvptx/nvptx-malloc.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nvptx/nvptx-malloc.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Declarations for the malloc wrappers. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nvptx/reduction.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nvptx/reduction.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/nvptx/reduction.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/nvptx/reduction.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Oversized reductions lock variable - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Mentor Graphics. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/or1k/lib1funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/or1k/lib1funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/or1k/lib1funcs.S 2018-11-09 12:59:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/or1k/lib1funcs.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Free Software Foundation, Inc. +/* Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/or1k/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/or1k/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/or1k/linux-unwind.h 2018-11-09 12:59:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/or1k/linux-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for OpenRISC Linux. - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/or1k/t-or1k gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/or1k/t-or1k --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/or1k/t-or1k 2018-11-09 12:59:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/or1k/t-or1k 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ # Libgcc Makefile fragment for OpenRISC -# Copyright (C) 2018 Free Software Foundation, Inc. +# Copyright (C) 2018-2019 Free Software Foundation, Inc. # Contributed by Stafford Horne. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/fptr.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/fptr.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/fptr.c 2018-03-07 01:49:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/fptr.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutine for function pointer canonicalization on PA-RISC with ELF32. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by John David Anglin (dave.anglin@nrc.ca). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/gthr-dce.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/gthr-dce.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/gthr-dce.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/gthr-dce.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Threads compatibility routines for libgcc2 and libobjc. */ /* Compile this one with gcc. */ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/hpux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/hpux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/hpux-unwind.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/hpux-unwind.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for PA HP-UX. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/lib2funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/lib2funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/lib2funcs.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/lib2funcs.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ ; Subroutines for calling unbound dynamic functions from within GDB for HPPA. ; Subroutines for out of line prologues and epilogues on for the HPPA -; Copyright (C) 1994-2018 Free Software Foundation, Inc. +; Copyright (C) 1994-2019 Free Software Foundation, Inc. ; This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/linux-atomic.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/linux-atomic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/linux-atomic.c 2018-08-12 11:28:27.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/linux-atomic.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Linux-specific atomic operations for PA Linux. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Based on code contributed by CodeSourcery for ARM EABI Linux. Modifications for PA Linux by Helge Deller diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/linux-unwind.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/linux-unwind.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for PA Linux. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/milli64.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/milli64.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/milli64.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/milli64.S 2019-01-02 08:05:15.000000000 +0000 @@ -2,7 +2,7 @@ adapted for gcc by Paul Bame and Alan Modra . - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/pa64-hpux-lib.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/pa64-hpux-lib.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/pa64-hpux-lib.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/pa64-hpux-lib.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for HPs running HP-UX using the 64bit runtime model. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/quadlib.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/quadlib.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/quadlib.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/quadlib.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines for long double support. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/stublib.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/stublib.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/stublib.c 2018-01-23 00:38:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/stublib.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Stub functions. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/t-slibgcc-hpux gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/t-slibgcc-hpux --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/pa/t-slibgcc-hpux 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/pa/t-slibgcc-hpux 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/riscv/atomic.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/riscv/atomic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/riscv/atomic.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/riscv/atomic.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Legacy sub-word atomics for RISC-V. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/riscv/div.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/riscv/div.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/riscv/div.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/riscv/div.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Integer division routines for RISC-V. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/riscv/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/riscv/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/riscv/linux-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/riscv/linux-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2016-2018 Free Software Foundation, Inc. +/* Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/riscv/muldi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/riscv/muldi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/riscv/muldi3.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/riscv/muldi3.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Integer multiplication routines for RISC-V. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/riscv/multi3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/riscv/multi3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/riscv/multi3.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/riscv/multi3.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Multiplication two double word integers for RISC-V. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/riscv/riscv-asm.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/riscv/riscv-asm.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/riscv/riscv-asm.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/riscv/riscv-asm.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2018 Free Software Foundation, Inc. +/* Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/riscv/save-restore.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/riscv/save-restore.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/riscv/save-restore.S 2018-05-21 12:22:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/riscv/save-restore.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Callee-saved register spill and fill routines for RISC-V. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/riscv/sfp-machine.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/riscv/sfp-machine.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/riscv/sfp-machine.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/riscv/sfp-machine.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Software floating-point machine description for RISC-V. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/adddi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/adddi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/adddi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/adddi3.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2017-2018 Free Software Foundation, Inc. +; Copyright (C) 2017-2019 Free Software Foundation, Inc. ; Contributed by Sebastian Perta. ; ; This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/anddi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/anddi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/anddi3.S 2018-01-23 00:38:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/anddi3.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2017 Free Software Foundation, Inc. +; Copyright (C) 2017-2019 Free Software Foundation, Inc. ; Contributed by Sebastian Perta. ; ; This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/bit-count.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/bit-count.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/bit-count.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/bit-count.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2012-2018 Free Software Foundation, Inc. +; Copyright (C) 2012-2019 Free Software Foundation, Inc. ; Contributed by Red Hat. ; ; This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/cmpsi2.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/cmpsi2.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/cmpsi2.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/cmpsi2.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; Contributed by Red Hat. ; ; This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/divmodhi.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/divmodhi.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/divmodhi.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/divmodhi.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* HImode div/mod functions for the GCC support library for the Renesas RL78 processors. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/divmodqi.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/divmodqi.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/divmodqi.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/divmodqi.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* QImode div/mod functions for the GCC support library for the Renesas RL78 processors. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/divmodsi.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/divmodsi.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/divmodsi.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/divmodsi.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* SImode div/mod functions for the GCC support library for the Renesas RL78 processors. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/lib2div.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/lib2div.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/lib2div.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/lib2div.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* libgcc routines for RL78 - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/lib2mul.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/lib2mul.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/lib2mul.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/lib2mul.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* libgcc routines for RL78 - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/lib2shift.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/lib2shift.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/lib2shift.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/lib2shift.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Shift functions for the GCC support library for the Renesas RL78 processors. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/lshrsi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/lshrsi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/lshrsi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/lshrsi3.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; Contributed by Red Hat. ; ; This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/mulsi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/mulsi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/mulsi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/mulsi3.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2011-2018 Free Software Foundation, Inc. +; Copyright (C) 2011-2019 Free Software Foundation, Inc. ; Contributed by Red Hat. ; ; This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/rl78-divmod.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/rl78-divmod.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/rl78-divmod.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/rl78-divmod.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* libgcc routines for RL78 - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/rl78-mul.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/rl78-mul.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/rl78-mul.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/rl78-mul.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* libgcc routines for RL78 - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/signbit.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/signbit.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/signbit.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/signbit.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2012-2018 Free Software Foundation, Inc. +; Copyright (C) 2012-2019 Free Software Foundation, Inc. ; Contributed by Red Hat. ; ; This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/smaxdi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/smaxdi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/smaxdi3.S 2018-01-23 00:38:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/smaxdi3.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2017 Free Software Foundation, Inc. +; Copyright (C) 2017-2019 Free Software Foundation, Inc. ; Contributed by Sebastian Perta. ; ; This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/smindi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/smindi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/smindi3.S 2018-01-23 00:38:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/smindi3.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2017 Free Software Foundation, Inc. +; Copyright (C) 2017-2019 Free Software Foundation, Inc. ; Contributed by Sebastian Perta. ; ; This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/subdi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/subdi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/subdi3.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/subdi3.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2017-2018 Free Software Foundation, Inc. +; Copyright (C) 2017-2019 Free Software Foundation, Inc. ; Contributed by Sebastian Perta. ; ; This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/trampoline.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/trampoline.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/trampoline.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/trampoline.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* libgcc routines for RL78 - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/t-rl78 gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/t-rl78 --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/t-rl78 2018-01-23 00:38:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/t-rl78 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Makefile fragment for building LIBGCC for the Renesas RL78 target. -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # Contributed by Red Hat. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/umaxdi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/umaxdi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/umaxdi3.S 2018-01-23 00:38:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/umaxdi3.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2017 Free Software Foundation, Inc. +; Copyright (C) 2017-2019 Free Software Foundation, Inc. ; Contributed by Sebastian Perta. ; ; This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/umindi3.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/umindi3.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rl78/umindi3.S 2018-01-23 00:38:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rl78/umindi3.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -; Copyright (C) 2017 Free Software Foundation, Inc. +; Copyright (C) 2017-2019 Free Software Foundation, Inc. ; Contributed by Sebastian Perta. ; ; This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/aix-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/aix-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/aix-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/aix-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for AIX. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/atexit.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/atexit.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/atexit.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/atexit.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 Free Software Foundation, Inc. +/* Copyright (C) 1999-2019 Free Software Foundation, Inc. NOTE: This source is derived from an old version taken from the GNU C Library (glibc). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtcxa.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtcxa.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtcxa.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtcxa.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* __dso_handle initialization for AIX. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Written by David Edelsohn, IBM. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtdbase.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtdbase.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtdbase.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtdbase.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Defines __gcc_unwind_dbase - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtresfpr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtresfpr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtresfpr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtresfpr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for eabi and SVR4 * - * Copyright (C) 1995-2018 Free Software Foundation, Inc. + * Copyright (C) 1995-2019 Free Software Foundation, Inc. * Written By Michael Meissner * 64-bit support written by David Edelsohn * diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtresgpr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtresgpr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtresgpr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtresgpr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for eabi and SVR4 * - * Copyright (C) 1995-2018 Free Software Foundation, Inc. + * Copyright (C) 1995-2019 Free Software Foundation, Inc. * Written By Michael Meissner * 64-bit support written by David Edelsohn * diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtrestvr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtrestvr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtrestvr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtrestvr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Routines for restoring vector registers. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Alan Modra, IBM This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtresxfpr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtresxfpr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtresxfpr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtresxfpr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for eabi and SVR4 * - * Copyright (C) 1995-2018 Free Software Foundation, Inc. + * Copyright (C) 1995-2019 Free Software Foundation, Inc. * Written By Michael Meissner * 64-bit support written by David Edelsohn * diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtresxgpr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtresxgpr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtresxgpr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtresxgpr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for eabi and SVR4 * - * Copyright (C) 1995-2018 Free Software Foundation, Inc. + * Copyright (C) 1995-2019 Free Software Foundation, Inc. * Written By Michael Meissner * 64-bit support written by David Edelsohn * diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtsavevr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtsavevr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtsavevr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtsavevr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Routines for saving vector registers. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. Written by Alan Modra, IBM This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtsavfpr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtsavfpr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtsavfpr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtsavfpr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for eabi and SVR4 * - * Copyright (C) 1995-2018 Free Software Foundation, Inc. + * Copyright (C) 1995-2019 Free Software Foundation, Inc. * Written By Michael Meissner * 64-bit support written by David Edelsohn * diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtsavgpr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtsavgpr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/crtsavgpr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/crtsavgpr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for eabi and SVR4 * - * Copyright (C) 1995-2018 Free Software Foundation, Inc. + * Copyright (C) 1995-2019 Free Software Foundation, Inc. * Written By Michael Meissner * 64-bit support written by David Edelsohn * diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/cxa_atexit.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/cxa_atexit.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/cxa_atexit.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/cxa_atexit.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 Free Software Foundation, Inc. +/* Copyright (C) 1999-2019 Free Software Foundation, Inc. NOTE: This source is derived from an old version taken from the GNU C Library (glibc). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/cxa_finalize.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/cxa_finalize.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/cxa_finalize.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/cxa_finalize.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 Free Software Foundation, Inc. +/* Copyright (C) 1999-2019 Free Software Foundation, Inc. NOTE: This source is derived from an old version taken from the GNU C Library (glibc). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/darwin-asm.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/darwin-asm.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/darwin-asm.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/darwin-asm.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* Macro definitions to used to support 32/64-bit code in Darwin's * assembly files. * - * Copyright (C) 2004-2018 Free Software Foundation, Inc. + * Copyright (C) 2004-2019 Free Software Foundation, Inc. * * This file is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/darwin-crt2.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/darwin-crt2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/darwin-crt2.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/darwin-crt2.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* KeyMgr backwards-compatibility support for Darwin. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/darwin-fallback.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/darwin-fallback.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/darwin-fallback.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/darwin-fallback.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Fallback frame-state unwinder for Darwin. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/darwin-fpsave.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/darwin-fpsave.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/darwin-fpsave.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/darwin-fpsave.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* This file contains the floating-point save and restore routines. * - * Copyright (C) 2004-2018 Free Software Foundation, Inc. + * Copyright (C) 2004-2019 Free Software Foundation, Inc. * * This file is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/darwin-gpsave.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/darwin-gpsave.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/darwin-gpsave.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/darwin-gpsave.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* This file contains the GPR save and restore routines for Darwin. * - * Copyright (C) 2011-2018 Free Software Foundation, Inc. + * Copyright (C) 2011-2019 Free Software Foundation, Inc. * * This file is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/darwin-tramp.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/darwin-tramp.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/darwin-tramp.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/darwin-tramp.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Special support for trampolines * - * Copyright (C) 1996-2018 Free Software Foundation, Inc. + * Copyright (C) 1996-2019 Free Software Foundation, Inc. * Written By Michael Meissner * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/darwin-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/darwin-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/darwin-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/darwin-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for 32-bit PowerPC Darwin. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/darwin-vecsave.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/darwin-vecsave.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/darwin-vecsave.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/darwin-vecsave.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* This file contains the vector save and restore routines. * - * Copyright (C) 2004-2018 Free Software Foundation, Inc. + * Copyright (C) 2004-2019 Free Software Foundation, Inc. * * This file is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/darwin-world.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/darwin-world.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/darwin-world.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/darwin-world.S 2019-01-02 08:05:14.000000000 +0000 @@ -2,7 +2,7 @@ * restore_world routines, which need to do a run-time check to see if * they should save and restore the vector registers. * - * Copyright (C) 2004-2018 Free Software Foundation, Inc. + * Copyright (C) 2004-2019 Free Software Foundation, Inc. * * This file is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/_divkc3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/_divkc3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/_divkc3.c 2018-01-09 03:04:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/_divkc3.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1989-2018 Free Software Foundation, Inc. +/* Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtres32gpr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtres32gpr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtres32gpr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtres32gpr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for e500 eabi and SVR4 * - * Copyright (C) 2008-2018 Free Software Foundation, Inc. + * Copyright (C) 2008-2019 Free Software Foundation, Inc. * Written by Nathan Froyd * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtres64gprctr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtres64gprctr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtres64gprctr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtres64gprctr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for e500 eabi and SVR4 * - * Copyright (C) 2008-2018 Free Software Foundation, Inc. + * Copyright (C) 2008-2019 Free Software Foundation, Inc. * Written by Nathan Froyd * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtres64gpr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtres64gpr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtres64gpr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtres64gpr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for e500 eabi and SVR4 * - * Copyright (C) 2008-2018 Free Software Foundation, Inc. + * Copyright (C) 2008-2019 Free Software Foundation, Inc. * Written by Nathan Froyd * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtrest32gpr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtrest32gpr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtrest32gpr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtrest32gpr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for e500 eabi and SVR4 * - * Copyright (C) 2008-2018 Free Software Foundation, Inc. + * Copyright (C) 2008-2019 Free Software Foundation, Inc. * Written by Nathan Froyd * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtrest64gpr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtrest64gpr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtrest64gpr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtrest64gpr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for e500 eabi and SVR4 * - * Copyright (C) 2008-2018 Free Software Foundation, Inc. + * Copyright (C) 2008-2019 Free Software Foundation, Inc. * Written by Nathan Froyd * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtresx32gpr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtresx32gpr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtresx32gpr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtresx32gpr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for e500 eabi and SVR4 * - * Copyright (C) 2008-2018 Free Software Foundation, Inc. + * Copyright (C) 2008-2019 Free Software Foundation, Inc. * Written by Nathan Froyd * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtresx64gpr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtresx64gpr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtresx64gpr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtresx64gpr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for e500 eabi and SVR4 * - * Copyright (C) 2008-2018 Free Software Foundation, Inc. + * Copyright (C) 2008-2019 Free Software Foundation, Inc. * Written by Nathan Froyd * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtsav32gpr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtsav32gpr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtsav32gpr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtsav32gpr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for e500 eabi and SVR4 * - * Copyright (C) 2008-2018 Free Software Foundation, Inc. + * Copyright (C) 2008-2019 Free Software Foundation, Inc. * Written by Nathan Froyd * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtsav64gprctr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtsav64gprctr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtsav64gprctr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtsav64gprctr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for e500 eabi and SVR4 * - * Copyright (C) 2008-2018 Free Software Foundation, Inc. + * Copyright (C) 2008-2019 Free Software Foundation, Inc. * Written by Nathan Froyd * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtsav64gpr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtsav64gpr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtsav64gpr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtsav64gpr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for e500 eabi and SVR4 * - * Copyright (C) 2008-2018 Free Software Foundation, Inc. + * Copyright (C) 2008-2019 Free Software Foundation, Inc. * Written by Nathan Froyd * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtsavg32gpr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtsavg32gpr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtsavg32gpr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtsavg32gpr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for e500 eabi and SVR4 * - * Copyright (C) 2008-2018 Free Software Foundation, Inc. + * Copyright (C) 2008-2019 Free Software Foundation, Inc. * Written by Nathan Froyd * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtsavg64gprctr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtsavg64gprctr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtsavg64gprctr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtsavg64gprctr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for e500 eabi and SVR4 * - * Copyright (C) 2008-2018 Free Software Foundation, Inc. + * Copyright (C) 2008-2019 Free Software Foundation, Inc. * Written by Nathan Froyd * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtsavg64gpr.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtsavg64gpr.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/e500crtsavg64gpr.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/e500crtsavg64gpr.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for e500 eabi and SVR4 * - * Copyright (C) 2008-2018 Free Software Foundation, Inc. + * Copyright (C) 2008-2019 Free Software Foundation, Inc. * Written by Nathan Froyd * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/eabi-ci.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/eabi-ci.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/eabi-ci.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/eabi-ci.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* crti.s for eabi - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Written By Michael Meissner This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/eabi-cn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/eabi-cn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/eabi-cn.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/eabi-cn.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* crtn.s for eabi - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. Written By Michael Meissner This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/eabi.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/eabi.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/eabi.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/eabi.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* * Special support for eabi and SVR4 * - * Copyright (C) 1995-2018 Free Software Foundation, Inc. + * Copyright (C) 1995-2019 Free Software Foundation, Inc. * Written By Michael Meissner * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/exit.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/exit.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/exit.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/exit.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. Derived from exit.h in GNU C Library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/extendkftf2-sw.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/extendkftf2-sw.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/extendkftf2-sw.c 2018-01-09 03:04:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/extendkftf2-sw.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Software IEEE 128-bit floating-point emulation for PowerPC. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Michael Meissner (meissner@linux.vnet.ibm.com) Code is based on the main soft-fp library written by: diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/fixkfti.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/fixkfti.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/fixkfti.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/fixkfti.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* Software floating-point emulation, convert IEEE quad to 128bit signed integer. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Steven Munroe (munroesj@linux.vnet.ibm.com) Code is based on the main soft-fp library written by: diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/fixunskfti.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/fixunskfti.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/fixunskfti.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/fixunskfti.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* Software floating-point emulation, convert IEEE quad to 128bit unsigned integer. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Steven Munroe (munroesj@linux.vnet.ibm.com) Code is based on the main soft-fp library written by: diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/float128-hw.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/float128-hw.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/float128-hw.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/float128-hw.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* Automatic switching between software and hardware IEEE 128-bit floating-point emulation for PowerPC. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Michael Meissner (meissner@linux.vnet.ibm.com) Code is based on the main soft-fp library written by: diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/float128-ifunc.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/float128-ifunc.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/float128-ifunc.c 2018-04-23 08:51:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/float128-ifunc.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* Automatic switching between software and hardware IEEE 128-bit floating-point emulation for PowerPC. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Michael Meissner (meissner@linux.vnet.ibm.com) Code is based on the main soft-fp library written by: diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/floattikf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/floattikf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/floattikf.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/floattikf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* Software floating-point emulation, convert a 128bit signed integer to IEEE quad. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Steven Munroe (munroesj@linux.vnet.ibm.com) Code is based on the main soft-fp library written by: diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/floatuntikf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/floatuntikf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/floatuntikf.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/floatuntikf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* Software floating-point emulation, convert a 128bit unsigned integer to IEEE quad. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Steven Munroe (munroesj@linux.vnet.ibm.com) Code is based on the main soft-fp library written by: diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/freebsd-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/freebsd-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/freebsd-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/freebsd-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for PowerPC64 FreeBSD. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/gthr-aix.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/gthr-aix.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/gthr-aix.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/gthr-aix.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Threads compatibility routines for libgcc2 and libobjc. */ /* Compile this one with gcc. */ -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/ibm-ldouble.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/ibm-ldouble.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/ibm-ldouble.c 2018-10-15 11:36:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/ibm-ldouble.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* 128-bit long double support routines for Darwin. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/ibm-ldouble-format gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/ibm-ldouble-format --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/ibm-ldouble-format 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/ibm-ldouble-format 2019-01-02 08:05:14.000000000 +0000 @@ -84,7 +84,7 @@ be within 3ulp of the correct result. -Copyright (C) 2004-2018 Free Software Foundation, Inc. +Copyright (C) 2004-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/libgcc-darwin.10.4.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/libgcc-darwin.10.4.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/libgcc-darwin.10.4.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/libgcc-darwin.10.4.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/libgcc-darwin.10.5.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/libgcc-darwin.10.5.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/libgcc-darwin.10.5.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/libgcc-darwin.10.5.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/libgcc-glibc.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/libgcc-glibc.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/libgcc-glibc.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/libgcc-glibc.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/linux-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/linux-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for PowerPC and PowerPC64 Linux. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/morestack.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/morestack.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/morestack.S 2018-11-27 09:27:30.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/morestack.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ #ifdef __powerpc64__ # PowerPC64 support for -fsplit-stack. -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # Contributed by Alan Modra . # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/_mulkc3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/_mulkc3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/_mulkc3.c 2018-01-09 03:04:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/_mulkc3.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1989-2018 Free Software Foundation, Inc. +/* Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/on_exit.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/on_exit.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/on_exit.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/on_exit.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 Free Software Foundation, Inc. +/* Copyright (C) 1999-2019 Free Software Foundation, Inc. NOTE: This source is derived from an old version taken from the GNU C Library (glibc). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/_powikf2.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/_powikf2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/_powikf2.c 2018-04-23 08:51:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/_powikf2.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1989-2018 Free Software Foundation, Inc. +/* Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/ppc64-fp.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/ppc64-fp.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/ppc64-fp.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/ppc64-fp.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* Functions needed for soft-float on powerpc64-linux, copied from libgcc2.c with macros expanded to force the use of specific types. - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/quad-float128.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/quad-float128.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/quad-float128.h 2018-04-23 08:51:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/quad-float128.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Software floating-point emulation. Definitions for IEEE Quad Precision on the PowerPC. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Michael Meissner (meissner@linux.vnet.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/sfp-exceptions.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/sfp-exceptions.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/sfp-exceptions.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/sfp-exceptions.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2016-2018 Free Software Foundation, Inc. +/* Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/sol-ci.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/sol-ci.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/sol-ci.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/sol-ci.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ # crti.s for sysv4 -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2019 Free Software Foundation, Inc. # Written By Michael Meissner # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/sol-cn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/sol-cn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/sol-cn.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/sol-cn.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ # crtn.s for sysv4 -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2019 Free Software Foundation, Inc. # Written By Michael Meissner # # This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/t-e500v1-fp gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/t-e500v1-fp --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/t-e500v1-fp 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/t-e500v1-fp 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/t-e500v2-fp gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/t-e500v2-fp --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/t-e500v2-fp 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/t-e500v2-fp 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/t-freebsd gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/t-freebsd --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/t-freebsd 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/t-freebsd 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ # Overrides for FreeBSD PowerPC # -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/tramp.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/tramp.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/tramp.S 2018-12-14 05:16:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/tramp.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Special support for trampolines * - * Copyright (C) 1996-2018 Free Software Foundation, Inc. + * Copyright (C) 1996-2019 Free Software Foundation, Inc. * Written By Michael Meissner * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/trunctfkf2-sw.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/trunctfkf2-sw.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/trunctfkf2-sw.c 2018-01-09 03:04:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/trunctfkf2-sw.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Software IEEE 128-bit floating-point emulation for PowerPC. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Michael Meissner (meissner@linux.vnet.ibm.com) Code is based on the main soft-fp library written by: diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/t-slibgcc-aix gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/t-slibgcc-aix --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rs6000/t-slibgcc-aix 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rs6000/t-slibgcc-aix 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rx/rx-abi-functions.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rx/rx-abi-functions.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rx/rx-abi-functions.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rx/rx-abi-functions.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* RX C ABI functions - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rx/rx-abi.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rx/rx-abi.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rx/rx-abi.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rx/rx-abi.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for RX ABI versions of libgcc functions. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Red Hat. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rx/t-rx gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rx/t-rx --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/rx/t-rx 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/rx/t-rx 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ # Makefile fragment for building LIBGCC for the Renesas RX target. -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # Contributed by Red Hat. # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/32/_fixdfdi.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/32/_fixdfdi.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/32/_fixdfdi.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/32/_fixdfdi.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for IBM S/390 - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Hartmut Penner (hpenner@de.ibm.com) and Ulrich Weigand (uweigand@de.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/32/_fixsfdi.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/32/_fixsfdi.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/32/_fixsfdi.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/32/_fixsfdi.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for IBM S/390 - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Hartmut Penner (hpenner@de.ibm.com) and Ulrich Weigand (uweigand@de.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/32/_fixtfdi.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/32/_fixtfdi.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/32/_fixtfdi.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/32/_fixtfdi.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for IBM S/390 - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Hartmut Penner (hpenner@de.ibm.com) and Ulrich Weigand (uweigand@de.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/32/_fixunsdfdi.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/32/_fixunsdfdi.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/32/_fixunsdfdi.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/32/_fixunsdfdi.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for IBM S/390 - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Hartmut Penner (hpenner@de.ibm.com) and Ulrich Weigand (uweigand@de.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/32/_fixunssfdi.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/32/_fixunssfdi.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/32/_fixunssfdi.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/32/_fixunssfdi.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for IBM S/390 - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Hartmut Penner (hpenner@de.ibm.com) and Ulrich Weigand (uweigand@de.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/32/_fixunstfdi.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/32/_fixunstfdi.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/32/_fixunstfdi.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/32/_fixunstfdi.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for IBM S/390 - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Hartmut Penner (hpenner@de.ibm.com) and Ulrich Weigand (uweigand@de.ibm.com). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/gthr-tpf.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/gthr-tpf.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/gthr-tpf.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/gthr-tpf.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Threads compatibility routines for libgcc2 and libobjc. Compile this one with gcc. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/libgcc-glibc.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/libgcc-glibc.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/libgcc-glibc.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/libgcc-glibc.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/linux-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/linux-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for S/390 Linux. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/morestack.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/morestack.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/morestack.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/morestack.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ # s390 support for -fsplit-stack. -# Copyright (C) 2015-2018 Free Software Foundation, Inc. +# Copyright (C) 2015-2019 Free Software Foundation, Inc. # Contributed by Marcin Kościelnicki . # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/tpf-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/tpf-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/s390/tpf-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/s390/tpf-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for TPF OS. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by P.J. Darcy (darcypj@us.ibm.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/score/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/score/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/score/crti.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/score/crti.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ # crti.S for Sunplus S+CORE # -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/score/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/score/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/score/crtn.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/score/crtn.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ # crtn.S for Sunplus S+CORE -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/crt1.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/crt1.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/crt1.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/crt1.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. This file was pretty much copied from newlib. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/crt.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/crt.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/crt.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/crt.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/crti.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/crti.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. This file was adapted from glibc sources. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/crtn.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/crtn.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. This file was adapted from glibc sources. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/lib1funcs-4-300.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/lib1funcs-4-300.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/lib1funcs-4-300.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/lib1funcs-4-300.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2018 Free Software Foundation, Inc. +/* Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/lib1funcs.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/lib1funcs.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/lib1funcs.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/lib1funcs.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2018 Free Software Foundation, Inc. +/* Copyright (C) 1994-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/lib1funcs-Os-4-200.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/lib1funcs-Os-4-200.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/lib1funcs-Os-4-200.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/lib1funcs-Os-4-200.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/lib1funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/lib1funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/lib1funcs.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/lib1funcs.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2018 Free Software Foundation, Inc. +/* Copyright (C) 1994-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/libgcc-glibc.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/libgcc-glibc.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/libgcc-glibc.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/libgcc-glibc.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/linux-atomic.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/linux-atomic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/linux-atomic.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/linux-atomic.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/linux-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/linux-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for SH Linux. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/t-sh gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/t-sh --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sh/t-sh 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sh/t-sh 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1993-2018 Free Software Foundation, Inc. +# Copyright (C) 1993-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sol2/crtp.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sol2/crtp.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sol2/crtp.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sol2/crtp.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Dummy _mcount when mixing profiling and non-profiling objects. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sol2/crtpg.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sol2/crtpg.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sol2/crtpg.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sol2/crtpg.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Register profiling startup and cleanup with Solaris CRTs. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sol2/t-sol2 gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sol2/t-sol2 --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sol2/t-sol2 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sol2/t-sol2 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sparc/crtfastmath.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sparc/crtfastmath.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sparc/crtfastmath.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sparc/crtfastmath.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2001-2018 Free Software Foundation, Inc. + * Copyright (C) 2001-2019 Free Software Foundation, Inc. * Contributed by David S. Miller (davem@redhat.com) * * This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sparc/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sparc/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sparc/crti.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sparc/crti.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ ! crti.S for SPARC -! Copyright (C) 1992-2018 Free Software Foundation, Inc. +! Copyright (C) 1992-2019 Free Software Foundation, Inc. ! Written By David Vinayak Henkel-Wallace, June 1992 ! ! This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sparc/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sparc/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sparc/crtn.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sparc/crtn.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ ! crtn.S for SPARC -! Copyright (C) 1992-2018 Free Software Foundation, Inc. +! Copyright (C) 1992-2019 Free Software Foundation, Inc. ! Written By David Vinayak Henkel-Wallace, June 1992 ! ! This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sparc/libgcc-glibc.ver gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sparc/libgcc-glibc.ver --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sparc/libgcc-glibc.ver 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sparc/libgcc-glibc.ver 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sparc/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sparc/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sparc/linux-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sparc/linux-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for SPARC Linux. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sparc/sol2-c1.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sparc/sol2-c1.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sparc/sol2-c1.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sparc/sol2-c1.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ ! crt1.s for sparc & sparcv9 (SunOS 5) -! Copyright (C) 1992-2018 Free Software Foundation, Inc. +! Copyright (C) 1992-2019 Free Software Foundation, Inc. ! Written By David Vinayak Henkel-Wallace, June 1992 ! ! This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sparc/sol2-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sparc/sol2-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/sparc/sol2-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/sparc/sol2-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for SPARC Solaris. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/cachemgr.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/cachemgr.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/cachemgr.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/cachemgr.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/cache.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/cache.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/cache.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/cache.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/divmodti4.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/divmodti4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/divmodti4.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/divmodti4.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/divv2df3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/divv2df3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/divv2df3.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/divv2df3.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2018 Free Software Foundation, Inc. +/* Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/float_disf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/float_disf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/float_disf.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/float_disf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/float_unsdidf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/float_unsdidf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/float_unsdidf.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/float_unsdidf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/float_unsdisf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/float_unsdisf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/float_unsdisf.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/float_unsdisf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/float_unssidf.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/float_unssidf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/float_unssidf.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/float_unssidf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/mfc_multi_tag_release.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/mfc_multi_tag_release.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/mfc_multi_tag_release.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/mfc_multi_tag_release.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/mfc_multi_tag_reserve.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/mfc_multi_tag_reserve.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/mfc_multi_tag_reserve.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/mfc_multi_tag_reserve.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/mfc_tag_release.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/mfc_tag_release.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/mfc_tag_release.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/mfc_tag_release.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/mfc_tag_reserve.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/mfc_tag_reserve.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/mfc_tag_reserve.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/mfc_tag_reserve.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/mfc_tag_table.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/mfc_tag_table.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/mfc_tag_table.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/mfc_tag_table.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/multi3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/multi3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/spu/multi3.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/spu/multi3.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/stormy16/lib2funcs.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/stormy16/lib2funcs.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/stormy16/lib2funcs.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/stormy16/lib2funcs.c 2019-01-02 08:05:15.000000000 +0000 @@ -4,7 +4,7 @@ files. On this glorious day maybe this code can be integrated into it too. */ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/stormy16/t-stormy16 gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/stormy16/t-stormy16 --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/stormy16/t-stormy16 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/stormy16/t-stormy16 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ # -*- makefile -*- # -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/t-hardfp gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/t-hardfp --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/t-hardfp 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/t-hardfp 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/t-hardfp-sfdf gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/t-hardfp-sfdf --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/t-hardfp-sfdf 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/t-hardfp-sfdf 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/tilepro/atomic.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/tilepro/atomic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/tilepro/atomic.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/tilepro/atomic.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* TILE atomics. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/tilepro/atomic.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/tilepro/atomic.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/tilepro/atomic.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/tilepro/atomic.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Macros for atomic functionality for tile. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/tilepro/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/tilepro/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/tilepro/linux-unwind.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/tilepro/linux-unwind.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for TILEPro. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/tilepro/softdivide.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/tilepro/softdivide.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/tilepro/softdivide.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/tilepro/softdivide.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Division and remainder routines for Tile. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/tilepro/softmpy.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/tilepro/softmpy.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/tilepro/softmpy.S 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/tilepro/softmpy.S 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* 64-bit multiplication support for TILEPro. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/t-libunwind-elf gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/t-libunwind-elf --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/t-libunwind-elf 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/t-libunwind-elf 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/t-slibgcc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/t-slibgcc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/t-slibgcc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/t-slibgcc 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/t-slibgcc-fuchsia gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/t-slibgcc-fuchsia --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/t-slibgcc-fuchsia 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/t-slibgcc-fuchsia 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2018 Free Software Foundation, Inc. +# Copyright (C) 2017-2019 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -20,7 +20,7 @@ SHLIB_LDFLAGS = -Wl,--soname=$(SHLIB_SONAME) \ $(LDFLAGS) -# Copyright (C) 2017-2018 Free Software Foundation, Inc. +# Copyright (C) 2017-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/t-slibgcc-libgcc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/t-slibgcc-libgcc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/t-slibgcc-libgcc 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/t-slibgcc-libgcc 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/t-softfp gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/t-softfp --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/t-softfp 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/t-softfp 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2019 Free Software Foundation, Inc. # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/unwind-dw2-fde-darwin.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/unwind-dw2-fde-darwin.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/unwind-dw2-fde-darwin.c 2018-09-08 14:39:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/unwind-dw2-fde-darwin.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2018 Free Software Foundation, Inc. +/* Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/v850/lib1funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/v850/lib1funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/v850/lib1funcs.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/v850/lib1funcs.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* libgcc routines for NEC V850. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/vax/lib1funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/vax/lib1funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/vax/lib1funcs.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/vax/lib1funcs.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2018 Free Software Foundation, Inc. +/* Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GCC. Contributed by Maciej W. Rozycki . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/crti.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/crti.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* crti.S for Visium. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/crtn.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/crtn.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* crtn.S for Visium. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/divdi3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/divdi3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/divdi3.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/divdi3.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/lib2funcs.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/lib2funcs.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/lib2funcs.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/lib2funcs.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/memcpy.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/memcpy.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/memcpy.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/memcpy.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/memcpy.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/memcpy.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/memcpy.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/memcpy.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/memset.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/memset.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/memset.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/memset.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/memset.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/memset.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/memset.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/memset.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/moddi3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/moddi3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/moddi3.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/moddi3.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/set_trampoline_parity.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/set_trampoline_parity.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/set_trampoline_parity.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/set_trampoline_parity.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/t-visium gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/t-visium --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/t-visium 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/t-visium 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/udivdi3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/udivdi3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/udivdi3.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/udivdi3.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/udivmoddi4.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/udivmoddi4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/udivmoddi4.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/udivmoddi4.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/umoddi3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/umoddi3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/visium/umoddi3.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/visium/umoddi3.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/vms/vms-ucrt0.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/vms/vms-ucrt0.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/vms/vms-ucrt0.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/vms/vms-ucrt0.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* VMS crt0 returning Unix style condition codes. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Douglas B. Rupp (rupp@gnat.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/vxcache.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/vxcache.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/vxcache.c 2018-10-02 07:26:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/vxcache.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Free Software Foundation, Inc. +/* Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Alexandre Oliva This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/vxlib.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/vxlib.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/vxlib.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/vxlib.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Zack Weinberg This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/vxlib-tls.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/vxlib-tls.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/vxlib-tls.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/vxlib-tls.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Zack Weinberg This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/xtensa/crti.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/xtensa/crti.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/xtensa/crti.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/xtensa/crti.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Start .init and .fini sections. -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/xtensa/crtn.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/xtensa/crtn.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/xtensa/crtn.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/xtensa/crtn.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # End of .init and .fini sections. -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/xtensa/ieee754-df.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/xtensa/ieee754-df.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/xtensa/ieee754-df.S 2018-03-06 16:36:58.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/xtensa/ieee754-df.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* IEEE-754 double-precision functions for Xtensa - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/xtensa/ieee754-sf.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/xtensa/ieee754-sf.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/xtensa/ieee754-sf.S 2018-03-06 16:36:58.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/xtensa/ieee754-sf.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* IEEE-754 single-precision functions for Xtensa - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/xtensa/lib1funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/xtensa/lib1funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/xtensa/lib1funcs.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/xtensa/lib1funcs.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Assembly functions for the Xtensa version of libgcc1. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/xtensa/lib2funcs.S gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/xtensa/lib2funcs.S --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/xtensa/lib2funcs.S 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/xtensa/lib2funcs.S 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Assembly functions for libgcc2. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/xtensa/linux-unwind.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/xtensa/linux-unwind.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/xtensa/linux-unwind.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/xtensa/linux-unwind.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for Xtensa. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/xtensa/unwind-dw2-xtensa.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/xtensa/unwind-dw2-xtensa.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/xtensa/unwind-dw2-xtensa.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/xtensa/unwind-dw2-xtensa.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 exception handling and frame unwinding for Xtensa. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/xtensa/unwind-dw2-xtensa.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/xtensa/unwind-dw2-xtensa.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config/xtensa/unwind-dw2-xtensa.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config/xtensa/unwind-dw2-xtensa.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 frame unwind data structure for Xtensa. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config.host gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config.host --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/config.host 2018-11-09 12:59:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/config.host 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ # libgcc host-specific configuration file. -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. #This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/crtstuff.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/crtstuff.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/crtstuff.c 2018-05-31 09:39:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/crtstuff.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Specialized bits of code needed to support construction and destruction of file-scope objects in C++ code. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. Contributed by Ron Guilmette (rfg@monkeys.com). This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/dfp-bit.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/dfp-bit.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/dfp-bit.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/dfp-bit.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* This is a software decimal floating point library. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/dfp-bit.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/dfp-bit.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/dfp-bit.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/dfp-bit.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for dfp-bit.c. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/divmod.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/divmod.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/divmod.c 2018-10-19 09:35:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/divmod.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/emutls.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/emutls.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/emutls.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/emutls.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* TLS emulation. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/enable-execute-stack-mprotect.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/enable-execute-stack-mprotect.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/enable-execute-stack-mprotect.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/enable-execute-stack-mprotect.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Implement __enable_execute_stack using mprotect(2). - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/find-symver.awk gcc-snapshot-20190102/=unpacked-tar1=/libgcc/find-symver.awk --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/find-symver.awk 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/find-symver.awk 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ # Extract the version of a single symbol from the version map. -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/fixed-bit.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/fixed-bit.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/fixed-bit.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/fixed-bit.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* This is a software fixed-point library. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/fixed-bit.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/fixed-bit.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/fixed-bit.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/fixed-bit.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* This is a software fixed-point library. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/fp-bit.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/fp-bit.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/fp-bit.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/fp-bit.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* This is a software floating point library which can be used for targets without hardware floating point. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/fp-bit.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/fp-bit.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/fp-bit.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/fp-bit.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for fp-bit.c. */ -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/gbl-ctors.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/gbl-ctors.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/gbl-ctors.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/gbl-ctors.h 2019-01-02 08:05:14.000000000 +0000 @@ -2,7 +2,7 @@ for getting g++ file-scope static objects constructed. This file will get included either by libgcc2.c (for systems that don't support a .init section) or by crtstuff.c (for those that do). - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. Contributed by Ron Guilmette (rfg@segfault.us.com) This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/gcov.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/gcov.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/gcov.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/gcov.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* GCOV interface routines. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/generic-morestack.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/generic-morestack.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/generic-morestack.c 2018-06-22 07:37:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/generic-morestack.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Library support for -fsplit-stack. */ -/* Copyright (C) 2009-2018 Free Software Foundation, Inc. +/* Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Ian Lance Taylor . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/generic-morestack.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/generic-morestack.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/generic-morestack.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/generic-morestack.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Library support for -fsplit-stack. */ -/* Copyright (C) 2009-2018 Free Software Foundation, Inc. +/* Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Ian Lance Taylor . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/generic-morestack-thread.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/generic-morestack-thread.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/generic-morestack-thread.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/generic-morestack-thread.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Thread library support for -fsplit-stack. */ -/* Copyright (C) 2009-2018 Free Software Foundation, Inc. +/* Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Ian Lance Taylor . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/gthr.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/gthr.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/gthr.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/gthr.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Threads compatibility routines for libgcc2. */ /* Compile this one with gcc. */ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/gthr-posix.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/gthr-posix.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/gthr-posix.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/gthr-posix.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Threads compatibility routines for libgcc2 and libobjc. */ /* Compile this one with gcc. */ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/gthr-single.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/gthr-single.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/gthr-single.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/gthr-single.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Threads compatibility routines for libgcc2 and libobjc. */ /* Compile this one with gcc. */ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcc2.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcc2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcc2.c 2018-10-04 06:31:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcc2.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* More subroutines needed by GCC output code on some machines. */ /* Compile this one with gcc. */ -/* Copyright (C) 1989-2018 Free Software Foundation, Inc. +/* Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcc2.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcc2.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcc2.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcc2.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for libgcc2.c. */ -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcc-std.ver.in gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcc-std.ver.in --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcc-std.ver.in 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcc-std.ver.in 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2018 Free Software Foundation, Inc. +# Copyright (C) 2000-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcov-driver.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcov-driver.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcov-driver.c 2018-10-02 07:26:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcov-driver.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Routines required for instrumenting a program. */ /* Compile this one with gcc. */ -/* Copyright (C) 1989-2018 Free Software Foundation, Inc. +/* Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcov-driver-system.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcov-driver-system.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcov-driver-system.c 2018-06-07 23:07:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcov-driver-system.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Routines required for instrumenting a program. */ /* Compile this one with gcc. */ -/* Copyright (C) 1989-2018 Free Software Foundation, Inc. +/* Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcov.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcov.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcov.h 2018-10-15 11:36:17.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcov.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Header file for libgcov-*.c. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcov-interface.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcov-interface.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcov-interface.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcov-interface.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Routines required for instrumenting a program. */ /* Compile this one with gcc. */ -/* Copyright (C) 1989-2018 Free Software Foundation, Inc. +/* Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcov-merge.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcov-merge.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcov-merge.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcov-merge.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Routines required for instrumenting a program. */ /* Compile this one with gcc. */ -/* Copyright (C) 1989-2018 Free Software Foundation, Inc. +/* Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcov-profiler.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcov-profiler.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcov-profiler.c 2018-10-28 13:57:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcov-profiler.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,6 +1,6 @@ /* Routines required for instrumenting a program. */ /* Compile this one with gcc. */ -/* Copyright (C) 1989-2018 Free Software Foundation, Inc. +/* Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcov-util.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcov-util.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/libgcov-util.c 2018-10-02 07:26:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/libgcov-util.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Utility functions for reading gcda files into in-memory gcov_info structures and offline profile processing. */ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Rong Xu . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/Makefile.in gcc-snapshot-20190102/=unpacked-tar1=/libgcc/Makefile.in --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/Makefile.in 2018-10-19 09:35:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/Makefile.in 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ # Makefile.in -# Copyright (C) 2005-2018 Free Software Foundation, Inc. +# Copyright (C) 2005-2019 Free Software Foundation, Inc. # # This file is part of GCC. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/mkheader.sh gcc-snapshot-20190102/=unpacked-tar1=/libgcc/mkheader.sh --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/mkheader.sh 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/mkheader.sh 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # This file is part of GCC. # GCC is free software; you can redistribute it and/or modify diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/mkmap-flat.awk gcc-snapshot-20190102/=unpacked-tar1=/libgcc/mkmap-flat.awk --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/mkmap-flat.awk 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/mkmap-flat.awk 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ # Generate a flat list of symbols to export. -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # Contributed by Richard Henderson # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/mkmap-symver.awk gcc-snapshot-20190102/=unpacked-tar1=/libgcc/mkmap-symver.awk --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/mkmap-symver.awk 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/mkmap-symver.awk 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ # Generate an ELF symbol version map a-la Solaris and GNU ld. -# Copyright (C) 2007-2018 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 Free Software Foundation, Inc. # Contributed by Richard Henderson # # This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/offloadstuff.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/offloadstuff.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/offloadstuff.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/offloadstuff.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Specialized bits of code needed for the offloading tables. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/sync.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/sync.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/sync.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/sync.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Out-of-line libgcc versions of __sync_* builtins. */ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/udivhi3.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/udivhi3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/udivhi3.c 2018-10-19 09:35:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/udivhi3.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/udivmod.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/udivmod.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/udivmod.c 2018-10-19 09:35:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/udivmod.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/udivmodhi4.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/udivmodhi4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/udivmodhi4.c 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/udivmodhi4.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/udivmodsi4.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/udivmodsi4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/udivmodsi4.c 2018-10-19 09:35:45.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/udivmodsi4.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2018 Free Software Foundation, Inc. +/* Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-arm-common.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-arm-common.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-arm-common.inc 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-arm-common.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Common unwinding code for ARM EABI and C6X. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-c.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-c.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-c.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-c.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Supporting functions for C exception handling. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Aldy Hernandez . Shamelessly stolen from the Java front end. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-compat.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-compat.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-compat.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-compat.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Backward compatibility unwind routines. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-compat.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-compat.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-compat.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-compat.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Backward compatibility unwind routines. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-dw2.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-dw2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-dw2.c 2018-01-14 10:48:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-dw2.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 exception handling and frame unwind runtime interface routines. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-dw2-fde.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-dw2-fde.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-dw2-fde.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-dw2-fde.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines needed for unwinding stack frames for exception handling. */ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Jason Merrill . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-dw2-fde-compat.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-dw2-fde-compat.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-dw2-fde-compat.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-dw2-fde-compat.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Backward compatibility unwind routines. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-dw2-fde-dip.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-dw2-fde-dip.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-dw2-fde-dip.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-dw2-fde-dip.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2018 Free Software Foundation, Inc. +/* Copyright (C) 2001-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-dw2-fde.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-dw2-fde.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-dw2-fde.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-dw2-fde.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Subroutines needed for unwinding stack frames for exception handling. */ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Jason Merrill . This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-dw2.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-dw2.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-dw2.h 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-dw2.h 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* DWARF2 frame unwind data structure. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-generic.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-generic.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-generic.h 2018-04-23 08:51:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-generic.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Exception handling and frame unwind runtime interface routines. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind.inc gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind.inc --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind.inc 2018-04-23 08:51:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind.inc 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Exception handling and frame unwind runtime interface routines. -*- C -*- - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-pe.h gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-pe.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-pe.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-pe.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Exception handling and frame unwind runtime interface routines. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of GCC. @@ -177,6 +177,9 @@ The function returns P incremented past the value. BASE is as given by base_of_encoded_value for this encoding in the appropriate context. */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Waddress-of-packed-member" + static const unsigned char * read_encoded_value_with_base (unsigned char encoding, _Unwind_Ptr base, const unsigned char *p, _Unwind_Ptr *val) @@ -270,6 +273,8 @@ return p; } +#pragma GCC diagnostic pop + #ifndef NO_BASE_OF_ENCODED_VALUE /* Like read_encoded_value_with_base, but get the base from the context diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-seh.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-seh.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-seh.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-seh.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,5 +1,5 @@ /* Structured Exception Handling (SEH) runtime interface routines. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-sjlj.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-sjlj.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/unwind-sjlj.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/unwind-sjlj.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* SJLJ exception handling and frame unwind runtime interface routines. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/vtv_end.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/vtv_end.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/vtv_end.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/vtv_end.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/vtv_end_preinit.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/vtv_end_preinit.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/vtv_end_preinit.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/vtv_end_preinit.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/vtv_start.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/vtv_start.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/vtv_start.c 2018-01-04 13:44:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/vtv_start.c 2019-01-02 08:05:15.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgcc/vtv_start_preinit.c gcc-snapshot-20190102/=unpacked-tar1=/libgcc/vtv_start_preinit.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgcc/vtv_start_preinit.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgcc/vtv_start_preinit.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2018 Free Software Foundation, Inc. +/* Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/c99_protos.h gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/c99_protos.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/c99_protos.h 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/c99_protos.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Declarations of various C99 functions - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/caf/libcaf.h gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/caf/libcaf.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/caf/libcaf.h 2018-03-06 16:37:35.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/caf/libcaf.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Common declarations for all of GNU Fortran libcaf implementations. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran Coarray Runtime Library (libcaf). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/caf/mpi.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/caf/mpi.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/caf/mpi.c 2018-03-06 16:37:35.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/caf/mpi.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* MPI implementation of GNU Fortran Coarray Library - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran Coarray Runtime Library (libcaf). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/caf/single.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/caf/single.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/caf/single.c 2018-03-06 16:37:35.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/caf/single.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Single-image implementation of GNU Fortran Coarray Library - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran Coarray Runtime Library (libcaf). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/ChangeLog 2018-12-10 19:27:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/ChangeLog 2019-01-02 08:05:20.000000000 +0000 @@ -1,2018 +1,8 @@ -2018-12-09 Thomas Koenig - - PR fortran/88411 - * io/transfer.c (dta_transfer_init): Do not treat as an - asynchronous statement unless the statement has - ASYNCHRONOUS="YES". - (st_write_done): Likewise. - (st_read_done): Do not perform async_wait for synchronous I/O - on an async unit. - (st_read_done): Likewise. - -2018-12-02 Janne Blomqvist - - PR libfortran/88137 - * runtime/backtrace.c (show_backtrace): Use atomic load/store to - access the static lbstate pointer. - -2018-11-30 Janne Blomqvist - - PR libfortran/88137 - * runtime/backtrace.c (show_backtrace): Make lbstate a static - variable, initialize once. - -2018-11-23 Janne Blomqvist - - * runtime/error.c (MAGIC): Remove. - (recursion_key): New variable. - (recursion_check): Use thread-specific variable for recursion - check if threads are active. - (constructor_recursion_check): New function. - (destructor_recursion_check): New funcion. - -2018-11-22 Janne Blomqvist - - * acinclude.m4 (LIBGFOR_CHECK_ATOMIC_FETCH_ADD): Rename and test - presence of atomic builtins instead of sync builtins. - * configure.ac (LIBGFOR_CHECK_ATOMIC_FETCH_ADD): Call new test. - * io/io.h (inc_waiting_locked): Use __atomic_fetch_add. - (predec_waiting_locked): Use __atomic_add_fetch. - (dec_waiting_unlocked): Use __atomic_fetch_add. - * config.h.in: Regenerated. - * configure: Regenerated. - * Makefile.in: Regenerated. - -2018-11-09 Jerry DeLisle - - PR libfortran/78351 - * io/transfer.c (read_sf_internal): Delete leftover - debug code. - -2018-11-08 Jerry DeLisle - - PR libfortran/78351 - * io/transfer.c (read_sf_internal): Add support for early - comma termination of internal unit formatted reads. - -2018-10-31 Joseph Myers - - PR bootstrap/82856 - * Makefile.am: Include multilib.am. - * configure.ac: Remove AC_PREREQ. - * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate. - -2017-10-28 Thomas Koenig - - PR fortran/54613 - * Makefile.am: Add files for findloc. - * Makefile.in: Regenerated. - * libgfortran.h (gfc_array_index_type): Add. - (gfc_array_s1): Add using GFC_UINTEGER_1. - (gfc_array_s4): Likewise. - Replace unnecessary comment. - (HAVE_GFC_UINTEGER_1): Define. - (HAVE_GFC_UINTEGER_4): Define. - * m4/findloc0.m4: New file. - * m4/findloc0s.m4: New file. - * m4/findloc1.m4: New file. - * m4/findloc1s.m4: New file. - * m4/findloc2s.m4: New file. - * m4/ifindloc0.m4: New file. - * m4/ifindloc1.m4: New file. - * m4/ifindloc2.m4: New file. - * m4/iparm.m4: Use unsigned integer for characters. - * generated/findloc0_c16.c: New file. - * generated/findloc0_c4.c: New file. - * generated/findloc0_c8.c: New file. - * generated/findloc0_i1.c: New file. - * generated/findloc0_i16.c: New file. - * generated/findloc0_i2.c: New file. - * generated/findloc0_i4.c: New file. - * generated/findloc0_i8.c: New file. - * generated/findloc0_r16.c: New file. - * generated/findloc0_r4.c: New file. - * generated/findloc0_r8.c: New file. - * generated/findloc0_s1.c: New file. - * generated/findloc0_s4.c: New file. - * generated/findloc1_c16.c: New file. - * generated/findloc1_c4.c: New file. - * generated/findloc1_c8.c: New file. - * generated/findloc1_i1.c: New file. - * generated/findloc1_i16.c: New file. - * generated/findloc1_i2.c: New file. - * generated/findloc1_i4.c: New file. - * generated/findloc1_i8.c: New file. - * generated/findloc1_r16.c: New file. - * generated/findloc1_r4.c: New file. - * generated/findloc1_r8.c: New file. - * generated/findloc1_s1.c: New file. - * generated/findloc1_s4.c: New file. - * generated/findloc2_s1.c: New file. - * generated/findloc2_s4.c: New file. - * generated/maxloc0_16_s1.c: Regenerated. - * generated/maxloc0_16_s4.c: Regenerated. - * generated/maxloc0_4_s1.c: Regenerated. - * generated/maxloc0_4_s4.c: Regenerated. - * generated/maxloc0_8_s1.c: Regenerated. - * generated/maxloc0_8_s4.c: Regenerated. - * generated/maxloc1_16_s1.c: Regenerated. - * generated/maxloc1_16_s4.c: Regenerated. - * generated/maxloc1_4_s1.c: Regenerated. - * generated/maxloc1_4_s4.c: Regenerated. - * generated/maxloc1_8_s1.c: Regenerated. - * generated/maxloc1_8_s4.c: Regenerated. - * generated/maxloc2_16_s1.c: Regenerated. - * generated/maxloc2_16_s4.c: Regenerated. - * generated/maxloc2_4_s1.c: Regenerated. - * generated/maxloc2_4_s4.c: Regenerated. - * generated/maxloc2_8_s1.c: Regenerated. - * generated/maxloc2_8_s4.c: Regenerated. - * generated/maxval0_s1.c: Regenerated. - * generated/maxval0_s4.c: Regenerated. - * generated/maxval1_s1.c: Regenerated. - * generated/maxval1_s4.c: Regenerated. - * generated/minloc0_16_s1.c: Regenerated. - * generated/minloc0_16_s4.c: Regenerated. - * generated/minloc0_4_s1.c: Regenerated. - * generated/minloc0_4_s4.c: Regenerated. - * generated/minloc0_8_s1.c: Regenerated. - * generated/minloc0_8_s4.c: Regenerated. - * generated/minloc1_16_s1.c: Regenerated. - * generated/minloc1_16_s4.c: Regenerated. - * generated/minloc1_4_s1.c: Regenerated. - * generated/minloc1_4_s4.c: Regenerated. - * generated/minloc1_8_s1.c: Regenerated. - * generated/minloc1_8_s4.c: Regenerated. - * generated/minloc2_16_s1.c: Regenerated. - * generated/minloc2_16_s4.c: Regenerated. - * generated/minloc2_4_s1.c: Regenerated. - * generated/minloc2_4_s4.c: Regenerated. - * generated/minloc2_8_s1.c: Regenerated. - * generated/minloc2_8_s4.c: Regenerated. - * generated/minval0_s1.c: Regenerated. - * generated/minval0_s4.c: Regenerated. - * generated/minval1_s1.c: Regenerated. - * generated/minval1_s4.c: Regenerated. - -2018-10-06 Janne Blomqvist - - * io/unix.c (compare_file_filename): Use gfc_charlen_type instead - of int for string length. - (inquire_sequential): Likewise. - (inquire_direct): Likewise. - (inquire_formatted): Likewise. - (inquire_unformatted): Likewise. - (inquire_access): Likewise. - (inquire_read): Likewise. - (inquire_write): Likewise. - (inquire_readwrite): Likewise. - * io/unix.h (compare_file_filename): Likewise. - (inquire_sequential): Likewise. - (inquire_direct): Likewise. - (inquire_formatted): Likewise. - (inquire_unformatted): Likewise. - (inquire_read): Likewise. - (inquire_write): Likewise. - (inquire_readwrite): Likewise. - -2018-10-02 Gerald Pfeifer - - * io/close.c [!HAVE_UNLINK_OPEN_FILE]: Include . - -2018-09-21 Janne Blomqvist - - * config.h.in: Regenerated. - * configure: Regenerated. - * configure.ac: Check for writev and sys/uio.h. - * libgfortran.h: Include sys/uio.h. - (st_vprintf): Remove prototype. - (struct iovec): Define if not available. - (estr_writev): New prototype. - * runtime/backtrace.c (error_callback): Use estr_writev. - * runtime/error.c (ST_VPRINTF_SIZE): Remove. - (estr_writev): New function. - (st_vprintf): Remove. - (gf_vsnprintf): New function. - (ST_ERRBUF_SIZE): New macro. - (st_printf): Use vsnprintf. - (os_error): Use estr_writev. - (runtime_error): Use vsnprintf and estr_writev. - (runtime_error_at): Likewise. - (runtime_warning_at): Likewise. - (internal_error): Use estr_writev. - (generate_error_common): Likewise. - (generate_warning): Likewise. - (notify_std): Likewise. - * runtime/pause.c (pause_string): Likewise. - * runtime/stop.c (report_exception): Likewise. - (stop_string): Likewise. - (error_stop_string): Likewise. - -2018-09-16 Thomas Koenig - - PR fortran/37802 - * m4/matmul_internal.m4: Adjust error messages. - * generated/matmul_c10.c: Regenerated. - * generated/matmul_c16.c: Regenerated. - * generated/matmul_c4.c: Regenerated. - * generated/matmul_c8.c: Regenerated. - * generated/matmul_i1.c: Regenerated. - * generated/matmul_i16.c: Regenerated. - * generated/matmul_i2.c: Regenerated. - * generated/matmul_i4.c: Regenerated. - * generated/matmul_i8.c: Regenerated. - * generated/matmul_r10.c: Regenerated. - * generated/matmul_r16.c: Regenerated. - * generated/matmul_r4.c: Regenerated. - * generated/matmul_r8.c: Regenerated. - * generated/matmulavx128_c10.c: Regenerated. - * generated/matmulavx128_c16.c: Regenerated. - * generated/matmulavx128_c4.c: Regenerated. - * generated/matmulavx128_c8.c: Regenerated. - * generated/matmulavx128_i1.c: Regenerated. - * generated/matmulavx128_i16.c: Regenerated. - * generated/matmulavx128_i2.c: Regenerated. - * generated/matmulavx128_i4.c: Regenerated. - * generated/matmulavx128_i8.c: Regenerated. - * generated/matmulavx128_r10.c: Regenerated. - * generated/matmulavx128_r16.c: Regenerated. - * generated/matmulavx128_r4.c: Regenerated. - * generated/matmulavx128_r8.c: Regenerated. - -2018-09-14 Kyrylo Tkachov - - * io/unix.c (fallback_access): Avoid calling close on - uninitialized file descriptor. - -2018-09-12 Kwok Cheung Yeung - - * runtime/minimal.c (estr_write): Define in terms of write. - -2018-09-12 Andrew Stubbs - - * runtime/minimal.c (exit): Only work around nvptx bugs on nvptx. - -2018-09-07 Janne Blomqvist - - * runtime/environ.c (init_unsigned_integer): Remove. - -2018-09-05 Hans-Peter Nilsson - - * io/async.h: Use __gthread_mutex_t, not pthread_mutex_t. - -2018-09-01 Jerry DeLisle - - * io/io.h: Change declaration of vlist type to - gfc_full_array_i4 to eliminate warning for mismatched type. - * io/format.c ((parse_format_list): Use gfc_full_array_i4. - * io/io.h: Use gfc_full_array_i4. - -2018-08-25 Thomas Koenig - - PR libfortran/86704 - * m4/matmul_internal.m4: Correct calculation of needed buffer size - for arrays of shape (1,n). - * generated/matmul_c10.c: Regenerated - * generated/matmul_c16.c: Regenerated - * generated/matmul_c4.c: Regenerated - * generated/matmul_c8.c: Regenerated - * generated/matmul_i1.c: Regenerated - * generated/matmul_i16.c: Regenerated - * generated/matmul_i2.c: Regenerated - * generated/matmul_i4.c: Regenerated - * generated/matmul_i8.c: Regenerated - * generated/matmul_r10.c: Regenerated - * generated/matmul_r16.c: Regenerated - * generated/matmul_r4.c: Regenerated - * generated/matmul_r8.c: Regenerated - * generated/matmulavx128_c10.c: Regenerated - * generated/matmulavx128_c16.c: Regenerated - * generated/matmulavx128_c4.c: Regenerated - * generated/matmulavx128_c8.c: Regenerated - * generated/matmulavx128_i1.c: Regenerated - * generated/matmulavx128_i16.c: Regenerated - * generated/matmulavx128_i2.c: Regenerated - * generated/matmulavx128_i4.c: Regenerated - * generated/matmulavx128_i8.c: Regenerated - * generated/matmulavx128_r10.c: Regenerated - * generated/matmulavx128_r16.c: Regenerated - * generated/matmulavx128_r4.c: Regenerated - * generated/matmulavx128_r8.c: Regenerated - -2018-08-23 David Edelsohn - - * async.h (ASYNC_IO): Revert _AIX test. - -2018-08-22 Thomas Koenig - - * async.h: Set ASYNC_IO to zero if _AIX is defined. - (struct adv_cond): If ASYNC_IO is zero, the struct has no members. - (async_unit): If ASYNC_IO is zero, remove unneeded members. - -2018-08-21 Nicolas Koenig - Thomas Koenig - - PR fortran/25829 - * Makefile.am: Add async.c to gfor_io_src. - Add async.h to gfor_io_headers. - * Makefile.in: Regenerated. - * gfortran.map: Add _gfortran_st_wait_async. - * io/async.c: New file. - * io/async.h: New file. - * io/close.c: Include async.h. - (st_close): Call async_wait for an asynchronous unit. - * io/file_pos.c (st_backspace): Likewise. - (st_endfile): Likewise. - (st_rewind): Likewise. - (st_flush): Likewise. - * io/inquire.c: Add handling for asynchronous PENDING - and ID arguments. - * io/io.h (st_parameter_dt): Add async bit. - (st_parameter_wait): Correct. - (gfc_unit): Add au pointer. - (st_wait_async): Add prototype. - (transfer_array_inner): Likewise. - (st_write_done_worker): Likewise. - * io/open.c: Include async.h. - (new_unit): Initialize asynchronous unit. - * io/transfer.c (async_opt): New struct. - (wrap_scalar_transfer): New function. - (transfer_integer): Call wrap_scalar_transfer to do the work. - (transfer_real): Likewise. - (transfer_real_write): Likewise. - (transfer_character): Likewise. - (transfer_character_wide): Likewise. - (transfer_complex): Likewise. - (transfer_array_inner): New function. - (transfer_array): Call transfer_array_inner. - (transfer_derived): Call wrap_scalar_transfer. - (data_transfer_init): Check for asynchronous I/O. - Perform a wait operation on any pending asynchronous I/O - if the data transfer is synchronous. Copy PDT and enqueue - thread for data transfer. - (st_read_done_worker): New function. - (st_read_done): Enqueue transfer or call st_read_done_worker. - (st_write_done_worker): New function. - (st_write_done): Enqueue transfer or call st_read_done_worker. - (st_wait): Document as no-op for compatibility reasons. - (st_wait_async): New function. - * io/unit.c (insert_unit): Use macros LOCK, UNLOCK and TRYLOCK; - add NOTE where necessary. - (get_gfc_unit): Likewise. - (init_units): Likewise. - (close_unit_1): Likewise. Call async_close if asynchronous. - (close_unit): Use macros LOCK and UNLOCK. - (finish_last_advance_record): Likewise. - (newunit_alloc): Likewise. - * io/unix.c (find_file): Likewise. - (flush_all_units_1): Likewise. - (flush_all_units): Likewise. - * libgfortran.h (generate_error_common): Add prototype. - * runtime/error.c: Include io.h and async.h. - (generate_error_common): New function. - -2018-08-15 Rainer Orth - - * configure.ac: Check for . - * configure, config.h.in: Regenerate. - * intrinsics/random.c [HAVE_SYS_RANDOM_H]: Include . - -2018-08-13 Janne Blomqvist - - * configure.ac: Check for getentropy. - * intrinsics/random.c (getosrandom): Use getentropy if available. - * config.h.in: Regenerated. - * configure: Regenerated. - -2018-07-31 Andre Vieira - - Revert 'AsyncI/O patch committed' - 2018-07-25 Nicolas Koenig - Thomas Koenig - - PR fortran/25829 - * Makefile.am: Add async.c to gfor_io_src. - Add async.h to gfor_io_headers. - * Makefile.in: Regenerated. - * gfortran.map: Add _gfortran_st_wait_async. - * io/async.c: New file. - * io/async.h: New file. - * io/close.c: Include async.h. - (st_close): Call async_wait for an asynchronous unit. - * io/file_pos.c (st_backspace): Likewise. - (st_endfile): Likewise. - (st_rewind): Likewise. - (st_flush): Likewise. - * io/inquire.c: Add handling for asynchronous PENDING - and ID arguments. - * io/io.h (st_parameter_dt): Add async bit. - (st_parameter_wait): Correct. - (gfc_unit): Add au pointer. - (st_wait_async): Add prototype. - (transfer_array_inner): Likewise. - (st_write_done_worker): Likewise. - * io/open.c: Include async.h. - (new_unit): Initialize asynchronous unit. - * io/transfer.c (async_opt): New struct. - (wrap_scalar_transfer): New function. - (transfer_integer): Call wrap_scalar_transfer to do the work. - (transfer_real): Likewise. - (transfer_real_write): Likewise. - (transfer_character): Likewise. - (transfer_character_wide): Likewise. - (transfer_complex): Likewise. - (transfer_array_inner): New function. - (transfer_array): Call transfer_array_inner. - (transfer_derived): Call wrap_scalar_transfer. - (data_transfer_init): Check for asynchronous I/O. - Perform a wait operation on any pending asynchronous I/O - if the data transfer is synchronous. Copy PDT and enqueue - thread for data transfer. - (st_read_done_worker): New function. - (st_read_done): Enqueue transfer or call st_read_done_worker. - (st_write_done_worker): New function. - (st_write_done): Enqueue transfer or call st_read_done_worker. - (st_wait): Document as no-op for compatibility reasons. - (st_wait_async): New function. - * io/unit.c (insert_unit): Use macros LOCK, UNLOCK and TRYLOCK; - add NOTE where necessary. - (get_gfc_unit): Likewise. - (init_units): Likewise. - (close_unit_1): Likewise. Call async_close if asynchronous. - (close_unit): Use macros LOCK and UNLOCK. - (finish_last_advance_record): Likewise. - (newunit_alloc): Likewise. - * io/unix.c (find_file): Likewise. - (flush_all_units_1): Likewise. - (flush_all_units): Likewise. - * libgfortran.h (generate_error_common): Add prototype. - * runtime/error.c: Include io.h and async.h. - (generate_error_common): New function. - -2018-07-25 Nicolas Koenig - Thomas Koenig - - PR fortran/25829 - * Makefile.am: Add async.c to gfor_io_src. - Add async.h to gfor_io_headers. - * Makefile.in: Regenerated. - * gfortran.map: Add _gfortran_st_wait_async. - * io/async.c: New file. - * io/async.h: New file. - * io/close.c: Include async.h. - (st_close): Call async_wait for an asynchronous unit. - * io/file_pos.c (st_backspace): Likewise. - (st_endfile): Likewise. - (st_rewind): Likewise. - (st_flush): Likewise. - * io/inquire.c: Add handling for asynchronous PENDING - and ID arguments. - * io/io.h (st_parameter_dt): Add async bit. - (st_parameter_wait): Correct. - (gfc_unit): Add au pointer. - (st_wait_async): Add prototype. - (transfer_array_inner): Likewise. - (st_write_done_worker): Likewise. - * io/open.c: Include async.h. - (new_unit): Initialize asynchronous unit. - * io/transfer.c (async_opt): New struct. - (wrap_scalar_transfer): New function. - (transfer_integer): Call wrap_scalar_transfer to do the work. - (transfer_real): Likewise. - (transfer_real_write): Likewise. - (transfer_character): Likewise. - (transfer_character_wide): Likewise. - (transfer_complex): Likewise. - (transfer_array_inner): New function. - (transfer_array): Call transfer_array_inner. - (transfer_derived): Call wrap_scalar_transfer. - (data_transfer_init): Check for asynchronous I/O. - Perform a wait operation on any pending asynchronous I/O - if the data transfer is synchronous. Copy PDT and enqueue - thread for data transfer. - (st_read_done_worker): New function. - (st_read_done): Enqueue transfer or call st_read_done_worker. - (st_write_done_worker): New function. - (st_write_done): Enqueue transfer or call st_read_done_worker. - (st_wait): Document as no-op for compatibility reasons. - (st_wait_async): New function. - * io/unit.c (insert_unit): Use macros LOCK, UNLOCK and TRYLOCK; - add NOTE where necessary. - (get_gfc_unit): Likewise. - (init_units): Likewise. - (close_unit_1): Likewise. Call async_close if asynchronous. - (close_unit): Use macros LOCK and UNLOCK. - (finish_last_advance_record): Likewise. - (newunit_alloc): Likewise. - * io/unix.c (find_file): Likewise. - (flush_all_units_1): Likewise. - (flush_all_units): Likewise. - * libgfortran.h (generate_error_common): Add prototype. - * runtime/error.c: Include io.h and async.h. - (generate_error_common): New function. - -2018-06-09 Jerry DeLisle - - PR libgfortran/86070 - * io/write_float.def (build_float_string): Initialize *len. - -2018-06-01 Steven G. Kargl - - PR fortran/85816 - PR fortran/85975 - * libgfortran.h: Remove the GFC_DTYPE_COPY_SETRANK macro. - * intrinsics/reshape_generic.c: Directly assign rank. - * intrinsics/spread_generic.c: Ditto. - * m4/iforeach-s.m4: Ditto. - * m4/iforeach.m4: Ditto. - * m4/ifunction-s.m4: Ditto. - * m4/ifunction-s2.m4: Ditto. - * m4/ifunction.m4: Ditto. - * m4/ifunction_logical.m4: Ditto. - * m4/reshape.m4: Ditto. - * m4/spread.m4: Ditto. - * generated/all_l1.c: Regenerated from m4 files. - * generated/all_l16.c: Ditto. - * generated/all_l2.c: Ditto. - * generated/all_l4.c: Ditto. - * generated/all_l8.c: Ditto. - * generated/any_l1.c: Ditto. - * generated/any_l16.c: Ditto. - * generated/any_l2.c: Ditto. - * generated/any_l4.c: Ditto. - * generated/any_l8.c: Ditto. - * generated/count_16_l.c: Ditto. - * generated/count_1_l.c: Ditto. - * generated/count_2_l.c: Ditto. - * generated/count_4_l.c: Ditto. - * generated/count_8_l.c: Ditto. - * generated/iall_i1.c: Ditto. - * generated/iall_i16.c: Ditto. - * generated/iall_i2.c: Ditto. - * generated/iall_i4.c: Ditto. - * generated/iall_i8.c: Ditto. - * generated/iany_i1.c: Ditto. - * generated/iany_i16.c: Ditto. - * generated/iany_i2.c: Ditto. - * generated/iany_i4.c: Ditto. - * generated/iany_i8.c: Ditto. - * generated/iparity_i1.c: Ditto. - * generated/iparity_i16.c: Ditto. - * generated/iparity_i2.c: Ditto. - * generated/iparity_i4.c: Ditto. - * generated/iparity_i8.c: Ditto. - * generated/maxloc0_16_i1.c: Ditto. - * generated/maxloc0_16_i16.c: Ditto. - * generated/maxloc0_16_i2.c: Ditto. - * generated/maxloc0_16_i4.c: Ditto. - * generated/maxloc0_16_i8.c: Ditto. - * generated/maxloc0_16_r10.c: Ditto. - * generated/maxloc0_16_r16.c: Ditto. - * generated/maxloc0_16_r4.c: Ditto. - * generated/maxloc0_16_r8.c: Ditto. - * generated/maxloc0_16_s1.c: Ditto. - * generated/maxloc0_16_s4.c: Ditto. - * generated/maxloc0_4_i1.c: Ditto. - * generated/maxloc0_4_i16.c: Ditto. - * generated/maxloc0_4_i2.c: Ditto. - * generated/maxloc0_4_i4.c: Ditto. - * generated/maxloc0_4_i8.c: Ditto. - * generated/maxloc0_4_r10.c: Ditto. - * generated/maxloc0_4_r16.c: Ditto. - * generated/maxloc0_4_r4.c: Ditto. - * generated/maxloc0_4_r8.c: Ditto. - * generated/maxloc0_4_s1.c: Ditto. - * generated/maxloc0_4_s4.c: Ditto. - * generated/maxloc0_8_i1.c: Ditto. - * generated/maxloc0_8_i16.c: Ditto. - * generated/maxloc0_8_i2.c: Ditto. - * generated/maxloc0_8_i4.c: Ditto. - * generated/maxloc0_8_i8.c: Ditto. - * generated/maxloc0_8_r10.c: Ditto. - * generated/maxloc0_8_r16.c: Ditto. - * generated/maxloc0_8_r4.c: Ditto. - * generated/maxloc0_8_r8.c: Ditto. - * generated/maxloc0_8_s1.c: Ditto. - * generated/maxloc0_8_s4.c: Ditto. - * generated/maxloc1_16_i1.c: Ditto. - * generated/maxloc1_16_i16.c: Ditto. - * generated/maxloc1_16_i2.c: Ditto. - * generated/maxloc1_16_i4.c: Ditto. - * generated/maxloc1_16_i8.c: Ditto. - * generated/maxloc1_16_r10.c: Ditto. - * generated/maxloc1_16_r16.c: Ditto. - * generated/maxloc1_16_r4.c: Ditto. - * generated/maxloc1_16_r8.c: Ditto. - * generated/maxloc1_16_s1.c: Ditto. - * generated/maxloc1_16_s4.c: Ditto. - * generated/maxloc1_4_i1.c: Ditto. - * generated/maxloc1_4_i16.c: Ditto. - * generated/maxloc1_4_i2.c: Ditto. - * generated/maxloc1_4_i4.c: Ditto. - * generated/maxloc1_4_i8.c: Ditto. - * generated/maxloc1_4_r10.c: Ditto. - * generated/maxloc1_4_r16.c: Ditto. - * generated/maxloc1_4_r4.c: Ditto. - * generated/maxloc1_4_r8.c: Ditto. - * generated/maxloc1_4_s1.c: Ditto. - * generated/maxloc1_4_s4.c: Ditto. - * generated/maxloc1_8_i1.c: Ditto. - * generated/maxloc1_8_i16.c: Ditto. - * generated/maxloc1_8_i2.c: Ditto. - * generated/maxloc1_8_i4.c: Ditto. - * generated/maxloc1_8_i8.c: Ditto. - * generated/maxloc1_8_r10.c: Ditto. - * generated/maxloc1_8_r16.c: Ditto. - * generated/maxloc1_8_r4.c: Ditto. - * generated/maxloc1_8_r8.c: Ditto. - * generated/maxloc1_8_s1.c: Ditto. - * generated/maxloc1_8_s4.c: Ditto. - * generated/maxval1_s1.c: Ditto. - * generated/maxval1_s4.c: Ditto. - * generated/maxval_i1.c: Ditto. - * generated/maxval_i16.c: Ditto. - * generated/maxval_i2.c: Ditto. - * generated/maxval_i4.c: Ditto. - * generated/maxval_i8.c: Ditto. - * generated/maxval_r10.c: Ditto. - * generated/maxval_r16.c: Ditto. - * generated/maxval_r4.c: Ditto. - * generated/maxval_r8.c: Ditto. - * generated/minloc0_16_i1.c: Ditto. - * generated/minloc0_16_i16.c: Ditto. - * generated/minloc0_16_i2.c: Ditto. - * generated/minloc0_16_i4.c: Ditto. - * generated/minloc0_16_i8.c: Ditto. - * generated/minloc0_16_r10.c: Ditto. - * generated/minloc0_16_r16.c: Ditto. - * generated/minloc0_16_r4.c: Ditto. - * generated/minloc0_16_r8.c: Ditto. - * generated/minloc0_16_s1.c: Ditto. - * generated/minloc0_16_s4.c: Ditto. - * generated/minloc0_4_i1.c: Ditto. - * generated/minloc0_4_i16.c: Ditto. - * generated/minloc0_4_i2.c: Ditto. - * generated/minloc0_4_i4.c: Ditto. - * generated/minloc0_4_i8.c: Ditto. - * generated/minloc0_4_r10.c: Ditto. - * generated/minloc0_4_r16.c: Ditto. - * generated/minloc0_4_r4.c: Ditto. - * generated/minloc0_4_r8.c: Ditto. - * generated/minloc0_4_s1.c: Ditto. - * generated/minloc0_4_s4.c: Ditto. - * generated/minloc0_8_i1.c: Ditto. - * generated/minloc0_8_i16.c: Ditto. - * generated/minloc0_8_i2.c: Ditto. - * generated/minloc0_8_i4.c: Ditto. - * generated/minloc0_8_i8.c: Ditto. - * generated/minloc0_8_r10.c: Ditto. - * generated/minloc0_8_r16.c: Ditto. - * generated/minloc0_8_r4.c: Ditto. - * generated/minloc0_8_r8.c: Ditto. - * generated/minloc0_8_s1.c: Ditto. - * generated/minloc0_8_s4.c: Ditto. - * generated/minloc1_16_i1.c: Ditto. - * generated/minloc1_16_i16.c: Ditto. - * generated/minloc1_16_i2.c: Ditto. - * generated/minloc1_16_i4.c: Ditto. - * generated/minloc1_16_i8.c: Ditto. - * generated/minloc1_16_r10.c: Ditto. - * generated/minloc1_16_r16.c: Ditto. - * generated/minloc1_16_r4.c: Ditto. - * generated/minloc1_16_r8.c: Ditto. - * generated/minloc1_16_s1.c: Ditto. - * generated/minloc1_16_s4.c: Ditto. - * generated/minloc1_4_i1.c: Ditto. - * generated/minloc1_4_i16.c: Ditto. - * generated/minloc1_4_i2.c: Ditto. - * generated/minloc1_4_i4.c: Ditto. - * generated/minloc1_4_i8.c: Ditto. - * generated/minloc1_4_r10.c: Ditto. - * generated/minloc1_4_r16.c: Ditto. - * generated/minloc1_4_r4.c: Ditto. - * generated/minloc1_4_r8.c: Ditto. - * generated/minloc1_4_s1.c: Ditto. - * generated/minloc1_4_s4.c: Ditto. - * generated/minloc1_8_i1.c: Ditto. - * generated/minloc1_8_i16.c: Ditto. - * generated/minloc1_8_i2.c: Ditto. - * generated/minloc1_8_i4.c: Ditto. - * generated/minloc1_8_i8.c: Ditto. - * generated/minloc1_8_r10.c: Ditto. - * generated/minloc1_8_r16.c: Ditto. - * generated/minloc1_8_r4.c: Ditto. - * generated/minloc1_8_r8.c: Ditto. - * generated/minloc1_8_s1.c: Ditto. - * generated/minloc1_8_s4.c: Ditto. - * generated/minval1_s1.c: Ditto. - * generated/minval1_s4.c: Ditto. - * generated/minval_i1.c: Ditto. - * generated/minval_i16.c: Ditto. - * generated/minval_i2.c: Ditto. - * generated/minval_i4.c: Ditto. - * generated/minval_i8.c: Ditto. - * generated/minval_r10.c: Ditto. - * generated/minval_r16.c: Ditto. - * generated/minval_r4.c: Ditto. - * generated/minval_r8.c: Ditto. - * generated/norm2_r10.c: Ditto. - * generated/norm2_r16.c: Ditto. - * generated/norm2_r4.c: Ditto. - * generated/norm2_r8.c: Ditto. - * generated/parity_l1.c: Ditto. - * generated/parity_l16.c: Ditto. - * generated/parity_l2.c: Ditto. - * generated/parity_l4.c: Ditto. - * generated/parity_l8.c: Ditto. - * generated/product_c10.c: Ditto. - * generated/product_c16.c: Ditto. - * generated/product_c4.c: Ditto. - * generated/product_c8.c: Ditto. - * generated/product_i1.c: Ditto. - * generated/product_i16.c: Ditto. - * generated/product_i2.c: Ditto. - * generated/product_i4.c: Ditto. - * generated/product_i8.c: Ditto. - * generated/product_r10.c: Ditto. - * generated/product_r16.c: Ditto. - * generated/product_r4.c: Ditto. - * generated/product_r8.c: Ditto. - * generated/reshape_c10.c: Ditto. - * generated/reshape_c16.c: Ditto. - * generated/reshape_c4.c: Ditto. - * generated/reshape_c8.c: Ditto. - * generated/reshape_i16.c: Ditto. - * generated/reshape_i4.c: Ditto. - * generated/reshape_i8.c: Ditto. - * generated/reshape_r10.c: Ditto. - * generated/reshape_r16.c: Ditto. - * generated/reshape_r4.c: Ditto. - * generated/reshape_r8.c: Ditto. - * generated/spread_c10.c: Ditto. - * generated/spread_c16.c: Ditto. - * generated/spread_c4.c: Ditto. - * generated/spread_c8.c: Ditto. - * generated/spread_i1.c: Ditto. - * generated/spread_i16.c: Ditto. - * generated/spread_i2.c: Ditto. - * generated/spread_i4.c: Ditto. - * generated/spread_i8.c: Ditto. - * generated/spread_r10.c: Ditto. - * generated/spread_r16.c: Ditto. - * generated/spread_r4.c: Ditto. - * generated/spread_r8.c: Ditto. - * generated/sum_c10.c: Ditto. - * generated/sum_c16.c: Ditto. - * generated/sum_c4.c: Ditto. - * generated/sum_c8.c: Ditto. - * generated/sum_i1.c: Ditto. - * generated/sum_i16.c: Ditto. - * generated/sum_i2.c: Ditto. - * generated/sum_i4.c: Ditto. - * generated/sum_i8.c: Ditto. - * generated/sum_r10.c: Ditto. - * generated/sum_r16.c: Ditto. - * generated/sum_r4.c: Ditto. - * generated/sum_r8.c: Ditto. - -2018-06-01 Steven G. Kargl - - PR fortran/63570 - * libgfortran/Makefile.am: Add random_init.f90 to build. - * libgfortran/Makefile.in: Regenerated. - * libgfortran/gfortran.map: Expose symbol for _gfortran_random_init. - * libgfortran/intrinsics/random_init.f90: Implementation. - -2018-05-28 Jerry DeLisle - - PR libgfortran/85840 - * io/write.c (write_real, write_real_g0, write_complex): Use - separate local variables for the float string length. - -2018-05-26 Jerry DeLisle - - PR libgfortran/85906 - * io/write.c (write_integer): Initialise the fnode format to - FMT_NONE, used for list directed write. - (BUF_STACK_SZ): Bump default buffer size up to avoid allocs on - small stuff. - -2018-05-26 Jerry DeLisle - - PR libgfortran/85840 - * io/write.c (write_float_0): Use separate local variable for - the float string length. - -2018-05-08 Thomas Koenig - - PR fortran/54613 - * m4/iforeach-s.m4: Remove assertion that back is zero. - * m4/iforeach.m4: Likewise. Remove leading 'do' - before implementation start. - * m4/ifunction-s.m4: Remove assertion that back is zero. - * m4/ifunction.m4: Likewise. Remove for loop if HAVE_BACK_ARG - is defined. - * m4/maxloc0.m4: Reorganize loops. Split loops between >= and =, - depending if back is true. Mark the condition of having - found a value which exceeds the limit as unlikely. - * m4/minloc0.m4: Likewise. - * m4/maxloc1.m4: Likewise. - * m4/minloc1.m4: Likewise. - * m4/maxloc1s.m4: Handle back argument. - * m4/minloc1s.m4: Likewise. - * m4/maxloc2s.m4: Remove assertion that back is zero. - Remove special handling of loop start. Handle back argument. - * m4/minloc2s.m4: Likewise. - * generated/iall_i1.c: Regenerated. - * generated/iall_i16.c: Regenerated. - * generated/iall_i2.c: Regenerated. - * generated/iall_i4.c: Regenerated. - * generated/iall_i8.c: Regenerated. - * generated/iany_i1.c: Regenerated. - * generated/iany_i16.c: Regenerated. - * generated/iany_i2.c: Regenerated. - * generated/iany_i4.c: Regenerated. - * generated/iany_i8.c: Regenerated. - * generated/iparity_i1.c: Regenerated. - * generated/iparity_i16.c: Regenerated. - * generated/iparity_i2.c: Regenerated. - * generated/iparity_i4.c: Regenerated. - * generated/iparity_i8.c: Regenerated. - * generated/maxloc0_16_i1.c: Regenerated. - * generated/maxloc0_16_i16.c: Regenerated. - * generated/maxloc0_16_i2.c: Regenerated. - * generated/maxloc0_16_i4.c: Regenerated. - * generated/maxloc0_16_i8.c: Regenerated. - * generated/maxloc0_16_r10.c: Regenerated. - * generated/maxloc0_16_r16.c: Regenerated. - * generated/maxloc0_16_r4.c: Regenerated. - * generated/maxloc0_16_r8.c: Regenerated. - * generated/maxloc0_16_s1.c: Regenerated. - * generated/maxloc0_16_s4.c: Regenerated. - * generated/maxloc0_4_i1.c: Regenerated. - * generated/maxloc0_4_i16.c: Regenerated. - * generated/maxloc0_4_i2.c: Regenerated. - * generated/maxloc0_4_i4.c: Regenerated. - * generated/maxloc0_4_i8.c: Regenerated. - * generated/maxloc0_4_r10.c: Regenerated. - * generated/maxloc0_4_r16.c: Regenerated. - * generated/maxloc0_4_r4.c: Regenerated. - * generated/maxloc0_4_r8.c: Regenerated. - * generated/maxloc0_4_s1.c: Regenerated. - * generated/maxloc0_4_s4.c: Regenerated. - * generated/maxloc0_8_i1.c: Regenerated. - * generated/maxloc0_8_i16.c: Regenerated. - * generated/maxloc0_8_i2.c: Regenerated. - * generated/maxloc0_8_i4.c: Regenerated. - * generated/maxloc0_8_i8.c: Regenerated. - * generated/maxloc0_8_r10.c: Regenerated. - * generated/maxloc0_8_r16.c: Regenerated. - * generated/maxloc0_8_r4.c: Regenerated. - * generated/maxloc0_8_r8.c: Regenerated. - * generated/maxloc0_8_s1.c: Regenerated. - * generated/maxloc0_8_s4.c: Regenerated. - * generated/maxloc1_16_i1.c: Regenerated. - * generated/maxloc1_16_i16.c: Regenerated. - * generated/maxloc1_16_i2.c: Regenerated. - * generated/maxloc1_16_i4.c: Regenerated. - * generated/maxloc1_16_i8.c: Regenerated. - * generated/maxloc1_16_r10.c: Regenerated. - * generated/maxloc1_16_r16.c: Regenerated. - * generated/maxloc1_16_r4.c: Regenerated. - * generated/maxloc1_16_r8.c: Regenerated. - * generated/maxloc1_16_s1.c: Regenerated. - * generated/maxloc1_16_s4.c: Regenerated. - * generated/maxloc1_4_i1.c: Regenerated. - * generated/maxloc1_4_i16.c: Regenerated. - * generated/maxloc1_4_i2.c: Regenerated. - * generated/maxloc1_4_i4.c: Regenerated. - * generated/maxloc1_4_i8.c: Regenerated. - * generated/maxloc1_4_r10.c: Regenerated. - * generated/maxloc1_4_r16.c: Regenerated. - * generated/maxloc1_4_r4.c: Regenerated. - * generated/maxloc1_4_r8.c: Regenerated. - * generated/maxloc1_4_s1.c: Regenerated. - * generated/maxloc1_4_s4.c: Regenerated. - * generated/maxloc1_8_i1.c: Regenerated. - * generated/maxloc1_8_i16.c: Regenerated. - * generated/maxloc1_8_i2.c: Regenerated. - * generated/maxloc1_8_i4.c: Regenerated. - * generated/maxloc1_8_i8.c: Regenerated. - * generated/maxloc1_8_r10.c: Regenerated. - * generated/maxloc1_8_r16.c: Regenerated. - * generated/maxloc1_8_r4.c: Regenerated. - * generated/maxloc1_8_r8.c: Regenerated. - * generated/maxloc1_8_s1.c: Regenerated. - * generated/maxloc1_8_s4.c: Regenerated. - * generated/maxloc2_16_s1.c: Regenerated. - * generated/maxloc2_16_s4.c: Regenerated. - * generated/maxloc2_4_s1.c: Regenerated. - * generated/maxloc2_4_s4.c: Regenerated. - * generated/maxloc2_8_s1.c: Regenerated. - * generated/maxloc2_8_s4.c: Regenerated. - * generated/maxval_i1.c: Regenerated. - * generated/maxval_i16.c: Regenerated. - * generated/maxval_i2.c: Regenerated. - * generated/maxval_i4.c: Regenerated. - * generated/maxval_i8.c: Regenerated. - * generated/maxval_r10.c: Regenerated. - * generated/maxval_r16.c: Regenerated. - * generated/maxval_r4.c: Regenerated. - * generated/maxval_r8.c: Regenerated. - * generated/minloc0_16_i1.c: Regenerated. - * generated/minloc0_16_i16.c: Regenerated. - * generated/minloc0_16_i2.c: Regenerated. - * generated/minloc0_16_i4.c: Regenerated. - * generated/minloc0_16_i8.c: Regenerated. - * generated/minloc0_16_r10.c: Regenerated. - * generated/minloc0_16_r16.c: Regenerated. - * generated/minloc0_16_r4.c: Regenerated. - * generated/minloc0_16_r8.c: Regenerated. - * generated/minloc0_16_s1.c: Regenerated. - * generated/minloc0_16_s4.c: Regenerated. - * generated/minloc0_4_i1.c: Regenerated. - * generated/minloc0_4_i16.c: Regenerated. - * generated/minloc0_4_i2.c: Regenerated. - * generated/minloc0_4_i4.c: Regenerated. - * generated/minloc0_4_i8.c: Regenerated. - * generated/minloc0_4_r10.c: Regenerated. - * generated/minloc0_4_r16.c: Regenerated. - * generated/minloc0_4_r4.c: Regenerated. - * generated/minloc0_4_r8.c: Regenerated. - * generated/minloc0_4_s1.c: Regenerated. - * generated/minloc0_4_s4.c: Regenerated. - * generated/minloc0_8_i1.c: Regenerated. - * generated/minloc0_8_i16.c: Regenerated. - * generated/minloc0_8_i2.c: Regenerated. - * generated/minloc0_8_i4.c: Regenerated. - * generated/minloc0_8_i8.c: Regenerated. - * generated/minloc0_8_r10.c: Regenerated. - * generated/minloc0_8_r16.c: Regenerated. - * generated/minloc0_8_r4.c: Regenerated. - * generated/minloc0_8_r8.c: Regenerated. - * generated/minloc0_8_s1.c: Regenerated. - * generated/minloc0_8_s4.c: Regenerated. - * generated/minloc1_16_i1.c: Regenerated. - * generated/minloc1_16_i16.c: Regenerated. - * generated/minloc1_16_i2.c: Regenerated. - * generated/minloc1_16_i4.c: Regenerated. - * generated/minloc1_16_i8.c: Regenerated. - * generated/minloc1_16_r10.c: Regenerated. - * generated/minloc1_16_r16.c: Regenerated. - * generated/minloc1_16_r4.c: Regenerated. - * generated/minloc1_16_r8.c: Regenerated. - * generated/minloc1_16_s1.c: Regenerated. - * generated/minloc1_16_s4.c: Regenerated. - * generated/minloc1_4_i1.c: Regenerated. - * generated/minloc1_4_i16.c: Regenerated. - * generated/minloc1_4_i2.c: Regenerated. - * generated/minloc1_4_i4.c: Regenerated. - * generated/minloc1_4_i8.c: Regenerated. - * generated/minloc1_4_r10.c: Regenerated. - * generated/minloc1_4_r16.c: Regenerated. - * generated/minloc1_4_r4.c: Regenerated. - * generated/minloc1_4_r8.c: Regenerated. - * generated/minloc1_4_s1.c: Regenerated. - * generated/minloc1_4_s4.c: Regenerated. - * generated/minloc1_8_i1.c: Regenerated. - * generated/minloc1_8_i16.c: Regenerated. - * generated/minloc1_8_i2.c: Regenerated. - * generated/minloc1_8_i4.c: Regenerated. - * generated/minloc1_8_i8.c: Regenerated. - * generated/minloc1_8_r10.c: Regenerated. - * generated/minloc1_8_r16.c: Regenerated. - * generated/minloc1_8_r4.c: Regenerated. - * generated/minloc1_8_r8.c: Regenerated. - * generated/minloc1_8_s1.c: Regenerated. - * generated/minloc1_8_s4.c: Regenerated. - * generated/minloc2_16_s1.c: Regenerated. - * generated/minloc2_16_s4.c: Regenerated. - * generated/minloc2_4_s1.c: Regenerated. - * generated/minloc2_4_s4.c: Regenerated. - * generated/minloc2_8_s1.c: Regenerated. - * generated/minloc2_8_s4.c: Regenerated. - * generated/minval_i1.c: Regenerated. - * generated/minval_i16.c: Regenerated. - * generated/minval_i2.c: Regenerated. - * generated/minval_i4.c: Regenerated. - * generated/minval_i8.c: Regenerated. - * generated/minval_r10.c: Regenerated. - * generated/minval_r16.c: Regenerated. - * generated/minval_r4.c: Regenerated. - * generated/minval_r8.c: Regenerated. - * generated/norm2_r10.c: Regenerated. - * generated/norm2_r16.c: Regenerated. - * generated/norm2_r4.c: Regenerated. - * generated/norm2_r8.c: Regenerated. - * generated/parity_l1.c: Regenerated. - * generated/parity_l16.c: Regenerated. - * generated/parity_l2.c: Regenerated. - * generated/parity_l4.c: Regenerated. - * generated/parity_l8.c: Regenerated. - * generated/product_c10.c: Regenerated. - * generated/product_c16.c: Regenerated. - * generated/product_c4.c: Regenerated. - * generated/product_c8.c: Regenerated. - * generated/product_i1.c: Regenerated. - * generated/product_i16.c: Regenerated. - * generated/product_i2.c: Regenerated. - * generated/product_i4.c: Regenerated. - * generated/product_i8.c: Regenerated. - * generated/product_r10.c: Regenerated. - * generated/product_r16.c: Regenerated. - * generated/product_r4.c: Regenerated. - * generated/product_r8.c: Regenerated. - * generated/sum_c10.c: Regenerated. - * generated/sum_c16.c: Regenerated. - * generated/sum_c4.c: Regenerated. - * generated/sum_c8.c: Regenerated. - * generated/sum_i1.c: Regenerated. - * generated/sum_i16.c: Regenerated. - * generated/sum_i2.c: Regenerated. - * generated/sum_i4.c: Regenerated. - * generated/sum_i8.c: Regenerated. - * generated/sum_r10.c: Regenerated. - * generated/sum_r16.c: Regenerated. - * generated/sum_r4.c: Regenerated. - * generated/sum_r8.c: Regenerated. - -2018-04-24 H.J. Lu - - * configure: Regenerated. - -2018-04-19 Thomas Schwinge - - PR libfortran/85166 - PR libgomp/85463 - * runtime/minimal.c (stop_numeric): Reimplement. - (stop_string, error_stop_string, error_stop_numeric): New - functions. - -2018-04-19 Jakub Jelinek - - * configure: Regenerated. - -2018-04-18 David Malcolm - - PR jit/85384 - * configure: Regenerate. - -2018-04-06 Thomas Koenig - - PR libfortran/85253 - * m4/matmul_internal.m4: If ycount == 1, add one more row to - the internal buffer. - * generated/matmul_c10.c: Regenerated. - * generated/matmul_c16.c: Regenerated. - * generated/matmul_c4.c: Regenerated. - * generated/matmul_c8.c: Regenerated. - * generated/matmul_i1.c: Regenerated. - * generated/matmul_i16.c: Regenerated. - * generated/matmul_i2.c: Regenerated. - * generated/matmul_i4.c: Regenerated. - * generated/matmul_i8.c: Regenerated. - * generated/matmul_r10.c: Regenerated. - * generated/matmul_r16.c: Regenerated. - * generated/matmul_r4.c: Regenerated. - * generated/matmul_r8.c: Regenerated. - * generated/matmulavx128_c10.c: Regenerated. - * generated/matmulavx128_c16.c: Regenerated. - * generated/matmulavx128_c4.c: Regenerated. - * generated/matmulavx128_c8.c: Regenerated. - * generated/matmulavx128_i1.c: Regenerated. - * generated/matmulavx128_i16.c: Regenerated. - * generated/matmulavx128_i2.c: Regenerated. - * generated/matmulavx128_i4.c: Regenerated. - * generated/matmulavx128_i8.c: Regenerated. - * generated/matmulavx128_r10.c: Regenerated. - * generated/matmulavx128_r16.c: Regenerated. - * generated/matmulavx128_r4.c: Regenerated. - * generated/matmulavx128_r8.c: Regenerated. - -2018-04-04 Thomas Koenig - - PR libfortran/85166 - * runtime/minimal.c (stop_numeric): Add new function in order to - implement numeric stop on minimal targets. - -2018-03-28 Jakub Jelinek - - * io/io.h (IOPARM_DT_DEFAULT_EXP): Rename to ... - (IOPARM_DT_DEC_EXT): ... this. - * io/list_read.c (parse_real): Adjust for IOPARM_DT_DEFAULT_EXP - renaming to IOPARM_DT_DEC_EXT. - (read_real): Likewise. - * io/read.c (read_f): Likewise. - -2018-03-15 Jakub Jelinek - - PR libgfortran/84880 - * intrinsics/kill.c (kill): Rename to... - (PREFIX (kill)): ... this. Use export_proto_np instead of export_proto. - -2018-03-13 Steven G. Kargl - - * libgfortran/gfortran.map: Remove _gfortran_kill_i4, - _gfortran_kill_i4_sub, _gfortran_kill_i8, and _gfortran_kill_i8_sub. - Add _gfortran_kill and _gfortran_kill_sub. - * libgfortran/intrinsics/kill.c: Eliminate _gfortran_kill_i4, - _gfortran_kill_i4_sub, _gfortran_kill_i8, and _gfortran_kill_i8_sub. - Add _gfortran_kill and _gfortran_kill_sub. - -2018-02-23 Janne Blomqvist - - PR fortran/84519 - * caf/libcaf.h (_gfortran_caf_stop_numeric): Add bool argument. - (_gfortran_caf_stop_str): Likewise. - (_gfortran_caf_error_stop_str): Likewise. - (_gfortran_caf_error_stop): Likewise. - * caf/mpi.c (_gfortran_caf_error_stop_str): Handle new argument. - (_gfortran_caf_error_stop): Likewise. - * caf/single.c (_gfortran_caf_stop_numeric): Likewise. - (_gfortran_caf_stop_str): Likewise. - (_gfortran_caf_error_stop_str): Likewise. - (_gfortran_caf_error_stop): Likewise. - (_gfortran_caf_lock): Likewise. - (_gfortran_caf_unlock): Likewise. - * libgfortran.h (stop_string): Add bool argument. - * runtime/pause.c (do_pause): Add false argument. - * runtime/stop.c (stop_numeric): Handle new argument. - (stop_string): Likewise. - (error_stop_string): Likewise. - (error_stop_numeric): Likewise. - -2018-02-22 Janne Blomqvist - - PR 78534 - PR 84509 - * runtime/pause.c (pause_numeric): Modify to take GFC_INTEGER_8 - argument. - (pause_string): Modify to take size_t character length argument. - -2018-02-22 Janne Blomqvist - - * libgfortran.h (stop_string): Use size_t for character length. - * runtime/stop.c (stop_string): Likewise. - (error_stop_string): Likewise. - (stop_numeric): Use int for exit code. - (error_stop_numeric): Likewise. - * caf/libcaf.h: Remove stdint.h include. - (_gfortran_caf_register): Use size_t for character length. - (_gfortran_caf_deregister): Likewise. - (_gfortran_caf_sync_all): Likewise. - (_gfortran_caf_sync_memory): Likewise. - (_gfortran_caf_sync_images): Likewise. - (_gfortran_caf_stop_numeric): Use int for exit code. - (_gfortran_caf_stop_str): Use size_t for character length. - (_gfortran_caf_error_stop_str): Likewise. - (_gfortran_caf_error_stop): Use int for exit code. - (_gfortran_caf_co_broadcast): Use size_t for character length. - (_gfortran_caf_co_sum): Likewise. - (_gfortran_caf_co_min): Likewise. - (_gfortran_caf_co_max): Likewise. - (_gfortran_caf_co_reduce): Likewise. - (_gfortran_caf_lock): Likewise. - (_gfortran_caf_unlock): Likewise. - (_gfortran_caf_event_post): Likewise. - (_gfortran_caf_event_wait): Likewise. - * caf/mpi.c (_gfortran_caf_register): Update implementation to - match prototype. - (_gfortran_caf_deregister): Likewise. - (_gfortran_caf_sync_all): Likewise. - (_gfortran_caf_sync_images): Likewise. - (_gfortran_caf_error_stop_str): Likewise. - (_gfortran_caf_error_stop): Likewise. - * caf/single.c (caf_internal_error): Likewise. - (_gfortran_caf_register): Likewise. - (_gfortran_caf_deregister): Likewise. - (_gfortran_caf_sync_all): Likewise. - (_gfortran_caf_sync_memory): Likewise. - (_gfortran_caf_sync_images): Likewise. - (_gfortran_caf_stop_numeric): Likewise. - (_gfortran_caf_stop_str): Likewise. - (_gfortran_caf_error_stop_str): Likewise. - (_gfortran_caf_error_stop): Likewise. - (_gfortran_caf_co_broadcast): Likewise. - (_gfortran_caf_co_sum): Likewise. - (_gfortran_caf_co_min): Likewise. - (_gfortran_caf_co_max): Likewise. - (_gfortran_caf_co_reduce): Likewise. - (_gfortran_caf_event_post): Likewise. - (_gfortran_caf_event_wait): Likewise. - (_gfortran_caf_lock): Likewise. - (_gfortran_caf_unlock): Likewise. - -2018-02-19 Andre Vehreschild - - * caf/libcaf.h: Add type parameters to the caf_*_by_ref prototypes. - * caf/single.c (get_for_ref): Simplifications and now respecting - the type argument. - (_gfortran_caf_get_by_ref): Added source type handing to get_for_ref(). - (send_by_ref): Simplifications and respecting the dst_type now. - (_gfortran_caf_send_by_ref): Added destination type hand over to - send_by_ref(). - (_gfortran_caf_sendget_by_ref): Added general support and fixed stack - corruption. The function is now really usable. - -2018-02-14 Igor Tsimbalist - - PR target/84148 - * configure: Regenerate. - -2018-02-18 Jerry DeLisle - - PR libgfortran/84412 - * io/transfer.c (finalize_transfer): After completng an internal unit - I/O operation, clear internal_unit_kind. - -2018-02-12 Thomas Koenig - - * libgfortran.h (GFC_ARRAY_DESCRIPTOR): Remove dimension - of descriptor to use vaiable members for dim. - Change usage of GFC_ARRAY_DESCRIPTOR accordingly. - (GFC_FILL_ARRAY_DESCRIPTOR): New macro. - (gfc_full_array_i4): New type. - * intrinsics/date_and_time.c (secnds): Use sizeof - (gfc_array_i4) + sizeof (descriptor_dimension) for memory - allocation. - * intrinsics/reshape_generic.c: Use GFC_FULL_ARRAY_DESCRIPTOR. - * io/format.c: Use sizeof (gfc_array_i4) + sizeof - (descriptor_dimension) for memoy allocation. - * io/list_read.c (list_formatted_read_scalar): Use - gfc_full_array_i4 for variable. - (nml_read_obj): Likewise. - * io/write.c (list_formatted_write_scalar): Likewise. - (nml_write_obj): Likewise. - * m4/reshape.m4: Use GFC_FULL_ARRAY_DESCRIPTOR. - * generated/reshape_c10.c: Regenerated. - * generated/reshape_c16.c: Regenerated. - * generated/reshape_c4.c: Regenerated. - * generated/reshape_c8.c: Regenerated. - * generated/reshape_i16.c: Regenerated. - * generated/reshape_i4.c: Regenerated. - * generated/reshape_i8.c: Regenerated. - * generated/reshape_r10.c: Regenerated. - * generated/reshape_r16.c: Regenerated. - * generated/reshape_r4.c: Regenerated. - * generated/reshape_r8.c: Regenerated. - -2018-01-31 Janne Blomqvist - - * generated/cshift1_16.c (cshift1): Regenerated. - * generated/cshift1_4.c (cshift1): Regenerated. - * generated/cshift1_8.c (cshift1): Regenerated. - * generated/eoshift1_16.c (eoshift1): Regenerated. - * generated/eoshift1_4.c (eoshift1): Regenerated. - * generated/eoshift1_8.c (eoshift1): Regenerated. - * generated/eoshift3_16.c (eoshift3): Regenerated. - * generated/eoshift3_4.c (eoshift3): Regenerated. - * generated/eoshift3_8.c (eoshift3): Regenerated. - * generated/in_pack_c10.c (internal_pack_c10): Regenerated. - * generated/in_pack_c16.c (internal_pack_c16): Regenerated. - * generated/in_pack_c4.c (internal_pack_c4): Regenerated. - * generated/in_pack_c8.c (internal_pack_c8): Regenerated. - * generated/in_pack_i1.c (internal_pack_1): Regenerated. - * generated/in_pack_i16.c (internal_pack_16): Regenerated. - * generated/in_pack_i2.c (internal_pack_2): Regenerated. - * generated/in_pack_i4.c (internal_pack_4): Regenerated. - * generated/in_pack_i8.c (internal_pack_8): Regenerated. - * generated/in_pack_r10.c (internal_pack_r10): Regenerated. - * generated/in_pack_r16.c (internal_pack_r16): Regenerated. - * generated/in_pack_r4.c (internal_pack_r4): Regenerated. - * generated/in_pack_r8.c (internal_pack_r8): Regenerated. - * generated/in_unpack_c10.c (internal_unpack_c10): Regenerated. - * generated/in_unpack_c16.c (internal_unpack_c16): Regenerated. - * generated/in_unpack_c4.c (internal_unpack_c4): Regenerated. - * generated/in_unpack_c8.c (internal_unpack_c8): Regenerated. - * generated/in_unpack_i1.c (internal_unpack_1): Regenerated. - * generated/in_unpack_i16.c (internal_unpack_16): Regenerated. - * generated/in_unpack_i2.c (internal_unpack_2): Regenerated. - * generated/in_unpack_i4.c (internal_unpack_4): Regenerated. - * generated/in_unpack_i8.c (internal_unpack_8): Regenerated. - * generated/in_unpack_r10.c (internal_unpack_r10): Regenerated. - * generated/in_unpack_r16.c (internal_unpack_r16): Regenerated. - * generated/in_unpack_r4.c (internal_unpack_r4): Regenerated. - * generated/in_unpack_r8.c (internal_unpack_r8): Regenerated. - * generated/reshape_c10.c (reshape_c10): Regenerated. - * generated/reshape_c16.c (reshape_c16): Regenerated. - * generated/reshape_c4.c (reshape_c4): Regenerated. - * generated/reshape_c8.c (reshape_c8): Regenerated. - * generated/reshape_i16.c (reshape_16): Regenerated. - * generated/reshape_i4.c (reshape_4): Regenerated. - * generated/reshape_i8.c (reshape_8): Regenerated. - * generated/reshape_r10.c (reshape_r10): Regenerated. - * generated/reshape_r16.c (reshape_r16): Regenerated. - * generated/reshape_r4.c (reshape_r4): Regenerated. - * generated/reshape_r8.c (reshape_r8): Regenerated. - * generated/shape_i1.c (shape_1): Regenerated. - * generated/shape_i16.c (shape_16): Regenerated. - * generated/shape_i2.c (shape_2): Regenerated. - * generated/shape_i4.c (shape_4): Regenerated. - * generated/shape_i8.c (shape_8): Regenerated. - * generated/spread_c10.c (spread_scalar_c10): Regenerated. - * generated/spread_c16.c (spread_scalar_c16): Regenerated. - * generated/spread_c4.c (spread_scalar_c4): Regenerated. - * generated/spread_c8.c (spread_scalar_c8): Regenerated. - * generated/spread_i1.c (spread_scalar_i1): Regenerated. - * generated/spread_i16.c (spread_scalar_i16): Regenerated. - * generated/spread_i2.c (spread_scalar_i2): Regenerated. - * generated/spread_i4.c (spread_scalar_i4): Regenerated. - * generated/spread_i8.c (spread_scalar_i8): Regenerated. - * generated/spread_r10.c (spread_scalar_r10): Regenerated. - * generated/spread_r16.c (spread_scalar_r16): Regenerated. - * generated/spread_r4.c (spread_scalar_r4): Regenerated. - * generated/spread_r8.c (spread_scalar_r8): Regenerated. - * intrinsics/random.c (jump): Use size_t for array index in loop. - (getosrandom): Likewise. - (arandom_r4): Make n an index_type. - (arandom_r8): Likewise. - (arandom_r10): Likewise. - (arandom_r16): Likewise. - (scramble_seed): Use size_t for array index in loop. - * m4/cshift1.m4: Make i an index_type. - * m4/eoshift1.m4: Likewise. - * m4/eoshift3.m4: Likewise. - * m4/in_pack.m4: Make n an index_type. - * m4/in_unpack.m4: Likewise. - * m4/reshape.m4: Make n and dim index_type's. - * m4/shape.m4: Make n an index_type. - * m4/spread.m4: Likewise, use index_type argument rather than - copying to int. - * runtime/bounds.c (bounds_ifunction_return): Make n an - index_type. - * runtime/in_pack_generic.c (internal_pack): Likewise. - * runtime/in_unpack_generic.c (internal_unpack): Make n and size - index_type's. - -2018-01-30 Thomas Koenig - - PR fortran/37577 - * libgfortran.h: Remove GFC_DTYPE_DERIVED_1, GFC_DTYPE_DERIVED_2, - GFC_DTYPE_DERIVED_4, GFC_DTYPE_DERIVED_8 and GFC_DTYPE_DERIVED_16. - * m4/cshift1.m4: Remove GFC_DTYPE_DERIVED_1. - * generated/cshift1_16.c: Regenerated. - * generated/cshift1_4.c: Regenerated. - * generated/cshift1_8.c: Regenerated. - * intrinsics/cshift0.c: Remove GFC_DTYPE_DERIVED_1. - * intrinsics/pack_generic.c (pack): Move handling of other types - into separate switch statement. - * intrinsics/spread_generic.c (spread): Likewise. - (spread_scalar): Likewise. - * intrinsics/unpack_generic.c (unpack1): Likewise. - (unpack0): Likewise. - * runtime/in_pack_generic.c (internal_pack): Likewise. - * runtime/in_unpack_generic.c (internal_unpack): Likewise. - -2018-01-25 Paul Thomas - - PR fortran/37577 - * caf/single.c (_gfortran_caf_failed_images): Access the 'type' - and 'elem_len' fields of the dtype instead of the shifts. - (_gfortran_caf_stopped_images): Likewise. - * intrinsics/associated.c (associated): Compare the 'type' and - 'elem_len' fields instead of the dtype. - * caf/date_and_time.c : Access the dtype fields rather using - shifts and masks. - * io/transfer.c (transfer_array ): Comment on item count. - (set_nml_var,st_set_nml_var): Change dtype type and use fields. - (st_set_nml_dtio_var): Likewise. - * libgfortran.h : Change definition of GFC_ARRAY_DESCRIPTOR and - add a typedef for the dtype_type. Change the GFC_DTYPE_* macros - to access the dtype fields. - -2018-01-15 Thomas Koenig - - PR fortran/54613 - * m4/iparm.m4: Add back_arg macro if in minloc or maxloc. - * m4/iforeach-s.m4: Add optional argument back with back_arg - macro. Improve m4 quoting. If HAVE_BACK_ARG is defined, assert - that back is non-true. - * m4/iforeach.m4: Likewise. - * m4/ifunction-s.m4: Likewise. - * m4/ifunction.m4: Likewise. - * m4/maxloc0.m4: Include assert.h - * m4/minloc0.m4: Likewise. - * m4/maxloc0s.m4: #define HAVE_BACK_ARG. - * m4/minloc0s.m4: Likewise. - * m4/maxloc1s.m4: Likewise. - * m4/minloc1s.m4: Likewise. - * m4/maxloc1.m4: Include assert.h, #define HAVE_BACK_ARG. - * m4/minloc1.m4: Likewise. - * m4/maxloc2s.m4: Add assert.h, add back_arg, assert that - back is non-true. - * m4/minloc2s.m4: Likewise. - * generated/iall_i1.c: Regenerated. - * generated/iall_i16.c: Regenerated. - * generated/iall_i2.c: Regenerated. - * generated/iall_i4.c: Regenerated. - * generated/iall_i8.c: Regenerated. - * generated/iany_i1.c: Regenerated. - * generated/iany_i16.c: Regenerated. - * generated/iany_i2.c: Regenerated. - * generated/iany_i4.c: Regenerated. - * generated/iany_i8.c: Regenerated. - * generated/iparity_i1.c: Regenerated. - * generated/iparity_i16.c: Regenerated. - * generated/iparity_i2.c: Regenerated. - * generated/iparity_i4.c: Regenerated. - * generated/iparity_i8.c: Regenerated. - * generated/maxloc0_16_i1.c: Regenerated. - * generated/maxloc0_16_i16.c: Regenerated. - * generated/maxloc0_16_i2.c: Regenerated. - * generated/maxloc0_16_i4.c: Regenerated. - * generated/maxloc0_16_i8.c: Regenerated. - * generated/maxloc0_16_r10.c: Regenerated. - * generated/maxloc0_16_r16.c: Regenerated. - * generated/maxloc0_16_r4.c: Regenerated. - * generated/maxloc0_16_r8.c: Regenerated. - * generated/maxloc0_16_s1.c: Regenerated. - * generated/maxloc0_16_s4.c: Regenerated. - * generated/maxloc0_4_i1.c: Regenerated. - * generated/maxloc0_4_i16.c: Regenerated. - * generated/maxloc0_4_i2.c: Regenerated. - * generated/maxloc0_4_i4.c: Regenerated. - * generated/maxloc0_4_i8.c: Regenerated. - * generated/maxloc0_4_r10.c: Regenerated. - * generated/maxloc0_4_r16.c: Regenerated. - * generated/maxloc0_4_r4.c: Regenerated. - * generated/maxloc0_4_r8.c: Regenerated. - * generated/maxloc0_4_s1.c: Regenerated. - * generated/maxloc0_4_s4.c: Regenerated. - * generated/maxloc0_8_i1.c: Regenerated. - * generated/maxloc0_8_i16.c: Regenerated. - * generated/maxloc0_8_i2.c: Regenerated. - * generated/maxloc0_8_i4.c: Regenerated. - * generated/maxloc0_8_i8.c: Regenerated. - * generated/maxloc0_8_r10.c: Regenerated. - * generated/maxloc0_8_r16.c: Regenerated. - * generated/maxloc0_8_r4.c: Regenerated. - * generated/maxloc0_8_r8.c: Regenerated. - * generated/maxloc0_8_s1.c: Regenerated. - * generated/maxloc0_8_s4.c: Regenerated. - * generated/maxloc1_16_i1.c: Regenerated. - * generated/maxloc1_16_i16.c: Regenerated. - * generated/maxloc1_16_i2.c: Regenerated. - * generated/maxloc1_16_i4.c: Regenerated. - * generated/maxloc1_16_i8.c: Regenerated. - * generated/maxloc1_16_r10.c: Regenerated. - * generated/maxloc1_16_r16.c: Regenerated. - * generated/maxloc1_16_r4.c: Regenerated. - * generated/maxloc1_16_r8.c: Regenerated. - * generated/maxloc1_16_s1.c: Regenerated. - * generated/maxloc1_16_s4.c: Regenerated. - * generated/maxloc1_4_i1.c: Regenerated. - * generated/maxloc1_4_i16.c: Regenerated. - * generated/maxloc1_4_i2.c: Regenerated. - * generated/maxloc1_4_i4.c: Regenerated. - * generated/maxloc1_4_i8.c: Regenerated. - * generated/maxloc1_4_r10.c: Regenerated. - * generated/maxloc1_4_r16.c: Regenerated. - * generated/maxloc1_4_r4.c: Regenerated. - * generated/maxloc1_4_r8.c: Regenerated. - * generated/maxloc1_4_s1.c: Regenerated. - * generated/maxloc1_4_s4.c: Regenerated. - * generated/maxloc1_8_i1.c: Regenerated. - * generated/maxloc1_8_i16.c: Regenerated. - * generated/maxloc1_8_i2.c: Regenerated. - * generated/maxloc1_8_i4.c: Regenerated. - * generated/maxloc1_8_i8.c: Regenerated. - * generated/maxloc1_8_r10.c: Regenerated. - * generated/maxloc1_8_r16.c: Regenerated. - * generated/maxloc1_8_r4.c: Regenerated. - * generated/maxloc1_8_r8.c: Regenerated. - * generated/maxloc1_8_s1.c: Regenerated. - * generated/maxloc1_8_s4.c: Regenerated. - * generated/maxval_i1.c: Regenerated. - * generated/maxval_i16.c: Regenerated. - * generated/maxval_i2.c: Regenerated. - * generated/maxval_i4.c: Regenerated. - * generated/maxval_i8.c: Regenerated. - * generated/maxval_r10.c: Regenerated. - * generated/maxval_r16.c: Regenerated. - * generated/maxval_r4.c: Regenerated. - * generated/maxval_r8.c: Regenerated. - * generated/minloc0_16_i1.c: Regenerated. - * generated/minloc0_16_i16.c: Regenerated. - * generated/minloc0_16_i2.c: Regenerated. - * generated/minloc0_16_i4.c: Regenerated. - * generated/minloc0_16_i8.c: Regenerated. - * generated/minloc0_16_r10.c: Regenerated. - * generated/minloc0_16_r16.c: Regenerated. - * generated/minloc0_16_r4.c: Regenerated. - * generated/minloc0_16_r8.c: Regenerated. - * generated/minloc0_16_s1.c: Regenerated. - * generated/minloc0_16_s4.c: Regenerated. - * generated/minloc0_4_i1.c: Regenerated. - * generated/minloc0_4_i16.c: Regenerated. - * generated/minloc0_4_i2.c: Regenerated. - * generated/minloc0_4_i4.c: Regenerated. - * generated/minloc0_4_i8.c: Regenerated. - * generated/minloc0_4_r10.c: Regenerated. - * generated/minloc0_4_r16.c: Regenerated. - * generated/minloc0_4_r4.c: Regenerated. - * generated/minloc0_4_r8.c: Regenerated. - * generated/minloc0_4_s1.c: Regenerated. - * generated/minloc0_4_s4.c: Regenerated. - * generated/minloc0_8_i1.c: Regenerated. - * generated/minloc0_8_i16.c: Regenerated. - * generated/minloc0_8_i2.c: Regenerated. - * generated/minloc0_8_i4.c: Regenerated. - * generated/minloc0_8_i8.c: Regenerated. - * generated/minloc0_8_r10.c: Regenerated. - * generated/minloc0_8_r16.c: Regenerated. - * generated/minloc0_8_r4.c: Regenerated. - * generated/minloc0_8_r8.c: Regenerated. - * generated/minloc0_8_s1.c: Regenerated. - * generated/minloc0_8_s4.c: Regenerated. - * generated/minloc1_16_i1.c: Regenerated. - * generated/minloc1_16_i16.c: Regenerated. - * generated/minloc1_16_i2.c: Regenerated. - * generated/minloc1_16_i4.c: Regenerated. - * generated/minloc1_16_i8.c: Regenerated. - * generated/minloc1_16_r10.c: Regenerated. - * generated/minloc1_16_r16.c: Regenerated. - * generated/minloc1_16_r4.c: Regenerated. - * generated/minloc1_16_r8.c: Regenerated. - * generated/minloc1_16_s1.c: Regenerated. - * generated/minloc1_16_s4.c: Regenerated. - * generated/minloc1_4_i1.c: Regenerated. - * generated/minloc1_4_i16.c: Regenerated. - * generated/minloc1_4_i2.c: Regenerated. - * generated/minloc1_4_i4.c: Regenerated. - * generated/minloc1_4_i8.c: Regenerated. - * generated/minloc1_4_r10.c: Regenerated. - * generated/minloc1_4_r16.c: Regenerated. - * generated/minloc1_4_r4.c: Regenerated. - * generated/minloc1_4_r8.c: Regenerated. - * generated/minloc1_4_s1.c: Regenerated. - * generated/minloc1_4_s4.c: Regenerated. - * generated/minloc1_8_i1.c: Regenerated. - * generated/minloc1_8_i16.c: Regenerated. - * generated/minloc1_8_i2.c: Regenerated. - * generated/minloc1_8_i4.c: Regenerated. - * generated/minloc1_8_i8.c: Regenerated. - * generated/minloc1_8_r10.c: Regenerated. - * generated/minloc1_8_r16.c: Regenerated. - * generated/minloc1_8_r4.c: Regenerated. - * generated/minloc1_8_r8.c: Regenerated. - * generated/minloc1_8_s1.c: Regenerated. - * generated/minloc1_8_s4.c: Regenerated. - * generated/minval_i1.c: Regenerated. - * generated/minval_i16.c: Regenerated. - * generated/minval_i2.c: Regenerated. - * generated/minval_i4.c: Regenerated. - * generated/minval_i8.c: Regenerated. - * generated/minval_r10.c: Regenerated. - * generated/minval_r16.c: Regenerated. - * generated/minval_r4.c: Regenerated. - * generated/minval_r8.c: Regenerated. - * generated/norm2_r10.c: Regenerated. - * generated/norm2_r16.c: Regenerated. - * generated/norm2_r4.c: Regenerated. - * generated/norm2_r8.c: Regenerated. - * generated/parity_l1.c: Regenerated. - * generated/parity_l16.c: Regenerated. - * generated/parity_l2.c: Regenerated. - * generated/parity_l4.c: Regenerated. - * generated/parity_l8.c: Regenerated. - * generated/product_c10.c: Regenerated. - * generated/product_c16.c: Regenerated. - * generated/product_c4.c: Regenerated. - * generated/product_c8.c: Regenerated. - * generated/product_i1.c: Regenerated. - * generated/product_i16.c: Regenerated. - * generated/product_i2.c: Regenerated. - * generated/product_i4.c: Regenerated. - * generated/product_i8.c: Regenerated. - * generated/product_r10.c: Regenerated. - * generated/product_r16.c: Regenerated. - * generated/product_r4.c: Regenerated. - * generated/product_r8.c: Regenerated. - * generated/sum_c10.c: Regenerated. - * generated/sum_c16.c: Regenerated. - * generated/sum_c4.c: Regenerated. - * generated/sum_c8.c: Regenerated. - * generated/sum_i1.c: Regenerated. - * generated/sum_i16.c: Regenerated. - * generated/sum_i2.c: Regenerated. - * generated/sum_i4.c: Regenerated. - * generated/sum_i8.c: Regenerated. - * generated/sum_r10.c: Regenerated. - * generated/sum_r16.c: Regenerated. - * generated/sum_r4.c: Regenerated. - * generated/sum_r8.c: Regenerated. - -2018-01-14 Jerry DeLisle - - PR libgfortran/83811 - * write.c (select_buffer): Adjust buffer size up by 1. - -2018-01-08 Janne Blomqvist - - PR 78534, bugfix for r256322 - * io/transfer.c (next_record_w): Use correct type for return value - of next_array_record. - -2018-01-07 Thomas Koenig - - * libgfortran.h (GFC_DTYPE_COPY): New macro. - (GFC_DTYPE_COPY_SETRANK): New macro. - (GFC_DTYPE_IS_UNSET): New macro. - * intrinsics/cshift0.c (cshift0): Use new macros. - * intrinsics/eoshift0.c (eoshift0): Likewise. - * intrinsics/eoshift2.c (eoshift2): Likewise. - * intrinsics/move_alloc.c (move_alloc): Likewise. - * intrinsics/reshape_generic.c (reshape_internal): Likewise. - * intrinsics/spread_generic.c (spread_internal): Likewise. - * intrinsics/spread_generic.c (spread_scalar): Likewise. - * intrinsics/spread_generic.c (spread_char_scalar): Likewise. - * intrinsics/spread_generic.c (spread_char4_scalar): Likewise. - * intrinsics/unpack_generic.c (unpack0): Likewise. - * intrinsics/unpack_generic.c (unpack0_char): Likewise. - * intrinsics/unpack_generic.c (unpack0_char4): Likewise. - * m4/cshift1.m4 (cshift1): Likewise. - * m4/eoshift1.m4 (eoshift1): Likewise. - * m4/eoshift3.m4 (eoshift3): Likewise. - * m4/iforeach-s.m4: Likewise. - * m4/iforeach.m4: Likewise. - * m4/ifunction-s.m4: Likewise. - * m4/ifunction-s2.m4: Likewise. - * m4/ifunction.m4: Likewise. - * m4/ifunction_logical.m4: Likewise. - * m4/reshape.m4: Likewise. - * m4/spread.m4: Likewise. - * generated/all_l1.c : Regenerated. - * generated/all_l16.c : Regenerated. - * generated/all_l2.c : Regenerated. - * generated/all_l4.c : Regenerated. - * generated/all_l8.c : Regenerated. - * generated/any_l1.c : Regenerated. - * generated/any_l16.c : Regenerated. - * generated/any_l2.c : Regenerated. - * generated/any_l4.c : Regenerated. - * generated/any_l8.c : Regenerated. - * generated/count_16_l.c : Regenerated. - * generated/count_1_l.c : Regenerated. - * generated/count_2_l.c : Regenerated. - * generated/count_4_l.c : Regenerated. - * generated/count_8_l.c : Regenerated. - * generated/cshift1_16.c : Regenerated. - * generated/cshift1_4.c : Regenerated. - * generated/cshift1_8.c : Regenerated. - * generated/eoshift1_16.c : Regenerated. - * generated/eoshift1_4.c : Regenerated. - * generated/eoshift1_8.c : Regenerated. - * generated/eoshift3_16.c : Regenerated. - * generated/eoshift3_4.c : Regenerated. - * generated/eoshift3_8.c : Regenerated. - * generated/iall_i1.c : Regenerated. - * generated/iall_i16.c : Regenerated. - * generated/iall_i2.c : Regenerated. - * generated/iall_i4.c : Regenerated. - * generated/iall_i8.c : Regenerated. - * generated/iany_i1.c : Regenerated. - * generated/iany_i16.c : Regenerated. - * generated/iany_i2.c : Regenerated. - * generated/iany_i4.c : Regenerated. - * generated/iany_i8.c : Regenerated. - * generated/iparity_i1.c : Regenerated. - * generated/iparity_i16.c : Regenerated. - * generated/iparity_i2.c : Regenerated. - * generated/iparity_i4.c : Regenerated. - * generated/iparity_i8.c : Regenerated. - * generated/maxloc0_16_i1.c : Regenerated. - * generated/maxloc0_16_i16.c : Regenerated. - * generated/maxloc0_16_i2.c : Regenerated. - * generated/maxloc0_16_i4.c : Regenerated. - * generated/maxloc0_16_i8.c : Regenerated. - * generated/maxloc0_16_r10.c : Regenerated. - * generated/maxloc0_16_r16.c : Regenerated. - * generated/maxloc0_16_r4.c : Regenerated. - * generated/maxloc0_16_r8.c : Regenerated. - * generated/maxloc0_16_s1.c : Regenerated. - * generated/maxloc0_16_s4.c : Regenerated. - * generated/maxloc0_4_i1.c : Regenerated. - * generated/maxloc0_4_i16.c : Regenerated. - * generated/maxloc0_4_i2.c : Regenerated. - * generated/maxloc0_4_i4.c : Regenerated. - * generated/maxloc0_4_i8.c : Regenerated. - * generated/maxloc0_4_r10.c : Regenerated. - * generated/maxloc0_4_r16.c : Regenerated. - * generated/maxloc0_4_r4.c : Regenerated. - * generated/maxloc0_4_r8.c : Regenerated. - * generated/maxloc0_4_s1.c : Regenerated. - * generated/maxloc0_4_s4.c : Regenerated. - * generated/maxloc0_8_i1.c : Regenerated. - * generated/maxloc0_8_i16.c : Regenerated. - * generated/maxloc0_8_i2.c : Regenerated. - * generated/maxloc0_8_i4.c : Regenerated. - * generated/maxloc0_8_i8.c : Regenerated. - * generated/maxloc0_8_r10.c : Regenerated. - * generated/maxloc0_8_r16.c : Regenerated. - * generated/maxloc0_8_r4.c : Regenerated. - * generated/maxloc0_8_r8.c : Regenerated. - * generated/maxloc0_8_s1.c : Regenerated. - * generated/maxloc0_8_s4.c : Regenerated. - * generated/maxloc1_16_i1.c : Regenerated. - * generated/maxloc1_16_i16.c : Regenerated. - * generated/maxloc1_16_i2.c : Regenerated. - * generated/maxloc1_16_i4.c : Regenerated. - * generated/maxloc1_16_i8.c : Regenerated. - * generated/maxloc1_16_r10.c : Regenerated. - * generated/maxloc1_16_r16.c : Regenerated. - * generated/maxloc1_16_r4.c : Regenerated. - * generated/maxloc1_16_r8.c : Regenerated. - * generated/maxloc1_16_s1.c : Regenerated. - * generated/maxloc1_16_s4.c : Regenerated. - * generated/maxloc1_4_i1.c : Regenerated. - * generated/maxloc1_4_i16.c : Regenerated. - * generated/maxloc1_4_i2.c : Regenerated. - * generated/maxloc1_4_i4.c : Regenerated. - * generated/maxloc1_4_i8.c : Regenerated. - * generated/maxloc1_4_r10.c : Regenerated. - * generated/maxloc1_4_r16.c : Regenerated. - * generated/maxloc1_4_r4.c : Regenerated. - * generated/maxloc1_4_r8.c : Regenerated. - * generated/maxloc1_4_s1.c : Regenerated. - * generated/maxloc1_4_s4.c : Regenerated. - * generated/maxloc1_8_i1.c : Regenerated. - * generated/maxloc1_8_i16.c : Regenerated. - * generated/maxloc1_8_i2.c : Regenerated. - * generated/maxloc1_8_i4.c : Regenerated. - * generated/maxloc1_8_i8.c : Regenerated. - * generated/maxloc1_8_r10.c : Regenerated. - * generated/maxloc1_8_r16.c : Regenerated. - * generated/maxloc1_8_r4.c : Regenerated. - * generated/maxloc1_8_r8.c : Regenerated. - * generated/maxloc1_8_s1.c : Regenerated. - * generated/maxloc1_8_s4.c : Regenerated. - * generated/maxval1_s1.c : Regenerated. - * generated/maxval1_s4.c : Regenerated. - * generated/maxval_i1.c : Regenerated. - * generated/maxval_i16.c : Regenerated. - * generated/maxval_i2.c : Regenerated. - * generated/maxval_i4.c : Regenerated. - * generated/maxval_i8.c : Regenerated. - * generated/maxval_r10.c : Regenerated. - * generated/maxval_r16.c : Regenerated. - * generated/maxval_r4.c : Regenerated. - * generated/maxval_r8.c : Regenerated. - * generated/minloc0_16_i1.c : Regenerated. - * generated/minloc0_16_i16.c : Regenerated. - * generated/minloc0_16_i2.c : Regenerated. - * generated/minloc0_16_i4.c : Regenerated. - * generated/minloc0_16_i8.c : Regenerated. - * generated/minloc0_16_r10.c : Regenerated. - * generated/minloc0_16_r16.c : Regenerated. - * generated/minloc0_16_r4.c : Regenerated. - * generated/minloc0_16_r8.c : Regenerated. - * generated/minloc0_16_s1.c : Regenerated. - * generated/minloc0_16_s4.c : Regenerated. - * generated/minloc0_4_i1.c : Regenerated. - * generated/minloc0_4_i16.c : Regenerated. - * generated/minloc0_4_i2.c : Regenerated. - * generated/minloc0_4_i4.c : Regenerated. - * generated/minloc0_4_i8.c : Regenerated. - * generated/minloc0_4_r10.c : Regenerated. - * generated/minloc0_4_r16.c : Regenerated. - * generated/minloc0_4_r4.c : Regenerated. - * generated/minloc0_4_r8.c : Regenerated. - * generated/minloc0_4_s1.c : Regenerated. - * generated/minloc0_4_s4.c : Regenerated. - * generated/minloc0_8_i1.c : Regenerated. - * generated/minloc0_8_i16.c : Regenerated. - * generated/minloc0_8_i2.c : Regenerated. - * generated/minloc0_8_i4.c : Regenerated. - * generated/minloc0_8_i8.c : Regenerated. - * generated/minloc0_8_r10.c : Regenerated. - * generated/minloc0_8_r16.c : Regenerated. - * generated/minloc0_8_r4.c : Regenerated. - * generated/minloc0_8_r8.c : Regenerated. - * generated/minloc0_8_s1.c : Regenerated. - * generated/minloc0_8_s4.c : Regenerated. - * generated/minloc1_16_i1.c : Regenerated. - * generated/minloc1_16_i16.c : Regenerated. - * generated/minloc1_16_i2.c : Regenerated. - * generated/minloc1_16_i4.c : Regenerated. - * generated/minloc1_16_i8.c : Regenerated. - * generated/minloc1_16_r10.c : Regenerated. - * generated/minloc1_16_r16.c : Regenerated. - * generated/minloc1_16_r4.c : Regenerated. - * generated/minloc1_16_r8.c : Regenerated. - * generated/minloc1_16_s1.c : Regenerated. - * generated/minloc1_16_s4.c : Regenerated. - * generated/minloc1_4_i1.c : Regenerated. - * generated/minloc1_4_i16.c : Regenerated. - * generated/minloc1_4_i2.c : Regenerated. - * generated/minloc1_4_i4.c : Regenerated. - * generated/minloc1_4_i8.c : Regenerated. - * generated/minloc1_4_r10.c : Regenerated. - * generated/minloc1_4_r16.c : Regenerated. - * generated/minloc1_4_r4.c : Regenerated. - * generated/minloc1_4_r8.c : Regenerated. - * generated/minloc1_4_s1.c : Regenerated. - * generated/minloc1_4_s4.c : Regenerated. - * generated/minloc1_8_i1.c : Regenerated. - * generated/minloc1_8_i16.c : Regenerated. - * generated/minloc1_8_i2.c : Regenerated. - * generated/minloc1_8_i4.c : Regenerated. - * generated/minloc1_8_i8.c : Regenerated. - * generated/minloc1_8_r10.c : Regenerated. - * generated/minloc1_8_r16.c : Regenerated. - * generated/minloc1_8_r4.c : Regenerated. - * generated/minloc1_8_r8.c : Regenerated. - * generated/minloc1_8_s1.c : Regenerated. - * generated/minloc1_8_s4.c : Regenerated. - * generated/minval1_s1.c : Regenerated. - * generated/minval1_s4.c : Regenerated. - * generated/minval_i1.c : Regenerated. - * generated/minval_i16.c : Regenerated. - * generated/minval_i2.c : Regenerated. - * generated/minval_i4.c : Regenerated. - * generated/minval_i8.c : Regenerated. - * generated/minval_r10.c : Regenerated. - * generated/minval_r16.c : Regenerated. - * generated/minval_r4.c : Regenerated. - * generated/minval_r8.c : Regenerated. - * generated/norm2_r10.c : Regenerated. - * generated/norm2_r16.c : Regenerated. - * generated/norm2_r4.c : Regenerated. - * generated/norm2_r8.c : Regenerated. - * generated/parity_l1.c : Regenerated. - * generated/parity_l16.c : Regenerated. - * generated/parity_l2.c : Regenerated. - * generated/parity_l4.c : Regenerated. - * generated/parity_l8.c : Regenerated. - * generated/product_c10.c : Regenerated. - * generated/product_c16.c : Regenerated. - * generated/product_c4.c : Regenerated. - * generated/product_c8.c : Regenerated. - * generated/product_i1.c : Regenerated. - * generated/product_i16.c : Regenerated. - * generated/product_i2.c : Regenerated. - * generated/product_i4.c : Regenerated. - * generated/product_i8.c : Regenerated. - * generated/product_r10.c : Regenerated. - * generated/product_r16.c : Regenerated. - * generated/product_r4.c : Regenerated. - * generated/product_r8.c : Regenerated. - * generated/reshape_c10.c : Regenerated. - * generated/reshape_c16.c : Regenerated. - * generated/reshape_c4.c : Regenerated. - * generated/reshape_c8.c : Regenerated. - * generated/reshape_i16.c : Regenerated. - * generated/reshape_i4.c : Regenerated. - * generated/reshape_i8.c : Regenerated. - * generated/reshape_r10.c : Regenerated. - * generated/reshape_r16.c : Regenerated. - * generated/reshape_r4.c : Regenerated. - * generated/reshape_r8.c : Regenerated. - * generated/spread_c10.c : Regenerated. - * generated/spread_c16.c : Regenerated. - * generated/spread_c4.c : Regenerated. - * generated/spread_c8.c : Regenerated. - * generated/spread_i1.c : Regenerated. - * generated/spread_i16.c : Regenerated. - * generated/spread_i2.c : Regenerated. - * generated/spread_i4.c : Regenerated. - * generated/spread_i8.c : Regenerated. - * generated/spread_r10.c : Regenerated. - * generated/spread_r16.c : Regenerated. - * generated/spread_r4.c : Regenerated. - * generated/spread_r8.c : Regenerated. - * generated/sum_c10.c : Regenerated. - * generated/sum_c16.c : Regenerated. - * generated/sum_c4.c : Regenerated. - * generated/sum_c8.c : Regenerated. - * generated/sum_i1.c : Regenerated. - * generated/sum_i16.c : Regenerated. - * generated/sum_i2.c : Regenerated. - * generated/sum_i4.c : Regenerated. - * generated/sum_i8.c : Regenerated. - * generated/sum_r10.c : Regenerated. - * generated/sum_r16.c : Regenerated. - * generated/sum_r4.c : Regenerated. - * generated/sum_r8.c : Regenerated. - -2018-01-07 Janne Blomqvist - - PR fortran/78534 - PR fortran/83704 - * io/fbuf.c (fbuf_init): Use size_t instead of int for length. - (fbuf_debug): Convert debug output to unsigned long. - (fbuf_reset): Use ptrdiff_t for return value. - (fbuf_alloc): Use size_t for length argument. - (fbuf_flush): Handle large buffers. - (fbuf_flush_list): Likewise. - (fbuf_seek): Use ptrdiff_t for offset and return value. - (fbuf_read): Use size_t for length argument. - (fbuf_getc_refill): Use size_t to match fbuf_read. - * io/fbuf.h (struct fbuf): Use size_t for lengths. - (fbuf_init): Use size_t instead of int for length. - (fbuf_reset): Use ptrdiff_t for return value. - (fbuf_alloc): Use size_t for length argument. - (fbuf_seek): Use ptrdiff_t for offset and return value. - (fbuf_read): Use size_t for length argument. - * io/io.h (read_block_form): Likewise. - (read_block_form4): Likewise. - (write_block): Likewise. - (read_a): Likewise. - (read_a_char4): Likewise. - (read_x): Likewise. - (write_a): Likewise. - (write_a_char4): Likewise. - * io/list_read.c (list_formatted_read_scalar): Use size_t to - handle large buffers. - * io/read.c (read_l): Likewise. - (read_utf8): Likewise. - (read_utf8_char1): Likewise. - (read_default_char1): Likewise. - (read_utf8_char4): Likewise. - (read_default_char4): Likewise. - (read_a): Likewise. - (read_a_char4): Likewise. - (eat_leading_spaces): Likewise. - (next_char): Likewise. - (read_decimal): Likewise. - (read_radix): Likewise. - (read_f): Likewise. - (read_x): Likewise. - * io/transfer.c (read_sf_internal): Likewise. - (read_sf): Likewise. - (read_block_form): Likewise. - (read_block_form4): Likewise. - (write_block): Likewise. - (formatted_transfer_scalar_write): Likewise. - (next_record_w): Likewise. - * io/unix.c (mem_alloc_r): Likewise. - (mem_alloc_r4): Likewise. - (mem_alloc_w): Likewise. - (mem_alloc_w4): Likewise. - (mem_read): Likewise. - (mem_read4): Likewise. - (mem_write): Likewise. - (mem_write4): Likewise. - (open_internal): Likewise. - (open_internal4): Likewise. - * io/unix.h (open_internal): Likewise. - (open_internal4): Likewise. - (mem_alloc_w): Likewise. - (mem_alloc_r): Likewise. - (mem_alloc_w4): Likewise. - (mem_alloc_r4): Likewise. - * io/write.c (write_check_cc): Likewise. - (write_cc): Likewise. - (write_a): Likewise. - (write_a_char4): Likewise. - -2018-01-06 Janne Blomqvist - - * io/write.c (namelist_write): Remove unused variable "i". - -2018-01-06 Dominique d'Humieres - Janne Blomqvist - - PR fortran/83704 - * io/write.c (write_character): Use size_t instead of int for - length. - -2018-01-05 Janne Blomqvist - - PR fortran/78534 - * intrinsics/args.c (getarg_i4): Use gfc_charlen_type. - (get_command_argument_i4): Likewise. - (get_command_i4): Likewise. - * intrinsics/chmod.c (chmod_internal): Likewise. - * intrinsics/env.c (get_environment_variable_i4): Likewise. - * intrinsics/extends_type_of.c (struct vtype): Use size_t for size - member. - * intrinsics/gerror.c (gerror): Use gfc_charlen_type. - * intrinsics/getlog.c (getlog): Likewise. - * intrinsics/hostnm.c (hostnm_0): Likewise. - * intrinsics/string_intrinsics_inc.c (string_len_trim): Rework to - work if gfc_charlen_type is unsigned. - (string_scan): Likewise. - * io/transfer.c (transfer_character): Modify prototype. - (transfer_character_write): Likewise. - (transfer_character_wide): Likewise. - (transfer_character_wide_write): Likewise. - (transfer_array): Typecast to avoid signed-unsigned comparison. - * io/unit.c (is_trim_ok): Use gfc_charlen_type. - * io/write.c (namelist_write): Likewise. - * libgfortran.h (gfc_charlen_type): Change typedef to size_t. - -2018-01-03 Jakub Jelinek +2019-01-01 Jakub Jelinek Update copyright years. - -2018-01-02 Janne Blomqvist - - PR libgfortran/83649 - * io/unix.c (MAX_CHUNK): New define. - (raw_read): For reads larger than MAX_CHUNK, loop. - (raw_write): Write no more than MAX_CHUNK bytes per iteration. -Copyright (C) 2018 Free Software Foundation, Inc. +Copyright (C) 2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/ChangeLog-2018 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/ChangeLog-2018 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/ChangeLog-2018 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/ChangeLog-2018 2019-01-02 08:05:20.000000000 +0000 @@ -0,0 +1,2290 @@ +2018-12-31 Thomas Koenig + + PR fortran/82995 + * m4/ifindloc0.m4: Handle case of absend optional argument, passed + as a NULL pointer. Correct allocation of retarray->base_addr. + * m4/ifindloc1.m4: Likewise. + * m4/ifindloc2.m4: Handle case of absend optional argument, passed + as a NULL pointer. + * m4/iforeach-s.m4: Likewise. + * m4/iforeach-s2.m4: Likewise. + * m4/iforeach.m4: Likewise. + * m4/ifunction-s.m4: Likewise. + * m4/ifunction-s2.m4: Likewise. + * m4/ifunction.m4: Likewise. + * generated/findloc0_c16.c: Regenerated. + * generated/findloc0_c4.c: Regenerated. + * generated/findloc0_c8.c: Regenerated. + * generated/findloc0_i1.c: Regenerated. + * generated/findloc0_i16.c: Regenerated. + * generated/findloc0_i2.c: Regenerated. + * generated/findloc0_i4.c: Regenerated. + * generated/findloc0_i8.c: Regenerated. + * generated/findloc0_r16.c: Regenerated. + * generated/findloc0_r4.c: Regenerated. + * generated/findloc0_r8.c: Regenerated. + * generated/findloc0_s1.c: Regenerated. + * generated/findloc0_s4.c: Regenerated. + * generated/findloc1_c16.c: Regenerated. + * generated/findloc1_c4.c: Regenerated. + * generated/findloc1_c8.c: Regenerated. + * generated/findloc1_i1.c: Regenerated. + * generated/findloc1_i16.c: Regenerated. + * generated/findloc1_i2.c: Regenerated. + * generated/findloc1_i4.c: Regenerated. + * generated/findloc1_i8.c: Regenerated. + * generated/findloc1_r16.c: Regenerated. + * generated/findloc1_r4.c: Regenerated. + * generated/findloc1_r8.c: Regenerated. + * generated/findloc1_s1.c: Regenerated. + * generated/findloc1_s4.c: Regenerated. + * generated/findloc2_s1.c: Regenerated. + * generated/findloc2_s4.c: Regenerated. + * generated/iall_i1.c: Regenerated. + * generated/iall_i16.c: Regenerated. + * generated/iall_i2.c: Regenerated. + * generated/iall_i4.c: Regenerated. + * generated/iall_i8.c: Regenerated. + * generated/iany_i1.c: Regenerated. + * generated/iany_i16.c: Regenerated. + * generated/iany_i2.c: Regenerated. + * generated/iany_i4.c: Regenerated. + * generated/iany_i8.c: Regenerated. + * generated/iparity_i1.c: Regenerated. + * generated/iparity_i16.c: Regenerated. + * generated/iparity_i2.c: Regenerated. + * generated/iparity_i4.c: Regenerated. + * generated/iparity_i8.c: Regenerated. + * generated/maxloc0_16_i1.c: Regenerated. + * generated/maxloc0_16_i16.c: Regenerated. + * generated/maxloc0_16_i2.c: Regenerated. + * generated/maxloc0_16_i4.c: Regenerated. + * generated/maxloc0_16_i8.c: Regenerated. + * generated/maxloc0_16_r10.c: Regenerated. + * generated/maxloc0_16_r16.c: Regenerated. + * generated/maxloc0_16_r4.c: Regenerated. + * generated/maxloc0_16_r8.c: Regenerated. + * generated/maxloc0_16_s1.c: Regenerated. + * generated/maxloc0_16_s4.c: Regenerated. + * generated/maxloc0_4_i1.c: Regenerated. + * generated/maxloc0_4_i16.c: Regenerated. + * generated/maxloc0_4_i2.c: Regenerated. + * generated/maxloc0_4_i4.c: Regenerated. + * generated/maxloc0_4_i8.c: Regenerated. + * generated/maxloc0_4_r10.c: Regenerated. + * generated/maxloc0_4_r16.c: Regenerated. + * generated/maxloc0_4_r4.c: Regenerated. + * generated/maxloc0_4_r8.c: Regenerated. + * generated/maxloc0_4_s1.c: Regenerated. + * generated/maxloc0_4_s4.c: Regenerated. + * generated/maxloc0_8_i1.c: Regenerated. + * generated/maxloc0_8_i16.c: Regenerated. + * generated/maxloc0_8_i2.c: Regenerated. + * generated/maxloc0_8_i4.c: Regenerated. + * generated/maxloc0_8_i8.c: Regenerated. + * generated/maxloc0_8_r10.c: Regenerated. + * generated/maxloc0_8_r16.c: Regenerated. + * generated/maxloc0_8_r4.c: Regenerated. + * generated/maxloc0_8_r8.c: Regenerated. + * generated/maxloc0_8_s1.c: Regenerated. + * generated/maxloc0_8_s4.c: Regenerated. + * generated/maxloc1_16_i1.c: Regenerated. + * generated/maxloc1_16_i16.c: Regenerated. + * generated/maxloc1_16_i2.c: Regenerated. + * generated/maxloc1_16_i4.c: Regenerated. + * generated/maxloc1_16_i8.c: Regenerated. + * generated/maxloc1_16_r10.c: Regenerated. + * generated/maxloc1_16_r16.c: Regenerated. + * generated/maxloc1_16_r4.c: Regenerated. + * generated/maxloc1_16_r8.c: Regenerated. + * generated/maxloc1_16_s1.c: Regenerated. + * generated/maxloc1_16_s4.c: Regenerated. + * generated/maxloc1_4_i1.c: Regenerated. + * generated/maxloc1_4_i16.c: Regenerated. + * generated/maxloc1_4_i2.c: Regenerated. + * generated/maxloc1_4_i4.c: Regenerated. + * generated/maxloc1_4_i8.c: Regenerated. + * generated/maxloc1_4_r10.c: Regenerated. + * generated/maxloc1_4_r16.c: Regenerated. + * generated/maxloc1_4_r4.c: Regenerated. + * generated/maxloc1_4_r8.c: Regenerated. + * generated/maxloc1_4_s1.c: Regenerated. + * generated/maxloc1_4_s4.c: Regenerated. + * generated/maxloc1_8_i1.c: Regenerated. + * generated/maxloc1_8_i16.c: Regenerated. + * generated/maxloc1_8_i2.c: Regenerated. + * generated/maxloc1_8_i4.c: Regenerated. + * generated/maxloc1_8_i8.c: Regenerated. + * generated/maxloc1_8_r10.c: Regenerated. + * generated/maxloc1_8_r16.c: Regenerated. + * generated/maxloc1_8_r4.c: Regenerated. + * generated/maxloc1_8_r8.c: Regenerated. + * generated/maxloc1_8_s1.c: Regenerated. + * generated/maxloc1_8_s4.c: Regenerated. + * generated/maxval0_s1.c: Regenerated. + * generated/maxval0_s4.c: Regenerated. + * generated/maxval1_s1.c: Regenerated. + * generated/maxval1_s4.c: Regenerated. + * generated/maxval_i1.c: Regenerated. + * generated/maxval_i16.c: Regenerated. + * generated/maxval_i2.c: Regenerated. + * generated/maxval_i4.c: Regenerated. + * generated/maxval_i8.c: Regenerated. + * generated/maxval_r10.c: Regenerated. + * generated/maxval_r16.c: Regenerated. + * generated/maxval_r4.c: Regenerated. + * generated/maxval_r8.c: Regenerated. + * generated/minloc0_16_i1.c: Regenerated. + * generated/minloc0_16_i16.c: Regenerated. + * generated/minloc0_16_i2.c: Regenerated. + * generated/minloc0_16_i4.c: Regenerated. + * generated/minloc0_16_i8.c: Regenerated. + * generated/minloc0_16_r10.c: Regenerated. + * generated/minloc0_16_r16.c: Regenerated. + * generated/minloc0_16_r4.c: Regenerated. + * generated/minloc0_16_r8.c: Regenerated. + * generated/minloc0_16_s1.c: Regenerated. + * generated/minloc0_16_s4.c: Regenerated. + * generated/minloc0_4_i1.c: Regenerated. + * generated/minloc0_4_i16.c: Regenerated. + * generated/minloc0_4_i2.c: Regenerated. + * generated/minloc0_4_i4.c: Regenerated. + * generated/minloc0_4_i8.c: Regenerated. + * generated/minloc0_4_r10.c: Regenerated. + * generated/minloc0_4_r16.c: Regenerated. + * generated/minloc0_4_r4.c: Regenerated. + * generated/minloc0_4_r8.c: Regenerated. + * generated/minloc0_4_s1.c: Regenerated. + * generated/minloc0_4_s4.c: Regenerated. + * generated/minloc0_8_i1.c: Regenerated. + * generated/minloc0_8_i16.c: Regenerated. + * generated/minloc0_8_i2.c: Regenerated. + * generated/minloc0_8_i4.c: Regenerated. + * generated/minloc0_8_i8.c: Regenerated. + * generated/minloc0_8_r10.c: Regenerated. + * generated/minloc0_8_r16.c: Regenerated. + * generated/minloc0_8_r4.c: Regenerated. + * generated/minloc0_8_r8.c: Regenerated. + * generated/minloc0_8_s1.c: Regenerated. + * generated/minloc0_8_s4.c: Regenerated. + * generated/minloc1_16_i1.c: Regenerated. + * generated/minloc1_16_i16.c: Regenerated. + * generated/minloc1_16_i2.c: Regenerated. + * generated/minloc1_16_i4.c: Regenerated. + * generated/minloc1_16_i8.c: Regenerated. + * generated/minloc1_16_r10.c: Regenerated. + * generated/minloc1_16_r16.c: Regenerated. + * generated/minloc1_16_r4.c: Regenerated. + * generated/minloc1_16_r8.c: Regenerated. + * generated/minloc1_16_s1.c: Regenerated. + * generated/minloc1_16_s4.c: Regenerated. + * generated/minloc1_4_i1.c: Regenerated. + * generated/minloc1_4_i16.c: Regenerated. + * generated/minloc1_4_i2.c: Regenerated. + * generated/minloc1_4_i4.c: Regenerated. + * generated/minloc1_4_i8.c: Regenerated. + * generated/minloc1_4_r10.c: Regenerated. + * generated/minloc1_4_r16.c: Regenerated. + * generated/minloc1_4_r4.c: Regenerated. + * generated/minloc1_4_r8.c: Regenerated. + * generated/minloc1_4_s1.c: Regenerated. + * generated/minloc1_4_s4.c: Regenerated. + * generated/minloc1_8_i1.c: Regenerated. + * generated/minloc1_8_i16.c: Regenerated. + * generated/minloc1_8_i2.c: Regenerated. + * generated/minloc1_8_i4.c: Regenerated. + * generated/minloc1_8_i8.c: Regenerated. + * generated/minloc1_8_r10.c: Regenerated. + * generated/minloc1_8_r16.c: Regenerated. + * generated/minloc1_8_r4.c: Regenerated. + * generated/minloc1_8_r8.c: Regenerated. + * generated/minloc1_8_s1.c: Regenerated. + * generated/minloc1_8_s4.c: Regenerated. + * generated/minval0_s1.c: Regenerated. + * generated/minval0_s4.c: Regenerated. + * generated/minval1_s1.c: Regenerated. + * generated/minval1_s4.c: Regenerated. + * generated/minval_i1.c: Regenerated. + * generated/minval_i16.c: Regenerated. + * generated/minval_i2.c: Regenerated. + * generated/minval_i4.c: Regenerated. + * generated/minval_i8.c: Regenerated. + * generated/minval_r10.c: Regenerated. + * generated/minval_r16.c: Regenerated. + * generated/minval_r4.c: Regenerated. + * generated/minval_r8.c: Regenerated. + * generated/product_c10.c: Regenerated. + * generated/product_c16.c: Regenerated. + * generated/product_c4.c: Regenerated. + * generated/product_c8.c: Regenerated. + * generated/product_i1.c: Regenerated. + * generated/product_i16.c: Regenerated. + * generated/product_i2.c: Regenerated. + * generated/product_i4.c: Regenerated. + * generated/product_i8.c: Regenerated. + * generated/product_r10.c: Regenerated. + * generated/product_r16.c: Regenerated. + * generated/product_r4.c: Regenerated. + * generated/product_r8.c: Regenerated. + * generated/sum_c10.c: Regenerated. + * generated/sum_c16.c: Regenerated. + * generated/sum_c4.c: Regenerated. + * generated/sum_c8.c: Regenerated. + * generated/sum_i1.c: Regenerated. + * generated/sum_i16.c: Regenerated. + * generated/sum_i2.c: Regenerated. + * generated/sum_i4.c: Regenerated. + * generated/sum_i8.c: Regenerated. + * generated/sum_r10.c: Regenerated. + * generated/sum_r16.c: Regenerated. + * generated/sum_r4.c: Regenerated. + * generated/sum_r8.c: Regenerated. + +2018-12-29 Steven G. Kargl + + * gfortran.map: Expose subnormal functions in dynamic library. + * ieee/ieee_arithmetic.F90: Add support for IEEE_SUBNORMAL, + IEEE_POSITIVE_SUBNORMAL, and IEEE_NEGATIVE_SUBNORMAL. + * ieee/ieee_helper.c: Ditto. + * ieee/ieee_features.F90: Add IEEE_SUBNORMAL. + +2018-12-29 Steven G. Kargl + + PR fortran/88342 + * ieee/ieee_arithmetic.F90: Prevent exceptions in IEEE_VALUE if + -ffpe-trap=invalid or -ffpe-trap=overflow is used. + +2018-12-28 Steven G. Kargl + + PR fortran/81984 + * intrinsics/string_intrinsics_inc.c: Placate the sanitizer. + +2018-12-21 Steven G. Kargl + + PR fortran/69121 + * ieee/ieee_arithmetic.F90: Provide missing interfaces for IEEE_SCALB. + +2018-12-20 Steven G. Kargl + + * ieee/ieee_arithmetic.F90: Re-organize file to + eliminate #ifdef ... #endif. No functional change. + +2018-12-09 Thomas Koenig + + PR fortran/88411 + * io/transfer.c (dta_transfer_init): Do not treat as an + asynchronous statement unless the statement has + ASYNCHRONOUS="YES". + (st_write_done): Likewise. + (st_read_done): Do not perform async_wait for synchronous I/O + on an async unit. + (st_read_done): Likewise. + +2018-12-02 Janne Blomqvist + + PR libfortran/88137 + * runtime/backtrace.c (show_backtrace): Use atomic load/store to + access the static lbstate pointer. + +2018-11-30 Janne Blomqvist + + PR libfortran/88137 + * runtime/backtrace.c (show_backtrace): Make lbstate a static + variable, initialize once. + +2018-11-23 Janne Blomqvist + + * runtime/error.c (MAGIC): Remove. + (recursion_key): New variable. + (recursion_check): Use thread-specific variable for recursion + check if threads are active. + (constructor_recursion_check): New function. + (destructor_recursion_check): New funcion. + +2018-11-22 Janne Blomqvist + + * acinclude.m4 (LIBGFOR_CHECK_ATOMIC_FETCH_ADD): Rename and test + presence of atomic builtins instead of sync builtins. + * configure.ac (LIBGFOR_CHECK_ATOMIC_FETCH_ADD): Call new test. + * io/io.h (inc_waiting_locked): Use __atomic_fetch_add. + (predec_waiting_locked): Use __atomic_add_fetch. + (dec_waiting_unlocked): Use __atomic_fetch_add. + * config.h.in: Regenerated. + * configure: Regenerated. + * Makefile.in: Regenerated. + +2018-11-09 Jerry DeLisle + + PR libfortran/78351 + * io/transfer.c (read_sf_internal): Delete leftover + debug code. + +2018-11-08 Jerry DeLisle + + PR libfortran/78351 + * io/transfer.c (read_sf_internal): Add support for early + comma termination of internal unit formatted reads. + +2018-10-31 Joseph Myers + + PR bootstrap/82856 + * Makefile.am: Include multilib.am. + * configure.ac: Remove AC_PREREQ. + * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate. + +2017-10-28 Thomas Koenig + + PR fortran/54613 + * Makefile.am: Add files for findloc. + * Makefile.in: Regenerated. + * libgfortran.h (gfc_array_index_type): Add. + (gfc_array_s1): Add using GFC_UINTEGER_1. + (gfc_array_s4): Likewise. + Replace unnecessary comment. + (HAVE_GFC_UINTEGER_1): Define. + (HAVE_GFC_UINTEGER_4): Define. + * m4/findloc0.m4: New file. + * m4/findloc0s.m4: New file. + * m4/findloc1.m4: New file. + * m4/findloc1s.m4: New file. + * m4/findloc2s.m4: New file. + * m4/ifindloc0.m4: New file. + * m4/ifindloc1.m4: New file. + * m4/ifindloc2.m4: New file. + * m4/iparm.m4: Use unsigned integer for characters. + * generated/findloc0_c16.c: New file. + * generated/findloc0_c4.c: New file. + * generated/findloc0_c8.c: New file. + * generated/findloc0_i1.c: New file. + * generated/findloc0_i16.c: New file. + * generated/findloc0_i2.c: New file. + * generated/findloc0_i4.c: New file. + * generated/findloc0_i8.c: New file. + * generated/findloc0_r16.c: New file. + * generated/findloc0_r4.c: New file. + * generated/findloc0_r8.c: New file. + * generated/findloc0_s1.c: New file. + * generated/findloc0_s4.c: New file. + * generated/findloc1_c16.c: New file. + * generated/findloc1_c4.c: New file. + * generated/findloc1_c8.c: New file. + * generated/findloc1_i1.c: New file. + * generated/findloc1_i16.c: New file. + * generated/findloc1_i2.c: New file. + * generated/findloc1_i4.c: New file. + * generated/findloc1_i8.c: New file. + * generated/findloc1_r16.c: New file. + * generated/findloc1_r4.c: New file. + * generated/findloc1_r8.c: New file. + * generated/findloc1_s1.c: New file. + * generated/findloc1_s4.c: New file. + * generated/findloc2_s1.c: New file. + * generated/findloc2_s4.c: New file. + * generated/maxloc0_16_s1.c: Regenerated. + * generated/maxloc0_16_s4.c: Regenerated. + * generated/maxloc0_4_s1.c: Regenerated. + * generated/maxloc0_4_s4.c: Regenerated. + * generated/maxloc0_8_s1.c: Regenerated. + * generated/maxloc0_8_s4.c: Regenerated. + * generated/maxloc1_16_s1.c: Regenerated. + * generated/maxloc1_16_s4.c: Regenerated. + * generated/maxloc1_4_s1.c: Regenerated. + * generated/maxloc1_4_s4.c: Regenerated. + * generated/maxloc1_8_s1.c: Regenerated. + * generated/maxloc1_8_s4.c: Regenerated. + * generated/maxloc2_16_s1.c: Regenerated. + * generated/maxloc2_16_s4.c: Regenerated. + * generated/maxloc2_4_s1.c: Regenerated. + * generated/maxloc2_4_s4.c: Regenerated. + * generated/maxloc2_8_s1.c: Regenerated. + * generated/maxloc2_8_s4.c: Regenerated. + * generated/maxval0_s1.c: Regenerated. + * generated/maxval0_s4.c: Regenerated. + * generated/maxval1_s1.c: Regenerated. + * generated/maxval1_s4.c: Regenerated. + * generated/minloc0_16_s1.c: Regenerated. + * generated/minloc0_16_s4.c: Regenerated. + * generated/minloc0_4_s1.c: Regenerated. + * generated/minloc0_4_s4.c: Regenerated. + * generated/minloc0_8_s1.c: Regenerated. + * generated/minloc0_8_s4.c: Regenerated. + * generated/minloc1_16_s1.c: Regenerated. + * generated/minloc1_16_s4.c: Regenerated. + * generated/minloc1_4_s1.c: Regenerated. + * generated/minloc1_4_s4.c: Regenerated. + * generated/minloc1_8_s1.c: Regenerated. + * generated/minloc1_8_s4.c: Regenerated. + * generated/minloc2_16_s1.c: Regenerated. + * generated/minloc2_16_s4.c: Regenerated. + * generated/minloc2_4_s1.c: Regenerated. + * generated/minloc2_4_s4.c: Regenerated. + * generated/minloc2_8_s1.c: Regenerated. + * generated/minloc2_8_s4.c: Regenerated. + * generated/minval0_s1.c: Regenerated. + * generated/minval0_s4.c: Regenerated. + * generated/minval1_s1.c: Regenerated. + * generated/minval1_s4.c: Regenerated. + +2018-10-06 Janne Blomqvist + + * io/unix.c (compare_file_filename): Use gfc_charlen_type instead + of int for string length. + (inquire_sequential): Likewise. + (inquire_direct): Likewise. + (inquire_formatted): Likewise. + (inquire_unformatted): Likewise. + (inquire_access): Likewise. + (inquire_read): Likewise. + (inquire_write): Likewise. + (inquire_readwrite): Likewise. + * io/unix.h (compare_file_filename): Likewise. + (inquire_sequential): Likewise. + (inquire_direct): Likewise. + (inquire_formatted): Likewise. + (inquire_unformatted): Likewise. + (inquire_read): Likewise. + (inquire_write): Likewise. + (inquire_readwrite): Likewise. + +2018-10-02 Gerald Pfeifer + + * io/close.c [!HAVE_UNLINK_OPEN_FILE]: Include . + +2018-09-21 Janne Blomqvist + + * config.h.in: Regenerated. + * configure: Regenerated. + * configure.ac: Check for writev and sys/uio.h. + * libgfortran.h: Include sys/uio.h. + (st_vprintf): Remove prototype. + (struct iovec): Define if not available. + (estr_writev): New prototype. + * runtime/backtrace.c (error_callback): Use estr_writev. + * runtime/error.c (ST_VPRINTF_SIZE): Remove. + (estr_writev): New function. + (st_vprintf): Remove. + (gf_vsnprintf): New function. + (ST_ERRBUF_SIZE): New macro. + (st_printf): Use vsnprintf. + (os_error): Use estr_writev. + (runtime_error): Use vsnprintf and estr_writev. + (runtime_error_at): Likewise. + (runtime_warning_at): Likewise. + (internal_error): Use estr_writev. + (generate_error_common): Likewise. + (generate_warning): Likewise. + (notify_std): Likewise. + * runtime/pause.c (pause_string): Likewise. + * runtime/stop.c (report_exception): Likewise. + (stop_string): Likewise. + (error_stop_string): Likewise. + +2018-09-16 Thomas Koenig + + PR fortran/37802 + * m4/matmul_internal.m4: Adjust error messages. + * generated/matmul_c10.c: Regenerated. + * generated/matmul_c16.c: Regenerated. + * generated/matmul_c4.c: Regenerated. + * generated/matmul_c8.c: Regenerated. + * generated/matmul_i1.c: Regenerated. + * generated/matmul_i16.c: Regenerated. + * generated/matmul_i2.c: Regenerated. + * generated/matmul_i4.c: Regenerated. + * generated/matmul_i8.c: Regenerated. + * generated/matmul_r10.c: Regenerated. + * generated/matmul_r16.c: Regenerated. + * generated/matmul_r4.c: Regenerated. + * generated/matmul_r8.c: Regenerated. + * generated/matmulavx128_c10.c: Regenerated. + * generated/matmulavx128_c16.c: Regenerated. + * generated/matmulavx128_c4.c: Regenerated. + * generated/matmulavx128_c8.c: Regenerated. + * generated/matmulavx128_i1.c: Regenerated. + * generated/matmulavx128_i16.c: Regenerated. + * generated/matmulavx128_i2.c: Regenerated. + * generated/matmulavx128_i4.c: Regenerated. + * generated/matmulavx128_i8.c: Regenerated. + * generated/matmulavx128_r10.c: Regenerated. + * generated/matmulavx128_r16.c: Regenerated. + * generated/matmulavx128_r4.c: Regenerated. + * generated/matmulavx128_r8.c: Regenerated. + +2018-09-14 Kyrylo Tkachov + + * io/unix.c (fallback_access): Avoid calling close on + uninitialized file descriptor. + +2018-09-12 Kwok Cheung Yeung + + * runtime/minimal.c (estr_write): Define in terms of write. + +2018-09-12 Andrew Stubbs + + * runtime/minimal.c (exit): Only work around nvptx bugs on nvptx. + +2018-09-07 Janne Blomqvist + + * runtime/environ.c (init_unsigned_integer): Remove. + +2018-09-05 Hans-Peter Nilsson + + * io/async.h: Use __gthread_mutex_t, not pthread_mutex_t. + +2018-09-01 Jerry DeLisle + + * io/io.h: Change declaration of vlist type to + gfc_full_array_i4 to eliminate warning for mismatched type. + * io/format.c ((parse_format_list): Use gfc_full_array_i4. + * io/io.h: Use gfc_full_array_i4. + +2018-08-25 Thomas Koenig + + PR libfortran/86704 + * m4/matmul_internal.m4: Correct calculation of needed buffer size + for arrays of shape (1,n). + * generated/matmul_c10.c: Regenerated + * generated/matmul_c16.c: Regenerated + * generated/matmul_c4.c: Regenerated + * generated/matmul_c8.c: Regenerated + * generated/matmul_i1.c: Regenerated + * generated/matmul_i16.c: Regenerated + * generated/matmul_i2.c: Regenerated + * generated/matmul_i4.c: Regenerated + * generated/matmul_i8.c: Regenerated + * generated/matmul_r10.c: Regenerated + * generated/matmul_r16.c: Regenerated + * generated/matmul_r4.c: Regenerated + * generated/matmul_r8.c: Regenerated + * generated/matmulavx128_c10.c: Regenerated + * generated/matmulavx128_c16.c: Regenerated + * generated/matmulavx128_c4.c: Regenerated + * generated/matmulavx128_c8.c: Regenerated + * generated/matmulavx128_i1.c: Regenerated + * generated/matmulavx128_i16.c: Regenerated + * generated/matmulavx128_i2.c: Regenerated + * generated/matmulavx128_i4.c: Regenerated + * generated/matmulavx128_i8.c: Regenerated + * generated/matmulavx128_r10.c: Regenerated + * generated/matmulavx128_r16.c: Regenerated + * generated/matmulavx128_r4.c: Regenerated + * generated/matmulavx128_r8.c: Regenerated + +2018-08-23 David Edelsohn + + * async.h (ASYNC_IO): Revert _AIX test. + +2018-08-22 Thomas Koenig + + * async.h: Set ASYNC_IO to zero if _AIX is defined. + (struct adv_cond): If ASYNC_IO is zero, the struct has no members. + (async_unit): If ASYNC_IO is zero, remove unneeded members. + +2018-08-21 Nicolas Koenig + Thomas Koenig + + PR fortran/25829 + * Makefile.am: Add async.c to gfor_io_src. + Add async.h to gfor_io_headers. + * Makefile.in: Regenerated. + * gfortran.map: Add _gfortran_st_wait_async. + * io/async.c: New file. + * io/async.h: New file. + * io/close.c: Include async.h. + (st_close): Call async_wait for an asynchronous unit. + * io/file_pos.c (st_backspace): Likewise. + (st_endfile): Likewise. + (st_rewind): Likewise. + (st_flush): Likewise. + * io/inquire.c: Add handling for asynchronous PENDING + and ID arguments. + * io/io.h (st_parameter_dt): Add async bit. + (st_parameter_wait): Correct. + (gfc_unit): Add au pointer. + (st_wait_async): Add prototype. + (transfer_array_inner): Likewise. + (st_write_done_worker): Likewise. + * io/open.c: Include async.h. + (new_unit): Initialize asynchronous unit. + * io/transfer.c (async_opt): New struct. + (wrap_scalar_transfer): New function. + (transfer_integer): Call wrap_scalar_transfer to do the work. + (transfer_real): Likewise. + (transfer_real_write): Likewise. + (transfer_character): Likewise. + (transfer_character_wide): Likewise. + (transfer_complex): Likewise. + (transfer_array_inner): New function. + (transfer_array): Call transfer_array_inner. + (transfer_derived): Call wrap_scalar_transfer. + (data_transfer_init): Check for asynchronous I/O. + Perform a wait operation on any pending asynchronous I/O + if the data transfer is synchronous. Copy PDT and enqueue + thread for data transfer. + (st_read_done_worker): New function. + (st_read_done): Enqueue transfer or call st_read_done_worker. + (st_write_done_worker): New function. + (st_write_done): Enqueue transfer or call st_read_done_worker. + (st_wait): Document as no-op for compatibility reasons. + (st_wait_async): New function. + * io/unit.c (insert_unit): Use macros LOCK, UNLOCK and TRYLOCK; + add NOTE where necessary. + (get_gfc_unit): Likewise. + (init_units): Likewise. + (close_unit_1): Likewise. Call async_close if asynchronous. + (close_unit): Use macros LOCK and UNLOCK. + (finish_last_advance_record): Likewise. + (newunit_alloc): Likewise. + * io/unix.c (find_file): Likewise. + (flush_all_units_1): Likewise. + (flush_all_units): Likewise. + * libgfortran.h (generate_error_common): Add prototype. + * runtime/error.c: Include io.h and async.h. + (generate_error_common): New function. + +2018-08-15 Rainer Orth + + * configure.ac: Check for . + * configure, config.h.in: Regenerate. + * intrinsics/random.c [HAVE_SYS_RANDOM_H]: Include . + +2018-08-13 Janne Blomqvist + + * configure.ac: Check for getentropy. + * intrinsics/random.c (getosrandom): Use getentropy if available. + * config.h.in: Regenerated. + * configure: Regenerated. + +2018-07-31 Andre Vieira + + Revert 'AsyncI/O patch committed' + 2018-07-25 Nicolas Koenig + Thomas Koenig + + PR fortran/25829 + * Makefile.am: Add async.c to gfor_io_src. + Add async.h to gfor_io_headers. + * Makefile.in: Regenerated. + * gfortran.map: Add _gfortran_st_wait_async. + * io/async.c: New file. + * io/async.h: New file. + * io/close.c: Include async.h. + (st_close): Call async_wait for an asynchronous unit. + * io/file_pos.c (st_backspace): Likewise. + (st_endfile): Likewise. + (st_rewind): Likewise. + (st_flush): Likewise. + * io/inquire.c: Add handling for asynchronous PENDING + and ID arguments. + * io/io.h (st_parameter_dt): Add async bit. + (st_parameter_wait): Correct. + (gfc_unit): Add au pointer. + (st_wait_async): Add prototype. + (transfer_array_inner): Likewise. + (st_write_done_worker): Likewise. + * io/open.c: Include async.h. + (new_unit): Initialize asynchronous unit. + * io/transfer.c (async_opt): New struct. + (wrap_scalar_transfer): New function. + (transfer_integer): Call wrap_scalar_transfer to do the work. + (transfer_real): Likewise. + (transfer_real_write): Likewise. + (transfer_character): Likewise. + (transfer_character_wide): Likewise. + (transfer_complex): Likewise. + (transfer_array_inner): New function. + (transfer_array): Call transfer_array_inner. + (transfer_derived): Call wrap_scalar_transfer. + (data_transfer_init): Check for asynchronous I/O. + Perform a wait operation on any pending asynchronous I/O + if the data transfer is synchronous. Copy PDT and enqueue + thread for data transfer. + (st_read_done_worker): New function. + (st_read_done): Enqueue transfer or call st_read_done_worker. + (st_write_done_worker): New function. + (st_write_done): Enqueue transfer or call st_read_done_worker. + (st_wait): Document as no-op for compatibility reasons. + (st_wait_async): New function. + * io/unit.c (insert_unit): Use macros LOCK, UNLOCK and TRYLOCK; + add NOTE where necessary. + (get_gfc_unit): Likewise. + (init_units): Likewise. + (close_unit_1): Likewise. Call async_close if asynchronous. + (close_unit): Use macros LOCK and UNLOCK. + (finish_last_advance_record): Likewise. + (newunit_alloc): Likewise. + * io/unix.c (find_file): Likewise. + (flush_all_units_1): Likewise. + (flush_all_units): Likewise. + * libgfortran.h (generate_error_common): Add prototype. + * runtime/error.c: Include io.h and async.h. + (generate_error_common): New function. + +2018-07-25 Nicolas Koenig + Thomas Koenig + + PR fortran/25829 + * Makefile.am: Add async.c to gfor_io_src. + Add async.h to gfor_io_headers. + * Makefile.in: Regenerated. + * gfortran.map: Add _gfortran_st_wait_async. + * io/async.c: New file. + * io/async.h: New file. + * io/close.c: Include async.h. + (st_close): Call async_wait for an asynchronous unit. + * io/file_pos.c (st_backspace): Likewise. + (st_endfile): Likewise. + (st_rewind): Likewise. + (st_flush): Likewise. + * io/inquire.c: Add handling for asynchronous PENDING + and ID arguments. + * io/io.h (st_parameter_dt): Add async bit. + (st_parameter_wait): Correct. + (gfc_unit): Add au pointer. + (st_wait_async): Add prototype. + (transfer_array_inner): Likewise. + (st_write_done_worker): Likewise. + * io/open.c: Include async.h. + (new_unit): Initialize asynchronous unit. + * io/transfer.c (async_opt): New struct. + (wrap_scalar_transfer): New function. + (transfer_integer): Call wrap_scalar_transfer to do the work. + (transfer_real): Likewise. + (transfer_real_write): Likewise. + (transfer_character): Likewise. + (transfer_character_wide): Likewise. + (transfer_complex): Likewise. + (transfer_array_inner): New function. + (transfer_array): Call transfer_array_inner. + (transfer_derived): Call wrap_scalar_transfer. + (data_transfer_init): Check for asynchronous I/O. + Perform a wait operation on any pending asynchronous I/O + if the data transfer is synchronous. Copy PDT and enqueue + thread for data transfer. + (st_read_done_worker): New function. + (st_read_done): Enqueue transfer or call st_read_done_worker. + (st_write_done_worker): New function. + (st_write_done): Enqueue transfer or call st_read_done_worker. + (st_wait): Document as no-op for compatibility reasons. + (st_wait_async): New function. + * io/unit.c (insert_unit): Use macros LOCK, UNLOCK and TRYLOCK; + add NOTE where necessary. + (get_gfc_unit): Likewise. + (init_units): Likewise. + (close_unit_1): Likewise. Call async_close if asynchronous. + (close_unit): Use macros LOCK and UNLOCK. + (finish_last_advance_record): Likewise. + (newunit_alloc): Likewise. + * io/unix.c (find_file): Likewise. + (flush_all_units_1): Likewise. + (flush_all_units): Likewise. + * libgfortran.h (generate_error_common): Add prototype. + * runtime/error.c: Include io.h and async.h. + (generate_error_common): New function. + +2018-06-09 Jerry DeLisle + + PR libgfortran/86070 + * io/write_float.def (build_float_string): Initialize *len. + +2018-06-01 Steven G. Kargl + + PR fortran/85816 + PR fortran/85975 + * libgfortran.h: Remove the GFC_DTYPE_COPY_SETRANK macro. + * intrinsics/reshape_generic.c: Directly assign rank. + * intrinsics/spread_generic.c: Ditto. + * m4/iforeach-s.m4: Ditto. + * m4/iforeach.m4: Ditto. + * m4/ifunction-s.m4: Ditto. + * m4/ifunction-s2.m4: Ditto. + * m4/ifunction.m4: Ditto. + * m4/ifunction_logical.m4: Ditto. + * m4/reshape.m4: Ditto. + * m4/spread.m4: Ditto. + * generated/all_l1.c: Regenerated from m4 files. + * generated/all_l16.c: Ditto. + * generated/all_l2.c: Ditto. + * generated/all_l4.c: Ditto. + * generated/all_l8.c: Ditto. + * generated/any_l1.c: Ditto. + * generated/any_l16.c: Ditto. + * generated/any_l2.c: Ditto. + * generated/any_l4.c: Ditto. + * generated/any_l8.c: Ditto. + * generated/count_16_l.c: Ditto. + * generated/count_1_l.c: Ditto. + * generated/count_2_l.c: Ditto. + * generated/count_4_l.c: Ditto. + * generated/count_8_l.c: Ditto. + * generated/iall_i1.c: Ditto. + * generated/iall_i16.c: Ditto. + * generated/iall_i2.c: Ditto. + * generated/iall_i4.c: Ditto. + * generated/iall_i8.c: Ditto. + * generated/iany_i1.c: Ditto. + * generated/iany_i16.c: Ditto. + * generated/iany_i2.c: Ditto. + * generated/iany_i4.c: Ditto. + * generated/iany_i8.c: Ditto. + * generated/iparity_i1.c: Ditto. + * generated/iparity_i16.c: Ditto. + * generated/iparity_i2.c: Ditto. + * generated/iparity_i4.c: Ditto. + * generated/iparity_i8.c: Ditto. + * generated/maxloc0_16_i1.c: Ditto. + * generated/maxloc0_16_i16.c: Ditto. + * generated/maxloc0_16_i2.c: Ditto. + * generated/maxloc0_16_i4.c: Ditto. + * generated/maxloc0_16_i8.c: Ditto. + * generated/maxloc0_16_r10.c: Ditto. + * generated/maxloc0_16_r16.c: Ditto. + * generated/maxloc0_16_r4.c: Ditto. + * generated/maxloc0_16_r8.c: Ditto. + * generated/maxloc0_16_s1.c: Ditto. + * generated/maxloc0_16_s4.c: Ditto. + * generated/maxloc0_4_i1.c: Ditto. + * generated/maxloc0_4_i16.c: Ditto. + * generated/maxloc0_4_i2.c: Ditto. + * generated/maxloc0_4_i4.c: Ditto. + * generated/maxloc0_4_i8.c: Ditto. + * generated/maxloc0_4_r10.c: Ditto. + * generated/maxloc0_4_r16.c: Ditto. + * generated/maxloc0_4_r4.c: Ditto. + * generated/maxloc0_4_r8.c: Ditto. + * generated/maxloc0_4_s1.c: Ditto. + * generated/maxloc0_4_s4.c: Ditto. + * generated/maxloc0_8_i1.c: Ditto. + * generated/maxloc0_8_i16.c: Ditto. + * generated/maxloc0_8_i2.c: Ditto. + * generated/maxloc0_8_i4.c: Ditto. + * generated/maxloc0_8_i8.c: Ditto. + * generated/maxloc0_8_r10.c: Ditto. + * generated/maxloc0_8_r16.c: Ditto. + * generated/maxloc0_8_r4.c: Ditto. + * generated/maxloc0_8_r8.c: Ditto. + * generated/maxloc0_8_s1.c: Ditto. + * generated/maxloc0_8_s4.c: Ditto. + * generated/maxloc1_16_i1.c: Ditto. + * generated/maxloc1_16_i16.c: Ditto. + * generated/maxloc1_16_i2.c: Ditto. + * generated/maxloc1_16_i4.c: Ditto. + * generated/maxloc1_16_i8.c: Ditto. + * generated/maxloc1_16_r10.c: Ditto. + * generated/maxloc1_16_r16.c: Ditto. + * generated/maxloc1_16_r4.c: Ditto. + * generated/maxloc1_16_r8.c: Ditto. + * generated/maxloc1_16_s1.c: Ditto. + * generated/maxloc1_16_s4.c: Ditto. + * generated/maxloc1_4_i1.c: Ditto. + * generated/maxloc1_4_i16.c: Ditto. + * generated/maxloc1_4_i2.c: Ditto. + * generated/maxloc1_4_i4.c: Ditto. + * generated/maxloc1_4_i8.c: Ditto. + * generated/maxloc1_4_r10.c: Ditto. + * generated/maxloc1_4_r16.c: Ditto. + * generated/maxloc1_4_r4.c: Ditto. + * generated/maxloc1_4_r8.c: Ditto. + * generated/maxloc1_4_s1.c: Ditto. + * generated/maxloc1_4_s4.c: Ditto. + * generated/maxloc1_8_i1.c: Ditto. + * generated/maxloc1_8_i16.c: Ditto. + * generated/maxloc1_8_i2.c: Ditto. + * generated/maxloc1_8_i4.c: Ditto. + * generated/maxloc1_8_i8.c: Ditto. + * generated/maxloc1_8_r10.c: Ditto. + * generated/maxloc1_8_r16.c: Ditto. + * generated/maxloc1_8_r4.c: Ditto. + * generated/maxloc1_8_r8.c: Ditto. + * generated/maxloc1_8_s1.c: Ditto. + * generated/maxloc1_8_s4.c: Ditto. + * generated/maxval1_s1.c: Ditto. + * generated/maxval1_s4.c: Ditto. + * generated/maxval_i1.c: Ditto. + * generated/maxval_i16.c: Ditto. + * generated/maxval_i2.c: Ditto. + * generated/maxval_i4.c: Ditto. + * generated/maxval_i8.c: Ditto. + * generated/maxval_r10.c: Ditto. + * generated/maxval_r16.c: Ditto. + * generated/maxval_r4.c: Ditto. + * generated/maxval_r8.c: Ditto. + * generated/minloc0_16_i1.c: Ditto. + * generated/minloc0_16_i16.c: Ditto. + * generated/minloc0_16_i2.c: Ditto. + * generated/minloc0_16_i4.c: Ditto. + * generated/minloc0_16_i8.c: Ditto. + * generated/minloc0_16_r10.c: Ditto. + * generated/minloc0_16_r16.c: Ditto. + * generated/minloc0_16_r4.c: Ditto. + * generated/minloc0_16_r8.c: Ditto. + * generated/minloc0_16_s1.c: Ditto. + * generated/minloc0_16_s4.c: Ditto. + * generated/minloc0_4_i1.c: Ditto. + * generated/minloc0_4_i16.c: Ditto. + * generated/minloc0_4_i2.c: Ditto. + * generated/minloc0_4_i4.c: Ditto. + * generated/minloc0_4_i8.c: Ditto. + * generated/minloc0_4_r10.c: Ditto. + * generated/minloc0_4_r16.c: Ditto. + * generated/minloc0_4_r4.c: Ditto. + * generated/minloc0_4_r8.c: Ditto. + * generated/minloc0_4_s1.c: Ditto. + * generated/minloc0_4_s4.c: Ditto. + * generated/minloc0_8_i1.c: Ditto. + * generated/minloc0_8_i16.c: Ditto. + * generated/minloc0_8_i2.c: Ditto. + * generated/minloc0_8_i4.c: Ditto. + * generated/minloc0_8_i8.c: Ditto. + * generated/minloc0_8_r10.c: Ditto. + * generated/minloc0_8_r16.c: Ditto. + * generated/minloc0_8_r4.c: Ditto. + * generated/minloc0_8_r8.c: Ditto. + * generated/minloc0_8_s1.c: Ditto. + * generated/minloc0_8_s4.c: Ditto. + * generated/minloc1_16_i1.c: Ditto. + * generated/minloc1_16_i16.c: Ditto. + * generated/minloc1_16_i2.c: Ditto. + * generated/minloc1_16_i4.c: Ditto. + * generated/minloc1_16_i8.c: Ditto. + * generated/minloc1_16_r10.c: Ditto. + * generated/minloc1_16_r16.c: Ditto. + * generated/minloc1_16_r4.c: Ditto. + * generated/minloc1_16_r8.c: Ditto. + * generated/minloc1_16_s1.c: Ditto. + * generated/minloc1_16_s4.c: Ditto. + * generated/minloc1_4_i1.c: Ditto. + * generated/minloc1_4_i16.c: Ditto. + * generated/minloc1_4_i2.c: Ditto. + * generated/minloc1_4_i4.c: Ditto. + * generated/minloc1_4_i8.c: Ditto. + * generated/minloc1_4_r10.c: Ditto. + * generated/minloc1_4_r16.c: Ditto. + * generated/minloc1_4_r4.c: Ditto. + * generated/minloc1_4_r8.c: Ditto. + * generated/minloc1_4_s1.c: Ditto. + * generated/minloc1_4_s4.c: Ditto. + * generated/minloc1_8_i1.c: Ditto. + * generated/minloc1_8_i16.c: Ditto. + * generated/minloc1_8_i2.c: Ditto. + * generated/minloc1_8_i4.c: Ditto. + * generated/minloc1_8_i8.c: Ditto. + * generated/minloc1_8_r10.c: Ditto. + * generated/minloc1_8_r16.c: Ditto. + * generated/minloc1_8_r4.c: Ditto. + * generated/minloc1_8_r8.c: Ditto. + * generated/minloc1_8_s1.c: Ditto. + * generated/minloc1_8_s4.c: Ditto. + * generated/minval1_s1.c: Ditto. + * generated/minval1_s4.c: Ditto. + * generated/minval_i1.c: Ditto. + * generated/minval_i16.c: Ditto. + * generated/minval_i2.c: Ditto. + * generated/minval_i4.c: Ditto. + * generated/minval_i8.c: Ditto. + * generated/minval_r10.c: Ditto. + * generated/minval_r16.c: Ditto. + * generated/minval_r4.c: Ditto. + * generated/minval_r8.c: Ditto. + * generated/norm2_r10.c: Ditto. + * generated/norm2_r16.c: Ditto. + * generated/norm2_r4.c: Ditto. + * generated/norm2_r8.c: Ditto. + * generated/parity_l1.c: Ditto. + * generated/parity_l16.c: Ditto. + * generated/parity_l2.c: Ditto. + * generated/parity_l4.c: Ditto. + * generated/parity_l8.c: Ditto. + * generated/product_c10.c: Ditto. + * generated/product_c16.c: Ditto. + * generated/product_c4.c: Ditto. + * generated/product_c8.c: Ditto. + * generated/product_i1.c: Ditto. + * generated/product_i16.c: Ditto. + * generated/product_i2.c: Ditto. + * generated/product_i4.c: Ditto. + * generated/product_i8.c: Ditto. + * generated/product_r10.c: Ditto. + * generated/product_r16.c: Ditto. + * generated/product_r4.c: Ditto. + * generated/product_r8.c: Ditto. + * generated/reshape_c10.c: Ditto. + * generated/reshape_c16.c: Ditto. + * generated/reshape_c4.c: Ditto. + * generated/reshape_c8.c: Ditto. + * generated/reshape_i16.c: Ditto. + * generated/reshape_i4.c: Ditto. + * generated/reshape_i8.c: Ditto. + * generated/reshape_r10.c: Ditto. + * generated/reshape_r16.c: Ditto. + * generated/reshape_r4.c: Ditto. + * generated/reshape_r8.c: Ditto. + * generated/spread_c10.c: Ditto. + * generated/spread_c16.c: Ditto. + * generated/spread_c4.c: Ditto. + * generated/spread_c8.c: Ditto. + * generated/spread_i1.c: Ditto. + * generated/spread_i16.c: Ditto. + * generated/spread_i2.c: Ditto. + * generated/spread_i4.c: Ditto. + * generated/spread_i8.c: Ditto. + * generated/spread_r10.c: Ditto. + * generated/spread_r16.c: Ditto. + * generated/spread_r4.c: Ditto. + * generated/spread_r8.c: Ditto. + * generated/sum_c10.c: Ditto. + * generated/sum_c16.c: Ditto. + * generated/sum_c4.c: Ditto. + * generated/sum_c8.c: Ditto. + * generated/sum_i1.c: Ditto. + * generated/sum_i16.c: Ditto. + * generated/sum_i2.c: Ditto. + * generated/sum_i4.c: Ditto. + * generated/sum_i8.c: Ditto. + * generated/sum_r10.c: Ditto. + * generated/sum_r16.c: Ditto. + * generated/sum_r4.c: Ditto. + * generated/sum_r8.c: Ditto. + +2018-06-01 Steven G. Kargl + + PR fortran/63570 + * libgfortran/Makefile.am: Add random_init.f90 to build. + * libgfortran/Makefile.in: Regenerated. + * libgfortran/gfortran.map: Expose symbol for _gfortran_random_init. + * libgfortran/intrinsics/random_init.f90: Implementation. + +2018-05-28 Jerry DeLisle + + PR libgfortran/85840 + * io/write.c (write_real, write_real_g0, write_complex): Use + separate local variables for the float string length. + +2018-05-26 Jerry DeLisle + + PR libgfortran/85906 + * io/write.c (write_integer): Initialise the fnode format to + FMT_NONE, used for list directed write. + (BUF_STACK_SZ): Bump default buffer size up to avoid allocs on + small stuff. + +2018-05-26 Jerry DeLisle + + PR libgfortran/85840 + * io/write.c (write_float_0): Use separate local variable for + the float string length. + +2018-05-08 Thomas Koenig + + PR fortran/54613 + * m4/iforeach-s.m4: Remove assertion that back is zero. + * m4/iforeach.m4: Likewise. Remove leading 'do' + before implementation start. + * m4/ifunction-s.m4: Remove assertion that back is zero. + * m4/ifunction.m4: Likewise. Remove for loop if HAVE_BACK_ARG + is defined. + * m4/maxloc0.m4: Reorganize loops. Split loops between >= and =, + depending if back is true. Mark the condition of having + found a value which exceeds the limit as unlikely. + * m4/minloc0.m4: Likewise. + * m4/maxloc1.m4: Likewise. + * m4/minloc1.m4: Likewise. + * m4/maxloc1s.m4: Handle back argument. + * m4/minloc1s.m4: Likewise. + * m4/maxloc2s.m4: Remove assertion that back is zero. + Remove special handling of loop start. Handle back argument. + * m4/minloc2s.m4: Likewise. + * generated/iall_i1.c: Regenerated. + * generated/iall_i16.c: Regenerated. + * generated/iall_i2.c: Regenerated. + * generated/iall_i4.c: Regenerated. + * generated/iall_i8.c: Regenerated. + * generated/iany_i1.c: Regenerated. + * generated/iany_i16.c: Regenerated. + * generated/iany_i2.c: Regenerated. + * generated/iany_i4.c: Regenerated. + * generated/iany_i8.c: Regenerated. + * generated/iparity_i1.c: Regenerated. + * generated/iparity_i16.c: Regenerated. + * generated/iparity_i2.c: Regenerated. + * generated/iparity_i4.c: Regenerated. + * generated/iparity_i8.c: Regenerated. + * generated/maxloc0_16_i1.c: Regenerated. + * generated/maxloc0_16_i16.c: Regenerated. + * generated/maxloc0_16_i2.c: Regenerated. + * generated/maxloc0_16_i4.c: Regenerated. + * generated/maxloc0_16_i8.c: Regenerated. + * generated/maxloc0_16_r10.c: Regenerated. + * generated/maxloc0_16_r16.c: Regenerated. + * generated/maxloc0_16_r4.c: Regenerated. + * generated/maxloc0_16_r8.c: Regenerated. + * generated/maxloc0_16_s1.c: Regenerated. + * generated/maxloc0_16_s4.c: Regenerated. + * generated/maxloc0_4_i1.c: Regenerated. + * generated/maxloc0_4_i16.c: Regenerated. + * generated/maxloc0_4_i2.c: Regenerated. + * generated/maxloc0_4_i4.c: Regenerated. + * generated/maxloc0_4_i8.c: Regenerated. + * generated/maxloc0_4_r10.c: Regenerated. + * generated/maxloc0_4_r16.c: Regenerated. + * generated/maxloc0_4_r4.c: Regenerated. + * generated/maxloc0_4_r8.c: Regenerated. + * generated/maxloc0_4_s1.c: Regenerated. + * generated/maxloc0_4_s4.c: Regenerated. + * generated/maxloc0_8_i1.c: Regenerated. + * generated/maxloc0_8_i16.c: Regenerated. + * generated/maxloc0_8_i2.c: Regenerated. + * generated/maxloc0_8_i4.c: Regenerated. + * generated/maxloc0_8_i8.c: Regenerated. + * generated/maxloc0_8_r10.c: Regenerated. + * generated/maxloc0_8_r16.c: Regenerated. + * generated/maxloc0_8_r4.c: Regenerated. + * generated/maxloc0_8_r8.c: Regenerated. + * generated/maxloc0_8_s1.c: Regenerated. + * generated/maxloc0_8_s4.c: Regenerated. + * generated/maxloc1_16_i1.c: Regenerated. + * generated/maxloc1_16_i16.c: Regenerated. + * generated/maxloc1_16_i2.c: Regenerated. + * generated/maxloc1_16_i4.c: Regenerated. + * generated/maxloc1_16_i8.c: Regenerated. + * generated/maxloc1_16_r10.c: Regenerated. + * generated/maxloc1_16_r16.c: Regenerated. + * generated/maxloc1_16_r4.c: Regenerated. + * generated/maxloc1_16_r8.c: Regenerated. + * generated/maxloc1_16_s1.c: Regenerated. + * generated/maxloc1_16_s4.c: Regenerated. + * generated/maxloc1_4_i1.c: Regenerated. + * generated/maxloc1_4_i16.c: Regenerated. + * generated/maxloc1_4_i2.c: Regenerated. + * generated/maxloc1_4_i4.c: Regenerated. + * generated/maxloc1_4_i8.c: Regenerated. + * generated/maxloc1_4_r10.c: Regenerated. + * generated/maxloc1_4_r16.c: Regenerated. + * generated/maxloc1_4_r4.c: Regenerated. + * generated/maxloc1_4_r8.c: Regenerated. + * generated/maxloc1_4_s1.c: Regenerated. + * generated/maxloc1_4_s4.c: Regenerated. + * generated/maxloc1_8_i1.c: Regenerated. + * generated/maxloc1_8_i16.c: Regenerated. + * generated/maxloc1_8_i2.c: Regenerated. + * generated/maxloc1_8_i4.c: Regenerated. + * generated/maxloc1_8_i8.c: Regenerated. + * generated/maxloc1_8_r10.c: Regenerated. + * generated/maxloc1_8_r16.c: Regenerated. + * generated/maxloc1_8_r4.c: Regenerated. + * generated/maxloc1_8_r8.c: Regenerated. + * generated/maxloc1_8_s1.c: Regenerated. + * generated/maxloc1_8_s4.c: Regenerated. + * generated/maxloc2_16_s1.c: Regenerated. + * generated/maxloc2_16_s4.c: Regenerated. + * generated/maxloc2_4_s1.c: Regenerated. + * generated/maxloc2_4_s4.c: Regenerated. + * generated/maxloc2_8_s1.c: Regenerated. + * generated/maxloc2_8_s4.c: Regenerated. + * generated/maxval_i1.c: Regenerated. + * generated/maxval_i16.c: Regenerated. + * generated/maxval_i2.c: Regenerated. + * generated/maxval_i4.c: Regenerated. + * generated/maxval_i8.c: Regenerated. + * generated/maxval_r10.c: Regenerated. + * generated/maxval_r16.c: Regenerated. + * generated/maxval_r4.c: Regenerated. + * generated/maxval_r8.c: Regenerated. + * generated/minloc0_16_i1.c: Regenerated. + * generated/minloc0_16_i16.c: Regenerated. + * generated/minloc0_16_i2.c: Regenerated. + * generated/minloc0_16_i4.c: Regenerated. + * generated/minloc0_16_i8.c: Regenerated. + * generated/minloc0_16_r10.c: Regenerated. + * generated/minloc0_16_r16.c: Regenerated. + * generated/minloc0_16_r4.c: Regenerated. + * generated/minloc0_16_r8.c: Regenerated. + * generated/minloc0_16_s1.c: Regenerated. + * generated/minloc0_16_s4.c: Regenerated. + * generated/minloc0_4_i1.c: Regenerated. + * generated/minloc0_4_i16.c: Regenerated. + * generated/minloc0_4_i2.c: Regenerated. + * generated/minloc0_4_i4.c: Regenerated. + * generated/minloc0_4_i8.c: Regenerated. + * generated/minloc0_4_r10.c: Regenerated. + * generated/minloc0_4_r16.c: Regenerated. + * generated/minloc0_4_r4.c: Regenerated. + * generated/minloc0_4_r8.c: Regenerated. + * generated/minloc0_4_s1.c: Regenerated. + * generated/minloc0_4_s4.c: Regenerated. + * generated/minloc0_8_i1.c: Regenerated. + * generated/minloc0_8_i16.c: Regenerated. + * generated/minloc0_8_i2.c: Regenerated. + * generated/minloc0_8_i4.c: Regenerated. + * generated/minloc0_8_i8.c: Regenerated. + * generated/minloc0_8_r10.c: Regenerated. + * generated/minloc0_8_r16.c: Regenerated. + * generated/minloc0_8_r4.c: Regenerated. + * generated/minloc0_8_r8.c: Regenerated. + * generated/minloc0_8_s1.c: Regenerated. + * generated/minloc0_8_s4.c: Regenerated. + * generated/minloc1_16_i1.c: Regenerated. + * generated/minloc1_16_i16.c: Regenerated. + * generated/minloc1_16_i2.c: Regenerated. + * generated/minloc1_16_i4.c: Regenerated. + * generated/minloc1_16_i8.c: Regenerated. + * generated/minloc1_16_r10.c: Regenerated. + * generated/minloc1_16_r16.c: Regenerated. + * generated/minloc1_16_r4.c: Regenerated. + * generated/minloc1_16_r8.c: Regenerated. + * generated/minloc1_16_s1.c: Regenerated. + * generated/minloc1_16_s4.c: Regenerated. + * generated/minloc1_4_i1.c: Regenerated. + * generated/minloc1_4_i16.c: Regenerated. + * generated/minloc1_4_i2.c: Regenerated. + * generated/minloc1_4_i4.c: Regenerated. + * generated/minloc1_4_i8.c: Regenerated. + * generated/minloc1_4_r10.c: Regenerated. + * generated/minloc1_4_r16.c: Regenerated. + * generated/minloc1_4_r4.c: Regenerated. + * generated/minloc1_4_r8.c: Regenerated. + * generated/minloc1_4_s1.c: Regenerated. + * generated/minloc1_4_s4.c: Regenerated. + * generated/minloc1_8_i1.c: Regenerated. + * generated/minloc1_8_i16.c: Regenerated. + * generated/minloc1_8_i2.c: Regenerated. + * generated/minloc1_8_i4.c: Regenerated. + * generated/minloc1_8_i8.c: Regenerated. + * generated/minloc1_8_r10.c: Regenerated. + * generated/minloc1_8_r16.c: Regenerated. + * generated/minloc1_8_r4.c: Regenerated. + * generated/minloc1_8_r8.c: Regenerated. + * generated/minloc1_8_s1.c: Regenerated. + * generated/minloc1_8_s4.c: Regenerated. + * generated/minloc2_16_s1.c: Regenerated. + * generated/minloc2_16_s4.c: Regenerated. + * generated/minloc2_4_s1.c: Regenerated. + * generated/minloc2_4_s4.c: Regenerated. + * generated/minloc2_8_s1.c: Regenerated. + * generated/minloc2_8_s4.c: Regenerated. + * generated/minval_i1.c: Regenerated. + * generated/minval_i16.c: Regenerated. + * generated/minval_i2.c: Regenerated. + * generated/minval_i4.c: Regenerated. + * generated/minval_i8.c: Regenerated. + * generated/minval_r10.c: Regenerated. + * generated/minval_r16.c: Regenerated. + * generated/minval_r4.c: Regenerated. + * generated/minval_r8.c: Regenerated. + * generated/norm2_r10.c: Regenerated. + * generated/norm2_r16.c: Regenerated. + * generated/norm2_r4.c: Regenerated. + * generated/norm2_r8.c: Regenerated. + * generated/parity_l1.c: Regenerated. + * generated/parity_l16.c: Regenerated. + * generated/parity_l2.c: Regenerated. + * generated/parity_l4.c: Regenerated. + * generated/parity_l8.c: Regenerated. + * generated/product_c10.c: Regenerated. + * generated/product_c16.c: Regenerated. + * generated/product_c4.c: Regenerated. + * generated/product_c8.c: Regenerated. + * generated/product_i1.c: Regenerated. + * generated/product_i16.c: Regenerated. + * generated/product_i2.c: Regenerated. + * generated/product_i4.c: Regenerated. + * generated/product_i8.c: Regenerated. + * generated/product_r10.c: Regenerated. + * generated/product_r16.c: Regenerated. + * generated/product_r4.c: Regenerated. + * generated/product_r8.c: Regenerated. + * generated/sum_c10.c: Regenerated. + * generated/sum_c16.c: Regenerated. + * generated/sum_c4.c: Regenerated. + * generated/sum_c8.c: Regenerated. + * generated/sum_i1.c: Regenerated. + * generated/sum_i16.c: Regenerated. + * generated/sum_i2.c: Regenerated. + * generated/sum_i4.c: Regenerated. + * generated/sum_i8.c: Regenerated. + * generated/sum_r10.c: Regenerated. + * generated/sum_r16.c: Regenerated. + * generated/sum_r4.c: Regenerated. + * generated/sum_r8.c: Regenerated. + +2018-04-24 H.J. Lu + + * configure: Regenerated. + +2018-04-19 Thomas Schwinge + + PR libfortran/85166 + PR libgomp/85463 + * runtime/minimal.c (stop_numeric): Reimplement. + (stop_string, error_stop_string, error_stop_numeric): New + functions. + +2018-04-19 Jakub Jelinek + + * configure: Regenerated. + +2018-04-18 David Malcolm + + PR jit/85384 + * configure: Regenerate. + +2018-04-06 Thomas Koenig + + PR libfortran/85253 + * m4/matmul_internal.m4: If ycount == 1, add one more row to + the internal buffer. + * generated/matmul_c10.c: Regenerated. + * generated/matmul_c16.c: Regenerated. + * generated/matmul_c4.c: Regenerated. + * generated/matmul_c8.c: Regenerated. + * generated/matmul_i1.c: Regenerated. + * generated/matmul_i16.c: Regenerated. + * generated/matmul_i2.c: Regenerated. + * generated/matmul_i4.c: Regenerated. + * generated/matmul_i8.c: Regenerated. + * generated/matmul_r10.c: Regenerated. + * generated/matmul_r16.c: Regenerated. + * generated/matmul_r4.c: Regenerated. + * generated/matmul_r8.c: Regenerated. + * generated/matmulavx128_c10.c: Regenerated. + * generated/matmulavx128_c16.c: Regenerated. + * generated/matmulavx128_c4.c: Regenerated. + * generated/matmulavx128_c8.c: Regenerated. + * generated/matmulavx128_i1.c: Regenerated. + * generated/matmulavx128_i16.c: Regenerated. + * generated/matmulavx128_i2.c: Regenerated. + * generated/matmulavx128_i4.c: Regenerated. + * generated/matmulavx128_i8.c: Regenerated. + * generated/matmulavx128_r10.c: Regenerated. + * generated/matmulavx128_r16.c: Regenerated. + * generated/matmulavx128_r4.c: Regenerated. + * generated/matmulavx128_r8.c: Regenerated. + +2018-04-04 Thomas Koenig + + PR libfortran/85166 + * runtime/minimal.c (stop_numeric): Add new function in order to + implement numeric stop on minimal targets. + +2018-03-28 Jakub Jelinek + + * io/io.h (IOPARM_DT_DEFAULT_EXP): Rename to ... + (IOPARM_DT_DEC_EXT): ... this. + * io/list_read.c (parse_real): Adjust for IOPARM_DT_DEFAULT_EXP + renaming to IOPARM_DT_DEC_EXT. + (read_real): Likewise. + * io/read.c (read_f): Likewise. + +2018-03-15 Jakub Jelinek + + PR libgfortran/84880 + * intrinsics/kill.c (kill): Rename to... + (PREFIX (kill)): ... this. Use export_proto_np instead of export_proto. + +2018-03-13 Steven G. Kargl + + * libgfortran/gfortran.map: Remove _gfortran_kill_i4, + _gfortran_kill_i4_sub, _gfortran_kill_i8, and _gfortran_kill_i8_sub. + Add _gfortran_kill and _gfortran_kill_sub. + * libgfortran/intrinsics/kill.c: Eliminate _gfortran_kill_i4, + _gfortran_kill_i4_sub, _gfortran_kill_i8, and _gfortran_kill_i8_sub. + Add _gfortran_kill and _gfortran_kill_sub. + +2018-02-23 Janne Blomqvist + + PR fortran/84519 + * caf/libcaf.h (_gfortran_caf_stop_numeric): Add bool argument. + (_gfortran_caf_stop_str): Likewise. + (_gfortran_caf_error_stop_str): Likewise. + (_gfortran_caf_error_stop): Likewise. + * caf/mpi.c (_gfortran_caf_error_stop_str): Handle new argument. + (_gfortran_caf_error_stop): Likewise. + * caf/single.c (_gfortran_caf_stop_numeric): Likewise. + (_gfortran_caf_stop_str): Likewise. + (_gfortran_caf_error_stop_str): Likewise. + (_gfortran_caf_error_stop): Likewise. + (_gfortran_caf_lock): Likewise. + (_gfortran_caf_unlock): Likewise. + * libgfortran.h (stop_string): Add bool argument. + * runtime/pause.c (do_pause): Add false argument. + * runtime/stop.c (stop_numeric): Handle new argument. + (stop_string): Likewise. + (error_stop_string): Likewise. + (error_stop_numeric): Likewise. + +2018-02-22 Janne Blomqvist + + PR 78534 + PR 84509 + * runtime/pause.c (pause_numeric): Modify to take GFC_INTEGER_8 + argument. + (pause_string): Modify to take size_t character length argument. + +2018-02-22 Janne Blomqvist + + * libgfortran.h (stop_string): Use size_t for character length. + * runtime/stop.c (stop_string): Likewise. + (error_stop_string): Likewise. + (stop_numeric): Use int for exit code. + (error_stop_numeric): Likewise. + * caf/libcaf.h: Remove stdint.h include. + (_gfortran_caf_register): Use size_t for character length. + (_gfortran_caf_deregister): Likewise. + (_gfortran_caf_sync_all): Likewise. + (_gfortran_caf_sync_memory): Likewise. + (_gfortran_caf_sync_images): Likewise. + (_gfortran_caf_stop_numeric): Use int for exit code. + (_gfortran_caf_stop_str): Use size_t for character length. + (_gfortran_caf_error_stop_str): Likewise. + (_gfortran_caf_error_stop): Use int for exit code. + (_gfortran_caf_co_broadcast): Use size_t for character length. + (_gfortran_caf_co_sum): Likewise. + (_gfortran_caf_co_min): Likewise. + (_gfortran_caf_co_max): Likewise. + (_gfortran_caf_co_reduce): Likewise. + (_gfortran_caf_lock): Likewise. + (_gfortran_caf_unlock): Likewise. + (_gfortran_caf_event_post): Likewise. + (_gfortran_caf_event_wait): Likewise. + * caf/mpi.c (_gfortran_caf_register): Update implementation to + match prototype. + (_gfortran_caf_deregister): Likewise. + (_gfortran_caf_sync_all): Likewise. + (_gfortran_caf_sync_images): Likewise. + (_gfortran_caf_error_stop_str): Likewise. + (_gfortran_caf_error_stop): Likewise. + * caf/single.c (caf_internal_error): Likewise. + (_gfortran_caf_register): Likewise. + (_gfortran_caf_deregister): Likewise. + (_gfortran_caf_sync_all): Likewise. + (_gfortran_caf_sync_memory): Likewise. + (_gfortran_caf_sync_images): Likewise. + (_gfortran_caf_stop_numeric): Likewise. + (_gfortran_caf_stop_str): Likewise. + (_gfortran_caf_error_stop_str): Likewise. + (_gfortran_caf_error_stop): Likewise. + (_gfortran_caf_co_broadcast): Likewise. + (_gfortran_caf_co_sum): Likewise. + (_gfortran_caf_co_min): Likewise. + (_gfortran_caf_co_max): Likewise. + (_gfortran_caf_co_reduce): Likewise. + (_gfortran_caf_event_post): Likewise. + (_gfortran_caf_event_wait): Likewise. + (_gfortran_caf_lock): Likewise. + (_gfortran_caf_unlock): Likewise. + +2018-02-19 Andre Vehreschild + + * caf/libcaf.h: Add type parameters to the caf_*_by_ref prototypes. + * caf/single.c (get_for_ref): Simplifications and now respecting + the type argument. + (_gfortran_caf_get_by_ref): Added source type handing to get_for_ref(). + (send_by_ref): Simplifications and respecting the dst_type now. + (_gfortran_caf_send_by_ref): Added destination type hand over to + send_by_ref(). + (_gfortran_caf_sendget_by_ref): Added general support and fixed stack + corruption. The function is now really usable. + +2018-02-14 Igor Tsimbalist + + PR target/84148 + * configure: Regenerate. + +2018-02-18 Jerry DeLisle + + PR libgfortran/84412 + * io/transfer.c (finalize_transfer): After completng an internal unit + I/O operation, clear internal_unit_kind. + +2018-02-12 Thomas Koenig + + * libgfortran.h (GFC_ARRAY_DESCRIPTOR): Remove dimension + of descriptor to use vaiable members for dim. + Change usage of GFC_ARRAY_DESCRIPTOR accordingly. + (GFC_FILL_ARRAY_DESCRIPTOR): New macro. + (gfc_full_array_i4): New type. + * intrinsics/date_and_time.c (secnds): Use sizeof + (gfc_array_i4) + sizeof (descriptor_dimension) for memory + allocation. + * intrinsics/reshape_generic.c: Use GFC_FULL_ARRAY_DESCRIPTOR. + * io/format.c: Use sizeof (gfc_array_i4) + sizeof + (descriptor_dimension) for memoy allocation. + * io/list_read.c (list_formatted_read_scalar): Use + gfc_full_array_i4 for variable. + (nml_read_obj): Likewise. + * io/write.c (list_formatted_write_scalar): Likewise. + (nml_write_obj): Likewise. + * m4/reshape.m4: Use GFC_FULL_ARRAY_DESCRIPTOR. + * generated/reshape_c10.c: Regenerated. + * generated/reshape_c16.c: Regenerated. + * generated/reshape_c4.c: Regenerated. + * generated/reshape_c8.c: Regenerated. + * generated/reshape_i16.c: Regenerated. + * generated/reshape_i4.c: Regenerated. + * generated/reshape_i8.c: Regenerated. + * generated/reshape_r10.c: Regenerated. + * generated/reshape_r16.c: Regenerated. + * generated/reshape_r4.c: Regenerated. + * generated/reshape_r8.c: Regenerated. + +2018-01-31 Janne Blomqvist + + * generated/cshift1_16.c (cshift1): Regenerated. + * generated/cshift1_4.c (cshift1): Regenerated. + * generated/cshift1_8.c (cshift1): Regenerated. + * generated/eoshift1_16.c (eoshift1): Regenerated. + * generated/eoshift1_4.c (eoshift1): Regenerated. + * generated/eoshift1_8.c (eoshift1): Regenerated. + * generated/eoshift3_16.c (eoshift3): Regenerated. + * generated/eoshift3_4.c (eoshift3): Regenerated. + * generated/eoshift3_8.c (eoshift3): Regenerated. + * generated/in_pack_c10.c (internal_pack_c10): Regenerated. + * generated/in_pack_c16.c (internal_pack_c16): Regenerated. + * generated/in_pack_c4.c (internal_pack_c4): Regenerated. + * generated/in_pack_c8.c (internal_pack_c8): Regenerated. + * generated/in_pack_i1.c (internal_pack_1): Regenerated. + * generated/in_pack_i16.c (internal_pack_16): Regenerated. + * generated/in_pack_i2.c (internal_pack_2): Regenerated. + * generated/in_pack_i4.c (internal_pack_4): Regenerated. + * generated/in_pack_i8.c (internal_pack_8): Regenerated. + * generated/in_pack_r10.c (internal_pack_r10): Regenerated. + * generated/in_pack_r16.c (internal_pack_r16): Regenerated. + * generated/in_pack_r4.c (internal_pack_r4): Regenerated. + * generated/in_pack_r8.c (internal_pack_r8): Regenerated. + * generated/in_unpack_c10.c (internal_unpack_c10): Regenerated. + * generated/in_unpack_c16.c (internal_unpack_c16): Regenerated. + * generated/in_unpack_c4.c (internal_unpack_c4): Regenerated. + * generated/in_unpack_c8.c (internal_unpack_c8): Regenerated. + * generated/in_unpack_i1.c (internal_unpack_1): Regenerated. + * generated/in_unpack_i16.c (internal_unpack_16): Regenerated. + * generated/in_unpack_i2.c (internal_unpack_2): Regenerated. + * generated/in_unpack_i4.c (internal_unpack_4): Regenerated. + * generated/in_unpack_i8.c (internal_unpack_8): Regenerated. + * generated/in_unpack_r10.c (internal_unpack_r10): Regenerated. + * generated/in_unpack_r16.c (internal_unpack_r16): Regenerated. + * generated/in_unpack_r4.c (internal_unpack_r4): Regenerated. + * generated/in_unpack_r8.c (internal_unpack_r8): Regenerated. + * generated/reshape_c10.c (reshape_c10): Regenerated. + * generated/reshape_c16.c (reshape_c16): Regenerated. + * generated/reshape_c4.c (reshape_c4): Regenerated. + * generated/reshape_c8.c (reshape_c8): Regenerated. + * generated/reshape_i16.c (reshape_16): Regenerated. + * generated/reshape_i4.c (reshape_4): Regenerated. + * generated/reshape_i8.c (reshape_8): Regenerated. + * generated/reshape_r10.c (reshape_r10): Regenerated. + * generated/reshape_r16.c (reshape_r16): Regenerated. + * generated/reshape_r4.c (reshape_r4): Regenerated. + * generated/reshape_r8.c (reshape_r8): Regenerated. + * generated/shape_i1.c (shape_1): Regenerated. + * generated/shape_i16.c (shape_16): Regenerated. + * generated/shape_i2.c (shape_2): Regenerated. + * generated/shape_i4.c (shape_4): Regenerated. + * generated/shape_i8.c (shape_8): Regenerated. + * generated/spread_c10.c (spread_scalar_c10): Regenerated. + * generated/spread_c16.c (spread_scalar_c16): Regenerated. + * generated/spread_c4.c (spread_scalar_c4): Regenerated. + * generated/spread_c8.c (spread_scalar_c8): Regenerated. + * generated/spread_i1.c (spread_scalar_i1): Regenerated. + * generated/spread_i16.c (spread_scalar_i16): Regenerated. + * generated/spread_i2.c (spread_scalar_i2): Regenerated. + * generated/spread_i4.c (spread_scalar_i4): Regenerated. + * generated/spread_i8.c (spread_scalar_i8): Regenerated. + * generated/spread_r10.c (spread_scalar_r10): Regenerated. + * generated/spread_r16.c (spread_scalar_r16): Regenerated. + * generated/spread_r4.c (spread_scalar_r4): Regenerated. + * generated/spread_r8.c (spread_scalar_r8): Regenerated. + * intrinsics/random.c (jump): Use size_t for array index in loop. + (getosrandom): Likewise. + (arandom_r4): Make n an index_type. + (arandom_r8): Likewise. + (arandom_r10): Likewise. + (arandom_r16): Likewise. + (scramble_seed): Use size_t for array index in loop. + * m4/cshift1.m4: Make i an index_type. + * m4/eoshift1.m4: Likewise. + * m4/eoshift3.m4: Likewise. + * m4/in_pack.m4: Make n an index_type. + * m4/in_unpack.m4: Likewise. + * m4/reshape.m4: Make n and dim index_type's. + * m4/shape.m4: Make n an index_type. + * m4/spread.m4: Likewise, use index_type argument rather than + copying to int. + * runtime/bounds.c (bounds_ifunction_return): Make n an + index_type. + * runtime/in_pack_generic.c (internal_pack): Likewise. + * runtime/in_unpack_generic.c (internal_unpack): Make n and size + index_type's. + +2018-01-30 Thomas Koenig + + PR fortran/37577 + * libgfortran.h: Remove GFC_DTYPE_DERIVED_1, GFC_DTYPE_DERIVED_2, + GFC_DTYPE_DERIVED_4, GFC_DTYPE_DERIVED_8 and GFC_DTYPE_DERIVED_16. + * m4/cshift1.m4: Remove GFC_DTYPE_DERIVED_1. + * generated/cshift1_16.c: Regenerated. + * generated/cshift1_4.c: Regenerated. + * generated/cshift1_8.c: Regenerated. + * intrinsics/cshift0.c: Remove GFC_DTYPE_DERIVED_1. + * intrinsics/pack_generic.c (pack): Move handling of other types + into separate switch statement. + * intrinsics/spread_generic.c (spread): Likewise. + (spread_scalar): Likewise. + * intrinsics/unpack_generic.c (unpack1): Likewise. + (unpack0): Likewise. + * runtime/in_pack_generic.c (internal_pack): Likewise. + * runtime/in_unpack_generic.c (internal_unpack): Likewise. + +2018-01-25 Paul Thomas + + PR fortran/37577 + * caf/single.c (_gfortran_caf_failed_images): Access the 'type' + and 'elem_len' fields of the dtype instead of the shifts. + (_gfortran_caf_stopped_images): Likewise. + * intrinsics/associated.c (associated): Compare the 'type' and + 'elem_len' fields instead of the dtype. + * caf/date_and_time.c : Access the dtype fields rather using + shifts and masks. + * io/transfer.c (transfer_array ): Comment on item count. + (set_nml_var,st_set_nml_var): Change dtype type and use fields. + (st_set_nml_dtio_var): Likewise. + * libgfortran.h : Change definition of GFC_ARRAY_DESCRIPTOR and + add a typedef for the dtype_type. Change the GFC_DTYPE_* macros + to access the dtype fields. + +2018-01-15 Thomas Koenig + + PR fortran/54613 + * m4/iparm.m4: Add back_arg macro if in minloc or maxloc. + * m4/iforeach-s.m4: Add optional argument back with back_arg + macro. Improve m4 quoting. If HAVE_BACK_ARG is defined, assert + that back is non-true. + * m4/iforeach.m4: Likewise. + * m4/ifunction-s.m4: Likewise. + * m4/ifunction.m4: Likewise. + * m4/maxloc0.m4: Include assert.h + * m4/minloc0.m4: Likewise. + * m4/maxloc0s.m4: #define HAVE_BACK_ARG. + * m4/minloc0s.m4: Likewise. + * m4/maxloc1s.m4: Likewise. + * m4/minloc1s.m4: Likewise. + * m4/maxloc1.m4: Include assert.h, #define HAVE_BACK_ARG. + * m4/minloc1.m4: Likewise. + * m4/maxloc2s.m4: Add assert.h, add back_arg, assert that + back is non-true. + * m4/minloc2s.m4: Likewise. + * generated/iall_i1.c: Regenerated. + * generated/iall_i16.c: Regenerated. + * generated/iall_i2.c: Regenerated. + * generated/iall_i4.c: Regenerated. + * generated/iall_i8.c: Regenerated. + * generated/iany_i1.c: Regenerated. + * generated/iany_i16.c: Regenerated. + * generated/iany_i2.c: Regenerated. + * generated/iany_i4.c: Regenerated. + * generated/iany_i8.c: Regenerated. + * generated/iparity_i1.c: Regenerated. + * generated/iparity_i16.c: Regenerated. + * generated/iparity_i2.c: Regenerated. + * generated/iparity_i4.c: Regenerated. + * generated/iparity_i8.c: Regenerated. + * generated/maxloc0_16_i1.c: Regenerated. + * generated/maxloc0_16_i16.c: Regenerated. + * generated/maxloc0_16_i2.c: Regenerated. + * generated/maxloc0_16_i4.c: Regenerated. + * generated/maxloc0_16_i8.c: Regenerated. + * generated/maxloc0_16_r10.c: Regenerated. + * generated/maxloc0_16_r16.c: Regenerated. + * generated/maxloc0_16_r4.c: Regenerated. + * generated/maxloc0_16_r8.c: Regenerated. + * generated/maxloc0_16_s1.c: Regenerated. + * generated/maxloc0_16_s4.c: Regenerated. + * generated/maxloc0_4_i1.c: Regenerated. + * generated/maxloc0_4_i16.c: Regenerated. + * generated/maxloc0_4_i2.c: Regenerated. + * generated/maxloc0_4_i4.c: Regenerated. + * generated/maxloc0_4_i8.c: Regenerated. + * generated/maxloc0_4_r10.c: Regenerated. + * generated/maxloc0_4_r16.c: Regenerated. + * generated/maxloc0_4_r4.c: Regenerated. + * generated/maxloc0_4_r8.c: Regenerated. + * generated/maxloc0_4_s1.c: Regenerated. + * generated/maxloc0_4_s4.c: Regenerated. + * generated/maxloc0_8_i1.c: Regenerated. + * generated/maxloc0_8_i16.c: Regenerated. + * generated/maxloc0_8_i2.c: Regenerated. + * generated/maxloc0_8_i4.c: Regenerated. + * generated/maxloc0_8_i8.c: Regenerated. + * generated/maxloc0_8_r10.c: Regenerated. + * generated/maxloc0_8_r16.c: Regenerated. + * generated/maxloc0_8_r4.c: Regenerated. + * generated/maxloc0_8_r8.c: Regenerated. + * generated/maxloc0_8_s1.c: Regenerated. + * generated/maxloc0_8_s4.c: Regenerated. + * generated/maxloc1_16_i1.c: Regenerated. + * generated/maxloc1_16_i16.c: Regenerated. + * generated/maxloc1_16_i2.c: Regenerated. + * generated/maxloc1_16_i4.c: Regenerated. + * generated/maxloc1_16_i8.c: Regenerated. + * generated/maxloc1_16_r10.c: Regenerated. + * generated/maxloc1_16_r16.c: Regenerated. + * generated/maxloc1_16_r4.c: Regenerated. + * generated/maxloc1_16_r8.c: Regenerated. + * generated/maxloc1_16_s1.c: Regenerated. + * generated/maxloc1_16_s4.c: Regenerated. + * generated/maxloc1_4_i1.c: Regenerated. + * generated/maxloc1_4_i16.c: Regenerated. + * generated/maxloc1_4_i2.c: Regenerated. + * generated/maxloc1_4_i4.c: Regenerated. + * generated/maxloc1_4_i8.c: Regenerated. + * generated/maxloc1_4_r10.c: Regenerated. + * generated/maxloc1_4_r16.c: Regenerated. + * generated/maxloc1_4_r4.c: Regenerated. + * generated/maxloc1_4_r8.c: Regenerated. + * generated/maxloc1_4_s1.c: Regenerated. + * generated/maxloc1_4_s4.c: Regenerated. + * generated/maxloc1_8_i1.c: Regenerated. + * generated/maxloc1_8_i16.c: Regenerated. + * generated/maxloc1_8_i2.c: Regenerated. + * generated/maxloc1_8_i4.c: Regenerated. + * generated/maxloc1_8_i8.c: Regenerated. + * generated/maxloc1_8_r10.c: Regenerated. + * generated/maxloc1_8_r16.c: Regenerated. + * generated/maxloc1_8_r4.c: Regenerated. + * generated/maxloc1_8_r8.c: Regenerated. + * generated/maxloc1_8_s1.c: Regenerated. + * generated/maxloc1_8_s4.c: Regenerated. + * generated/maxval_i1.c: Regenerated. + * generated/maxval_i16.c: Regenerated. + * generated/maxval_i2.c: Regenerated. + * generated/maxval_i4.c: Regenerated. + * generated/maxval_i8.c: Regenerated. + * generated/maxval_r10.c: Regenerated. + * generated/maxval_r16.c: Regenerated. + * generated/maxval_r4.c: Regenerated. + * generated/maxval_r8.c: Regenerated. + * generated/minloc0_16_i1.c: Regenerated. + * generated/minloc0_16_i16.c: Regenerated. + * generated/minloc0_16_i2.c: Regenerated. + * generated/minloc0_16_i4.c: Regenerated. + * generated/minloc0_16_i8.c: Regenerated. + * generated/minloc0_16_r10.c: Regenerated. + * generated/minloc0_16_r16.c: Regenerated. + * generated/minloc0_16_r4.c: Regenerated. + * generated/minloc0_16_r8.c: Regenerated. + * generated/minloc0_16_s1.c: Regenerated. + * generated/minloc0_16_s4.c: Regenerated. + * generated/minloc0_4_i1.c: Regenerated. + * generated/minloc0_4_i16.c: Regenerated. + * generated/minloc0_4_i2.c: Regenerated. + * generated/minloc0_4_i4.c: Regenerated. + * generated/minloc0_4_i8.c: Regenerated. + * generated/minloc0_4_r10.c: Regenerated. + * generated/minloc0_4_r16.c: Regenerated. + * generated/minloc0_4_r4.c: Regenerated. + * generated/minloc0_4_r8.c: Regenerated. + * generated/minloc0_4_s1.c: Regenerated. + * generated/minloc0_4_s4.c: Regenerated. + * generated/minloc0_8_i1.c: Regenerated. + * generated/minloc0_8_i16.c: Regenerated. + * generated/minloc0_8_i2.c: Regenerated. + * generated/minloc0_8_i4.c: Regenerated. + * generated/minloc0_8_i8.c: Regenerated. + * generated/minloc0_8_r10.c: Regenerated. + * generated/minloc0_8_r16.c: Regenerated. + * generated/minloc0_8_r4.c: Regenerated. + * generated/minloc0_8_r8.c: Regenerated. + * generated/minloc0_8_s1.c: Regenerated. + * generated/minloc0_8_s4.c: Regenerated. + * generated/minloc1_16_i1.c: Regenerated. + * generated/minloc1_16_i16.c: Regenerated. + * generated/minloc1_16_i2.c: Regenerated. + * generated/minloc1_16_i4.c: Regenerated. + * generated/minloc1_16_i8.c: Regenerated. + * generated/minloc1_16_r10.c: Regenerated. + * generated/minloc1_16_r16.c: Regenerated. + * generated/minloc1_16_r4.c: Regenerated. + * generated/minloc1_16_r8.c: Regenerated. + * generated/minloc1_16_s1.c: Regenerated. + * generated/minloc1_16_s4.c: Regenerated. + * generated/minloc1_4_i1.c: Regenerated. + * generated/minloc1_4_i16.c: Regenerated. + * generated/minloc1_4_i2.c: Regenerated. + * generated/minloc1_4_i4.c: Regenerated. + * generated/minloc1_4_i8.c: Regenerated. + * generated/minloc1_4_r10.c: Regenerated. + * generated/minloc1_4_r16.c: Regenerated. + * generated/minloc1_4_r4.c: Regenerated. + * generated/minloc1_4_r8.c: Regenerated. + * generated/minloc1_4_s1.c: Regenerated. + * generated/minloc1_4_s4.c: Regenerated. + * generated/minloc1_8_i1.c: Regenerated. + * generated/minloc1_8_i16.c: Regenerated. + * generated/minloc1_8_i2.c: Regenerated. + * generated/minloc1_8_i4.c: Regenerated. + * generated/minloc1_8_i8.c: Regenerated. + * generated/minloc1_8_r10.c: Regenerated. + * generated/minloc1_8_r16.c: Regenerated. + * generated/minloc1_8_r4.c: Regenerated. + * generated/minloc1_8_r8.c: Regenerated. + * generated/minloc1_8_s1.c: Regenerated. + * generated/minloc1_8_s4.c: Regenerated. + * generated/minval_i1.c: Regenerated. + * generated/minval_i16.c: Regenerated. + * generated/minval_i2.c: Regenerated. + * generated/minval_i4.c: Regenerated. + * generated/minval_i8.c: Regenerated. + * generated/minval_r10.c: Regenerated. + * generated/minval_r16.c: Regenerated. + * generated/minval_r4.c: Regenerated. + * generated/minval_r8.c: Regenerated. + * generated/norm2_r10.c: Regenerated. + * generated/norm2_r16.c: Regenerated. + * generated/norm2_r4.c: Regenerated. + * generated/norm2_r8.c: Regenerated. + * generated/parity_l1.c: Regenerated. + * generated/parity_l16.c: Regenerated. + * generated/parity_l2.c: Regenerated. + * generated/parity_l4.c: Regenerated. + * generated/parity_l8.c: Regenerated. + * generated/product_c10.c: Regenerated. + * generated/product_c16.c: Regenerated. + * generated/product_c4.c: Regenerated. + * generated/product_c8.c: Regenerated. + * generated/product_i1.c: Regenerated. + * generated/product_i16.c: Regenerated. + * generated/product_i2.c: Regenerated. + * generated/product_i4.c: Regenerated. + * generated/product_i8.c: Regenerated. + * generated/product_r10.c: Regenerated. + * generated/product_r16.c: Regenerated. + * generated/product_r4.c: Regenerated. + * generated/product_r8.c: Regenerated. + * generated/sum_c10.c: Regenerated. + * generated/sum_c16.c: Regenerated. + * generated/sum_c4.c: Regenerated. + * generated/sum_c8.c: Regenerated. + * generated/sum_i1.c: Regenerated. + * generated/sum_i16.c: Regenerated. + * generated/sum_i2.c: Regenerated. + * generated/sum_i4.c: Regenerated. + * generated/sum_i8.c: Regenerated. + * generated/sum_r10.c: Regenerated. + * generated/sum_r16.c: Regenerated. + * generated/sum_r4.c: Regenerated. + * generated/sum_r8.c: Regenerated. + +2018-01-14 Jerry DeLisle + + PR libgfortran/83811 + * write.c (select_buffer): Adjust buffer size up by 1. + +2018-01-08 Janne Blomqvist + + PR 78534, bugfix for r256322 + * io/transfer.c (next_record_w): Use correct type for return value + of next_array_record. + +2018-01-07 Thomas Koenig + + * libgfortran.h (GFC_DTYPE_COPY): New macro. + (GFC_DTYPE_COPY_SETRANK): New macro. + (GFC_DTYPE_IS_UNSET): New macro. + * intrinsics/cshift0.c (cshift0): Use new macros. + * intrinsics/eoshift0.c (eoshift0): Likewise. + * intrinsics/eoshift2.c (eoshift2): Likewise. + * intrinsics/move_alloc.c (move_alloc): Likewise. + * intrinsics/reshape_generic.c (reshape_internal): Likewise. + * intrinsics/spread_generic.c (spread_internal): Likewise. + * intrinsics/spread_generic.c (spread_scalar): Likewise. + * intrinsics/spread_generic.c (spread_char_scalar): Likewise. + * intrinsics/spread_generic.c (spread_char4_scalar): Likewise. + * intrinsics/unpack_generic.c (unpack0): Likewise. + * intrinsics/unpack_generic.c (unpack0_char): Likewise. + * intrinsics/unpack_generic.c (unpack0_char4): Likewise. + * m4/cshift1.m4 (cshift1): Likewise. + * m4/eoshift1.m4 (eoshift1): Likewise. + * m4/eoshift3.m4 (eoshift3): Likewise. + * m4/iforeach-s.m4: Likewise. + * m4/iforeach.m4: Likewise. + * m4/ifunction-s.m4: Likewise. + * m4/ifunction-s2.m4: Likewise. + * m4/ifunction.m4: Likewise. + * m4/ifunction_logical.m4: Likewise. + * m4/reshape.m4: Likewise. + * m4/spread.m4: Likewise. + * generated/all_l1.c : Regenerated. + * generated/all_l16.c : Regenerated. + * generated/all_l2.c : Regenerated. + * generated/all_l4.c : Regenerated. + * generated/all_l8.c : Regenerated. + * generated/any_l1.c : Regenerated. + * generated/any_l16.c : Regenerated. + * generated/any_l2.c : Regenerated. + * generated/any_l4.c : Regenerated. + * generated/any_l8.c : Regenerated. + * generated/count_16_l.c : Regenerated. + * generated/count_1_l.c : Regenerated. + * generated/count_2_l.c : Regenerated. + * generated/count_4_l.c : Regenerated. + * generated/count_8_l.c : Regenerated. + * generated/cshift1_16.c : Regenerated. + * generated/cshift1_4.c : Regenerated. + * generated/cshift1_8.c : Regenerated. + * generated/eoshift1_16.c : Regenerated. + * generated/eoshift1_4.c : Regenerated. + * generated/eoshift1_8.c : Regenerated. + * generated/eoshift3_16.c : Regenerated. + * generated/eoshift3_4.c : Regenerated. + * generated/eoshift3_8.c : Regenerated. + * generated/iall_i1.c : Regenerated. + * generated/iall_i16.c : Regenerated. + * generated/iall_i2.c : Regenerated. + * generated/iall_i4.c : Regenerated. + * generated/iall_i8.c : Regenerated. + * generated/iany_i1.c : Regenerated. + * generated/iany_i16.c : Regenerated. + * generated/iany_i2.c : Regenerated. + * generated/iany_i4.c : Regenerated. + * generated/iany_i8.c : Regenerated. + * generated/iparity_i1.c : Regenerated. + * generated/iparity_i16.c : Regenerated. + * generated/iparity_i2.c : Regenerated. + * generated/iparity_i4.c : Regenerated. + * generated/iparity_i8.c : Regenerated. + * generated/maxloc0_16_i1.c : Regenerated. + * generated/maxloc0_16_i16.c : Regenerated. + * generated/maxloc0_16_i2.c : Regenerated. + * generated/maxloc0_16_i4.c : Regenerated. + * generated/maxloc0_16_i8.c : Regenerated. + * generated/maxloc0_16_r10.c : Regenerated. + * generated/maxloc0_16_r16.c : Regenerated. + * generated/maxloc0_16_r4.c : Regenerated. + * generated/maxloc0_16_r8.c : Regenerated. + * generated/maxloc0_16_s1.c : Regenerated. + * generated/maxloc0_16_s4.c : Regenerated. + * generated/maxloc0_4_i1.c : Regenerated. + * generated/maxloc0_4_i16.c : Regenerated. + * generated/maxloc0_4_i2.c : Regenerated. + * generated/maxloc0_4_i4.c : Regenerated. + * generated/maxloc0_4_i8.c : Regenerated. + * generated/maxloc0_4_r10.c : Regenerated. + * generated/maxloc0_4_r16.c : Regenerated. + * generated/maxloc0_4_r4.c : Regenerated. + * generated/maxloc0_4_r8.c : Regenerated. + * generated/maxloc0_4_s1.c : Regenerated. + * generated/maxloc0_4_s4.c : Regenerated. + * generated/maxloc0_8_i1.c : Regenerated. + * generated/maxloc0_8_i16.c : Regenerated. + * generated/maxloc0_8_i2.c : Regenerated. + * generated/maxloc0_8_i4.c : Regenerated. + * generated/maxloc0_8_i8.c : Regenerated. + * generated/maxloc0_8_r10.c : Regenerated. + * generated/maxloc0_8_r16.c : Regenerated. + * generated/maxloc0_8_r4.c : Regenerated. + * generated/maxloc0_8_r8.c : Regenerated. + * generated/maxloc0_8_s1.c : Regenerated. + * generated/maxloc0_8_s4.c : Regenerated. + * generated/maxloc1_16_i1.c : Regenerated. + * generated/maxloc1_16_i16.c : Regenerated. + * generated/maxloc1_16_i2.c : Regenerated. + * generated/maxloc1_16_i4.c : Regenerated. + * generated/maxloc1_16_i8.c : Regenerated. + * generated/maxloc1_16_r10.c : Regenerated. + * generated/maxloc1_16_r16.c : Regenerated. + * generated/maxloc1_16_r4.c : Regenerated. + * generated/maxloc1_16_r8.c : Regenerated. + * generated/maxloc1_16_s1.c : Regenerated. + * generated/maxloc1_16_s4.c : Regenerated. + * generated/maxloc1_4_i1.c : Regenerated. + * generated/maxloc1_4_i16.c : Regenerated. + * generated/maxloc1_4_i2.c : Regenerated. + * generated/maxloc1_4_i4.c : Regenerated. + * generated/maxloc1_4_i8.c : Regenerated. + * generated/maxloc1_4_r10.c : Regenerated. + * generated/maxloc1_4_r16.c : Regenerated. + * generated/maxloc1_4_r4.c : Regenerated. + * generated/maxloc1_4_r8.c : Regenerated. + * generated/maxloc1_4_s1.c : Regenerated. + * generated/maxloc1_4_s4.c : Regenerated. + * generated/maxloc1_8_i1.c : Regenerated. + * generated/maxloc1_8_i16.c : Regenerated. + * generated/maxloc1_8_i2.c : Regenerated. + * generated/maxloc1_8_i4.c : Regenerated. + * generated/maxloc1_8_i8.c : Regenerated. + * generated/maxloc1_8_r10.c : Regenerated. + * generated/maxloc1_8_r16.c : Regenerated. + * generated/maxloc1_8_r4.c : Regenerated. + * generated/maxloc1_8_r8.c : Regenerated. + * generated/maxloc1_8_s1.c : Regenerated. + * generated/maxloc1_8_s4.c : Regenerated. + * generated/maxval1_s1.c : Regenerated. + * generated/maxval1_s4.c : Regenerated. + * generated/maxval_i1.c : Regenerated. + * generated/maxval_i16.c : Regenerated. + * generated/maxval_i2.c : Regenerated. + * generated/maxval_i4.c : Regenerated. + * generated/maxval_i8.c : Regenerated. + * generated/maxval_r10.c : Regenerated. + * generated/maxval_r16.c : Regenerated. + * generated/maxval_r4.c : Regenerated. + * generated/maxval_r8.c : Regenerated. + * generated/minloc0_16_i1.c : Regenerated. + * generated/minloc0_16_i16.c : Regenerated. + * generated/minloc0_16_i2.c : Regenerated. + * generated/minloc0_16_i4.c : Regenerated. + * generated/minloc0_16_i8.c : Regenerated. + * generated/minloc0_16_r10.c : Regenerated. + * generated/minloc0_16_r16.c : Regenerated. + * generated/minloc0_16_r4.c : Regenerated. + * generated/minloc0_16_r8.c : Regenerated. + * generated/minloc0_16_s1.c : Regenerated. + * generated/minloc0_16_s4.c : Regenerated. + * generated/minloc0_4_i1.c : Regenerated. + * generated/minloc0_4_i16.c : Regenerated. + * generated/minloc0_4_i2.c : Regenerated. + * generated/minloc0_4_i4.c : Regenerated. + * generated/minloc0_4_i8.c : Regenerated. + * generated/minloc0_4_r10.c : Regenerated. + * generated/minloc0_4_r16.c : Regenerated. + * generated/minloc0_4_r4.c : Regenerated. + * generated/minloc0_4_r8.c : Regenerated. + * generated/minloc0_4_s1.c : Regenerated. + * generated/minloc0_4_s4.c : Regenerated. + * generated/minloc0_8_i1.c : Regenerated. + * generated/minloc0_8_i16.c : Regenerated. + * generated/minloc0_8_i2.c : Regenerated. + * generated/minloc0_8_i4.c : Regenerated. + * generated/minloc0_8_i8.c : Regenerated. + * generated/minloc0_8_r10.c : Regenerated. + * generated/minloc0_8_r16.c : Regenerated. + * generated/minloc0_8_r4.c : Regenerated. + * generated/minloc0_8_r8.c : Regenerated. + * generated/minloc0_8_s1.c : Regenerated. + * generated/minloc0_8_s4.c : Regenerated. + * generated/minloc1_16_i1.c : Regenerated. + * generated/minloc1_16_i16.c : Regenerated. + * generated/minloc1_16_i2.c : Regenerated. + * generated/minloc1_16_i4.c : Regenerated. + * generated/minloc1_16_i8.c : Regenerated. + * generated/minloc1_16_r10.c : Regenerated. + * generated/minloc1_16_r16.c : Regenerated. + * generated/minloc1_16_r4.c : Regenerated. + * generated/minloc1_16_r8.c : Regenerated. + * generated/minloc1_16_s1.c : Regenerated. + * generated/minloc1_16_s4.c : Regenerated. + * generated/minloc1_4_i1.c : Regenerated. + * generated/minloc1_4_i16.c : Regenerated. + * generated/minloc1_4_i2.c : Regenerated. + * generated/minloc1_4_i4.c : Regenerated. + * generated/minloc1_4_i8.c : Regenerated. + * generated/minloc1_4_r10.c : Regenerated. + * generated/minloc1_4_r16.c : Regenerated. + * generated/minloc1_4_r4.c : Regenerated. + * generated/minloc1_4_r8.c : Regenerated. + * generated/minloc1_4_s1.c : Regenerated. + * generated/minloc1_4_s4.c : Regenerated. + * generated/minloc1_8_i1.c : Regenerated. + * generated/minloc1_8_i16.c : Regenerated. + * generated/minloc1_8_i2.c : Regenerated. + * generated/minloc1_8_i4.c : Regenerated. + * generated/minloc1_8_i8.c : Regenerated. + * generated/minloc1_8_r10.c : Regenerated. + * generated/minloc1_8_r16.c : Regenerated. + * generated/minloc1_8_r4.c : Regenerated. + * generated/minloc1_8_r8.c : Regenerated. + * generated/minloc1_8_s1.c : Regenerated. + * generated/minloc1_8_s4.c : Regenerated. + * generated/minval1_s1.c : Regenerated. + * generated/minval1_s4.c : Regenerated. + * generated/minval_i1.c : Regenerated. + * generated/minval_i16.c : Regenerated. + * generated/minval_i2.c : Regenerated. + * generated/minval_i4.c : Regenerated. + * generated/minval_i8.c : Regenerated. + * generated/minval_r10.c : Regenerated. + * generated/minval_r16.c : Regenerated. + * generated/minval_r4.c : Regenerated. + * generated/minval_r8.c : Regenerated. + * generated/norm2_r10.c : Regenerated. + * generated/norm2_r16.c : Regenerated. + * generated/norm2_r4.c : Regenerated. + * generated/norm2_r8.c : Regenerated. + * generated/parity_l1.c : Regenerated. + * generated/parity_l16.c : Regenerated. + * generated/parity_l2.c : Regenerated. + * generated/parity_l4.c : Regenerated. + * generated/parity_l8.c : Regenerated. + * generated/product_c10.c : Regenerated. + * generated/product_c16.c : Regenerated. + * generated/product_c4.c : Regenerated. + * generated/product_c8.c : Regenerated. + * generated/product_i1.c : Regenerated. + * generated/product_i16.c : Regenerated. + * generated/product_i2.c : Regenerated. + * generated/product_i4.c : Regenerated. + * generated/product_i8.c : Regenerated. + * generated/product_r10.c : Regenerated. + * generated/product_r16.c : Regenerated. + * generated/product_r4.c : Regenerated. + * generated/product_r8.c : Regenerated. + * generated/reshape_c10.c : Regenerated. + * generated/reshape_c16.c : Regenerated. + * generated/reshape_c4.c : Regenerated. + * generated/reshape_c8.c : Regenerated. + * generated/reshape_i16.c : Regenerated. + * generated/reshape_i4.c : Regenerated. + * generated/reshape_i8.c : Regenerated. + * generated/reshape_r10.c : Regenerated. + * generated/reshape_r16.c : Regenerated. + * generated/reshape_r4.c : Regenerated. + * generated/reshape_r8.c : Regenerated. + * generated/spread_c10.c : Regenerated. + * generated/spread_c16.c : Regenerated. + * generated/spread_c4.c : Regenerated. + * generated/spread_c8.c : Regenerated. + * generated/spread_i1.c : Regenerated. + * generated/spread_i16.c : Regenerated. + * generated/spread_i2.c : Regenerated. + * generated/spread_i4.c : Regenerated. + * generated/spread_i8.c : Regenerated. + * generated/spread_r10.c : Regenerated. + * generated/spread_r16.c : Regenerated. + * generated/spread_r4.c : Regenerated. + * generated/spread_r8.c : Regenerated. + * generated/sum_c10.c : Regenerated. + * generated/sum_c16.c : Regenerated. + * generated/sum_c4.c : Regenerated. + * generated/sum_c8.c : Regenerated. + * generated/sum_i1.c : Regenerated. + * generated/sum_i16.c : Regenerated. + * generated/sum_i2.c : Regenerated. + * generated/sum_i4.c : Regenerated. + * generated/sum_i8.c : Regenerated. + * generated/sum_r10.c : Regenerated. + * generated/sum_r16.c : Regenerated. + * generated/sum_r4.c : Regenerated. + * generated/sum_r8.c : Regenerated. + +2018-01-07 Janne Blomqvist + + PR fortran/78534 + PR fortran/83704 + * io/fbuf.c (fbuf_init): Use size_t instead of int for length. + (fbuf_debug): Convert debug output to unsigned long. + (fbuf_reset): Use ptrdiff_t for return value. + (fbuf_alloc): Use size_t for length argument. + (fbuf_flush): Handle large buffers. + (fbuf_flush_list): Likewise. + (fbuf_seek): Use ptrdiff_t for offset and return value. + (fbuf_read): Use size_t for length argument. + (fbuf_getc_refill): Use size_t to match fbuf_read. + * io/fbuf.h (struct fbuf): Use size_t for lengths. + (fbuf_init): Use size_t instead of int for length. + (fbuf_reset): Use ptrdiff_t for return value. + (fbuf_alloc): Use size_t for length argument. + (fbuf_seek): Use ptrdiff_t for offset and return value. + (fbuf_read): Use size_t for length argument. + * io/io.h (read_block_form): Likewise. + (read_block_form4): Likewise. + (write_block): Likewise. + (read_a): Likewise. + (read_a_char4): Likewise. + (read_x): Likewise. + (write_a): Likewise. + (write_a_char4): Likewise. + * io/list_read.c (list_formatted_read_scalar): Use size_t to + handle large buffers. + * io/read.c (read_l): Likewise. + (read_utf8): Likewise. + (read_utf8_char1): Likewise. + (read_default_char1): Likewise. + (read_utf8_char4): Likewise. + (read_default_char4): Likewise. + (read_a): Likewise. + (read_a_char4): Likewise. + (eat_leading_spaces): Likewise. + (next_char): Likewise. + (read_decimal): Likewise. + (read_radix): Likewise. + (read_f): Likewise. + (read_x): Likewise. + * io/transfer.c (read_sf_internal): Likewise. + (read_sf): Likewise. + (read_block_form): Likewise. + (read_block_form4): Likewise. + (write_block): Likewise. + (formatted_transfer_scalar_write): Likewise. + (next_record_w): Likewise. + * io/unix.c (mem_alloc_r): Likewise. + (mem_alloc_r4): Likewise. + (mem_alloc_w): Likewise. + (mem_alloc_w4): Likewise. + (mem_read): Likewise. + (mem_read4): Likewise. + (mem_write): Likewise. + (mem_write4): Likewise. + (open_internal): Likewise. + (open_internal4): Likewise. + * io/unix.h (open_internal): Likewise. + (open_internal4): Likewise. + (mem_alloc_w): Likewise. + (mem_alloc_r): Likewise. + (mem_alloc_w4): Likewise. + (mem_alloc_r4): Likewise. + * io/write.c (write_check_cc): Likewise. + (write_cc): Likewise. + (write_a): Likewise. + (write_a_char4): Likewise. + +2018-01-06 Janne Blomqvist + + * io/write.c (namelist_write): Remove unused variable "i". + +2018-01-06 Dominique d'Humieres + Janne Blomqvist + + PR fortran/83704 + * io/write.c (write_character): Use size_t instead of int for + length. + +2018-01-05 Janne Blomqvist + + PR fortran/78534 + * intrinsics/args.c (getarg_i4): Use gfc_charlen_type. + (get_command_argument_i4): Likewise. + (get_command_i4): Likewise. + * intrinsics/chmod.c (chmod_internal): Likewise. + * intrinsics/env.c (get_environment_variable_i4): Likewise. + * intrinsics/extends_type_of.c (struct vtype): Use size_t for size + member. + * intrinsics/gerror.c (gerror): Use gfc_charlen_type. + * intrinsics/getlog.c (getlog): Likewise. + * intrinsics/hostnm.c (hostnm_0): Likewise. + * intrinsics/string_intrinsics_inc.c (string_len_trim): Rework to + work if gfc_charlen_type is unsigned. + (string_scan): Likewise. + * io/transfer.c (transfer_character): Modify prototype. + (transfer_character_write): Likewise. + (transfer_character_wide): Likewise. + (transfer_character_wide_write): Likewise. + (transfer_array): Typecast to avoid signed-unsigned comparison. + * io/unit.c (is_trim_ok): Use gfc_charlen_type. + * io/write.c (namelist_write): Likewise. + * libgfortran.h (gfc_charlen_type): Change typedef to size_t. + +2018-01-03 Jakub Jelinek + + Update copyright years. + +2018-01-02 Janne Blomqvist + + PR libgfortran/83649 + * io/unix.c (MAX_CHUNK): New define. + (raw_read): For reads larger than MAX_CHUNK, loop. + (raw_write): Write no more than MAX_CHUNK bytes per iteration. + +Copyright (C) 2018 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/config/fpu-387.h gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/config/fpu-387.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/config/fpu-387.h 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/config/fpu-387.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* FPU-related code for x86 and x86_64 processors. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Francois-Xavier Coudert This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/config/fpu-aix.h gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/config/fpu-aix.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/config/fpu-aix.h 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/config/fpu-aix.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* AIX FPU-related code. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Francois-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/config/fpu-generic.h gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/config/fpu-generic.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/config/fpu-generic.h 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/config/fpu-generic.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Fallback FPU-related code (for systems not otherwise supported). - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Francois-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/config/fpu-glibc.h gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/config/fpu-glibc.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/config/fpu-glibc.h 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/config/fpu-glibc.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* FPU-related code for systems with GNU libc. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Francois-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/config/fpu-sysv.h gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/config/fpu-sysv.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/config/fpu-sysv.h 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/config/fpu-sysv.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* SysV FPU-related code (for systems not otherwise supported). - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Francois-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_c10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_c10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_c10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_c10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_c16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_c16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_c16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_c16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_c4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_c4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_c4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_c4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_c8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_c8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_c8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_c8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_i16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_i16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_i16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_i16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_i4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_i4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_i4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_i4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_i8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_i8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_i8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_i8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_abs_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_abs_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_acosh_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_acosh_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_acosh_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_acosh_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_acosh_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_acosh_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_acosh_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_acosh_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_acosh_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_acosh_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_acosh_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_acosh_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_acosh_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_acosh_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_acosh_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_acosh_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_acos_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_acos_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_acos_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_acos_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_acos_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_acos_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_acos_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_acos_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_acos_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_acos_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_acos_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_acos_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_acos_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_acos_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_acos_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_acos_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_aimag_c10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_aimag_c10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_aimag_c10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_aimag_c10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_aimag_c16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_aimag_c16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_aimag_c16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_aimag_c16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_aimag_c4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_aimag_c4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_aimag_c4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_aimag_c4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_aimag_c8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_aimag_c8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_aimag_c8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_aimag_c8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_aint_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_aint_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_aint_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_aint_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_aint_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_aint_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_aint_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_aint_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_aint_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_aint_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_aint_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_aint_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_aint_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_aint_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_aint_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_aint_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/all_l16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/all_l16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/all_l16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/all_l16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the ALL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/all_l1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/all_l1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/all_l1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/all_l1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the ALL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/all_l2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/all_l2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/all_l2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/all_l2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the ALL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/all_l4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/all_l4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/all_l4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/all_l4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the ALL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/all_l8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/all_l8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/all_l8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/all_l8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the ALL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_anint_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_anint_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_anint_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_anint_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_anint_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_anint_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_anint_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_anint_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_anint_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_anint_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_anint_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_anint_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_anint_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_anint_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_anint_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_anint_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/any_l16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/any_l16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/any_l16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/any_l16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the ANY intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/any_l1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/any_l1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/any_l1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/any_l1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the ANY intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/any_l2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/any_l2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/any_l2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/any_l2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the ANY intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/any_l4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/any_l4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/any_l4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/any_l4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the ANY intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/any_l8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/any_l8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/any_l8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/any_l8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the ANY intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_asinh_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_asinh_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_asinh_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_asinh_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_asinh_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_asinh_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_asinh_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_asinh_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_asinh_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_asinh_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_asinh_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_asinh_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_asinh_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_asinh_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_asinh_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_asinh_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_asin_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_asin_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_asin_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_asin_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_asin_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_asin_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_asin_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_asin_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_asin_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_asin_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_asin_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_asin_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_asin_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_asin_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_asin_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_asin_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atan2_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atan2_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atan2_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atan2_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atan2_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atan2_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atan2_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atan2_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atan2_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atan2_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atan2_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atan2_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atan2_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atan2_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atan2_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atan2_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atanh_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atanh_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atanh_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atanh_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atanh_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atanh_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atanh_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atanh_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atanh_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atanh_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atanh_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atanh_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atanh_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atanh_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atanh_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atanh_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atan_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atan_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atan_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atan_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atan_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atan_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atan_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atan_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atan_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atan_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atan_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atan_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atan_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atan_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_atan_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_atan_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/bessel_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/bessel_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/bessel_r10.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/bessel_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the BESSEL_JN and BESSEL_YN transformational function using a recurrence algorithm. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/bessel_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/bessel_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/bessel_r16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/bessel_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the BESSEL_JN and BESSEL_YN transformational function using a recurrence algorithm. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/bessel_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/bessel_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/bessel_r4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/bessel_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the BESSEL_JN and BESSEL_YN transformational function using a recurrence algorithm. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/bessel_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/bessel_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/bessel_r8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/bessel_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the BESSEL_JN and BESSEL_YN transformational function using a recurrence algorithm. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_conjg_c10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_conjg_c10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_conjg_c10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_conjg_c10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_conjg_c16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_conjg_c16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_conjg_c16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_conjg_c16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_conjg_c4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_conjg_c4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_conjg_c4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_conjg_c4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_conjg_c8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_conjg_c8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_conjg_c8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_conjg_c8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cos_c10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cos_c10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cos_c10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cos_c10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cos_c16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cos_c16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cos_c16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cos_c16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cos_c4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cos_c4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cos_c4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cos_c4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cos_c8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cos_c8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cos_c8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cos_c8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cosh_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cosh_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cosh_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cosh_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cosh_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cosh_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cosh_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cosh_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cosh_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cosh_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cosh_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cosh_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cosh_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cosh_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cosh_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cosh_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cos_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cos_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cos_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cos_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cos_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cos_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cos_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cos_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cos_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cos_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cos_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cos_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cos_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cos_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_cos_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_cos_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/count_16_l.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/count_16_l.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/count_16_l.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/count_16_l.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the COUNT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/count_1_l.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/count_1_l.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/count_1_l.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/count_1_l.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the COUNT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/count_2_l.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/count_2_l.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/count_2_l.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/count_2_l.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the COUNT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/count_4_l.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/count_4_l.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/count_4_l.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/count_4_l.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the COUNT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/count_8_l.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/count_8_l.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/count_8_l.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/count_8_l.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the COUNT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_c10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_c10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_c10.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_c10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for cshift functions. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_c16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_c16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_c16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_c16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for cshift functions. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_c4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_c4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_c4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_c4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for cshift functions. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_c8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_c8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_c8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_c8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for cshift functions. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_i16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for cshift functions. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_i1.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for cshift functions. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_i2.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for cshift functions. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_i4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for cshift functions. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_i8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for cshift functions. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_r10.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for cshift functions. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_r16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for cshift functions. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_r4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for cshift functions. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift0_r8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift0_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for cshift functions. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Feng Wang This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_c10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_c10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_c10.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_c10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_c16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_c16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_c16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_c16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_c4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_c4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_c4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_c4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_c8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_c8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_c8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_c8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_i16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_i1.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_i2.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_i4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_i8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_r10.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_r16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_r4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_16_r8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_16_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Feng Wang This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_c10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_c10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_c10.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_c10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_c16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_c16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_c16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_c16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_c4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_c4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_c4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_c4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_c8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_c8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_c8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_c8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_i16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_i1.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_i2.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_i4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_i8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_r10.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_r16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_r4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_4_r8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_4_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Feng Wang This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_c10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_c10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_c10.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_c10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_c16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_c16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_c16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_c16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_c4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_c4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_c4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_c4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_c8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_c8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_c8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_c8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_i16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_i1.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_i2.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_i4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_i8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_r10.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_r16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_r4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/cshift1_8_r8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/cshift1_8_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_dim_i16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_dim_i16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_dim_i16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_dim_i16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_dim_i4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_dim_i4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_dim_i4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_dim_i4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_dim_i8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_dim_i8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_dim_i8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_dim_i8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_dim_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_dim_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_dim_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_dim_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_dim_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_dim_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_dim_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_dim_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_dim_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_dim_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_dim_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_dim_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_dim_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_dim_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_dim_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_dim_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/eoshift1_16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/eoshift1_16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/eoshift1_16.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/eoshift1_16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the EOSHIFT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/eoshift1_4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/eoshift1_4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/eoshift1_4.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/eoshift1_4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the EOSHIFT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/eoshift1_8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/eoshift1_8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/eoshift1_8.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/eoshift1_8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the EOSHIFT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/eoshift3_16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/eoshift3_16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/eoshift3_16.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/eoshift3_16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the EOSHIFT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/eoshift3_4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/eoshift3_4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/eoshift3_4.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/eoshift3_4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the EOSHIFT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/eoshift3_8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/eoshift3_8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/eoshift3_8.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/eoshift3_8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the EOSHIFT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_exp_c10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_exp_c10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_exp_c10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_exp_c10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_exp_c16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_exp_c16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_exp_c16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_exp_c16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_exp_c4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_exp_c4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_exp_c4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_exp_c4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_exp_c8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_exp_c8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_exp_c8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_exp_c8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_exp_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_exp_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_exp_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_exp_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_exp_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_exp_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_exp_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_exp_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_exp_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_exp_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_exp_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_exp_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_exp_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_exp_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_exp_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_exp_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_c16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_c16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_c16.c 2018-11-05 08:45:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_c16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -57,7 +57,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -196,7 +196,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -342,7 +342,7 @@ index_type * restrict dest; index_type n; - if (*mask) + if (mask == NULL || *mask) { findloc0_c16 (retarray, array, value, back); return; @@ -358,7 +358,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else if (unlikely (compile_options.bounds_check)) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_c4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_c4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_c4.c 2018-11-05 08:45:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_c4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -57,7 +57,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -196,7 +196,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -342,7 +342,7 @@ index_type * restrict dest; index_type n; - if (*mask) + if (mask == NULL || *mask) { findloc0_c4 (retarray, array, value, back); return; @@ -358,7 +358,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else if (unlikely (compile_options.bounds_check)) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_c8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_c8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_c8.c 2018-11-05 08:45:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_c8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -57,7 +57,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -196,7 +196,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -342,7 +342,7 @@ index_type * restrict dest; index_type n; - if (*mask) + if (mask == NULL || *mask) { findloc0_c8 (retarray, array, value, back); return; @@ -358,7 +358,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else if (unlikely (compile_options.bounds_check)) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_i16.c 2018-11-05 08:45:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -57,7 +57,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -196,7 +196,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -342,7 +342,7 @@ index_type * restrict dest; index_type n; - if (*mask) + if (mask == NULL || *mask) { findloc0_i16 (retarray, array, value, back); return; @@ -358,7 +358,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else if (unlikely (compile_options.bounds_check)) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_i1.c 2018-11-05 08:45:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -57,7 +57,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -196,7 +196,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -342,7 +342,7 @@ index_type * restrict dest; index_type n; - if (*mask) + if (mask == NULL || *mask) { findloc0_i1 (retarray, array, value, back); return; @@ -358,7 +358,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else if (unlikely (compile_options.bounds_check)) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_i2.c 2018-11-05 08:45:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -57,7 +57,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -196,7 +196,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -342,7 +342,7 @@ index_type * restrict dest; index_type n; - if (*mask) + if (mask == NULL || *mask) { findloc0_i2 (retarray, array, value, back); return; @@ -358,7 +358,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else if (unlikely (compile_options.bounds_check)) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_i4.c 2018-11-05 08:45:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -57,7 +57,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -196,7 +196,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -342,7 +342,7 @@ index_type * restrict dest; index_type n; - if (*mask) + if (mask == NULL || *mask) { findloc0_i4 (retarray, array, value, back); return; @@ -358,7 +358,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else if (unlikely (compile_options.bounds_check)) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_i8.c 2018-11-05 08:45:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -57,7 +57,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -196,7 +196,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -342,7 +342,7 @@ index_type * restrict dest; index_type n; - if (*mask) + if (mask == NULL || *mask) { findloc0_i8 (retarray, array, value, back); return; @@ -358,7 +358,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else if (unlikely (compile_options.bounds_check)) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_r16.c 2018-11-05 08:45:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -57,7 +57,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -196,7 +196,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -342,7 +342,7 @@ index_type * restrict dest; index_type n; - if (*mask) + if (mask == NULL || *mask) { findloc0_r16 (retarray, array, value, back); return; @@ -358,7 +358,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else if (unlikely (compile_options.bounds_check)) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_r4.c 2018-11-05 08:45:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -57,7 +57,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -196,7 +196,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -342,7 +342,7 @@ index_type * restrict dest; index_type n; - if (*mask) + if (mask == NULL || *mask) { findloc0_r4 (retarray, array, value, back); return; @@ -358,7 +358,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else if (unlikely (compile_options.bounds_check)) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_r8.c 2018-11-05 08:45:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -57,7 +57,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -196,7 +196,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -342,7 +342,7 @@ index_type * restrict dest; index_type n; - if (*mask) + if (mask == NULL || *mask) { findloc0_r8 (retarray, array, value, back); return; @@ -358,7 +358,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else if (unlikely (compile_options.bounds_check)) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_s1.c 2018-11-05 08:45:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -58,7 +58,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -199,7 +199,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -347,7 +347,7 @@ index_type * restrict dest; index_type n; - if (*mask) + if (mask == NULL || *mask) { findloc0_s1 (retarray, array, value, back, len_array, len_value); return; @@ -363,7 +363,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else if (unlikely (compile_options.bounds_check)) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc0_s4.c 2018-11-05 08:45:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc0_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -58,7 +58,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -199,7 +199,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -347,7 +347,7 @@ index_type * restrict dest; index_type n; - if (*mask) + if (mask == NULL || *mask) { findloc0_s4 (retarray, array, value, back, len_array, len_value); return; @@ -363,7 +363,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else if (unlikely (compile_options.bounds_check)) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_c16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_c16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_c16.c 2018-11-05 08:45:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_c16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -103,7 +103,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -291,7 +291,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -407,7 +407,7 @@ index_type dim; bool continue_loop; - if (*mask) + if (mask == NULL || *mask) { findloc1_c16 (retarray, array, value, pdim, back); return; @@ -464,7 +464,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_c4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_c4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_c4.c 2018-11-05 08:45:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_c4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -103,7 +103,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -291,7 +291,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -407,7 +407,7 @@ index_type dim; bool continue_loop; - if (*mask) + if (mask == NULL || *mask) { findloc1_c4 (retarray, array, value, pdim, back); return; @@ -464,7 +464,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_c8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_c8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_c8.c 2018-11-05 08:45:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_c8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -103,7 +103,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -291,7 +291,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -407,7 +407,7 @@ index_type dim; bool continue_loop; - if (*mask) + if (mask == NULL || *mask) { findloc1_c8 (retarray, array, value, pdim, back); return; @@ -464,7 +464,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_i16.c 2018-11-05 08:45:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -103,7 +103,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -291,7 +291,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -407,7 +407,7 @@ index_type dim; bool continue_loop; - if (*mask) + if (mask == NULL || *mask) { findloc1_i16 (retarray, array, value, pdim, back); return; @@ -464,7 +464,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_i1.c 2018-11-05 08:45:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -103,7 +103,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -291,7 +291,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -407,7 +407,7 @@ index_type dim; bool continue_loop; - if (*mask) + if (mask == NULL || *mask) { findloc1_i1 (retarray, array, value, pdim, back); return; @@ -464,7 +464,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_i2.c 2018-11-05 08:45:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -103,7 +103,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -291,7 +291,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -407,7 +407,7 @@ index_type dim; bool continue_loop; - if (*mask) + if (mask == NULL || *mask) { findloc1_i2 (retarray, array, value, pdim, back); return; @@ -464,7 +464,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_i4.c 2018-11-05 08:45:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -103,7 +103,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -291,7 +291,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -407,7 +407,7 @@ index_type dim; bool continue_loop; - if (*mask) + if (mask == NULL || *mask) { findloc1_i4 (retarray, array, value, pdim, back); return; @@ -464,7 +464,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_i8.c 2018-11-05 08:45:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -103,7 +103,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -291,7 +291,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -407,7 +407,7 @@ index_type dim; bool continue_loop; - if (*mask) + if (mask == NULL || *mask) { findloc1_i8 (retarray, array, value, pdim, back); return; @@ -464,7 +464,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_r16.c 2018-11-05 08:45:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -103,7 +103,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -291,7 +291,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -407,7 +407,7 @@ index_type dim; bool continue_loop; - if (*mask) + if (mask == NULL || *mask) { findloc1_r16 (retarray, array, value, pdim, back); return; @@ -464,7 +464,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_r4.c 2018-11-05 08:45:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -103,7 +103,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -291,7 +291,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -407,7 +407,7 @@ index_type dim; bool continue_loop; - if (*mask) + if (mask == NULL || *mask) { findloc1_r4 (retarray, array, value, pdim, back); return; @@ -464,7 +464,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_r8.c 2018-11-05 08:45:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -103,7 +103,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -291,7 +291,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -407,7 +407,7 @@ index_type dim; bool continue_loop; - if (*mask) + if (mask == NULL || *mask) { findloc1_r8 (retarray, array, value, pdim, back); return; @@ -464,7 +464,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_s1.c 2018-11-05 08:45:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -105,7 +105,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -293,7 +293,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -409,7 +409,7 @@ index_type dim; bool continue_loop; - if (*mask) + if (mask == NULL || *mask) { findloc1_s1 (retarray, array, value, pdim, back, len_array, len_value); return; @@ -466,7 +466,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc1_s4.c 2018-11-05 08:45:53.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc1_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -105,7 +105,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -293,7 +293,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -409,7 +409,7 @@ index_type dim; bool continue_loop; - if (*mask) + if (mask == NULL || *mask) { findloc1_s4 (retarray, array, value, pdim, back, len_array, len_value); return; @@ -466,7 +466,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc2_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc2_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc2_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc2_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -145,7 +145,7 @@ GFC_LOGICAL_4 back, gfc_charlen_type len_array, gfc_charlen_type len_value) { - if (*mask) + if (mask == NULL || *mask) { return findloc2_s1 (array, value, back, len_array, len_value); } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc2_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc2_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/findloc2_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/findloc2_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -145,7 +145,7 @@ GFC_LOGICAL_4 back, gfc_charlen_type len_array, gfc_charlen_type len_value) { - if (*mask) + if (mask == NULL || *mask) { return findloc2_s4 (array, value, back, len_array, len_value); } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iall_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iall_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iall_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iall_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the IALL intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + iall_i16 (retarray, array, pdim, back); +#else + iall_i16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG iall_i16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iall_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iall_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iall_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iall_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the IALL intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + iall_i1 (retarray, array, pdim, back); +#else + iall_i1 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG iall_i1 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iall_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iall_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iall_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iall_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the IALL intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + iall_i2 (retarray, array, pdim, back); +#else + iall_i2 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG iall_i2 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iall_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iall_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iall_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iall_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the IALL intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + iall_i4 (retarray, array, pdim, back); +#else + iall_i4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG iall_i4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iall_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iall_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iall_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iall_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the IALL intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + iall_i8 (retarray, array, pdim, back); +#else + iall_i8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG iall_i8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iany_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iany_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iany_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iany_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the IANY intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + iany_i16 (retarray, array, pdim, back); +#else + iany_i16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG iany_i16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iany_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iany_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iany_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iany_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the IANY intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + iany_i1 (retarray, array, pdim, back); +#else + iany_i1 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG iany_i1 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iany_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iany_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iany_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iany_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the IANY intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + iany_i2 (retarray, array, pdim, back); +#else + iany_i2 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG iany_i2 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iany_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iany_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iany_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iany_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the IANY intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + iany_i4 (retarray, array, pdim, back); +#else + iany_i4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG iany_i4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iany_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iany_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iany_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iany_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the IANY intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + iany_i8 (retarray, array, pdim, back); +#else + iany_i8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG iany_i8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_c10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_c10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_c10.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_c10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_c16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_c16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_c16.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_c16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_c4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_c4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_c4.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_c4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_c8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_c8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_c8.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_c8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_i16.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_i1.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_i2.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_i4.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_i8.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_r10.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_r16.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_r4.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_pack_r8.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_pack_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_c10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_c10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_c10.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_c10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_c16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_c16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_c16.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_c16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_c4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_c4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_c4.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_c4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_c8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_c8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_c8.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_c8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_i16.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_i1.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_i2.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_i4.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_i8.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_r10.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_r16.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_r4.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/in_unpack_r8.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/in_unpack_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iparity_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iparity_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iparity_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iparity_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the IPARITY intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + iparity_i16 (retarray, array, pdim, back); +#else + iparity_i16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG iparity_i16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iparity_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iparity_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iparity_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iparity_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the IPARITY intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + iparity_i1 (retarray, array, pdim, back); +#else + iparity_i1 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG iparity_i1 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iparity_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iparity_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iparity_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iparity_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the IPARITY intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + iparity_i2 (retarray, array, pdim, back); +#else + iparity_i2 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG iparity_i2 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iparity_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iparity_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iparity_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iparity_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the IPARITY intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + iparity_i4 (retarray, array, pdim, back); +#else + iparity_i4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG iparity_i4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iparity_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iparity_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/iparity_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/iparity_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the IPARITY intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + iparity_i8 (retarray, array, pdim, back); +#else + iparity_i8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG iparity_i8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log10_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log10_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log10_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log10_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log10_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log10_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log10_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log10_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log10_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log10_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log10_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log10_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log10_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log10_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log10_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log10_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log_c10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log_c10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log_c10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log_c10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log_c16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log_c16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log_c16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log_c16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log_c4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log_c4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log_c4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log_c4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log_c8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log_c8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log_c8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log_c8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_log_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_log_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_c10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_c10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_c10.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_c10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_c16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_c16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_c16.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_c16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_c4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_c4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_c4.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_c4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_c8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_c8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_c8.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_c8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_i16.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_i1.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_i2.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_i4.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_i8.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_r10.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_r16.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_r4.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmulavx128_r8.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmulavx128_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_c10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_c10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_c10.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_c10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_c16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_c16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_c16.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_c16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_c4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_c4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_c4.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_c4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_c8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_c8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_c8.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_c8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_i16.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_i1.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_i2.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_i4.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_i8.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_l16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_l16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_l16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_l16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_l4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_l4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_l4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_l4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_l8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_l8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_l8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_l8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_r10.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_r16.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_r4.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/matmul_r8.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/matmul_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_16_i16 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_16_i16 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_16_i1 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_16_i1 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_16_i2 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_16_i2 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_16_i4 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_16_i4 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_16_i8 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_16_i8 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_16_r10 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_16_r10 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_16_r16 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_16_r16 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_16_r4 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_16_r4 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_16_r8 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_16_r8 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -174,6 +174,16 @@ index_type n; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc0_16_s1 (retarray, array, back, len); +#else + maxloc0_16_s1 (retarray, array, len); +#endif + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -304,7 +314,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc0_16_s1 (retarray, array, back, len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_16_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_16_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -174,6 +174,16 @@ index_type n; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc0_16_s4 (retarray, array, back, len); +#else + maxloc0_16_s4 (retarray, array, len); +#endif + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -304,7 +314,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc0_16_s4 (retarray, array, back, len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_4_i16 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_4_i16 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_4_i1 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_4_i1 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_4_i2 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_4_i2 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_4_i4 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_4_i4 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_4_i8 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_4_i8 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_4_r10 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_4_r10 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_4_r16 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_4_r16 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_4_r4 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_4_r4 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_4_r8 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_4_r8 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -174,6 +174,16 @@ index_type n; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc0_4_s1 (retarray, array, back, len); +#else + maxloc0_4_s1 (retarray, array, len); +#endif + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -304,7 +314,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc0_4_s1 (retarray, array, back, len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_4_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_4_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -174,6 +174,16 @@ index_type n; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc0_4_s4 (retarray, array, back, len); +#else + maxloc0_4_s4 (retarray, array, len); +#endif + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -304,7 +314,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc0_4_s4 (retarray, array, back, len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_8_i16 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_8_i16 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_8_i1 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_8_i1 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_8_i2 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_8_i2 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_8_i4 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_8_i4 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_8_i8 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_8_i8 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_8_r10 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_8_r10 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_8_r16 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_8_r16 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_8_r4 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_8_r4 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + maxloc0_8_r8 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -369,7 +376,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { maxloc0_8_r8 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -174,6 +174,16 @@ index_type n; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc0_8_s1 (retarray, array, back, len); +#else + maxloc0_8_s1 (retarray, array, len); +#endif + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -304,7 +314,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc0_8_s1 (retarray, array, back, len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc0_8_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc0_8_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -174,6 +174,16 @@ index_type n; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc0_8_s4 (retarray, array, back, len); +#else + maxloc0_8_s4 (retarray, array, len); +#endif + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -304,7 +314,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc0_8_s4 (retarray, array, back, len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_16_i16 (retarray, array, pdim, back); +#else + maxloc1_16_i16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_16_i16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_16_i1 (retarray, array, pdim, back); +#else + maxloc1_16_i1 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_16_i1 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_16_i2 (retarray, array, pdim, back); +#else + maxloc1_16_i2 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_16_i2 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_16_i4 (retarray, array, pdim, back); +#else + maxloc1_16_i4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_16_i4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_16_i8 (retarray, array, pdim, back); +#else + maxloc1_16_i8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_16_i8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_16_r10 (retarray, array, pdim, back); +#else + maxloc1_16_r10 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_16_r10 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_16_r16 (retarray, array, pdim, back); +#else + maxloc1_16_r16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_16_r16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_16_r4 (retarray, array, pdim, back); +#else + maxloc1_16_r4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_16_r4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_16_r8 (retarray, array, pdim, back); +#else + maxloc1_16_r8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_16_r8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -241,6 +241,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_16_s1 (retarray, array, pdim, back, string_len); +#else + maxloc1_16_s1 (retarray, array, pdim, string_len); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -436,7 +446,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_16_s1 (retarray, array, pdim, back, string_len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_16_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_16_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -241,6 +241,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_16_s4 (retarray, array, pdim, back, string_len); +#else + maxloc1_16_s4 (retarray, array, pdim, string_len); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -436,7 +446,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_16_s4 (retarray, array, pdim, back, string_len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_4_i16 (retarray, array, pdim, back); +#else + maxloc1_4_i16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_4_i16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_4_i1 (retarray, array, pdim, back); +#else + maxloc1_4_i1 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_4_i1 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_4_i2 (retarray, array, pdim, back); +#else + maxloc1_4_i2 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_4_i2 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_4_i4 (retarray, array, pdim, back); +#else + maxloc1_4_i4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_4_i4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_4_i8 (retarray, array, pdim, back); +#else + maxloc1_4_i8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_4_i8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_4_r10 (retarray, array, pdim, back); +#else + maxloc1_4_r10 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_4_r10 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_4_r16 (retarray, array, pdim, back); +#else + maxloc1_4_r16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_4_r16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_4_r4 (retarray, array, pdim, back); +#else + maxloc1_4_r4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_4_r4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_4_r8 (retarray, array, pdim, back); +#else + maxloc1_4_r8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_4_r8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -241,6 +241,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_4_s1 (retarray, array, pdim, back, string_len); +#else + maxloc1_4_s1 (retarray, array, pdim, string_len); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -436,7 +446,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_4_s1 (retarray, array, pdim, back, string_len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_4_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_4_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -241,6 +241,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_4_s4 (retarray, array, pdim, back, string_len); +#else + maxloc1_4_s4 (retarray, array, pdim, string_len); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -436,7 +446,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_4_s4 (retarray, array, pdim, back, string_len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_8_i16 (retarray, array, pdim, back); +#else + maxloc1_8_i16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_8_i16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_8_i1 (retarray, array, pdim, back); +#else + maxloc1_8_i1 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_8_i1 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_8_i2 (retarray, array, pdim, back); +#else + maxloc1_8_i2 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_8_i2 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_8_i4 (retarray, array, pdim, back); +#else + maxloc1_8_i4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_8_i4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_8_i8 (retarray, array, pdim, back); +#else + maxloc1_8_i8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_8_i8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_8_r10 (retarray, array, pdim, back); +#else + maxloc1_8_r10 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_8_r10 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_8_r16 (retarray, array, pdim, back); +#else + maxloc1_8_r16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_8_r16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_8_r4 (retarray, array, pdim, back); +#else + maxloc1_8_r4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_8_r4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -248,6 +248,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_8_r8 (retarray, array, pdim, back); +#else + maxloc1_8_r8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -470,7 +480,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_8_r8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -241,6 +241,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_8_s1 (retarray, array, pdim, back, string_len); +#else + maxloc1_8_s1 (retarray, array, pdim, string_len); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -436,7 +446,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_8_s1 (retarray, array, pdim, back, string_len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc1_8_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc1_8_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -241,6 +241,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxloc1_8_s4 (retarray, array, pdim, back, string_len); +#else + maxloc1_8_s4 (retarray, array, pdim, string_len); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -436,7 +446,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxloc1_8_s4 (retarray, array, pdim, back, string_len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc2_16_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc2_16_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc2_16_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc2_16_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc2_16_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc2_16_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc2_16_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc2_16_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc2_4_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc2_4_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc2_4_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc2_4_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc2_4_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc2_4_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc2_4_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc2_4_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc2_8_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc2_8_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc2_8_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc2_8_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc2_8_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc2_8_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxloc2_8_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxloc2_8_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval0_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval0_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval0_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval0_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -150,6 +150,12 @@ index_type n; int mask_kind; + if (mask == NULL) + { + maxval0_s1 (ret, xlen, array, len); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -247,7 +253,7 @@ GFC_LOGICAL_4 *mask, gfc_charlen_type len) { - if (*mask) + if (mask == NULL || *mask) { maxval0_s1 (ret, xlen, array, len); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval0_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval0_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval0_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval0_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -150,6 +150,12 @@ index_type n; int mask_kind; + if (mask == NULL) + { + maxval0_s4 (ret, xlen, array, len); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -247,7 +253,7 @@ GFC_LOGICAL_4 *mask, gfc_charlen_type len) { - if (*mask) + if (mask == NULL || *mask) { maxval0_s4 (ret, xlen, array, len); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval1_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval1_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval1_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval1_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXVAL intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -239,6 +239,12 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { + maxval1_s1 (retarray, xlen, array, pdim, string_len); + return; + } + assert (xlen == string_len); dim = (*pdim) - 1; @@ -436,7 +442,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { maxval1_s1 (retarray, xlen, array, pdim, string_len); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval1_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval1_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval1_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval1_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXVAL intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -239,6 +239,12 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { + maxval1_s4 (retarray, xlen, array, pdim, string_len); + return; + } + assert (xlen == string_len); dim = (*pdim) - 1; @@ -436,7 +442,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { maxval1_s4 (retarray, xlen, array, pdim, string_len); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -234,6 +234,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxval_i16 (retarray, array, pdim, back); +#else + maxval_i16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -441,7 +451,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxval_i16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -234,6 +234,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxval_i1 (retarray, array, pdim, back); +#else + maxval_i1 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -441,7 +451,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxval_i1 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -234,6 +234,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxval_i2 (retarray, array, pdim, back); +#else + maxval_i2 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -441,7 +451,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxval_i2 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -234,6 +234,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxval_i4 (retarray, array, pdim, back); +#else + maxval_i4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -441,7 +451,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxval_i4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -234,6 +234,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxval_i8 (retarray, array, pdim, back); +#else + maxval_i8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -441,7 +451,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxval_i8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -234,6 +234,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxval_r10 (retarray, array, pdim, back); +#else + maxval_r10 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -441,7 +451,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxval_r10 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -234,6 +234,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxval_r16 (retarray, array, pdim, back); +#else + maxval_r16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -441,7 +451,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxval_r16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -234,6 +234,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxval_r4 (retarray, array, pdim, back); +#else + maxval_r4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -441,7 +451,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxval_r4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/maxval_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/maxval_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -234,6 +234,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + maxval_r8 (retarray, array, pdim, back); +#else + maxval_r8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -441,7 +451,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG maxval_r8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_16_i16 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_16_i16 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_16_i1 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_16_i1 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_16_i2 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_16_i2 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_16_i4 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_16_i4 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_16_i8 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_16_i8 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_16_r10 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_16_r10 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_16_r16 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_16_r16 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_16_r4 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_16_r4 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_16_r8 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_16_r8 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -174,6 +174,16 @@ index_type n; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc0_16_s1 (retarray, array, back, len); +#else + minloc0_16_s1 (retarray, array, len); +#endif + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -304,7 +314,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc0_16_s1 (retarray, array, back, len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_16_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_16_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -174,6 +174,16 @@ index_type n; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc0_16_s4 (retarray, array, back, len); +#else + minloc0_16_s4 (retarray, array, len); +#endif + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -304,7 +314,7 @@ index_type n; GFC_INTEGER_16 *dest; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc0_16_s4 (retarray, array, back, len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_4_i16 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_4_i16 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_4_i1 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_4_i1 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_4_i2 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_4_i2 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_4_i4 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_4_i4 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_4_i8 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_4_i8 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_4_r10 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_4_r10 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_4_r16 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_4_r16 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_4_r4 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_4_r4 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_4_r8 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_4_r8 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -174,6 +174,16 @@ index_type n; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc0_4_s1 (retarray, array, back, len); +#else + minloc0_4_s1 (retarray, array, len); +#endif + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -304,7 +314,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc0_4_s1 (retarray, array, back, len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_4_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_4_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -174,6 +174,16 @@ index_type n; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc0_4_s4 (retarray, array, back, len); +#else + minloc0_4_s4 (retarray, array, len); +#endif + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -304,7 +314,7 @@ index_type n; GFC_INTEGER_4 *dest; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc0_4_s4 (retarray, array, back, len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_8_i16 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_8_i16 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_8_i1 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_8_i1 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_8_i2 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_8_i2 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_8_i4 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_8_i4 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_8_i8 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_8_i8 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_8_r10 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_8_r10 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_8_r16 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_8_r16 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_8_r4 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_8_r4 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -198,6 +198,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + minloc0_8_r8 (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -368,7 +375,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { minloc0_8_r8 (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -174,6 +174,16 @@ index_type n; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc0_8_s1 (retarray, array, back, len); +#else + minloc0_8_s1 (retarray, array, len); +#endif + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -304,7 +314,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc0_8_s1 (retarray, array, back, len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc0_8_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc0_8_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -174,6 +174,16 @@ index_type n; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc0_8_s4 (retarray, array, back, len); +#else + minloc0_8_s4 (retarray, array, len); +#endif + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -304,7 +314,7 @@ index_type n; GFC_INTEGER_8 *dest; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc0_8_s4 (retarray, array, back, len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_16_i16 (retarray, array, pdim, back); +#else + minloc1_16_i16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_16_i16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_16_i1 (retarray, array, pdim, back); +#else + minloc1_16_i1 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_16_i1 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_16_i2 (retarray, array, pdim, back); +#else + minloc1_16_i2 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_16_i2 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_16_i4 (retarray, array, pdim, back); +#else + minloc1_16_i4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_16_i4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_16_i8 (retarray, array, pdim, back); +#else + minloc1_16_i8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_16_i8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_16_r10 (retarray, array, pdim, back); +#else + minloc1_16_r10 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_16_r10 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_16_r16 (retarray, array, pdim, back); +#else + minloc1_16_r16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_16_r16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_16_r4 (retarray, array, pdim, back); +#else + minloc1_16_r4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_16_r4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_16_r8 (retarray, array, pdim, back); +#else + minloc1_16_r8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_16_r8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -241,6 +241,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_16_s1 (retarray, array, pdim, back, string_len); +#else + minloc1_16_s1 (retarray, array, pdim, string_len); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -436,7 +446,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_16_s1 (retarray, array, pdim, back, string_len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_16_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_16_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -241,6 +241,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_16_s4 (retarray, array, pdim, back, string_len); +#else + minloc1_16_s4 (retarray, array, pdim, string_len); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -436,7 +446,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_16_s4 (retarray, array, pdim, back, string_len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_4_i16 (retarray, array, pdim, back); +#else + minloc1_4_i16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_4_i16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_4_i1 (retarray, array, pdim, back); +#else + minloc1_4_i1 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_4_i1 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_4_i2 (retarray, array, pdim, back); +#else + minloc1_4_i2 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_4_i2 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_4_i4 (retarray, array, pdim, back); +#else + minloc1_4_i4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_4_i4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_4_i8 (retarray, array, pdim, back); +#else + minloc1_4_i8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_4_i8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_4_r10 (retarray, array, pdim, back); +#else + minloc1_4_r10 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_4_r10 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_4_r16 (retarray, array, pdim, back); +#else + minloc1_4_r16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_4_r16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_4_r4 (retarray, array, pdim, back); +#else + minloc1_4_r4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_4_r4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_4_r8 (retarray, array, pdim, back); +#else + minloc1_4_r8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_4_r8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -241,6 +241,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_4_s1 (retarray, array, pdim, back, string_len); +#else + minloc1_4_s1 (retarray, array, pdim, string_len); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -436,7 +446,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_4_s1 (retarray, array, pdim, back, string_len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_4_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_4_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -241,6 +241,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_4_s4 (retarray, array, pdim, back, string_len); +#else + minloc1_4_s4 (retarray, array, pdim, string_len); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -436,7 +446,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_4_s4 (retarray, array, pdim, back, string_len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_8_i16 (retarray, array, pdim, back); +#else + minloc1_8_i16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_8_i16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_8_i1 (retarray, array, pdim, back); +#else + minloc1_8_i1 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_8_i1 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_8_i2 (retarray, array, pdim, back); +#else + minloc1_8_i2 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_8_i2 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_8_i4 (retarray, array, pdim, back); +#else + minloc1_8_i4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_8_i4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_8_i8 (retarray, array, pdim, back); +#else + minloc1_8_i8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_8_i8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_8_r10 (retarray, array, pdim, back); +#else + minloc1_8_r10 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_8_r10 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_8_r16 (retarray, array, pdim, back); +#else + minloc1_8_r16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_8_r16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_8_r4 (retarray, array, pdim, back); +#else + minloc1_8_r4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_8_r4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -258,6 +258,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_8_r8 (retarray, array, pdim, back); +#else + minloc1_8_r8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -480,7 +490,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_8_r8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -241,6 +241,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_8_s1 (retarray, array, pdim, back, string_len); +#else + minloc1_8_s1 (retarray, array, pdim, string_len); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -436,7 +446,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_8_s1 (retarray, array, pdim, back, string_len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc1_8_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc1_8_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -241,6 +241,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minloc1_8_s4 (retarray, array, pdim, back, string_len); +#else + minloc1_8_s4 (retarray, array, pdim, string_len); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -436,7 +446,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minloc1_8_s4 (retarray, array, pdim, back, string_len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc2_16_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc2_16_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc2_16_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc2_16_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc2_16_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc2_16_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc2_16_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc2_16_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc2_4_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc2_4_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc2_4_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc2_4_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc2_4_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc2_4_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc2_4_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc2_4_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc2_8_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc2_8_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc2_8_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc2_8_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc2_8_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc2_8_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minloc2_8_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minloc2_8_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval0_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval0_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval0_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval0_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -150,6 +150,12 @@ index_type n; int mask_kind; + if (mask == NULL) + { + minval0_s1 (ret, xlen, array, len); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -247,7 +253,7 @@ GFC_LOGICAL_4 *mask, gfc_charlen_type len) { - if (*mask) + if (mask == NULL || *mask) { minval0_s1 (ret, xlen, array, len); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval0_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval0_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval0_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval0_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -150,6 +150,12 @@ index_type n; int mask_kind; + if (mask == NULL) + { + minval0_s4 (ret, xlen, array, len); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -247,7 +253,7 @@ GFC_LOGICAL_4 *mask, gfc_charlen_type len) { - if (*mask) + if (mask == NULL || *mask) { minval0_s4 (ret, xlen, array, len); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval1_s1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval1_s1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval1_s1.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval1_s1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXVAL intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -239,6 +239,12 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { + minval1_s1 (retarray, xlen, array, pdim, string_len); + return; + } + assert (xlen == string_len); dim = (*pdim) - 1; @@ -436,7 +442,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { minval1_s1 (retarray, xlen, array, pdim, string_len); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval1_s4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval1_s4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval1_s4.c 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval1_s4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MAXVAL intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). @@ -239,6 +239,12 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { + minval1_s4 (retarray, xlen, array, pdim, string_len); + return; + } + assert (xlen == string_len); dim = (*pdim) - 1; @@ -436,7 +442,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { minval1_s4 (retarray, xlen, array, pdim, string_len); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -234,6 +234,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minval_i16 (retarray, array, pdim, back); +#else + minval_i16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -441,7 +451,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minval_i16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -234,6 +234,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minval_i1 (retarray, array, pdim, back); +#else + minval_i1 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -441,7 +451,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minval_i1 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -234,6 +234,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minval_i2 (retarray, array, pdim, back); +#else + minval_i2 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -441,7 +451,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minval_i2 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -234,6 +234,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minval_i4 (retarray, array, pdim, back); +#else + minval_i4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -441,7 +451,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minval_i4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -234,6 +234,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minval_i8 (retarray, array, pdim, back); +#else + minval_i8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -441,7 +451,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minval_i8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -234,6 +234,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minval_r10 (retarray, array, pdim, back); +#else + minval_r10 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -441,7 +451,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minval_r10 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -234,6 +234,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minval_r16 (retarray, array, pdim, back); +#else + minval_r16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -441,7 +451,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minval_r16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -234,6 +234,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minval_r4 (retarray, array, pdim, back); +#else + minval_r4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -441,7 +451,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minval_r4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/minval_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/minval_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MINVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -234,6 +234,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + minval_r8 (retarray, array, pdim, back); +#else + minval_r8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -441,7 +451,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG minval_r8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/misc_specifics.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/misc_specifics.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/misc_specifics.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/misc_specifics.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_mod_i16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_mod_i16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_mod_i16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_mod_i16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_mod_i4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_mod_i4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_mod_i4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_mod_i4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_mod_i8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_mod_i8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_mod_i8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_mod_i8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_mod_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_mod_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_mod_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_mod_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_mod_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_mod_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_mod_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_mod_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_mod_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_mod_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_mod_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_mod_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_mod_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_mod_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_mod_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_mod_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/norm2_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/norm2_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/norm2_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/norm2_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the NORM2 intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/norm2_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/norm2_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/norm2_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/norm2_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the NORM2 intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/norm2_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/norm2_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/norm2_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/norm2_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the NORM2 intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/norm2_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/norm2_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/norm2_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/norm2_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the NORM2 intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_c10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_c10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_c10.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_c10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the PACK intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_c16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_c16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_c16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_c16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the PACK intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_c4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_c4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_c4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_c4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the PACK intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_c8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_c8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_c8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_c8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the PACK intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_i16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the PACK intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_i1.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the PACK intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_i2.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the PACK intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_i4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the PACK intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_i8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the PACK intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_r10.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the PACK intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_r16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the PACK intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_r4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the PACK intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pack_r8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pack_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the PACK intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/parity_l16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/parity_l16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/parity_l16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/parity_l16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PARITY intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/parity_l1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/parity_l1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/parity_l1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/parity_l1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PARITY intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/parity_l2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/parity_l2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/parity_l2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/parity_l2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PARITY intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/parity_l4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/parity_l4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/parity_l4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/parity_l4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PARITY intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/parity_l8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/parity_l8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/parity_l8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/parity_l8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PARITY intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c10_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c10_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c10_i16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c10_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c10_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c10_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c10_i4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c10_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c10_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c10_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c10_i8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c10_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c16_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c16_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c16_i16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c16_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c16_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c16_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c16_i4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c16_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c16_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c16_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c16_i8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c16_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c4_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c4_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c4_i16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c4_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c4_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c4_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c4_i4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c4_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c4_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c4_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c4_i8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c4_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c8_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c8_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c8_i16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c8_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c8_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c8_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c8_i4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c8_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c8_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c8_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_c8_i8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_c8_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_i16_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_i16_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_i16_i16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_i16_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_i16_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_i16_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_i16_i4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_i16_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_i16_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_i16_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_i16_i8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_i16_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_i4_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_i4_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_i4_i16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_i4_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_i4_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_i4_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_i4_i4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_i4_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_i4_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_i4_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_i4_i8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_i4_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_i8_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_i8_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_i8_i16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_i8_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_i8_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_i8_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_i8_i4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_i8_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_i8_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_i8_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_i8_i8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_i8_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_r10_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_r10_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_r10_i16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_r10_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_r10_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_r10_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_r10_i8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_r10_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_r16_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_r16_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_r16_i16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_r16_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_r16_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_r16_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_r16_i4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_r16_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_r16_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_r16_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_r16_i8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_r16_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_r4_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_r4_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_r4_i16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_r4_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_r4_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_r4_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_r4_i8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_r4_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_r8_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_r8_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_r8_i16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_r8_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_r8_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_r8_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/pow_r8_i8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/pow_r8_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_c10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_c10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_c10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_c10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PRODUCT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + product_c10 (retarray, array, pdim, back); +#else + product_c10 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG product_c10 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_c16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_c16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_c16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_c16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PRODUCT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + product_c16 (retarray, array, pdim, back); +#else + product_c16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG product_c16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_c4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_c4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_c4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_c4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PRODUCT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + product_c4 (retarray, array, pdim, back); +#else + product_c4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG product_c4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_c8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_c8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_c8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_c8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PRODUCT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + product_c8 (retarray, array, pdim, back); +#else + product_c8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG product_c8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PRODUCT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + product_i16 (retarray, array, pdim, back); +#else + product_i16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG product_i16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PRODUCT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + product_i1 (retarray, array, pdim, back); +#else + product_i1 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG product_i1 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PRODUCT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + product_i2 (retarray, array, pdim, back); +#else + product_i2 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG product_i2 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PRODUCT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + product_i4 (retarray, array, pdim, back); +#else + product_i4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG product_i4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PRODUCT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + product_i8 (retarray, array, pdim, back); +#else + product_i8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG product_i8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PRODUCT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + product_r10 (retarray, array, pdim, back); +#else + product_r10 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG product_r10 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PRODUCT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + product_r16 (retarray, array, pdim, back); +#else + product_r16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG product_r16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PRODUCT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + product_r4 (retarray, array, pdim, back); +#else + product_r4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG product_r4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/product_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/product_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PRODUCT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + product_r8 (retarray, array, pdim, back); +#else + product_r8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG product_r8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_c10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_c10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_c10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_c10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the RESHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_c16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_c16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_c16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_c16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the RESHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_c4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_c4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_c4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_c4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the RESHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_c8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_c8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_c8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_c8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the RESHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the RESHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the RESHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the RESHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the RESHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the RESHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the RESHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/reshape_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/reshape_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the RESHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/shape_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/shape_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/shape_i16.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/shape_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/shape_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/shape_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/shape_i1.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/shape_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/shape_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/shape_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/shape_i2.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/shape_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/shape_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/shape_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/shape_i4.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/shape_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/shape_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/shape_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/shape_i8.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/shape_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sign_i16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sign_i16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sign_i16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sign_i16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sign_i4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sign_i4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sign_i4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sign_i4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sign_i8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sign_i8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sign_i8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sign_i8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sign_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sign_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sign_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sign_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sign_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sign_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sign_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sign_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sign_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sign_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sign_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sign_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sign_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sign_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sign_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sign_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sin_c10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sin_c10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sin_c10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sin_c10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sin_c16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sin_c16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sin_c16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sin_c16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sin_c4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sin_c4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sin_c4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sin_c4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sin_c8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sin_c8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sin_c8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sin_c8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sinh_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sinh_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sinh_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sinh_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sinh_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sinh_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sinh_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sinh_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sinh_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sinh_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sinh_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sinh_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sinh_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sinh_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sinh_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sinh_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sin_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sin_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sin_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sin_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sin_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sin_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sin_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sin_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sin_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sin_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sin_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sin_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sin_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sin_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sin_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sin_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_c10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_c10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_c10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_c10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Special implementation of the SPREAD intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on spread_generic.c written by Paul Brook diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_c16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_c16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_c16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_c16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Special implementation of the SPREAD intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on spread_generic.c written by Paul Brook diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_c4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_c4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_c4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_c4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Special implementation of the SPREAD intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on spread_generic.c written by Paul Brook diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_c8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_c8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_c8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_c8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Special implementation of the SPREAD intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on spread_generic.c written by Paul Brook diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Special implementation of the SPREAD intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on spread_generic.c written by Paul Brook diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Special implementation of the SPREAD intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on spread_generic.c written by Paul Brook diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Special implementation of the SPREAD intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on spread_generic.c written by Paul Brook diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Special implementation of the SPREAD intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on spread_generic.c written by Paul Brook diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Special implementation of the SPREAD intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on spread_generic.c written by Paul Brook diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Special implementation of the SPREAD intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on spread_generic.c written by Paul Brook diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Special implementation of the SPREAD intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on spread_generic.c written by Paul Brook diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Special implementation of the SPREAD intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on spread_generic.c written by Paul Brook diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/spread_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/spread_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Special implementation of the SPREAD intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on spread_generic.c written by Paul Brook diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sqrt_c10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sqrt_c10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sqrt_c10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sqrt_c10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sqrt_c16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sqrt_c16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sqrt_c16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sqrt_c16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sqrt_c4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sqrt_c4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sqrt_c4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sqrt_c4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sqrt_c8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sqrt_c8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sqrt_c8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sqrt_c8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sqrt_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sqrt_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sqrt_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sqrt_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sqrt_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sqrt_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sqrt_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sqrt_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sqrt_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sqrt_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sqrt_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sqrt_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sqrt_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sqrt_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_sqrt_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_sqrt_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_c10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_c10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_c10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_c10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SUM intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + sum_c10 (retarray, array, pdim, back); +#else + sum_c10 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG sum_c10 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_c16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_c16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_c16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_c16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SUM intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + sum_c16 (retarray, array, pdim, back); +#else + sum_c16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG sum_c16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_c4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_c4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_c4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_c4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SUM intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + sum_c4 (retarray, array, pdim, back); +#else + sum_c4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG sum_c4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_c8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_c8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_c8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_c8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SUM intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + sum_c8 (retarray, array, pdim, back); +#else + sum_c8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG sum_c8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_i16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SUM intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + sum_i16 (retarray, array, pdim, back); +#else + sum_i16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG sum_i16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_i1.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SUM intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + sum_i1 (retarray, array, pdim, back); +#else + sum_i1 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG sum_i1 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_i2.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SUM intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + sum_i2 (retarray, array, pdim, back); +#else + sum_i2 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG sum_i2 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_i4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SUM intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + sum_i4 (retarray, array, pdim, back); +#else + sum_i4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG sum_i4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_i8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SUM intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + sum_i8 (retarray, array, pdim, back); +#else + sum_i8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG sum_i8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_r10.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SUM intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + sum_r10 (retarray, array, pdim, back); +#else + sum_r10 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG sum_r10 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_r16.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SUM intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + sum_r16 (retarray, array, pdim, back); +#else + sum_r16 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG sum_r16 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_r4.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SUM intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + sum_r4 (retarray, array, pdim, back); +#else + sum_r4 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG sum_r4 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/sum_r8.c 2018-06-01 22:07:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/sum_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SUM intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -220,6 +220,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + sum_r8 (retarray, array, pdim, back); +#else + sum_r8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -399,7 +409,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG sum_r8 (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_tanh_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_tanh_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_tanh_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_tanh_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_tanh_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_tanh_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_tanh_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_tanh_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_tanh_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_tanh_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_tanh_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_tanh_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_tanh_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_tanh_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_tanh_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_tanh_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_tan_r10.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_tan_r10.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_tan_r10.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_tan_r10.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_tan_r16.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_tan_r16.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_tan_r16.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_tan_r16.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_tan_r4.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_tan_r4.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_tan_r4.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_tan_r4.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_tan_r8.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_tan_r8.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/_tan_r8.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/_tan_r8.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_c10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_c10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_c10.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_c10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the UNPACK intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on unpack_generic.c by Paul Brook . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_c16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_c16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_c16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_c16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the UNPACK intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on unpack_generic.c by Paul Brook . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_c4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_c4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_c4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_c4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the UNPACK intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on unpack_generic.c by Paul Brook . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_c8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_c8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_c8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_c8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the UNPACK intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on unpack_generic.c by Paul Brook . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_i16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_i16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_i16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_i16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the UNPACK intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on unpack_generic.c by Paul Brook . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_i1.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_i1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_i1.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_i1.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the UNPACK intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on unpack_generic.c by Paul Brook . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_i2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_i2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_i2.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_i2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the UNPACK intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on unpack_generic.c by Paul Brook . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_i4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_i4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_i4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_i4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the UNPACK intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on unpack_generic.c by Paul Brook . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_i8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_i8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_i8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_i8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the UNPACK intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on unpack_generic.c by Paul Brook . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_r10.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_r10.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_r10.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_r10.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the UNPACK intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on unpack_generic.c by Paul Brook . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_r16.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_r16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_r16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_r16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the UNPACK intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on unpack_generic.c by Paul Brook . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_r4.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_r4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_r4.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_r4.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the UNPACK intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on unpack_generic.c by Paul Brook . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_r8.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_r8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/generated/unpack_r8.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/generated/unpack_r8.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Specific implementation of the UNPACK intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on unpack_generic.c by Paul Brook . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/gfortran.map gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/gfortran.map --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/gfortran.map 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/gfortran.map 2019-01-02 08:05:20.000000000 +0000 @@ -1573,4 +1573,9 @@ _gfortran_sfindloc2_s1; _gfortran_sfindloc2_s4; _gfortran_st_wait_async; + __ieee_arithmetic_MOD_ieee_support_subnormal_10; + __ieee_arithmetic_MOD_ieee_support_subnormal_16; + __ieee_arithmetic_MOD_ieee_support_subnormal_4; + __ieee_arithmetic_MOD_ieee_support_subnormal_8; + __ieee_arithmetic_MOD_ieee_support_subnormal_noarg; }; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/ieee/ieee_arithmetic.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/ieee/ieee_arithmetic.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/ieee/ieee_arithmetic.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/ieee/ieee_arithmetic.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ ! Implementation of the IEEE_ARITHMETIC standard intrinsic module -! Copyright (C) 2013-2018 Free Software Foundation, Inc. +! Copyright (C) 2013-2019 Free Software Foundation, Inc. ! Contributed by Francois-Xavier Coudert ! ! This file is part of the GNU Fortran runtime library (libgfortran). @@ -55,9 +55,11 @@ IEEE_NEGATIVE_INF = IEEE_CLASS_TYPE(3), & IEEE_NEGATIVE_NORMAL = IEEE_CLASS_TYPE(4), & IEEE_NEGATIVE_DENORMAL = IEEE_CLASS_TYPE(5), & + IEEE_NEGATIVE_SUBNORMAL= IEEE_CLASS_TYPE(5), & IEEE_NEGATIVE_ZERO = IEEE_CLASS_TYPE(6), & IEEE_POSITIVE_ZERO = IEEE_CLASS_TYPE(7), & IEEE_POSITIVE_DENORMAL = IEEE_CLASS_TYPE(8), & + IEEE_POSITIVE_SUBNORMAL= IEEE_CLASS_TYPE(8), & IEEE_POSITIVE_NORMAL = IEEE_CLASS_TYPE(9), & IEEE_POSITIVE_INF = IEEE_CLASS_TYPE(10) @@ -228,38 +230,28 @@ end function interface -COPYSIGN_MACRO(4,4) -COPYSIGN_MACRO(4,8) -#ifdef HAVE_GFC_REAL_10 -COPYSIGN_MACRO(4,10) -#endif #ifdef HAVE_GFC_REAL_16 -COPYSIGN_MACRO(4,16) -#endif -COPYSIGN_MACRO(8,4) -COPYSIGN_MACRO(8,8) +COPYSIGN_MACRO(16,16) #ifdef HAVE_GFC_REAL_10 -COPYSIGN_MACRO(8,10) +COPYSIGN_MACRO(16,10) +COPYSIGN_MACRO(10,16) #endif -#ifdef HAVE_GFC_REAL_16 +COPYSIGN_MACRO(16,8) +COPYSIGN_MACRO(16,4) COPYSIGN_MACRO(8,16) +COPYSIGN_MACRO(4,16) #endif #ifdef HAVE_GFC_REAL_10 -COPYSIGN_MACRO(10,4) -COPYSIGN_MACRO(10,8) COPYSIGN_MACRO(10,10) -#ifdef HAVE_GFC_REAL_16 -COPYSIGN_MACRO(10,16) -#endif -#endif -#ifdef HAVE_GFC_REAL_16 -COPYSIGN_MACRO(16,4) -COPYSIGN_MACRO(16,8) -#ifdef HAVE_GFC_REAL_10 -COPYSIGN_MACRO(16,10) -#endif -COPYSIGN_MACRO(16,16) +COPYSIGN_MACRO(10,8) +COPYSIGN_MACRO(10,4) +COPYSIGN_MACRO(8,10) +COPYSIGN_MACRO(4,10) #endif +COPYSIGN_MACRO(8,8) +COPYSIGN_MACRO(8,4) +COPYSIGN_MACRO(4,8) +COPYSIGN_MACRO(4,4) end interface interface IEEE_COPY_SIGN @@ -268,32 +260,22 @@ _gfortran_ieee_copy_sign_16_16, & #ifdef HAVE_GFC_REAL_10 _gfortran_ieee_copy_sign_16_10, & + _gfortran_ieee_copy_sign_10_16, & #endif _gfortran_ieee_copy_sign_16_8, & _gfortran_ieee_copy_sign_16_4, & + _gfortran_ieee_copy_sign_8_16, & + _gfortran_ieee_copy_sign_4_16, & #endif #ifdef HAVE_GFC_REAL_10 -#ifdef HAVE_GFC_REAL_16 - _gfortran_ieee_copy_sign_10_16, & -#endif _gfortran_ieee_copy_sign_10_10, & _gfortran_ieee_copy_sign_10_8, & _gfortran_ieee_copy_sign_10_4, & -#endif -#ifdef HAVE_GFC_REAL_16 - _gfortran_ieee_copy_sign_8_16, & -#endif -#ifdef HAVE_GFC_REAL_10 _gfortran_ieee_copy_sign_8_10, & + _gfortran_ieee_copy_sign_4_10, & #endif _gfortran_ieee_copy_sign_8_8, & _gfortran_ieee_copy_sign_8_4, & -#ifdef HAVE_GFC_REAL_16 - _gfortran_ieee_copy_sign_4_16, & -#endif -#ifdef HAVE_GFC_REAL_10 - _gfortran_ieee_copy_sign_4_10, & -#endif _gfortran_ieee_copy_sign_4_8, & _gfortran_ieee_copy_sign_4_4 end interface @@ -309,38 +291,28 @@ end function interface -UNORDERED_MACRO(4,4) -UNORDERED_MACRO(4,8) -#ifdef HAVE_GFC_REAL_10 -UNORDERED_MACRO(4,10) -#endif #ifdef HAVE_GFC_REAL_16 -UNORDERED_MACRO(4,16) -#endif -UNORDERED_MACRO(8,4) -UNORDERED_MACRO(8,8) +UNORDERED_MACRO(16,16) #ifdef HAVE_GFC_REAL_10 -UNORDERED_MACRO(8,10) +UNORDERED_MACRO(16,10) +UNORDERED_MACRO(10,16) #endif -#ifdef HAVE_GFC_REAL_16 +UNORDERED_MACRO(16,8) +UNORDERED_MACRO(16,4) UNORDERED_MACRO(8,16) +UNORDERED_MACRO(4,16) #endif #ifdef HAVE_GFC_REAL_10 -UNORDERED_MACRO(10,4) -UNORDERED_MACRO(10,8) UNORDERED_MACRO(10,10) -#ifdef HAVE_GFC_REAL_16 -UNORDERED_MACRO(10,16) -#endif -#endif -#ifdef HAVE_GFC_REAL_16 -UNORDERED_MACRO(16,4) -UNORDERED_MACRO(16,8) -#ifdef HAVE_GFC_REAL_10 -UNORDERED_MACRO(16,10) -#endif -UNORDERED_MACRO(16,16) +UNORDERED_MACRO(10,8) +UNORDERED_MACRO(10,4) +UNORDERED_MACRO(8,10) +UNORDERED_MACRO(4,10) #endif +UNORDERED_MACRO(8,8) +UNORDERED_MACRO(8,4) +UNORDERED_MACRO(4,8) +UNORDERED_MACRO(4,4) end interface interface IEEE_UNORDERED @@ -349,32 +321,22 @@ _gfortran_ieee_unordered_16_16, & #ifdef HAVE_GFC_REAL_10 _gfortran_ieee_unordered_16_10, & + _gfortran_ieee_unordered_10_16, & #endif _gfortran_ieee_unordered_16_8, & _gfortran_ieee_unordered_16_4, & + _gfortran_ieee_unordered_8_16, & + _gfortran_ieee_unordered_4_16, & #endif #ifdef HAVE_GFC_REAL_10 -#ifdef HAVE_GFC_REAL_16 - _gfortran_ieee_unordered_10_16, & -#endif _gfortran_ieee_unordered_10_10, & _gfortran_ieee_unordered_10_8, & _gfortran_ieee_unordered_10_4, & -#endif -#ifdef HAVE_GFC_REAL_16 - _gfortran_ieee_unordered_8_16, & -#endif -#ifdef HAVE_GFC_REAL_10 _gfortran_ieee_unordered_8_10, & + _gfortran_ieee_unordered_4_10, & #endif _gfortran_ieee_unordered_8_8, & _gfortran_ieee_unordered_8_4, & -#ifdef HAVE_GFC_REAL_16 - _gfortran_ieee_unordered_4_16, & -#endif -#ifdef HAVE_GFC_REAL_10 - _gfortran_ieee_unordered_4_10, & -#endif _gfortran_ieee_unordered_4_8, & _gfortran_ieee_unordered_4_4 end interface @@ -424,38 +386,28 @@ end function interface -NEXT_AFTER_MACRO(4,4) -NEXT_AFTER_MACRO(4,8) -#ifdef HAVE_GFC_REAL_10 -NEXT_AFTER_MACRO(4,10) -#endif #ifdef HAVE_GFC_REAL_16 -NEXT_AFTER_MACRO(4,16) -#endif -NEXT_AFTER_MACRO(8,4) -NEXT_AFTER_MACRO(8,8) +NEXT_AFTER_MACRO(16,16) #ifdef HAVE_GFC_REAL_10 -NEXT_AFTER_MACRO(8,10) +NEXT_AFTER_MACRO(16,10) +NEXT_AFTER_MACRO(10,16) #endif -#ifdef HAVE_GFC_REAL_16 +NEXT_AFTER_MACRO(16,8) +NEXT_AFTER_MACRO(16,4) NEXT_AFTER_MACRO(8,16) +NEXT_AFTER_MACRO(4,16) #endif #ifdef HAVE_GFC_REAL_10 -NEXT_AFTER_MACRO(10,4) -NEXT_AFTER_MACRO(10,8) NEXT_AFTER_MACRO(10,10) -#ifdef HAVE_GFC_REAL_16 -NEXT_AFTER_MACRO(10,16) -#endif -#endif -#ifdef HAVE_GFC_REAL_16 -NEXT_AFTER_MACRO(16,4) -NEXT_AFTER_MACRO(16,8) -#ifdef HAVE_GFC_REAL_10 -NEXT_AFTER_MACRO(16,10) -#endif -NEXT_AFTER_MACRO(16,16) +NEXT_AFTER_MACRO(10,8) +NEXT_AFTER_MACRO(10,4) +NEXT_AFTER_MACRO(8,10) +NEXT_AFTER_MACRO(4,10) #endif +NEXT_AFTER_MACRO(8,8) +NEXT_AFTER_MACRO(8,4) +NEXT_AFTER_MACRO(4,8) +NEXT_AFTER_MACRO(4,4) end interface interface IEEE_NEXT_AFTER @@ -464,32 +416,22 @@ _gfortran_ieee_next_after_16_16, & #ifdef HAVE_GFC_REAL_10 _gfortran_ieee_next_after_16_10, & + _gfortran_ieee_next_after_10_16, & #endif _gfortran_ieee_next_after_16_8, & _gfortran_ieee_next_after_16_4, & + _gfortran_ieee_next_after_8_16, & + _gfortran_ieee_next_after_4_16, & #endif #ifdef HAVE_GFC_REAL_10 -#ifdef HAVE_GFC_REAL_16 - _gfortran_ieee_next_after_10_16, & -#endif _gfortran_ieee_next_after_10_10, & _gfortran_ieee_next_after_10_8, & _gfortran_ieee_next_after_10_4, & -#endif -#ifdef HAVE_GFC_REAL_16 - _gfortran_ieee_next_after_8_16, & -#endif -#ifdef HAVE_GFC_REAL_10 _gfortran_ieee_next_after_8_10, & + _gfortran_ieee_next_after_4_10, & #endif _gfortran_ieee_next_after_8_8, & _gfortran_ieee_next_after_8_4, & -#ifdef HAVE_GFC_REAL_16 - _gfortran_ieee_next_after_4_16, & -#endif -#ifdef HAVE_GFC_REAL_10 - _gfortran_ieee_next_after_4_10, & -#endif _gfortran_ieee_next_after_4_8, & _gfortran_ieee_next_after_4_4 end interface @@ -505,38 +447,28 @@ end function interface -REM_MACRO(4,4,4) -REM_MACRO(8,4,8) -#ifdef HAVE_GFC_REAL_10 -REM_MACRO(10,4,10) -#endif #ifdef HAVE_GFC_REAL_16 -REM_MACRO(16,4,16) -#endif -REM_MACRO(8,8,4) -REM_MACRO(8,8,8) +REM_MACRO(16,16,16) #ifdef HAVE_GFC_REAL_10 -REM_MACRO(10,8,10) +REM_MACRO(16,16,10) +REM_MACRO(16,10,16) #endif -#ifdef HAVE_GFC_REAL_16 +REM_MACRO(16,16,8) +REM_MACRO(16,16,4) REM_MACRO(16,8,16) +REM_MACRO(16,4,16) #endif #ifdef HAVE_GFC_REAL_10 -REM_MACRO(10,10,4) -REM_MACRO(10,10,8) REM_MACRO(10,10,10) -#ifdef HAVE_GFC_REAL_16 -REM_MACRO(16,10,16) -#endif -#endif -#ifdef HAVE_GFC_REAL_16 -REM_MACRO(16,16,4) -REM_MACRO(16,16,8) -#ifdef HAVE_GFC_REAL_10 -REM_MACRO(16,16,10) -#endif -REM_MACRO(16,16,16) +REM_MACRO(10,10,8) +REM_MACRO(10,10,4) +REM_MACRO(10,8,10) +REM_MACRO(10,4,10) #endif +REM_MACRO(8,8,8) +REM_MACRO(8,8,4) +REM_MACRO(8,4,8) +REM_MACRO(4,4,4) end interface interface IEEE_REM @@ -545,32 +477,22 @@ _gfortran_ieee_rem_16_16, & #ifdef HAVE_GFC_REAL_10 _gfortran_ieee_rem_16_10, & + _gfortran_ieee_rem_10_16, & #endif _gfortran_ieee_rem_16_8, & _gfortran_ieee_rem_16_4, & + _gfortran_ieee_rem_8_16, & + _gfortran_ieee_rem_4_16, & #endif #ifdef HAVE_GFC_REAL_10 -#ifdef HAVE_GFC_REAL_16 - _gfortran_ieee_rem_10_16, & -#endif _gfortran_ieee_rem_10_10, & _gfortran_ieee_rem_10_8, & _gfortran_ieee_rem_10_4, & -#endif -#ifdef HAVE_GFC_REAL_16 - _gfortran_ieee_rem_8_16, & -#endif -#ifdef HAVE_GFC_REAL_10 _gfortran_ieee_rem_8_10, & + _gfortran_ieee_rem_4_10, & #endif _gfortran_ieee_rem_8_8, & _gfortran_ieee_rem_8_4, & -#ifdef HAVE_GFC_REAL_16 - _gfortran_ieee_rem_4_16, & -#endif -#ifdef HAVE_GFC_REAL_10 - _gfortran_ieee_rem_4_10, & -#endif _gfortran_ieee_rem_4_8, & _gfortran_ieee_rem_4_4 end interface @@ -612,37 +534,170 @@ ! IEEE_SCALB interface - elemental real(kind=4) function _gfortran_ieee_scalb_4 (X, I) +#ifdef HAVE_GFC_INTEGER_16 +#ifdef HAVE_GFC_REAL_16 + elemental real(kind=16) function _gfortran_ieee_scalb_16_16 (X, I) + real(kind=16), intent(in) :: X + integer(kind=16), intent(in) :: I + end function +#endif +#ifdef HAVE_GFC_REAL_10 + elemental real(kind=10) function _gfortran_ieee_scalb_10_16 (X, I) + real(kind=10), intent(in) :: X + integer(kind=16), intent(in) :: I + end function +#endif + elemental real(kind=8) function _gfortran_ieee_scalb_8_16 (X, I) + real(kind=8), intent(in) :: X + integer(kind=16), intent(in) :: I + end function + elemental real(kind=4) function _gfortran_ieee_scalb_4_16 (X, I) real(kind=4), intent(in) :: X - integer, intent(in) :: I + integer(kind=16), intent(in) :: I + end function +#endif + +#ifdef HAVE_GFC_INTEGER_8 +#ifdef HAVE_GFC_REAL_16 + elemental real(kind=16) function _gfortran_ieee_scalb_16_8 (X, I) + real(kind=16), intent(in) :: X + integer(kind=8), intent(in) :: I + end function +#endif +#ifdef HAVE_GFC_REAL_10 + elemental real(kind=10) function _gfortran_ieee_scalb_10_8 (X, I) + real(kind=10), intent(in) :: X + integer(kind=8), intent(in) :: I end function - elemental real(kind=8) function _gfortran_ieee_scalb_8 (X, I) +#endif + elemental real(kind=8) function _gfortran_ieee_scalb_8_8 (X, I) real(kind=8), intent(in) :: X - integer, intent(in) :: I + integer(kind=8), intent(in) :: I + end function + elemental real(kind=4) function _gfortran_ieee_scalb_4_8 (X, I) + real(kind=4), intent(in) :: X + integer(kind=8), intent(in) :: I + end function +#endif + +#ifdef HAVE_GFC_INTEGER_2 +#ifdef HAVE_GFC_REAL_16 + elemental real(kind=16) function _gfortran_ieee_scalb_16_2 (X, I) + real(kind=16), intent(in) :: X + integer(kind=2), intent(in) :: I end function +#endif #ifdef HAVE_GFC_REAL_10 - elemental real(kind=10) function _gfortran_ieee_scalb_10 (X, I) + elemental real(kind=10) function _gfortran_ieee_scalb_10_2 (X, I) real(kind=10), intent(in) :: X - integer, intent(in) :: I + integer(kind=2), intent(in) :: I + end function +#endif + elemental real(kind=8) function _gfortran_ieee_scalb_8_2 (X, I) + real(kind=8), intent(in) :: X + integer(kind=2), intent(in) :: I + end function + elemental real(kind=4) function _gfortran_ieee_scalb_4_2 (X, I) + real(kind=4), intent(in) :: X + integer(kind=2), intent(in) :: I + end function +#endif + +#ifdef HAVE_GFC_INTEGER_1 +#ifdef HAVE_GFC_REAL_16 + elemental real(kind=16) function _gfortran_ieee_scalb_16_1 (X, I) + real(kind=16), intent(in) :: X + integer(kind=1), intent(in) :: I + end function +#endif +#ifdef HAVE_GFC_REAL_10 + elemental real(kind=10) function _gfortran_ieee_scalb_10_1 (X, I) + real(kind=10), intent(in) :: X + integer(kind=1), intent(in) :: I + end function +#endif + elemental real(kind=8) function _gfortran_ieee_scalb_8_1 (X, I) + real(kind=8), intent(in) :: X + integer(kind=1), intent(in) :: I + end function + elemental real(kind=4) function _gfortran_ieee_scalb_4_1 (X, I) + real(kind=4), intent(in) :: X + integer(kind=1), intent(in) :: I end function #endif + #ifdef HAVE_GFC_REAL_16 - elemental real(kind=16) function _gfortran_ieee_scalb_16 (X, I) + elemental real(kind=16) function _gfortran_ieee_scalb_16_4 (X, I) real(kind=16), intent(in) :: X integer, intent(in) :: I end function #endif +#ifdef HAVE_GFC_REAL_10 + elemental real(kind=10) function _gfortran_ieee_scalb_10_4 (X, I) + real(kind=10), intent(in) :: X + integer, intent(in) :: I + end function +#endif + elemental real(kind=8) function _gfortran_ieee_scalb_8_4 (X, I) + real(kind=8), intent(in) :: X + integer, intent(in) :: I + end function + elemental real(kind=4) function _gfortran_ieee_scalb_4_4 (X, I) + real(kind=4), intent(in) :: X + integer, intent(in) :: I + end function end interface interface IEEE_SCALB procedure & +#ifdef HAVE_GFC_INTEGER_16 +#ifdef HAVE_GFC_REAL_16 + _gfortran_ieee_scalb_16_16, & +#endif +#ifdef HAVE_GFC_REAL_10 + _gfortran_ieee_scalb_10_16, & +#endif + _gfortran_ieee_scalb_8_16, & + _gfortran_ieee_scalb_4_16, & +#endif +#ifdef HAVE_GFC_INTEGER_8 #ifdef HAVE_GFC_REAL_16 - _gfortran_ieee_scalb_16, & + _gfortran_ieee_scalb_16_8, & #endif #ifdef HAVE_GFC_REAL_10 - _gfortran_ieee_scalb_10, & + _gfortran_ieee_scalb_10_8, & #endif - _gfortran_ieee_scalb_8, _gfortran_ieee_scalb_4 + _gfortran_ieee_scalb_8_8, & + _gfortran_ieee_scalb_4_8, & +#endif +#ifdef HAVE_GFC_INTEGER_2 +#ifdef HAVE_GFC_REAL_16 + _gfortran_ieee_scalb_16_2, & +#endif +#ifdef HAVE_GFC_REAL_10 + _gfortran_ieee_scalb_10_2, & +#endif + _gfortran_ieee_scalb_8_2, & + _gfortran_ieee_scalb_4_2, & +#endif +#ifdef HAVE_GFC_INTEGER_1 +#ifdef HAVE_GFC_REAL_16 + _gfortran_ieee_scalb_16_1, & +#endif +#ifdef HAVE_GFC_REAL_10 + _gfortran_ieee_scalb_10_1, & +#endif + _gfortran_ieee_scalb_8_1, & + _gfortran_ieee_scalb_4_1, & +#endif +#ifdef HAVE_GFC_REAL_16 + _gfortran_ieee_scalb_16_4, & +#endif +#ifdef HAVE_GFC_REAL_10 + _gfortran_ieee_scalb_10_4, & +#endif + _gfortran_ieee_scalb_8_4, & + _gfortran_ieee_scalb_4_4 end interface public :: IEEE_SCALB @@ -742,6 +797,7 @@ SUPPORTGENERIC(IEEE_SUPPORT_DATATYPE) SUPPORTGENERIC(IEEE_SUPPORT_DENORMAL) +SUPPORTGENERIC(IEEE_SUPPORT_SUBNORMAL) SUPPORTGENERIC(IEEE_SUPPORT_DIVIDE) SUPPORTGENERIC(IEEE_SUPPORT_INF) SUPPORTGENERIC(IEEE_SUPPORT_IO) @@ -861,17 +917,39 @@ real(kind=4), intent(in) :: X type(IEEE_CLASS_TYPE), intent(in) :: CLASS + logical flag select case (CLASS%hidden) case (1) ! IEEE_SIGNALING_NAN + if (ieee_support_halting(ieee_invalid)) then + call ieee_get_halting_mode(ieee_invalid, flag) + call ieee_set_halting_mode(ieee_invalid, .false.) + end if res = -1 res = sqrt(res) + if (ieee_support_halting(ieee_invalid)) then + call ieee_set_halting_mode(ieee_invalid, flag) + end if case (2) ! IEEE_QUIET_NAN + if (ieee_support_halting(ieee_invalid)) then + call ieee_get_halting_mode(ieee_invalid, flag) + call ieee_set_halting_mode(ieee_invalid, .false.) + end if res = -1 res = sqrt(res) + if (ieee_support_halting(ieee_invalid)) then + call ieee_set_halting_mode(ieee_invalid, flag) + end if case (3) ! IEEE_NEGATIVE_INF + if (ieee_support_halting(ieee_overflow)) then + call ieee_get_halting_mode(ieee_overflow, flag) + call ieee_set_halting_mode(ieee_overflow, .false.) + end if res = huge(res) res = (-res) * res + if (ieee_support_halting(ieee_overflow)) then + call ieee_set_halting_mode(ieee_overflow, flag) + end if case (4) ! IEEE_NEGATIVE_NORMAL res = -42 case (5) ! IEEE_NEGATIVE_DENORMAL @@ -888,8 +966,15 @@ case (9) ! IEEE_POSITIVE_NORMAL res = 42 case (10) ! IEEE_POSITIVE_INF + if (ieee_support_halting(ieee_overflow)) then + call ieee_get_halting_mode(ieee_overflow, flag) + call ieee_set_halting_mode(ieee_overflow, .false.) + end if res = huge(res) res = res * res + if (ieee_support_halting(ieee_overflow)) then + call ieee_set_halting_mode(ieee_overflow, flag) + end if case default ! IEEE_OTHER_VALUE, should not happen res = 0 end select @@ -899,17 +984,39 @@ real(kind=8), intent(in) :: X type(IEEE_CLASS_TYPE), intent(in) :: CLASS + logical flag select case (CLASS%hidden) case (1) ! IEEE_SIGNALING_NAN + if (ieee_support_halting(ieee_invalid)) then + call ieee_get_halting_mode(ieee_invalid, flag) + call ieee_set_halting_mode(ieee_invalid, .false.) + end if res = -1 res = sqrt(res) + if (ieee_support_halting(ieee_invalid)) then + call ieee_set_halting_mode(ieee_invalid, flag) + end if case (2) ! IEEE_QUIET_NAN + if (ieee_support_halting(ieee_invalid)) then + call ieee_get_halting_mode(ieee_invalid, flag) + call ieee_set_halting_mode(ieee_invalid, .false.) + end if res = -1 res = sqrt(res) + if (ieee_support_halting(ieee_invalid)) then + call ieee_set_halting_mode(ieee_invalid, flag) + end if case (3) ! IEEE_NEGATIVE_INF + if (ieee_support_halting(ieee_overflow)) then + call ieee_get_halting_mode(ieee_overflow, flag) + call ieee_set_halting_mode(ieee_overflow, .false.) + end if res = huge(res) res = (-res) * res + if (ieee_support_halting(ieee_overflow)) then + call ieee_set_halting_mode(ieee_overflow, flag) + end if case (4) ! IEEE_NEGATIVE_NORMAL res = -42 case (5) ! IEEE_NEGATIVE_DENORMAL @@ -926,8 +1033,15 @@ case (9) ! IEEE_POSITIVE_NORMAL res = 42 case (10) ! IEEE_POSITIVE_INF + if (ieee_support_halting(ieee_overflow)) then + call ieee_get_halting_mode(ieee_overflow, flag) + call ieee_set_halting_mode(ieee_overflow, .false.) + end if res = huge(res) res = res * res + if (ieee_support_halting(ieee_overflow)) then + call ieee_set_halting_mode(ieee_overflow, flag) + end if case default ! IEEE_OTHER_VALUE, should not happen res = 0 end select @@ -938,17 +1052,39 @@ real(kind=10), intent(in) :: X type(IEEE_CLASS_TYPE), intent(in) :: CLASS + logical flag select case (CLASS%hidden) case (1) ! IEEE_SIGNALING_NAN + if (ieee_support_halting(ieee_invalid)) then + call ieee_get_halting_mode(ieee_invalid, flag) + call ieee_set_halting_mode(ieee_invalid, .false.) + end if res = -1 res = sqrt(res) + if (ieee_support_halting(ieee_invalid)) then + call ieee_set_halting_mode(ieee_invalid, flag) + end if case (2) ! IEEE_QUIET_NAN + if (ieee_support_halting(ieee_invalid)) then + call ieee_get_halting_mode(ieee_invalid, flag) + call ieee_set_halting_mode(ieee_invalid, .false.) + end if res = -1 res = sqrt(res) - case (3) ! IEEE_NEGATIVE_INF + if (ieee_support_halting(ieee_invalid)) then + call ieee_set_halting_mode(ieee_invalid, flag) + end if + case (3) ! IEEE_NEGATIVE_INF + if (ieee_support_halting(ieee_overflow)) then + call ieee_get_halting_mode(ieee_overflow, flag) + call ieee_set_halting_mode(ieee_overflow, .false.) + end if res = huge(res) res = (-res) * res + if (ieee_support_halting(ieee_overflow)) then + call ieee_set_halting_mode(ieee_overflow, flag) + end if case (4) ! IEEE_NEGATIVE_NORMAL res = -42 case (5) ! IEEE_NEGATIVE_DENORMAL @@ -965,8 +1101,15 @@ case (9) ! IEEE_POSITIVE_NORMAL res = 42 case (10) ! IEEE_POSITIVE_INF + if (ieee_support_halting(ieee_overflow)) then + call ieee_get_halting_mode(ieee_overflow, flag) + call ieee_set_halting_mode(ieee_overflow, .false.) + end if res = huge(res) res = res * res + if (ieee_support_halting(ieee_overflow)) then + call ieee_set_halting_mode(ieee_overflow, flag) + end if case default ! IEEE_OTHER_VALUE, should not happen res = 0 end select @@ -979,17 +1122,39 @@ real(kind=16), intent(in) :: X type(IEEE_CLASS_TYPE), intent(in) :: CLASS + logical flag select case (CLASS%hidden) case (1) ! IEEE_SIGNALING_NAN + if (ieee_support_halting(ieee_invalid)) then + call ieee_get_halting_mode(ieee_invalid, flag) + call ieee_set_halting_mode(ieee_invalid, .false.) + end if res = -1 res = sqrt(res) + if (ieee_support_halting(ieee_invalid)) then + call ieee_set_halting_mode(ieee_invalid, flag) + end if case (2) ! IEEE_QUIET_NAN + if (ieee_support_halting(ieee_invalid)) then + call ieee_get_halting_mode(ieee_invalid, flag) + call ieee_set_halting_mode(ieee_invalid, .false.) + end if res = -1 res = sqrt(res) + if (ieee_support_halting(ieee_invalid)) then + call ieee_set_halting_mode(ieee_invalid, flag) + end if case (3) ! IEEE_NEGATIVE_INF + if (ieee_support_halting(ieee_overflow)) then + call ieee_get_halting_mode(ieee_overflow, flag) + call ieee_set_halting_mode(ieee_overflow, .false.) + end if res = huge(res) res = (-res) * res + if (ieee_support_halting(ieee_overflow)) then + call ieee_set_halting_mode(ieee_overflow, flag) + end if case (4) ! IEEE_NEGATIVE_NORMAL res = -42 case (5) ! IEEE_NEGATIVE_DENORMAL @@ -1006,8 +1171,15 @@ case (9) ! IEEE_POSITIVE_NORMAL res = 42 case (10) ! IEEE_POSITIVE_INF + if (ieee_support_halting(ieee_overflow)) then + call ieee_get_halting_mode(ieee_overflow, flag) + call ieee_set_halting_mode(ieee_overflow, .false.) + end if res = huge(res) res = res * res + if (ieee_support_halting(ieee_overflow)) then + call ieee_set_halting_mode(ieee_overflow, flag) + end if case default ! IEEE_OTHER_VALUE, should not happen res = 0 end select @@ -1190,7 +1362,7 @@ #endif SUPPORTMACRO_NOARG(IEEE_SUPPORT_DATATYPE,.true.) -! IEEE_SUPPORT_DENORMAL +! IEEE_SUPPORT_DENORMAL and IEEE_SUPPORT_SUBNORMAL SUPPORTMACRO(IEEE_SUPPORT_DENORMAL,4,.true.) SUPPORTMACRO(IEEE_SUPPORT_DENORMAL,8,.true.) @@ -1202,6 +1374,16 @@ #endif SUPPORTMACRO_NOARG(IEEE_SUPPORT_DENORMAL,.true.) +SUPPORTMACRO(IEEE_SUPPORT_SUBNORMAL,4,.true.) +SUPPORTMACRO(IEEE_SUPPORT_SUBNORMAL,8,.true.) +#ifdef HAVE_GFC_REAL_10 +SUPPORTMACRO(IEEE_SUPPORT_SUBNORMAL,10,.true.) +#endif +#ifdef HAVE_GFC_REAL_16 +SUPPORTMACRO(IEEE_SUPPORT_SUBNORMAL,16,.true.) +#endif +SUPPORTMACRO_NOARG(IEEE_SUPPORT_SUBNORMAL,.true.) + ! IEEE_SUPPORT_DIVIDE SUPPORTMACRO(IEEE_SUPPORT_DIVIDE,4,.true.) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/ieee/ieee_exceptions.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/ieee/ieee_exceptions.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/ieee/ieee_exceptions.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/ieee/ieee_exceptions.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ ! Implementation of the IEEE_EXCEPTIONS standard intrinsic module -! Copyright (C) 2013-2018 Free Software Foundation, Inc. +! Copyright (C) 2013-2019 Free Software Foundation, Inc. ! Contributed by Francois-Xavier Coudert ! ! This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/ieee/ieee_features.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/ieee/ieee_features.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/ieee/ieee_features.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/ieee/ieee_features.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ ! Implementation of the IEEE_FEATURES standard intrinsic module -! Copyright (C) 2013-2018 Free Software Foundation, Inc. +! Copyright (C) 2013-2019 Free Software Foundation, Inc. ! Contributed by Francois-Xavier Coudert ! ! This file is part of the GNU Fortran runtime library (libgfortran). @@ -36,6 +36,7 @@ type(IEEE_FEATURES_TYPE), parameter, public :: & IEEE_DATATYPE = IEEE_FEATURES_TYPE(0), & IEEE_DENORMAL = IEEE_FEATURES_TYPE(1), & + IEEE_SUBNORMAL = IEEE_FEATURES_TYPE(1), & IEEE_DIVIDE = IEEE_FEATURES_TYPE(2), & IEEE_HALTING = IEEE_FEATURES_TYPE(3), & IEEE_INEXACT_FLAG = IEEE_FEATURES_TYPE(4), & diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/ieee/ieee_helper.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/ieee/ieee_helper.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/ieee/ieee_helper.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/ieee/ieee_helper.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Helper functions in C for IEEE modules - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Francois-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). @@ -50,7 +50,8 @@ enum { IEEE_OTHER_VALUE = 0, IEEE_SIGNALING_NAN, IEEE_QUIET_NAN, IEEE_NEGATIVE_INF, IEEE_NEGATIVE_NORMAL, IEEE_NEGATIVE_DENORMAL, IEEE_NEGATIVE_ZERO, IEEE_POSITIVE_ZERO, IEEE_POSITIVE_DENORMAL, - IEEE_POSITIVE_NORMAL, IEEE_POSITIVE_INF }; + IEEE_POSITIVE_NORMAL, IEEE_POSITIVE_INF, IEEE_SUBNORMAL, + IEEE_NEGATIVE_SUBNORMAL, IEEE_POSITIVE_SUBNORMAL }; #define CLASSMACRO(TYPE) \ int ieee_class_helper_ ## TYPE (GFC_REAL_ ## TYPE *value) \ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/abort.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/abort.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/abort.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/abort.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the ABORT intrinsic. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/access.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/access.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/access.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/access.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the ACCESS intrinsic. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/args.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/args.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/args.c 2018-01-05 23:36:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/args.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the GETARG and IARGC g77, and corresponding F2003, intrinsics. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Bud Davis and Janne Blomqvist. This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/associated.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/associated.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/associated.c 2018-01-25 23:39:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/associated.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the ASSOCIATED intrinsic - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by kejia Zhao (CCRG) This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/c99_functions.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/c99_functions.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/c99_functions.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/c99_functions.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of various C99 functions - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/chdir.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/chdir.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/chdir.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/chdir.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CHDIR intrinsic. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/chmod.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/chmod.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/chmod.c 2018-01-05 23:36:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/chmod.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CHMOD intrinsic. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/clock.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/clock.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/clock.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/clock.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MCLOCK and MCLOCK8 g77 intrinsics. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/cpu_time.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/cpu_time.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/cpu_time.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/cpu_time.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CPU_TIME intrinsic. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/cshift0.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/cshift0.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/cshift0.c 2018-01-31 02:48:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/cshift0.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic implementation of the CSHIFT intrinsic - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Feng Wang This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/ctime.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/ctime.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/ctime.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/ctime.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the CTIME and FDATE g77 intrinsics. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/date_and_time.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/date_and_time.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/date_and_time.c 2018-02-13 10:57:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/date_and_time.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the DATE_AND_TIME intrinsic. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Steven Bosscher. This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/dprod_r8.f90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/dprod_r8.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/dprod_r8.f90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/dprod_r8.f90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2003-2018 Free Software Foundation, Inc. +! Copyright (C) 2003-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/dtime.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/dtime.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/dtime.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/dtime.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the dtime intrinsic. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/env.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/env.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/env.c 2018-01-05 23:36:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/env.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the GETENV g77, and GET_ENVIRONMENT_VARIABLE F2003, intrinsics. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Janne Blomqvist. This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/eoshift0.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/eoshift0.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/eoshift0.c 2018-01-09 03:04:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/eoshift0.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic implementation of the EOSHIFT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/eoshift2.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/eoshift2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/eoshift2.c 2018-01-09 03:04:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/eoshift2.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic implementation of the EOSHIFT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/erfc_scaled.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/erfc_scaled.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/erfc_scaled.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/erfc_scaled.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the ERFC_SCALED intrinsic. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/erfc_scaled_inc.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/erfc_scaled_inc.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/erfc_scaled_inc.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/erfc_scaled_inc.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the ERFC_SCALED intrinsic, to be included by erfc_scaled.c - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/etime.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/etime.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/etime.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/etime.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the ETIME intrinsic. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Steven G. Kargl . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/execute_command_line.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/execute_command_line.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/execute_command_line.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/execute_command_line.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the EXECUTE_COMMAND_LINE intrinsic. - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert. This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/exit.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/exit.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/exit.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/exit.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the EXIT intrinsic. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Steven G. Kargl . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/extends_type_of.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/extends_type_of.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/extends_type_of.c 2018-01-05 23:36:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/extends_type_of.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the EXTENDS_TYPE_OF intrinsic. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Janus Weil . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/f2c_specifics.F90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/f2c_specifics.F90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/f2c_specifics.F90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/f2c_specifics.F90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2002-2018 Free Software Foundation, Inc. +! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Tobias Schl"uter ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/fnum.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/fnum.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/fnum.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/fnum.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the FNUM intrinsics. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Steven G. Kargl . This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/gerror.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/gerror.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/gerror.c 2018-01-05 23:36:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/gerror.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the GERROR g77 intrinsic. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/getcwd.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/getcwd.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/getcwd.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/getcwd.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the GETCWD intrinsic. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Steven G. Kargl . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/getlog.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/getlog.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/getlog.c 2018-01-05 23:36:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/getlog.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the GETLOG g77 intrinsic. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/getXid.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/getXid.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/getXid.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/getXid.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Wrapper for the unix get{g,p,u}id functions. -Copyright (C) 2004-2018 Free Software Foundation, Inc. +Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/hostnm.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/hostnm.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/hostnm.c 2018-01-05 23:36:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/hostnm.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the HOSTNM intrinsic. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/ierrno.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/ierrno.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/ierrno.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/ierrno.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the IERRNO intrinsic. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/ishftc.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/ishftc.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/ishftc.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/ishftc.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of ishftc intrinsic. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/kill.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/kill.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/kill.c 2018-03-16 04:26:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/kill.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the KILL g77 intrinsic. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/link.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/link.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/link.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/link.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the LINK intrinsic. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/move_alloc.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/move_alloc.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/move_alloc.c 2018-01-09 03:04:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/move_alloc.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic implementation of the MOVE_ALLOC intrinsic - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Paul Thomas This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/mvbits.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/mvbits.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/mvbits.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/mvbits.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the MVBITS intrinsic - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Tobias SchlĂĽter This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/pack_generic.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/pack_generic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/pack_generic.c 2018-01-31 02:48:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/pack_generic.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic implementation of the PACK intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/perror.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/perror.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/perror.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/perror.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PERROR intrinsic. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/rand.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/rand.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/rand.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/rand.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the IRAND, RAND, and SRAND intrinsics. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Steven G. Kargl . This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/random.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/random.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/random.c 2018-08-16 06:58:35.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/random.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the RANDOM intrinsics - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Lars Segerlund , Steve Kargl and Janne Blomqvist. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/random_init.f90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/random_init.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/random_init.f90 2018-06-01 22:07:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/random_init.f90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2018 Free Software Foundation, Inc. +! Copyright (C) 2018-2019 Free Software Foundation, Inc. ! Contributed by Steven G. Kargl ! ! This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/rename.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/rename.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/rename.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/rename.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the RENAME intrinsic. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/reshape_generic.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/reshape_generic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/reshape_generic.c 2018-06-01 22:07:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/reshape_generic.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic implementation of the RESHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/reshape_packed.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/reshape_packed.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/reshape_packed.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/reshape_packed.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the RESHAPE intrinsic for packed arrays - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/selected_char_kind.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/selected_char_kind.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/selected_char_kind.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/selected_char_kind.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/selected_int_kind.f90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/selected_int_kind.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/selected_int_kind.f90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/selected_int_kind.f90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2003-2018 Free Software Foundation, Inc. +! Copyright (C) 2003-2019 Free Software Foundation, Inc. ! Contributed by Kejia Zhao ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/selected_real_kind.f90 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/selected_real_kind.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/selected_real_kind.f90 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/selected_real_kind.f90 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2003-2018 Free Software Foundation, Inc. +! Copyright (C) 2003-2019 Free Software Foundation, Inc. ! Contributed by Kejia Zhao ! !This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/signal.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/signal.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/signal.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/signal.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SIGNAL and ALARM g77 intrinsics - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/size.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/size.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/size.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/size.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the size intrinsic. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/sleep.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/sleep.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/sleep.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/sleep.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SLEEP intrinsic. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/spread_generic.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/spread_generic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/spread_generic.c 2018-06-01 22:07:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/spread_generic.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic implementation of the SPREAD intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/stat.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/stat.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/stat.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/stat.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the STAT and FSTAT intrinsics. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Steven G. Kargl . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/string_intrinsics.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/string_intrinsics.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/string_intrinsics.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/string_intrinsics.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* String intrinsics helper functions. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/string_intrinsics_inc.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/string_intrinsics_inc.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/string_intrinsics_inc.c 2018-01-05 23:36:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/string_intrinsics_inc.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* String intrinsics helper functions. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran runtime library (libgfortran). @@ -87,6 +87,14 @@ gfc_charlen_type len; int res; + /* Placate the sanitizer. */ + if (!s1 && !s2) + return 0; + if (!s1) + return -1; + if (!s2) + return 1; + res = MEMCMP (s1, s2, ((len1 < len2) ? len1 : len2)); if (res != 0) return res; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/symlnk.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/symlnk.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/symlnk.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/symlnk.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SYMLNK intrinsic. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/system.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/system.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/system.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/system.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SYSTEM intrinsic. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Tobias SchlĂĽter. This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/system_clock.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/system_clock.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/system_clock.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/system_clock.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the SYSTEM_CLOCK intrinsic. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/time_1.h gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/time_1.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/time_1.h 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/time_1.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Wrappers for platform timing functions. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/time.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/time.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/time.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/time.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the TIME and TIME8 g77 intrinsics. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/umask.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/umask.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/umask.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/umask.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the UMASK intrinsic. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Steven G. Kargl . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/unlink.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/unlink.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/unlink.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/unlink.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the UNLINK intrinsic. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Steven G. Kargl . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/unpack_generic.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/unpack_generic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/intrinsics/unpack_generic.c 2018-01-31 02:48:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/intrinsics/unpack_generic.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic implementation of the UNPACK intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/async.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/async.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/async.c 2018-08-22 07:31:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/async.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Free Software Foundation, Inc. +/* Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Nicolas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/async.h gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/async.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/async.h 2018-09-08 14:39:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/async.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Free Software Foundation, Inc. +/* Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Nicolas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/close.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/close.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/close.c 2018-10-04 06:31:23.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/close.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/fbuf.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/fbuf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/fbuf.c 2018-01-09 03:04:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/fbuf.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Janne Blomqvist This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/fbuf.h gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/fbuf.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/fbuf.h 2018-01-09 03:04:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/fbuf.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2018 Free Software Foundation, Inc. +/* Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Janne Blomqvist This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/file_pos.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/file_pos.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/file_pos.c 2018-08-22 07:31:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/file_pos.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Andy Vaught and Janne Blomqvist This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/format.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/format.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/format.c 2018-09-08 14:39:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/format.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Andy Vaught F2003 I/O support contributed by Jerry DeLisle diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/format.h gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/format.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/format.h 2018-09-08 14:39:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/format.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2018 Free Software Foundation, Inc. +/* Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Janne Blomqvist This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/inquire.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/inquire.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/inquire.c 2018-08-22 07:31:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/inquire.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/intrinsics.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/intrinsics.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/intrinsics.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/intrinsics.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* Implementation of the FGET, FGETC, FPUT, FPUTC, FLUSH FTELL, TTYNAM and ISATTY intrinsics. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/io.h gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/io.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/io.h 2018-11-22 10:29:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/io.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Andy Vaught F2003 I/O support contributed by Jerry DeLisle diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/list_read.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/list_read.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/list_read.c 2018-03-28 23:58:58.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/list_read.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Andy Vaught Namelist input contributed by Paul Thomas F2003 I/O support contributed by Jerry DeLisle diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/lock.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/lock.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/lock.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/lock.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Thread/recursion locking - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook and Andy Vaught This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/open.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/open.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/open.c 2018-08-22 07:31:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/open.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Andy Vaught F2003 I/O support contributed by Jerry DeLisle diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/read.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/read.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/read.c 2018-08-22 07:31:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/read.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Andy Vaught F2003 I/O support contributed by Jerry DeLisle diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/size_from_kind.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/size_from_kind.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/size_from_kind.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/size_from_kind.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Janne Blomqvist This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/transfer128.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/transfer128.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/transfer128.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/transfer128.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2018 Free Software Foundation, Inc. +/* Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/transfer.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/transfer.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/transfer.c 2018-12-10 19:27:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/transfer.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Andy Vaught Namelist transfer functions contributed by Paul Thomas F2003 I/O support contributed by Jerry DeLisle diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/unit.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/unit.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/unit.c 2018-08-22 07:31:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/unit.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Andy Vaught F2003 I/O support contributed by Jerry DeLisle diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/unix.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/unix.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/unix.c 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/unix.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Andy Vaught F2003 I/O support contributed by Jerry DeLisle diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/unix.h gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/unix.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/unix.h 2018-10-15 11:36:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/unix.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2018 Free Software Foundation, Inc. +/* Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Janne Blomqvist This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/write.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/write.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/write.c 2018-05-31 09:39:24.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/write.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Andy Vaught Namelist output contributed by Paul Thomas F2003 I/O support contributed by Jerry DeLisle diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/write_float.def gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/write_float.def --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/io/write_float.def 2018-06-13 07:08:32.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/io/write_float.def 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Andy Vaught Write float code factoring to this file by Jerry DeLisle F2003 I/O support contributed by Jerry DeLisle diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/kinds-override.h gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/kinds-override.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/kinds-override.h 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/kinds-override.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Header used to override things detected by the mk-kinds-h.sh script. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/libgfortran.h gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/libgfortran.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/libgfortran.h 2018-10-28 13:57:02.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/libgfortran.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Common declarations for all of libgfortran. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook , and Andy Vaught diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/all.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/all.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/all.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/all.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the ALL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/any.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/any.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/any.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/any.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the ANY intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/bessel.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/bessel.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/bessel.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/bessel.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ `/* Implementation of the BESSEL_JN and BESSEL_YN transformational function using a recurrence algorithm. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/count.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/count.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/count.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/count.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the COUNT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/cshift0.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/cshift0.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/cshift0.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/cshift0.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Helper function for cshift functions. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/cshift1a.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/cshift1a.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/cshift1a.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/cshift1a.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the CSHIFT intrinsic. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/cshift1.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/cshift1.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/cshift1.m4 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/cshift1.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the CSHIFT intrinsic - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Feng Wang This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/eoshift1.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/eoshift1.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/eoshift1.m4 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/eoshift1.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the EOSHIFT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/eoshift3.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/eoshift3.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/eoshift3.m4 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/eoshift3.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the EOSHIFT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/head.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/head.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/head.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/head.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -`! Copyright (C) 2002-2018 Free Software Foundation, Inc. +`! Copyright (C) 2002-2019 Free Software Foundation, Inc. ! Contributed by Paul Brook ! !This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/iall.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/iall.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/iall.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/iall.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the IALL intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/iany.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/iany.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/iany.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/iany.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the IANY intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/ifindloc0.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/ifindloc0.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/ifindloc0.m4 2018-11-05 08:45:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/ifindloc0.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -48,7 +48,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -179,7 +179,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else { @@ -317,7 +317,7 @@ index_type * restrict dest; index_type n; - if (*mask) + if (mask == NULL || *mask) { findloc0_'atype_code` (retarray, array, value, back'len_arg`); return; @@ -333,7 +333,7 @@ GFC_DIMENSION_SET(retarray->dim[0], 0, rank-1, 1); retarray->dtype.rank = 1; retarray->offset = 0; - retarray->base_addr = xmallocarray (rank, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (rank, sizeof (index_type)); } else if (unlikely (compile_options.bounds_check)) { diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/ifindloc1.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/ifindloc1.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/ifindloc1.m4 2018-11-05 08:45:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/ifindloc1.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -95,7 +95,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -273,7 +273,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ @@ -379,7 +379,7 @@ index_type dim; bool continue_loop; - if (*mask) + if (mask == NULL || *mask) { findloc1_'atype_code`'` (retarray, array, value, pdim, back'len_arg`'`); return; @@ -436,7 +436,7 @@ alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; - retarray->base_addr = xmallocarray (alloc_size, sizeof (GFC_INTEGER_4)); + retarray->base_addr = xmallocarray (alloc_size, sizeof (index_type)); if (alloc_size == 0) { /* Make sure we have a zero-sized array. */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/ifindloc2.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/ifindloc2.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/ifindloc2.m4 2018-11-05 08:45:52.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/ifindloc2.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the FINDLOC intrinsic - Copyright (C) 2018 Free Software Foundation, Inc. + Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Thomas König This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -117,7 +117,7 @@ } 'header3`'` { - if (*mask) + if (mask == NULL || *mask) { return findloc2_'atype_code` (array, value, back, len_array, len_value); } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/iforeach.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/iforeach.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/iforeach.m4 2018-06-01 22:07:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/iforeach.m4 2019-01-02 08:05:20.000000000 +0000 @@ -123,6 +123,13 @@ index_type n; int mask_kind; + + if (mask == NULL) + { + name`'rtype_qual`_'atype_code (retarray, array, back); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -247,7 +254,7 @@ index_type n; rtype_name *dest; - if (*mask) + if (mask == NULL || *mask) { name`'rtype_qual`_'atype_code (retarray, array, back); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/iforeach-s2.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/iforeach-s2.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/iforeach-s2.m4 2017-12-04 07:53:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/iforeach-s2.m4 2019-01-02 08:05:20.000000000 +0000 @@ -116,6 +116,12 @@ index_type n; int mask_kind; + if (mask == NULL) + { + name`'rtype_qual`_'atype_code (ret, xlen, array, len); + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -213,7 +219,7 @@ GFC_LOGICAL_4 *mask, gfc_charlen_type len) { - if (*mask) + if (mask == NULL || *mask) { name`'rtype_qual`_'atype_code (ret, xlen, array, len); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/iforeach-s.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/iforeach-s.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/iforeach-s.m4 2018-06-01 22:07:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/iforeach-s.m4 2019-01-02 08:05:20.000000000 +0000 @@ -135,6 +135,16 @@ index_type n; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + name`'rtype_qual`_'atype_code (retarray, array, back, len); +#else + name`'rtype_qual`_'atype_code (retarray, array, len); +#endif + return; + } + rank = GFC_DESCRIPTOR_RANK (array); if (rank <= 0) runtime_error ("Rank of array needs to be > 0"); @@ -261,7 +271,7 @@ index_type n; 'rtype_name *dest; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG name`'rtype_qual`_'atype_code (retarray, array, back, len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/ifunction.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/ifunction.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/ifunction.m4 2018-06-01 22:07:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/ifunction.m4 2019-01-02 08:05:20.000000000 +0000 @@ -210,6 +210,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + name`'rtype_qual`_'atype_code (retarray, array, pdim, back); +#else + name`'rtype_qual`_'atype_code (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -388,7 +398,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG name`'rtype_qual`_'atype_code (retarray, array, pdim, back); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/ifunction-s2.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/ifunction-s2.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/ifunction-s2.m4 2018-06-01 22:07:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/ifunction-s2.m4 2019-01-02 08:05:20.000000000 +0000 @@ -225,6 +225,12 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { + name`'rtype_qual`_'atype_code (retarray, xlen, array, pdim, string_len); + return; + } + assert (xlen == string_len); dim = (*pdim) - 1; @@ -408,7 +414,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { name`'rtype_qual`_'atype_code (retarray, xlen, array, pdim, string_len); return; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/ifunction-s.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/ifunction-s.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/ifunction-s.m4 2018-06-01 22:07:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/ifunction-s.m4 2019-01-02 08:05:20.000000000 +0000 @@ -222,6 +222,16 @@ index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + name`'rtype_qual`_'atype_code (retarray, array, pdim, back, string_len); +#else + name`'rtype_qual`_'atype_code (retarray, array, pdim, string_len); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -400,7 +410,7 @@ index_type dim; - if (*mask) + if (mask == NULL || *mask) { #ifdef HAVE_BACK_ARG name`'rtype_qual`_'atype_code (retarray, array, pdim, back, string_len); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/in_pack.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/in_pack.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/in_pack.m4 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/in_pack.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/in_unpack.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/in_unpack.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/in_unpack.m4 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/in_unpack.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/iparity.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/iparity.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/iparity.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/iparity.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the IPARITY intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/matmulavx128.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/matmulavx128.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/matmulavx128.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/matmulavx128.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig . This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/matmull.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/matmull.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/matmull.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/matmull.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/matmul.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/matmul.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/matmul.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/matmul.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MATMUL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/maxloc0.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/maxloc0.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/maxloc0.m4 2018-05-12 14:22:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/maxloc0.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/maxloc0s.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/maxloc0s.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/maxloc0s.m4 2018-05-12 14:22:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/maxloc0s.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/maxloc1.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/maxloc1.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/maxloc1.m4 2018-05-12 14:22:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/maxloc1.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MAXLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/maxloc1s.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/maxloc1s.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/maxloc1s.m4 2018-05-12 14:22:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/maxloc1s.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/maxloc2s.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/maxloc2s.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/maxloc2s.m4 2018-05-12 14:22:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/maxloc2s.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/maxval0s.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/maxval0s.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/maxval0s.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/maxval0s.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/maxval1s.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/maxval1s.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/maxval1s.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/maxval1s.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MAXVAL intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/maxval.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/maxval.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/maxval.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/maxval.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MAXVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/minloc0.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/minloc0.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/minloc0.m4 2018-05-12 14:22:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/minloc0.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/minloc0s.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/minloc0s.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/minloc0s.m4 2018-05-12 14:22:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/minloc0s.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/minloc1.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/minloc1.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/minloc1.m4 2018-05-12 14:22:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/minloc1.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MINLOC intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/minloc1s.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/minloc1s.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/minloc1s.m4 2018-05-12 14:22:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/minloc1s.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/minloc2s.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/minloc2s.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/minloc2s.m4 2018-05-12 14:22:15.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/minloc2s.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MINLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/minval0s.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/minval0s.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/minval0s.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/minval0s.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MAXLOC intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/minval1s.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/minval1s.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/minval1s.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/minval1s.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MAXVAL intrinsic - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/minval.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/minval.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/minval.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/minval.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the MINVAL intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/norm2.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/norm2.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/norm2.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/norm2.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the NORM2 intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/pack.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/pack.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/pack.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/pack.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Specific implementation of the PACK intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/parity.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/parity.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/parity.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/parity.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the PARITY intrinsic - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Tobias Burnus This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/pow.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/pow.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/pow.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/pow.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Support routines for the intrinsic power (**) operator. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/product.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/product.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/product.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/product.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the PRODUCT intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/reshape.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/reshape.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/reshape.m4 2018-06-01 22:07:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/reshape.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the RESHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/shape.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/shape.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/shape.m4 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/shape.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the SHAPE intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/spread.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/spread.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/spread.m4 2018-06-01 22:07:51.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/spread.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Special implementation of the SPREAD intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on spread_generic.c written by Paul Brook diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/sum.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/sum.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/sum.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/sum.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Implementation of the SUM intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/unpack.m4 gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/unpack.m4 --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/m4/unpack.m4 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/m4/unpack.m4 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ `/* Specific implementation of the UNPACK intrinsic - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig , based on unpack_generic.c by Paul Brook . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/backtrace.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/backtrace.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/backtrace.c 2018-12-04 09:51:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/backtrace.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by François-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/bounds.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/bounds.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/bounds.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/bounds.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2018 Free Software Foundation, Inc. +/* Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by Thomas Koenig This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/compile_options.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/compile_options.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/compile_options.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/compile_options.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Handling of compile-time options that influence the library. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/convert_char.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/convert_char.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/convert_char.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/convert_char.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Runtime conversion of strings from one character kind to another. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/environ.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/environ.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/environ.c 2018-09-08 14:39:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/environ.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/error.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/error.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/error.c 2018-11-23 22:50:11.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/error.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Andy Vaught This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/fpu.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/fpu.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/fpu.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/fpu.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Set FPU mask. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Francois-Xavier Coudert This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/in_pack_generic.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/in_pack_generic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/in_pack_generic.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/in_pack_generic.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/in_unpack_generic.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/in_unpack_generic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/in_unpack_generic.c 2018-02-01 10:03:57.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/in_unpack_generic.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Generic helper function for repacking arrays. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/main.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/main.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/main.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/main.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Andy Vaught and Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/memory.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/memory.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/memory.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/memory.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Memory management routines. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/minimal.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/minimal.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/minimal.c 2018-09-18 08:44:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/minimal.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Andy Vaught and Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/pause.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/pause.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/pause.c 2018-10-02 07:26:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/pause.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the PAUSE statement. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/select.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/select.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/select.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/select.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implement the SELECT statement for character variables. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/select_inc.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/select_inc.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/select_inc.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/select_inc.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implement the SELECT statement for character variables. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/stop.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/stop.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/stop.c 2018-10-02 07:26:59.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/stop.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of the STOP statement. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/string.c gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/string.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgfortran/runtime/string.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgfortran/runtime/string.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran runtime library (libgfortran). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgo/go/runtime/export_arm_test.go gcc-snapshot-20190102/=unpacked-tar1=/libgo/go/runtime/export_arm_test.go --- gcc-snapshot-20181214/=unpacked-tar1=/libgo/go/runtime/export_arm_test.go 2016-07-29 09:52:38.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgo/go/runtime/export_arm_test.go 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Export guts for testing. - -package runtime - -var Usplit = usplit diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgo/runtime/go-callers.c gcc-snapshot-20190102/=unpacked-tar1=/libgo/runtime/go-callers.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgo/runtime/go-callers.c 2018-03-06 16:37:34.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgo/runtime/go-callers.c 2018-12-29 02:41:34.000000000 +0000 @@ -16,7 +16,7 @@ older versions of glibc when a SIGPROF signal arrives while collecting a backtrace. */ -static uint32 runtime_in_callers; +uint32 __go_runtime_in_callers; /* Argument passed to callback function. */ @@ -185,7 +185,7 @@ bool alreadyInCallers() { - return runtime_atomicload(&runtime_in_callers) > 0; + return runtime_atomicload(&__go_runtime_in_callers) > 0; } /* Gather caller PC's. */ @@ -203,9 +203,9 @@ data.max = m; data.keep_thunks = keep_thunks; state = __go_get_backtrace_state (); - runtime_xadd (&runtime_in_callers, 1); + runtime_xadd (&__go_runtime_in_callers, 1); backtrace_full (state, 0, callback, error_callback, &data); - runtime_xadd (&runtime_in_callers, -1); + runtime_xadd (&__go_runtime_in_callers, -1); /* For some reason GCC sometimes loses the name of a thunk function at the top of the stack. If we are skipping thunks, skip that diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgo/runtime/go-unwind.c gcc-snapshot-20190102/=unpacked-tar1=/libgo/runtime/go-unwind.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgo/runtime/go-unwind.c 2018-12-14 05:16:29.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgo/runtime/go-unwind.c 2018-12-29 02:41:34.000000000 +0000 @@ -444,6 +444,9 @@ switch (state & _US_ACTION_MASK) { case _US_VIRTUAL_UNWIND_FRAME: + if (state & _UA_FORCE_UNWIND) + /* We are called from _Unwind_Backtrace. No handler to run. */ + CONTINUE_UNWINDING; actions = _UA_SEARCH_PHASE; break; @@ -646,6 +649,17 @@ _sleb128_t index; int size; +#ifdef __ARM_EABI_UNWINDER__ + { + _Unwind_Control_Block *ucbp; + ucbp = (_Unwind_Control_Block *) _Unwind_GetGR (context, 12); + if (*ucbp->pr_cache.ehtp & (1u << 31)) + // The "compact" model is used, with one of the predefined + // personality functions. It doesn't have standard LSDA. + return NOTFOUND_OK; + } +#endif + language_specific_data = (const unsigned char *) _Unwind_GetLanguageSpecificData (context); @@ -778,7 +792,9 @@ scanstackwithmap (void *gcw) { _Unwind_Reason_Code code; + runtime_xadd (&__go_runtime_in_callers, 1); code = _Unwind_Backtrace (scanstackwithmap_callback, gcw); + runtime_xadd (&__go_runtime_in_callers, -1); return code == _URC_END_OF_STACK; } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgo/runtime/runtime.h gcc-snapshot-20190102/=unpacked-tar1=/libgo/runtime/runtime.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgo/runtime/runtime.h 2018-12-08 19:29:41.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgo/runtime/runtime.h 2018-12-29 02:41:34.000000000 +0000 @@ -515,3 +515,9 @@ bool probestackmaps(void) __asm__("runtime.probestackmaps"); + +// This is set to non-zero when calling backtrace_full. This is used +// to avoid getting hanging on a recursive lock in dl_iterate_phdr on +// older versions of glibc when a SIGPROF signal arrives while +// collecting a backtrace. +extern uint32 __go_runtime_in_callers; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/affinity.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/affinity.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/affinity.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/affinity.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/affinity-fmt.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/affinity-fmt.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/affinity-fmt.c 2018-12-14 05:16:25.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/affinity-fmt.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Free Software Foundation, Inc. +/* Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/alloc.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/alloc.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/alloc.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/alloc.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/atomic.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/atomic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/atomic.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/atomic.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/barrier.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/barrier.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/barrier.c 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/barrier.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/libgomp/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/ChangeLog 2018-12-14 05:16:25.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/ChangeLog 2019-01-02 08:05:02.000000000 +0000 @@ -1,3 +1,119 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + +2019-01-01 Jakub Jelinek + + * libgomp.texi: Bump @copying's copyright year. + +2018-12-28 Thomas Schwinge + + * oacc-parallel.c (GOACC_parallel_keyed, GOACC_parallel) + (GOACC_data_start, GOACC_enter_exit_data, GOACC_update) + (GOACC_declare): Redefine the "device" argument to "flags". + +2018-12-28 Thomas Schwinge + Cesar Philippidis + + * target.c (struct gomp_coalesce_chunk): New structure. + (struct gomp_coalesce_buf): Update the chunks member to use that + type. Adjust all users. + +2018-12-19 Tom de Vries + + * testsuite/libgomp.oacc-c-c++-common/pr85381-2.c: New test. + * testsuite/libgomp.oacc-c-c++-common/pr85381-3.c: New test. + * testsuite/libgomp.oacc-c-c++-common/pr85381-4.c: New test. + +2018-12-19 Tom de Vries + + * testsuite/lib/libgomp.exp: Add load_lib of scanoffloadrtl.exp. + * testsuite/libgomp.oacc-c-c++-common/nvptx-merged-loop.c: Move from + gcc/testsuite/gcc.dg/goacc. + * testsuite/libgomp.oacc-c-c++-common/nvptx-sese-1.c: Same. + +2018-12-14 Thomas Schwinge + Chung-Lin Tang + + * oacc-mem.c (acc_present_or_create): Remove definition and change + to alias of acc_create. + (acc_present_or_copyin): Remove definition and change to alias of + acc_copyin. + * oacc-parallel.c (GOACC_enter_exit_data): Call acc_create instead + of acc_present_or_create. + * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Remove. + * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise. + +2018-12-14 Thomas Schwinge + + PR libgomp/88495 + * plugin/plugin-nvptx.c (nvptx_wait_async): Don't refuse + "identical parameters". + * testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c: Update. + * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Remove. + + PR libgomp/88484 + * oacc-parallel.c (GOACC_wait): Correct handling for "async >= 0". + * testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c: New file. + + PR libgomp/88407 + * plugin/plugin-nvptx.c (nvptx_async_test, nvptx_wait) + (nvptx_wait_async): Unseen async-argument is a no-op. + * testsuite/libgomp.oacc-c-c++-common/async_queue-1.c: Update. + * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise. + * testsuite/libgomp.oacc-fortran/lib-12.f90: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Merge into... + * testsuite/libgomp.oacc-c-c++-common/lib-69.c: ... this. Update. + * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Merge into... + * testsuite/libgomp.oacc-c-c++-common/lib-74.c: ... this. Update + + * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Revise. + * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise. + +2018-12-14 Chung-Lin Tang + + * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Adjust. + * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise. + +2018-12-14 Thomas Schwinge + + PR libgomp/88370 + * libgomp.texi (acc_get_current_cuda_context, acc_get_cuda_stream) + (acc_set_cuda_stream): Clarify. + * oacc-cuda.c (acc_get_cuda_stream, acc_set_cuda_stream): Use + "async_valid_p". + * plugin/plugin-nvptx.c (nvptx_set_cuda_stream): Refuse "async == + acc_async_sync". + * testsuite/libgomp.oacc-c-c++-common/acc_set_cuda_stream-1.c: New file. + * testsuite/libgomp.oacc-c-c++-common/async_queue-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-84.c: Update. + * testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise. + +2018-12-14 Tom de Vries + + * testsuite/libgomp.c-c++-common/function-not-offloaded-aux.c: New test. + * testsuite/libgomp.c-c++-common/function-not-offloaded.c: New test. + * testsuite/libgomp.c-c++-common/variable-not-offloaded.c: New test. + * testsuite/libgomp.oacc-c-c++-common/function-not-offloaded.c: New test. + * testsuite/libgomp.oacc-c-c++-common/variable-not-offloaded.c: New test. + 2018-12-13 Tom de Vries * affinity-fmt.c (gomp_print_string): New function, factored out of ... @@ -10740,7 +10856,7 @@ Initial implementation and checkin. -Copyright (C) 2005-2018 Free Software Foundation, Inc. +Copyright (C) 2005-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/bsd/proc.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/bsd/proc.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/bsd/proc.c 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/bsd/proc.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/darwin/plugin-suffix.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/darwin/plugin-suffix.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/darwin/plugin-suffix.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/darwin/plugin-suffix.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Jack Howarth This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/darwin/thread-stacksize.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/darwin/thread-stacksize.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/darwin/thread-stacksize.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/darwin/thread-stacksize.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2018 Free Software Foundation, Inc. +/* Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/hpux/plugin-suffix.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/hpux/plugin-suffix.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/hpux/plugin-suffix.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/hpux/plugin-suffix.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Jack Howarth This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/affinity.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/affinity.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/affinity.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/affinity.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/alpha/futex.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/alpha/futex.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/alpha/futex.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/alpha/futex.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/bar.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/bar.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/bar.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/bar.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/bar.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/bar.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/bar.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/bar.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/doacross.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/doacross.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/doacross.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/doacross.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/futex.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/futex.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/futex.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/futex.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2018 Free Software Foundation, Inc. +/* Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/ia64/futex.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/ia64/futex.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/ia64/futex.h 2018-12-14 05:16:25.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/ia64/futex.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/lock.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/lock.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/lock.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/lock.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/mips/futex.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/mips/futex.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/mips/futex.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/mips/futex.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Ilie Garbacea , Chao-ying Fu . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/mutex.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/mutex.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/mutex.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/mutex.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/mutex.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/mutex.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/mutex.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/mutex.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/powerpc/futex.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/powerpc/futex.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/powerpc/futex.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/powerpc/futex.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/proc.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/proc.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/proc.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/proc.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/proc.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/proc.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/proc.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/proc.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. +/* Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Uros Bizjak This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/ptrlock.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/ptrlock.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/ptrlock.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/ptrlock.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/ptrlock.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/ptrlock.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/ptrlock.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/ptrlock.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/s390/futex.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/s390/futex.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/s390/futex.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/s390/futex.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/sem.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/sem.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/sem.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/sem.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/sem.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/sem.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/sem.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/sem.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/sparc/futex.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/sparc/futex.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/sparc/futex.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/sparc/futex.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/tile/futex.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/tile/futex.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/tile/futex.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/tile/futex.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. +/* Copyright (C) 2011-2019 Free Software Foundation, Inc. Contributed by Walter Lee (walt@tilera.com) This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/wait.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/wait.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/wait.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/wait.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/x86/futex.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/x86/futex.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/linux/x86/futex.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/linux/x86/futex.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/mingw32/affinity-fmt.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/mingw32/affinity-fmt.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/mingw32/affinity-fmt.c 2018-11-22 10:29:11.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/mingw32/affinity-fmt.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Free Software Foundation, Inc. +/* Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/mingw32/proc.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/mingw32/proc.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/mingw32/proc.c 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/mingw32/proc.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Danny Smith This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/mingw32/time.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/mingw32/time.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/mingw32/time.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/mingw32/time.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2018 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. Contributed by Francois-Xavier Coudert This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/affinity-fmt.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/affinity-fmt.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/affinity-fmt.c 2018-12-14 05:16:25.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/affinity-fmt.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Free Software Foundation, Inc. +/* Copyright (C) 2018-2019 Free Software Foundation, Inc. This file is part of the GNU Offloading and Multi Processing Library (libgomp). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/bar.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/bar.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/bar.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/bar.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Alexander Monakov This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/bar.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/bar.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/bar.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/bar.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Alexander Monakov This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/doacross.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/doacross.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/doacross.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/doacross.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Alexander Monakov This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/error.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/error.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/error.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/error.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Alexander Monakov This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/icv-device.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/icv-device.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/icv-device.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/icv-device.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Alexander Monakov This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/lock.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/lock.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/lock.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/lock.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2016-2018 Free Software Foundation, Inc. +/* Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Alexander Monakov . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/mutex.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/mutex.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/mutex.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/mutex.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Alexander Monakov This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/oacc-init.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/oacc-init.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/oacc-init.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/oacc-init.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,6 +1,6 @@ /* OpenACC Runtime initialization routines - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Mentor Embedded. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/openacc.f90 gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/openacc.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/openacc.f90 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/openacc.f90 2019-01-02 08:05:03.000000000 +0000 @@ -1,6 +1,6 @@ ! OpenACC Runtime Library Definitions. -! Copyright (C) 2014-2018 Free Software Foundation, Inc. +! Copyright (C) 2014-2019 Free Software Foundation, Inc. ! Contributed by Tobias Burnus ! and Mentor Embedded. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/pool.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/pool.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/pool.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/pool.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Alexander Monakov This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/proc.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/proc.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/proc.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/proc.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Alexander Monakov This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/ptrlock.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/ptrlock.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/ptrlock.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/ptrlock.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Alexander Monakov This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/sem.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/sem.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/sem.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/sem.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Alexander Monakov This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/simple-bar.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/simple-bar.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/simple-bar.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/simple-bar.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Alexander Monakov This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/target.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/target.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/target.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/target.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/task.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/task.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/task.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/task.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Alexander Monakov . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/team.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/team.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/team.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/team.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Alexander Monakov This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/teams.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/teams.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/teams.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/teams.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Alexander Monakov This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/thread-stacksize.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/thread-stacksize.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/thread-stacksize.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/thread-stacksize.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2018 Free Software Foundation, Inc. +/* Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/time.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/time.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/nvptx/time.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/nvptx/time.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Dmitry Melnik This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/bar.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/bar.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/bar.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/bar.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/bar.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/bar.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/bar.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/bar.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/doacross.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/doacross.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/doacross.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/doacross.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/lock.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/lock.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/lock.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/lock.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/mutex.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/mutex.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/mutex.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/mutex.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/plugin-suffix.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/plugin-suffix.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/plugin-suffix.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/plugin-suffix.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Jack Howarth This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/pool.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/pool.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/pool.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/pool.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Sebastian Huber . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/proc.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/proc.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/proc.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/proc.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/ptrlock.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/ptrlock.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/ptrlock.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/ptrlock.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2018 Free Software Foundation, Inc. +/* Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/sem.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/sem.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/sem.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/sem.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/sem.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/sem.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/sem.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/sem.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/simple-bar.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/simple-bar.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/simple-bar.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/simple-bar.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Alexander Monakov This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/thread-stacksize.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/thread-stacksize.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/thread-stacksize.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/thread-stacksize.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2018 Free Software Foundation, Inc. +/* Copyright (C) 2017-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/time.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/time.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/posix/time.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/posix/time.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/rtems/bar.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/rtems/bar.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/rtems/bar.c 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/rtems/bar.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Sebastian Huber . This file is part of the GNU OpenMP Library (libgomp). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/rtems/bar.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/rtems/bar.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/rtems/bar.h 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/rtems/bar.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Sebastian Huber . This file is part of the GNU OpenMP Library (libgomp). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/rtems/mutex.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/rtems/mutex.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/rtems/mutex.h 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/rtems/mutex.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Sebastian Huber . This file is part of the GNU OpenMP Library (libgomp). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/rtems/pool.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/rtems/pool.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/rtems/pool.h 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/rtems/pool.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Sebastian Huber . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/rtems/proc.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/rtems/proc.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/rtems/proc.c 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/rtems/proc.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Sebastian Huber . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/rtems/sem.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/rtems/sem.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/config/rtems/sem.h 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/config/rtems/sem.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Sebastian Huber . This file is part of the GNU OpenMP Library (libgomp). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/critical.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/critical.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/critical.c 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/critical.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/env.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/env.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/env.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/env.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/error.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/error.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/error.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/error.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/fortran.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/fortran.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/fortran.c 2018-12-14 05:16:25.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/fortran.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/hashtab.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/hashtab.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/hashtab.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/hashtab.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,5 +1,5 @@ /* An expandable hash tables datatype. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/icv.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/icv.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/icv.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/icv.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/icv-device.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/icv-device.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/icv-device.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/icv-device.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/iter.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/iter.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/iter.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/iter.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/iter_ull.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/iter_ull.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/iter_ull.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/iter_ull.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/libgomp_f.h.in gcc-snapshot-20190102/=unpacked-tar1=/libgomp/libgomp_f.h.in --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/libgomp_f.h.in 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/libgomp_f.h.in 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/libgomp_g.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/libgomp_g.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/libgomp_g.h 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/libgomp_g.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/libgomp.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/libgomp.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/libgomp.h 2018-12-14 05:16:25.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/libgomp.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/libgomp-plugin.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/libgomp-plugin.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/libgomp-plugin.c 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/libgomp-plugin.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Mentor Embedded. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/libgomp-plugin.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/libgomp-plugin.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/libgomp-plugin.h 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/libgomp-plugin.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,6 +1,6 @@ /* The libgomp plugin API. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Mentor Embedded. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/libgomp.texi gcc-snapshot-20190102/=unpacked-tar1=/libgomp/libgomp.texi --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/libgomp.texi 2018-06-25 06:51:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/libgomp.texi 2019-01-02 08:05:03.000000000 +0000 @@ -7,7 +7,7 @@ @copying -Copyright @copyright{} 2006-2018 Free Software Foundation, Inc. +Copyright @copyright{} 2006-2019 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -2768,7 +2768,7 @@ @item @emph{C/C++}: @multitable @columnfractions .20 .80 -@item @emph{Prototype}: @tab @code{acc_get_current_cuda_context(void);} +@item @emph{Prototype}: @tab @code{void *acc_get_current_cuda_context(void);} @end multitable @item @emph{Reference}: @@ -2782,12 +2782,12 @@ @section @code{acc_get_cuda_stream} -- Get CUDA stream handle. @table @asis @item @emph{Description} -This function returns the CUDA stream handle. This handle is the same -as used by the CUDA Runtime or Driver API's. +This function returns the CUDA stream handle for the queue @var{async}. +This handle is the same as used by the CUDA Runtime or Driver API's. @item @emph{C/C++}: @multitable @columnfractions .20 .80 -@item @emph{Prototype}: @tab @code{acc_get_cuda_stream(void);} +@item @emph{Prototype}: @tab @code{void *acc_get_cuda_stream(int async);} @end multitable @item @emph{Reference}: @@ -2802,11 +2802,16 @@ @table @asis @item @emph{Description} This function associates the stream handle specified by @var{stream} with -the asynchronous value specified by @var{async}. +the queue @var{async}. + +This cannot be used to change the stream handle associated with +@code{acc_async_sync}. + +The return value is not specified. @item @emph{C/C++}: @multitable @columnfractions .20 .80 -@item @emph{Prototype}: @tab @code{acc_set_cuda_stream(int async void *stream);} +@item @emph{Prototype}: @tab @code{int acc_set_cuda_stream(int async, void *stream);} @end multitable @item @emph{Reference}: diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/lock.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/lock.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/lock.c 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/lock.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/loop.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/loop.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/loop.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/loop.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/loop_ull.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/loop_ull.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/loop_ull.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/loop_ull.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/oacc-async.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/oacc-async.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/oacc-async.c 2018-05-12 14:22:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/oacc-async.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,6 +1,6 @@ /* OpenACC Runtime Library Definitions. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Mentor Embedded. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/oacc-cuda.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/oacc-cuda.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/oacc-cuda.c 2018-05-12 14:22:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/oacc-cuda.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,6 +1,6 @@ /* OpenACC Runtime Library: CUDA support glue. - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Mentor Embedded. @@ -58,7 +58,7 @@ { struct goacc_thread *thr = goacc_thread (); - if (!async_valid_stream_id_p (async)) + if (!async_valid_p (async)) return NULL; if (thr && thr->dev && thr->dev->openacc.cuda.get_stream_func) @@ -72,7 +72,7 @@ { struct goacc_thread *thr; - if (!async_valid_stream_id_p (async) || stream == NULL) + if (!async_valid_p (async) || stream == NULL) return 0; goacc_lazy_initialize (); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/oacc-host.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/oacc-host.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/oacc-host.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/oacc-host.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,6 +1,6 @@ /* OpenACC Runtime Library: acc_device_host. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Mentor Embedded. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/oacc-init.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/oacc-init.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/oacc-init.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/oacc-init.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,6 +1,6 @@ /* OpenACC Runtime initialization routines - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Mentor Embedded. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/oacc-int.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/oacc-int.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/oacc-int.h 2018-05-12 14:22:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/oacc-int.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,6 +1,6 @@ /* OpenACC Runtime - internal declarations - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Mentor Embedded. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/oacc-mem.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/oacc-mem.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/oacc-mem.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/oacc-mem.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,6 +1,6 @@ /* OpenACC Runtime initialization routines - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Mentor Embedded. @@ -544,51 +544,54 @@ present_create_copy (FLAG_PRESENT | FLAG_CREATE, h, s, async); } -void * -acc_copyin (void *h, size_t s) -{ - return present_create_copy (FLAG_PRESENT | FLAG_CREATE | FLAG_COPY, h, s, - acc_async_sync); -} - -void -acc_copyin_async (void *h, size_t s, int async) -{ - present_create_copy (FLAG_PRESENT | FLAG_CREATE | FLAG_COPY, h, s, async); -} - +/* acc_present_or_create used to be what acc_create is now. */ +/* acc_pcreate is acc_present_or_create by a different name. */ +#ifdef HAVE_ATTRIBUTE_ALIAS +strong_alias (acc_create, acc_present_or_create) +strong_alias (acc_create, acc_pcreate) +#else void * acc_present_or_create (void *h, size_t s) { - return present_create_copy (FLAG_PRESENT | FLAG_CREATE, h, s, acc_async_sync); + return acc_create (h, s); } -/* acc_pcreate is acc_present_or_create by a different name. */ -#ifdef HAVE_ATTRIBUTE_ALIAS -strong_alias (acc_present_or_create, acc_pcreate) -#else void * acc_pcreate (void *h, size_t s) { - return acc_present_or_create (h, s); + return acc_create (h, s); } #endif void * -acc_present_or_copyin (void *h, size_t s) +acc_copyin (void *h, size_t s) { return present_create_copy (FLAG_PRESENT | FLAG_CREATE | FLAG_COPY, h, s, acc_async_sync); } +void +acc_copyin_async (void *h, size_t s, int async) +{ + present_create_copy (FLAG_PRESENT | FLAG_CREATE | FLAG_COPY, h, s, async); +} + +/* acc_present_or_copyin used to be what acc_copyin is now. */ /* acc_pcopyin is acc_present_or_copyin by a different name. */ #ifdef HAVE_ATTRIBUTE_ALIAS -strong_alias (acc_present_or_copyin, acc_pcopyin) +strong_alias (acc_copyin, acc_present_or_copyin) +strong_alias (acc_copyin, acc_pcopyin) #else void * +acc_present_or_copyin (void *h, size_t s) +{ + return acc_copyin (h, s); +} + +void * acc_pcopyin (void *h, size_t s) { - return acc_present_or_copyin (h, s); + return acc_copyin (h, s); } #endif diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/oacc-parallel.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/oacc-parallel.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/oacc-parallel.c 2018-12-04 09:51:19.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/oacc-parallel.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Mentor Embedded. @@ -38,6 +38,16 @@ #include #include + +/* In the ABI, the GOACC_FLAGs are encoded as an inverted bitmask, so that we + continue to support the following two legacy values. */ +_Static_assert (GOACC_FLAGS_UNMARSHAL (GOMP_DEVICE_ICV) == 0, + "legacy GOMP_DEVICE_ICV broken"); +_Static_assert (GOACC_FLAGS_UNMARSHAL (GOMP_DEVICE_HOST_FALLBACK) + == GOACC_FLAG_HOST_FALLBACK, + "legacy GOMP_DEVICE_HOST_FALLBACK broken"); + + /* Returns the number of mappings associated with the pointer or pset. PSET have three mappings, whereas pointer have two. */ @@ -105,17 +115,18 @@ static void goacc_wait (int async, int num_waits, va_list *ap); -/* Launch a possibly offloaded function on DEVICE. FN is the host fn +/* Launch a possibly offloaded function with FLAGS. FN is the host fn address. MAPNUM, HOSTADDRS, SIZES & KINDS describe the memory blocks to be copied to/from the device. Varadic arguments are keyed optional parameters terminated with a zero. */ void -GOACC_parallel_keyed (int device, void (*fn) (void *), +GOACC_parallel_keyed (int flags_m, void (*fn) (void *), size_t mapnum, void **hostaddrs, size_t *sizes, unsigned short *kinds, ...) { - bool host_fallback = device == GOMP_DEVICE_HOST_FALLBACK; + int flags = GOACC_FLAGS_UNMARSHAL (flags_m); + va_list ap; struct goacc_thread *thr; struct gomp_device_descr *acc_dev; @@ -145,7 +156,7 @@ /* Host fallback if "if" clause is false or if the current device is set to the host. */ - if (host_fallback) + if (flags & GOACC_FLAG_HOST_FALLBACK) { goacc_save_and_set_bind (acc_device_host); fn (hostaddrs); @@ -269,7 +280,7 @@ /* Legacy entry point, only provide host execution. */ void -GOACC_parallel (int device, void (*fn) (void *), +GOACC_parallel (int flags_m, void (*fn) (void *), size_t mapnum, void **hostaddrs, size_t *sizes, unsigned short *kinds, int num_gangs, int num_workers, int vector_length, @@ -281,10 +292,11 @@ } void -GOACC_data_start (int device, size_t mapnum, +GOACC_data_start (int flags_m, size_t mapnum, void **hostaddrs, size_t *sizes, unsigned short *kinds) { - bool host_fallback = device == GOMP_DEVICE_HOST_FALLBACK; + int flags = GOACC_FLAGS_UNMARSHAL (flags_m); + struct target_mem_desc *tgt; #ifdef HAVE_INTTYPES_H @@ -302,7 +314,7 @@ /* Host fallback or 'do nothing'. */ if ((acc_dev->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM) - || host_fallback) + || (flags & GOACC_FLAG_HOST_FALLBACK)) { tgt = gomp_map_vars (NULL, 0, NULL, NULL, NULL, NULL, true, GOMP_MAP_VARS_OPENACC); @@ -333,13 +345,14 @@ } void -GOACC_enter_exit_data (int device, size_t mapnum, +GOACC_enter_exit_data (int flags_m, size_t mapnum, void **hostaddrs, size_t *sizes, unsigned short *kinds, int async, int num_waits, ...) { + int flags = GOACC_FLAGS_UNMARSHAL (flags_m); + struct goacc_thread *thr; struct gomp_device_descr *acc_dev; - bool host_fallback = device == GOMP_DEVICE_HOST_FALLBACK; bool data_enter = false; size_t i; @@ -349,7 +362,7 @@ acc_dev = thr->dev; if ((acc_dev->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM) - || host_fallback) + || (flags & GOACC_FLAG_HOST_FALLBACK)) return; if (num_waits) @@ -425,14 +438,10 @@ switch (kind) { case GOMP_MAP_ALLOC: - acc_present_or_create (hostaddrs[i], sizes[i]); - break; case GOMP_MAP_FORCE_ALLOC: acc_create (hostaddrs[i], sizes[i]); break; case GOMP_MAP_TO: - acc_present_or_copyin (hostaddrs[i], sizes[i]); - break; case GOMP_MAP_FORCE_TO: acc_copyin (hostaddrs[i], sizes[i]); break; @@ -527,11 +536,12 @@ } void -GOACC_update (int device, size_t mapnum, +GOACC_update (int flags_m, size_t mapnum, void **hostaddrs, size_t *sizes, unsigned short *kinds, int async, int num_waits, ...) { - bool host_fallback = device == GOMP_DEVICE_HOST_FALLBACK; + int flags = GOACC_FLAGS_UNMARSHAL (flags_m); + size_t i; goacc_lazy_initialize (); @@ -540,7 +550,7 @@ struct gomp_device_descr *acc_dev = thr->dev; if ((acc_dev->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM) - || host_fallback) + || (flags & GOACC_FLAG_HOST_FALLBACK)) return; if (num_waits) @@ -630,8 +640,8 @@ } else if (async == acc_async_sync) acc_wait_all (); - else if (async == acc_async_noval) - goacc_thread ()->dev->openacc.async_wait_all_async_func (acc_async_noval); + else + acc_wait_all_async (async); } int @@ -647,7 +657,7 @@ } void -GOACC_declare (int device, size_t mapnum, +GOACC_declare (int flags_m, size_t mapnum, void **hostaddrs, size_t *sizes, unsigned short *kinds) { int i; @@ -667,7 +677,7 @@ case GOMP_MAP_POINTER: case GOMP_MAP_RELEASE: case GOMP_MAP_DELETE: - GOACC_enter_exit_data (device, 1, &hostaddrs[i], &sizes[i], + GOACC_enter_exit_data (flags_m, 1, &hostaddrs[i], &sizes[i], &kinds[i], GOMP_ASYNC_SYNC, 0); break; @@ -676,18 +686,18 @@ case GOMP_MAP_ALLOC: if (!acc_is_present (hostaddrs[i], sizes[i])) - GOACC_enter_exit_data (device, 1, &hostaddrs[i], &sizes[i], + GOACC_enter_exit_data (flags_m, 1, &hostaddrs[i], &sizes[i], &kinds[i], GOMP_ASYNC_SYNC, 0); break; case GOMP_MAP_TO: - GOACC_enter_exit_data (device, 1, &hostaddrs[i], &sizes[i], + GOACC_enter_exit_data (flags_m, 1, &hostaddrs[i], &sizes[i], &kinds[i], GOMP_ASYNC_SYNC, 0); break; case GOMP_MAP_FROM: - GOACC_enter_exit_data (device, 1, &hostaddrs[i], &sizes[i], + GOACC_enter_exit_data (flags_m, 1, &hostaddrs[i], &sizes[i], &kinds[i], GOMP_ASYNC_SYNC, 0); break; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/oacc-plugin.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/oacc-plugin.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/oacc-plugin.c 2018-05-05 11:58:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/oacc-plugin.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Mentor Embedded. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/oacc-plugin.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/oacc-plugin.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/oacc-plugin.h 2018-05-05 11:58:18.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/oacc-plugin.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2018 Free Software Foundation, Inc. +/* Copyright (C) 2014-2019 Free Software Foundation, Inc. Contributed by Mentor Embedded. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/omp.h.in gcc-snapshot-20190102/=unpacked-tar1=/libgomp/omp.h.in --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/omp.h.in 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/omp.h.in 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/omp_lib.f90.in gcc-snapshot-20190102/=unpacked-tar1=/libgomp/omp_lib.f90.in --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/omp_lib.f90.in 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/omp_lib.f90.in 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2005-2018 Free Software Foundation, Inc. +! Copyright (C) 2005-2019 Free Software Foundation, Inc. ! Contributed by Jakub Jelinek . ! This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/omp_lib.h.in gcc-snapshot-20190102/=unpacked-tar1=/libgomp/omp_lib.h.in --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/omp_lib.h.in 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/omp_lib.h.in 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -! Copyright (C) 2005-2018 Free Software Foundation, Inc. +! Copyright (C) 2005-2019 Free Software Foundation, Inc. ! Contributed by Jakub Jelinek . ! This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/openacc.f90 gcc-snapshot-20190102/=unpacked-tar1=/libgomp/openacc.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/openacc.f90 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/openacc.f90 2019-01-02 08:05:03.000000000 +0000 @@ -1,6 +1,6 @@ ! OpenACC Runtime Library Definitions. -! Copyright (C) 2014-2018 Free Software Foundation, Inc. +! Copyright (C) 2014-2019 Free Software Foundation, Inc. ! Contributed by Tobias Burnus ! and Mentor Embedded. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/openacc.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/openacc.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/openacc.h 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/openacc.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,6 +1,6 @@ /* OpenACC Runtime Library User-facing Declarations - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Mentor Embedded. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/openacc_lib.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/openacc_lib.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/openacc_lib.h 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/openacc_lib.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,6 +1,6 @@ ! OpenACC Runtime Library Definitions. -*- mode: fortran -*- -! Copyright (C) 2014-2018 Free Software Foundation, Inc. +! Copyright (C) 2014-2019 Free Software Foundation, Inc. ! Contributed by Tobias Burnus ! and Mentor Embedded. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/ordered.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/ordered.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/ordered.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/ordered.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/parallel.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/parallel.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/parallel.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/parallel.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/plugin/configfrag.ac gcc-snapshot-20190102/=unpacked-tar1=/libgomp/plugin/configfrag.ac --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/plugin/configfrag.ac 2018-08-12 11:28:23.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/plugin/configfrag.ac 2019-01-02 08:05:03.000000000 +0000 @@ -1,6 +1,6 @@ # Plugins for offload execution, configure.ac fragment. -*- mode: autoconf -*- # -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # # Contributed by Mentor Embedded. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/plugin/cuda/cuda.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/plugin/cuda/cuda.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/plugin/cuda/cuda.h 2018-08-14 22:30:23.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/plugin/cuda/cuda.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* CUDA API description. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/plugin/hsa_ext_finalize.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/plugin/hsa_ext_finalize.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/plugin/hsa_ext_finalize.h 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/plugin/hsa_ext_finalize.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* HSA Extensions API 1.0.1 representation description. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/plugin/Makefrag.am gcc-snapshot-20190102/=unpacked-tar1=/libgomp/plugin/Makefrag.am --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/plugin/Makefrag.am 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/plugin/Makefrag.am 2019-01-02 08:05:03.000000000 +0000 @@ -1,6 +1,6 @@ # Plugins for offload execution, Makefile.am fragment. # -# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# Copyright (C) 2014-2019 Free Software Foundation, Inc. # # Contributed by Mentor Embedded. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/plugin/plugin-hsa.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/plugin/plugin-hsa.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/plugin/plugin-hsa.c 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/plugin/plugin-hsa.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,6 +1,6 @@ /* Plugin for HSAIL execution. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Martin Jambor and Martin Liska . diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/plugin/plugin-nvptx.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/plugin/plugin-nvptx.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/plugin/plugin-nvptx.c 2018-09-20 14:06:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/plugin/plugin-nvptx.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,6 +1,6 @@ /* Plugin for NVPTX execution. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Mentor Embedded. @@ -1539,9 +1539,8 @@ struct ptx_stream *s; s = select_stream_for_async (async, pthread_self (), false, NULL); - if (!s) - GOMP_PLUGIN_fatal ("unknown async %d", async); + return 1; r = CUDA_CALL_NOCHECK (cuStreamQuery, s->stream); if (r == CUDA_SUCCESS) @@ -1596,7 +1595,7 @@ s = select_stream_for_async (async, pthread_self (), false, NULL); if (!s) - GOMP_PLUGIN_fatal ("unknown async %d", async); + return; CUDA_CALL_ASSERT (cuStreamSynchronize, s->stream); @@ -1610,16 +1609,17 @@ struct ptx_stream *s1, *s2; pthread_t self = pthread_self (); + s1 = select_stream_for_async (async1, self, false, NULL); + if (!s1) + return; + /* The stream that is waiting (rather than being waited for) doesn't necessarily have to exist already. */ s2 = select_stream_for_async (async2, self, true, NULL); - s1 = select_stream_for_async (async1, self, false, NULL); - if (!s1) - GOMP_PLUGIN_fatal ("invalid async 1\n"); - + /* A stream is always synchronized with itself. */ if (s1 == s2) - GOMP_PLUGIN_fatal ("identical parameters"); + return; e = (CUevent *) GOMP_PLUGIN_malloc (sizeof (CUevent)); @@ -1753,8 +1753,14 @@ pthread_t self = pthread_self (); struct nvptx_thread *nvthd = nvptx_thread (); - if (async < 0) - GOMP_PLUGIN_fatal ("bad async %d", async); + /* Due to the "null_stream" usage for "acc_async_sync", this cannot be used + to change the stream handle associated with "acc_async_sync". */ + if (async == acc_async_sync) + { + GOMP_PLUGIN_debug (0, "Refusing request to set CUDA stream associated" + " with \"acc_async_sync\"\n"); + return 0; + } pthread_mutex_lock (&nvthd->ptx_dev->stream_lock); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/priority_queue.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/priority_queue.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/priority_queue.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/priority_queue.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Aldy Hernandez . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/priority_queue.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/priority_queue.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/priority_queue.h 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/priority_queue.h 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Aldy Hernandez . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/sections.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/sections.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/sections.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/sections.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/secure_getenv.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/secure_getenv.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/secure_getenv.h 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/secure_getenv.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2018 Free Software Foundation, Inc. +/* Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/single.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/single.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/single.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/single.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/splay-tree.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/splay-tree.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/splay-tree.c 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/splay-tree.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* A splay-tree datatype. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Mark Mitchell (mark@markmitchell.com). This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/splay-tree.h gcc-snapshot-20190102/=unpacked-tar1=/libgomp/splay-tree.h --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/splay-tree.h 2018-01-04 13:44:21.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/splay-tree.h 2019-01-02 08:05:03.000000000 +0000 @@ -1,5 +1,5 @@ /* A splay-tree datatype. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Mark Mitchell (mark@markmitchell.com). This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/target.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/target.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/target.c 2018-12-10 19:27:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/target.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2018 Free Software Foundation, Inc. +/* Copyright (C) 2013-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library @@ -180,16 +180,22 @@ /* Infrastructure for coalescing adjacent or nearly adjacent (in device addresses) host to device memory transfers. */ +struct gomp_coalesce_chunk +{ + /* The starting and ending point of a coalesced chunk of memory. */ + size_t start, end; +}; + struct gomp_coalesce_buf { /* Buffer into which gomp_copy_host2dev will memcpy data and from which it will be copied to the device. */ void *buf; struct target_mem_desc *tgt; - /* Array with offsets, chunks[2 * i] is the starting offset and - chunks[2 * i + 1] ending offset relative to tgt->tgt_start device address + /* Array with offsets, chunks[i].start is the starting offset and + chunks[i].end ending offset relative to tgt->tgt_start device address of chunks which are to be copied to buf and later copied to device. */ - size_t *chunks; + struct gomp_coalesce_chunk *chunks; /* Number of chunks in chunks array, or -1 if coalesce buffering should not be performed. */ long chunk_cnt; @@ -222,14 +228,14 @@ { if (cbuf->chunk_cnt < 0) return; - if (start < cbuf->chunks[2 * cbuf->chunk_cnt - 1]) + if (start < cbuf->chunks[cbuf->chunk_cnt - 1].end) { cbuf->chunk_cnt = -1; return; } - if (start < cbuf->chunks[2 * cbuf->chunk_cnt - 1] + MAX_COALESCE_BUF_GAP) + if (start < cbuf->chunks[cbuf->chunk_cnt - 1].end + MAX_COALESCE_BUF_GAP) { - cbuf->chunks[2 * cbuf->chunk_cnt - 1] = start + len; + cbuf->chunks[cbuf->chunk_cnt - 1].end = start + len; cbuf->use_cnt++; return; } @@ -239,8 +245,8 @@ if (cbuf->use_cnt == 1) cbuf->chunk_cnt--; } - cbuf->chunks[2 * cbuf->chunk_cnt] = start; - cbuf->chunks[2 * cbuf->chunk_cnt + 1] = start + len; + cbuf->chunks[cbuf->chunk_cnt].start = start; + cbuf->chunks[cbuf->chunk_cnt].end = start + len; cbuf->chunk_cnt++; cbuf->use_cnt = 1; } @@ -271,20 +277,20 @@ if (cbuf) { uintptr_t doff = (uintptr_t) d - cbuf->tgt->tgt_start; - if (doff < cbuf->chunks[2 * cbuf->chunk_cnt - 1]) + if (doff < cbuf->chunks[cbuf->chunk_cnt - 1].end) { long first = 0; long last = cbuf->chunk_cnt - 1; while (first <= last) { long middle = (first + last) >> 1; - if (cbuf->chunks[2 * middle + 1] <= doff) + if (cbuf->chunks[middle].end <= doff) first = middle + 1; - else if (cbuf->chunks[2 * middle] <= doff) + else if (cbuf->chunks[middle].start <= doff) { - if (doff + sz > cbuf->chunks[2 * middle + 1]) + if (doff + sz > cbuf->chunks[middle].end) gomp_fatal ("internal libgomp cbuf error"); - memcpy ((char *) cbuf->buf + (doff - cbuf->chunks[0]), + memcpy ((char *) cbuf->buf + (doff - cbuf->chunks[0].start), h, sz); return; } @@ -510,8 +516,8 @@ cbuf.buf = NULL; if (mapnum > 1 || pragma_kind == GOMP_MAP_VARS_TARGET) { - cbuf.chunks - = (size_t *) gomp_alloca ((2 * mapnum + 2) * sizeof (size_t)); + size_t chunks_size = (mapnum + 1) * sizeof (struct gomp_coalesce_chunk); + cbuf.chunks = (struct gomp_coalesce_chunk *) gomp_alloca (chunks_size); cbuf.chunk_cnt = 0; } if (pragma_kind == GOMP_MAP_VARS_TARGET) @@ -521,8 +527,8 @@ tgt_size = mapnum * sizeof (void *); cbuf.chunk_cnt = 1; cbuf.use_cnt = 1 + (mapnum > 1); - cbuf.chunks[0] = 0; - cbuf.chunks[1] = tgt_size; + cbuf.chunks[0].start = 0; + cbuf.chunks[0].end = tgt_size; } gomp_mutex_lock (&devicep->lock); @@ -707,7 +713,7 @@ if (cbuf.chunk_cnt > 0) { cbuf.buf - = malloc (cbuf.chunks[2 * cbuf.chunk_cnt - 1] - cbuf.chunks[0]); + = malloc (cbuf.chunks[cbuf.chunk_cnt - 1].end - cbuf.chunks[0].start); if (cbuf.buf) { cbuf.tgt = tgt; @@ -983,10 +989,14 @@ { long c = 0; for (c = 0; c < cbuf.chunk_cnt; ++c) - gomp_copy_host2dev (devicep, (void *) (tgt->tgt_start + cbuf.chunks[2 * c]), - (char *) cbuf.buf + (cbuf.chunks[2 * c] - cbuf.chunks[0]), - cbuf.chunks[2 * c + 1] - cbuf.chunks[2 * c], NULL); + gomp_copy_host2dev (devicep, + (void *) (tgt->tgt_start + cbuf.chunks[c].start), + (char *) cbuf.buf + (cbuf.chunks[c].start + - cbuf.chunks[0].start), + cbuf.chunks[c].end - cbuf.chunks[c].start, NULL); free (cbuf.buf); + cbuf.buf = NULL; + cbufp = NULL; } /* If the variable from "omp target enter data" map-list was already mapped, diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/task.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/task.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/task.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/task.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2018 Free Software Foundation, Inc. +/* Copyright (C) 2007-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/taskloop.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/taskloop.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/taskloop.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/taskloop.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2018 Free Software Foundation, Inc. +/* Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/team.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/team.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/team.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/team.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/teams.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/teams.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/teams.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/teams.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Free Software Foundation, Inc. +/* Copyright (C) 2018-2019 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/config/default.exp gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/config/default.exp --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/config/default.exp 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/config/default.exp 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/lib/libgomp.exp gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/lib/libgomp.exp --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/lib/libgomp.exp 2018-05-12 14:22:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/lib/libgomp.exp 2018-12-29 02:41:32.000000000 +0000 @@ -31,6 +31,7 @@ load_gcc_lib scantree.exp load_gcc_lib scanltranstree.exp load_gcc_lib scanoffloadtree.exp +load_gcc_lib scanoffloadrtl.exp load_gcc_lib scanipa.exp load_gcc_lib scanwpaipa.exp load_gcc_lib timeout-dg.exp diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.c/affinity-1.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.c/affinity-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.c/affinity-1.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.c/affinity-1.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,5 +1,5 @@ /* Affinity tests. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.c/sort-1.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.c/sort-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.c/sort-1.c 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.c/sort-1.c 2019-01-02 08:05:02.000000000 +0000 @@ -1,5 +1,5 @@ /* Test and benchmark of a couple of parallel sorting algorithms. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded-aux.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded-aux.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded-aux.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded-aux.c 2018-12-16 02:30:44.000000000 +0000 @@ -0,0 +1,12 @@ +/* { dg-skip-if "" { *-*-* } } */ + +#pragma omp declare target +extern int var; +#pragma omp end declare target + +void __attribute__((noinline, noclone)) +foo (void) +{ + var++; +} + diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded.c 2018-12-16 02:30:44.000000000 +0000 @@ -0,0 +1,16 @@ +/* { dg-do link } */ +/* { dg-excess-errors "unresolved symbol foo, lto1, mkoffload and lto-wrapper fatal errors" { target offload_device_nonshared_as } } */ +/* { dg-additional-sources "function-not-offloaded-aux.c" } */ + +#pragma omp declare target +int var; +#pragma omp end declare target + +extern void foo (); + +int +main () +{ +#pragma omp target + foo (); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.c-c++-common/variable-not-offloaded.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.c-c++-common/variable-not-offloaded.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.c-c++-common/variable-not-offloaded.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.c-c++-common/variable-not-offloaded.c 2018-12-16 02:30:44.000000000 +0000 @@ -0,0 +1,19 @@ +/* { dg-do link } */ +/* { dg-excess-errors "lto1, mkoffload and lto-wrapper fatal errors" { target offload_device_nonshared_as } } */ + +int var; /* { dg-error "variable 'var' has been referenced in offloaded code but hasn't been marked to be included in the offloaded code" "" { target offload_device_nonshared_as } } */ + +#pragma omp declare target +void __attribute__((noinline, noclone)) +foo (void) +{ + var++; +} +#pragma omp end declare target + +int +main () +{ +#pragma omp target + foo (); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.fortran/aligned1.f03 gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.fortran/aligned1.f03 --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.fortran/aligned1.f03 2018-03-26 10:51:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.fortran/aligned1.f03 2018-12-29 02:41:32.000000000 +0000 @@ -52,11 +52,11 @@ ! Attempt to create 64-byte aligned allocatable do i = 1, 64 allocate (c(1023 + i)) - if (iand (loc (c(1)), 63) == 0) exit + if (iand (int(loc(c(1)),8), 63_8) == 0) exit deallocate (c) allocate (b(i)%a(1023 + i)) allocate (c(1023 + i)) - if (iand (loc (c(1)), 63) == 0) exit + if (iand (int(loc(c(1)),8), 63_8) == 0) exit deallocate (c) end do if (allocated (c)) then diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.graphite/graphite.exp gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.graphite/graphite.exp --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.graphite/graphite.exp 2018-01-04 13:44:20.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.graphite/graphite.exp 2019-01-02 08:05:02.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/acc_set_cuda_stream-1.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/acc_set_cuda_stream-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/acc_set_cuda_stream-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/acc_set_cuda_stream-1.c 2018-12-16 02:30:44.000000000 +0000 @@ -0,0 +1,42 @@ +/* Verify expected nvptx plugin behavior for "acc_set_cuda_stream" for + "acc_async_sync". */ + +/* { dg-do run { target openacc_nvidia_accel_selected } } */ +/* { dg-set-target-env-var GOMP_DEBUG "1" } */ + +#undef NDEBUG +#include +#include + +int main(void) +{ + int async = 42; + + /* Initialize. */ +#pragma acc parallel async(acc_async_sync) + ; +#pragma acc parallel async(async) + ; +#pragma acc wait + + void *cuda_stream_sync = acc_get_cuda_stream (acc_async_sync); + assert (cuda_stream_sync == NULL); + void *cuda_stream_async = acc_get_cuda_stream (async); + assert (cuda_stream_async != NULL); + int ret = acc_set_cuda_stream (acc_async_sync, cuda_stream_async); + assert (ret == 0); + void *cuda_stream_sync_ = acc_get_cuda_stream (acc_async_sync); + assert (cuda_stream_sync_ == cuda_stream_sync); + void *cuda_stream_async_ = acc_get_cuda_stream (async); + assert (cuda_stream_async_ == cuda_stream_async); + +#pragma acc parallel async(acc_async_sync) + ; +#pragma acc parallel async(async) + ; +#pragma acc wait + + return 0; +} + +/* { dg-output "Refusing request to set CUDA stream associated with \"acc_async_sync\"" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/async_queue-1.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/async_queue-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/async_queue-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/async_queue-1.c 2018-12-16 02:30:44.000000000 +0000 @@ -0,0 +1,127 @@ +/* Test mapping of async values to specific underlying queues. */ + +#undef NDEBUG +#include +#include + +/* This is implemented in terms of the "acc_get_cuda_stream" interface. */ + +struct +{ + int async; + void *cuda_stream; +} queues[] = { { acc_async_sync, NULL }, + { acc_async_noval, NULL }, + { 0, NULL }, + { 1, NULL }, + { 2, NULL }, + { 36, NULL }, + { 1982, NULL } }; +const size_t queues_n = sizeof queues / sizeof queues[0]; + +int main(void) +{ + /* Explicitly initialize: it's not clear whether the following OpenACC + runtime library calls implicitly initialize; + . */ + acc_device_t d; +#if defined ACC_DEVICE_TYPE_nvidia + d = acc_device_nvidia; +#elif defined ACC_DEVICE_TYPE_host + d = acc_device_host; +#else +# error Not ported to this ACC_DEVICE_TYPE +#endif + acc_init (d); + + for (size_t i = 0; i < queues_n; ++i) + { + /* Before actually being used, there are all NULL. */ + queues[i].cuda_stream = acc_get_cuda_stream (queues[i].async); + assert (queues[i].cuda_stream == NULL); + } + + /* No-ops still don't initialize them. */ + { + size_t i = 0; + /* Find the first non-special async-argument. */ + while (queues[i].async < 0) + ++i; + assert (i < queues_n); + +#pragma acc wait(queues[i].async) // no-op + + ++i; + assert (i < queues_n); +#pragma acc parallel wait(queues[i].async) // no-op + ; + + ++i; + assert (i < queues_n); + acc_wait(queues[i].async); // no-op + + i += 2; + assert (i < queues_n); + acc_wait_async(queues[i - 1].async, queues[i].async); // no-op, and async queue "i" does not get set up + + for (size_t i = 0; i < queues_n; ++i) + { + queues[i].cuda_stream = acc_get_cuda_stream (queues[i].async); + assert (queues[i].cuda_stream == NULL); + } + } + + for (size_t i = 0; i < queues_n; ++i) + { + /* Use the queue to initialize it. */ +#pragma acc parallel async(queues[i].async) + ; +#pragma acc wait + + /* Verify CUDA stream used. */ + queues[i].cuda_stream = acc_get_cuda_stream (queues[i].async); +#if defined ACC_DEVICE_TYPE_nvidia + /* "acc_async_sync" maps to the NULL CUDA default stream. */ + if (queues[i].async == acc_async_sync) + assert (queues[i].cuda_stream == NULL); + else + assert (queues[i].cuda_stream != NULL); +#elif defined ACC_DEVICE_TYPE_host + /* For "acc_device_host" there are no CUDA streams. */ + assert (queues[i].cuda_stream == NULL); +#else +# error Not ported to this ACC_DEVICE_TYPE +#endif + } + + /* Verify same results. */ + for (size_t i = 0; i < queues_n; ++i) + { + void *cuda_stream; + + cuda_stream = acc_get_cuda_stream (queues[i].async); + assert (cuda_stream == queues[i].cuda_stream); + +#pragma acc parallel async(queues[i].async) + ; +#pragma acc wait + + cuda_stream = acc_get_cuda_stream (queues[i].async); + assert (cuda_stream == queues[i].cuda_stream); + } + + /* Verify individual underlying queues are all different. */ + for (size_t i = 0; i < queues_n; ++i) + { + if (queues[i].cuda_stream == NULL) + continue; + for (size_t j = i + 1; j < queues_n; ++j) + { + if (queues[j].cuda_stream == NULL) + continue; + assert (queues[j].cuda_stream != queues[i].cuda_stream); + } + } + + return 0; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c 2018-12-16 02:30:44.000000000 +0000 @@ -0,0 +1,75 @@ +/* Several of the async/wait combinations invoked here are no-ops -- they don't + effect anything, but are still valid. + + This doesn't verify that the asynchronous operations synchronize correctly, + but just verifies that we don't refuse any variants. */ + +#undef NDEBUG +#include +#include + +int values[] = { acc_async_sync, + acc_async_noval, + 0, + 1, + 2, + 36, + 1982, }; +const size_t values_n = sizeof values / sizeof values[0]; + +int +main () +{ + /* Explicitly initialize: it's not clear whether the following OpenACC + runtime library calls implicitly initialize; + . */ + acc_device_t d; +#if defined ACC_DEVICE_TYPE_nvidia + d = acc_device_nvidia; +#elif defined ACC_DEVICE_TYPE_host + d = acc_device_host; +#else +# error Not ported to this ACC_DEVICE_TYPE +#endif + acc_init (d); + + + for (size_t i = 0; i < values_n; ++i) + assert (acc_async_test (values[i]) == 1); + + + for (size_t i = 0; i < values_n; ++i) + { +#pragma acc parallel wait (values[i]) + ; +#pragma acc wait (values[i]) + acc_wait (values[i]); + } + + + for (size_t i = 0; i < values_n; ++i) + { + for (size_t j = 0; j < values_n; ++j) + { +#pragma acc parallel wait (values[i]) async (values[j]) + ; +#pragma acc wait (values[i]) async (values[j]) + acc_wait_async (values[i], values[j]); + } + } + + + for (size_t i = 0; i < values_n; ++i) + { +#pragma acc parallel wait async (values[i]) + ; +#pragma acc wait async (values[i]) + acc_wait_all_async (values[i]); + } + + + /* Clean up. */ + acc_wait_all (); + + return 0; +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-2.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-2.c 2018-06-25 06:51:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-2.c 2018-12-16 02:30:44.000000000 +0000 @@ -1,14 +1,14 @@ -/* Test 'acc enter/exit data' regions. */ - -/* { dg-do run } */ -/* { dg-xfail-run-if "TODO" { openacc_nvidia_accel_selected } } */ +/* Test asynchronous, unstructed data regions, directives variant. */ +/* See also data-2-lib.c. */ #include +#undef NDEBUG +#include int main (int argc, char **argv) { - int N = 128; //1024 * 1024; + int N = 12345; float *a, *b, *c, *d, *e; int i; int nbytes; @@ -27,48 +27,24 @@ b[i] = 0.0; } -#pragma acc enter data copyin (a[0:N]) copyin (b[0:N]) copyin (N) async -#pragma acc parallel present (a[0:N], b[0:N]) async wait -#pragma acc loop - for (i = 0; i < N; i++) - b[i] = a[i]; - -#pragma acc exit data copyout (a[0:N]) copyout (b[0:N]) wait async -#pragma acc wait - - for (i = 0; i < N; i++) - { - if (a[i] != 3.0) - abort (); - - if (b[i] != 3.0) - abort (); - } - - for (i = 0; i < N; i++) - { - a[i] = 3.0; - b[i] = 0.0; - } +#pragma acc enter data copyin (a[0:N]) async +#pragma acc enter data copyin (b[0:N]) async +#pragma acc enter data copyin (N) async -#pragma acc enter data copyin (a[0:N]) async -#pragma acc enter data copyin (b[0:N]) async wait -#pragma acc enter data copyin (N) async wait -#pragma acc parallel async wait +#pragma acc parallel present (a[0:N], b[0:N], N) async #pragma acc loop for (i = 0; i < N; i++) b[i] = a[i]; -#pragma acc exit data copyout (a[0:N]) copyout (b[0:N]) delete (N) wait async +#pragma acc update self (a[0:N]) async +#pragma acc update self (b[0:N]) async + #pragma acc wait for (i = 0; i < N; i++) { - if (a[i] != 3.0) - abort (); - - if (b[i] != 3.0) - abort (); + assert (a[i] == 3.0); + assert (b[i] == 3.0); } for (i = 0; i < N; i++) @@ -77,22 +53,25 @@ b[i] = 0.0; } -#pragma acc enter data copyin (a[0:N]) copyin (b[0:N]) copyin (N) async (1) -#pragma acc parallel present (a[0:N], b[0:N]) async (1) +#pragma acc update device (a[0:N]) async (1) +#pragma acc update device (b[0:N]) async (1) + +#pragma acc parallel present (a[0:N], b[0:N], N) async (1) #pragma acc loop for (i = 0; i < N; i++) b[i] = a[i]; -#pragma acc exit data copyout (a[0:N]) copyout (b[0:N]) wait (1) async (1) +#pragma acc update self (a[0:N]) async (1) +#pragma acc update self (b[0:N]) async (1) + #pragma acc wait (1) + /* Test unseen async-argument. */ +#pragma acc wait (10) for (i = 0; i < N; i++) { - if (a[i] != 2.0) - abort (); - - if (b[i] != 2.0) - abort (); + assert (a[i] == 2.0); + assert (b[i] == 2.0); } for (i = 0; i < N; i++) @@ -103,39 +82,40 @@ d[i] = 0.0; } -#pragma acc enter data copyin (a[0:N]) copyin (b[0:N]) copyin (c[0:N]) copyin (d[0:N]) copyin (N) async (1) +#pragma acc update device (a[0:N]) async (0) +#pragma acc update device (b[0:N]) async (1) +#pragma acc enter data copyin (c[0:N]) async (2) +#pragma acc enter data copyin (d[0:N]) async (3) -#pragma acc parallel present (a[0:N], b[0:N]) async (1) wait (1) +#pragma acc parallel present (a[0:N], b[0:N], N) wait (0) async (1) #pragma acc loop for (i = 0; i < N; i++) b[i] = (a[i] * a[i] * a[i]) / a[i]; -#pragma acc parallel present (a[0:N], c[0:N]) async (2) wait (1) +#pragma acc parallel present (a[0:N], c[0:N], N) wait (0) async (2) #pragma acc loop for (i = 0; i < N; i++) c[i] = (a[i] + a[i] + a[i] + a[i]) / a[i]; -#pragma acc parallel present (a[0:N], d[0:N]) async (3) wait (1) +#pragma acc parallel present (a[0:N], d[0:N], N) wait (0) async (3) #pragma acc loop for (i = 0; i < N; i++) d[i] = ((a[i] * a[i] + a[i]) / a[i]) - a[i]; -#pragma acc exit data copyout (a[0:N]) copyout (b[0:N]) copyout (c[0:N]) copyout (d[0:N]) wait (1, 2, 3) async (1) -#pragma acc wait (1) +#pragma acc update self (a[0:N]) async (0) +#pragma acc update self (b[0:N]) async (1) +#pragma acc update self (c[0:N]) async (2) +#pragma acc update self (d[0:N]) async (3) + +#pragma acc wait async (0) +#pragma acc wait (0) for (i = 0; i < N; i++) { - if (a[i] != 3.0) - abort (); - - if (b[i] != 9.0) - abort (); - - if (c[i] != 4.0) - abort (); - - if (d[i] != 1.0) - abort (); + assert (a[i] == 3.0); + assert (b[i] == 9.0); + assert (c[i] == 4.0); + assert (d[i] == 1.0); } for (i = 0; i < N; i++) @@ -147,45 +127,43 @@ e[i] = 0.0; } -#pragma acc enter data copyin (a[0:N]) copyin (b[0:N]) copyin (c[0:N]) copyin (d[0:N]) copyin (e[0:N]) copyin (N) async (1) +#pragma acc update device (a[0:N]) async (10) +#pragma acc update device (b[0:N]) async (11) +#pragma acc update device (c[0:N]) async (12) +#pragma acc update device (d[0:N]) async (13) +#pragma acc enter data copyin (e[0:N]) async (14) -#pragma acc parallel present (a[0:N], b[0:N]) async (1) wait (1) +#pragma acc parallel present (a[0:N], b[0:N], N) wait (10) async (11) for (int ii = 0; ii < N; ii++) b[ii] = (a[ii] * a[ii] * a[ii]) / a[ii]; -#pragma acc parallel present (a[0:N], c[0:N]) async (2) wait (1) +#pragma acc parallel present (a[0:N], c[0:N], N) wait (10) async (12) for (int ii = 0; ii < N; ii++) c[ii] = (a[ii] + a[ii] + a[ii] + a[ii]) / a[ii]; -#pragma acc parallel present (a[0:N], d[0:N]) async (3) wait (1) +#pragma acc parallel present (a[0:N], d[0:N], N) wait (10) async (13) for (int ii = 0; ii < N; ii++) d[ii] = ((a[ii] * a[ii] + a[ii]) / a[ii]) - a[ii]; -#pragma acc parallel present (a[0:N], b[0:N], c[0:N], d[0:N], e[0:N]) \ - wait (1) async (4) +#pragma acc parallel present (a[0:N], b[0:N], c[0:N], d[0:N], e[0:N], N) wait (11) wait (12) wait (13) async (14) for (int ii = 0; ii < N; ii++) e[ii] = a[ii] + b[ii] + c[ii] + d[ii]; -#pragma acc exit data copyout (a[0:N]) copyout (b[0:N]) copyout (c[0:N]) \ - copyout (d[0:N]) copyout (e[0:N]) wait (1, 2, 3, 4) async (1) -#pragma acc wait (1) +#pragma acc exit data copyout (a[0:N]) async (10) +#pragma acc exit data copyout (b[0:N]) async (11) +#pragma acc exit data copyout (c[0:N]) async (12) +#pragma acc exit data copyout (d[0:N]) async (13) +#pragma acc exit data copyout (e[0:N]) async (14) +#pragma acc exit data delete (N) async (15) +#pragma acc wait for (i = 0; i < N; i++) { - if (a[i] != 2.0) - abort (); - - if (b[i] != 4.0) - abort (); - - if (c[i] != 4.0) - abort (); - - if (d[i] != 1.0) - abort (); - - if (e[i] != 11.0) - abort (); + assert (a[i] == 2.0); + assert (b[i] == 4.0); + assert (c[i] == 4.0); + assert (d[i] == 1.0); + assert (e[i] == 11.0); } return 0; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-2-lib.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-2-lib.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-2-lib.c 2017-12-02 06:42:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-2-lib.c 2018-12-16 02:30:44.000000000 +0000 @@ -1,16 +1,15 @@ -/* This test is similar to data-2.c, but it uses acc_* library functions - to move data. */ - -/* { dg-do run } */ +/* Test asynchronous, unstructed data regions, runtime library variant. */ +/* See also data-2.c. */ #include +#undef NDEBUG #include #include int main (int argc, char **argv) { - int N = 128; //1024 * 1024; + int N = 12345; float *a, *b, *c, *d, *e; void *d_a, *d_b, *d_c, *d_d; int i; @@ -30,19 +29,21 @@ b[i] = 0.0; } - d_a = acc_copyin (a, nbytes); - d_b = acc_copyin (b, nbytes); - acc_copyin (&N, sizeof (int)); + acc_copyin_async (a, nbytes, acc_async_noval); + acc_copyin_async (b, nbytes, acc_async_noval); + acc_copyin_async (&N, sizeof (int), acc_async_noval); -#pragma acc parallel present (a[0:N], b[0:N], N) async wait +#pragma acc parallel present (a[0:N], b[0:N], N) async #pragma acc loop for (i = 0; i < N; i++) b[i] = a[i]; - acc_wait_all (); + d_a = acc_deviceptr (a); + acc_memcpy_from_device_async (a, d_a, nbytes, acc_async_noval); + d_b = acc_deviceptr (b); + acc_memcpy_from_device_async (b, d_b, nbytes, acc_async_noval); - acc_memcpy_from_device (a, d_a, nbytes); - acc_memcpy_from_device (b, d_b, nbytes); + acc_wait (acc_async_noval); for (i = 0; i < N; i++) { @@ -56,19 +57,21 @@ b[i] = 0.0; } - acc_update_device (a, nbytes); - acc_update_device (b, nbytes); + acc_update_device_async (a, nbytes, 1); + acc_update_device_async (b, nbytes, 1); -#pragma acc parallel present (a[0:N], b[0:N], N) async (1) +#pragma acc parallel present (a[0:N], b[0:N], N) async (1) #pragma acc loop for (i = 0; i < N; i++) b[i] = a[i]; + acc_memcpy_from_device_async (a, d_a, nbytes, 1); + acc_memcpy_from_device_async (b, d_b, nbytes, 1); + acc_wait (1); + /* Test unseen async-argument. */ + acc_wait (10); - acc_memcpy_from_device (a, d_a, nbytes); - acc_memcpy_from_device (b, d_b, nbytes); - for (i = 0; i < N; i++) { assert (a[i] == 2.0); @@ -83,46 +86,42 @@ d[i] = 0.0; } - acc_update_device (a, nbytes); - acc_update_device (b, nbytes); - d_c = acc_copyin (c, nbytes); - d_d = acc_copyin (d, nbytes); + acc_update_device_async (a, nbytes, 0); + acc_update_device_async (b, nbytes, 1); + acc_copyin_async (c, nbytes, 2); + acc_copyin_async (d, nbytes, 3); -#pragma acc parallel present (a[0:N], b[0:N], N) async (1) +#pragma acc parallel present (a[0:N], b[0:N], N) wait (0) async (1) #pragma acc loop for (i = 0; i < N; i++) b[i] = (a[i] * a[i] * a[i]) / a[i]; -#pragma acc parallel present (a[0:N], c[0:N], N) async (2) +#pragma acc parallel present (a[0:N], c[0:N], N) wait (0) async (2) #pragma acc loop for (i = 0; i < N; i++) c[i] = (a[i] + a[i] + a[i] + a[i]) / a[i]; -#pragma acc parallel present (a[0:N], d[0:N], N) async (3) +#pragma acc parallel present (a[0:N], d[0:N], N) wait (0) async (3) #pragma acc loop for (i = 0; i < N; i++) d[i] = ((a[i] * a[i] + a[i]) / a[i]) - a[i]; - acc_wait_all (); + acc_memcpy_from_device_async (a, d_a, nbytes, 0); + acc_memcpy_from_device_async (b, d_b, nbytes, 1); + d_c = acc_deviceptr (c); + acc_memcpy_from_device_async (c, d_c, nbytes, 2); + d_d = acc_deviceptr (d); + acc_memcpy_from_device_async (d, d_d, nbytes, 3); - acc_memcpy_from_device (a, d_a, nbytes); - acc_memcpy_from_device (b, d_b, nbytes); - acc_memcpy_from_device (c, d_c, nbytes); - acc_memcpy_from_device (d, d_d, nbytes); + acc_wait_all_async (0); + acc_wait (0); for (i = 0; i < N; i++) { - if (a[i] != 3.0) - abort (); - - if (b[i] != 9.0) - abort (); - - if (c[i] != 4.0) - abort (); - - if (d[i] != 1.0) - abort (); + assert (a[i] == 3.0); + assert (b[i] == 9.0); + assert (c[i] == 4.0); + assert (d[i] == 1.0); } for (i = 0; i < N; i++) @@ -134,53 +133,43 @@ e[i] = 0.0; } - acc_update_device (a, nbytes); - acc_update_device (b, nbytes); - acc_update_device (c, nbytes); - acc_update_device (d, nbytes); - acc_copyin (e, nbytes); + acc_update_device_async (a, nbytes, 10); + acc_update_device_async (b, nbytes, 11); + acc_update_device_async (c, nbytes, 12); + acc_update_device_async (d, nbytes, 13); + acc_copyin_async (e, nbytes, 14); -#pragma acc parallel present (a[0:N], b[0:N], N) async (1) +#pragma acc parallel present (a[0:N], b[0:N], N) wait (10) async (11) for (int ii = 0; ii < N; ii++) b[ii] = (a[ii] * a[ii] * a[ii]) / a[ii]; -#pragma acc parallel present (a[0:N], c[0:N], N) async (2) +#pragma acc parallel present (a[0:N], c[0:N], N) wait (10) async (12) for (int ii = 0; ii < N; ii++) c[ii] = (a[ii] + a[ii] + a[ii] + a[ii]) / a[ii]; -#pragma acc parallel present (a[0:N], d[0:N], N) async (3) +#pragma acc parallel present (a[0:N], d[0:N], N) wait (10) async (13) for (int ii = 0; ii < N; ii++) d[ii] = ((a[ii] * a[ii] + a[ii]) / a[ii]) - a[ii]; -#pragma acc parallel present (a[0:N], b[0:N], c[0:N], d[0:N], e[0:N], N) \ - async (4) +#pragma acc parallel present (a[0:N], b[0:N], c[0:N], d[0:N], e[0:N], N) wait (11) wait (12) wait (13) async (14) for (int ii = 0; ii < N; ii++) e[ii] = a[ii] + b[ii] + c[ii] + d[ii]; + acc_copyout_async (a, nbytes, 10); + acc_copyout_async (b, nbytes, 11); + acc_copyout_async (c, nbytes, 12); + acc_copyout_async (d, nbytes, 13); + acc_copyout_async (e, nbytes, 14); + acc_delete_async (&N, sizeof (int), 15); acc_wait_all (); - acc_copyout (a, nbytes); - acc_copyout (b, nbytes); - acc_copyout (c, nbytes); - acc_copyout (d, nbytes); - acc_copyout (e, nbytes); - acc_delete (&N, sizeof (int)); for (i = 0; i < N; i++) { - if (a[i] != 2.0) - abort (); - - if (b[i] != 4.0) - abort (); - - if (c[i] != 4.0) - abort (); - - if (d[i] != 1.0) - abort (); - - if (e[i] != 11.0) - abort (); + assert (a[i] == 2.0); + assert (b[i] == 4.0); + assert (c[i] == 4.0); + assert (d[i] == 1.0); + assert (e[i] == 11.0); } return 0; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-3.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-3.c 2016-05-29 18:20:37.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-3.c 2018-12-16 02:30:44.000000000 +0000 @@ -138,7 +138,7 @@ d[ii] = ((a[ii] * a[ii] + a[ii]) / a[ii]) - a[ii]; #pragma acc parallel present (a[0:N], b[0:N], c[0:N], d[0:N], e[0:N]) \ - wait (1,5) async (4) + wait (1, 2, 3, 5) async (4) for (int ii = 0; ii < N; ii++) e[ii] = a[ii] + b[ii] + c[ii] + d[ii]; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-1.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-1.c 2018-06-22 07:37:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-1.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */ - -#include -#include - -int -main (int argc, char *argv[]) -{ - int i; - - acc_copyin (&i, sizeof i); - - fprintf (stderr, "CheCKpOInT\n"); -#pragma acc data copy (i) - ++i; - - return 0; -} - -/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-2.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-2.c 2018-06-22 07:37:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-2.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */ - -#include - -int -main (int argc, char *argv[]) -{ - int i; - -#pragma acc data present_or_copy (i) - { - fprintf (stderr, "CheCKpOInT\n"); -#pragma acc data copyout (i) - ++i; - } - - return 0; -} - -/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-3.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-3.c 2018-06-22 07:37:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-3.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */ - -#include -#include - -int -main (int argc, char *argv[]) -{ - int i; - -#pragma acc data present_or_copy (i) - { - fprintf (stderr, "CheCKpOInT\n"); - acc_copyin (&i, sizeof i); - } - - return 0; -} - -/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-4.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-4.c 2018-06-22 07:37:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-4.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */ - -#include -#include - -int -main (int argc, char *argv[]) -{ - int i; - - acc_present_or_copyin (&i, sizeof i); - fprintf (stderr, "CheCKpOInT\n"); - acc_copyin (&i, sizeof i); - - return 0; -} - -/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-5.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-5.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-5.c 2018-06-22 07:37:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-5.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */ - -#include -#include - -int -main (int argc, char *argv[]) -{ - int i; - -#pragma acc enter data create (i) - fprintf (stderr, "CheCKpOInT\n"); - acc_copyin (&i, sizeof i); - - return 0; -} - -/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-6.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-6.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-6.c 2018-06-22 07:37:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-6.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */ - -#include -#include - -int -main (int argc, char *argv[]) -{ - int i; - - acc_present_or_copyin (&i, sizeof i); - fprintf (stderr, "CheCKpOInT\n"); -#pragma acc enter data create (i) - - return 0; -} - -/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-7.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-7.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-7.c 2018-06-22 07:37:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-7.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */ - -#include -#include - -int -main (int argc, char *argv[]) -{ - int i; - -#pragma acc enter data create (i) - fprintf (stderr, "CheCKpOInT\n"); - acc_create (&i, sizeof i); - - return 0; -} - -/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-8.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-8.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-8.c 2018-06-22 07:37:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/data-already-8.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */ - -#include - -int -main (int argc, char *argv[]) -{ - int i; - -#pragma acc data create (i) - { - fprintf (stderr, "CheCKpOInT\n"); -#pragma acc parallel copyin (i) - ++i; - } - - return 0; -} - -/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/function-not-offloaded.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/function-not-offloaded.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/function-not-offloaded.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/function-not-offloaded.c 2018-12-16 02:30:44.000000000 +0000 @@ -0,0 +1,18 @@ +/* { dg-do link } */ +/* { dg-excess-errors "lto1, mkoffload and lto-wrapper fatal errors" { target openacc_nvidia_accel_configured } } */ + +int var; +#pragma acc declare create (var) + +void __attribute__((noinline, noclone)) +foo () /* { dg-error "function 'foo' has been referenced in offloaded code but hasn't been marked to be included in the offloaded code" "" { target openacc_nvidia_accel_configured } } */ +{ + var++; +} + +int +main () +{ +#pragma acc parallel + foo (); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-69.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-69.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-69.c 2015-01-17 10:49:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-69.c 2018-12-16 02:30:44.000000000 +0000 @@ -103,6 +103,13 @@ abort (); } + /* Test unseen async-argument. */ + if (acc_async_test (1) != 1) + { + fprintf (stderr, "acc_async_test failed on unseen async-argument\n"); + abort (); + } + sleep (1); if (acc_async_test (0) != 1) diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-71.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-71.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-71.c 2015-09-30 12:10:16.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-71.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,122 +0,0 @@ -/* { dg-do run { target openacc_nvidia_accel_selected } } */ -/* { dg-additional-options "-lcuda" } */ - -#include -#include -#include -#include - -int -main (int argc, char **argv) -{ - CUdevice dev; - CUfunction delay; - CUmodule module; - CUresult r; - CUstream stream; - unsigned long *a, *d_a, dticks; - int nbytes; - float dtime; - void *kargs[2]; - int clkrate; - int devnum, nprocs; - - acc_init (acc_device_nvidia); - - devnum = acc_get_device_num (acc_device_nvidia); - - r = cuDeviceGet (&dev, devnum); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuDeviceGet failed: %d\n", r); - abort (); - } - - r = - cuDeviceGetAttribute (&nprocs, CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT, - dev); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuDeviceGetAttribute failed: %d\n", r); - abort (); - } - - r = cuDeviceGetAttribute (&clkrate, CU_DEVICE_ATTRIBUTE_CLOCK_RATE, dev); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuDeviceGetAttribute failed: %d\n", r); - abort (); - } - - r = cuModuleLoad (&module, "subr.ptx"); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuModuleLoad failed: %d\n", r); - abort (); - } - - r = cuModuleGetFunction (&delay, module, "delay"); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuModuleGetFunction failed: %d\n", r); - abort (); - } - - nbytes = nprocs * sizeof (unsigned long); - - dtime = 200.0; - - dticks = (unsigned long) (dtime * clkrate); - - a = (unsigned long *) malloc (nbytes); - d_a = (unsigned long *) acc_malloc (nbytes); - - acc_map_data (a, d_a, nbytes); - - kargs[0] = (void *) &d_a; - kargs[1] = (void *) &dticks; - - r = cuStreamCreate (&stream, CU_STREAM_DEFAULT); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuStreamCreate failed: %d\n", r); - abort (); - } - - acc_set_cuda_stream (0, stream); - - r = cuLaunchKernel (delay, 1, 1, 1, 1, 1, 1, 0, stream, kargs, 0); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuLaunchKernel failed: %d\n", r); - abort (); - } - - fprintf (stderr, "CheCKpOInT\n"); - if (acc_async_test (1) != 0) - { - fprintf (stderr, "asynchronous operation not running\n"); - abort (); - } - - sleep ((int) (dtime / 1000.0f) + 1); - - if (acc_async_test (1) != 1) - { - fprintf (stderr, "found asynchronous operation still running\n"); - abort (); - } - - acc_unmap_data (a); - - free (a); - acc_free (d_a); - - acc_shutdown (acc_device_nvidia); - - return 0; -} - -/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */ -/* { dg-output "unknown async \[0-9\]+" } */ -/* { dg-shouldfail "" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-74.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-74.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-74.c 2015-01-17 10:49:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-74.c 2018-12-16 02:30:44.000000000 +0000 @@ -103,6 +103,8 @@ } acc_wait (0); + /* Test unseen async-argument. */ + acc_wait (1); atime = stop_timer (0); @@ -115,6 +117,8 @@ start_timer (0); acc_wait (0); + /* Test unseen async-argument. */ + acc_wait (1); atime = stop_timer (0); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-77.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-77.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-77.c 2015-09-30 12:10:16.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-77.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,138 +0,0 @@ -/* { dg-do run { target openacc_nvidia_accel_selected } } */ -/* { dg-additional-options "-lcuda" } */ - -#include -#include -#include -#include -#include -#include "timer.h" - -int -main (int argc, char **argv) -{ - CUdevice dev; - CUfunction delay; - CUmodule module; - CUresult r; - CUstream stream; - unsigned long *a, *d_a, dticks; - int nbytes; - float atime, dtime; - void *kargs[2]; - int clkrate; - int devnum, nprocs; - - acc_init (acc_device_nvidia); - - devnum = acc_get_device_num (acc_device_nvidia); - - r = cuDeviceGet (&dev, devnum); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuDeviceGet failed: %d\n", r); - abort (); - } - - r = - cuDeviceGetAttribute (&nprocs, CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT, - dev); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuDeviceGetAttribute failed: %d\n", r); - abort (); - } - - r = cuDeviceGetAttribute (&clkrate, CU_DEVICE_ATTRIBUTE_CLOCK_RATE, dev); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuDeviceGetAttribute failed: %d\n", r); - abort (); - } - - r = cuModuleLoad (&module, "subr.ptx"); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuModuleLoad failed: %d\n", r); - abort (); - } - - r = cuModuleGetFunction (&delay, module, "delay"); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuModuleGetFunction failed: %d\n", r); - abort (); - } - - nbytes = nprocs * sizeof (unsigned long); - - dtime = 200.0; - - dticks = (unsigned long) (dtime * clkrate); - - a = (unsigned long *) malloc (nbytes); - d_a = (unsigned long *) acc_malloc (nbytes); - - acc_map_data (a, d_a, nbytes); - - kargs[0] = (void *) &d_a; - kargs[1] = (void *) &dticks; - - r = cuStreamCreate (&stream, CU_STREAM_DEFAULT); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuStreamCreate failed: %d\n", r); - abort (); - } - - acc_set_cuda_stream (0, stream); - - init_timers (1); - - start_timer (0); - - r = cuLaunchKernel (delay, 1, 1, 1, 1, 1, 1, 0, stream, kargs, 0); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuLaunchKernel failed: %d\n", r); - abort (); - } - - fprintf (stderr, "CheCKpOInT\n"); - acc_wait (1); - - atime = stop_timer (0); - - if (atime < dtime) - { - fprintf (stderr, "actual time < delay time\n"); - abort (); - } - - start_timer (0); - - acc_wait (1); - - atime = stop_timer (0); - - if (0.010 < atime) - { - fprintf (stderr, "actual time < delay time\n"); - abort (); - } - - acc_unmap_data (a); - - fini_timers (); - - free (a); - acc_free (d_a); - - acc_shutdown (acc_device_nvidia); - - return 0; -} - -/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */ -/* { dg-output "unknown async \[0-9\]+" } */ -/* { dg-shouldfail "" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-79.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-79.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-79.c 2015-01-17 10:49:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-79.c 2018-12-16 02:30:44.000000000 +0000 @@ -122,6 +122,13 @@ } } + if (acc_async_test (0) != 0) + abort (); + + /* Test unseen async-argument. */ + if (acc_async_test (1) != 1) + abort (); + acc_wait_async (0, 1); if (acc_async_test (0) != 0) @@ -130,6 +137,23 @@ if (acc_async_test (1) != 0) abort (); + /* Test unseen async-argument. */ + { + if (acc_async_test (2) != 1) + abort (); + + acc_wait_async (2, 1); + + if (acc_async_test (0) != 0) + abort (); + + if (acc_async_test (1) != 0) + abort (); + + if (acc_async_test (2) != 1) + abort (); + } + acc_wait (1); atime = stop_timer (0); diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-80.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-80.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-80.c 2015-09-30 12:10:16.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-80.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,135 +0,0 @@ -/* { dg-do run { target openacc_nvidia_accel_selected } } */ -/* { dg-additional-options "-lcuda" } */ - -#include -#include -#include -#include -#include -#include "timer.h" - -int -main (int argc, char **argv) -{ - CUdevice dev; - CUfunction delay; - CUmodule module; - CUresult r; - CUstream stream; - int N; - int i; - unsigned long *a, *d_a, dticks; - int nbytes; - float atime, dtime; - void *kargs[2]; - int clkrate; - int devnum, nprocs; - - acc_init (acc_device_nvidia); - - devnum = acc_get_device_num (acc_device_nvidia); - - r = cuDeviceGet (&dev, devnum); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuDeviceGet failed: %d\n", r); - abort (); - } - - r = - cuDeviceGetAttribute (&nprocs, CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT, - dev); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuDeviceGetAttribute failed: %d\n", r); - abort (); - } - - r = cuDeviceGetAttribute (&clkrate, CU_DEVICE_ATTRIBUTE_CLOCK_RATE, dev); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuDeviceGetAttribute failed: %d\n", r); - abort (); - } - - r = cuModuleLoad (&module, "subr.ptx"); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuModuleLoad failed: %d\n", r); - abort (); - } - - r = cuModuleGetFunction (&delay, module, "delay"); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuModuleGetFunction failed: %d\n", r); - abort (); - } - - nbytes = nprocs * sizeof (unsigned long); - - dtime = 200.0; - - dticks = (unsigned long) (dtime * clkrate); - - N = nprocs; - - a = (unsigned long *) malloc (nbytes); - d_a = (unsigned long *) acc_malloc (nbytes); - - acc_map_data (a, d_a, nbytes); - - r = cuStreamCreate (&stream, CU_STREAM_DEFAULT); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuStreamCreate failed: %d\n", r); - abort (); - } - - acc_set_cuda_stream (1, stream); - - init_timers (1); - - kargs[0] = (void *) &d_a; - kargs[1] = (void *) &dticks; - - start_timer (0); - - for (i = 0; i < N; i++) - { - r = cuLaunchKernel (delay, 1, 1, 1, 1, 1, 1, 0, stream, kargs, 0); - if (r != CUDA_SUCCESS) - { - fprintf (stderr, "cuLaunchKernel failed: %d\n", r); - abort (); - } - } - - fprintf (stderr, "CheCKpOInT\n"); - acc_wait_async (1, 1); - - acc_wait (1); - - atime = stop_timer (0); - - if (atime < dtime) - { - fprintf (stderr, "actual time < delay time\n"); - abort (); - } - - acc_unmap_data (a); - - fini_timers (); - - free (a); - acc_free (d_a); - - acc_shutdown (acc_device_nvidia); - - return 0; -} - -/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */ -/* { dg-output "identical parameters" } */ -/* { dg-shouldfail "" } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-84.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-84.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-84.c 2015-01-17 10:49:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-84.c 2018-12-16 02:30:44.000000000 +0000 @@ -7,6 +7,14 @@ #include #include +#if !defined __cplusplus +# undef static_assert +# define static_assert _Static_assert +#endif + +static_assert (acc_async_sync == -2, "acc_async_sync?"); +static_assert (acc_async_noval == -1, "acc_async_noval?"); + int main (int argc, char **argv) { @@ -20,9 +28,11 @@ (void) acc_get_device_num (acc_device_nvidia); - streams = (CUstream *) malloc (N * sizeof (void *)); + streams = (CUstream *) malloc ((2 + N) * sizeof (void *)); + streams += 2; + /* "streams[i]" is valid for i in [acc_async_sync..N). */ - for (i = 0; i < N; i++) + for (i = acc_async_sync; i < N; i++) { streams[i] = (CUstream) acc_get_cuda_stream (i); if (streams[i] != NULL) @@ -35,11 +45,20 @@ abort (); } - if (!acc_set_cuda_stream (i, streams[i])) - abort (); + int ret = acc_set_cuda_stream (i, streams[i]); + if (i == acc_async_sync) + { + if (ret == 1) + abort (); + } + else + { + if (ret != 1) + abort (); + } } - for (i = 0; i < N; i++) + for (i = acc_async_sync; i < N; i++) { int j; int cnt; @@ -48,7 +67,7 @@ s = streams[i]; - for (j = 0; j < N; j++) + for (j = acc_async_sync; j < N; j++) { if (s == streams[j]) cnt++; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-85.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-85.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-85.c 2015-01-17 10:49:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-85.c 2018-12-16 02:30:44.000000000 +0000 @@ -7,6 +7,14 @@ #include #include +#if !defined __cplusplus +# undef static_assert +# define static_assert _Static_assert +#endif + +static_assert (acc_async_sync == -2, "acc_async_sync?"); +static_assert (acc_async_noval == -1, "acc_async_noval?"); + int main (int argc, char **argv) { @@ -20,9 +28,11 @@ (void) acc_get_device_num (acc_device_nvidia); - streams = (CUstream *) malloc (N * sizeof (void *)); + streams = (CUstream *) malloc ((2 + N) * sizeof (void *)); + streams += 2; + /* "streams[i]" is valid for i in [acc_async_sync..N). */ - for (i = 0; i < N; i++) + for (i = acc_async_sync; i < N; i++) { streams[i] = (CUstream) acc_get_cuda_stream (i); if (streams[i] != NULL) @@ -35,8 +45,17 @@ abort (); } - if (!acc_set_cuda_stream (i, streams[i])) - abort (); + int ret = acc_set_cuda_stream (i, streams[i]); + if (i == acc_async_sync) + { + if (ret == 1) + abort (); + } + else + { + if (ret != 1) + abort (); + } } s = NULL; diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-merged-loop.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-merged-loop.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-merged-loop.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-merged-loop.c 2018-12-29 02:41:32.000000000 +0000 @@ -0,0 +1,30 @@ +/* { dg-do run { target openacc_nvidia_accel_selected } } */ +/* { dg-options "-foffload=-fdump-rtl-mach" } */ +/* { dg-skip-if "" { *-*-* } { "*" } { "-O2" } } */ + +#define N (32*32*32+17) +void __attribute__ ((noinline)) Foo (int *ary) +{ + int ix; + +#pragma acc parallel num_workers(32) vector_length(32) copyout(ary[0:N]) + { + /* Loop partitioning should be merged. */ +#pragma acc loop worker vector + for (unsigned ix = 0; ix < N; ix++) + { + ary[ix] = ix; + } + } +} + +int main () +{ + int ary[N]; + + Foo (ary); + + return 0; +} + +/* { dg-final { scan-offload-rtl-dump "Merging loop .* into " "mach" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-sese-1.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-sese-1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-sese-1.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-sese-1.c 2018-12-29 02:41:32.000000000 +0000 @@ -0,0 +1,35 @@ +/* { dg-do run { target openacc_nvidia_accel_selected } } */ +/* { dg-options "-foffload=-fdump-rtl-mach" } */ +/* { dg-skip-if "" { *-*-* } { "*" } { "-O2" } } */ + +#pragma acc routine seq +int __attribute__((noinline)) foo (int x) +{ + return x & 2; +} + +int main () +{ + int r = 0; + +#pragma acc parallel copy(r) vector_length(32) + { +#pragma acc loop vector reduction (+:r) + for (int i = 00; i < 40; i++) + r += i; + + /* This piece is a multi-block SESE region */ + if (foo (r)) + r *= 2; + + if (r & 1) /* to here. */ +#pragma acc loop vector reduction (+:r) + for (int i = 00; i < 40; i++) + r += i; + } + + return 0; +} + +/* Match {N->N(.N)+} */ +/* { dg-final { scan-offload-rtl-dump "SESE regions:.* \[0-9\]+{\[0-9\]+->\[0-9\]+(\\.\[0-9\]+)+}" "mach" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/pr85381-2.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/pr85381-2.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/pr85381-2.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/pr85381-2.c 2018-12-29 02:41:32.000000000 +0000 @@ -0,0 +1,36 @@ +/* { dg-additional-options "-save-temps" } */ +/* { dg-do run { target openacc_nvidia_accel_selected } } + { dg-skip-if "" { *-*-* } { "*" } { "-O2" } } */ + +int +main (void) +{ + int v1; + + #pragma acc parallel + #pragma acc loop worker + for (v1 = 0; v1 < 20; v1 += 2) + ; + + return 0; +} + +/* Todo: Boths bar.syncs can be removed. + Atm we generate this dead code inbetween forked and joining: + + mov.u32 %r28, %ntid.y; + mov.u32 %r29, %tid.y; + add.u32 %r30, %r29, %r29; + setp.gt.s32 %r31, %r30, 19; + @%r31 bra $L2; + add.u32 %r25, %r28, %r28; + mov.u32 %r24, %r30; + $L3: + add.u32 %r24, %r24, %r25; + setp.le.s32 %r33, %r24, 19; + @%r33 bra $L3; + $L2: + + so the loop is not recognized as empty loop (which we detect by seeing if + joining immediately follows forked). */ +/* { dg-final { scan-assembler-times "bar.sync" 2 } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/pr85381-3.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/pr85381-3.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/pr85381-3.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/pr85381-3.c 2018-12-29 02:41:32.000000000 +0000 @@ -0,0 +1,35 @@ +/* { dg-additional-options "-save-temps -w" } */ +/* { dg-do run { target openacc_nvidia_accel_selected } } + { dg-skip-if "" { *-*-* } { "*" } { "-O2" } } */ + +int a; +#pragma acc declare create(a) + +#pragma acc routine vector +void __attribute__((noinline, noclone)) +foo_v (void) +{ + a = 1; +} + +#pragma acc routine worker +void __attribute__((noinline, noclone)) +foo_w (void) +{ + a = 2; +} + +int +main (void) +{ + + #pragma acc parallel + foo_v (); + + #pragma acc parallel + foo_w (); + + return 0; +} + +/* { dg-final { scan-assembler-not "bar.sync" } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/pr85381-4.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/pr85381-4.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/pr85381-4.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/pr85381-4.c 2018-12-29 02:41:32.000000000 +0000 @@ -0,0 +1,27 @@ +/* { dg-additional-options "-save-temps -w" } */ +/* { dg-do run { target openacc_nvidia_accel_selected } } + { dg-skip-if "" { *-*-* } { "*" } { "-O2" } } */ + +#define n 1024 + +int +main (void) +{ + #pragma acc parallel + { + #pragma acc loop worker + for (int i = 0; i < n; i++) + ; + + #pragma acc loop worker + for (int i = 0; i < n; i++) + ; + } + + return 0; +} + +/* Atm, %ntid.y is broadcast from one loop to the next, so there are 2 bar.syncs + for that (the other two are there for the same reason as in pr85381-2.c). + Todo: Recompute %ntid.y instead of broadcasting it. */ +/* { dg-final { scan-assembler-times "bar.sync" 4 } } */ diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/variable-not-offloaded.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/variable-not-offloaded.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/variable-not-offloaded.c 1970-01-01 00:00:00.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-c-c++-common/variable-not-offloaded.c 2018-12-16 02:30:44.000000000 +0000 @@ -0,0 +1,17 @@ +/* { dg-do link } */ + +int var; /* { dg-error "'var' requires a 'declare' directive for use in a 'routine' function" } */ + +#pragma acc routine +void __attribute__((noinline, noclone)) +foo (void) +{ + var++; +} + +int +main () +{ +#pragma acc parallel + foo (); +} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-1.f gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-1.f --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-1.f 2018-06-22 07:37:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-1.f 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } - - IMPLICIT NONE - INCLUDE "openacc_lib.h" - - INTEGER I - - CALL ACC_COPYIN (I) - WRITE(0, *) "CheCKpOInT" -!$ACC DATA COPY (I) - I = 0 -!$ACC END DATA - - END - -! { dg-output "CheCKpOInT(\n|\r\n|\r).*" } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-2.f gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-2.f --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-2.f 2018-06-22 07:37:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-2.f 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } - - IMPLICIT NONE - - INTEGER I - -!$ACC DATA PRESENT_OR_COPY (I) - WRITE(0, *) "CheCKpOInT" -!$ACC DATA COPYOUT (I) - I = 0 -!$ACC END DATA -!$ACC END DATA - - END - -! { dg-output "CheCKpOInT(\n|\r\n|\r).*" } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-3.f gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-3.f --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-3.f 2018-06-22 07:37:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-3.f 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } - - IMPLICIT NONE - INCLUDE "openacc_lib.h" - - INTEGER I - -!$ACC DATA PRESENT_OR_COPY (I) - WRITE(0, *) "CheCKpOInT" - CALL ACC_COPYIN (I) -!$ACC END DATA - - END - -! { dg-output "CheCKpOInT(\n|\r\n|\r).*" } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-4.f gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-4.f --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-4.f 2018-06-22 07:37:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-4.f 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } - - IMPLICIT NONE - INCLUDE "openacc_lib.h" - - INTEGER I - - CALL ACC_PRESENT_OR_COPYIN (I) - WRITE(0, *) "CheCKpOInT" - CALL ACC_COPYIN (I) - - END - -! { dg-output "CheCKpOInT(\n|\r\n|\r).*" } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-5.f gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-5.f --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-5.f 2018-06-22 07:37:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-5.f 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } - - IMPLICIT NONE - INCLUDE "openacc_lib.h" - - INTEGER I - -!$ACC ENTER DATA CREATE (I) - WRITE(0, *) "CheCKpOInT" - CALL ACC_COPYIN (I) - - END - -! { dg-output "CheCKpOInT(\n|\r\n|\r).*" } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-6.f gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-6.f --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-6.f 2018-06-22 07:37:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-6.f 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } - - IMPLICIT NONE - INCLUDE "openacc_lib.h" - - INTEGER I - - CALL ACC_PRESENT_OR_COPYIN (I) - WRITE(0, *) "CheCKpOInT" -!$ACC ENTER DATA CREATE (I) - - END - -! { dg-output "CheCKpOInT(\n|\r\n|\r).*" } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-7.f gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-7.f --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-7.f 2018-06-22 07:37:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-7.f 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } - - IMPLICIT NONE - INCLUDE "openacc_lib.h" - - INTEGER I - -!$ACC ENTER DATA CREATE (I) - WRITE(0, *) "CheCKpOInT" - CALL ACC_CREATE (I) - - END - -! { dg-output "CheCKpOInT(\n|\r\n|\r).*" } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-8.f gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-8.f --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-8.f 2018-06-22 07:37:43.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/data-already-8.f 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } - - IMPLICIT NONE - - INTEGER I - -!$ACC DATA CREATE (I) - WRITE(0, *) "CheCKpOInT" -!$ACC PARALLEL COPYIN (I) - I = 0 -!$ACC END PARALLEL -!$ACC END DATA - - END - -! { dg-output "CheCKpOInT(\n|\r\n|\r).*" } diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/lib-12.f90 gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/lib-12.f90 --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/lib-12.f90 2018-08-02 03:04:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/testsuite/libgomp.oacc-fortran/lib-12.f90 2018-12-16 02:30:44.000000000 +0000 @@ -17,9 +17,14 @@ call acc_wait_async (0, 1) + ! Test unseen async-argument. + if (acc_async_test (2) .neqv. .TRUE.) call abort + call acc_wait_async (2, 1) + call acc_wait (1) if (acc_async_test (0) .neqv. .TRUE.) call abort if (acc_async_test (1) .neqv. .TRUE.) call abort + if (acc_async_test (2) .neqv. .TRUE.) call abort end program diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libgomp/work.c gcc-snapshot-20190102/=unpacked-tar1=/libgomp/work.c --- gcc-snapshot-20181214/=unpacked-tar1=/libgomp/work.c 2018-11-09 12:59:42.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libgomp/work.c 2019-01-02 08:05:03.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2018 Free Software Foundation, Inc. +/* Copyright (C) 2005-2019 Free Software Foundation, Inc. Contributed by Richard Henderson . This file is part of the GNU Offloading and Multi Processing Library diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/ChangeLog 2018-11-01 16:06:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/ChangeLog 2019-01-02 08:05:20.000000000 +0000 @@ -1,3 +1,7 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + 2018-10-31 Joseph Myers PR bootstrap/82856 @@ -125,7 +129,7 @@ * rt/segment.c: Likewise. * rt/workitems.c: Likewise. -Copyright (C) 2017-2018 Free Software Foundation, Inc. +Copyright (C) 2017-2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/configure.tgt gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/configure.tgt --- gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/configure.tgt 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/configure.tgt 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ # -*- shell-script -*- -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2019 Free Software Foundation, Inc. # Contributed by Pekka Jaaskelainen # for General Processor Tech. # diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/include/internal/fibers.h gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/include/internal/fibers.h --- gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/include/internal/fibers.h 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/include/internal/fibers.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,5 +1,5 @@ /* fibers.h -- an extremely simple lightweight thread (fiber) implementation - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/include/internal/phsa-queue-interface.h gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/include/internal/phsa-queue-interface.h --- gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/include/internal/phsa-queue-interface.h 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/include/internal/phsa-queue-interface.h 2019-01-02 08:05:20.000000000 +0000 @@ -2,7 +2,7 @@ representation of a user mode queue to be used with the phsa/gccbrig implementation. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/include/internal/phsa-rt.h gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/include/internal/phsa-rt.h --- gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/include/internal/phsa-rt.h 2018-05-05 11:58:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/include/internal/phsa-rt.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,7 +1,7 @@ /* phsa-rt.h -- Data structures and functions of the PHSA device side runtime scheduler, and HSAIL built-ins. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/include/internal/workitems.h gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/include/internal/workitems.h --- gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/include/internal/workitems.h 2018-05-05 11:58:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/include/internal/workitems.h 2019-01-02 08:05:20.000000000 +0000 @@ -1,7 +1,7 @@ /* workitems.h -- Types for context data passed as hidden parameters to special built-ins. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/arithmetic.c gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/arithmetic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/arithmetic.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/arithmetic.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,7 +1,7 @@ /* arithmetic.c -- Builtins for HSAIL arithmetic instructions for which there is no feasible direct gcc GENERIC expression. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/atomics.c gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/atomics.c --- gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/atomics.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/atomics.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,7 +1,7 @@ /* atomic.c -- Builtins for HSAIL atomic instructions for which there is no feasible direct gcc GENERIC expression. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/bitstring.c gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/bitstring.c --- gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/bitstring.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/bitstring.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* bitstring.c -- Builtins for HSAIL bitstring instructions. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/fbarrier.c gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/fbarrier.c --- gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/fbarrier.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/fbarrier.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* fbarrier.c -- HSAIL fbarrier built-ins. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/fibers.c gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/fibers.c --- gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/fibers.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/fibers.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,9 +1,9 @@ /* fibers.c -- extremely simple lightweight thread (fiber) implementation - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/fp16.c gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/fp16.c --- gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/fp16.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/fp16.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,7 +1,7 @@ /* Half-float conversion routines. Code mostly borrowed from the ARM's builtin function. - Copyright (C) 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Contributed by CodeSourcery. This file is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/misc.c gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/misc.c --- gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/misc.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/misc.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* misc.c -- Builtins for HSAIL misc instructions. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/multimedia.c gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/multimedia.c --- gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/multimedia.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/multimedia.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* multimedia.c -- Builtins for HSAIL multimedia instructions. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/queue.c gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/queue.c --- gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/queue.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/queue.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* queue.c -- Builtins for HSAIL queue related instructions. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/sat_arithmetic.c gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/sat_arithmetic.c --- gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/sat_arithmetic.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/sat_arithmetic.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* sat_arithmetic.c -- Builtins for HSAIL saturating arithmetic instructions. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/segment.c gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/segment.c --- gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/segment.c 2018-01-04 13:44:44.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/segment.c 2019-01-02 08:05:20.000000000 +0000 @@ -1,6 +1,6 @@ /* segment.c -- Builtins for HSAIL segment related instructions. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/workitems.c gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/workitems.c --- gcc-snapshot-20181214/=unpacked-tar1=/libhsail-rt/rt/workitems.c 2018-05-05 11:58:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libhsail-rt/rt/workitems.c 2019-01-02 08:05:20.000000000 +0000 @@ -2,7 +2,7 @@ various ways and the builtin functions closely related to the implementation. - Copyright (C) 2015-2018 Free Software Foundation, Inc. + Copyright (C) 2015-2019 Free Software Foundation, Inc. Contributed by Pekka Jaaskelainen for General Processor Tech. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/argv.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/argv.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/argv.c 2018-05-01 06:09:03.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/argv.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Create and destroy argument vectors (argv's) - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. Written by Fred Fish @ Cygnus Support This file is part of the libiberty library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/asprintf.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/asprintf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/asprintf.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/asprintf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Like sprintf but provides a pointer to malloc'd storage, which must be freed by the caller. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Contributed by Cygnus Solutions. This file is part of the libiberty library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/ChangeLog gcc-snapshot-20190102/=unpacked-tar1=/libiberty/ChangeLog --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/ChangeLog 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/ChangeLog 2019-01-02 08:05:14.000000000 +0000 @@ -1,3 +1,17 @@ +2019-01-01 Jakub Jelinek + + Update copyright years. + +2018-12-22 Jason Merrill + + Remove support for demangling GCC 2.x era mangling schemes. + * cplus-dem.c: Remove cplus_mangle_opname, cplus_demangle_opname, + internal_cplus_demangle, and all subroutines. + (libiberty_demanglers): Remove entries for ancient GNU (pre-3.0), + Lucid, ARM, HP, and EDG demangling styles. + (cplus_demangle): Remove 'work' variable. Don't call + internal_cplus_demangle. + 2018-12-07 Nick Clifton PR 87681 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/choose-temp.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/choose-temp.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/choose-temp.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/choose-temp.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Utility to pick a temporary filename prefix. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/clock.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/clock.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/clock.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/clock.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* ANSI-compatible clock function. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. This file is part of the libiberty library. This library is free software; you can redistribute it and/or modify it under the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/concat.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/concat.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/concat.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/concat.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Concatenate variable number of strings. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. Written by Fred Fish @ Cygnus Support This file is part of the libiberty library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/copying-lib.texi gcc-snapshot-20190102/=unpacked-tar1=/libiberty/copying-lib.texi --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/copying-lib.texi 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/copying-lib.texi 2019-01-02 08:05:14.000000000 +0000 @@ -5,7 +5,7 @@ @center Version 2.1, February 1999 @display -Copyright @copyright{} 1991-2018 Free Software Foundation, Inc. +Copyright @copyright{} 1991-2019 Free Software Foundation, Inc. 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/cp-demangle.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/cp-demangle.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/cp-demangle.c 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/cp-demangle.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Demangler for g++ V3 ABI. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor . This file is part of the libiberty library, which is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/cp-demangle.h gcc-snapshot-20190102/=unpacked-tar1=/libiberty/cp-demangle.h --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/cp-demangle.h 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/cp-demangle.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Internal demangler interface for g++ V3 ABI. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor . This file is part of the libiberty library, which is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/cp-demint.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/cp-demint.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/cp-demint.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/cp-demint.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Demangler component interface functions. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor . This file is part of the libiberty library, which is part of GCC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/cplus-dem.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/cplus-dem.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/cplus-dem.c 2018-12-08 19:29:40.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/cplus-dem.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Demangler for GNU C++ - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. Written by James Clark (jjc@jclark.uucp) Rewritten by Fred Fish (fnf@cygnus.com) for ARM and Lucid demangling Modified by Satish Pai (pai@apollo.hp.com) for HP demangling @@ -29,12 +29,6 @@ not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ -/* This file exports two functions; cplus_mangle_opname and cplus_demangle. - - This file imports xmalloc and xrealloc, which are like malloc and - realloc except that they generate a fatal error if there is no - available memory. */ - /* This file lives in both GCC and libiberty. When making changes, please try not to break either. */ @@ -44,9 +38,7 @@ #include "safe-ctype.h" -#include #include -#include #ifdef HAVE_STDLIB_H #include @@ -55,205 +47,14 @@ void * realloc (); #endif -#ifdef HAVE_LIMITS_H -#include -#endif -#ifndef INT_MAX -# define INT_MAX (int)(((unsigned int) ~0) >> 1) /* 0x7FFFFFFF */ -#endif - #include #undef CURRENT_DEMANGLING_STYLE -#define CURRENT_DEMANGLING_STYLE work->options +#define CURRENT_DEMANGLING_STYLE options #include "libiberty.h" -#define min(X,Y) (((X) < (Y)) ? (X) : (Y)) - -/* A value at least one greater than the maximum number of characters - that will be output when using the `%d' format with `printf'. */ -#define INTBUF_SIZE 32 - -extern void fancy_abort (void) ATTRIBUTE_NORETURN; - -/* In order to allow a single demangler executable to demangle strings - using various common values of CPLUS_MARKER, as well as any specific - one set at compile time, we maintain a string containing all the - commonly used ones, and check to see if the marker we are looking for - is in that string. CPLUS_MARKER is usually '$' on systems where the - assembler can deal with that. Where the assembler can't, it's usually - '.' (but on many systems '.' is used for other things). We put the - current defined CPLUS_MARKER first (which defaults to '$'), followed - by the next most common value, followed by an explicit '$' in case - the value of CPLUS_MARKER is not '$'. - - We could avoid this if we could just get g++ to tell us what the actual - cplus marker character is as part of the debug information, perhaps by - ensuring that it is the character that terminates the gcc_compiled - marker symbol (FIXME). */ - -#if !defined (CPLUS_MARKER) -#define CPLUS_MARKER '$' -#endif - enum demangling_styles current_demangling_style = auto_demangling; -static char cplus_markers[] = { CPLUS_MARKER, '.', '$', '\0' }; - -static char char_str[2] = { '\000', '\000' }; - -void -set_cplus_marker_for_demangling (int ch) -{ - cplus_markers[0] = ch; -} - -typedef struct string /* Beware: these aren't required to be */ -{ /* '\0' terminated. */ - char *b; /* pointer to start of string */ - char *p; /* pointer after last character */ - char *e; /* pointer after end of allocated space */ -} string; - -/* Stuff that is shared between sub-routines. - Using a shared structure allows cplus_demangle to be reentrant. */ - -struct work_stuff -{ - int options; - char **typevec; - char **ktypevec; - char **btypevec; - int numk; - int numb; - int ksize; - int bsize; - int ntypes; - int typevec_size; - int constructor; - int destructor; - int static_type; /* A static member function */ - int temp_start; /* index in demangled to start of template args */ - int type_quals; /* The type qualifiers. */ - int dllimported; /* Symbol imported from a PE DLL */ - char **tmpl_argvec; /* Template function arguments. */ - int ntmpl_args; /* The number of template function arguments. */ - int forgetting_types; /* Nonzero if we are not remembering the types - we see. */ - string* previous_argument; /* The last function argument demangled. */ - int nrepeats; /* The number of times to repeat the previous - argument. */ - int *proctypevec; /* Indices of currently processed remembered typevecs. */ - int proctypevec_size; - int nproctypes; - unsigned int recursion_level; -}; - -#define PRINT_ANSI_QUALIFIERS (work -> options & DMGL_ANSI) -#define PRINT_ARG_TYPES (work -> options & DMGL_PARAMS) - -static const struct optable -{ - const char *const in; - const char *const out; - const int flags; -} optable[] = { - {"nw", " new", DMGL_ANSI}, /* new (1.92, ansi) */ - {"dl", " delete", DMGL_ANSI}, /* new (1.92, ansi) */ - {"new", " new", 0}, /* old (1.91, and 1.x) */ - {"delete", " delete", 0}, /* old (1.91, and 1.x) */ - {"vn", " new []", DMGL_ANSI}, /* GNU, pending ansi */ - {"vd", " delete []", DMGL_ANSI}, /* GNU, pending ansi */ - {"as", "=", DMGL_ANSI}, /* ansi */ - {"ne", "!=", DMGL_ANSI}, /* old, ansi */ - {"eq", "==", DMGL_ANSI}, /* old, ansi */ - {"ge", ">=", DMGL_ANSI}, /* old, ansi */ - {"gt", ">", DMGL_ANSI}, /* old, ansi */ - {"le", "<=", DMGL_ANSI}, /* old, ansi */ - {"lt", "<", DMGL_ANSI}, /* old, ansi */ - {"plus", "+", 0}, /* old */ - {"pl", "+", DMGL_ANSI}, /* ansi */ - {"apl", "+=", DMGL_ANSI}, /* ansi */ - {"minus", "-", 0}, /* old */ - {"mi", "-", DMGL_ANSI}, /* ansi */ - {"ami", "-=", DMGL_ANSI}, /* ansi */ - {"mult", "*", 0}, /* old */ - {"ml", "*", DMGL_ANSI}, /* ansi */ - {"amu", "*=", DMGL_ANSI}, /* ansi (ARM/Lucid) */ - {"aml", "*=", DMGL_ANSI}, /* ansi (GNU/g++) */ - {"convert", "+", 0}, /* old (unary +) */ - {"negate", "-", 0}, /* old (unary -) */ - {"trunc_mod", "%", 0}, /* old */ - {"md", "%", DMGL_ANSI}, /* ansi */ - {"amd", "%=", DMGL_ANSI}, /* ansi */ - {"trunc_div", "/", 0}, /* old */ - {"dv", "/", DMGL_ANSI}, /* ansi */ - {"adv", "/=", DMGL_ANSI}, /* ansi */ - {"truth_andif", "&&", 0}, /* old */ - {"aa", "&&", DMGL_ANSI}, /* ansi */ - {"truth_orif", "||", 0}, /* old */ - {"oo", "||", DMGL_ANSI}, /* ansi */ - {"truth_not", "!", 0}, /* old */ - {"nt", "!", DMGL_ANSI}, /* ansi */ - {"postincrement","++", 0}, /* old */ - {"pp", "++", DMGL_ANSI}, /* ansi */ - {"postdecrement","--", 0}, /* old */ - {"mm", "--", DMGL_ANSI}, /* ansi */ - {"bit_ior", "|", 0}, /* old */ - {"or", "|", DMGL_ANSI}, /* ansi */ - {"aor", "|=", DMGL_ANSI}, /* ansi */ - {"bit_xor", "^", 0}, /* old */ - {"er", "^", DMGL_ANSI}, /* ansi */ - {"aer", "^=", DMGL_ANSI}, /* ansi */ - {"bit_and", "&", 0}, /* old */ - {"ad", "&", DMGL_ANSI}, /* ansi */ - {"aad", "&=", DMGL_ANSI}, /* ansi */ - {"bit_not", "~", 0}, /* old */ - {"co", "~", DMGL_ANSI}, /* ansi */ - {"call", "()", 0}, /* old */ - {"cl", "()", DMGL_ANSI}, /* ansi */ - {"alshift", "<<", 0}, /* old */ - {"ls", "<<", DMGL_ANSI}, /* ansi */ - {"als", "<<=", DMGL_ANSI}, /* ansi */ - {"arshift", ">>", 0}, /* old */ - {"rs", ">>", DMGL_ANSI}, /* ansi */ - {"ars", ">>=", DMGL_ANSI}, /* ansi */ - {"component", "->", 0}, /* old */ - {"pt", "->", DMGL_ANSI}, /* ansi; Lucid C++ form */ - {"rf", "->", DMGL_ANSI}, /* ansi; ARM/GNU form */ - {"indirect", "*", 0}, /* old */ - {"method_call", "->()", 0}, /* old */ - {"addr", "&", 0}, /* old (unary &) */ - {"array", "[]", 0}, /* old */ - {"vc", "[]", DMGL_ANSI}, /* ansi */ - {"compound", ", ", 0}, /* old */ - {"cm", ", ", DMGL_ANSI}, /* ansi */ - {"cond", "?:", 0}, /* old */ - {"cn", "?:", DMGL_ANSI}, /* pseudo-ansi */ - {"max", ">?", 0}, /* old */ - {"mx", ">?", DMGL_ANSI}, /* pseudo-ansi */ - {"min", "*", DMGL_ANSI}, /* ansi */ - {"sz", "sizeof ", DMGL_ANSI} /* pseudo-ansi */ -}; - -/* These values are used to indicate the various type varieties. - They are all non-zero so that they can be used as `success' - values. */ -typedef enum type_kind_t -{ - tk_none, - tk_pointer, - tk_reference, - tk_rvalue_reference, - tk_integral, - tk_bool, - tk_char, - tk_real -} type_kind_t; - const struct demangler_engine libiberty_demanglers[] = { { @@ -269,39 +70,9 @@ } , { - GNU_DEMANGLING_STYLE_STRING, - gnu_demangling, - "GNU (g++) style demangling" - } - , - { - LUCID_DEMANGLING_STYLE_STRING, - lucid_demangling, - "Lucid (lcc) style demangling" - } - , - { - ARM_DEMANGLING_STYLE_STRING, - arm_demangling, - "ARM style demangling" - } - , - { - HP_DEMANGLING_STYLE_STRING, - hp_demangling, - "HP (aCC) style demangling" - } - , - { - EDG_DEMANGLING_STYLE_STRING, - edg_demangling, - "EDG style demangling" - } - , - { GNU_V3_DEMANGLING_STYLE_STRING, gnu_v3_demangling, - "GNU (g++) V3 ABI-style demangling" + "GNU (g++) V3 (Itanium C++ ABI) style demangling" } , { @@ -333,474 +104,6 @@ } }; -#define STRING_EMPTY(str) ((str) -> b == (str) -> p) -#define APPEND_BLANK(str) {if (!STRING_EMPTY(str)) \ - string_append(str, " ");} -#define LEN_STRING(str) ( (STRING_EMPTY(str))?0:((str)->p - (str)->b)) - -/* The scope separator appropriate for the language being demangled. */ - -#define SCOPE_STRING(work) ((work->options & DMGL_JAVA) ? "." : "::") - -#define ARM_VTABLE_STRING "__vtbl__" /* Lucid/ARM virtual table prefix */ -#define ARM_VTABLE_STRLEN 8 /* strlen (ARM_VTABLE_STRING) */ - -/* Prototypes for local functions */ - -static void delete_work_stuff (struct work_stuff *); - -static void delete_non_B_K_work_stuff (struct work_stuff *); - -static char *mop_up (struct work_stuff *, string *, int); - -static void squangle_mop_up (struct work_stuff *); - -static void work_stuff_copy_to_from (struct work_stuff *, struct work_stuff *); - -#if 0 -static int -demangle_method_args (struct work_stuff *, const char **, string *); -#endif - -static char * -internal_cplus_demangle (struct work_stuff *, const char *); - -static int -demangle_template_template_parm (struct work_stuff *work, - const char **, string *); - -static int -demangle_template (struct work_stuff *work, const char **, string *, - string *, int, int); - -static int -arm_pt (struct work_stuff *, const char *, int, const char **, - const char **); - -static int -demangle_class_name (struct work_stuff *, const char **, string *); - -static int -demangle_qualified (struct work_stuff *, const char **, string *, - int, int); - -static int demangle_class (struct work_stuff *, const char **, string *); - -static int demangle_fund_type (struct work_stuff *, const char **, string *); - -static int demangle_signature (struct work_stuff *, const char **, string *); - -static int demangle_prefix (struct work_stuff *, const char **, string *); - -static int gnu_special (struct work_stuff *, const char **, string *); - -static int arm_special (const char **, string *); - -static void string_need (string *, int); - -static void string_delete (string *); - -static void -string_init (string *); - -static void string_clear (string *); - -#if 0 -static int string_empty (string *); -#endif - -static void string_append (string *, const char *); - -static void string_appends (string *, string *); - -static void string_appendn (string *, const char *, int); - -static void string_prepend (string *, const char *); - -static void string_prependn (string *, const char *, int); - -static void string_append_template_idx (string *, int); - -static int get_count (const char **, int *); - -static int consume_count (const char **); - -static int consume_count_with_underscores (const char**); - -static int demangle_args (struct work_stuff *, const char **, string *); - -static int demangle_nested_args (struct work_stuff*, const char**, string*); - -static int do_type (struct work_stuff *, const char **, string *); - -static int do_arg (struct work_stuff *, const char **, string *); - -static int -demangle_function_name (struct work_stuff *, const char **, string *, - const char *); - -static int -iterate_demangle_function (struct work_stuff *, - const char **, string *, const char *); - -static void remember_type (struct work_stuff *, const char *, int); - -static void push_processed_type (struct work_stuff *, int); - -static void pop_processed_type (struct work_stuff *); - -static void remember_Btype (struct work_stuff *, const char *, int, int); - -static int register_Btype (struct work_stuff *); - -static void remember_Ktype (struct work_stuff *, const char *, int); - -static void forget_types (struct work_stuff *); - -static void forget_B_and_K_types (struct work_stuff *); - -static void string_prepends (string *, string *); - -static int -demangle_template_value_parm (struct work_stuff*, const char**, - string*, type_kind_t); - -static int -do_hpacc_template_const_value (struct work_stuff *, const char **, string *); - -static int -do_hpacc_template_literal (struct work_stuff *, const char **, string *); - -static int snarf_numeric_literal (const char **, string *); - -/* There is a TYPE_QUAL value for each type qualifier. They can be - combined by bitwise-or to form the complete set of qualifiers for a - type. */ - -#define TYPE_UNQUALIFIED 0x0 -#define TYPE_QUAL_CONST 0x1 -#define TYPE_QUAL_VOLATILE 0x2 -#define TYPE_QUAL_RESTRICT 0x4 - -static int code_for_qualifier (int); - -static const char* qualifier_string (int); - -static const char* demangle_qualifier (int); - -static int demangle_expression (struct work_stuff *, const char **, string *, - type_kind_t); - -static int -demangle_integral_value (struct work_stuff *, const char **, string *); - -static int -demangle_real_value (struct work_stuff *, const char **, string *); - -static void -demangle_arm_hp_template (struct work_stuff *, const char **, int, string *); - -static void -recursively_demangle (struct work_stuff *, const char **, string *, int); - -/* Translate count to integer, consuming tokens in the process. - Conversion terminates on the first non-digit character. - - Trying to consume something that isn't a count results in no - consumption of input and a return of -1. - - Overflow consumes the rest of the digits, and returns -1. */ - -static int -consume_count (const char **type) -{ - int count = 0; - - if (! ISDIGIT ((unsigned char)**type)) - return -1; - - while (ISDIGIT ((unsigned char)**type)) - { - const int digit = **type - '0'; - /* Check for overflow. */ - if (count > ((INT_MAX - digit) / 10)) - { - while (ISDIGIT ((unsigned char) **type)) - (*type)++; - return -1; - } - - count *= 10; - count += digit; - (*type)++; - } - - if (count < 0) - count = -1; - - return (count); -} - - -/* Like consume_count, but for counts that are preceded and followed - by '_' if they are greater than 10. Also, -1 is returned for - failure, since 0 can be a valid value. */ - -static int -consume_count_with_underscores (const char **mangled) -{ - int idx; - - if (**mangled == '_') - { - (*mangled)++; - if (!ISDIGIT ((unsigned char)**mangled)) - return -1; - - idx = consume_count (mangled); - if (**mangled != '_') - /* The trailing underscore was missing. */ - return -1; - - (*mangled)++; - } - else - { - if (**mangled < '0' || **mangled > '9') - return -1; - - idx = **mangled - '0'; - (*mangled)++; - } - - return idx; -} - -/* C is the code for a type-qualifier. Return the TYPE_QUAL - corresponding to this qualifier. */ - -static int -code_for_qualifier (int c) -{ - switch (c) - { - case 'C': - return TYPE_QUAL_CONST; - - case 'V': - return TYPE_QUAL_VOLATILE; - - case 'u': - return TYPE_QUAL_RESTRICT; - - default: - break; - } - - /* C was an invalid qualifier. */ - abort (); -} - -/* Return the string corresponding to the qualifiers given by - TYPE_QUALS. */ - -static const char* -qualifier_string (int type_quals) -{ - switch (type_quals) - { - case TYPE_UNQUALIFIED: - return ""; - - case TYPE_QUAL_CONST: - return "const"; - - case TYPE_QUAL_VOLATILE: - return "volatile"; - - case TYPE_QUAL_RESTRICT: - return "__restrict"; - - case TYPE_QUAL_CONST | TYPE_QUAL_VOLATILE: - return "const volatile"; - - case TYPE_QUAL_CONST | TYPE_QUAL_RESTRICT: - return "const __restrict"; - - case TYPE_QUAL_VOLATILE | TYPE_QUAL_RESTRICT: - return "volatile __restrict"; - - case TYPE_QUAL_CONST | TYPE_QUAL_VOLATILE | TYPE_QUAL_RESTRICT: - return "const volatile __restrict"; - - default: - break; - } - - /* TYPE_QUALS was an invalid qualifier set. */ - abort (); -} - -/* C is the code for a type-qualifier. Return the string - corresponding to this qualifier. This function should only be - called with a valid qualifier code. */ - -static const char* -demangle_qualifier (int c) -{ - return qualifier_string (code_for_qualifier (c)); -} - -int -cplus_demangle_opname (const char *opname, char *result, int options) -{ - int len, len1, ret; - string type; - struct work_stuff work[1]; - const char *tem; - - len = strlen(opname); - result[0] = '\0'; - ret = 0; - memset ((char *) work, 0, sizeof (work)); - work->options = options; - - if (opname[0] == '_' && opname[1] == '_' - && opname[2] == 'o' && opname[3] == 'p') - { - /* ANSI. */ - /* type conversion operator. */ - tem = opname + 4; - if (do_type (work, &tem, &type)) - { - strcat (result, "operator "); - strncat (result, type.b, type.p - type.b); - string_delete (&type); - ret = 1; - } - } - else if (opname[0] == '_' && opname[1] == '_' - && ISLOWER((unsigned char)opname[2]) - && ISLOWER((unsigned char)opname[3])) - { - if (opname[4] == '\0') - { - /* Operator. */ - size_t i; - for (i = 0; i < ARRAY_SIZE (optable); i++) - { - if (strlen (optable[i].in) == 2 - && memcmp (optable[i].in, opname + 2, 2) == 0) - { - strcat (result, "operator"); - strcat (result, optable[i].out); - ret = 1; - break; - } - } - } - else - { - if (opname[2] == 'a' && opname[5] == '\0') - { - /* Assignment. */ - size_t i; - for (i = 0; i < ARRAY_SIZE (optable); i++) - { - if (strlen (optable[i].in) == 3 - && memcmp (optable[i].in, opname + 2, 3) == 0) - { - strcat (result, "operator"); - strcat (result, optable[i].out); - ret = 1; - break; - } - } - } - } - } - else if (len >= 3 - && opname[0] == 'o' - && opname[1] == 'p' - && strchr (cplus_markers, opname[2]) != NULL) - { - /* see if it's an assignment expression */ - if (len >= 10 /* op$assign_ */ - && memcmp (opname + 3, "assign_", 7) == 0) - { - size_t i; - for (i = 0; i < ARRAY_SIZE (optable); i++) - { - len1 = len - 10; - if ((int) strlen (optable[i].in) == len1 - && memcmp (optable[i].in, opname + 10, len1) == 0) - { - strcat (result, "operator"); - strcat (result, optable[i].out); - strcat (result, "="); - ret = 1; - break; - } - } - } - else - { - size_t i; - for (i = 0; i < ARRAY_SIZE (optable); i++) - { - len1 = len - 3; - if ((int) strlen (optable[i].in) == len1 - && memcmp (optable[i].in, opname + 3, len1) == 0) - { - strcat (result, "operator"); - strcat (result, optable[i].out); - ret = 1; - break; - } - } - } - } - else if (len >= 5 && memcmp (opname, "type", 4) == 0 - && strchr (cplus_markers, opname[4]) != NULL) - { - /* type conversion operator */ - tem = opname + 5; - if (do_type (work, &tem, &type)) - { - strcat (result, "operator "); - strncat (result, type.b, type.p - type.b); - string_delete (&type); - ret = 1; - } - } - squangle_mop_up (work); - return ret; - -} - -/* Takes operator name as e.g. "++" and returns mangled - operator name (e.g. "postincrement_expr"), or NULL if not found. - - If OPTIONS & DMGL_ANSI == 1, return the ANSI name; - if OPTIONS & DMGL_ANSI == 0, return the old GNU name. */ - -const char * -cplus_mangle_opname (const char *opname, int options) -{ - size_t i; - int len; - - len = strlen (opname); - for (i = 0; i < ARRAY_SIZE (optable); i++) - { - if ((int) strlen (optable[i].out) == len - && (options & DMGL_ANSI) == (optable[i].flags & DMGL_ANSI) - && memcmp (optable[i].out, opname, len) == 0) - return optable[i].in; - } - return (0); -} - /* Add a routine to set the demangling style to be sure it is valid and allow for any demangler initialization that maybe necessary. */ @@ -841,22 +144,6 @@ It is the caller's responsibility to free the string which is returned. - The OPTIONS arg may contain one or more of the following bits: - - DMGL_ANSI ANSI qualifiers such as `const' and `void' are - included. - DMGL_PARAMS Function parameters are included. - - For example, - - cplus_demangle ("foo__1Ai", DMGL_PARAMS) => "A::foo(int)" - cplus_demangle ("foo__1Ai", DMGL_PARAMS | DMGL_ANSI) => "A::foo(int)" - cplus_demangle ("foo__1Ai", 0) => "A::foo" - - cplus_demangle ("foo__1Afe", DMGL_PARAMS) => "A::foo(float,...)" - cplus_demangle ("foo__1Afe", DMGL_PARAMS | DMGL_ANSI)=> "A::foo(float,...)" - cplus_demangle ("foo__1Afe", 0) => "A::foo" - Note that any leading underscores, or other such characters prepended by the compilation system, are presumed to have already been stripped from MANGLED. */ @@ -865,20 +152,17 @@ cplus_demangle (const char *mangled, int options) { char *ret; - struct work_stuff work[1]; if (current_demangling_style == no_demangling) return xstrdup (mangled); - memset ((char *) work, 0, sizeof (work)); - work->options = options; - if ((work->options & DMGL_STYLE_MASK) == 0) - work->options |= (int) current_demangling_style & DMGL_STYLE_MASK; + if ((options & DMGL_STYLE_MASK) == 0) + options |= (int) current_demangling_style & DMGL_STYLE_MASK; /* The V3 ABI demangling is implemented elsewhere. */ if (GNU_V3_DEMANGLING || RUST_DEMANGLING || AUTO_DEMANGLING) { - ret = cplus_demangle_v3 (mangled, work->options); + ret = cplus_demangle_v3 (mangled, options); if (GNU_V3_DEMANGLING) return ret; @@ -916,8 +200,6 @@ return ret; } - ret = internal_cplus_demangle (work, mangled); - squangle_mop_up (work); return (ret); } @@ -1206,3861 +488,3 @@ return demangled; } - -/* This function performs most of what cplus_demangle use to do, but - to be able to demangle a name with a B, K or n code, we need to - have a longer term memory of what types have been seen. The original - now initializes and cleans up the squangle code info, while internal - calls go directly to this routine to avoid resetting that info. */ - -static char * -internal_cplus_demangle (struct work_stuff *work, const char *mangled) -{ - - string decl; - int success = 0; - char *demangled = NULL; - int s1, s2, s3, s4; - s1 = work->constructor; - s2 = work->destructor; - s3 = work->static_type; - s4 = work->type_quals; - work->constructor = work->destructor = 0; - work->type_quals = TYPE_UNQUALIFIED; - work->dllimported = 0; - - if ((mangled != NULL) && (*mangled != '\0')) - { - string_init (&decl); - - /* First check to see if gnu style demangling is active and if the - string to be demangled contains a CPLUS_MARKER. If so, attempt to - recognize one of the gnu special forms rather than looking for a - standard prefix. In particular, don't worry about whether there - is a "__" string in the mangled string. Consider "_$_5__foo" for - example. */ - - if ((AUTO_DEMANGLING || GNU_DEMANGLING)) - { - success = gnu_special (work, &mangled, &decl); - if (!success) - { - delete_work_stuff (work); - string_delete (&decl); - } - } - if (!success) - { - success = demangle_prefix (work, &mangled, &decl); - } - if (success && (*mangled != '\0')) - { - success = demangle_signature (work, &mangled, &decl); - } - if (work->constructor == 2) - { - string_prepend (&decl, "global constructors keyed to "); - work->constructor = 0; - } - else if (work->destructor == 2) - { - string_prepend (&decl, "global destructors keyed to "); - work->destructor = 0; - } - else if (work->dllimported == 1) - { - string_prepend (&decl, "import stub for "); - work->dllimported = 0; - } - demangled = mop_up (work, &decl, success); - } - work->constructor = s1; - work->destructor = s2; - work->static_type = s3; - work->type_quals = s4; - return demangled; -} - - -/* Clear out and squangling related storage */ -static void -squangle_mop_up (struct work_stuff *work) -{ - /* clean up the B and K type mangling types. */ - forget_B_and_K_types (work); - if (work -> btypevec != NULL) - { - free ((char *) work -> btypevec); - work->btypevec = NULL; - work->bsize = 0; - work->numb = 0; - } - if (work -> ktypevec != NULL) - { - free ((char *) work -> ktypevec); - work->ktypevec = NULL; - work->ksize = 0; - work->numk = 0; - } -} - - -/* Copy the work state and storage. */ - -static void -work_stuff_copy_to_from (struct work_stuff *to, struct work_stuff *from) -{ - int i; - - delete_work_stuff (to); - - /* Shallow-copy scalars. */ - memcpy (to, from, sizeof (*to)); - - /* Deep-copy dynamic storage. */ - if (from->typevec_size) - to->typevec = XNEWVEC (char *, from->typevec_size); - - for (i = 0; i < from->ntypes; i++) - { - int len = strlen (from->typevec[i]) + 1; - - to->typevec[i] = XNEWVEC (char, len); - memcpy (to->typevec[i], from->typevec[i], len); - } - - if (from->ksize) - to->ktypevec = XNEWVEC (char *, from->ksize); - - for (i = 0; i < from->numk; i++) - { - int len; - - if (from->ktypevec[i] == NULL) - { - to->ktypevec[i] = NULL; - continue; - } - - len = strlen (from->ktypevec[i]) + 1; - to->ktypevec[i] = XNEWVEC (char, len); - memcpy (to->ktypevec[i], from->ktypevec[i], len); - } - - if (from->bsize) - to->btypevec = XNEWVEC (char *, from->bsize); - - for (i = 0; i < from->numb; i++) - { - int len; - - if (from->btypevec[i] == NULL) - { - to->btypevec[i] = NULL; - continue; - } - - len = strlen (from->btypevec[i]) + 1; - to->btypevec[i] = XNEWVEC (char , len); - memcpy (to->btypevec[i], from->btypevec[i], len); - } - - if (from->proctypevec) - to->proctypevec = - XDUPVEC (int, from->proctypevec, from->proctypevec_size); - - if (from->ntmpl_args) - to->tmpl_argvec = XNEWVEC (char *, from->ntmpl_args); - - for (i = 0; i < from->ntmpl_args; i++) - { - int len = strlen (from->tmpl_argvec[i]) + 1; - - to->tmpl_argvec[i] = XNEWVEC (char, len); - memcpy (to->tmpl_argvec[i], from->tmpl_argvec[i], len); - } - - if (from->previous_argument) - { - to->previous_argument = XNEW (string); - string_init (to->previous_argument); - string_appends (to->previous_argument, from->previous_argument); - } -} - - -/* Delete dynamic stuff in work_stuff that is not to be re-used. */ - -static void -delete_non_B_K_work_stuff (struct work_stuff *work) -{ - /* Discard the remembered types, if any. */ - - forget_types (work); - if (work->typevec != NULL) - { - free ((char *) work->typevec); - work->typevec = NULL; - work->typevec_size = 0; - } - if (work->proctypevec != NULL) - { - free (work->proctypevec); - work->proctypevec = NULL; - work->proctypevec_size = 0; - } - if (work->tmpl_argvec) - { - int i; - - for (i = 0; i < work->ntmpl_args; i++) - free ((char*) work->tmpl_argvec[i]); - - free ((char*) work->tmpl_argvec); - work->tmpl_argvec = NULL; - work->ntmpl_args = 0; - } - if (work->previous_argument) - { - string_delete (work->previous_argument); - free ((char*) work->previous_argument); - work->previous_argument = NULL; - } -} - - -/* Delete all dynamic storage in work_stuff. */ -static void -delete_work_stuff (struct work_stuff *work) -{ - delete_non_B_K_work_stuff (work); - squangle_mop_up (work); -} - - -/* Clear out any mangled storage */ - -static char * -mop_up (struct work_stuff *work, string *declp, int success) -{ - char *demangled = NULL; - - delete_non_B_K_work_stuff (work); - - /* If demangling was successful, ensure that the demangled string is null - terminated and return it. Otherwise, free the demangling decl. */ - - if (!success) - { - string_delete (declp); - } - else - { - string_appendn (declp, "", 1); - demangled = declp->b; - } - return (demangled); -} - -/* - -LOCAL FUNCTION - - demangle_signature -- demangle the signature part of a mangled name - -SYNOPSIS - - static int - demangle_signature (struct work_stuff *work, const char **mangled, - string *declp); - -DESCRIPTION - - Consume and demangle the signature portion of the mangled name. - - DECLP is the string where demangled output is being built. At - entry it contains the demangled root name from the mangled name - prefix. I.E. either a demangled operator name or the root function - name. In some special cases, it may contain nothing. - - *MANGLED points to the current unconsumed location in the mangled - name. As tokens are consumed and demangling is performed, the - pointer is updated to continuously point at the next token to - be consumed. - - Demangling GNU style mangled names is nasty because there is no - explicit token that marks the start of the outermost function - argument list. */ - -static int -demangle_signature (struct work_stuff *work, - const char **mangled, string *declp) -{ - int success = 1; - int func_done = 0; - int expect_func = 0; - int expect_return_type = 0; - const char *oldmangled = NULL; - string trawname; - string tname; - - while (success && (**mangled != '\0')) - { - switch (**mangled) - { - case 'Q': - oldmangled = *mangled; - success = demangle_qualified (work, mangled, declp, 1, 0); - if (success) - remember_type (work, oldmangled, *mangled - oldmangled); - if (AUTO_DEMANGLING || GNU_DEMANGLING) - expect_func = 1; - oldmangled = NULL; - break; - - case 'K': - oldmangled = *mangled; - success = demangle_qualified (work, mangled, declp, 1, 0); - if (AUTO_DEMANGLING || GNU_DEMANGLING) - { - expect_func = 1; - } - oldmangled = NULL; - break; - - case 'S': - /* Static member function */ - if (oldmangled == NULL) - { - oldmangled = *mangled; - } - (*mangled)++; - work -> static_type = 1; - break; - - case 'C': - case 'V': - case 'u': - work->type_quals |= code_for_qualifier (**mangled); - - /* a qualified member function */ - if (oldmangled == NULL) - oldmangled = *mangled; - (*mangled)++; - break; - - case 'L': - /* Local class name follows after "Lnnn_" */ - if (HP_DEMANGLING) - { - while (**mangled && (**mangled != '_')) - (*mangled)++; - if (!**mangled) - success = 0; - else - (*mangled)++; - } - else - success = 0; - break; - - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - if (oldmangled == NULL) - { - oldmangled = *mangled; - } - work->temp_start = -1; /* uppermost call to demangle_class */ - success = demangle_class (work, mangled, declp); - if (success) - { - remember_type (work, oldmangled, *mangled - oldmangled); - } - if (AUTO_DEMANGLING || GNU_DEMANGLING || EDG_DEMANGLING) - { - /* EDG and others will have the "F", so we let the loop cycle - if we are looking at one. */ - if (**mangled != 'F') - expect_func = 1; - } - oldmangled = NULL; - break; - - case 'B': - { - string s; - success = do_type (work, mangled, &s); - if (success) - { - string_append (&s, SCOPE_STRING (work)); - string_prepends (declp, &s); - string_delete (&s); - } - oldmangled = NULL; - expect_func = 1; - } - break; - - case 'F': - /* Function */ - /* ARM/HP style demangling includes a specific 'F' character after - the class name. For GNU style, it is just implied. So we can - safely just consume any 'F' at this point and be compatible - with either style. */ - - oldmangled = NULL; - func_done = 1; - (*mangled)++; - - /* For lucid/ARM/HP style we have to forget any types we might - have remembered up to this point, since they were not argument - types. GNU style considers all types seen as available for - back references. See comment in demangle_args() */ - - if (LUCID_DEMANGLING || ARM_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING) - { - forget_types (work); - } - success = demangle_args (work, mangled, declp); - /* After picking off the function args, we expect to either - find the function return type (preceded by an '_') or the - end of the string. */ - if (success && (AUTO_DEMANGLING || EDG_DEMANGLING) && **mangled == '_') - { - ++(*mangled); - /* At this level, we do not care about the return type. */ - success = do_type (work, mangled, &tname); - string_delete (&tname); - } - - break; - - case 't': - /* G++ Template */ - string_init(&trawname); - string_init(&tname); - if (oldmangled == NULL) - { - oldmangled = *mangled; - } - success = demangle_template (work, mangled, &tname, - &trawname, 1, 1); - if (success) - { - remember_type (work, oldmangled, *mangled - oldmangled); - } - string_append (&tname, SCOPE_STRING (work)); - - string_prepends(declp, &tname); - if (work -> destructor & 1) - { - string_prepend (&trawname, "~"); - string_appends (declp, &trawname); - work->destructor -= 1; - } - if ((work->constructor & 1) || (work->destructor & 1)) - { - string_appends (declp, &trawname); - work->constructor -= 1; - } - string_delete(&trawname); - string_delete(&tname); - oldmangled = NULL; - expect_func = 1; - break; - - case '_': - if ((AUTO_DEMANGLING || GNU_DEMANGLING) && expect_return_type) - { - /* Read the return type. */ - string return_type; - - (*mangled)++; - success = do_type (work, mangled, &return_type); - APPEND_BLANK (&return_type); - - string_prepends (declp, &return_type); - string_delete (&return_type); - break; - } - else - /* At the outermost level, we cannot have a return type specified, - so if we run into another '_' at this point we are dealing with - a mangled name that is either bogus, or has been mangled by - some algorithm we don't know how to deal with. So just - reject the entire demangling. */ - /* However, "_nnn" is an expected suffix for alternate entry point - numbered nnn for a function, with HP aCC, so skip over that - without reporting failure. pai/1997-09-04 */ - if (HP_DEMANGLING) - { - (*mangled)++; - while (**mangled && ISDIGIT ((unsigned char)**mangled)) - (*mangled)++; - } - else - success = 0; - break; - - case 'H': - if (AUTO_DEMANGLING || GNU_DEMANGLING) - { - /* A G++ template function. Read the template arguments. */ - success = demangle_template (work, mangled, declp, 0, 0, - 0); - if (!(work->constructor & 1)) - expect_return_type = 1; - if (!**mangled) - success = 0; - else - (*mangled)++; - break; - } - /* fall through */ - - default: - if (AUTO_DEMANGLING || GNU_DEMANGLING) - { - /* Assume we have stumbled onto the first outermost function - argument token, and start processing args. */ - func_done = 1; - success = demangle_args (work, mangled, declp); - } - else - { - /* Non-GNU demanglers use a specific token to mark the start - of the outermost function argument tokens. Typically 'F', - for ARM/HP-demangling, for example. So if we find something - we are not prepared for, it must be an error. */ - success = 0; - } - break; - } - /* - if (AUTO_DEMANGLING || GNU_DEMANGLING) - */ - { - if (success && expect_func) - { - func_done = 1; - if (LUCID_DEMANGLING || ARM_DEMANGLING || EDG_DEMANGLING) - { - forget_types (work); - } - success = demangle_args (work, mangled, declp); - /* Since template include the mangling of their return types, - we must set expect_func to 0 so that we don't try do - demangle more arguments the next time we get here. */ - expect_func = 0; - } - } - } - if (success && !func_done) - { - if (AUTO_DEMANGLING || GNU_DEMANGLING) - { - /* With GNU style demangling, bar__3foo is 'foo::bar(void)', and - bar__3fooi is 'foo::bar(int)'. We get here when we find the - first case, and need to ensure that the '(void)' gets added to - the current declp. Note that with ARM/HP, the first case - represents the name of a static data member 'foo::bar', - which is in the current declp, so we leave it alone. */ - success = demangle_args (work, mangled, declp); - } - } - if (success && PRINT_ARG_TYPES) - { - if (work->static_type) - string_append (declp, " static"); - if (work->type_quals != TYPE_UNQUALIFIED) - { - APPEND_BLANK (declp); - string_append (declp, qualifier_string (work->type_quals)); - } - } - - return (success); -} - -#if 0 - -static int -demangle_method_args (struct work_stuff *work, const char **mangled, - string *declp) -{ - int success = 0; - - if (work -> static_type) - { - string_append (declp, *mangled + 1); - *mangled += strlen (*mangled); - success = 1; - } - else - { - success = demangle_args (work, mangled, declp); - } - return (success); -} - -#endif - -static int -demangle_template_template_parm (struct work_stuff *work, - const char **mangled, string *tname) -{ - int i; - int r; - int need_comma = 0; - int success = 1; - string temp; - - string_append (tname, "template <"); - /* get size of template parameter list */ - if (get_count (mangled, &r)) - { - for (i = 0; i < r; i++) - { - if (need_comma) - { - string_append (tname, ", "); - } - - /* Z for type parameters */ - if (**mangled == 'Z') - { - (*mangled)++; - string_append (tname, "class"); - } - /* z for template parameters */ - else if (**mangled == 'z') - { - (*mangled)++; - success = - demangle_template_template_parm (work, mangled, tname); - if (!success) - { - break; - } - } - else - { - /* temp is initialized in do_type */ - success = do_type (work, mangled, &temp); - if (success) - { - string_appends (tname, &temp); - } - string_delete(&temp); - if (!success) - { - break; - } - } - need_comma = 1; - } - - } - if (tname->p[-1] == '>') - string_append (tname, " "); - string_append (tname, "> class"); - return (success); -} - -static int -demangle_expression (struct work_stuff *work, const char **mangled, - string *s, type_kind_t tk) -{ - int need_operator = 0; - int success; - - success = 1; - string_appendn (s, "(", 1); - (*mangled)++; - while (success && **mangled != 'W' && **mangled != '\0') - { - if (need_operator) - { - size_t i; - size_t len; - - success = 0; - - len = strlen (*mangled); - - for (i = 0; i < ARRAY_SIZE (optable); ++i) - { - size_t l = strlen (optable[i].in); - - if (l <= len - && memcmp (optable[i].in, *mangled, l) == 0) - { - string_appendn (s, " ", 1); - string_append (s, optable[i].out); - string_appendn (s, " ", 1); - success = 1; - (*mangled) += l; - break; - } - } - - if (!success) - break; - } - else - need_operator = 1; - - success = demangle_template_value_parm (work, mangled, s, tk); - } - - if (**mangled != 'W') - success = 0; - else - { - string_appendn (s, ")", 1); - (*mangled)++; - } - - return success; -} - -static int -demangle_integral_value (struct work_stuff *work, - const char **mangled, string *s) -{ - int success; - - if (**mangled == 'E') - success = demangle_expression (work, mangled, s, tk_integral); - else if (**mangled == 'Q' || **mangled == 'K') - success = demangle_qualified (work, mangled, s, 0, 1); - else - { - int value; - - /* By default, we let the number decide whether we shall consume an - underscore. */ - int multidigit_without_leading_underscore = 0; - int leave_following_underscore = 0; - - success = 0; - - if (**mangled == '_') - { - if (mangled[0][1] == 'm') - { - /* Since consume_count_with_underscores does not handle the - `m'-prefix we must do it here, using consume_count and - adjusting underscores: we have to consume the underscore - matching the prepended one. */ - multidigit_without_leading_underscore = 1; - string_appendn (s, "-", 1); - (*mangled) += 2; - } - else - { - /* Do not consume a following underscore; - consume_count_with_underscores will consume what - should be consumed. */ - leave_following_underscore = 1; - } - } - else - { - /* Negative numbers are indicated with a leading `m'. */ - if (**mangled == 'm') - { - string_appendn (s, "-", 1); - (*mangled)++; - } - /* Since consume_count_with_underscores does not handle - multi-digit numbers that do not start with an underscore, - and this number can be an integer template parameter, - we have to call consume_count. */ - multidigit_without_leading_underscore = 1; - /* These multi-digit numbers never end on an underscore, - so if there is one then don't eat it. */ - leave_following_underscore = 1; - } - - /* We must call consume_count if we expect to remove a trailing - underscore, since consume_count_with_underscores expects - the leading underscore (that we consumed) if it is to handle - multi-digit numbers. */ - if (multidigit_without_leading_underscore) - value = consume_count (mangled); - else - value = consume_count_with_underscores (mangled); - - if (value != -1) - { - char buf[INTBUF_SIZE]; - sprintf (buf, "%d", value); - string_append (s, buf); - - /* Numbers not otherwise delimited, might have an underscore - appended as a delimeter, which we should skip. - - ??? This used to always remove a following underscore, which - is wrong. If other (arbitrary) cases are followed by an - underscore, we need to do something more radical. */ - - if ((value > 9 || multidigit_without_leading_underscore) - && ! leave_following_underscore - && **mangled == '_') - (*mangled)++; - - /* All is well. */ - success = 1; - } - } - - return success; -} - -/* Demangle the real value in MANGLED. */ - -static int -demangle_real_value (struct work_stuff *work, - const char **mangled, string *s) -{ - if (**mangled == 'E') - return demangle_expression (work, mangled, s, tk_real); - - if (**mangled == 'm') - { - string_appendn (s, "-", 1); - (*mangled)++; - } - while (ISDIGIT ((unsigned char)**mangled)) - { - string_appendn (s, *mangled, 1); - (*mangled)++; - } - if (**mangled == '.') /* fraction */ - { - string_appendn (s, ".", 1); - (*mangled)++; - while (ISDIGIT ((unsigned char)**mangled)) - { - string_appendn (s, *mangled, 1); - (*mangled)++; - } - } - if (**mangled == 'e') /* exponent */ - { - string_appendn (s, "e", 1); - (*mangled)++; - while (ISDIGIT ((unsigned char)**mangled)) - { - string_appendn (s, *mangled, 1); - (*mangled)++; - } - } - - return 1; -} - -static int -demangle_template_value_parm (struct work_stuff *work, const char **mangled, - string *s, type_kind_t tk) -{ - int success = 1; - - if (**mangled == 'Y') - { - /* The next argument is a template parameter. */ - int idx; - - (*mangled)++; - idx = consume_count_with_underscores (mangled); - if (idx == -1 - || (work->tmpl_argvec && idx >= work->ntmpl_args) - || consume_count_with_underscores (mangled) == -1) - return -1; - if (work->tmpl_argvec) - string_append (s, work->tmpl_argvec[idx]); - else - string_append_template_idx (s, idx); - } - else if (tk == tk_integral) - success = demangle_integral_value (work, mangled, s); - else if (tk == tk_char) - { - char tmp[2]; - int val; - if (**mangled == 'm') - { - string_appendn (s, "-", 1); - (*mangled)++; - } - string_appendn (s, "'", 1); - val = consume_count(mangled); - if (val <= 0) - success = 0; - else - { - tmp[0] = (char)val; - tmp[1] = '\0'; - string_appendn (s, &tmp[0], 1); - string_appendn (s, "'", 1); - } - } - else if (tk == tk_bool) - { - int val = consume_count (mangled); - if (val == 0) - string_appendn (s, "false", 5); - else if (val == 1) - string_appendn (s, "true", 4); - else - success = 0; - } - else if (tk == tk_real) - success = demangle_real_value (work, mangled, s); - else if (tk == tk_pointer || tk == tk_reference - || tk == tk_rvalue_reference) - { - if (**mangled == 'Q') - success = demangle_qualified (work, mangled, s, - /*isfuncname=*/0, - /*append=*/1); - else - { - int symbol_len = consume_count (mangled); - if (symbol_len == -1 - || symbol_len > (long) strlen (*mangled)) - return -1; - if (symbol_len == 0) - string_appendn (s, "0", 1); - else - { - char *p = XNEWVEC (char, symbol_len + 1), *q; - strncpy (p, *mangled, symbol_len); - p [symbol_len] = '\0'; - /* We use cplus_demangle here, rather than - internal_cplus_demangle, because the name of the entity - mangled here does not make use of any of the squangling - or type-code information we have built up thus far; it is - mangled independently. */ - q = cplus_demangle (p, work->options); - if (tk == tk_pointer) - string_appendn (s, "&", 1); - /* FIXME: Pointer-to-member constants should get a - qualifying class name here. */ - if (q) - { - string_append (s, q); - free (q); - } - else - string_append (s, p); - free (p); - } - *mangled += symbol_len; - } - } - - return success; -} - -/* Demangle the template name in MANGLED. The full name of the - template (e.g., S) is placed in TNAME. The name without the - template parameters (e.g. S) is placed in TRAWNAME if TRAWNAME is - non-NULL. If IS_TYPE is nonzero, this template is a type template, - not a function template. If both IS_TYPE and REMEMBER are nonzero, - the template is remembered in the list of back-referenceable - types. */ - -static int -demangle_template (struct work_stuff *work, const char **mangled, - string *tname, string *trawname, - int is_type, int remember) -{ - int i; - int r; - int need_comma = 0; - int success = 0; - int is_java_array = 0; - string temp; - - (*mangled)++; - if (is_type) - { - /* get template name */ - if (**mangled == 'z') - { - int idx; - (*mangled)++; - if (**mangled == '\0') - return (0); - (*mangled)++; - - idx = consume_count_with_underscores (mangled); - if (idx == -1 - || (work->tmpl_argvec && idx >= work->ntmpl_args) - || consume_count_with_underscores (mangled) == -1) - return (0); - - if (work->tmpl_argvec) - { - string_append (tname, work->tmpl_argvec[idx]); - if (trawname) - string_append (trawname, work->tmpl_argvec[idx]); - } - else - { - string_append_template_idx (tname, idx); - if (trawname) - string_append_template_idx (trawname, idx); - } - } - else - { - if ((r = consume_count (mangled)) <= 0 - || (int) strlen (*mangled) < r) - { - return (0); - } - is_java_array = (work -> options & DMGL_JAVA) - && strncmp (*mangled, "JArray1Z", 8) == 0; - if (! is_java_array) - { - string_appendn (tname, *mangled, r); - } - if (trawname) - string_appendn (trawname, *mangled, r); - *mangled += r; - } - } - if (!is_java_array) - string_append (tname, "<"); - /* get size of template parameter list */ - if (!get_count (mangled, &r)) - { - return (0); - } - if (!is_type) - { - /* Create an array for saving the template argument values. */ - work->tmpl_argvec = XNEWVEC (char *, r); - work->ntmpl_args = r; - for (i = 0; i < r; i++) - work->tmpl_argvec[i] = 0; - } - for (i = 0; i < r; i++) - { - if (need_comma) - { - string_append (tname, ", "); - } - /* Z for type parameters */ - if (**mangled == 'Z') - { - (*mangled)++; - /* temp is initialized in do_type */ - success = do_type (work, mangled, &temp); - if (success) - { - string_appends (tname, &temp); - - if (!is_type) - { - /* Save the template argument. */ - int len = temp.p - temp.b; - work->tmpl_argvec[i] = XNEWVEC (char, len + 1); - memcpy (work->tmpl_argvec[i], temp.b, len); - work->tmpl_argvec[i][len] = '\0'; - } - } - string_delete(&temp); - if (!success) - { - break; - } - } - /* z for template parameters */ - else if (**mangled == 'z') - { - int r2; - (*mangled)++; - success = demangle_template_template_parm (work, mangled, tname); - - if (success - && (r2 = consume_count (mangled)) > 0 - && (int) strlen (*mangled) >= r2) - { - string_append (tname, " "); - string_appendn (tname, *mangled, r2); - if (!is_type) - { - /* Save the template argument. */ - int len = r2; - work->tmpl_argvec[i] = XNEWVEC (char, len + 1); - memcpy (work->tmpl_argvec[i], *mangled, len); - work->tmpl_argvec[i][len] = '\0'; - } - *mangled += r2; - } - if (!success) - { - break; - } - } - else - { - string param; - string* s; - - /* otherwise, value parameter */ - - /* temp is initialized in do_type */ - success = do_type (work, mangled, &temp); - string_delete(&temp); - if (!success) - break; - - if (!is_type) - { - s = ¶m; - string_init (s); - } - else - s = tname; - - success = demangle_template_value_parm (work, mangled, s, - (type_kind_t) success); - - if (!success) - { - if (!is_type) - string_delete (s); - success = 0; - break; - } - - if (!is_type) - { - int len = s->p - s->b; - work->tmpl_argvec[i] = XNEWVEC (char, len + 1); - memcpy (work->tmpl_argvec[i], s->b, len); - work->tmpl_argvec[i][len] = '\0'; - - string_appends (tname, s); - string_delete (s); - } - } - need_comma = 1; - } - if (is_java_array) - { - string_append (tname, "[]"); - } - else - { - if (tname->p[-1] == '>') - string_append (tname, " "); - string_append (tname, ">"); - } - - if (is_type && remember) - { - const int bindex = register_Btype (work); - remember_Btype (work, tname->b, LEN_STRING (tname), bindex); - } - - /* - if (work -> static_type) - { - string_append (declp, *mangled + 1); - *mangled += strlen (*mangled); - success = 1; - } - else - { - success = demangle_args (work, mangled, declp); - } - } - */ - return (success); -} - -static int -arm_pt (struct work_stuff *work, const char *mangled, - int n, const char **anchor, const char **args) -{ - /* Check if ARM template with "__pt__" in it ("parameterized type") */ - /* Allow HP also here, because HP's cfront compiler follows ARM to some extent */ - if ((ARM_DEMANGLING || HP_DEMANGLING) && (*anchor = strstr (mangled, "__pt__"))) - { - int len; - *args = *anchor + 6; - len = consume_count (args); - if (len == -1) - return 0; - if (*args + len == mangled + n && **args == '_') - { - ++*args; - return 1; - } - } - if (AUTO_DEMANGLING || EDG_DEMANGLING) - { - if ((*anchor = strstr (mangled, "__tm__")) - || (*anchor = strstr (mangled, "__ps__")) - || (*anchor = strstr (mangled, "__pt__"))) - { - int len; - *args = *anchor + 6; - len = consume_count (args); - if (len == -1) - return 0; - if (*args + len == mangled + n && **args == '_') - { - ++*args; - return 1; - } - } - else if ((*anchor = strstr (mangled, "__S"))) - { - int len; - *args = *anchor + 3; - len = consume_count (args); - if (len == -1) - return 0; - if (*args + len == mangled + n && **args == '_') - { - ++*args; - return 1; - } - } - } - - return 0; -} - -static void -demangle_arm_hp_template (struct work_stuff *work, const char **mangled, - int n, string *declp) -{ - const char *p; - const char *args; - const char *e = *mangled + n; - string arg; - - /* Check for HP aCC template spec: classXt1t2 where t1, t2 are - template args */ - if (HP_DEMANGLING && ((*mangled)[n] == 'X')) - { - char *start_spec_args = NULL; - int hold_options; - - /* First check for and omit template specialization pseudo-arguments, - such as in "Spec<#1,#1.*>" */ - start_spec_args = strchr (*mangled, '<'); - if (start_spec_args && (start_spec_args - *mangled < n)) - string_appendn (declp, *mangled, start_spec_args - *mangled); - else - string_appendn (declp, *mangled, n); - (*mangled) += n + 1; - string_init (&arg); - if (work->temp_start == -1) /* non-recursive call */ - work->temp_start = declp->p - declp->b; - - /* We want to unconditionally demangle parameter types in - template parameters. */ - hold_options = work->options; - work->options |= DMGL_PARAMS; - - string_append (declp, "<"); - while (1) - { - string_delete (&arg); - switch (**mangled) - { - case 'T': - /* 'T' signals a type parameter */ - (*mangled)++; - if (!do_type (work, mangled, &arg)) - goto hpacc_template_args_done; - break; - - case 'U': - case 'S': - /* 'U' or 'S' signals an integral value */ - if (!do_hpacc_template_const_value (work, mangled, &arg)) - goto hpacc_template_args_done; - break; - - case 'A': - /* 'A' signals a named constant expression (literal) */ - if (!do_hpacc_template_literal (work, mangled, &arg)) - goto hpacc_template_args_done; - break; - - default: - /* Today, 1997-09-03, we have only the above types - of template parameters */ - /* FIXME: maybe this should fail and return null */ - goto hpacc_template_args_done; - } - string_appends (declp, &arg); - /* Check if we're at the end of template args. - 0 if at end of static member of template class, - _ if done with template args for a function */ - if ((**mangled == '\000') || (**mangled == '_')) - break; - else - string_append (declp, ","); - } - hpacc_template_args_done: - string_append (declp, ">"); - string_delete (&arg); - if (**mangled == '_') - (*mangled)++; - work->options = hold_options; - return; - } - /* ARM template? (Also handles HP cfront extensions) */ - else if (arm_pt (work, *mangled, n, &p, &args)) - { - int hold_options; - string type_str; - - string_init (&arg); - string_appendn (declp, *mangled, p - *mangled); - if (work->temp_start == -1) /* non-recursive call */ - work->temp_start = declp->p - declp->b; - - /* We want to unconditionally demangle parameter types in - template parameters. */ - hold_options = work->options; - work->options |= DMGL_PARAMS; - - string_append (declp, "<"); - /* should do error checking here */ - while (args < e) { - string_delete (&arg); - - /* Check for type or literal here */ - switch (*args) - { - /* HP cfront extensions to ARM for template args */ - /* spec: Xt1Lv1 where t1 is a type, v1 is a literal value */ - /* FIXME: We handle only numeric literals for HP cfront */ - case 'X': - /* A typed constant value follows */ - args++; - if (!do_type (work, &args, &type_str)) - goto cfront_template_args_done; - string_append (&arg, "("); - string_appends (&arg, &type_str); - string_delete (&type_str); - string_append (&arg, ")"); - if (*args != 'L') - goto cfront_template_args_done; - args++; - /* Now snarf a literal value following 'L' */ - if (!snarf_numeric_literal (&args, &arg)) - goto cfront_template_args_done; - break; - - case 'L': - /* Snarf a literal following 'L' */ - args++; - if (!snarf_numeric_literal (&args, &arg)) - goto cfront_template_args_done; - break; - default: - /* Not handling other HP cfront stuff */ - { - const char* old_args = args; - if (!do_type (work, &args, &arg)) - goto cfront_template_args_done; - - /* Fail if we didn't make any progress: prevent infinite loop. */ - if (args == old_args) - { - work->options = hold_options; - return; - } - } - } - string_appends (declp, &arg); - string_append (declp, ","); - } - cfront_template_args_done: - string_delete (&arg); - if (args >= e) - --declp->p; /* remove extra comma */ - string_append (declp, ">"); - work->options = hold_options; - } - else if (n>10 && strncmp (*mangled, "_GLOBAL_", 8) == 0 - && (*mangled)[9] == 'N' - && (*mangled)[8] == (*mangled)[10] - && strchr (cplus_markers, (*mangled)[8])) - { - /* A member of the anonymous namespace. */ - string_append (declp, "{anonymous}"); - } - else - { - if (work->temp_start == -1) /* non-recursive call only */ - work->temp_start = 0; /* disable in recursive calls */ - string_appendn (declp, *mangled, n); - } - *mangled += n; -} - -/* Extract a class name, possibly a template with arguments, from the - mangled string; qualifiers, local class indicators, etc. have - already been dealt with */ - -static int -demangle_class_name (struct work_stuff *work, const char **mangled, - string *declp) -{ - int n; - int success = 0; - - n = consume_count (mangled); - if (n == -1) - return 0; - if ((int) strlen (*mangled) >= n) - { - demangle_arm_hp_template (work, mangled, n, declp); - success = 1; - } - - return (success); -} - -/* - -LOCAL FUNCTION - - demangle_class -- demangle a mangled class sequence - -SYNOPSIS - - static int - demangle_class (struct work_stuff *work, const char **mangled, - strint *declp) - -DESCRIPTION - - DECLP points to the buffer into which demangling is being done. - - *MANGLED points to the current token to be demangled. On input, - it points to a mangled class (I.E. "3foo", "13verylongclass", etc.) - On exit, it points to the next token after the mangled class on - success, or the first unconsumed token on failure. - - If the CONSTRUCTOR or DESTRUCTOR flags are set in WORK, then - we are demangling a constructor or destructor. In this case - we prepend "class::class" or "class::~class" to DECLP. - - Otherwise, we prepend "class::" to the current DECLP. - - Reset the constructor/destructor flags once they have been - "consumed". This allows demangle_class to be called later during - the same demangling, to do normal class demangling. - - Returns 1 if demangling is successful, 0 otherwise. - -*/ - -static int -demangle_class (struct work_stuff *work, const char **mangled, string *declp) -{ - int success = 0; - int btype; - string class_name; - char *save_class_name_end = 0; - - string_init (&class_name); - btype = register_Btype (work); - if (demangle_class_name (work, mangled, &class_name)) - { - save_class_name_end = class_name.p; - if ((work->constructor & 1) || (work->destructor & 1)) - { - /* adjust so we don't include template args */ - if (work->temp_start && (work->temp_start != -1)) - { - class_name.p = class_name.b + work->temp_start; - } - string_prepends (declp, &class_name); - if (work -> destructor & 1) - { - string_prepend (declp, "~"); - work -> destructor -= 1; - } - else - { - work -> constructor -= 1; - } - } - class_name.p = save_class_name_end; - remember_Ktype (work, class_name.b, LEN_STRING(&class_name)); - remember_Btype (work, class_name.b, LEN_STRING(&class_name), btype); - string_prepend (declp, SCOPE_STRING (work)); - string_prepends (declp, &class_name); - success = 1; - } - string_delete (&class_name); - return (success); -} - - -/* Called when there's a "__" in the mangled name, with `scan' pointing to - the rightmost guess. - - Find the correct "__"-sequence where the function name ends and the - signature starts, which is ambiguous with GNU mangling. - Call demangle_signature here, so we can make sure we found the right - one; *mangled will be consumed so caller will not make further calls to - demangle_signature. */ - -static int -iterate_demangle_function (struct work_stuff *work, const char **mangled, - string *declp, const char *scan) -{ - const char *mangle_init = *mangled; - int success = 0; - string decl_init; - struct work_stuff work_init; - - if (*(scan + 2) == '\0') - return 0; - - /* Do not iterate for some demangling modes, or if there's only one - "__"-sequence. This is the normal case. */ - if (ARM_DEMANGLING || LUCID_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING - || strstr (scan + 2, "__") == NULL) - return demangle_function_name (work, mangled, declp, scan); - - /* Save state so we can restart if the guess at the correct "__" was - wrong. */ - string_init (&decl_init); - string_appends (&decl_init, declp); - memset (&work_init, 0, sizeof work_init); - work_stuff_copy_to_from (&work_init, work); - - /* Iterate over occurrences of __, allowing names and types to have a - "__" sequence in them. We must start with the first (not the last) - occurrence, since "__" most often occur between independent mangled - parts, hence starting at the last occurence inside a signature - might get us a "successful" demangling of the signature. */ - - while (scan[2]) - { - if (demangle_function_name (work, mangled, declp, scan)) - { - success = demangle_signature (work, mangled, declp); - if (success) - break; - } - - /* Reset demangle state for the next round. */ - *mangled = mangle_init; - string_clear (declp); - string_appends (declp, &decl_init); - work_stuff_copy_to_from (work, &work_init); - - /* Leave this underscore-sequence. */ - scan += 2; - - /* Scan for the next "__" sequence. */ - while (*scan && (scan[0] != '_' || scan[1] != '_')) - scan++; - - /* Move to last "__" in this sequence. */ - while (*scan && *scan == '_') - scan++; - scan -= 2; - } - - /* Delete saved state. */ - delete_work_stuff (&work_init); - string_delete (&decl_init); - - return success; -} - -/* - -LOCAL FUNCTION - - demangle_prefix -- consume the mangled name prefix and find signature - -SYNOPSIS - - static int - demangle_prefix (struct work_stuff *work, const char **mangled, - string *declp); - -DESCRIPTION - - Consume and demangle the prefix of the mangled name. - While processing the function name root, arrange to call - demangle_signature if the root is ambiguous. - - DECLP points to the string buffer into which demangled output is - placed. On entry, the buffer is empty. On exit it contains - the root function name, the demangled operator name, or in some - special cases either nothing or the completely demangled result. - - MANGLED points to the current pointer into the mangled name. As each - token of the mangled name is consumed, it is updated. Upon entry - the current mangled name pointer points to the first character of - the mangled name. Upon exit, it should point to the first character - of the signature if demangling was successful, or to the first - unconsumed character if demangling of the prefix was unsuccessful. - - Returns 1 on success, 0 otherwise. - */ - -static int -demangle_prefix (struct work_stuff *work, const char **mangled, - string *declp) -{ - int success = 1; - const char *scan; - int i; - - if (strlen(*mangled) > 6 - && (strncmp(*mangled, "_imp__", 6) == 0 - || strncmp(*mangled, "__imp_", 6) == 0)) - { - /* it's a symbol imported from a PE dynamic library. Check for both - new style prefix _imp__ and legacy __imp_ used by older versions - of dlltool. */ - (*mangled) += 6; - work->dllimported = 1; - } - else if (strlen(*mangled) >= 11 && strncmp(*mangled, "_GLOBAL_", 8) == 0) - { - char *marker = strchr (cplus_markers, (*mangled)[8]); - if (marker != NULL && *marker == (*mangled)[10]) - { - if ((*mangled)[9] == 'D') - { - /* it's a GNU global destructor to be executed at program exit */ - (*mangled) += 11; - work->destructor = 2; - if (gnu_special (work, mangled, declp)) - return success; - } - else if ((*mangled)[9] == 'I') - { - /* it's a GNU global constructor to be executed at program init */ - (*mangled) += 11; - work->constructor = 2; - if (gnu_special (work, mangled, declp)) - return success; - } - } - } - else if ((ARM_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING) && strncmp(*mangled, "__std__", 7) == 0) - { - /* it's a ARM global destructor to be executed at program exit */ - (*mangled) += 7; - work->destructor = 2; - } - else if ((ARM_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING) && strncmp(*mangled, "__sti__", 7) == 0) - { - /* it's a ARM global constructor to be executed at program initial */ - (*mangled) += 7; - work->constructor = 2; - } - - /* This block of code is a reduction in strength time optimization - of: - scan = strstr (*mangled, "__"); */ - - { - scan = *mangled; - - do { - scan = strchr (scan, '_'); - } while (scan != NULL && *++scan != '_'); - - if (scan != NULL) --scan; - } - - if (scan != NULL) - { - /* We found a sequence of two or more '_', ensure that we start at - the last pair in the sequence. */ - i = strspn (scan, "_"); - if (i > 2) - { - scan += (i - 2); - } - } - - if (scan == NULL) - { - success = 0; - } - else if (work -> static_type) - { - if (!ISDIGIT ((unsigned char)scan[0]) && (scan[0] != 't')) - { - success = 0; - } - } - else if ((scan == *mangled) - && (ISDIGIT ((unsigned char)scan[2]) || (scan[2] == 'Q') - || (scan[2] == 't') || (scan[2] == 'K') || (scan[2] == 'H'))) - { - /* The ARM says nothing about the mangling of local variables. - But cfront mangles local variables by prepending __ - to them. As an extension to ARM demangling we handle this case. */ - if ((LUCID_DEMANGLING || ARM_DEMANGLING || HP_DEMANGLING) - && ISDIGIT ((unsigned char)scan[2])) - { - *mangled = scan + 2; - consume_count (mangled); - string_append (declp, *mangled); - *mangled += strlen (*mangled); - success = 1; - } - else - { - /* A GNU style constructor starts with __[0-9Qt]. But cfront uses - names like __Q2_3foo3bar for nested type names. So don't accept - this style of constructor for cfront demangling. A GNU - style member-template constructor starts with 'H'. */ - if (!(LUCID_DEMANGLING || ARM_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING)) - work -> constructor += 1; - *mangled = scan + 2; - } - } - else if (ARM_DEMANGLING && scan[2] == 'p' && scan[3] == 't') - { - /* Cfront-style parameterized type. Handled later as a signature. */ - success = 1; - - /* ARM template? */ - demangle_arm_hp_template (work, mangled, strlen (*mangled), declp); - } - else if (EDG_DEMANGLING && ((scan[2] == 't' && scan[3] == 'm') - || (scan[2] == 'p' && scan[3] == 's') - || (scan[2] == 'p' && scan[3] == 't'))) - { - /* EDG-style parameterized type. Handled later as a signature. */ - success = 1; - - /* EDG template? */ - demangle_arm_hp_template (work, mangled, strlen (*mangled), declp); - } - else if ((scan == *mangled) && !ISDIGIT ((unsigned char)scan[2]) - && (scan[2] != 't')) - { - /* Mangled name starts with "__". Skip over any leading '_' characters, - then find the next "__" that separates the prefix from the signature. - */ - if (!(ARM_DEMANGLING || LUCID_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING) - || (arm_special (mangled, declp) == 0)) - { - while (*scan == '_') - { - scan++; - } - if ((scan = strstr (scan, "__")) == NULL || (*(scan + 2) == '\0')) - { - /* No separator (I.E. "__not_mangled"), or empty signature - (I.E. "__not_mangled_either__") */ - success = 0; - } - else - return iterate_demangle_function (work, mangled, declp, scan); - } - } - else if (*(scan + 2) != '\0') - { - /* Mangled name does not start with "__" but does have one somewhere - in there with non empty stuff after it. Looks like a global - function name. Iterate over all "__":s until the right - one is found. */ - return iterate_demangle_function (work, mangled, declp, scan); - } - else - { - /* Doesn't look like a mangled name */ - success = 0; - } - - if (!success && (work->constructor == 2 || work->destructor == 2)) - { - string_append (declp, *mangled); - *mangled += strlen (*mangled); - success = 1; - } - return (success); -} - -/* - -LOCAL FUNCTION - - gnu_special -- special handling of gnu mangled strings - -SYNOPSIS - - static int - gnu_special (struct work_stuff *work, const char **mangled, - string *declp); - - -DESCRIPTION - - Process some special GNU style mangling forms that don't fit - the normal pattern. For example: - - _$_3foo (destructor for class foo) - _vt$foo (foo virtual table) - _vt$foo$bar (foo::bar virtual table) - __vt_foo (foo virtual table, new style with thunks) - _3foo$varname (static data member) - _Q22rs2tu$vw (static data member) - __t6vector1Zii (constructor with template) - __thunk_4__$_7ostream (virtual function thunk) - */ - -static int -gnu_special (struct work_stuff *work, const char **mangled, string *declp) -{ - int n; - int success = 1; - const char *p; - - if ((*mangled)[0] == '_' && (*mangled)[1] != '\0' - && strchr (cplus_markers, (*mangled)[1]) != NULL - && (*mangled)[2] == '_') - { - /* Found a GNU style destructor, get past "__" */ - (*mangled) += 3; - work -> destructor += 1; - } - else if ((*mangled)[0] == '_' - && (((*mangled)[1] == '_' - && (*mangled)[2] == 'v' - && (*mangled)[3] == 't' - && (*mangled)[4] == '_') - || ((*mangled)[1] == 'v' - && (*mangled)[2] == 't' && (*mangled)[3] != '\0' - && strchr (cplus_markers, (*mangled)[3]) != NULL))) - { - /* Found a GNU style virtual table, get past "_vt" - and create the decl. Note that we consume the entire mangled - input string, which means that demangle_signature has no work - to do. */ - if ((*mangled)[2] == 'v') - (*mangled) += 5; /* New style, with thunks: "__vt_" */ - else - (*mangled) += 4; /* Old style, no thunks: "_vt" */ - while (**mangled != '\0') - { - switch (**mangled) - { - case 'Q': - case 'K': - success = demangle_qualified (work, mangled, declp, 0, 1); - break; - case 't': - success = demangle_template (work, mangled, declp, 0, 1, - 1); - break; - default: - if (ISDIGIT((unsigned char)*mangled[0])) - { - n = consume_count(mangled); - /* We may be seeing a too-large size, or else a - "." indicating a static local symbol. In - any case, declare victory and move on; *don't* try - to use n to allocate. */ - if (n > (int) strlen (*mangled)) - { - success = 1; - break; - } - else if (n == -1) - { - success = 0; - break; - } - } - else - { - n = strcspn (*mangled, cplus_markers); - } - string_appendn (declp, *mangled, n); - (*mangled) += n; - } - - p = strpbrk (*mangled, cplus_markers); - if (success && ((p == NULL) || (p == *mangled))) - { - if (p != NULL) - { - string_append (declp, SCOPE_STRING (work)); - (*mangled)++; - } - } - else - { - success = 0; - break; - } - } - if (success) - string_append (declp, " virtual table"); - } - else if ((*mangled)[0] == '_' - && (strchr("0123456789Qt", (*mangled)[1]) != NULL) - && (p = strpbrk (*mangled, cplus_markers)) != NULL) - { - /* static data member, "_3foo$varname" for example */ - (*mangled)++; - switch (**mangled) - { - case 'Q': - case 'K': - success = demangle_qualified (work, mangled, declp, 0, 1); - break; - case 't': - success = demangle_template (work, mangled, declp, 0, 1, 1); - break; - default: - n = consume_count (mangled); - if (n < 0 || n > (long) strlen (*mangled)) - { - success = 0; - break; - } - - if (n > 10 && strncmp (*mangled, "_GLOBAL_", 8) == 0 - && (*mangled)[9] == 'N' - && (*mangled)[8] == (*mangled)[10] - && strchr (cplus_markers, (*mangled)[8])) - { - /* A member of the anonymous namespace. There's information - about what identifier or filename it was keyed to, but - it's just there to make the mangled name unique; we just - step over it. */ - string_append (declp, "{anonymous}"); - (*mangled) += n; - - /* Now p points to the marker before the N, so we need to - update it to the first marker after what we consumed. */ - p = strpbrk (*mangled, cplus_markers); - break; - } - - string_appendn (declp, *mangled, n); - (*mangled) += n; - } - if (success && (p == *mangled)) - { - /* Consumed everything up to the cplus_marker, append the - variable name. */ - (*mangled)++; - string_append (declp, SCOPE_STRING (work)); - n = strlen (*mangled); - string_appendn (declp, *mangled, n); - (*mangled) += n; - } - else - { - success = 0; - } - } - else if (strncmp (*mangled, "__thunk_", 8) == 0) - { - int delta; - - (*mangled) += 8; - delta = consume_count (mangled); - if (delta == -1) - success = 0; - else if (**mangled != '_') - success = 0; - else - { - char *method = internal_cplus_demangle (work, ++*mangled); - - if (method) - { - char buf[50]; - sprintf (buf, "virtual function thunk (delta:%d) for ", -delta); - string_append (declp, buf); - string_append (declp, method); - free (method); - n = strlen (*mangled); - (*mangled) += n; - } - else - { - success = 0; - } - } - } - else if (strncmp (*mangled, "__t", 3) == 0 - && ((*mangled)[3] == 'i' || (*mangled)[3] == 'f')) - { - p = (*mangled)[3] == 'i' ? " type_info node" : " type_info function"; - (*mangled) += 4; - switch (**mangled) - { - case 'Q': - case 'K': - success = demangle_qualified (work, mangled, declp, 0, 1); - break; - case 't': - success = demangle_template (work, mangled, declp, 0, 1, 1); - break; - default: - success = do_type (work, mangled, declp); - break; - } - if (success && **mangled != '\0') - success = 0; - if (success) - string_append (declp, p); - } - else - { - success = 0; - } - return (success); -} - -static void -recursively_demangle(struct work_stuff *work, const char **mangled, - string *result, int namelength) -{ - char * recurse = (char *)NULL; - char * recurse_dem = (char *)NULL; - - recurse = XNEWVEC (char, namelength + 1); - memcpy (recurse, *mangled, namelength); - recurse[namelength] = '\000'; - - recurse_dem = cplus_demangle (recurse, work->options); - - if (recurse_dem) - { - string_append (result, recurse_dem); - free (recurse_dem); - } - else - { - string_appendn (result, *mangled, namelength); - } - free (recurse); - *mangled += namelength; -} - -/* - -LOCAL FUNCTION - - arm_special -- special handling of ARM/lucid mangled strings - -SYNOPSIS - - static int - arm_special (const char **mangled, - string *declp); - - -DESCRIPTION - - Process some special ARM style mangling forms that don't fit - the normal pattern. For example: - - __vtbl__3foo (foo virtual table) - __vtbl__3foo__3bar (bar::foo virtual table) - - */ - -static int -arm_special (const char **mangled, string *declp) -{ - int n; - int success = 1; - const char *scan; - - if (strncmp (*mangled, ARM_VTABLE_STRING, ARM_VTABLE_STRLEN) == 0) - { - /* Found a ARM style virtual table, get past ARM_VTABLE_STRING - and create the decl. Note that we consume the entire mangled - input string, which means that demangle_signature has no work - to do. */ - scan = *mangled + ARM_VTABLE_STRLEN; - while (*scan != '\0') /* first check it can be demangled */ - { - n = consume_count (&scan); - if (n == -1) - { - return (0); /* no good */ - } - scan += n; - if (scan[0] == '_' && scan[1] == '_') - { - scan += 2; - } - } - (*mangled) += ARM_VTABLE_STRLEN; - while (**mangled != '\0') - { - n = consume_count (mangled); - if (n == -1 - || n > (long) strlen (*mangled)) - return 0; - string_prependn (declp, *mangled, n); - (*mangled) += n; - if ((*mangled)[0] == '_' && (*mangled)[1] == '_') - { - string_prepend (declp, "::"); - (*mangled) += 2; - } - } - string_append (declp, " virtual table"); - } - else - { - success = 0; - } - return (success); -} - -/* - -LOCAL FUNCTION - - demangle_qualified -- demangle 'Q' qualified name strings - -SYNOPSIS - - static int - demangle_qualified (struct work_stuff *, const char *mangled, - string *result, int isfuncname, int append); - -DESCRIPTION - - Demangle a qualified name, such as "Q25Outer5Inner" which is - the mangled form of "Outer::Inner". The demangled output is - prepended or appended to the result string according to the - state of the append flag. - - If isfuncname is nonzero, then the qualified name we are building - is going to be used as a member function name, so if it is a - constructor or destructor function, append an appropriate - constructor or destructor name. I.E. for the above example, - the result for use as a constructor is "Outer::Inner::Inner" - and the result for use as a destructor is "Outer::Inner::~Inner". - -BUGS - - Numeric conversion is ASCII dependent (FIXME). - - */ - -static int -demangle_qualified (struct work_stuff *work, const char **mangled, - string *result, int isfuncname, int append) -{ - int qualifiers = 0; - int success = 1; - char num[2]; - string temp; - string last_name; - int bindex = register_Btype (work); - - /* We only make use of ISFUNCNAME if the entity is a constructor or - destructor. */ - isfuncname = (isfuncname - && ((work->constructor & 1) || (work->destructor & 1))); - - string_init (&temp); - string_init (&last_name); - - if ((*mangled)[0] == 'K') - { - /* Squangling qualified name reuse */ - int idx; - (*mangled)++; - idx = consume_count_with_underscores (mangled); - if (idx == -1 || idx >= work -> numk) - success = 0; - else - string_append (&temp, work -> ktypevec[idx]); - } - else - switch ((*mangled)[1]) - { - case '_': - /* GNU mangled name with more than 9 classes. The count is preceded - by an underscore (to distinguish it from the <= 9 case) and followed - by an underscore. */ - (*mangled)++; - qualifiers = consume_count_with_underscores (mangled); - if (qualifiers == -1) - success = 0; - break; - - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - /* The count is in a single digit. */ - num[0] = (*mangled)[1]; - num[1] = '\0'; - qualifiers = atoi (num); - - /* If there is an underscore after the digit, skip it. This is - said to be for ARM-qualified names, but the ARM makes no - mention of such an underscore. Perhaps cfront uses one. */ - if ((*mangled)[2] == '_') - { - (*mangled)++; - } - (*mangled) += 2; - break; - - case '0': - default: - success = 0; - } - - if (!success) - return success; - - /* Pick off the names and collect them in the temp buffer in the order - in which they are found, separated by '::'. */ - - while (qualifiers-- > 0) - { - int remember_K = 1; - string_clear (&last_name); - - if (*mangled[0] == '_') - (*mangled)++; - - if (*mangled[0] == 't') - { - /* Here we always append to TEMP since we will want to use - the template name without the template parameters as a - constructor or destructor name. The appropriate - (parameter-less) value is returned by demangle_template - in LAST_NAME. We do not remember the template type here, - in order to match the G++ mangling algorithm. */ - success = demangle_template(work, mangled, &temp, - &last_name, 1, 0); - if (!success) - break; - } - else if (*mangled[0] == 'K') - { - int idx; - (*mangled)++; - idx = consume_count_with_underscores (mangled); - if (idx == -1 || idx >= work->numk) - success = 0; - else - string_append (&temp, work->ktypevec[idx]); - remember_K = 0; - - if (!success) break; - } - else - { - if (EDG_DEMANGLING) - { - int namelength; - /* Now recursively demangle the qualifier - * This is necessary to deal with templates in - * mangling styles like EDG */ - namelength = consume_count (mangled); - if (namelength == -1) - { - success = 0; - break; - } - recursively_demangle(work, mangled, &temp, namelength); - } - else - { - string_delete (&last_name); - success = do_type (work, mangled, &last_name); - if (!success) - break; - string_appends (&temp, &last_name); - } - } - - if (remember_K) - remember_Ktype (work, temp.b, LEN_STRING (&temp)); - - if (qualifiers > 0) - string_append (&temp, SCOPE_STRING (work)); - } - - remember_Btype (work, temp.b, LEN_STRING (&temp), bindex); - - /* If we are using the result as a function name, we need to append - the appropriate '::' separated constructor or destructor name. - We do this here because this is the most convenient place, where - we already have a pointer to the name and the length of the name. */ - - if (isfuncname) - { - string_append (&temp, SCOPE_STRING (work)); - if (work -> destructor & 1) - string_append (&temp, "~"); - string_appends (&temp, &last_name); - } - - /* Now either prepend the temp buffer to the result, or append it, - depending upon the state of the append flag. */ - - if (append) - string_appends (result, &temp); - else - { - if (!STRING_EMPTY (result)) - string_append (&temp, SCOPE_STRING (work)); - string_prepends (result, &temp); - } - - string_delete (&last_name); - string_delete (&temp); - return (success); -} - -/* - -LOCAL FUNCTION - - get_count -- convert an ascii count to integer, consuming tokens - -SYNOPSIS - - static int - get_count (const char **type, int *count) - -DESCRIPTION - - Assume that *type points at a count in a mangled name; set - *count to its value, and set *type to the next character after - the count. There are some weird rules in effect here. - - If *type does not point at a string of digits, return zero. - - If *type points at a string of digits followed by an - underscore, set *count to their value as an integer, advance - *type to point *after the underscore, and return 1. - - If *type points at a string of digits not followed by an - underscore, consume only the first digit. Set *count to its - value as an integer, leave *type pointing after that digit, - and return 1. - - The excuse for this odd behavior: in the ARM and HP demangling - styles, a type can be followed by a repeat count of the form - `Nxy', where: - - `x' is a single digit specifying how many additional copies - of the type to append to the argument list, and - - `y' is one or more digits, specifying the zero-based index of - the first repeated argument in the list. Yes, as you're - unmangling the name you can figure this out yourself, but - it's there anyway. - - So, for example, in `bar__3fooFPiN51', the first argument is a - pointer to an integer (`Pi'), and then the next five arguments - are the same (`N5'), and the first repeat is the function's - second argument (`1'). -*/ - -static int -get_count (const char **type, int *count) -{ - const char *p; - int n; - - if (!ISDIGIT ((unsigned char)**type)) - return (0); - else - { - *count = **type - '0'; - (*type)++; - if (ISDIGIT ((unsigned char)**type)) - { - p = *type; - n = *count; - do - { - n *= 10; - n += *p - '0'; - p++; - } - while (ISDIGIT ((unsigned char)*p)); - if (*p == '_') - { - *type = p + 1; - *count = n; - } - } - } - return (1); -} - -/* RESULT will be initialised here; it will be freed on failure. The - value returned is really a type_kind_t. */ - -static int -do_type (struct work_stuff *work, const char **mangled, string *result) -{ - int n; - int i; - int is_proctypevec; - int done; - int success; - string decl; - const char *remembered_type; - int type_quals; - type_kind_t tk = tk_none; - - string_init (&decl); - string_init (result); - - done = 0; - success = 1; - is_proctypevec = 0; - while (success && !done) - { - int member; - switch (**mangled) - { - - /* A pointer type */ - case 'P': - case 'p': - (*mangled)++; - if (! (work -> options & DMGL_JAVA)) - string_prepend (&decl, "*"); - if (tk == tk_none) - tk = tk_pointer; - break; - - /* A reference type */ - case 'R': - (*mangled)++; - string_prepend (&decl, "&"); - if (tk == tk_none) - tk = tk_reference; - break; - - /* An rvalue reference type */ - case 'O': - (*mangled)++; - string_prepend (&decl, "&&"); - if (tk == tk_none) - tk = tk_rvalue_reference; - break; - - /* An array */ - case 'A': - { - ++(*mangled); - if (!STRING_EMPTY (&decl) - && (decl.b[0] == '*' || decl.b[0] == '&')) - { - string_prepend (&decl, "("); - string_append (&decl, ")"); - } - string_append (&decl, "["); - if (**mangled != '_') - success = demangle_template_value_parm (work, mangled, &decl, - tk_integral); - if (**mangled == '_') - ++(*mangled); - string_append (&decl, "]"); - break; - } - - /* A back reference to a previously seen type */ - case 'T': - (*mangled)++; - if (!get_count (mangled, &n) || n < 0 || n >= work -> ntypes) - { - success = 0; - } - else - for (i = 0; i < work->nproctypes; i++) - if (work -> proctypevec [i] == n) - success = 0; - - if (success) - { - is_proctypevec = 1; - push_processed_type (work, n); - remembered_type = work->typevec[n]; - mangled = &remembered_type; - } - break; - - /* A function */ - case 'F': - (*mangled)++; - if (!STRING_EMPTY (&decl) - && (decl.b[0] == '*' || decl.b[0] == '&')) - { - string_prepend (&decl, "("); - string_append (&decl, ")"); - } - /* After picking off the function args, we expect to either find the - function return type (preceded by an '_') or the end of the - string. */ - if (!demangle_nested_args (work, mangled, &decl) - || (**mangled != '_' && **mangled != '\0')) - { - success = 0; - break; - } - if (success && (**mangled == '_')) - (*mangled)++; - break; - - case 'M': - { - type_quals = TYPE_UNQUALIFIED; - - member = **mangled == 'M'; - (*mangled)++; - - string_append (&decl, ")"); - - /* We don't need to prepend `::' for a qualified name; - demangle_qualified will do that for us. */ - if (**mangled != 'Q') - string_prepend (&decl, SCOPE_STRING (work)); - - if (ISDIGIT ((unsigned char)**mangled)) - { - n = consume_count (mangled); - if (n == -1 - || (int) strlen (*mangled) < n) - { - success = 0; - break; - } - string_prependn (&decl, *mangled, n); - *mangled += n; - } - else if (**mangled == 'X' || **mangled == 'Y') - { - string temp; - do_type (work, mangled, &temp); - string_prepends (&decl, &temp); - string_delete (&temp); - } - else if (**mangled == 't') - { - string temp; - string_init (&temp); - success = demangle_template (work, mangled, &temp, - NULL, 1, 1); - if (success) - { - string_prependn (&decl, temp.b, temp.p - temp.b); - string_delete (&temp); - } - else - { - string_delete (&temp); - break; - } - } - else if (**mangled == 'Q') - { - success = demangle_qualified (work, mangled, &decl, - /*isfuncnam=*/0, - /*append=*/0); - if (!success) - break; - } - else - { - success = 0; - break; - } - - string_prepend (&decl, "("); - if (member) - { - switch (**mangled) - { - case 'C': - case 'V': - case 'u': - type_quals |= code_for_qualifier (**mangled); - (*mangled)++; - break; - - default: - break; - } - - if (*(*mangled) != 'F') - { - success = 0; - break; - } - (*mangled)++; - } - if ((member && !demangle_nested_args (work, mangled, &decl)) - || **mangled != '_') - { - success = 0; - break; - } - (*mangled)++; - if (! PRINT_ANSI_QUALIFIERS) - { - break; - } - if (type_quals != TYPE_UNQUALIFIED) - { - APPEND_BLANK (&decl); - string_append (&decl, qualifier_string (type_quals)); - } - break; - } - case 'G': - (*mangled)++; - break; - - case 'C': - case 'V': - case 'u': - if (PRINT_ANSI_QUALIFIERS) - { - if (!STRING_EMPTY (&decl)) - string_prepend (&decl, " "); - - string_prepend (&decl, demangle_qualifier (**mangled)); - } - (*mangled)++; - break; - /* - } - */ - - /* fall through */ - default: - done = 1; - break; - } - } - - if (success) switch (**mangled) - { - /* A qualified name, such as "Outer::Inner". */ - case 'Q': - case 'K': - { - success = demangle_qualified (work, mangled, result, 0, 1); - break; - } - - /* A back reference to a previously seen squangled type */ - case 'B': - (*mangled)++; - if (!get_count (mangled, &n) || n < 0 || n >= work -> numb) - success = 0; - else - string_append (result, work->btypevec[n]); - break; - - case 'X': - case 'Y': - /* A template parm. We substitute the corresponding argument. */ - { - int idx; - - (*mangled)++; - idx = consume_count_with_underscores (mangled); - - if (idx == -1 - || (work->tmpl_argvec && idx >= work->ntmpl_args) - || consume_count_with_underscores (mangled) == -1) - { - success = 0; - break; - } - - if (work->tmpl_argvec) - string_append (result, work->tmpl_argvec[idx]); - else - string_append_template_idx (result, idx); - - success = 1; - } - break; - - default: - success = demangle_fund_type (work, mangled, result); - if (tk == tk_none) - tk = (type_kind_t) success; - break; - } - - if (success) - { - if (!STRING_EMPTY (&decl)) - { - string_append (result, " "); - string_appends (result, &decl); - } - } - else - string_delete (result); - string_delete (&decl); - - if (is_proctypevec) - pop_processed_type (work); - - if (success) - /* Assume an integral type, if we're not sure. */ - return (int) ((tk == tk_none) ? tk_integral : tk); - else - return 0; -} - -/* Given a pointer to a type string that represents a fundamental type - argument (int, long, unsigned int, etc) in TYPE, a pointer to the - string in which the demangled output is being built in RESULT, and - the WORK structure, decode the types and add them to the result. - - For example: - - "Ci" => "const int" - "Sl" => "signed long" - "CUs" => "const unsigned short" - - The value returned is really a type_kind_t. */ - -static int -demangle_fund_type (struct work_stuff *work, - const char **mangled, string *result) -{ - int done = 0; - int success = 1; - char buf[INTBUF_SIZE + 5 /* 'int%u_t' */]; - unsigned int dec = 0; - type_kind_t tk = tk_integral; - - /* First pick off any type qualifiers. There can be more than one. */ - - while (!done) - { - switch (**mangled) - { - case 'C': - case 'V': - case 'u': - if (PRINT_ANSI_QUALIFIERS) - { - if (!STRING_EMPTY (result)) - string_prepend (result, " "); - string_prepend (result, demangle_qualifier (**mangled)); - } - (*mangled)++; - break; - case 'U': - (*mangled)++; - APPEND_BLANK (result); - string_append (result, "unsigned"); - break; - case 'S': /* signed char only */ - (*mangled)++; - APPEND_BLANK (result); - string_append (result, "signed"); - break; - case 'J': - (*mangled)++; - APPEND_BLANK (result); - string_append (result, "__complex"); - break; - default: - done = 1; - break; - } - } - - /* Now pick off the fundamental type. There can be only one. */ - - switch (**mangled) - { - case '\0': - case '_': - break; - case 'v': - (*mangled)++; - APPEND_BLANK (result); - string_append (result, "void"); - break; - case 'x': - (*mangled)++; - APPEND_BLANK (result); - string_append (result, "long long"); - break; - case 'l': - (*mangled)++; - APPEND_BLANK (result); - string_append (result, "long"); - break; - case 'i': - (*mangled)++; - APPEND_BLANK (result); - string_append (result, "int"); - break; - case 's': - (*mangled)++; - APPEND_BLANK (result); - string_append (result, "short"); - break; - case 'b': - (*mangled)++; - APPEND_BLANK (result); - string_append (result, "bool"); - tk = tk_bool; - break; - case 'c': - (*mangled)++; - APPEND_BLANK (result); - string_append (result, "char"); - tk = tk_char; - break; - case 'w': - (*mangled)++; - APPEND_BLANK (result); - string_append (result, "wchar_t"); - tk = tk_char; - break; - case 'r': - (*mangled)++; - APPEND_BLANK (result); - string_append (result, "long double"); - tk = tk_real; - break; - case 'd': - (*mangled)++; - APPEND_BLANK (result); - string_append (result, "double"); - tk = tk_real; - break; - case 'f': - (*mangled)++; - APPEND_BLANK (result); - string_append (result, "float"); - tk = tk_real; - break; - case 'G': - (*mangled)++; - if (!ISDIGIT ((unsigned char)**mangled)) - { - success = 0; - break; - } - /* fall through */ - case 'I': - (*mangled)++; - if (**mangled == '_') - { - int i; - (*mangled)++; - for (i = 0; - i < (long) sizeof (buf) - 1 && **mangled && **mangled != '_'; - (*mangled)++, i++) - buf[i] = **mangled; - if (**mangled != '_') - { - success = 0; - break; - } - buf[i] = '\0'; - (*mangled)++; - } - else - { - strncpy (buf, *mangled, 2); - buf[2] = '\0'; - *mangled += min (strlen (*mangled), 2); - } - sscanf (buf, "%x", &dec); - sprintf (buf, "int%u_t", dec); - APPEND_BLANK (result); - string_append (result, buf); - break; - - /* fall through */ - /* An explicit type, such as "6mytype" or "7integer" */ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - { - int bindex = register_Btype (work); - string btype; - string_init (&btype); - if (demangle_class_name (work, mangled, &btype)) { - remember_Btype (work, btype.b, LEN_STRING (&btype), bindex); - APPEND_BLANK (result); - string_appends (result, &btype); - } - else - success = 0; - string_delete (&btype); - break; - } - case 't': - { - string btype; - string_init (&btype); - success = demangle_template (work, mangled, &btype, 0, 1, 1); - string_appends (result, &btype); - string_delete (&btype); - break; - } - default: - success = 0; - break; - } - - return success ? ((int) tk) : 0; -} - - -/* Handle a template's value parameter for HP aCC (extension from ARM) - **mangled points to 'S' or 'U' */ - -static int -do_hpacc_template_const_value (struct work_stuff *work ATTRIBUTE_UNUSED, - const char **mangled, string *result) -{ - int unsigned_const; - - if (**mangled != 'U' && **mangled != 'S') - return 0; - - unsigned_const = (**mangled == 'U'); - - (*mangled)++; - - switch (**mangled) - { - case 'N': - string_append (result, "-"); - /* fall through */ - case 'P': - (*mangled)++; - break; - case 'M': - /* special case for -2^31 */ - string_append (result, "-2147483648"); - (*mangled)++; - return 1; - default: - return 0; - } - - /* We have to be looking at an integer now */ - if (!(ISDIGIT ((unsigned char)**mangled))) - return 0; - - /* We only deal with integral values for template - parameters -- so it's OK to look only for digits */ - while (ISDIGIT ((unsigned char)**mangled)) - { - char_str[0] = **mangled; - string_append (result, char_str); - (*mangled)++; - } - - if (unsigned_const) - string_append (result, "U"); - - /* FIXME? Some day we may have 64-bit (or larger :-) ) constants - with L or LL suffixes. pai/1997-09-03 */ - - return 1; /* success */ -} - -/* Handle a template's literal parameter for HP aCC (extension from ARM) - **mangled is pointing to the 'A' */ - -static int -do_hpacc_template_literal (struct work_stuff *work, const char **mangled, - string *result) -{ - int literal_len = 0; - char * recurse; - char * recurse_dem; - - if (**mangled != 'A') - return 0; - - (*mangled)++; - - literal_len = consume_count (mangled); - - if (literal_len <= 0 - || literal_len > (long) strlen (*mangled)) - return 0; - - /* Literal parameters are names of arrays, functions, etc. and the - canonical representation uses the address operator */ - string_append (result, "&"); - - /* Now recursively demangle the literal name */ - recurse = XNEWVEC (char, literal_len + 1); - memcpy (recurse, *mangled, literal_len); - recurse[literal_len] = '\000'; - - recurse_dem = cplus_demangle (recurse, work->options); - - if (recurse_dem) - { - string_append (result, recurse_dem); - free (recurse_dem); - } - else - { - string_appendn (result, *mangled, literal_len); - } - (*mangled) += literal_len; - free (recurse); - - return 1; -} - -static int -snarf_numeric_literal (const char **args, string *arg) -{ - if (**args == '-') - { - char_str[0] = '-'; - string_append (arg, char_str); - (*args)++; - } - else if (**args == '+') - (*args)++; - - if (!ISDIGIT ((unsigned char)**args)) - return 0; - - while (ISDIGIT ((unsigned char)**args)) - { - char_str[0] = **args; - string_append (arg, char_str); - (*args)++; - } - - return 1; -} - -/* Demangle the next argument, given by MANGLED into RESULT, which - *should be an uninitialized* string. It will be initialized here, - and free'd should anything go wrong. */ - -static int -do_arg (struct work_stuff *work, const char **mangled, string *result) -{ - /* Remember where we started so that we can record the type, for - non-squangling type remembering. */ - const char *start = *mangled; - - string_init (result); - - if (work->nrepeats > 0) - { - --work->nrepeats; - - if (work->previous_argument == 0) - return 0; - - /* We want to reissue the previous type in this argument list. */ - string_appends (result, work->previous_argument); - return 1; - } - - if (**mangled == 'n') - { - /* A squangling-style repeat. */ - (*mangled)++; - work->nrepeats = consume_count(mangled); - - if (work->nrepeats <= 0) - /* This was not a repeat count after all. */ - return 0; - - if (work->nrepeats > 9) - { - if (**mangled != '_') - /* The repeat count should be followed by an '_' in this - case. */ - return 0; - else - (*mangled)++; - } - - /* Now, the repeat is all set up. */ - return do_arg (work, mangled, result); - } - - /* Save the result in WORK->previous_argument so that we can find it - if it's repeated. Note that saving START is not good enough: we - do not want to add additional types to the back-referenceable - type vector when processing a repeated type. */ - if (work->previous_argument) - string_delete (work->previous_argument); - else - work->previous_argument = XNEW (string); - - if (!do_type (work, mangled, work->previous_argument)) - return 0; - - string_appends (result, work->previous_argument); - - remember_type (work, start, *mangled - start); - return 1; -} - -static void -push_processed_type (struct work_stuff *work, int typevec_index) -{ - if (work->nproctypes >= work->proctypevec_size) - { - if (!work->proctypevec_size) - { - work->proctypevec_size = 4; - work->proctypevec = XNEWVEC (int, work->proctypevec_size); - } - else - { - if (work->proctypevec_size < 16) - /* Double when small. */ - work->proctypevec_size *= 2; - else - { - /* Grow slower when large. */ - if (work->proctypevec_size > (INT_MAX / 3) * 2) - xmalloc_failed (INT_MAX); - work->proctypevec_size = (work->proctypevec_size * 3 / 2); - } - work->proctypevec - = XRESIZEVEC (int, work->proctypevec, work->proctypevec_size); - } - } - work->proctypevec [work->nproctypes++] = typevec_index; -} - -static void -pop_processed_type (struct work_stuff *work) -{ - work->nproctypes--; -} - -static void -remember_type (struct work_stuff *work, const char *start, int len) -{ - char *tem; - - if (work->forgetting_types) - return; - - if (work -> ntypes >= work -> typevec_size) - { - if (work -> typevec_size == 0) - { - work -> typevec_size = 3; - work -> typevec = XNEWVEC (char *, work->typevec_size); - } - else - { - if (work -> typevec_size > INT_MAX / 2) - xmalloc_failed (INT_MAX); - work -> typevec_size *= 2; - work -> typevec - = XRESIZEVEC (char *, work->typevec, work->typevec_size); - } - } - tem = XNEWVEC (char, len + 1); - memcpy (tem, start, len); - tem[len] = '\0'; - work -> typevec[work -> ntypes++] = tem; -} - - -/* Remember a K type class qualifier. */ -static void -remember_Ktype (struct work_stuff *work, const char *start, int len) -{ - char *tem; - - if (work -> numk >= work -> ksize) - { - if (work -> ksize == 0) - { - work -> ksize = 5; - work -> ktypevec = XNEWVEC (char *, work->ksize); - } - else - { - if (work -> ksize > INT_MAX / 2) - xmalloc_failed (INT_MAX); - work -> ksize *= 2; - work -> ktypevec - = XRESIZEVEC (char *, work->ktypevec, work->ksize); - } - } - tem = XNEWVEC (char, len + 1); - memcpy (tem, start, len); - tem[len] = '\0'; - work -> ktypevec[work -> numk++] = tem; -} - -/* Register a B code, and get an index for it. B codes are registered - as they are seen, rather than as they are completed, so map > - registers map > as B0, and temp as B1 */ - -static int -register_Btype (struct work_stuff *work) -{ - int ret; - - if (work -> numb >= work -> bsize) - { - if (work -> bsize == 0) - { - work -> bsize = 5; - work -> btypevec = XNEWVEC (char *, work->bsize); - } - else - { - if (work -> bsize > INT_MAX / 2) - xmalloc_failed (INT_MAX); - work -> bsize *= 2; - work -> btypevec - = XRESIZEVEC (char *, work->btypevec, work->bsize); - } - } - ret = work -> numb++; - work -> btypevec[ret] = NULL; - return(ret); -} - -/* Store a value into a previously registered B code type. */ - -static void -remember_Btype (struct work_stuff *work, const char *start, - int len, int index) -{ - char *tem; - - tem = XNEWVEC (char, len + 1); - if (len > 0) - memcpy (tem, start, len); - tem[len] = '\0'; - work -> btypevec[index] = tem; -} - -/* Lose all the info related to B and K type codes. */ - -static void -forget_B_and_K_types (struct work_stuff *work) -{ - int i; - - while (work -> numk > 0) - { - i = --(work -> numk); - if (work -> ktypevec[i] != NULL) - { - free (work -> ktypevec[i]); - work -> ktypevec[i] = NULL; - } - } - - while (work -> numb > 0) - { - i = --(work -> numb); - if (work -> btypevec[i] != NULL) - { - free (work -> btypevec[i]); - work -> btypevec[i] = NULL; - } - } -} - -/* Forget the remembered types, but not the type vector itself. */ - -static void -forget_types (struct work_stuff *work) -{ - int i; - - while (work -> ntypes > 0) - { - i = --(work -> ntypes); - if (work -> typevec[i] != NULL) - { - free (work -> typevec[i]); - work -> typevec[i] = NULL; - } - } -} - -/* Process the argument list part of the signature, after any class spec - has been consumed, as well as the first 'F' character (if any). For - example: - - "__als__3fooRT0" => process "RT0" - "complexfunc5__FPFPc_PFl_i" => process "PFPc_PFl_i" - - DECLP must be already initialised, usually non-empty. It won't be freed - on failure. - - Note that g++ differs significantly from ARM and lucid style mangling - with regards to references to previously seen types. For example, given - the source fragment: - - class foo { - public: - foo::foo (int, foo &ia, int, foo &ib, int, foo &ic); - }; - - foo::foo (int, foo &ia, int, foo &ib, int, foo &ic) { ia = ib = ic; } - void foo (int, foo &ia, int, foo &ib, int, foo &ic) { ia = ib = ic; } - - g++ produces the names: - - __3fooiRT0iT2iT2 - foo__FiR3fooiT1iT1 - - while lcc (and presumably other ARM style compilers as well) produces: - - foo__FiR3fooT1T2T1T2 - __ct__3fooFiR3fooT1T2T1T2 - - Note that g++ bases its type numbers starting at zero and counts all - previously seen types, while lucid/ARM bases its type numbers starting - at one and only considers types after it has seen the 'F' character - indicating the start of the function args. For lucid/ARM style, we - account for this difference by discarding any previously seen types when - we see the 'F' character, and subtracting one from the type number - reference. - - */ - -static int -demangle_args (struct work_stuff *work, const char **mangled, - string *declp) -{ - string arg; - int need_comma = 0; - int r; - int t; - const char *tem; - char temptype; - - if (PRINT_ARG_TYPES) - { - string_append (declp, "("); - if (**mangled == '\0') - { - string_append (declp, "void"); - } - } - - while ((**mangled != '_' && **mangled != '\0' && **mangled != 'e') - || work->nrepeats > 0) - { - if ((**mangled == 'N') || (**mangled == 'T')) - { - temptype = *(*mangled)++; - - if (temptype == 'N') - { - if (!get_count (mangled, &r)) - { - return (0); - } - } - else - { - r = 1; - } - if ((HP_DEMANGLING || ARM_DEMANGLING || EDG_DEMANGLING) && work -> ntypes >= 10) - { - /* If we have 10 or more types we might have more than a 1 digit - index so we'll have to consume the whole count here. This - will lose if the next thing is a type name preceded by a - count but it's impossible to demangle that case properly - anyway. Eg if we already have 12 types is T12Pc "(..., type1, - Pc, ...)" or "(..., type12, char *, ...)" */ - if ((t = consume_count(mangled)) <= 0) - { - return (0); - } - } - else - { - if (!get_count (mangled, &t)) - { - return (0); - } - } - if (LUCID_DEMANGLING || ARM_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING) - { - t--; - } - /* Validate the type index. Protect against illegal indices from - malformed type strings. */ - if ((t < 0) || (t >= work -> ntypes)) - { - return (0); - } - while (work->nrepeats > 0 || --r >= 0) - { - tem = work -> typevec[t]; - if (need_comma && PRINT_ARG_TYPES) - { - string_append (declp, ", "); - } - push_processed_type (work, t); - if (!do_arg (work, &tem, &arg)) - { - pop_processed_type (work); - return (0); - } - pop_processed_type (work); - if (PRINT_ARG_TYPES) - { - string_appends (declp, &arg); - } - string_delete (&arg); - need_comma = 1; - } - } - else - { - if (need_comma && PRINT_ARG_TYPES) - string_append (declp, ", "); - if (!do_arg (work, mangled, &arg)) - return (0); - if (PRINT_ARG_TYPES) - string_appends (declp, &arg); - string_delete (&arg); - need_comma = 1; - } - } - - if (**mangled == 'e') - { - (*mangled)++; - if (PRINT_ARG_TYPES) - { - if (need_comma) - { - string_append (declp, ","); - } - string_append (declp, "..."); - } - } - - if (PRINT_ARG_TYPES) - { - string_append (declp, ")"); - } - return (1); -} - -/* Like demangle_args, but for demangling the argument lists of function - and method pointers or references, not top-level declarations. */ - -static int -demangle_nested_args (struct work_stuff *work, const char **mangled, - string *declp) -{ - string* saved_previous_argument; - int result; - int saved_nrepeats; - - if ((work->options & DMGL_NO_RECURSE_LIMIT) == 0) - { - if (work->recursion_level > DEMANGLE_RECURSION_LIMIT) - /* FIXME: There ought to be a way to report - that the recursion limit has been reached. */ - return 0; - - work->recursion_level ++; - } - - /* The G++ name-mangling algorithm does not remember types on nested - argument lists, unless -fsquangling is used, and in that case the - type vector updated by remember_type is not used. So, we turn - off remembering of types here. */ - ++work->forgetting_types; - - /* For the repeat codes used with -fsquangling, we must keep track of - the last argument. */ - saved_previous_argument = work->previous_argument; - saved_nrepeats = work->nrepeats; - work->previous_argument = 0; - work->nrepeats = 0; - - /* Actually demangle the arguments. */ - result = demangle_args (work, mangled, declp); - - /* Restore the previous_argument field. */ - if (work->previous_argument) - { - string_delete (work->previous_argument); - free ((char *) work->previous_argument); - } - work->previous_argument = saved_previous_argument; - --work->forgetting_types; - work->nrepeats = saved_nrepeats; - - if ((work->options & DMGL_NO_RECURSE_LIMIT) == 0) - --work->recursion_level; - - return result; -} - -/* Returns 1 if a valid function name was found or 0 otherwise. */ - -static int -demangle_function_name (struct work_stuff *work, const char **mangled, - string *declp, const char *scan) -{ - size_t i; - string type; - const char *tem; - - string_appendn (declp, (*mangled), scan - (*mangled)); - string_need (declp, 1); - *(declp -> p) = '\0'; - - /* Consume the function name, including the "__" separating the name - from the signature. We are guaranteed that SCAN points to the - separator. */ - - (*mangled) = scan + 2; - /* We may be looking at an instantiation of a template function: - foo__Xt1t2_Ft3t4, where t1, t2, ... are template arguments and a - following _F marks the start of the function arguments. Handle - the template arguments first. */ - - if (HP_DEMANGLING && (**mangled == 'X')) - { - demangle_arm_hp_template (work, mangled, 0, declp); - /* This leaves MANGLED pointing to the 'F' marking func args */ - } - - if (LUCID_DEMANGLING || ARM_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING) - { - - /* See if we have an ARM style constructor or destructor operator. - If so, then just record it, clear the decl, and return. - We can't build the actual constructor/destructor decl until later, - when we recover the class name from the signature. */ - - if (strcmp (declp -> b, "__ct") == 0) - { - work -> constructor += 1; - string_clear (declp); - return 1; - } - else if (strcmp (declp -> b, "__dt") == 0) - { - work -> destructor += 1; - string_clear (declp); - return 1; - } - } - - if (declp->p - declp->b >= 3 - && declp->b[0] == 'o' - && declp->b[1] == 'p' - && strchr (cplus_markers, declp->b[2]) != NULL) - { - /* see if it's an assignment expression */ - if (declp->p - declp->b >= 10 /* op$assign_ */ - && memcmp (declp->b + 3, "assign_", 7) == 0) - { - for (i = 0; i < ARRAY_SIZE (optable); i++) - { - int len = declp->p - declp->b - 10; - if ((int) strlen (optable[i].in) == len - && memcmp (optable[i].in, declp->b + 10, len) == 0) - { - string_clear (declp); - string_append (declp, "operator"); - string_append (declp, optable[i].out); - string_append (declp, "="); - break; - } - } - } - else - { - for (i = 0; i < ARRAY_SIZE (optable); i++) - { - int len = declp->p - declp->b - 3; - if ((int) strlen (optable[i].in) == len - && memcmp (optable[i].in, declp->b + 3, len) == 0) - { - string_clear (declp); - string_append (declp, "operator"); - string_append (declp, optable[i].out); - break; - } - } - } - } - else if (declp->p - declp->b >= 5 && memcmp (declp->b, "type", 4) == 0 - && strchr (cplus_markers, declp->b[4]) != NULL) - { - /* type conversion operator */ - tem = declp->b + 5; - if (do_type (work, &tem, &type)) - { - string_clear (declp); - string_append (declp, "operator "); - string_appends (declp, &type); - string_delete (&type); - } - } - else if (declp->b[0] == '_' && declp->b[1] == '_' - && declp->b[2] == 'o' && declp->b[3] == 'p') - { - /* ANSI. */ - /* type conversion operator. */ - tem = declp->b + 4; - if (do_type (work, &tem, &type)) - { - string_clear (declp); - string_append (declp, "operator "); - string_appends (declp, &type); - string_delete (&type); - } - } - else if (declp->b[0] == '_' && declp->b[1] == '_' - && ISLOWER((unsigned char)declp->b[2]) - && ISLOWER((unsigned char)declp->b[3])) - { - if (declp->b[4] == '\0') - { - /* Operator. */ - for (i = 0; i < ARRAY_SIZE (optable); i++) - { - if (strlen (optable[i].in) == 2 - && memcmp (optable[i].in, declp->b + 2, 2) == 0) - { - string_clear (declp); - string_append (declp, "operator"); - string_append (declp, optable[i].out); - break; - } - } - } - else - { - if (declp->b[2] == 'a' && declp->b[5] == '\0') - { - /* Assignment. */ - for (i = 0; i < ARRAY_SIZE (optable); i++) - { - if (strlen (optable[i].in) == 3 - && memcmp (optable[i].in, declp->b + 2, 3) == 0) - { - string_clear (declp); - string_append (declp, "operator"); - string_append (declp, optable[i].out); - break; - } - } - } - } - } - - /* If a function name was obtained but it's not valid, we were not - successful. */ - if (LEN_STRING (declp) == 1 && declp->b[0] == '.') - return 0; - else - return 1; -} - -/* a mini string-handling package */ - -static void -string_need (string *s, int n) -{ - int tem; - - if (s->b == NULL) - { - if (n < 32) - { - n = 32; - } - s->p = s->b = XNEWVEC (char, n); - s->e = s->b + n; - } - else if (s->e - s->p < n) - { - tem = s->p - s->b; - if (n > INT_MAX / 2 - tem) - xmalloc_failed (INT_MAX); - n += tem; - n *= 2; - s->b = XRESIZEVEC (char, s->b, n); - s->p = s->b + tem; - s->e = s->b + n; - } -} - -static void -string_delete (string *s) -{ - if (s->b != NULL) - { - free (s->b); - s->b = s->e = s->p = NULL; - } -} - -static void -string_init (string *s) -{ - s->b = s->p = s->e = NULL; -} - -static void -string_clear (string *s) -{ - s->p = s->b; -} - -#if 0 - -static int -string_empty (string *s) -{ - return (s->b == s->p); -} - -#endif - -static void -string_append (string *p, const char *s) -{ - int n; - if (s == NULL || *s == '\0') - return; - n = strlen (s); - string_need (p, n); - memcpy (p->p, s, n); - p->p += n; -} - -static void -string_appends (string *p, string *s) -{ - int n; - - if (s->b != s->p) - { - n = s->p - s->b; - string_need (p, n); - memcpy (p->p, s->b, n); - p->p += n; - } -} - -static void -string_appendn (string *p, const char *s, int n) -{ - if (n != 0) - { - string_need (p, n); - memcpy (p->p, s, n); - p->p += n; - } -} - -static void -string_prepend (string *p, const char *s) -{ - if (s != NULL && *s != '\0') - { - string_prependn (p, s, strlen (s)); - } -} - -static void -string_prepends (string *p, string *s) -{ - if (s->b != s->p) - { - string_prependn (p, s->b, s->p - s->b); - } -} - -static void -string_prependn (string *p, const char *s, int n) -{ - char *q; - - if (n != 0) - { - string_need (p, n); - for (q = p->p - 1; q >= p->b; q--) - { - q[n] = q[0]; - } - memcpy (p->b, s, n); - p->p += n; - } -} - -static void -string_append_template_idx (string *s, int idx) -{ - char buf[INTBUF_SIZE + 1 /* 'T' */]; - sprintf(buf, "T%d", idx); - string_append (s, buf); -} diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/crc32.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/crc32.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/crc32.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/crc32.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* crc32.c - Copyright (C) 2009-2018 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of the libiberty library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/d-demangle.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/d-demangle.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/d-demangle.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/d-demangle.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Demangler for the D programming language - Copyright (C) 2014-2018 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. Written by Iain Buclaw (ibuclaw@gdcproject.org) This file is part of the libiberty library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/_doprnt.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/_doprnt.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/_doprnt.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/_doprnt.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Provide a version of _doprnt in terms of fprintf. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Kaveh Ghazi (ghazi@caip.rutgers.edu) 3/29/98 This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/dwarfnames.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/dwarfnames.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/dwarfnames.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/dwarfnames.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Names of various DWARF tags. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of GNU CC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/dyn-string.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/dyn-string.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/dyn-string.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/dyn-string.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* An abstract string datatype. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Mark Mitchell (mark@markmitchell.com). This file is part of GNU CC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/fdmatch.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/fdmatch.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/fdmatch.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/fdmatch.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Compare two open file descriptors to see if they refer to the same file. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/fibheap.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/fibheap.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/fibheap.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/fibheap.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* A Fibonacci heap datatype. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Daniel Berlin (dan@cgsoftware.com). This file is part of GNU CC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/filename_cmp.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/filename_cmp.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/filename_cmp.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/filename_cmp.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* File name comparison routine. - Copyright (C) 2007-2018 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/floatformat.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/floatformat.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/floatformat.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/floatformat.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* IEEE floating point support routines, for GDB, the GNU Debugger. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of GDB. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/fnmatch.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/fnmatch.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/fnmatch.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/fnmatch.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. NOTE: This source is derived from an old version taken from the GNU C Library (glibc). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/fopen_unlocked.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/fopen_unlocked.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/fopen_unlocked.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/fopen_unlocked.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Implement fopen_unlocked and related functions. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Written by Kaveh R. Ghazi . This file is part of the libiberty library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/gather-docs gcc-snapshot-20190102/=unpacked-tar1=/libiberty/gather-docs --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/gather-docs 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/gather-docs 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ #!/usr/bin/perl # -*- perl -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # # This file is part of the libiberty library. # Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/getopt1.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/getopt1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/getopt1.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/getopt1.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* getopt_long and getopt_long_only entry points for GNU getopt. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. NOTE: This source is derived from an old version taken from the GNU C Library (glibc). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/getopt.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/getopt.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/getopt.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/getopt.c 2019-01-02 08:05:14.000000000 +0000 @@ -3,7 +3,7 @@ "Keep this file name-space clean" means, talk to drepper@gnu.org before changing it! - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. NOTE: This source is derived from an old version taken from the GNU C Library (glibc). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/getruntime.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/getruntime.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/getruntime.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/getruntime.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Return time used so far, in microseconds. - Copyright (C) 1994-2018 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/hashtab.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/hashtab.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/hashtab.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/hashtab.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* An expandable hash tables datatype. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. Contributed by Vladimir Makarov (vmakarov@cygnus.com). This file is part of the libiberty library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/hex.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/hex.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/hex.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/hex.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Hex character manipulation support. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/lbasename.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/lbasename.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/lbasename.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/lbasename.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Libiberty basename. Like basename, but is not overridden by the system C library. - Copyright (C) 2001-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/libiberty.texi gcc-snapshot-20190102/=unpacked-tar1=/libiberty/libiberty.texi --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/libiberty.texi 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/libiberty.texi 2019-01-02 08:05:14.000000000 +0000 @@ -24,7 +24,7 @@ @ifinfo This manual describes the GNU @libib library of utility subroutines. -Copyright @copyright{} 2001-2018 Free Software Foundation, Inc. +Copyright @copyright{} 2001-2019 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 @@ -50,7 +50,7 @@ @vskip 0pt plus 1filll -Copyright @copyright{} 2001-2018 Free Software Foundation, Inc. +Copyright @copyright{} 2001-2019 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/lrealpath.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/lrealpath.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/lrealpath.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/lrealpath.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* Libiberty realpath. Like realpath, but more consistent behavior. Based on gdb_realpath from GDB. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of the libiberty library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/maint-tool gcc-snapshot-20190102/=unpacked-tar1=/libiberty/maint-tool --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/maint-tool 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/maint-tool 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ #!/usr/bin/perl # -*- perl -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2019 Free Software Foundation, Inc. # # This file is part of the libiberty library. # Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/Makefile.in gcc-snapshot-20190102/=unpacked-tar1=/libiberty/Makefile.in --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/Makefile.in 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/Makefile.in 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ # Makefile for the libiberty library. # Originally written by K. Richard Pixley . # -# Copyright (C) 1990-2018 Free Software Foundation, Inc. +# Copyright (C) 1990-2019 Free Software Foundation, Inc. # # This file is part of the libiberty library. # Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/make-relative-prefix.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/make-relative-prefix.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/make-relative-prefix.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/make-relative-prefix.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Relative (relocatable) prefix support. - Copyright (C) 1987-2018 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of libiberty. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/make-temp-file.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/make-temp-file.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/make-temp-file.c 2018-08-02 03:04:25.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/make-temp-file.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Utility to pick a temporary filename prefix. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/md5.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/md5.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/md5.c 2018-05-12 14:22:13.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/md5.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* md5.c - Functions to compute MD5 message digest of files or memory blocks according to the definition of MD5 in RFC 1321 from April 1992. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. NOTE: This source is derived from an old version taken from the GNU C Library (glibc). diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/memmem.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/memmem.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/memmem.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/memmem.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software; you can redistribute it and/or modify diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/mempcpy.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/mempcpy.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/mempcpy.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/mempcpy.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Implement the mempcpy function. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Written by Kaveh R. Ghazi . This file is part of the libiberty library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/mkstemps.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/mkstemps.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/mkstemps.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/mkstemps.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is derived from mkstemp.c from the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/objalloc.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/objalloc.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/objalloc.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/objalloc.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* objalloc.c -- routines to allocate memory for objects - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Solutions. This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/obstack.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/obstack.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/obstack.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/obstack.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* obstack.c - subroutines used implicitly by object stack macros - Copyright (C) 1988-2018 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/partition.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/partition.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/partition.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/partition.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* List implementation of a partition of consecutive integers. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by CodeSourcery, LLC. This file is part of GNU CC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/pex-common.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/pex-common.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/pex-common.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/pex-common.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Common code for executing a program in a sub-process. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor . This file is part of the libiberty library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/pex-common.h gcc-snapshot-20190102/=unpacked-tar1=/libiberty/pex-common.h --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/pex-common.h 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/pex-common.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Utilities to execute a program in a subprocess (possibly linked by pipes with other subprocesses), and wait for it. Shared logic. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/pex-djgpp.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/pex-djgpp.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/pex-djgpp.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/pex-djgpp.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Utilities to execute a program in a subprocess (possibly linked by pipes with other subprocesses), and wait for it. DJGPP specialization. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/pexecute.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/pexecute.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/pexecute.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/pexecute.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Utilities to execute a program in a subprocess (possibly linked by pipes with other subprocesses), and wait for it. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/pex-msdos.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/pex-msdos.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/pex-msdos.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/pex-msdos.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Utilities to execute a program in a subprocess (possibly linked by pipes with other subprocesses), and wait for it. Generic MSDOS specialization. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/pex-one.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/pex-one.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/pex-one.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/pex-one.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Execute a program and wait for a result. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/pex-unix.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/pex-unix.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/pex-unix.c 2018-10-02 07:26:47.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/pex-unix.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* Utilities to execute a program in a subprocess (possibly linked by pipes with other subprocesses), and wait for it. Generic Unix version (also used for UWIN and VMS). - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/pex-win32.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/pex-win32.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/pex-win32.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/pex-win32.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* Utilities to execute a program in a subprocess (possibly linked by pipes with other subprocesses), and wait for it. Generic Win32 specialization. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/physmem.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/physmem.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/physmem.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/physmem.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Calculate the size of physical memory. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/putenv.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/putenv.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/putenv.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/putenv.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file based on putenv.c in the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/regex.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/regex.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/regex.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/regex.c 2019-01-02 08:05:14.000000000 +0000 @@ -3,7 +3,7 @@ (Implements POSIX draft P1003.2/D11.2, except for some of the internationalization features.) - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/rust-demangle.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/rust-demangle.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/rust-demangle.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/rust-demangle.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Demangler for the Rust programming language - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. Written by David Tolnay (dtolnay@gmail.com). This file is part of the libiberty library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/safe-ctype.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/safe-ctype.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/safe-ctype.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/safe-ctype.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,6 +1,6 @@ /* replacement macros. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Zack Weinberg . This file is part of the libiberty library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/setenv.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/setenv.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/setenv.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/setenv.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2018 Free Software Foundation, Inc. +/* Copyright (C) 1992-2019 Free Software Foundation, Inc. This file based on setenv.c in the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/setproctitle.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/setproctitle.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/setproctitle.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/setproctitle.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Set the title of a process. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/sha1.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/sha1.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/sha1.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/sha1.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,7 +1,7 @@ /* sha1.c - Functions to compute SHA1 message digest of files or memory blocks according to the NIST specification FIPS-180-1. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/simple-object.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/simple-object.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/simple-object.c 2018-05-31 09:39:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/simple-object.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* simple-object.c -- simple routines to read and write object files. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/simple-object-coff.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/simple-object-coff.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/simple-object-coff.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/simple-object-coff.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* simple-object-coff.c -- routines to manipulate COFF object files. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/simple-object-common.h gcc-snapshot-20190102/=unpacked-tar1=/libiberty/simple-object-common.h --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/simple-object-common.h 2018-01-14 10:48:26.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/simple-object-common.h 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* simple-object-common.h -- common structs for object file manipulation. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/simple-object-elf.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/simple-object-elf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/simple-object-elf.c 2018-07-21 17:29:10.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/simple-object-elf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* simple-object-elf.c -- routines to manipulate ELF object files. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/simple-object-mach-o.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/simple-object-mach-o.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/simple-object-mach-o.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/simple-object-mach-o.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* simple-object-mach-o.c -- routines to manipulate Mach-O object files. - Copyright (C) 2010-2018 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google. This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/simple-object-xcoff.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/simple-object-xcoff.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/simple-object-xcoff.c 2018-01-23 00:38:14.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/simple-object-xcoff.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* simple-object-coff.c -- routines to manipulate XCOFF object files. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2019 Free Software Foundation, Inc. Written by Ian Lance Taylor, Google and David Edelsohn, IBM. This program is free software; you can redistribute it and/or modify it diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/snprintf.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/snprintf.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/snprintf.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/snprintf.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Implement the snprintf function. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Written by Kaveh R. Ghazi . This file is part of the libiberty library. This library is free diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/sort.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/sort.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/sort.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/sort.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Sorting algorithms. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. Contributed by Mark Mitchell . This file is part of GNU CC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/spaces.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/spaces.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/spaces.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/spaces.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Allocate memory region filled with spaces. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/splay-tree.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/splay-tree.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/splay-tree.c 2018-05-31 09:39:22.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/splay-tree.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* A splay-tree datatype. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Mark Mitchell (mark@markmitchell.com). This file is part of GNU CC. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/stack-limit.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/stack-limit.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/stack-limit.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/stack-limit.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Increase stack size limit if possible. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of the libiberty library. This library is free software; you can redistribute it and/or modify it under the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/stpcpy.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/stpcpy.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/stpcpy.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/stpcpy.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Implement the stpcpy function. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Written by Kaveh R. Ghazi . This file is part of the libiberty library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/stpncpy.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/stpncpy.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/stpncpy.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/stpncpy.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Implement the stpncpy function. - Copyright (C) 2003-2018 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. Written by Kaveh R. Ghazi . This file is part of the libiberty library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/strndup.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/strndup.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/strndup.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/strndup.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Implement the strndup function. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. Written by Kaveh R. Ghazi . This file is part of the libiberty library. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/strtod.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/strtod.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/strtod.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/strtod.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Implementation of strtod for systems with atof. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the libiberty library. This library is free software; you can redistribute it and/or modify it under the diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/strverscmp.c gcc-snapshot-20190102/=unpacked-tar1=/libiberty/strverscmp.c --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/strverscmp.c 2018-01-04 13:44:36.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/strverscmp.c 2019-01-02 08:05:14.000000000 +0000 @@ -1,5 +1,5 @@ /* Compare strings while treating digits characters numerically. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Contributed by Jean-François Bignolles , 1997. diff -Nru gcc-snapshot-20181214/=unpacked-tar1=/libiberty/testsuite/demangle-expected gcc-snapshot-20190102/=unpacked-tar1=/libiberty/testsuite/demangle-expected --- gcc-snapshot-20181214/=unpacked-tar1=/libiberty/testsuite/demangle-expected 2018-11-05 08:45:34.000000000 +0000 +++ gcc-snapshot-20190102/=unpacked-tar1=/libiberty/testsuite/demangle-expected 2018-12-29 02:41:32.000000000 +0000 @@ -20,3315 +20,64 @@ # A line starting with `#' is ignored. # However, blank lines in this file are NOT ignored. # ---format=gnu --no-params -AddAlignment__9ivTSolverUiP12ivInteractorP7ivTGlue -ivTSolver::AddAlignment(unsigned int, ivInteractor *, ivTGlue *) -ivTSolver::AddAlignment -# ---format=gnu --no-params -ArrowheadIntersects__9ArrowLineP9ArrowheadR6BoxObjP7Graphic -ArrowLine::ArrowheadIntersects(Arrowhead *, BoxObj &, Graphic *) -ArrowLine::ArrowheadIntersects -# ---format=gnu --no-params -ArrowheadIntersects__9ArrowLineP9ArrowheadO6BoxObjP7Graphic -ArrowLine::ArrowheadIntersects(Arrowhead *, BoxObj &&, Graphic *) -ArrowLine::ArrowheadIntersects -# ---format=gnu --no-params -AtEnd__13ivRubberGroup -ivRubberGroup::AtEnd(void) -ivRubberGroup::AtEnd -# ---format=gnu --no-params -BgFilter__9ivTSolverP12ivInteractor -ivTSolver::BgFilter(ivInteractor *) -ivTSolver::BgFilter -# ---format=gnu --no-params -Check__6UArrayi -UArray::Check(int) -UArray::Check -# ---format=gnu --no-params -CoreConstDecls__8TextCodeR7ostream -TextCode::CoreConstDecls(ostream &) -TextCode::CoreConstDecls -# ---format=gnu --no-params -CoreConstDecls__8TextCodeO7ostream -TextCode::CoreConstDecls(ostream &&) -TextCode::CoreConstDecls -# ---format=gnu --no-params -Detach__8StateVarP12StateVarView -StateVar::Detach(StateVarView *) -StateVar::Detach -# ---format=gnu --no-params -Done__9ComponentG8Iterator -Component::Done(Iterator) -Component::Done -# ---format=gnu --no-params -Effect__11RelateManipR7ivEvent -RelateManip::Effect(ivEvent &) -RelateManip::Effect -# ---format=gnu --no-params -Effect__11RelateManipO7ivEvent -RelateManip::Effect(ivEvent &&) -RelateManip::Effect -# ---format=gnu --no-params -FindFixed__FRP4CNetP4CNet -FindFixed(CNet *&, CNet *) -FindFixed -# ---format=gnu --no-params -FindFixed__FOP4CNetP4CNet -FindFixed(CNet *&&, CNet *) -FindFixed -# ---format=gnu --no-params -Fix48_abort__FR8twolongs -Fix48_abort(twolongs &) -Fix48_abort -# ---format=gnu --no-params -Fix48_abort__FO8twolongs -Fix48_abort(twolongs &&) -Fix48_abort -# ---format=gnu --no-params -GetBarInfo__15iv2_6_VScrollerP13ivPerspectiveRiT2 -iv2_6_VScroller::GetBarInfo(ivPerspective *, int &, int &) -iv2_6_VScroller::GetBarInfo -# ---format=gnu --no-params -GetBarInfo__15iv2_6_VScrollerP13ivPerspectiveOiT2 -iv2_6_VScroller::GetBarInfo(ivPerspective *, int &&, int &&) -iv2_6_VScroller::GetBarInfo -# ---format=gnu --no-params -GetBgColor__C9ivPainter -ivPainter::GetBgColor(void) const -ivPainter::GetBgColor -# ---format=gnu --no-params -InsertBody__15H_PullrightMenuii -H_PullrightMenu::InsertBody(int, int) -H_PullrightMenu::InsertBody -# ---format=gnu --no-params -InsertCharacter__9TextManipc -TextManip::InsertCharacter(char) -TextManip::InsertCharacter -# ---format=gnu --no-params -InsertToplevel__7ivWorldP12ivInteractorT1 -ivWorld::InsertToplevel(ivInteractor *, ivInteractor *) -ivWorld::InsertToplevel -# ---format=gnu --no-params -InsertToplevel__7ivWorldP12ivInteractorT1iiUi -ivWorld::InsertToplevel(ivInteractor *, ivInteractor *, int, int, unsigned int) -ivWorld::InsertToplevel -# ---format=gnu --no-params -IsAGroup__FP11GraphicViewP11GraphicComp -IsAGroup(GraphicView *, GraphicComp *) -IsAGroup -# ---format=gnu --no-params -IsA__10ButtonCodeUl -ButtonCode::IsA(unsigned long) -ButtonCode::IsA -# ---format=gnu --no-params -ReadName__FR7istreamPc -ReadName(istream &, char *) -ReadName -# ---format=gnu --no-params -Redraw__13StringBrowseriiii -StringBrowser::Redraw(int, int, int, int) -StringBrowser::Redraw -# ---format=gnu --no-params -Rotate__13ivTransformerf -ivTransformer::Rotate(float) -ivTransformer::Rotate -# ---format=gnu --no-params -Rotated__C13ivTransformerf -ivTransformer::Rotated(float) const -ivTransformer::Rotated -# ---format=gnu --no-params -Round__Ff -Round(float) -Round -# ---format=gnu --no-params -SetExport__16MemberSharedNameUi -MemberSharedName::SetExport(unsigned int) -MemberSharedName::SetExport -# ---format=gnu --no-params -Set__14ivControlState13ControlStatusUi -ivControlState::Set(ControlStatus, unsigned int) -ivControlState::Set -# ---format=gnu --no-params -Set__5DFacePcii -DFace::Set(char *, int, int) -DFace::Set -# ---format=gnu --no-params -VConvert__9ivTSolverP12ivInteractorRP8TElementT2 -ivTSolver::VConvert(ivInteractor *, TElement *&, TElement *&) -ivTSolver::VConvert -# ---format=gnu --no-params -VConvert__9ivTSolverP7ivTGlueRP8TElement -ivTSolver::VConvert(ivTGlue *, TElement *&) -ivTSolver::VConvert -# ---format=gnu --no-params -VOrder__9ivTSolverUiRP12ivInteractorT2 -ivTSolver::VOrder(unsigned int, ivInteractor *&, ivInteractor *&) -ivTSolver::VOrder -# ---format=gnu --no-params -_10PageButton$__both -PageButton::__both -PageButton::__both -# ---format=gnu --no-params -_3RNG$singleMantissa -RNG::singleMantissa -RNG::singleMantissa -# ---format=gnu --no-params -_5IComp$_release -IComp::_release -IComp::_release -# ---format=gnu --no-params -_$_10BitmapComp -BitmapComp::~BitmapComp(void) -BitmapComp::~BitmapComp -# ---format=gnu --no-params -_$_9__io_defs -__io_defs::~__io_defs(void) -__io_defs::~__io_defs -# ---format=gnu --no-params -_$_Q23foo3bar -foo::bar::~bar(void) -foo::bar::~bar -# ---format=gnu --no-params -_$_Q33foo3bar4bell -foo::bar::bell::~bell(void) -foo::bar::bell::~bell -# ---format=gnu --no-params -__10ivTelltaleiP7ivGlyph -ivTelltale::ivTelltale(int, ivGlyph *) -ivTelltale::ivTelltale -# ---format=gnu --no-params -__10ivViewportiP12ivInteractorUi -ivViewport::ivViewport(int, ivInteractor *, unsigned int) -ivViewport::ivViewport -# ---format=gnu --no-params -__10ostrstream -ostrstream::ostrstream(void) -ostrstream::ostrstream -# ---format=gnu --no-params -__10ostrstreamPcii -ostrstream::ostrstream(char *, int, int) -ostrstream::ostrstream -# ---format=gnu --no-params -__11BitmapTablei -BitmapTable::BitmapTable(int) -BitmapTable::BitmapTable -# ---format=gnu --no-params -__12ViewportCodeP12ViewportComp -ViewportCode::ViewportCode(ViewportComp *) -ViewportCode::ViewportCode -# ---format=gnu --no-params -__12iv2_6_Borderii -iv2_6_Border::iv2_6_Border(int, int) -iv2_6_Border::iv2_6_Border -# ---format=gnu --no-params -__12ivBreak_Listl -ivBreak_List::ivBreak_List(long) -ivBreak_List::ivBreak_List -# ---format=gnu --no-params -__14iv2_6_MenuItemiP12ivInteractor -iv2_6_MenuItem::iv2_6_MenuItem(int, ivInteractor *) -iv2_6_MenuItem::iv2_6_MenuItem -# ---format=gnu --no-params -__20DisplayList_IteratorR11DisplayList -DisplayList_Iterator::DisplayList_Iterator(DisplayList &) -DisplayList_Iterator::DisplayList_Iterator -# ---format=gnu --no-params -__3fooRT0 -foo::foo(foo &) -foo::foo -# ---format=gnu --no-params -__3fooiN31 -foo::foo(int, int, int, int) -foo::foo -# ---format=gnu --no-params -__3fooiRT0iT2iT2 -foo::foo(int, foo &, int, foo &, int, foo &) -foo::foo -# ---format=gnu --no-params -__6KeyMapPT0 -KeyMap::KeyMap(KeyMap *) -KeyMap::KeyMap -# ---format=gnu --no-params -__8ArrowCmdP6EditorUiUi -ArrowCmd::ArrowCmd(Editor *, unsigned int, unsigned int) -ArrowCmd::ArrowCmd -# ---format=gnu --no-params -__9F_EllipseiiiiP7Graphic -F_Ellipse::F_Ellipse(int, int, int, int, Graphic *) -F_Ellipse::F_Ellipse -# ---format=gnu --no-params -__9FrameDataP9FrameCompi -FrameData::FrameData(FrameComp *, int) -FrameData::FrameData -# ---format=gnu --no-params -__9HVGraphicP9CanvasVarP7Graphic -HVGraphic::HVGraphic(CanvasVar *, Graphic *) -HVGraphic::HVGraphic -# ---format=gnu --no-params -__Q23foo3bar -foo::bar::bar(void) -foo::bar::bar -# ---format=gnu --no-params -__Q33foo3bar4bell -foo::bar::bell::bell(void) -foo::bar::bell::bell -# ---format=gnu --no-params -__aa__3fooRT0 -foo::operator&&(foo &) -foo::operator&& -# ---format=gnu --no-params -__aad__3fooRT0 -foo::operator&=(foo &) -foo::operator&= -# ---format=gnu --no-params -__ad__3fooRT0 -foo::operator&(foo &) -foo::operator& -# ---format=gnu --no-params -__adv__3fooRT0 -foo::operator/=(foo &) -foo::operator/= -# ---format=gnu --no-params -__aer__3fooRT0 -foo::operator^=(foo &) -foo::operator^= -# ---format=gnu --no-params -__als__3fooRT0 -foo::operator<<=(foo &) -foo::operator<<= -# ---format=gnu --no-params -__amd__3fooRT0 -foo::operator%=(foo &) -foo::operator%= -# ---format=gnu --no-params -__ami__3fooRT0 -foo::operator-=(foo &) -foo::operator-= -# ---format=gnu --no-params -__aml__3FixRT0 -Fix::operator*=(Fix &) -Fix::operator*= -# ---format=gnu --no-params -__aml__5Fix16i -Fix16::operator*=(int) -Fix16::operator*= -# ---format=gnu --no-params -__aml__5Fix32RT0 -Fix32::operator*=(Fix32 &) -Fix32::operator*= -# ---format=gnu --no-params -__aor__3fooRT0 -foo::operator|=(foo &) -foo::operator|= -# ---format=gnu --no-params -__apl__3fooRT0 -foo::operator+=(foo &) -foo::operator+= -# ---format=gnu --no-params -__ars__3fooRT0 -foo::operator>>=(foo &) -foo::operator>>= -# ---format=gnu --no-params -__as__3fooRT0 -foo::operator=(foo &) -foo::operator= -# ---format=gnu --no-params -__cl__3fooRT0 -foo::operator()(foo &) -foo::operator() -# ---format=gnu --no-params -__cl__6Normal -Normal::operator()(void) -Normal::operator() -# ---format=gnu --no-params -__cl__6Stringii -String::operator()(int, int) -String::operator() -# ---format=gnu --no-params -__cm__3fooRT0 -foo::operator, (foo &) -foo::operator, -# ---format=gnu --no-params -__co__3foo -foo::operator~(void) -foo::operator~ -# ---format=gnu --no-params -__dl__3fooPv -foo::operator delete(void *) -foo::operator delete -# ---format=gnu --no-params -__dv__3fooRT0 -foo::operator/(foo &) -foo::operator/ -# ---format=gnu --no-params -__eq__3fooRT0 -foo::operator==(foo &) -foo::operator== -# ---format=gnu --no-params -__er__3fooRT0 -foo::operator^(foo &) -foo::operator^ -# ---format=gnu --no-params -__ge__3fooRT0 -foo::operator>=(foo &) -foo::operator>= -# ---format=gnu --no-params -__gt__3fooRT0 -foo::operator>(foo &) -foo::operator> -# ---format=gnu --no-params -__le__3fooRT0 -foo::operator<=(foo &) -foo::operator<= -# ---format=gnu --no-params -__ls__3fooRT0 -foo::operator<<(foo &) -foo::operator<< -# ---format=gnu --no-params -__ls__FR7ostreamPFR3ios_R3ios -operator<<(ostream &, ios &(*)(ios &)) -operator<< -# ---format=gnu --no-params -__ls__FR7ostreamR3Fix -operator<<(ostream &, Fix &) -operator<< -# ---format=gnu --no-params -__lt__3fooRT0 -foo::operator<(foo &) -foo::operator< -# ---format=gnu --no-params -__md__3fooRT0 -foo::operator%(foo &) -foo::operator% -# ---format=gnu --no-params -__mi__3fooRT0 -foo::operator-(foo &) -foo::operator- -# ---format=gnu --no-params -__ml__3fooRT0 -foo::operator*(foo &) -foo::operator* -# ---format=gnu --no-params -__mm__3fooi -foo::operator--(int) -foo::operator-- -# ---format=gnu --no-params -__ne__3fooRT0 -foo::operator!=(foo &) -foo::operator!= -# ---format=gnu --no-params -__nt__3foo -foo::operator!(void) -foo::operator! -# ---format=gnu --no-params -__nw__3fooi -foo::operator new(int) -foo::operator new -# ---format=gnu --no-params -__oo__3fooRT0 -foo::operator||(foo &) -foo::operator|| -# ---format=gnu --no-params -__opPc__3foo -foo::operator char *(void) -foo::operator char * -# ---format=gnu --no-params -__opi__3foo -foo::operator int(void) -foo::operator int -# ---format=gnu --no-params -__or__3fooRT0 -foo::operator|(foo &) -foo::operator| -# ---format=gnu --no-params -__pl__3fooRT0 -foo::operator+(foo &) -foo::operator+ -# ---format=gnu --no-params -__pp__3fooi -foo::operator++(int) -foo::operator++ -# ---format=gnu --no-params -__rf__3foo -foo::operator->(void) -foo::operator-> -# ---format=gnu --no-params -__rm__3fooRT0 -foo::operator->*(foo &) -foo::operator->* -# ---format=gnu --no-params -__rs__3fooRT0 -foo::operator>>(foo &) -foo::operator>> -# ---format=gnu --no-params -_new_Fix__FUs -_new_Fix(unsigned short) -_new_Fix -# ---format=gnu --no-params -_vt.foo -foo virtual table -foo virtual table -# ---format=gnu --no-params -_vt.foo.bar -foo::bar virtual table -foo::bar virtual table -# ---format=gnu --no-params -_vt$foo -foo virtual table -foo virtual table -# ---format=gnu --no-params -_vt$foo$bar -foo::bar virtual table -foo::bar virtual table -# ---format=gnu --no-params -append__7ivGlyphPT0 -ivGlyph::append(ivGlyph *) -ivGlyph::append -# ---format=gnu --no-params -clearok__FP7_win_sti -clearok(_win_st *, int) -clearok -# ---format=gnu --no-params -complexfunc2__FPFPc_i -complexfunc2(int (*)(char *)) -complexfunc2 -# ---format=gnu --no-params -complexfunc3__FPFPFPl_s_i -complexfunc3(int (*)(short (*)(long *))) -complexfunc3 -# ---format=gnu --no-params -complexfunc4__FPFPFPc_s_i -complexfunc4(int (*)(short (*)(char *))) -complexfunc4 -# ---format=gnu --no-params -complexfunc5__FPFPc_PFl_i -complexfunc5(int (*(*)(char *))(long)) -complexfunc5 -# ---format=gnu --no-params -complexfunc6__FPFPi_PFl_i -complexfunc6(int (*(*)(int *))(long)) -complexfunc6 -# ---format=gnu --no-params -complexfunc7__FPFPFPc_i_PFl_i -complexfunc7(int (*(*)(int (*)(char *)))(long)) -complexfunc7 -# ---format=gnu --no-params -foo__FiN30 -foo(int, int, int, int) -foo -# ---format=gnu --no-params -foo__FiR3fooiT1iT1 -foo(int, foo &, int, foo &, int, foo &) -foo -# ---format=gnu --no-params -foo___3barl -bar::foo_(long) -bar::foo_ -# ---format=gnu --no-params -insert__15ivClippingStacklRP8_XRegion -ivClippingStack::insert(long, _XRegion *&) -ivClippingStack::insert -# ---format=gnu --no-params -insert__16ChooserInfo_ListlR11ChooserInfo -ChooserInfo_List::insert(long, ChooserInfo &) -ChooserInfo_List::insert -# ---format=gnu --no-params -insert__17FontFamilyRepListlRP15ivFontFamilyRep -FontFamilyRepList::insert(long, ivFontFamilyRep *&) -FontFamilyRepList::insert -# ---format=gnu --no-params -leaveok__FP7_win_stc -leaveok(_win_st *, char) -leaveok -# ---format=gnu --no-params -left_mover__C7ivMFKitP12ivAdjustableP7ivStyle -ivMFKit::left_mover(ivAdjustable *, ivStyle *) const -ivMFKit::left_mover -# ---format=gnu --no-params -overload1arg__FSc -overload1arg(signed char) -overload1arg -# ---format=gnu --no-params -overload1arg__FUc -overload1arg(unsigned char) -overload1arg -# ---format=gnu --no-params -overload1arg__FUi -overload1arg(unsigned int) -overload1arg -# ---format=gnu --no-params -overload1arg__FUl -overload1arg(unsigned long) -overload1arg -# ---format=gnu --no-params -overload1arg__FUs -overload1arg(unsigned short) -overload1arg -# ---format=gnu --no-params -overload1arg__Fc -overload1arg(char) -overload1arg -# ---format=gnu --no-params -overload1arg__Fd -overload1arg(double) -overload1arg -# ---format=gnu --no-params -overload1arg__Ff -overload1arg(float) -overload1arg -# ---format=gnu --no-params -overload1arg__Fi -overload1arg(int) -overload1arg -# ---format=gnu --no-params -overload1arg__Fl -overload1arg(long) -overload1arg -# ---format=gnu --no-params -overload1arg__Fs -overload1arg(short) -overload1arg -# ---format=gnu --no-params -overload1arg__Fv -overload1arg(void) -overload1arg -# ---format=gnu --no-params -overloadargs__Fi -overloadargs(int) -overloadargs -# ---format=gnu --no-params -overloadargs__Fii -overloadargs(int, int) -overloadargs -# ---format=gnu --no-params -overloadargs__Fiii -overloadargs(int, int, int) -overloadargs -# ---format=gnu --no-params -overloadargs__Fiiii -overloadargs(int, int, int, int) -overloadargs -# ---format=gnu --no-params -overloadargs__Fiiiii -overloadargs(int, int, int, int, int) -overloadargs -# ---format=gnu --no-params -overloadargs__Fiiiiii -overloadargs(int, int, int, int, int, int) -overloadargs -# ---format=gnu --no-params -overloadargs__Fiiiiiii -overloadargs(int, int, int, int, int, int, int) -overloadargs -# ---format=gnu --no-params -overloadargs__Fiiiiiiii -overloadargs(int, int, int, int, int, int, int, int) -overloadargs -# ---format=gnu --no-params -overloadargs__Fiiiiiiiii -overloadargs(int, int, int, int, int, int, int, int, int) -overloadargs -# ---format=gnu --no-params -overloadargs__Fiiiiiiiiii -overloadargs(int, int, int, int, int, int, int, int, int, int) -overloadargs -# ---format=gnu --no-params -overloadargs__Fiiiiiiiiiii -overloadargs(int, int, int, int, int, int, int, int, int, int, int) -overloadargs -# ---format=gnu --no-params -poke__8ivRasterUlUlffff -ivRaster::poke(unsigned long, unsigned long, float, float, float, float) -ivRaster::poke -# ---format=gnu --no-params -polar__Fdd -polar(double, double) -polar -# ---format=gnu --no-params -scale__13ivTransformerff -ivTransformer::scale(float, float) -ivTransformer::scale -# ---format=gnu --no-params -sgetn__7filebufPci -filebuf::sgetn(char *, int) -filebuf::sgetn -# ---format=gnu --no-params -shift__FP5_FrepiT0 -shift(_Frep *, int, _Frep *) -shift -# ---format=gnu --no-params -test__C6BitSeti -BitSet::test(int) const -BitSet::test -# ---format=gnu --no-params -test__C6BitSetii -BitSet::test(int, int) const -BitSet::test -# ---format=gnu --no-params -text_source__8Documentl -Document::text_source(long) -Document::text_source -# ---format=gnu --no-params -variance__6Erlangd -Erlang::variance(double) -Erlang::variance -# ---format=gnu --no-params -view__14DocumentViewerP8ItemViewP11TabularItem -DocumentViewer::view(ItemView *, TabularItem *) -DocumentViewer::view -# ---format=gnu --no-params -xy_extents__11ivExtensionffff -ivExtension::xy_extents(float, float, float, float) -ivExtension::xy_extents -# ---format=gnu --no-params -zero__8osMemoryPvUi -osMemory::zero(void *, unsigned int) -osMemory::zero -# ---format=gnu --no-params -_2T4$N -T4::N -T4::N -# ---format=gnu --no-params -_Q22T42t1$N -T4::t1::N -T4::t1::N -# ---format=gnu --no-params -get__2T1 -T1::get(void) -T1::get -# ---format=gnu --no-params -get__Q22T11a -T1::a::get(void) -T1::a::get -# ---format=gnu --no-params -get__Q32T11a1b -T1::a::b::get(void) -T1::a::b::get -# ---format=gnu --no-params -get__Q42T11a1b1c -T1::a::b::c::get(void) -T1::a::b::c::get -# ---format=gnu --no-params -get__Q52T11a1b1c1d -T1::a::b::c::d::get(void) -T1::a::b::c::d::get -# ---format=gnu --no-params -put__2T1i -T1::put(int) -T1::put -# ---format=gnu --no-params -put__Q22T11ai -T1::a::put(int) -T1::a::put -# ---format=gnu --no-params -put__Q32T11a1bi -T1::a::b::put(int) -T1::a::b::put -# ---format=gnu --no-params -put__Q42T11a1b1ci -T1::a::b::c::put(int) -T1::a::b::c::put -# ---format=gnu --no-params -put__Q52T11a1b1c1di -T1::a::b::c::d::put(int) -T1::a::b::c::d::put -# ---format=gnu --no-params -bar__3fooPv -foo::bar(void *) -foo::bar -# ---format=gnu --no-params -bar__C3fooPv -foo::bar(void *) const -foo::bar -# ---format=gnu --no-params -__eq__3fooRT0 -foo::operator==(foo &) -foo::operator== -# ---format=gnu --no-params -__eq__C3fooR3foo -foo::operator==(foo &) const -foo::operator== -# ---format=gnu --no-params -elem__t6vector1Zdi -vector::elem(int) -vector::elem -# ---format=gnu --no-params -elem__t6vector1Zii -vector::elem(int) -vector::elem -# ---format=gnu --no-params -__t6vector1Zdi -vector::vector(int) -vector::vector -# ---format=gnu --no-params -__t6vector1Zii -vector::vector(int) -vector::vector -# ---format=gnu --no-params -_$_t6vector1Zdi -vector::~vector(int) -vector::~vector -# ---format=gnu --no-params -_$_t6vector1Zii -vector::~vector(int) -vector::~vector -# ---format=gnu --no-params -__nw__t2T11ZcUi -T1::operator new(unsigned int) -T1::operator new -# ---format=gnu --no-params -__nw__t2T11Z1tUi -T1::operator new(unsigned int) -T1::operator new -# ---format=gnu --no-params -__dl__t2T11ZcPv -T1::operator delete(void *) -T1::operator delete -# ---format=gnu --no-params -__dl__t2T11Z1tPv -T1::operator delete(void *) -T1::operator delete -# ---format=gnu --no-params -__t2T11Zci -T1::T1(int) -T1::T1 -# ---format=gnu --no-params -__t2T11Zc -T1::T1(void) -T1::T1 -# ---format=gnu --no-params -__t2T11Z1ti -T1::T1(int) -T1::T1 -# ---format=gnu --no-params -__t2T11Z1t -T1::T1(void) -T1::T1 -# ---format=gnu --no-params -__Q2t4List1Z10VHDLEntity3Pix -List::Pix::Pix(void) -List::Pix::Pix -# ---format=gnu --no-params -__Q2t4List1Z10VHDLEntity3PixPQ2t4List1Z10VHDLEntity7element -List::Pix::Pix(List::element *) -List::Pix::Pix -# ---format=gnu --no-params -__Q2t4List1Z10VHDLEntity3PixRCQ2t4List1Z10VHDLEntity3Pix -List::Pix::Pix(List::Pix const &) -List::Pix::Pix -# ---format=gnu --no-params -__Q2t4List1Z10VHDLEntity3PixOCQ2t4List1Z10VHDLEntity3Pix -List::Pix::Pix(List::Pix const &&) -List::Pix::Pix -# ---format=gnu --no-params -__Q2t4List1Z10VHDLEntity7elementRC10VHDLEntityPT0 -List::element::element(VHDLEntity const &, List::element *) -List::element::element -# ---format=gnu --no-params -__Q2t4List1Z10VHDLEntity7elementOC10VHDLEntityPT0 -List::element::element(VHDLEntity const &&, List::element *) -List::element::element -# ---format=gnu --no-params -__Q2t4List1Z10VHDLEntity7elementRCQ2t4List1Z10VHDLEntity7element -List::element::element(List::element const &) -List::element::element -# ---format=gnu --no-params -__cl__C11VHDLLibraryGt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity -VHDLLibrary::operator()(PixX >) const -VHDLLibrary::operator() -# ---format=gnu --no-params -__cl__Ct4List1Z10VHDLEntityRCQ2t4List1Z10VHDLEntity3Pix -List::operator()(List::Pix const &) const -List::operator() -# ---format=gnu --no-params -__ne__FPvRCQ2t4List1Z10VHDLEntity3Pix -operator!=(void *, List::Pix const &) -operator!= -# ---format=gnu --no-params -__ne__FPvRCt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity -operator!=(void *, PixX > const &) -operator!= -# ---format=gnu --no-params -__t4List1Z10VHDLEntityRCt4List1Z10VHDLEntity -List::List(List const &) -List::List -# ---format=gnu --no-params -__t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity -PixX >::PixX(void) -PixX >::PixX -# ---format=gnu --no-params -__t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntityP14VHDLLibraryRepGQ2t4List1Z10VHDLEntity3Pix -PixX >::PixX(VHDLLibraryRep *, List::Pix) -PixX >::PixX -# ---format=gnu --no-params -__t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntityRCt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity -PixX >::PixX(PixX > const &) -PixX >::PixX -# ---format=gnu --no-params -__t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntityOCt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity -PixX >::PixX(PixX > const &&) -PixX >::PixX -# ---format=gnu --no-params -nextE__C11VHDLLibraryRt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity -VHDLLibrary::nextE(PixX > &) const -VHDLLibrary::nextE -# ---format=gnu --no-params -next__Ct4List1Z10VHDLEntityRQ2t4List1Z10VHDLEntity3Pix -List::next(List::Pix &) const -List::next -# ---format=gnu --no-params -_GLOBAL_$D$set -global destructors keyed to set -global destructors keyed to set -# ---format=gnu --no-params -_GLOBAL_$I$set -global constructors keyed to set -global constructors keyed to set -# ---format=gnu --no-params -__as__t5ListS1ZUiRCt5ListS1ZUi -ListS::operator=(ListS const &) -ListS::operator= -# ---format=gnu --no-params -__cl__Ct5ListS1ZUiRCQ2t5ListS1ZUi3Vix -ListS::operator()(ListS::Vix const &) const -ListS::operator() -# ---format=gnu --no-params -__cl__Ct5SetLS1ZUiRCQ2t5SetLS1ZUi3Vix -SetLS::operator()(SetLS::Vix const &) const -SetLS::operator() -# ---format=gnu --no-params -__t10ListS_link1ZUiRCUiPT0 -ListS_link::ListS_link(unsigned int const &, ListS_link *) -ListS_link::ListS_link -# ---format=gnu --no-params -__t10ListS_link1ZUiRCt10ListS_link1ZUi -ListS_link::ListS_link(ListS_link const &) -ListS_link::ListS_link -# ---format=gnu --no-params -__t5ListS1ZUiRCt5ListS1ZUi -ListS::ListS(ListS const &) -ListS::ListS -# ---format=gnu --no-params -next__Ct5ListS1ZUiRQ2t5ListS1ZUi3Vix -ListS::next(ListS::Vix &) const -ListS::next -# ---format=gnu --no-params -__ne__FPvRCQ2t5SetLS1ZUi3Vix -operator!=(void *, SetLS::Vix const &) -operator!= -# ---format=gnu --no-params -__t8ListElem1Z5LabelRt4List1Z5Label -ListElem